svg.card{background:0 0;border:0;border-radius:0;padding:0}.tt-game{grid-template-columns:minmax(0,1fr);gap:16px;margin-top:12px;display:grid}@media (width>=1100px){.tt-game{grid-template-columns:minmax(0,1fr) 320px;align-items:start}.tt-side{position:sticky;top:12px}}.tt-main{gap:12px;min-width:0;display:grid}.tt-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.tt-chip{border:2px solid var(--brass);background:linear-gradient(180deg, #fffdf6, var(--surface-2));min-height:40px;box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:6px;padding:4px 14px;font-size:1.1rem;font-weight:700;display:inline-flex}.tt-game{--tt-plaque:linear-gradient(180deg, #fffdf6, #f1e4c6);--tt-plaque-shadow:inset 0 0 0 1px #fff9, 0 2px 0 #00000059, 0 4px 10px #0000004d;--tt-inlay:#e8c87380}.tt-table{--trick-w:clamp(56px, 16vw, 86px);grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);grid-template-areas:".north.""west center east"".south.";place-items:center;gap:6px;padding:10px 8px;display:grid}.tt-seat-north{grid-area:north}.tt-seat-west{grid-area:west}.tt-seat-east{grid-area:east}.tt-seat-south{grid-area:south}.tt-center{grid-area:center;justify-items:center;gap:6px;display:grid}.tt-seat{text-align:center;border:4px solid #0000;border-radius:18px;flex-direction:column;align-items:center;gap:8px;max-width:100%;padding:6px;line-height:1.25;display:flex}.tt-seat-north,.tt-seat-south{flex-direction:row;gap:14px}.tt-seat.is-active{border-color:var(--highlight);background:#00000052;animation:1.8s ease-in-out infinite tt-turn-glow;box-shadow:0 0 0 3px #0006,0 0 20px 4px #ffc80080}@keyframes tt-turn-glow{50%{box-shadow:0 0 0 3px #0006,0 0 30px 9px #ffc800cc}}.reduce-motion .tt-seat.is-active{animation:none}.tt-seat-text{border:2px solid var(--brass-dark);background:var(--tt-plaque);min-width:0;max-width:100%;box-shadow:var(--tt-plaque-shadow);color:var(--text);border-radius:10px;flex-direction:column;align-items:center;padding:4px 16px 6px;display:flex}.tt-seat-name{font-family:var(--font-display);font-size:1.3rem;font-weight:700}.tt-seat-line{font-size:1rem;font-weight:600}.tt-tag{border:2px solid var(--brass-dark);background:linear-gradient(180deg, var(--brass-light), var(--brass));color:#231a05;font-family:var(--font);vertical-align:2px;border-radius:999px;padding:0 7px;font-size:.9rem;font-weight:800;display:inline-block}.tt-turn-badge{background:var(--highlight);color:#111;border:2px solid #5e440c;border-radius:999px;margin:3px 0;padding:1px 10px;font-size:1rem;font-weight:800}.tt-turn-badge:before{content:"▶ ";font-size:.8em}.tt-seat-back{isolation:isolate;--card-w:40px;flex:none;margin:2px 10px 6px 6px;position:relative}.tt-seat-back:before,.tt-seat-back:after{content:"";z-index:-1;border:1.5px solid var(--card-back-edge,#e8c873);background:var(--card-back,#173f63);border-radius:4px;position:absolute;inset:0;box-shadow:0 1px 2px #0006}.tt-seat-back:before{transform:rotate(-10deg)translate(-4px,1px)}.tt-seat-back:after{transform:rotate(9deg)translate(4px,1px)}.tt-seat-count{border:2px solid var(--brass-dark);background:var(--tt-plaque);min-width:32px;height:32px;color:var(--text);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 5px;font-size:1.05rem;font-weight:800;display:grid;position:absolute;bottom:-9px;right:-14px;box-shadow:0 2px 4px #00000073}@media (width<=599px){.tt-seat{border-width:3px;padding:3px}.tt-seat-text{padding:2px 6px 4px}.tt-seat-back{--card-w:34px;margin:0 8px 4px 2px}}.tt-trick{--card-w:var(--trick-w);grid-template-columns:repeat(3, var(--trick-w));grid-template-rows:repeat(3, calc(var(--trick-w) * .62));padding-bottom:calc(var(--trick-w) * .55);grid-template-areas:".n.""w.e"".s.";display:grid;position:relative}.tt-trick:before{content:"";left:50%;top:calc(var(--trick-w) * 1.32);width:calc(var(--trick-w) * 3.3);height:calc(var(--trick-w) * 3);border:2px solid var(--tt-inlay);outline-offset:-9px;pointer-events:none;background:radial-gradient(closest-side,#ffffff17,#fff0 80%);border-radius:50%;outline:1px solid #e8c87340;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 0 34px #00000038}.tt-trick .card-slot rect{fill:#00000029;stroke:var(--tt-inlay);stroke-width:2px;stroke-dasharray:none}.tt-trick .card-slot text{fill:var(--brass-light)}.tt-trick-cell{position:relative}.tt-trick-north{grid-area:n}.tt-trick-west{z-index:1;grid-area:w}.tt-trick-east{z-index:1;grid-area:e}.tt-trick-south{z-index:2;grid-area:s}.tt-trick-west .card{transform:translate(8px)}.tt-trick-east .card{transform:translate(-8px)}.card.is-winner .card-bg{stroke:var(--highlight);stroke-width:8px}.tt-trick .card.is-winner{filter:drop-shadow(0 0 7px #ffc800e6)drop-shadow(0 3px 4px #0006)}.tt-trick-caption{border:2px solid var(--brass);color:#fff8e6;text-align:center;background:#1e1108d1;border-radius:999px;margin:0;padding:5px 18px;font-size:1.15rem;font-weight:800;position:relative;box-shadow:0 2px 6px #00000059}.tt-actions{flex-wrap:wrap;justify-content:center;gap:10px;min-height:56px;display:flex}.tt-actions .btn{min-height:56px}.tt-actions .btn[disabled]{opacity:.55;cursor:not-allowed}.tt-notice{border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#fdecee;border-left:6px solid #c8102e;margin:.3em 0 0;padding:6px 12px;font-weight:700}.tt-hand{border:5px solid var(--felt-edge);border-radius:var(--radius);background:var(--tex-noise), linear-gradient(180deg, var(--felt-dark), var(--felt) 55%, var(--felt-light));background-color:var(--felt);box-shadow:var(--shadow-md), inset 0 0 0 2px #00000059, inset 0 10px 18px #0000004d;color:#fff;padding:28px 4px 8px}@media (width<=767px){.tt-hand{border-width:2px}}.tt-hand .card.is-dim{opacity:1;filter:brightness(.6)saturate(.55)}.tt-hand-fan{flex-direction:column;align-items:center;gap:10px;display:flex}.tt-hand-row{justify-content:center;display:flex}.tt-card-btn{--card-w:min(70px, calc((100vw - 56px) / 5.3));margin:0 0 0 calc(var(--card-w) * -.3);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:8px;padding:0;position:relative}.tt-card-btn:first-child{margin-left:0}.tt-card-btn:disabled{cursor:default}.tt-card-btn .card{filter:drop-shadow(-2px 1px 2px #00000061)drop-shadow(0 3px 4px #00000040);transition:transform .15s ease-out}.tt-card-btn .card.is-playable,.tt-card-btn .card.is-selected{filter:drop-shadow(-2px 1px 2px #00000061)drop-shadow(0 9px 9px #0006)}.tt-card-btn.is-selected{z-index:3}.tt-card-btn .card.is-selected{transform:translateY(-24px)scale(1.12)}.tt-card-btn:focus-visible{outline:none}.tt-card-btn:focus-visible .card-bg{stroke:var(--focus);stroke-width:7px}.tt-new-tag{z-index:4;background:var(--primary);color:#fff;pointer-events:none;border:1.5px solid #fff;border-radius:999px;padding:0 7px;font-size:.9rem;font-weight:800;position:absolute;bottom:-6px;left:50%;transform:translate(-50%);box-shadow:0 1px 3px #0006}@media (width>=760px){.tt-hand-fan{flex-direction:row;justify-content:center;gap:0}.tt-card-btn{--card-w:96px;margin-left:-46px}.tt-hand-row+.tt-hand-row{margin-left:-46px}}.tt-bid-panel{border:3px solid var(--highlight);border-top:8px solid var(--brass);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md);color:var(--text);gap:10px;padding:12px;display:grid}.tt-bid-panel h2{font-size:var(--text-lg);margin:0}.tt-bid-panel p{margin:0}@media (width<=767px){.tt-bid-panel{border-top-width:3px}}.tt-bid-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;display:grid}.tt-bid-btn{border:3px solid var(--primary);background:linear-gradient(180deg, #fff, var(--surface-2));min-height:60px;box-shadow:0 3px 0 var(--border-strong);color:var(--primary);font:inherit;font-family:var(--font-display);font-variant-numeric:lining-nums;cursor:pointer;border-radius:12px;font-size:1.6rem;font-weight:700;transition:transform 80ms,box-shadow 80ms}.tt-bid-btn:hover{background:var(--primary-soft)}.tt-bid-btn:active{box-shadow:0 1px 0 var(--border-strong);transform:translateY(2px)}.tt-bid-btn[aria-pressed=true]{background:linear-gradient(180deg, #1c5a88, var(--primary));box-shadow:inset 0 0 0 3px var(--brass-light), 0 1px 0 var(--primary-deep);color:var(--on-primary);text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:3px;transform:translateY(2px)}.tt-bid-btn.is-nil{grid-column:span 2}.tt-bid-btn.is-hint{outline-offset:2px}.tt-side{--tt-rule:#b9c9d6;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-md);padding:0 0 14px;overflow:hidden}.tt-side>*{margin-left:14px;margin-right:14px}.tt-side h2{border-bottom:4px solid var(--brass);background:var(--wood-bg);background-color:var(--wood);color:#fff6e0;font-size:var(--text-lg);text-shadow:0 1px 2px #00000080;margin:0 0 10px;padding:10px 16px 9px}.tt-side .results-table{font-size:1.05rem}.tt-side .results-table th,.tt-side .results-table td{border-bottom:1px solid var(--tt-rule);padding:7px 6px}.tt-side .results-table thead th{border-bottom:3px double var(--text);font-family:var(--font-display)}.tt-side .results-table tr.is-winner>*{border-top:2px solid var(--text);border-bottom:2px solid var(--text)}.tt-side p{margin-top:8px;margin-bottom:0}.tt-score-wrap{overflow-x:auto}.tt-house-check{margin-bottom:8px}.tt-house-check .choice-help{margin:0 0 0 36px}.tt-all-hands .hand-row{--card-w:44px;gap:3px}.tt-all-hands .tt-passed{color:var(--muted);margin:2px 0 0;font-size:1.05rem}.tt-result-note{font-weight:700}.tt-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tt-game .why-text[hidden]{display:none}@media (width<=599px){.tt-seat-south{display:none}.tt-table{gap:4px;padding:8px 4px}.tt-trick-caption{padding:2px 10px;font-size:1.05rem}}@media (width<=767px){.play-dock .tt-actions{min-height:0}.play-dock .tt-actions:empty{display:none}.play-dock .tt-hand{padding:22px 2px 4px}.play-dock .tt-hand-fan{gap:4px}.play-dock .tt-bid-panel{gap:6px;padding:8px}.play-dock .tt-bid-panel p{margin:0;font-size:1.05rem}.play-dock .tt-bid-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.play-dock .tt-bid-btn{min-height:48px;padding:0;font-size:1.3rem}.play-dock .tt-bid-panel .choice-help{display:none}.play-dock .tt-bid-panel h2{font-size:1.2rem}.play-dock .tt-bid-panel .hint-box{padding:4px 10px;font-size:1rem}.play-dock .tt-bid-panel .btn-big{min-height:52px;font-size:1.15rem}.play-dock .tt-actions>*{flex:100%}.play-dock .tt-bid-panel h2{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}}
