/* Self-hosted Geist. Replaces the Google Fonts <link> on every page.
 *
 * ⚠️ WHY. The Google Fonts link put TWO EXTERNAL ORIGINS on the critical path
 * before a single glyph could paint: fonts.googleapis.com for this stylesheet
 * (measured 0.44s on its own, and it is render-blocking) and then
 * fonts.gstatic.com for the files it points at — each needing its own DNS
 * lookup, TLS handshake and round trip. Served from our own origin the browser
 * is already connected, and the woff2 files are preloaded in the page head so
 * they start downloading immediately rather than waiting for this file to parse.
 *
 * ⚠️ Geist and Geist Mono are Vercel's, under the SIL Open Font License, which
 * expressly permits redistribution — self-hosting is allowed. Do not swap these
 * for a font without that permission.
 *
 * Both families are VARIABLE, so one file covers every weight: 100-900 for
 * Geist, 400-600 for Geist Mono. Four files, 82 KB total, against the six
 * requests and two extra connections the Google version needed.
 *
 * ⚠️ latin + latin-ext only. This site is English; Cyrillic, Vietnamese and the
 * symbol subsets were dropped deliberately. A name in another script falls back
 * to the system font, which is correct behaviour rather than a gap — shipping
 * every subset would more than double the bytes for text that never appears.
 *
 * ⚠️ `font-display: swap` is load-bearing: text paints immediately in the
 * fallback and re-renders when the file lands, so a slow font can never leave a
 * blank page. It is what the Google URL asked for too (&display=swap).
 */

@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/geist-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Geist";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/geist-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: "Geist Mono";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/geist-mono-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Geist Mono";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("/fonts/geist-mono-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;
}


/* ── Inter, self-hosted ──────────────────────────────────────────────────────
   Used by /account and /app, which are built from the Claude Design reference.

   ⚠️ SELF-HOSTED, not linked from Google. The site's CSP is
   `style-src 'self' 'unsafe-inline'` and `font-src 'self'`, so a
   fonts.googleapis.com <link> is blocked and the page falls back to Segoe UI
   with nothing on the page to say so - which is precisely how the two rebuilt
   pages came to look nothing like the reference. Widening the CSP would also
   have put two external origins back on the critical path, which is what
   self-hosting Geist was done to remove.

   Variable weight 400-800, which is the range those two pages use (400 body,
   500/600 labels, 700/800 headings). OFL, so this is licensed.
   Regenerate with scratchpad/getinter.py. */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/inter-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: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
