:root{--gt-accent:#ff8f1f;--gt-accent-strong:#ff6f00;--gt-felt-1:#2f8a5b;--gt-felt-2:#1c623f;--gt-felt-3:#0e3a25;--gt-rim:#3a2618;--gt-ink:#f8fafc;--gt-ink-dim:rgba(248, 250, 252, 0.72);--gt-red:#c62828;--gt-black:#1f2430;--card-w:78px;--mini-w:30px;--pile-w:78px;--spread-w:44px}.gt-table{position:relative;display:flex;flex-direction:column;gap:14px;padding:16px 18px 18px;border-radius:28px;border:10px solid var(--gt-rim);background:radial-gradient(ellipse at 50% 35%,var(--gt-felt-1) 0%,var(--gt-felt-2) 55%,var(--gt-felt-3) 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,6%),inset 0 0 48px rgba(0,0,0,.45),0 18px 48px rgba(0,0,0,.5);color:var(--gt-ink);font-family:inter,system-ui,-apple-system,segoe ui,sans-serif;user-select:none;-webkit-tap-highlight-color:transparent}.gt-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.85rem;color:var(--gt-ink-dim)}.gt-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.28);color:var(--gt-ink);font-weight:600;white-space:nowrap}.gt-icon-btn{border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.28);color:var(--gt-ink);border-radius:999px;padding:4px 12px;font:inherit;font-weight:600;cursor:pointer}.gt-icon-btn:hover{background:rgba(0,0,0,.45)}.gt-opponents{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 18px;min-height:54px}.gt-seat{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:999px;background:rgba(0,0,0,.3);border:2px solid transparent;transition:border-color .2s,box-shadow .2s}.gt-seat.active{border-color:var(--gt-accent);box-shadow:0 0 0 4px rgba(255,143,31,.18),0 0 18px rgba(255,143,31,.45)}.gt-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover;flex-shrink:0;display:grid;place-items:center;font-weight:800;color:#fff}.gt-seat-name{font-weight:700;font-size:.95rem;color:var(--gt-ink);line-height:1.2;max-width:16ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gt-seat-meta{font-size:.78rem;color:var(--gt-ink-dim)}.gt-seat-meta b{color:var(--gt-accent)}.gt-minifan{display:flex;margin-left:4px;width:calc(var(--mini-w) + 6 * var(--mini-w) * .38)}.gt-minifan .gt-card{--card-w:var(--mini-w);box-shadow:0 1px 3px rgba(0,0,0,.4)}.gt-minifan .gt-card+.gt-card{margin-left:calc(var(--mini-w) * -.62)}.gt-center{display:flex;justify-content:center;align-items:flex-end;gap:28px;padding:6px 0}.gt-pile{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gt-ink-dim)}.gt-pile .gt-card{--card-w:var(--pile-w)}.gt-slot-empty{width:var(--pile-w);height:calc(var(--pile-w) * 1.4);border-radius:9px;border:2px dashed rgba(255,255,255,.25)}.gt-card{position:relative;flex-shrink:0;width:var(--card-w);height:calc(var(--card-w) * 1.4);border-radius:calc(var(--card-w) * .11);background:linear-gradient(160deg,#ffffff 0%,#f3f4f6 100%);box-shadow:0 2px rgba(0,0,0,.12),0 6px 14px rgba(0,0,0,.35);color:var(--gt-black);font-family:Georgia,times new roman,serif;transition:transform .16s ease,box-shadow .16s ease}.gt-card.red{color:var(--gt-red)}.gt-idx{position:absolute;top:calc(var(--card-w) * .06);left:calc(var(--card-w) * .08);display:flex;flex-direction:column;align-items:center;line-height:.95;font-weight:700;font-size:calc(var(--card-w) * .24)}.gt-idx small{font-size:calc(var(--card-w) * .2)}.gt-idx.br{top:auto;left:auto;bottom:calc(var(--card-w) * .06);right:calc(var(--card-w) * .08);transform:rotate(180deg)}.gt-pip{position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--card-w) * .5)}.gt-card.face .gt-pip{inset:22% 20%;border:1.5px solid;border-radius:4px;font-weight:700;font-size:calc(var(--card-w) * .36);opacity:.9}.gt-card.compact .gt-idx.br,.gt-card.compact .gt-pip{display:none}.gt-card.compact .gt-idx{inset:0;justify-content:center;font-size:calc(var(--card-w) * .34)}.gt-card.compact .gt-idx small{font-size:calc(var(--card-w) * .3)}.gt-card.back{background:repeating-linear-gradient(45deg,rgba(255,255,255,7%) 0 6px,transparent 6px 12px),linear-gradient(145deg,#23307a,#151d4f);border:calc(var(--card-w) * .05)solid #f5f5f5;box-sizing:border-box;color:#fff}.gt-card.back::after{content:'';position:absolute;inset:12%;border-radius:4px;border:1.5px solid rgba(255,143,31,.6)}.gt-count{position:absolute;z-index:1;inset:0;display:grid;place-items:center;font-family:inter,system-ui,sans-serif;font-weight:800;font-size:1rem;text-shadow:0 1px 2px rgba(0,0,0,.6)}.gt-card.can-take{cursor:pointer;box-shadow:0 0 0 3px var(--gt-accent),0 0 22px rgba(255,143,31,.6);animation:gt-pulse 1.6s ease-in-out infinite}.gt-card.selectable{cursor:pointer}.gt-card.selectable:hover{transform:translateY(-6px)}.gt-card.selected{transform:translateY(-16px);box-shadow:0 0 0 3px var(--gt-accent),0 12px 24px rgba(0,0,0,.45)}.gt-card.dealt{animation:gt-deal .32s ease-out}@keyframes gt-pulse{0%,100%{box-shadow:0 0 0 3px var(--gt-accent),0 0 12px rgba(255,143,31,.35)}50%{box-shadow:0 0 0 3px var(--gt-accent),0 0 26px rgba(255,143,31,.75)}}@keyframes gt-deal{from{transform:translateY(-28px)scale(.92);opacity:0}to{transform:none;opacity:1}}.gt-spreads{display:flex;justify-content:safe center;align-items:center;gap:10px;height:calc(var(--spread-w) * 1.4 + 34px);overflow-x:auto;overflow-y:hidden;border-radius:14px;border:1.5px dashed rgba(255,255,255,.14);scrollbar-width:thin}.gt-spreads:empty::before{content:'Spreads';margin:auto;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.3)}.gt-spread{flex-shrink:0}.gt-spread{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 8px;border-radius:12px;background:rgba(0,0,0,.22);border:2px solid transparent}.gt-spread .gt-card{--card-w:var(--spread-w)}.gt-spread-cards{display:flex}.gt-spread-cards .gt-card+.gt-card{margin-left:calc(var(--spread-w) * -.45)}.gt-spread-label{font-size:.7rem;color:var(--gt-ink-dim);max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gt-spread.can-hit{cursor:pointer;border-color:var(--gt-accent);box-shadow:0 0 16px rgba(255,143,31,.5)}.gt-status{align-self:center;width:min(420px,100%);box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;padding:8px 18px;border-radius:999px;background:rgba(0,0,0,.32);font-weight:700;font-size:1rem;color:var(--gt-ink)}.gt-status.mine{background:rgba(255,143,31,.2);box-shadow:inset 0 0 0 1px rgba(255,143,31,.55)}.gt-timer{width:min(320px,70%);height:6px;margin:-6px auto 0;border-radius:999px;background:rgba(0,0,0,.3);overflow:hidden}.gt-timer>div{height:100%;width:0%;border-radius:999px;background:var(--gt-accent);transition:width .25s linear}.gt-me{display:flex;align-items:center;justify-content:center;gap:12px;min-height:54px}.gt-hand-total{min-width:8.5em;font-weight:700;font-variant-numeric:tabular-nums;color:var(--gt-ink)}.gt-hand-total b{color:var(--gt-accent);font-size:1.1em}.gt-hand{--hand-gap:10px;display:flex;justify-content:flex-start;align-items:flex-end;gap:var(--hand-gap);width:calc(var(--hand-slots,6) * var(--card-w) + (var(--hand-slots,6) - 1) * var(--hand-gap));max-width:100%;margin:0 auto;min-height:calc(var(--card-w) * 1.4 + 20px);padding-top:18px}.gt-actions{display:grid;grid-template-columns:repeat(var(--action-count,3),minmax(0,150px));justify-content:center;gap:10px}.gt-btn{min-height:48px;white-space:nowrap;padding:10px 22px;border:none;border-radius:14px;font:inherit;font-weight:800;font-size:1rem;color:#fff;cursor:pointer;box-shadow:0 4px rgba(0,0,0,.3);transition:transform .1s,filter .15s,opacity .15s}.gt-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px rgba(0,0,0,.3)}.gt-btn:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}.gt-btn[hidden]{display:none}.gt-btn.primary{background:linear-gradient(180deg,#43a047,#2e7d32)}.gt-btn.accent{background:linear-gradient(180deg,#ff9b3d,#f57c00)}.gt-btn.danger{background:linear-gradient(180deg,#ef5350,#c62828)}.gt-btn.ready:not(:disabled){filter:brightness(1.12);animation:gt-btn-pulse 1.4s ease-in-out infinite}@keyframes gt-btn-pulse{0%,100%{box-shadow:0 4px rgba(0,0,0,.3),0 0 rgba(255,255,255,0)}50%{box-shadow:0 4px rgba(0,0,0,.3),0 0 0 6px rgba(255,255,255,.18)}}.gt-hint{text-align:center;font-size:.85rem;line-height:1.35;color:var(--gt-ink-dim);height:2.7em;overflow:hidden}.gt-toast{position:absolute;left:50%;top:50%;z-index:20;transform:translate(-50%,-50%);width:min(460px,calc(100% - 24px));padding:18px 20px;border-radius:18px;background:rgba(10,14,39,.92);backdrop-filter:blur(6px);border:1px solid rgba(255,143,31,.45);box-shadow:0 18px 40px rgba(0,0,0,.55);text-align:center;animation:gt-pop .25s ease-out}@keyframes gt-pop{from{transform:translate(-50%,-46%)scale(.96);opacity:0}to{transform:translate(-50%,-50%);opacity:1}}.gt-toast-title{font-size:1.25rem;font-weight:800;margin-bottom:10px}.gt-toast-hands{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.gt-toast-hand{padding:8px 10px;border-radius:12px;background:rgba(255,255,255,6%)}.gt-toast-hand .gt-card{--card-w:30px}.gt-toast-hand .gt-spread-cards .gt-card+.gt-card{margin-left:-8px}.gt-toast-name{font-weight:700;margin-bottom:6px}.gt-toast-meta{margin-top:6px;font-size:.8rem;color:var(--gt-ink-dim)}.gt-toast-scores{margin-top:12px;font-weight:700;color:var(--gt-accent)}.gt-dialog{max-width:480px;width:calc(100% - 32px);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:22px 24px;background:#121834;color:var(--gt-ink);box-shadow:0 24px 60px rgba(0,0,0,.6)}.gt-dialog::backdrop{background:rgba(0,0,0,.6)}.gt-dialog h2{margin:0 0 12px;font-size:1.3rem;color:#fff}.gt-dialog ol{margin:0 0 16px;padding-left:20px;line-height:1.6;color:var(--gt-ink-dim)}.gt-dialog li b{color:#fff}@media(max-width:600px){:root{--card-w:60px;--pile-w:62px;--mini-w:24px;--spread-w:36px}.gt-table{border-width:6px;border-radius:20px;padding:10px 10px 14px;gap:10px}.gt-hand{--hand-gap:calc(var(--card-w) * -0.18);gap:0}.gt-hand .gt-card+.gt-card{margin-left:var(--hand-gap)}.gt-avatar{width:32px;height:32px}.gt-seat{padding:4px 10px 4px 4px}.gt-actions{grid-template-columns:repeat(var(--action-count,3),minmax(0,1fr));gap:8px}.gt-btn{padding:10px 6px;font-size:.92rem}.gt-status{font-size:.92rem;padding:7px 14px}}@media(max-width:360px){:root{--card-w:54px}}@media(prefers-reduced-motion:reduce){.gt-card,.gt-card.dealt,.gt-card.can-take,.gt-btn.ready,.gt-toast{animation:none;transition:none}}