/* GEST M24 — les polices de la charte, servies PAR NOUS.
 *
 * Charger une police depuis fonts.googleapis.com envoie l'adresse IP de chaque
 * utilisateur — avocat comme client de l'espace client — à un tiers, à chaque
 * page. Ces fichiers sont donc hébergés ici, et rien dans l'application ne
 * sort vers un domaine extérieur.
 *
 * Toutes les familles sont sous SIL Open Font License 1.1 (licences conservées
 * dans `app/statique/polices/`). Seuls les sous-ensembles latin et latin-ext
 * sont embarqués ; `unicode-range` fait que latin-ext ne se télécharge que
 * lorsqu'un caractère l'exige — en français, le « œ » suffit.
 *
 * `font-display: swap` : le texte s'affiche tout de suite avec la police du
 * système, puis bascule. Sur un écran de délais, attendre une police pour lire
 * une échéance serait absurde.
 *
 * 🔴 UN FICHIER PAR FAMILLE ET PAR SOUS-ENSEMBLE, PAS UN PAR GRAISSE.
 * Inter, Noto Sans Mono et Source Code Pro sont des fontes **variables** : le
 * même fichier porte tout l'axe de graisse (`wght`). Google Fonts sert donc
 * exactement les mêmes octets pour 400, 500 et 600 — et la version précédente
 * de ce fichier, qui déclarait une URL par graisse, faisait **télécharger trois
 * fois le même fichier** au navigateur. Mesuré sur le dossier : 1 107 Ko de
 * woff2 dont **705 Ko de doublons**, dont 318 Ko pour la seule police de
 * données. La forme correcte est une déclaration par sous-ensemble avec une
 * **plage** de graisses, que le navigateur interpole lui-même.
 *
 * Conséquence de nommage : le nom de fichier ne porte plus la graisse, puisque
 * le fichier n'en a pas une seule. Bebas Neue reste en 400 : elle est statique,
 * et c'est le seul cas où le nom garde son chiffre.
 *
 * Les bornes des plages sont celles réellement inscrites dans la table `fvar`
 * de chaque fichier, relevées et non supposées : Inter 100–900, Noto Sans Mono
 * 100–900, Source Code Pro **200**–900. Déclarer `font-weight: 400` sur une
 * variable dont l'instance par défaut est 200, comme on le faisait pour Source
 * Code Pro, laisse le rendu dépendre de l'interprétation du navigateur.
 */

/* ── Bebas Neue — marque et grands titres. Statique, une seule graisse. ──── */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/statique/polices/bebas-neue-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: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/statique/polices/bebas-neue-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;
}

/* ── Inter — l'interface, 95 % des pixels du programme. Variable 100–900. ── */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/statique/polices/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;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/statique/polices/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;
}

/* ── Noto Sans Mono — références, montants, dates, durées (D-039).
 * Remplace Source Code Pro, qui dessine un zéro POINTÉ par construction
 * qu'aucun réglage OpenType n'enlève. Vérifié dans les contours : Source Code
 * Pro porte un troisième contour de 104 × 116 unités au milieu du zéro, Noto
 * Sans Mono n'en a aucun. Variable 100–900, chiffres à largeur fixe.
 */
@font-face {
  font-family: 'Noto Sans Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/statique/polices/noto-sans-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: 'Noto Sans Mono';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/statique/polices/noto-sans-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;
}

/* ── Playfair Display — les TITRES et les exergues. Direction « Le Registre »,
 * choisie par MT le 26/08/2026.
 *
 * 🔴 Elle était nommée par la charte §2.3 et par le jeton `--police-exergue`
 * depuis le 22/08, et elle n'a jamais été embarquée : les trois exergues du
 * programme se rendaient donc en **Georgia**, sans que rien ne le signale. C'est
 * exactement le défaut n°2 que ce fichier existe pour empêcher — « un
 * `@font-face` qui pointe vers un fichier absent replie en silence » — sauf
 * qu'ici il n'y avait même pas de `@font-face`. Le jeton mentait.
 *
 * Variable 400–700, roman ET italique : le roman porte les titres du registre,
 * l'italique l'exergue. Quatre fichiers, 121 Ko au total — c'est le prix de la
 * direction, et il est payé une fois.
 *
 * Servie par nous, jamais par `fonts.gstatic.com` : la règle du 22/08 ne
 * s'assouplit pas pour une police de titre. SIL Open Font License 1.1,
 * `LICENCE-playfair-display.txt` à côté des fichiers.
 */
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/statique/polices/playfair-display-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: 'Playfair Display';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/statique/polices/playfair-display-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: 'Playfair Display';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('/statique/polices/playfair-display-italique-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: 'Playfair Display';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('/statique/polices/playfair-display-italique-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;
}

/* ── Source Code Pro — plus utilisée par aucun jeton depuis D-039. Conservée
 * le temps que la bascule soit relue sur un écran réel : une police retirée
 * trop tôt casse l'affichage en attendant. À supprimer avec ses deux fichiers
 * quand Maxim aura confirmé le zéro.
 */
@font-face {
  font-family: 'Source Code Pro';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('/statique/polices/source-code-pro-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: 'Source Code Pro';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('/statique/polices/source-code-pro-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;
}
