/* ============================================================================
   Polices de marque — hebergement local, woff2, licence OFL 1.1.
   Pose le 05/09/2026, chantier design systeme, LOT 1 / geste 1.

   Remplace les deux appels reseau Google Fonts qui vivaient dans
   inc/refonte-loader.php (un pour les articles, un pour les pages de la
   refonte et les categories) et l'unique feuille JetBrains Mono qui restait
   seule active en mesure du 05/09 (DESIGN.md §4.1).

   Sous-ensemble latin + latin etendu uniquement (accents francais compris).
   Poids strictement necessaires : Inter Tight 400 et 600, Instrument Serif
   italique 400, JetBrains Mono 400.

   Inter Tight est distribuee par Google Fonts comme fonte variable (axe
   wght 100-900, verifie par lecture de la table fvar). Les poids 400 et 600
   partagent donc le meme fichier binaire par sous-ensemble : deux regles
   @font-face, un seul telechargement par sous-ensemble. Verifie par lecture
   des tables fvar/OS2 (fontTools), pas suppose.

   Fichiers sources : Google Fonts, css2 API, User-Agent moderne (woff2).
   - Inter Tight v9 (OFL 1.1)
   - Instrument Serif v5 (OFL 1.1)
   - JetBrains Mono v24 (OFL 1.1)
   Licences completes : https://scripts.sil.org/OFL — fontes tierces libres,
   aucune donnee client, aucun secret.
   ========================================================================== */

@font-face{
  font-family:'Inter Tight';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/inter-tight-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;
}
@font-face{
  font-family:'Inter Tight';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/inter-tight-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;
}
@font-face{
  font-family:'Inter Tight';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/inter-tight-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;
}
@font-face{
  font-family:'Inter Tight';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/inter-tight-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;
}
@font-face{
  font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/instrument-serif-italic-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;
}
@font-face{
  font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/instrument-serif-italic-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;
}
@font-face{
  font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jetbrains-mono-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;
}
@font-face{
  font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jetbrains-mono-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;
}

/* ── polices de repli calibrees (size-adjust) ───────────────────────────────
   But : que la substitution avant chargement (font-display:swap) ne decale
   rien. CLS mesure a 0,009 en aout 2026, a ne pas degrader (DESIGN.md §4.1).

   Methode, appliquee aux trois fontes reelles (tables OS/2 et hhea lues par
   fontTools sur les fichiers ci-dessus) contre les metriques publiees des
   polices systeme de repli (Arial, Courier New, Georgia — memes constantes
   que celles employees par les generateurs de repli usuels type next/font) :
     sizeAdjust      = (xAvgCharWidth_marque / unitsPerEm_marque)
                        / (xAvgCharWidth_repli / unitsPerEm_repli)
     ascentOverride  = (ascent_marque / unitsPerEm_marque)  / sizeAdjust
     descentOverride = (descent_marque / unitsPerEm_marque) / sizeAdjust

   Calibrage calcule, non mesure en navigateur reel : a confirmer en recette
   (empreinte DOM, `document.fonts.check`, capture avant/apres non blanche). */
@font-face{
  font-family:'Inter Tight Repli';
  src:local('Arial');
  ascent-override:70.7%;descent-override:17.6%;line-gap-override:0%;size-adjust:137%;
}
@font-face{
  font-family:'JetBrains Mono Repli';
  src:local('Courier New');
  ascent-override:102.4%;descent-override:30.1%;line-gap-override:0%;size-adjust:99.7%;
}
@font-face{
  font-family:'Instrument Serif Repli';
  src:local('Georgia');
  ascent-override:104.8%;descent-override:32.8%;line-gap-override:0%;size-adjust:94.5%;
}
