.theme-prompt {
    --footer-border: var(--border, rgba(20, 20, 20, 0.1));
    --footer-surface: var(--surface, #ffffff);
    --footer-text: var(--text, #141414);

    position: fixed;
    right: clamp(1rem, 3vw, 1.75rem);
    bottom: clamp(1rem, 3vw, 1.75rem);
    z-index: 9998;
    pointer-events: none;
    opacity: 0;
    transform: translateY(12px) scale(0.92);
    transition:
        opacity 0.45s cubic-bezier(0.3, 1, 0.3, 1),
        transform 0.45s cubic-bezier(0.3, 1, 0.3, 1);
}

[data-theme="dark"] .theme-prompt {
    --footer-surface: #141414;
}

.theme-prompt.is-visible {
    pointer-events: auto;
    opacity: 1;
    transform: translateY(0) scale(1);
}

.theme-prompt.is-leaving {
    pointer-events: none;
    opacity: 0;
    transform: translateY(10px) scale(0.94);
}

.theme-prompt .site-footer__theme,
.theme-prompt__toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.125rem;
    height: 1.375rem;
    padding: 0 0.15rem;
    border-radius: 999px;
    border: 1px solid var(--footer-border);
    background: var(--footer-surface) !important;
    color: var(--footer-text);
    box-shadow: none !important;
    cursor: pointer;
    animation: theme-prompt-bounce 2.2s ease-in-out infinite;
    transition: opacity 0.2s ease;
}

.theme-prompt .site-footer__theme:hover,
.theme-prompt__toggle:hover {
    opacity: 0.85;
}

.theme-prompt .site-footer__theme svg,
.theme-prompt__icon svg {
    width: 0.8125rem;
    height: 0.8125rem;
}

.theme-prompt__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    color: inherit;
}

@keyframes theme-prompt-bounce {
    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-4px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .theme-prompt .site-footer__theme,
    .theme-prompt__toggle {
        animation: none;
    }

    .theme-prompt,
    .theme-prompt.is-leaving {
        transition: none;
    }
}
