/* ═══ JETONS — kamagate-terrain ══════════════════════════════════════════
   Charte EXTRAITE du terrain (E3, design-system.md §2). Chaque token porte
   sa source. Aucune teinte ajoutée, aucun dégradé, aucun flou : la lumière
   du Plateau a une arête, elle ne fait pas de dégradé.
   ═════════════════════════════════════════════════════════════════════ */
@font-face{font-family:"Martian";src:url("/assets/fonts/martian-mono-latin.woff2") format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Fira";src:url("/assets/fonts/fira-sans-v18-latin-regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Fira";src:url("/assets/fonts/fira-sans-v18-latin-500.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Fira";src:url("/assets/fonts/fira-sans-v18-latin-700.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"display-repli";src:local("Courier New"),local("Courier");
  size-adjust:112%;ascent-override:90%;descent-override:22%}

:root{
  --marbre:      #EDE9E0;   /* fond          ← terrain: marbre des halls d'agence      */
  --marbre-haut: #F7F5EF;   /* surface haute ← terrain: marbre sous lumière directe    */
  --verre:       #2B2723;   /* texte, ombre  ← terrain: verre fumé des murs-rideaux    */
  --beton:       #666055;   /* secondaire    ← terrain: béton brut apparent            */
  --alu:         #C5C9C6;   /* filets        ← terrain: aluminium anodisé des lames    */
  --terre:       #A2452A;   /* ACCENT UNIQUE ← terrain: parement en terre cuite        */
  --terre-fonce: #7E3520;   /* accent texte  ← terrain: terre cuite à l'ombre portée   */
  --marbre-terne:#C9C4BA;   /* marbre dans l'ombre portée ← terrain: hall à contre-jour */
  --verre-filet: #4A443C;   /* filet sur l'aplat d'encre  ← terrain: joint de verre fumé */

  --display: "Martian","display-repli",ui-monospace,monospace;
  --lecture: "Fira",Verdana,sans-serif;

  --t-nom:   clamp(1.9rem, 5.4vw, 4.6rem);
  --t-xxl:   clamp(1.5rem, 2.9vw, 2.5rem);
  --t-xl:    clamp(1.15rem, 1.7vw, 1.5rem);
  --t-chapo: clamp(1.04rem, 1.3vw, 1.2rem);
  --t-base:  clamp(1rem, 1.05vw, 1.08rem);
  --t-petit: .94rem;
  --t-mini:  .8rem;

  --marge: clamp(1.1rem, 4vw, 4rem);
  --bande: clamp(3rem, 7vh, 5.5rem);

  /* L'ANGLE. Une seule variable pilote la page entière. Valeur de repli =
     midi (0°) : sans JS, sans ?audit et en mouvement réduit, l'ombre est
     peinte à plat — elle reste une information, jamais un état caché. */
  --incidence: 0deg;
  --lame: 34;                /* amplitude en degrés, 8 h → -34, 16 h 30 → +34 */

  --dur:280ms; --ease: cubic-bezier(.2,.8,.2,1);
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}
