:root,[data-theme=dark]{color-scheme:dark;--hp-felt-base: #0b5d3b;--hp-felt-deep: #083d28;--hp-felt-light: #12764c;--hp-felt-rail: #2a1a12;--hp-felt-rail-light: #3d281c;--hp-gold: #e7b53c;--hp-gold-dark: #b8892a;--hp-teal: #2dd4bf;--hp-teal-dark: #0f766e;--hp-action-fold: #e5484d;--hp-action-fold-dark: #b32328;--hp-action-check: #64748b;--hp-action-check-dark: #475569;--hp-action-call: #30a46c;--hp-action-call-dark: #217a4e;--hp-action-bet: #3b82f6;--hp-action-bet-dark: #2563eb;--hp-action-raise: #f5a524;--hp-action-raise-dark: #c77f14;--hp-action-allin: #a855f7;--hp-action-allin-dark: #7e22ce;--hp-suit-spades: #16181d;--hp-suit-clubs: #16181d;--hp-suit-hearts: #d4183d;--hp-suit-diamonds: #d4183d;--hp-suit4-spades: #16181d;--hp-suit4-hearts: #d4183d;--hp-suit4-diamonds: #1f6fe0;--hp-suit4-clubs: #1a8f4a;--hp-chip-1: #f4f4f5;--hp-chip-5: #e5484d;--hp-chip-25: #30a46c;--hp-chip-100: #26272b;--hp-chip-500: #8b5cf6;--hp-chip-1000: #f5c518;--hp-chip-5000: #ec4899;--hp-status-turn: #e7b53c;--hp-status-danger: #e5484d;--hp-status-success: #30a46c;--hp-status-warning: #f5a524;--hp-status-info: #3b82f6;--hp-status-disconnected: #8b929c;--hp-bg: #0a0c0f;--hp-surface: #1f2329;--hp-surface-2: #31363d;--hp-surface-3: #474d56;--hp-border: #31363d;--hp-text: #f3f5f7;--hp-text-muted: #a3abb5;--hp-text-on-felt: #f3f5f7;--hp-text-on-felt-muted: #bfe0cf;--hp-card-face: #fbfcfd;--hp-card-face-edge: #d7dbe0;--hp-card-back-primary: #12764c;--hp-card-back-secondary: #083d28;--hp-card-back-accent: #e7b53c;--hp-font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--hp-font-display: "Inter", system-ui, -apple-system, "Segoe UI Semibold", Roboto, sans-serif;--hp-font-mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, monospace;--hp-text-xs: .75rem;--hp-text-sm: .875rem;--hp-text-base: 1rem;--hp-text-md: 1.125rem;--hp-text-lg: 1.375rem;--hp-text-xl: 1.75rem;--hp-text-2xl: 2.25rem;--hp-text-3xl: 3rem;--hp-text-4xl: 4rem;--hp-weight-regular: 400;--hp-weight-medium: 500;--hp-weight-semibold: 600;--hp-weight-bold: 700;--hp-weight-black: 800;--hp-space-1: .25rem;--hp-space-2: .5rem;--hp-space-3: .75rem;--hp-space-4: 1rem;--hp-space-5: 1.5rem;--hp-space-6: 2rem;--hp-space-7: 2.5rem;--hp-space-8: 3rem;--hp-space-10: 4rem;--hp-space-12: 6rem;--hp-radius-sm: .25rem;--hp-radius-md: .5rem;--hp-radius-lg: .75rem;--hp-radius-xl: 1rem;--hp-radius-2xl: 1.5rem;--hp-radius-pill: 999px;--hp-shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--hp-shadow-md: 0 2px 8px rgba(0, 0, 0, .35);--hp-shadow-lg: 0 8px 24px rgba(0, 0, 0, .45);--hp-shadow-xl: 0 16px 48px rgba(0, 0, 0, .55);--hp-shadow-card: 0 4px 10px rgba(0, 0, 0, .3);--hp-shadow-chip: 0 2px 4px rgba(0, 0, 0, .4);--hp-turn-glow: 0 0 0 3px rgba(231, 181, 60, .35), 0 0 18px rgba(231, 181, 60, .55);--hp-touch-min: 44px;--hp-touch-comfortable: 56px;--hp-touch-action: 64px;--hp-duration-fast: .12s;--hp-duration-base: .2s;--hp-duration-slow: .36s;--hp-ease-standard: cubic-bezier(.2, 0, 0, 1);--hp-ease-emphasized: cubic-bezier(.2, 0, 0, 1.2)}[data-theme=light]{color-scheme:light;--hp-bg: #f7f8f9;--hp-surface: #ffffff;--hp-surface-2: #eceef0;--hp-surface-3: #d9dce0;--hp-border: #d9dce0;--hp-text: #16181d;--hp-text-muted: #5a616b;--hp-text-on-felt: #f3f5f7;--hp-text-on-felt-muted: #bfe0cf}@media(prefers-reduced-motion:reduce){:root{--hp-duration-fast: 0ms;--hp-duration-base: 0ms;--hp-duration-slow: 0ms}}@keyframes hp-turn-pulse{0%{box-shadow:0 0 0 3px #e7b53c8c,0 0 12px #e7b53c73}50%{box-shadow:0 0 0 6px #e7b53c59,0 0 26px #e7b53ccc}to{box-shadow:0 0 0 3px #e7b53c8c,0 0 12px #e7b53c73}}@keyframes hp-turn-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media(prefers-reduced-motion:reduce){.hp-turn-pulse,.hp-turn-arrow{animation:none!important}}@keyframes hp-card-reveal{0%{transform:perspective(600px) rotateY(90deg) scale(.94);opacity:0}55%{opacity:1}to{transform:perspective(600px) rotateY(0) scale(1);opacity:1}}@keyframes hp-card-deal{0%{transform:translate(var(--hp-deal-dx, -120px),var(--hp-deal-dy, -30px)) scale(.55) rotate(-8deg);opacity:0}to{transform:translate(0) scale(1) rotate(0);opacity:1}}@keyframes hp-card-deal-in{0%{transform:perspective(700px) translateY(-90px) rotateY(90deg) scale(.7);opacity:0}55%{transform:perspective(700px) translateY(0) rotateY(90deg) scale(1);opacity:1}to{transform:perspective(700px) translateY(0) rotateY(0) scale(1);opacity:1}}@keyframes hp-deck-shuffle{0%,to{transform:translate(0) rotate(0)}20%{transform:translate(-5px) rotate(-3deg)}45%{transform:translate(4px) rotate(2.5deg)}70%{transform:translate(-3px) rotate(-1.5deg)}88%{transform:translate(2px) rotate(1deg)}}.hp-reveal-slot{display:inline-block;transform-origin:center;animation:hp-card-reveal var(--hp-duration-slow, .36s) var(--hp-ease-emphasized) both}.hp-deal-slot{display:inline-block;transform-origin:center;animation:hp-card-deal var(--hp-duration-base, .2s) var(--hp-ease-standard) both}.hp-deal-in-slot{display:inline-block;transform-origin:center;animation:hp-card-deal-in var(--hp-duration-slow, .36s) var(--hp-ease-emphasized) both}.hp-deck-shuffle{animation:hp-deck-shuffle .46s var(--hp-ease-standard)}@media(prefers-reduced-motion:reduce){.hp-reveal-slot,.hp-deal-slot,.hp-deal-in-slot,.hp-deck-shuffle{animation:none!important}}@keyframes hp-peek-hint-pulse{0%,to{transform:translate(-50%) translateY(0);opacity:.85}50%{transform:translate(-50%) translateY(-4px);opacity:1}}.hp-peek-hint--pulse{animation:hp-peek-hint-pulse 1.6s var(--hp-ease-standard) infinite}@media(prefers-reduced-motion:reduce){.hp-peek-hint--pulse{animation:none!important}}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(1200px 700px at 50% -10%,rgba(18,118,76,.18),transparent 60%),var(--hp-bg, #0a0c0f);color:var(--hp-text, #f3f5f7);font-family:var(--hp-font-sans, system-ui, sans-serif);-webkit-tap-highlight-color:transparent}label{display:flex;flex-direction:column;gap:4px;font-size:var(--hp-text-sm, .875rem);color:var(--hp-text-muted, #a3abb5)}input{background:var(--hp-surface-2, #31363d);border:1px solid var(--hp-border, #31363d);border-radius:var(--hp-radius-md, .5rem);color:var(--hp-text, #f3f5f7);padding:14px;font-size:16px}input:focus-visible{outline:2px solid var(--hp-teal, #2dd4bf);outline-offset:1px}button{cursor:pointer;border:1px solid var(--hp-border, #31363d);border-radius:var(--hp-radius-md, .5rem);padding:10px 14px;font-weight:700;font-family:var(--hp-font-sans);color:var(--hp-text, #f3f5f7);background:var(--hp-surface-2, #31363d);touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.1)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:linear-gradient(180deg,var(--hp-gold, #e7b53c),var(--hp-gold-dark, #b8892a));color:#1a1a1a;border-color:transparent}button.danger{background:var(--hp-action-fold, #e5484d);color:#fff;border-color:transparent}.error{color:var(--hp-action-fold, #e5484d)}.muted{color:var(--hp-text-muted, #a3abb5)}.small{font-size:var(--hp-text-sm, .875rem)}.xsmall{font-size:var(--hp-text-xs, .75rem);word-break:break-all}.back-link,.table-link{color:var(--hp-text-muted, #a3abb5);text-decoration:none;align-self:center;padding:8px}.back-link:hover,.table-link:hover{color:var(--hp-text, #f3f5f7)}.table-link{font-size:.95rem}.table{min-height:100%;padding:var(--hp-space-4, 1rem)}.panel{background:var(--hp-surface, #1f2329);border:1px solid var(--hp-border, #31363d);border-radius:var(--hp-radius-xl, 1rem);padding:var(--hp-space-5, 1.5rem);box-shadow:var(--hp-shadow-lg)}.panel.center{max-width:480px;margin:60px auto;text-align:center}.create{max-width:560px;margin:5vh auto;display:flex;flex-direction:column;gap:var(--hp-space-4, 1rem)}.create h1{margin:0;font-family:var(--hp-font-display);font-weight:800}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--hp-space-3, .75rem)}label.checkbox{flex-direction:row;align-items:center;gap:8px;grid-column:1 / -1}label.checkbox input{width:auto}.board-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--hp-space-5, 1.5rem);align-items:start;max-width:1600px;margin:0 auto}.felt-stage{display:flex;flex-direction:column;gap:var(--hp-space-3, .75rem)}.felt-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 var(--hp-space-2, .5rem)}.phase{text-transform:capitalize;font-size:var(--hp-text-xl, 1.75rem);font-weight:800;font-family:var(--hp-font-display);letter-spacing:.02em;display:flex;align-items:baseline;gap:var(--hp-space-3, .75rem)}.table-name{text-transform:none;color:var(--hp-gold, #e7b53c);font-size:var(--hp-text-xl, 1.75rem);font-weight:800}.felt-head-right{display:flex;align-items:baseline;gap:var(--hp-space-3, .75rem)}.to-call{color:var(--hp-text-on-felt, #f3f5f7);background:#e7b53c2e;border:1px solid var(--hp-gold, #e7b53c);border-radius:var(--hp-radius-pill, 999px);padding:2px 12px;font-weight:800;font-variant-numeric:tabular-nums}.blinds{color:var(--hp-text-on-felt-muted, #bfe0cf);font-variant-numeric:tabular-nums;font-weight:600}.deck-slot{position:absolute;left:6%;top:50%;transform:translateY(-50%);z-index:2}.felt-wrap{position:relative;width:100%}.board-center{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:var(--hp-space-3, .75rem);z-index:2}.winner-strip{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.winner-pill{background:#e7b53c29;border:1px solid var(--hp-gold, #e7b53c);color:var(--hp-text, #f3f5f7);padding:6px 12px;border-radius:var(--hp-radius-pill, 999px);font-weight:700;font-size:var(--hp-text-sm, .875rem)}.reveal-strip{display:flex;justify-content:center;margin-top:6px}.reveal-pill{background:#60a5fa29;border:1px solid #60a5fa;color:var(--hp-text, #f3f5f7);padding:6px 12px;border-radius:var(--hp-radius-pill, 999px);font-weight:700;font-size:var(--hp-text-sm, .875rem)}.pod-muck{font-size:var(--hp-text-xs, .75rem);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--hp-muted, #94a3b8);opacity:.85}.pod-slot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;z-index:3}.pod-cards{display:flex;gap:3px}.pod-action{margin-top:2px;padding:2px 10px;border-radius:var(--hp-radius-pill, 999px);background:#0000008c;border:1px solid rgba(255,255,255,.12);color:var(--hp-text-on-felt, #f3f5f7);font-size:var(--hp-text-sm, .875rem);font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.pod-action-turn{background:#e7b53c33;border-color:var(--hp-gold, #e7b53c)}.side{display:flex;flex-direction:column;gap:var(--hp-space-4, 1rem);position:sticky;top:var(--hp-space-4, 1rem)}.join{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--hp-space-2, .5rem)}.join h2,.host h2{margin:0 0 6px;font-family:var(--hp-font-display);font-weight:800}.qr-frame{background:#fff;padding:12px;border-radius:var(--hp-radius-lg, .75rem);box-shadow:var(--hp-shadow-md);line-height:0}.qr-frame.small{padding:8px}.join-code{font-family:var(--hp-font-mono, monospace);font-size:var(--hp-text-3xl, 3rem);font-weight:800;letter-spacing:8px;color:var(--hp-gold, #e7b53c);text-shadow:0 2px 6px rgba(0,0,0,.5)}.join-url{max-width:100%}.copy-link{min-height:var(--hp-touch-action, 64px);width:100%;background:var(--hp-surface-2, #31363d);border:1px solid var(--hp-border, #31363d);color:var(--hp-text, #f3f5f7);font-weight:700;transition:background .15s ease,border-color .15s ease,color .15s ease}.copy-link:hover{border-color:var(--hp-teal, #2dd4bf)}.copy-link.copied{background:#2dd4bf2e;border-color:var(--hp-teal, #2dd4bf);color:var(--hp-teal, #2dd4bf)}.host{display:flex;flex-direction:column;gap:var(--hp-space-3, .75rem)}.host-claim{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.host-claim-actions{display:flex;gap:8px;margin-top:4px}.host-actions{display:flex;flex-wrap:wrap;gap:8px}.host-players{display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow-y:auto}.host-player{display:flex;justify-content:space-between;align-items:center;background:var(--hp-surface-2, #31363d);border-radius:var(--hp-radius-md, .5rem);padding:8px 10px;font-size:var(--hp-text-sm, .875rem)}.host-player-name{display:inline-flex;align-items:center;gap:6px}.host-player-actions{display:flex;gap:6px}.host-player-actions button{padding:5px 8px;font-size:12px}@media(max-width:1000px){.board-grid{grid-template-columns:1fr}.side{position:static}}.player{min-height:100%;display:flex;flex-direction:column}.player-view,.join-flow{width:100%;max-width:480px;margin:0 auto;padding:var(--hp-space-3, .75rem);flex:1;display:flex;flex-direction:column;gap:var(--hp-space-3, .75rem);min-height:100vh}.join-flow{justify-content:center;gap:var(--hp-space-5, 1.5rem)}.brand{display:flex;flex-direction:column;align-items:center;gap:6px}.brand-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:var(--hp-radius-xl, 1rem);background:linear-gradient(160deg,var(--hp-felt-light, #12764c),var(--hp-felt-deep, #083d28));color:var(--hp-gold, #e7b53c);font-size:2rem;box-shadow:var(--hp-shadow-lg)}.brand h1{margin:0;font-family:var(--hp-font-display);font-weight:800;font-size:var(--hp-text-2xl, 2.25rem)}.card-panel{background:var(--hp-surface, #1f2329);border:1px solid var(--hp-border, #31363d);border-radius:var(--hp-radius-xl, 1rem);padding:var(--hp-space-5, 1.5rem);display:flex;flex-direction:column;gap:var(--hp-space-3, .75rem);box-shadow:var(--hp-shadow-lg)}.card-panel.center{text-align:center;margin:auto}.card-panel h1,.card-panel h2{margin:0;font-family:var(--hp-font-display);font-weight:800}.cta{min-height:var(--hp-touch-action, 64px);border:none;border-radius:var(--hp-radius-lg, .75rem);background:linear-gradient(180deg,var(--hp-gold, #e7b53c),var(--hp-gold-dark, #b8892a));color:#1a1a1a;font-weight:800;font-size:1.15rem}.landing-choices{display:flex;flex-direction:column;gap:var(--hp-space-3, .75rem)}.landing-btn{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;min-height:var(--hp-touch-action, 64px);text-align:left;text-decoration:none;padding:var(--hp-space-4, 1rem) var(--hp-space-5, 1.5rem);border-radius:var(--hp-radius-xl, 1rem);cursor:pointer;box-shadow:var(--hp-shadow-lg);transition:transform var(--hp-duration-fast, .12s) ease,filter var(--hp-duration-fast, .12s) ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.landing-btn:active{transform:translateY(2px)}.landing-btn:hover{filter:brightness(1.03)}.landing-btn.primary{border:none;background:linear-gradient(180deg,var(--hp-gold, #e7b53c),var(--hp-gold-dark, #b8892a));color:#1a1a1a}.landing-btn-title{font-family:var(--hp-font-display);font-weight:800;font-size:1.35rem;line-height:1.1}.landing-btn-sub{font-size:var(--hp-text-sm, .875rem);line-height:1.35;font-weight:500}.landing-btn.primary .landing-btn-sub{color:#1a1a1ac7}.landing-host-link{align-self:center;display:inline-flex;align-items:center;min-height:var(--hp-touch-min, 44px);padding:var(--hp-space-2, .5rem) var(--hp-space-3, .75rem);font-size:var(--hp-text-sm, .875rem);font-weight:600;color:var(--hp-text-muted, #a3abb5);text-decoration:underline;text-underline-offset:3px;text-decoration-color:#a3abb566;border-radius:var(--hp-radius-md, .5rem);-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:color var(--hp-duration-fast, .12s) ease}.landing-host-link:hover{color:var(--hp-text, #f3f5f7);text-decoration-color:currentColor}.landing-note{text-align:center;margin:0}.topbar{display:flex;justify-content:space-between;align-items:center;font-size:var(--hp-text-sm, .875rem)}.topbar-left{display:inline-flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.ok{background:var(--hp-status-success, #30a46c);box-shadow:0 0 8px #30a46cb3}.dot.bad{background:var(--hp-status-danger, #e5484d)}.you{color:var(--hp-text-muted, #a3abb5)}.tag{background:var(--hp-teal-dark, #0f766e);color:#fff;border-radius:var(--hp-radius-sm, 4px);padding:2px 6px;font-size:10px;font-weight:700;letter-spacing:.04em;margin-left:6px}.statusline{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:var(--hp-radius-md, .5rem);background:var(--hp-surface, #1f2329);border:1px solid var(--hp-border, #31363d)}.statusline.my-turn{border-color:var(--hp-gold, #e7b53c);background:#e7b53c1f;box-shadow:var(--hp-turn-glow)}.statusline .phase{text-transform:capitalize;font-weight:700;font-family:var(--hp-font-display)}.statusline .timer{font-variant-numeric:tabular-nums;font-weight:700;color:var(--hp-gold, #e7b53c)}.mini-board{display:flex;justify-content:center;padding:var(--hp-space-3, .75rem);border-radius:var(--hp-radius-lg, .75rem);background:radial-gradient(ellipse at 50% 40%,var(--hp-felt-light, #12764c),var(--hp-felt-deep, #083d28));box-shadow:inset 0 0 40px #00000080}.my-pod{display:flex;justify-content:center;padding-top:var(--hp-space-2, .5rem)}.hole{display:flex;justify-content:center;align-items:flex-end;min-height:190px;padding:var(--hp-space-2, .5rem) 0}.hole-fan{display:flex;justify-content:center;gap:8px}.muted-cards{opacity:.6}.hole-empty{display:grid;place-items:center;min-height:160px}.control-dock{margin-top:auto;display:flex;flex-direction:column;gap:var(--hp-space-2, .5rem);position:sticky;bottom:0;padding-bottom:env(safe-area-inset-bottom,0)}.await{text-align:center;padding:var(--hp-space-4, 1rem);border-radius:var(--hp-radius-lg, .75rem);background:var(--hp-surface, #1f2329);border:1px solid var(--hp-border, #31363d);font-weight:600}.reveal-bar{display:flex;flex-direction:column;gap:.6rem;padding:var(--hp-space-4, 1rem);border-radius:var(--hp-radius-lg, .75rem);background:var(--hp-surface, #1f2329);border:1px solid #60a5fa;text-align:center}.reveal-prompt{font-weight:800;font-size:1.05rem}.reveal-actions{display:flex;gap:.6rem}.reveal-actions button{flex:1;padding:.85rem;font-size:1rem;font-weight:700;border-radius:var(--hp-radius-md, .5rem)}.muck-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;z-index:50;padding:1.5rem}.muck-modal-card{background:var(--hp-surface, #1f2329);border:1px solid var(--hp-status-danger, #e5484d);border-radius:var(--hp-radius-lg, .75rem);padding:1.25rem;max-width:22rem;text-align:center}.muck-modal-actions{display:flex;gap:.6rem;margin-top:1rem}.muck-modal-actions button{flex:1;padding:.75rem;font-weight:700;border-radius:var(--hp-radius-md, .5rem)}.cta.danger{background:var(--hp-status-danger, #e5484d);border-color:var(--hp-status-danger, #e5484d);color:#fff}.hostbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:var(--hp-radius-md, .5rem);background:var(--hp-surface, #1f2329);border:1px solid var(--hp-border, #31363d)}.hostbar button{padding:8px 10px;font-size:13px}.leave{align-self:center;background:transparent;border:none;color:var(--hp-text-muted, #a3abb5);font-size:.9rem;padding:8px}.host-banner{margin:0 0 .75rem;padding:.6rem .85rem;border-radius:var(--hp-radius-md, 10px);background:color-mix(in srgb,var(--hp-status-danger, #e5484d) 16%,transparent);border:1px solid var(--hp-status-danger, #e5484d);color:var(--hp-text, #eef1f5);font-size:var(--hp-text-sm, .875rem);line-height:1.35}.host-banner .takeover{margin-top:.55rem;display:flex;flex-direction:column;gap:.4rem}.host-banner .takeover-actions{display:flex;gap:.5rem;flex-wrap:wrap}.host-banner .takeover-actions .cta{background:linear-gradient(180deg,var(--hp-gold, #e7b53c),var(--hp-gold-dark, #b8892a));color:#1a1205;font-weight:700}.panel.start-new{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}
