/* ============================================================
   Self-hosted fonts + metric-compatible fallbacks
   Replaces Google Fonts remote stylesheet (was blocking ~826ms).

   Inter v20 (variable, wght 400-600) and
   Montserrat v31 (variable, wght 700-900) served from local
   WOFF2 files. Metric-compatible @font-face fallbacks are
   declared first so the fallback font occupies near-identical
   vertical and horizontal space as the web font, reducing
   layout shift during font-display: swap.

   Fallback metric derivation:
     Inter UPM=2048: ascender=96.88%, descender=24.12%
     Montserrat UPM=1000: ascender=96.80%, descender=25.10%
     size-adjust for Montserrat: Arial Black advance widths are
     ~10% narrower than Montserrat's wide geometric forms at
     equal weight, so size-adjust: 110% compensates.
   ============================================================ */

/* ── Metric-compatible fallback for Inter (body / UI text) ─── */
@font-face {
  font-family: 'Inter Fallback';
  src: local('Arial');
  font-weight: 400 600;
  font-style: normal;
  ascent-override: 96.88%;
  descent-override: 24.12%;
  line-gap-override: 0%;
  size-adjust: 101.6%;
}

/* ── Metric-compatible fallback for Montserrat (headings) ──── */
@font-face {
  font-family: 'Montserrat Fallback';
  src: local('Arial Black'), local('Arial Bold'), local('Arial');
  font-weight: 700 900;
  font-style: normal;
  ascent-override: 96.80%;
  descent-override: 25.10%;
  line-gap-override: 0%;
  size-adjust: 110%;
}

/* ── Self-hosted Inter v20 — latin-ext ─────────────────────── */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  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;
}

/* ── Self-hosted Inter v20 — latin ─────────────────────────── */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  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;
}

/* ── Self-hosted Montserrat v31 — latin-ext ─────────────────── */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url('../assets/fonts/montserrat-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;
}

/* ── Self-hosted Montserrat v31 — latin ─────────────────────── */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url('../assets/fonts/montserrat-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;
}

/* ── Override font stacks: insert metric-compatible fallbacks ─
   Loaded after styles.css so this :root block wins for the
   homepage. Other pages (which don't load fonts.css) keep the
   original stacks from styles.css and skip 'Inter Fallback' /
   'Montserrat Fallback' since those @font-face blocks aren't
   defined in their context.                                   */
:root {
  --font-display: 'Montserrat', 'Montserrat Fallback', 'Segoe UI', system-ui, sans-serif;
  --font-body:    'Inter', 'Inter Fallback', 'Segoe UI', system-ui, sans-serif;
}
