const winterSnowflakesEffect={name:"Winter Snowflakes Classic",description:"Gentle snowflakes falling across the screen",author:"Seazonify",type:"visual",thumbnail:"assets/effects/visual/thumbnails/winter-snowflakes-classic.webp",version:"1.0.0",created:"2025-10-05",category:"winter",tags:["winter","snow","seasonal","gentle"],css:"\n      .szfy-snowflakes {\n        position: fixed;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        pointer-events: none;\n        z-index: 9999;\n        overflow: hidden;\n      }\n      \n      .szfy-snowflake {\n        position: absolute;\n        color: #fff;\n        font-size: 1em;\n        text-shadow: 0 0 5px rgba(255, 255, 255, 0.8);\n        animation: szfy-fall linear infinite;\n        /* Ensure flakes are hidden until animation starts and during delay */\n        animation-fill-mode: both; /* apply 0% and 100% states outside active interval */\n        opacity: 0;\n      }\n      \n      @keyframes szfy-fall {\n        0% {\n          transform: translateY(-10px) rotate(0deg);\n          opacity: 0;\n        }\n        10% {\n          opacity: 0.8;\n        }\n        90% {\n          opacity: 0.8;\n        }\n        100% {\n          transform: translateY(100vh) rotate(360deg);\n          opacity: 0;\n        }\n      }\n    ",html:'<div class="szfy-snowflakes" id="szfy-snowflakes-container"></div>',js:"\n      (function() {\n        const container = document.getElementById('szfy-snowflakes-container');\n        if (!container) return;\n        \n        const snowflakes = ['❄', '❅', '❆', '•', '·'];\n        const maxSnowflakes = 50;\n        let currentSnowflakes = 0;\n        \n        function createSnowflake() {\n          if (currentSnowflakes >= maxSnowflakes) return;\n          \n          const snowflake = document.createElement('div');\n          snowflake.className = 'szfy-snowflake';\n          snowflake.textContent = snowflakes[Math.floor(Math.random() * snowflakes.length)];\n          \n          // Random position and animation\n          const startX = Math.random() * window.innerWidth;\n          const size = Math.random() * 1.5 + 0.5;\n          const duration = Math.random() * 10 + 10;\n          const delay = Math.random() * 5;\n          \n          snowflake.style.left = startX + 'px';\n          snowflake.style.fontSize = size + 'em';\n          snowflake.style.animationDuration = duration + 's';\n          snowflake.style.animationDelay = delay + 's';\n          \n          container.appendChild(snowflake);\n          currentSnowflakes++;\n          \n          // Remove snowflake after animation\n          setTimeout(() => {\n            if (snowflake.parentNode) {\n              snowflake.parentNode.removeChild(snowflake);\n              currentSnowflakes--;\n            }\n          }, (duration + delay) * 1000);\n        }\n        \n        // Create snowflakes periodically\n        const createInterval = setInterval(createSnowflake, 200);\n        \n        // Cleanup function\n        window.szfySnowflakesCleanup = function() {\n          clearInterval(createInterval);\n          if (container) {\n            container.innerHTML = '';\n            currentSnowflakes = 0;\n          }\n        };\n      })();\n    "};"undefined"!=typeof window&&window.SeazonifyController&&window.SeazonifyController.injectVisualEffect(winterSnowflakesEffect),"undefined"!=typeof module&&module.exports&&(module.exports=winterSnowflakesEffect);
