/* Original motion treatments informed by kinetic lyric-video typography. */
.header-actions{display:flex;align-items:center;gap:22px}
.header nav{margin-left:30px}
.motion-toggle{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:#bfb0d0;padding:9px 0;font:600 7px var(--body);letter-spacing:1.1px;cursor:pointer}
.motion-toggle[hidden]{display:none}
.motion-toggle-icon{font:16px/1 var(--body);width:16px;text-align:center}
.motion-toggle:hover{color:#f3eaff}
.motion-active .wordmark span{animation:titleStrike 680ms cubic-bezier(.16,1,.25,1) both,liquidType 12s ease-in-out 1.4s infinite;animation-delay:calc(var(--letter-order,0) * 55ms),1.4s}
.wordmark span:nth-child(2){--letter-order:1}.wordmark span:nth-child(3){--letter-order:2}.wordmark span:nth-child(4){--letter-order:3}.wordmark span:nth-child(5){--letter-order:4}.wordmark span:nth-child(6){--letter-order:5}
.motion-active .ghost-word{animation:outlineRegister 1050ms cubic-bezier(.16,1,.25,1) both}
.title-cut{position:absolute;inset:45% -6% auto;display:flex;justify-content:space-between;align-items:center;padding:8px 10%;border-block:1px solid #c3b7d9;background:#0b0912;color:#d7c8ed;font:clamp(13px,2.5vw,38px)/1.2 var(--display);letter-spacing:5px;pointer-events:none;visibility:hidden;z-index:3}
.motion-active .title-cut{animation:titleShutter 1450ms cubic-bezier(.76,0,.24,1) both}
.motion-active .hero-copy .kinetic-word{animation:wordStrike 650ms cubic-bezier(.16,1,.25,1) both;animation-delay:calc(600ms + var(--word-delay))}
.js-motion .reveal,.js-motion .reveal.visible{opacity:1;transform:none;transition:none}
.kinetic-word{display:inline-block;vertical-align:baseline;transform-origin:0 100%;padding-bottom:.045em;margin-bottom:-.045em}
.foil-text:has(.kinetic-word){background:none}
.foil-text .kinetic-word{background:var(--color-foil);background-size:240% 180%;background-clip:text;-webkit-background-clip:text;color:transparent}
.js-motion .reveal:not(.visible) .kinetic-word{clip-path:inset(0 100% 0 0);transform:translateX(-18px) skewX(-8deg)}
.motion-active .reveal.visible .kinetic-word{animation:wordStrike 650ms cubic-bezier(.16,1,.25,1) var(--word-delay) both}
.js-motion .reveal.visible h2{animation:none}
.motion-active .reveal.visible .foil-text{animation:foilShift 10s ease-in-out infinite;background-size:280% 180%}
.js-motion .about-copy:not(.visible){opacity:0}
.motion-active .about-copy.visible{animation:copyWipe 700ms cubic-bezier(.16,1,.25,1) both}
.motion-poster{position:relative;isolation:isolate;overflow:hidden;height:310px;margin-top:64px;background:var(--color-foil);background-size:260% 180%;background-position:var(--poster-foil,50%) 50%;color:#15101f;--poster-drift:0px}
.motion-poster:before{content:'';position:absolute;inset:-100% -30%;z-index:-1;background:linear-gradient(115deg,transparent 20%,#fbffff75 29%,transparent 36%,#523b8f25 48%,transparent 60%,#ecdcff90 72%,transparent 79%);transform:translateX(-15%) rotate(-5deg);animation:foilFold 12s ease-in-out infinite alternate}
.motion-poster:after{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#18101f55 .6px,transparent .8px);background-size:5px 5px;mask-image:linear-gradient(90deg,#000,transparent 35%,transparent 65%,#000);opacity:.35}
.poster-meta,.poster-footer{position:absolute;left:24px;right:24px;display:flex;justify-content:space-between;font:700 8px var(--body);letter-spacing:1.7px;z-index:2}
.poster-meta{top:18px}.poster-footer{bottom:18px}
.poster-type{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform:skewX(-7deg)}
.poster-main,.poster-echo{position:absolute;font:clamp(65px,10vw,160px)/1 var(--display);letter-spacing:-.025em;white-space:nowrap}
.poster-main{translate:var(--poster-drift) 0}
.poster-echo{color:transparent;-webkit-text-stroke:1px #32243e65}
.echo-top{translate:calc(var(--poster-drift) * -1) -85px}
.echo-bottom{translate:calc(var(--poster-drift) * -1) 85px}
.poster-cut{position:absolute;top:49%;left:-1%;width:102%;padding:12px 8%;display:flex;align-items:center;justify-content:space-between;background:#100b1b;color:#e1d1f7;border-block:1px solid #e5d6ff;font:500 12px var(--body);letter-spacing:5px;transform:rotate(-3deg);z-index:1}
.poster-cut>span:nth-child(2){font-size:23px;line-height:1}
.js-motion .motion-poster:not(.visible){opacity:0}
.motion-active .motion-poster.visible{animation:diagonalWipe 800ms cubic-bezier(.76,0,.24,1) both}
.motion-active .motion-poster.visible .poster-main{animation:posterStrike 950ms cubic-bezier(.16,1,.25,1) both}
.motion-active .motion-poster.visible .poster-cut{animation:cutSlide 1100ms cubic-bezier(.16,1,.25,1) both}
.js-motion .act:not(.visible),.js-motion .team-card:not(.visible){opacity:0;translate:-12px 0}
.motion-active .act.visible,.motion-active .team-card.visible{animation:stageWipe 650ms cubic-bezier(.16,1,.25,1) var(--entrance-delay,0ms) both}
.act-heading{position:relative}
.act-heading:after{content:'';position:absolute;left:0;top:-1px;width:100%;height:1px;background:linear-gradient(90deg,transparent,#d2b4fc,#e3faff);transform-origin:left;transform:scaleX(0)}
.motion-active .act.visible .act-heading:after{animation:stageLine 900ms cubic-bezier(.16,1,.25,1) var(--entrance-delay,0ms) both}
.final-card:after{content:'';position:absolute;inset:-70%;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#c3a3e100 43%,#e7ceff17 49%,#c3a3e100 54%,transparent 65%);animation:finalShine 9s ease-in-out infinite;transform:translateX(-30%)}
.button{isolation:isolate;overflow:hidden}
.button:after{content:'';position:absolute;inset:-120% -50%;pointer-events:none;background:linear-gradient(115deg,transparent 39%,#fff9 48%,transparent 56%);transform:translateX(-50%);z-index:-1}
.motion-active .button:hover:after,.motion-active .button:focus-visible:after{animation:buttonSweep 700ms ease-out both}
.button>span{transition:transform .25s cubic-bezier(.16,1,.25,1)}
.button:hover>span{transform:translate(3px,-3px)}
.ticket-preview{background-size:240% 180%;animation:foilShift 12s ease-in-out infinite}
.motion-active .ticket-preview.visible{animation:ticketFeed 900ms cubic-bezier(.16,1,.25,1) both,foilShift 12s ease-in-out 900ms infinite}
.motion-active .confirmation:not([hidden]){animation:passIssued 650ms cubic-bezier(.16,1,.25,1) both}
.motion-active .confirmation:not([hidden]) h3{animation:wordStrike 650ms cubic-bezier(.16,1,.25,1) 100ms both}
.hero:not(.in-view) .wordmark span,.hero:not(.in-view) .summit-sculpture,.hero:not(.in-view) .stage-light,.motion-poster:not(.in-view):before,.final-card:not(.in-view):after,.ticket-preview:not(.in-view),.ticker:not(.in-view)>div{animation-play-state:paused}
@keyframes titleStrike{0%{opacity:0;clip-path:inset(55% 0 45%);transform:translateX(-32px) skewX(12deg)}28%{opacity:1;clip-path:inset(32% 0 28%);transform:translateX(12px) skewX(-7deg)}48%{clip-path:inset(0);transform:translateX(-4px)}100%{opacity:1;clip-path:inset(0);transform:none}}
@keyframes liquidType{0%,100%{background-position:var(--foil-x,40%) 30%}50%{background-position:calc(var(--foil-x,40%) + 32%) 80%}}
@keyframes outlineRegister{0%{transform:translateX(55px) skewX(-6deg);opacity:0}40%{opacity:1}100%{transform:translateX(0) skewX(-6deg)}}
@keyframes titleShutter{0%{visibility:visible;clip-path:inset(0 100% 0 0);translate:-20px 0}22%,58%{visibility:visible;clip-path:inset(0);translate:0 0}85%{visibility:visible;clip-path:inset(0 0 0 100%);translate:30px 0}100%{visibility:hidden;clip-path:inset(0 0 0 100%)}}
@keyframes wordStrike{0%{clip-path:inset(0 100% 0 0);transform:translateX(-24px) skewX(-9deg)}45%{clip-path:inset(0);transform:translateX(3px);text-shadow:2px 0 #b869cb60,-2px 0 #8bd4de50}100%{clip-path:inset(0);transform:none;text-shadow:none}}
@keyframes copyWipe{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes foilFold{to{transform:translateX(16%) rotate(8deg)}}
@keyframes diagonalWipe{0%{clip-path:polygon(0 0,0 0,0 100%,0 100%)}100%{clip-path:polygon(0 0,120% 0,100% 100%,0 100%)}}
@keyframes posterStrike{from{transform:translateX(-18%) scaleX(1.1)}to{transform:none}}
@keyframes cutSlide{0%,15%{transform:translateX(110%) rotate(-3deg)}100%{transform:translateX(0) rotate(-3deg)}}
@keyframes stageWipe{from{clip-path:inset(0 100% 0 0);translate:-12px 0}to{clip-path:inset(0);translate:0 0}}
@keyframes stageLine{to{transform:scaleX(1)}}
@keyframes finalShine{0%,20%{transform:translateX(-30%)}65%,100%{transform:translateX(35%)}}
@keyframes sigilStrike{0%{transform:translateX(-6px) skewX(-10deg)}35%{transform:translateX(3px) skewX(5deg);filter:drop-shadow(-3px 0 #bcf4ff66)}100%{transform:none;filter:none}}
@keyframes buttonSweep{to{transform:translateX(50%)}}
@keyframes ticketFeed{from{clip-path:inset(0 0 100% 0);translate:0 -28px;rotate:5deg}to{clip-path:inset(0);translate:0 0;rotate:0deg}}
@keyframes passIssued{from{clip-path:inset(0 0 100% 0);transform:translateY(-16px)}to{clip-path:inset(0);transform:none}}
@media(max-width:1050px){.header-actions{gap:15px}.motion-toggle-label{display:none}.header nav{margin-left:0}.poster-cut{font-size:10px;letter-spacing:3px}.motion-poster{height:270px}.echo-top{translate:calc(var(--poster-drift) * -1) -70px}.echo-bottom{translate:calc(var(--poster-drift) * -1) 70px}}
@media(max-width:760px){.header-actions{gap:13px}.motion-toggle{padding:10px 4px}.title-cut{padding:6px 10%;letter-spacing:2px}.motion-poster{height:240px;margin-top:35px}.poster-main,.poster-echo{font-size:clamp(50px,13vw,90px)}.echo-top{translate:calc(var(--poster-drift) * -1) -57px}.echo-bottom{translate:calc(var(--poster-drift) * -1) 57px}.poster-meta,.poster-footer{left:15px;right:15px;font-size:6px;letter-spacing:.7px}.poster-cut{padding:9px 6%;font-size:7px;letter-spacing:1.3px}.poster-cut>span:nth-child(2){font-size:16px}.hero-art{rotate:none;translate:none}}
.tab-inactive *,.tab-inactive *:before,.tab-inactive *:after,.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
.motion-paused *,.motion-paused *:before,.motion-paused *:after{transition:none!important}
.motion-paused .title-cut{display:none}
.motion-paused .wordmark span,.motion-paused .kinetic-word,.motion-paused .ghost-word,.motion-paused .reveal,.motion-paused .act,.motion-paused .team-card,.motion-paused .motion-poster,.motion-paused .poster-main,.motion-paused .poster-cut,.motion-paused .ticket-preview,.motion-paused .confirmation{animation:none!important;clip-path:none!important;opacity:1}
.motion-paused .wordmark-wrap,.motion-paused .kinetic-word{transform:none!important}
.motion-paused .hero-art,.motion-paused .act,.motion-paused .team-card,.motion-paused .ghost-word,.motion-paused .poster-main,.motion-paused .ticket-preview{translate:none;rotate:none}
.motion-paused .button,.motion-paused .button>span{transition:none;transform:none}
.motion-paused{scroll-behavior:auto}
@media(prefers-reduced-motion:reduce){.title-cut{display:none}.wordmark-wrap,.kinetic-word{transform:none!important}.hero-art,.ghost-word,.act,.team-card{translate:none!important;rotate:none!important}.js-motion .reveal:not(.visible) .kinetic-word,.js-motion .about-copy:not(.visible),.js-motion .act:not(.visible),.js-motion .team-card:not(.visible),.js-motion .motion-poster:not(.visible){clip-path:none}.motion-paused .poster-echo{translate:0 0}.motion-paused .echo-top{translate:0 -65px}.motion-paused .echo-bottom{translate:0 65px}}
