/* The Prize House — child overrides for Nera Competitions Design System v2.
   Every hex sampled from the logo artwork, every ratio computed. See brand.md. */

/* Typefaces set by Lewis, 18 Sep 2026, overriding the pairing in brand.md.
   Plus Jakarta Sans has no 900: Google returns "font family not found" for it
   and the browser would synthesise a smeared faux bold. 800 is its real ceiling. */
@import url("https://fonts.googleapis.com/css2?family=Funnel+Sans:wght@300;400;500&family=Plus+Jakarta+Sans:wght@300;500;800&display=swap");

:root{
  /* -------- the three v2 requires ---------------------------- */
  --brand:        #FC8609;   /* flame. The action colour, and only that */
  --brand-hover:  #FF9A2E;
  --brand-ink:    #01040E;   /* white fails on every brand fill: 2.46 / 3.34 / 4.36 */

  --font-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  /* This brand has no mono face. brand.md asks for TABULAR numerals, not
     monospaced ones, so numbers stay in the brand type and get tabular figures.
     v2's ui-monospace default was leaking into every price and ticket count. */
  --font-numeric: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "Funnel Sans", ui-sans-serif, system-ui, sans-serif;
  --fw-heading:   800;    /* the heaviest weight the face actually has */
  --fw-heading-lt:300;    /* the light half of the mixed-weight headings */
  --fw-text:      300;

  /* -------- surfaces, sampled from the artwork ---------------- */
  --bg:        #01040E;
  --surface-1: #0A0F1C;
  --surface-2: #0A0F1C;
  --surface-3: #151C2D;
  --line:      #2A3242;

  --text:   #FFFFFF;   /* 20.49 on ink */
  --text-2: #9AA3B5;   /*  8.08 */
  --text-3: #7E8799;   /*  5.67 */

  /* -------- brand extras beyond the v2 set -------------------- */
  --flame: #FC8609;
  --ember: #FC4F2D;   /* gradient midpoint only, never used alone */
  --rose:  #E52177;   /* urgency. Never body text, never a label, never under 16px */
  --sweep: linear-gradient(90deg,#FC8609 0%,#FC4F2D 50%,#E52177 100%);

  /* -------- state, mapped onto v2's names --------------------- */
  --state-live:    var(--rose);
  --state-closing: var(--rose);
  --state-soldout: var(--text-2);   /* unfilled. Rule 4: sold out is never a fill */
  --state-drawn:   var(--text-2);
  --state-members: var(--flame);
  --state-instant: var(--flame);
  --state-error:   #FF5A6E;
  --state-ok:      #2ED573;
  --danger-surface:#2A0D12;

  --radius-sm:2px; --radius-md:4px; --radius-lg:8px;
}

/* One display heading per page may carry the sweep, 32px floor.
   background-clip:text with a solid flame fallback. */
.sweep-heading{
  color:var(--flame);
  background:var(--sweep);
  -webkit-background-clip:text; background-clip:text;
}
@supports (-webkit-background-clip:text) or (background-clip:text){
  .sweep-heading{ -webkit-text-fill-color:transparent; color:transparent }
}

/* Body runs at 300. On a near-black ground a light weight optically thins, so
   body sits at 16px rather than 15 to hold up, and --text-2 does the work
   instead of --text-3. */
body{ font-weight:var(--fw-text); font-size:16px }
p{ font-weight:var(--fw-text) }
h1,h2,h3,h4{ font-weight:var(--fw-heading) }

/* Mixed-weight headings: 800 with a 300 fragment. The light half carries the
   ordinary words, the heavy half carries the thing being named. */
.lt{ font-weight:var(--fw-heading-lt) }
