@keyframes heartPulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 12px var(--accent-glow, rgba(251, 113, 133, .5)));opacity:1}50%{transform:scale(1.05);filter:drop-shadow(0 0 20px var(--accent-glow, rgba(251, 113, 133, .5)));opacity:.9}}@keyframes breathe{0%,to{filter:drop-shadow(0 0 8px var(--theme-glow));opacity:1}50%{filter:drop-shadow(0 0 16px var(--theme-glow));opacity:.85}}@keyframes urgentPulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 16px var(--urgent-glow))}50%{transform:scale(1.02);filter:drop-shadow(0 0 24px var(--urgent-glow))}}@keyframes celebrate{0%{transform:scale(1) rotate(0);opacity:1}25%{transform:scale(1.1) rotate(5deg)}50%{transform:scale(1.15) rotate(-5deg)}75%{transform:scale(1.1) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1.5)}}@keyframes logoPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.01)}}@keyframes buttonPress{0%{transform:translateY(0) scale(1)}50%{transform:translateY(1px) scale(.98)}to{transform:translateY(0) scale(1)}}.timer-breathe{animation:breathe 2s ease-in-out infinite}.timer-urgent{animation:urgentPulse 1s ease-in-out infinite}.timer-celebrate{animation:celebrate .6s cubic-bezier(.68,-.55,.265,1.55)}.fade-in{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1)}.logo-pulse{animation:logoPulse 2s ease-in-out infinite}.glow-effect{animation:glowPulse 1.5s ease-out}.heart-pulsing{animation:heartPulse .833s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.logo-fade{animation:fadeIn .6s ease-out}@media (prefers-reduced-motion: reduce){.heart-pulsing,.logo-fade{animation:none!important}}
