/* Le Mans Fashion Show — V1 · direction « Podium de nuit » */
:root{
  --noir:#07040c;--nuit:#0e0717;--nuit2:#150b22;
  --violet:#7a2cff;--magenta:#ff2e9a;--rose:#ff8cc8;--or:#ecd3a0;--ivoire:#f7f0e8;--muted:#b7a8c9;
  --line:rgba(255,255,255,.12);--r:22px;
  --serif:'Bodoni Moda','Didot','Times New Roman',serif;--sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --glow:0 0 40px rgba(255,46,154,.45),0 0 120px rgba(122,44,255,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--noir);color:var(--ivoire);font-family:var(--sans);line-height:1.65;overflow-x:hidden;min-height:100vh}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px;border-radius:6px}
.wrap{width:min(1200px,92vw);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* — Navigation — */
.nav{position:fixed;inset:0 0 auto 0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(16px,4vw,44px);
  transition:background .4s,backdrop-filter .4s,padding .3s}
.nav.solid{background:rgba(7,4,12,.78);backdrop-filter:blur(14px);padding-block:10px;border-bottom:1px solid var(--line)}
.brand{font-family:var(--serif);font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;line-height:1.1}
.brand b{display:block;font-weight:700;letter-spacing:.3em;font-size:.82em;color:var(--rose)}
.nav ul{display:flex;gap:clamp(14px,2.4vw,34px);list-style:none;align-items:center}
.nav ul a{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;opacity:.82;transition:opacity .2s,color .2s}
.nav ul a:hover,.nav ul a[aria-current]{opacity:1;color:var(--rose)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);position:relative}
.burger i,.burger i::before{content:"";position:absolute;left:12px;right:12px;height:2px;background:var(--ivoire);transition:.3s}
.burger i{top:21px}.burger i::before{left:0;right:0;top:-6px}
.burger[aria-expanded=true] i{background:transparent}.burger[aria-expanded=true] i::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded=true] i::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ivoire);transform:rotate(-45deg)}
@media(max-width:860px){
  .burger{display:block}
  .nav ul{position:fixed;inset:0;flex-direction:column;justify-content:center;gap:28px;background:rgba(7,4,12,.97);opacity:0;pointer-events:none;transition:opacity .35s}
  .nav ul.open{opacity:1;pointer-events:auto}.nav ul a{font-size:1.2rem}
  .burger{z-index:2}
}

/* — Boutons — */
.btn{display:inline-flex;align-items:center;gap:.6em;padding:15px 30px;border-radius:999px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;
  background:linear-gradient(110deg,var(--magenta),var(--violet));box-shadow:var(--glow);transition:transform .25s,filter .25s}
.btn:hover{transform:translateY(-3px) scale(1.02);filter:brightness(1.12)}
.btn--ghost{background:transparent;border:1px solid var(--line);box-shadow:none}
.btn--ghost:hover{border-color:var(--rose);background:rgba(255,140,200,.08)}
.btn--sm{padding:10px 20px;font-size:.72rem}

/* — Hero — */
.hero{position:relative;height:260svh;--mx:50%;--my:42%;--o:0;text-align:center}
.hero__sticky{position:sticky;top:0;height:100svh;display:grid;place-items:center;overflow:hidden;isolation:isolate;perspective:1300px;perspective-origin:50% 40%}
.hero__wall{position:absolute;inset:-10% -4%;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;transform:rotate(-4deg) scale(calc(1.3 - var(--o)*.22));z-index:-3;filter:brightness(calc(.35 + var(--o)*.65))}
.col{display:flex;flex-direction:column;gap:14px;animation:drift 70s linear infinite}
.col:nth-child(2){animation-direction:reverse;animation-duration:85s}
.col:nth-child(3){animation-duration:78s}
.col img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:18px;filter:saturate(1.15)}
@keyframes drift{to{transform:translateY(-50%)}}
.hero__veil{position:absolute;inset:0;z-index:-2;
  background:radial-gradient(circle clamp(180px,26vw,340px) at var(--mx) var(--my),rgba(7,4,12,0) 0%,rgba(7,4,12,.72) 55%,rgba(7,4,12,.95) 100%)}
.hero__beams{position:absolute;inset:0;z-index:-1;pointer-events:none;mix-blend-mode:screen;opacity:calc(.25 + var(--o)*.6);
  background:
   conic-gradient(from 188deg at 14% -8%,transparent 0 6deg,rgba(255,46,154,.38) 8deg,transparent 14deg),
   conic-gradient(from 172deg at 86% -8%,transparent 0 6deg,rgba(122,44,255,.42) 8deg,transparent 14deg),
   linear-gradient(180deg,transparent 55%,rgba(7,4,12,.9))}
