﻿.preloader {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100vh;
    background-color: #fff;
    z-index: 100000;
    position:fixed;
    top:0;
    left:0;
}
.hidden{
    overflow:hidden;
}
.lds-ellipsis {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
}

    .lds-ellipsis div {
        position: absolute;
        top: 33px;
        width: 13px;
        height: 13px;
        border-radius: 50%;
        background: #000;
        animation-timing-function: cubic-bezier(0, 1, 1, 0);
    }

        .lds-ellipsis div:nth-child(1) {
            left: 8px;
            animation: lds-ellipsis1 0.6s infinite;
        }

        .lds-ellipsis div:nth-child(2) {
            left: 8px;
            animation: lds-ellipsis2 0.6s infinite;
        }

        .lds-ellipsis div:nth-child(3) {
            left: 32px;
            animation: lds-ellipsis2 0.6s infinite;
        }

        .lds-ellipsis div:nth-child(4) {
            left: 56px;
            animation: lds-ellipsis3 0.6s infinite;
        }

@keyframes lds-ellipsis1 {
    0% {
        transform: scale(0);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes lds-ellipsis3 {
    0% {
        transform: scale(1);
    }

    100% {
        transform: scale(0);
    }
}

@keyframes lds-ellipsis2 {
    0% {
        transform: translate(0, 0);
    }

    100% {
        transform: translate(24px, 0);
    }
}


/* HTML: <div class="loader"></div> */
.loader {
    height: 15px;
    aspect-ratio: 4;
    --_g: no-repeat radial-gradient(farthest-side,#000 90%,#0000);
    background: var(--_g) left, var(--_g) right;
    background-size: 25% 100%;
    display: flex;
}

    .loader:before {
        content: "";
        flex: 1;
        background: inherit;
        animation: l50 2s infinite;
    }

@keyframes l50 {
    0% {
        transform: translate( 37.5%) rotate(0)
    }

    16.67% {
        transform: translate( 37.5%) rotate(90deg)
    }

    33.33% {
        transform: translate(-37.5%) rotate(90deg)
    }

    50% {
        transform: translate(-37.5%) rotate(180deg)
    }

    66.67% {
        transform: translate(-37.5%) rotate(270deg)
    }

    83.33% {
        transform: translate( 37.5%) rotate(270deg)
    }

    100% {
        transform: translate( 37.5%) rotate(360deg)
    }
}