/* ==========================================================================
   Generation II web fonts — self-hosted (latin subset only)
   Archivo (var: wdth + wght), Newsreader (var: opsz + wght, roman + italic),
   Geist Mono (var: wght). All OFL, files from Google Fonts (Archivo v25,
   Newsreader v26, Geist Mono v6). Files live in /assets/fonts/gen2/.
   unicode-range values are exactly what Google serves for "latin".
   ========================================================================== */

/* ---- Archivo -------------------------------------------------------------- */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 75% 125%;
  font-display: swap;
  src: url("/assets/fonts/gen2/archivo-var-latin.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;
}

/* ---- Newsreader (opsz 6..72 is applied automatically via font-optical-sizing:auto, the default) ---- */
@font-face {
  font-family: "Newsreader";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/gen2/newsreader-var-latin.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: "Newsreader";
  font-style: italic;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/gen2/newsreader-italic-var-latin.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;
}

/* ---- Geist Mono ----------------------------------------------------------- */
@font-face {
  font-family: "Geist Mono";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/assets/fonts/gen2/geistmono-var-latin.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;
}

/* ==========================================================================
   Metric-matched fallbacks (CLS reduction while the woff2 loads).
   Computed with fontTools from the real font tables:
     size-adjust      = avg advance (a-z + space) of web font / same for local font
     ascent-override  = (typo/hhea ascender / upm) / size-adjust
     descent-override = (|descender| / upm) / size-adjust
     line-gap-override = (lineGap / upm) / size-adjust   (all four fonts: 0)
   Local fonts measured on this Mac: Arial, Georgia, Menlo Regular
   (ascent/descent/lineGap read from OS/2 typo or hhea per fsSelection bit 7).
   Archivo measured at wght 400 / wdth 100 instance; Newsreader and Geist Mono
   at their default instance (wght 400). Helvetica and Courier New were not
   measured directly — they are listed as second-choice local() sources and
   share near-identical widths with Arial / Menlo respectively.
   Usage: font-family: "Archivo", "Archivo Fallback", sans-serif;
   ========================================================================== */
@font-face {
  font-family: "Archivo Fallback";
  src: local("Arial"), local("Helvetica"), local("Helvetica Neue");
  size-adjust: 100.81%;
  ascent-override: 87.10%;
  descent-override: 20.83%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Newsreader Fallback";
  font-style: normal;
  src: local("Georgia");
  size-adjust: 92.65%;
  ascent-override: 79.33%;
  descent-override: 28.60%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Newsreader Fallback";
  font-style: italic;
  src: local("Georgia Italic"), local("Georgia-Italic"), local("Georgia");
  size-adjust: 83.84%;
  ascent-override: 87.67%;
  descent-override: 31.61%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Geist Mono Fallback";
  src: local("Menlo"), local("Menlo Regular"), local("Courier New");
  size-adjust: 99.66%;
  ascent-override: 100.84%;
  descent-override: 29.60%;
  line-gap-override: 0%;
}
