/* ============================================================
   ROADENT — site vitrine
   Direction : éditorial rétro-athlétique
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Anton&family=Bagel+Fat+One&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,900;1,9..144,400;1,9..144,600;1,9..144,900&family=Archivo:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&family=Caveat:wght@400;500;600;700&display=swap');

/* ---------- TOKENS ---------- */
:root{
  --cream:#F2EDE4;
  --cream-light:#FBF8F2;
  --navy:#2C3142;
  --navy-dark:#1E2230;
  --night:#111A24;
  --night-deep:#0A111A;
  --gold:#E8C840;
  --bordeaux:#A02C2C;
  --terracotta:#C45A3D;
  --grid:rgba(120,180,225,.08);

  --font-display:'Anton',system-ui,sans-serif;
  --font-serif:'Fraunces',Georgia,serif;
  --font-sans:'Archivo',system-ui,sans-serif;
  --font-hand:'Caveat',cursive;

  --maxw:1240px;
  --pad:clamp(20px,5vw,72px);
  --shadow-hard:6px 6px 0 rgba(13,14,19,.85);
  --shadow-hard-cream:5px 5px 0 var(--navy-dark);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans);
  background:var(--night-deep);
  color:var(--cream);
  line-height:1.55;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* ---------- FILM GRAIN (global) ---------- */
.grain{
  position:fixed;inset:0;z-index:9000;pointer-events:none;
  opacity:.085;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}

/* ============================================================
   AMBIANCES
   ============================================================ */
.night{
  position:relative;
  background:var(--night);
  color:var(--cream);
  overflow:clip;
}
/* fine grille bleutée */
.night::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(180deg,#000,#000);
}
/* halo radial bordeaux en haut */
.night::after{
  content:"";position:absolute;left:50%;top:-10%;translate:-50% 0;
  width:140%;height:70%;pointer-events:none;z-index:0;
  background:radial-gradient(ellipse 50% 60% at 50% 0%,
     rgba(160,44,44,.55),rgba(160,44,44,.12) 45%,transparent 70%);
}
.night > *{position:relative;z-index:1}

/* transition entre deux sections sombres consécutives */
.night.is-next{background:var(--night-deep)}

.paper{
  position:relative;
  background:var(--cream);
  color:var(--navy-dark);
}
/* texture papier subtile */
.paper::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)' opacity='0.35'/%3E%3C/svg%3E");
}
.paper > *{position:relative;z-index:1}

/* ============================================================
   PRIMITIVES ÉDITORIALES
   ============================================================ */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
section{padding-block:clamp(72px,9vw,140px)}

/* numéro de section */
.sec-num{
  font-family:var(--font-sans);font-weight:800;
  font-size:clamp(13px,1vw,15px);letter-spacing:.32em;
  display:inline-flex;align-items:center;gap:.7em;
}
.sec-num::after{content:"";width:54px;height:2px;background:currentColor;opacity:.4}
.sec-num--plain::after{display:none}

/* étiquette capitales espacées */
.eyebrow{
  font-family:var(--font-sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.28em;font-size:clamp(11px,.95vw,13px);
}

/* double filet éditorial */
.rule-double{border:0;border-top:2px solid currentColor;position:relative;opacity:.85}
.rule-double::after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1px solid currentColor;opacity:.55}

/* titre serif */
.serif-title{
  font-family:var(--font-serif);font-weight:900;line-height:.98;
  font-optical-sizing:auto;letter-spacing:-.01em;
  text-wrap:balance;
}
.italic-gold{font-family:var(--font-serif);font-style:italic;font-weight:600;color:var(--gold)}

/* écriture manuscrite */
.hand{font-family:var(--font-hand);line-height:.95}

/* ---------- BOUTONS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.06em;font-size:14px;
  padding:15px 26px;border-radius:3px;
  transition:transform .12s ease,box-shadow .12s ease,background .2s ease;
  white-space:nowrap;
}
.btn-gold{background:var(--gold);color:var(--night-deep);box-shadow:var(--shadow-hard)}
.btn-bordeaux{background:var(--bordeaux);color:var(--cream-light);box-shadow:var(--shadow-hard)}
.btn-ghost{background:transparent;color:var(--cream);border:2px solid rgba(242,237,228,.35);box-shadow:none}
.btn-dark{background:var(--navy-dark);color:var(--cream-light);box-shadow:var(--shadow-hard-cream)}
.btn:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 rgba(13,14,19,.85)}
.btn-dark:hover{box-shadow:2px 2px 0 var(--navy-dark)}
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--gold)}

/* ---------- PASTILLE ÉTOILE (starburst) ---------- */
.star-badge{
  position:relative;display:inline-grid;place-items:center;
  width:var(--s,96px);aspect-ratio:1;color:var(--cream-light);
  font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.05em;font-size:var(--fs,14px);text-align:center;
  filter:drop-shadow(3px 4px 0 rgba(13,14,19,.25));
}
.star-badge svg{position:absolute;inset:0;width:100%;height:100%}
.star-badge span{position:relative;z-index:1;padding:0 .2em;transform:rotate(-4deg)}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;inset:0 0 auto 0;z-index:8000;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:20px var(--pad);
  background:rgba(13,14,19,.72);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(232,200,64,.16);
  transition:background .35s ease,box-shadow .35s ease,padding .35s ease,border-color .35s ease;
}
.nav.scrolled{
  background:rgba(13,14,19,.94);backdrop-filter:blur(12px);
  box-shadow:0 2px 0 rgba(232,200,64,.28),0 14px 34px rgba(0,0,0,.5);
  border-bottom-color:rgba(232,200,64,.4);
  padding-block:16px;
}
.nav-brand{display:flex;align-items:center;gap:12px}
/* sceau ROADENT — image réelle (or sur fond nuit, bordeaux sur papier) */
.seal-mark{display:inline-block;object-fit:contain}
.nav-brand .seal-mark{width:34px;height:34px;flex:none}
.nav-word{font-family:var(--font-display);font-size:26px;color:var(--cream-light);letter-spacing:.01em;line-height:1}
.nav-wordmark{display:block;height:28px;width:auto;flex:none}
.nav-links{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.4vw,34px);flex:1}
.nav-links a{
  font-family:var(--font-sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;font-size:14px;color:var(--cream);opacity:.82;
  position:relative;padding:4px 0;transition:opacity .2s;
}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--gold);transition:right .25s ease}
.nav-links a:hover{opacity:1}
.nav-links a:hover::after{right:0}
.nav-links a.nav-cta{padding:11px 22px;font-size:13.5px;flex:none;opacity:1;border-radius:4px}
.nav-links a.nav-cta::after{display:none}
.nav-burger{display:none;flex-direction:column;gap:5px;padding:8px}
.nav-burger span{width:26px;height:2.5px;background:var(--cream);border-radius:2px;transition:.25s}
.nav-burger.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ============================================================
   HERO
   ============================================================ */
.hero{min-height:auto;display:flex;align-items:center;padding-top:clamp(110px,16vh,150px);padding-bottom:clamp(40px,7vh,80px)}
.hero-inner{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center}
.hero-eyebrow{color:var(--gold);margin-bottom:16px;display:flex;align-items:center;gap:14px}
.hero-eyebrow .dot{width:8px;height:8px;background:var(--bordeaux);border-radius:50%}
.hero-word{
  font-family:var(--font-display);
  font-size:clamp(56px,10vw,148px);line-height:.84;color:var(--cream-light);
  letter-spacing:.005em;
  text-shadow:0 0 60px rgba(160,44,44,.35);
}
.hero-word img{
  display:block;width:clamp(200px,32vw,420px);height:auto;
  filter:drop-shadow(0 0 60px rgba(160,44,44,.35));
}
.hero-sub{font-family:var(--font-serif);font-style:italic;font-weight:600;
  color:var(--gold);font-size:clamp(22px,3vw,40px);margin-top:4px;line-height:1}
