/* Small, finite motion across the UI. Music notation and all playback geometry remain stationary. */
@media(prefers-reduced-motion:no-preference){
 button,a,input,select,textarea,summary{transition-property:background-color,border-color,color,box-shadow,opacity;transition-duration:160ms;transition-timing-function:ease-out}
 :is(.button,.auth-submit,.text-link,.parameter-trigger,.cp-more-tools>summary,.sidebar-toggle){transition-property:background-color,border-color,color,box-shadow,opacity,transform}
 :is(.button,.auth-submit,.sidebar-toggle):hover:not(:disabled){box-shadow:0 4px 12px #244b3214;transform:translateY(-1px)}
 :is(.button,.auth-submit,.sidebar-toggle):active:not(:disabled){transform:translateY(1px);box-shadow:none}
 :is(.nav-button,.admin-sidebar nav button,.library-appbar>nav>button,.cp-view-tabs button,[role=tab]){transition:background-color 180ms ease,color 180ms ease,box-shadow 180ms ease}
 :is(input,select,textarea):focus{transition:border-color 160ms ease,box-shadow 160ms ease}
 :is(.course-card,.cp-mode-card,.cp-sound-tile,.quick-actions>button){transition:border-color 160ms ease,background-color 160ms ease,box-shadow 160ms ease}
 :is(.modal,.admin-drawer,.score-parameters,.cp-quick-editor,.auth-help details[open]>p,.library-more[open]>div,.cp-more-tools[open]>nav){animation:ui-panel-appear 160ms ease-out}
 :is(.auth-form-wrap,.auth-top){animation:ui-panel-appear 220ms ease-out}
 :is(.sidebar-toggle,.cp-mode-card) svg{transition:color 160ms ease}
 :is(.auth-input):focus-within{box-shadow:0 0 0 3px #92b4961a;border-color:#80a98a}
 .auth-submit[disabled]{animation:ui-login-wait 1.3s ease-in-out infinite}
 .auth-error:not(:empty){animation:ui-message-appear 160ms ease-out}
 .auth-status:not(:empty){animation:ui-panel-appear 160ms ease-out}
}
@keyframes ui-panel-appear{from{opacity:0}to{opacity:1}}
@keyframes ui-message-appear{from{opacity:.2}to{opacity:1}}
@keyframes ui-login-wait{0%,100%{opacity:.85}50%{opacity:.6}}
@media(prefers-reduced-motion:reduce){
 :is(.button,.auth-submit,.nav-button,.admin-sidebar nav button,.sidebar-toggle,.cp-view-tabs button,.modal,.admin-drawer,.score-parameters,.cp-quick-editor,.auth-form-wrap,.auth-top,.auth-status,.auth-error,.cp-sound-tile,.course-card,.cp-mode-card,.quick-actions>button){animation:none!important;transition:none!important}
 :is(.button,.auth-submit,.sidebar-toggle):hover:not(:disabled),:is(.button,.auth-submit,.sidebar-toggle):active:not(:disabled){transform:none}
 /* Reduced motion keeps non-spatial color feedback instead of disabling the UI. */
 :is(body,.cp-pro,.ch-root,.theory-module,.admin-main,.auth-card) :is(button,a,input,select,textarea,summary){transition:background-color 140ms ease,border-color 140ms ease,color 140ms ease,box-shadow 140ms ease!important}
 :is(.cp-pro,.ch-root) button:active:not(:disabled){transform:none;box-shadow:inset 0 0 0 2px #4e795b45}
 :is(.cp-pro,.ch-root) button:hover:not(:disabled){border-color:#9ab7a0}
}