.hero__in{padding:120px 20px 150px;max-width:980px;opacity:calc((var(--o) - .32) * 2.6);transform:translate3d(var(--tx,0),var(--ty,0),calc((1 - var(--o)) * -520px)) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));will-change:transform,opacity;pointer-events:auto}
.kick{font-size:.78rem;letter-spacing:.42em;text-transform:uppercase;color:var(--or);margin-bottom:18px}
.hero h1{font-family:var(--serif);font-weight:800;line-height:.92;font-size:clamp(3.2rem,12.5vw,9.6rem);text-transform:uppercase;letter-spacing:-.01em;
  background:linear-gradient(180deg,#fff 20%,var(--rose) 130%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 80px rgba(255,46,154,.25)}
.hero h1 small{display:block;font-size:.2em;letter-spacing:.55em;font-weight:500;margin-bottom:.4em;-webkit-text-fill-color:var(--ivoire)}
.hero p.sub{margin:22px auto 30px;max-width:560px;color:#e8dcf0;font-size:clamp(1rem,2.2vw,1.2rem)}
.hero p.sub em{font-family:var(--serif);color:var(--or)}
.cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.scroll{opacity:calc(.7 - var(--o)*.7);position:absolute;bottom:26px;left:50%;translate:-50% 0;font-size:.7rem;letter-spacing:.35em;text-transform:uppercase}
.scroll::after{content:"";display:block;width:1px;height:44px;margin:10px auto 0;background:linear-gradient(var(--rose),transparent);animation:pulse 2s infinite}
@keyframes pulse{50%{transform:scaleY(.5);opacity:.4}}

/* — Compte à rebours — */
.count{display:flex;gap:clamp(8px,2vw,18px);justify-content:center;margin:0 0 34px}
.count div{min-width:clamp(64px,15vw,104px);padding:12px 8px;border:1px solid var(--line);border-radius:16px;background:rgba(14,7,23,.55);backdrop-filter:blur(8px)}
.count b{display:block;font-family:var(--serif);font-size:clamp(1.9rem,6vw,3.4rem);line-height:1;font-variant-numeric:tabular-nums}
.count span{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.count.done{display:block;font-family:var(--serif);font-size:clamp(1.6rem,5vw,3rem);color:var(--rose)}

/* — Marquee — */
.marq{overflow:hidden;border-block:1px solid var(--line);background:linear-gradient(90deg,rgba(255,46,154,.12),rgba(122,44,255,.12));padding:16px 0;white-space:nowrap}
.marq div{display:inline-flex;gap:44px;animation:marq 38s linear infinite;font-family:var(--serif);font-size:clamp(1rem,2.4vw,1.5rem);letter-spacing:.2em;text-transform:uppercase}
.marq span::after{content:"✦";margin-left:44px;color:var(--magenta)}
@keyframes marq{to{transform:translateX(-50%)}}

/* — Sections — */
section{padding:clamp(70px,11vw,150px) 0;position:relative}
.eyebrow{font-size:.74rem;letter-spacing:.4em;text-transform:uppercase;color:var(--magenta);font-weight:700;margin-bottom:16px}
h2{font-family:var(--serif);font-weight:700;font-size:clamp(2.1rem,6vw,4.4rem);line-height:1.04;max-width:18ch}
h2 em{color:var(--rose);font-style:italic;font-weight:500}
.lead{max-width:60ch;color:#ddd0e8;font-size:1.1rem;margin-top:22px}
.rv{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}

/* Concept */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:56px}
.pillar{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4.1;border:1px solid var(--line);transform-style:preserve-3d;transition:transform .25s}
.pillar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.pillar:hover img{transform:scale(1.07)}
.pillar::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(7,4,12,.94))}
.pillar div{position:absolute;inset:auto 0 0;padding:26px;z-index:2}
.pillar i{font-family:var(--serif);font-style:normal;font-size:3.4rem;line-height:1;color:transparent;-webkit-text-stroke:1px var(--rose)}
.pillar h3{font-family:var(--serif);font-size:1.7rem;margin:6px 0}
.pillar p{color:#e0d3ea;font-size:.95rem}
@media(max-width:860px){.pillars{grid-template-columns:1fr}.pillar{aspect-ratio:4/4.4}}

/* Marraine */
.duo{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,6vw,80px);align-items:center}
.poster{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--glow);rotate:-2deg;max-width:460px;margin-inline:auto}
.poster img{width:100%}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chips span{padding:8px 16px;border:1px solid var(--line);border-radius:999px;font-size:.78rem;letter-spacing:.08em;background:rgba(255,255,255,.04)}
@media(max-width:860px){.duo{grid-template-columns:1fr}}

/* Rail des éditions */
.rail-h{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:38px}
.arrows{display:flex;gap:10px}
.arrows button{width:50px;height:50px;border-radius:50%;border:1px solid var(--line);font-size:1.2rem;transition:.2s}
.arrows button:hover{border-color:var(--rose);color:var(--rose)}
.rail{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px max(4vw,calc((100vw - 1200px)/2)) 30px;scrollbar-width:none;cursor:grab}
.rail::-webkit-scrollbar{display:none}
.rail.drag{cursor:grabbing;scroll-snap-type:none}
.ed{flex:0 0 min(300px,74vw);scroll-snap-align:center;position:relative}
.ed .pic{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line)}
.ed img{width:100%;height:100%;object-fit:cover;pointer-events:none;transition:transform .8s}
.ed:hover img{transform:scale(1.06)}
.ed .yr{position:absolute;left:-6px;bottom:44px;font-family:var(--serif);font-weight:800;font-size:5.4rem;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.85);mix-blend-mode:difference;pointer-events:none}
.ed h4{font-family:var(--serif);font-size:1.25rem;margin-top:14px}
.ed p{color:var(--muted);font-size:.9rem}
.ed.now .pic{box-shadow:var(--glow);border-color:var(--magenta)}
.ed .tag{position:absolute;top:12px;right:12px;z-index:2;background:linear-gradient(110deg,var(--magenta),var(--violet));font-size:.65rem;font-weight:800;letter-spacing:.2em;padding:6px 12px;border-radius:999px;text-transform:uppercase}

