:root{--bg: #0A0E0C;--surface: #121916;--surface-raised: #1B2420;--line: #2A352F;--felt: #0E4A37;--felt-deep: #072A1F;--gold: #C9A35C;--gold-bright: #E3C989;--text: #F1EAD9;--muted: #8D948C;--blood: #A3402F;--card: #F4EFE3;--serif: "Noto Serif SC", "Songti SC", serif;--latin: "Cormorant Garamond", Georgia, serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(120% 80% at 50% 20%,#121916 0%,var(--bg) 60%);color:var(--text);font-family:-apple-system,PingFang SC,sans-serif;min-height:100vh}.hidden{display:none!important}#lobby{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.lobby-kicker{font-family:var(--latin);letter-spacing:.4em;font-size:11px;color:var(--gold);text-transform:uppercase;margin-bottom:20px}.lobby-ace{font-family:var(--latin);font-size:72px;color:var(--text);margin-bottom:12px}.lobby-title{font-family:var(--serif);font-weight:900;font-size:32px;letter-spacing:.12em;margin-bottom:8px}.lobby-tagline{color:var(--muted);font-size:14px;margin-bottom:28px}.lobby-cta{background:none;border:1px solid var(--gold);color:var(--gold);font-family:var(--serif);font-size:16px;letter-spacing:.3em;padding:14px 40px 14px 46px;border-radius:2px;cursor:pointer}.lobby-cta:hover{background:var(--gold);color:var(--bg)}#entry{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.entry-label{font-family:var(--serif);font-size:18px;letter-spacing:.1em}.entry-slider{width:240px;accent-color:var(--gold)}.entry-count{font-family:var(--latin);font-size:40px;color:var(--gold)}.entry-hint{color:var(--muted);font-size:12px}.entry-btn{background:none;border:1px solid var(--gold);color:var(--gold);font-family:var(--serif);font-size:15px;letter-spacing:.25em;padding:12px 32px;border-radius:2px;cursor:pointer}#table{min-height:100vh;display:flex;flex-direction:column;padding:12px;max-width:480px;margin:0 auto}.table-top{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);padding:4px 0 10px}.table-top .venue{font-family:var(--latin);letter-spacing:.2em;color:var(--gold)}.leave-btn{background:none;border:1px solid var(--line);color:var(--muted);font-family:var(--serif);font-size:11px;letter-spacing:.1em;padding:3px 12px;border-radius:2px;cursor:pointer}.leave-btn:hover{border-color:var(--gold);color:var(--gold)}.stage{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-height:300px}.felt{width:100%;max-width:420px;height:100%;border-radius:50%;background:radial-gradient(ellipse at 50% 30%,var(--felt),var(--felt-deep) 90%);border:1px solid rgba(201,163,92,.2);position:relative}.pot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center}.pot-amount{font-family:var(--latin);font-size:20px;color:var(--gold)}.pot-label{font-size:9px;color:var(--muted);letter-spacing:.25em}.pot.settle .pot-amount{font-size:36px;font-weight:900;color:var(--gold-bright);text-shadow:0 0 18px rgba(201,163,92,.35)}.pot-verdict{font-family:var(--serif);font-weight:900;font-size:15px;letter-spacing:.1em;margin-top:2px;white-space:nowrap}.pot-verdict.win{color:var(--gold)}.pot-verdict.lose{color:var(--blood)}.pot-verdict.fold{color:var(--muted)}.community{position:absolute;left:50%;top:38%;transform:translate(-50%);display:flex;gap:4px}.card{width:34px;height:48px;background:var(--card);border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--latin);font-weight:600;font-size:15px;color:#1a1a1a;box-shadow:0 2px 6px #00000080}.card.red{color:var(--blood)}.card.back{background:repeating-linear-gradient(45deg,var(--felt) 0 4px,var(--felt-deep) 4px 8px)}.seats{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.seat{position:absolute;text-align:center;transform:translate(-50%,-50%)}.seat .avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-raised);border:1px solid var(--line);margin:0 auto 4px;display:flex;align-items:center;justify-content:center;font-size:18px}.seat.active .avatar{border-color:var(--gold);box-shadow:0 0 12px #c9a35c66}.seat.folded{opacity:.45}.seat .name{font-size:10px;color:var(--muted)}.seat .stack{font-family:var(--latin);font-size:10px;color:var(--gold)}.seat .tag{font-size:8px;color:var(--muted)}.seat .badge{display:inline-block;font-size:8px;padding:1px 5px;border-radius:2px;margin-top:2px}.badge.allin{background:var(--blood);color:#fff}.badge.fold{background:var(--line);color:var(--muted)}.badge.win{background:var(--gold);color:#0a0e0c;font-weight:800}.seat.winner .avatar{border-color:var(--gold-bright);box-shadow:0 0 18px #e3c98999}.seat.winner .name{color:var(--gold-bright);font-weight:700}.dealer-d{position:absolute;top:-20px;left:50%;transform:translate(calc(-50% - 54px));width:24px;height:24px;border-radius:50%;background:#fff;color:#000;font-weight:900;font-size:13px;display:grid;place-items:center;box-shadow:0 1px 3px #00000080;z-index:12}.dealer-d.d-right{transform:translate(calc(-50% + 54px))}.chips{position:absolute;bottom:-14px;left:50%;transform:translate(-50%);display:flex;gap:2px;z-index:8}.chips .chip{width:14px;height:14px;border-radius:50%;background:var(--gold,#C9A35C);border:2px dashed #8a6a2f;box-shadow:0 1px 2px #0006}.seat-cards{position:absolute;top:-40px;left:50%;transform:translate(-50%);display:flex;gap:3px;z-index:9}.seat-cards .mini{width:26px;height:36px;border-radius:4px;display:grid;place-items:center;font-size:10px;font-weight:700}.seat-cards .mini.back{background:#22354a;border:1px solid #3a5a7a}.seat-cards .mini.front{background:var(--card,#F4EFE3);color:#171b19}.seat-cards .mini.front.red{color:var(--blood,#A3402F)}.seat.top .seat-cards{top:auto;bottom:-40px}.seat.top .dealer-d{top:auto;bottom:-20px}.seat.top .action-tag{top:auto;bottom:-18px}.seat.folded .seat-cards{opacity:.35;filter:grayscale(1)}.seat.folded .chips{display:none}.seat.folded .dealer-d{opacity:1}.seat.far{transform:translate(-50%,-50%) scale(.8)}.seat.far .avatar{width:32px;height:32px;font-size:14px;margin-bottom:2px}.seat.far .name{font-size:9px}.seat.far .tag{display:none}.seat.far .stack{font-size:9px}.seat.far .badge{font-size:7px;margin-top:1px}.seat.player .avatar{width:46px;height:46px;border:2px solid var(--gold);box-shadow:0 0 14px #c9a35c59}.seat.player .name{color:var(--gold-bright)}.seat.player .seat-cards{top:-44px}.seat.player .seat-cards .mini{width:30px;height:42px;font-size:13px}.coach{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:10px 12px;font-family:var(--serif);font-size:13px;line-height:1.6;min-height:44px;margin-bottom:8px}.coach .kicker{font-size:9px;color:var(--gold);letter-spacing:.2em;margin-right:6px}.actions{position:relative;display:flex;flex-wrap:wrap;gap:8px}.act{flex:1 1 0;min-width:96px;padding:12px 0;border-radius:3px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-family:var(--serif);font-size:13px;cursor:pointer}.act:disabled{opacity:.4;cursor:not-allowed}.act.primary{border-color:var(--gold);color:var(--gold);background:#c9a35c14}.act.danger{border-color:var(--blood);color:var(--blood)}.act .amt{display:block;font-family:var(--latin);font-size:11px;color:var(--muted)}.action-tag{position:absolute;top:-18px;left:50%;transform:translate(-50%);background:var(--gold, #C9A35C);color:#0a0e0c;font-weight:800;font-size:11px;padding:2px 8px;border-radius:999px;white-space:nowrap;z-index:10}.timer{position:absolute;right:14px;top:-6px;background:var(--blood, #A3402F);color:#fff;font-weight:900;font-size:15px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center}.raise-panel{display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px}.raise-quick{display:flex;gap:6px;flex-wrap:wrap}.raise-quick .quick{background:#c9a35c24;border:1px solid rgba(201,163,92,.5);color:var(--gold, #C9A35C);font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px;cursor:pointer}.raise-quick .quick:active{background:#c9a35c59}.raise-row{display:flex;align-items:center;gap:8px}.raise-amount{min-width:70px;font-weight:900;color:var(--gold, #C9A35C);text-align:center;font-family:var(--latin)}input[type=range]#raiseSlider{flex:1;accent-color:var(--gold, #C9A35C)}.act.allin{border-color:var(--blood);background:var(--blood);color:#fff;font-weight:800;letter-spacing:.08em}.rank-badge{font-family:var(--serif);font-size:11px;color:var(--gold)}
