/* geist-fonts.css -- self-hosted Geist + Geist Mono (2026-11-04).
 *
 * SUPERSEDES the Google Fonts stylesheet
 * (fonts.googleapis.com/css2?family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500).
 * OWNER ruling 2026-11-04: self-host, so a visitor's browser no longer sends
 * its IP address and user agent to Google to draw the UI chrome.
 * Record: docs/board/audit/2026-11-04_COUNSEL_refresh_markers_nov.md.
 *
 * Loaded the same way the Google stylesheet was, so the LH-1c render path is
 * unchanged: the page head PRELOADS this file (as=style, non-blocking) and a
 * CSP-safe script injects it as a real stylesheet after parse --
 * app-init.ts._injectWebFont on "/" and pricing-page.ts on /pricing.
 *
 * Files: latin-subset variable WOFF built from the google/fonts GitHub
 * repository; licence + provenance at static/fonts/geist/LICENSE.md and
 * static/fonts/geist-mono/LICENSE.md. Weight ranges match what the Google
 * request asked for. font-display: swap matches its &display=swap.
 * Swapping a font file means RENAMING it: middleware/static_cache.py serves
 * .woff as immutable.
 *
 * Pinned by tests/test_no_google_fonts_contract.py.
 */
@font-face {
  font-family: 'Geist';
  src: url('/static/fonts/geist/geist-latin.woff') format('woff');
  font-weight: 400 600;
  font-style: normal;
  font-display: swap;
  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';
  src: url('/static/fonts/geist-mono/geist-mono-latin.woff') format('woff');
  font-weight: 400 500;
  font-style: normal;
  font-display: swap;
  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;
}
