/* ═══════════════════════════════════════════════
   SUPRADRAMA — Design system V2 (refonte 2026)
   Tokens + composants communs à tous les sous-domaines
   ═══════════════════════════════════════════════ */

:root{
  --encre:#14111A;
  --encre-2:#1C1722;
  --ivoire:#F4EFE6;
  --rose:#FF4D6D;
  --rose-pale:#FFAFC0;
  --hairline:rgba(244,239,230,.16);
  --muted:rgba(244,239,230,.72);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--encre);
  color:var(--ivoire);
  font-family:'Archivo',sans-serif;
  font-variation-settings:'wdth' 100;
  font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
img{display:block;max-width:100%}
.wrap{max-width:1320px;margin:0 auto;padding:0 24px}

/* Typo utilitaires */
.mono{font-family:'Spline Sans Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.display{
  font-family:'Archivo',sans-serif;
  font-variation-settings:'wdth' 125;
  font-weight:850;text-transform:uppercase;letter-spacing:.01em;line-height:.95;
}
.vues{font-family:'Spline Sans Mono',monospace;color:var(--rose);font-variant-numeric:tabular-nums}

/* ── Masthead ─────────────────────────── */
header.masthead-bar{
  position:sticky;top:0;z-index:100;
  background:var(--encre);border-bottom:1px solid var(--hairline);
  transition:transform .35s ease,background .3s,box-shadow .3s,border-color .3s;
}
header.masthead-bar.is-stuck{background:rgba(20,17,26,.78);backdrop-filter:blur(10px);border-color:transparent;box-shadow:0 1px 0 var(--hairline)}
header.masthead-bar.is-hidden{transform:translateY(-100%)}
.masthead{display:flex;align-items:center;justify-content:space-between;padding:18px 0;gap:24px;transition:padding .3s ease}
header.masthead-bar.is-stuck .masthead{padding:11px 0}
.masthead img{height:36px;width:auto}
.masthead nav{display:flex;gap:26px;flex-wrap:wrap;align-items:center}
.masthead nav a{
  font-family:'Spline Sans Mono',monospace;font-size:.76rem;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;
  border-bottom:1px solid transparent;padding-bottom:3px;
  transition:border-color .2s,color .2s;
}
.masthead nav a:hover{border-color:var(--rose);color:var(--rose-pale)}
.masthead nav a[aria-current="page"]{color:var(--rose-pale);border-color:var(--rose)}
.masthead nav a.contact{color:var(--rose)}
.masthead nav a.contact:hover{color:var(--rose-pale)}

/* Burger mobile (injecté par v2.js) */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;flex-direction:column;align-items:flex-end;justify-content:center;gap:7px;padding:0}
.nav-toggle span{display:block;width:22px;height:1px;background:var(--ivoire);transition:transform .25s}
.nav-open .nav-toggle span:first-child{transform:translateY(4px) rotate(45deg)}
.nav-open .nav-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}

/* Switcher FR/EN */
.lang{display:flex;gap:2px;align-items:center;color:var(--muted);font-family:'Spline Sans Mono',monospace;font-size:.75rem}
.lang-switcher{background:none;border:none;color:var(--muted);font:inherit;cursor:pointer;padding:2px 4px;letter-spacing:.06em}
.lang-switcher:hover{color:var(--rose-pale)}
.lang-switcher.is-active{color:var(--rose)}
.lang-switcher:focus-visible{outline:2px solid var(--rose);outline-offset:2px}

