.tt-root{--tt-felt: radial-gradient(120% 90% at 50% 20%, #17604f 0%, #0e4237 55%, #0a2f28 100%);--tt-ink: var(--arena-ink, #e8f5f0);--tt-soft: var(--arena-soft, #9bb5ab);--tt-teal: var(--arena-teal, #1de4c2);--tt-gold: var(--arena-signal, #ffc53d);--tt-coral: var(--arena-coral, #ff5a36);--card-w: clamp(52px, 15vw, 88px);position:relative;display:flex;flex-direction:column;gap:.6rem;width:100%;max-width:980px;margin:0 auto;color:var(--tt-ink);font-family:var(--font-body, system-ui, sans-serif)}.pc{--w: var(--card-w);display:inline-block;width:var(--w);aspect-ratio:250 / 350;padding:0;border:0;background:none;border-radius:calc(var(--w) * .075);box-shadow:0 2px 6px #00000059;flex:none;line-height:0;transition:transform .16s ease,box-shadow .16s ease,opacity .16s}.pc-svg{width:100%;height:100%;display:block}.pc-xs{--w: 18px;box-shadow:0 1px 2px #0006}.pc-sm{--w: calc(var(--card-w) * .6)}.pc-md{--w: var(--card-w)}.pc-lg{--w: calc(var(--card-w) * 1.18)}.pc-slot{border:2px dashed rgba(232,245,240,.25);box-shadow:none}button.pc{cursor:default}button.pc.is-playable{cursor:pointer;box-shadow:0 0 0 2px var(--tt-teal),0 6px 14px #00000073}button.pc.is-playable:hover,button.pc.is-playable:focus-visible{transform:translateY(-8px);outline:none}.pc.is-selected{transform:translateY(-14px);box-shadow:0 0 0 3px var(--tt-gold),0 8px 18px #00000080}.pc.is-dim{opacity:.5;filter:saturate(.6)}.pc.is-new{box-shadow:0 0 0 3px #8fd3ff,0 6px 14px #00000073}button.pc:disabled{cursor:not-allowed}.pc.is-deal{animation:tt-deal .35s ease-out}@keyframes tt-deal{0%{transform:translateY(-18px) rotate(-6deg);opacity:0}}.tt-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:.45rem}.tt-seat{position:relative;min-width:0;padding:.45rem .55rem;border-radius:12px;background:#0c201cc7;border:1px solid var(--arena-line, rgba(232, 245, 240, .12));transition:border-color .2s,box-shadow .2s,opacity .2s}.tt-seat.is-active{border-color:var(--tt-teal);box-shadow:0 0 0 2px #1de4c259,0 0 22px #1de4c240}.tt-seat.is-dim{opacity:.55}.tt-seat.is-me{border-color:#ffc53d99}.tt-seat-top{display:flex;align-items:center;gap:.3rem;min-width:0;flex-wrap:wrap}.tt-seat-dot{width:10px;height:10px;border-radius:50%;background:var(--tt-teal);flex:none}.tt-seat-name{font-weight:700;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.tt-seat-sub{font-size:.78rem;color:var(--tt-soft);margin-top:.1rem}.tt-seat-best{font-size:.75rem;color:var(--tt-gold);margin-top:.2rem}.tt-seat-act{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.25rem;min-height:1.2rem}.tt-tag{font:700 .62rem/1 var(--font-hud, monospace);letter-spacing:.04em;text-transform:uppercase;padding:.18rem .32rem;border-radius:6px;background:#e8f5f01f;color:var(--tt-soft)}.tt-tag.is-dealer{background:#fff;color:#111;border-radius:50%;padding:.2rem .32rem}.tt-tag.is-hot{background:#ff5a3633;color:#ffb39f}.tt-tag.is-warn{background:#ffc53d33;color:var(--tt-gold)}.tt-chip-bet{font-size:.74rem;color:#0a1613;background:var(--tt-gold);padding:.05rem .4rem;border-radius:999px;font-weight:700}.tt-last{font-size:.74rem;color:var(--tt-teal)}.tt-last.is-fold{color:var(--tt-soft)}.tt-minifan{display:flex;align-items:center;margin-top:.3rem;min-height:26px}.tt-minifan .pc-xs+.pc-xs{margin-left:-17px}.tt-minifan .pc-xs{--w: 26px}.tt-count{margin-left:.4rem;font:700 .78rem var(--font-hud, monospace);color:var(--tt-soft)}.tt-felt{position:relative;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:.7rem .6rem .8rem;border-radius:22px;background:var(--tt-felt);border:6px solid #3b2a1a;box-shadow:inset 0 0 0 2px #ffffff0f,inset 0 10px 40px #00000059,0 10px 26px #00000059;min-height:150px}.tt-felt-meta{display:flex;gap:.4rem .9rem;flex-wrap:wrap;justify-content:center;font:.72rem var(--font-hud, monospace);color:#e8f5f0b3;text-transform:uppercase;letter-spacing:.06em}.tt-felt-meta .is-hot{color:#ffb39f}.tt-board{display:flex;gap:clamp(4px,1.2vw,10px);justify-content:center}.tt-pot{display:flex;flex-direction:column;align-items:center;gap:.1rem}.tt-pot strong{font:800 1rem var(--font-hud, monospace);color:var(--tt-gold);background:#0000004d;padding:.15rem .7rem;border-radius:999px}.tt-sidepots{font-size:.74rem;color:var(--tt-soft)}.tt-results{background:#00000052;border-radius:12px;padding:.5rem .75rem;font-size:.86rem;width:min(100%,520px)}.tt-results p{margin:0 0 .3rem}.tt-result-line{padding:.12rem 0}.tt-result-pot{color:var(--tt-gold);font-weight:700}.tt-score{width:100%;border-collapse:collapse;font-size:.84rem}.tt-score th,.tt-score td{text-align:left;padding:.2rem .35rem;border-bottom:1px solid rgba(232,245,240,.1)}.tt-score tr.is-me td{color:var(--tt-gold)}.tt-moon{color:var(--tt-gold);font-weight:700}.tt-lastplay{margin:0;font-size:.82rem;color:var(--tt-soft)}.tt-piles{display:flex;gap:1rem;align-items:center;justify-content:center;flex-wrap:wrap}.tt-pile{display:flex;flex-direction:column;align-items:center;gap:.25rem}.tt-pile-label{font:.66rem var(--font-hud, monospace);text-transform:uppercase;color:#e8f5f0a6}.tt-suit-now{display:flex;flex-direction:column;align-items:center;gap:.1rem;font-size:.75rem;color:var(--tt-soft);max-width:7rem;text-align:center}.tt-suit-glyph{font-size:2.3rem;line-height:1;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.4)}.tt-suit-now.is-red .tt-suit-glyph{color:#ff6b7a}.tt-trick{position:relative;width:min(100%,360px);height:calc(var(--card-w) * 2.75)}.tt-trick-card{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.15rem}.tt-trick-card .pc{animation:tt-deal .25s ease-out}.tt-trick-name{font-size:.68rem;color:var(--tt-soft);max-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-trick-card.at-bottom{left:50%;bottom:0;transform:translate(-50%)}.tt-trick-card.at-top{left:50%;top:0;transform:translate(-50%)}.tt-trick-card.at-left{left:6%;top:50%;transform:translateY(-50%)}.tt-trick-card.at-right{right:6%;top:50%;transform:translateY(-50%)}.tt-trick-hint{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font-size:.85rem;color:#e8f5f0b3;padding:0 1rem}.tt-melds{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;width:100%;position:relative;min-height:2rem}.tt-melds .tt-trick-hint{position:static}.tt-meld{position:relative;display:flex;padding:.3rem .35rem 1rem;border-radius:10px;background:#00000038;border:1px solid transparent;color:inherit;font:inherit}.tt-meld .pc+.pc{margin-left:calc(var(--card-w) * -.32)}.tt-meld.is-target{cursor:pointer;border-color:var(--tt-teal);box-shadow:0 0 14px #1de4c259}.tt-meld-owner{position:absolute;bottom:.15rem;left:.4rem;font-size:.62rem;color:var(--tt-soft)}.tt-me{display:flex;flex-direction:column;gap:.45rem;padding:.55rem .6rem .7rem;border-radius:16px;background:#0c201cd9;border:1px solid var(--arena-line, rgba(232, 245, 240, .12))}.tt-me.is-active{border-color:var(--tt-teal);box-shadow:0 0 0 1px #1de4c266}.tt-me.tt-spec{color:var(--tt-soft);text-align:center;font-size:.88rem}.tt-me-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.tt-me-chips{font:700 .82rem var(--font-hud, monospace);color:var(--tt-gold)}.tt-best{font-size:.8rem;color:var(--tt-teal);margin-left:auto}.tt-hand{display:flex;justify-content:flex-start;padding:16px 4px 4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.tt-hand.is-fan .pc+.pc{margin-left:clamp(calc(var(--card-w) * -.62),calc((100% - var(--card-w)) / max(1,var(--n) - 1) - var(--card-w)),calc(var(--card-w) * -.1))}.tt-hand:not(.is-fan){gap:.4rem}.tt-hand .pc{position:relative}.tt-hand>:first-child{margin-left:auto}.tt-hand>:last-child{margin-right:auto}.tt-actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;justify-content:center}.tt-actions .btn{min-height:44px}.tt-actions .btn.is-danger{color:#ffb39f}.btn.btn-signal{background:var(--tt-gold);color:#241900;border-color:transparent;font-weight:700}.tt-wait{font-size:.85rem;color:var(--tt-soft)}.tt-raise{display:flex;flex-direction:column;gap:.3rem;align-items:stretch;min-width:min(100%,300px);flex:1 1 260px;max-width:420px}.tt-raise-row{display:flex;align-items:center;gap:.5rem}.tt-range{flex:1;accent-color:var(--tt-gold);min-height:32px}.tt-range-val{font:700 .9rem var(--font-hud, monospace);min-width:3.5rem;text-align:right;color:var(--tt-gold)}.tt-quick{display:flex;gap:.3rem;flex-wrap:wrap}.tt-quick .btn{min-height:34px;flex:1}.tt-suit-btn.is-red{color:#ff8a96}.tt-log{list-style:none;margin:0;padding:0 .3rem;font-size:.74rem;color:var(--tt-soft);display:flex;flex-direction:column;gap:.1rem}.tt-bj-dealer{min-height:0}.tt-bj-cards{display:flex;justify-content:center}.tt-bj-cards .pc+.pc{margin-left:calc(var(--card-w) * -.45)}.tt-bj-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;justify-content:center;font-size:.78rem;color:var(--tt-soft)}.tt-bj-total{font:800 .95rem var(--font-hud, monospace);color:#fff;background:#00000059;padding:.1rem .5rem;border-radius:999px}.tt-bj-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}.tt-bj-seat{display:flex;flex-direction:column;gap:.35rem}.tt-bj-seat .tt-me-chips{margin-left:auto}.tt-bj-hand{position:relative;padding:.3rem;border-radius:10px;border:1px solid transparent;display:flex;flex-direction:column;gap:.25rem;align-items:center}.tt-bj-hand.is-active{border-color:var(--tt-teal);background:#1de4c212}.tt-bj-hand .pc{--w: calc(var(--card-w) * .78)}.tt-bj-label{font-size:.66rem;color:var(--tt-soft)}.tt-bj-out{font-weight:700;padding:.05rem .4rem;border-radius:6px}.tt-bj-out.is-win{background:#30a46c4d;color:#9ff0c4}.tt-bj-out.is-lose{background:#ff5a3638;color:#ffb39f}.tt-bj-out.is-push{background:#e8f5f01f}.tt-chip{width:44px;height:44px;border-radius:50%;border:3px dashed rgba(255,255,255,.85);font:800 .72rem var(--font-hud, monospace);color:#fff;cursor:pointer;box-shadow:0 3px 8px #0006}.tt-chip.c10{background:#3e63dd}.tt-chip.c25{background:#30a46c}.tt-chip.c50{background:#e5484d}.tt-chip.c100{background:#16181d}.tt-chip.c250{background:#8e4ec6}.tt-bet-amt{font:800 1.1rem var(--font-hud, monospace);color:var(--tt-gold);min-width:3rem}.tt-ludo{max-width:1100px}.tt-ludo-wrap{width:min(100%,78vh,640px);margin:0 auto}.tt-ludo-board{width:100%;height:auto;display:block;border-radius:16px;box-shadow:0 12px 30px #0006;background:#fbfaf7;touch-action:manipulation}.tt-token{transition:transform .35s cubic-bezier(.3,1.3,.5,1);cursor:default}.tt-token .tt-token-ring{opacity:0}.tt-token.is-legal{cursor:pointer}.tt-token.is-legal .tt-token-ring{opacity:1;animation:tt-spin 2.4s linear infinite;transform-origin:0 0}.tt-token:focus-visible{outline:none}.tt-token:focus-visible .tt-token-ring{stroke:#1de4c2;stroke-width:4}@keyframes tt-spin{to{transform:rotate(360deg)}}.tt-ludo-panel{flex-wrap:nowrap;justify-content:center;gap:.8rem;padding:.4rem}.tt-die{width:64px;height:64px;padding:0;border:0;background:none;border-radius:14px;flex:none}.tt-die svg{width:100%;height:100%}.tt-die.is-ready{cursor:pointer;box-shadow:0 0 0 3px var(--tt-teal),0 0 22px #1de4c28c;animation:tt-pulse 1.4s ease-in-out infinite}.tt-die.is-rolling svg{animation:tt-roll .35s ease-out}@keyframes tt-roll{50%{transform:rotate(160deg) scale(.86)}}@keyframes tt-pulse{50%{box-shadow:0 0 0 3px var(--tt-teal),0 0 34px #1de4c2cc}}.tt-ludo-msg{display:flex;flex-direction:column;gap:.15rem;min-width:0}.tt-ludo-msg strong{font-size:.98rem}.tt-ludo-rules{font-size:.72rem;color:var(--tt-soft)}.tt-curtain{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#040c0aeb;border-radius:18px;backdrop-filter:blur(6px)}.tt-curtain-card{text-align:center;padding:1.4rem;max-width:22rem}.tt-curtain-kicker{font:.72rem var(--font-hud, monospace);letter-spacing:.14em;color:var(--tt-teal);margin:0}.tt-curtain-title{font:1.5rem var(--font-display, sans-serif);margin:.3rem 0}.tt-curtain-copy{color:var(--tt-soft);font-size:.9rem;margin:0 0 1rem}.tt-flash{position:absolute;left:50%;bottom:.6rem;transform:translate(-50%,12px);opacity:0;pointer-events:none;z-index:25;background:#16181d;color:#fff;padding:.45rem .8rem;border-radius:10px;font-size:.84rem;box-shadow:0 8px 22px #00000073;transition:opacity .2s,transform .2s;max-width:92%;text-align:center}.tt-flash.is-on{opacity:1;transform:translate(-50%)}@media(min-width:760px){.tt-root{--card-w: clamp(80px, 9.5vw, 96px);gap:.75rem}.tt-seats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.tt-felt{padding:1rem;border-width:8px;border-radius:120px/70px;min-height:210px}.tt-ludo .tt-ludo-seats{grid-template-columns:repeat(4,1fr)}}@media(max-height:520px)and (orientation:landscape){.tt-root{--card-w: clamp(44px, 7vw, 64px);gap:.4rem}.tt-felt{min-height:0;padding:.4rem}.tt-seat{padding:.3rem .45rem}.tt-ludo-wrap{width:min(100%,88vh)}.tt-ludo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"board seats" "board panel" "board log";align-items:start}.tt-ludo .tt-ludo-wrap{grid-area:board}.tt-ludo .tt-ludo-seats{grid-area:seats;grid-template-columns:1fr 1fr}.tt-ludo .tt-ludo-panel{grid-area:panel}.tt-ludo .tt-log{grid-area:log}.tt-root:not(.tt-ludo){display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:.6rem;row-gap:.4rem;align-items:start}.tt-root:not(.tt-ludo)>*{grid-column:1;min-width:0}.tt-root:not(.tt-ludo)>.tt-clockbar{grid-column:1 / -1;margin:0;min-height:24px}.tt-root:not(.tt-ludo)>.tt-me{grid-column:2;grid-row:2 / span 3}.tt-root:not(.tt-ludo)>.tt-log{grid-column:2;grid-row:5}.tt-root:not(.tt-ludo) .tt-seats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.35rem}.tt-root:not(.tt-ludo) .tt-seat-sub{font-size:.7rem}}@media(prefers-reduced-motion:reduce){.tt-token,.pc,.tt-die{transition:none;animation:none!important}}.tt-clockbar{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;min-height:28px;margin:0 0 .5rem;padding:.2rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;font:600 .8rem/1.2 var(--font-hud, system-ui);color:#cfe3db}.tt-clockbar-text{position:relative;z-index:1;font-variant-numeric:tabular-nums}.tt-clockbar-fill{position:absolute;inset:0;transform-origin:left center;background:#1de4c22e;transition:transform .25s linear}.tt-clockbar.is-mine{border-color:#1de4c28c;color:#fff}.tt-clockbar.is-mine .tt-clockbar-fill{background:#1de4c252}.tt-clockbar.is-low{border-color:#ff5c5cb3}.tt-clockbar.is-low .tt-clockbar-fill{background:#ff5c5c59}.tt-seat-clock{margin-left:auto;padding:0 .4rem;border-radius:999px;background:#1de4c22e;color:#1de4c2;font:700 .72rem/1.5 var(--font-hud, monospace);font-variant-numeric:tabular-nums}.tt-seat-clock.is-low{background:#ff5c5c33;color:#ff8a8a}@media(prefers-reduced-motion:reduce){.tt-clockbar-fill{transition:none}}
