
/* Motion control engine: element-level overrides via custom properties */
.motion-controlled{--motion-duration:.8s;--motion-distance:46px;--motion-x:-46px;--motion-y:0px;--motion-scale:1;transition:opacity var(--motion-duration) cubic-bezier(.22,1,.36,1),transform var(--motion-duration) cubic-bezier(.22,1,.36,1)!important}
.motion-controlled.motion-waiting{opacity:0!important;transform:translate3d(var(--motion-x),var(--motion-y),0) scale(var(--motion-scale))!important}
.motion-controlled.motion-show{opacity:1!important;transform:translate3d(0,0,0) scale(1)!important}
.motion-controlled.motion-continuous{animation:kcFloat var(--float-duration,4s) ease-in-out infinite alternate!important}
@keyframes kcFloat{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--motion-x),var(--motion-y),0)}}
@media(prefers-reduced-motion:reduce){.motion-controlled{animation:none!important;opacity:1!important;transform:none!important;transition:none!important}}
