.lane-road{background-image:repeating-linear-gradient(90deg,transparent 0 28px,var(--border) 28px 48px,transparent 48px 76px);background-size:auto 2px;background-repeat:repeat-x;background-position-y:50%}
.lane-road:after{display:none}.lane-distance{margin-left:auto;font-size:10px}.lane-speed{position:absolute;bottom:3px;right:8px;font-size:10px;color:var(--muted);z-index:3}.lane-place{right:8px}
.race-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 0}.race-metrics>div:nth-child(4n){border-right:0}.passage-word.active-word{background:var(--primary-soft);border-radius:3px}.passage-word.skipped-word{text-decoration:line-through;color:var(--danger)}
@media(max-width:700px){.race-metrics b{font-size:19px}.race-metrics span{font-size:8px}.typing-hint{flex-wrap:wrap}.lane-speed{font-size:8px}.lane-distance{font-size:8px}}

/* One shared arcade scene; these styles do not affect garage or home previews. */
.arcade-track{--vehicle-width:112px;position:relative;padding:0;overflow:hidden;border:1px solid #306477;border-radius:18px;background:#071525;color:#edfaff;box-shadow:0 18px 45px #02152225}
.arcade-track .track-caption{display:flex;justify-content:space-between;gap:10px;padding:14px 20px;margin:0;background:#071321;color:#97c4d2;font-size:9px;letter-spacing:2px;border-bottom:1px solid #284252}
.track-scenery{position:relative;height:156px;overflow:hidden;background:radial-gradient(ellipse at 65% 100%,#1a4960 0,transparent 65%),linear-gradient(#071021,#152d44)}
.track-scenery:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,#c5e5ed 1px,transparent 1.5px),radial-gradient(circle,#8babbd 1px,transparent 1.5px);background-size:137px 91px,211px 73px;background-position:15px 12px,81px 25px;opacity:.55}
.track-moon{position:absolute;right:12%;top:19px;width:34px;height:34px;border-radius:50%;background:#e4f4ed;box-shadow:0 0 30px #b8e9ee38}
.track-hills{position:absolute;left:0;right:0;bottom:0;height:110px;background-repeat:repeat-x;background-size:500px 110px}
.track-hills-far{background-image:radial-gradient(ellipse at 20% 110%,#164c48 0 49%,transparent 50%),radial-gradient(ellipse at 75% 115%,#1c5950 0 53%,transparent 54%)}
.track-hills-near{height:80px;background-size:330px 80px;background-image:radial-gradient(ellipse at 25% 120%,#21704d 0 53%,transparent 54%),radial-gradient(ellipse at 85% 130%,#278455 0 54%,transparent 55%)}
.track-trees{position:absolute;inset:auto 0 15px;height:63px;background:repeating-conic-gradient(from 150deg at 50% 0,#155b40 0deg 60deg,transparent 60deg 360deg) 0 0/76px 63px}
.track-fence{position:absolute;inset:auto 0 0;height:39px;background:linear-gradient(transparent 7px,#badcd4 7px 11px,transparent 11px 24px,#92c5bc 24px 28px,transparent 28px),repeating-linear-gradient(90deg,transparent 0 62px,#d0e9dc 62px 68px,transparent 68px 90px);filter:drop-shadow(0 2px 2px #052e32)}
.track-sign{position:absolute;left:6%;bottom:42px;padding:5px 10px;border:2px solid #9ccab7;border-radius:4px;background:#113d3c;font-size:9px;letter-spacing:1.5px;color:#e8f4cb}
.track-barrier{height:15px;background:repeating-linear-gradient(90deg,#f2ece0 0 22px,#ed8954 22px 44px);border-top:3px solid #e6e3c1;border-bottom:3px solid #113a40;box-shadow:0 3px 6px #071c3260;position:relative;z-index:3}
.arcade-track .racetrack{position:relative;isolation:isolate;padding:9px 0;background:linear-gradient(90deg,#16494f,#1b6970 45%,#19565e);overflow:hidden;min-height:126px}
.arcade-track .start-line{position:absolute;z-index:0;top:0;bottom:0;left:0;width:26px;background:conic-gradient(#edf4ed 25%,#0c2534 0 50%,#edf4ed 0 75%,#0c2534 0) 0 0/26px 26px;opacity:.7}
.arcade-track .lane{position:relative;display:block;padding:0;margin:0;border:0;border-radius:0;background:transparent;min-width:0}
.arcade-track .lane.you{background:linear-gradient(90deg,#6eff8b0d,#6eff8b12,transparent);box-shadow:none}
.arcade-track .lane .lane-road{position:relative;height:100px;border:0;border-radius:0;margin:0;overflow:hidden;background-image:repeating-linear-gradient(90deg,#d2e9df70 0 46px,transparent 46px 106px);background-size:auto 2px;background-position-y:100%;background-repeat:repeat-x}
.arcade-track .lane:last-child .lane-road{background-image:none}
.arcade-track .lane .lane-road{background-color:transparent}
.arcade-track .moving-car{position:absolute;top:20px;left:0;width:var(--vehicle-width);transition:none;z-index:2;filter:drop-shadow(0 5px 3px #001b3790)}
.arcade-track .moving-car .car-svg{display:block;width:100%;height:auto}
.arcade-track .lane-label{position:absolute;z-index:3;left:16px;top:5px;right:16px;display:flex;align-items:center;gap:8px;min-width:0;font-size:11px;color:#e2f5f1;pointer-events:none}
.arcade-track .lane-label{flex-wrap:nowrap}
.arcade-track .lane-label b{width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:45%}
.arcade-track .lane-label .tag{background:#092c3c;color:#c2dadc;font-size:8px}
.arcade-track .you .lane-label b{color:#a1ffb2}
.arcade-track .you .lane-label b .tag{background:#7bea95;color:#08382b}
.arcade-track .lane-label .rank{color:#b9ddd9;font-size:9px}
.arcade-track .lane-label .rank img{width:16px;height:16px}
.arcade-track .lane-distance{margin-left:auto;color:#a9cfcd;font-size:10px}
.arcade-track .lane-place{position:absolute;right:17px;top:36px;width:auto;height:auto;background:#092f3d;border:1px solid #609a9650;color:#ecfaf3;border-radius:7px;padding:3px 9px;font-size:15px;z-index:3}
.arcade-track .lane-speed{bottom:9px;right:17px;color:#b7dcda;font-size:10px}
.track-barrier-bottom{height:11px;border-top-width:2px;border-bottom-width:2px}
.track-help{margin:0;padding:12px 18px;color:#9dc4d0;font-size:10px;line-height:1.6;background:#091c2c}
.arcade-track .lane .lane-road{height:124px}
.arcade-track .moving-car{top:36px}
.arcade-track .lane-meta{position:absolute;top:7px;left:14px;right:14px;z-index:3;display:flex;align-items:center;gap:8px;pointer-events:none}
.arcade-track .lane-meta .tag,.arcade-track .lane-meta .rank{background:#092c3c;color:#b9ddd9;font-size:9px}
.arcade-track .lane-meta .rank img{width:16px;height:16px}
.arcade-track .vehicle-label{position:absolute;bottom:calc(100% + 2px);left:-16px;width:calc(100% + 32px);display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid #528780;border-radius:6px;background:#092738ef;color:#e5f5f2;font-size:10px;line-height:1.2;box-shadow:0 2px 5px #00182440}
.arcade-track .vehicle-label:after{content:"";position:absolute;top:100%;left:50%;border:4px solid transparent;border-top-color:#528780}
.arcade-track .vehicle-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1}
.arcade-track .vehicle-label .lane-place{position:static;flex-shrink:0;padding:0;border:0;background:none;font-size:11px;color:inherit;border-radius:0}
.arcade-track .vehicle-self{font-size:7px;font-weight:800;flex-shrink:0}
.arcade-track .you .vehicle-label{background:#9bffad;border-color:#c9ffd1;color:#073b2b;box-shadow:0 0 12px #83ff9640}
.arcade-track .you .vehicle-label:after{border-top-color:#9bffad}
.arcade-track .you .arcade-car{filter:drop-shadow(0 0 4px #83ff9680)}
.arcade-track .forfeited .arcade-car{opacity:.5;filter:grayscale(.85)}
.arcade-track .forfeited .vehicle-label{background:#3c2630;border-color:#bc8893;color:#ffe1e6}
.arcade-track .forfeited .vehicle-label:after{border-top-color:#bc8893}
.arcade-track .moving-car[hidden],.arcade-track .opponent-edge[hidden]{display:none}
.arcade-track .opponent-edge{position:absolute;left:16px;top:51px;z-index:4;max-width:calc(100% - 32px);padding:8px 11px;border:1px solid #75b2ac;border-radius:8px;background:#082b3ef2;color:#e0f6f0;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 3px 8px #00182440}
.arcade-track .opponent-edge.ahead{left:auto;right:16px}
.arcade-track .forfeited .opponent-edge{border-color:#bc8893;color:#ffe1e6}
.arcade-track .track-hills-far{background-position-x:calc(var(--scenery-offset,0px)*.18)}
.arcade-track .track-hills-near{background-position-x:calc(var(--scenery-offset,0px)*.35)}
.arcade-track .track-trees{background-position-x:calc(var(--scenery-offset,0px)*.55)}
.arcade-track .track-fence{background-position-x:calc(var(--scenery-offset,0px)*.8)}
.arcade-track .track-barrier{background-position-x:var(--scenery-offset,0px)}
.arcade-track .track-sign{transform:translateX(calc(var(--scenery-offset,0px)*.8))}
.arcade-track .moving-car:before{content:"";position:absolute;pointer-events:none;right:calc(100% - 10px);top:38%;width:var(--trail-length,20px);height:25%;opacity:var(--trail-opacity,0);background-image:linear-gradient(90deg,transparent,#c0fff4),linear-gradient(90deg,transparent,#e2fff8),linear-gradient(90deg,transparent,#8ef3de);background-size:100% 2px,75% 1px,90% 2px;background-position:right top,right center,right bottom;background-repeat:no-repeat}
.arcade-track.scene-reduced-motion .moving-car:before{display:none}
.arcade-track .arcade-hud-top{position:absolute;top:57px;left:20px;right:20px;z-index:5;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none;font-variant-numeric:tabular-nums}
.hud-wpm{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid #366577;border-radius:10px;background:#071927df}
.hud-wpm>b{font-size:36px;font-style:italic;line-height:1;color:#ecfff2}
.hud-wpm>span{font-size:13px;font-weight:800;color:#a5eac9}.hud-wpm small{display:block;font-size:8px;color:#a3c6d0;font-weight:400}
.arcade-hud-top .race-clock{min-width:112px;padding:8px 12px;background:#071927df;border:1px solid #366577;border-radius:10px;text-align:right}
.arcade-hud-top .race-clock>span{font-size:30px;line-height:1;font-style:italic;color:#ecfff2}
.arcade-hud-top .race-clock small{color:#a3c6d0;font-size:9px;margin-top:4px;display:block}
.hud-place{text-align:center;padding:10px;background:#071927df;border:1px solid #366577;border-radius:10px}.hud-place b{display:block;font-size:19px;color:#a1ffb2}.hud-place small{font-size:8px;letter-spacing:1px;color:#a3c6d0}
.arcade-cockpit{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:16px;padding:14px 20px 10px;background:linear-gradient(135deg,#0b2539,#091b2d);border-bottom:1px solid #28495b}
.hud-gauge{position:relative;width:200px;color:#d2f4ed}.hud-gauge svg{display:block;width:100%}.hud-gauge text{fill:#96becb;font:8px monospace}
.gauge-value{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:baseline;justify-content:center;gap:5px;background:#0b2539;padding:1px 0;font-variant-numeric:tabular-nums}
.gauge-value b{font-size:18px;color:#b2ffcd;line-height:1}.gauge-value span{font-size:8px;letter-spacing:1px}
.arcade-track .hud-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 10px;margin:0;padding:0;border:0}
.arcade-track .hud-metrics>div{min-width:0;padding:0;border:0;text-align:left}
.arcade-track .hud-metrics b{font-size:19px;color:#e3f6f0;font-variant-numeric:tabular-nums;display:block;line-height:1.2}
.arcade-track .hud-metrics span{font-size:9px;color:#9bbdc9;display:block;margin-top:4px}
.arcade-track .arcade-typing{padding:20px;background:linear-gradient(135deg,#0b2435,#071b2c);border:0;border-top:1px solid #34556a;border-bottom:1px solid #34556a;border-radius:0;box-shadow:none;transition:none}
.arcade-typing .section-heading{margin-bottom:12px;gap:12px;flex-wrap:wrap}
.arcade-typing .section-heading h2{color:#c8e4e9;font-size:12px;letter-spacing:.6px;margin:0}
.arcade-typing .section-heading .tag{background:#173b4b;color:#bfdfd9;font-size:9px}
.arcade-typing .passage{font-family:Consolas,"Courier New",monospace;font-size:var(--typing-size,24px);line-height:1.85;max-height:148px;min-height:92px;padding:12px 14px 18px;overflow-y:auto;color:#bbd2dc;background:#051522;border:1px solid #2b5265;border-radius:9px;scrollbar-color:#376879 #071b2c;scroll-behavior:auto}
.arcade-typing .passage .correct{color:#93eeb0;background:#244d3d40}
.arcade-typing .passage .incorrect{color:#ffaaa8;background:#9d344c40;text-decoration:underline;text-decoration-color:#ff7c88;text-underline-offset:3px}
.arcade-typing .passage .active-word{background:#1f566260;border-radius:4px;box-shadow:0 2px 0 #80f0c0}
.arcade-typing .passage .skipped-word{color:#e395a4;text-decoration:line-through}
.arcade-typing .passage .cursor{border-left:2px solid #a2ffd0;background:#77e8bc20}
.typing-input-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 5px;color:#b8dfdc;font-size:10px;font-weight:650}
.typing-input-label span{font-weight:400;color:#8cabbc;font-size:9px}
.arcade-typing #typing-input{min-height:48px;max-height:96px;padding:10px 13px;background:#0c2d3e;color:#effff4;border:1px solid #42727b;border-radius:8px;font-family:Consolas,"Courier New",monospace;font-size:18px;caret-color:#a2ffd0;scroll-margin-top:15px;scroll-margin-bottom:24px}
.arcade-typing #typing-input::placeholder{color:#85a9b4;font-size:14px}
.arcade-typing #typing-input:focus{border-color:#99ffbe;box-shadow:0 0 0 2px #7ef4a624}
.arcade-typing #typing-input:disabled{opacity:.7}
.arcade-typing .typing-hint{padding:10px 0 0;align-items:center;flex-wrap:wrap;color:#a3c4ca;font-size:10px}
.arcade-typing .typing-hint .text-button{color:#a3ffbd;min-height:30px;flex-shrink:0;font-size:10px}
.arcade-typing .race-notice{padding:8px 0 0;text-align:left;font-size:10px;color:#91afb9}
.arcade-track .arcade-typing.mistake{transform:none;border-top-color:#ff8c9a}
.race-start-signal{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:16px;padding:10px 18px;border:1px solid #6a97a0;border-radius:12px;background:#071b2cf5;box-shadow:0 8px 25px #00152b80;pointer-events:none}
.signal-lights{display:flex;gap:8px}.signal-lights i{width:20px;height:20px;border:2px solid #476171;border-radius:50%;background:#172c3b}
.race-start-signal b{font-size:25px;color:#e1fff0;min-width:30px;text-align:center;font-variant-numeric:tabular-nums}
.race-start-signal[data-phase=red] .signal-red{background:#ff6f79;border-color:#ffc2c7;box-shadow:0 0 14px #ff6f7960}
.race-start-signal[data-phase=amber] .signal-amber{background:#ffd362;border-color:#ffecb9;box-shadow:0 0 14px #ffd36260}
.race-start-signal[data-phase=green] .signal-green{background:#84ffac;border-color:#d8ffe5;box-shadow:0 0 14px #84ffac60}
.race-finish-marker{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#06162950}
.race-finish-marker>span{position:absolute;top:0;bottom:0;left:62%;width:30px;background:conic-gradient(#ecf7ef 25%,#071d2c 0 50%,#ecf7ef 0 75%,#071d2c 0) 0 0/30px 30px}
.race-finish-marker>b{position:relative;padding:12px 24px;background:#071b2cef;border:1px solid #8dc9b2;border-radius:10px;color:#c8ffdb;font-size:22px}
.arcade-results{overflow:hidden;border:1px solid #396276;border-radius:18px;background:radial-gradient(ellipse at 50% 0,#164e51,transparent 65%),#081b2c;color:#e7f9f0;box-shadow:0 15px 40px #09223920}
.result-checkers{height:16px;background:conic-gradient(#ddf5e8 25%,#0a2433 0 50%,#ddf5e8 0 75%,#0a2433 0) 0 0/32px 32px}
.arcade-results .result-heading{padding:30px 22px 20px;margin:0;text-align:center}.arcade-results .result-heading h1{font-size:clamp(24px,3vw,36px);color:#d1ffdf}
.arcade-results .eyebrow{color:#92e1bd}.arcade-results .result-icon{background:#134b41;color:#b0ffca;border:1px solid #58a188;box-shadow:0 0 25px #67ffa41a}
.arcade-results .result-heading p{color:#a5cbd2;margin-bottom:0}.arcade-results .result-stars{color:#b0ffca}.arcade-results .result-stars.negative{color:#ff9da5}
.result-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 24px 24px}
.result-summary>div{min-width:0;padding:17px 10px;text-align:center;background:#0d2c3f;border:1px solid #386274;border-radius:10px}
.result-summary b{display:block;font-size:24px;color:#a6ffc5;font-variant-numeric:tabular-nums;line-height:1.3}.result-summary span{display:block;margin-top:6px;font-size:10px;color:#b5d4dd}
.result-board,.result-report{padding:20px 24px;border-top:1px solid #34556a}.result-board h2,.result-report h2{font-size:17px;color:#d1ebe7}
.arcade-results .table-wrap{margin:0;width:100%;overflow-x:auto;border:1px solid #34556a;border-radius:10px;scrollbar-color:#396778 #081b2c}
.arcade-results table{background:#0a2234;color:#e0f3ed;width:100%}.arcade-results th{background:#123648;color:#a3c9d4;border-color:#34556a}
.arcade-results td{border-color:#284c5d}.arcade-results tr.highlight{background:#194538}.arcade-results tr.highlight td:first-child{color:#a6ffbd;font-weight:800}
.arcade-results .avatar{background:#174759;color:#a0dfcf}.arcade-results .tag{background:#1e4555;color:#b7d6db}.arcade-results .rank{color:#afced4}
.arcade-results .table-player b{display:block;max-width:200px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.result-left{display:block;font-size:10px;color:#ffadb5}.result-forfeit{color:#c3aebc}.result-report p{color:#afd1d7;font-size:12px;line-height:1.8;margin:0}
.arcade-results .result-actions{padding:22px 24px;margin:0;border-top:1px solid #34556a;justify-content:center}
.arcade-results .button{background:#8bf4ad;color:#073a2b}.arcade-results .button.secondary{background:#123044;color:#c7e3e6;border-color:#426778}
@media(prefers-reduced-motion:reduce){.arcade-track .moving-car:before{display:none}}
@media(max-width:700px){
  .arcade-track{--vehicle-width:76px;border-radius:12px;padding:0}
  .arcade-track .track-caption{font-size:7px;letter-spacing:.7px;padding:11px 10px}
  .track-scenery{height:116px}.track-moon{width:25px;height:25px;top:12px}
  .arcade-track .lane .lane-road{height:112px}.arcade-track .moving-car{top:42px}
  .arcade-track .lane-label{left:10px;right:10px;gap:5px;font-size:10px}
  .arcade-track .lane-label .rank{font-size:8px}.arcade-track .lane-place{right:10px;top:34px;font-size:12px;padding:2px 6px}
  .arcade-track .lane-speed{right:10px;font-size:9px}.track-help{padding:10px;font-size:9px}
  .arcade-track .vehicle-label{left:-13px;width:calc(100% + 26px);font-size:8px;gap:3px;padding:4px}
  .arcade-track .vehicle-label .lane-place{font-size:9px}
  .arcade-track .vehicle-self{font-size:6px}
  .arcade-track .opponent-edge{font-size:9px;padding:7px 8px}
  .arcade-track .arcade-hud-top{top:48px;left:10px;right:10px;gap:5px}
  .hud-wpm{gap:5px;padding:7px}.hud-wpm>b{font-size:26px}.hud-wpm>span{font-size:10px}.hud-wpm small{font-size:7px}
  .arcade-hud-top .race-clock{min-width:85px;padding:7px}.arcade-hud-top .race-clock>span{font-size:23px}.arcade-hud-top .race-clock small{font-size:7px}
  .hud-place{padding:7px}.hud-place b{font-size:15px}.hud-place small{font-size:6px;letter-spacing:.5px}
  .arcade-cockpit{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:12px 10px}.hud-gauge{width:100px}
  .gauge-value b{font-size:13px}.gauge-value span{font-size:6px}
  .arcade-track .hud-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 6px}
  .arcade-track .hud-metrics b{font-size:14px}.arcade-track .hud-metrics span{font-size:8px}
  .arcade-track .arcade-typing{padding:14px 10px}
  .arcade-typing .passage{font-size:var(--typing-size,20px);max-height:136px;min-height:85px;padding:10px 9px 16px}
  .arcade-typing .section-heading h2{font-size:11px}.arcade-typing .section-heading .tag{font-size:8px}
  .arcade-typing .typing-hint{font-size:9px;gap:6px}
  .race-start-signal{padding:8px 12px;gap:10px;top:28px}.signal-lights i{width:16px;height:16px}.race-start-signal b{font-size:18px}
  .race-finish-marker>b{font-size:17px;padding:10px 16px}
  .arcade-results{border-radius:12px}.arcade-results .result-heading{padding:24px 14px 18px}
  .result-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 14px 18px;gap:9px}.result-summary b{font-size:22px}.result-summary>div{padding:13px 8px}
  .result-board,.result-report{padding:18px 14px}.arcade-results .result-actions{padding:18px 14px;gap:8px}
  .arcade-results .result-actions .button{font-size:11px}.arcade-results .table-player b{max-width:140px}
}

/* Bot races fill the browser viewport automatically, including the typing panel. */
body.bot-race-active{overflow:hidden}
.bot-race-screen{position:fixed;inset:0 0 auto;z-index:50;height:100dvh;display:grid;grid-template-rows:32px minmax(0,1fr);gap:6px;padding:6px;background:#061522;margin:0;min-width:0}
.bot-race-screen>.page-heading{display:none}
.bot-race-toolbar{display:flex;align-items:center;gap:16px;padding:0 8px;color:#bcebd5;font-size:12px}
.bot-race-toolbar b{margin-right:auto}.bot-race-toolbar .text-button,.bot-race-toolbar a{font-size:11px;color:#bcebd5;padding:4px 8px;border:1px solid #365a6c;border-radius:6px}
.bot-race-screen .arcade-track{height:100%;min-height:0;border-radius:10px;display:grid;grid-template-rows:clamp(64px,12dvh,110px) 6px minmax(0,1fr) 6px 68px clamp(200px,29dvh,230px)}
.bot-race-screen .track-caption,.bot-race-screen .track-help{display:none}
.bot-race-screen .track-scenery{height:auto;min-height:0}
.bot-race-screen .track-barrier{height:6px;border-width:1px 0}
.bot-race-screen .racetrack{min-height:0;padding:0;display:grid;grid-template-rows:repeat(var(--race-player-count),minmax(0,1fr))}
.bot-race-screen .lane{min-height:0}.bot-race-screen .lane .lane-road{height:100%;min-height:0}
.bot-race-screen .moving-car{top:var(--vehicle-top,24px)}
.bot-race-screen .vehicle-label{font-size:9px;padding:2px 5px;left:-10px;width:calc(100% + 20px)}
.bot-race-screen .vehicle-label .lane-place{font-size:9px}
.bot-race-screen .lane-meta{top:3px;left:8px;right:8px}.bot-race-screen .lane-meta>.tag,.bot-race-screen .lane-meta>.rank{display:none}
.bot-race-screen .lane-speed{bottom:3px;right:8px;font-size:9px}
.bot-race-screen .arcade-hud-top{top:8px;left:12px;right:12px}
.bot-race-screen .hud-wpm{padding:6px 10px}.bot-race-screen .hud-wpm>b{font-size:28px}
.bot-race-screen .hud-place{padding:5px 10px}.bot-race-screen .hud-place b{font-size:17px}
.bot-race-screen .race-clock{padding:5px 10px}.bot-race-screen .race-clock>span{font-size:26px}
.bot-race-screen .arcade-cockpit{min-height:0;padding:4px 12px;grid-template-columns:96px minmax(0,1fr);gap:12px}
.bot-race-screen .hud-gauge{width:96px}.bot-race-screen .gauge-value b{font-size:12px}
.bot-race-screen .hud-metrics{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.bot-race-screen .hud-metrics b{font-size:16px}.bot-race-screen .hud-metrics span{font-size:8px;margin-top:2px}
.bot-race-screen .arcade-typing{min-height:0;padding:8px 12px;display:grid;grid-template-rows:auto minmax(0,1fr) auto 42px auto;gap:4px;overflow:hidden}
.bot-race-screen .arcade-typing .section-heading{margin:0;flex-wrap:nowrap}
.bot-race-screen .arcade-typing .section-heading h2{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bot-race-screen .arcade-typing .passage{min-height:0;max-height:none;padding:6px 10px;font-size:var(--typing-size,21px);line-height:1.6}
.bot-race-screen .typing-input-label{margin:0}
.bot-race-screen .arcade-typing #typing-input{height:42px;min-height:0;max-height:none;padding:7px 10px}
.bot-race-screen .typing-hint{padding:0;gap:8px;flex-wrap:nowrap;font-size:9px}.bot-race-screen .typing-hint .text-button{min-height:20px}
.bot-race-screen .race-notice{display:none}
.bot-race-screen .opponent-edge{top:50%;transform:translateY(-50%);font-size:9px;padding:4px 8px}
@media(max-width:700px){
  .bot-race-screen .hud-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
  .bot-race-screen .hud-metrics b{font-size:12px}.bot-race-screen .hud-metrics span{font-size:7px}
  .bot-race-screen .arcade-cockpit{grid-template-columns:64px minmax(0,1fr);padding:3px 8px;gap:8px}.bot-race-screen .hud-gauge{width:64px}
  .bot-race-screen .arcade-typing{padding:6px 8px;grid-template-rows:auto minmax(0,1fr) auto 38px auto}
  .bot-race-screen .arcade-typing #typing-input{height:38px;font-size:16px}
  .bot-race-screen .typing-hint{font-size:8px;line-height:1.3}.bot-race-screen .typing-hint .text-button{font-size:9px}
  .bot-race-screen .vehicle-label{font-size:8px}.bot-race-screen .vehicle-label .lane-place{font-size:8px}
  .bot-race-screen #typing-rules,.bot-race-screen .typing-input-label span{display:none}
  .bot-race-toolbar{font-size:11px;gap:5px}.bot-race-toolbar .text-button,.bot-race-toolbar a{font-size:10px}
}
@media(max-height:550px){
  .bot-race-screen{grid-template-rows:26px minmax(0,1fr);padding:3px;gap:3px}
  .bot-race-screen .arcade-track{grid-template-rows:38px 4px minmax(0,1fr) 4px 36px 154px}
  .bot-race-screen .hud-gauge{width:48px}.bot-race-screen .arcade-cockpit{grid-template-columns:48px minmax(0,1fr);padding:3px 8px}
  .bot-race-screen .hud-metrics{grid-template-columns:repeat(7,minmax(0,1fr))}.bot-race-screen .hud-metrics b{font-size:11px}.bot-race-screen .hud-metrics span{font-size:7px}
  .bot-race-screen .arcade-typing{padding:4px 8px;gap:2px;grid-template-rows:auto minmax(0,1fr) auto 34px auto}
  .bot-race-screen .arcade-typing #typing-input{height:34px;padding:4px 8px}
  .bot-race-screen .arcade-typing .passage{font-size:min(var(--typing-size,21px),20px)}
  .bot-race-screen .vehicle-label{font-size:7px;padding:1px 3px}.bot-race-screen .lane-speed{font-size:7px;bottom:1px}
  .bot-race-screen .race-clock>span,.bot-race-screen .hud-wpm>b{font-size:17px}.bot-race-screen .hud-place b{font-size:13px}
  .bot-race-screen .race-clock,.bot-race-screen .hud-wpm,.bot-race-screen .hud-place{padding:2px 8px}
  .bot-race-screen .hud-place small,.bot-race-screen .race-clock small,.bot-race-screen .hud-wpm small{font-size:6px}
  .bot-race-screen #typing-rules,.bot-race-screen .typing-input-label span{display:none}
}
