/* ============================================================================
   Modul@net — base.css
   ----------------------------------------------------------------------------
   Réinitialisation, typographie de base, états de focus, révélations.
   Ne contient aucune valeur en dur : tout vient de tokens.css.
   ============================================================================ */

/* ============================================================
   Modul@net — v3.0 « Cuivre vivant »
   Socle visuel : direction ChatGPT (graphite, cuivre clair,
   rondeurs généreuses, bandes ivoire, titres à deux temps).
   Substance : preuves, chiffres, tarifs, franchise, relevé.
   ============================================================ */

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--mn-bg);color:var(--mn-text);font-family:var(--mn-sans);
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,canvas{max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3,h4{margin:0;font-weight:400}
::selection{background:var(--mn-copper);color:#1B0E06}
:focus-visible{outline:2px solid var(--mn-copper);outline-offset:5px;border-radius:6px}
section{position:relative}
section[id]{scroll-margin-top:92px}

/* ---------- typographie ---------- */
.eyebrow{font-family:var(--mn-mono);font-size:var(--mn-t-label);letter-spacing:.17em;text-transform:uppercase;
  color:var(--mn-muted);display:flex;align-items:center;gap:13px}
.eyebrow::before{content:"";width:30px;height:1px;background:var(--mn-copper);flex:none}
.tt{font-size:clamp(2.5rem,1.4rem + 3.4vw,4.6rem);line-height:1.0;letter-spacing:-.042em;
  text-wrap:balance}
.tt em{display:block;font-family:var(--mn-serif);font-style:italic;color:var(--mn-copper);
  letter-spacing:-.028em;line-height:1.04}
.tt--sm{font-size:clamp(1.9rem,1.2rem + 2vw,3rem)}
.lede{font-size:1.0625rem;line-height:1.75;color:var(--mn-muted);max-width:38ch}
.mono{font-family:var(--mn-mono);font-variant-numeric:tabular-nums}
.small{font-size:var(--mn-t-body);color:var(--mn-dim);line-height:1.6}
.src{font-family:var(--mn-mono);font-size:var(--mn-t-meta);letter-spacing:.06em;color:var(--mn-faint)}

/* ---------- révélations ---------- */
.js [data-rv]{opacity:0;transform:translateY(20px)}
.js [data-rv].in{opacity:1;transform:none;
  transition:opacity .8s var(--mn-e-out),transform .8s var(--mn-e-out)}
.js [data-rv][data-d="1"].in{transition-delay:.09s}
.js [data-rv][data-d="2"].in{transition-delay:.18s}
.js [data-rv][data-d="3"].in{transition-delay:.27s}
.js .tt[data-rv]{opacity:1;transform:none;clip-path:inset(0 0 105% 0)}
.js .tt[data-rv].in{clip-path:inset(0 0 -16% 0);transition:clip-path 1.1s var(--mn-e-out)}
