[hidden]{display:none!important}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;border:1px solid #657354;border-radius:24px;padding:44px 54px;background:radial-gradient(ellipse at left,#1c4b3b,#16251f 80%);min-height:420px}.welcome-suit{font-size:80px;color:var(--gold);line-height:1}.welcome h2{font-size:34px;margin:18px 0}.welcome-copy p{line-height:1.7;max-width:350px;color:#cfdbd1}.small{font-size:14px;color:var(--muted);line-height:1.6}a{color:var(--gold);text-underline-offset:4px}.entry{display:flex;flex-direction:column;gap:16px;background:#101d18;padding:30px;border:1px solid #ffffff15;border-radius:15px}.entry h2{font-size:28px;margin:0 0 8px}.entry label,.invite label{font-size:14px}.entry input,.invite input{min-width:0;background:#21332b;border:1px solid #708171;color:#fff;border-radius:8px;padding:13px;font:inherit}.entry .small{margin:0}.session-note{text-align:center;color:var(--muted);font-size:12px;line-height:1.7;margin:28px auto;max-width:700px}#notice{padding:14px 20px;border:1px solid var(--gold);background:#302c1d;border-radius:9px;color:#ffe1a3}.lobby{background:#172922;border:1px solid #667052;border-radius:22px;padding:30px}.lobby-head{display:flex;justify-content:space-between;align-items:center}.lobby h2{margin-top:9px}.invite{margin:26px 0}.invite>div{display:flex;gap:10px;margin-top:9px}.invite input{flex:1;width:100%}.lobby-seats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lobby-seat{border:1px solid #65765c;border-radius:12px;padding:20px;background:#203a2c;min-height:95px;overflow-wrap:anywhere}.lobby-seat.empty{background:transparent;border-style:dashed;color:var(--muted)}.lobby-seat strong{display:block;margin-bottom:9px}.lobby-seat span{font-size:13px;color:var(--muted)}.lobby-actions{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap}.lobby-actions p{flex:1;min-width:180px;font-size:14px;line-height:1.6;color:var(--muted)}.play-top{display:flex;gap:20px;align-items:center;color:var(--muted);font-size:14px;margin:0 0 20px}.play-top a{margin-left:auto}.opponents .seat{min-width:0;flex:1;max-width:170px}.opponents .seat-name{overflow-wrap:anywhere}.table{padding-left:30px;padding-right:30px}.opponents{gap:16px}.hero{max-width:90%}.hero .seat-name{overflow-wrap:anywhere}.status p{overflow-wrap:anywhere}#timer{color:var(--gold)}.invite input{font-size:14px}.empty-seat-mark{font-size:26px;color:#8ca18d;margin-bottom:4px}@media(max-width:760px){.welcome{grid-template-columns:1fr;padding:25px;gap:22px}.welcome-copy h2{font-size:29px;margin-top:4px}.welcome-suit{display:none}.welcome-copy p{margin:10px 0;max-width:none}.welcome-copy .small{display:none}.entry{padding:22px}.lobby{padding:20px}.lobby-seats{grid-template-columns:repeat(2,1fr)}.invite>div{flex-direction:column}.lobby-actions{align-items:stretch}.lobby-actions p{flex-basis:100%;margin:0}.lobby-seat{padding:15px}.table{padding-left:8px;padding-right:8px}.opponents{flex-wrap:wrap;gap:12px}.opponents .seat{flex:1 1 27%;max-width:31%}.game:has(.opponents .seat:nth-child(4)) .table{min-height:480px}.opponents .card{width:25px}.play-top{font-size:12px;gap:10px}.session-note{margin-top:20px}.heading{margin-bottom:18px}}
/* Casino table: green felt, padded rail, gold inlay, and visible dealer puck. */
body{background:radial-gradient(ellipse at 50% 25%,#213328 0,#101714 65%)}
.table{position:relative;min-height:445px;border:18px solid #281d17;outline:2px solid #ad8549;border-radius:210px;background:radial-gradient(ellipse at 50% 40%,#23794e 0,#16583b 58%,#103e2b 100%);box-shadow:0 0 0 6px #13130f,0 0 0 8px #5a432c,0 25px 55px #0008,inset 0 0 40px #041f18aa;padding:28px 38px 54px}
.table:before{content:'';position:absolute;inset:12px;border:1px solid #dfbd6d77;border-radius:inherit;pointer-events:none}.table:after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.15;background-image:repeating-linear-gradient(0deg,transparent 0 2px,#071c1518 2px 3px)}
.opponents,.board-zone{position:relative;z-index:1}.opponents .seat{padding:12px 8px;background:#0b2922a8;border:1px solid #b499614a;border-radius:14px;box-shadow:0 5px 10px #0003}.seat.active:before{border:2px solid #f3d38b;inset:-4px;box-shadow:0 0 14px #e7b95744}.opponents .seat-name{min-height:21px}.seat-name{padding-right:4px}.cards{position:relative}.casino-dealer{position:absolute;right:-13px;top:-18px;width:49px;height:49px;display:grid;place-items:center;margin:0;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fffef5,#dcd5bf);color:#29271d;border:3px double #817653;box-shadow:0 4px 0 #8c8777,0 7px 10px #0007;font:800 9px/1 system-ui;letter-spacing:.5px;z-index:4}.hero .casino-dealer{right:-18px;top:-15px}.hero{background:linear-gradient(#203b30,#11281f);border:2px solid #c6a66c;padding:18px 34px;box-shadow:0 0 0 4px #1a1914,0 10px 24px #0008;min-width:280px}.game{padding:8px 6px 96px}.board-zone{padding-top:22px}.felt-brand{color:#e2ce936b;font:600 19px Georgia,serif;letter-spacing:4px;margin:0 0 17px}.felt-brand span{display:block;font:10px system-ui;letter-spacing:3px;margin-top:7px}.board .card{width:59px;height:82px;border:1px solid #fff9d9}.board .card.empty{border:1px dashed #e4ce9566;background:#0a322366}.pot{display:inline-flex;align-items:center;background:#092c20a8;padding:7px 20px;border-radius:30px;border:1px solid #e8c67855}.pot strong{font-size:28px}.seat-bet{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:6px;font-size:12px;color:#f2d99c}.bet-chip{width:17px;height:17px;display:inline-block;border-radius:50%;background:#a43e38;border:3px dashed #f8e6c4;box-shadow:0 2px 0 #5d1f19}.all-in{background:linear-gradient(#ab3631,#78221f);border:1px solid #f29373;color:#fff4df;font-weight:700;box-shadow:inset 0 1px #ffcda044}.all-in:hover{background:#b9483d}.action-panel{border-color:#ab874d66;background:linear-gradient(100deg,#242a20,#19251e)}
.table-chat{background:#17271f;border:1px solid #977c494d;border-radius:16px;margin-top:26px;padding:22px}.chat-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #ffffff16;padding-bottom:14px}.chat-heading h2{font-size:23px;color:#edcf93}.chat-heading>span{font-size:12px;color:var(--muted)}.chat-messages{height:185px;overflow:auto;overscroll-behavior:contain;padding:14px 4px;scrollbar-color:#6a775a #102218}.chat-empty{color:var(--muted);font-size:14px}.chat-message{padding:8px 12px;margin-bottom:8px;background:#21372c;border-radius:9px;border-left:2px solid #5e7460}.chat-message.own{border-left-color:var(--gold);background:#2c392b}.chat-message strong{font-size:14px;color:#eccc92;overflow-wrap:anywhere}.chat-message time{font-size:12px;color:var(--muted);margin-left:12px}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 2px;line-height:1.45}.chat-label{display:block;margin:10px 0 8px;font-size:14px}.chat-compose{display:flex;gap:10px}.chat-compose input{min-width:0;flex:1;background:#0e2018;border:1px solid #67765b;border-radius:8px;padding:12px;color:#fff;font:inherit}#chatError{color:#ffd0a5;font-size:14px;margin:8px 0 0}
@media(max-width:760px){.table{border-width:12px;border-radius:65px;padding:24px 14px 52px;min-height:425px}.game{padding:8px 6px 94px}.opponents{gap:14px}.opponents .seat{padding:10px 3px}.opponents .card{width:25px;height:39px}.casino-dealer{width:38px;height:38px;font-size:7px;right:-9px;top:-17px}.hero .casino-dealer{width:46px;height:46px;font-size:8px;right:-10px}.felt-brand{font-size:15px;letter-spacing:2px;margin-bottom:14px}.board .card{width:47px;height:67px}.table-chat{padding:16px}.chat-heading{align-items:flex-start}.chat-heading>span{max-width:100px;text-align:right}.chat-messages{height:160px}.hero{min-width:250px;padding:14px 26px}.seat-bet{font-size:11px}.game:has(.opponents .seat:nth-child(4)) .table{min-height:560px}.board-zone{padding-top:24px}.all-in{flex-grow:1}}