.hero-lede{max-width:520px;margin-top:20px;font-size:clamp(15px,1.25vw,18px);color:rgba(242,237,228,.82)}
.hero-lede b{color:var(--cream-light);font-weight:700}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:28px}
.hero-seal{width:clamp(140px,14vw,190px);height:clamp(140px,14vw,190px);flex:none}
.hero-vlabel{position:absolute;right:clamp(14px,2.4vw,34px);top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;font-family:var(--font-sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.4em;font-size:12px;color:rgba(232,200,64,.55);pointer-events:none;
  display:flex;align-items:center;gap:18px}
.hero-vlabel::before,.hero-vlabel::after{content:"";width:1px;height:42px;background:rgba(232,200,64,.35)}
@media(max-width:1000px){.hero-vlabel{display:none}}
.spin-slow{will-change:transform}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee{background:var(--gold);color:var(--night-deep);overflow:hidden;
  padding-block:16px;border-block:3px solid var(--night-deep)}
.marquee-track{display:flex;flex-wrap:nowrap;gap:0;width:max-content;animation:slide 32s linear infinite;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{font-family:var(--font-display);font-size:clamp(22px,3vw,34px);
  display:flex;align-items:center;white-space:nowrap;flex:0 0 auto}
.marquee-item .sep{display:inline-flex;align-items:center;margin:0 .42em;flex:0 0 auto}
.marquee-item .sep img{height:0.62em;width:0.62em;display:block;margin-top:-.02em}
@keyframes slide{to{transform:translateX(-50%)}}

/* ============================================================
   INTERLUDE — separateur sombre entre sections papier
   ============================================================ */
.interlude{background:var(--navy-dark);padding-block:clamp(22px,3.4vw,34px);
  display:flex;align-items:center;justify-content:center;gap:clamp(12px,2vw,24px);
  border-block:2px solid var(--night-deep)}
.interlude .il-rule{height:0;flex:1;max-width:230px;border-top:1.5px solid rgba(232,200,64,.4);position:relative}
.interlude .il-rule::after{content:"";position:absolute;left:0;right:0;top:4px;border-top:1px solid rgba(232,200,64,.2)}
.interlude .il-mark{color:var(--bordeaux);font-size:clamp(13px,1.5vw,17px);line-height:1;flex:none}
.interlude .il-text{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.32em;font-size:clamp(11px,1.3vw,14px);color:var(--gold);white-space:nowrap;flex:none}
@media(max-width:600px){.interlude .il-rule{max-width:42px}}

/* ============================================================
   L'UNIVERS
   ============================================================ */
.univers-head{display:grid;grid-template-columns:1fr;gap:18px;max-width:1000px}
.univers-head .serif-title{font-size:clamp(34px,5.4vw,76px);color:var(--navy-dark)}
.night .univers-head .serif-title{color:var(--cream-light)}
.quote-hand{font-family:var(--font-hand);font-weight:600;color:var(--bordeaux);
  font-size:clamp(34px,5vw,64px);line-height:.9;transform:rotate(-2.5deg)}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:60px}
.pillar{
  background:var(--cream-light);border:2px solid var(--navy-dark);border-radius:5px;
  padding:24px 22px 26px;box-shadow:var(--shadow-hard-cream);
  transition:transform .18s ease,box-shadow .18s ease;
  display:flex;flex-direction:column;min-height:320px;
}
.pillar:hover{transform:translateY(-6px);box-shadow:9px 12px 0 var(--navy-dark)}
.pillar .ph{height:130px;border-radius:3px;margin-bottom:18px;overflow:hidden}
.pillar-img{width:100%;height:100%;object-fit:cover;display:block}
.pillar .pnum{font-family:var(--font-display);font-size:30px;color:var(--terracotta);line-height:1}
.pillar h3{font-family:var(--font-serif);font-weight:900;font-size:23px;margin:6px 0 9px;line-height:1}
.pillar p{font-size:14px;color:rgba(30,34,48,.78);flex:1}
.pillar .plink{margin-top:18px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  font-size:12px;color:var(--bordeaux);display:inline-flex;gap:8px;align-items:center}
.pillar:hover .plink .arr{transform:translateX(5px)}
.plink .arr{transition:transform .2s}

/* ============================================================
   RTBD — épisodes
   ============================================================ */
.rtbd-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.rtbd-portrait{flex:none;width:clamp(170px,16vw,225px);background:var(--cream-light);padding:10px 10px 13px;
  transform:rotate(2.2deg);box-shadow:6px 8px 0 rgba(13,14,19,.5);position:relative}
.rtbd-portrait::before{content:"";position:absolute;top:-12px;left:50%;margin-left:-44px;width:88px;height:24px;
  background:rgba(232,200,64,.8);transform:rotate(-4deg);box-shadow:0 1px 2px rgba(13,14,19,.3)}
.rtbd-portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;filter:contrast(1.08)}
.rtbd-portrait .cap{font-family:var(--font-hand);font-weight:600;font-size:18px;color:var(--navy);text-align:center;margin-top:8px;line-height:1}
.rtbd-title{font-family:var(--font-display);font-size:clamp(40px,7vw,104px);line-height:.86;color:var(--cream-light)}
.rtbd-title .gold{color:var(--gold)}
.rtbd-logo{display:block;width:clamp(300px,40vw,560px);height:auto}
.rtbd-lede{max-width:340px;color:rgba(242,237,228,.8);font-size:15px}
.eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:22px;margin-top:54px}
.ep{display:flex;flex-direction:column;color:inherit;
  background:rgba(242,237,228,.04);border:1px solid rgba(242,237,228,.13);border-radius:7px;
  overflow:hidden;transition:transform .18s ease,border-color .2s}
.ep:hover{transform:translateY(-6px);border-color:rgba(232,200,64,.5)}
.ep-thumb{position:relative;aspect-ratio:16/9;display:grid;place-items:center;background:var(--night-deep)}
.ep-thumb-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ep-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,14,19,.15),rgba(13,14,19,.05) 40%,rgba(13,14,19,.45));pointer-events:none}
.ep-play{position:relative;z-index:1;width:58px;height:58px;border-radius:50%;background:rgba(13,14,19,.55);
  border:2px solid var(--cream-light);display:grid;place-items:center;
  transition:transform .2s,background .2s}
.ep:hover .ep-play{transform:scale(1.12);background:var(--bordeaux);border-color:var(--bordeaux)}
.ep-play svg{width:22px;height:22px;margin-left:3px;fill:var(--cream-light)}
.ep-badge{position:absolute;z-index:1;top:12px;left:12px;background:var(--bordeaux);color:var(--cream-light);
  font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;padding:6px 11px;border-radius:3px}
.ep-badge-gold{background:var(--gold);color:var(--night-deep)}
.ep-dur{position:absolute;bottom:12px;right:12px;background:rgba(13,14,19,.78);color:var(--cream);
  font-family:var(--font-sans);font-weight:700;font-size:11.5px;padding:5px 9px;border-radius:3px;white-space:nowrap}
.ep-body{padding:18px 20px 22px}
.ep-meta{font-family:var(--font-sans);font-weight:700;text-transform:uppercase;letter-spacing:.16em;
  font-size:11px;color:var(--gold);margin-bottom:8px}
.ep-body h3{font-family:var(--font-serif);font-weight:900;font-size:21px;color:var(--cream-light);line-height:1.04}
.ep-body p{font-size:13.5px;color:rgba(242,237,228,.62);margin-top:8px}

/* ============================================================
   DOCUMENTAIRE
   ============================================================ */
.doc-head{max-width:760px}
.doc-title{font-family:var(--font-display);font-size:clamp(44px,8vw,108px);line-height:.9;color:var(--cream-light)}
.doc-lede{margin-top:16px;color:rgba(242,237,228,.8);font-size:clamp(15px,1.2vw,17px)}
.doc-lede b{color:var(--gold);font-weight:700}
.doc-layout{display:grid;grid-template-columns:1.3fr .85fr;gap:24px;margin-top:50px;align-items:start}
.doc-layout-solo{grid-template-columns:minmax(0,640px)}
.doc-layout-solo .doc-feature-thumb{aspect-ratio:16/8}

.doc-feature{background:rgba(242,237,228,.04);border:1px solid rgba(242,237,228,.13);border-radius:8px;
  overflow:hidden;transition:transform .18s ease,border-color .2s}
.doc-feature:hover{transform:translateY(-5px);border-color:rgba(232,200,64,.5)}
.doc-feature-thumb{position:relative;aspect-ratio:16/9;display:grid;place-items:center}
.doc-feature-body{padding:24px 26px 28px}
.doc-feature-body h3{font-family:var(--font-serif);font-weight:900;font-size:clamp(24px,2.6vw,32px);
  color:var(--cream-light);line-height:1.02;margin-top:4px}
.doc-feature-body p{font-size:14.5px;color:rgba(242,237,228,.64);margin-top:10px;max-width:52ch}

.doc-side{display:flex;flex-direction:column;gap:14px}
.doc-film{display:grid;grid-template-columns:118px 1fr;gap:16px;align-items:center;
  background:rgba(242,237,228,.04);border:1px solid rgba(242,237,228,.12);border-radius:8px;
  padding:12px;transition:transform .16s ease,border-color .2s,background .2s}
.doc-film:hover{transform:translateX(4px);border-color:rgba(232,200,64,.5);background:rgba(242,237,228,.06)}
.doc-film-thumb{position:relative;aspect-ratio:1;border-radius:5px;overflow:hidden;display:grid;place-items:center}
.df-star{--s:74px;--fs:11px;color:var(--bordeaux)}
.doc-film-info .ep-meta{margin-bottom:4px}
.doc-film-info h4{font-family:var(--font-serif);font-weight:900;font-size:19px;color:var(--cream-light);line-height:1.02}
.doc-film-info p{font-size:12.5px;color:rgba(242,237,228,.6);margin-top:5px}

/* ============================================================
   MERCH
   ============================================================ */
.merch-head{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap}
.merch-head>div:first-child{max-width:640px}
.merch-lede{margin-top:14px;color:rgba(30,34,48,.8);font-size:clamp(15px,1.2vw,17px)}
.merch-lede b{color:var(--bordeaux)}
.merch-badge-wrap{flex:none;padding-top:14px}
.merch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:50px}
.merch-grid-solo{grid-template-columns:minmax(0,280px)}
.merch-card{background:var(--cream-light);border:2px solid var(--navy-dark);border-radius:6px;
  overflow:hidden;box-shadow:var(--shadow-hard-cream);transition:transform .18s ease,box-shadow .18s ease}