/* ── Hero : le reel ───────────────────── */
.hero{position:relative;border-bottom:1px solid var(--hairline);overflow:hidden}
.hero::after{
  content:"";position:absolute;bottom:-40%;left:-10%;width:60%;height:100%;
  background:radial-gradient(closest-side, rgba(255,77,109,.22), transparent 70%);
  pointer-events:none;
}
.reel{position:relative;display:block}
.reel img{width:100%;aspect-ratio:21/9;object-fit:cover;opacity:.85;transition:opacity .3s}
.reel:hover img{opacity:1}
.reel .play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:88px;height:88px;border:1px solid var(--ivoire);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(20,17,26,.35);backdrop-filter:blur(4px);
  transition:background .25s,border-color .25s;
}
.reel:hover .play{background:var(--rose);border-color:var(--rose)}
.reel .play svg{margin-left:5px}
.reel .tc{position:absolute;top:16px;right:20px;color:var(--ivoire);opacity:.85}
.reel--studio{border:1px solid var(--hairline)}
.hero-claim{position:relative;padding:40px 0 44px;z-index:1}
.hero-claim h1{font-size:clamp(2.4rem,6.5vw,5.4rem)}
.hero-claim h1 em{font-style:normal;color:var(--rose)}
.billing{display:flex;justify-content:space-between;gap:16px;margin-top:24px;color:var(--muted);flex-wrap:wrap}

/* Sous-titre élégant du hero — Archivo italique léger, beaucoup d'air */
.subclaim{
  font-family:'Archivo',sans-serif;font-style:italic;font-weight:300;
  font-variation-settings:'wdth' 100;
  font-size:clamp(1.05rem,2.1vw,1.5rem);line-height:1.3;letter-spacing:.03em;
  color:rgba(244,239,230,.85);margin-top:16px;
}
.subclaim .x{font-style:normal;color:var(--rose);padding:0 8px}
.subclaim em{font-style:inherit;color:var(--rose)}
/* Descriptif sous le titre des blocs (mono, petit) — Studio & Fiction se répondent */
.statement .note-mono{font-family:'Spline Sans Mono',monospace;font-size:.78rem;letter-spacing:.04em;line-height:1.6;text-transform:none;color:var(--muted)}

/* ── Départements ─────────────────────── */
.dept{border-bottom:1px solid var(--hairline);padding:64px 0}
.dept-head{display:grid;grid-template-columns:140px 1fr auto;gap:24px;align-items:baseline;margin-bottom:40px}
.dept-head .num{color:var(--rose)}
.dept-head h2{font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:400}
.dept-head .go{font-size:.85rem;color:var(--rose);font-weight:600;white-space:nowrap}
.dept-head .go:hover{color:var(--rose-pale)}
.dept-sub{max-width:620px;color:var(--muted);font-size:.95rem;margin:-24px 0 40px 164px}
.dept-sub b{color:var(--ivoire);font-weight:600}

/* Studio : statement fiction × marques */
.statement{margin:-12px 0 48px 164px;max-width:860px}
.statement .big{font-size:clamp(1.6rem,3.6vw,3rem);display:block;margin-bottom:16px}
.statement .big em{font-style:normal;color:var(--rose)}
.statement p{color:var(--muted);font-size:.95rem;max-width:620px}

/* Étiquette de zone (home marques : sépare productions vs offre) */
.zlabel{display:block;font-family:'Spline Sans Mono',monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rose);margin-bottom:16px}
.statement--mid{margin:32px 0 36px 164px}
@media (max-width:960px){.statement--mid{margin-left:0}}

/* Studio : formats phares */
.formats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);margin-bottom:48px}
.format{background:var(--encre);padding:28px;transition:background .25s;display:flex;flex-direction:column}
.format:hover{background:var(--encre-2)}
.format .kicker{color:var(--muted);display:block;margin-bottom:12px}
.format h3{font-size:clamp(1.8rem,3vw,2.6rem);color:var(--rose);margin-bottom:14px}
.format .tagline{font-weight:600;font-size:.95rem;margin-bottom:12px}
.format p{font-size:.88rem;color:var(--muted)}

