/* ════════════════════════════════════════════════════════════════════════════
   Haven brand type system — self-hosted woff2 (no third-party font CDN).
   Canon: .agent/steering/brand-typography.md · Lattice: INV-BRAND-001
   Display = Newsreader · UI/body = Geist · Mono/ciphertext = IBM Plex Mono
   Served from /brand-fonts/ (same-origin → CSP font-src 'self').
   ════════════════════════════════════════════════════════════════════════════ */

/* ── Display serif — Newsreader (headlines, hero, section h2, page titles) ──── */
@font-face{font-family:'Newsreader';src:url('/brand-fonts/newsreader-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/brand-fonts/newsreader-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/brand-fonts/newsreader-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/brand-fonts/newsreader-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Newsreader';src:url('/brand-fonts/newsreader-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

/* ── UI / body sans — Geist (buttons, labels, eyebrows, forms, body, nav) ─────
   300 carries the display sizes on detente.dev: the hero h1 and every section h2
   are set light, and a request for 300 with nothing below it resolves UP to 400,
   which renders the largest type on the page heavier than drawn and reports
   nothing. Official Vercel Geist v1.7.2, usWeightClass 300. */
@font-face{font-family:'Geist';src:url('/brand-fonts/geist-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Geist';src:url('/brand-fonts/geist-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Geist';src:url('/brand-fonts/geist-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Geist';src:url('/brand-fonts/geist-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Geist';src:url('/brand-fonts/geist-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Geist';src:url('/brand-fonts/geist-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}

/* ── Mono — IBM Plex Mono (ciphertext, hex, addresses, technical specs) ─────── */
@font-face{font-family:'IBM Plex Mono';src:url('/brand-fonts/plex-mono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/brand-fonts/plex-mono-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/brand-fonts/plex-mono-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
