/* ========================================================================
   PAGE TRANSITION SYSTEM
   Smooth fade transitions between pages
   ======================================================================== */

/* Overlay for exit transition */
.page-transition-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: #000;
    opacity: 0;
    pointer-events: none;
    z-index: 99999;
    transition: opacity 0.5s ease-in-out;
}

.page-transition-overlay.active {
    opacity: 1;
    pointer-events: all;
}

/* Page entrance animation */
.page-enter {
    animation: pageEnter 0.6s ease-out forwards;
}

@keyframes pageEnter {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Body starts hidden, then fades in */
body.transitioning-in {
    opacity: 0;
}

body.transition-ready {
    animation: bodyFadeIn 0.5s ease-out forwards;
}

@keyframes bodyFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}