/* Studio : fiches d'œuvres (talents d'abord) */
.fiches{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.fiches--3{grid-template-columns:repeat(3,1fr);margin-bottom:44px}
.fiche{background:var(--encre);padding:18px;display:flex;flex-direction:column;gap:10px;transition:background .25s}
.fiche:hover{background:var(--encre-2)}
.fiche img{aspect-ratio:16/10;object-fit:cover;width:100%}
.fiche .annee{color:var(--rose)}
.fiche .talents{
  font-variation-settings:'wdth' 125;font-weight:850;text-transform:uppercase;
  font-size:1.02rem;line-height:1.3;letter-spacing:.02em;
}
.fiche .talents .x{color:var(--rose);font-weight:400;padding:0 3px}
.fiche .projet{font-size:.82rem;color:var(--muted);flex:1}
.fiche .projet b{color:var(--ivoire);font-weight:600}

/* Œuvre phare (feature) */
.feature{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:end;margin-bottom:48px}
.feature-visu{position:relative;border:1px solid var(--hairline);display:block;overflow:hidden}
.feature-visu img{width:100%;aspect-ratio:16/9;object-fit:cover}
.feature h3{font-size:clamp(2rem,4vw,3.4rem);margin-bottom:16px}
.lead{color:var(--muted);font-size:.95rem;max-width:680px;margin:0 0 28px}

/* Lecteurs vidéo (clic = play/pause) */
.js-player{position:relative;cursor:pointer}
.js-player video{width:100%;display:block;object-fit:cover}
.js-player .play-ind{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:56px;height:56px;border:1px solid var(--ivoire);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(20,17,26,.35);backdrop-filter:blur(4px);
  transition:background .25s,border-color .25s;pointer-events:none;z-index:2;
}
.js-player:hover .play-ind{background:var(--rose);border-color:var(--rose)}
.js-player.is-playing .play-ind{display:none}

/* Épisodes (9/16) */
.episodes-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.ep{background:var(--encre)}
.ep video{aspect-ratio:9/16;height:auto}
.ep .ep-num{position:absolute;top:10px;left:12px;color:var(--ivoire);z-index:2;text-shadow:0 1px 8px rgba(20,17,26,.6)}

/* Crédits (deux colonnes de générique) */
.credits-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:48px}
.credits-cols .col-title{color:var(--rose);display:block;margin-bottom:10px}
.generique dd a{border-bottom:1px solid var(--hairline);transition:border-color .2s,color .2s}
.generique dd a:hover{color:var(--rose-pale);border-color:var(--rose)}

/* Fiches studio avec média vidéo */
.fiche .media{position:relative;margin:0}
.fiche .media video,.fiche .media img{aspect-ratio:16/10;width:100%}

/* Générique (fiche d'œuvre détaillée) */
.generique{border-top:1px solid var(--hairline)}
.generique div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--hairline);font-size:.87rem}
.generique dt{color:var(--muted)}
.generique dd{text-align:right}

/* Fiction : le slate (avec mini-visuels) */
.slate{border-top:1px solid var(--hairline)}
.slate-row{
  display:grid;grid-template-columns:120px 80px 1fr auto auto;gap:24px;align-items:center;
  padding:12px 0;border-bottom:1px solid var(--hairline);transition:padding-left .25s;
}
.slate-row:hover{padding-left:10px}
.slate-row .thumb{width:120px;aspect-ratio:16/9;object-fit:cover;opacity:.85;transition:opacity .25s}
.slate-row:hover .thumb{opacity:1}
.slate-row .fic{color:var(--muted)}
.slate-row .titre{font-weight:600;font-size:1.05rem;letter-spacing:.01em;display:block}
.slate-row .auteurs{display:block;font-size:.82rem;color:var(--muted);font-weight:400}
.slate-row .format-tag{font-size:.82rem;color:var(--muted);text-align:right}
.slate-row .statut{color:var(--rose)}

