/* Native cross-document View Transitions (progressive enhancement) */
@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation: page-out var(--dur-slow, 450ms) var(--ease-standard, ease) both;
}
::view-transition-new(root) {
  animation: page-in var(--dur-slow, 450ms) var(--ease-standard, ease) both;
}

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

/* Vanilla-JS fallback (only engaged when the browser lacks cross-document
   view-transition support — see page-transitions.js) */
.page-fade {
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--dur-base, 320ms) var(--ease-standard, ease),
              transform var(--dur-base, 320ms) var(--ease-standard, ease);
}
.page-fade.is-leaving {
  opacity: 0;
  transform: translateY(-8px);
}
.page-fade.is-entering {
  opacity: 0;
  transform: translateY(8px);
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  .page-fade, .page-fade.is-leaving, .page-fade.is-entering {
    opacity: 1; transform: none; transition: none;
  }
}
