.bubble{position:absolute;bottom:-10px;left:var(--left);width:var(--size);height:var(--size);background:rgba(49,180,219,.4);border-radius:50%;animation:rise var(--duration) ease-in-out infinite;animation-delay:var(--delay);box-shadow:0 0 10px rgba(49,180,219,.2)}@keyframes rise{0%{transform:translateY(0) scale(1);opacity:0}50%{opacity:.8}to{transform:translateY(-100vh) scale(0);opacity:0}}.cursor-bubble{position:fixed;pointer-events:none;width:35px;height:35px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,1) 0,rgba(49,180,219,.95) 40%,rgba(49,180,219,.85) 70%,rgba(49,180,219,.75) 100%);border-radius:50%;transform:translate(-50%,-50%);transition:all .15s ease;z-index:9999;box-shadow:0 0 25px rgba(49,180,219,1),0 0 50px rgba(49,180,219,.8),0 0 75px rgba(49,180,219,.6),0 0 100px rgba(49,180,219,.3),inset 0 0 25px rgba(255,255,255,.5);mix-blend-mode:screen;border:3px solid rgba(255,255,255,.9);animation:fizzyFloat 2s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(49,180,219,.8))}.cursor-bubble:before{top:20%;left:25%;width:12px;height:12px;background:rgba(255,255,255,1);box-shadow:0 0 15px rgba(255,255,255,1)}.cursor-bubble:after,.cursor-bubble:before{content:"";position:absolute;border-radius:50%}.cursor-bubble:after{top:15%;left:60%;width:6px;height:6px;background:rgba(255,255,255,.9);box-shadow:0 0 12px rgba(255,255,255,.9)}.cursor-bubble.hover{width:65px;height:65px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,1) 0,rgba(49,180,219,1) 40%,rgba(49,180,219,.95) 70%,rgba(49,180,219,.85) 100%);box-shadow:0 0 40px rgba(49,180,219,1),0 0 80px rgba(49,180,219,.9),0 0 120px rgba(49,180,219,.7),0 0 160px rgba(49,180,219,.4),inset 0 0 40px rgba(255,255,255,.6);border:4px solid rgba(255,255,255,1);animation:fizzyFloat 1.5s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(49,180,219,1))}.cursor-bubble.hover:before{width:18px;height:18px;box-shadow:0 0 20px rgba(255,255,255,1)}.cursor-bubble.hover:after{width:9px;height:9px;box-shadow:0 0 16px rgba(255,255,255,1)}.cursor-bubble.click{width:90px;height:90px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,1) 0,rgba(49,180,219,1) 40%,rgba(49,180,219,1) 70%,rgba(49,180,219,.9) 100%);box-shadow:0 0 50px rgba(49,180,219,1),0 0 100px rgba(49,180,219,1),0 0 150px rgba(49,180,219,.8),0 0 200px rgba(49,180,219,.5),inset 0 0 50px rgba(255,255,255,.7);border:5px solid rgba(255,255,255,1);animation:cursorClick .4s ease-out;filter:drop-shadow(0 0 30px rgba(49,180,219,1))}.cursor-bubble.click:before{width:22px;height:22px;box-shadow:0 0 25px rgba(255,255,255,1)}.cursor-bubble.click:after{width:11px;height:11px;box-shadow:0 0 20px rgba(255,255,255,1)}@keyframes fizzyFloat{0%,to{transform:translate(-50%,-50%) scale(1) rotate(0deg)}25%{transform:translate(-50%,-50%) scale(1.05) rotate(2deg)}50%{transform:translate(-50%,-50%) scale(.95) rotate(-1deg)}75%{transform:translate(-50%,-50%) scale(1.02) rotate(1deg)}}@keyframes cursorClick{0%{transform:translate(-50%,-50%) scale(1);opacity:1}25%{transform:translate(-50%,-50%) scale(1.8);opacity:.9}50%{transform:translate(-50%,-50%) scale(1.4);opacity:.8}75%{transform:translate(-50%,-50%) scale(1.6);opacity:.6}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@media (hover:none) and (pointer:coarse){.cursor-bubble{display:none}}