/* brand/tokens.css — Squint Club design tokens.
 *
 * This file is the ONLY place colour values live. Templates use the CSS
 * variables; Node scripts (e.g. the ASS caption colours in finish.mjs) read
 * the values out of this file rather than hard-coding them. Every
 * "--name: #RRGGBB;" below is one per line so it stays trivial to parse.
 *
 * Colours are locked by the Bible decision of 2026-09-22. Do not change a
 * value here without a Bible decision.
 *
 * Fonts are bundled locally (brand/fonts/, from @fontsource 5.3.0, SIL OFL
 * 1.1) so headless renders are deterministic and work offline. Never load
 * fonts from Google Fonts: a render must make no network requests.
 */

/* ---------------------------------------------------------------- fonts -- */

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 400;
  font-display: block; /* never paint a fallback glyph into a frame */
  src: url('./fonts/barlow-latin-400-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url('./fonts/barlow-latin-500-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url('./fonts/barlow-latin-600-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: block;
  src: url('./fonts/barlow-condensed-latin-600-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url('./fonts/barlow-condensed-latin-700-normal.woff2') format('woff2');
}

@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-weight: 800;
  font-display: block;
  src: url('./fonts/barlow-condensed-latin-800-normal.woff2') format('woff2');
}

/* --------------------------------------------------------------- tokens -- */

:root {
  --navy:  #0E1A24;
  --amber: #F2A900;
  --cyan:  #1E9BD7;
  --text:  #F4F7F9;

  /* The muted grey (the Overseer, 2026-10-11): every grey in the Top 10, its air
     dates, upcoming scorecard rows, rank-card kicker, the tiebreaker's instruction,
     source line and ring. The designer's value, so the masters and the token agree
     (it was #9DA3A8, derived, for one evening). 6.9:1 against --navy. */
  --muted: #9AA3AB;

  /* Series tag colours, keyed by format id. Locked 2026-09-22, one per
     publishing format. */
  --series-map-monday:         #2E8B6E;
  --series-tower-tuesday:      #0E6E9E;
  --series-flag-friday:        #B23A6F;
  --series-shape-saturday:     #C9462A;
  --series-size-sunday:        #5E8C22;
  --series-which-way-wednesday: #5B6CE0;   /* periwinkle, joining 2026-10-07: text 4.2:1, on navy 3.9:1 */
  --series-travel-thursday:     #8E44B8;   /* purple, joining 2026-10-08: text 5.3:1, on navy 3.1:1 */

  /* Seasonal accents (the Overseer, 2026-10-19; the designer's seasonal-skins spec):
     used only by a holiday edition's badge and decoration, which a template tints by
     setting --season-accent from the row's season (engines/season.js). Never a series
     colour, never the puzzle's focal point. On navy, measured: */
  --season-halloween:  #B79CF2;   /* light violet, 7.6:1 */
  --season-christmas:  #FF6B6B;   /* light cherry red, 6.3:1 */
  --season-new-year:   #5CE1D6;   /* bright turquoise, 11.1:1; ΔE2000 28.8 from the cyan */
  --season-valentines: #FF8FC7;   /* soft pink, 8.4:1 */
  --season-solstice:   #FF9E7A;   /* warm coral, 8.7:1 */

  /* Type. Barlow Condensed 800 is the display face (series tag, countdown,
     captions); Barlow carries small text (credits, badges, labels). */
  --font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-text:    'Barlow', system-ui, sans-serif;
}