.merch-card:hover{transform:translateY(-6px);box-shadow:8px 11px 0 var(--navy-dark)}
.merch-thumb{position:relative;aspect-ratio:4/5;overflow:hidden;border-bottom:2px solid var(--navy-dark)}
.merch-tag{position:absolute;top:10px;left:10px;background:var(--bordeaux);color:var(--cream-light);
  font-family:var(--font-sans);font-weight:800;text-transform:uppercase;letter-spacing:.12em;
  font-size:10.5px;padding:5px 10px;border-radius:3px}
.merch-info{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 18px}
.merch-info h4{font-family:var(--font-serif);font-weight:900;font-size:17px;color:var(--navy-dark);line-height:1.05}
.merch-price{font-family:var(--font-sans);font-weight:800;font-size:18px;color:var(--terracotta);flex:none}
.merch-cta{display:flex;align-items:center;gap:20px;margin-top:38px;flex-wrap:wrap}
.merch-note{color:var(--bordeaux);font-size:clamp(22px,2.6vw,30px);transform:rotate(-3deg)}

/* ============================================================
   LE STUDIO
   ============================================================ */
.chip{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-weight:700;
  font-size:13px;padding:10px 16px;border-radius:40px;transition:transform .15s,background .2s;white-space:nowrap}
.chip svg{width:16px;height:16px}

/* Le Podcast */
.pod-head{max-width:780px}
.pod-lede{margin-top:14px;color:rgba(30,34,48,.8);font-size:clamp(15px,1.2vw,17px)}
.pod-lede b{color:var(--bordeaux)}
.pod-feature{display:grid;grid-template-columns:minmax(0,1.25fr) 1fr;gap:40px;margin-top:48px;align-items:center}
.pod-cover{position:relative;display:grid;place-items:center;aspect-ratio:16/9;border-radius:8px;
  overflow:hidden;border:2px solid var(--navy-dark);box-shadow:var(--shadow-hard-cream);
  transition:transform .18s ease,box-shadow .18s ease}
.pod-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pod-cover:hover{transform:translateY(-4px);box-shadow:8px 11px 0 var(--navy-dark)}
.pod-cover .ep-play{position:relative;z-index:2;width:64px;height:64px;border-radius:50%;
  background:rgba(13,14,19,.55);border:2px solid var(--cream-light);display:grid;place-items:center;
  transition:transform .2s,background .2s}
.pod-cover .ep-play svg{width:24px;height:24px;margin-left:3px;fill:var(--cream-light)}
.pod-cover:hover .ep-play{transform:scale(1.12);background:var(--bordeaux);border-color:var(--bordeaux)}
.pod-cover-badge{position:absolute;z-index:3;top:-14px;left:-14px;width:84px;height:84px;
  display:grid;place-items:center;color:var(--bordeaux);filter:drop-shadow(2px 3px 0 rgba(30,34,48,.2))}
.pod-cover-badge svg{position:absolute;inset:0;width:100%;height:100%}
.pod-cover-badge span{position:relative;z-index:1;color:var(--cream-light);font-family:var(--font-sans);
  font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:13px;transform:rotate(-6deg)}
.pod-feature-body h3{font-family:var(--font-serif);font-weight:900;font-size:clamp(30px,4vw,48px);
  color:var(--navy-dark);line-height:.98;margin:8px 0 12px}
