:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sky:#9cc8ee;--panel:#0e1014d1;--panel-edge:#ffffff14;--ink:#eceae4;--muted:#9a9ca3;--amber:#ffb347;--ok:#5fd68a;--danger:#ff5a4d;--mono:"B612 Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--sans:system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Yu Gothic", sans-serif}*{box-sizing:border-box}html,body{background:var(--sky);height:100%;color:var(--ink);font-family:var(--sans);margin:0;overflow:hidden}canvas{display:block}#hud{pointer-events:none;position:fixed;inset:0}#hud [hidden]{display:none!important}.panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;padding:12px 14px;position:absolute}.tooltip{max-width:360px;color:var(--ink);white-space:nowrap;background:#0a0b0ee6;border:1px solid #ffb34766;border-radius:6px;padding:6px 10px;font-size:13px;line-height:1.5;position:fixed}.readout{gap:2px;min-width:190px;font-size:13px;display:grid;bottom:16px;left:16px}.readout div{justify-content:space-between;gap:14px;display:flex}.readout span{color:var(--muted)}.readout b{font-family:var(--mono);color:var(--amber);font-variant-numeric:tabular-nums;font-weight:700}.perf{font:12px var(--mono);color:var(--ok);white-space:pre;background:#0a0b0ecc;border-radius:6px;padding:6px 10px;position:absolute;bottom:196px;right:16px}.warning{text-align:center;width:100%;font:700 22px var(--mono);color:var(--danger);letter-spacing:.08em;text-shadow:0 2px 6px #000000b3;animation:.7s steps(2,start) infinite blink;position:absolute;top:14%}.status{color:var(--amber);text-shadow:0 1px 4px #000c;white-space:nowrap;font-size:13px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.message{text-align:center;text-shadow:0 2px 6px #000c;font-size:17px;line-height:1.7;position:absolute;top:26%;left:50%;transform:translate(-50%)}.message:empty{display:none}.message b{letter-spacing:.04em;font-size:34px}.message.landed b{color:var(--ok)}.message.crashed b{color:var(--danger)}.message small{color:var(--ink);opacity:.85;font-size:14px}.yoke{color:var(--amber);flex-direction:column;align-items:center;gap:8px;font-size:12px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.yoke:before{content:"";background:linear-gradient(#ffb34740,#ffb34740) 50%/1px 100% no-repeat,linear-gradient(#ffb34740,#ffb34740) 50%/100% 1px no-repeat,#0a0b0e80;border:1px solid #ffb34799;border-radius:6px;width:100px;height:100px}.yoke-dot{background:var(--amber);border-radius:50%;width:12px;height:12px;position:absolute;top:44px}.checklist{pointer-events:none;width:min(320px,100vw - 32px);max-height:calc(100vh - 32px);font-size:12px;top:16px;right:16px;overflow:hidden}.checklist h2{justify-content:space-between;align-items:baseline;margin:0 0 8px;font-size:15px;display:flex}.checklist h2 small{color:var(--muted);font-size:11px;font-weight:400}.checklist section{border-top:1px solid var(--panel-edge);padding:6px 0}.checklist section.past{opacity:.45}.checklist h3{letter-spacing:.08em;color:var(--muted);justify-content:space-between;margin:0 0 4px;font-size:12px;display:flex}.checklist h3 span{font-family:var(--mono);letter-spacing:0}.checklist .folded h3{margin:0}.checklist section.current h3{color:var(--amber)}.checklist ul{gap:3px;margin:0;padding:0;list-style:none;display:grid}.checklist li{grid-template-columns:14px 1fr auto;align-items:baseline;gap:8px;display:grid}.checklist .text{min-width:0}.checklist .value{color:var(--muted);text-align:right;font-size:12px}.checklist .mark:before{content:"□";color:var(--muted)}.checklist li.done .mark:before{content:"✓";color:var(--ok)}.checklist li.done .text{color:var(--muted)}.checklist li.info .mark:before{content:"・"}.help{pointer-events:auto;width:min(760px,100vw - 32px);max-height:calc(100vh - 32px);padding:18px 22px;font-size:13px;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.help h2{margin:0 0 10px;font-size:18px}.help h3{letter-spacing:.08em;color:var(--amber);margin:0 0 6px;font-size:12px}.help .cols{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.help table{border-collapse:collapse;width:100%}.help th{text-align:left;white-space:nowrap;font-family:var(--mono);color:var(--ink);vertical-align:top;padding:3px 12px 3px 0;font-weight:700}.help td{color:var(--muted);padding:3px 0}.help .speeds{color:var(--muted);margin:14px 0 0}.help .speeds b{color:var(--amber);font-family:var(--mono)}.help .close{color:var(--muted);text-align:right;margin:10px 0 0;font-size:12px}.start{pointer-events:auto;background:linear-gradient(#0a0e1659,#0a0e16bf);place-items:center;padding:16px;display:grid;position:absolute;inset:0}.start-card{gap:14px;width:min(760px,100%);max-height:calc(100vh - 32px);margin:0;display:grid;overflow-y:auto}.start h1{font:700 34px var(--mono);letter-spacing:.02em;text-wrap:balance;margin:0}.start .lead{color:var(--ink);margin:0;line-height:1.7}.start fieldset{border:0;min-width:0;margin:0;padding:0}.start legend{color:var(--muted);margin-bottom:6px;padding:0;font-size:13px}.start .hint{color:var(--muted);margin:0;font-size:13px}.mode-select{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.mode-select legend{grid-column:1/-1}.mode{cursor:pointer;background:#0e1014d9;border:1px solid #ffb3474d;border-radius:8px;align-content:start;gap:4px;padding:12px 14px;display:grid;position:relative}.mode:hover{border-color:#ffb347b3}.mode input{opacity:0;pointer-events:none;position:absolute}.mode b{font-size:15px}.mode span{color:var(--muted);font-size:12px;line-height:1.6}.mode .best{font-size:12px;font-style:normal;font-family:var(--mono);color:var(--ok)}.mode .best:empty{display:none}.mode:has(input:checked){border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber);background:#281e0eeb}.mode:has(input:checked) b{color:var(--amber)}.mode:has(input:focus-visible){outline:2px solid var(--amber);outline-offset:2px}.options{flex-wrap:wrap;gap:10px 28px;display:flex}.chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chips[hidden]{display:none}.chips legend{float:left;margin:0 6px 0 0}.chips label{cursor:pointer}.chips input{opacity:0;pointer-events:none;position:absolute}.chips span{background:#0e1014d9;border:1px solid #ffb34759;border-radius:999px;padding:6px 14px;font-size:13px;display:inline-block}.chips input:checked+span{border-color:var(--amber);color:var(--amber);background:#281e0ee6}.chips input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}.airport-note{min-height:1.4em;color:var(--muted);margin:0;font-size:12px}.airport-note:empty{display:none}.start-actions{flex-wrap:wrap;gap:10px;display:flex}.start-actions button{border:1px solid var(--amber);color:var(--amber);font:700 16px var(--sans);cursor:pointer;background:#281e0eeb;border-radius:8px;padding:12px 28px}.start-actions button:hover{background:#463212f2}.start-actions button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.start-actions .resume{color:var(--ink);background:#0e1014d9;border-color:#ffb34773;font-weight:400}.start-actions .resume small{font-family:var(--mono);color:var(--muted);margin-left:6px}.start-actions [hidden]{display:none}.tutor{border-color:#ffb34759;gap:8px;width:min(400px,100vw - 32px);max-height:calc(100vh - 32px);display:grid;top:16px;left:16px;overflow:hidden}.tutor-body{gap:6px;display:grid}.tutor-meta{letter-spacing:.08em;color:var(--amber);justify-content:space-between;margin:0;font-size:11px;display:flex}.tutor-meta span:last-child{font-family:var(--mono);color:var(--muted);letter-spacing:0}.tutor h2{text-wrap:balance;margin:0;font-size:17px;line-height:1.4}.tutor-text{color:var(--ink);margin:0;font-size:13px;line-height:1.75}.tutor-text b{color:var(--amber);font-weight:700}.tutor-next{color:var(--amber);margin:0;font-size:12px;animation:1.2s steps(2,start) infinite blink}.tutor-live:empty{display:none}.tutor-live{gap:6px;display:grid}.targets{border-collapse:collapse;width:100%;font-size:12px}.targets th{text-align:left;color:var(--muted);padding:0 8px 2px 0;font-size:11px;font-weight:400}.targets td{font-family:var(--mono);font-variant-numeric:tabular-nums;padding:2px 8px 2px 0}.targets td:first-child{font-family:var(--sans);color:var(--muted);width:4.5em}.targets tr.ok td:last-child{color:var(--ok)}.targets tr.off td:last-child{color:var(--amber)}.gate{color:var(--ink);margin:0;font-size:12px}.progress{background:#ffffff12;border-radius:4px;height:20px;position:relative;overflow:hidden}.progress span{background:#ffb34759;position:absolute;inset:0 auto 0 0}.progress b{font:400 12px/20px var(--mono);color:var(--ink);padding:0 8px;display:block;position:relative}.advice{color:var(--danger);margin:0;font-size:13px;font-weight:700}.finish{pointer-events:auto;background:#0a0e1673;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.finish-card{background:var(--panel);border:1px solid #5fd68a66;border-radius:10px;gap:14px;width:min(560px,100%);max-height:calc(100vh - 32px);padding:22px;display:grid;overflow-y:auto}.finish-card h2{font:700 28px var(--mono);color:var(--ok);margin:0}.finish-card p{margin:0;line-height:1.7}.finish-card dl{gap:4px;margin:0;display:grid}.finish-card dl div{border-bottom:1px solid var(--panel-edge);justify-content:space-between;gap:12px;padding:5px 0;display:flex}.finish-card dt{color:var(--muted)}.finish-card dd{font-family:var(--mono);color:var(--ink);text-align:right;font-variant-numeric:tabular-nums;margin:0}.finish-card .score{text-align:right;min-width:4.2em;margin-left:8px;font-weight:700;display:inline-block}.finish-card .total{align-items:baseline;gap:6px;margin:0;display:flex}.finish-card .total span{color:var(--muted)}.finish-card .total b{font:700 44px var(--mono);line-height:1}.finish-card .total em{color:var(--muted);margin-left:auto;font-size:13px;font-style:normal}.finish-card .total .new-best{color:var(--ok);font-weight:700}.good{color:var(--ok)}.fair{color:var(--amber)}.poor{color:var(--danger)}.finish-buttons{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.finish-card button{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:#0e1014d9;border:1px solid #ffb34773;border-radius:8px;gap:4px;padding:12px 14px;display:grid}.finish-card button:hover{border-color:var(--amber)}.finish-card button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.finish-card button span{color:var(--muted);font-size:12px}@keyframes blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.warning,.tutor-next{animation:none}}canvas,html,body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.rotate-hint{z-index:50;text-align:center;pointer-events:auto;background:#0e1014;place-items:center;padding:24px;display:none;position:fixed;inset:0}.rotate-hint div{gap:10px;max-width:320px;display:grid}.rotate-hint b{color:var(--amber);font-size:20px}.rotate-hint span{color:var(--muted);font-size:13px;line-height:1.7}@media (orientation:portrait) and (pointer:coarse){.rotate-hint{display:grid}}.touch-ui{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}.touch-ui[hidden]{display:none}.touch-ui button{pointer-events:auto;white-space:nowrap;min-width:48px;min-height:40px;color:var(--ink);font:600 12px var(--sans);touch-action:none;background:#0e10149e;border:1px solid #ffb34780;border-radius:10px;padding:6px 10px}.touch-ui button.held,.touch-ui button:active{border-color:var(--amber);background:#ffb34759}.touch-ui button[hidden]{display:none}.t-top{gap:6px;max-width:calc(100vw - 16px);display:flex;position:absolute;top:6px;left:50%;transform:translate(-50%)}.t-top button{min-width:44px;padding:4px 8px;font-size:11px}.t-top .t-next{border-color:var(--amber);color:var(--amber)}.t-note{max-width:70vw;color:var(--amber);text-align:center;background:#0a0b0ed9;border-radius:8px;margin:0;padding:6px 12px;font-size:12px;line-height:1.6;position:absolute;top:56px;left:50%;transform:translate(-50%)}.t-throttle{left:max(10px, env(safe-area-inset-left));pointer-events:auto;touch-action:none;background:#0e10148c;border:1px solid #ffb34780;border-radius:12px;width:54px;height:min(38vh,150px);position:absolute;bottom:10px;overflow:hidden}.t-fill{border-top:3px solid var(--amber);background:#ffb34773;height:0;position:absolute;bottom:0;left:0;right:0}.t-throttle span{text-align:center;color:var(--ink);font-size:11px;position:absolute;top:6px;left:0;right:0}.t-left{gap:6px;display:grid;position:absolute;bottom:10px;left:76px}.t-pad,.t-pedals{grid-template-columns:1fr 1fr;gap:6px;display:grid}.t-pedals button{min-height:44px}.t-pad button{min-height:38px}.t-right{right:max(10px, env(safe-area-inset-right));justify-items:end;gap:8px;display:grid;position:absolute;bottom:10px}.t-brakes{gap:6px;display:flex}.t-stick{pointer-events:auto;touch-action:none;background:linear-gradient(#ffb34740,#ffb34740) 50%/1px 100% no-repeat,linear-gradient(#ffb34740,#ffb34740) 50%/100% 1px no-repeat,#0e101480;border:1px solid #ffb3478c;border-radius:50%;width:124px;height:124px;position:relative}.t-stick.off{opacity:.35;pointer-events:none}.t-knob{border:2px solid var(--amber);pointer-events:none;background:#ffb347a6;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}.touch .tutor{pointer-events:auto;z-index:5;width:min(300px,40vw);max-height:76vh;top:54px;left:max(8px, env(safe-area-inset-left));padding:8px 10px}.touch .tutor h2{font-size:14px}.touch .tutor-text{font-size:12px;line-height:1.6}.touch .tutor.folded .tutor-text,.touch .tutor.folded .tutor-next{display:none}.touch .checklist{width:min(250px,36vw);max-height:58vh;font-size:11px;top:54px;right:8px}.touch .readout{inset:54px 8px auto auto}.touch .perf{top:54px;bottom:auto;right:8px}.touch .status{font-size:12px;top:54px}.touch .warning{font-size:18px;top:20%}.touch .message{top:18%}.touch .message b{font-size:26px}.touch .yoke{display:none}@media (height<=520px){.start{padding:8px}.start-card{gap:8px}.start h1{font-size:22px}.start .lead,.start .hint{display:none}.mode-select{grid-template-columns:repeat(3,1fr);gap:6px}.mode{padding:8px 10px}.mode b{font-size:13px}.mode span{font-size:10px;line-height:1.4}.start-actions button{padding:8px 22px;font-size:14px}.finish{padding:8px}.finish-card{gap:8px;padding:12px 14px}.finish-card h2{font-size:20px}.finish-card .total b{font-size:30px}.finish-card dl div{padding:2px 0;font-size:12px}.help{padding:10px 14px;font-size:11px}}.radar{background:#0a0b0e80;border-radius:50%;width:168px;height:168px;position:absolute;bottom:16px;right:16px;box-shadow:0 2px 10px #00000080}.radar canvas{border-radius:50%;display:block}.radar-range{font:11px var(--mono);color:var(--amber);background:#0a0b0ed9;border-radius:999px;padding:1px 8px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.radar-full{pointer-events:auto;background:#0a0e168c;align-content:center;place-items:center;gap:6px;display:grid;position:absolute;inset:0}.radar-full canvas{border-radius:6px;display:block;box-shadow:0 4px 24px #0009}.radar-full p{color:var(--muted);margin:0;font-size:12px}.touch .radar{pointer-events:auto;width:116px;height:116px;top:50px;bottom:auto;right:8px}.touch .perf{top:172px;bottom:auto}.touch .readout{top:172px}.touch .checklist{right:132px}@media (height<=520px){.radar{width:116px;height:116px}}.touch-ui .t-fire{color:#ff8d83;border-color:#ff5a4d}.touch-ui .t-fire.held{background:#ff5a4d73}.mission{border-color:#ff5a4d73;gap:8px;width:min(360px,100vw - 32px);display:grid;top:16px;left:16px}.mission .brief{margin:0}.mission.brief-off .brief{display:none}.mission-live{gap:8px;display:grid}.targets td.big{color:var(--amber);font-size:20px}.health{background:#ffffff14;border-radius:4px;height:20px;position:relative;overflow:hidden}.health span{background:#5fd68a8c;position:absolute;inset:0 auto 0 0}.health span.low{background:#ff5a4db3}.health b{font:400 12px/20px var(--mono);padding:0 8px;display:block;position:relative}.finish-card.failed{border-color:#ff5a4d80}.finish-card.failed h2{color:var(--danger)}.finish-card .hint{color:var(--muted);font-size:12px}.levels{display:contents}.chips small{color:var(--amber);font-size:11px}.chips input:disabled+span{opacity:.45}.touch .mission{top:54px;left:max(8px, env(safe-area-inset-left));width:min(300px,40vw);padding:8px 10px}