/* Home Fiction : cartes larges 2×2 (esprit studio, layout distinct) */
.slate-cards{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.slate-card{background:var(--encre);display:flex;flex-direction:column;transition:background .25s}
.slate-card:hover{background:var(--encre-2)}
.slate-card .sc-img{overflow:hidden}
.slate-card .sc-img img{width:100%;aspect-ratio:16/9;object-fit:cover;opacity:.9;transition:transform .5s,opacity .3s}
.slate-card:hover .sc-img img{transform:scale(1.04);opacity:1}
.slate-card .sc-body{padding:20px 22px;display:flex;flex-direction:column;gap:8px}
.slate-card .sc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.slate-card .sc-top .fic{color:var(--muted)}
.slate-card .sc-top .statut{color:var(--rose)}
.slate-card .titre{font-weight:600;font-size:1.2rem;letter-spacing:.01em;line-height:1.2;display:block}
.slate-card .auteurs{display:block;font-size:.82rem;color:var(--muted);font-weight:400;margin-top:4px}
.slate-card .format-tag{font-size:.82rem;color:var(--muted)}
@media(max-width:768px){.slate-cards{grid-template-columns:1fr}}

/* 4H12 / podcast */
.podcast{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.podcast .visu{position:relative;border:1px solid var(--hairline);aspect-ratio:16/9;overflow:hidden;background:var(--encre-2)}
.podcast .visu img{width:100%;height:100%;object-fit:cover;opacity:.9;transition:opacity .3s}
.podcast .visu:hover img{opacity:1}
.podcast .visu::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(20,17,26,.75), transparent 45%);
  pointer-events:none;
}
.podcast .visu .overlay{
  position:absolute;left:20px;bottom:12px;z-index:1;
  font-size:clamp(2.2rem,4.5vw,3.6rem);color:var(--ivoire);
}
.podcast p{color:var(--muted);font-size:.95rem;margin:16px 0 24px}

/* Boutons */
.btn{display:inline-block;border:1px solid var(--rose);color:var(--rose);padding:12px 28px;font-weight:600;font-size:.9rem;transition:background .25s,color .25s}
.btn:hover{background:var(--rose);color:var(--encre)}

/* Fiction : œuvres du slate */
.work{padding:56px 0;border-bottom:1px solid var(--hairline)}
.work:last-of-type{border-bottom:0}
.work .feature{margin-bottom:0;align-items:center}
.feature--rev{grid-template-columns:1fr 1.6fr}
.feature--rev .feature-visu{order:2}
.work .fic-num{color:var(--rose)}
.work h2{font-size:clamp(2rem,4.5vw,3.6rem);margin:6px 0 4px}
.auteurs-line{
  font-variation-settings:'wdth' 125;font-weight:850;text-transform:uppercase;
  font-size:1rem;letter-spacing:.02em;line-height:1.3;margin:0 0 24px;
}
.auteurs-line .x{color:var(--rose);font-weight:400;padding:0 3px}

/* About : fondateurs */
.lead a,.founder p a{color:var(--ivoire);border-bottom:1px solid var(--hairline);transition:color .2s,border-color .2s}
.lead a:hover,.founder p a:hover{color:var(--rose-pale);border-color:var(--rose)}
.lead strong,.founder p strong{color:var(--ivoire);font-weight:600}
.founders{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.founder{background:var(--encre);padding:28px;transition:background .25s}
.founder:hover{background:var(--encre-2)}
.founder img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:18px}
.founder h2{font-size:clamp(1.4rem,2.6vw,2rem);margin-bottom:4px}
.founder .role{color:var(--rose);display:block;margin-bottom:14px}
.founder p{font-size:.9rem;color:var(--muted)}
.founder .f-links{margin-top:16px}
.founder .f-links a{color:var(--rose);font-size:.85rem;font-weight:600}
.founder .f-links a:hover{color:var(--rose-pale)}

/* 4H12 : invités */
.guests-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.guest{background:var(--encre);padding:16px;display:flex;flex-direction:column;gap:8px;transition:background .25s}
.guest:hover{background:var(--encre-2)}
.guest img{width:100%;aspect-ratio:1;object-fit:cover}
.guest .g-name{font-variation-settings:'wdth' 125;font-weight:850;text-transform:uppercase;font-size:.92rem;line-height:1.2}
.guest .g-link{color:var(--rose);font-size:.78rem}
.guest .g-link:hover{color:var(--rose-pale)}

