/* ============================================================
   Geist + Geist Mono — self-hosted
   ============================================================

   These were served from fonts.googleapis.com, which put a render-blocking
   third-party stylesheet in the critical path: the browser had to fetch and
   parse that CSS before it even learned the font file URLs, across a second DNS
   lookup and TLS handshake. Self-hosting removes the round trip and the
   third-party dependency, and it is one fewer origin for a future CSP to allow.

   One variable file per family rather than four static weights each. The site
   uses 300-600 of Geist and 400-600 of Geist Mono; a single 32KB file covers
   every one of them, and any weight in between.

   Subset to the Latin range Google was already serving (plus the punctuation
   this site actually uses: £, en/em dashes, curly quotes). Licence: SIL Open
   Font Licence 1.1, copies alongside the files in /fonts.

   `swap`: text paints immediately in the fallback and re-renders when the font
   arrives, which is the right trade for a content site — never invisible text.
   ============================================================ */

@font-face {
  font-family: "Geist";
  src: url("/fonts/geist-var.woff2") format("woff2-variations"),
       url("/fonts/geist-var.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("/fonts/geist-mono-var.woff2") format("woff2-variations"),
       url("/fonts/geist-mono-var.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
