/* Zukan MCP: 1-4 masked rise, 3-1 Ken Burns, 5-23 tilt, 6-38 line draw, 8-1 CTA sweep.
   Native browser implementation adapted for the existing LP, pause control and motion budget. */
:root{--anim-ease:cubic-bezier(.25,.46,.45,.94);--anim-ease-soft:cubic-bezier(.22,1,.36,1);--anim-short:.25s;--anim-medium:.7s;--anim-long:1.1s}
.anim-motion-pending{opacity:0}
.anim-rule-host{position:relative}
.anim-rule{position:absolute;pointer-events:none;bottom:-1px;left:0;right:0;height:1px;background:var(--gold);transform-origin:left;opacity:0}
.anim-lab-visual.anim-ambient-visible{animation:anim-lab-breathe 18s linear forwards;transform-origin:60% 40%}
@keyframes anim-lab-breathe{from{transform:scale(1)}to{transform:scale(1.055) translate(-.4%,-.25%)}}
.anim-orbit.anim-ambient-visible i{animation:anim-orbit-turn 24s linear infinite}
.anim-orbit i:nth-child(2){--anim-orbit-start:60deg}.anim-orbit i:nth-child(3){--anim-orbit-start:-60deg}
@keyframes anim-orbit-turn{from{transform:rotate(var(--anim-orbit-start,0deg))}to{transform:rotate(calc(var(--anim-orbit-start,0deg) + 180deg))}}
.anim-door-glow.anim-ambient-visible{animation:anim-door-breathe 5s var(--anim-ease) infinite alternate}
@keyframes anim-door-breathe{from{opacity:.55}to{opacity:1}}
.anim-lab-visual:not(.anim-ambient-visible),.anim-orbit:not(.anim-ambient-visible) i,.anim-door-glow:not(.anim-ambient-visible){animation-play-state:paused}
.anim-effects-busy .anim-lab-visual,.anim-effects-busy .anim-orbit i,.anim-effects-busy .anim-door-glow,.anim-site-paused .anim-lab-visual,.anim-site-paused .anim-orbit i,.anim-site-paused .anim-door-glow{animation-play-state:paused!important}
.anim-entrance-active .anim-pet-guide{visibility:hidden!important;opacity:0!important}
.anim-cta{position:relative;isolation:isolate;overflow:hidden}
.anim-cta::before{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(105deg,transparent 10%,#fff3 48%,transparent 82%);transform:translateX(-110%);opacity:0;transition:transform var(--anim-medium) var(--anim-ease),opacity var(--anim-short) var(--anim-ease)}
.anim-cta>span{transition:transform var(--anim-short) var(--anim-ease)}
@media(hover:hover) and (pointer:fine){
.anim-cta:hover::before,.anim-cta:focus-visible::before{transform:translateX(110%);opacity:1}
.anim-cta:hover>span,.anim-cta:focus-visible>span{transform:translate(3px,-2px)}
.anim-book:not(.anim-motion-pending):hover{transform:perspective(900px) translateY(-6px) rotateX(var(--anim-tilt-x,0deg)) rotateY(var(--anim-tilt-y,0deg));transition:transform var(--anim-short) var(--anim-ease)}
}
.motion-paused .anim-motion-pending{opacity:1}.motion-paused .anim-rule{opacity:0}
.motion-paused .anim-lab-visual,.motion-paused .anim-orbit i,.motion-paused .anim-door-glow{animation:none!important}
.motion-paused .anim-book:hover{transform:none!important}.motion-paused .anim-cta::before{display:none}.motion-paused .anim-cta>span{transform:none!important}
@media(prefers-reduced-motion:reduce){.anim-motion-pending{opacity:1}.anim-lab-visual,.anim-orbit i,.anim-door-glow{animation:none!important}.anim-book:hover,.anim-cta>span{transform:none!important}.anim-cta::before{display:none}}
