.preloader {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999999999;
    background: black;
    color: white;
}

.preloader.inviz {
    opacity: 0;
    transition: 1s;
}

.preloader.inviz .logo,
.preloader.inviz .text {
    display: none;
}

.preloader .logo {
    width: 250rem;
    height: 150rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
}

.preloader .logo  .dot {
    width: 15rem;
    height: 15rem;
    background: white;
    justify-self: center;
    border-radius: 100%;
}

.preloader .logo .dot.dot3 {
    animation: 2s linear 0s infinite running dot1;
    animation-timing-function: cubic-bezier(0,.39,.56,1);
}

.preloader .logo .dot.dot2 {
    animation: 2s linear 0s infinite running dot2;
    animation-timing-function: cubic-bezier(0,.39,.56,1);
}

.preloader .logo .dot.dot1 {
    animation: 2s linear 0s infinite running dot3;
    animation-timing-function: cubic-bezier(0,.39,.56,1);
}

.preloader .text {
    position: absolute;
    top: calc(50% + 120rem);
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 30rem;
}


@keyframes dot1 {
    0% { 
        transform: translateY(0rem);
    } 

    25% {
        transform: translateY(-40rem);
    }
    
    50% { 
        transform: translateY(0rem);
    }

    75% { 
        transform: translateY(0rem);
    }

    100% { 
        transform: translateY(0rem);
    }
}

@keyframes dot2 {
    0% { 
        transform: translateY(0rem);
    } 

    25% {
        transform: translateY(0rem);
    }
    
    50% { 
        transform: translateY(-40rem);
    }

    75% { 
        transform: translateY(0rem);
    }

    100% { 
        transform: translateY(0rem);
    }
}

@keyframes dot3 {
    0% { 
        transform: translateY(0rem);
    } 

    25% {
        transform: translateY(0rem);
    }
    
    50% { 
        transform: translateY(0rem);
    }

    75% { 
        transform: translateY(-40rem);
    }

    100% { 
        transform: translateY(0rem);
    }
}