/**
 * Self-hosted @font-face declarations — the four SIL OFL families named in the design handoff.
 *
 * Every `src` points at `/fonts/<file>.woff2`, which the closeBundle hook copies verbatim from
 * `apps/web/site/fonts/` (see that directory's README for provenance and the acquisition
 * recipe). Nothing here reaches any external font host — enforced by `site/fonts.test.ts` — and
 * every `--font-*` token in tokens.css ends in a real fallback stack,
 * so a missing binary degrades to Georgia/serif rather than a broken page. `font-display: swap`
 * on every face means that degradation is visible for at most one paint, never a blank one.
 */

@font-face {
  font-family: "IM Fell English SC";
  src: url("/fonts/im-fell-english-sc-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "IM Fell English";
  src: url("/fonts/im-fell-english-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Spectral";
  src: url("/fonts/spectral-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Spectral";
  src: url("/fonts/spectral-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/fonts/jetbrains-mono-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("/fonts/jetbrains-mono-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/*
 * Alegreya — the game shell's body face, and the one family here that the site layer itself
 * does not use.
 *
 * It lives in this file anyway, because this file is the single home for @font-face and the
 * game only ever mounts into `/`, which links this stylesheet. Before this, `client/styles.ts`
 * pulled Alegreya and IM Fell English SC from the Google Fonts CDN with an `@import`, which
 * meant the product paid for self-hosting (the licence obligation) and for the CDN (a
 * third-party request, and a visitor's IP handed to Google) at the same time, and downloaded
 * IM Fell English SC twice from two origins on any visit that went from the landing page into
 * the game.
 *
 * All three cuts are declared because all three are used: 400 for body text, 700 for card
 * titles and the primary buttons, 400 italic for the tip and fine-print lines.
 */

@font-face {
  font-family: "Alegreya";
  src: url("/fonts/alegreya-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alegreya";
  src: url("/fonts/alegreya-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Alegreya";
  src: url("/fonts/alegreya-400-italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
