.guest-preloader {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    --preloader-overlay: rgba(9, 9, 26, 0.72);
    --preloader-surface: linear-gradient(145deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.88));
    --preloader-border: rgba(129, 140, 248, 0.35);
    --preloader-shadow: 0 24px 55px rgba(12, 10, 44, 0.4);
    --preloader-title: var(--text-primary);
    --preloader-subtitle: var(--text-secondary);
    background: var(--preloader-overlay);
    backdrop-filter: blur(6px);
    z-index: 3000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.guest-preloader.is-active {
    opacity: 1;
    pointer-events: auto;
}

.guest-preloader__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 1.75rem 2.25rem;
    border-radius: var(--radius-lg);
    background: var(--preloader-surface);
    border: 1px solid var(--preloader-border);
    box-shadow: var(--preloader-shadow);
    width: min(90%, 360px);
}

.guest-preloader__spinner {
    width: 64px;
    height: 64px;
    position: relative;
}

.guest-preloader__spinner::before,
.guest-preloader__spinner::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid transparent;
    animation: preloader-spin 1.1s linear infinite;
}

.guest-preloader__spinner::before {
    border-top-color: var(--primary);
    border-left-color: rgba(124, 58, 237, 0.55);
}

.guest-preloader__spinner::after {
    inset: 9px;
    border-top-color: var(--accent);
    border-right-color: var(--secondary);
    animation-direction: reverse;
}

.guest-preloader__text {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    text-align: center;
}

.guest-preloader__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--preloader-title);
}

.guest-preloader__subtitle {
    font-size: 0.84rem;
    color: var(--preloader-subtitle);
    opacity: 0.85;
}

body.preloader-active {
    overflow: hidden;
}

[data-theme="light"] .guest-preloader {
    --preloader-overlay: rgba(248, 250, 252, 0.88);
    --preloader-surface: linear-gradient(150deg, rgba(255, 255, 255, 0.95), rgba(241, 245, 249, 0.92));
    --preloader-border: rgba(148, 163, 184, 0.35);
    --preloader-shadow: 0 20px 45px rgba(148, 163, 184, 0.3);
    --preloader-title: var(--text-primary);
    --preloader-subtitle: rgba(100, 116, 139, 0.85);
}

[data-theme="light"] .guest-preloader__spinner::before {
    border-left-color: rgba(99, 102, 241, 0.45);
}

[data-theme="light"] .guest-preloader__spinner::after {
    border-right-color: rgba(14, 165, 233, 0.65);
}

@keyframes preloader-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 640px) {
    .guest-preloader__content {
        padding: 1.5rem 1.75rem;
        gap: 0.85rem;
    }

    .guest-preloader__spinner {
        width: 56px;
        height: 56px;
    }

    .guest-preloader__subtitle {
        font-size: 0.8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .guest-preloader,
    .guest-preloader__spinner::before,
    .guest-preloader__spinner::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