.pod-feature-body p{font-size:15.5px;color:rgba(30,34,48,.82);max-width:52ch}
.pod-where{margin-top:24px}
.pod-where-label{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.2em;font-size:11.5px;color:rgba(30,34,48,.55)}
.pod-platforms{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.pod-platforms .chip,.bd-links .chip{background:var(--navy-dark);color:var(--cream-light)}
.pod-platforms .chip:hover,.bd-links .chip:hover{background:var(--bordeaux);transform:translateY(-2px)}

.bd-band{display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;
  margin-top:44px;padding:26px 32px;border:2px solid var(--navy-dark);border-radius:8px;
  background:var(--cream-light);box-shadow:var(--shadow-hard-cream)}
.bd-text h4{font-family:var(--font-serif);font-weight:900;font-size:27px;color:var(--bordeaux);line-height:1;margin-top:4px}
.bd-text p{font-size:14.5px;color:rgba(30,34,48,.78);max-width:62ch;margin-top:7px}
.bd-links{display:flex;gap:12px;flex-wrap:wrap;flex:none}

/* ============================================================
   RUNNING CLUB — journal
   ============================================================ */
.rc-masthead{border-bottom:3px solid var(--navy-dark);padding-bottom:14px;margin-bottom:8px;
  display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.rc-masthead .edition{font-family:var(--font-sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.2em;font-size:12px;color:var(--bordeaux)}
.rc-word{display:flex;flex-direction:column;line-height:.8}
.rc-lockup{display:block;width:clamp(260px,36vw,400px);height:auto;margin-top:8px}
.rc-word .r1{font-family:var(--font-display);font-size:clamp(38px,6.6vw,86px);color:var(--navy-dark);white-space:nowrap;line-height:.9}
.rc-word .r2{font-family:var(--font-serif);font-weight:900;font-size:clamp(32px,5.6vw,72px);
  color:var(--navy-dark);font-style:normal;margin-top:.02em;white-space:nowrap;line-height:.92}
.rc-meta-row{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-family:var(--font-sans);font-weight:700;text-transform:uppercase;letter-spacing:.16em;
  font-size:12px;color:rgba(30,34,48,.7);padding-block:14px;border-bottom:2px solid var(--navy-dark)}
.rc-meta-row b{color:var(--navy-dark)}

.rc-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;margin-top:40px}
.rc-lead{}
.rc-lead .dropcap::first-letter{font-family:var(--font-display);font-size:74px;float:left;
  line-height:.7;margin:6px 12px 0 0;color:var(--bordeaux)}
.rc-lead h3{font-family:var(--font-serif);font-weight:900;font-size:30px;color:var(--navy-dark);margin-bottom:14px;line-height:1}
.rc-lead p{font-size:15.5px;color:rgba(30,34,48,.82);margin-bottom:16px}
.rc-photo-collage{position:relative;margin-top:34px;margin-bottom:8px}
.rc-group-cut{position:relative;display:block;width:100%;rotate:-1.5deg}
.rc-group-img{display:block;width:100%;height:auto;border-radius:2px}

.rc-side{display:flex;flex-direction:column;gap:24px}
.defis{display:flex;flex-direction:column;gap:14px}
.defi{display:flex;align-items:center;gap:16px;background:var(--cream-light);
  border:2px solid var(--navy-dark);border-radius:4px;padding:16px 18px}
.defi .dn{font-family:var(--font-display);font-size:30px;color:var(--terracotta);line-height:1;flex:none}
.defi h4{font-family:var(--font-serif);font-weight:900;font-size:19px;color:var(--navy-dark);line-height:1}
.defi p{font-size:13px;color:rgba(30,34,48,.7)}

/* carte stats Strava */
.strava{background:var(--navy-dark);color:var(--cream-light);border-radius:14px;overflow:hidden;
  box-shadow:6px 8px 0 rgba(30,34,48,.25);font-family:var(--font-sans)}
.strava-top{display:flex;align-items:flex-start;gap:13px;padding:16px 18px 14px}
.strava-ava{width:42px;height:42px;border-radius:50%;background:var(--night-deep);display:grid;place-items:center;
  font-family:var(--font-display);font-size:19px;color:var(--cream-light);flex:none;overflow:hidden}
.strava-ava img{width:100%;height:100%;object-fit:cover}
.strava-top .st-name{font-weight:700;font-size:14.5px;line-height:1.25;white-space:nowrap}
.strava-top > div{padding-top:2px}
.strava-top .st-sub{font-size:12px;color:rgba(242,237,228,.55)}
.strava-title{padding:0 18px 14px}
.strava-title .stt{font-weight:700;font-size:16px}
.strava-title .stx{font-size:12.5px;color:rgba(242,237,228,.55)}
.strava-stats{display:grid;grid-template-columns:repeat(3,1fr);background:rgba(0,0,0,.25);
  border-top:1px solid rgba(242,237,228,.1)}
.strava-stats .cell{padding:14px 18px;border-right:1px solid rgba(242,237,228,.08)}
.strava-stats .cell:last-child{border-right:none}
.strava-stats .lab{font-size:11px;color:rgba(242,237,228,.5);text-transform:uppercase;letter-spacing:.08em}
.strava-stats .val{font-weight:700;font-size:19px;margin-top:3px}
.strava-stats .val.medals{font-size:16px;letter-spacing:.04em}

.rejoin-pill{margin-top:4px}

/* ============================================================
   AVIS COMMUNAUTÉ (paper)
   ============================================================ */
.avis-wrap{margin-top:clamp(60px,8vw,104px);padding-top:clamp(40px,5vw,64px);
  border-top:2px solid var(--navy-dark);position:relative}
.avis-wrap::before{content:"";position:absolute;left:0;right:0;top:6px;border-top:1px solid rgba(30,34,48,.4)}
.avis-head{margin-bottom:36px;max-width:680px}
.avis-head .serif-title{font-size:clamp(28px,4vw,50px);color:var(--navy-dark);margin-top:10px}
.avis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;align-items:stretch}
.avis{margin:0;background:var(--cream-light);
  border:2px solid var(--navy-dark);border-radius:6px;padding:24px 26px;
  display:flex;flex-direction:column;
  box-shadow:var(--shadow-hard-cream);transition:transform .16s ease}
.avis:hover{transform:translateY(-4px)}
.avis p{font-size:15.5px;color:var(--navy-dark);line-height:1.4}
.avis cite{display:block;margin-top:auto;padding-top:16px;font-family:var(--font-sans);font-weight:700;
  font-style:normal;text-transform:uppercase;letter-spacing:.1em;font-size:11px;color:var(--bordeaux)}

/* ============================================================
   QUIZ — Trouve ta route (night)
   ============================================================ */
.quiz-head{max-width:640px}
.quiz-title{font-size:clamp(40px,6vw,88px);color:var(--cream-light);margin-top:16px;font-family:var(--font-display);font-weight:400}
.quiz-lede{margin-top:16px;color:rgba(242,237,228,.8);font-size:clamp(15px,1.2vw,17px)}
.quiz-card{margin-top:44px;max-width:760px;background:rgba(242,237,228,.05);
  border:1px solid rgba(242,237,228,.16);border-radius:14px;padding:clamp(26px,4vw,46px);
  position:relative;min-height:300px}
.quiz-step{display:none;animation:quizIn .4s cubic-bezier(.2,.7,.2,1)}
.quiz-step.is-active{display:block}
@keyframes quizIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.quiz-q{font-family:var(--font-serif);font-weight:900;font-size:clamp(21px,2.5vw,30px);
  color:var(--cream-light);line-height:1.05;margin-bottom:26px}
.quiz-opts{display:flex;flex-direction:column;gap:13px}
.quiz-opt{text-align:left;font-family:var(--font-sans);font-weight:600;font-size:16px;
  color:var(--cream-light);background:rgba(13,14,19,.4);border:1.5px solid rgba(242,237,228,.2);
  border-radius:7px;padding:17px 20px;transition:border-color .18s,background .18s,transform .12s;
  display:flex;align-items:center;gap:14px}
.quiz-opt::before{content:"";width:13px;height:13px;border-radius:50%;border:2px solid rgba(242,237,228,.4);flex:none;transition:.18s}
.quiz-opt:hover{border-color:var(--gold);background:rgba(232,200,64,.08);transform:translateX(4px)}
.quiz-opt:hover::before{border-color:var(--gold);background:var(--gold)}

.quiz-result{display:none}
.quiz-result.is-active{display:block;animation:quizIn .45s cubic-bezier(.2,.7,.2,1)}
.quiz-result-badge{width:64px;height:64px;margin-bottom:18px}
.quiz-result-badge img{width:100%;height:100%;object-fit:contain}
.quiz-result-eyebrow{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.24em;font-size:11.5px;color:var(--gold)}
.quiz-result-title{font-family:var(--font-serif);font-weight:900;font-size:clamp(28px,3.6vw,42px);
  color:var(--cream-light);line-height:1;margin:8px 0 14px}
.quiz-result-text{color:rgba(242,237,228,.82);font-size:16px;max-width:52ch;line-height:1.5}
.quiz-result-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
.quiz-restart{margin-top:24px;font-family:var(--font-sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.14em;font-size:12px;color:rgba(242,237,228,.6);transition:color .2s}
.quiz-restart:hover{color:var(--gold)}
.quiz-progress{display:flex;gap:8px;position:absolute;top:24px;right:clamp(26px,4vw,46px)}
.qp-dot{width:9px;height:9px;border-radius:50%;background:rgba(242,237,228,.22);transition:background .25s}
.qp-dot.is-on{background:var(--gold)}
.quiz-card.done .quiz-progress{display:none}

/* ============================================================
   REJOINDRE
   ============================================================ */
.join-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.join-hand{font-family:var(--font-hand);font-weight:600;color:var(--gold);font-size:clamp(30px,4vw,46px);
  transform:rotate(-3deg);line-height:.9;margin-bottom:18px}
.join-title{font-family:var(--font-display);font-size:clamp(46px,8vw,108px);line-height:.85;color:var(--cream-light)}
.join-lede{margin-top:22px;max-width:440px;color:rgba(242,237,228,.8)}
.join-form{background:rgba(242,237,228,.05);border:1px solid rgba(242,237,228,.16);
  border-radius:10px;padding:32px}
.join-form .fl{font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:11.5px;
  color:var(--gold);display:block;margin-bottom:8px}
.field{margin-bottom:18px}
.field input{width:100%;background:rgba(13,14,19,.5);border:1.5px solid rgba(242,237,228,.2);
  border-radius:5px;padding:14px 16px;color:var(--cream-light);font-family:var(--font-sans);font-size:15px;
  transition:border-color .2s}
.field input:focus{outline:none;border-color:var(--gold)}
.field input::placeholder{color:rgba(242,237,228,.35)}
.join-form .btn{width:100%;justify-content:center;margin-top:6px}
.form-success{display:none;text-align:center;padding:14px 0}
.form-success.show{display:block;animation:pop .4s ease}
@keyframes pop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.form-success .chk{width:58px;height:58px;border-radius:50%;background:var(--gold);margin:0 auto 16px;
  display:grid;place-items:center}
.form-success .chk svg{width:30px;height:30px;stroke:var(--night-deep);stroke-width:3;fill:none}
.form-success h4{font-family:var(--font-serif);font-weight:900;font-size:24px;color:var(--cream-light)}
.form-success p{color:rgba(242,237,228,.75);margin-top:6px;font-size:14px}

.socials{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.soc{width:54px;height:54px;border-radius:12px;display:grid;place-items:center;
  background:rgba(242,237,228,.07);border:1px solid rgba(242,237,228,.16);
  transition:transform .18s,background .2s,border-color .2s}
.soc svg{width:24px;height:24px;fill:var(--cream-light)}
.soc:hover{transform:translateY(-4px);background:var(--bordeaux);border-color:var(--bordeaux)}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--navy);color:var(--cream)}
.footer-inner{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;
  padding-block:64px 28px}
.footer-brand .seal-mark{width:64px;height:64px;margin-bottom:18px}
.footer-word{font-family:var(--font-display);font-size:30px;color:var(--cream-light)}
.footer-wordmark{display:block;height:34px;width:auto;margin-bottom:2px}
.footer-tag{font-family:var(--font-serif);font-style:italic;font-weight:600;color:var(--gold);font-size:22px;margin-top:4px}
.footer-col h5{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;letter-spacing:.16em;
  font-size:12px;color:var(--gold);margin-bottom:16px}
.footer-col a{display:block;font-size:14px;padding:6px 0;color:rgba(242,237,228,.78);transition:color .2s,padding-left .2s}
.footer-col a:hover{color:var(--cream-light);padding-left:5px}
.footer-bar{border-top:1px solid rgba(242,237,228,.14);padding-block:22px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:12.5px;color:rgba(242,237,228,.6)}
.footer-bar .studio{font-family:var(--font-sans);font-weight:700;letter-spacing:.04em}
.footer-bar .studio b{color:var(--gold)}

/* ============================================================
   PLACEHOLDERS IMAGE (dégradés stylés)
   ============================================================ */
.ph-img{position:relative;width:100%;height:100%;overflow:hidden;
  display:grid;place-items:center;border-radius:inherit}
.ph-img::after{content:attr(data-label);position:absolute;bottom:8px;left:9px;
  font-family:ui-monospace,'SF Mono',monospace;font-size:9.5px;letter-spacing:.05em;
  color:rgba(255,255,255,.62);background:rgba(13,14,19,.4);padding:3px 6px;border-radius:3px}
.ph-stripe{background:
  repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 11px,transparent 11px 22px),
  var(--g,linear-gradient(135deg,#3a2030,#1d2230))}
.g-bordeaux{--g:linear-gradient(140deg,#7a2222,#2c1820)}
.g-terra{--g:linear-gradient(140deg,#b04e34,#3a241c)}
.g-gold{--g:linear-gradient(140deg,#b89220,#3a3318)}
.g-navy{--g:linear-gradient(140deg,#39405a,#181c28)}
.g-mix{--g:linear-gradient(140deg,#8a3030,#33384e 60%,#1d2230)}

/* cutout collage (paper) */
.cutout{position:absolute;border-radius:3px;overflow:hidden;
  box-shadow:4px 5px 0 rgba(30,34,48,.18);border:3px solid var(--cream-light)}
.cutout.rc-group-cut{position:relative;border:6px solid var(--cream-light);
  box-shadow:7px 9px 0 rgba(30,34,48,.22)}
.cutout .ph-img::after{color:rgba(255,255,255,.7)}

/* ---------- REVEAL (gated by .js so content shows even sans JS) ---------- */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}

/* cascade héro — pure CSS, jamais dépendante du JS */
.hero-stagger>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) backwards}
.hero-stagger>*:nth-child(1){animation-delay:.15s}
.hero-stagger>*:nth-child(2){animation-delay:.27s}
.hero-stagger>*:nth-child(3){animation-delay:.39s}
.hero-stagger>*:nth-child(4){animation-delay:.51s}
.hero-stagger>*:nth-child(5){animation-delay:.63s}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.hero-seal{animation:sealIn 1s .55s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes sealIn{from{opacity:0;transform:scale(.6) rotate(-40deg)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  .hero-stagger>*{opacity:1;transform:none}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1000px){
  .pillars{grid-template-columns:repeat(2,1fr);gap:18px}
  .pillar{min-height:auto}
  .eps{grid-template-columns:1fr;gap:18px}
  .doc-layout{grid-template-columns:1fr;gap:18px}
  .doc-layout-solo{grid-template-columns:1fr}
  .merch-grid{grid-template-columns:repeat(2,1fr)}
  .merch-grid-solo{grid-template-columns:minmax(0,280px)}
  .avis-grid{grid-template-columns:repeat(2,1fr)}
  .pod-feature{grid-template-columns:1fr;gap:26px}
  .pod-cover{max-width:none}
  .bd-band{flex-direction:column;align-items:flex-start;gap:18px}
  .rc-layout{grid-template-columns:1fr;gap:30px}
  .join-grid{grid-template-columns:1fr;gap:34px}
  .footer-inner{grid-template-columns:1fr 1fr}
  .hero-inner{grid-template-columns:1fr;position:relative}
  .hero-seal{position:absolute;right:0;bottom:0;width:clamp(120px,22vw,180px);height:auto;margin:0}
}
@media(max-width:1024px){
  .nav-links{position:fixed;inset:64px 0 auto 0;flex-direction:column;gap:0;
    background:rgba(13,14,19,.97);backdrop-filter:blur(12px);
    padding:10px 0 22px;transform:translateY(-130%);transition:transform .35s ease;
    border-bottom:2px solid var(--gold)}
  .nav-links.open{transform:translateY(0)}
  .nav-links a{width:100%;padding:16px var(--pad);font-size:15px;opacity:.95;border-bottom:1px solid rgba(242,237,228,.08)}
  .nav-links a::after{display:none}
  .nav-links a.nav-cta{margin:14px var(--pad) 0;height:auto;width:auto;padding:15px 22px;text-align:center}
  .nav-burger{display:flex}
}
@media(max-width:720px){
  .footer-inner{grid-template-columns:1fr}
  section{padding-block:64px}
  .avis-grid{grid-template-columns:1fr}
}

/* ============================================================
   BOUTON RETOUR EN HAUT
   ============================================================ */
.to-top{
  position:fixed;right:clamp(18px,3vw,32px);bottom:clamp(18px,3vw,32px);z-index:7000;
  width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;
  background:var(--gold);color:var(--night-deep);
  display:grid;place-items:center;
  box-shadow:0 8px 22px rgba(0,0,0,.45),0 0 0 1px rgba(13,14,19,.2);
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.9);
  transition:opacity .3s ease,transform .3s cubic-bezier(.2,.7,.2,1),visibility .3s,background .2s;
}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top svg{width:22px;height:22px}
.to-top:hover{background:var(--cream-light);transform:translateY(-3px)}
.to-top:active{transform:translateY(0) scale(.94)}
@media (prefers-reduced-motion:reduce){.to-top{transition:opacity .2s ease}}

/* ============================================================
   REFONTE V2 — héro monumental
   ============================================================ */
.hero-v2{position:relative;overflow:clip}
.hero-bg{position:absolute;inset:-12% 0 0 0;z-index:0;pointer-events:none}
.hero-bg img,.hero-bg video{position:absolute;inset:0;width:100%;height:112%;object-fit:cover;object-position:center 30%;
  filter:grayscale(.35) contrast(1.05) brightness(.6);will-change:transform}
.hero-bg video{z-index:1;opacity:0;transition:opacity .6s ease}
.hero-bg.video-ready video{opacity:1}
.hero-bg.video-ready img{opacity:0}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 55% at 50% 0%,rgba(160,44,44,.38),transparent 65%),
    linear-gradient(180deg,rgba(13,14,19,.78) 0%,rgba(13,14,19,.55) 38%,rgba(13,14,19,.82) 78%,var(--night) 100%)}
.hero-v2 .hero-inner{position:relative;z-index:2}
.hero-v2 .hero-word img{filter:drop-shadow(0 10px 50px rgba(0,0,0,.6))}
.hero-v2 .hero-lede{text-shadow:0 2px 18px rgba(0,0,0,.5)}
.hero-scroll-cue{position:absolute;left:50%;bottom:26px;translate:-50% 0;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;
  font-family:var(--font-sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.3em;font-size:10px;color:rgba(242,237,228,.55)}
.hero-scroll-cue::after{content:"";width:1px;height:34px;
  background:linear-gradient(180deg,var(--gold),transparent);
  animation:cueDrop 1.8s ease-in-out infinite}
@keyframes cueDrop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (prefers-reduced-motion:reduce){.hero-scroll-cue::after{animation:none}}

/* ============================================================
   REFONTE V2 — numéros de chapitre fantômes
   ============================================================ */
section[data-chapter]{position:relative;overflow:clip}
section[data-chapter]::after{content:attr(data-chapter);position:absolute;z-index:0;
  top:-0.08em;right:-0.04em;pointer-events:none;line-height:1;
  font-family:var(--font-display);font-size:clamp(160px,24vw,340px);
  color:transparent;-webkit-text-stroke:1.5px rgba(30,34,48,.10)}
section.night[data-chapter]::after{-webkit-text-stroke:1.5px rgba(242,237,228,.07)}
section[data-chapter] .wrap{position:relative;z-index:1}

/* ============================================================
   REFONTE V2 — manifeste
   ============================================================ */
.manifeste{background:var(--night-deep);position:relative;overflow:clip;
  padding-block:clamp(100px,14vw,180px)}
.manifeste::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:42px 42px}
.manifeste .wrap{position:relative;z-index:1}
.manifeste-line{display:block;font-family:var(--font-serif);font-weight:900;
  font-size:clamp(34px,5.8vw,84px);line-height:1.04;color:var(--cream-light);
  text-wrap:balance}
.manifeste-line .accent{color:var(--gold);font-style:italic}
.manifeste-line+.manifeste-line{margin-top:.25em}
.manifeste-sig{margin-top:40px;display:flex;align-items:center;gap:18px}
.manifeste-sig img{width:54px;height:54px}
.manifeste-sig span{font-family:var(--font-hand);font-size:clamp(24px,2.6vw,34px);color:var(--gold);transform:rotate(-2deg)}
/* reveal ligne par ligne */
.js .manifeste-line{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .manifeste.in .manifeste-line{opacity:1;transform:none}
.js .manifeste.in .manifeste-line:nth-child(2){transition-delay:.18s}
.js .manifeste.in .manifeste-line:nth-child(3){transition-delay:.36s}
.js .manifeste-sig{opacity:0;transition:opacity .8s .6s ease}
.js .manifeste.in .manifeste-sig{opacity:1}

/* ============================================================
   REFONTE V2 — micro-motion images
   ============================================================ */
.js .reveal .ph-img,.js .reveal .ep-thumb-img,.js .reveal.ath-card img{transform:scale(1.07);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in .ph-img,.js .reveal.in .ep-thumb-img,.js .reveal.in.ath-card img{transform:scale(1)}

/* ============================================================
   CINÉMA BRUT — split-toning teal/orange + grain 35mm
   ============================================================ */
.cine img,.cine video{filter:grayscale(.12) contrast(1.14) saturate(1.05) brightness(.82)}
.cine::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  mix-blend-mode:color;opacity:.5;
  background:linear-gradient(165deg,#10566B 0%,#1B4A5E 42%,#C96A35 100%)}
.hero-bg::after{z-index:2;
  background:
    radial-gradient(ellipse 60% 55% at 50% 0%,rgba(201,106,53,.30),transparent 65%),
    linear-gradient(180deg,rgba(10,17,26,.78) 0%,rgba(10,17,26,.5) 38%,rgba(10,17,26,.82) 78%,var(--night) 100%)}

/* ---- titre mega (option A) ---- */
.hero-mega{display:none;font-family:'Anton',var(--font-sans);font-weight:400;
  text-transform:uppercase;line-height:.88;letter-spacing:.004em;margin:10px 0 0}
.hero-mega span{display:block;font-size:clamp(64px,10.5vw,168px);color:var(--cream-light);
  text-shadow:0 8px 44px rgba(0,0,0,.55)}
.hero-mega span:last-child{color:var(--gold)}

/* ---- variantes héro ---- */
body[data-hero="a"] .hero-mega{display:block}
body[data-hero="a"] .hero-word,body[data-hero="a"] .hero-sub{display:none}
body[data-hero="b"] .hero-bg{display:none}
body[data-hero="b"] .hero-word img{height:auto!important;width:clamp(420px,54vw,740px)!important}
body[data-hero="c"] .hero-bg{opacity:.45}

/* ---- switcher héro ---- */
.hero-switch{position:fixed;left:18px;bottom:18px;z-index:7000;display:flex;align-items:center;gap:6px;
  background:rgba(10,17,26,.82);border:1px solid rgba(242,237,228,.18);border-radius:40px;
  padding:7px 10px;backdrop-filter:blur(8px)}
.hero-switch .hs-label{font-family:var(--font-sans);font-weight:700;font-size:10px;
  letter-spacing:.18em;text-transform:uppercase;color:rgba(242,237,228,.55);padding:0 4px}
.hero-switch button{width:26px;height:26px;border-radius:50%;font-family:var(--font-sans);
  font-weight:800;font-size:11px;color:var(--cream);background:transparent;
  border:1px solid rgba(242,237,228,.25);cursor:pointer;transition:.15s}
.hero-switch button.on{background:var(--gold);color:var(--night-deep);border-color:var(--gold)}
@media(max-width:900px){.hero-switch{display:none}}

/* ---- manifeste en condensé massif ---- */
.manifeste-line{font-family:'Anton',var(--font-sans);font-weight:400;text-transform:uppercase;
  font-size:clamp(44px,7.5vw,112px);line-height:.92;letter-spacing:.004em}
.manifeste-line .accent{font-style:normal}

/* ============================================================
   CHAPITRAGE — cartons titres (fade-to-black)
   ============================================================ */
.cut{position:relative;background:#06090E;overflow:clip;padding-block:clamp(84px,10vw,140px)}
.cut::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 90% 85% at 50% 50%,transparent 52%,rgba(0,0,0,.6))}
.cut .wrap{position:relative;display:flex;flex-direction:column;gap:16px}
.cut-num{display:inline-flex;align-items:center;gap:14px;font-family:var(--font-sans);font-weight:800;
  text-transform:uppercase;letter-spacing:.3em;font-size:clamp(11px,1vw,13px);color:var(--gold)}
.cut-num::before{content:"";width:46px;height:2px;background:var(--gold);opacity:.6}
.cut-title{font-family:'Anton',var(--font-sans);font-weight:400;text-transform:uppercase;
  font-size:clamp(44px,6.6vw,98px);line-height:.9;color:var(--cream-light);letter-spacing:.004em}
.js .cut .cut-num,.js .cut .cut-title{opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js .cut.in .cut-num,.js .cut.in .cut-title{opacity:1;transform:none}
.js .cut.in .cut-title{transition-delay:.12s}

/* ============================================================
   MONDE SOMBRE — ajustements des sections converties
   ============================================================ */
.night .quote-hand{color:var(--gold)}
.night .pod-lede{color:rgba(242,237,228,.82)}
.night .pod-lede b{color:var(--gold)}
.night .pod-where-label{color:rgba(242,237,228,.5)}
.night .pod-feature-body h3{color:var(--cream-light)}
.night .pod-feature-body p{color:rgba(242,237,228,.8)}
.night .pod-platforms .chip{background:var(--cream-light);color:var(--navy-dark)}
.night .pod-platforms .chip:hover{background:var(--gold);color:var(--night-deep)}
.night .merch-lede{color:rgba(242,237,228,.82)}
.night .merch-lede b{color:var(--gold)}
.night .merch-note{color:var(--gold)}
.night .pod-cover{border-color:rgba(242,237,228,.2);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.night .pod-cover:hover{box-shadow:0 30px 70px rgba(0,0,0,.6)}
.night .bd-band{box-shadow:0 20px 50px rgba(0,0,0,.4)}
.night .pillar{box-shadow:0 18px 44px rgba(0,0,0,.45)}
.night .pillar:hover{box-shadow:0 26px 56px rgba(0,0,0,.55)}
.night .merch-card{box-shadow:0 18px 44px rgba(0,0,0,.45)}
.night .merch-card:hover{box-shadow:0 26px 56px rgba(0,0,0,.55)}

/* ============================================================
   PROGRESSION + SCROLLSPY
   ============================================================ */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:9500;
  background:linear-gradient(90deg,var(--gold),var(--terracotta))}
.nav-links a.active{opacity:1;color:var(--gold)}
.nav-links a.active::after{right:0}

/* ============================================================
   NAV — menus déroulants
   ============================================================ */
.nav-item{position:relative;display:flex;align-items:center}
.nav-item > a{display:inline-flex;align-items:center;gap:6px}
.nav-item > a::before{content:"▾";order:2;font-size:8px;opacity:.55;transition:transform .25s ease}
.nav-item:hover > a::before,.nav-item:focus-within > a::before{transform:rotate(180deg);opacity:1}
.nav-drop{position:absolute;top:calc(100% + 14px);left:50%;min-width:215px;
  transform:translate(-50%,10px) scaleY(.92);transform-origin:top center;
  background:rgba(10,17,26,.96);border:1px solid rgba(232,200,64,.28);border-radius:9px;
  padding:8px;display:flex;flex-direction:column;gap:2px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .25s ease,transform .3s cubic-bezier(.2,.7,.2,1),visibility .25s;
  box-shadow:0 18px 44px rgba(0,0,0,.55)}
.nav-drop::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.nav-item:hover .nav-drop,.nav-item:focus-within .nav-drop{
  opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scaleY(1)}
.nav-drop a{display:block;padding:10px 14px;border-radius:6px;font-size:12px;letter-spacing:.08em;
  opacity:.85;transition:background .18s,color .18s,padding-left .18s}
.nav-drop a::after{display:none}
.nav-drop a:hover{background:rgba(232,200,64,.12);color:var(--gold);opacity:1;padding-left:19px}
@media(max-width:1024px){
  .nav-item{flex-direction:column;align-items:stretch}
  .nav-item > a::before{display:none}
  .nav-drop{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    background:transparent;border:none;box-shadow:none;border-radius:0;padding:0 0 6px 0}
  .nav-drop::before{display:none}
  .nav-drop a{padding:10px var(--pad) 10px calc(var(--pad) + 18px)!important;font-size:13px!important;
    border-bottom:none!important;opacity:.65}
  .nav-links{max-height:calc(100vh - 64px);overflow:auto}
}

/* ============================================================
   TRAJECTOIRES — parcours vivants (données + récit)
   ============================================================ */
.traj-lede{margin-top:14px;color:rgba(30,34,48,.8);font-size:clamp(15px,1.2vw,17px);max-width:62ch}
.traj-lede b{color:var(--bordeaux)}
.traj-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:50px}
.traj-card{background:var(--cream-light);border:2px solid var(--navy-dark);border-radius:8px;
  box-shadow:var(--shadow-hard-cream);padding:26px 28px 24px;display:flex;flex-direction:column;gap:18px;
  transition:transform .18s ease,box-shadow .18s ease}
.traj-card:hover{transform:translateY(-5px);box-shadow:9px 12px 0 var(--navy-dark)}
.traj-head{display:flex;gap:18px;align-items:center}
.traj-photo{width:88px;height:88px;border-radius:8px;object-fit:cover;border:2px solid var(--navy-dark);flex:none}
.traj-id{display:flex;flex-direction:column;gap:4px}
.traj-tag{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;letter-spacing:.18em;
  font-size:10.5px;color:var(--terracotta)}
.traj-name{font-family:'Anton',var(--font-sans);font-weight:400;text-transform:uppercase;
  font-size:clamp(24px,2.4vw,32px);color:var(--navy-dark);line-height:.95}
.traj-prs{display:flex;gap:28px;padding-block:14px;border-block:1.5px solid rgba(30,34,48,.15)}
.traj-pr{display:flex;flex-direction:column;line-height:1}
.traj-pr b{font-family:var(--font-sans);font-weight:800;font-size:22px;color:var(--navy-dark)}
.traj-pr span{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:rgba(30,34,48,.55);margin-top:5px}
.traj-goal-label{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  font-family:var(--font-sans);font-weight:700;font-size:12.5px;color:rgba(30,34,48,.75)}
.traj-goal-label span,.traj-goal-label b{white-space:nowrap}
.traj-pr span{white-space:nowrap}
.traj-goal-label b{color:var(--bordeaux);text-transform:uppercase;letter-spacing:.1em;font-size:11px}
.goal-track{height:10px;border-radius:6px;background:rgba(30,34,48,.12);position:relative;overflow:hidden;margin-top:8px}
.goal-fill{position:absolute;inset:0 auto 0 0;width:var(--p,86%);
  background:linear-gradient(90deg,var(--terracotta),var(--gold));border-radius:6px}
.js .reveal.in .goal-fill{animation:goalGrow 1.2s .3s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes goalGrow{from{width:0}}
.traj-delta{align-self:flex-start;background:var(--bordeaux);color:var(--cream-light);
  font-family:var(--font-sans);font-weight:800;font-size:12px;padding:6px 12px;border-radius:4px;
  text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.traj-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto}
.update-stamp{font-family:ui-monospace,'SF Mono',monospace;font-size:11px;color:var(--terracotta)}
.traj-link{font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:12px;
  color:var(--bordeaux);display:inline-flex;gap:8px;align-items:center}
.traj-card:hover .traj-link .arr{transform:translateX(5px)}
.traj-link .arr{transition:transform .2s}
.night .goal-track{background:rgba(242,237,228,.16)}
.night .traj-goal-label{color:rgba(242,237,228,.7)}

/* ============================================================
   MOTION GLOBAL
   ============================================================ */
/* Ken Burns sur la photo du héro (la propriété scale n'entre pas
   en conflit avec le translateY de parallaxe posé en JS) */
.hero-bg img{animation:kenburns 16s ease-in-out infinite alternate;transition:opacity .9s ease}
.hero-bg.video-ready img{animation-play-state:paused}
@keyframes kenburns{from{scale:1}to{scale:1.07}}

/* cartons : le titre se resserre en entrant */
.js .cut.in .cut-title{animation:trackIn 1.1s .1s cubic-bezier(.2,.7,.2,1) backwards}
@keyframes trackIn{from{letter-spacing:.07em}to{letter-spacing:.004em}}

/* zooms image au survol */
.ph-img,.ep-thumb-img,.traj-photo,.rc-group-img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ep:hover .ep-thumb-img{transform:scale(1.06)}
.pillar:hover .ph-img{transform:scale(1.05)}
.merch-card:hover .ph-img{transform:scale(1.06)}
.traj-card:hover .traj-photo{transform:scale(1.06)}
.doc-feature:hover .ph-img{transform:scale(1.04)}

/* pastilles étoile : sursaut au survol */
.star-badge svg{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.star-badge:hover svg{transform:rotate(14deg) scale(1.07)}

/* boutons : balayage lumineux */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:-90%;width:55%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.32),transparent);
  transform:skewX(-20deg);transition:left .5s ease;pointer-events:none}
.btn:hover::after{left:135%}

/* sceau de la nav : pivote au survol de la marque */
.nav-brand .seal-mark{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.nav-brand:hover .seal-mark{transform:rotate(28deg)}

/* défis : glissent au survol */
.defi{transition:transform .2s ease,box-shadow .2s ease}
.defi:hover{transform:translateX(6px)}

/* chips plateformes : déjà animés — on ajoute un poil de rebond */
.chip{transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s}

@media (prefers-reduced-motion:reduce){
  .hero-bg img{animation:none}
  .js .cut.in .cut-title{animation:none}
}

/* ============================================================
   REJOINDRE — canaux Strava / WhatsApp mis en avant
   ============================================================ */
.join-channels{display:flex;flex-direction:column;gap:18px}
.join-channel{display:flex;align-items:center;gap:20px;text-decoration:none;
  background:rgba(242,237,228,.05);border:1px solid rgba(242,237,228,.16);border-radius:14px;
  padding:24px 26px;position:relative;overflow:hidden;
  transition:transform .2s cubic-bezier(.2,.7,.2,1),border-color .25s,background .25s,box-shadow .25s}
.join-channel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c);
  transition:width .25s ease}
.join-channel:hover{transform:translateX(6px);background:rgba(242,237,228,.08);
  border-color:var(--c);box-shadow:0 16px 40px rgba(0,0,0,.4)}
.join-channel:hover::before{width:8px}
.jc-strava{--c:#FC4C02}
.jc-wa{--c:#25D366}
.jc-icon{width:56px;height:56px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:var(--c);color:#fff;box-shadow:0 8px 20px color-mix(in srgb,var(--c) 45%,transparent);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.join-channel:hover .jc-icon{transform:scale(1.08) rotate(-5deg)}
.jc-icon svg{width:30px;height:30px}
.jc-body{display:flex;flex-direction:column;gap:5px;flex:1}
.jc-name{font-family:'Anton',var(--font-sans);font-weight:400;text-transform:uppercase;
  letter-spacing:.02em;font-size:clamp(22px,2.2vw,28px);color:var(--cream-light);line-height:1}
.jc-desc{font-size:13.5px;color:rgba(242,237,228,.7);line-height:1.35}
.jc-arr{font-size:24px;color:var(--c);flex:none;transition:transform .25s ease}
.join-channel:hover .jc-arr{transform:translateX(6px)}
@media(max-width:600px){
  .join-channel{padding:20px}
  .jc-icon{width:48px;height:48px}
  .jc-icon svg{width:26px;height:26px}
}

/* ============================================================
   IMMERSION CINÉMA
   ============================================================ */
/* ---- ouverture letterbox du héro ---- */
.lb{position:absolute;left:0;right:0;z-index:4;background:#04060A;pointer-events:none}
.lb-top{top:0;height:16vh;animation:lbOpen 1.5s .25s cubic-bezier(.76,0,.18,1) forwards}
.lb-bottom{bottom:0;height:16vh;animation:lbOpen 1.5s .25s cubic-bezier(.76,0,.18,1) forwards}
@keyframes lbOpen{to{height:0}}

/* ---- grain de film animé (scintillement 35mm) ---- */
.grain{animation:grainJitter .85s steps(1) infinite}
@keyframes grainJitter{
  0%{background-position:0 0}14%{background-position:-38px 22px}
  28%{background-position:26px -44px}42%{background-position:-14px 34px}
  57%{background-position:42px 8px}71%{background-position:-30px -26px}
  85%{background-position:18px 40px}100%{background-position:0 0}
}

/* ---- cartons : titre qui monte masqué ---- */
.js .cut .cut-title{clip-path:inset(-0.15em -0.1em 105% -0.1em);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1),
    clip-path .95s cubic-bezier(.7,0,.2,1)}
.js .cut.in .cut-title{clip-path:inset(-0.15em -0.1em -0.15em -0.1em)}

/* ---- rideau de balayage sur les médias au reveal ---- */
.js .reveal .ep-thumb::before,
.js .reveal .doc-feature-thumb::before,
.js .reveal .pod-cover::before,
.js .reveal .rc-group-cut::before,
.js .reveal .pillar .ph::before{
  content:"";position:absolute;inset:0;z-index:6;background:var(--night-deep);
  transform:scaleX(1);transform-origin:right;
  transition:transform .9s cubic-bezier(.76,0,.18,1) .12s;pointer-events:none}
.js .reveal.in .ep-thumb::before,
.js .reveal.in .doc-feature-thumb::before,
.js .reveal.in .pod-cover::before,
.js .reveal.in .rc-group-cut::before,
.js .reveal.in .pillar .ph::before{transform:scaleX(0)}
.pillar .ph{position:relative}

/* ---- numéros fantômes en parallaxe (scroll-driven, progressif) ---- */
@supports (animation-timeline: view()){
  section[data-chapter]::after{animation:ghostDrift linear both;animation-timeline:view()}
  @keyframes ghostDrift{from{translate:0 -4%}to{translate:0 16%}}
}

/* ---- manifeste : zoom doux en plus de la montée ---- */
.js .manifeste .manifeste-line{transform:translateY(34px) scale(.97)}
.js .manifeste.in .manifeste-line{transform:none}

@media (prefers-reduced-motion:reduce){
  .lb{display:none}
  .grain{animation:none}
  .js .cut .cut-title{clip-path:none}
  .js .reveal .ep-thumb::before,.js .reveal .doc-feature-thumb::before,
  .js .reveal .pod-cover::before,.js .reveal .rc-group-cut::before,
  .js .reveal .pillar .ph::before{display:none}
}
@media(max-width:900px){.traj-grid{grid-template-columns:1fr}}

/* ============================================================
   PAGES ATHLÈTES
   ============================================================ */
.subnav-pad{height:74px}                /* compense la nav fixe sur sous-pages */

/* fil d'ariane / retour */
.ath-back{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-sans);
  font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:12px;
  color:rgba(242,237,228,.7);transition:color .2s,gap .2s}
.ath-back:hover{color:var(--gold);gap:13px}

/* ---- INDEX : héro ---- */
.ath-index-head{max-width:780px}
.ath-index-head .serif-title{font-size:clamp(44px,8vw,104px);color:var(--cream-light);line-height:.92}
.ath-index-head .ath-sub{font-family:var(--font-serif);font-style:italic;font-weight:600;
  color:var(--gold);font-size:clamp(22px,3vw,34px);margin-top:8px}
.ath-index-head .ath-lede{margin-top:20px;color:rgba(242,237,228,.82);font-size:clamp(15px,1.2vw,18px);max-width:60ch}

/* ---- INDEX : grille 2 athlètes ---- */
.ath-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:54px}
.ath-card{position:relative;display:block;border-radius:10px;overflow:hidden;
  border:1px solid rgba(242,237,228,.14);background:var(--night-deep);
  aspect-ratio:4/5;transition:transform .2s ease,border-color .2s}
.ath-card:hover{transform:translateY(-6px);border-color:rgba(232,200,64,.55)}
.ath-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(.15) contrast(1.02);transition:transform .5s ease,filter .3s}
.ath-card:hover img{transform:scale(1.04);filter:none}
.ath-card::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,14,19,.05) 30%,rgba(13,14,19,.55) 62%,rgba(13,14,19,.92))}
.ath-card-body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:30px 30px 32px}
.ath-card-tag{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.2em;font-size:11.5px;color:var(--gold)}
.ath-card-name{font-family:var(--font-display);font-size:clamp(30px,3.6vw,46px);
  color:var(--cream-light);line-height:.95;margin:8px 0 4px}
.ath-card-pr{display:flex;gap:22px;margin-top:14px}
.ath-card-pr .pr{display:flex;flex-direction:column;line-height:1}
.ath-card-pr .pr b{font-family:var(--font-sans);font-weight:800;font-size:20px;color:var(--cream-light)}
.ath-card-pr .pr span{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:rgba(242,237,228,.6);margin-top:4px}
.ath-card-cta{margin-top:20px;display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-sans);font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  font-size:12.5px;color:var(--gold)}
.ath-card:hover .ath-card-cta .arr{transform:translateX(5px)}
.ath-card-cta .arr{transition:transform .2s}

/* ---- DÉTAIL : héro profil ---- */
.profile-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:center}
.profile-photo{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/5;
  border:1px solid rgba(242,237,228,.16);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.profile-photo .star-badge{position:absolute;right:-14px;top:-14px;--s:104px;--fs:12px;color:var(--bordeaux);z-index:2}
.profile-meta .eyebrow{color:var(--gold)}
.profile-name{font-family:var(--font-display);font-size:clamp(48px,8vw,104px);line-height:.86;
  color:var(--cream-light);margin:14px 0 6px}
.profile-tagline{font-family:var(--font-serif);font-style:italic;font-weight:600;
  color:var(--gold);font-size:clamp(22px,2.6vw,32px);line-height:1.05}
.profile-bio{margin-top:22px;color:rgba(242,237,228,.84);font-size:clamp(15px,1.15vw,17px);max-width:54ch}
.profile-bio[data-placeholder-note]::after{content:attr(data-placeholder-note);display:block;
  margin-top:12px;font-family:ui-monospace,monospace;font-size:11px;color:rgba(232,200,64,.55)}
.profile-quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.profile-quick .chip{background:rgba(242,237,228,.08);border:1px solid rgba(242,237,228,.18);
  color:var(--cream-light);border-radius:40px;padding:9px 16px;font-weight:700;font-size:13px}
.profile-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}

/* ---- bandeau records (PR) ---- */
.pr-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  margin-top:14px;background:rgba(242,237,228,.12);border:1px solid rgba(242,237,228,.12);border-radius:12px;overflow:hidden}
.pr-cell{background:var(--night);padding:26px 24px;text-align:center}
.pr-cell .pr-dist{font-family:var(--font-sans);font-weight:800;text-transform:uppercase;
  letter-spacing:.16em;font-size:11.5px;color:var(--gold)}
.pr-cell .pr-time{font-family:var(--font-display);font-size:clamp(34px,4.4vw,52px);color:var(--cream-light);line-height:1;margin-top:10px}
.pr-cell .pr-note{font-size:11.5px;color:rgba(242,237,228,.5);margin-top:8px}
.pr-cell.empty .pr-time{color:rgba(242,237,228,.3)}

/* ---- objectif ---- */
.goal-card{display:flex;gap:22px;align-items:flex-start;
  background:rgba(160,44,44,.12);border:1px solid rgba(160,44,44,.4);border-radius:12px;padding:30px 32px}
.goal-card .goal-num{font-family:var(--font-display);font-size:44px;color:var(--bordeaux);line-height:1;flex:none}
.goal-card h3{font-family:var(--font-serif);font-weight:900;font-size:clamp(22px,2.4vw,30px);color:var(--cream-light);line-height:1.02}
.goal-card p{color:rgba(242,237,228,.82);font-size:15px;margin-top:8px;max-width:60ch}

/* ---- épisodes liés (réutilise .eps/.ep du site) ---- */

/* ---- galerie ---- */
.ath-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:14px;margin-top:18px}
.ath-gallery .g-item{border-radius:8px;overflow:hidden;position:relative;border:1px solid rgba(242,237,228,.1)}
.ath-gallery .g-item img{width:100%;height:100%;object-fit:cover}
.ath-gallery .g-wide{grid-column:span 2}
.ath-gallery .g-tall{grid-row:span 2}

@media(max-width:900px){
  .ath-grid{grid-template-columns:1fr;gap:20px}
  .ath-card{aspect-ratio:16/12}
  .profile-hero{grid-template-columns:1fr;gap:30px}
  .ath-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}
  .ath-gallery .g-wide{grid-column:span 2}
}

