/* =========================================================
   BIG VIRG PRODUCTIONS  ·  Opening Night
   Built by CMX Web Design
   ========================================================= */
@font-face{font-family:"Poppins";src:url(/fonts/poppins-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Poppins";src:url(/fonts/poppins-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Poppins";src:url(/fonts/poppins-latin-800-normal.woff2) format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Poppins";src:url(/fonts/poppins-latin-900-normal.woff2) format("woff2");font-weight:900;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(/fonts/instrument-serif-latin-400-italic.woff2) format("woff2");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jetbrains-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}

:root{
  --black:#050306;
  --black-2:#0c0710;
  --black-3:#140b18;
  --pink:#ff2d95;
  --pink-hot:#ff4fae;
  --pink-soft:#ffa3d2;
  --pink-deep:#9b0d57;
  --gold:#f6c45a;
  --white:#fff4fa;
  --muted:rgba(255,232,244,.64);
  --faint:rgba(255,232,244,.38);
  --line:rgba(255,45,149,.2);
  --glow:0 0 6px rgba(255,79,174,.9),0 0 18px rgba(255,45,149,.75),0 0 46px rgba(255,45,149,.55),0 0 110px rgba(255,45,149,.35);
  --ease:cubic-bezier(.2,.8,.2,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  --wrap:min(1240px,calc(100vw - 32px));
  --display:"Poppins",system-ui,sans-serif;
  --serif:"Instrument Serif",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--black);overflow-x:clip}
body{margin:0;background:var(--black);color:var(--white);font:500 16px/1.6 var(--display);-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
body.is-intro,body.is-locked{overflow:hidden}
img,video,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
::selection{background:var(--pink);color:#000}
:focus-visible{outline:2px solid var(--pink-hot);outline-offset:3px;border-radius:6px}
em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--pink-hot);letter-spacing:-.01em}
.wrap{width:var(--wrap);margin-inline:auto}
.eyebrow{font:500 12px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--pink-hot);margin:0 0 18px;display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;box-shadow:0 0 8px var(--pink)}
h2{font-weight:900;font-size:clamp(40px,7vw,96px);line-height:.95;letter-spacing:-.035em;margin:0 0 24px}
h2 em{font-size:1.08em}
.lede{font-size:clamp(17px,1.5vw,20px);color:var(--muted);max-width:58ch;margin:0 0 20px}

/* ---------- buttons ---------- */
.btn{--h:54px;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:var(--h);padding:0 26px;border-radius:999px;
  background:var(--pink);color:#12000a;font-weight:800;font-size:15px;letter-spacing:.01em;position:relative;isolation:isolate;
  box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 10px 40px -8px rgba(255,45,149,.8),0 0 24px rgba(255,45,149,.45);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s}
.btn svg{width:18px;height:18px;fill:currentColor}
.btn::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%);background-size:250% 100%;background-position:120% 0;transition:background-position .9s var(--ease)}
.btn:hover{transform:translateY(-2px);background:var(--pink-hot);box-shadow:0 0 0 1px rgba(255,255,255,.3) inset,0 16px 60px -6px rgba(255,45,149,1),0 0 40px rgba(255,45,149,.7)}
.btn:hover::after{background-position:-20% 0}
.btn--ghost{background:rgba(255,45,149,.06);color:var(--white);box-shadow:0 0 0 1px rgba(255,79,174,.55) inset,0 0 20px rgba(255,45,149,.15)}
.btn--ghost:hover{background:rgba(255,45,149,.16)}
.btn--small{--h:42px;padding:0 18px;font-size:13px}
.btn--wide{width:100%}

/* =========================================================
   PRE-SHOW LEADER
   ========================================================= */
