/* Short, consistent touch feedback; no continuous decorative motion. */
:root{--motion-press:110ms;--motion-state:170ms;--motion-ease:cubic-bezier(.22,1,.36,1)}
body button,body .tabbar-icon,body .settings-toggle,body .settings-toggle::after{
  transition:transform var(--motion-press) var(--motion-ease),background-color var(--motion-state) ease,border-color var(--motion-state) ease,color var(--motion-state) ease,opacity var(--motion-state) ease;
}
body button:active:not(:disabled){transform:scale(.975)}
body .option-row:active:not(:disabled),body .ux-menu-row:active,body .subject-card:active{transform:scale(.99)}
body .tabbar-item:active{transform:none}
body .tabbar-item:active .tabbar-icon{transform:scale(.9)}
body .catalog-chapter>summary{touch-action:manipulation;transition:background-color 150ms ease}
body .catalog-chapter>summary:active{background:var(--ux-soft)}
body .catalog-chapter>summary>.icon{transition:transform 200ms var(--motion-ease)}
body .thin-progress i{transition:none}
body .toast{transition:opacity 150ms ease,transform 180ms var(--motion-ease)}
body .catalog-chapter[data-motion-expanded="false"]>summary>.icon{transform:rotate(0deg)}
body .catalog-chapter[data-motion-expanded="true"]>summary>.icon{transform:rotate(90deg)}
@media(prefers-reduced-motion:reduce){
  body *,body *::before,body *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  body button:active:not(:disabled),body .tabbar-item:active .tabbar-icon{transform:none}
}
