/* Absolute Center Spinner */
:root {
    --loader-color:white;
}

.loading {
    position: fixed;
    z-index: 9999999;
    height: 100vh;
    width: 100vw;
    overflow: show;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}

.inner-loading {
    position: absolute;
    z-index: 9999999;
    height: 100%;
    width: 100%;
    overflow: show;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}

.loading>* {
    z-index: 1;
}

.loading.dark>* {
    color: white;
}

.loading.progressbar>.progress {
    width: 75%;
}

.loading.progressbar > p {
    text-align:center;
    max-width:90%;
}



/* Cube grid */

.sk-cube-grid {
    width: 40px;
    height: 40px;
}

.sk-cube-grid .sk-cube {
    width: 33%;
    height: 33%;
    background-color: #333;
    float: left;
    -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
    animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
}

.sk-cube-grid .sk-cube1 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.sk-cube-grid .sk-cube2 {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}

.sk-cube-grid .sk-cube3 {
    -webkit-animation-delay: 0.4s;
    animation-delay: 0.4s;
}

.sk-cube-grid .sk-cube4 {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}

.sk-cube-grid .sk-cube5 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

.sk-cube-grid .sk-cube6 {
    -webkit-animation-delay: 0.3s;
    animation-delay: 0.3s;
}

.sk-cube-grid .sk-cube7 {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
}

.sk-cube-grid .sk-cube8 {
    -webkit-animation-delay: 0.1s;
    animation-delay: 0.1s;
}

.sk-cube-grid .sk-cube9 {
    -webkit-animation-delay: 0.2s;
    animation-delay: 0.2s;
}

@-webkit-keyframes sk-cubeGridScaleDelay {
    0%,
    70%,
    100% {
        -webkit-transform: scale3D(1, 1, 1);
        transform: scale3D(1, 1, 1);
    }
    35% {
        -webkit-transform: scale3D(0, 0, 1);
        transform: scale3D(0, 0, 1);
    }
}

@keyframes sk-cubeGridScaleDelay {
    0%,
    70%,
    100% {
        -webkit-transform: scale3D(1, 1, 1);
        transform: scale3D(1, 1, 1);
    }
    35% {
        -webkit-transform: scale3D(0, 0, 1);
        transform: scale3D(0, 0, 1);
    }
}

/* rotating inset loading */

.rotating_inset_loading {
    width: 40px;
    aspect-ratio: 1;
    color: var(--loader-color);
    position: relative;
    background:
        conic-gradient(from 134deg at top   , var(--loader-color) 92deg,#0000 0) top,
        conic-gradient(from -46deg at bottom, var(--loader-color) 92deg,#0000 0) bottom;
    background-size: 100% 50%;
    background-repeat: no-repeat;
}

.rotating_inset_loading:before {
    content: '';
    position: absolute;
    inset: 0;
    --g: var(--loader-color) 14.5px,#0000 0 calc(100% - 14.5px),var(--loader-color) 0;
    background:
        linear-gradient( 45deg,var(--g)),
        linear-gradient(-45deg,var(--g));
    animation: l7 1.5s infinite cubic-bezier(0.3,1,0,1);
}
@keyframes l7 {
    33%  { inset:-10px; transform: rotate(0deg); }
    66%  { inset:-10px; transform: rotate(90deg); }
    100% { inset:0; transform: rotate(90deg); }
}


/* Transparent Overlay */

.loading.dark, .inner-loading.dark {
    background: radial-gradient(rgba(20, 20, 20, .8), rgba(0, 0, 0, .8));
    background: -webkit-radial-gradient(rgba(20, 20, 20, .8), rgba(0, 0, 0, .8));
    color:white;
}

.loading.white, .inner-loading.white {
    background: rgba(255, 255, 255, 0.6);
}