/* =========================================================
   ZENITH PRELOADER
========================================================= */

#preloader {
    position:
        fixed;

    inset:
        0;

    z-index:
        99999;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    background:
        radial-gradient(
            circle at center,
            #151515 0%,
            #090909 45%,
            #040404 100%
        );

    opacity:
        1;

    visibility:
        visible;

    transition:
        opacity 0.75s ease,
        visibility 0.75s ease;
}


#preloader::before {
    content:
        "";

    position:
        absolute;

    inset:
        0;

    background:
        radial-gradient(
            circle at center,
            rgba(
                253,
                178,
                3,
                0.07
            ),
            transparent 36%
        );

    pointer-events:
        none;
}


.loader-content {
    position:
        relative;

    z-index:
        1;

    width:
        min(
            20rem,
            80vw
        );

    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;

    text-align:
        center;
}


/* =========================================================
   EMBLEM
========================================================= */

.loader-emblem {
    width:
        6rem;

    height:
        6rem;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    margin-bottom:
        1.5rem;

    animation:
        loaderEmblemPulse
        2.2s
        ease-in-out
        infinite;
}


.loader-emblem img {
    display:
        block;

    width:
        100%;

    height:
        100%;

    object-fit:
        contain;

    border-radius: 50%;

    filter:
        drop-shadow(
            0 0 1.5rem
            rgba(
                253,
                178,
                3,
                0.2
            )
        );
}


/* =========================================================
   BRAND
========================================================= */

.loader-brand {
    display:
        flex;

    flex-direction:
        column;

    align-items:
        center;
}


.loader-title {
    color:
        white;

    font-family:
        'Bebas Neue',
        sans-serif;

    font-size:
        clamp(
            2.8rem,
            10vw,
            4rem
        );

    line-height:
        0.9;

    letter-spacing:
        0.22rem;
}


.loader-subtitle {
    margin-top:
        0.4rem;

    color:
        #fdb203;

    font-size:
        0.65rem;

    font-weight:
        800;

    letter-spacing:
        0.32rem;
}


/* =========================================================
   LOADING TRACK
========================================================= */

.loading-track {
    width:
        100%;

    height:
        2px;

    margin-top:
        2rem;

    overflow:
        hidden;

    background:
        rgba(
            255,
            255,
            255,
            0.1
        );
}


.loading-bar {
    width:
        0%;

    height:
        100%;

    background:
        #fdb203;

    box-shadow:
        0 0 12px
        rgba(
            253,
            178,
            3,
            0.45
        );

    animation:
        loaderProgress
        1.15s
        cubic-bezier(
            0.4,
            0,
            0.2,
            1
        )
        forwards;
}


/* =========================================================
   STATUS
========================================================= */

.loader-status {
    margin-top:
        0.9rem;

    color:
        #666;

    font-size:
        0.6rem;

    font-weight:
        800;

    letter-spacing:
        0.18rem;
}


/* =========================================================
   HIDE PRELOADER
========================================================= */

#preloader.preloader-hidden {
    opacity:
        0;

    visibility:
        hidden;

    pointer-events:
        none;
}


/* =========================================================
   ANIMATIONS
========================================================= */

@keyframes loaderProgress {

    0% {
        width: 0%;
    }

    100% {
        width: 100%;
    }

}


@keyframes loaderEmblemPulse {

    0%,
    100% {
        transform:
            scale(1);
    }

    50% {
        transform:
            scale(1.04);
    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .loader-emblem,
    .loading-bar {
        animation:
            none;
    }

    .loading-bar {
        width:
            100%;
    }

}