.page-transition {
    position: fixed;
    inset: 0;
    z-index: 2147483647;
    background: #000;
    opacity: 1;
    pointer-events: none;
    animation: page-reveal 520ms cubic-bezier(.22, 1, .36, 1) forwards;
}

body.is-page-leaving .page-transition {
    animation: page-conceal 320ms cubic-bezier(.64, 0, .78, 0) forwards;
    pointer-events: auto;
}

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

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

@media (prefers-reduced-motion: reduce) {
    .page-transition,
    body.is-page-leaving .page-transition {
        display: none;
        animation: none;
    }
}
