.satoads-home-preloader {
    --shp-ease: cubic-bezier(0.22, 1, 0.36, 1);
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: grid;
    place-items: center;
    background: var(--satoads-bg, #fafaf7);
    color: var(--satoads-text, #0a0a0a);
    contain: layout style paint;
    transition: opacity 0.5s var(--shp-ease);
}
[data-theme="dark"] .satoads-home-preloader {
    background: #1c2733;
    color: #ffffff;
}
.satoads-home-preloader.is-done {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}
.satoads-home-preloader.is-done .satoads-home-preloader__stage {
    transform: scale(1.04);
    opacity: 0;
}
html.satoads-preloading,
html.satoads-preloading body {
    overflow: hidden !important;
}
.satoads-home-preloader__stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.35rem;
    padding: 1.25rem;
    transition:
        transform 0.5s var(--shp-ease),
        opacity 0.45s ease;
    animation: satoads-shp-in 0.55s var(--shp-ease) both;
}
.satoads-home-preloader__brand {
    position: relative;
    width: 200px;
    height: 200px;
    display: grid;
    place-items: center;
}
.satoads-home-preloader__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid color-mix(in srgb, currentColor 12%, transparent);
    border-top-color: var(--satoads-accent, #2aabee);
    animation: satoads-shp-spin 0.85s linear infinite;
    will-change: transform;
}
.satoads-home-preloader__logo-wrap {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 150px;
    min-height: 88px;
    padding: 0.75rem;
    animation: satoads-shp-breathe 2.4s ease-in-out infinite;
}
.satoads-home-preloader__logo {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 150px !important;
    max-height: 96px !important;
    object-fit: contain;
    opacity: 1;
}
.satoads-home-preloader .satoads-theme-logo--dual .satoads-theme-logo__dark {
    display: none !important;
}
[data-theme="dark"] .satoads-home-preloader .satoads-theme-logo--dual .satoads-theme-logo__light,
html.satoads-dark .satoads-home-preloader .satoads-theme-logo--dual .satoads-theme-logo__light {
    display: none !important;
}
[data-theme="dark"] .satoads-home-preloader .satoads-theme-logo--dual .satoads-theme-logo__dark,
html.satoads-dark .satoads-home-preloader .satoads-theme-logo--dual .satoads-theme-logo__dark {
    display: block !important;
}
.satoads-home-preloader__mark {
    width: 72px;
    height: 72px;
    display: grid;
    place-items: center;
    border-radius: 18px;
    color: var(--satoads-on-primary, #fff);
    background: var(--satoads-primary, #0a0a0a);
}
[data-theme="dark"] .satoads-home-preloader__mark {
    background: #1a1a1a;
    color: #f5f5f2;
}
.satoads-home-preloader__title {
    font-size: clamp(1.05rem, 3vw, 1.35rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.25;
    text-align: center;
    max-width: 16rem;
    opacity: 0.92;
}
@keyframes satoads-shp-in {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: none;
    }
}
@keyframes satoads-shp-spin {
    to {
        transform: rotate(360deg);
    }
}
@keyframes satoads-shp-breathe {
    0%,
    100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.04);
    }
}
@media (max-width: 480px) {
    .satoads-home-preloader__brand {
        width: 172px;
        height: 172px;
    }
    .satoads-home-preloader__logo-wrap {
        width: 128px;
    }
    .satoads-home-preloader__logo {
        max-width: 128px !important;
        max-height: 80px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .satoads-home-preloader,
    .satoads-home-preloader__stage,
    .satoads-home-preloader__ring,
    .satoads-home-preloader__logo-wrap {
        animation: none !important;
        transition-duration: 0.01ms !important;
    }
    .satoads-home-preloader.is-done .satoads-home-preloader__stage {
        transform: none;
    }
}
