/* Motion enhances the page: content stays visible without JavaScript. */
.header{transition:box-shadow .3s ease,background-color .3s ease}
.header.header-scrolled{box-shadow:0 8px 30px rgb(16 43 87 / .12)}
.hero .hero-photo{animation:none;transform:translate3d(0,var(--hero-drift,0px),0) scale(1.09);transform-origin:center}
.hero-video{z-index:-3;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;pointer-events:none;transform:translate3d(0,var(--hero-drift,0px),0) scale(1.09);transition:opacity .8s ease}
.hero-video.video-ready{opacity:1}
.hero-video-control{font:inherit;font-size:.875rem;color:white;background:rgb(16 43 87 / .85);border:1px solid rgb(255 255 255 / .65);padding:12px 16px;cursor:pointer;min-height:44px}
.hero-video-control:hover{background:var(--deep)}
.hero-bottom{flex-wrap:wrap}
.hero-video-control[hidden]{display:none}
.reveal.is-visible{animation:epc-arrive .75s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--reveal-delay,0ms)}
@keyframes epc-arrive{from{opacity:.15;translate:0 26px}to{opacity:1;translate:0 0}}
.button{transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,color .25s ease}
.button:active{transform:translateY(1px);box-shadow:none}
.text-link{transition:color .25s ease,border-color .25s ease}
.social-links>a,.schedule-row{transition:background-color .25s ease,box-shadow .25s ease}
.city-tabs button{transition:background-color .3s ease,color .3s ease,box-shadow .3s ease}
.button:focus-visible,.hero-video-control:focus-visible,.city-tabs button:focus-visible{outline:3px solid var(--accent-text);outline-offset:5px}
.hero-video-control:focus-visible{outline-color:var(--accent)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
.button:hover{transform:translateY(-3px);box-shadow:0 8px 0 rgb(16 43 87 / .15)}
.schedule-row:hover{background:var(--surface);box-shadow:inset 3px 0 var(--accent)}
.city-tabs button:hover{box-shadow:inset 0 -5px var(--accent-text)}
.social-links>a:hover{box-shadow:0 8px 0 rgb(16 43 87 / .1);transform:translateY(-4px)}
}
@media(max-width:900px){.hero .hero-photo,.hero-video{transform:scale(1.03)}.hero-video-control{width:100%}}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto!important}
*,*::before,*::after{animation:none!important;transition:none!important}
.hero .hero-photo,.hero-video{transform:none}
.reveal.is-visible{translate:none;opacity:1}
}
