.race-page{--podium: #3e4462;height:100vh;height:100svh;min-height:620px;padding:18px 24px 24px;background:var(--bg);display:flex;flex-direction:column;gap:14px}.race-head{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center}.race-kicker{font-family:var(--pix);font-size:9px;color:var(--teal);margin:0 0 8px}.race-head h1{font-family:var(--pix);font-size:clamp(14px,1.8vw,26px);color:var(--amber);text-shadow:0 3px 0 var(--amber-shadow);margin:0;line-height:1.4}.race-code{border:3px solid var(--amber);padding:8px 16px;text-align:center;background:var(--panel);color:inherit;font:inherit;cursor:zoom-in}.race-code:hover,.race-code:focus-visible{box-shadow:0 0 0 3px var(--amber-shadow);outline:none}.race-code span{display:block;font-family:var(--pix);font-size:8px;color:var(--dim);margin-bottom:6px}.race-code b{font-family:var(--mono);font-weight:600;font-size:clamp(30px,3.2vw,48px);line-height:1;letter-spacing:.18em;color:var(--ink)}.race-stats{display:flex;gap:22px;margin:0}.race-stats dt{font-family:var(--pix);font-size:8px;color:var(--dim)}.race-stats dd{margin:4px 0 0;font-family:var(--vt);font-size:34px;color:var(--ink)}.race-demo{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-family:var(--vt);font-size:20px;color:var(--dim)}.race-demo .btn{font-size:8px}.race-demo select{background:var(--well);color:var(--ink);border:var(--border) solid var(--line);font-family:var(--vt);font-size:18px}.race-demo-tag{font-family:var(--pix);font-size:8px;color:var(--violet);border:var(--border) dashed var(--violet);padding:6px 8px;margin-right:auto}.race{flex:1;min-height:0;display:flex;flex-direction:column}.stations{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:12px;position:relative}.stations:before{content:"";position:absolute;left:4%;right:4%;top:38%;border-top:4px dashed var(--line);z-index:0}.station{position:relative;z-index:1;overflow:hidden;display:flex;flex-direction:column}.station-thumb{display:block;width:100%;aspect-ratio:256 / 144;image-rendering:pixelated;image-rendering:crisp-edges;background:#000}.station b{font-family:var(--pix);font-size:clamp(7px,.7vw,10px);line-height:1.5;color:var(--amber);padding:8px 10px 2px}.station-first{font-family:var(--vt);font-size:clamp(16px,1.2vw,22px);color:var(--green);padding:0 10px 8px;min-height:1.4em}.station.goal{border-color:var(--amber)}.goal-art{aspect-ratio:256 / 144;display:grid;place-items:center;font-size:clamp(36px,4vw,64px);color:var(--amber);background:var(--panel2);text-shadow:0 4px 0 var(--amber-shadow)}.crowd{position:relative;flex:1;min-height:0}.token{position:absolute;transform:translate(-50%) scale(var(--s, 1));transform-origin:top center;display:flex;flex-direction:column;align-items:center;transition:left 1.4s ease-in-out,top 1.4s ease-in-out,transform 1.4s ease-in-out;z-index:2}.sprite{width:36px;height:81px;image-rendering:pixelated;image-rendering:crisp-edges;animation:breathe 1.25s steps(2) infinite}.token:nth-child(3n) .sprite{animation-delay:-.4s}.token:nth-child(3n+1) .sprite{animation-delay:-.8s}@keyframes breathe{50%{transform:translateY(2px)}}.tag{font-family:var(--vt);font-size:21px;line-height:1;color:var(--ink);background:#080b16c7;padding:1px 4px;max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.token.moving{z-index:5}.token.moving .tag{color:var(--amber)}.token.on-podium .sprite{width:48px;height:108px}.token.on-podium .tag{color:var(--amber);font-size:23px;max-width:110px}.podium{position:absolute;width:calc(100% / var(--cols));display:grid;grid-template-columns:repeat(3,1fr);align-items:end;padding:0 8px;z-index:1}.podium .step{background:var(--podium);border:var(--border) solid var(--line);font-family:var(--pix);font-size:10px;color:var(--amber);text-align:center;padding-top:4px}.ticker{padding:12px 16px}.ticker h2{font-family:var(--pix);font-size:8px;color:var(--teal);margin:0 0 8px}.ticker ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));grid-auto-rows:1.35em;max-height:calc(2.7em + 4px);overflow:hidden;gap:4px 24px;font-size:clamp(18px,1.3vw,24px)}.tick{font-family:var(--vt);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:tick-in .5s ease-out}.tick time{color:var(--dim);margin-right:6px}.tick.first{color:var(--green)}.tick.finish{color:var(--amber)}.tick.witness{color:var(--violet)}.tick.join{color:var(--dim)}@keyframes tick-in{0%{opacity:0;transform:translateY(-6px)}}.code-dialog{padding:0;border:none;background:none;max-width:none;max-height:none;overflow:visible;cursor:zoom-out}.code-dialog::backdrop{background:#03040adb}.code-big{border:6px solid var(--amber);background:var(--panel);box-shadow:0 12px 0 var(--void);padding:4vh 5vw;text-align:center;cursor:default}.code-big span{display:block;font-family:var(--pix);font-size:clamp(10px,1.3vw,20px);color:var(--teal);margin-bottom:3vh}.code-big b{display:block;font-family:var(--mono);font-weight:600;font-size:clamp(64px,14vw,240px);line-height:1;letter-spacing:.12em;color:var(--ink)}.code-big small{display:block;margin-top:3vh;font-family:var(--vt);font-size:clamp(22px,2vw,36px);color:var(--amber)}
