:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0e14;--panel:#141824;--panel-2:#0f131c;--border:#2a3142;--text:#eef1f8;--muted:#a0a9bc;--accent:#6b8cff;--accent-soft:color-mix(in srgb, var(--accent) 16%, transparent);--accent-ink:#dce4ff;--higher:#3ddc97;--lower:#ff8e53;--win:#3ddc97;--lose:#ff6b7a;--good:#3ddc97;--bad:#ff6b7a;--warn:#ffc14d;--radius:14px;--radius-sm:10px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur:.16s;--z-modal:40;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Segoe UI,system-ui,-apple-system,Noto Sans TC,sans-serif}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(900px 420px at 50% -15%, #1a2744 0%, transparent 55%), var(--bg)}button,input{font:inherit}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:480px;padding:14px 14px calc(20px + env(safe-area-inset-bottom));contain:layout style;gap:14px;margin:0 auto;display:grid}.header{justify-content:space-between;align-items:center;gap:12px;display:flex}.header h1{letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:700}.btn-lobby{border:1px solid var(--border);background:var(--panel-2,#0f131c);min-height:32px;color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;margin:0 0 6px;padding:4px 12px;font-size:.82rem;font-weight:600;display:inline-flex}.btn-lobby:hover{color:var(--text);border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.center .btn-lobby{justify-self:center;margin-top:16px}.sub{color:var(--muted);margin:2px 0 0;font-size:.82rem}.bal{background:var(--accent-soft);color:var(--accent-ink);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;padding:7px 12px;font-weight:600}.table{perspective:900px;contain:layout;grid-template-columns:1fr 1fr;gap:12px;display:grid}.card-slot{justify-items:center;gap:8px;display:grid}.card-label{color:var(--muted);font-size:.8rem}.playing-card{color:#1a1a1a;will-change:transform;background:#f7f8fc;border:1px solid #d0d5e0;border-radius:12px;width:120px;height:168px;position:relative;transform:translateZ(0);box-shadow:0 10px 28px #00000059}.playing-card.red{color:#c41e1e}.playing-card.black{color:#1b1b1b}.playing-card.back{background:linear-gradient(145deg,#1e3a5f,#0f1c30);border-color:#3a5478}.card-back-pattern{background:repeating-linear-gradient(45deg,#ffffff0d,#ffffff0d 8px,#0000 8px 16px);border:2px solid #ffffff26;border-radius:8px;position:absolute;inset:10px}.corner{text-align:center;font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:700;line-height:1.1;display:grid;position:absolute}.corner.top{top:8px;left:10px}.corner.bottom{bottom:8px;right:10px;transform:rotate(180deg)}.center-pip{place-items:center;font-size:2.4rem;display:grid;position:absolute;inset:0}.odds-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.odds-box{background:var(--panel);border:1px solid var(--border);text-align:center;transition:opacity var(--dur) var(--ease-out);border-radius:12px;gap:4px;padding:10px;display:grid}.odds-box.off{opacity:.4}.odds-title{color:var(--muted);font-size:.8rem}.stat-strip{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.stat{background:var(--panel);text-align:center;gap:4px;padding:12px 10px;display:grid}.stat-label{color:var(--muted);font-size:.75rem;font-weight:600}.stat-val{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.15rem;font-weight:700}.stat-val.muted{color:var(--muted);font-size:1rem}.stat-unit{color:var(--muted);font-size:.8rem;font-weight:600}.mines-board{--grid:5;grid-template-columns:repeat(var(--grid), 1fr);border-radius:var(--radius);background:radial-gradient(80% 60% at 50% 0%, #6b8cff1a, transparent 70%), var(--panel-2);border:1px solid var(--border);gap:6px;padding:12px;display:grid;box-shadow:inset 0 1px #ffffff0a}.mines-board.live .mine-cell.hidden:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));background:color-mix(in srgb, var(--accent) 12%, var(--panel))}.mine-cell{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border);background:linear-gradient(180deg, #1a2030 0%, var(--panel) 100%);cursor:default;min-height:44px;transition:background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);position:relative}.mine-cell.hidden{cursor:pointer;box-shadow:0 2px #0a0c12}.mine-cell.hidden:active:not(:disabled){box-shadow:none;transform:translateY(1px)}.mine-cell.safe{background:color-mix(in srgb, var(--good) 18%, var(--panel));border-color:color-mix(in srgb, var(--good) 40%, var(--border));cursor:default}.mine-cell.mine{background:color-mix(in srgb, var(--bad) 32%, var(--panel));border-color:color-mix(in srgb, var(--bad) 55%, var(--border));cursor:default}.mine-mark{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.mine-mark svg{width:52%;height:52%;display:block}.mine-cell.safe .mine-mark svg{color:var(--good);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--good) 45%, transparent))}.mine-cell.mine .mine-mark svg{color:var(--bad);filter:drop-shadow(0 0 8px color-mix(in srgb, var(--bad) 55%, transparent))}.bet-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:10px;padding:12px;display:grid}.amount-row{justify-content:space-between;align-items:center;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:120px;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);cursor:pointer;transition:color var(--dur) var(--ease-out), background var(--dur) var(--ease-out);border-radius:8px;padding:6px 10px}.quick button:hover:not(:disabled){color:var(--text)}.primary,.choice{cursor:pointer;color:#fff;min-height:48px;transition:filter var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);border:none;border-radius:12px;padding:14px;font-weight:700}.primary{background:var(--accent)}.primary:hover:not(:disabled),.choice:hover:not(:disabled){filter:brightness(1.05)}.primary:active:not(:disabled),.choice:active:not(:disabled){transform:scale(.985)}.choice-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice{gap:2px;display:grid}.choice small{opacity:.9;font-variant-numeric:tabular-nums;font-weight:500}.choice.higher{color:#042116;background:linear-gradient(135deg,#2f9e6b,#3ddc97)}.choice.lower{color:#2a1200;background:linear-gradient(135deg,#d96a2f,#ff8e53)}.choice:disabled,.primary:disabled,.quick button:disabled{opacity:.45;cursor:not-allowed}.hint{color:var(--muted);margin:0;font-size:.85rem}.error{color:var(--lose);margin:0}.overlay{z-index:var(--z-modal);background:#0000008c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-card{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:18px;gap:8px;width:min(360px,100%);padding:20px;display:grid}.result-card.win{border-color:color-mix(in srgb, var(--win) 50%, transparent)}.result-card.lose{border-color:color-mix(in srgb, var(--lose) 45%, transparent)}.result-card h2{letter-spacing:-.02em;margin:0}.result-card .payout{font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:700}.result-card.win .payout{color:var(--win)}.result-card.lose .payout{color:var(--lose)}.detail{color:var(--muted);margin:0}.center{text-align:center;place-content:center;gap:10px;min-height:100dvh;padding:24px;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 spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.playing-card{will-change:auto}.primary:active:not(:disabled),.choice:active:not(:disabled){transform:none}}
