/* ============================================================
   REPTHOCI.NET — Police Mollen (auto-hébergée)

   Mollen, d'Eko Bimantara. L'archive d'origine livre 48 fichiers TTF
   pour 3 Mo : la charger telle quelle aurait alourdi chaque page de
   plus que tout le reste du site réuni.

   CE QUI EST SERVI ICI
   Sept styles seulement, ceux dont la feuille de typographie se sert,
   convertis en WOFF2 et réduits au jeu latin, français et espagnol
   (le site est traduit en trois langues) plus la ponctuation et les
   symboles employés par les pages. Résultat : 63 Ko au total, soit
   environ 9 Ko par style. Le crénage et les ligatures sont conservés :
   sans eux, les capitales accentuées et les paires « AV », « To » se
   décalent visiblement dans les titres.

   Pour régénérer ces fichiers après une mise à jour de la police,
   voir outils/sous-ensemble-mollen.py.

   font-display: swap
   Le texte s'affiche immédiatement dans la police de repli, puis bascule
   sur Mollen dès son arrivée. Jamais de page blanche sur une connexion
   lente — ce qui compte pour une audience largement mobile.

   REPLI MÉTRIQUE
   Mollen a une hauteur d'x basse (0,487 em contre 0,519 pour Arial).
   Sans correction, la bascule de la police de repli vers Mollen fait
   « sauter » les titres. La famille « Mollen Repli » ci-dessous aligne
   les métriques d'une police système sur celles de Mollen, de sorte que
   l'échange soit quasiment invisible.

   SYMBOLES ABSENTS
   Mollen ne contient pas ★ ☆ ✓ ▶ ◀ ⌘ ni les drapeaux. Le navigateur va
   les chercher tout seul dans la police suivante de la pile : c'est
   pourquoi chaque pile se termine par les polices système.

   LICENCE
   Police commerciale sous marque déposée. L'usage en police web
   (auto-hébergement sur un site public) demande généralement une licence
   distincte de la licence bureautique. À vérifier avant mise en ligne.
   ============================================================ */

@font-face {
    font-family: 'Mollen';
    src: url('polices/mollen-400.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Mollen';
    src: url('polices/mollen-400-italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Mollen';
    src: url('polices/mollen-500.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Mollen';
    src: url('polices/mollen-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Mollen';
    src: url('polices/mollen-700.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Variante étroite — réservée aux libellés courts : menus, étiquettes de
   rubrique, intertitres. Elle porte un nom de famille distinct : déclarée
   sous « Mollen », elle écraserait la variante normale aux mêmes graisses. */
@font-face {
    font-family: 'Mollen Condensed';
    src: url('polices/mollen-condensed-600.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Mollen Condensed';
    src: url('polices/mollen-condensed-800.woff2') format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* ── Repli aux métriques alignées ─────────────────────────────
   Aucun fichier n'est téléchargé : on réutilise une police déjà présente
   sur l'appareil, en corrigeant ses proportions pour qu'elle occupe la
   même place que Mollen. Les navigateurs qui ignorent size-adjust se
   contentent de la police système, sans dommage. */
@font-face {
    font-family: 'Mollen Repli';
    src: local('Arial'), local('Helvetica Neue'), local('Helvetica'),
         local('Segoe UI'), local('Roboto'), local('Liberation Sans');
    size-adjust: 94%;          /* 487 / 519 : hauteur d'x de Mollen vs Arial */
    ascent-override: 75%;      /* 750 / 1000 em */
    descent-override: 25%;     /* 250 / 1000 em */
    line-gap-override: 0%;
    font-display: swap;
}
