.bubble-art{display:block;overflow:visible;pointer-events:none}
.bubble-art [data-bubble-part=ring],.bubble-art [data-bubble-part=spark]{opacity:0}
.bubble-art [data-bubble-part=nudge],.bubble-art [data-bubble-part=shape],.bubble-art [data-bubble-part=ring],.bubble-art [data-bubble-part=spark]{transform-box:view-box;transform-origin:50px 50px}
/* Each original bubble becomes a real button at the same anchor; art layers stay inert around it. */
.bubble-pop{position:absolute;inset:0;display:block;margin:0;padding:0;border:0;border-radius:50%;background:none;color:inherit;pointer-events:auto;cursor:pointer;overflow:visible;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.bubble-pop::before{content:'';position:absolute;inset:-10px;border-radius:50%}
.bubble-pop:focus-visible{outline:3px solid var(--c-cream,#fffef3);outline-offset:4px}
.bubble-pop[data-bubble-state=popped]{cursor:default}
.bubble-pop:hover [data-bubble-part=nudge]{transform:scale(1.06)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.bubble-art [data-bubble-part=nudge]{transition:transform .25s ease-out}}
.bubble-pop-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
