:root{--bg: #e0dbd0;--panel: rgba(247, 243, 237, .94);--card: rgba(255, 255, 255, .62);--ink: #1d1818;--muted: #6f6a64;--accent: #c8553d;--accent-soft: rgba(200, 85, 61, .1);--hl: #ebe4d9;--shadow: 0 1px 2px rgba(60, 50, 40, .1), 0 4px 14px rgba(60, 50, 40, .1);--glass: rgba(28, 23, 20, .8);--line: rgba(255, 244, 230, .12);--hud-ink: #f7f3ed;--hud-muted: #b8afa4;--hud-accent: #e9805f;--gold: #ffcc33;--green: #3ddc84;--red: #e8202a;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);overflow:hidden;font-size:15px;line-height:1.35}#map{position:fixed;inset:0}#overlay{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}canvas.pixel{position:absolute;left:0;top:0;pointer-events:none;z-index:1}canvas.pixel{image-rendering:pixelated;transform-origin:0 0}#map .openseadragon-canvas,canvas.pixel{transition:filter .8s}body.sunset #map .openseadragon-canvas{filter:saturate(1.15) contrast(1.04)}#map .openseadragon-canvas{background:var(--bg)!important}body.sunset canvas.fx,body.sunset canvas.cars{filter:sepia(.25) saturate(1.2) hue-rotate(-10deg)}#tint{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:multiply;display:none}body.sunset #tint{display:block;background:linear-gradient(180deg,#ffbe96,#ffe1be 60%,#fff0e1)}b{font-variant-numeric:tabular-nums}kbd{font:600 11px/1 system-ui,sans-serif;padding:2px 5px;border-radius:4px;background:#3c32281a}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.menu{position:fixed;left:24px;top:24px;max-height:calc(100dvh - 48px);box-sizing:border-box;z-index:10;width:min(380px,calc(100vw - 48px));padding:14px 18px 12px;overflow-y:auto;background:var(--panel);border-radius:14px;box-shadow:var(--shadow);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;flex-direction:column;gap:6px}.menu[hidden]{display:none}.menu header{display:grid;gap:8px}.menu .back{justify-self:start;padding:5px 12px;border-radius:999px;background:var(--card);box-shadow:var(--shadow);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}.menu .back:hover{color:var(--accent)}.menu h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.15}.menu h1 span{color:var(--accent)}.menu .tag{margin:2px 0 0;color:var(--muted);font-size:13px}.menu h2{margin:4px 0 0;font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.tcard{border-radius:12px;overflow:hidden;background:#fff;box-shadow:var(--shadow);flex:none}.tcard .hd{background:var(--accent);color:#fff;padding:6px 14px;font-size:11.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.tcard.flight .hd{background:#4a6fa5}.tcard img{display:block;width:100%;height:112px;object-fit:cover;image-rendering:pixelated;background:var(--hl)}.tcard .bd{padding:9px 14px 10px}.tcard h3{margin:0 0 6px;font-size:19px;line-height:1.15}.tcard .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:4px}.tcard .stats div{font-size:11px;color:var(--muted);font-weight:600}.tcard .stats b{display:block;font-size:17px;color:var(--ink)}.tcard .via{margin:6px 0 0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-height: 940px) and (min-width: 701px){.tcard img{height:72px}}@media (max-height: 780px) and (min-width: 701px){.tcard img,.tcard .via,.carnote,.menu .tag,.help{display:none}.tracks li{padding-top:2px;padding-bottom:2px}.tcard .bd{padding-top:7px;padding-bottom:7px}}.sq{width:20px;height:20px;flex:none;display:inline-grid;place-items:center;background:var(--c, var(--accent));outline:1.5px solid #2b1d16;box-shadow:2px 2px #0006;color:#fff}.sq svg.px{display:block;width:13px;height:13px;fill:currentColor}.sq.plane{--c: #4a6fa5}.tracks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.tracks li{display:flex;gap:10px;align-items:center;padding:4px 10px 4px 8px;border-radius:10px;background:var(--card);border:1.5px solid transparent;cursor:pointer}.tracks li:hover{background:#fff}.tracks li[aria-selected=true]{border-color:var(--accent);background:#fff}.tracks .nm{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracks .mt{margin-left:auto;color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.cars{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.cars button{padding:6px 4px 5px;border-radius:10px;border:1.5px solid transparent;background:var(--card);display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:700}.cars button[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft)}.cars .sw{width:34px;height:12px;border-radius:6px;box-shadow:inset 0 -4px 0 var(--acc, #fff),0 0 0 1px #0000001f}.carnote{margin:0;color:var(--muted);font-size:12px;text-align:center}.pair{display:grid;grid-template-columns:3fr 2fr;gap:10px}.pair>div{display:flex;flex-direction:column;gap:6px}.pair .levels{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.menu.flight .pair{grid-template-columns:1fr}.levels{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.levels button{padding:7px 4px;border-radius:999px;border:1.5px solid transparent;background:var(--card);font-weight:600;font-size:13px}.levels button[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.go{margin-top:4px;padding:12px;border:0;border-radius:999px;background:var(--accent);color:#fff;font-size:17px;font-weight:700;box-shadow:var(--shadow)}.go:hover{filter:brightness(1.06)}.go kbd{background:#0000002e;margin-left:6px;vertical-align:2px}.help{margin:0;color:var(--muted);font-size:11.5px;text-align:center}.hud[hidden]{display:none}.hud{color:var(--hud-ink)}.hud .box{position:fixed;z-index:10;background:var(--glass);border:1px solid var(--line);border-radius:10px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.hud span{color:var(--hud-muted);font-size:11px;letter-spacing:1.2px;font-weight:700}.pos{left:24px;top:24px;padding:4px 14px 6px}.pos b{font-size:44px;font-weight:800;letter-spacing:-1px}.pos span{font-size:22px;font-weight:700;color:var(--hud-muted);letter-spacing:0}.laps{left:24px;top:96px;padding:6px 14px;display:flex;gap:8px;align-items:baseline}.laps b{font-size:20px;font-weight:800}.times{left:24px;top:140px;padding:8px 14px;display:grid;gap:2px;min-width:170px}.times div{display:flex;justify-content:space-between;gap:14px;align-items:baseline}.times b{font-size:16px;font-weight:800}#gap.ahead{color:var(--gold)}#behrow b{color:var(--hud-accent)}#behrow[hidden]{display:none}.minimap{right:24px;top:24px;width:220px;height:220px}.speedo{right:24px;bottom:36px;padding:10px 16px 10px 14px;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:end;min-width:210px}.speedo .gear{grid-row:1;text-align:center;padding-right:14px;border-right:1px solid var(--line)}.speedo .gear b{display:block;font-size:34px;font-weight:800;color:var(--gold);line-height:1}.speedo>b{grid-row:1;grid-column:2;text-align:right;font-size:52px;font-weight:800;line-height:1;letter-spacing:-1px}.speedo>span{grid-row:2;grid-column:2;text-align:right}.rpm{grid-row:3;grid-column:1 / 3;margin-top:6px;height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.rpm i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--gold) 70%,var(--hud-accent))}.msg{position:fixed;left:50%;top:22%;transform:translate(-50%);z-index:11;pointer-events:none;white-space:nowrap;font-size:40px;font-weight:800;color:var(--hud-ink);text-shadow:0 2px 0 rgba(28,23,20,.9),0 0 16px rgba(28,23,20,.6);opacity:0;transition:opacity .25s}.msg.show{opacity:1}.msg.gold{color:var(--gold)}.tow{position:fixed;right:24px;bottom:150px;z-index:10;padding:5px 10px 6px;border-radius:8px;background:var(--glass);border:1px solid rgba(61,220,132,.6);color:var(--green);font-size:12px;font-weight:800;letter-spacing:1.2px;opacity:0;transition:opacity .2s;pointer-events:none}.tow.on{opacity:1}.tow i{display:block;margin-top:3px;height:3px;border-radius:2px;background:#ffffff1f;overflow:hidden}.tow b{display:block;height:100%;width:0;background:var(--green)}.lost{position:fixed;left:50%;top:30%;transform:translate(-50%);z-index:11;pointer-events:none;display:grid;justify-items:center;gap:2px;opacity:0;transition:opacity .3s;color:var(--hud-ink);text-shadow:0 2px 0 rgba(28,23,20,.9),0 0 16px rgba(28,23,20,.6)}.lost.show{opacity:1}.lost i{font-style:normal;font-size:46px;color:var(--gold);line-height:1}.lost b{font-size:26px;font-weight:800;letter-spacing:.5px}.lost small{font-size:13px;font-weight:700;color:var(--hud-muted)}.street{position:fixed;left:24px;bottom:36px;z-index:10;pointer-events:none;padding:7px 16px 7px 12px;color:var(--hud-ink);border-left:5px solid var(--accent);border-radius:4px 10px 10px 4px;background:var(--glass);font-size:16px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translate(-12px)}.street:empty{display:none}.street.fact{white-space:normal;max-width:min(520px,calc(100vw - 32px))}.street.fact b{display:block;font-size:19px}.street.fact small{display:block;margin-top:2px;font-size:13.5px;font-weight:600;font-style:normal;text-transform:none;letter-spacing:0;color:var(--hud-muted)}.street.fact.show{animation-duration:7s}.menu.flight .carpick,.hud.flying .laps{display:none}.hud.flying .times{top:88px}.street.show{animation:caption 4.2s ease-out forwards}@keyframes caption{0%{opacity:0;transform:translate(-12px)}8%{opacity:1;transform:none}85%{opacity:1;transform:none}to{opacity:0;transform:none}}.lights{position:fixed;left:50%;top:14%;transform:translate(-50%);z-index:12;display:flex;gap:14px;padding:14px 18px;background:#0b0b0d;border-radius:14px;border:2px solid #26272c;box-shadow:0 6px 24px #0009}.lights[hidden]{display:none}.lights i{width:46px;height:46px;border-radius:50%;background:#2a1414;box-shadow:inset 0 -4px 8px #0009}.lights i.on{background:radial-gradient(circle at 40% 35%,#ff8a80,#e8202a 55%,#8b0b10);box-shadow:0 0 22px #e8202ad9,inset 0 -4px 8px #00000059}.results{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:13;width:min(420px,calc(100vw - 32px));padding:18px 20px;background:var(--panel);border-radius:14px;box-shadow:var(--shadow);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.results[hidden]{display:none}.results h2{margin:0;font-size:24px;font-weight:700;letter-spacing:-.01em}.results p{margin:2px 0 12px;color:var(--muted)}.results ol{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:4px}.results li{display:grid;grid-template-columns:28px 10px 1fr auto;gap:8px;align-items:center;padding:6px 10px;border-radius:9px;background:var(--card);font-variant-numeric:tabular-nums}.results li small{color:var(--muted)}.results li.you{outline:1.5px solid var(--accent);background:var(--accent-soft);font-weight:700}.results li .p{font-weight:800}.results li .c{width:10px;height:22px;border-radius:3px;box-shadow:0 0 0 1px #0000001f}.results .actions{display:flex;gap:8px}.results .actions .go{flex:1;margin:0}.results .actions button:not(.go){padding:0 16px;border:0;border-radius:999px;background:var(--card);box-shadow:var(--shadow);font-weight:600}.results .actions a{display:grid;place-items:center;padding:0 14px;border-radius:999px;background:var(--card);box-shadow:var(--shadow);color:var(--ink);font-weight:600;font-size:14px;text-decoration:none}.attribution{position:fixed;right:0;bottom:0;z-index:9;padding:2px 10px;font-size:10px;color:var(--muted);background:#f7f3edb3;border-top-left-radius:8px}@media (max-width: 700px){.tcard img{height:84px}.menu{max-height:62vh;inset:auto 8px 8px;width:auto}.pos,.laps,.times{left:16px}.pos{top:16px}.laps{top:84px}.times{top:126px}.minimap{right:16px;top:16px}.speedo,.tow{right:16px}.street{left:16px}.minimap{width:130px;height:130px}.pos b{font-size:34px}.speedo>b{font-size:40px}}@media (pointer: coarse) and (max-height: 480px){.pos{left:10px;top:8px;padding:2px 10px 4px}.pos b{font-size:28px}.pos span{font-size:15px}.laps{left:10px;top:54px;padding:3px 10px}.laps b{font-size:15px}.times{left:10px;top:86px;padding:5px 10px;min-width:130px}.times b{font-size:13px}.minimap{right:10px;top:8px;width:110px;height:110px}.speedo{top:8px;bottom:auto;right:130px;padding:4px 10px;min-width:0;column-gap:8px}.speedo>b{font-size:30px}.speedo .gear b{font-size:20px}.speedo .gear{padding-right:8px}.tow{top:76px;right:130px}.street{display:none}.street.fact{display:block;inset:auto 260px 22px 190px;max-width:none;padding:5px 12px 6px 10px}.street.fact b{font-size:15px}.street.fact small{font-size:12px}.lost{top:31%;grid-template-columns:auto auto;column-gap:10px;align-items:center}.lost b{font-size:20px}.lost i{font-size:26px;grid-row:1 / 3}.lost small{grid-column:2}.msg{font-size:28px;top:26%}.touch{bottom:12px}}@media (prefers-reduced-motion: reduce){.msg{transition:none}.street.show{animation:none;opacity:1;transform:none}}.touch{position:fixed;left:0;right:0;bottom:34px;z-index:12;pointer-events:none;display:flex;justify-content:space-between;align-items:flex-end;padding:0 14px}.touch[hidden]{display:none}.touch .pad{display:flex;gap:10px;align-items:flex-end;pointer-events:auto}.touch .pad.right{flex-wrap:wrap;justify-content:flex-end;max-width:230px}.touch button{width:72px;height:72px;border-radius:50%;border:0;font-size:24px;font-weight:800;color:#fff;background:#1c171480;box-shadow:0 2px 6px #00000059;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch button.wide{width:auto;height:48px;padding:0 16px;border-radius:24px;font-size:14px}.touch button.small{width:48px;height:48px;font-size:20px}.touch button[aria-pressed=true]{background:#c8553de6}@media (pointer: coarse){.speedo{bottom:auto;top:16px;right:250px}.help{display:none}.street{bottom:auto;top:260px}.tow{bottom:auto;top:128px;right:250px}}@media (pointer: coarse) and (max-width: 700px){.speedo{top:156px;right:16px;min-width:0;padding:6px 10px;column-gap:10px}.speedo>b{font-size:34px}.speedo .gear b{font-size:24px}.speedo .gear{padding-right:10px}.times{min-width:150px}.tow{top:232px;right:16px}.street.fact{inset:auto 12px 196px;max-width:none;padding:6px 12px 7px 10px}.street.fact b{font-size:16px}.street.fact small{font-size:12.5px}}#map.crisp .openseadragon-canvas canvas,#map.crisp .openseadragon-canvas img{image-rendering:pixelated}@media (pointer: coarse){*{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.hud .box{background:#1c1714e0}}.menu .go{position:sticky;bottom:0;z-index:1}@media (pointer: coarse){.go kbd{display:none}}
