/* ============================================================
   SLANJAI — feuille de style partagée
   Identité : signal fantôme · teal néon sur fond nuit
   ============================================================ */
:root{
  --bg:#0d1117;
  --bg-soft:#141a23;
  --card:#1a212c;
  --line:#2a3340;
  --text:#e8edf4;
  --muted:#9aa7b8;
  --accent:#25d9cd;
  --accent-soft:rgba(37,217,205,.10);
  --red:#ff4f46;
  --glow:0 0 14px rgba(37,217,205,.65), 0 0 38px rgba(37,217,205,.35);
  --radius:14px;
  --maxw:1080px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Space Grotesk',sans-serif;line-height:1.15}
a{color:var(--accent);text-decoration:none}
strong{color:var(--text);font-weight:600}   /* emphase discrète des infos clés */
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------------- NAV ---------------- */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(13,17,23,.85);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center}
.logo img{height:34px;width:auto;display:block;filter:drop-shadow(0 0 10px rgba(37,217,205,.25))}
.logo .lg-slanj{color:var(--accent);text-shadow:var(--glow)}
.logo .lg-ai{color:#fff;margin-left:3px;text-shadow:0 0 10px rgba(255,255,255,.45)}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{color:var(--muted);font-size:.92rem;font-weight:500;transition:color .2s;position:relative}
.nav-links a:hover{color:var(--text)}
.nav-links a.active{color:var(--accent)}
.lang-toggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-left:6px}
.lang-toggle button{
  background:none;border:none;color:var(--muted);padding:5px 9px;cursor:pointer;
  font:inherit;font-size:.78rem;font-weight:600;transition:all .2s;border-left:1px solid var(--line);
}
.lang-toggle button:first-child{border-left:none}
.lang-toggle button.active{background:var(--accent);color:#06231f}

/* ---------------- HERO (accueil, animé, plein écran sur fond noir) ---------------- */
.hero{
  position:relative;overflow:hidden;
  min-height:calc(100vh - 64px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;padding:20px 0 26px;
  background:
    radial-gradient(ellipse 900px 540px at 50% 34%, rgba(37,217,205,.10), transparent),
    var(--bg);
}
/* la vidéo se fond dans le fond noir : aucun cadre, aucune bordure */
.hero-stage{
  position:relative;
  width:min(100%, calc((100vh - 150px) * 1.86667));
  aspect-ratio:1400 / 750;
}
/* la vidéo a un fond identique à celui de la page (#0d1117) : aucun rectangle visible, fonctionne dans tous les navigateurs (Safari inclus) */
.hero-stage video{width:100%;height:100%;object-fit:contain;display:block;background:var(--bg)}
/* zones cliquables INVISIBLES (aucune boîte au survol), simplement cliquables */
.hotspot{
  position:absolute;
  background:transparent;border:none;outline:none;
  cursor:pointer;
}
.hotspot:hover,.hotspot:focus-visible,.hotspot:focus{
  background:transparent;border:none;outline:none;box-shadow:none;
}
.hero-caption{text-align:center;color:var(--muted);font-size:.86rem;letter-spacing:.04em;margin-top:-12px}
.hero-caption b{color:var(--accent);font-weight:600}

/* ---------------- HERO LÉGER : wordmark + REC animé + accroche traduite ---------------- */
.hero-light{min-height:calc(100vh - 64px);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  gap:16px;padding:clamp(46px,8vh,110px) 0 40px;text-align:center;
  background:radial-gradient(ellipse 880px 520px at 50% 40%, rgba(37,217,205,.10), transparent), var(--bg)}
.hero-mark{position:relative;width:min(660px,86%);margin:0 auto}
.hero-mark .mark-img{width:100%;height:auto;display:block;filter:drop-shadow(0 0 44px rgba(37,217,205,.16))}
/* point REC : cross-fade + anneau caméra qui pulse (connotation rec caméra / appli smartphone) */
.rec{position:absolute;left:91.148%;top:27.422%;width:7.441%;aspect-ratio:1;transform:translate(-50%,-50%);
  border-radius:50%;background:var(--red);box-shadow:0 0 14px rgba(255,79,70,.85);
  animation:rec-blink 1.9s ease-in-out infinite}
.rec::before{content:"";position:absolute;inset:-62%;border-radius:50%;border:2px solid rgba(255,79,70,.40)}
.rec::after{content:"";position:absolute;inset:-62%;border-radius:50%;border:2px solid rgba(255,79,70,.75);
  animation:rec-ring 1.9s ease-out infinite}
@keyframes rec-blink{0%,100%{opacity:1}48%{opacity:.20}}
@keyframes rec-ring{0%{transform:scale(.6);opacity:.8}80%{opacity:0}100%{transform:scale(2.5);opacity:0}}
.hero-tagline{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.2rem,2.8vw,1.7rem);color:var(--text);
  font-weight:500;min-height:1.4em;letter-spacing:.005em;white-space:nowrap}
.hero-tagline .dim{color:var(--muted)}
.hero-meta{font-family:ui-monospace,'SF Mono',monospace;color:var(--muted);font-size:.8rem;letter-spacing:.06em;opacity:.75}
@media (prefers-reduced-motion: reduce){.rec,.rec::after{animation:none}}

/* ---------------- EFFETS GÉNÉRATIFS ---------------- */
.gen{min-height:1.1em}
.gen,.type{text-align:left}   /* révélation depuis la gauche : pas de saut centré */
.type.typing::after{content:"▌";color:var(--accent);margin-left:1px;animation:caret .8s steps(1) infinite}
@keyframes caret{50%{opacity:0}}

/* flancs du hero : depuis 2006 / nouveaux signaux */
.hero-flanks{display:flex;justify-content:space-between;width:min(620px,86%);margin:-4px auto 0;
  font-family:ui-monospace,'SF Mono',monospace;font-size:.8rem;letter-spacing:.04em}
.hero-flanks .l{color:var(--muted)}
.hero-flanks .r{color:var(--red)}

/* ---------------- FLUX n8n : câble + boule qui circule (le signal porte l'image) ---------------- */
.flow{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:46px;padding:22px 72px;max-width:1000px;margin:0 auto}
.flow .wire{position:absolute;left:0;right:0;top:50%;height:2px;transform:translateY(-50%);z-index:0;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(37,217,205,.45) 10%,rgba(37,217,205,.45) 90%,transparent)}
.flow .ball{position:absolute;top:50%;left:2%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;z-index:1;pointer-events:none;
  background:#eafffb;box-shadow:0 0 12px var(--accent),0 0 5px #fff;animation:flow-run var(--flow,5s) linear infinite}
@keyframes flow-run{0%{left:1%}100%{left:99%}}
.flow > .node-btn,.flow > .btn{z-index:2}
/* les nœuds réagissent quand la boule passe (délai calé par nœud) */
.flow .node-btn{animation:node-pass var(--flow,5s) linear infinite;animation-delay:var(--d,0s)}
@keyframes node-pass{
  0%{box-shadow:0 0 0 0 rgba(37,217,205,0)}
  4%{box-shadow:0 0 26px 1px rgba(37,217,205,.6)}
  14%{box-shadow:0 0 0 0 rgba(37,217,205,0)}
  100%{box-shadow:0 0 0 0 rgba(37,217,205,0)}
}
@media(prefers-reduced-motion:reduce){.flow .ball,.flow .node-btn{animation:none}}
@media(max-width:760px){.flow{gap:14px;padding:14px 0}.flow .wire,.flow .ball{display:none}.flow .node-btn{animation:none}}

/* ---------------- HERO ENV : 4 modules en placement organique (cordons courbes + boule sous les boutons) ---------------- */
.hero-env{position:relative;width:min(940px,96%);aspect-ratio:1000 / 220;margin:10px auto 0;--flow:4.5s}
.hero-env .env-svg{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}
.hero-env .env-ball{position:absolute;left:0;top:0;width:9px;height:9px;border-radius:50%;background:#eafffb;
  box-shadow:0 0 12px var(--accent),0 0 5px #fff;z-index:1;pointer-events:none;opacity:0;offset-rotate:0deg;offset-anchor:50% 50%}
.hero-env .node-btn{position:absolute;transform:translate(-50%,-50%);z-index:2;white-space:nowrap;
  animation:node-pass var(--flow) linear infinite;animation-delay:var(--d,0s)}
@media(prefers-reduced-motion:reduce){.hero-env .node-btn{animation:none}.hero-env .env-ball{display:none}}
@media(max-width:680px){
  .hero-env{aspect-ratio:auto;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;width:100%}
  .hero-env .env-svg,.hero-env .env-ball{display:none}
  .hero-env .node-btn{position:static;transform:none;animation:none}
}

/* ---------------- EFFET DÉCODAGE (généré en JS) ---------------- */

/* ---------------- BANDEAU DE PAGE (plein écran, slanjai vit dans le menu) ---------------- */
.pagehead{
  position:relative;overflow:hidden;text-align:center;
  min-height:32vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:58px 24px 36px;border-bottom:1px solid var(--line);
  background:
    radial-gradient(ellipse 820px 460px at 50% 24%, rgba(37,217,205,.14), transparent),
    var(--bg);
}
.pagehead .eyebrow{
  display:inline-block;color:var(--accent);font-weight:600;font-size:.86rem;
  letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px;
}
.pagehead .punch{
  font-family:'Space Grotesk',sans-serif;color:var(--text);
  font-size:clamp(1.5rem,4vw,2.6rem);font-weight:500;max-width:18ch;line-height:1.2;
}
.pagehead .punch .dim{color:var(--muted)}

/* ---------------- SECTIONS ---------------- */
section{padding:74px 0}
.sec-label{color:var(--accent);font-weight:600;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
section h2{font-size:clamp(1.5rem,3.2vw,2.1rem);margin-bottom:16px;max-width:680px}
.sec-intro{color:var(--muted);max-width:640px;margin-bottom:44px}
.band-soft{background:var(--bg-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}

/* boutons — style « node » n8n/Max (boîte + ports d'entrée/sortie) sur tout le site */
.cta-row{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:13px 26px;border-radius:10px;font-weight:600;font-size:.95rem;
  border:1.5px solid var(--line);background:rgba(15,20,27,.65);color:var(--text);
  transition:border-color .2s,box-shadow .2s,transform .2s,background .2s}
.btn::before,.btn::after{content:"";position:absolute;top:50%;width:10px;height:10px;border-radius:50%;transform:translateY(-50%)}
.btn::before{left:-6px;background:var(--bg);border:2px solid var(--accent)}
.btn::after{right:-6px;background:var(--accent);box-shadow:0 0 8px rgba(37,217,205,.6)}
.btn:hover{border-color:var(--accent);box-shadow:0 0 20px rgba(37,217,205,.28)}
.btn-primary{background:rgba(37,217,205,.14);border-color:var(--accent);color:var(--accent)}
.btn-primary:hover{background:rgba(37,217,205,.22)}
.btn-ghost{background:rgba(15,20,27,.5)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}

/* ---------------- BANDEAU DES 4 MODULES (boutons n8n reliés) ---------------- */
.svc-band{padding:58px 0 70px}
.svc-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0;margin-top:34px}
.node-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;
  padding:15px 26px;border-radius:11px;border:1.5px solid var(--accent);
  background:rgba(13,17,23,.97);color:#b8fff7;font-family:ui-monospace,'SF Mono',monospace;
  font-size:.95rem;letter-spacing:.02em;transition:box-shadow .2s,transform .2s,background .2s}
.node-btn .nb-num{color:var(--accent);opacity:.7;margin-right:9px;font-size:.78rem}
.node-btn::before,.node-btn::after{content:"";position:absolute;top:50%;width:11px;height:11px;border-radius:50%;transform:translateY(-50%)}
.node-btn::before{left:-6px;background:var(--bg);border:2px solid var(--accent)}
.node-btn::after{right:-6px;background:var(--accent);box-shadow:0 0 8px rgba(37,217,205,.6)}
.node-btn:hover{box-shadow:0 0 22px rgba(37,217,205,.4);border-color:#7ffff0}
.node-email{background:rgba(37,217,205,.16);color:#eafffb;box-shadow:0 0 26px rgba(37,217,205,.4);font-size:1.05rem;padding:16px 30px;border-color:#7ffff0}

/* CONTACT — composition verticale resserrée : 3 boutons décalés → node email centré en bas */
.pagehead-compact{min-height:auto;padding:46px 24px 18px}
.contact-stack{position:relative;width:min(560px,92%);height:430px;margin:6px auto 0}
.contact-stack .env-svg{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}
.contact-stack .env-ball{position:absolute;left:0;top:0;width:9px;height:9px;border-radius:50%;background:#eafffb;
  box-shadow:0 0 12px var(--accent),0 0 5px #fff;z-index:1;opacity:0;pointer-events:none;offset-rotate:0deg;offset-anchor:50% 50%}
.contact-stack .node-btn{position:absolute;transform:translate(-50%,-50%);z-index:2;white-space:nowrap;
  animation:node-pass var(--flow,6s) linear infinite;animation-delay:var(--d,0s)}
/* ports en HAUT et BAS (centrés) → flux vertical propre */
.contact-stack .node-btn::before{left:50%;right:auto;top:-6px;bottom:auto;transform:translateX(-50%)}
.contact-stack .node-btn::after{left:50%;right:auto;top:auto;bottom:-6px;transform:translateX(-50%)}
@media(prefers-reduced-motion:reduce){.contact-stack .node-btn{animation:none}}
@media(max-width:680px){
  .contact-stack{height:auto;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}
  .contact-stack .env-svg,.contact-stack .env-ball{display:none}
  .contact-stack .node-btn{position:static;transform:none;animation:none}
}
.cord{flex:0 0 46px;height:2px;background:linear-gradient(90deg,rgba(37,217,205,.25),var(--accent),rgba(37,217,205,.25));opacity:.6}
@media(max-width:760px){.cord{display:none}.svc-row{gap:14px}}

/* cartes / grilles */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;transition:border-color .25s, transform .25s}
.card:hover{border-color:var(--accent)}
.card .icon{width:44px;height:44px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin-bottom:18px}
.card h3{font-size:1.18rem;margin-bottom:10px}
.card p{color:var(--muted);font-size:.95rem}

/* offres ancrées (page services) */
.offer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:36px;align-items:start;padding:42px 0;scroll-margin-top:90px}

/* séparateur « timeline NLE » entre services : triangle rouge + timecode discret + dot qui circule */
.svc-sep{position:relative;height:46px;margin:20px 0}
.svc-sep .rule{position:absolute;left:0;right:0;top:34%;height:1px;background:rgba(37,217,205,.20)}
.svc-sep .ticks{position:absolute;left:0;right:0;top:calc(34% - 4px);height:8px;opacity:.5;
  background-image:repeating-linear-gradient(90deg,rgba(37,217,205,.28) 0 1px,transparent 1px 30px)}
/* TRIANGLE + son timecode juste en dessous, qui se déplacent ENSEMBLE le long de l'échelle horodatée */
.svc-sep .tri-head{position:absolute;top:34%;left:5%;transform:translate(-50%,-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:3px;
  animation:trimove var(--flow,10s) linear infinite;animation-delay:var(--d,0s)}
.svc-sep .tri{width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid var(--red)}
.svc-sep .tcv2{font-family:ui-monospace,'SF Mono',monospace;font-size:.6rem;color:var(--muted);opacity:.72;white-space:nowrap;letter-spacing:.03em}
@keyframes trimove{0%{left:5%}100%{left:95%}}
@media(prefers-reduced-motion:reduce){.svc-sep .tri-head{animation:none}}
.offer .offer-head{position:sticky;top:88px}
.offer .offer-num{font-family:'Space Grotesk',sans-serif;color:var(--accent);font-size:.85rem;letter-spacing:.16em;margin-bottom:8px}
.offer h2{font-size:clamp(1.4rem,2.8vw,1.9rem);margin-bottom:8px}
.offer .offer-tag{color:var(--muted);font-size:.9rem}
.offer p{color:var(--muted);margin-bottom:14px}
.offer ul{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:8px}
.offer li{position:relative;padding-left:38px;color:var(--text);font-size:.96rem}
.offer li::before{content:"_<-";position:absolute;left:0;top:.15em;color:var(--accent);font-family:ui-monospace,'SF Mono',monospace;font-weight:700;font-size:.74rem;letter-spacing:0}

/* approche */
.approach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}
.approach-item{border-left:3px solid var(--accent);padding-left:20px}
.approach-item h3{font-size:1.08rem;margin-bottom:8px;white-space:nowrap}
@media(max-width:520px){.approach-item h3{white-space:normal}}
.approach-item p{color:var(--muted);font-size:.94rem}

/* about */
.about-flex{display:flex;gap:48px;align-items:flex-start;flex-wrap:wrap}
.about-text{flex:1;min-width:300px}
.about-text p{color:var(--muted);margin-bottom:16px}
.about-text strong{color:var(--text)}
.clients{flex:1;min-width:280px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.clients h3{font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.client-tags{display:flex;flex-wrap:wrap;gap:10px}
.client-tags span{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:.85rem;color:var(--text)}
.clients .note{font-size:.78rem;color:var(--muted);margin-top:16px}

/* carrousel « experience built with » — défilement continu, mono teal sur transparence
   (les vrais logos bichromes viendront remplacer le texte plus tard) */
.marquee{overflow:hidden;position:relative;margin-top:6px;
  -webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
          mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;gap:38px;width:max-content;animation:marquee 30s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{font-family:ui-monospace,'SF Mono',monospace;color:var(--accent);font-size:1.02rem;
  letter-spacing:.04em;white-space:nowrap;opacity:.82;text-transform:none}
/* logo en bichromie teal slanjai sur transparent : déposer un SVG/PNG dans assets/logos/ puis
   <span class="marquee-item logo-chip" style="--logo:url(assets/logos/bbc.svg);--w:80px"></span> */
.logo-chip{display:inline-block;width:var(--w,110px);height:30px;background:var(--accent);opacity:.85;vertical-align:middle;
  -webkit-mask:var(--logo) center/contain no-repeat;mask:var(--logo) center/contain no-repeat}
.marquee:hover .logo-chip,.logo-chip:hover{opacity:1}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap}}

/* bande « experience built with » pleine largeur, séparation entre deux sections texte */
.exp-band{padding:46px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg)}
.exp-band .exp-title{display:block;text-align:center;margin-bottom:22px}
.exp-band .exp-note{text-align:center;margin-top:18px;color:var(--muted);opacity:.85}

/* réalisations */
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.work-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .25s,transform .25s}
.work-card:hover{border-color:var(--accent)}
.work-card .tc{padding:14px 18px;font-family:'Space Grotesk',sans-serif;font-size:.72rem;letter-spacing:.1em;color:var(--accent);border-bottom:1px solid var(--line)}
.work-card .body{padding:22px 20px}
.work-card h3{font-size:1.06rem;margin-bottom:8px}
.work-card p{color:var(--muted);font-size:.92rem}
.work-note{text-align:center;color:var(--muted);font-size:.9rem;margin-top:40px}

/* contact */
.contact-center{text-align:center}
.contact-center h2,.contact-center .sec-intro{margin-left:auto;margin-right:auto}
.contact-email{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.2rem,3vw,1.7rem);font-weight:500;text-shadow:0 0 16px rgba(37,217,205,.5)}
.contact-meta{color:var(--muted);font-size:.92rem;margin-top:18px}
.contact-channels{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:30px}

/* footer */
footer{border-top:1px solid var(--line);padding:32px 0;text-align:center}
footer .domains{color:var(--muted);font-size:.88rem;margin-bottom:8px}
footer .domains a{color:var(--muted)}
footer .domains a:hover{color:var(--accent)}
footer .copy{color:var(--muted);font-size:.8rem}

/* ---------------- responsive ---------------- */
@media(max-width:760px){
  .offer{grid-template-columns:1fr;gap:14px;padding:36px 0}
  .offer .offer-head{position:static}
}
@media(max-width:640px){
  .nav-links a:not(.lang-keep){display:none}
  section{padding:54px 0}
  .pagehead{min-height:38vh;padding:56px 20px 44px}
  .hero{min-height:auto;padding:30px 0 34px}
  .hero-stage{width:100%}
  .hero-tagline{white-space:normal}
}

/* ---------------- SECTIONS IMMERSIVES (plein écran, scroll) ----------------
   Usage : <section class="immersive" style="--img:url('assets/immersive/x.jpg')">
             <div class="immersive-media"></div>            (ou <video class="immersive-media" …>)
             <div class="immersive-inner"> … </div>
           </section>
*/
.immersive{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.immersive-media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;background:var(--bg);transform:scale(1.12);will-change:transform}
/* voile créatif : dégradé directionnel sombre (zone de lecture à gauche) + teinte teal + raccord haut/bas vers le noir */
.immersive::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    linear-gradient(180deg,var(--bg) 0%,rgba(13,17,23,0) 16%,rgba(13,17,23,0) 84%,var(--bg) 100%),
    radial-gradient(120% 95% at 16% 55%,rgba(13,17,23,.88),rgba(13,17,23,.30) 52%,rgba(13,17,23,0) 78%),
    radial-gradient(150% 130% at 84% 26%,rgba(37,217,205,.06),rgba(13,17,23,0) 55%);}
.immersive-inner{position:relative;z-index:1;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.immersive-kicker{font-family:ui-monospace,'SF Mono',monospace;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}
.immersive-line{font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:clamp(1.9rem,5vw,3.6rem);line-height:1.08;max-width:17ch;text-shadow:0 2px 30px rgba(0,0,0,.55)}
.immersive-sub{margin-top:16px;color:var(--text);opacity:.85;max-width:44ch}
@media(prefers-reduced-motion:reduce){.immersive-media{transform:scale(1.04)}}
@media(max-width:640px){.immersive{min-height:80svh}.immersive-line{max-width:18ch}}
