/* Small, finite movements; layout and reading positions stay stable. */
@media(prefers-reduced-motion:no-preference){
.btn,.primary,.nav-contact{transition:background-color .22s ease,box-shadow .28s ease,transform .28s cubic-bezier(.22,1,.36,1)}
.btn:hover,.primary:hover,.nav-contact:hover{transform:translateY(-2px);box-shadow:0 9px 22px -12px #234fac70}
.btn:active,.primary:active{transform:translateY(0)}
.btn>span,.text-link>span{display:inline-block;transition:transform .28s ease}.btn:hover>span,.text-link:hover>span{transform:translate(2px,-1px)}
.model-chip{transition:border-color .35s,box-shadow .35s,transform .35s;background-color:white}.model-chip:hover{border-color:#b6c7ea;box-shadow:0 9px 24px -15px #315ce760;transform:translateY(-3px)}
.model-chip img{transition:opacity .35s}.model-chip:hover img{opacity:1}
.motion-arrived .model-chip{animation:logo-settle .7s cubic-bezier(.22,1,.36,1) backwards}.motion-arrived .model-chip:nth-child(3n+2){animation-delay:.065s}.motion-arrived .model-chip:nth-child(3n){animation-delay:.13s}
.connection-wires span{position:relative}.connection-wires span:after{content:'';position:absolute;left:-2px;top:0;width:3px;height:9px;border-radius:3px;background:#6285e3;opacity:0}.motion-arrived .connection-wires span:after{animation:connection-pass 1.9s ease-in-out 2}.motion-arrived .connection-wires.lower span:after{animation-delay:.55s}.motion-arrived .connection-wires span:nth-child(2):after{animation-delay:.22s}.motion-arrived .connection-wires.lower span:nth-child(3):after{animation-delay:.75s}
@keyframes logo-settle{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes connection-pass{0%{opacity:0;transform:translateY(0)}20%{opacity:.85}80%{opacity:.85}100%{opacity:0;transform:translateY(26px)}}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(prefers-reduced-motion:no-preference){.motion-arrived .tech-art .art-trace{stroke-dasharray:1000;stroke-dashoffset:0;animation:trace-route 1.8s cubic-bezier(.22,1,.36,1) backwards}@keyframes trace-route{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}}
