/*
 * Self-hosted webfonts.
 *
 * Owner's decision, 2026-08-08: no fonts.googleapis.com. These files ship in
 * the repo, so no third-party stylesheet, script or font is loaded. Mercury's own
 * `mercury-googlefonts` handle (which pulls Roboto, a face the design spec
 * never uses) is dequeued in functions.php.
 *
 * All three families are SIL Open Font License. Licence texts sit alongside
 * the woff2 files in ../fonts/.
 *
 * Latin subset only, per sms-design-tokens.md §2. woff2 only — every browser
 * that matters has supported it since 2016, and a woff fallback would double
 * the payload for browsers that will never request it.
 *
 * `font-display: swap` per the spec: text paints immediately in the fallback
 * and reflows when the webfont lands. For a reference site, readable-now beats
 * pixel-perfect-later.
 */

/* --- Display: Young Serif. Single weight by design. ---------------------
 * Do NOT add a 700 face or allow synthetic bold. sms-design-tokens.md §2:
 * build hierarchy with size, case and spacing instead.
 */
@font-face {
  font-family: "Young Serif";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/young-serif-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
    U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Body & UI: Atkinson Hyperlegible ------------------------------------
 * Chosen for character disambiguation, which is the whole point of it. Ships
 * 400, 400 italic and 700 — enough for body copy, emphasis and strong.
 */
@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
    U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
    U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Atkinson Hyperlegible";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
    U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* --- Utility: IBM Plex Mono ----------------------------------------------
 * Scoped tightly to metadata, datestamps, scores and table labels. Per the
 * spec, this is the first family to drop if Core Web Vitals suffer — fall
 * back to the body face with tabular-nums.
 */
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6,
    U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
    U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
