.playing-card{--pc-w: 64px;--pc-h: 90px;--pc-radius: 6px;position:relative;display:inline-block;width:var(--pc-w);height:var(--pc-h);border-radius:var(--pc-radius);background:linear-gradient(180deg,#fbf6e3,#f3e8c8);color:var(--color-card-ink, #0c0c0c);box-shadow:0 1px #fff9 inset,0 -1px #00000014 inset,0 2px 6px #00000059,0 6px 18px #00000040;border:1px solid rgba(0,0,0,.18);user-select:none;vertical-align:bottom;font-family:var(--font-display, "Playfair Display", serif);transition:transform .18s ease,box-shadow .18s ease}.playing-card.pc-sm{--pc-w: 42px;--pc-h: 60px;--pc-radius: 4px}.playing-card.pc-md{--pc-w: 64px;--pc-h: 90px;--pc-radius: 6px}.playing-card.pc-lg{--pc-w: 90px;--pc-h: 126px;--pc-radius: 8px}.playing-card.is-red{color:var(--color-card-red, #d9404a)}.playing-card.is-black{color:#0c0c0c}.playing-card .pc-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1;font-weight:700}.playing-card .pc-tl{top:4px;left:5px}.playing-card .pc-br{bottom:4px;right:5px;transform:rotate(180deg)}.playing-card .pc-rank{font-size:calc(var(--pc-h) * .22)}.playing-card .pc-suit{font-size:calc(var(--pc-h) * .18);margin-top:1px}.playing-card .pc-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:calc(var(--pc-h) * .42);opacity:.85}.playing-card.pc-sm .pc-rank{font-size:11px}.playing-card.pc-sm .pc-suit{font-size:10px}.playing-card.pc-sm .pc-center{font-size:22px}.playing-card.is-facedown{background:repeating-linear-gradient(45deg,#0d3b2e 0 6px,#082619 6px 12px);border-color:#d4af37b3;box-shadow:0 0 0 2px #d4af3726 inset,0 2px 6px #00000073}.playing-card .pc-back{position:absolute;inset:4px;border:1px solid rgba(212,175,55,.55);border-radius:calc(var(--pc-radius) - 2px);background:radial-gradient(circle at 50% 50%,rgba(212,175,55,.18) 0 30%,transparent 60%),repeating-linear-gradient(135deg,transparent 0 6px,rgba(212,175,55,.08) 6px 8px)}.playing-card.is-interactive{cursor:pointer}.playing-card.is-interactive:hover{transform:translateY(-6px);box-shadow:0 1px #fff9 inset,0 8px 14px #00000080,0 0 0 2px #f0c85580}.playing-card.is-held:after{content:"HOLD";position:absolute;top:-10px;left:50%;transform:translate(-50%);font-family:var(--font-mono, monospace);font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--color-felt-deep, #082619);background:var(--color-gold-bright, #f0c855);padding:2px 6px;border-radius:2px;box-shadow:0 1px 3px #0006}.playing-card.is-held{transform:translateY(-8px);box-shadow:0 0 0 2px var(--color-gold-bright, #f0c855),0 8px 14px #00000080}.playing-card.is-discard{opacity:.45;transform:translateY(4px)}.playing-card.is-win{animation:pcWin .9s ease-out;box-shadow:0 0 0 3px #f0c855e6,0 0 24px #f0c85580,0 6px 16px #00000080}@keyframes pcWin{0%{transform:translateY(0) scale(1)}35%{transform:translateY(-14px) scale(1.06)}to{transform:translateY(0) scale(1)}}.playing-card.is-dealing{animation:pcDeal .45s cubic-bezier(.2,.8,.2,1) backwards}@keyframes pcDeal{0%{transform:translate(60vw,-40vh) rotate(-40deg);opacity:0}to{transform:translate(0) rotate(0);opacity:1}}.playing-card.is-flipping{animation:pcFlip .4s ease-in-out}@keyframes pcFlip{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.card-row{display:inline-flex;gap:6px}.card-stack{display:inline-flex}.card-stack .playing-card+.playing-card{margin-left:-28px}.card-stack.pc-md .playing-card+.playing-card{margin-left:-42px}@media(max-width:480px){.playing-card.pc-lg{--pc-w: 64px;--pc-h: 90px;--pc-radius: 6px}.playing-card.pc-md{--pc-w: 54px;--pc-h: 76px}}.felt-table{position:relative;background:radial-gradient(ellipse at 50% 30%,var(--color-felt-rail, #1f7a55) 0%,var(--color-felt, #0d3b2e) 50%,var(--color-felt-deep, #082619) 100%);border:2px solid var(--color-gold-deep, #a3851f);border-radius:220px/140px;padding:28px 18px;box-shadow:0 0 0 6px #0006,0 0 80px #00000073 inset,0 18px 60px #00000080;min-height:360px}@media(max-width:640px){.felt-table{border-radius:32px;padding:20px 12px;min-height:280px}}.felt-pot{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#061812b3;border:1px solid rgba(212,175,55,.55);font-family:var(--font-mono, monospace);font-variant-numeric:tabular-nums;color:var(--color-gold-bright, #f0c855);font-weight:700;letter-spacing:.05em}.game-action-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}@media(max-width:640px){.game-action-bar.sticky-mobile{position:sticky;bottom:0;z-index:30;margin-left:-1rem;margin-right:-1rem;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#061812eb;backdrop-filter:blur(8px);border-top:1px solid rgba(212,175,55,.35)}}.action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:88px;padding:10px 16px;border-radius:4px;font-family:var(--font-mono, monospace);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--color-gold-deep, #a3851f);background:linear-gradient(180deg,#1a4a36,#0d3b2e);color:var(--color-parchment, #f3e8c8);cursor:pointer;transition:transform .1s ease,box-shadow .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.action-btn:hover:not(:disabled){background:linear-gradient(180deg,#246a4d,#145a3f);box-shadow:0 0 0 1px var(--color-gold-bright, #f0c855)}.action-btn:active:not(:disabled){transform:translateY(1px)}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn.is-primary{background:linear-gradient(180deg,var(--color-gold-bright, #f0c855) 0%,var(--color-gold, #d4af37) 100%);color:var(--color-felt-deep, #082619);border-color:var(--color-gold, #d4af37)}.action-btn.is-primary:hover:not(:disabled){background:linear-gradient(180deg,#fbd97a,#e6c14a)}.action-btn.is-danger{border-color:#f8717199;color:#fca5a5}.bet-chip-row{display:inline-flex;gap:6px;align-items:center}.bet-chip{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;font-family:var(--font-mono, monospace);font-size:11px;font-weight:800;color:#fff;border:3px dashed rgba(255,255,255,.55);box-shadow:0 3px 6px #0006,0 1px #fff3 inset;cursor:pointer;background:#2f6b9a;transition:transform .1s ease,filter .15s ease}.bet-chip:hover{transform:translateY(-3px);filter:brightness(1.15)}.bet-chip[data-val="1"]{background:#fff;color:#111;border-color:silver}.bet-chip[data-val="5"]{background:#c9302c}.bet-chip[data-val="25"]{background:#2f6b9a}.bet-chip[data-val="100"]{background:#111}.bet-chip[data-val="500"]{background:#6b21a8}.bet-chip[data-val="1000"]{background:linear-gradient(135deg,#f0c855,#a3851f);color:#082619;border-color:#fff}.player-seat{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;background:#06181299;border:1px solid rgba(212,175,55,.25);min-width:130px;transition:border-color .2s ease,box-shadow .2s ease,opacity .25s ease}.player-seat.is-active{border-color:var(--color-gold-bright, #f0c855);box-shadow:0 0 0 1px var(--color-gold-bright, #f0c855),0 0 22px #f0c8558c;animation:seat-pulse 1.4s ease-in-out infinite}.player-seat.is-hero-turn{box-shadow:0 0 0 2px var(--color-gold-bright, #f0c855),0 0 30px #f0c855b3}.player-seat.is-folded{opacity:.42;filter:grayscale(.6)}.player-seat.is-folded .playing-card{filter:grayscale(.9) brightness(.7)}.player-seat.is-allin{border-color:#f87171;box-shadow:0 0 14px #f8717173}.player-seat.is-winner{border-color:var(--color-win, #4ade80);box-shadow:0 0 16px #4ade8080}@keyframes seat-pulse{0%,to{box-shadow:0 0 0 1px var(--color-gold-bright, #f0c855),0 0 18px #f0c85573}50%{box-shadow:0 0 0 2px var(--color-gold-bright, #f0c855),0 0 30px #f0c855bf}}.turn-pointer{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-size:18px;line-height:1;color:var(--color-gold-bright, #f0c855);text-shadow:0 0 8px rgba(240,200,85,.7);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .25s ease}.player-seat.is-active .turn-pointer{opacity:1;animation:pointer-bob .9s ease-in-out infinite}.player-seat .action-badge.is-visible~.turn-pointer{opacity:0}@keyframes pointer-bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(4px)}}.action-badge{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(6px) scale(.92);padding:4px 10px;border-radius:999px;font-family:var(--font-mono, monospace);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:#061812f2;border:1px solid rgba(212,175,55,.5);color:var(--color-parchment, #f3e8c8);box-shadow:0 4px 14px #00000080;opacity:0;pointer-events:none;transition:opacity .45s ease,transform .25s ease;z-index:4}.action-badge.is-visible{opacity:1;transform:translate(-50%) translateY(0) scale(1);animation:badge-pop .22s ease-out}.action-badge.is-fold{background:#280c0ceb;border-color:#f87171a6;color:#fca5a5}.action-badge.is-check{background:#0c1824eb;border-color:#94a3b88c;color:#cbd5e1}.action-badge.is-call{background:#082619eb;border-color:#4ade808c;color:#86efac}.action-badge.is-raise{background:#402408f2;border-color:#fbbf24b3;color:#fde68a;text-shadow:0 0 6px rgba(251,191,36,.4)}.action-badge.is-allin{background:linear-gradient(135deg,#7f1d1d,#b91c1c);border-color:#fbbf24;color:#fff;box-shadow:0 0 18px #dc26268c,0 4px 14px #0000008c;animation:badge-pop .22s ease-out,allin-glow 1.2s ease-in-out infinite}@keyframes badge-pop{0%{transform:translate(-50%) translateY(4px) scale(.7);opacity:0}60%{transform:translate(-50%) translateY(-2px) scale(1.08);opacity:1}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}@keyframes allin-glow{0%,to{box-shadow:0 0 14px #dc262680,0 4px 14px #0000008c}50%{box-shadow:0 0 28px #fbbf24b3,0 4px 14px #0000008c}}.player-name{font-family:var(--font-mono, monospace);font-size:12px;font-weight:700;color:var(--color-parchment, #f3e8c8);letter-spacing:.04em}.player-stack{font-family:var(--font-mono, monospace);font-variant-numeric:tabular-nums;font-size:13px;color:var(--color-gold-bright, #f0c855)}.player-bet{font-family:var(--font-mono, monospace);font-size:11px;color:var(--color-parchment-soft, #d9cda6);background:#d4af3726;padding:1px 6px;border-radius:3px;transition:transform .2s ease,background .2s ease}.player-bet.is-bump{animation:bet-bump .42s ease-out}@keyframes bet-bump{0%{transform:translateY(0) scale(1);background:#d4af3726}35%{transform:translateY(-4px) scale(1.18);background:#f0c8558c;color:#fff}to{transform:translateY(0) scale(1);background:#d4af3726}}.felt-pot.is-bumping{animation:pot-bump .5s ease-out}@keyframes pot-bump{0%{transform:scale(1);box-shadow:0 0 #f0c85500}40%{transform:scale(1.12);box-shadow:0 0 16px 4px #f0c8558c}to{transform:scale(1);box-shadow:0 0 #f0c85500}}.game-log{font-family:var(--font-mono, monospace);font-size:12px;color:var(--color-parchment-soft, #d9cda6);background:#06120e99;border:1px solid rgba(212,175,55,.2);border-radius:4px;padding:8px 12px;max-height:140px;overflow-y:auto;line-height:1.45}.game-log .log-win{color:var(--color-win, #4ade80)}.game-log .log-loss{color:var(--color-loss, #f87171)}.action-log{font-family:var(--font-mono, monospace);font-size:12px;color:var(--color-parchment-soft, #d9cda6);background:#06120eb3;border:1px solid rgba(212,175,55,.25);border-radius:6px;padding:10px 12px;max-height:320px;overflow-y:auto;line-height:1.5;scroll-behavior:smooth}.action-log-empty{color:var(--color-parchment-soft, #d9cda6);opacity:.55;text-align:center;padding:4px 0}.action-log-group{padding:4px 0;border-top:1px dashed rgba(212,175,55,.15)}.action-log-group:first-child{border-top:0}.action-log-head{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold-bright, #f0c855);margin-bottom:2px}.action-log-board{font-family:var(--font-mono, monospace);font-weight:600;color:var(--color-parchment, #f3e8c8);letter-spacing:.04em;margin-left:4px}.action-log-body{display:flex;flex-wrap:wrap;gap:4px 2px;align-items:baseline}.action-log-item{display:inline;color:var(--color-parchment-soft, #d9cda6)}.action-log-item.log-meta{color:var(--color-parchment-soft, #d9cda6);opacity:.8}.action-log-item.log-fold{color:#fca5a5}.action-log-item.log-raise{color:#fde68a;font-weight:700}.action-log-item.log-allin{color:#fbbf24;font-weight:800}.action-log-item.log-win{color:var(--color-win, #4ade80);font-weight:800}.action-log-item.log-loss{color:var(--color-loss, #f87171);font-weight:800}.action-log-sep{color:#d4af3766;padding:0 2px}.action-log-empty-inline{color:#d4af3759}@media(max-width:1023px){.action-log{max-height:200px}}.chip-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#d4af371f;border:1px solid rgba(212,175,55,.45);font-family:var(--font-mono, monospace);font-variant-numeric:tabular-nums;font-size:12px;color:var(--color-gold-bright, #f0c855);font-weight:700;text-decoration:none}.chip-badge:hover{background:#d4af3733}.chip-badge .chip-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0c855,#a3851f);box-shadow:0 0 0 1px #0006}.tutorial-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:50;background:#000000b3;backdrop-filter:blur(4px);padding:16px}.tutorial-card{max-width:480px;width:100%;background:linear-gradient(180deg,#145a3f,#082619);border:1px solid var(--color-gold-deep, #a3851f);border-radius:8px;padding:28px 24px 20px;box-shadow:0 20px 60px #0009}.tutorial-step{min-height:140px}.tutorial-dots{display:flex;gap:6px;justify-content:center}.tutorial-dot{width:8px;height:8px;border-radius:50%;background:#d4af3759}.tutorial-dot.is-active{background:var(--color-gold-bright, #f0c855)}.fixed-bottom-pad{padding-bottom:90px}@media(min-width:641px){.fixed-bottom-pad{padding-bottom:0}}
