/* ==========================================================================
   Mantara V3 — jetons de design
   Direction retenue : Tracé (base) · chapitres de nuit et particules (Abysse) · logo qui se révèle (Encre)
   ========================================================================== */

/* Polices servies avec le site (plus aucun appel à Google Fonts depuis le 16/10/2026), sous licence SIL OFL 1.1
   (assets/fonts/OFL-*.txt). Fichiers repris de la page des offres, sous-ensemble latin de Google Fonts.
   Archivo : variable, axes wght 100-900 et wdth 62-125 ; IBM Plex Mono : 400 et 500.
   Chaque page précharge archivo-100-900 et ibm-plex-mono-500, les deux visibles dès l'en-tête. */
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/archivo-100-900-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: "Archivo";
  font-style: italic;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url("/assets/fonts/archivo-italic-100-900-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: "IBM Plex Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-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;
}
@font-face {
  font-family: "IBM Plex Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/ibm-plex-mono-500-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;
}

:root {
  /* Surfaces claires */
  --paper: #F1F3F2;
  --paper-2: #E6EAE9;
  --white: #FFFFFF;

  /* Encre */
  --ink: #0D1417;            /* texte, traits, bouton principal — 16,7:1 sur papier */
  --ink-2: #4F5B5E;          /* texte secondaire — 6,3:1 */
  --ink-3: #616B6D;          /* petits libellés, décor — 4,9:1 sur papier, 4,5:1 sur papier-2 (#7C888A avant le 16/10/2026 : 3,3:1, sous le seuil AA) */
  --line: #CAD3D3;
  --line-strong: #9AA6A7;
  --grid: rgba(13, 20, 23, 0.045);
  --grid-major: rgba(13, 20, 23, 0.075);

  /* Signaux */
  --signal: #0096BA;         /* flux, surlignage de grands titres — jamais en petit texte */
  --signal-ink: #00667E;     /* liens, texte actif — 5,9:1 */
  --deep: #003E4D;
  --friction: #B4471F;       /* ce qui coince — 4,9:1 */
  --ok: #2E7650;             /* en production — 4,9:1 */

  /* Nuit : chapitres sombres et 3D */
  --night: #041820;
  --night-2: #082633;
  --night-3: #0D3342;
  --on-night: #EAF6F8;       /* 16,5:1 sur nuit */
  --on-night-2: #9BBEC6;     /* 9,1:1 */
  --on-night-3: #5F8790;     /* 4,6:1 */
  --glint: #3CCFEA;          /* accent sur nuit — 9,8:1 */
  --halo: #7FE3F5;
  --night-line: rgba(155, 190, 198, 0.16);
  --night-grid: rgba(155, 190, 198, 0.05);

  /* Logo */
  --logo-cyan: #00AAD5;
  --logo-deep: #006D88;

  /* Typographie */
  --f-sans: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, "Cascadia Code", Consolas, monospace;
  --t-display: clamp(2.5rem, 1rem + 4.4vw, 5.75rem);
  --t-h2: clamp(2rem, 1rem + 3vw, 4rem);
  --t-h3: clamp(1.1875rem, 1rem + 0.5vw, 1.4375rem);
  --t-lead: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem);
  --t-body: 1rem;
  --t-small: 0.875rem;
  --t-label: 0.75rem;

  /* Espacements — base 4, grille de 24 */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 72px;
  --s-9: 120px;
  --cell: 24px;
  --section: clamp(80px, 13vh, 160px);

  /* Formes */
  --radius: 2px;
  --hard-shadow: 7px 7px 0;

  /* Mouvement */
  --ease-out: cubic-bezier(0.19, 1, 0.22, 1);     /* ajustement : révélations */
  --ease-snap: cubic-bezier(0.7, 0, 0.2, 1);      /* déclic : balayages, cotes */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);  /* passage : rideau, chapitres */
  --d-fast: 0.3s;
  --d-base: 0.6s;
  --d-slow: 1.1s;

  /* Mise en page */
  --gutter: clamp(16px, 4vw, 56px);
  --gap: clamp(16px, 2vw, 24px);
  --max: 1440px;
  --nav-h: 72px;

  /* Thème : jetons qui changent avec le thème (voir [data-theme="dark"] plus bas) */
  --nav-bg: rgba(241, 243, 242, 0.9);
  --fig-bg: rgba(255, 255, 255, 0.5);   /* fond des figures posées sur le papier millimétré */
  --shadow-soft: var(--paper-2);        /* ombre franche discrète : cartes, menus */

  /* Invariants : ne changent jamais de thème (pied de page, terminaux, logo) */
  --ink-fixed: #0D1417;
  --paper-fixed: #F1F3F2;

  /* Terminal : le bloc sombre des interfaces montrées (journaux, commandes, états). Même rendu dans les deux thèmes. */
  --term-bg: #0D1417;
  --term-fg: #DCE8EA;
  --term-dim: #7C9499;
  --term-line: rgba(155, 190, 198, 0.18);
  --term-accent: #3CCFEA;
  --term-ok: #6FD6A0;
  --term-warn: #F0A585;

  color-scheme: light;
}

/* ==========================================================================
   Thème sombre — le plan s'inverse : traits clairs sur nuit, le papier devient l'encre.
   Posé par l'attribut data-theme sur <html> (script de chaque <head>, voir chrome.js pour le bouton).
   Chaque jeton garde son rôle : --ink reste « texte et traits », --white reste « surface en relief
   et texte posé sur un aplat d'encre ou de signal ». Les contrastes sont donnés sur --paper.
   ========================================================================== */
:root[data-theme="dark"] {
  --paper: #0B1316;
  --paper-2: #142024;
  --white: #101A1E;          /* surface en relief — et texte sur aplat clair : 15,2:1 sur --ink */

  --ink: #EEF3F2;            /* texte, traits, bouton principal — 16,1:1 sur papier */
  --ink-2: #A3B2B4;          /* texte secondaire — 8,6:1 */
  --ink-3: #78898C;          /* petits libellés, décor — 5,1:1 sur papier, 4,6:1 sur papier-2 (#6F8083 avant le 16/10/2026 : 4,3:1 sur --white) */
  --line: #1F2D32;
  --line-strong: #35474D;
  --grid: rgba(190, 215, 220, 0.04);
  --grid-major: rgba(190, 215, 220, 0.075);

  --signal: #2EBEDF;         /* flux, surlignage — le texte posé dessus est --white (8,3:1) */
  --signal-ink: #5ED7F0;     /* liens, texte actif — 11,2:1 */
  --deep: #8FDCEE;
  --friction: #F09A74;       /* ce qui coince — 8,1:1 */
  --ok: #63CF97;             /* en production — 9,6:1 */

  --nav-bg: rgba(11, 19, 22, 0.88);
  --fig-bg: rgba(16, 26, 30, 0.6);
  --shadow-soft: #172429;

  --term-bg: #050A0C;
  --term-line: rgba(155, 190, 198, 0.2);

  color-scheme: dark;
}
