@view-transition {
    navigation: auto;
}

::view-transition-old(root) {
    animation: portal-page-out 180ms ease-in both;
}

::view-transition-new(root) {
    animation: portal-page-in 280ms ease-out both;
}

body.portal-page-leaving {
    opacity: 0;
    transform: translateY(3px);
}

body.portal-page-transition {
    transition: opacity 180ms ease, transform 180ms ease;
}

@keyframes portal-page-out {
    from { opacity: 1; transform: translateY(0); }
    to { opacity: 0; transform: translateY(3px); }
}

@keyframes portal-page-in {
    from { opacity: 0; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root),
    ::view-transition-new(root) {
        animation: none;
    }

    body.portal-page-transition {
        transition: none;
    }
}
