.glass-surface-defs {
    position: fixed;
    width: 0;
    height: 0;
    pointer-events: none;
    opacity: 0;
}

.glass-surface {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: opacity 0.26s ease-out, transform 0.24s ease, box-shadow 0.24s ease;
}

.glass-surface--svg {
    background-color: rgba(255, 255, 255, var(--glass-frost, 0.03));
    backdrop-filter: var(--filter-id, none) saturate(var(--glass-saturation, 1));
    -webkit-backdrop-filter: var(--filter-id, none) saturate(var(--glass-saturation, 1));
    box-shadow:
        inset 0 0 2px rgba(255, 255, 255, 0.2),
        inset 0 0 18px rgba(15, 23, 42, 0.18),
        0 10px 24px rgba(2, 8, 20, 0.2);
}

.dark-theme .glass-surface--svg {
    background-color: rgba(10, 16, 28, var(--glass-frost, 0.03));
    box-shadow:
        inset 0 0 2px rgba(255, 255, 255, 0.12),
        inset 0 0 20px rgba(2, 6, 23, 0.45),
        0 14px 32px rgba(2, 6, 23, 0.5);
}

.glass-surface--fallback {
    background: rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(12px) saturate(1.5);
    -webkit-backdrop-filter: blur(12px) saturate(1.5);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.2),
        0 8px 24px rgba(2, 8, 20, 0.2);
}

.dark-theme .glass-surface--fallback {
    background: rgba(10, 16, 28, 0.4);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.12),
        0 10px 28px rgba(2, 6, 23, 0.45);
}

@supports not (backdrop-filter: blur(10px)) {
    .glass-surface--svg,
    .glass-surface--fallback {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(255, 255, 255, 0.18);
    }

    .dark-theme .glass-surface--svg,
    .dark-theme .glass-surface--fallback {
        background: rgba(17, 24, 39, 0.58);
    }
}