/* Embed 16/9 (YouTube) */
.embed-169{position:relative;aspect-ratio:16/9;border:1px solid var(--hairline);background:var(--encre-2)}
.embed-169 iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Presse */
.press-list{border-top:1px solid var(--hairline)}
.press-row{display:grid;grid-template-columns:120px 1fr auto;gap:24px;align-items:center;padding:14px 0;border-bottom:1px solid var(--hairline);transition:padding-left .25s}
.press-row:hover{padding-left:10px}
.press-row .p-kicker{color:var(--muted)}
.press-row .p-title{font-weight:600}
.press-row .p-cta{color:var(--rose)}

/* Références (logos clients, statique) */
.refs{margin-top:56px}
.refs .kicker{color:var(--muted);display:block;margin-bottom:14px}
.logos-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.logos-grid span{background:var(--encre);display:flex;align-items:center;justify-content:center;padding:18px 14px;min-height:88px}
.logos-grid img{max-height:52px;max-width:100%;width:auto;opacity:.5;filter:grayscale(1);transition:opacity .25s,filter .25s}
.logos-grid span:hover img{opacity:1;filter:none}

/* ── Colophon ─────────────────────────── */
footer.colophon-bar{padding:56px 0 40px}
.colophon{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:48px}
.colophon h4{font-weight:700;font-size:.95rem;margin-bottom:12px;text-transform:uppercase;letter-spacing:.04em}
.colophon p,.colophon a{font-size:.85rem;color:var(--muted);line-height:1.7}
.colophon a{display:block}
.colophon a:hover{color:var(--rose-pale)}
.legal{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--hairline);padding-top:20px;color:var(--muted);flex-wrap:wrap}

/* Sticky "Let's talk" (injecté par v2.js) — pastille discrète,
   masquée en haut de page, apparaît après un écran de scroll */
.sticky-talk{
  position:fixed;right:20px;bottom:20px;z-index:50;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .35s,visibility .35s,transform .35s;
}
.sticky-talk.is-visible{opacity:1;visibility:visible;transform:none}
.st-btn{
  width:42px;height:42px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:rgba(20,17,26,.72);backdrop-filter:blur(8px);
  border:1px solid var(--hairline);
  transition:border-color .25s;
}
.st-btn:hover{border-color:var(--rose)}
.st-dot{
  width:8px;height:8px;border-radius:50%;background:var(--rose);
  box-shadow:0 0 10px rgba(255,77,109,.7);
  animation:st-pulse 3s ease-in-out infinite;
}
@keyframes st-pulse{0%,100%{opacity:1}50%{opacity:.35}}
.st-panel{
  position:absolute;right:0;bottom:calc(100% + 10px);min-width:280px;
  background:var(--encre-2);border:1px solid var(--hairline);
  display:flex;flex-direction:column;
}
.st-panel[hidden]{display:none}
.st-head{
  font-family:'Spline Sans Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--rose);padding:12px 14px;border-bottom:1px solid var(--hairline);
}
.st-panel a{padding:12px 14px;font-size:.85rem;border-bottom:1px solid var(--hairline);display:flex;flex-direction:column;gap:2px}
.st-panel a:last-child{border-bottom:0}
.st-panel a:hover{background:var(--encre);color:var(--rose-pale)}
.st-panel a .st-label{font-family:'Spline Sans Mono',monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* ── Lightbox vidéo (overlay, injecté par v2.js) ─── */
.sd-lightbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  padding:24px;
  background:rgba(10,8,14,.82);backdrop-filter:blur(10px);
  opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s;
}
.sd-lightbox.is-open{opacity:1;visibility:visible}
.sd-lightbox .sd-stage{
  position:relative;
  max-width:min(96vw,1280px);max-height:90vh;
  display:flex;align-items:center;justify-content:center;
  transform:scale(.97);transition:transform .28s;
}
.sd-lightbox.is-open .sd-stage{transform:none}
.sd-lightbox video{
  display:block;max-width:96vw;max-height:90vh;
  width:auto;height:auto;background:#000;
  border:1px solid var(--hairline);
  box-shadow:0 30px 80px rgba(0,0,0,.55);
}
.sd-lightbox .sd-close{
  position:absolute;top:-14px;right:-14px;z-index:2;
  width:44px;height:44px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:var(--encre-2);border:1px solid var(--hairline);
  color:var(--ivoire);transition:background .2s,border-color .2s,transform .2s;
}
.sd-lightbox .sd-close:hover{background:var(--rose);border-color:var(--rose);transform:rotate(90deg)}
.sd-lightbox .sd-close:focus-visible{outline:2px solid var(--rose);outline-offset:2px}
.sd-lightbox .sd-close svg{width:18px;height:18px;display:block}
body.sd-noscroll{overflow:hidden}
@media (max-width:768px){
  .sd-lightbox{padding:16px}
  .sd-lightbox .sd-close{top:-8px;right:-8px;width:40px;height:40px}
}

