/* Fontes auto-hébergées de la flotte Archive PDF. Feuille PARTAGÉE: le portail
   (templates/v4_depot.html), le site vitrine (www/ui/mkit.php) et les pages autonomes du portail
   la demandent toutes. Une modification ici se voit partout.

   ⛔ LES 38 `url()` SONT RELATIVES, `/fonts/...`, ET NE DOIVENT PAS REDEVENIR ABSOLUES.
   Corrigé le 2026-08-21, ?v=4 -> ?v=5. Elles nommaient `https://s.archive-pdf.fr/fonts/`, l'hôte
   FRANÇAIS, alors que cet arbre est servi sous DEUX noms depuis le 2026-08-20: chaque page du
   portail et du site ANGLAIS allait donc chercher ses polices sur la propriété française. Deux
   conséquences, aucune visible à l'oeil:
     1. une empreinte inter-sites, ce que le RUNBOOK logos et icônes interdit au §2.6: la marque
        ne se partage pas entre deux propriétés de la flotte, et une requête vers l'hôte de
        l'autre en est une;
     2. la CSP anglaise déclare `font-src 'self' https://s.pdf-archive.com`, sans l'hôte français.
        La collecte en mode rapport porte **140 combinaisons `font-src`** venues de
        `my2.pdf-archive.com`, apparues le 2026-08-21 à 15:41. Le jour où l'en-tête passe en mode
        bloquant, le portail anglais perd toutes ses polices.
   Une `url()` relative se résout sur l'hôte QUI A SERVI LA FEUILLE, donc `s.archive-pdf.fr` pour
   le français et `s.pdf-archive.com` pour l'anglais, sans table ni condition. Les deux hôtes
   servent le même arbre, donc les fichiers répondent des deux côtés (vérifié en HTTP).
   ⚠️ Les `s.archive-pdf.fr` qui restent plus bas sont dans des COMMENTAIRES, dont la commande de
   contrôle: ce sont des exemples, pas des adresses servies.

   font-display, valeur PAR FACE et non par famille (2026-08-14). C'était `block` jusqu'au
   2026-08-10, soit du texte INVISIBLE jusqu'à 3 s puis un reflow quand même: l'inverse des deux
   valeurs que le runbook UI/UX admet. Le correctif du 2026-08-10 a posé `optional` sur les 38
   faces d'un coup, ce qui a rouvert le même défaut par l'autre bout: `optional` sans preload est
   plus sournois que `block`, la fonte ne revenant JAMAIS, même tard.
   Règle tenue ici, la même que sur en-service.fr depuis le 2026-08-14: `optional` UNIQUEMENT pour
   une face que les gabarits préchargent, `swap` pour tout le reste, `block` jamais.
   Les 7 faces `optional` sont exactement les 4 fichiers listés par `lib/fonts.php` du portail
   (Saira Condensed 600 et 700 latin, Inter latin, un seul fichier partagé par
   ses 4 graisses, IBM Plex Mono 400 latin). Les 31 autres sont en `swap`, dont IBM Plex Mono 500
   et 600, portés par une trentaine de règles des deux feuilles (compteurs de la barre latérale,
   pastilles d'état, en-têtes de tableau) et jamais préchargés: en `optional` ils ne s'affichaient
   pas du tout sur un cache froid. Toute face qu'on ajoute au preload passe en `optional`, et
   toute face qu'on en retire repasse en `swap`, sinon la valeur ment.
   Fraunces et Open Sans ne sont utilisées par AUCUNE page vivante des deux sites, donc elles ne
   déclenchent aucun téléchargement et leur valeur est sans effet.
   ⚠️ NEWSREADER EST DANS LE MÊME CAS, et ce paragraphe a été écrit puis démenti dans la même
   journée du 2026-08-25, ce qui vaut d'être gardé. Elle a porté quelques heures le titre du héros
   de la PROPRIÉTÉ ANGLAISE, préchargée par son gabarit, donc légitimement en `swap`. L'owner a
   retiré cette voix serif le jour même: plus aucune page servie ne demande Newsreader, plus aucun
   gabarit ne la précharge, et `swap` redevient sans effet comme pour Fraunces et Open Sans.
   La leçon n'est pas la valeur, c'est la MÉTHODE: on ne déduit pas qu'une face est inemployée de
   ce qu'on croit savoir du site, on le vérifie par un `grep` de son nom dans les feuilles ET dans
   les gabarits, hors dossiers de laboratoire. C'est ce grep qui a rendu ce paragraphe faux, et
   c'est le même qui le rend vrai à nouveau.
   Ces corrections ne touchent qu'un commentaire, donc elles n'appellent pas de bump du ?v= des
   gabarits: aucun octet de règle ne change.

   Le paramètre ?v=N des gabarits est passé de 3 à 4 le 2026-08-14, sur les 24 points d'émission
   des deux sites. Il fallait le bumper, et le raisonnement écrit ici le 2026-08-10 pour s'en
   dispenser était faux: il disait qu'un client gardant l'ancienne feuille garde aussi les woff2
   en cache. C'est vrai des faces qu'il a téléchargées, et faux précisément des faces qui posaient
   problème: en `optional` sans preload, IBM Plex Mono 500 et 600 n'ont JAMAIS été téléchargés par
   personne, donc aucun visiteur ne les a en cache. Sans bump, ces visiteurs auraient gardé la
   feuille fautive jusqu'à un an, le cache de `s.archive-pdf.fr` étant immuable.
   Règle qui en sort: un cache-buster se juge sur ce que le client N'A PAS pu mettre en cache.

   ATTENTION: cette feuille n'a pas de générateur, elle est une COPIE de l'API CSS de Google
   Fonts, réécrite à la main. Une nouvelle copie la ramènerait sans aucun `font-display`.

   ⛔ LE GÉNÉRATEUR CHERCHÉ PENDANT DEUX SEMAINES N'EXISTE PAS, mesuré le 2026-08-29. Trois
   recherches (2026-08-10, 08-14, 08-29) avaient rendu zéro, et on en avait conclu qu'il n'était
   pas encore localisé, c'est-à-dire qu'il existait ailleurs. La quatrième a cherché la PROVENANCE
   plutôt que le programme, et elle est sans ambiguïté:
     - le corps de cette feuille est la sortie littérale de `fonts.googleapis.com/css2`, jusqu'aux
       commentaires de sous-ensemble (`/* latin */`, `/* latin-ext */`), à l'ordre des propriétés
       et aux `unicode-range`. Comparé au vivant le 2026-08-29, la forme coïncide ligne pour ligne;
     - les 20 `.woff2` de `s/fonts/` portent les noms hachés de Google eux-mêmes, pas des noms
       normalisés par un outil à nous. `-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2` répond encore 200
       sur `fonts.gstatic.com/s/ibmplexmono/v19/`. Les octets diffèrent (13 348 ici contre 13 272
       là-bas, md5 différents): Google ré-encode sous la même adresse, donc notre copie est une
       photo, pas un miroir;
     - les 20 fichiers portent la MÊME date, 2026-06-14 entre 04:52 et 04:53. Un seul geste, une
       seule fois. `s/fonts/` n'a pas été écrit depuis;
     - 38 déclarations, 20 fichiers distincts, zéro référence morte et zéro fichier orphelin;
     - aucun cron ne nomme les fontes, et rien n'écrit de feuille de fontes dans les six arbres du
       périmètre, ni dans `/root`, `/opt`, `/usr/local/bin`, `/srv`, `/home`.
   ➡️ CE QUE ÇA CHANGE, ET C'EST LE POINT: le danger n'est pas un programme qui repasse la nuit,
   c'est UNE PERSONNE qui recolle du Google Fonts pour ajouter une famille. `css2` n'émet AUCUNE
   ligne `font-display` sans `&display=`, et l'absence vaut `auto`, que les navigateurs traitent
   comme `block`. Voilà d'où venait la valeur par défaut `block` attribuée au générateur fantôme.
   ⚠️ Une copie fraîche changerait AUSSI les 20 noms de fichiers (IBM Plex Mono est passé de `v19`
   à `v20` chez Google): elle laisserait 20 `url()` en 404 et 20 orphelins sur le disque.
   ➡️ LA MARCHE À SUIVRE POUR AJOUTER UNE FAMILLE, puisque aucun script ne la tiendra: prendre la
   sortie de `css2` AVEC `&display=swap`, télécharger les `.woff2` dans `s/fonts/` sous leurs noms
   d'origine, remplacer `https://fonts.gstatic.com/s/...` par `/fonts/` (URL RELATIVE, voir plus
   haut), ne toucher à AUCUNE déclaration existante, et bumper le `?v=` des 24 points d'émission.
   ⚠️ `bin/fetch-fonts.php` du dépôt en-service.fr n'est PAS le générateur de cette feuille, mesuré
   le 2026-08-14 et toujours vrai: il émet `/fonts/fonts.css` en déclarations d'une ligne par face
   et ne connaît ni Saira Condensed ni Open Sans.
   La protection reste double: la sentinelle ci-dessous, plus `sbin/watch_fonts_display.php`,
   appelé par `cron/daily_5am.php`, qui vérifie l'invariant chaque nuit et ne mail qu'en cas de
   défaut (plus un battement le 1er du mois). Il refuse une face SANS `font-display`, ce qui est
   exactement la forme qu'aurait une copie fraîche.

   ⚠️ L'AUTRE MOITIÉ DE L'INVARIANT, trouvée le 2026-08-14 au soir: `optional` ne vaut que si la
   PAGE précharge la face, et cette feuille est demandée depuis 24 points d'émission, pas deux.
   Vingt-deux d'entre eux (inscription, mot de passe, activation, désinscription, page publique
   `pdfa.fr/@pseudo`, panneaux d'envoi, gabarits `templates/fs/`...) ne préchargeaient RIEN: sur
   ces pages, les 7 faces `optional` ne s'affichaient donc jamais sur un cache froid, alors que
   les trois comptages ci-dessous rendaient exactement les valeurs attendues. Un contrôle qui ne
   regarde qu'un bout de l'invariant valide un site cassé. Corrigé le jour même, la liste des
   fichiers à précharger faisant désormais autorité dans `lib/fonts.php` du portail (les gabarits
   en HTML pur et `mkit.php`, qui vit dans l'autre dépôt, la recopient, et le surveillant refuse
   tout désaccord au caractère près).

   COMMENT SAVOIR QUE C'EST ARRIVÉ, sans rien installer: ce commentaire-ci EST la sentinelle. Il
   est écrit à la main et aucun générateur ne le produit, donc une régénération l'emporte avec le
   reste. Si vous ouvrez ce fichier et que ce bloc a disparu, le générateur est repassé et les 38
   déclarations sont retombées sur sa valeur par défaut: vérifier `font-display` avant toute autre
   hypothèse. C'est gratuit et ça ne peut pas se désynchroniser, contrairement à une liste de
   contrôle tenue ailleurs.

   ÉTAT ATTENDU, contrôlable sans dépôt ni accès machine (mesuré le 2026-08-14). Le motif est
   ancré en début de ligne et se termine par un point-virgule, sinon il compterait AUSSI les
   trois lignes ci-dessous, qui citent les valeurs, et le contrôle mentirait sur son propre texte:
     C=https://s.archive-pdf.fr/css/fonts.css
     curl -s $C | grep -c '^  font-display: optional;'  ->  7   (les 7 faces préchargées)
     curl -s $C | grep -c '^  font-display: swap;'      -> 31
     curl -s $C | grep -c '^  font-display: block;'     ->  0
   Pas de quatrième commande pour la sentinelle: tout motif qu'on citerait ici se compterait
   lui-même. La sentinelle est ce commentaire, et son signal est sa DISPARITION.
   ⚠️ Ces trois comptages ne prouvent que la MOITIÉ de l'invariant, celle de la feuille. L'autre
   moitié se mesure sur les pages, et une seule commande la couvre, depuis le dépôt:
     php7.4 sbin/watch_fonts_display.php --count   ->  0 defaut(s) */
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.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;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(/fonts/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.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;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgtIU.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;
}
/* latin */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgg.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.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;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnUchQ-a2fli0.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;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnUchQ962f.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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9Q-a2fli0.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;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnfc9Q962f.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;
}
/* latin-ext */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5Q-a2fli0.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;
}
/* latin */
@font-face {
  font-family: 'Saira Condensed';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(/fonts/EJRLQgErUN8XuHNEtX81i9TmEkrnGc5Q962f.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;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.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;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/cY9AfjOCX1hbuyalUrK439DyjJBG.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/cY9AfjOCX1hbuyalUrK4397yjA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cY9AfjOCX1hbuyalUrK439DyjJBG.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/cY9AfjOCX1hbuyalUrK4397yjA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/cY9AfjOCX1hbuyalUrK439DyjJBG.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;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/cY9AfjOCX1hbuyalUrK4397yjA.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;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.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;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.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;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.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;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.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;
}
/* latin-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.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;
}
/* latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.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;
}
