/* ==========================================================================
   POLICES — auto-hébergées, aucun appel externe
   --------------------------------------------------------------------------
   Trois familles, six fichiers. Pas un de plus.

   CE QUI A ÉTÉ CORRIGÉ ICI, ET POURQUOI C'ÉTAIT COÛTEUX
   La feuille précédente déclarait dix-huit @font-face, un par graisse et par
   plage de caractères. Or les fichiers étaient IDENTIQUES d'une graisse à
   l'autre — même empreinte md5 pour Public Sans 400, 500, 600 et 800. Ce sont
   des polices variables : un seul fichier porte toute la plage de graisses.

   Le navigateur téléchargeait donc quatre fois le même fichier de 26 ko pour
   Public Sans, trois fois pour Oswald, deux fois pour JetBrains Mono : 235 ko
   transférés pour 79 ko utiles, soit 155 ko de doublons purs à chaque première
   visite. C'était, de loin, le premier poste de poids du site.

   Une plage `font-weight: 100 900` sur un seul @font-face laisse le navigateur
   choisir l'instance dans le fichier variable. Le rendu est identique, à un
   détail près : les graisses sont désormais VRAIES, là où le navigateur devait
   auparavant les synthétiser à partir d'un seul dessin.

   `font-display: swap` reste sur chaque déclaration : le texte s'affiche
   immédiatement dans une police de repli, puis bascule. Sur un outil consulté
   dans l'urgence, mieux vaut un texte lisible tout de suite qu'un texte parfait
   trois cents millisecondes plus tard.

   ⚠️ RÈGLE À TENIR : remplacer un de ces fichiers impose de le RENOMMER. Les
   URL de polices ne portent pas de `?v=`, et elles sont servies en `immutable`
   pour un an — un écrasement resterait en cache aussi longtemps.
   ========================================================================== */

/* Plages de caractères reprises de Google Fonts. Le latin-ext n'est téléchargé
   que si la page contient réellement un de ces caractères : ce découpage évite
   de charger l'europe centrale pour un site en français. */

/* --- JetBrains Mono — références d'articles, nombres, codes ---------------- */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-500-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: 100 900;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-500-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;
}

/* --- Oswald — titres, questions, tout ce qui se lit de loin ---------------- */
@font-face {
  font-family: 'Oswald';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/oswald-500-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: 'Oswald';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/oswald-500-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;
}

/* --- Public Sans — le corps, ce qui se lit vraiment ------------------------ */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/public-sans-400-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: 'Public Sans';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/fonts/public-sans-400-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;
}
