/* =====================================================
   AARAV DIGITAL PRO
   PREMIUM PRELOADER
   COMPLETE FRESH VERSION
===================================================== */


/* =====================================================
   MAIN PRELOADER
===================================================== */

#adp-preloader {

    position: fixed !important;

    inset: 0 !important;

    width: 100vw !important;

    height: 100vh !important;

    min-height: 100dvh !important;

    display: flex !important;

    align-items: center !important;

    justify-content: center !important;

    overflow: hidden !important;

    background: #020202 !important;

    z-index: 2147483647 !important;

    opacity: 1;

    visibility: visible;

    pointer-events: auto;

    transition:
        opacity .45s ease,
        visibility .45s ease;

}


/* =====================================================
   HIDDEN
===================================================== */

#adp-preloader.adp-preloader-hidden {

    opacity: 0 !important;

    visibility: hidden !important;

    pointer-events: none !important;

}


/* =====================================================
   CENTER STAGE
===================================================== */

#adp-preloader
.adp-preloader-stage {

    width: min(560px, 92vw);

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    text-align: center;

}


/* =====================================================
   LOGO AREA
===================================================== */

#adp-preloader
.adp-preloader-logo-area {

    position: relative;

    width: min(430px, 82vw);

    height: min(430px, 82vw);

    display: flex;

    align-items: center;

    justify-content: center;

}


/* =====================================================
   GOLD GLOW BEHIND LOGO
===================================================== */

#adp-preloader
.adp-preloader-logo-area::before {

    content: "";

    position: absolute;

    left: 50%;

    top: 50%;

    width: 62%;

    height: 62%;

    transform:
        translate(-50%, -50%);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(218,174,40,.16) 0%,
            rgba(218,174,40,.06) 38%,
            transparent 72%
        );

    filter: blur(22px);

    pointer-events: none;

}


/* =====================================================
   LOGO
   IMPORTANT:
   Logo smaller than orbit
===================================================== */

#adp-preloader
.adp-preloader-logo {

    position: relative !important;

    z-index: 5 !important;

    display: block !important;

    width: 72% !important;

    max-width: none !important;

    height: auto !important;

    margin: 0 !important;

    object-fit: contain !important;

    opacity: 1 !important;

    transform: scale(1);

    filter:
        drop-shadow(
            0 0 18px
            rgba(218,174,40,.12)
        );

}


/* =====================================================
   OUTER GOLD ORBIT
   Circle is larger than logo
===================================================== */

#adp-preloader
.adp-preloader-orbit {

    position: absolute !important;

    left: 50% !important;

    top: 50% !important;

    width: 94% !important;

    height: 94% !important;

    margin: 0 !important;

    transform:
        translate(-50%, -50%) !important;

    border:
        1px solid
        rgba(232,181,47,.42) !important;

    border-radius: 50% !important;

    z-index: 2 !important;

    animation:
        adpPreloaderOrbit
        5s linear infinite !important;

}


/* =====================================================
   SECOND SUBTLE ORBIT
===================================================== */

#adp-preloader
.adp-preloader-orbit::before {

    content: "";

    position: absolute;

    left: 7%;

    top: 7%;

    width: 86%;

    height: 86%;

    border:
        1px solid
        rgba(232,181,47,.12);

    border-radius: 50%;

}


/* =====================================================
   GOLD ORBIT + MOVING BALL
   RESPONSIVE FINAL VERSION
===================================================== */


/* =====================================================
   OUTER CIRCLE
   Circle stays static
===================================================== */

#adp-preloader
.adp-preloader-orbit {

    --orbit-size: min(355px, 78vw);

    position: absolute !important;

    left: 50% !important;
    top: 50% !important;

    width: var(--orbit-size) !important;
    height: var(--orbit-size) !important;

    margin: 0 !important;

    border:
        1px solid
        rgba(218,174,40,0.20) !important;

    border-radius: 50% !important;

    transform:
        translate(-50%, -50%) !important;

    z-index: 3 !important;

    /* Circle itself does NOT rotate */
    animation: none !important;

}


/* =====================================================
   SECOND SUBTLE CIRCLE
===================================================== */

#adp-preloader
.adp-preloader-orbit::before {

    content: "";

    position: absolute;

    inset: 14px;

    border:
        1px solid
        rgba(218,174,40,0.08);

    border-radius: 50%;

}


/* =====================================================
   GOLD BALL
   Moves exactly on the outer circle
===================================================== */

#adp-preloader
.adp-preloader-orbit-ball {

    --ball-size: 12px;

    position: absolute !important;

    left: 50% !important;
    top: 50% !important;

    width: var(--ball-size) !important;
    height: var(--ball-size) !important;

    margin-left:
        calc(var(--ball-size) / -2) !important;

    margin-top:
        calc(var(--ball-size) / -2) !important;

    border-radius: 50% !important;

    background:
        #f2c43d !important;

    box-shadow:

        0 0 8px
        #f2c43d,

        0 0 18px
        rgba(242,196,61,.80),

        0 0 30px
        rgba(242,196,61,.35);

    z-index: 20 !important;

    /*
     * The ball uses the actual orbit size.
     * No hard-coded mobile radius.
     */

    animation:
        adpGoldBallOrbit
        5s linear infinite !important;

}


/* =====================================================
   BALL ORBIT
   Radius = exactly half of the actual circle
===================================================== */

