:root{color-scheme:dark;--ink:#e8edf2;--muted:#91a4b4;--line:#304352;--accent:#88e6df;--gutter:16px;--chrome:250px}
*{box-sizing:border-box}body{margin:0;background:#090f15;color:var(--ink);font:13px/1.5 Arial,"Malgun Gothic",sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit;background:#172530;border:1px solid var(--line);border-radius:4px;min-height:40px;padding:8px 12px;white-space:nowrap}button:hover{background:#283d4c}button:disabled{opacity:.42;cursor:default}button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button,input,summary{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}
header{height:52px;border-bottom:1px solid #21313f;display:flex;align-items:center;gap:20px;padding:0 max(var(--gutter),calc((100vw - 1600px)/2));background:#101a23}.identity{display:flex;align-items:center;gap:18px}.identity>b{font:900 18px monospace;letter-spacing:-.04em;color:var(--accent)}.identity>span{color:var(--muted);font:10px monospace;letter-spacing:.06em}.identity em{font-style:normal;color:#c3d4df;padding-left:12px}.build-tag{margin-left:auto;font:10px monospace;color:#78909f}#fullscreen{min-width:40px;padding:0;font-size:25px;background:transparent;border-color:transparent}
main{width:min(calc(100% - var(--gutter)*2),1600px,calc((100dvh - var(--chrome))*16/9));margin:14px auto 0;min-width:0}.screen-shell.wide{position:relative;width:100%;aspect-ratio:16/9;background:#000;border:1px solid #435764;box-shadow:0 8px 30px #0006;isolation:isolate}#screen{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto}.screen-shell>div{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:clamp(12px,3vw,28px);background:radial-gradient(ellipse at 50% 25%,#1a3b4d,#0b111bf0 80%)}.overline{font:10px monospace;letter-spacing:.16em;color:#77d0de}h1{font-size:clamp(22px,3vw,42px);line-height:1.2;margin:16px 0 8px;letter-spacing:-.05em}h2{margin:0 0 18px}#loading-panel p{color:#a6bbce;font-size:12px;margin:8px 0}#progress{min-height:18px}#load-progress{width:min(280px,80%);height:6px;accent-color:var(--accent);margin:14px 0}#load-progress::-webkit-progress-bar{background:#263c4c}#load-progress::-webkit-progress-value{background:var(--accent)}#error-panel{background:#1c1119ee}#error{font:11px/1.5 monospace;color:#ffadb2;text-align:left;white-space:pre-wrap;overflow:auto;max-height:60%;max-width:100%}
.race-dock{border:1px solid var(--line);border-top:0;background:#101b24;padding:10px 12px}.console{display:flex;align-items:center;justify-content:space-between;gap:16px}.start-actions,.view-actions{display:flex;align-items:center;gap:7px;min-width:0}.start-actions button{font-size:12px}#start{background:var(--accent);color:#102633;border-color:var(--accent);font-weight:700;min-width:140px}#start:disabled{background:#27444d;color:#9db3bd;border-color:#27444d}#online-toggle{border-color:#517786}.camera-label{color:var(--muted);font:9px monospace;letter-spacing:.08em;margin-right:4px}.view-actions button{width:36px;min-height:36px;padding:0;color:#c8d9e3}.view-actions kbd{border:0;background:none;margin:0;font-size:12px;padding:0;color:inherit}kbd{font:10px monospace;background:#0b141b;border:1px solid #3d5666;border-radius:3px;padding:2px 4px;margin-right:4px;color:#a6eae8}#start kbd{color:#bffbff}
.keyboard-controls{display:flex;align-items:center;gap:12px;min-height:30px;margin-top:8px;padding-top:8px;border-top:1px solid #263c49;color:var(--muted);font-size:10px;min-width:0}.keyboard-controls>b{font:9px monospace;color:var(--accent);letter-spacing:.08em}#drive-state{font-weight:700;min-width:58px;color:#bdcad4}#drive-state[data-mode=gas]{color:#92f1ca}#drive-state[data-mode=brake]{color:#ffb09e}.steering-readout{display:flex;align-items:center;gap:6px;color:#8fa5b4}.steering-readout i{position:relative;display:block;width:84px;height:4px;background:#2c4658;border-radius:2px}.steering-readout i:before{content:'';position:absolute;left:50%;top:-3px;height:10px;border-left:1px solid #5d7b8d}#steer-marker{position:absolute;left:50%;top:-2px;transform:translateX(-50%);width:8px;height:8px;background:var(--accent);border-radius:50%}.keyboard-hint{margin-left:auto}.keyboard-hint kbd{font-size:9px}
.touch{display:none;justify-content:space-between;gap:18px;margin-top:10px}.touch>div{display:flex;gap:8px}.touch button{touch-action:none;user-select:none;min-width:58px;height:48px}.touch [data-key=ArrowUp]{background:#325c5b;border-color:#6baaa5}
.preferences{margin-top:10px;border:1px solid #263945;border-radius:4px;background:#0e1820;color:var(--muted);font-size:12px}.preferences>summary{padding:10px 12px;color:#adbdc8;cursor:pointer;min-height:38px}.preferences>summary span{float:right;color:#718a9a;font-size:10px}.preferences[open]>summary{border-bottom:1px solid #263945}.settings{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;padding:14px}.settings label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:11px}.settings input{accent-color:var(--accent)}.display-mode{color:#a4c9d4;font-size:11px}#telemetry{margin-left:auto;font:10px monospace;color:#80a9b6}.controls{font-size:11px;line-height:2.2;margin:0;padding:0 14px 14px}.preferences details{margin:0 14px;border-top:1px solid #263945;padding:10px 0}.preferences details summary{cursor:pointer;color:#9eb3c1}.preferences details p{max-width:850px;font-size:11px}a{color:#93dcd8}footer{text-align:center;color:#496271;font:9px monospace;letter-spacing:.1em;padding:12px 16px 16px}
.online-panel{margin:10px 0 0;padding:14px;border:1px solid #3a5668;background:#142330;border-radius:4px}.online-heading,.room-heading,.room-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.online-heading{justify-content:space-between}.online-heading h2{font-size:15px;margin:0}.online-heading span{font-size:11px;color:#8de1df}.room-entry{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:14px}.room-entry label{display:flex;flex-direction:column;font-size:11px;color:#a7b8c6;gap:5px}.room-entry input{color:var(--ink);background:#0b141c;border:1px solid #3c586c;border-radius:4px;padding:9px;max-width:170px;min-height:40px}#room-code{text-transform:uppercase;width:130px;letter-spacing:.12em}.room-heading{margin:12px 0}.room-heading strong{margin-right:auto;font:700 14px monospace;color:var(--accent)}.room-heading button{font-size:11px;min-height:32px;padding:5px 8px}.room-players{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0;list-style:none}.room-players li{display:flex;flex-direction:column;gap:6px;min-height:70px;background:#0b151f;border:1px solid #293b4d;padding:10px;overflow-wrap:anywhere}.room-players strong{font-size:12px}.room-players span{font-size:11px;color:#7f94a5}.room-players [data-ready=true]{border-color:#68babb}.room-players [data-ready=true] span{color:var(--accent)}.room-actions button{min-width:110px}#room-launch{background:var(--accent);color:#102633}.online-help{font-size:11px;color:#91a8ba}#online-error{color:#ffb3ae;font-size:12px}
html:fullscreen body{--chrome:166px}html:fullscreen header{display:none}html:fullscreen main{margin-top:12px}html:fullscreen footer{display:none}
@media(max-width:760px){:root{--gutter:10px;--chrome:250px}header{height:44px;gap:10px}.identity{gap:10px}.identity>b{font-size:16px}.identity>span{font-size:8px}.identity em{padding-left:6px}.build-tag{display:none}#fullscreen{margin-left:auto;min-height:36px}main{margin-top:10px}.race-dock{padding:8px}.console{flex-wrap:wrap;gap:8px}.start-actions{flex:1 1 100%;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:6px}.start-actions button{padding:7px 5px;font-size:11px;min-height:38px}#start{min-width:0}.view-actions{width:100%;justify-content:flex-end;gap:6px}.camera-label{margin-right:auto}.view-actions button{width:34px;min-height:30px}.keyboard-controls{gap:8px;margin-top:7px;font-size:10px}.keyboard-controls>b{font-size:8px}.keyboard-hint{font-size:9px}.keyboard-hint kbd{font-size:8px}.steering-readout i{width:60px}.preferences{margin-top:8px}.preferences>summary{font-size:11px}.room-players{grid-template-columns:repeat(2,minmax(0,1fr))}.room-entry{display:grid;grid-template-columns:1fr auto}.room-entry input{max-width:100%;width:100%}.room-heading strong{width:100%}.online-heading{align-items:flex-start;flex-direction:column}.settings{gap:10px 14px}.display-mode{width:100%}footer{padding:10px;font-size:8px}}
@media(max-width:420px){.identity em{display:none}.keyboard-hint{display:none}.keyboard-controls .steering-readout{margin-left:auto}.preferences>summary span{font-size:9px}.start-actions kbd{display:none}}
@media(pointer:coarse) and (hover:none){:root{--chrome:282px}.touch{display:flex}}
@media(max-height:500px) and (orientation:landscape){:root{--chrome:82px;--gutter:8px}header,footer,.preferences{display:none}main{margin-top:8px}.race-dock{padding:6px 8px}.console{flex-wrap:nowrap;gap:10px}.start-actions{display:flex;flex:initial}.start-actions button{min-height:32px}.view-actions{width:auto}.view-actions button{min-height:30px;width:30px}.camera-label,.keyboard-controls{display:none}.touch{margin-top:6px}.touch button{height:38px;min-width:48px}}
@media(max-height:500px) and (orientation:landscape) and (pointer:coarse) and (hover:none){:root{--chrome:132px}}

header{padding:0}.header-inner{width:min(calc(100% - var(--gutter)*2),1600px,calc((100dvh - var(--chrome))*16/9));height:100%;margin:auto;display:flex;align-items:center;gap:20px}@media(max-width:760px){.header-inner{gap:10px}}
@media(max-height:500px) and (orientation:landscape){html:fullscreen body{--chrome:82px}}

.view-actions button[aria-pressed=true],#online-toggle[aria-expanded=true]{border-color:var(--accent);background:#294746;color:#bcfff5}

.view-actions #fullscreen{margin:0;min-width:34px;width:34px;min-height:32px;font-size:21px;color:var(--muted)}
.journal-link{margin-left:auto;color:#a4d9d4;text-decoration:none;font-size:11px;white-space:nowrap}.journal-link:hover{text-decoration:underline}
.journal{margin-top:20px;padding:20px;border:1px solid #304957;border-radius:5px;background:#0e1922;scroll-margin-top:14px;outline:none}.journal-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.journal-heading h2{font-size:23px;margin:5px 0 4px}.journal-heading p{margin:0;color:#93aab9;font-size:12px}.journal-heading>button,.journal-form button[type=submit]{background:#89e5df;color:#112c30;border-color:#89e5df;font-weight:700}.journal h3{font-size:17px;margin:18px 0 12px}.journal button{white-space:normal}.journal button:disabled{cursor:wait}.journal-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0 12px}.journal-tabs{display:flex;gap:5px}.journal-tabs button{font-size:11px;min-height:36px;padding:6px 10px}.journal-tabs [aria-pressed=true]{border-color:#8be2dc;background:#284644;color:#c8fff6}.journal-filter{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:11px;color:#9ab0bf}.journal input,.journal select,.journal textarea{font:inherit;color:#e4edf4;border:1px solid #3e586a;background:#09141d;border-radius:4px;min-height:40px;padding:9px;max-width:100%}.journal select{cursor:pointer}.journal textarea{width:100%;resize:vertical;line-height:1.6}.journal label{display:flex;flex-direction:column;gap:6px;color:#afc2d1;font-size:12px}.journal .journal-filter{flex-direction:row}.journal-form{padding:16px;margin:15px 0;background:#142530;border:1px solid #34505f;border-radius:4px}.journal-form[aria-busy=true]{opacity:.7}.journal-form h3{margin-top:0}.journal-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.journal-fields .field-title{grid-column:span 2}.journal-form>label{margin:12px 0}.journal-help,.journal-form small{display:block;font-size:11px;color:#8faaba;line-height:1.6;margin:10px 0}.journal-actions{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.journal-actions button{font-size:11px;min-height:34px}.record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.record-card{min-width:0;position:relative;background:#101f2a;border:1px solid #294352;border-radius:4px;padding:15px;overflow-wrap:anywhere}.record-card>button{display:block;text-align:left;background:transparent;border:0;padding:0;font-size:15px;color:#caeee9;font-weight:700;min-height:30px;line-height:1.5}.record-meta{font-size:11px;color:#90a7b7;margin:8px 0;overflow-wrap:anywhere}.record-time{display:block;font:700 21px monospace;color:#a5eece;margin:10px 0}.record-preview,.comment-text,.record-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.record-preview{font-size:12px;color:#b6c7d1;margin:8px 0}.record-count{font-size:10px;color:#78a5af}.journal-empty{grid-column:1/-1;text-align:center;color:#8ea8b8;padding:28px 12px;border:1px dashed #36505f;border-radius:4px;font-size:12px}#journal-status{min-height:20px;color:#89adb8;font-size:11px;margin:13px 0 0}#journal-status[data-error=true]{color:#ffb3a6}#journal-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#21423f;color:#bef1d8;padding:10px 12px;font-size:12px;margin-top:10px}#journal-notice button{min-height:30px;padding:4px 8px;font-size:11px}#record-detail{margin-top:18px}#record-body{padding:16px;border:1px solid #365363;background:#111f29;border-radius:4px}#record-body h3{font-size:21px;margin:0 0 12px;overflow-wrap:anywhere}.record-content{font-size:13px;margin-bottom:0}#comment-form{display:grid;grid-template-columns:minmax(120px,.4fr) 1fr;gap:12px;align-items:start}#comment-form>label{margin:0}#comment-form button{grid-column:2;justify-self:end}.comment-card{border-bottom:1px solid #2e4655;padding:12px 2px}.comment-text{font-size:13px}.comment-card .journal-form{margin-bottom:4px}#records-more,#comments-more{display:block;margin:14px auto 0}.journal-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid #8c6053;background:#392a27;padding:10px;color:#ffcebc;font-size:12px;margin-top:10px}.journal-confirm button{min-height:32px;font-size:11px}
@media(max-width:650px){.journal{padding:14px;margin-top:16px}.journal-heading{align-items:flex-start}.journal-heading h2{font-size:20px}.journal-heading p{font-size:11px}.journal-heading>button{font-size:11px;min-width:86px;padding:8px}.journal-toolbar{gap:8px}.journal-tabs{width:100%}.journal-tabs button{flex:1}.journal-filter{margin-left:0;flex:1}.journal-filter select{flex:1}.record-list{grid-template-columns:1fr}.journal-fields{grid-template-columns:1fr 1fr}.journal-fields .field-title{grid-column:1/-1}.journal-fields label:first-child{grid-column:1/-1}.journal-form{padding:12px}.journal input,.journal textarea,.journal select{font-size:16px}#comment-form{grid-template-columns:1fr}#comment-form button{grid-column:1}.journal-link{font-size:10px}.journal-heading .overline{font-size:9px}.record-meta{font-size:10px}}
.checkin-board .journal-heading{align-items:center}.checkin-board .journal-heading h2{margin:0 0 5px;font-size:22px}.checkin-today{font-size:10px;color:#9dcfc3;white-space:nowrap}.checkin-form{display:grid;grid-template-columns:140px minmax(0,1fr) auto;grid-template-areas:'name memo actions';gap:10px;align-items:end;margin:18px 0 6px}.checkin-form>label:first-child{grid-area:name}.checkin-memo{grid-area:memo}.checkin-form-actions{grid-area:actions;display:flex;gap:6px}.checkin-form input{width:100%;min-width:0}.checkin-form #checkin-submit{background:#88e5db;border-color:#88e5db;color:#102f2d;font-weight:700;min-height:40px}.checkin-list-heading{display:flex;align-items:center;justify-content:space-between;margin-top:20px;border-bottom:1px solid #2c4351;padding-bottom:10px}.checkin-list-heading h3{font-size:13px;margin:0;color:#a9bcc9}.checkin-list-heading button{font-size:10px;min-height:28px;padding:4px 8px;background:transparent}.checkin-entry{padding:14px 0;border-bottom:1px solid #293f4d}.checkin-entry-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}.checkin-entry-heading strong{color:#c6e8e1;overflow-wrap:anywhere}.checkin-entry-heading time{font-size:10px;color:#86a0b0;margin-left:auto}.checkin-badge{font-size:9px;color:#9bd6be;border:1px solid #345b50;border-radius:3px;padding:1px 5px}.checkin-message{font-size:13px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0 4px}.checkin-entry>.journal-actions{margin:5px 0;gap:5px}.checkin-entry>.journal-actions button{background:transparent;min-height:26px;padding:2px 6px;font-size:10px;border-color:#2c4553}.checkin-comments,.checkin-legacy{font-size:11px;color:#91b7bd;margin-top:8px}.checkin-comments>summary,.checkin-legacy>summary{cursor:pointer;padding:4px 0}.checkin-comments[open]{padding:8px 10px;background:#12242e;border-radius:4px}.checkin-reply{padding:8px 0;border-bottom:1px solid #2a414f}.checkin-reply .comment-text{margin:6px 0;font-size:12px}.checkin-reply .journal-actions{margin:5px 0}.checkin-reply .journal-actions button{font-size:10px;min-height:26px;padding:3px 7px}.checkin-reply-form{display:flex;align-items:flex-end;gap:8px;margin-top:10px}.checkin-reply-form textarea{flex:1;min-width:0;font-size:12px}.checkin-reply-form button{font-size:11px;white-space:nowrap}.checkin-board>.journal-help{font-size:10px;margin:14px 0 0}.checkin-legacy p{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:650px){.checkin-form{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'name actions' 'memo memo';gap:10px}.checkin-board .journal-heading h2{font-size:20px}.checkin-today{font-size:9px}.checkin-reply-form{flex-wrap:wrap}.checkin-reply-form textarea{flex-basis:100%}.checkin-entry-heading{gap:7px}.checkin-form-actions button{font-size:12px}.checkin-entry-heading time{font-size:9px}}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.journal.checkin-board{margin-top:12px;padding:0;border:0;background:none;box-shadow:none}.checkin-board .checkin-form.checkin-inline{display:grid;grid-template-columns:clamp(80px,24%,140px) minmax(0,1fr) 40px;grid-template-areas:none;align-items:center;gap:6px;margin:0}.checkin-inline>input{grid-area:auto;min-width:0;width:100%;height:40px;margin:0;font-size:13px;padding:9px 10px}.checkin-inline>input::placeholder{color:#718595;opacity:1}.checkin-inline #checkin-submit{display:grid;place-items:center;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;background:#18303b;border:1px solid #385c69;color:#9acacb;border-radius:4px}.checkin-inline #checkin-submit:hover{color:#c5ffed;border-color:#8bd7ce;background:#24434a}.checkin-inline #checkin-submit svg{display:block;pointer-events:none}.checkin-cancel{font-size:10px;min-height:28px;padding:3px 7px;margin-top:6px}.checkin-list:empty{display:none}.checkin-board .checkin-list{margin-top:8px}.checkin-board .checkin-list:empty{margin-top:0}@media(max-width:650px){.checkin-inline>input{font-size:16px}.checkin-board .checkin-form.checkin-inline{grid-template-columns:clamp(80px,24%,120px) minmax(0,1fr) 40px;grid-template-areas:none;gap:6px}}
.checkin-board .checkin-entry,.checkin-board .checkin-reply{padding:4px 0}.checkin-line{display:flex;align-items:center;gap:7px;min-height:28px;min-width:0}.checkin-name{flex:0 0 clamp(48px,16%,100px);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#c6e8e1}.checkin-line>.checkin-message{flex:1 1 0;min-width:0;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;text-overflow:clip;margin:0;font-size:12px;line-height:24px;overflow-wrap:normal}.checkin-message::-webkit-scrollbar{display:none}.checkin-message:focus-visible{outline:1px solid #456b79;outline-offset:1px}.checkin-date{flex:0 0 auto;white-space:nowrap;font:9px monospace;color:#7e98a9}.note-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto}.checkin-board .note-icon{display:inline-grid;place-items:center;flex:0 0 24px;width:24px;min-width:24px;height:26px;min-height:26px;border:0;border-radius:3px;padding:4px;background:transparent;color:#799ba7}.checkin-board .note-icon:hover{background:#1b343e;color:#b9eee3}.note-icon svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.checkin-entry>.checkin-comments,.checkin-entry>.checkin-legacy{margin:0;padding:0;background:transparent}.checkin-entry>.checkin-comments[open]{padding:7px 0 4px 12px}.checkin-entry>.checkin-legacy[open]{padding:6px 10px}.checkin-reply-form{display:flex;flex-wrap:nowrap;gap:6px}.checkin-reply-form input{flex:1;min-width:0;font-size:12px;min-height:34px;height:34px;padding:6px 8px}.checkin-board .checkin-reply-form>.note-icon{width:32px;height:34px;min-height:34px;flex-basis:32px;border:1px solid #304e5b}.checkin-reply .checkin-name{flex-basis:clamp(45px,16%,90px)}
@media(max-width:650px){.checkin-line{gap:5px}.checkin-name{flex-basis:clamp(45px,15%,75px);font-size:10px}.checkin-line>.checkin-message{font-size:11px}.checkin-date{font-size:8px}.checkin-board .note-icon{width:22px;min-width:22px;flex-basis:22px;padding:3px}.note-actions{gap:0}.checkin-reply-form input{font-size:16px}}
