/* Motion shared by every Luna page (Oct 2026).
   Page changes use cross-document View Transitions: Chrome/Edge 126+ and Safari 18.2+;
   other browsers keep the normal reload. Nothing here runs under prefers-reduced-motion. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation: 200ms ease-in both luna-vt-out; }
  ::view-transition-new(root) { animation: 320ms cubic-bezier(.2, .8, .3, 1) both luna-vt-in; }
  /* the logo holds still while the page changes around it */
  ::view-transition-group(luna-logo) { animation-duration: 380ms; animation-timing-function: cubic-bezier(.2, .8, .3, 1); }
  /* sign-up / sign-in card morphs into the app's hero card */
  ::view-transition-group(luna-card) { animation-duration: 420ms; animation-timing-function: cubic-bezier(.2, .8, .3, 1); }
  .brand .moon, .brand .brand-mark, .brand .mark, .brand > img { view-transition-name: luna-logo; }
}
@keyframes luna-vt-out { to { opacity: 0; transform: translateY(-8px); } }
@keyframes luna-vt-in { from { opacity: 0; transform: translateY(12px); } }
