/* Prevent scrolling while preloader is active */
body.no-scroll {
    overflow: hidden;
}

.preloader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: linear-gradient(-45deg, #060913, #121c2d, #1f1910, #090d16);
    background-size: 400% 400%;
    animation: luxuryGradientShift 6s ease infinite;
    color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 999999;
    font-family: 'Montserrat', sans-serif;
    transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1), opacity 0.8s ease;
}

@keyframes luxuryGradientShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}


.preloader-content {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
}

/* Logo Animation */
.logo-wrapper {
    margin-bottom: 24px;
    opacity: 0;
    transform: scale(0.85);
    animation: fadeScaleIn 1s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
}

.preloader-logo {
    max-width: 110px; /* Adjust based on your logo size */
    height: auto;
    filter: drop-shadow(0 4px 12px rgba(212, 175, 55, 0.15));
}

/* Text Masking Effect */
.text-wrapper {
    overflow: hidden;
}

.brand-title {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 300;
    letter-spacing: 3px;
    text-transform: uppercase;
    margin: 0;
    transform: translateY(110%);
    animation: revealText 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.6s forwards;
}

.brand-title span {
    font-weight: 700;
    color: #d4af37; /* Luxury Gold accent - change to match your brand color */
}

/* Expanding Center Line */
.line-divider {
    width: 0%;
    height: 1px;
    background: linear-gradient(90deg, transparent, #d4af37, transparent);
    margin: 18px 0;
    animation: expandLine 0.8s cubic-bezier(0.16, 1, 0.3, 1) 1.1s forwards;
}

/* Subtitle / Tagline */
.brand-tagline {
    font-size: clamp(0.75rem, 2vw, 0.95rem);
    font-weight: 300;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: #a0a0a0;
    margin: 0;
    transform: translateY(110%);
    animation: revealText 0.9s cubic-bezier(0.16, 1, 0.3, 1) 1.3s forwards;
}

/* Exit State (Triggered by JS) */
.preloader-overlay.preloader-exit .preloader-content {
    opacity: 0;
    transform: translateY(-30px) scale(0.98);
    transition: all 0.5s cubic-bezier(0.7, 0, 0.3, 1);
}

.preloader-overlay.preloader-exit {
    transform: translateY(-100%);
    transition-delay: 0.3s; /* Waits slightly for text to fade before lifting black curtain */
}

/* Keyframes */
@keyframes fadeScaleIn {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes revealText {
    to {
        transform: translateY(0);
    }
}

@keyframes expandLine {
    to {
        width: 220px;
    }
}