
/* Cinematic motion: progressively enhanced, with a persistent pause control. */
.motion-settings{position:fixed;bottom:20px;left:20px;z-index:34;border:1px solid #ffffff60;border-radius:30px;background:#121714ed;color:#fff;padding:10px 16px;font-size:11px;box-shadow:0 4px 20px #0003}
.motion-enter{animation:rh-enter .85s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--motion-delay,0ms)}
@keyframes rh-enter{from{opacity:.15;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.hero-content h1{animation:rh-enter 1s both}.hero-copy{animation:rh-enter 1s .15s both}.hero-actions{animation:rh-enter 1s .3s both}
.route-diagram:before{background:repeating-linear-gradient(to bottom,#d52e36 0 10px,transparent 10px 20px);background-size:1px 20px;animation:rh-route 1.4s linear infinite}
@keyframes rh-route{to{background-position:0 20px}}
.route-dot:after{animation:rh-pulse 2.5s ease-in-out infinite}.destination .route-dot:after{animation-delay:1.25s}
@keyframes rh-pulse{50%{transform:scale(1.5);box-shadow:0 0 0 5px #d52e3320;background:#d52e36}}
#mascot-launcher .mascot-art{animation:rh-float 4s ease-in-out infinite;transform-origin:bottom center}
@keyframes rh-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(3deg)}}
.gallery-open{overflow:hidden}.gallery-open img{transition:transform .6s cubic-bezier(.16,1,.3,1)}.gallery-open:hover img,.gallery-open:focus-visible img{transform:scale(1.045)}
.button span,.text-link span{transition:transform .25s}.button:hover span,.text-link:hover span{transform:translate(3px,-2px)}
.service-list details[open] .service-body{animation:rh-enter .4s both}
body.motion-off *,body.motion-off *:before,body.motion-off *:after{animation:none!important;transition:none!important}body.motion-off{scroll-behavior:auto}html:has(body.motion-off){scroll-behavior:auto}
@media(max-width:700px){.motion-settings{bottom:12px;left:12px;padding:9px 12px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.motion-enter{opacity:1;transform:none}*,*:before,*:after{animation:none!important;transition:none!important}}
