.drop-tank { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 9998; } .drop-tank input { position: absolute; opacity: 0; width: 0; height: 0; } .drop-tank .droplet { position: absolute; border-radius: 50% 50% 45% 45%; cursor: pointer; pointer-events: auto; background: radial-gradient(circle at 32% 28%, rgba(255,255,255,0.96) 0%, transparent 7%), radial-gradient(circle at 50% 50%, rgba(180,225,255,0.1) 0%, transparent 50%); box-shadow: inset -3px -3px 8px rgba(0,60,110,0.18), inset 3px 3px 8px rgba(255,255,255,0.32), 2px 4px 10px rgba(0,0,0,0.12); width: 20px; height: 24px; left: 12%; top: -30px; animation: drop-fall 3.8s ease-in infinite, drop-wobble 2s ease-in-out infinite; } .droplet::before { content: ''; position: absolute; top: 18%; left: 22%; width: 12%; height: 10%; background: rgba(255,255,255,0.92); border-radius: 50%; filter: blur(0.2px); } .droplet::after { content: ''; position: absolute; top: 35%; right: 25%; width: 6%; height: 20%; background: linear-gradient(180deg, rgba(255,255,255,0.35), transparent); border-radius: 50%; transform: rotate(-15deg); } /* Splash micro-droplets */ .droplet i { position: absolute; width: 4px; height: 4px; background: rgba(210,240,255,0.9); border-radius: 50%; top: 50%; left: 50%; margin: -2px 0 0 -2px; opacity: 0; pointer-events: none; } /* Variations */ .drop-tank input:nth-of-type(2) + .droplet { width:16px; height:19px; left:28%; animation-duration:3.2s,1.8s; animation-delay:0.9s,0.3s; } .drop-tank input:nth-of-type(3) + .droplet { width:26px; height:30px; left:45%; animation-duration:4.5s,2.2s; animation-delay:0.4s,0.8s; } .drop-tank input:nth-of-type(4) + .droplet { width:18px; height:22px; left:58%; animation-duration:2.9s,1.6s; animation-delay:2.1s,0s; } .drop-tank input:nth-of-type(5) + .droplet { width:22px; height:26px; left:72%; animation-duration:3.6s,2s; animation-delay:1.3s,1.2s; } .drop-tank input:nth-of-type(6) + .droplet { width:14px; height:17px; left:85%; animation-duration:2.5s,1.4s; animation-delay:0.2s,0.5s; } .drop-tank input:nth-of-type(7) + .droplet { width:24px; height:28px; left:20%; animation-duration:4.2s,2.4s; animation-delay:3.1s,0.2s; } .drop-tank input:nth-of-type(8) + .droplet { width:20px; height:24px; left:65%; animation-duration:3s,1.9s; animation-delay:1.8s,0.7s; } /* Click = splash */ .drop-tank input:checked + .droplet { animation: splash-center 0.35s ease-out forwards !important; } .drop-tank input:checked + .droplet::before, .drop-tank input:checked + .droplet::after { opacity: 0; transition: opacity 0.05s; } .drop-tank input:checked + .droplet i:nth-child(1) { animation: splash-1 0.35s ease-out forwards; } .drop-tank input:checked + .droplet i:nth-child(2) { animation: splash-2 0.35s ease-out forwards; } .drop-tank input:checked + .droplet i:nth-child(3) { animation: splash-3 0.35s ease-out forwards; } @keyframes drop-fall { 0% { transform:translateY(0) scale(0.6,0.9); opacity:0; } 10% { opacity:1; } 80% { opacity:1; } 100% { transform:translateY(110vh) scale(0.75,1.08); opacity:0; } } @keyframes drop-wobble { 0%,100% { border-radius:50% 50% 45% 45%; } 25% { border-radius:48% 52% 48% 47%; } 50% { border-radius:52% 48% 46% 50%; } 75% { border-radius:49% 51% 50% 46%; } } @keyframes splash-center { 0% { transform:scale(1); opacity:1; } 40% { transform:scale(1.35) scaleY(0.55); opacity:0.8; } 100% { transform:scale(2.2); opacity:0; } } @keyframes splash-1 { 0% { opacity:1; transform:translate(0,0) scale(1); } 100% { opacity:0; transform:translate(-22px,-32px) scale(0.5); } } @keyframes splash-2 { 0% { opacity:1; transform:translate(0,0) scale(1); } 100% { opacity:0; transform:translate(18px,-38px) scale(0.6); } } @keyframes splash-3 { 0% { opacity:1; transform:translate(0,0) scale(1); } 100% { opacity:0; transform:translate(3px,-42px) scale(0.45); } }

My Profile|

Share with