html,body{margin:0;height:100%;overflow:hidden;background:#000}canvas{display:block;width:100vw;height:100vh;image-rendering:pixelated}#hud{position:fixed;top:8px;left:8px;white-space:pre;font:12px/1.4 monospace;color:#fff;text-shadow:1px 1px 0 #000;pointer-events:none}#attribution{position:fixed;right:0;bottom:0;padding:2px 6px;font:11px sans-serif;color:#333;background:#ffffffb3}#attribution a{color:inherit}#speed{position:fixed;left:16px;bottom:16px;font:700 28px/1 monospace;color:#fff;text-shadow:2px 2px 0 #000;pointer-events:none}#teleport{position:fixed;top:12%;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 32px));box-sizing:border-box;padding:14px;font:14px/1.4 monospace;color:#fff;background:#0a1018e0;border:2px solid #8aa4b8}#teleport label{display:block;margin-bottom:6px;font-weight:700}#teleport input{width:100%;box-sizing:border-box;padding:8px;font:inherit;color:#fff;background:#1b2633;border:1px solid #8aa4b8}#teleport .status{min-height:1.4em;margin-top:6px;color:#c8d6e2}#teleport ul{list-style:none;margin:4px 0;padding:0}#teleport button{width:100%;text-align:left;padding:6px 8px;margin:2px 0;font:inherit;color:#fff;background:#24323f;border:1px solid transparent;cursor:pointer}#teleport button:hover,#teleport button:focus{border-color:#ffd36a;outline:none}#teleport .hint{margin-top:6px;font-size:12px;color:#8aa4b8}#mission{position:fixed;top:8px;right:8px;max-width:min(360px,45vw);padding:8px 10px;white-space:pre-wrap;font:13px/1.45 monospace;color:#fff;background:#0a1018b3;border:2px solid #ffd36a;pointer-events:none}#mission.urgent{border-color:#ff5a4a}#mission-arrow{position:fixed;left:50%;bottom:20px;margin-left:-18px;width:36px;text-align:center;font:700 32px/1 monospace;color:#ffd36a;text-shadow:2px 2px 0 #000;pointer-events:none}#drift{position:fixed;top:30%;left:0;right:0;text-align:center;pointer-events:none;font:700 30px/1 monospace;color:#ffd36a;text-shadow:3px 3px 0 #000,-1px -1px 0 #000}#drift.flash{color:#7dffb0}#garage{position:fixed;top:50%;left:16px;transform:translateY(-50%);width:min(360px,calc(100vw - 32px));box-sizing:border-box;padding:14px 16px;font:14px/1.4 monospace;color:#fff;background:#0a1018e0;border:2px solid #ffd36a}#garage h1{margin:0 0 10px;font-size:20px;color:#ffd36a;letter-spacing:2px;text-transform:uppercase}#garage label,#garage .label{display:block;margin:10px 0 4px;font-weight:700}#garage input{width:100%;box-sizing:border-box;padding:8px;font:inherit;color:#fff;background:#1b2633;border:1px solid #8aa4b8}#garage .swatches{display:flex;flex-wrap:wrap;gap:6px}#garage .swatches button{width:26px;height:26px;padding:0;border:2px solid #0a1018;cursor:pointer}#garage .swatches button.selected{border-color:#ffd36a;box-shadow:0 0 0 1px #fff}#garage .cars{display:flex;flex-wrap:wrap;gap:6px}#garage .cars button{padding:6px 10px;font:inherit;color:#fff;background:#24323f;border:1px solid #3c5163;cursor:pointer}#garage .cars button.selected{border-color:#ffd36a;color:#ffd36a}#garage .details p{margin:8px 0;color:#c8d6e2;min-height:2.8em}#garage .stat{display:flex;align-items:center;gap:8px;margin:3px 0;font-size:12px}#garage .stat span{width:110px;flex:none}#garage .stat .bar{flex:1;height:8px;background:#1b2633;border:1px solid #3c5163}#garage .stat .bar div{height:100%;background:#ffd36a}#garage .go{display:block;width:100%;margin-top:12px;padding:10px;font:700 16px monospace;color:#0a1018;background:#ffd36a;border:none;cursor:pointer}#garage .go:hover,#garage .go:focus{background:#ffe39a;outline:none}#garage .hint{margin-top:6px;font-size:12px;color:#8aa4b8}#race{position:fixed;top:8px;left:50%;transform:translate(-50%);max-width:min(520px,60vw);padding:8px 12px;white-space:pre-wrap;text-align:center;font:13px/1.45 monospace;color:#fff;background:#0a1018c7;border:2px solid #ffffff;pointer-events:none}#race.mine{border-color:#7dffb0}#race-count{position:fixed;top:38%;left:0;right:0;text-align:center;pointer-events:none;font:700 72px/1 monospace;color:#fff;text-shadow:4px 4px 0 #000,-2px -2px 0 #000}#race-arrow{position:fixed;left:50%;bottom:60px;margin-left:-18px;width:36px;text-align:center;font:700 32px/1 monospace;color:#fff;text-shadow:2px 2px 0 #000;pointer-events:none}#race-setup{position:fixed;top:12%;left:50%;transform:translate(-50%);width:min(560px,calc(100vw - 32px));box-sizing:border-box;padding:14px;font:14px/1.4 monospace;color:#fff;background:#0a1018e6;border:2px solid #ffffff}#race-setup label{display:block;margin-bottom:4px;font-weight:700}#race-setup .sub{margin-bottom:8px;color:#c8d6e2;font-size:12px}#race-setup input{width:100%;box-sizing:border-box;padding:8px;font:inherit;color:#fff;background:#1b2633;border:1px solid #8aa4b8}#race-setup .random{display:block;width:100%;margin-top:8px;padding:8px;font:inherit;color:#0a1018;background:#fff;border:none;cursor:pointer}#race-setup .status{min-height:1.4em;margin-top:6px;color:#c8d6e2}#race-setup ul{list-style:none;margin:4px 0;padding:0}#race-setup ul button{width:100%;text-align:left;padding:6px 8px;margin:2px 0;font:inherit;color:#fff;background:#24323f;border:1px solid transparent;cursor:pointer}#race-setup ul button:hover,#race-setup ul button:focus{border-color:#ffd36a;outline:none}#race-setup .hint{margin-top:6px;font-size:12px;color:#8aa4b8}