.leader{position:fixed;inset:0;z-index:100;background:#000;display:grid;place-items:center;align-content:center;gap:28px;transition:opacity .5s ease,visibility .5s}
.leader::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 46%,rgba(255,45,149,.16),transparent 55%);animation:projector .12s steps(2) infinite}
@keyframes projector{50%{opacity:.75}}
.leader__frame{position:relative;width:min(56vmin,360px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:#0a0408;box-shadow:0 0 0 2px rgba(255,79,174,.5),0 0 80px rgba(255,45,149,.35)}
.leader__sweep{position:absolute;inset:0;background:conic-gradient(from 0deg,rgba(255,45,149,.55) var(--a,0deg),transparent 0);}
.leader__rings{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--pink-soft);stroke-width:1.5;opacity:.8;filter:drop-shadow(0 0 4px var(--pink))}
.leader__num{position:absolute;inset:0;display:grid;place-items:center;font-weight:900;font-size:min(30vmin,200px);line-height:1;color:var(--white);text-shadow:var(--glow)}
.leader__present{position:relative;font:500 12px/1 var(--mono);letter-spacing:.35em;text-transform:uppercase;color:var(--faint);margin:0;text-align:center;padding:0 16px}
.leader__present span{color:var(--pink-hot)}
.leader__skip{position:absolute;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);padding:12px 14px;border:1px solid rgba(255,255,255,.14);border-radius:999px}
.leader__skip:hover{color:var(--white);border-color:var(--pink)}
.leader.is-done{opacity:0;visibility:hidden}
.flashbulb{position:fixed;inset:0;z-index:99;pointer-events:none;background:radial-gradient(circle at 50% 45%,#fff 0,#ffd6ec 30%,rgba(255,45,149,.6) 60%,transparent 85%);opacity:0}
.flashbulb.is-pop{animation:pop 1.1s ease-out forwards}
@keyframes pop{0%{opacity:1}100%{opacity:0}}

/* =========================================================
   NAV
   ========================================================= */
.nav{position:fixed;inset:0 0 auto;z-index:50;height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 max(16px,calc((100vw - 1400px)/2));
  transition:background .4s,backdrop-filter .4s,transform .6s var(--ease),opacity .6s;opacity:0;transform:translateY(-20px)}
body.is-live .nav{opacity:1;transform:none}
.nav.is-solid{background:rgba(5,3,6,.72);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 1px 0 var(--line)}
.nav__brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px;letter-spacing:-.02em;text-transform:uppercase}
.nav__brand img{width:38px;height:auto;filter:drop-shadow(0 0 10px rgba(255,45,149,.5))}
.nav__brand span{color:var(--pink-hot);text-shadow:0 0 14px rgba(255,45,149,.6)}
.nav__links{display:flex;gap:34px;font-size:14px;font-weight:600;color:var(--muted)}
.nav__links a{position:relative;padding:6px 0;transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--pink);box-shadow:0 0 10px var(--pink);transform:scaleX(0);transition:transform .4s var(--ease)}
.nav__links a:hover{color:var(--white)}
.nav__links a:hover::after{transform:scaleX(1)}
.nav__actions{display:flex;align-items:center;gap:12px}
.sound{display:flex;align-items:center;gap:10px;height:42px;padding:0 14px;border-radius:999px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);box-shadow:0 0 0 1px rgba(255,255,255,.12) inset;transition:color .3s,box-shadow .3s}
.sound:hover{color:var(--white);box-shadow:0 0 0 1px var(--pink) inset}
.sound__bars{display:flex;gap:2px;align-items:flex-end;height:14px}
.sound__bars i{width:2px;height:3px;background:currentColor;border-radius:1px;transition:height .3s}
.sound[aria-pressed="true"]{color:var(--pink-hot)}
.sound[aria-pressed="true"] .sound__bars i{animation:eq .9s ease-in-out infinite}
.sound[aria-pressed="true"] .sound__bars i:nth-child(2){animation-delay:-.3s}
.sound[aria-pressed="true"] .sound__bars i:nth-child(3){animation-delay:-.6s}
.sound[aria-pressed="true"] .sound__bars i:nth-child(4){animation-delay:-.15s}
@keyframes eq{0%,100%{height:3px}50%{height:14px}}
.burger{display:none;width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.16) inset;position:relative}
.burger i{position:absolute;left:13px;right:13px;height:2px;background:var(--white);border-radius:2px;transition:transform .4s var(--ease),top .4s var(--ease)}
.burger i:first-child{top:18px}.burger i:last-child{top:25px}
.burger[aria-expanded="true"] i:first-child{top:21px;transform:rotate(45deg)}
.burger[aria-expanded="true"] i:last-child{top:21px;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:45;background:radial-gradient(circle at 50% 30%,rgba(155,13,87,.4),var(--black) 70%);display:flex;flex-direction:column;justify-content:center;padding:90px 24px 40px;gap:8px;
  clip-path:circle(0 at calc(100% - 38px) 36px);transition:clip-path .8s var(--ease-io);visibility:hidden}
.menu.is-open{clip-path:circle(150% at calc(100% - 38px) 36px);visibility:visible}
.menu a{font-weight:900;font-size:clamp(44px,13vw,80px);line-height:1.05;letter-spacing:-.04em;color:var(--white);opacity:0;transform:translateY(30px);transition:opacity .6s,transform .6s var(--ease),color .3s}
.menu.is-open a{opacity:1;transform:none}
.menu.is-open a:nth-child(2){transition-delay:.06s}.menu.is-open a:nth-child(3){transition-delay:.12s}.menu.is-open a:nth-child(4){transition-delay:.18s}
.menu a:active,.menu a:hover{color:var(--pink-hot);text-shadow:var(--glow)}
.menu__foot{margin-top:auto;font:500 11px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;display:grid;place-items:center;background:#030104}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%}
.hero__vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 80% 70% at 50% 45%,transparent 40%,rgba(0,0,0,.75) 100%),linear-gradient(to bottom,rgba(0,0,0,.4),transparent 22%,transparent 88%,rgba(5,3,6,.85))}

