/* ============================================================================
   06 — PREMIERE  ·  Film Opening Night  ·  Entertainment / Marquee
   ============================================================================ */
:root{
  --ink:#08050a; --ink-2:#120a0f; --ink-3:#1c1014;
  --paper:#fbf7ee; --paper-mute:#c0a987; --paper-faint:#7a6957;
  --gold:#ffe09a; --gold-2:#d4a559; --gold-deep:#7a4222;
  --tungsten:#ffb86b; --maroon:#5a1a22; --maroon-2:#3a0e16;
  --silver:#cfd0d4; --line:rgba(255,224,154,.14);
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --serif:'Fraunces',Georgia,serif;
  --display:'Cinzel','Fraunces',Georgia,serif;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.14,1,.34,1);
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%}
html{background:radial-gradient(120% 90% at 50% 35%,#1c0e10 0%,#08050a 65%,#02010a 100%);color:var(--paper);font-family:var(--sans);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{overflow:hidden;font-size:calc(15px*var(--res-scale-text,1));line-height:1.55;background:transparent}
body.is-locked{overflow:hidden}
::selection{background:var(--gold);color:var(--ink)}

button,a{font-family:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{text-decoration:none}

#fxCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block;background:transparent;pointer-events:none}

/* ----- HUD overlays ------------------------------------------------------ */
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 50%,transparent 45%,rgba(0,0,0,.7) 100%)}
.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.09;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='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 0.85 0 0 0 0 0.6 0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.scanlines{position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.32;mix-blend-mode:overlay;background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.16) 2px 3px),linear-gradient(180deg,rgba(255,184,107,.04),transparent 50%,rgba(255,184,107,.03));animation:scanDrift 8s linear infinite}
@keyframes scanDrift{from{transform:translateY(0)}to{transform:translateY(3px)}}

.hud-corners{position:fixed;inset:32px;z-index:4;pointer-events:none}
.bracket{position:absolute;width:20px;height:20px;border-color:rgba(255,184,107,.55);box-shadow:0 0 10px rgba(255,184,107,.25)}
.bracket--tl{top:-1px;left:-1px;border-top:1.5px solid;border-left:1.5px solid}
.bracket--tr{top:-1px;right:-1px;border-top:1.5px solid;border-right:1.5px solid}
.bracket--bl{bottom:-1px;left:-1px;border-bottom:1.5px solid;border-left:1.5px solid}
.bracket--br{bottom:-1px;right:-1px;border-bottom:1.5px solid;border-right:1.5px solid}

.hud-rail{position:fixed;left:64px;right:64px;display:flex;align-items:center;gap:18px;z-index:4;pointer-events:none;font:500 10px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--paper-mute);opacity:.78}
.hud-rail--top{top:42px}
.hud-rail--bottom{bottom:42px}
.hud-rail__line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,184,107,.3),transparent)}
.hud-rail .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px var(--gold);margin-right:8px;animation:pulse 3.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}

.cypher-rail{position:fixed;bottom:14px;left:0;right:0;z-index:4;height:18px;overflow:hidden;pointer-events:none;opacity:.24;mix-blend-mode:difference}
.cypher-rail__row{display:inline-flex;white-space:nowrap;font:300 10px/1 var(--mono);letter-spacing:.18em;color:var(--paper);animation:cypherSlide 90s linear infinite}
@keyframes cypherSlide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ----- Brand fixed (TL) -------------------------------------------------- */
.brand-fixed{position:fixed;top:34px;left:64px;z-index:50;display:flex;align-items:center;gap:12px;font:600 11px/1 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--paper)}
.brand-fixed__mark{width:24px;height:24px;filter:drop-shadow(0 0 8px rgba(255,224,154,.45))}
.brand-fixed__name{color:var(--paper)}

/* ----- Sound toggle (TR) ------------------------------------------------- */
.sound-toggle{position:fixed;top:34px;right:64px;z-index:50;display:flex;align-items:center;gap:14px;font:500 10px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--paper-mute);transition:color .3s var(--ease)}
.sound-toggle:hover{color:var(--gold)}
.sound-toggle__bars{width:60px;height:14px;color:var(--gold);opacity:.55;transition:opacity .3s var(--ease)}
.sound-toggle.is-on .sound-toggle__bars{opacity:1;animation:wave 1.6s ease-in-out infinite}
.sound-toggle.is-on{color:var(--gold)}
@keyframes wave{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.85)}}

