#loading {
    position: fixed;
    z-index: 999;
    background-color: #232323;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    top: 0;
    left: 0;
    opacity: 1;
    transition: opacity 1s ease-out;
    pointer-events: none;
}

#loading.loaded {
    opacity: 0;
}

#loading p {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    margin: 0;
    font-size: 2rem;
}

#loading img {
    width: 75%;
    max-height: 75%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}

#loading img:nth-child(2) {
    animation: 100s linear infinite rotate;
}

#loading img:nth-child(4) {
    animation: 40s linear infinite rotate;
    animation-direction: reverse;
}

#loading svg {
    height: 95vh;
    width: 95vw;
}

#loading .st0, #loading .st1, #loading .st2, #loading .st3 {
    fill: none;
    stroke: #00C196;
    stroke-width: 42;
    stroke-miterlimit: 10;
    transform-origin: center;
}

#loading .st0  {
    stroke-dasharray: 12.1947,12.1947,12.1947,12.1947,12.1947,12.1947;
    animation: 100s linear infinite rotate;
}

#loading .st1 {
    stroke-dasharray: 50,90,200,30,40,0;
    animation: 40s linear infinite rotate;
}

#loading .st2 {
    stroke-linecap: square;
    stroke-dasharray: 120, 20, 110, 20, 140;
    animation: 50s linear infinite rotate;
}

#loading .st3 {
    stroke-width: 16;
    stroke-linecap: square;
}

@keyframes rotate {
    from {
        transform: translateX(-50%) translateY(-50%) rotate(0);
    }
    to {
        transform: translateX(-50%) translateY(-50%) rotate(360deg);
    }
}

body {
    display: block;
}