:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0e14;--panel:#141824;--bg-elevated:#141824;--panel-2:#0f131c;--bg-soft:#1a1f2e;--border:#2a3142;--border-strong:#3a4358;--text:#eef1f8;--muted:#a0a9bc;--accent:#6b8cff;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-ink:#dce4ff;--game-accent:var(--accent);--good:#3ddc97;--bad:#ff6b7a;--danger:#ff6b7a;--warn:#ffc14d;--radius:14px;--radius-sm:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--touch:44px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur:.16s;--font:"Segoe UI", system-ui, -apple-system, "Noto Sans TC", sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}.app[data-game=crash]{--game-accent:#ff6b4a}.app[data-game=hilo]{--game-accent:#4ecdc4}.app[data-game=mines]{--game-accent:#f0c14a}.app[data-game=dice]{--game-accent:#9b7bff}.app[data-game=plinko]{--game-accent:#5ad4a8}.app[data-game=blast]{--game-accent:#ff7a45;--accent:#ff7a45;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent)}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(900px 480px at 50% -12%, color-mix(in srgb, var(--game-accent,var(--accent)) 14%, #1a2240) 0%, transparent 55%), var(--bg);overscroll-behavior-y:none}button,input{font:inherit}button{cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:480px;min-height:100svh;padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom,0px));gap:var(--space-3);contain:layout style;align-content:start;margin:0 auto;display:grid}.header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.header-left{gap:2px;min-width:0;display:grid}.header h1{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700;line-height:1.2}.title-row{align-items:center;gap:10px;min-width:0;display:flex}.game-badge{width:32px;height:32px;box-shadow:0 0 0 1px color-mix(in srgb, var(--game-accent) 35%, var(--border)), 0 2px 8px #00000059;border-radius:9px;flex-shrink:0;display:block}.btn-lobby{border:1px solid var(--border);background:var(--panel-2);width:fit-content;min-height:32px;color:var(--muted);white-space:nowrap;transition:color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), background var(--dur) var(--ease-out);border-radius:999px;align-items:center;gap:4px;margin:0 0 6px;padding:4px 12px 4px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.btn-lobby:before{content:"←";opacity:.85;font-weight:700}.btn-lobby:hover{color:var(--text);border-color:color-mix(in srgb, var(--game-accent) 40%, var(--border));background:color-mix(in srgb, var(--game-accent) 8%, var(--panel-2))}.btn-lobby:active{transform:scale(.98)}.center .btn-lobby{justify-self:center;margin-top:12px}.sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;font-size:.8rem;display:flex}.sub-sep{opacity:.5}.status-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot.on{background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb, var(--good) 25%, transparent)}.bal{background:var(--accent-soft);color:var(--accent-ink);font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);border-radius:999px;flex-shrink:0;padding:8px 12px;font-size:.9rem;font-weight:600}.bet-panel{padding:var(--space-3);border-radius:var(--radius);background:var(--panel);border:1px solid var(--border);gap:10px;display:grid;box-shadow:inset 0 1px #ffffff0a}.amount-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.amount-row label{color:var(--muted);font-size:.9rem}.amount-row input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);width:140px;min-height:40px;color:var(--text);font-variant-numeric:tabular-nums;padding:8px 10px}.quick{flex-wrap:wrap;gap:6px;display:flex}.quick button{border:1px solid var(--border);background:var(--panel-2);min-width:44px;min-height:36px;color:var(--muted);transition:background var(--dur) var(--ease-out), color var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);border-radius:8px;padding:6px 10px}.quick button:hover:not(:disabled){color:var(--text);background:color-mix(in srgb, var(--panel-2) 70%, var(--accent))}.quick button.on,.quick button.active{color:var(--text);border-color:color-mix(in srgb, var(--game-accent) 45%, var(--border));background:color-mix(in srgb, var(--game-accent) 14%, var(--panel-2));font-weight:600}.primary-action,.primary,.btn{background:var(--accent);color:#fff;min-height:48px;transition:filter var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);border:none;border-radius:12px;padding:12px 14px;font-weight:700}.primary-action:hover:not(:disabled),.primary:hover:not(:disabled),.btn:hover:not(:disabled){filter:brightness(1.06)}.primary-action:active:not(:disabled),.primary:active:not(:disabled),.btn:active:not(:disabled){transform:scale(.985)}.primary-action:disabled,.primary:disabled,.quick button:disabled{opacity:.45;cursor:not-allowed}.hint{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:.85rem}.error{color:var(--bad);margin:0;font-size:.9rem}.section h2{color:var(--muted);letter-spacing:.02em;margin:0 0 8px;font-size:.8rem;font-weight:600}.center{place-content:center;gap:var(--space-3);text-align:center;min-height:100svh;padding:var(--space-5);color:var(--text);display:grid}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;margin:0 auto;animation:.75s linear infinite shell-spin}@keyframes shell-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-lobby:active,.primary-action:active:not(:disabled),.primary:active:not(:disabled),.btn:active:not(:disabled){transform:none}.status-dot.on{box-shadow:none}.spinner{border-top-color:var(--border);opacity:.8;animation:none}}.timer-track{background:#ffffff14;border-radius:999px;height:4px;overflow:hidden}.timer-track--idle{opacity:.35}.timer-fill{transform-origin:0;background:linear-gradient(90deg, var(--accent), #ffb347);width:100%;height:100%;transition:transform .1s linear}.timer-fill--urgent{background:linear-gradient(90deg,#ff5c5c,#ff8a5c);animation:.5s ease-in-out infinite alternate timer-urgent}@keyframes timer-urgent{0%{opacity:1}to{opacity:.55}}.grid{transition:opacity var(--dur) var(--ease-out);grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.grid.locked{opacity:.85}.grid.shaking{animation:grid-shake .4s var(--ease-out)}@keyframes grid-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.room{isolation:isolate;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);color:var(--text);cursor:pointer;min-height:100px;transition:border-color var(--dur) var(--ease-out), background var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:14px 8px 12px;display:flex;position:relative;overflow:hidden}.room:disabled{cursor:default}.room.selected{border-color:color-mix(in srgb, var(--accent) 70%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--panel));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), 0 8px 20px color-mix(in srgb, var(--accent) 12%, transparent)}.room.selected.betting{animation:2.2s ease-in-out infinite room-breathe}@keyframes room-breathe{0%,to{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent), 0 8px 20px color-mix(in srgb, var(--accent) 12%, transparent)}50%{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent), 0 8px 26px color-mix(in srgb, var(--accent) 22%, transparent)}}.room.exploded{background:color-mix(in srgb, var(--bad) 20%, var(--panel));border-color:color-mix(in srgb, var(--bad) 45%, var(--border))}.room.safe{background:color-mix(in srgb, var(--good) 12%, var(--panel));border-color:color-mix(in srgb, var(--good) 40%, var(--border))}.room-id{color:var(--muted);letter-spacing:.02em;font-size:.72rem;font-weight:600}.room-odds{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.2rem;font-weight:700}.room-meta{color:var(--muted);min-height:1em;font-size:.7rem}.room-meta--pad{visibility:hidden}.boom-flash{pointer-events:none;background:radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--bad) 55%, transparent), transparent 70%);animation:boom-flash .55s var(--ease-out) both;z-index:0;position:absolute;inset:0}.safe-glow{pointer-events:none;background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--good) 28%, transparent), transparent 68%);z-index:0;position:absolute;inset:0}.room-id,.room-odds,.room-meta{z-index:1;position:relative}@keyframes boom-flash{0%{opacity:.9}to{opacity:0}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:10px;padding:12px;display:flex}.amount-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums;transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);border-radius:999px;padding:7px 12px;font-size:.88rem;font-weight:600}.chip.on{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));background:color-mix(in srgb, var(--accent) 22%, var(--panel-2))}.chip:disabled{opacity:.45;cursor:default}.amount-input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-2);min-width:72px;min-height:40px;color:var(--text);font-variant-numeric:tabular-nums;flex:1;padding:8px 10px}.btn-primary{color:#1a0c08;cursor:pointer;background:linear-gradient(135deg,#ff8a4a,#ff5c5c);border:0;border-radius:12px;min-height:48px;padding:13px 14px;font-weight:700}.btn-primary:disabled{opacity:.4;cursor:default}.btn-primary--done{background:color-mix(in srgb, var(--good) 35%, var(--panel-2));color:#e8fff4;border:1px solid color-mix(in srgb, var(--good) 40%, transparent)}.note{color:var(--muted);text-align:center;margin:0;font-size:.8rem}.error{color:#ff8a8a;text-align:center;margin:0;font-size:.88rem}.result-overlay{text-align:center;font-variant-numeric:tabular-nums;border-radius:var(--radius);padding:16px 14px;font-size:1.15rem;font-weight:700;position:relative;overflow:hidden}.result-overlay.win{background:color-mix(in srgb, var(--good) 16%, var(--panel));border:1px solid color-mix(in srgb, var(--good) 35%, transparent);color:#c8ffe6}.result-overlay.lose{background:color-mix(in srgb, var(--bad) 16%, var(--panel));border:1px solid color-mix(in srgb, var(--bad) 35%, transparent);color:#ffc4c4}.result-label{z-index:1;position:relative}.win-burst,.boom-burst{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.burst-dot{background:#8ef0c2;border-radius:50%;width:6px;height:6px;position:absolute}.boom-dot{width:6px;height:6px;box-shadow:0 0 6px color-mix(in srgb, var(--bad) 60%, transparent);z-index:1;background:#ff8a5c;border-radius:50%;position:absolute}.center{min-height:100dvh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex}.spinner{border:3px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner,.boom-flash,.grid.shaking,.room.selected.betting,.timer-fill--urgent,.status-dot{animation:none}.timer-fill{transition:none}}
