/**
 * View Transition API for Theater+ (soft navigation + full reload fallback).
 */

@view-transition {
  navigation: auto;
}

html.vt-navigating {
  cursor: progress;
}

.header {
  view-transition-name: site-header;
}

main.page {
  view-transition-name: page-main;
}

.footer {
  view-transition-name: site-footer;
}

::view-transition-old(page-main) {
  animation: vt-page-out 0.28s cubic-bezier(0.4, 0, 1, 1) both;
}

::view-transition-new(page-main) {
  animation: vt-page-in 0.32s cubic-bezier(0, 0, 0.2, 1) both;
}

::view-transition-old(site-header),
::view-transition-new(site-header),
::view-transition-old(site-footer),
::view-transition-new(site-footer) {
  animation-duration: 0.22s;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.2s;
}

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

@keyframes vt-page-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
}

@media (prefers-reduced-motion: reduce) {
  @view-transition {
    navigation: auto;
  }

  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) {
    animation: none !important;
  }
}
