/* Basic interaction motion. No intervals, persistent layers or global renderer throttling.
   Individual scale leaves transforms used by menus, sliders and games untouched. */
body:not(.no-animations):not(.low-power) :where(button,a[href],summary,[role=button],[role=tab],input,textarea,select){transition:scale 110ms ease-out,background-color 140ms ease,border-color 140ms ease,color 140ms ease,opacity 140ms ease}
@media(hover:hover){body:not(.no-animations):not(.low-power) :where(button,a[href],summary,[role=button],[role=tab]):not(:disabled):hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border-subtle))}}
body:not(.no-animations):not(.low-power) :where(button,a[href],summary,[role=button],[role=tab]):not(:disabled):active{scale:.97}
body:not(.no-animations):not(.low-power) :where(input[type=checkbox],input[type=radio]):active{scale:.9}
body:not(.no-animations):not(.low-power) :where(dialog[open],.overlay.active>.studio-modal,.overlay.open>.studio-modal,.workspace-panel:not([hidden]),.tay-action-menu:popover-open,details[open]>.option-content){animation:tay-interaction-enter 160ms ease-out}
/* One section-entry rule; opacity keeps fixed controls and scroll geometry unchanged. */
body:not(.no-animations):not(.low-power) .section-view.active{animation:tay-section-enter 240ms ease-out}
@keyframes tay-section-enter{from{opacity:.35}to{opacity:1}}
@keyframes tay-interaction-enter{from{opacity:.35;translate:0 5px}to{opacity:1;translate:0 0}}
/* Individual animations must never remain running in an inactive page. */
.section-view:not(.active){animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body :where(button,a[href],summary,[role=button],[role=tab],input,textarea,select){transition:none!important;scale:none!important}body :where(dialog[open],.overlay.active>.studio-modal,.overlay.open>.studio-modal,.workspace-panel:not([hidden]),.section-view.active,.tay-action-menu:popover-open,details[open]>.option-content){animation:none!important}}