/* Teaser Direct */
.live{background:radial-gradient(900px 400px at 85% 0,rgba(122,44,255,.3),transparent),radial-gradient(700px 400px at 0 100%,rgba(255,46,154,.2),transparent),var(--nuit)}
.badge{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;letter-spacing:.3em;font-weight:800;text-transform:uppercase}
.dot{width:10px;height:10px;border-radius:50%;background:#555;display:inline-block}
.on .dot{background:#ff2147;box-shadow:0 0 0 0 rgba(255,33,71,.7);animation:ring 1.6s infinite}
@keyframes ring{70%{box-shadow:0 0 0 14px rgba(255,33,71,0)}100%{box-shadow:0 0 0 0 rgba(255,33,71,0)}}
.mini{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:40px}
.mini a{position:relative;aspect-ratio:1;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--nuit2)}
.mini img,.mini video{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.mini a:hover img{transform:scale(1.1)}
.mini .t{display:grid;place-items:center;padding:12px;text-align:center;font-family:var(--serif);font-size:.85rem;height:100%}
.mini .demo{position:absolute;top:8px;left:8px;font-size:.55rem;letter-spacing:.18em;background:rgba(0,0,0,.6);padding:3px 7px;border-radius:99px}
@media(max-width:860px){.mini{grid-template-columns:repeat(3,1fr)}}

/* Galerie */
.gal{columns:4 220px;column-gap:14px;margin-top:50px}
.gal button{display:block;width:100%;margin:0 0 14px;border-radius:16px;overflow:hidden;break-inside:avoid;position:relative;border:1px solid var(--line)}
.gal img{width:100%;transition:transform .8s,filter .5s;filter:saturate(1.05)}
.gal button:hover img{transform:scale(1.06);filter:saturate(1.3)}
.lb{position:fixed;inset:0;z-index:120;background:rgba(5,2,9,.96);display:none;place-items:center}
.lb.open{display:grid}
.lb img{max-height:88vh;max-width:92vw;border-radius:14px;box-shadow:var(--glow)}
.lb button{position:absolute;width:54px;height:54px;border-radius:50%;border:1px solid var(--line);font-size:1.4rem;background:rgba(0,0,0,.4)}
.lb .x{top:20px;right:20px}.lb .p{left:20px;top:50%}.lb .n{right:20px;top:50%}

/* Fondateur / infos / casting */
.founder{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(24px,5vw,70px);align-items:center}
.founder img{border-radius:var(--r);border:1px solid var(--line);max-width:380px}
.founder q{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,3.2vw,2.2rem);line-height:1.3;quotes:"« " " »"}
@media(max-width:860px){.founder{grid-template-columns:1fr}}
.cast{background:linear-gradient(135deg,var(--magenta),var(--violet));border-radius:34px;padding:clamp(30px,6vw,80px);position:relative;overflow:hidden;box-shadow:var(--glow)}
.cast h2{max-width:16ch}.cast h2 em{color:#fff}
.cast p{max-width:52ch;margin:18px 0 30px;font-size:1.1rem}
.cast .btn{background:var(--noir);box-shadow:none}
.infos{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:46px}
.info{padding:30px;border:1px solid var(--line);border-radius:var(--r);background:rgba(255,255,255,.03)}
.info b{display:block;font-family:var(--serif);font-size:1.7rem;margin:6px 0 4px}
.info small{letter-spacing:.3em;text-transform:uppercase;color:var(--rose);font-size:.7rem;font-weight:700}
@media(max-width:860px){.infos{grid-template-columns:1fr}}
footer{border-top:1px solid var(--line);padding:50px 0 120px;color:var(--muted);font-size:.9rem}
footer .wrap{display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:center}
footer .soc{display:flex;gap:18px}footer a:hover{color:var(--rose)}

/* Bandeau billets collant + plein écran */
.stick{position:fixed;left:50%;bottom:18px;translate:-50% 0;z-index:70;display:flex;gap:10px;padding:8px;border-radius:999px;background:rgba(14,7,23,.82);backdrop-filter:blur(14px);border:1px solid var(--line);transition:transform .4s,opacity .4s}
.stick.hide{transform:translateY(130%);opacity:0}
.fs{position:fixed;right:16px;bottom:22px;z-index:70;width:46px;height:46px;border-radius:50%;background:rgba(14,7,23,.82);border:1px solid var(--line);backdrop-filter:blur(10px);font-size:1.1rem}
.fs:hover{border-color:var(--rose)}
@media(max-width:560px){.fs{bottom:84px}.stick .btn--ghost{display:none}}

/* — Page Direct — */
.pagehead{padding:140px 0 30px}
.stage{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:16/9;background:var(--nuit);border:1px solid rgba(255,140,200,.4);box-shadow:var(--glow)}
.stage iframe,.stage video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.stage .off{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:24px;
  background:radial-gradient(600px 300px at 50% 120%,rgba(255,46,154,.4),transparent),radial-gradient(500px 260px at 0 0,rgba(122,44,255,.4),transparent),var(--nuit)}
.stage .off h2{font-size:clamp(1.6rem,4.4vw,3rem);max-width:20ch;margin:10px auto}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:36px 0 22px}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pill{padding:9px 18px;border-radius:999px;border:1px solid var(--line);font-size:.78rem;letter-spacing:.08em;transition:.2s}
.pill.on{background:linear-gradient(110deg,var(--magenta),var(--violet));border-color:transparent}
.wall{columns:3 260px;column-gap:16px}
.card{break-inside:avoid;margin:0 0 16px;border-radius:20px;overflow:hidden;background:var(--nuit2);border:1px solid var(--line);position:relative;animation:pop .7s cubic-bezier(.2,.9,.2,1.1)}
.card.pin{border-color:var(--magenta);box-shadow:0 0 30px rgba(255,46,154,.35)}
@keyframes pop{from{opacity:0;transform:translateY(30px) scale(.94)}}
.card img,.card video{width:100%;cursor:zoom-in}
.card .m{padding:14px 16px 16px;font-size:.92rem}
.card .m small{display:flex;justify-content:space-between;color:var(--rose);letter-spacing:.2em;text-transform:uppercase;font-size:.64rem;font-weight:800;margin-bottom:6px}
.card .m small em{color:var(--muted);font-style:normal;letter-spacing:.05em;text-transform:none}
.card.txt .m{padding:34px 22px;font-family:var(--serif);font-size:1.35rem;line-height:1.3}
.empty{text-align:center;color:var(--muted);padding:60px 10px;border:1px dashed var(--line);border-radius:20px}
.toast{position:fixed;top:84px;left:50%;translate:-50% -140%;z-index:100;padding:12px 22px;border-radius:999px;background:linear-gradient(110deg,var(--magenta),var(--violet));font-weight:700;font-size:.85rem;letter-spacing:.08em;transition:translate .5s cubic-bezier(.2,.9,.2,1.2);box-shadow:var(--glow)}
.toast.show{translate:-50% 0}
.screen{position:fixed;inset:0;z-index:130;background:#050209;display:none;overflow:hidden}
.screen.open{display:block}
.screen .bg{position:absolute;inset:-10%;background-size:cover;background-position:center;filter:blur(50px) brightness(.45) saturate(1.5);transition:background-image .8s}
.screen figure{position:absolute;inset:4vh 4vw;display:grid;place-items:center}
.screen figure img,.screen figure video{max-height:78vh;max-width:92vw;border-radius:18px;box-shadow:var(--glow);animation:pop .9s}
.screen figcaption{position:absolute;bottom:0;left:0;right:0;text-align:center;font-family:var(--serif);font-size:clamp(1.3rem,3vw,2.4rem);text-shadow:0 2px 20px #000}
.screen .hud{position:absolute;top:18px;left:24px;right:24px;display:flex;justify-content:space-between;z-index:3;font-family:var(--serif);letter-spacing:.2em;text-transform:uppercase;font-size:.85rem}
.screen .hud button{border:1px solid var(--line);border-radius:999px;padding:8px 18px;background:rgba(0,0,0,.4);font-family:var(--sans);font-size:.75rem;letter-spacing:.15em}

/* — Régie — */
.reg{max-width:760px;margin-inline:auto;padding:110px 18px 80px}
.panel{border:1px solid var(--line);background:var(--nuit);border-radius:26px;padding:clamp(18px,4vw,34px);margin-bottom:22px}
.panel h2{font-size:1.7rem;max-width:none;margin-bottom:6px}
.panel > p{color:var(--muted);font-size:.92rem;margin-bottom:18px}
.f{display:flex;flex-direction:column;gap:12px}
input[type=text],input[type=password],input[type=url],textarea{width:100%;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--ivoire);font:inherit}
textarea{min-height:90px;resize:vertical}
.drop{display:grid;place-items:center;min-height:200px;border:2px dashed rgba(255,140,200,.5);border-radius:20px;text-align:center;padding:18px;cursor:pointer;position:relative;overflow:hidden;background:rgba(255,46,154,.05)}
.drop img,.drop video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.drop span{position:relative;z-index:1;background:rgba(0,0,0,.55);padding:6px 14px;border-radius:99px}
.rows{display:flex;flex-direction:column;gap:10px}
.row{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03)}
.row .th{width:58px;height:58px;border-radius:12px;object-fit:cover;background:var(--nuit2);flex:none}
.row .tx{flex:1;min-width:0;font-size:.85rem}.row .tx b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .ac{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.row .ac button{padding:7px 11px;border-radius:99px;border:1px solid var(--line);font-size:.7rem;letter-spacing:.06em}
.row .ac button:hover{border-color:var(--rose)}
.row.hid{opacity:.45}
.msg{min-height:1.4em;font-size:.9rem;color:var(--rose)}
.switch{display:flex;align-items:center;gap:12px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}}


/* — Rideau 3D, paillettes, podium — */
.hero__floor{position:absolute;left:-20%;right:-20%;bottom:-6%;height:46%;z-index:-1;pointer-events:none;transform-origin:50% 100%;
  transform:rotateX(68deg);opacity:calc(var(--o)*.9);
  background:
   repeating-linear-gradient(90deg,rgba(255,140,200,.55) 0 2px,transparent 2px 9%),
   repeating-linear-gradient(0deg,rgba(236,211,160,.35) 0 2px,transparent 2px 14%),
   linear-gradient(180deg,rgba(255,46,154,.0),rgba(255,46,154,.28) 70%,rgba(122,44,255,.45));
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 55%);mask-image:linear-gradient(180deg,transparent,#000 55%)}
.curtain{position:absolute;inset:0;z-index:5;pointer-events:none;perspective:1500px;perspective-origin:50% 35%;
  visibility:visible}
.cur{position:absolute;top:-2%;bottom:-2%;width:51%;will-change:transform;
  background:
   linear-gradient(180deg,rgba(255,200,120,.16),transparent 22%,transparent 70%,rgba(0,0,0,.45)),
   repeating-linear-gradient(90deg,rgba(0,0,0,.55) 0,rgba(255,60,150,.16) 2.2%,rgba(0,0,0,.6) 4.4%),
   linear-gradient(90deg,#2a0516,#7a0e3c 45%,#3b0620);
  box-shadow:inset 0 0 90px rgba(0,0,0,.65)}
.cur--l{left:0;transform-origin:0 50%;
  transform:rotateY(calc(var(--o)*34deg)) scaleX(calc(1 - var(--o)*.9)) skewY(calc(var(--o)*-2deg));
  border-right:3px solid rgba(236,211,160,.85);box-shadow:inset 0 0 90px rgba(0,0,0,.65),8px 0 40px rgba(0,0,0,.6)}
.cur--r{right:0;transform-origin:100% 50%;
  transform:rotateY(calc(var(--o)*-34deg)) scaleX(calc(1 - var(--o)*.9)) skewY(calc(var(--o)*2deg));
  border-left:3px solid rgba(236,211,160,.85);box-shadow:inset 0 0 90px rgba(0,0,0,.65),-8px 0 40px rgba(0,0,0,.6)}
.pelmet{position:absolute;left:-3%;right:-3%;top:-1px;height:13svh;
  transform:translateY(calc(var(--o)*-30%));
  background:
   linear-gradient(180deg,#1b030d,#5e0a30 85%,#7a0e3c);
  border-bottom:4px solid var(--or);box-shadow:0 14px 40px rgba(0,0,0,.7);
}
.pelmet::after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:18px;
  background:repeating-linear-gradient(90deg,var(--or) 0 3px,transparent 3px 11px);
  -webkit-mask-image:linear-gradient(180deg,#000,transparent);mask-image:linear-gradient(180deg,#000,transparent);opacity:.9}
.curtain__cue{position:absolute;z-index:6;left:50%;top:50%;translate:-50% -50%;text-align:center;
  opacity:calc(1 - var(--o)*4);pointer-events:none}
.curtain__cue p{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,3.4vw,2rem);color:var(--or);margin-bottom:22px;text-shadow:0 2px 20px #000}
.curtain__cue .btn{pointer-events:auto;animation:cueGlow 2.4s ease-in-out infinite}
.curtain__cue span{display:block;margin-top:18px;font-size:.7rem;letter-spacing:.35em;text-transform:uppercase;color:var(--ivoire);opacity:.75}
@keyframes cueGlow{50%{box-shadow:0 0 46px rgba(255,46,154,.85)}}
#glit{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none}
.hero__sticky .scroll{z-index:8}
.hero__in{position:relative;z-index:3}
.hero h1{background-size:100% 100%;filter:drop-shadow(0 0 30px rgba(255,46,154,.35))}
.hero h1 em{font-style:normal}
#wall .empty{column-span:all}
.wall .empty{column-span:all}
@media(prefers-reduced-motion:reduce){.curtain__cue .btn{animation:none}.hero__in{transform:translate3d(0,0,calc((1 - var(--o)) * -520px))}}
@media(max-width:560px){.hero{height:230svh}.hero__floor{height:34%}}

.cue__title{font-family:var(--serif);font-weight:800;text-transform:uppercase;font-size:clamp(2rem,7.5vw,4.6rem);line-height:.95;margin-bottom:16px;
  background:linear-gradient(180deg,#fff6d6,var(--or) 55%,#b98d4b);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 22px rgba(0,0,0,.8))}
.cue__title small{display:block;font-size:.26em;letter-spacing:.6em;font-weight:500;margin-bottom:.5em;-webkit-text-fill-color:var(--or)}

/* — Anneau 3D de photos + velours WebGL — */
.hero__ring{--cw:clamp(120px,17vw,240px);--R:calc(var(--cw)*1.85);position:absolute;left:50%;top:44%;width:0;height:0;z-index:-3;
  transform-style:preserve-3d;transform:translateZ(calc(var(--R)*-1.2)) rotateY(var(--ang,0deg));opacity:calc(.2 + var(--o)*.8)}
.hero__ring img{position:absolute;left:calc(var(--cw)*-.5);top:calc(var(--cw)*-.67);width:var(--cw);aspect-ratio:3/4;object-fit:cover;border-radius:14px;
  transform:rotateY(calc(var(--i)*36deg)) translateZ(var(--R));filter:brightness(.78) saturate(1.15);
  -webkit-box-reflect:below 10px linear-gradient(transparent 58%,rgba(255,255,255,.22));box-shadow:0 0 40px rgba(255,46,154,.18)}
#velvet{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;display:none}
.hero.gl #velvet{display:block}
.hero.gl .curtain{display:none}
@media(max-width:560px){.hero__ring{--cw:clamp(96px,30vw,150px);top:40%}}
