/* ============================================================================
   fonts.css — SELF-HOSTED webfonts. The ONE place @font-face is declared.

   Every surface links this at /fonts/fonts.css instead of fonts.googleapis.com.
   Rationale beyond privacy: an external font CDN makes the app's typography — and
   the release gate's headless-Chromium smoke — dependent on egress to a third
   party. A network that blocks fonts.googleapis.com (common on privacy/ad
   blocklists) previously made browser-smoke hang until its 20s load-event wall
   and fail the whole gate, with nothing wrong in the code.

   Files are vendored from the @fontsource packages (latin subset) into src/fonts/
   and copied to dist/fonts/ by scripts/build.mjs. The gateway serves /fonts/*
   locally for all surfaces.

   Weights here MUST cover every weight the design system asks for in
   styleguide/tokens.css --font-serif / --font-sans / --font-num. Adding a weight
   to a font-weight declaration without vendoring the file gives you a browser
   synthesising it — tests/fonts-offline.test.ts pins the pairing.
   ============================================================================ */

/* —— Outfit: the DISPLAY voice (--font-serif) —— */
@font-face{font-family:'Outfit';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/outfit-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/outfit-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/outfit-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Outfit';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/outfit-latin-700-normal.woff2') format('woff2')}

/* —— Inter: the scanning voice (--font-sans) —— */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/inter-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/inter-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/inter-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/inter-latin-700-normal.woff2') format('woff2')}

/* —— JetBrains Mono: every figure aligns in this (--font-mono / --font-num) —— */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/jetbrains-mono-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/jetbrains-mono-latin-700-normal.woff2') format('woff2')}