@keyframes adpGoldBallOrbit {

    from {

        transform:
            rotate(0deg)
            translateY(
                calc(
                    var(--orbit-size) / -2
                )
            );

    }

    to {

        transform:
            rotate(360deg)
            translateY(
                calc(
                    var(--orbit-size) / -2
                )
            );

    }

}


/* =====================================================
   MOBILE ORBIT
   Automatically follows the real circle size
===================================================== */

@media (max-width: 767px) {

    #adp-preloader
    .adp-preloader-orbit {

        --orbit-size:
            min(300px, 78vw);

    }


    #adp-preloader
    .adp-preloader-orbit-ball {

        --ball-size: 9px;

    }

}


/* =====================================================
   PRELOADER ORBIT FALLBACK
===================================================== */

@keyframes adpPreloaderOrbit {

    from {

        transform:
            translate(-50%, -50%)
            rotate(0deg);

    }

    to {

        transform:
            translate(-50%, -50%)
            rotate(360deg);

    }

}


/* =====================================================
   LOADING TEXT
===================================================== */

#adp-preloader
.adp-preloader-loading {

    position: relative;

    z-index: 10;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 7px;

    margin-top: 2px;

    margin-bottom: 26px;

    color: #e8b52f;

    font-size: 14px;

    font-weight: 800;

    letter-spacing: 7px;

    text-transform: uppercase;

}


/* =====================================================
   LOADING DOTS
===================================================== */

#adp-preloader
.adp-preloader-dots {

    display: flex;

    align-items: center;

    gap: 4px;

    margin-left: 2px;

}


#adp-preloader
.adp-preloader-dots i {

    display: block;

    width: 5px;

    height: 5px;

    border-radius: 50%;

    background: #e8b52f;

    opacity: .25;

    animation:
        adpPreloaderDot
        1s ease-in-out infinite;

}


#adp-preloader
.adp-preloader-dots i:nth-child(1) {

    animation-delay: 0s;

}


#adp-preloader
.adp-preloader-dots i:nth-child(2) {

    animation-delay: .15s;

}


#adp-preloader
.adp-preloader-dots i:nth-child(3) {

    animation-delay: .30s;

}


@keyframes adpPreloaderDot {

    0%,
    100% {

        opacity: .25;

        transform:
            translateY(0);

    }

    50% {

        opacity: 1;

        transform:
            translateY(-3px);

    }

}


/* =====================================================
   PROGRESS WRAPPER
===================================================== */

#adp-preloader
.adp-preloader-progress-wrap {

    width: min(430px, 78vw);

    display: flex;

    align-items: center;

    gap: 16px;

}


/* =====================================================
   PROGRESS TRACK
===================================================== */

#adp-preloader
.adp-preloader-progress {

    position: relative;

    flex: 1;

    height: 5px;

    overflow: hidden;

    border-radius: 999px;

    background:
        rgba(255,255,255,.07);

    border:
        1px solid
        rgba(232,181,47,.38);

}


/* =====================================================
   PROGRESS BAR
===================================================== */

#adp-preloader
.adp-preloader-progress-bar {

    width: 0%;

    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #b88916,
            #ffd84d,
            #e2ae2e
        );

    box-shadow:
        0 0 15px
        rgba(232,181,47,.65);

    transition:
        width .08s linear;

}


/* =====================================================
   PERCENT
===================================================== */

#adp-preloader
.adp-preloader-percent {

    min-width: 44px;

    color: #e8b52f;

    font-size: 17px;

    font-weight: 800;

    line-height: 1;

    text-align: left;

}


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

#adp-preloader
.adp-preloader-status {

    margin-top: 26px;

    color:
        rgba(255,255,255,.43);

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 5px;

    text-transform: uppercase;

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 600px) {

    #adp-preloader
    .adp-preloader-stage {

        width: 92vw;

    }


    #adp-preloader
    .adp-preloader-logo-area {

        width: 86vw;

        height: 86vw;

    }


    #adp-preloader
    .adp-preloader-logo {

        width: 70% !important;

    }


    #adp-preloader
    .adp-preloader-orbit {

        --orbit-size:
            min(300px, 78vw);

    }


    #adp-preloader
    .adp-preloader-orbit-ball {

        --ball-size: 9px;

    }


    #adp-preloader
    .adp-preloader-loading {

        font-size: 12px;

        letter-spacing: 6px;

        margin-bottom: 24px;

    }


    #adp-preloader
    .adp-preloader-progress-wrap {

        width: 78vw;

        gap: 13px;

    }


    #adp-preloader
    .adp-preloader-percent {

        min-width: 40px;

        font-size: 15px;

    }


    #adp-preloader
    .adp-preloader-status {

        margin-top: 24px;

        font-size: 8px;

        letter-spacing: 4px;

    }

}


/* =====================================================
   SMALL MOBILE
===================================================== */

@media (max-width: 400px) {

    #adp-preloader
    .adp-preloader-logo-area {

        width: 82vw;

        height: 82vw;

    }


    #adp-preloader
    .adp-preloader-logo {

        width: 68% !important;

    }


    #adp-preloader
    .adp-preloader-loading {

        font-size: 10px;

        letter-spacing: 5px;

    }


    #adp-preloader
    .adp-preloader-status {

        font-size: 7px;

        letter-spacing: 3px;

    }

}