.sign{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;margin-top:-6vh;transform:translate3d(0,var(--sy,0px),0) scale(var(--ss,1));opacity:var(--so,1);will-change:transform}
.sign__crown{width:clamp(110px,14vw,190px);height:auto;margin-bottom:clamp(-6px,-.6vw,-2px);opacity:0;transform:translateY(-40px) rotate(-8deg) scale(.6);filter:drop-shadow(0 0 22px rgba(255,45,149,.55)) drop-shadow(0 10px 30px rgba(246,196,90,.35))}
body.is-live .sign__crown{animation:crownDrop 1.4s var(--ease) .55s forwards,crownBob 5s ease-in-out 2s infinite}
body.is-live.has-show .sign__crown{animation:none;transform:none;opacity:0}
body.is-live.crown-on .sign__crown{animation:crownForm 1.1s var(--ease) forwards,crownBob 5s ease-in-out 1.2s infinite}
@keyframes crownForm{0%{opacity:0;transform:scale(1.25);filter:brightness(3) drop-shadow(0 0 40px #fff)}100%{opacity:1;transform:none;filter:drop-shadow(0 0 22px rgba(255,45,149,.55)) drop-shadow(0 10px 30px rgba(246,196,90,.35))}}
@keyframes crownDrop{60%{transform:translateY(6px) rotate(3deg) scale(1.04);opacity:1}100%{transform:none;opacity:1}}
@keyframes crownBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-1.5deg)}}

