/* Canonical typography — self-hosted, no CDN (business/brand.md, LOCKED 2026-07-20).
 *
 * Cinzel carries identity (every heading, the wordmark); Alegreya Sans carries
 * everything read at length. The same two faces run the game HUD and the
 * YouTube thumbnails — that cross-medium unity is the point of the lock.
 *
 * Filenames here are STABLE BY CONSTRUCTION. The previous Google-Fonts export
 * shipped 27 @font-face blocks under content-hash filenames, so re-exporting
 * silently invalidated the <link rel="preload"> hrefs in every page head and
 * the hero flashed a fallback face on first paint. These are emitted by
 * scripts/build_fonts.py under fixed names and pinned in fonts.lock.json, so
 * regenerating the fonts can no longer break the preloads.
 *
 * One latin subset per face, no unicode-range splitting: Google split by script
 * because Google serves every script. We serve one.
 *
 * The OFL texts ship beside these files and are linked from /credits.
 * site_deploy.py fails the deploy if either those licenses or the CSP's
 * font-src 'self' goes missing — both have bitten this site before.
 */

/* Cinzel — variable, wght 400..900, one file carries the range. Caps-only by
   design: no lowercase drawn as such and no italic, which is exactly why it is
   the display face and never the body face. */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(cinzel-latin.woff2) format('woff2');
}

/* Alegreya Sans — STATIC instances, so each weight is its own file and its own
   @font-face. Declaring a range a file cannot serve makes the browser
   synthesize the missing weights instead of using the real drawn ones. */
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(alegreyasans-400-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Alegreya Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(alegreyasans-400i-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(alegreyasans-500-latin.woff2) format('woff2');
}

@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(alegreyasans-700-latin.woff2) format('woff2');
}
