/* INTRO LOADER - CORE STYLES */
.intro-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: #000;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    pointer-events: auto;

    /* CURTAIN TRANSITION (Expo InOut for premium feel) */
    transition: transform 1.0s cubic-bezier(0.87, 0, 0.13, 1);
    /* Delay shortened: Starts moving just as text finishes accelerating */
    transition-delay: 0.4s;
}

.intro-text,
.intro-sub {
    will-change: transform, opacity;
}

/* --- SUBHEADING ENTRY --- */
.intro-sub {
    opacity: 0;
    animation: subEnter 1.0s ease-out 1.2s forwards;
}

@keyframes subEnter {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* --- EXIT STATE (.hidden) --- */

/* 1. CURTAIN EXIT */
.intro-loader.hidden {
    transform: translateY(-100%);
    pointer-events: none;
}

/* 2. TEXT EXIT (Fast & Sharp) */
.intro-loader.hidden .intro-text {
    /* Main text shoots up immediately */
    transform: translateY(-120px);
    opacity: 0;
    transition: transform 0.6s cubic-bezier(0.7, 0, 0.3, 1), opacity 0.6s ease;
    transition-delay: 0s;
}

.intro-loader.hidden .intro-sub {
    /* Subheading follows instantly (minimal stagger) */
    transform: translateY(-120px);
    opacity: 0;
    transition: transform 0.6s cubic-bezier(0.7, 0, 0.3, 1), opacity 0.6s ease;
    transition-delay: 0.05s;
}

/* --- CONTENT REVEAL --- */
body>*:not(.intro-loader) {
    transition: transform 1.2s cubic-bezier(0.22, 1, 0.36, 1), opacity 1.2s ease-out;
    /* Start revealing as curtain crosses midway point */
    transition-delay: 0.8s;
    transform: translateY(150px);
    opacity: 0;
}

body.loaded>*:not(.intro-loader) {
    transform: translateY(0);
    opacity: 1;
}