/* tokens.css — deborah-s-liporf-soins
   Source de vérité des jetons. Recopié de design-system.md §B (charte ancrée terrain) et
   §A.2 (échelle typographique et rythme vertical). Un jeton ne se décide PAS ici : il se
   décide dans la charte, mesuré par scripts/contrast.sh, et il est reporté ici verbatim.

   L1  : la première famille n'est jamais Inter/Roboto/Poppins/system-ui/Arial.
   L2  : espaces obligatoires autour des opérateurs dans clamp()/calc().
   L3  : TOUT hex vit dans ce :root — nulle part ailleurs dans le CSS du site.
   CLS : les replis portent des métriques ajustées (un fallback non ajusté a coûté 0,74 de
         CLS sur savonnerie-lune).

   Depuis le 2026-08-12, les commentaires de ce fichier ne polluent plus l'empreinte
   anti-recyclage : fingerprint.sh retire les commentaires avant d'extraire les jetons.
   Les hex d'OBSERVATION restent donc en prose dans design-system.md, jamais ici. */

/* ── Polices self-hostées. Refabriquer avec :
     python3 scripts/fetch-fonts.py deborah-s-liporf-soins \
       "Brygada+1918:ital,wght@0,400..700;1,400..700" "Commissioner:wght@300..700"
     (*.woff2 est exclu par .gitignore : c'est la commande qui est versionnée, pas les
     octets. Le latin-ext n'est téléchargé par le navigateur que si un caractère l'exige.) */
@font-face{font-family:"Brygada 1918";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("/fonts/brygada1918-normal-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:"Brygada 1918";font-style:normal;font-weight:400 700;font-display:swap;
  src:url("/fonts/brygada1918-normal-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:"Brygada 1918";font-style:italic;font-weight:400 700;font-display:swap;
  src:url("/fonts/brygada1918-italic-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:"Brygada 1918";font-style:italic;font-weight:400 700;font-display:swap;
  src:url("/fonts/brygada1918-italic-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:"Commissioner";font-style:normal;font-weight:300 700;font-display:swap;
  src:url("/fonts/commissioner-normal-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:"Commissioner";font-style:normal;font-weight:300 700;font-display:swap;
  src:url("/fonts/commissioner-normal-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;}

/* Replis à MÉTRIQUES AJUSTÉES : sans eux, l'échange police-de-repli → police-réelle décale
   la mise en page et le CLS part. Mesuré une fois à 0,74 sur un autre client. */
@font-face{font-family:"Brygada Soins Repli";src:local("Georgia"),local("Times New Roman");
  size-adjust:104%;ascent-override:92%;descent-override:24%;line-gap-override:0%;}
@font-face{font-family:"Commissioner Soins Repli";src:local("Verdana"),local("Tahoma");
  size-adjust:96%;ascent-override:94%;descent-override:24%;line-gap-override:0%;}

:root{
  /* ── 16 jetons IMPOSÉS par la marque, verbatim. Leur ancrage terrain, token par token,
     est dans design-system.md §B — il n'est pas recopié ici pour que ce fichier reste ce
     qu'il est : une source de valeurs, pas une seconde version de la charte. ────────── */
  --papier:       #FFFFFF;
  --papier-rose:  #EEDEDF;
  --dragee:       #E0C0C1;
  --nuit:         #241C21;
  --nuit-2:       #332830;
  --encre:        #1A1418;
  --encre-2:      #5A4850;
  --or:           #C0A86C;
  --or-clair:     #D8C084;
  --or-sourd:     #6B5A2E;
  --rose:         #704E56;
  --rose-fonce:   #4E353B;
  --filet:        #8A7A7C;
  --filet-nuit:   #786571;
  --voile:        rgb(26 20 24 / 62%);
  --voile-fort:   rgb(26 20 24 / 82%);

  /* Deux règles d'usage MESURÉES, opposables au build :
     --or ne porte JAMAIS de texte sur --papier / --papier-rose / --dragee (2,32:1) ;
     --rose ne porte JAMAIS de texte sur --nuit / --nuit-2 (2,31:1 et 1,96:1).
     Sur fond clair, le texte doré passe par --or-sourd (6,72:1). */

  /* ── Typographie ─────────────────────────────────────────────────────────────────── */
  --font-display: "Brygada 1918", "Brygada Soins Repli", Georgia, serif;
  --font-body:    "Commissioner", "Commissioner Soins Repli", Verdana, sans-serif;
  /* Aucune famille monospace : décision assumée. Le grief du juge E8 sur la v2 était
     l'ADN de planche technique (27 % des caractères en mono). Les durées et les comptes
     de séances sont rendus en chiffres tabulaires du corps (font-variant-numeric). */

  --pas-chapitre: clamp(2.75rem, 1.9rem + 4.2vw, 6rem);
  --pas-titre:    clamp(1.75rem, 1.35rem + 2vw, 3rem);
  --pas-chapo:    clamp(1.1rem, 1.02rem + 0.4vw, 1.375rem);
  --pas-corps:    clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --pas-note:     clamp(0.875rem, 0.85rem + 0.12vw, 0.9375rem);
  --pas-chiffre:  clamp(2rem, 1.4rem + 3vw, 4.25rem);

  --interligne-display: 1.06;
  --interligne-corps:   1.62;
  --mesure:             62ch;

  /* ── Rythme vertical — 4 paliers, pas davantage : un rythme se lit parce qu'il est
     PAUVRE. Trois valeurs voisines ne créent aucune hiérarchie. ─────────────────────── */
  --v-donnee:   0.5rem;
  --v-groupe:   clamp(1.5rem, 1.2rem + 1.4vw, 2.5rem);
  --v-bloc:     clamp(3rem, 2.2rem + 3.4vw, 5.5rem);
  --v-chapitre: clamp(6rem, 4rem + 9vw, 12rem);

  --gouttiere:   clamp(1.25rem, 0.9rem + 1.6vw, 2.5rem);
  --colonne-max: 76rem;

  /* ── Matière ─────────────────────────────────────────────────────────────────────── */
  --radius-badge:  999px;
  --radius-carte:  12px;
  --radius-ui:     6px;
  --grain-opacity: .05;

  /* ── Durées et courbes. Une seule table pour tout le site : des animations qui ne
     partagent pas leur rythme ne forment pas un système. Entrée en ease-out, sortie en
     ease-in, sortie à ~65 % de la durée d'entrée. ───────────────────────────────────── */
  --t-court:  160ms;
  --t-moyen:  260ms;
  --t-sortie: 170ms;
  --t-long:   520ms;
  --courbe-entree: cubic-bezier(0.22, 0.61, 0.36, 1);
  --courbe-sortie: cubic-bezier(0.55, 0.06, 0.68, 0.19);
  --courbe-lente:  cubic-bezier(0.77, 0, 0.175, 1);
}
