@keyframes snowfall{0%{transform:translateY(-20px) rotate(0);opacity:0}10%{opacity:.8}90%{opacity:.8}to{transform:translateY(100vh) rotate(360deg);opacity:0}}.animate-snowfall{animation:snowfall linear forwards}@keyframes twinkle{0%,to{opacity:1;filter:brightness(1)}50%{opacity:.5;filter:brightness(.7)}}@keyframes float-up{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.4}90%{opacity:.4}to{transform:translateY(-120vh) rotate(360deg);opacity:0}}.animate-float-up{animation:float-up linear forwards}@keyframes bounce-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-bounce-slow{animation:bounce-slow 2s ease-in-out infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 5px currentColor,0 0 10px currentColor}50%{box-shadow:0 0 15px currentColor,0 0 30px currentColor}}.animate-glow-pulse{animation:glow-pulse 2s ease-in-out infinite}@keyframes gentle-rotate{0%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}to{transform:rotate(-5deg)}}.animate-gentle-rotate{animation:gentle-rotate 4s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);background-size:200% 100%;animation:shimmer 3s ease-in-out infinite}.snow-bg{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Ctext x='50' y='50' font-size='20' fill='white' opacity='0.6'%3E❄%3C/text%3E%3C/svg%3E");background-size:100px 100px;animation:snowfall 10s linear infinite}.theme-christmas{--theme-primary: #c41e3a;--theme-secondary: #0b5d1e;--theme-accent: #ffd700}.theme-easter{--theme-primary: #ff69b4;--theme-secondary: #9370db;--theme-accent: #fff8dc}.theme-halloween{--theme-primary: #ff6600;--theme-secondary: #6b21a8;--theme-accent: #1a1a1a}.theme-carnival{--theme-primary: #f59e0b;--theme-secondary: #ec4899;--theme-accent: #8b5cf6}.sparkle{position:relative}.sparkle:after{content:"✨";position:absolute;top:-5px;right:-5px;font-size:.5em;animation:twinkle 1s ease-in-out infinite}@keyframes confetti-fall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti{animation:confetti-fall 5s linear forwards}.festive-pattern{background-image:radial-gradient(circle at 20% 30%,rgba(255,215,0,.1) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(255,0,0,.1) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(0,255,0,.05) 0%,transparent 70%)}