/* ============================================================
   PHOTO FONDATEUR · SECTION REJOINDRE
   ============================================================ */
.join-grid{grid-template-columns:1.05fr auto .95fr}
.join-photo{position:relative;width:clamp(190px,16vw,245px);justify-self:center}
.join-photo .pol{background:var(--cream-light);padding:10px 10px 14px;border-radius:4px;
  transform:rotate(-3.5deg);box-shadow:0 18px 50px rgba(0,0,0,.5)}
.join-photo img{display:block;width:100%;border-radius:2px}
.join-photo .cap{font-family:var(--font-hand);font-weight:600;font-size:21px;color:var(--navy-dark);
  text-align:center;margin-top:9px;line-height:1}
.join-photo .star-badge{position:absolute;top:-24px;right:-24px;rotate:8deg}
@media(max-width:1000px){
  .join-grid{grid-template-columns:1fr;gap:44px}
  .join-photo{width:min(250px,64vw);margin:4px auto 0}
  .join-photo .pol{transform:rotate(-2.5deg)}
  .join-lede{max-width:none}
}
@media(max-width:600px){
  .join-hand{font-size:clamp(26px,8vw,34px)}
  .join-title{font-size:clamp(40px,13vw,56px)}
}

/* ============================================================
   PASSE MOBILE — sections aérées sur petit écran
   ============================================================ */
