body {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.28s ease, transform 0.28s ease;
}

body.is-leaving {
  opacity: 0;
  transform: translateY(10px);
}

.scene-figure img,
.track-card,
.set-card,
.note-card,
.rules-grid__item,
.contact-card,
.saved-plan-card,
.utility-strip > * {
  transition: transform 0.32s ease, box-shadow 0.32s ease, border-color 0.32s ease;
}

.scene-figure:hover img,
.track-card:hover,
.set-card:hover,
.note-card:hover,
.rules-grid__item:hover,
.contact-card:hover,
.saved-plan-card:hover,
.utility-strip > *:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-deep);
}

.main-nav a,
.city-switch a,
.pill-link,
.panel-set-button,
.saved-plan-card__button,
.plan-toolbar button,
.console-panel__actions a,
.console-panel__actions button {
  transition: transform 0.22s ease, background-color 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

.main-nav a:hover,
.city-switch a:hover,
.pill-link:hover,
.panel-set-button:hover,
.saved-plan-card__button:hover,
.plan-toolbar button:hover,
.console-panel__actions a:hover,
.console-panel__actions button:hover {
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }

  body,
  body.is-leaving {
    transform: none;
    opacity: 1;
  }

  .scene-figure:hover img,
  .track-card:hover,
  .set-card:hover,
  .note-card:hover,
  .rules-grid__item:hover,
  .contact-card:hover,
  .saved-plan-card:hover,
  .utility-strip > *:hover,
  .main-nav a:hover,
  .city-switch a:hover,
  .pill-link:hover,
  .panel-set-button:hover,
  .saved-plan-card__button:hover,
  .plan-toolbar button:hover,
  .console-panel__actions a:hover,
  .console-panel__actions button:hover {
    transform: none;
    box-shadow: var(--shadow-soft);
  }
}
