.naked-bubbles{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:90;contain:strict}
.naked-bubble{position:absolute;left:var(--bubble-x);top:var(--bubble-y);width:var(--bubble-size);height:var(--bubble-size);border:1px solid rgba(255,255,255,.8);border-radius:50%;background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.9) 0,rgba(255,255,255,.25) 7%,transparent 23%),radial-gradient(circle at 76% 78%,rgba(213,170,197,.25),transparent 52%),radial-gradient(circle at 22% 65%,rgba(159,202,214,.2),transparent 55%);box-shadow:inset 2px 2px 7px rgba(255,255,255,.6),inset -2px -3px 8px rgba(182,151,161,.3),0 0 1px rgba(129,108,100,.55);opacity:0;animation:naked-bubble-float var(--bubble-duration) ease-out forwards;will-change:transform,opacity}
.naked-bubble::after{content:"";position:absolute;top:17%;left:20%;width:28%;height:12%;border-radius:50%;background:rgba(255,255,255,.85);transform:rotate(-38deg);filter:blur(.4px)}
@keyframes naked-bubble-float{0%{opacity:0;transform:translate3d(0,18px,0) scale(.75)}15%{opacity:.75}65%{opacity:.55}100%{opacity:0;transform:translate3d(var(--bubble-drift),-260px,0) scale(1.12)}}
@media(prefers-reduced-motion:reduce){.naked-bubbles{display:none}}
