/* ═══════════════════════════════════════════════════════════════════
   FONTS — proxy + cache via Nginx (même origine que le site)
   ─────────────────────────────────────────────────────────────────
   Les fichiers sont servis depuis /fonts/ (www.jppayette.com), qui
   proxifie vers fonts.owl-systems.com avec cache disque local.

   Chemins alignés sur l'arborescence serveur réelle (/datas/fonts) :
     MuseoModerno   → /MuseoModerno/static/*.woff2   (nouvelle arbo)
     Akuina         → /akuina/ttf/*.woff2
     JetBrainsMono  → /jetbrains-mono/fonts/webfonts/*.woff2

   STRATÉGIE ANTI-CLS :
   • Fallbacks metric-override ('Akuina Fallback', 'MuseoModerno
     Fallback') alignent les métriques Arial sur celles des fonts
     custom → au swap, aucun reflow → CLS ≈ 0.
   • Toutes les fonts en font-display: swap (y compris les critiques).
     Les métriques des fallbacks neutralisent le CLS ; `block` n'apportait
     rien et coûtait 3 s de texte invisible au LCP.
   ═══════════════════════════════════════════════════════════════════ */

/* ─── MuseoModerno (display) ──────────────────────────────────────── */
@font-face {
  font-family: "MuseoModerno";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url("/fonts/MuseoModerno/static/MuseoModerno-Regular.woff2") format("woff2"),
    url("/fonts/MuseoModerno/static/MuseoModerno-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "MuseoModerno";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:
    url("/fonts/MuseoModerno/static/MuseoModerno-Medium.woff2") format("woff2"),
    url("/fonts/MuseoModerno/static/MuseoModerno-Medium.ttf") format("truetype");
}
@font-face {
  font-family: "MuseoModerno";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src:
    url("/fonts/MuseoModerno/static/MuseoModerno-SemiBold.woff2") format("woff2"),
    url("/fonts/MuseoModerno/static/MuseoModerno-SemiBold.ttf") format("truetype");
}
@font-face {
  font-family: "MuseoModerno";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src:
    url("/fonts/MuseoModerno/static/MuseoModerno-Bold.woff2") format("woff2"),
    url("/fonts/MuseoModerno/static/MuseoModerno-Bold.ttf") format("truetype");
}

/* ─── Akuina (sans-serif — corps de texte) ────────────────────────── */
@font-face {
  font-family: "Akuina";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-regular-400.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-regular-400.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-regular-slanted-400.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-regular-slanted-400.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-medium-500.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-medium-500.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-medium-slanted-500.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-medium-slanted-500.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-semibold-600.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-semibold-600.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-semibold-slanted-600.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-semibold-slanted-600.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-bold-700.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-bold-700.ttf") format("truetype");
}
@font-face {
  font-family: "Akuina";
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src:
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-bold-slanted-700.woff2") format("woff2"),
    url("/fonts/akuina/ttf/f24q3202-akuina-akuina-bold-slanted-700.ttf") format("truetype");
}

/* ─── JetBrains Mono (code, tags, mono) ───────────────────────────── */
/* Nouveau : ce bloc n'existait pas, la mono tombait sur le monospace
   système. Chemin réel : /fonts/jetbrains-mono/fonts/webfonts/. */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url("/fonts/jetbrains-mono/fonts/webfonts/JetBrainsMono-Regular.woff2") format("woff2"),
    url("/fonts/jetbrains-mono/fonts/ttf/JetBrainsMono-Regular.ttf") format("truetype");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src:
    url("/fonts/jetbrains-mono/fonts/webfonts/JetBrainsMono-SemiBold.woff2") format("woff2"),
    url("/fonts/jetbrains-mono/fonts/ttf/JetBrainsMono-SemiBold.ttf") format("truetype");
}

/* ═══════════════════════════════════════════════════════════════════
   FALLBACKS AJUSTÉS — éliminent le CLS au swap
   ─────────────────────────────────────────────────────────────────
   Métriques calculées via fontTools depuis les TTF sources :
     Akuina 400  : asc 75.00 / desc 25.00 / gap 10.00 / xHeight 50.00
     Museo 600   : asc 114.50 / desc 44.50 / gap  0.00 / xHeight 51.00
   xHeight Arial = 51.9 % → size-adjust = xHeight_font / 51.9
     Akuina : 50.00 / 51.9 × 100 = 96.34 %
     Museo  : 51.00 / 51.9 × 100 = 98.27 %
   Puis overrides = métrique / (size-adjust / 100) :
     Akuina : asc 75.00/0.9634 = 77.85  ; desc 25.00/0.9634 = 25.95 ; gap 10.00/0.9634 = 10.38
     Museo  : asc 114.50/0.9827 = 116.51 ; desc 44.50/0.9827 = 45.28 ; gap 0.00/0.9827 = 0.00
   ═══════════════════════════════════════════════════════════════════ */

@font-face {
  font-family: "Akuina Fallback";
  src: local("Arial"), local("Helvetica"), local("Liberation Sans");
  ascent-override: 77.85%;
  descent-override: 25.95%;
  line-gap-override: 10.38%;
  size-adjust: 96.34%;
}

@font-face {
  font-family: "MuseoModerno Fallback";
  src: local("Arial"), local("Helvetica"), local("Liberation Sans");
  ascent-override: 116.51%;
  descent-override: 45.28%;
  line-gap-override: 0%;
  size-adjust: 98.27%;
}
