/* KVYA motion system: local assets, keyboard/touch friendly, no layout-wide transitions. */
:root{--kv-ease:cubic-bezier(.22,1,.36,1);--kv-fast:160ms;--kv-motion:260ms}
@media screen{
.motion-ui :is(.btn,button,.pill,.roundbtn,.sidebar a,.sidebar summary,.master-tabs a,.navlinks a,.text-link){transition:background-color var(--kv-fast) ease,color var(--kv-fast) ease,border-color var(--kv-fast) ease,box-shadow var(--kv-motion) ease;-webkit-tap-highlight-color:transparent}
.motion-ui :is(.btn,button,.pill,.roundbtn):not(:disabled):active{transform:none;box-shadow:inset 0 2px 5px #152d2526}
.motion-ui :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #619b83;outline-offset:4px}
.motion-ui :is(input,select,textarea){transition:border-color var(--kv-fast) ease,box-shadow var(--kv-fast) ease}
.motion-ui :is(input,select,textarea):focus{box-shadow:0 0 0 3px #619b831c}
.motion-ui :is(button,.btn):disabled{cursor:not-allowed;transform:none;box-shadow:none}
.motion-ui details>summary{cursor:pointer}
/* Keep text-bearing controls on the pixel grid during pointer interaction. */
.motion-ui .stat{transition:background-color var(--kv-fast) ease,border-color var(--kv-fast) ease,box-shadow var(--kv-motion) ease}
.motion-ui .stat:hover{transform:none}
.motion-ui dialog[open]{transform-origin:center center}
.motion-ui .nav{transition:box-shadow var(--kv-motion) ease}
.motion-ui.has-scrolled .nav{box-shadow:0 7px 28px #152d2512}
.motion-ui.visitor-motion :is(section[id],div[id]){scroll-margin-top:100px}
.motion-ui.visitor-motion :is(.product-art img,.work-visual img){transition:transform 600ms var(--kv-ease)}
@media(hover:hover) and (pointer:fine){
.motion-ui :is(.btn,button.pill,.roundbtn):not(:disabled):hover{transform:none;box-shadow:0 5px 15px #152d2514}
.motion-ui .sidebar :is(a,summary):hover{transform:none}
.motion-ui .navlinks a:hover{transform:none}
.motion-ui.visitor-motion :is(.product,.work):hover :is(.product-art img,.work-visual img){transform:scale(1.035)}
}
@media(max-width:720px){
.motion-ui.visitor-motion .navlinks{display:flex;visibility:hidden;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity 200ms ease,transform 260ms var(--kv-ease),visibility 260ms;box-shadow:0 16px 24px #152d2510}
.motion-ui.visitor-motion .navlinks.open{visibility:visible;opacity:1;transform:none;pointer-events:auto}
}
@media(prefers-reduced-motion:no-preference){html:has(.visitor-motion){scroll-behavior:smooth}}
@media(prefers-reduced-motion:reduce){
.motion-ui *,.motion-ui *::before,.motion-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-ui :is(.btn,button,.sidebar a,.sidebar summary,.navlinks a):hover,.motion-ui :is(.btn,button):active{transform:none!important}
}
}
