/* ==========================================================================
   PilotScale — polices auto-hébergées

   Les polices sont servies depuis ce dépôt, plus aucun appel à
   fonts.googleapis.com ni fonts.gstatic.com : une requête tierce en moins, pas
   de résolution DNS ni de négociation TLS supplémentaire avant le premier texte
   affiché, et aucune adresse IP de visiteur transmise à Google (le RGPD
   n'admet pas cet appel sans consentement).

   Sora porte le texte et les titres, Space Grotesk les chiffres tabulaires,
   Manrope le grec. Le monospace de --font-mono est celui du système, il n'y a
   pas de fichier à télécharger pour lui.

   Ce sont des polices variables : un seul fichier par famille et par
   sous-ensemble couvre toute la plage de graisses déclarée. Les `unicode-range`
   sont ceux de Google Fonts, et c'est eux qui font le travail : le navigateur
   ne télécharge un sous-ensemble que s'il rencontre un caractère qui le
   demande. Une page française ne charge donc pas latin-ext. Elle charge en
   revanche le grec : depuis le passage au multilingue, le sélecteur de langue
   écrit « Ελληνικά » dans toutes les langues, et ces huit lettres suffisent à
   demander manrope-greek.woff2, 9 ko, sur chaque page. C'est le prix du nom
   d'une langue écrit dans cette langue, et il est assumé — voir « Polices »
   dans le README.

   L'ordre des règles compte. Sept codepoints appartiennent à la fois à latin et
   à latin-ext — dont Œ et œ, courants en français — et sur un caractère couvert
   par deux règles, c'est la DERNIÈRE déclarée qui gagne. latin-ext est donc
   déclarée avant latin, comme le fait Google : sans quoi le moindre « cœur »
   dans une page ferait télécharger latin-ext pour rien. Ne pas réordonner.

   Une exception connue, héritée du découpage de Google : U+2020 († dague) est
   annoncé dans la plage latin mais absent du fichier latin, alors qu'il est
   présent dans latin-ext. Une dague s'afficherait donc dans la police système
   plutôt qu'en Sora. Aucune page n'en utilise ; si cela devait changer, sortir
   U+2020 de l'`unicode-range` de la règle latin.

   Licence SIL Open Font 1.1, texte dans assets/fonts/OFL.txt.
   Mise à jour : refaire une requête css2 sur fonts.googleapis.com avec un
   navigateur récent dans l'en-tête User-Agent, et remplacer les .woff2.
   Vérifier d'abord qu'une famille couvre bien le script visé, Google ignore
   sans erreur un `subset=` qu'elle n'a pas — voir « Polices » dans le README.
   ========================================================================== */

/* Sora — texte courant et titres, graisses 400 à 700 */
@font-face{
  font-family:'Sora';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('../fonts/sora-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:'Sora';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('../fonts/sora-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;
}

/* Space Grotesk — chiffres tabulaires, graisses 500 à 700 */
@font-face{
  font-family:'Space Grotesk';
  font-style:normal;
  font-weight:500 700;
  font-display:swap;
  src:url('../fonts/space-grotesk-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:'Space Grotesk';
  font-style:normal;
  font-weight:500 700;
  font-display:swap;
  src:url('../fonts/space-grotesk-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;
}

/* --------------------------------------------------------------------------
   Manrope — grec uniquement

   Sora et Space Grotesk n'ont aucun glyphe grec : leurs binaires ne couvrent
   rien dans U+0370-03FF, et Google ignore silencieusement `subset=greek` sur
   ces deux familles. Le grec est donc porté par Manrope, sans-serif
   géométrique de construction proche de Sora. Elle porte désormais tout le
   texte des pages de el/.

   L'`unicode-range` la cantonne au grec, et Manrope arrive après Sora et Space
   Grotesk dans les piles de `base.css` : elle ne dessine que les caractères
   qu'aucune des deux ne couvre. Sur une page non grecque, cela se réduit au
   « Ελληνικά » du sélecteur de langue — d'où le téléchargement du fichier,
   partout. Les pages de el/ le préchargent, les autres non.

   Grec monotone (grec moderne) seulement. Le polytonique (grec ancien, plages
   U+1F00-1FFF) demanderait le sous-ensemble `greek-ext`, que Manrope n'a pas :
   il faudrait alors changer de police pour le grec, Inter ou Noto Sans.
   -------------------------------------------------------------------------- */
@font-face{
  font-family:'Manrope';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('../fonts/manrope-greek.woff2') format('woff2');
  unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