/* ── Contact : deux colonnes (empilées en mobile) ─── */
.formats--2{grid-template-columns:1fr 1fr}

/* ── Responsive / accessibilité ───────── */
/* Carton de générique : animation du claim hero (home)
   — lignes masquées qui montent + chasse variable 75→125,
   le mot en rose scintille comme un projecteur avant de se fixer.
   Posé par v2.js uniquement si prefers-reduced-motion est inactif. */
.hero-claim h1 .ct-line{display:block;overflow:hidden}
.hero-claim h1 .ct-in{
  display:block;
  transform:translateY(108%);opacity:0;
}
.hero-claim h1.ct-go .ct-in{
  transform:none;opacity:1;
  transition:transform .8s cubic-bezier(.16,1,.3,1),opacity .7s ease;
}
.hero-claim h1.ct-go .ct-line:nth-child(2) .ct-in{transition-delay:.18s}
.hero-claim h1.ct-go .ct-line:nth-child(3) .ct-in{transition-delay:.36s}
.hero-claim h1.ct-go em{animation:ct-flash .45s steps(1,end) 1s both}
@keyframes ct-flash{
  0%{opacity:0}
  20%{opacity:1}
  32%{opacity:.25}
  48%{opacity:1}
  62%{opacity:.4}
  78%{opacity:1}
  100%{opacity:1}
}

/* Apparition douce au scroll (classes posées par v2.js,
   uniquement si prefers-reduced-motion est inactif) */
.rv{
  opacity:0;transform:translateY(12px);
  transition:opacity .5s ease,transform .5s ease,background .25s,padding-left .25s;
}
.rv.rv-in{opacity:1;transform:none}

/* Vie des images au survol */
.fiche{overflow:hidden}
.fiche img,.fiche .media video{opacity:.88;transition:opacity .3s,transform .5s}
.fiche:hover img,.fiche:hover .media video{opacity:1;transform:scale(1.02)}
.fiche.is-playing .media video{opacity:1;transform:none}
.feature-visu img{transition:transform .6s,opacity .3s}
.feature-visu:hover img{transform:scale(1.015)}
.guest img{opacity:.9;filter:grayscale(1);transition:opacity .35s,filter .45s}
.guest:hover img{opacity:1;filter:grayscale(0)}
.ep video{opacity:.85;transition:opacity .3s}
.ep:hover video,.ep.is-playing video{opacity:1}

/* Ancrages : compense le header sticky */
section[id],article[id]{scroll-margin-top:84px}

/* ── Lightbox : spinner, légende, navigation ─── */
.sd-lightbox .sd-spin{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border:2px solid rgba(244,239,230,.25);border-top-color:var(--rose);border-radius:50%;animation:sd-spin .8s linear infinite;pointer-events:none;z-index:3}
.sd-lightbox .sd-spin[hidden]{display:none}
@keyframes sd-spin{to{transform:rotate(360deg)}}
.sd-lightbox .sd-cap{position:absolute;left:0;bottom:-30px;width:100%;text-align:center;font-family:'Spline Sans Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ivoire);opacity:.85}
.sd-lightbox .sd-cap[hidden]{display:none}
.sd-lightbox .sd-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;background:rgba(20,17,26,.6);border:1px solid var(--hairline);color:var(--ivoire);transition:background .2s,border-color .2s}
.sd-lightbox .sd-nav:hover{background:var(--rose);border-color:var(--rose)}
.sd-lightbox .sd-nav:focus-visible{outline:2px solid var(--rose);outline-offset:2px}
.sd-lightbox .sd-nav svg{width:20px;height:20px;display:block}
.sd-lightbox .sd-prev{left:18px}
.sd-lightbox .sd-next{right:18px}
.sd-lightbox .sd-nav[hidden]{display:none}
@media (max-width:768px){.sd-lightbox .sd-nav{width:42px;height:42px;background:rgba(20,17,26,.8)}.sd-lightbox .sd-prev{left:8px}.sd-lightbox .sd-next{right:8px}.sd-lightbox .sd-cap{bottom:-26px}}

