/* Eira portal v2 — self-hosted fonts (10 Sept 2026 fix session, item #10b).
 *
 * Replaces v2.css's Google-hosted font stylesheet pull (Google's font-CSS
 * host handing off to Google's font-FILE host), which blocked first paint
 * on an extra cross-origin round trip. Discovered which physical files
 * the suite actually needs by
 * running the real local walk server (docs/portal-port/2026-09-08-v2-port-
 * readiness/walk_server.py --suite v2) and watching headless Chromium's
 * network requests while rendering overview.html with a real seeded
 * client: exactly 4 distinct woff2 files were fetched for the full
 * Fraunces ital,wght@0,400;0,500;0,600;1,400;1,500 + Hanken Grotesk
 * wght@400;500;600;700 + JetBrains Mono wght@400;500;600;700 request (13
 * @font-face combos in Google's own response) -- Google serves the SAME
 * physical file for multiple declared weights within a family+style pair
 * (confirmed by diffing the src URL of every matching @font-face block
 * against the requests actually made, not assumed) -- so the 13 rules
 * below collapse to exactly these 4 local files. "latin" subset only
 * (matches what Chromium requested for this suite's English UI copy).
 *
 * No <link rel="preconnect"> is needed anywhere in the v2 suite any more
 * — with this file in place, no page has any remaining external font
 * origin to warm a connection to.
 */

/* ---------- Fraunces italic (400, 500) -> fraunces-italic.woff2, 44.6 KB ---------- */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/eira/fraunces-italic.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/eira/fraunces-italic.woff2) format('woff2');
}

/* ---------- Fraunces normal (400, 500, 600) -> fraunces-normal.woff2, 35.8 KB ---------- */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/eira/fraunces-normal.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/eira/fraunces-normal.woff2) format('woff2');
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/eira/fraunces-normal.woff2) format('woff2');
}

/* ---------- Hanken Grotesk (400, 500, 600, 700) -> hanken-grotesk.woff2, 33.9 KB ---------- */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/eira/hanken-grotesk.woff2) format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/eira/hanken-grotesk.woff2) format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/eira/hanken-grotesk.woff2) format('woff2');
}
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/eira/hanken-grotesk.woff2) format('woff2');
}

/* ---------- JetBrains Mono (400, 500, 600, 700) -> jetbrains-mono.woff2, 30.7 KB ---------- */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/static/fonts/eira/jetbrains-mono.woff2) format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/static/fonts/eira/jetbrains-mono.woff2) format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/static/fonts/eira/jetbrains-mono.woff2) format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/static/fonts/eira/jetbrains-mono.woff2) format('woff2');
}