/* ----- Scene indicator (BL) --------------------------------------------- */
.scene-indicator{position:fixed;bottom:38px;left:64px;z-index:50;display:flex;align-items:center;gap:14px;font:500 11px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--paper-mute)}
.scene-indicator__num{color:var(--gold);font-weight:600}
.scene-indicator__label{color:var(--paper)}
.scene-indicator__bar{position:relative;width:120px;height:1.5px;background:rgba(255,224,154,.18);overflow:hidden}
.scene-indicator__fill{position:absolute;inset:0;width:16.66%;background:linear-gradient(90deg,var(--gold-deep),var(--gold));transition:width .6s var(--ease);transform-origin:left;box-shadow:0 0 10px rgba(255,224,154,.4)}

/* ----- Scroll cue (BR) -------------------------------------------------- */
.scroll-cue{position:fixed;bottom:38px;right:64px;z-index:50;display:flex;flex-direction:column;align-items:center;gap:8px;font:500 10px/1 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--paper-mute);transition:opacity .6s var(--ease)}
.scroll-cue.is-hidden{opacity:0;pointer-events:none}
.scroll-cue .arrow{font-size:14px;color:var(--gold);animation:nudge 2s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

/* ============================================================================
   DECK + SCENES
   ============================================================================ */
.deck{position:relative;z-index:5;height:100svh;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none}
.deck::-webkit-scrollbar{display:none}
.scene{scroll-snap-align:start;min-height:100svh;display:flex;align-items:center;padding:clamp(96px,10vh,140px) clamp(28px,5vw,120px);position:relative}
.scene__inner{width:100%;max-width:1280px;margin:0 auto;position:relative;z-index:1}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,96px);align-items:center}
.two-col--rev{grid-template-columns:.9fr 1.1fr}
.center-col{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}

/* Per-scene readability gradient */
.scene--hero::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(2,1,5,.78) 0%,rgba(8,5,10,.5) 35%,rgba(8,5,10,.18) 60%,transparent 90%);pointer-events:none}
.scene--reviews::before,.scene--trailer::before,.scene--showtimes::before,.scene--tix::before,.scene--footer::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(2,1,5,.5) 0%,rgba(2,1,5,.78) 50%,rgba(2,1,5,.92) 100%);pointer-events:none}

/* Section labels */
.scene__label{display:inline-flex;align-items:center;gap:10px;font:500 11px/1 var(--mono);letter-spacing:.34em;text-transform:uppercase;color:var(--paper-mute);margin-bottom:clamp(20px,2vw,38px)}
.scene__label::before{content:'[';color:var(--paper-faint)}
.scene__label::after{content:']';color:var(--paper-faint)}
.scene__label .ord{color:var(--gold)}

/* Display type — Cinzel serif, classical title */
.display{font-family:var(--display);font-weight:600;font-size:clamp(58px,9.5vw,168px);line-height:.92;letter-spacing:.005em;color:var(--paper);background:linear-gradient(180deg,#fbf7ee 0%,#ffe09a 55%,#d4a559 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 80px rgba(255,224,154,.18)}
.display--md{font-size:clamp(44px,6.4vw,100px);font-weight:600}
.display.center{text-align:center}
.lede{margin-top:clamp(20px,2vw,32px);max-width:640px;font-size:clamp(15px,1.2vw,21px);line-height:1.55;color:var(--paper-mute);font-weight:300;font-family:var(--serif);font-style:italic}
.copy{margin-top:18px;max-width:520px;font-size:clamp(14px,1.05vw,18px);line-height:1.6;color:var(--paper-mute);font-weight:300}
.copy.center{margin-left:auto;margin-right:auto}

/* Letter-reveal */
[data-reveal]{opacity:0;transform:translateY(28px);filter:blur(10px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease),filter 1.1s var(--ease);transition-delay:var(--rd,0ms)}
[data-reveal].is-visible{opacity:1;transform:translateY(0);filter:blur(0)}

/* Hero meta chips */
.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}
.meta-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;font:500 10px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--paper-mute);background:rgba(28,16,20,.55);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:2px}
.meta-chip i{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold)}

