.tc-app{padding-top:24px;padding-bottom:44px;max-width:1050px}.tc-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.tc-heading h1{font-size:clamp(2rem,5vw,3.5rem);margin:0;line-height:1}.tc-heading .kicker{margin:0 0 8px}.tc-heading a{font-weight:750}#tc-start{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin:20px 0}#tc-start label{display:flex;flex-direction:column;font-weight:750}#tc-start small{font-weight:400}#tc-name{font:800 20px/1.5 system-ui;letter-spacing:.15em;text-transform:uppercase;width:145px;border:1px solid #c7d7c9;border-radius:6px;background:#fff;padding:9px}#tc-error{padding:14px;background:#ffe9e3;color:#832a19;border-left:4px solid #ac341e}.tc-scorebar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;background:#073f2e;color:#fff;padding:12px 20px;border-radius:14px 14px 0 0;text-align:center;font-size:12px}.tc-scorebar strong{display:block;font-size:24px;color:#f6d93d}.tc-scorebar>div:nth-child(2) strong{font-size:17px;margin-top:5px}.tc-table{position:relative;height:350px;background:radial-gradient(ellipse at center,#18744d,#05452f);border:10px solid #1b3428;border-top:0;border-radius:0 0 110px 110px;box-shadow:inset 0 0 45px #01291c80,0 8px 20px #092a191b;overflow:hidden}.tc-table::before{content:'';position:absolute;inset:18px;border:1px solid #d8c99150;border-radius:95px}.tc-table-mark{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);font:900 39px/1 system-ui;color:#ffffff17;letter-spacing:3px;text-align:center}.tc-table-mark span{display:block;font-size:11px;letter-spacing:5px;margin-top:8px}.tc-seat{position:absolute;z-index:3;color:white;text-align:center;min-width:75px;font-size:13px}.tc-seat strong{display:block}.tc-seat small{font-size:10px;display:block;color:#d4e3d8}.tc-seat b{display:inline-grid;place-items:center;border:2px solid #ffffff40;border-radius:50%;width:34px;height:34px;background:#173f32;margin-bottom:3px}.tc-seat.active b{border-color:#ffe359;box-shadow:0 0 0 4px #ffe35922}.tc-top{top:12px;left:50%;transform:translateX(-50%)}.tc-bottom{bottom:9px;left:50%;transform:translateX(-50%)}.tc-left{top:44%;left:18px}.tc-right{top:44%;right:18px}#tc-trick{position:absolute;inset:0;pointer-events:none}.tc-card{display:block;position:relative;background:#fffef8;color:#152a23;border:1px solid #ccd2c9;border-radius:8px;width:68px;height:96px;box-shadow:0 3px 6px #00180b3d;font:800 20px/1 Georgia,serif;padding:6px;text-align:left}.tc-card.red{color:#b53036}.tc-card .suit{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font-size:35px}.tc-card .corner{display:block;font-size:16px}.tc-card .reverse{position:absolute;bottom:5px;right:5px;transform:rotate(180deg)}#tc-trick .tc-card{position:absolute;left:calc(50% - 34px);top:calc(50% - 48px);animation:tc-play-in .28s ease-out}.tc-at-0{margin-top:37px}.tc-at-1{margin-left:-52px;transform:rotate(-12deg)}.tc-at-2{margin-top:-34px;transform:rotate(5deg)}.tc-at-3{margin-left:52px;transform:rotate(12deg)}#tc-status{text-align:center;font-weight:750;min-height:26px;margin:15px 0 5px}#tc-controls{text-align:center;min-height:38px}#tc-controls button{margin:4px;border:1px solid #cfdbd2;border-radius:6px;padding:10px 15px;background:#fff;font-weight:750;cursor:pointer}#tc-controls .red{color:#b53036}#tc-hand{display:grid;grid-template-columns:repeat(var(--cards,13),minmax(0,1fr));max-width:690px;width:calc(100% - 60px);margin:28px auto 10px;min-height:113px;padding-top:25px}.tc-hand-wrap{overflow:hidden;padding:0 10px}#tc-hand .tc-card{cursor:pointer;transition:transform .18s,filter .18s;transform:translateY(var(--arc,0px)) rotate(var(--angle,0deg));transform-origin:50% 100%;z-index:var(--i)}#tc-hand .tc-card.selected{transform:translateY(-24px) rotate(0);z-index:30;outline:3px solid #edc825}#tc-hand .tc-card:disabled{cursor:default;filter:brightness(.87)}#tc-hand.dealing .tc-card{animation:tc-deal .45s both;animation-delay:calc(var(--i)*35ms)}.tc-playbar{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap}.tc-playbar button{min-height:44px;cursor:pointer}#tc-reload{background:none;border:0;text-decoration:underline;color:#345346;font-size:12px}.tc-app button:disabled{opacity:.55;cursor:default}.tc-hint{text-align:center;font-size:12px;color:#627068}.tc-bottom-panels{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;margin-top:38px}.tc-bottom-panels h2{margin:5px 0;font-size:28px}.tc-bottom-panels p{font-size:14px}.tc-rules{border:1px solid #d3dbd2;padding:18px;border-radius:8px;height:fit-content;background:#fff}.tc-rules summary{font-weight:800;cursor:pointer}#tc-score-list table{width:100%;border-collapse:collapse;font-size:14px}#tc-score-list td,#tc-score-list th{padding:9px;border-bottom:1px solid #dce2d9;text-align:left}#tc-results{text-align:center;font-weight:650;font-size:14px;margin-top:14px}.tc-finish{padding:15px;background:#f6df65;color:#163f2b;border-radius:8px}.tc-app .button{border:0;cursor:pointer}
@keyframes tc-deal{from{opacity:0;transform:translateY(95px) rotate(16deg)}}@keyframes tc-play-in{from{opacity:.2;scale:.7;translate:0 25px}}
@media(max-width:600px){.tc-table{height:290px;border-width:6px;border-radius:0 0 65px 65px}.tc-seat{min-width:55px;font-size:11px}.tc-seat small{font-size:9px}.tc-left{left:5px}.tc-right{right:5px}.tc-top{top:10px}.tc-card{width:54px;height:78px;font-size:16px;border-radius:6px}.tc-card .corner{font-size:12px}.tc-card .suit{font-size:28px}#tc-trick .tc-card{left:calc(50% - 27px);top:calc(50% - 39px)}.tc-at-1{margin-left:-36px}.tc-at-3{margin-left:36px}.tc-at-0{margin-top:28px}.tc-at-2{margin-top:-25px}.tc-bottom-panels{grid-template-columns:1fr}.tc-scorebar{padding:10px;font-size:10px}#tc-hand{width:calc(100% - 40px);margin-top:17px;min-height:100px}.tc-hand-wrap{padding:0 8px}.tc-heading a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.tc-app *{animation:none!important;transition:none!important}}

#tc-game{scroll-margin-top:90px}#tc-restart{background:none;border:0;text-decoration:underline;color:#345346;font-size:12px}

/* The full card index stays in the narrow, exposed left edge of the fan. */
.tc-card .tc-index{position:absolute;top:5px;left:4px;display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1;min-width:17px;font-family:Arial,sans-serif;font-weight:800;z-index:2}
.tc-card .tc-rank{font-size:20px;letter-spacing:-1px}.tc-card .tc-index-suit{font-size:19px;line-height:1}
.tc-card .suit{top:58%;left:60%}.tc-card .reverse{font-size:13px}
#tc-trick{z-index:5;transform-origin:center center}.tc-grab-hand{position:absolute;left:50%;top:calc(50% - 48px);font:50px/1 system-ui;z-index:50;filter:drop-shadow(0 5px 3px #001c2b65);pointer-events:none}
.tc-seat.tc-winner b{background:#f6d93d;color:#073f2e;border-color:white;box-shadow:0 0 0 6px #f6d93d35}.tc-seat.tc-winner strong{color:#ffe66b}
@media(max-width:600px){.tc-card .tc-index{top:4px;left:3px;min-width:16px}.tc-card .tc-rank{font-size:17px}.tc-card .tc-index-suit{font-size:17px}.tc-card .reverse{font-size:10px}.tc-grab-hand{font-size:44px;top:calc(50% - 42px)}}

.tc-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}#tc-sound{min-height:44px;padding:9px 14px;border:2px solid #073f2e;border-radius:6px;background:#fff;color:#073f2e;font:750 14px/1.3 system-ui;cursor:pointer;white-space:nowrap}#tc-sound[aria-pressed="true"]{background:#073f2e;color:#fff}#tc-sound:focus-visible{outline:3px solid #d7ac12;outline-offset:3px}
