/* Motion system: page arrival, subtle hero depth, and staggered reveal on scroll. */
.page-wipe{position:fixed;inset:0;background:var(--navy);z-index:100;transform-origin:top;animation:pageWipe .78s cubic-bezier(.77,0,.18,1) .08s forwards;pointer-events:none}
.wave-orbit{animation:orbitDrift 9s ease-in-out infinite}.visual-frame{animation:floatFrame 6s ease-in-out infinite}.hero-visual{transition:transform .18s linear}
.scroll-reveal{opacity:0;transform:translateY(34px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.25,1)}.scroll-reveal.in-view{opacity:1;transform:none}.scroll-reveal.in-view .service-card,.scroll-reveal.in-view .area-card,.scroll-reveal.in-view .process-grid li{animation:cardRise .58s cubic-bezier(.2,.7,.25,1) both;animation-delay:var(--delay,0ms)}
@keyframes pageWipe{to{transform:scaleY(0)}}@keyframes orbitDrift{50%{transform:rotate(38deg) scale(1.05)}}@keyframes floatFrame{50%{transform:rotate(-1deg) translateY(-10px)}}@keyframes cardRise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.page-wipe{display:none}.scroll-reveal{opacity:1;transform:none}}
