/* ==========================================================================
   Page-to-page transitions (public site only — linked from layouts/app,
   not the admin layout). Uses cross-document View Transitions: browsers
   without support (e.g. Firefox today) just navigate normally.
   ========================================================================== */

@view-transition {
  navigation: auto;
}

/* The header is its own transition group so it stays put while the page
   content underneath fades/slides; only the active nav link cross-fades. */
.site-header { view-transition-name: site-header; }

@keyframes page-out {
  to { opacity: 0; transform: translateY(-6px); }
}
@keyframes page-in {
  from { opacity: 0; transform: translateY(10px); }
}

::view-transition-old(root) {
  animation: page-out 140ms ease-in both;
}
::view-transition-new(root) {
  animation: page-in 260ms cubic-bezier(0.2, 0.7, 0.2, 1) 60ms both;
}
::view-transition-group(site-header) {
  animation-duration: 200ms;
}

@media (prefers-reduced-motion: reduce) {
  /* no movement; a near-instant cross-fade instead */
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
  ::view-transition-group(site-header) { animation: none; }
}
