/* tw-fonts.css - the TriviaWorks HOUSE FONT FAMILY, self-hosted.
 *
 * Andrew, 2026-07-14: "The Gotham font family is the TriviaWorks house font family.
 * Remove all Google fonts."
 *
 * Load this on any surface that needs type. It declares the faces AND the family
 * tokens, so a page does not need tw-tokens.css as well (most player surfaces did
 * not load it, which is how Google Fonts drifted back in).
 *
 * NO EXTERNAL FETCHES. Everything here is served from /fonts/ by
 * server/routes/sync.js:531. That is what makes offline play, the desktop program
 * and white-label embedding possible - see _handoff/specs/DEPLOYMENT-TARGETS.md.
 *
 * MONO: Gotham has no monospace cut, and we have no house mono. Mono falls back to
 * the SYSTEM stack - zero download, no CDN, works offline.
 */

/* ---- Gotham (UI + display) ---- */
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Thin.woff2')   format('woff2'); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-XLight.woff2') format('woff2'); font-weight: 200; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Light.woff2')  format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Book.woff2')   format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Bold.woff2')   format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Black.woff2')  format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham'; src: url('/fonts/Gotham-Ultra.woff2')  format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }

/* ---- Gotham Narrow (game surfaces - the condensed cut) ---- */
@font-face { font-family: 'Gotham Narrow'; src: url('/fonts/GothamNarrow-Book.woff2')   format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham Narrow'; src: url('/fonts/GothamNarrow-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham Narrow'; src: url('/fonts/GothamNarrow-Bold.woff2')   format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Gotham Narrow'; src: url('/fonts/GothamNarrow-Black.woff2')  format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }

/* ---- JetBrains Mono (the house MONO) ----
 * SIL OFL 1.1 - licence at /fonts/JetBrainsMono-OFL.txt, which MUST travel with the
 * font into the desktop program and any white-label embed.
 * Regular + Bold only; we have no italic mono usage.
 *
 * Chosen for DISAMBIGUATION, not taste: slashed zero, tailed l, serifed I, 1 with a
 * full base. This is load-bearing - players TYPE ROOM CODES THEY WERE READ ALOUD from
 * a TV, so 0/O and 1/l/I confusion is a support call, not a style nit.
 */
@font-face { font-family: 'JetBrains Mono'; src: url('/fonts/JetBrainsMono-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('/fonts/JetBrainsMono-Bold.woff2')    format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

/* ---- Family tokens ---- */
:root {
  --tw-font:      'Gotham', 'Segoe UI', system-ui, sans-serif;
  --tw-game-font: 'Gotham Narrow', 'Gotham', 'Arial Narrow', sans-serif;
  --tw-mono:     'JetBrains Mono',  ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
