/* Local character bubbles inside feature cards. */
.glow-card {
    --bubble-base: #d9e5f7;
    --bubble-accent: #62a8ff;
}

.glow-card--speed {
    --bubble-accent: #62a8ff;
}

.glow-card--privacy {
    --bubble-accent: #63f5d2;
}

.glow-card--platform {
    --bubble-accent: #b18dff;
}

.bubble-text__word {
    display: inline-block;
    white-space: nowrap;
}

.bubble-text__char {
    --bubble-force: 0;
    display: inline-block;
    color: inherit;
    transform:
        translateY(calc(var(--bubble-force) * -0.12em))
        scale(calc(1 + var(--bubble-force) * 0.09));
    transform-origin: 50% 70%;
    transition:
        color 140ms ease,
        text-shadow 140ms ease,
        transform 110ms ease;
    will-change: transform;
}

.glow-card h5 .bubble-text__char {
    transform:
        translateY(calc(var(--bubble-force) * -0.16em))
        scale(calc(1 + var(--bubble-force) * 0.13));
}

.bubble-text__char.is-bubble-warm {
    color: color-mix(in srgb, currentColor 44%, var(--bubble-accent));
}

.bubble-text__char.is-bubble-hot {
    color: var(--bubble-accent);
    text-shadow: 0 0 0.8rem color-mix(in srgb, var(--bubble-accent) 42%, transparent);
}

:root[data-theme="light"] .glow-card {
    --bubble-base: #294761;
}

:root[data-theme="light"] .glow-card--speed {
    --bubble-accent: #087fd7;
}

:root[data-theme="light"] .glow-card--privacy {
    --bubble-accent: #008f7a;
}

:root[data-theme="light"] .glow-card--platform {
    --bubble-accent: #7558c9;
}

@media (hover: none), (pointer: coarse), (max-width: 900px), (prefers-reduced-motion: reduce) {
    .bubble-text__char {
        color: inherit !important;
        text-shadow: none !important;
        transform: none !important;
        transition: none;
    }
}
