.loader-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
    z-index: 999999;
    transition: opacity 0.3s ease;
}

.loader-overlay.hide {
    opacity: 0;
    pointer-events: none;
}

.loader {
    width: 140px;
    height: 48px;
    overflow: visible;
}

.loader .circle {
    fill: none;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-dasharray: 0, 314;
    animation: loader-draw 2s ease-in-out infinite;
    filter: drop-shadow(0 0 8px currentColor);
    transform-origin: center;
}

.loader .circle:nth-child(1) {
    stroke: #3a7bd5;
    animation-delay: 0s;
}

.loader .circle:nth-child(2) {
    stroke: #00d2ff;
    animation-delay: 0.4s;
}

.loader .circle:nth-child(3) {
    stroke: rgb(27, 83, 161);
    animation-delay: 0.8s;
}

.loader .circle:nth-child(4) {
    stroke: #00d2ff;
    animation-delay: 1.2s;
}

@keyframes loader-draw {
    0% {
        stroke-dasharray: 0, 314;
        opacity: 0.2;
        transform: scale(0.8);
    }

    50% {
        opacity: 1;
    }

    100% {
        stroke-dasharray: 314, 314;
        opacity: 0.2;
        transform: scale(1.2);
    }
}
