/* =========================================================
   GROWTH DIGITAL STUDIO
   PAGE LOADER
========================================================= */

.page-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #07080d;

    opacity: 1;
    visibility: visible;

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


.page-loader.is-loaded {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}


/* =========================================================
   LOADER INNER
========================================================= */

.loader-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 18px;
}


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

.loader-logo {
    font-family: var(--font-heading);

    font-size: 32px;
    font-weight: 800;

    letter-spacing: -0.05em;

    background:
        linear-gradient(
            135deg,
            #ffffff,
            #8e72ff,
            #56b9ff
        );

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;

    animation:
        loaderLogoPulse 1.4s ease-in-out infinite;
}


/* =========================================================
   LOADING LINE
========================================================= */

.loader-line {
    position: relative;

    display: block;

    width: 100px;
    height: 2px;

    overflow: hidden;

    border-radius: 999px;

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


.loader-line::after {
    content: "";

    position: absolute;

    top: 0;
    left: -100%;

    width: 70%;
    height: 100%;

    border-radius: inherit;

    background:
        linear-gradient(
            90deg,
            #8e72ff,
            #56b9ff
        );

    animation:
        loaderLine 1.2s ease-in-out infinite;
}


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

@keyframes loaderLogoPulse {

    0%,
    100% {
        opacity: .55;
        transform: scale(.96);
    }

    50% {
        opacity: 1;
        transform: scale(1);
    }

}


@keyframes loaderLine {

    0% {
        left: -100%;
    }

    100% {
        left: 140%;
    }

}


/* =========================================================
   LOADER FINAL OVERRIDE
========================================================= */

body > .page-loader {
    position: fixed !important;
    inset: 0 !important;

    width: 100vw !important;
    height: 100vh !important;

    z-index: 999999 !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    background: #07080d !important;

    opacity: 1;
    visibility: visible;
}

body > .page-loader .loader-inner {
    position: relative !important;

    width: auto !important;
    height: auto !important;

    display: flex !important;

    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;
}

body > .page-loader .loader-logo {
    display: block !important;

    width: auto !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;
}

body > .page-loader .loader-line {
    display: block !important;

    width: 100px !important;
    height: 2px !important;

    margin: 0 !important;
    padding: 0 !important;
}

body > .page-loader.is-loaded {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}