:root{--spark-hue-min: 45;--spark-hue-max: 55;--spark-core-1: rgba(255, 255, 230, 0.95);--spark-core-2: rgba(255, 255, 200, 0.10);--spark-glow-1: rgba(255, 245, 180, 0.9);--spark-glow-2: hsla(50, 95%, 75%, 0.9);--spark-glow-3: rgba(255, 230, 120, 0.5);--spark-twinkle-bright: 1.5;--spark-size: 6px;--spark-lifetime: 1.2s}.sparkle-theme--hellgold{--spark-hue-min: 48;--spark-hue-max: 56;--spark-core-1: rgba(255, 255, 245, 0.98);--spark-core-2: rgba(255, 255, 230, 0.15);--spark-glow-1: rgba(255, 250, 205, 0.95);--spark-glow-2: hsla(52, 100%, 78%, 0.95);--spark-glow-3: rgba(255, 236, 160, 0.55);--spark-twinkle-bright: 1.65}.sparkle-theme--antikgold{--spark-hue-min: 52;--spark-hue-max: 60;--spark-core-1: rgba(255, 245, 210, 0.95);--spark-core-2: rgba(230, 210, 150, 0.12);--spark-glow-1: rgba(220, 190, 110, 0.9);--spark-glow-2: hsla(56, 70%, 62%, 0.9);--spark-glow-3: rgba(160, 140, 80, 0.45);--spark-twinkle-bright: 1.35}.sparkle-theme--rosegold{--spark-hue-min: 35;--spark-hue-max: 42;--spark-core-1: rgba(255, 240, 235, 0.96);--spark-core-2: rgba(255, 220, 210, 0.12);--spark-glow-1: rgba(255, 200, 180, 0.9);--spark-glow-2: hsla(38, 85%, 72%, 0.92);--spark-glow-3: rgba(180, 120, 100, 0.45);--spark-twinkle-bright: 1.5}.sparkle-theme--orangegold{--spark-hue-min: 30;--spark-hue-max: 36;--spark-core-1: rgba(255, 238, 225, 0.96);--spark-core-2: rgba(255, 210, 170, 0.12);--spark-glow-1: rgba(255, 190, 120, 0.92);--spark-glow-2: hsla(33, 90%, 66%, 0.92);--spark-glow-3: rgba(190, 110, 70, 0.48);--spark-twinkle-bright: 1.55}.sparkle{position:absolute;pointer-events:none;width:var(--spark-size);height:var(--spark-size);border-radius:50%;transform:translate(-50%, -50%);background:radial-gradient(circle, var(--spark-core-1) 0%, var(--spark-core-2) 70%), conic-gradient(from 0deg, hsla(var(--hue, 50), 95%, 72%, 1), transparent 25%, hsla(var(--hue, 50), 98%, 76%, 1) 50%, transparent 75%, hsla(var(--hue, 50), 95%, 72%, 1));box-shadow:0 0 10px 2px var(--spark-glow-1), 0 0 20px 6px var(--spark-glow-2), 0 0 34px 12px var(--spark-glow-3);animation:sparkle-fade var(--spark-lifetime) ease-out forwards, sparkle-twinkle 0.7s ease-in-out infinite alternate}@keyframes sparkle-fade{0%{opacity:1;transform:translate(-50%, -50%) scale(1)}100%{opacity:0;transform:translate(-50%, -10%) scale(0.2)}}@keyframes sparkle-twinkle{from{filter:brightness(1) saturate(1)}to{filter:brightness(var(--spark-twinkle-bright)) saturate(1.25)}}@media (prefers-reduced-motion:reduce){.sparkle{animation:none;opacity:0.4}}