﻿#cr-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: #0b0b0b;
    display: block;
    overflow: hidden;
    transition: opacity .5s ease, visibility .5s ease;
}

    #cr-loader.hidden {
        opacity: 0;
        visibility: hidden;
    }

    #cr-loader .cr-logo-center {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, calc(-50% + var(--optical-y, -3vh)));
        pointer-events: none;
        z-index: 10;
    }

        #cr-loader .cr-logo-center img {
            display: block;
            width: clamp(200px, 52vw, 520px);
            height: auto;
            filter: drop-shadow(0 6px 20px rgba(0,0,0,.35));
            user-select: none;
        }

@media (min-width: 640px) {
    #cr-loader .cr-logo-center {
        --optical-y: -2vh;
    }
}

@media (min-width: 1024px) {
    #cr-loader .cr-logo-center {
        --optical-y: -4vh;
    }
}

.cr-loader__meta {
    position: absolute;
    left: 50%;
    top: calc(50% + 26vh);
    transform: translateX(-50%);
    display: flex;
    gap: .75rem;
    align-items: baseline;
    color: #fff;
    font-family: ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;
    text-shadow: 0 2px 10px rgba(0,0,0,.35);
    z-index: 10;
}

.cr-loader__percent {
    font-weight: 800;
    font-size: 1.5rem;
}

.cr-loader__hint {
    opacity: .8;
}

.cr-wave {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    width: 100%;
    height: 38vh;
    min-height: 160px;
    will-change: transform;
}

    .cr-wave path {
        fill: rgba(255,255,255,.06);
    }

.cr-wave--front path {
    fill: rgba(255,255,255,.12);
}

@keyframes cr-bob {
    0% {
        transform: translateY(0)
    }

    50% {
        transform: translateY(8px)
    }

    100% {
        transform: translateY(0)
    }
}

.cr-wave--front {
    animation: cr-bob 4.5s ease-in-out infinite;
}

.cr-wave--back {
    animation: cr-bob 7s ease-in-out infinite;
    opacity: .9;
}

@media (prefers-reduced-motion: reduce) {
    .cr-wave--front, .cr-wave--back {
        animation: none;
    }
}

body:has(#cr-loader:not(.hidden)) {
    overflow: hidden;
}
