/* Self-hosted brand faces.

   This is the file that satisfies the real constraint: nothing may be fetched
   from the network at runtime on the device-session path, and a binary served
   from our own origin (site, cache-first) or bundled into the app never is.

   No CDN font stylesheet is loaded on any surface, so the site and the apps
   render identical type with no network dependency at all — which is also what
   keeps the CSP at `script-src 'self'` and /privacy's "no third-party request"
   claim true.

   Variable fonts: one file each, full 100-900 axis, so the Light 300 that every
   heading and every mono label depends on comes from the real design rather
   than a synthesised weight. font-synthesis is disabled at the consumer.

   WOFF2, NOT TTF, since 2026-09-08. Same sfnt tables in a Brotli container:
   the conversion was verified glyph-for-glyph — identical glyph order, identical
   unitsPerEm, identical hmtx for every glyph, and the same single `wght`
   100-900 axis — so nothing renders differently. It is 60% smaller, and
   GeistMono roman is the one face a visitor actually downloads: 173 kB -> 71 kB
   on the critical path. Do not "restore" the TTFs; every browser that can run
   this site's ES modules has supported WOFF2 for years.

   ONLY GeistMono IS EVER FETCHED. Both stylesheets set `--font-sans` to
   `var(--font-mono)` and `--font-grotesk` is defined but never applied, so the
   two Geist faces below are declared and never used. @font-face is lazy — an
   unused family costs zero bytes — and they stay declared so that reaching for
   the grotesk is a one-line CSS change rather than a re-import. The italics are
   the same story: nothing on the site sets `font-style: italic`.

   The preload in each page's <head> names GeistMono roman and nothing else, for
   the same reason. If you ever apply --font-grotesk, add its preload there too.

   Licence: SIL Open Font License 1.1 — see /assets/fonts/OFL.txt. */

@font-face {
  font-family: "Geist";
  src: url("/assets/fonts/Geist-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Geist";
  src: url("/assets/fonts/Geist-Italic-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Geist Mono";
  src: url("/assets/fonts/GeistMono-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Geist Mono";
  src: url("/assets/fonts/GeistMono-Italic-VariableFont_wght.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}
