/* ============================================================
   CLAUSEUR — POLICES AUTO-HEBERGEES
   ============================================================
   Remplace l'ancien CDN Google Fonts (fonts.googleapis.com).
   Raisons :
   - CLS : le fallback a metriques ajustees (size-adjust) supprime
     le reflow quand la vraie police arrive (swap).
   - Confidentialite : plus aucune requete tierce vers Google.
   - Perf : woff2 latin variables, meme origine, caches 1 an immutable.

   Fichiers : woff2 variables, sous-ensemble latin (couvre le francais,
   y compris œ U+0152-0153). Les glyphes hors charset (ex. fleche →)
   retombent sur la police systeme, comme avant.

   Les metriques des @font-face "*Fallback" sont generees par capsize
   (createFontStack) a partir des metriques reelles des polices.
   ============================================================ */

/* ===== Vraies polices (variables) ===== */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-var.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/geist-latin-var.woff2') format('woff2');
}
@font-face {
  font-family: 'Geist Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('/assets/fonts/geist-mono-latin-var.woff2') format('woff2');
}

/* ===== Fallback a metriques ajustees (anti-CLS) =====
   Utilises dans la pile font-family de tokens.css :
   'Fraunces' -> 'Fraunces Fallback' (Georgia ajuste) -> Georgia
   'Geist'    -> 'Geist Fallback' (Arial ajuste)      -> system-ui */
@font-face {
  font-family: 'Fraunces Fallback';
  src: local('Georgia');
  font-display: swap;
  ascent-override: 92.9623%;
  descent-override: 24.2386%;
  size-adjust: 105.2039%;
}
@font-face {
  font-family: 'Geist Fallback';
  src: local('Arial'), local('ArialMT');
  font-display: swap;
  ascent-override: 95.9379%;
  descent-override: 28.1609%;
  line-gap-override: 0%;
  size-adjust: 104.7553%;
}
