/* A shared motion language. Native scrolling, no hidden semantic content. */
:root{--motion-ease:cubic-bezier(.2,.75,.2,1);--page-progress:0}
.site-nav:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#30c7b5;transform:scaleX(var(--page-progress));transform-origin:left;pointer-events:none}
.button{translate:var(--mag-x,0px) var(--mag-y,0px);transition:background .22s,color .22s,translate .2s var(--motion-ease),box-shadow .3s;will-change:auto}
.button:active,button:not(.button):active{scale:.97}
.button svg,.text-link svg,.mega-links svg,.nav-trigger svg{transition:transform .35s var(--motion-ease)}
.text-link{position:relative;transition:color .25s}
.text-link:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--motion-ease)}
.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1)}
.text-link:hover svg,.button:hover svg,.mega-links>a:hover svg{transform:translateX(5px)}
.nav-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.mega:not([hidden]){animation:menu-enter .38s var(--motion-ease)}
@keyframes menu-enter{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
[data-view-panel]:not([hidden]),[data-feature-panel]:not([hidden]),[data-tour-panel]:not([hidden]),[data-stage-panel]:not([hidden]){animation:panel-enter .6s var(--motion-ease)}
@keyframes panel-enter{from{opacity:.1;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.feature-hero-art{transform:translateY(calc((var(--scroll-p,.5) - .5) * -65px))}
.photographic-hero>img,.home-hero .hero-media{transform:scale(1.07) translateY(calc((var(--scroll-p,.4) - .4) * 55px));transform-origin:center}
.resources-art>div:nth-child(2){transform:translateY(calc((var(--scroll-p,.5) - .5) * -45px))}
.resources-art>div:nth-child(3){transform:translateY(calc((var(--scroll-p,.5) - .5) * 30px))}
.case-photo{overflow:hidden}.case-photo img{transform:scale(1.06) translateY(calc((var(--scroll-p,.5) - .5) * 30px));transition:scale .7s var(--motion-ease)}
@media(hover:hover) and (pointer:fine){.resources-art>div:hover img,.case-photo:hover img{scale:1.035}.resources-art img{transition:scale .8s var(--motion-ease)}.resource-list>a:hover{background:#e2e7da}.event-ticket:hover{transform:rotate(-1deg) translateY(-5px)}.season-ticket:hover{transform:rotate(1deg) translateY(-5px)}}
.event-ticket,.season-ticket{transition:transform .55s var(--motion-ease)}
.video-control{position:absolute;z-index:3;bottom:27px;right:4%;display:flex;align-items:center;gap:10px;padding:12px 15px;border:1px solid #f1f0e85e;color:#f1f0e8;background:#092b3566;font:inherit;font-size:12px;min-height:44px;backdrop-filter:blur(8px)}
.video-control svg{width:14px;height:14px}.video-control[hidden]{display:none}
.operation.motion-pin{height:240svh;padding-block:0;overflow:visible}
.operation.motion-pin>.wrap{position:sticky;top:96px;height:calc(100svh - 96px);display:flex;flex-direction:column;justify-content:center;padding-block:24px}
.operation.motion-pin .operation-heading{margin-bottom:26px;gap:8%}
.operation.motion-pin .operation-heading h2{font-size:clamp(42px,4.2vw,64px)}
.operation.motion-pin .operation-heading p{font-size:18px}
.operation.motion-pin .world{height:clamp(240px,32vh,410px)}
.operation.motion-pin .operation-output{min-height:190px;padding:20px 25px}
.operation.motion-pin .operation-copy h3{font-size:clamp(32px,3vw,45px)}
.operation.motion-pin .operation-tabs{margin-bottom:25px;position:relative}
.operation.motion-pin .operation-tabs:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--mint);transform:scaleX(var(--operation-progress,0));transform-origin:left}
.operation.motion-pin .operation-copy [data-stage-panel]>p{font-size:18px;margin-top:20px}
@media(max-width:700px){.feature-hero-art{transform:translateY(calc((var(--scroll-p,.5) - .5) * -24px))}.video-control{right:24px;bottom:20px}.video-control span{display:none}.home-hero .hero-media{transform:scale(1.06) translateY(calc((var(--scroll-p,.4) - .4) * 24px))}}
@media(prefers-reduced-motion:reduce){.feature-hero-art,.photographic-hero>img,.home-hero .hero-media,.resources-art>div,.case-photo img{transform:none!important}.button{translate:none!important}.button,button{scale:1!important}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.video-control{display:none!important}}
