.loading_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100vw;
    height: 100vh;
    background: var(--base-color);
    animation: loadingFadeOut 3s ease forwards;
    animation-delay: 4s;
}

.loading_wrapper svg {
    width: 43vw;
    animation: loadingLogoFadeOut 1s ease forwards;
    animation-delay: 4s;
}

.loading_wrapper svg .logo_text {
    transform-box: fill-box;
    transform-origin: center;
    opacity: 0;
    animation: showText 0.5s ease-out forwards;
    animation-delay: 2.8s;
}

.loading_wrapper svg .logo_mark {
    transform-box: fill-box;
    transform-origin: center;
    transform: translate(58px, 18px) translate(-50%, -50%);
    animation: moveToOrigin 0.8s cubic-bezier(.22, 1, .36, 1) forwards;
    animation-delay: 2.2s;
}

.loading_wrapper svg .logo_mark .logo_dots path {
    opacity: 0;
}

.loading_wrapper svg .logo_dots .dot1 {
    animation: showDot 0.35s ease-out forwards;
    animation-delay: 1.6s;
}

.loading_wrapper svg .logo_dots .dot2 {
    animation: showDot 0.35s ease-out forwards;
    animation-delay: 1.7s;
}

.loading_wrapper svg .logo_dots .dot3 {
    animation: showDot 0.35s ease-out forwards;
    animation-delay: 1.8s;
}

.loading_wrapper svg .logo_dots .dot4 {
    animation: showDot 0.35s ease-out forwards;
    animation-delay: 1.9s;
}

.loading_wrapper svg .logo_dots .dot5 {
    animation: showDot 0.35s ease-out forwards;
    animation-delay: 2.0s;
}

.loading_wrapper svg .logo_B_wrap .logo_B_stroke {
    stroke-dasharray: 222.53759765625;
    stroke-dashoffset: 222.53759765625;
    animation: drawB 0.9s cubic-bezier(.22, 1, .36, 1) forwards;
}

.loading_wrapper svg .logo_B_clip_rect {
    animation: fillFromTop 0.6s cubic-bezier(.22, 1, .36, 1) forwards;
    animation-delay: 0.9s;
}


@keyframes drawB {
    0% {
        stroke-dashoffset: 222.53759765625;
    }

    100% {
        stroke-dashoffset: 0;
    }
}

@keyframes fillFromTop {
    0% {
        height: 0;
    }

    100% {
        height: 36px;
    }
}

@keyframes showDot {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes moveToOrigin {
    0% {
        transform:
            translate(58px, 18px) translate(-50%, -50%) scale(0.98);
    }

    100% {
        transform:
            translate(0.1px, 18px) translate(0, -50%) scale(1);
    }
}

@keyframes showText {
    0% {
        opacity: 0;
        transform: translateY(6px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes loadingFadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        pointer-events: none;
    }
}

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