#loading {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;

    z-index: 9999;

    background-color: white;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    pointer-events: none;

    animation: loadingFadeOut 0.75s ease-in-out 1.5s forwards;
}

#loading>div {
    opacity: 0%;
    animation: logoFadeInOut 1.5s ease-in-out;
    width: min(500px, 80vw);
}

#loading img {
    width: 100%;
}

#red-line-container {
    display: absolute;
    overflow: hidden;

    margin-top: 15px;
    height: 3px;

    border-radius: 4px;
    width: 100%;
}

#red-line {
    position: relative;
    height: 100%;
    left: -40%;
    width: 40%;
    border-radius: 4px;
    animation: lineAnim 1.5s linear;
    background-color: red;
}

.hidden {
    display: none !important;
}

@keyframes lineAnim {
    0% {
        left: -40%;
        width: 40%;
    }
    50% {
        left: 20%;
        width: 80%;
    }
    100% {
        left: 100%;
        width: 100%;
    }
}

@keyframes logoFadeInOut {
    0% {
        opacity: 0;
    }
    40% {
        opacity: 1;
    }
    60% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

@keyframes loadingFadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}