:root{--lacquer: #8e1b1b;--lacquer-dark: #5f0f0f;--lacquer-hi: #b23434;--gold: #e7b53c;--gold-hi: #ffd877;--gold-deep: #b8892a;--jade: #1f7a55;--jade-deep: #14573c;--cream: #fdf6e3;--ink: #241a10;--red: #c0392b;--card-w: 58px;--card-h: 82px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif;background:radial-gradient(ellipse at 50% -10%,#a32626,#6d1212 55%,#4a0b0b);color:var(--cream);-webkit-tap-highlight-color:transparent}.app{min-height:100%;display:flex;flex-direction:column;align-items:center}.topbar{width:100%;display:flex;align-items:center;gap:10px;padding:8px 14px;background:linear-gradient(var(--lacquer-hi),var(--lacquer));border-bottom:4px solid var(--lacquer-dark)}.brand{font-weight:800;font-size:19px;letter-spacing:1px;color:var(--gold-hi);text-shadow:2px 2px 0 var(--lacquer-dark)}.brand small{font-weight:600;font-size:11px;color:var(--cream);opacity:.85;margin-left:8px;letter-spacing:.4px}.hand-counter{margin-left:auto;font-size:13px;font-weight:700;color:var(--gold-hi)}.landing{flex:1;display:grid;place-items:center;padding:24px;text-align:center}.landing-inner{max-width:460px}.landing h1{font-size:44px;margin:0 0 4px;color:var(--gold-hi);text-shadow:3px 3px 0 var(--lacquer-dark);letter-spacing:2px}.landing .tagline{font-size:15px;opacity:.92;margin:0 0 6px}.landing .fineprint{font-size:12px;opacity:.7;margin:0 0 22px}.landing .heroes{display:flex;justify-content:center;gap:4px;margin-bottom:20px}.landing .heroes img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.35))}.play-btn{font-size:20px;font-weight:800;letter-spacing:1px;cursor:pointer;color:var(--lacquer-dark);background:linear-gradient(var(--gold-hi),var(--gold));border:3px solid var(--ink);border-radius:14px;padding:12px 46px;box-shadow:3px 3px 0 var(--ink)}.play-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.rules-note{margin-top:18px;font-size:12.5px;line-height:1.55;opacity:.85;text-align:left;background:#00000040;border-radius:10px;padding:10px 14px}.table{width:100%;max-width:640px;flex:1;display:flex;flex-direction:column;padding:10px 10px 14px;gap:8px}.felt{background:var(--jade);border:3px solid var(--ink);border-radius:18px;box-shadow:inset 0 0 0 3px var(--gold),inset 0 0 0 7px var(--jade-deep),3px 3px 0 var(--ink);padding:10px;display:flex;flex-direction:column;gap:8px;flex:1}.opps{display:flex;justify-content:space-between;gap:6px}.opp{flex:1;min-width:0;background:#00000038;border-radius:12px;padding:6px;display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid transparent}.opp.active{border-color:var(--gold);box-shadow:0 0 12px 2px #e7b53c8c}.opp.folded{opacity:.45;filter:grayscale(.7)}.opp .portrait{width:52px;height:52px;border-radius:10px;border:2px solid var(--gold);background:var(--cream);object-fit:cover}.seat-name{font-size:11px;font-weight:700;color:var(--gold-hi);background:var(--lacquer-dark);border-radius:8px;padding:1px 8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-chips{font-size:11.5px;font-weight:800;color:var(--cream)}.seat-chips.negative{color:#ff9d8f}.street-bet{font-size:10.5px;font-weight:700;color:var(--lacquer-dark);background:linear-gradient(var(--gold-hi),var(--gold));border-radius:8px;padding:0 7px}.opp-cards{display:flex;gap:2px;align-items:flex-end;min-height:46px;flex-wrap:wrap;justify-content:center}.mini-back{width:22px;height:32px;border-radius:4px;border:1.5px solid var(--gold-deep);background:var(--lacquer) url(/table/cardback.png) center / cover;box-shadow:1px 1px #0006}.opp-cards .card.sm{--card-w: 30px;--card-h: 44px}.fold-tag{font-size:10px;font-weight:800;letter-spacing:1px;color:var(--cream);background:#00000080;border-radius:6px;padding:1px 7px}.center{display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px 0}.street-banner{font-size:12.5px;font-weight:800;letter-spacing:1px;color:var(--lacquer-dark);background:linear-gradient(var(--gold-hi),var(--gold));border:2px solid var(--ink);border-radius:10px;padding:2px 14px;box-shadow:2px 2px 0 var(--ink)}.pot{font-size:15px;font-weight:800;color:var(--gold-hi);text-shadow:1px 1px 0 var(--jade-deep)}.dealer-note{font-size:11px;color:#eafff2;opacity:.8}.you-panel{display:flex;flex-direction:column;gap:6px;background:#00000038;border-radius:14px;padding:8px;border:2px solid transparent}.you-panel.active{border-color:var(--gold);box-shadow:0 0 14px 3px #e7b53c80}.you-head{display:flex;align-items:center;gap:8px}.you-head .portrait{width:40px;height:40px;border-radius:9px;border:2px solid var(--gold);background:var(--cream)}.you-head .seat-chips{font-size:13px}.you-cards{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;align-items:flex-end}.you-cards .card{cursor:default}.hole-group,.up-group{display:flex;gap:5px;padding:4px;border-radius:10px}.hole-group{background:#5e0f0f59;box-shadow:inset 0 0 0 2px #e7b53c80}.group-label{font-size:9.5px;font-weight:800;letter-spacing:.5px;color:var(--gold-hi);text-align:center;margin-bottom:2px;opacity:.9}.actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;padding:2px 0 4px;min-height:44px}.act-btn{font-size:15px;font-weight:800;cursor:pointer;border-radius:12px;padding:9px 18px;border:2.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink);background:var(--cream);color:var(--lacquer-dark)}.act-btn:active{transform:translate(1.5px,1.5px);box-shadow:.5px .5px 0 var(--ink)}.act-btn.fold{background:linear-gradient(#e8e8e8,#cfcfcf)}.act-btn.aggressive{background:linear-gradient(var(--gold-hi),var(--gold))}.act-btn.call{background:linear-gradient(#bfe8d2,#8fd2ae)}.act-btn small{display:block;font-size:10.5px;font-weight:700;opacity:.75}.waiting-note{font-size:12.5px;opacity:.85;align-self:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140808c7;display:grid;place-items:center;z-index:40;padding:16px}.result-card{background:linear-gradient(#fffef8,var(--cream));color:var(--ink);border:3px solid var(--gold);border-radius:16px;box-shadow:0 10px 40px #00000080;padding:16px 18px;max-width:520px;width:100%;max-height:86vh;overflow-y:auto}.result-card h2{margin:0 0 8px;color:var(--lacquer);font-size:20px}.reveal-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px dashed rgba(0,0,0,.15)}.reveal-row.winner{background:#e7b53c2e;border-radius:10px}.reveal-row .portrait{width:34px;height:34px;border-radius:8px;border:2px solid var(--gold)}.reveal-name{font-weight:800;font-size:13px;min-width:86px}.reveal-hand{font-size:12px;font-weight:700;color:var(--lacquer)}.reveal-cards{display:flex;gap:2px;margin-left:auto}.reveal-cards .card.sm{--card-w: 26px;--card-h: 38px}.reveal-cards .card.sm.best{outline:2px solid var(--gold-deep);outline-offset:-1px}.pot-line{font-weight:800;margin:10px 0 4px}.next-btn{margin-top:12px;width:100%;font-size:17px;font-weight:800;cursor:pointer;color:var(--lacquer-dark);background:linear-gradient(var(--gold-hi),var(--gold));border:3px solid var(--ink);border-radius:12px;padding:10px;box-shadow:2.5px 2.5px 0 var(--ink)}.scorebox{width:100%;border-collapse:collapse;margin-top:6px}.scorebox th,.scorebox td{text-align:left;padding:6px 8px;border-bottom:1px solid rgba(0,0,0,.12);font-size:13.5px}.scorebox .pos{color:#1c7a3f;font-weight:800}.scorebox .neg{color:var(--red);font-weight:800}@media (max-width: 430px){.you-cards .card{--card-w: 46px;--card-h: 66px}.opp .portrait{width:42px;height:42px}}.card{width:var(--card-w);height:var(--card-h);background:radial-gradient(120% 90% at 50% 0%,var(--cream) 0%,var(--cream) 62%,#fdeecb 100%);border:2.5px solid var(--ink);border-radius:11px;box-shadow:2px 2px 0 var(--ink),inset 0 4px 7px #fffc;position:relative;cursor:pointer;flex:0 0 auto;padding:0;font-family:Georgia,Trebuchet MS,serif;overflow:hidden}.card.sm{width:48px;height:68px;border-radius:9px}.card.red{color:var(--red)}.card.black{color:var(--ink)}.card.dimmed{cursor:default}.card:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1.5px solid var(--gold);border-radius:7px;pointer-events:none;z-index:1}.card.sm:before{top:2.5px;right:2.5px;bottom:2.5px;left:2.5px;border-radius:6px}.card .corner{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:center;line-height:.92;font-weight:700;font-size:15px;letter-spacing:-.5px}.card .corner .csuit{font-size:12px;line-height:1}.card.sm .corner{font-size:11px}.card.sm .corner .csuit{font-size:9px}.card .corner.tl{top:5px;left:5px}.card .corner.br{bottom:5px;right:5px;transform:rotate(180deg)}.card.sm .corner.tl{top:4px;left:4px}.card.sm .corner.br{bottom:4px;right:4px}.card .filigree{position:absolute;z-index:2;width:12px;height:12px;color:var(--gold);opacity:.85;pointer-events:none}.card .filigree.tr{top:4px;right:4px}.card .filigree.bl{bottom:4px;left:4px;transform:rotate(180deg)}.card.sm .filigree{width:9px;height:9px}.card .face{position:absolute;top:12px;right:9px;bottom:12px;left:9px;z-index:2}.card.sm .face{top:10px;right:7px;bottom:10px;left:7px}.card .pip-grid{position:absolute;top:0;right:0;bottom:0;left:0}.card .pip{position:absolute;transform:translate(-50%,-50%);font-size:16px;line-height:1}.card .pip.flip{transform:translate(-50%,-50%) rotate(180deg)}.card.sm .pip{font-size:12px}.card .pip.center-big{top:50%;left:50%;font-size:2rem}.card.sm .pip.center-big{font-size:1.4rem}.card .court{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.card .seal{width:76%;aspect-ratio:1 / 1.18;border-radius:46%/40%;background:radial-gradient(120% 120% at 50% 18%,var(--lacquer-hi) 0%,var(--lacquer) 55%,var(--lacquer-dark) 100%);border:2px solid var(--gold);box-shadow:0 0 0 1.5px var(--ink),inset 0 0 0 2px var(--lacquer-dark),inset 0 0 0 3.5px var(--gold);display:grid;place-items:center;position:relative}.card .seal:before{content:"";position:absolute;top:14%;right:14%;bottom:14%;left:14%;border:1.5px solid var(--gold);border-radius:44%/38%;opacity:.75}.card .seal .glyph{font-family:Georgia,serif;font-weight:900;font-size:1.95rem;color:var(--gold-hi);text-shadow:1px 1px 0 var(--lacquer-dark),0 0 6px rgba(0,0,0,.35);line-height:1}.card.sm .seal .glyph{font-size:1.3rem}.card .ace{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.card .ace .ring{width:60%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;border:2px dashed var(--gold);box-shadow:inset 0 0 0 3px #e7b53c2e;position:relative}.card .ace .ring:before,.card .ace .ring:after{content:"✦";position:absolute;left:50%;transform:translate(-50%);color:var(--gold);font-size:.7rem}.card .ace .ring:before{top:-9px}.card .ace .ring:after{bottom:-9px}.card .ace .ace-pip{font-size:2.1rem;line-height:1}.card.sm .ace .ace-pip{font-size:1.4rem}.card.sm .ace .ring:before,.card.sm .ace .ring:after{font-size:.55rem}.card.deuce .pip,.card.deuce .corner{color:#c79528}.card.deuce.red .pip,.card.deuce.red .corner{color:var(--red)}.card.deuce .face .pip{text-shadow:0 0 5px rgba(231,181,60,.6)}.card .crown{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;color:var(--gold);font-size:1.05rem;text-shadow:0 1px 0 var(--lacquer-dark);filter:drop-shadow(0 0 4px rgba(255,216,119,.7))}.card.sm .crown{font-size:.8rem}.card.selected{outline:3px solid var(--gold);outline-offset:-1px;box-shadow:2px 2px 0 var(--ink),0 0 12px 2px var(--gold-hi)}.card.selected:before{border-color:var(--gold-hi)}@media (prefers-reduced-motion: reduce){.card,.card .crown,.card .pip{animation:none!important}}
