@media (prefers-reduced-motion: no-preference) {
  @keyframes glass-ambient-drift {
    0%, 100% { transform: translate3d(-3%, -2%, 0) scale(1); opacity: .48; }
    50% { transform: translate3d(3%, 2%, 0) scale(1.06); opacity: .72; }
  }
  html[data-theme='glass'] body { isolation: isolate; }
  html[data-theme='glass'] body::before {
    content: '';
    position: fixed;
    inset: -15%;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(ellipse at 22% 30%, #9fcafa 0, transparent 48%), radial-gradient(ellipse at 75% 25%, #d1bbef 0, transparent 48%), radial-gradient(ellipse at 65% 80%, #a8e1da 0, transparent 50%);
    animation: glass-ambient-drift 32s ease-in-out infinite;
  }
}
/* Small, purposeful movements keep controls responsive without delaying input. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes surface-appear {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
  }

  @keyframes backdrop-appear {
    from { opacity: 0; }
    to { opacity: 1; }
  }

  .modal-backdrop { animation: backdrop-appear 160ms ease-out both; }
  .modal-panel, .settings-panel, .mobile-menu-panel {
    animation: surface-appear 200ms cubic-bezier(.2, .7, .2, 1) both;
  }

  .course-row, .schedule-class-card, .schedule-mobile-class {
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  }

  @media (hover: hover) {
    .course-row:hover, .schedule-class-card:hover, .schedule-mobile-class:hover {
      transform: translateY(-2px);
      box-shadow: 0 5px 14px rgba(8, 36, 81, .12);
    }
  }

  .course-row:active, .schedule-class-card:active, .schedule-mobile-class:active {
    transform: scale(.985);
  }
}
