/* Turbo Type. Theme tokens only; the pixel cars are tiny SVGs coloured from the same tokens. */
.tt-game{max-width:980px}
.tt-live{display:flex;gap:6px;flex-wrap:wrap;margin:0}
.tt-live .lg-chip{font-variant-numeric:tabular-nums}
.tt-track{list-style:none;margin:0;padding:8px 10px;display:grid;gap:4px;background:var(--lg-white);border:1px solid var(--lg-line);border-radius:10px}
.tt-lane{display:grid;grid-template-columns:minmax(84px,22%) minmax(0,1fr);align-items:center;gap:8px;min-height:34px}
.tt-name{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.tt-name b{font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tt-name small{font-size:.72rem;color:var(--lg-muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.tt-lane.me .tt-name b{color:var(--lg-rose)}
.tt-lane.is-ghost .tt-carbox{opacity:.55}
.tt-road{position:relative;height:30px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--lg-line) 0 10px,transparent 10px 20px) left 50%/100% 2px no-repeat,var(--lg-cream);border:1px solid var(--lg-line)}
.tt-lane.me .tt-road{border-color:var(--lg-rose);box-shadow:inset 0 0 0 1px var(--lg-rose)}
.tt-carbox{--p:0;position:absolute;top:50%;left:calc(var(--p) * (100% - 46px) + 2px);transform:translateY(-50%);width:40px;height:20px;transition:left .12s linear}
.tt-car{display:block;width:100%;height:100%}
.tt-car .ck{fill:var(--lg-ink)}.tt-car .cw{fill:var(--lg-white)}.tt-car .cy{fill:var(--lg-warn)}.tt-car .cq{fill:var(--lg-ink)}
.tt-flag{position:absolute;right:0;top:0;bottom:0;width:6px;background:conic-gradient(var(--lg-ink) 25%,var(--lg-white) 0 50%,var(--lg-ink) 0 75%,var(--lg-white) 0) 0 0/6px 6px;border-left:1px solid var(--lg-ink)}
.tt-lane.done .tt-name small{color:var(--lg-good);font-weight:700}
.tt-board{position:relative;padding:18px 20px;cursor:text}
.tt-board.has-error{border-color:var(--lg-bad);box-shadow:inset 0 0 0 1px var(--lg-bad)}
.tt-passage{font-size:1.28rem;line-height:1.75;margin:0 0 12px;max-height:13em;overflow:auto;overflow-wrap:break-word;user-select:none;-webkit-user-select:none}
.tt-done{color:var(--lg-good)}
.tt-cursor{background:var(--lg-pink);color:var(--lg-ink);box-shadow:inset 0 -3px 0 var(--lg-rose);border-radius:2px}
.tt-bad{background:var(--lg-bad);color:var(--lg-white);border-radius:2px;text-decoration:underline wavy}
.tt-todo{color:var(--lg-ink)}
.tt-type-label{display:block;font-weight:800;font-size:.84rem;margin-bottom:5px}
.tt-type{width:100%;min-height:48px;font:500 17px/1.3 var(--lg-font);padding:10px 12px;border:2px solid var(--lg-ink);border-radius:8px;background:var(--lg-cream);color:var(--lg-ink)}
.tt-type:focus{outline:3px solid var(--lg-rose);outline-offset:2px}
.tt-board.has-error .tt-type{border-color:var(--lg-bad)}
.tt-hint{margin:6px 0 0;color:var(--lg-rose);font-weight:700}
.tt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tt-count{position:absolute;inset:0;display:none;align-items:center;justify-content:center;margin:0;font-size:clamp(2rem,10vw,3.6rem);color:var(--lg-rose);background:color-mix(in srgb,var(--lg-white) 82%,transparent);border-radius:var(--lg-radius);z-index:2;pointer-events:none}
.tt-board.is-counting .tt-count{display:flex}
.tt-podium li .rank{min-width:2.6em}
@media(max-width:520px){.tt-passage{font-size:1.08rem;line-height:1.7;max-height:9.5em}.tt-board{padding:14px}.tt-lane{grid-template-columns:88px minmax(0,1fr)}}
@media(max-height:560px){.ar-top{display:none}.tt-passage{max-height:5.2em}.tt-track{padding:4px 8px}.tt-lane{min-height:26px}.tt-road{height:24px}}
@media(min-width:1000px){.tt-passage{font-size:1.36rem}}
