const rainfallClassicEffect={name:"Rainfall Classic",description:"Realistic raindrops falling steadily across the screen",icon:"💧",author:"Kousik Chowdhury",type:"visual",thumbnail:"assets/effects/visual/thumbnails/rainfall-classic.webp",license:"https://seazonify.com/license",version:"1.1.0",created:"2025-10-14",category:"rain",tags:["rain","monsoon","storm","realistic","classic"],css:"\n  /* Effect root to scope all DOM so controller can remove on toggle */\n  .szfy-rainfall {\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-rain {\n    position: fixed;\n    top:0;\n    left:0;\n    width: 1.5px;\n    height: 120px;\n    background: linear-gradient(\n      to bottom,\n      rgba(255, 255, 255, 0),\n      rgba(255, 255, 255, 0.88)\n    );\n    border-radius: 50%;\n    filter: blur(0.5px);\n    transform: rotate(5deg);\n    animation: szfy-fall 0.8s linear infinite;\n    animation-fill-mode: both;\n    pointer-events: none;\n  }\n  \n  @keyframes szfy-fall {\n    0% {\n      transform: translateY(-100px) translateX(0);\n      opacity: 1;\n    }\n    100% {\n      transform: translateY(100vh) translateX(50px);\n      opacity: 0;\n    }\n  }\n  ",html:'\n  <div class="szfy-rainfall" id="szfy-rainfall-container"></div>\n  ',js:'\n  (function() {\n    const container = document.getElementById(\'szfy-rainfall-container\') || document.getElementById(\'szfy-root\') || document.body;\n    const rainCount = 60;\n    for (let i = 0; i < rainCount; i++) {\n      const drop = document.createElement("div");\n      drop.classList.add("szfy-rain");\n\n      // Random position and animation properties\n      drop.style.left = Math.random() * 100 + "vw";\n      drop.style.animationDuration = 0.5 + Math.random() * 0.8 + "s";\n      drop.style.animationDelay = Math.random() * 2 + "s";\n      drop.style.height = 20 + Math.random() * 60 + "px";\n      drop.style.opacity = 0.2 + Math.random() * 0.5;\n\n      container.appendChild(drop);\n    }\n\n    // Cleanup hook (mandatory)\n    window.szfyRainfallCleanup = function() {\n      const root = document.getElementById(\'szfy-rainfall-container\');\n      if (root) {\n        root.innerHTML = \'\';\n      }\n    };\n  })();\n  '};"undefined"!=typeof window&&window.SeazonifyController&&window.SeazonifyController.injectVisualEffect(rainfallClassicEffect),"undefined"!=typeof module&&module.exports&&(module.exports=rainfallClassicEffect);