.sign__word{margin:0;display:flex;align-items:center;font-weight:900;font-size:clamp(64px,17vw,250px);line-height:.86;letter-spacing:-.045em;text-transform:uppercase;user-select:none}
.sign__gap{width:.22em}
.tube{display:inline-block;color:rgba(255,45,149,.04);-webkit-text-stroke:var(--tw,3px) rgba(255,79,174,.2);paint-order:stroke fill;transition:none}
body.is-live .tube{animation:ignite 1.6s steps(1,end) calc(var(--d) * .11s + .15s) forwards}
body.is-live .tube--fault{animation:ignite 1.6s steps(1,end) .9s forwards,fault 7s steps(1,end) 4s infinite}
:root{--lit-fill:rgba(255,45,149,.16);--lit-stroke:#ffe9f5;--lit-glow:drop-shadow(0 0 2px #ff7ac0) drop-shadow(0 0 10px #ff2d95) drop-shadow(0 0 34px rgba(255,45,149,.85));--off-glow:drop-shadow(0 0 0 transparent) drop-shadow(0 0 0 transparent) drop-shadow(0 0 0 transparent)}
.tube{filter:var(--off-glow)}
@keyframes ignite{
  0%{color:rgba(255,45,149,.04);-webkit-text-stroke-color:rgba(255,79,174,.2);filter:var(--off-glow)}
  8%{color:var(--lit-fill);-webkit-text-stroke-color:var(--lit-stroke);filter:var(--lit-glow)}
  14%{color:rgba(255,45,149,.04);-webkit-text-stroke-color:rgba(255,79,174,.3);filter:var(--off-glow)}
  24%{color:var(--lit-fill);-webkit-text-stroke-color:var(--lit-stroke);filter:var(--lit-glow)}
  30%{color:rgba(255,45,149,.06);-webkit-text-stroke-color:rgba(255,120,190,.5);filter:var(--off-glow)}
  44%,100%{color:var(--lit-fill);-webkit-text-stroke-color:var(--lit-stroke);filter:var(--lit-glow)}
}
@keyframes fault{0%,100%{-webkit-text-stroke-color:var(--lit-stroke);filter:var(--lit-glow)}2%{-webkit-text-stroke-color:rgba(255,79,174,.3);filter:var(--off-glow)}3%{-webkit-text-stroke-color:var(--lit-stroke);filter:var(--lit-glow)}4.5%{-webkit-text-stroke-color:rgba(255,79,174,.3);filter:var(--off-glow)}6%{-webkit-text-stroke-color:var(--lit-stroke);filter:var(--lit-glow)}}
.sign__word{--tw:clamp(2px,.3vw,4px)}

.marquee-box{position:relative;margin-top:clamp(14px,2vw,28px);padding:clamp(12px,1.5vw,20px) clamp(24px,3.4vw,48px);border-radius:14px;background:linear-gradient(180deg,#1a0712,#0b0308);
  box-shadow:0 0 0 2px #2a0b1c,0 0 0 4px rgba(255,79,174,.15),0 20px 60px -10px rgba(255,45,149,.35);opacity:0;transform:scale(.9)}
body.is-live .marquee-box{animation:boxIn .9s var(--ease) 1.25s forwards}
@keyframes boxIn{to{opacity:1;transform:none}}
.marquee-box__text{display:block;font-weight:800;font-size:clamp(14px,2.1vw,30px);letter-spacing:.5em;margin-right:-.5em;text-transform:uppercase;color:var(--white);text-shadow:0 0 10px rgba(255,79,174,.9),0 0 30px rgba(255,45,149,.6)}
.bulb{position:absolute;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:#4a1830;box-shadow:inset 0 -1px 2px rgba(0,0,0,.6);transition:background .08s,box-shadow .08s}
.bulb.on{background:#fff6d8;box-shadow:0 0 4px #fff,0 0 10px var(--gold),0 0 18px rgba(255,45,149,.9)}

.hero__copy{position:absolute;z-index:3;left:0;right:0;bottom:clamp(86px,13vh,140px);display:flex;flex-direction:column;align-items:center;gap:22px;padding:0 16px;text-align:center;opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
body.is-live .hero__copy{opacity:var(--co,1);transform:translateY(var(--cy,0px));transition-delay:1.9s}
body.is-scrolled .hero__copy{transition-delay:0s;transition-duration:.2s}
.hero__tag{margin:0;font-weight:600;font-size:clamp(18px,2vw,26px);letter-spacing:-.01em;color:var(--white)}
.hero__tag em{font-size:1.22em}
.hero__cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

.hero__laurel{position:absolute;z-index:2;top:50%;display:flex;align-items:center;gap:6px;color:var(--gold);opacity:0;transition:opacity 1.2s ease 2.4s}
body.is-live .hero__laurel{opacity:.85}
.hero__laurel svg{width:46px;height:auto;filter:drop-shadow(0 0 8px rgba(246,196,90,.4))}
.hero__laurel p{margin:0;font:500 10px/1.5 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:#f9dca0}
.hero__laurel em{font-family:var(--serif);font-size:15px;letter-spacing:0;text-transform:none;color:var(--pink-soft)}
.hero__laurel--l{left:max(24px,4vw);transform:translateY(-50%)}
.hero__laurel--r{right:max(24px,4vw);transform:translateY(-50%);flex-direction:row-reverse;text-align:right}

.hero__ticker{position:absolute;z-index:3;left:max(16px,calc((100vw - 1400px)/2));bottom:28px;display:flex;gap:12px;align-items:center;font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);opacity:0;transition:opacity 1s 2.6s}
body.is-live .hero__ticker{opacity:1}
.hero__ticker .dot{width:6px;height:6px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink);animation:blink 1.4s steps(1) infinite}
@keyframes blink{50%{opacity:.2}}
.hero__scroll{position:absolute;z-index:3;right:max(16px,calc((100vw - 1400px)/2));bottom:24px;display:flex;align-items:center;gap:12px;font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);opacity:0;transition:opacity 1s 2.8s}
body.is-live .hero__scroll{opacity:1}
.hero__scroll i{width:1px;height:46px;background:linear-gradient(var(--pink),transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:#fff;animation:drip 1.8s var(--ease) infinite}
@keyframes drip{to{top:110%}}

/* =========================================================
   REEL
   ========================================================= */
.reel{position:relative;height:300vh;background:var(--black)}
.reel__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;place-items:center;--p:0}
.reel__beam{position:absolute;left:50%;bottom:-10%;width:140vw;height:120vh;transform:translateX(-50%);pointer-events:none;
  background:conic-gradient(from 180deg at 50% 100%,transparent 168deg,rgba(255,79,174,.10) 176deg,rgba(255,240,248,.16) 180deg,rgba(255,79,174,.10) 184deg,transparent 192deg);
  opacity:calc(.3 + var(--p) * .7);mix-blend-mode:screen;filter:blur(6px)}
.reel__screen{position:relative;width:min(92vw,calc(78vh * 16 / 9));aspect-ratio:16/9;border-radius:calc(28px - var(--p) * 24px);overflow:hidden;background:#000;
  transform:perspective(1400px) rotateX(calc((1 - var(--p)) * 18deg)) scale(calc(.42 + var(--p) * .58));
  box-shadow:0 0 0 1px rgba(255,79,174,.4),0 0 calc(30px + var(--p) * 60px) rgba(255,45,149,calc(.2 + var(--p) * .25)),0 60px 120px -30px rgba(0,0,0,.9)}
.reel__stage::before{content:"";position:absolute;inset:0 0 auto;height:28vh;z-index:5;background:linear-gradient(var(--black),transparent);pointer-events:none}
.reel__screen video{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.05)}
.reel__scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);mix-blend-mode:multiply;pointer-events:none}
.reel__screen::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55));pointer-events:none}
.reel__curtain{position:absolute;top:0;bottom:0;width:52%;z-index:3;pointer-events:none;
  background:repeating-linear-gradient(90deg,#1a0410 0,#3a0822 3.2%,#6b0f3e 5%,#3a0822 6.8%,#1a0410 10%);box-shadow:inset 0 0 120px #000}
.reel__curtain::after{content:"";position:absolute;top:0;bottom:0;width:6px;background:var(--pink);box-shadow:0 0 20px var(--pink),0 0 60px var(--pink)}
.reel__curtain--l{left:0;transform:translateX(calc(var(--c) * -100%))}
.reel__curtain--l::after{right:0}
.reel__curtain--r{right:0;transform:translateX(calc(var(--c) * 100%))}
.reel__curtain--r::after{left:0}
.reel__stage{--c:0}
.reel__caption{position:absolute;z-index:4;left:0;right:0;text-align:center;padding:0 16px;pointer-events:none}
.reel__caption h2{text-shadow:0 4px 40px rgba(0,0,0,.9)}
.reel__caption--a{top:12vh;opacity:calc(1 - var(--p) * 2.4)}
.reel__caption--b{bottom:9vh;opacity:0;transform:translateY(30px);transition:opacity .6s,transform .6s var(--ease)}
.reel__caption--b.is-on{opacity:1;transform:none;pointer-events:auto}
.reel__caption--b h2{font-size:clamp(34px,5.4vw,76px);margin-bottom:26px}

/* ---------- ticker ---------- */
.ticker-band{overflow:hidden;padding:50px 0;margin:-50px 0;position:relative;z-index:2}
.ticker{position:relative;overflow:hidden;padding:22px 0;background:var(--pink);color:#14000b;transform:rotate(-1.6deg);margin:-30px -2vw 0;width:104vw;z-index:2;box-shadow:0 0 60px rgba(255,45,149,.55)}
.ticker::before,.ticker::after{content:"";position:absolute;left:0;right:0;height:6px;background:radial-gradient(circle,#fff8e0 1.6px,transparent 2.2px) 0 0/16px 6px;animation:chase .5s steps(2) infinite}
.ticker::before{top:4px}.ticker::after{bottom:4px;animation-direction:reverse}
@keyframes chase{to{background-position:16px 0}}
.ticker__track{display:flex;width:max-content;animation:scrollx 40s linear infinite}
.ticker__track span{font-weight:900;font-size:clamp(22px,3vw,38px);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap;padding:0 22px;display:flex;align-items:center;gap:44px}
.ticker__track span::after{content:"";width:22px;height:22px;background:url(/img/crown-sm.png) center/contain no-repeat;filter:drop-shadow(0 0 2px #000)}
@keyframes scrollx{to{transform:translateX(-50%)}}

/* =========================================================
   HEADLINER
   ========================================================= */
.headliner{padding:clamp(110px,14vw,190px) 0 clamp(70px,9vw,120px);position:relative}
.headliner::before{content:"";position:absolute;right:-10vw;top:10%;width:60vw;height:60vw;background:radial-gradient(circle,rgba(255,45,149,.18),transparent 65%);pointer-events:none}
.headliner__grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(32px,6vw,90px);align-items:center}
.headliner h2{font-size:clamp(44px,6.4vw,92px)}
.feat{display:block;font-family:var(--serif);font-style:italic;font-weight:400;color:var(--pink-hot);font-size:.5em;letter-spacing:0;margin-top:8px}
.credits{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:12px 36px;margin:28px 0 34px;padding:20px 0;border-block:1px solid var(--line)}
.credits dt{font:500 10px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.credits dd{margin:0;font-weight:600}
.headliner__poster{position:relative;aspect-ratio:16/10;border-radius:22px;overflow:hidden;background:#000;transform:perspective(1200px) rotateY(-8deg) rotateX(3deg);transition:transform .9s var(--ease);
  box-shadow:0 0 0 1px rgba(255,79,174,.35),0 40px 100px -30px rgba(255,45,149,.6),0 0 80px rgba(255,45,149,.18)}
.headliner__poster:hover{transform:perspective(1200px) rotateY(0) rotateX(0) scale(1.01)}
.headliner__poster video{width:100%;height:100%;object-fit:cover}
.headliner__frame{position:absolute;inset:12px;border:1px solid rgba(255,255,255,.18);border-radius:14px;pointer-events:none}
.headliner__play{position:absolute;left:50%;top:50%;width:96px;height:96px;margin:-48px 0 0 -48px;border-radius:50%;display:grid;place-items:center;background:rgba(255,45,149,.9);box-shadow:0 0 0 10px rgba(255,45,149,.2),0 0 60px var(--pink);transition:transform .5s var(--ease)}
.headliner__play svg{width:34px;fill:#14000b;margin-left:5px}
.headliner__poster:hover .headliner__play{transform:scale(1.1)}

/* =========================================================
   PROGRAMME GRID
   ========================================================= */
.programme{padding:clamp(70px,9vw,130px) 0}
.section-head{max-width:860px;margin-bottom:40px}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:40px}
.chip{height:44px;padding:0 18px;border-radius:999px;font-weight:600;font-size:14px;color:var(--muted);box-shadow:0 0 0 1px rgba(255,255,255,.14) inset;display:inline-flex;align-items:center;gap:10px;transition:all .3s}
.chip b{font:500 11px/1 var(--mono);color:var(--faint)}
.chip:hover{color:var(--white);box-shadow:0 0 0 1px var(--pink) inset}
.chip.is-on{background:var(--pink);color:#14000b;box-shadow:0 0 30px rgba(255,45,149,.5)}
.chip.is-on b{color:#14000b}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:clamp(16px,2vw,28px)}
.card{position:relative;display:block;text-align:left;border-radius:18px;background:var(--black-2);transform-style:preserve-3d;transition:transform .5s var(--ease),opacity .5s,box-shadow .5s;
  box-shadow:0 0 0 1px rgba(255,255,255,.07);transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0))}
.card.is-hidden{display:none}
.card>span,.card__body>span{display:block}
.card:hover{--ty:-6px;box-shadow:0 0 0 1px rgba(255,79,174,.6),0 30px 70px -20px rgba(255,45,149,.55),0 0 50px rgba(255,45,149,.2)}
.card__media{position:relative;aspect-ratio:16/9;border-radius:18px 18px 0 0;overflow:hidden;background:#000}
.card__media img,.card__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),opacity .4s}
.card__media video{opacity:0}
.card.is-playing .card__media video{opacity:1}
.card:hover .card__media img,.card:hover .card__media video{transform:scale(1.06)}
.card--vertical .card__media img,.card--vertical .card__media video{object-fit:contain;background:radial-gradient(circle,#2a0b1c,#000)}
.card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,3,6,.85),transparent 50%),linear-gradient(to bottom,rgba(5,3,6,.55),transparent 28%);pointer-events:none}
.card__glare{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,180,220,.25),transparent 45%);opacity:0;transition:opacity .4s}
.card:hover .card__glare{opacity:1}
.card__no{position:absolute;z-index:2;left:16px;top:14px;font:500 11px/1 var(--mono);letter-spacing:.2em;color:var(--white);text-shadow:0 1px 6px #000}
.card__dur{position:absolute;z-index:2;right:14px;top:12px;font:500 11px/1 var(--mono);letter-spacing:.1em;padding:6px 8px;border-radius:6px;background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}
.card__body{padding:18px 20px 22px;position:relative}
.card__kind{font:500 10px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--pink-hot)}
.card__title{font-weight:800;font-size:24px;line-height:1.1;letter-spacing:-.02em;margin:10px 0 8px}
.card__title small{font-family:var(--serif);font-style:italic;font-weight:400;font-size:.8em;color:var(--pink-soft);letter-spacing:0;margin-left:6px}
.card__log{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.card__ticket{position:absolute;left:0;right:0;top:-1px;height:2px;background:repeating-linear-gradient(90deg,rgba(255,79,174,.5) 0 6px,transparent 6px 12px)}

/* =========================================================
   HOUSE
   ========================================================= */
.house{padding:clamp(80px,10vw,150px) 0;background:radial-gradient(ellipse 60% 50% at 20% 50%,rgba(155,13,87,.22),transparent 70%)}
.house__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,110px);align-items:center}
.house__crest{position:relative;aspect-ratio:1;max-width:520px;width:100%;justify-self:center}
.house__crest img{position:relative;width:100%;height:auto;border-radius:50%;box-shadow:0 0 120px rgba(255,45,149,.35)}
.house__ring{position:absolute;inset:-3%;border-radius:50%;background:conic-gradient(from 0deg,transparent,var(--pink),transparent 30%,transparent 50%,var(--gold),transparent 80%);animation:spin 9s linear infinite;filter:blur(18px);opacity:.6}
@keyframes spin{to{transform:rotate(360deg)}}
.house__copy p{color:var(--muted)}
.house h2{font-size:clamp(40px,5.2vw,76px)}
.house__crest img{box-shadow:0 0 90px rgba(255,45,149,.3)}
.stats{list-style:none;padding:0;margin:34px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border-radius:18px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.stats li{background:var(--black);padding:22px 22px 20px}
.stats b{display:block;font-weight:900;font-size:clamp(40px,4.6vw,64px);line-height:1;letter-spacing:-.04em;color:var(--white);text-shadow:0 0 24px rgba(255,45,149,.5)}
.stats span{font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}

/* =========================================================
   COMMISSION
   ========================================================= */
.commission{padding:clamp(80px,10vw,150px) 0;position:relative}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:60px}
.service{position:relative;padding:28px 24px 30px;border-radius:20px;background:linear-gradient(180deg,var(--black-3),var(--black-2));box-shadow:0 0 0 1px rgba(255,255,255,.07);overflow:hidden;transition:box-shadow .5s,transform .5s var(--ease)}
.service::before{content:"";position:absolute;left:-30%;right:-30%;top:-60%;height:100%;background:radial-gradient(circle,rgba(255,45,149,.35),transparent 60%);opacity:0;transition:opacity .6s}
.service:hover{transform:translateY(-6px);box-shadow:0 0 0 1px rgba(255,79,174,.55),0 30px 60px -20px rgba(255,45,149,.5)}
.service:hover::before{opacity:1}
.service__no{position:relative;font:500 12px/1 var(--mono);color:var(--pink-hot);letter-spacing:.2em}
.service h3{position:relative;font-weight:800;font-size:22px;line-height:1.15;letter-spacing:-.02em;margin:46px 0 12px}
.service p{position:relative;margin:0;color:var(--muted);font-size:15px}

.slate{list-style:none;margin:0 0 70px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-radius:18px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.slate::before{content:"";grid-column:1/-1;height:22px;background:repeating-linear-gradient(120deg,var(--white) 0 26px,#000 26px 52px);opacity:.9}
.slate li{padding:24px 22px;border-right:1px solid var(--line);background:var(--black-2)}
.slate li:last-child{border-right:0}
.slate span{font:500 10px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--pink-hot)}
.slate b{display:block;font-weight:800;font-size:20px;margin:12px 0 6px}
.slate p{margin:0;color:var(--muted);font-size:14px}

.booking{display:grid;grid-template-columns:300px 1fr;border-radius:24px;overflow:hidden;background:var(--black-2);box-shadow:0 0 0 1px rgba(255,79,174,.35),0 40px 120px -40px rgba(255,45,149,.6)}
.booking__ticket{position:relative;padding:34px 30px;background:var(--pink);color:#14000b;display:flex;flex-direction:column;justify-content:space-between;min-height:260px}
.booking__ticket::after{content:"";position:absolute;right:-10px;top:0;bottom:0;width:20px;background:radial-gradient(circle at 10px 12px,var(--black-2) 7px,transparent 7.5px) 0 0/20px 24px repeat-y}
.booking__admit{margin:0;font:500 12px/1 var(--mono);letter-spacing:.3em;text-transform:uppercase}
.booking__title{margin:0;font-weight:900;font-size:40px;line-height:.95;letter-spacing:-.04em}
.booking__serial{margin:0;font:500 12px/1 var(--mono);letter-spacing:.2em}
.booking__fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:34px clamp(22px,3vw,40px)}
.booking label{display:flex;flex-direction:column;gap:8px}
.booking label.wide{grid-column:1/-1}
.booking label span{font:500 10px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--faint)}
.booking input,.booking select,.booking textarea{width:100%;font:500 16px/1.4 var(--display);color:var(--white);background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px 16px;transition:border-color .3s,box-shadow .3s;color-scheme:dark}
.booking textarea{resize:vertical;min-height:110px}
.booking input:focus,.booking select:focus,.booking textarea:focus{outline:0;border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,45,149,.15),0 0 24px rgba(255,45,149,.2)}
.booking .btn{grid-column:1/-1}
.booking__note{grid-column:1/-1;margin:0;font-size:14px;color:var(--pink-soft);min-height:1em}

/* =========================================================
   FOOTER CREDITS
   ========================================================= */
.credits-roll{position:relative;padding:clamp(90px,12vw,170px) 16px 40px;text-align:center;overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(255,45,149,.16),transparent 70%)}
.credits-roll__fin{font-family:var(--serif);font-style:italic;font-size:clamp(120px,22vw,300px);line-height:.8;color:var(--white);text-shadow:var(--glow)}
.credits-roll__fin span{color:var(--pink)}
.credits-roll__list{margin:60px auto 70px;display:grid;gap:18px}
.credits-roll__list p{margin:0;font-weight:800;font-size:clamp(18px,2vw,24px)}
.credits-roll__list span{display:block;font:500 10px/1 var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.credits-roll__logo{width:min(420px,80vw);height:auto;margin:0 auto 50px;opacity:.95}
.credits-roll__base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;width:var(--wrap);margin:0 auto;padding-top:26px;border-top:1px solid var(--line);font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.credits-roll__base p{margin:0}
.credits-roll__base a{color:var(--pink-hot)}

/* =========================================================
   THEATRE
   ========================================================= */
.theatre{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:clamp(16px,4vw,60px);visibility:hidden;pointer-events:none}
.theatre.is-open{visibility:visible;pointer-events:auto}
.theatre__house{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(60,4,32,.9),#000 70%);opacity:0;transition:opacity .7s ease}
.theatre.is-open .theatre__house{opacity:1}
.theatre__stage{position:relative;width:min(1200px,100%,calc((100svh - 220px) * 16 / 9));opacity:0;transform:translateY(30px) scale(.96);transition:opacity .6s .1s,transform .8s var(--ease) .1s}
.theatre.is-open .theatre__stage{opacity:1;transform:none}
.theatre__screen{position:relative;aspect-ratio:16/9;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,79,174,.4),0 0 120px rgba(255,45,149,.35)}
.theatre__screen video{width:100%;height:100%;background:#000}
.theatre__curtain{position:absolute;top:0;bottom:0;width:50.5%;background:repeating-linear-gradient(90deg,#1a0410 0,#3a0822 3%,#6b0f3e 5%,#3a0822 7%,#1a0410 10%);transition:transform 1.3s var(--ease-io) .35s;pointer-events:none;box-shadow:inset 0 0 80px #000}
.theatre__curtain--l{left:0}.theatre__curtain--r{right:0}
.theatre.is-open .theatre__curtain--l{transform:translateX(-101%)}
.theatre.is-open .theatre__curtain--r{transform:translateX(101%)}
.theatre__meta{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:22px}
.theatre__meta h3{margin:0 0 6px;font-weight:900;font-size:clamp(26px,3.2vw,42px);letter-spacing:-.03em;line-height:1}
.theatre__meta p{margin:0;color:var(--muted);max-width:62ch}
.theatre__meta .eyebrow{margin-bottom:12px}
.theatre__nav{display:flex;gap:10px;flex:none}
.theatre__nav button,.theatre__close{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 1px rgba(255,255,255,.2) inset;transition:box-shadow .3s,background .3s}
.theatre__nav button:hover,.theatre__close:hover{background:rgba(255,45,149,.15);box-shadow:0 0 0 1px var(--pink) inset,0 0 20px rgba(255,45,149,.4)}
.theatre__nav svg{width:22px;fill:none;stroke:var(--white);stroke-width:2}
.theatre__close{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;z-index:2}
.theatre__close i{position:absolute;width:20px;height:2px;background:var(--white);transform:rotate(45deg)}
.theatre__close i+i{transform:rotate(-45deg)}

/* ---------- soundtrack jukebox ---------- */
.jukebox{position:fixed;z-index:60;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));width:min(380px,calc(100vw - 32px));border-radius:18px;padding:12px;
  background:linear-gradient(180deg,rgba(26,7,18,.92),rgba(8,3,7,.94));backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);
  box-shadow:0 0 0 1px rgba(255,79,174,.55),0 0 30px rgba(255,45,149,.45),0 30px 80px -20px rgba(0,0,0,.9);
  opacity:0;visibility:hidden;transform:translateY(24px) scale(.96);transform-origin:100% 100%;transition:opacity .5s var(--ease),transform .6s var(--ease),visibility .5s}
.jukebox.is-open{opacity:1;visibility:visible;transform:none}
.jukebox__head{display:flex;align-items:center;gap:12px;padding:4px 4px 12px}
.jukebox__head p{margin:0;flex:1;min-width:0;font-weight:800;font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jukebox__head p span{display:block;font:500 9px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--pink-hot);margin-bottom:6px}
.jukebox__head em{font-size:15px}
.jukebox__eq{display:flex;gap:3px;align-items:flex-end;height:22px;width:22px;flex:none}
.jukebox__eq i{flex:1;height:4px;background:var(--pink);border-radius:1px;box-shadow:0 0 8px var(--pink)}
.jukebox.is-playing .jukebox__eq i{animation:eq .8s ease-in-out infinite}
.jukebox.is-playing .jukebox__eq i:nth-child(2){animation-delay:-.25s}.jukebox.is-playing .jukebox__eq i:nth-child(3){animation-delay:-.55s}.jukebox.is-playing .jukebox__eq i:nth-child(4){animation-delay:-.1s}
.jukebox__close{position:relative;flex:none;width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.16) inset;transition:box-shadow .3s}
.jukebox__close:hover{box-shadow:0 0 0 1px var(--pink) inset}
.jukebox__close i{position:absolute;left:10px;right:10px;top:16px;height:2px;background:var(--white);transform:rotate(45deg)}
.jukebox__close i+i{transform:rotate(-45deg)}
.jukebox__player{position:relative;border-radius:12px;overflow:hidden;min-height:80px;background:#000}
.jukebox__player iframe{display:block;width:100%;border:0;border-radius:12px}
.sound.is-on{color:var(--pink-hot);box-shadow:0 0 0 1px var(--pink) inset,0 0 18px rgba(255,45,149,.35)}
.sound.is-on .sound__bars i{animation:eq .9s ease-in-out infinite}
.sound.is-on .sound__bars i:nth-child(2){animation-delay:-.3s}.sound.is-on .sound__bars i:nth-child(3){animation-delay:-.6s}.sound.is-on .sound__bars i:nth-child(4){animation-delay:-.15s}
@media (max-width:620px){.jukebox{left:16px;right:16px;width:auto}}

/* ---------- cursor ---------- */
.cursor{position:fixed;left:0;top:0;z-index:120;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;pointer-events:none;background:var(--pink);box-shadow:0 0 12px var(--pink),0 0 30px rgba(255,45,149,.6);display:grid;place-items:center;
  transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .3s,opacity .3s;opacity:0;mix-blend-mode:normal}
.cursor.is-on{opacity:1}
.cursor.is-big{width:86px;height:86px;margin:-43px 0 0 -43px;background:rgba(255,45,149,.92)}
.cursor__label{font:800 12px/1 var(--display);letter-spacing:.14em;text-transform:uppercase;color:#14000b;opacity:0;transition:opacity .2s}
.cursor.is-big .cursor__label{opacity:1}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- grain ---------- */
.grain{position:fixed;inset:-50%;z-index:70;pointer-events:none;opacity:.07;background-image:var(--grain);animation:grain .6s steps(4) infinite}
@keyframes grain{25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-1%,3%)}}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1.1s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .nav__links{display:none}
  .burger{display:block}
  .services{grid-template-columns:repeat(2,1fr)}
  .hero__laurel{display:none}
}
@media (max-width:860px){
  .headliner__grid,.house__grid{grid-template-columns:1fr}
  .headliner__poster{transform:none;order:-1}
  .house__crest{max-width:340px}
  .slate{grid-template-columns:repeat(2,1fr)}
  .slate li:nth-child(3){border-right:0}
  .slate li:nth-child(n+3){border-top:1px solid var(--line)}
  .booking{grid-template-columns:1fr}
  .booking__ticket{min-height:0;gap:18px}
  .booking__ticket::after{display:none}
}
@media (max-width:620px){
  .nav{height:64px}
  .nav .btn--small,.sound__label{display:none}
  .sound{width:42px;padding:0;justify-content:center}
  .nav__brand{font-size:17px}
  .nav__brand img{width:32px}
  .sign{margin-top:-10vh}
  .sign__word{font-size:clamp(58px,21vw,120px)}
  .tube{-webkit-text-stroke-width:1.5px}
  .marquee-box{padding:12px 22px}
  .marquee-box__text{letter-spacing:.4em;margin-right:-.4em}
  .hero__copy{bottom:96px;gap:18px}
  .hero__cta .btn{--h:50px;padding:0 20px;font-size:14px}
  .hero__ticker{left:16px;right:auto;bottom:22px;font-size:9px;gap:8px}
  .hero__ticker span:nth-child(n+4){display:none}
  .hero__scroll{right:16px;bottom:16px}
  .hero__scroll span{display:none}
  .reel{height:220vh}
  .reel__screen{width:94vw}
  .reel__caption--a{top:16vh}
  .reel__caption--b{bottom:12vh}
  .services{grid-template-columns:1fr}
  .service h3{margin-top:26px}
  .credits{grid-template-columns:repeat(2,auto)}
  .booking__fields{grid-template-columns:1fr}
  .stats li{padding:18px 16px}
  .theatre{padding:0 0 env(safe-area-inset-bottom)}
  .theatre__stage{width:100%}
  .theatre__screen{border-radius:0}
  .theatre__meta{padding:0 16px;flex-direction:column;align-items:flex-start}
  .credits-roll__base{justify-content:center;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}
