/* Cross-page transitions between the dark editorial pages.
   Both pages of a navigation must opt in, so every editorial page includes partials/page-transitions. */
@view-transition { navigation: auto; }

/* The nav stays put while the page content changes underneath it */
.nav { view-transition-name: site-nav; }

::view-transition-old(root) { animation: vt-out 160ms cubic-bezier(0.23, 1, 0.32, 1) both; }
::view-transition-new(root) { animation: vt-in 320ms cubic-bezier(0.23, 1, 0.32, 1) both; }
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in { from { opacity: 0; transform: translateY(12px); } }

/* Reduced motion: keep the crossfade, drop the movement */
@media (prefers-reduced-motion: reduce) {
    ::view-transition-new(root) { animation-name: vt-fade; }
    @keyframes vt-fade { from { opacity: 0; } }
}
