:root{--page-bg:radial-gradient(1000px 420px at 100% 0%,rgba(56,189,248,.16),transparent 65%),radial-gradient(900px 380px at 0% 100%,rgba(16,185,129,.14),transparent 60%),linear-gradient(160deg,#020617,#0b1224 55%,#111c34);--panel-bg:linear-gradient(145deg,rgba(15,23,42,.92),rgba(15,27,51,.9));--panel-strong-bg:linear-gradient(145deg,rgba(15,23,42,.98),rgba(15,27,51,.96));--panel-border:rgba(41,64,107,.92);--panel-border-cool:rgba(59,130,246,.58);--text-main:#e2e8f0;--text-strong:#f8fafc;--text-muted:#94a3b8;--text-soft:#cbd5e1;--accent-pink:#60a5fa;--accent-rose:#fb7185;--accent-peach:#f59e0b;--accent-yellow:#fbbf24;--accent-sky:#38bdf8;--accent-violet:#818cf8;--accent-mint:#22c55e;--trend-up:#ef4444;--trend-down:#22c55e;--shadow-card:0 18px 44px rgba(0,0,0,.35);--shadow-soft:0 12px 30px rgba(2,6,23,.42)}*{margin:0;padding:0;box-sizing:border-box}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea,select{-webkit-user-select:text;user-select:text}body{background:var(--page-bg);color:var(--text-main);font-family:'Noto Sans TC','Microsoft JhengHei UI','Helvetica Neue',sans-serif;overflow-x:hidden;min-height:100vh;min-height:100dvh}#app{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh;width:100%;position:relative}.btn-stock{display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;background:rgba(15,23,42,.88);border:1px solid var(--panel-border);border-radius:18px;padding:16px 16px;cursor:pointer;transition:transform .16s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease;width:100%;text-align:left;color:var(--text-main);font-family:inherit;font-size:14px;box-shadow:var(--shadow-card)}.btn-stock::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(148,163,184,.08),transparent 42%);pointer-events:none}.btn-stock:hover{border-color:rgba(56,189,248,.52);background:rgba(15,23,42,.96);transform:translateY(-2px);box-shadow:0 18px 40px rgba(0,0,0,.42)}.btn-stock:active{transform:translateY(0)}.btn-stock-disabled{filter:saturate(.78)}.btn-primary{background:linear-gradient(135deg,rgba(37,99,235,.98),rgba(14,165,233,.96));color:#eff6ff;border:0;border-radius:999px;padding:12px 28px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:0 14px 28px rgba(14,165,233,.18);transition:transform .16s ease,box-shadow .18s ease,filter .18s ease}.btn-primary:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 18px 32px rgba(14,165,233,.24)}.btn-primary:active{transform:translateY(0) scale(.98)}.btn-secondary{background:rgba(15,23,42,.82);color:var(--text-main);border:1px solid #334155;border-radius:999px;padding:12px 28px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-soft);transition:transform .16s ease,border-color .18s ease,background .18s ease}.btn-secondary:hover{transform:translateY(-1px);border-color:var(--panel-border-cool);background:rgba(15,23,42,.96)}.tab-btn{flex:1;padding:10px 0;font-size:13px;font-weight:800;cursor:pointer;border:0;transition:all .15s;font-family:inherit}.tab-active{background:linear-gradient(135deg,rgba(37,99,235,.96),rgba(14,165,233,.94));color:#eff6ff}.tab-inactive{background:rgba(15,23,42,.78);color:var(--text-muted)}.tab-top.tab-inactive{background:linear-gradient(135deg,rgba(120,77,0,.58),rgba(78,44,0,.48));color:#fde68a;position:relative;overflow:hidden}.tab-top.tab-inactive::before{content:'';position:absolute;top:0;bottom:0;left:-55%;width:45%;background:linear-gradient(90deg,transparent,rgba(251,191,36,.28),transparent);animation:tabGoldShimmer 2.4s ease-in-out infinite;pointer-events:none}@keyframes tabGoldShimmer{from{left:-55%}to{left:115%}}.tab-top.tab-active{background:linear-gradient(135deg,#92400e,#b45309 40%,#d97706);color:#fff7ed;text-shadow:0 1px 3px rgba(0,0,0,.35)}.tt-menu{width:100%;background:var(--panel-strong-bg);border:1px solid #334155;border-radius:16px;margin-top:4px;max-height:280px;overflow-y:auto;box-shadow:var(--shadow-card);-webkit-overflow-scrolling:touch}.tt-suggestion{cursor:pointer;border-bottom:1px solid rgba(51,65,85,.7);transition:background .1s;font-size:15px}.tt-suggestion:last-child{border-bottom:0}.tt-suggestion:hover,.tt-suggestion.tt-cursor{background:linear-gradient(135deg,rgba(30,41,59,.92),rgba(30,64,175,.26))}.tt-highlight{color:var(--accent-sky);font-weight:800}.tt-empty{display:none}@keyframes popBubbleEnhanced{0%{transform:scale(1) rotate(0deg);opacity:1;filter:brightness(1)}30%{transform:scale(1.28) rotate(-4deg);opacity:1;filter:brightness(1.6)}70%{transform:scale(.64) rotate(6deg);opacity:.52;filter:brightness(2)}100%{transform:scale(0) rotate(-8deg);opacity:0;filter:brightness(1)}}@keyframes dropBubbleEnhanced{0%{transform:translateY(0) scale(1) rotate(0deg);opacity:1}18%{transform:translateY(-10px) scale(1.08) rotate(-4deg)}100%{transform:translateY(220px) scale(.55) rotate(12deg);opacity:0}}@keyframes p0{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(-22px,-28px) scale(0);opacity:0}}@keyframes p1{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(18px,-32px) scale(0);opacity:0}}@keyframes p2{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(-28px,14px) scale(0);opacity:0}}@keyframes p3{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(26px,18px) scale(0);opacity:0}}@keyframes p4{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(-8px,-36px) scale(0);opacity:0}}@keyframes p5{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(12px,28px) scale(0);opacity:0}}@keyframes p6{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(-30px,-10px) scale(0);opacity:0}}@keyframes p7{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(24px,-20px) scale(0);opacity:0}}@keyframes ringBurst{0%{transform:scale(.3);opacity:.88}100%{transform:scale(2.7);opacity:0}}@keyframes glowFlash{0%{transform:scale(.5);opacity:0}35%{transform:scale(1.24);opacity:.75}100%{transform:scale(2.1);opacity:0}}@keyframes screenShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}@keyframes shockwave{0%{transform:translate(-50%,-50%) scale(0);opacity:.6}100%{transform:translate(-50%,-50%) scale(3);opacity:0}}@keyframes skeletonShimmer{0%{background-position:200% center}100%{background-position:-200% center}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}@keyframes comboSlam{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}25%{transform:translate(-50%,-50%) scale(1.16);opacity:1}100%{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.9)}12%{opacity:1;transform:translateY(0) scale(1)}78%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-10px) scale(.96)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}100%{opacity:1;transform:translateY(0)}}@keyframes revealBgIn{0%{background:rgba(0,0,0,0)}100%{background:rgba(0,0,0,.5)}}@keyframes revealBgOut{0%{opacity:1}100%{opacity:0}}@keyframes revealCardIn{0%{transform:scale(.52) translateY(18px);opacity:0}100%{transform:scale(1) translateY(0);opacity:1}}@keyframes revealShake{0%,100%{transform:rotate(0deg)}20%{transform:rotate(-15deg)}40%{transform:rotate(12deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}}@keyframes revealSparkle{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}100%{transform:scale(1);opacity:1}}@keyframes rescueCharIn{0%{transform:translateY(-60px) scale(.4) rotate(-20deg);opacity:0}60%{transform:translateY(6px) scale(1.12) rotate(4deg);opacity:1}100%{transform:translateY(0) scale(1) rotate(0deg);opacity:1}}@keyframes rescueTextIn{0%{transform:scale(.3) translateY(16px);opacity:0}50%{transform:scale(1.12) translateY(-4px);opacity:1}100%{transform:scale(1) translateY(0);opacity:1}}@keyframes rescuePickIn{0%{transform:translateY(24px);opacity:0}100%{transform:translateY(0);opacity:1}}.rescue-avatar{animation:rescueGlow 1.5s ease-in-out infinite}.rescue-mode .grid-bubble{cursor:pointer;border-radius:50%;box-shadow:0 0 0 3px #fbbf24,0 0 10px rgba(251,191,36,.45);animation:rescueBubbleGlow 1.5s ease-in-out infinite;transition:transform .15s,filter .15s;z-index:5}.rescue-mode .grid-bubble:hover{transform:scale(1.15);filter:brightness(1.3);z-index:20}@keyframes rescueBubbleGlow{0%,100%{box-shadow:0 0 0 3px #fbbf24,0 0 8px rgba(251,191,36,.4)}50%{box-shadow:0 0 0 3px #fde68a,0 0 18px rgba(251,191,36,.8)}}.unlock-selectable{cursor:pointer!important;border-radius:50%;box-shadow:0 0 0 3px #a78bfa,0 0 10px rgba(167,139,250,.45)!important;animation:unlockBubbleGlow 1.5s ease-in-out infinite!important;transition:transform .15s,filter .15s;z-index:5}.unlock-selectable:hover{transform:scale(1.15)!important;filter:brightness(1.3)!important;z-index:20!important}@keyframes unlockBubbleGlow{0%,100%{box-shadow:0 0 0 3px #a78bfa,0 0 8px rgba(167,139,250,.4)}50%{box-shadow:0 0 0 3px #c4b5fd,0 0 18px rgba(167,139,250,.8)}}.unlock-disabled{opacity:.3!important;filter:grayscale(.6) brightness(.7)!important;pointer-events:none!important;cursor:default!important;transition:opacity .3s ease,filter .3s ease!important}@keyframes rescueGlow{0%,100%{box-shadow:0 0 20px rgba(251,191,36,.4)}50%{box-shadow:0 0 40px rgba(251,191,36,.8)}}#bubbleGameShell{background:var(--page-bg)!important}#gameTopBar{background:rgba(15,23,42,.78);border:1px solid var(--panel-border);border-radius:18px;padding:10px 14px!important;box-shadow:var(--shadow-card)}#scoreDisplay{display:inline-flex;align-items:center;justify-content:center;padding:7px 14px;border-radius:999px;color:#7dd3fc!important;background:rgba(14,165,233,.12);border:1px solid rgba(56,189,248,.24);box-shadow:none}#btnHome{background:rgba(15,23,42,.84)!important;color:var(--text-main)!important;border:1px solid #334155!important;border-radius:999px!important;box-shadow:none}#gameArea{background:radial-gradient(circle at 18% 14%,rgba(56,189,248,.12) 0 28px,transparent 28px),radial-gradient(circle at 82% 18%,rgba(34,197,94,.08) 0 18px,transparent 18px),linear-gradient(180deg,#0f172a 0%,#111c34 48%,#0b1224 100%)!important;border:1px solid #334155!important;box-shadow:0 24px 56px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.04)}#gameArea::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 0%,rgba(56,189,248,.1),transparent 36%),radial-gradient(circle at 12% 70%,rgba(59,130,246,.06),transparent 24%),radial-gradient(circle at 84% 74%,rgba(16,185,129,.05),transparent 22%);pointer-events:none;z-index:0}#gameArea::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;background:linear-gradient(180deg,transparent,rgba(2,6,23,.42) 40%,rgba(2,6,23,.82) 100%);pointer-events:none;z-index:1}#launcherBase{background:radial-gradient(circle at 32% 28%,rgba(71,85,105,.98),rgba(15,23,42,.94) 58%,rgba(2,6,23,1) 100%)!important;border:3px solid rgba(100,116,139,.68)!important;box-shadow:0 16px 28px rgba(0,0,0,.35)}#aimArrow>div{border-bottom-color:rgba(125,211,252,.9)!important;filter:drop-shadow(0 6px 8px rgba(56,189,248,.18))}#tapHint span{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;border-radius:999px;background:rgba(15,23,42,.86);border:1px solid rgba(56,189,248,.22);color:var(--text-main)!important;box-shadow:var(--shadow-soft)}#comboText{color:var(--accent-yellow)!important;font-size:28px!important;text-shadow:0 0 14px rgba(245,158,11,.45),0 0 32px rgba(245,158,11,.18)!important}#toastInner{background:rgba(15,23,42,.04)!important;border:1px solid rgba(51,65,85,.18);box-shadow:none!important}#guideToggle{background:rgba(15,23,42,.74);padding:6px 10px;border-radius:999px;border:1px solid #334155}#speedRange{accent-color:var(--accent-sky)!important}.grid-bubble{position:relative;z-index:2}.ambient-bubble{position:absolute;border-radius:50%;pointer-events:none;z-index:0;opacity:0;will-change:transform,opacity;animation:ambientFloat linear infinite;border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 -6px 10px rgba(0,0,0,.3),inset 0 4px 8px rgba(255,255,255,.18),0 0 8px var(--ab-glow,rgba(56,189,248,.15))}@keyframes ambientFloat{0%{transform:translateY(0) translateX(0) scale(.55);opacity:0}8%{opacity:var(--ab-opacity,.12);transform:translateY(calc(var(--ab-travel,500px)*-.06)) translateX(0) scale(.85)}32%{transform:translateY(calc(var(--ab-travel,500px)*-.3)) translateX(calc(var(--ab-drift,20px)*.7)) scale(1.08);opacity:var(--ab-opacity,.12)}62%{transform:translateY(calc(var(--ab-travel,500px)*-.6)) translateX(var(--ab-drift,20px)) scale(.93);opacity:var(--ab-opacity,.12)}86%{transform:translateY(calc(var(--ab-travel,500px)*-.86)) translateX(calc(var(--ab-drift,20px)*.25)) scale(.75);opacity:calc(var(--ab-opacity,.12)*.55)}100%{transform:translateY(calc(-1*var(--ab-travel,500px))) translateX(0) scale(.5);opacity:0}}