@media (prefers-reduced-motion: no-preference) {
  .nav-btn, .chip, .icon-btn, .event-block, .modal, .check, .add-btn, .week-nav, .m-event, .day-tab,
  .menu-item, .logout-btn, .user-chip, .fab, .bottom-nav button, .see-more, .ghost, .primary, .danger {
    transition: background-color 150ms ease-out, color 150ms ease-out, box-shadow 150ms ease-out, opacity 150ms ease-out;
  }
  .modal-root { animation: fade 140ms ease-out; }
  .modal { animation: rise 160ms ease-out; }
  .menu { animation: rise 140ms ease-out; }
}

@keyframes fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes rise {
  from { transform: translateY(6px); opacity: 0; }
  to { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  /* The sign-in slideshow is exempt: the owner asked for it explicitly, and Windows turns this on
     whenever "Animation effects" is off. Everything else stays still. */
  *:not(.login-bg .slide) { transition: none !important; animation: none !important; }
}
