:root{--ink: #14150f;--ink2: #1c1d15;--bone: #f2ede0;--ochre: #e0b15e;--moss: #9aa06f;--signal: #ff5d3b;--dim: #8a8c7a;--mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", "Menlo", monospace;--disp: "Helvetica Neue", "Arial Narrow", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--ink);color:var(--bone);overflow:hidden;-webkit-user-select:none;user-select:none}canvas{display:block}.hud{position:fixed;z-index:5;pointer-events:none;font-family:var(--mono)}.tl{top:16px;left:18px}.tr{top:16px;right:18px;text-align:right}.bl{left:18px;bottom:16px}.br{right:18px;bottom:16px}.stats{left:18px;top:50%;transform:translateY(-50%);font-size:10px;color:#4a4c40}.kicker{font:600 10px/1 var(--mono);letter-spacing:.28em;color:var(--ochre);text-transform:uppercase}.chrono{font:300 46px/1 var(--disp);letter-spacing:-.02em;margin:6px 0 8px;font-variant-numeric:tabular-nums}.row{font:500 11px/1.6 var(--mono)}.row .lbl{color:var(--dim);text-transform:uppercase;letter-spacing:.1em}.row .val{color:var(--bone);margin-left:8px;font-variant-numeric:tabular-nums}.speedo{display:flex;align-items:baseline;justify-content:flex-end;gap:6px}.speedo .n{font:200 68px/.9 var(--disp);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.speedo .u{font:600 10px/1 var(--mono);letter-spacing:.22em;color:var(--dim);text-transform:uppercase}.fps{margin-top:6px;font:500 10px/1 var(--mono);color:#55574a;letter-spacing:.1em}.road{margin-top:6px;font:500 11px/1.4 var(--mono);color:var(--moss);letter-spacing:.06em;text-transform:uppercase;max-width:30ch}.road.off{color:var(--signal)}.cpwrap{display:flex;align-items:center;gap:14px}.arrow{width:62px;height:62px}.cpinfo{text-align:right}.cpinfo .lbl{font:600 9px/1 var(--mono);letter-spacing:.22em;color:var(--dim);text-transform:uppercase}.cpinfo .name{font:400 17px/1.2 var(--disp);margin:4px 0 2px;text-transform:uppercase}.cpinfo .dist{font:500 13px/1 var(--mono);color:var(--signal);font-variant-numeric:tabular-nums}.keys{font:500 10px/1.6 var(--mono);color:var(--dim)}.keys b{color:var(--bone);font-weight:700}.keys .link{pointer-events:auto;background:none;border:none;padding:0;color:var(--bone);font:700 10px/1.6 var(--mono);cursor:pointer}.attrib{margin-top:5px;font:500 9px/1.4 var(--mono);color:#55574a}.start{position:fixed;z-index:6;left:50%;top:62%;transform:translate(-50%);pointer-events:none;font:500 12px/1 var(--mono);letter-spacing:.1em;color:var(--bone);background:#14150fb8;border:1px solid #33352a;border-radius:999px;padding:11px 20px;text-transform:uppercase}.start b{color:var(--ochre)}.peers{list-style:none;margin:10px 0 0;padding:0;pointer-events:none}.peers li{display:flex;align-items:center;gap:8px;font:500 11px/1.6 var(--mono);color:var(--bone)}.peers i{width:8px;height:8px;border-radius:50%;flex:none}.peers .peer-time{margin-left:auto;color:var(--dim);font-variant-numeric:tabular-nums}.go-btn{pointer-events:auto;margin-top:10px;background:var(--ochre);color:var(--ink);border:none;border-radius:999px;padding:6px 14px;font:700 10px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}.go{position:fixed;z-index:7;left:50%;top:46%;transform:translate(-50%,-50%);pointer-events:none;font:200 120px/1 var(--disp);color:var(--bone);letter-spacing:-.04em}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-family:var(--mono)}.overlay h1{font:300 42px/1 var(--disp);text-transform:uppercase;letter-spacing:-.01em;margin:0}.overlay h1 b{font-weight:800}.overlay p{color:var(--dim);font-size:12px;margin:0}.overlay pre{background:var(--ink2);border:1px solid #33352a;border-radius:6px;padding:8px 14px;color:var(--ochre);font-size:12px}.editor{position:fixed;z-index:8;top:16px;left:18px;width:300px;max-height:calc(100vh - 32px);overflow:auto;pointer-events:auto;font-family:var(--mono);background:#14150fdb;border:1px solid #33352a;border-radius:10px;padding:14px 14px 12px}.editor .kicker{margin-bottom:8px}.editor-name{display:block;width:100%;margin:0 0 10px;padding:6px 0;background:transparent;border:none;border-bottom:1px solid #33352a;color:var(--bone);font:400 18px/1.2 var(--disp);text-transform:uppercase;letter-spacing:.02em;outline:none;-webkit-user-select:text;user-select:text}.editor-name:focus{border-bottom-color:var(--ochre)}.editor-list{list-style:none;margin:12px 0 8px;padding:0;max-height:38vh;overflow:auto}.editor-list li{display:flex;align-items:center;gap:4px;padding:3px 0;cursor:pointer}.editor-list li.on{background:#e0b15e14}.editor-list .n{width:18px;flex:none;font:600 10px/1 var(--mono);color:var(--ochre)}.editor-list input{flex:1;min-width:0;background:transparent;border:none;color:var(--bone);font:500 11px/1.4 var(--mono);outline:none;-webkit-user-select:text;user-select:text}.editor-list button,.editor-actions button,.editor-lib button{background:transparent;border:1px solid #33352a;color:var(--dim);font:600 10px/1 var(--mono);padding:4px 7px;border-radius:4px;cursor:pointer}.editor-list button:disabled{opacity:.3;cursor:default}.editor-list button.danger,.editor-lib button.danger{color:var(--signal);border-color:transparent}.editor-empty{color:var(--dim);font-size:11px;margin:8px 0}.editor-actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.editor-actions button.primary{color:var(--ink);background:var(--ochre);border-color:var(--ochre)}.editor-lib .lbl{color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-size:10px;margin-bottom:6px}.editor-lib .ghost{display:block;width:100%;text-align:left;color:var(--bone);margin-bottom:4px}.editor-lib .librow{display:flex;gap:4px;align-items:center}.editor-lib .librow .ghost{flex:1}.editor .keys{margin-top:12px}
