/* Shared animation for the eleven service illustrations. */
.service-motion{position:relative;isolation:isolate;width:100%;aspect-ratio:3/2;overflow:hidden;border-radius:10.8px;background:#101010}
.service-motion-scene{position:absolute;inset:0;transform:perspective(1000px) rotateX(var(--motion-x,0deg)) rotateY(var(--motion-y,0deg));transition:transform .65s var(--ease)}
.service-motion .service-motion-image{width:100%;height:100%;object-fit:cover;border-radius:0;transform-origin:57% 52%}
.service-motion[data-motion-ready] .service-motion-image{animation:service-image-breathe 4.8s ease-in-out 1 both;animation-play-state:paused}
.service-motion-light{position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 22%,rgba(255,255,255,.075) 43%,transparent 62%);transform:translateX(-110%)}
.service-motion[data-motion-ready] .service-motion-light{animation:service-image-light 4.8s ease-in-out 1 both;animation-play-state:paused}
.service-motion[data-motion-playing="true"] .service-motion-image,.service-motion[data-motion-playing="true"] .service-motion-light{animation-play-state:running}
@keyframes service-image-breathe{0%,100%{transform:scale(1) translate3d(0,0,0)}50%{transform:scale(1.06) translate3d(.35%,-.25%,0)}}
@keyframes service-image-light{0%,12%{transform:translateX(-110%);opacity:0}28%,42%{opacity:1}60%,100%{transform:translateX(110%);opacity:0}}
@media(prefers-reduced-motion:reduce){.service-motion-scene{transform:none!important;transition:none}.service-motion[data-motion-ready] .service-motion-image,.service-motion[data-motion-ready] .service-motion-light{animation:none}.service-motion-light{display:none}}
