/* One stage: the curtains reveal the actual homepage, not a duplicate image. */
html{scrollbar-gutter:stable}
.headline-entrance{background:transparent!important}
.headline-entrance::backdrop{background:transparent!important;backdrop-filter:none!important}
.headline-entrance:before{display:none!important}
.headline-entrance .entrance-photo{display:none!important}
.headline-entrance .cue-three{display:none!important}
.headline-entrance .entrance-beam,.headline-entrance .entrance-ramp{opacity:0;transition:opacity .65s}
.headline-entrance.departing .entrance-beam{opacity:.25}
.entrance-staging .hero-content,.entrance-staging .hero-bottom,.entrance-staging .hero-location,.entrance-staging .hero-fineprint,.entrance-staging .site-header .brand,.entrance-staging .site-header nav,.entrance-staging .site-header>.wrap>.button,.entrance-staging .menu-toggle{transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.entrance-staging:not(.entrance-landing) .hero-content,.entrance-staging:not(.entrance-landing) .hero-bottom,.entrance-staging:not(.entrance-landing) .site-header .brand{opacity:0;transform:translateX(-70px)}
.entrance-staging:not(.entrance-landing) .hero-location,.entrance-staging:not(.entrance-landing) .hero-fineprint,.entrance-staging:not(.entrance-landing) .site-header nav,.entrance-staging:not(.entrance-landing) .site-header>.wrap>.button,.entrance-staging:not(.entrance-landing) .menu-toggle{opacity:0;transform:translateX(70px)}
.entrance-staging .hero-word,.entrance-staging .hero-intro,.entrance-staging .hero-actions,.entrance-staging .hero .eyebrow,.entrance-staging .hero-content{animation:none!important}
.entrance-landing .hero-content,.entrance-landing .hero-bottom,.entrance-landing .hero-location,.entrance-landing .hero-fineprint,.entrance-landing .site-header .brand,.entrance-landing .site-header nav,.entrance-landing .site-header>.wrap>.button,.entrance-landing .menu-toggle{opacity:1;transform:translateX(0)}
.entrance-staging .site-header nav,.entrance-staging .site-header>.wrap>.button{transition-delay:.12s}
.entrance-staging .hero-bottom,.entrance-staging .hero-location{transition-delay:.2s}
.entrance-staging:not(.entrance-landing) .show-program,.entrance-staging:not(.entrance-landing) .motion-control{opacity:0;pointer-events:none}
.entrance-landing .show-program,.entrance-landing .motion-control{transition:opacity .8s;opacity:1}
.headline-entrance.landing .entrance-topline,.headline-entrance.landing .entrance-stage-cue,.headline-entrance.landing .curtain-spill{opacity:0;transition:opacity .6s;pointer-events:none}
.headline-entrance.landing .entrance-beam,.headline-entrance.landing .entrance-ramp{opacity:0!important;transition:opacity .6s}
@media(prefers-reduced-motion:reduce){.entrance-staging *{transition:none!important}.entrance-staging:not(.entrance-landing) .hero-content,.entrance-staging:not(.entrance-landing) .hero-bottom,.entrance-staging:not(.entrance-landing) .site-header .brand,.entrance-staging:not(.entrance-landing) .site-header nav{transform:none}}
/* Match the headliner hit: tension, a decisive sweep, then a soft settle. */
.motion-on .headline-entrance.departing .entrance-velvet.left,.motion-on .headline-entrance.departing .entrance-velvet.right{animation-duration:3.2s!important}
.motion-on .headline-entrance.departing .curtain-spill{animation-duration:3.2s}
@keyframes gather-left{0%{transform:translate3d(0,0,0) scaleX(1)}22%{transform:translate3d(-.5%,0,0) scaleX(.99)}32%{transform:translate3d(-1%,0,0) scaleX(.96)}50%{transform:translate3d(-5%,0,0) scaleX(.55)}74%{transform:translate3d(-10%,0,0) scaleX(.10)}90%{transform:translate3d(-12%,0,0) scaleX(.025)}100%{transform:translate3d(-12%,0,0) scaleX(.015)}}
@keyframes gather-right{0%{transform:translate3d(0,0,0) scaleX(1)}22%{transform:translate3d(.5%,0,0) scaleX(.99)}32%{transform:translate3d(1%,0,0) scaleX(.96)}50%{transform:translate3d(5%,0,0) scaleX(.55)}74%{transform:translate3d(10%,0,0) scaleX(.10)}90%{transform:translate3d(12%,0,0) scaleX(.025)}100%{transform:translate3d(12%,0,0) scaleX(.015)}}
/* Let Matt own the stage for a beat before the interface makes its entrance. */
.headline-entrance.photo-beat .entrance-stage-cue,.headline-entrance.photo-beat .entrance-topline .brand,.headline-entrance.photo-beat .entrance-sound,.headline-entrance.photo-beat .entrance-beam,.headline-entrance.photo-beat .entrance-ramp{opacity:0!important;transition:opacity .25s}
body:has(.headline-entrance.photo-beat) .hero-image{animation-play-state:running}
.entrance-staging .hero-content,.entrance-staging .hero-bottom,.entrance-staging .hero-location,.entrance-staging .hero-fineprint,.entrance-staging .site-header .brand,.entrance-staging .site-header nav,.entrance-staging .site-header>.wrap>.button,.entrance-staging .menu-toggle{transition:opacity .65s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.12,.92,.2,1)}
.entrance-staging:not(.entrance-landing) .hero-content,.entrance-staging:not(.entrance-landing) .hero-bottom,.entrance-staging:not(.entrance-landing) .site-header .brand{transform:translateX(-110px)}
.entrance-staging:not(.entrance-landing) .hero-location,.entrance-staging:not(.entrance-landing) .hero-fineprint,.entrance-staging:not(.entrance-landing) .site-header nav,.entrance-staging:not(.entrance-landing) .site-header>.wrap>.button,.entrance-staging:not(.entrance-landing) .menu-toggle{transform:translateX(110px)}
.entrance-staging .site-header nav,.entrance-staging .site-header>.wrap>.button{transition-delay:.08s}
.entrance-staging .hero-bottom,.entrance-staging .hero-location{transition-delay:.16s}
@media(prefers-reduced-motion:reduce){.entrance-staging *{transition:none!important}.entrance-staging:not(.entrance-landing) .hero-content,.entrance-staging:not(.entrance-landing) .hero-bottom,.entrance-staging:not(.entrance-landing) .site-header .brand,.entrance-staging:not(.entrance-landing) .site-header nav,.entrance-staging:not(.entrance-landing) .hero-fineprint{transform:none}}
/* Choreographed landing: headline, navigation, supporting copy, then the invitation. */
.entrance-staging .hero-content{transition:none!important;transform:none!important;opacity:1!important}
.entrance-staging .hero-content h1,.entrance-staging .hero .eyebrow,.entrance-staging .hero-intro,.entrance-staging .hero-actions{transition:opacity .65s cubic-bezier(.16,1,.3,1),transform 1.05s cubic-bezier(.12,.92,.2,1);will-change:opacity,transform}
.entrance-staging:not(.entrance-landing) .hero-content h1{opacity:0;transform:translateX(-100px) scale(.975)}
.entrance-staging:not(.entrance-landing) .hero .eyebrow,.entrance-staging:not(.entrance-landing) .hero-intro,.entrance-staging:not(.entrance-landing) .hero-actions{opacity:0;transform:translateX(-65px)}
.entrance-landing .hero-content h1,.entrance-landing .hero .eyebrow,.entrance-landing .hero-intro,.entrance-landing .hero-actions{opacity:1;transform:translateX(0) scale(1)}
.entrance-staging .hero-content h1{transition-delay:0s}
.entrance-staging .site-header .brand{transition-delay:.22s}
.entrance-staging .site-header nav{transition-delay:.32s}
.entrance-staging .site-header>.wrap>.button,.entrance-staging .menu-toggle{transition-delay:.42s}
.entrance-staging .hero .eyebrow{transition-delay:.42s}
.entrance-staging .hero-intro{transition-delay:.56s}
.entrance-staging .hero-actions{transition-delay:.76s}
.entrance-staging .hero-fineprint{transition-delay:.65s}
.entrance-staging .hero-bottom,.entrance-staging .hero-location{transition-delay:.85s}
@media(prefers-reduced-motion:reduce){.entrance-staging .hero-content h1,.entrance-staging .hero .eyebrow,.entrance-staging .hero-intro,.entrance-staging .hero-actions{transition:none!important;transform:none!important}}
/* Three headline beats, with the final name carrying the strongest entrance. */
.entrance-staging .hero-content h1{opacity:1!important;transform:none!important;transition:none!important}
.entrance-staging .hero-line{overflow:visible!important}
.entrance-staging .hero h1 .hero-word{transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.12,.92,.2,1)!important;will-change:opacity,transform}
.entrance-staging:not(.entrance-landing) .hero h1 .hero-word{opacity:0;transform:translateX(-85px)}
.entrance-staging:not(.entrance-landing) .hero h1 .hero-line:nth-child(3) .hero-word{opacity:0;transform:translateX(-120px) scale(.94);transform-origin:left center}
.entrance-landing .hero h1 .hero-word{opacity:1;transform:translateX(0) scale(1)}
.entrance-staging .hero h1 .hero-line:nth-child(1) .hero-word{transition-delay:0s!important}
.entrance-staging .hero h1 .hero-line:nth-child(2) .hero-word{transition-delay:.22s!important}
.entrance-staging .hero h1 .hero-line:nth-child(3) .hero-word{transition-delay:.48s!important;transition-duration:.5s,1s!important}
.entrance-staging .site-header .brand{transition-delay:.65s}
.entrance-staging .site-header nav{transition-delay:.75s}
.entrance-staging .site-header>.wrap>.button,.entrance-staging .menu-toggle{transition-delay:.85s}
.entrance-staging .hero .eyebrow{transition-delay:.8s}
.entrance-staging .hero-intro{transition-delay:.95s}
.entrance-staging .hero-actions{transition-delay:1.12s}
.entrance-staging .hero-fineprint{transition-delay:1s}
.entrance-staging .hero-bottom,.entrance-staging .hero-location{transition-delay:1.2s}
@media(prefers-reduced-motion:reduce){.entrance-staging .hero h1 .hero-word{transition:none!important;transform:none!important}}
/* One strong final beat, then a composed, still hero. */
.entrance-staging .hero-line:nth-child(3){position:relative;isolation:isolate}
.hero-name-spot{position:absolute;z-index:-1;inset:-40% -5% -40% -8%;background:radial-gradient(ellipse at 35% 50%,#f5faff38 0%,#85bfff16 32%,transparent 68%);pointer-events:none;opacity:0;transform-origin:35% 50%;mix-blend-mode:screen}
.motion-on .hero-final-hit .hero-name-spot{animation:headline-spot-hit 1.8s cubic-bezier(.16,1,.3,1) both}
body.hero-settled .hero-image{animation-play-state:paused!important}
@keyframes headline-spot-hit{0%{opacity:0;transform:scale(.85)}16%{opacity:1;transform:scale(1)}40%{opacity:.65;transform:scale(1.025)}100%{opacity:0;transform:scale(1.06)}}
@media(prefers-reduced-motion:reduce){.hero-name-spot{display:none}}
/* A full-name spotlight sweep with one decisive peak and a long, smooth resolve. */
.hero-name-spot{inset:-55% auto -55% -16%;width:65%;background:radial-gradient(ellipse at 50% 50%,#f8fcff50 0%,#c3dfff20 28%,#89beff08 48%,transparent 70%);transform:translateX(-45%) scale(.85)}
.motion-on .hero-final-hit .hero-name-spot{animation:headline-spot-sweep 2.8s cubic-bezier(.2,.8,.25,1) both}
@keyframes headline-spot-sweep{0%{opacity:0;transform:translateX(-45%) scale(.85)}12%{opacity:1;transform:translateX(-12%) scale(1)}56%{opacity:.9;transform:translateX(90%) scale(1.04)}100%{opacity:0;transform:translateX(165%) scale(1.08)}}
.hero-settled .hero .show-lights{opacity:.25;transition:opacity 2s}
.hero-settled .hero .show-lights:before,.hero-settled .hero .show-lights:after{animation-play-state:paused!important}
.hero-settled .hero .ambient-dust{opacity:.25;transition:opacity 2s}
.headline-entrance.departing .cue-one{animation-delay:2.4s!important}
@media(prefers-reduced-motion:reduce){.hero-name-spot{display:none}}

/* Final beat: stage lights out, homepage image stays clean and still. */
body.hero-settled .hero .stadium-lights,body.hero-settled .hero .show-lights,body.hero-settled .hero .ambient-dust,body.hero-settled .hero .hero-aura,body.hero-settled .hero .hero-name-spot,body.hero-settled .hero .concert-flash,body.hero-settled .hero .concert-blinders{opacity:0!important;transition:none!important;animation:none!important}
body.hero-settled .hero .hero-image,body.hero-settled .hero .hero-word{animation-play-state:paused!important}

/* Explicit vocal timing overrides the older announcer shorthand and delay. */
.motion-on .headline-entrance.departing .entrance-stage-cue .cue-one{animation:vocal-aligned-announcer var(--ladies-length,2.48s) var(--ladies-start,2.4s) linear both!important}
@keyframes vocal-aligned-announcer{0%{opacity:0;transform:translateY(10px)}4%{opacity:1;transform:translateY(0)}92%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-5px)}}
/* Keep the browser's normal page scrollbar during the homepage entrance. */
html:has(.headline-entrance[open]){overflow-y:scroll;scrollbar-gutter:auto}
body.locked:has(.headline-entrance[open]){overflow:visible}
