/* ============================================================
   Self-hosted faces  (was Google Fonts)

   WHY: `is-ready` — the starting gun for every reveal on the page —
   waits on `document.fonts.ready`. With the families on fonts.gstatic.com
   that put a third party on the critical path of the entire load
   choreography, and the render-delay showed up directly in LCP (~2.2s).
   Served from our own origin the same wait resolves off the connection
   the HTML already opened.

   SUBSET: latin only, exactly the subset the browser was already picking
   for this copy. Note the range deliberately does NOT cover U+2192 (→) or
   U+2197 (↗): Google's latin subset doesn't either, so those arrows have
   always come from the system fallback. Keeping the range identical
   preserves that rendering rather than silently changing it.

   Both Geist Mono weights resolved to the SAME variable file upstream
   (md5-identical), so it is declared once across 100–900.

   `font-display:swap` is belt-and-braces — the load sequence already
   holds the reveal until the faces are ready, so in practice nothing
   paints on the fallback.
   ============================================================ */

@font-face{
  font-family:'Instrument Serif';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url('../assets/fonts/instrument-serif.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:'Instrument Serif';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('../assets/fonts/instrument-serif-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;
}

/* Variable across 400–600. The comp's column titles sit at 450, which is
   why the range matters — the static instances measured +7% / -11% ink. */
@font-face{
  font-family:'Instrument Sans';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('../assets/fonts/instrument-sans-var.woff2') format('woff2-variations'),
      url('../assets/fonts/instrument-sans-var.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:'Instrument Sans';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url('../assets/fonts/instrument-sans-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:'Geist Mono';
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url('../assets/fonts/geist-mono-var.woff2') format('woff2-variations'),
      url('../assets/fonts/geist-mono-var.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;
}
