/* One focal loop; scroll reveals explain the progression from idea to launch. */
.art-plane{position:absolute;inset:0;transform:translate(var(--art-x,0px),var(--art-y,0px));transition:transform .65s var(--ease)}
.hero-art img{animation:none;transform:scale(1.08)}
.motion-toggle{position:absolute;z-index:3;right:18px;bottom:78px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid #b7c6e5;border-radius:50%;background:#f5f7fbed;color:var(--blue);transition:background .2s ease-out}
.motion-toggle[hidden],.motion-play{display:none}
.motion-toggle .icon{width:20px;height:20px;grid-area:1/1}
.motion-toggle:hover{background:white}
html[data-motion=off] .motion-play{display:block}
html[data-motion=off] .motion-pause{display:none}
.art-caption{gap:18px;color:#344b83}
.art-caption span{position:relative;flex:1;padding-top:13px}
.art-caption span::before,.art-caption span::after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:#b7c6e5;transform-origin:left}
.art-caption span::after{background:var(--blue);transform:scaleX(0)}
html[data-motion=on] .hero-art img{animation:assembly-float 12s cubic-bezier(.45,0,.55,1) infinite both}
html[data-motion=on] .art-caption span::after{animation:assembly-stage 12s linear infinite both}
html[data-motion=on] .art-caption span:nth-child(2)::after{animation-delay:4s}
html[data-motion=on] .art-caption span:nth-child(3)::after{animation-delay:8s}
.hero-art:not(.motion-visible) img,.hero-art:not(.motion-visible) .art-caption span::after,html[data-page-hidden] .hero-art img,html[data-page-hidden] .art-caption span::after{animation-play-state:paused!important}
html[data-motion=off] .hero-art img,html[data-motion=off] .art-caption span::after{animation-play-state:paused!important}
.steps li{position:relative}
.steps li::before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left}
html[data-motion=on] .steps li.motion-entered::before{animation:step-line .85s var(--ease) both}
@keyframes assembly-float{0%,100%{transform:translate(-5px,8px) rotate(-2deg) scale(1.10)}33%{transform:translate(8px,-16px) rotate(2deg) scale(1.14)}67%{transform:translate(-8px,-3px) rotate(-1deg) scale(1.09)}}
@keyframes assembly-stage{0%{transform:scaleX(0)}30%,33%{transform:scaleX(1)}33.1%,100%{transform:scaleX(0)}}
@keyframes step-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
html[data-motion=off]{scroll-behavior:auto}
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{transition:none!important}
html[data-motion=off] .service-content{animation:none!important}
@media(max-width:900px){.motion-toggle{right:12px;bottom:64px}.art-caption{gap:14px}}
@media(prefers-reduced-motion:reduce){
  html:not([data-motion=on]){scroll-behavior:auto}
  html:not([data-motion=on]) *,html:not([data-motion=on]) *::before,html:not([data-motion=on]) *::after{animation:none!important;transition:none!important}
}
