.loading {
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 100px;
    left: 0;
    z-index: 500;
    background-color: #fffff0;
    transition: opacity 1s ease-out;
    user-select: none;
}

.loading img {
    width: 15vw;
    position: relative;
    top: -5vh;
    display: flex;
    justify-content: center;
    align-items: center;
    animation: rotate 10s linear infinite;
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.wavy {
    user-select: none;
    position: absolute;
    top: 66%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-box-reflect: below -12px linear-gradient(transparent, rgba(0, 0, 0, 0.2));
}

.wavy span {
    position: relative;
    display: inline-block;
    color: #fff;
    font-size: 1.2vw;
    text-transform: uppercase;
    letter-spacing: 0.6vw;
    animation: wavyAnimate 1s ease-in-out infinite;
    animation-delay: calc(0.1s * var(--i));
}

@keyframes wavyAnimate {
    0% {
        transform: translateY(0);
    }

    20% {
        transform: translateY(-2vh);
    }

    40%,
    100% {
        transform: translateY(0);
    }
}

@media (max-width: 1000px) {
    @keyframes wavyAnimate {
        0% {
            transform: translateY(0);
        }
    
        20% {
            transform: translateY(-15px);
        }
    
        40%,
        100% {
            transform: translateY(0);
        }
    }

    .loading img {
        width: 250px;
        top: -45px;
    }

    .wavy span {
        font-size: 20px;
    }
}