.tt-game{--tt-accent:#f79;--tt-ink:#eee9e4;color:var(--tt-ink);font-weight:500}.tt-game[data-game=spades]{--tt-accent:#66d9c2}.tt-toolbar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:20px;display:flex}.tt-toolbar>button{min-height:44px}.tt-text-button{color:#d0ccce;border-radius:8px;min-height:44px;padding:6px 10px;font-size:12px}.tt-text-button:hover:not(:disabled){color:#fff;background:#ffffff0d}.tt-text-button:disabled{color:#bdbdbd;cursor:not-allowed}.tt-speed{color:#c4c0c3;align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.tt-game select{color:#eee9e4;background:#27272b;border:1px solid #ffffff30;border-radius:8px;min-height:44px;padding:9px}.tt-game button,.tt-game select,.tt-game summary{touch-action:manipulation}.tt-game button:focus-visible,.tt-game select:focus-visible,.tt-game summary:focus-visible{outline:2px solid var(--tt-accent);outline-offset:4px}.tt-surface{padding:0 4px;container-type:inline-size}.tt-matchline{color:#b1afb6;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:11px;display:flex}.tt-game-name{color:var(--tt-ink);align-items:center;gap:9px;font-size:15px;display:flex}.tt-game-name svg{color:var(--tt-accent)}.tt-game-name>span{color:#b1afb6;margin-left:5px;font-size:11px}.tt-scores{border-block:1px solid #ffffff20;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tt-scores-four{grid-template-columns:repeat(4,minmax(0,1fr))}.tt-scores>div{border-left:1px solid #ffffff20;grid-template-columns:1fr auto;align-items:center;gap:4px 8px;padding:14px 20px;display:grid}.tt-scores>div:first-child{border-left:0;padding-left:4px}.tt-scores>div:last-child{padding-right:4px}.tt-scores span{font-size:13px}.tt-scores strong{font-variant-numeric:tabular-nums;font-size:26px;font-weight:500;line-height:1}.tt-scores small{color:#b1afb6;grid-column:1/-1;font-size:11px}.tt-scores [data-you=true]>span{color:var(--tt-accent)}.tt-table{grid-template-rows:112px 196px;grid-template-columns:minmax(80px,1fr) minmax(180px,2fr) minmax(80px,1fr);place-items:center;max-width:740px;margin:12px auto 0;display:grid}.tt-seat{text-align:center;flex-direction:column;align-items:center;font-size:12px;display:flex;position:relative}.tt-seat strong{margin-top:5px;font-weight:500}.tt-seat>span:not(.tt-avatar){color:#b7b3bc;font-size:10px}.tt-seat small{margin-top:4px;font-size:11px}.tt-avatar{color:#d4cdd7;background:#ffffff0e;border:1px solid #fff2;border-radius:50%;place-items:center;width:36px;height:36px;font-size:15px;display:grid}.tt-seat[data-active=true] .tt-avatar{border-color:var(--tt-accent);color:var(--tt-accent);box-shadow:0 0 0 4px #ffffff08}.tt-seat-1{grid-area:2/1}.tt-seat-2{grid-area:1/2}.tt-seat-3{grid-area:2/3}.tt-card-count{margin-top:4px}.tt-center{grid-area:2/2;width:100%;height:196px;position:relative}.tt-table-mark{color:#b1afb6;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;font-size:11px;display:flex}.tt-table-mark svg{opacity:.35}.tt-played{width:64px;animation:.18s cubic-bezier(.22,1,.36,1) both tt-play-in;position:absolute}.tt-played>span{text-align:center;color:#ccc7cd;margin-top:3px;font-size:10px;display:block}.tt-played-0{z-index:4;top:96px;left:calc(50% - 32px)}.tt-played-1{z-index:2;top:49px;left:calc(50% - 104px)}.tt-played-2{z-index:1;top:0;left:calc(50% - 32px)}.tt-played-3{z-index:3;top:49px;left:calc(50% + 40px)}.tt-played[data-winner=true]>div{outline:2px solid var(--tt-accent);outline-offset:3px;border-radius:5px}@keyframes tt-play-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.tt-statusline{justify-content:center;align-items:center;gap:12px;min-height:44px;margin-top:12px;display:flex}.tt-statusline p{color:var(--tt-accent);text-align:center;font-size:16px}.tt-decision{text-align:center;outline:none;min-height:28px}.tt-decision p,.tt-disclosure p{color:#c0bbc4;max-width:540px;margin:0 auto 10px;font-size:12px;line-height:1.6}.tt-primary,.tt-secondary{border-radius:24px;min-height:44px;padding:10px 20px;font-size:13px}.tt-primary{background:var(--tt-ink);color:#202026}.tt-primary:hover:not(:disabled){background:#fff}.tt-primary:disabled{color:#bdbdbd;cursor:not-allowed;background:#454545}.tt-secondary{color:var(--tt-ink);background:#ffffff12}.tt-bidding{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:10px 0;font-size:12px;display:flex}.tt-note{margin-top:8px!important}.tt-hint{color:var(--tt-accent)!important;margin-top:12px!important}.tt-hand-area{max-width:940px;margin:18px auto 0}.tt-hand-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;font-size:12px;display:flex}.tt-hand-heading>span>span{color:#b1afb6;margin-left:8px}.tt-hand-heading>span:last-child{color:#b1afb6;font-size:11px}.tt-hand{flex-wrap:wrap;justify-content:center;gap:12px 5px;padding:8px 0 0;display:flex}.tt-card{border-radius:5px;flex-shrink:0;align-self:start;width:clamp(48px,6.5cqw,68px);min-height:67px;transition:transform .16s ease-out,filter .16s ease-out;position:relative}.tt-card[aria-disabled=true]{cursor:default}.tt-card[data-legal=false]>span:first-child{opacity:.55}.tt-card[data-selected=true],.tt-card[data-hint=true]{outline:2px solid var(--tt-accent);outline-offset:2px;transform:translateY(-6px)}.tt-card-marker{min-height:14px;color:var(--tt-accent);margin-top:3px;font-size:9px;display:block}@media (hover:hover){.tt-card[aria-disabled=false]:hover{transform:translateY(-6px)}}.tt-bottomline{color:#b1afb6;border-top:1px solid #ffffff18;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;font-size:11px;display:flex}.tt-disclosure{text-align:center;max-width:580px;margin:24px auto;padding:8px 0}.tt-disclosure h2,.tt-round-result h2{margin-bottom:14px;font-size:20px;font-weight:500}.tt-actions{justify-content:center;gap:10px;margin:18px 0;display:flex}.tt-round-result{max-width:520px;margin:4px auto 20px}.tt-game table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:14px 0 20px;font-size:12px}.tt-game th{color:#c0bbc4;font-weight:500}.tt-game th,.tt-game td{text-align:right;border-bottom:1px solid #ffffff1a;padding:10px 6px}.tt-game th:first-child{text-align:left}.tt-game caption{text-align:left;color:#b1afb6;margin-bottom:6px;font-size:11px}.tt-score-history{color:#c0bbc4;font-size:12px}.tt-score-history summary{cursor:pointer;min-height:44px;padding:12px 0}.tt-trick-history{max-height:390px;margin:20px 0;overflow:auto}.tt-history-row{border-bottom:1px solid #ffffff15;justify-content:space-between;align-items:center;gap:10px;padding:10px 3px;font-size:12px;display:flex}.tt-history-row>div{gap:6px;display:flex}.tt-history-card{color:#22232a;background:#f0ece7;border-radius:4px;width:42px;padding:5px 2px;font-size:15px}.tt-history-card[data-red=true]{color:#a92948}.tt-history-card[data-winner=true]{outline:2px solid var(--tt-accent);outline-offset:1px}.tt-history-card small{color:#555;font-size:9px;display:block}.tt-rules{text-align:left}.tt-rules ol{margin-bottom:20px;padding-left:20px;font-size:13px;line-height:1.7;list-style:decimal}.tt-rules li{color:inherit;margin-bottom:10px;padding-left:4px}.tt-rules>p{font-size:12px;line-height:1.7}@container (width<=520px){.tt-matchline{flex-direction:column;align-items:flex-start;gap:5px}.tt-scores>div{padding:12px 10px}.tt-scores span{font-size:11px}.tt-scores strong{font-size:22px}.tt-scores-four>div{grid-template-columns:1fr;gap:6px}.tt-table{grid-template-rows:112px 182px;grid-template-columns:55px minmax(140px,1fr) 55px}.tt-center{height:182px}.tt-played{width:52px}.tt-played-0{top:95px;left:calc(50% - 26px)}.tt-played-1{top:48px;left:calc(50% - 82px)}.tt-played-2{left:calc(50% - 26px)}.tt-played-3{top:48px;left:calc(50% + 30px)}.tt-seat{font-size:11px}.tt-seat>span:not(.tt-avatar){font-size:9px}.tt-avatar{width:30px;height:30px}.tt-hand-heading{flex-direction:column;align-items:flex-start;gap:5px}.tt-statusline p{font-size:14px}.tt-scores small{font-size:10px}}@media (prefers-reduced-motion:reduce){.tt-played{animation:none}.tt-card{transition:none}}:root[data-reduced-motion=true] .tt-played{animation:none}:root[data-reduced-motion=true] .tt-card{transition:none}
