/* Short, one-shot transitions. Never animate messages or the scroll container. */
@keyframes lixon-modal-enter{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes lixon-panel-enter{from{opacity:0}to{opacity:1}}
html[data-reduce-motion="false"] .modal-mask:not(.hide)>.modal,
html[data-reduce-motion="false"] dialog[open]{animation:lixon-modal-enter 200ms cubic-bezier(.2,.8,.2,1) both}
html[data-reduce-motion="false"] .tab-panel:not([style*="display: none"]):not([style*="display:none"]){animation:lixon-panel-enter 150ms ease-out}
html[data-reduce-motion="false"] :is(.btn,.icon-btn,.folder-nav-item,.palette-option,.tab){transition:background-color 150ms ease,color 150ms ease,border-color 150ms ease,opacity 150ms ease,transform 150ms cubic-bezier(.2,.8,.2,1)}
html[data-reduce-motion="false"] :is(.btn,.icon-btn):active:not(:disabled){transform:scale(.97)}
@media(hover:hover) and (pointer:fine){html[data-reduce-motion="false"] .palette-option:hover{transform:translateY(-2px)}}
@media(max-width:1024px){html[data-reduce-motion="false"] .sidebar{transition:transform 240ms cubic-bezier(.2,.8,.2,1)!important}}
.motion-setting>label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.motion-setting input{width:18px;height:18px;accent-color:var(--accent);flex:none}
html[data-reduce-motion="true"] *,html[data-reduce-motion="true"] *::before,html[data-reduce-motion="true"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
/* Keep a quiet opacity cue; remove all travel and repeated movement. */
html[data-reduce-motion="true"] :is(.btn,.icon-btn,.msg-actions){transition:opacity 80ms linear!important}
html[data-reduce-motion="true"] .sidebar-motion-copy{display:none!important}
/* System accessibility preference also applies before account state loads. */
@media(prefers-reduced-motion:reduce){html *,html *::before,html *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
