/* Self-hosted fonts (no CDN, ruled). Fetched from Google Fonts (OFL licence),
   latin subset, woff2 only. Every face has a real fallback in tokens.css. */

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url('CormorantGaramond-500-italic.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: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url('CormorantGaramond-600-italic.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: 'Poppins';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url('Poppins-300-italic.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: 'Poppins';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('Poppins-300.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: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('Poppins-400.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: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('Poppins-500.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: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('Poppins-600.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;
}

/* THE METRIC-MATCHED FALLBACK (gate phase two, 2026-08-31). Before Poppins
   arrives, text renders in this local face wearing Poppins's OWN vertical
   metrics (read from the shipped woff2: ascent 1050, descent 350, line gap
   100, per 1000 upm), so the swap changes glyphs but never geometry — the
   header's height cannot breathe with font arrival, which the flicker gate
   photographed as a 2px shift of the whole header row on the phone lane's
   first destination paint. */
@font-face {
  font-family: 'Poppins-fallback';
  src: local('Arial');
  ascent-override: 94.25%;   /* 105% / 1.114 — this Chromium scales the overrides by
                                size-adjust, so they are pre-divided to land back on
                                Poppins's real 105/35/10 (verified by measurement) */
  descent-override: 31.42%;
  line-gap-override: 8.98%;
  size-adjust: 111.4%; /* measured in-browser: Poppins 500 is 111.42% of Arial's width
                          for the chip strings; heights already match via the overrides.
                          This stops fallback text wrapping differently to Poppins. */
}

/* THE DISPLAY FACE'S METRIC-MATCHED FALLBACK (Codex read 04, ruled 2026-08-31).
   Same recipe as Poppins-fallback: Cormorant Garamond's own vertical metrics
   from the shipped woff2 (ascent 924, descent 287, line gap 0, per 1000 upm),
   widths measured in the browser and pinned with size-adjust; the overrides are
   pre-divided by size-adjust because this Chromium scales them by it. */
@font-face {
  font-family: 'Cormorant-fallback';
  src: local('Georgia');
  font-style: italic;
  ascent-override: 115.15%;  /* 92.4% / 0.8024 — pre-divided, see Poppins-fallback */
  descent-override: 35.77%;  /* 28.7% / 0.8024 */
  line-gap-override: 0%;
  size-adjust: 80.24%;       /* measured in-browser: Cormorant Garamond 500 italic is
                                80.24% of Georgia italic's width. Home uses the 500
                                italic only (the 600 face never loads there). */
}

/* THE SISTER COMPANY'S FACES (About v6, the White Sand Intelligence section):
   Spectral 300/400 upright and italic, Hanken Grotesk 300/400/500 — exactly the
   faces the drawing's Google Fonts link requested, self-hosted (no CDN, ruled).
   The woff2 files are Marcus's download (listed in the run's hand-download
   list); until they land the section falls back to the stack's serif/sans. */
@font-face { font-family: 'Spectral'; font-style: normal; font-weight: 300; font-display: swap; src: url('Spectral-300.woff2') format('woff2'); }
@font-face { font-family: 'Spectral'; font-style: normal; font-weight: 400; font-display: swap; src: url('Spectral-400.woff2') format('woff2'); }
@font-face { font-family: 'Spectral'; font-style: italic; font-weight: 300; font-display: swap; src: url('Spectral-300-italic.woff2') format('woff2'); }
@font-face { font-family: 'Spectral'; font-style: italic; font-weight: 400; font-display: swap; src: url('Spectral-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 300; font-display: swap; src: url('HankenGrotesk-300.woff2') format('woff2'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 400; font-display: swap; src: url('HankenGrotesk-400.woff2') format('woff2'); }
@font-face { font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 500; font-display: swap; src: url('HankenGrotesk-500.woff2') format('woff2'); }
