:root{--bg-dark:#070b14;--bg-gradient-top:#0a1124;--bg-gradient-bottom:#050811;--bubble-border:#ffffff73;--bubble-highlight:#ffffffbf;--bubble-glow:#8cd2ff38;--bubble-shadow:#00000047;--accent-cyan:#38bdf8;--accent-purple:#c084fc;--accent-gradient:linear-gradient(135deg, #38bdf8, #818cf8, #c084fc);--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--surface-glass:#0f172abf;--surface-glass-border:#ffffff1f;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background-color:var(--bg-dark);width:100%;height:100%;color:var(--text-primary);-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji,sans-serif;overflow:hidden}.app-container{background:radial-gradient(circle at 50% 15%, var(--bg-gradient-top) 0%, var(--bg-gradient-bottom) 100%);flex-direction:column;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.ambient-glow{pointer-events:none;z-index:1;background:radial-gradient(circle at 20% 25%,#38bdf814 0%,#0000 45%),radial-gradient(circle at 80% 75%,#c084fc12 0%,#0000 50%),radial-gradient(circle,#0ea5e90a 0%,#0000 60%);position:absolute;inset:0}.top-bar{top:max(16px, var(--safe-top));padding:0 max(20px, var(--safe-right)) 0 max(20px, var(--safe-left));z-index:20;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;left:0;right:0}.counter-pill{pointer-events:auto;-webkit-backdrop-filter:blur(12px);letter-spacing:-.01em;color:var(--text-primary);background:#0f172aa6;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:8px;padding:6px 14px;font-size:.95rem;font-weight:600;transition:transform .12s;display:inline-flex;box-shadow:0 4px 16px #00000040}.counter-icon{filter:drop-shadow(0 2px 4px #38bdf866);align-items:center;font-size:1.15rem;line-height:1;display:inline-flex}.bubble-icon-svg{vertical-align:middle;width:1.25em;height:1.25em;color:var(--accent-cyan);filter:drop-shadow(0 0 6px #38bdf899);display:inline-block}#pop-counter-value{text-align:right;font-variant-numeric:tabular-nums;min-width:20px;transition:transform .1s;display:inline-block}#pop-counter-value.counter-pop{color:var(--accent-cyan);transform:scale(1.22)}.round-pill{color:var(--text-muted);border-left:1px solid #ffffff1a;margin-left:4px;padding-left:8px;font-size:.75rem;font-weight:500}.bubble-playground{z-index:10;touch-action:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.bubble{cursor:pointer;touch-action:none;contain:layout style paint;will-change:transform, opacity;border:1px solid var(--bubble-border);box-shadow:inset 0 0 12px #ffffff59, inset -3px -5px 14px #78beff40, 0 6px 16px var(--bubble-shadow), 0 0 8px var(--bubble-glow);transform:rotate(var(--initial-rot,0deg));animation:floatWobble var(--wobble-duration,5s) ease-in-out infinite alternate var(--wobble-delay,0s), spawnPopIn .35s cubic-bezier(.175, .885, .32, 1.275) backwards;background:radial-gradient(circle at 32% 28%,#ffffffa6 0%,#ffffff40 18%,#b4e1ff26 35%,#c8beff1f 65%,#8cd2ff47 100%);border-radius:50%;transition:filter .15s;position:absolute}.bubble:before{content:"";pointer-events:none;background:radial-gradient(#ffffffd9 0%,#ffffff0d 80%);border-radius:50%;width:32%;height:20%;position:absolute;top:10%;left:15%;transform:rotate(-35deg)}.bubble:after{content:"";pointer-events:none;background:radial-gradient(#fff6 0%,#fff0 75%);border-radius:50%;width:22%;height:14%;position:absolute;bottom:12%;right:15%;transform:rotate(30deg)}@media (hover:hover){.bubble:hover{filter:brightness(1.15)drop-shadow(0 0 10px #38bdf880)}}@keyframes spawnPopIn{0%{opacity:0;transform:scale(0)}70%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes floatWobble{0%{transform:translateY(0px) rotate(var(--initial-rot,0deg)) scale(1)}50%{transform:translateY(-6px) rotate(calc(var(--initial-rot,0deg) + 3deg)) scale(1.02)}to{transform:translateY(4px) rotate(calc(var(--initial-rot,0deg) - 2deg)) scale(.99)}}.bubble.is-popping{pointer-events:none!important;animation:.14s cubic-bezier(.2,.9,.3,1) forwards burstSequence!important}@keyframes burstSequence{0%{opacity:1;transform:scale(1)}28%{opacity:.95;transform:scale(.88)}62%{opacity:.8;transform:scale(1.14)}to{opacity:0;transform:scale(0)}}.pop-ring{pointer-events:none;border:2px solid #ffffffb3;border-radius:50%;animation:.22s ease-out forwards popRingExpand;position:absolute;transform:translate(-50%,-50%)scale(.2);box-shadow:0 0 12px #38bdf899}@keyframes popRingExpand{0%{opacity:.9;transform:translate(-50%,-50%)scale(.2)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.pop-droplet{pointer-events:none;background:#ffffffd9;border-radius:50%;width:4px;height:4px;animation:.24s cubic-bezier(.25,1,.5,1) forwards dropletFly;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 6px #38bdf8cc}@keyframes dropletFly{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(.1);opacity:0}}.reduce-animation .bubble{animation:none!important}.reduce-animation .pop-ring,.reduce-animation .pop-droplet{display:none!important}@media (prefers-reduced-motion:reduce){.bubble{animation:none!important}.pop-ring,.pop-droplet{display:none!important}}@supports (backdrop-filter:blur(2px)){.bubble{-webkit-backdrop-filter:blur(1.5px)}}.settings-btn{bottom:max(20px, var(--safe-bottom));right:max(20px, var(--safe-right));-webkit-backdrop-filter:blur(14px);width:52px;height:52px;color:var(--text-primary);cursor:pointer;z-index:30;touch-action:manipulation;background:#0f172abf;border:1px solid #ffffff29;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;transition:transform .2s cubic-bezier(.34,1.56,.64,1),background .2s,border-color .2s;display:flex;position:absolute;box-shadow:0 6px 20px #00000059}.settings-btn:hover{background:#1e293bd9;border-color:#ffffff59;transform:scale(1.08)rotate(25deg)}.settings-btn:active{transform:scale(.94)}.settings-btn:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:3px}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:100;opacity:0;pointer-events:none;background:#030712a6;justify-content:center;align-items:flex-end;transition:opacity .25s;display:flex;position:fixed;inset:0}.modal-backdrop.is-open{opacity:1;pointer-events:auto}.settings-card{-webkit-backdrop-filter:blur(24px);border:1px solid var(--surface-glass-border);width:100%;max-width:480px;max-height:85dvh;padding:24px 24px calc(24px + var(--safe-bottom)) 24px;background:#0f172af0;border-top-left-radius:28px;border-top-right-radius:28px;transition:transform .3s cubic-bezier(.2,.9,.3,1);overflow-y:auto;transform:translateY(100%);box-shadow:0 -10px 40px #00000080}@media (width>=640px){.modal-backdrop{align-items:center;padding:20px}.settings-card{border-radius:28px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .25s;transform:scale(.95)translateY(10px)}.modal-backdrop.is-open .settings-card{transform:scale(1)translateY(0)}}.modal-backdrop.is-open .settings-card{transform:translateY(0)}.sheet-handle{background:#fff3;border-radius:2px;width:40px;height:4px;margin:0 auto 16px}.settings-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:12px;display:flex}.settings-title{letter-spacing:-.02em;align-items:center;gap:8px;font-size:1.25rem;font-weight:700;display:flex}.close-btn{color:var(--text-secondary);cursor:pointer;background:#ffffff14;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;transition:background .15s,color .15s;display:flex}.close-btn:hover{color:var(--text-primary);background:#ffffff26}.settings-section{margin-bottom:22px}.section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;font-size:.78rem;font-weight:700}.instrument-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (width<=400px){.instrument-grid{grid-template-columns:repeat(2,1fr)}}.instrument-btn{color:var(--text-secondary);cursor:pointer;touch-action:manipulation;background:#1e293b99;border:1px solid #ffffff14;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-size:.78rem;font-weight:600;transition:all .18s;display:flex}.instrument-icon{font-size:1.35rem}.instrument-btn:hover{color:var(--text-primary);background:#334155b3}.instrument-btn.is-active{border-color:var(--accent-cyan);color:var(--text-primary);background:#38bdf829;box-shadow:0 0 14px #38bdf840}.volume-control{background:#1e293b66;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:12px;padding:12px 16px;display:flex}.volume-slider{-webkit-appearance:none;appearance:none;cursor:pointer;background:#ffffff26;border-radius:3px;outline:none;flex:1;height:6px}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-primary);cursor:pointer;border-radius:50%;width:18px;height:18px;transition:transform .1s;box-shadow:0 2px 8px #0006}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.volume-val{text-align:right;min-width:38px;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.setting-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.setting-info{flex-direction:column;gap:2px;display:flex}.setting-title{color:var(--text-primary);font-size:.92rem;font-weight:600}.setting-desc{color:var(--text-muted);font-size:.76rem}.switch{flex-shrink:0;width:46px;height:26px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider-round{cursor:pointer;background-color:#ffffff26;border:1px solid #ffffff1a;border-radius:9999px;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.slider-round:before{content:"";background-color:#fff;border-radius:50%;width:20px;height:20px;transition:all .25s cubic-bezier(.4,0,.2,1);position:absolute;bottom:2px;left:2px;box-shadow:0 2px 4px #0000004d}input:checked+.slider-round{background-color:var(--accent-cyan);border-color:var(--accent-cyan)}input:checked+.slider-round:before{transform:translate(20px)}input:focus-visible+.slider-round{outline:2px solid var(--accent-cyan);outline-offset:2px}.scale-chips{flex-wrap:wrap;gap:8px;display:flex}.scale-chip{color:var(--text-secondary);cursor:pointer;background:#1e293b99;border:1px solid #ffffff14;border-radius:9999px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .15s}.scale-chip:hover{color:var(--text-primary);background:#334155cc}.scale-chip.is-active{border-color:var(--accent-cyan);color:var(--text-primary);background:#38bdf829;box-shadow:0 0 10px #38bdf833}.reset-btn{width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:12px;margin-top:14px;padding:12px;font-size:.85rem;font-weight:600;transition:all .15s}.reset-btn:hover{color:#f87171;background:#ef44441a;border-color:#ef44444d}.reset-btn:active{transform:scale(.98)}.quick-music-btn{pointer-events:auto;-webkit-backdrop-filter:blur(12px);color:var(--text-secondary);cursor:pointer;touch-action:manipulation;background:#0f172aa6;border:1px solid #ffffff1f;border-radius:9999px;align-items:center;gap:6px;padding:6px 13px;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.34,1.56,.64,1);display:inline-flex;box-shadow:0 4px 16px #00000040}.quick-music-btn:hover{color:var(--text-primary);background:#1e293bcc;border-color:#ffffff40;transform:translateY(-1px)}.quick-music-btn:active{transform:scale(.95)}.quick-music-btn.is-playing{border-color:var(--accent-cyan);color:var(--text-primary);background:#0ea5e92e;animation:3s ease-in-out infinite alternate gentlePulse;box-shadow:0 0 16px #38bdf859}@keyframes gentlePulse{0%{box-shadow:0 0 10px #38bdf840}to{box-shadow:0 0 18px #c084fc66}}.music-icon{font-size:1rem;line-height:1}.music-label{letter-spacing:-.01em;font-size:.82rem;font-weight:600}.ambient-box{background:#0f172a8c;border:1px solid #38bdf838;border-radius:18px;margin-bottom:20px;padding:14px 14px 16px}.section-label-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.badge-hz{color:var(--accent-cyan);text-transform:uppercase;letter-spacing:.05em;background:#38bdf826;border:1px solid #38bdf84d;border-radius:9999px;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-flex}.ambient-options{border-top:1px solid #ffffff0f;margin-top:8px;padding-top:10px}.ambient-chips{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.ambient-chip{color:var(--text-secondary);cursor:pointer;touch-action:manipulation;background:#1e293ba6;border:1px solid #ffffff14;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .16s;display:inline-flex}.ambient-chip:hover{color:var(--text-primary);background:#334155cc}.ambient-chip.is-active{border-color:var(--accent-cyan);color:var(--text-primary);background:#38bdf82e;box-shadow:0 0 12px #38bdf847}.chip-icon{font-size:.95rem;line-height:1}.ambient-vol-row{margin-top:8px}.vol-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}