@media(max-width:640px){
  /* — L'Univers : piliers en pleine largeur, plus de cartes écrasées — */
  .pillars{grid-template-columns:1fr;gap:16px;margin-top:38px}
  .pillar{min-height:0;padding:22px 20px 24px}
  .pillar .ph{height:160px}
  .pillar h3{font-size:21px}

  /* — RTBD : épisodes en liste compacte (vignette à gauche) — */
  .eps{grid-template-columns:1fr;gap:13px;margin-top:34px}
  .ep{flex-direction:row;align-items:stretch}
  .ep:hover{transform:none}
  .ep-thumb{width:138px;flex:none;aspect-ratio:4/3;height:auto}
  .ep-play{width:34px;height:34px;border-width:1.5px}
  .ep-play svg{width:14px;height:14px;margin-left:2px}
  .ep-badge{top:8px;left:8px;font-size:9px;padding:3px 6px;letter-spacing:.08em}
  .ep-body{padding:12px 16px;display:flex;flex-direction:column;justify-content:center;min-width:0}
  .ep-meta{font-size:10px;margin-bottom:4px}
  .ep-body h3{font-size:18px}
  .rtbd-lede{max-width:none}

  /* — Trajectoires : cartes plus respirantes — */
  .traj-grid{gap:18px;margin-top:36px}
  .traj-card{padding:20px 18px;gap:14px}
  .traj-photo{width:70px;height:70px}

  /* — Podcast / Documentaire / Club : marges resserrées mais aérées — */
  .pod-feature{gap:22px;margin-top:34px}
  .rc-layout{gap:34px;margin-top:30px}
  .defi{padding:14px 16px}

  /* — Merch : carte centrée — */
  .merch-grid-solo{grid-template-columns:1fr;max-width:300px;margin-inline:auto}

  /* — titres de chapitres et numéros — */
  .sec-num::after{width:34px}
  .serif-title{letter-spacing:0}
}

