#loader-master {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 99;
    background-color: var(--bg);
    opacity: 0;
    pointer-events: none;
    user-select: none;
    transition: all 0.3s cubic-bezier(.41,.68,.45,.96);
}

#loader-master.visible {
    opacity: 1;
}

#loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    z-index: 100;
}

#bar-wrapper {
    display: flex;
    flex-direction: row;
    gap: 8px;
    align-items: center;
    height: 100%;
}

.bar {
    background-color: var(--primary);
    transform-origin: center;
    width: 8px;
    height: 40px;
    margin: 4px 0;
    animation: pulse 1s ease-in-out infinite;
    border-radius: 3px;
}

.bar:nth-child(1) { animation-delay: 0s;    }
.bar:nth-child(2) { animation-delay: 0.10s; }
.bar:nth-child(3) { animation-delay: 0.20s; }
.bar:nth-child(4) { animation-delay: 0.30s; }

@keyframes pulse {
    0%{ 
        transform: scaleY(1);
    }
    30% {
        transform: scaleY(.35);
        background-color: oklch(0.8 0.15 292);
    }
    60% {
        transform: scaleY(1);
    }
}