/* Self-hosted fonts for the PUBLIC surface (marketing + KB) — 2026-08-01.
 *
 * font-display: SWAP + metric-matched fallbacks + inline hero subsets.
 * History: 2026-07-28 shipped `optional` to kill CLS 0.202. `optional` grants
 * ~100 ms after which the fallback is FROZEN for the page's lifetime — on any
 * cold connection the first-ever visit renders system fonts and never
 * recovers; the refresh is correct because the cache is warm. Every verifier
 * had a warm cache, so it survived a full public-surface pass. That trade is
 * reversed here WITHOUT giving the CLS back:
 *   1. index.html inlines ~5.4 KB of WOFF subsets (hero glyphs, derived from
 *      the rendered <h1> by marketing-site/tools/build-hero-subset.py) — the
 *      headline is in the document itself, real typeface on the first paint
 *      of a cold visit, no network, no block period.
 *   2. Every face below is `swap`, and the *-Fallback faces occupy the same
 *      space as the web font (size-adjust / ascent- / descent- /
 *      line-gap-override, MEASURED via canvas advance-width ratio in
 *      Chromium + the web fonts' own hhea/OS2 tables — see
 *      tools/measure-fallback-metrics.mjs), so the swap moves ~nothing.
 * Guarded by docs/proofs/ops/marketing-first-paint-proof.php (gate tier):
 * re-derives the h1 glyph set, parses the inlined WOFF cmaps, and REFUSES the
 * release on `optional`, on a missing override, or on copy that outgrew the
 * subset. Cold-profile behavioural evidence: tools/first-paint-guard.mjs.
 * NOTE `src:local(sans-serif)` does NOT resolve in Chromium (measured
 * 2026-08-01, width identical to an unknown family) — fallbacks must name
 * real faces per platform; that is why there are separate Android faces. */

/* ── the real faces — swap, never optional ── */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter-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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter-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:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-normal-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:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-normal-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:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-italic-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:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-italic-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:'JetBrains Mono';font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/jetbrains-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}

/* ── metric-matched fallbacks (values measured, not copied — 2026-08-01) ──
 * One face per metric target; the stack tries them in order and the first
 * family that exists on the platform wins with overrides tuned FOR it.
 * Desktop (Arial/Times metric class incl. Liberation/Arimo/Tinos clones),
 * then Android (Roboto / Noto Serif). */
@font-face{font-family:'Inter Fallback';font-weight:100 550;src:local('Arial'),local('Helvetica Neue'),local('Liberation Sans'),local('Arimo');size-adjust:106.84%;ascent-override:90.67%;descent-override:22.58%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';font-weight:551 900;src:local('Arial Bold'),local('Arial-BoldMT'),local('Helvetica Neue Bold'),local('Liberation Sans Bold'),local('Arimo Bold');size-adjust:100.71%;ascent-override:96.19%;descent-override:23.95%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback Android';font-weight:100 550;src:local('Roboto');size-adjust:107.48%;ascent-override:90.14%;descent-override:22.44%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback Android';font-weight:551 900;src:local('Roboto Bold'),local('Roboto-Bold');size-adjust:108.23%;ascent-override:89.51%;descent-override:22.29%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback';font-style:normal;src:local('Times New Roman'),local('Liberation Serif'),local('Tinos'),local('Georgia');size-adjust:83.46%;ascent-override:118.62%;descent-override:37.14%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback';font-style:italic;src:local('Times New Roman Italic'),local('TimesNewRomanPS-ItalicMT'),local('Liberation Serif Italic'),local('Tinos Italic'),local('Times New Roman'),local('Liberation Serif');size-adjust:88.61%;ascent-override:111.73%;descent-override:34.99%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback Android';font-style:normal;src:local('Noto Serif');size-adjust:70.55%;ascent-override:140.33%;descent-override:43.94%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback Android';font-style:italic;src:local('Noto Serif Italic'),local('NotoSerif-Italic'),local('Noto Serif');size-adjust:76.93%;ascent-override:128.69%;descent-override:40.30%;line-gap-override:0%}
@font-face{font-family:'JetBrains Mono Fallback';src:local('Courier New'),local('Liberation Mono'),local('Cousine'),local('Roboto Mono');size-adjust:99.98%;ascent-override:102.02%;descent-override:30.01%;line-gap-override:0%}
