/* =============================================================
   PAGE PRELOADER
============================================================= */
#page-preloader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: var(--bsp-black, #0d0b08);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity .5s ease, visibility .5s ease;
}

#page-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.preloader-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.1rem;
}

.preloader-star {
    position: relative;
    width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    color: var(--bsp-gold, #d4af37);
    z-index: 2;
    animation: preloaderPulse 1.4s ease-in-out infinite;
    margin-top: 8px;
}

.preloader-ring {
    position: absolute;
    width: 90px;
    height: 90px;
    border-radius: 50%;
    border: 2px solid rgba(212, 175, 55, .15);
    border-top-color: var(--bsp-gold, #d4af37);
    animation: preloaderSpin 1s linear infinite;
}

.preloader-text {
    font-family: var(--font-body, inherit);
    font-size: .68rem;
    letter-spacing: .3em;
    color: rgba(255,255,255,.55);
    font-weight: 700;
    margin-top: .35rem;
}

@keyframes preloaderSpin {
    to { transform: rotate(360deg); }
}

@keyframes preloaderPulse {
    0%, 100% {
        transform: scale(1);
        text-shadow: 0 0 8px rgba(212,175,55,.4);
    }
    50% {
        transform: scale(1.15);
        text-shadow: 0 0 18px rgba(212,175,55,.85);
    }
}

/* prevent scroll/interaction while loading */
body.is-loading {
    overflow: hidden;
}