/* Marquee bulb row at top of hero */
.marquee-row{display:flex;gap:14px;margin-bottom:28px;justify-content:flex-start}
.marquee-bulb{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px rgba(255,224,154,.7),0 0 24px rgba(255,184,107,.4);animation:bulb 1.6s ease-in-out infinite}
.marquee-bulb:nth-child(1){animation-delay:0s}
.marquee-bulb:nth-child(2){animation-delay:.2s}
.marquee-bulb:nth-child(3){animation-delay:.4s}
.marquee-bulb:nth-child(4){animation-delay:.6s}
.marquee-bulb:nth-child(5){animation-delay:.8s}
.marquee-bulb:nth-child(6){animation-delay:1s}
.marquee-bulb:nth-child(7){animation-delay:1.2s}
@keyframes bulb{0%,100%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3);box-shadow:0 0 18px rgba(255,224,154,.95),0 0 36px rgba(255,184,107,.55)}}

/* ============================================================================
   REVIEWS GRID
   ============================================================================ */
.reviews-grid{margin-top:clamp(28px,3vw,56px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,32px)}
.review{display:flex;flex-direction:column;gap:14px;padding:32px 26px;background:linear-gradient(160deg,rgba(28,16,20,.7) 0%,rgba(8,5,10,.55) 100%);border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(14px) saturate(140%);box-shadow:0 30px 70px -25px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,224,154,.08)}
.review__stars{font-size:18px;letter-spacing:.16em;color:var(--gold);text-shadow:0 0 12px rgba(255,224,154,.4)}
.review__quote{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(17px,1.4vw,22px);line-height:1.45;color:var(--paper);position:relative;padding-left:14px;border-left:2px solid var(--gold-2)}
.review__cite{display:block;font:500 11px/1.4 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--paper-faint);margin-top:auto;font-style:normal}

/* ============================================================================
   REEL CARD (in trailer scene)
   ============================================================================ */
.reel-card{position:relative;display:flex;flex-direction:column;gap:14px;max-width:480px;margin:0 auto}
.reel-card__frame{display:grid;grid-template-rows:14px 1fr 14px;background:#0a060a;border:1px solid rgba(255,184,107,.24);border-radius:6px;overflow:hidden;box-shadow:0 40px 90px -25px rgba(120,40,20,.4),inset 0 1px 0 rgba(255,184,107,.1)}
.reel-card__sprocket{display:flex;align-items:center;justify-content:space-around;background:linear-gradient(180deg,#04020a,#02010a);padding:0 8px}
.reel-card__sprocket--top{border-bottom:1px solid rgba(255,184,107,.16)}
.reel-card__sprocket--bottom{border-top:1px solid rgba(255,184,107,.16)}
.reel-card__sprocket span{display:block;width:7px;height:7px;background:#1a0d0a;border-radius:1.5px;box-shadow:inset 0 1px 0 rgba(0,0,0,.6)}
.reel-card__pane{aspect-ratio:2.39/1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,#1a0a10 0%,#06020a 100%);overflow:hidden}
.reel-card__beam{position:absolute;inset:-20% -50%;background:radial-gradient(40% 60% at 50% 35%,rgba(255,224,154,.32) 0%,rgba(255,184,107,.08) 40%,transparent 70%);animation:beam 4s ease-in-out infinite}
@keyframes beam{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
.reel-card__title{position:relative;font-family:var(--display);font-weight:600;font-size:24px;letter-spacing:.18em;color:var(--gold);text-shadow:0 0 12px rgba(255,224,154,.4)}
.reel-card__sub{position:relative;font:500 11px/1 var(--mono);letter-spacing:.34em;text-transform:uppercase;color:var(--paper-mute);animation:flicker 1.4s ease-in-out infinite}
@keyframes flicker{0%,100%{opacity:.6}50%{opacity:1}}
.reel-card__meta{font:500 10px/1 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--paper-faint);text-align:center}

/* ============================================================================
   CREDITS LIST (in trailer scene)
   ============================================================================ */
.credits{margin-top:32px;list-style:none;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);max-width:440px}
.credits li{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;padding:14px 4px;border-bottom:1px solid var(--line)}
.credits__role{font:500 11px/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--paper-faint)}
.credits__name{font-family:var(--serif);font-size:15px;color:var(--paper);font-style:italic}

/* ============================================================================
   SHOWTIMES TABLE
   ============================================================================ */
.show-table{margin-top:clamp(28px,3vw,48px);display:flex;flex-direction:column;gap:0;max-width:880px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:linear-gradient(180deg,rgba(28,16,20,.55),rgba(8,5,10,.55));backdrop-filter:blur(14px)}
.show-row{display:grid;grid-template-columns:60px 100px 110px 90px 1fr;gap:18px;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line);transition:background .3s var(--ease)}
.show-row:last-child{border-bottom:0}
.show-row:hover{background:rgba(255,184,107,.05)}
.show-row--head{background:rgba(255,184,107,.06);font:600 10px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--paper-mute);padding-top:14px;padding-bottom:14px}
.show-row__day{font:600 13px/1 var(--mono);letter-spacing:.16em;color:var(--gold)}
.show-row__time{font-family:var(--display);font-weight:600;font-size:18px;color:var(--paper);letter-spacing:.04em}
.show-row__fmt{font:500 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--paper-mute)}
.show-row__hall{font:500 12px/1 var(--mono);letter-spacing:.16em;color:var(--paper-mute)}
.show-row__status{justify-self:end;font:600 10px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);padding:7px 12px;border:1px solid rgba(255,224,154,.3);border-radius:2px;background:rgba(255,224,154,.05)}
.show-row__status--sold{color:var(--paper-faint);border-color:rgba(122,105,87,.3);background:rgba(122,105,87,.05)}
.show-row__status--low{color:var(--tungsten);border-color:rgba(255,184,107,.36);background:rgba(255,184,107,.06)}

