/* Soft wandering lights never intercept a tap or obscure reading. */
.hearth-fireflies { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 25; opacity: 0; transition: opacity 1.4s ease; }
.hearth-fireflies.is-glowing { opacity: 1; }
.hearth-fireflies.is-glowing.is-card-only { opacity: .65; }
.hearth-firefly { position: absolute; width: 16px; height: 16px; left: var(--x); top: var(--y); transform: translate(-50%, -50%); animation: hearth-drift var(--drift) ease-in-out var(--delay) infinite alternate; animation-play-state: paused; }
.hearth-firefly::before { content: ""; display: block; width: 100%; height: 100%; border-radius: 50%; background: radial-gradient(circle, #fff2be 0 16%, #efd37aad 27%, #e6bf6340 45%, transparent 72%); opacity: 0; animation: hearth-twinkle var(--twinkle) ease-in-out var(--delay) infinite; animation-play-state: paused; }
.hearth-fireflies.is-glowing .hearth-firefly, .hearth-fireflies.is-glowing .hearth-firefly::before { animation-play-state: running; }
@keyframes hearth-drift { 0% { left: var(--x); top: var(--y); } 35% { left: var(--x2); top: var(--y2); } 70% { left: var(--x3); top: var(--y3); } 100% { left: var(--x4); top: var(--y4); } }
@keyframes hearth-twinkle { 0%, 25%, 100% { opacity: 0; } 55% { opacity: var(--brightness); } 78% { opacity: .05; } }
@media (prefers-reduced-motion: reduce) { .hearth-fireflies { transition: none; } .hearth-firefly, .hearth-firefly::before { animation: none; } .hearth-firefly::before { opacity: .65; } }
