.bubble-board,.bubble-menu-screen{--bs-border:var(--primary);--bs-launcher-stroke:var(--primary);--bs-bg-from:color-mix(in oklch, var(--primary) 30%, transparent);--bs-bg-to:color-mix(in oklch, var(--primary) 10%, transparent);--bs-grid-dot:var(--border);--bs-next-label:var(--muted-foreground);--bs-bubble-highlight:white;--bs-bubble-highlight-strong:.42;--bs-bubble-glow-strong:.58;--bs-bubble-glow-soft:.14;--bs-bubble-glint:.18;--bs-bubble-red-fill:var(--color-red-500);--bs-bubble-red-stroke:var(--color-red-300);--bs-bubble-blue-fill:var(--color-blue-500);--bs-bubble-blue-stroke:var(--color-blue-300);--bs-bubble-green-fill:var(--color-green-500);--bs-bubble-green-stroke:var(--color-green-300);--bs-bubble-yellow-fill:var(--color-yellow-500);--bs-bubble-yellow-stroke:var(--color-yellow-300);--bs-bubble-purple-fill:var(--color-purple-500);--bs-bubble-purple-stroke:var(--color-purple-300);--bs-bubble-orange-fill:var(--color-orange-500);--bs-bubble-orange-stroke:var(--color-orange-300);--bs-bubble-cyan-fill:var(--color-cyan-500);--bs-bubble-cyan-stroke:var(--color-cyan-300);--bs-bubble-pink-fill:var(--color-pink-500);--bs-bubble-pink-stroke:var(--color-pink-300);--bs-ceil-body:var(--color-slate-700);--bs-ceil-edge:var(--color-slate-800);--bs-ceil-highlight:var(--color-slate-600);--bs-ceil-shadow:var(--color-slate-900);--bs-ceil-bolt:var(--color-slate-400);--bs-ceil-rivet-glint:var(--color-slate-200);--bs-ceil-display-shell:var(--color-slate-800);--bs-ceil-display-off:var(--color-slate-950);--bs-ceil-display-on:var(--color-emerald-800);--bs-ceil-warning:var(--color-red-600);--bs-ceil-warning-glow:var(--color-orange-400);--bs-menu-bg-from:var(--color-violet-900);--bs-menu-bg-via:var(--color-indigo-950);--bs-menu-bg-to:var(--color-slate-950);--bs-menu-glow:color-mix(in oklch, var(--color-violet-500) 28%, transparent);--bs-menu-title-from:var(--color-white);--bs-menu-title-to:var(--color-pink-100);--bs-menu-play-from:var(--color-orange-200);--bs-menu-play-via:var(--color-orange-400);--bs-menu-play-to:var(--color-orange-700)}.dark .bubble-board,.dark .bubble-menu-screen{--bs-bg-from:var(--background);--bs-bg-to:color-mix(in oklch, var(--background) 10%, transparent);--bs-bubble-highlight-strong:.32;--bs-bubble-glow-strong:.42;--bs-bubble-glow-soft:.1;--bs-bubble-glint:.14;--bs-bubble-red-fill:var(--color-red-400);--bs-bubble-red-stroke:var(--color-red-900);--bs-bubble-blue-fill:var(--color-blue-400);--bs-bubble-blue-stroke:var(--color-blue-900);--bs-bubble-green-fill:var(--color-green-400);--bs-bubble-green-stroke:var(--color-green-900);--bs-bubble-yellow-fill:var(--color-yellow-400);--bs-bubble-yellow-stroke:var(--color-yellow-900);--bs-bubble-purple-fill:var(--color-purple-400);--bs-bubble-purple-stroke:var(--color-purple-900);--bs-bubble-orange-fill:var(--color-orange-400);--bs-bubble-orange-stroke:var(--color-orange-900);--bs-bubble-cyan-fill:var(--color-cyan-400);--bs-bubble-cyan-stroke:var(--color-cyan-900);--bs-bubble-pink-fill:var(--color-pink-400);--bs-bubble-pink-stroke:var(--color-pink-900);--bs-ceil-body:var(--color-slate-600);--bs-ceil-edge:var(--color-slate-700);--bs-ceil-highlight:var(--color-slate-400);--bs-ceil-shadow:var(--color-slate-900);--bs-ceil-bolt:var(--color-slate-400);--bs-ceil-rivet-glint:var(--color-slate-100);--bs-ceil-display-shell:var(--color-slate-700);--bs-ceil-display-off:var(--color-slate-950);--bs-ceil-display-on:var(--color-emerald-700);--bs-ceil-warning:var(--color-red-500);--bs-ceil-warning-glow:var(--color-orange-400);--bs-menu-bg-from:var(--color-purple-950);--bs-menu-bg-via:var(--color-slate-950);--bs-menu-bg-to:var(--color-indigo-950);--bs-menu-glow:color-mix(in oklch, var(--color-indigo-500) 24%, transparent);--bs-menu-title-from:var(--color-white);--bs-menu-title-to:var(--color-pink-200);--bs-menu-play-from:var(--color-orange-100);--bs-menu-play-via:var(--color-orange-400);--bs-menu-play-to:var(--color-orange-800)}.bubble-token{transform-box:fill-box;transform-origin:50%}.bubble-token.popping{animation:.3s ease-out both bubble-pop}.bubble-fall-outer{transform-box:fill-box;transform-origin:50%;animation:bubble-fall-to-line var(--fall-dur,.75s) cubic-bezier(.4, 0, 1, 1) var(--stagger,0s) both}.bubble-pop-inner{transform-box:fill-box;transform-origin:50%;animation:bubble-pop .3s ease-out var(--pop-trigger,.75s) both}.bubble-token.impact-0{animation:.38s cubic-bezier(.2,.8,.3,1) forwards bubble-impact-0}.bubble-token.impact-1{animation:.34s cubic-bezier(.2,.8,.3,1) 30ms both bubble-impact-1}.bubble-token.impact-2{animation:.28s cubic-bezier(.2,.8,.3,1) 60ms both bubble-impact-2}.ceiling-weight{transform-box:fill-box;transform-origin:50%}.ceiling-weight.warning{animation:.45s ease-in-out infinite ceiling-warning}.ceiling-weight.critical{animation:.18s ease-in-out infinite ceiling-critical}.ceiling-weight.dropping,.ceiling-drop-bubbles{animation:.45s cubic-bezier(.2,.85,.3,1) ceiling-slam}.danger-pulse{animation:1s ease-in-out infinite danger-pulse}.aim-guide-flow{animation:.5s linear infinite aim-guide-flow}@keyframes aim-guide-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-16px}}@keyframes bubble-impact-0{0%{transform:scale(1)}18%{transform:scale(1.22,.84)}48%{transform:scale(.92,1.1)}72%{transform:scale(1.07,.96)}to{transform:scale(1)}}@keyframes bubble-impact-1{0%{transform:scale(1)}20%{transform:scale(1.1,.93)}55%{transform:scale(.96,1.05)}to{transform:scale(1)}}@keyframes bubble-impact-2{0%{transform:scale(1)}25%{transform:scale(1.05,.97)}to{transform:scale(1)}}@keyframes bubble-pop{50%{opacity:.8;transform:scale(1.3)}to{opacity:0;transform:scale(0)}}@keyframes bubble-fall-to-line{0%{opacity:1;transform:translateY(0)rotate(0)}to{transform:translateY(var(--fall-dist,420px)) rotate(120deg);opacity:1}}@keyframes danger-pulse{50%{opacity:.8}}@keyframes ceiling-warning{25%{transform:translate(-1px)rotate(-.2deg)}75%{transform:translate(1px)rotate(.2deg)}}@keyframes ceiling-critical{25%{transform:translate(-3px)rotate(-.6deg)}75%{transform:translate(3px)rotate(.6deg)}}@keyframes ceiling-slam{0%{transform:translateY(-32px)}65%{transform:translateY(3px)}to{transform:translateY(0)}}@keyframes bubble-menu{0%,to{transform:translateY(0)}50%{transform:translate(var(--bubble-menu-drift-x,0), var(--bubble-menu-drift-y,-18px))}}@keyframes menu-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes menu-pulse-ring{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.65)}}.bonus-star{transform-box:fill-box;transform-origin:50%;fill:#fbbf24;filter:drop-shadow(0 0 3px #f59e0b80);animation:.7s ease-out both bonus-star-pop}.bonus-score-label{transform-box:fill-box;transform-origin:50%;fill:#fbbf24;animation:.8s ease-out both bonus-score-rise}@keyframes bonus-star-pop{0%{opacity:0;transform:scale(0)}30%{opacity:1;transform:scale(1.4)}55%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}.board-shake{animation:.8s cubic-bezier(.36,.07,.19,.97) both board-shake}.board-flash{background:#dc26268c;animation:.8s ease-out both board-flash}@keyframes board-shake{0%{transform:translate(0)}10%{transform:translate(-9px)}20%{transform:translate(9px)}30%{transform:translate(-9px)}40%{transform:translate(8px)}50%{transform:translate(-6px)}60%{transform:translate(6px)}70%{transform:translate(-4px)}80%{transform:translate(3px)}90%{transform:translate(-1px)}to{transform:translate(0)}}@keyframes board-flash{0%{opacity:1}40%{opacity:.6}to{opacity:0}}.ice-overlay{transform-box:fill-box;transform-origin:50%;pointer-events:none}.ice-overlay.defrosting{animation:.5s ease-out forwards ice-defrost}@keyframes ice-defrost{0%{opacity:1;transform:scale(1)}35%{opacity:.75;transform:scale(1.18)}to{opacity:0;transform:scale(1.5)}}.ammo-feeder-pulse{transform-box:fill-box;transform-origin:50%;animation:.2s ease-out both ammo-pulse}@keyframes ammo-pulse{0%{opacity:.6;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.score-pop-label{transform-box:fill-box;transform-origin:50%;fill:#fbbf24;filter:drop-shadow(0 1px 3px #0009);pointer-events:none;font-family:monospace;font-size:16px;font-weight:700;animation:2.4s ease-out both score-pop-float}@keyframes score-pop-float{0%{opacity:0;transform:translateY(0)scale(.7)}20%{opacity:1;transform:translateY(-6px)scale(1.1)}to{opacity:0;transform:translateY(-26px)scale(.9)}}@keyframes bonus-score-rise{0%{opacity:0;transform:translateY(6px)}20%{opacity:1}65%{opacity:1}to{opacity:0;transform:translateY(-22px)}}
