.track{padding:var(--space-md) var(--space-lg);border-radius:var(--radius-xl);background:var(--grape-900);flex-direction:column;gap:6px;display:flex}.lane{align-items:center;gap:var(--space-md);grid-template-columns:92px 1fr 64px;height:40px;display:grid}.lane__name{font-size:var(--text-sm);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lane--you .lane__name{color:var(--accent);font-weight:800}.lane--ghost{opacity:.55}.lane__road{border-bottom:2px dashed var(--grape-700);height:100%;position:relative}.lane__road:after{content:"";background:repeating-conic-gradient(var(--ink) 0 25%, var(--grape-950) 0 50%) 0 0 / 8px 8px;border-radius:2px;width:8px;position:absolute;top:-3px;bottom:-5px;right:-4px}.racer{width:46px;height:28px;color:var(--racer,var(--accent));--x:0;bottom:2px;left:0;left:calc(var(--x) * (100% - 46px));transition:left .14s linear;position:absolute}.lane--you .racer{filter:drop-shadow(0 0 8px var(--accent))}.racer.is-finished{animation:bump .5s var(--ease-spring)}.lane__wpm{font-family:var(--font-display);font-size:var(--text-md);text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums}.lane__place{font-family:var(--font-display);color:var(--lemon)}.lights{gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--grape-950);border-radius:999px;display:flex;box-shadow:0 8px 24px #00000080}.lights__bulb{background:var(--grape-800);border-radius:50%;width:44px;height:44px;transition:background-color 80ms,box-shadow 80ms}.lights__bulb.is-red{background:var(--error);box-shadow:0 0 22px var(--error)}.lights.is-go .lights__bulb{background:var(--mint);box-shadow:0 0 22px var(--mint)}.race-intro{align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.race-source{text-align:right;font-size:var(--text-sm);color:var(--muted)}.race-warn{text-align:center;min-height:1.4em;font-size:var(--text-sm);color:var(--error);font-weight:600}.typing--race{height:auto;min-height:calc(var(--line-height) * 2);max-height:calc(var(--line-height) * 4)}@media (width<=640px){.lane{gap:var(--space-sm);grid-template-columns:64px 1fr 44px}.racer{width:36px;height:22px;left:calc(var(--x) * (100% - 36px))}}