/* ============================================================================
   PRICING TIERS — velvet ticket cards
   ============================================================================ */
.tiers{margin-top:clamp(32px,4vw,56px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.tier{position:relative;display:flex;flex-direction:column;gap:18px;padding:32px 28px;background:linear-gradient(160deg,rgba(255,184,107,.05) 0%,rgba(28,16,20,.6) 100%);border:1px solid var(--line);border-radius:6px;backdrop-filter:blur(16px) saturate(150%);box-shadow:0 30px 70px -25px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,224,154,.08);transition:transform .5s var(--ease),border-color .5s var(--ease)}
.tier:hover{transform:translateY(-4px);border-color:rgba(255,224,154,.36)}
.tier--feat{background:linear-gradient(160deg,rgba(255,224,154,.14) 0%,rgba(28,16,20,.65) 100%);border-color:rgba(255,224,154,.36)}
.tier--feat:hover{border-color:rgba(255,224,154,.6)}
.tier header{display:flex;align-items:center;gap:10px}
.tier__id{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--gold)}
.tier h3{font-family:var(--display);font-weight:600;font-size:24px;letter-spacing:.04em;color:var(--paper)}
.tier__pill{margin-left:auto;font:500 9px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);padding:5px 8px;border:1px solid rgba(255,224,154,.4);border-radius:2px;background:rgba(255,224,154,.08)}
.tier__price{display:flex;align-items:baseline;gap:6px;color:var(--paper)}
.tier__price span{font-family:var(--display);font-weight:600;font-size:48px;letter-spacing:.02em;background:linear-gradient(180deg,#fbf7ee,#d4a559);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.tier__price small{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-faint)}
.tier__sub{font-size:13px;color:var(--paper-mute);font-weight:300;line-height:1.5;font-family:var(--serif);font-style:italic}
.tier ul{list-style:none;display:flex;flex-direction:column;gap:10px;font-size:13.5px;color:var(--paper);font-weight:300;border-top:1px solid var(--line);padding-top:18px;flex:1}
.tier ul li{line-height:1.45}
.tier__cta{margin-top:8px;padding:14px 20px;font:600 11px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--paper);background:rgba(255,224,154,.05);border:1px solid var(--line);border-radius:3px;transition:all .35s var(--ease)}
.tier__cta:hover{background:rgba(255,224,154,.14);border-color:rgba(255,224,154,.42);transform:translateY(-1px)}
.tier__cta--feat{background:linear-gradient(135deg,#d4a559,#ffe09a);color:var(--ink);border-color:transparent;box-shadow:0 8px 24px -8px rgba(255,224,154,.55)}
.tier__cta--feat:hover{background:linear-gradient(135deg,#ffe09a,#d4a559);box-shadow:0 14px 30px -10px rgba(255,224,154,.75)}

/* ============================================================================
   FOOTER REACH
   ============================================================================ */
.reach-btns{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap;justify-content:center}
.reach-btn{padding:16px 28px;font:600 12px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--paper);border:1px solid var(--line);border-radius:3px;background:rgba(28,16,20,.55);backdrop-filter:blur(14px);transition:all .35s var(--ease)}
.reach-btn:hover{border-color:rgba(255,224,154,.42);background:rgba(255,224,154,.06);transform:translateY(-1px)}
.reach-btn--primary{background:linear-gradient(135deg,#d4a559,#ffe09a);color:var(--ink);border-color:transparent;box-shadow:0 10px 28px -10px rgba(255,224,154,.6)}
.reach-btn--primary:hover{background:linear-gradient(135deg,#ffe09a,#d4a559);box-shadow:0 16px 36px -10px rgba(255,224,154,.8)}
.foot{margin-top:64px;display:flex;align-items:center;gap:18px;font:600 10px/1 var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--paper-faint)}
.foot__line{flex:1;min-width:60px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,224,154,.3),transparent)}

/* ============================================================================
   GATE
   ============================================================================ */
.gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(2,1,5,.94);backdrop-filter:blur(28px);transition:opacity 1s var(--ease),visibility 1s}
.gate.is-open{opacity:0;visibility:hidden;pointer-events:none}
.gate__bg{position:absolute;inset:0;background:radial-gradient(80% 60% at 50% 50%,rgba(255,184,107,.16) 0%,transparent 60%);animation:gateBgPulse 5s ease-in-out infinite}
@keyframes gateBgPulse{0%,100%{opacity:.7}50%{opacity:1}}
.gate__inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:20px;max-width:420px;text-align:center;padding:0 32px}
.gate__loading{font:500 10px/1 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--paper-mute);display:flex;align-items:center;gap:8px}
.gate__loading .dots{display:inline-flex;gap:3px}
.gate__loading .dots i{display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--gold);animation:dots 1.4s ease-in-out infinite}
.gate__loading .dots i:nth-child(2){animation-delay:.2s}
.gate__loading .dots i:nth-child(3){animation-delay:.4s}
@keyframes dots{0%,80%,100%{opacity:.25}40%{opacity:1}}
.gate__mark{width:96px;height:96px;filter:drop-shadow(0 0 26px rgba(255,224,154,.5));animation:markRotate 24s linear infinite}
@keyframes markRotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.gate__title{font-family:var(--display);font-weight:600;font-size:36px;letter-spacing:.22em;color:var(--paper);margin-top:8px;text-shadow:0 0 20px rgba(255,224,154,.25)}
.gate__sub{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--paper-mute);font-weight:300}
.gate__btns{display:flex;gap:12px;margin-top:14px;flex-wrap:wrap;justify-content:center}
.gate__btn{padding:14px 22px;min-height:48px;min-width:160px;font:600 11px/1 var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--paper);border:1px solid var(--line);border-radius:3px;background:rgba(28,16,20,.6);transition:all .35s var(--ease);touch-action:manipulation}
.gate__btn:hover{border-color:rgba(255,224,154,.42);background:rgba(255,224,154,.08)}
.gate__btn--primary{background:linear-gradient(135deg,#d4a559,#ffe09a);color:var(--ink);border-color:transparent;box-shadow:0 10px 28px -10px rgba(255,224,154,.6)}
.gate__btn--primary:hover{background:linear-gradient(135deg,#ffe09a,#d4a559);box-shadow:0 16px 36px -10px rgba(255,224,154,.8)}
.gate__small{margin-top:10px;font-size:11px;color:var(--paper-faint);font-weight:300;letter-spacing:.04em}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width:1024px){
  .two-col,.two-col--rev{grid-template-columns:1fr}
  .reel-card{margin-top:36px;width:100%;max-width:460px}
  .tiers,.reviews-grid{grid-template-columns:1fr;max-width:460px;margin-left:auto;margin-right:auto}
  .show-row{grid-template-columns:48px 80px 80px 1fr}
  .show-row__hall{display:none}
  .show-row--head span:nth-child(4){display:none}
}
@media (max-width:720px){
  .hud-rail{left:24px;right:24px;font-size:9px;letter-spacing:.18em}
  .brand-fixed,.sound-toggle{left:24px;right:auto}
  .sound-toggle{left:auto;right:24px}
  .scene-indicator{left:24px;bottom:30px}
  .scroll-cue{display:none}
  .scene{padding:clamp(80px,10vh,120px) 24px}
  .display{font-size:clamp(52px,13vw,92px)}
  .display--md{font-size:clamp(38px,9vw,60px)}
  .hud-corners{inset:18px}
  .cypher-rail{font-size:8px;opacity:.18}
  .meta-chip{font-size:9px}
  .marquee-bulb{width:6px;height:6px}
  .foot{flex-direction:column;align-items:center;gap:8px}
  .foot__line{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1;transform:none;filter:none}
}
