:root {
  --page-fade-dur: 200ms;
  --page-slide-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root) {
  animation: site-page-out var(--page-fade-dur) ease-out both;
}

::view-transition-new(root) {
  animation: site-page-in var(--page-fade-dur) var(--page-slide-ease) both;
}

.site-page-enter,
body:not(:has(.site-shell)) {
  animation: site-page-in var(--page-fade-dur) var(--page-slide-ease) both;
}

@keyframes site-page-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes site-page-out {
  to {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  @view-transition {
    navigation: none;
  }
  .site-page-enter,
  body:not(:has(.site-shell)),
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation: none;
  }
}
