/* 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;
}
