.preloader {
    position: fixed;
    z-index: 1000000;
    width: 100%;
    height: 100vh;
    background: #fff;
    display: flex;
    align-items: center
}

.loader {
    width: 300px;
    height: 100px;
    margin: 30px auto 0;
    position: relative;
}

.loader span {
    background-color: #909090;
    height: 20px;
    width: 20px;
    border-radius: 5rem;
    transform: translateX(-50%) translateY(-50%);
    position: absolute;
    top: 52.5%;
    left: 150px;
    transition: all 0.15s ease-in-out;
}

.loader span:nth-child(1) {
    left: 80px;
    animation: waveUp 2s, smallExtend 2s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

.loader span:nth-child(2) {
    left: 115px;
    animation: waveUp 2s, largeExtend 2s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-delay: 0.15s;
}

.loader span:nth-child(3) {
    animation: waveUp 2s, smallExtend 2s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-delay: 0.3s;
}

.loader span:nth-child(4) {
    left: 185px;
    animation: waveUp 2s, largeExtend 2s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-delay: 0.45s;
}

.loader span:nth-child(5) {
    left: 220px;
    animation: waveUp 2s, smallExtend 2s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-delay: 0.6s;
}

@keyframes waveUp {

    0%,
    15% {
        top: 50%;
    }

    45%,
    65% {
        top: 42.5%;
    }

    85%,
    100% {
        top: 50%;
    }
}

@keyframes smallExtend {

    0%,
    8% {
        background-color: #909090;
        height: 20px;
    }

    14%,
    34% {
        background-color: #0795fe;
        height: 47.5px;
    }

    46%,
    100% {
        background-color: #909090;
        height: 20px;
    }
}

@keyframes largeExtend {

    0%,
    8% {
        background-color: #909090;
        height: 20px;
    }

    14%,
    34% {
        background-color: #0795fe;
        height: 82.5px;
    }

    46%,
    100% {
        background-color: #909090;
        height: 20px;
    }
}