/* ── Scrollbar fine + sélection ───────── */
*{scrollbar-width:thin;scrollbar-color:rgba(255,77,109,.55) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(255,77,109,.5);border-radius:8px;border:2px solid var(--encre);background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:var(--rose);background-clip:padding-box}
::selection{background:var(--rose);color:var(--encre)}

/* ── 404 : glow rose ──────────────────── */
.err-glow{position:relative;overflow:hidden}
.err-glow::before{content:"";position:absolute;top:-25%;right:-8%;width:55%;height:130%;background:radial-gradient(closest-side,rgba(255,77,109,.20),transparent 70%);pointer-events:none}

@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
@media (max-width: 960px){
  .formats,.podcast,.formats--2{grid-template-columns:1fr;gap:28px}
  .formats,.formats--2{gap:1px}
  .fiches{grid-template-columns:1fr 1fr}
  .dept-head{grid-template-columns:1fr;gap:8px}
  .dept-sub,.statement{margin-left:0}
  .colophon{grid-template-columns:1fr}
  .slate-row{grid-template-columns:80px 1fr auto;gap:14px}
  .slate-row .thumb{width:80px}
  .slate-row .fic,.slate-row .format-tag{display:none}
}
@media (max-width: 960px){
  .feature,.feature--rev{grid-template-columns:1fr;gap:28px}
  .feature--rev .feature-visu{order:0}
  .work{padding:40px 0}
  .episodes-grid{grid-template-columns:repeat(3,1fr)}
  .credits-cols{grid-template-columns:1fr}
  .logos-grid{grid-template-columns:repeat(4,1fr)}
  .guests-grid{grid-template-columns:repeat(3,1fr)}
  .founders{grid-template-columns:1fr}
}
@media (max-width: 768px){
  .reel img{aspect-ratio:4/5}
  .work .feature-visu img{aspect-ratio:4/5}
  .reel .play{width:64px;height:64px}
  .dept{padding:44px 0}
  .hero-claim{padding:28px 0 32px}
  .masthead{padding:14px 0;gap:14px}
  header.masthead-bar{position:sticky;top:0}
  .nav-toggle{display:flex}
  .masthead nav{display:none}
  .nav-open .masthead nav{
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    position:absolute;top:100%;left:0;right:0;z-index:60;
    background:var(--encre);border-bottom:1px solid var(--hairline);
    padding:4px 24px 20px;
  }
  .nav-open .masthead nav a{width:100%;padding:14px 0;border-bottom:1px solid var(--hairline);font-size:.9rem}
  .nav-open .masthead nav a[aria-current="page"]{border-color:var(--rose)}
  .nav-open .masthead nav .lang{padding-top:16px}
  .statement{margin-bottom:36px}
  .format{padding:22px}
  .billing{flex-direction:column;gap:4px}
}
@media (max-width: 560px){
  .fiches{grid-template-columns:1fr}
  .podcast .visu .overlay{left:14px;bottom:8px}
  .episodes-grid{grid-template-columns:repeat(2,1fr)}
  .logos-grid{grid-template-columns:repeat(3,1fr)}
  .guests-grid{grid-template-columns:repeat(2,1fr)}
  .press-row{grid-template-columns:1fr auto}
  .press-row .p-kicker{display:none}
}
