.sg-preloader {
    position: fixed;
    inset: 0;
    z-index: var(--z-preloader);
    background-color: var(--vanilla-cloud);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.6s var(--ease-out), visibility 0.6s var(--ease-out);
}

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

.sg-preloader__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
}

.sg-preloader__logo {
    opacity: 0;
    animation: preloaderFade 1.2s var(--ease-out) 0.2s forwards;
}

.sg-preloader__bar {
    width: 160px;
    height: 2px;
    background-color: var(--vanilla-dark);
    border-radius: 2px;
    overflow: hidden;
}

.sg-preloader__progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--smoked-mocha), var(--mocha-light));
    border-radius: 2px;
    animation: preloaderProgress 2.2s var(--ease-out) 0.4s forwards;
}

@keyframes preloaderFade {
    to { opacity: 1; }
}

@keyframes preloaderProgress {
    to { width: 100%; }
}
