/* =========================================
   Page Transition Animations
   ========================================= */
.page-transition {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--bg-main);
    z-index: 99999;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1), opacity 0.6s ease;
    transform-origin: center;
}

/* Initially on screen covering everything */
.page-transition {
    transform: scaleY(1);
    opacity: 1;
}

/* When the page is loaded, it shrinks away */
.page-transition:not(.active) {
    transform: scaleY(0);
    opacity: 0;
}

/* When navigating away, it covers the screen again */
.page-transition.active {
    transform: scaleY(1);
    opacity: 1;
}

.transition-logo {
    width: 120px;
    height: auto;
    animation: pulse 2s infinite ease-in-out;
}

@keyframes pulse {
    0% {
        transform: scale(0.9);
        opacity: 0.7;
    }

    50% {
        transform: scale(1.1);
        opacity: 1;
    }

    100% {
        transform: scale(0.9);
        opacity: 0.7;
    }
}

/* Page header spacing for internal pages */
.page-header {
    padding-top: 150px;
    padding-bottom: 50px;
    background: radial-gradient(circle at center top, var(--surface) 0%, var(--bg-main) 100%);
    text-align: center;
    border-bottom: 1px solid var(--border-light);
}

.page-header h1 {
    font-size: clamp(3rem, 5vw, 4.5rem);
    margin-bottom: 1rem;
}

.page-header p {
    color: var(--text-secondary);
    font-size: 1.2rem;
    max-width: 600px;
    margin: 0 auto;
}