.preloader {
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(45deg, red, green);
}

.loader,
.loader::before,
.loader::after {
    background: #65abf8;
    width: 1em;
    height: 4em;
    animation: load1 1s infinite ease-in-out;
}

.loader {
    position: relative;
    animation-delay: -0.16s;
    color: #65abf8;
}

.loader::before,
.loader::after {
    position: absolute;
    top: 0;
    content: "";
}

.loader::before {
    left: -1.5em;
    animation-delay: -0.32s;
}

.loader::after {
    left: 1.5em;
}

@keyframes load1 {

    0%,
    80%,
    100% {
        height: 4em;
        box-shadow: 0 0;
    }

    40% {
        height: 5em;
        box-shadow: 0 -2em;
    }
}

.main {
    display: none;
}

.main.loaded {
    display: block;
}