/* ==========================================================================
   Periaza : jeu de tokens unique (charte v3, « nuit minérale froide »)
   Toutes les pages du site consomment ce fichier. Aucune couleur, rayon,
   ombre ou espacement ne doit être écrit en dur ailleurs.
   Contrastes mesurés : voir REFONTE_RAPPORT.md, section Contraste.
   ========================================================================== */
:root {
  color-scheme: dark;

  /* ---------- Couleurs : fonds (toujours opaques sous du texte) ---------- */
  --c-bg: #0A0F1E;          /* fond principal */
  --c-surface-1: #121A2B;   /* découpe des blocs */
  --c-surface-2: #182236;   /* élévation */

  /* ---------- Couleurs : texte ---------- */
  --c-text: #F2F4F8;        /* titres, libellés */
  --c-body: #F7F5F2;        /* texte courant (chaud) */
  --c-soft: #C3CAD6;        /* texte courant secondaire */
  --c-info: #6E8BB8;        /* information secondaire, kicks, métadonnées */

  /* ---------- Couleurs : accent (actions et chiffres uniquement) ---------- */
  --c-accent: #E8A33D;
  --c-accent-hover: #F2BE6C;
  --c-on-accent: #0A0F1E;   /* texte posé sur l'accent */

  /* ---------- Couleurs : traits et états ---------- */
  --c-line: #26324A;        /* filets décoratifs */
  --c-line-strong: #5F7396; /* bordures de champs (3:1 minimum) */
  --c-error: #F4A99A;
  --c-success: #7FD1A8;     /* confirmation d'envoi, contraste 10:1 sur le fond */
  --c-focus: #E8A33D;

  /* ---------- Matière du fond (statique, aucune requête externe) ---------- */
  --matter-halo: radial-gradient(60vmax 48vmax at 100% 0%, rgba(232, 163, 61, 0.04), rgba(232, 163, 61, 0) 72%);
  --matter-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  --matter-grain-opacity: 0.02;

  /* ---------- Typographie ---------- */
  --f-display: "Satoshi", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-body: "Inter Tight", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  --fs-xs: 0.8125rem;   /* 13 */
  --fs-sm: 0.9375rem;   /* 15 */
  --fs-md: 1.0625rem;   /* 17, corps */
  --fs-lg: 1.25rem;     /* 20 */
  --fs-xl: clamp(1.375rem, 1.1rem + 0.9vw, 1.75rem);
  --fs-h3: clamp(1.25rem, 1.05rem + 0.7vw, 1.5rem);
  --fs-h2: clamp(2rem, 1.3rem + 3vw, 3.5rem);
  --fs-h1: clamp(2.75rem, 1.4rem + 6.4vw, 6.25rem);
  --fs-mega: clamp(3.5rem, 1rem + 12vw, 11rem);

  --lh-tight: 1.02;
  --lh-title: 1.1;
  --lh-body: 1.65;

  --tr-display: -0.045em;   /* interlettrage négatif des grands titres */
  --tr-title: -0.03em;
  --tr-mono: 0.14em;

  /* ---------- Rayons ---------- */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-pill: 999px;

  /* ---------- Ombres (sobres, jamais colorées) ---------- */
  --sh-1: 0 1px 0 0 rgba(242, 244, 248, 0.04) inset, 0 10px 30px -18px rgba(0, 0, 0, 0.8);
  --sh-2: 0 1px 0 0 rgba(242, 244, 248, 0.06) inset, 0 24px 60px -28px rgba(0, 0, 0, 0.9);

  /* ---------- Espacements (grille de 4 px) ---------- */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-16: 64px;
  --s-20: 80px;
  --s-24: 96px;
  --s-32: 128px;

  --section-y: clamp(56px, 4vw + 40px, 128px);
  --gutter: clamp(20px, 4vw, 64px);
  --slab-gap: clamp(10px, 1.2vw, 18px);
  --container: 1200px;
  --frame: 1440px;
  --header-h: 68px;
  --tap: 44px;

  /* ---------- Mouvement : un seul geste (révélation par masque) ---------- */
  --ease-reveal: cubic-bezier(0.2, 0.7, 0.1, 1);
  --dur-reveal: 1100ms;
  --ease-ui: cubic-bezier(0.2, 0.6, 0.2, 1);
  --dur-ui: 180ms;

  /* ---------- Mouvement : gestes secondaires, tous issus du même registre ----------
     Les compteurs réutilisent --dur-reveal et --ease-reveal : le chiffre
     monte au rythme du masque. Rien ici ne boucle. */
  --stagger-reveal: 90ms;   /* décalage entre deux cartes d'une même cascade */
  --dur-lift: 220ms;        /* micro-relevé au survol, 240 ms maximum */
  --lift-y: -3px;           /* amplitude du relevé */
  --sh-lift: 0 14px 22px -16px rgba(0, 0, 0, 0.9); /* ombre resserrée sous la carte relevée */
  --glow-size: 520px;       /* diamètre de la lueur au curseur */
  --glow-opacity: 0.1;      /* plafond de la lueur : jamais plus de 12 pour cent */
  --dur-page: 320ms;        /* fondu entre deux pages (View Transitions) */
}
