/* UI audit: short, finite motion; no JavaScript timers or persistent GPU layers. */
:root { --sessivio-motion-fast: 140ms; --sessivio-motion-enter: 180ms; --sessivio-motion-ease: cubic-bezier(.2,.75,.25,1); }
.sessivio-main .btn, [role="dialog"] .btn,
.sessivio-main button.motion-surface {
  transition: translate var(--sessivio-motion-fast) var(--sessivio-motion-ease),
    background-color var(--sessivio-motion-fast) ease,
    border-color var(--sessivio-motion-fast) ease,
    color var(--sessivio-motion-fast) ease;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .sessivio-main .btn:not(:disabled):hover, [role="dialog"] .btn:not(:disabled):hover,
  .sessivio-main button.motion-surface:not(:disabled):hover { translate: 0 -1px; }
}
@media (prefers-reduced-motion: no-preference) {
  .sessivio-main .btn:not(:disabled):active, [role="dialog"] .btn:not(:disabled):active,
  .sessivio-main button.motion-surface:not(:disabled):active { translate: 0 1px; }
  [role="dialog"].dialog-in { animation: sessivio-dialog-enter var(--sessivio-motion-enter) var(--sessivio-motion-ease) both; }
  .sessivio-main .motion-surface { animation-duration: var(--sessivio-motion-enter); }
}
@keyframes sessivio-dialog-enter {
  from { opacity: 0; translate: 0 6px; }
  to { opacity: 1; translate: 0 0; }
}
/* The dim backdrop separates layers without a full-screen blur pass. */
.fixed:has(> [role="dialog"]) { backdrop-filter: none; -webkit-backdrop-filter: none; }
.sessivio-main .btn:focus-visible, [role="dialog"] .btn:focus-visible,
.sessivio-main button.motion-surface:focus-visible {
  outline: 2px solid var(--color-signal, #a78bfa); outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .sessivio-main .btn, [role="dialog"] .btn, .sessivio-main .motion-surface {
    transition: none !important; translate: none !important; animation: none !important;
  }
  [role="dialog"].dialog-in, [role="dialog"].drawer-in,
  .fixed:has(> [role="dialog"]) { animation: none !important; }
}