/* ============================================================
   CARTONS V3 — cartes-titres cinéma (image étalonnée + centré)
   ============================================================ */
.cut{min-height:clamp(300px,36vw,460px);display:grid;align-items:center;
  padding-block:clamp(70px,8vw,110px)}
.cut-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  filter:grayscale(.85) contrast(1.12) brightness(.6);transform:scale(1.12);
  transition:transform 1.6s cubic-bezier(.2,.7,.2,1)}
.cut.in .cut-bg{transform:scale(1.04)}
.cut-bg--soft{filter:grayscale(.85) contrast(1.05) brightness(.5) blur(3px)}
.cut-grade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(115deg,rgba(58,98,140,.5) 0%,rgba(58,98,140,.08) 45%,rgba(196,90,61,.08) 55%,rgba(196,90,61,.45) 100%);
  mix-blend-mode:overlay}
.cut-veil{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(ellipse at 50% 52%,rgba(6,9,14,.42) 0%,rgba(6,9,14,.88) 80%),
             linear-gradient(rgba(6,9,14,.95),rgba(6,9,14,0) 22% 78%,rgba(6,9,14,.95))}
.cut .wrap{z-index:3;align-items:center;text-align:center}
.cut-num{justify-content:center;color:var(--terracotta);letter-spacing:.42em}
.cut-num::before,.cut-num::after{content:"";width:clamp(30px,4vw,60px);height:1px;
  background:rgba(196,90,61,.55);opacity:1}
.cut-title{font-size:clamp(46px,7.2vw,110px);text-shadow:0 4px 36px rgba(6,9,14,.65)}
@supports (animation-timeline: view()){
  .cut-bg{animation:cutDrift linear both;animation-timeline:view()}
  @keyframes cutDrift{from{object-position:50% 38%}to{object-position:50% 62%}}
}
@media(max-width:640px){
  .cut{min-height:218px;padding-block:54px}
  .cut-num{font-size:10px;letter-spacing:.3em}
}

/* ============================================================
   PEAUFINAGE FINAL — détails globaux
   ============================================================ */
::selection{background:var(--gold);color:#15161D}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
.paper :focus-visible{outline-color:var(--bordeaux)}

/* marquee : fondu sur les bords */
.marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 7% 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7% 93%,transparent)}

/* barre de défilement discrète, raccord nuit */
html{scrollbar-color:#3a4256 #0D0E13;scrollbar-width:thin}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:#0D0E13}
::-webkit-scrollbar-thumb{background:#3a4256;border-radius:6px;border:2px solid #0D0E13}
::-webkit-scrollbar-thumb:hover{background:#4a5470}

@media (prefers-reduced-motion:reduce){
  .cut-bg{animation:none;transform:none;transition:none}
}
