.arkos-preloader {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100vw;
    height: 100vh;
    background-color: #111;
    opacity: 1;
    visibility: visible;
    pointer-events: all;
    transition:
        opacity 0.7s ease,
        visibility 0.7s ease;
}

.arkos-preloader.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.arkos-preloader__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 30px;
}

.arkos-preloader__logo {
    width: min(300px, 65vw);
}

.arkos-preloader__logo svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.arkos-preloader__logo path {
    fill: transparent;
    stroke: #fff;
    stroke-width: 0.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.arkos-preloader.logo-finished path {
    animation: arkos-logo-fill 0.5s ease forwards;
}

.arkos-preloader__progress {
    width: min(220px, 55vw);
    height: 2px;
    overflow: hidden;
    background-color: rgba(255, 255, 255, 0.2);
    opacity: 0;
    transform: translateY(8px);
    transition:
        opacity 0.35s ease,
        transform 0.35s ease;
}

.arkos-preloader.progress-visible .arkos-preloader__progress {
    opacity: 1;
    transform: translateY(0);
}

@keyframes arkos-logo-fill {
    from {
        fill: transparent;
    }

    to {
        fill: #fff;
        stroke: #fff;
    }
}

@keyframes arkos-progress-loading {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .arkos-preloader__logo path {
        fill: #fff;
        stroke: none;
    }

    .arkos-preloader__progress {
        display: none;
    }
}