/* Shared choreography. Geometry, artwork, game deadlines and touch targets stay intact. */
:root{--motion-quick:110ms;--motion-feedback:190ms;--motion-enter:280ms;--motion-ease:cubic-bezier(.16,1,.3,1)}
html.motion-ready :is(.modal,.sheet,#gameScreen,#homeScreen,#spectatorScreen){animation:none}
html.motion-ready .salon-hero,html.motion-ready .salon-play{animation:none}
html.motion-ready .card.played-card{animation:none}
html.motion-ready .trick.winner{animation:none}
html.motion-ready .trick.winner .played-card{filter:drop-shadow(0 0 6px var(--accent)) brightness(1.025)}
html.motion-ready .trick[class*=collect-] .played-card{animation:none!important;transition:none!important;translate:0 0;rotate:0deg;scale:1;opacity:1}
html.motion-ready .hand .card{transition:transform var(--motion-feedback) var(--motion-ease),filter 160ms ease,box-shadow 160ms ease}
html.motion-ready .player.turn .avatar{animation:none}
html.motion-ready .player.turn>span{transition:transform var(--motion-feedback) var(--motion-ease),color var(--motion-feedback)}
html.motion-ready .player .avatar{position:relative;transition:border-color var(--motion-feedback),box-shadow var(--motion-feedback)}
html.motion-ready .player.turn .avatar:after{content:"";position:absolute;inset:-5px;border:1px solid var(--accent);border-radius:inherit;opacity:.4;pointer-events:none;animation:motion-turn-ring 600ms var(--motion-ease) both}
html.motion-ready .hakam-emphasis .player.hakam em{animation:none}
html.motion-ready .table.sponsor-featured .table-sponsor{animation:motion-sponsor 2400ms ease-in-out 2;transition:transform 400ms var(--motion-ease),opacity 220ms ease}
html.motion-ready .toast{transition:transform 230ms var(--motion-ease),opacity 180ms ease}
html.motion-ready :is(button,[role=button],a[href]):not(.card){transition:scale var(--motion-quick) var(--motion-ease),transform var(--motion-feedback) var(--motion-ease),background-color var(--motion-feedback),border-color var(--motion-feedback),filter var(--motion-feedback),opacity var(--motion-feedback)}
html.motion-ready :is(button,[role=button],a[href]):not(.card).hokm-press{scale:.975;filter:brightness(1.09);outline-color:transparent}
html.motion-ready :is(button,[role=button],a[href]):not(.card).hokm-click{animation:motion-confirm 240ms ease-out}
@keyframes motion-turn-ring{from{scale:.86;opacity:.72}to{scale:1;opacity:.4}}
@keyframes motion-confirm{0%{filter:brightness(1.14);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}100%{filter:brightness(1);box-shadow:0 0 0 5px transparent}}
@keyframes motion-sponsor{0%,100%{opacity:1}50%{opacity:.83}}
@media(prefers-reduced-motion:reduce){html.motion-ready *,html.motion-ready *:before,html.motion-ready *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html.motion-ready .hokm-press{scale:1!important}html.motion-ready .trick[class*=collect-] .played-card{translate:none;rotate:none;scale:1;opacity:1}}
