@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;color:#eaf1ff;background:#0c1422;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 10% 30%,#172d42,transparent 55%),#0c1422;min-height:100vh}a{color:#8edee8;text-decoration:none}button,input{font:inherit}button{cursor:pointer}header,footer{display:flex;align-items:center;gap:24px;margin:auto;max-width:1440px;padding:24px 40px}header{border-bottom:1px solid #243246}.brand{font:800 34px 'Barlow Condensed',system-ui;letter-spacing:1px;color:#f1f6ff}.brand span{color:#ffc95b}.edition{font-size:11px;letter-spacing:2px;color:#8aa0b7}.desktop{margin-left:auto;font-size:13px}main{max-width:1440px;margin:auto;padding:48px 40px}#setup{display:grid;grid-template-columns:1fr 500px;gap:72px;align-items:center}.eyebrow{font-size:11px;letter-spacing:2px;color:#67d8ca}.intro h1{font:800 clamp(50px,7vw,92px)/.98 'Barlow Condensed',system-ui;margin:22px 0;letter-spacing:-1px}.intro p{max-width:440px;line-height:1.8;color:#aabbd0}.route{height:90px;position:relative;overflow:hidden;margin-top:44px;opacity:.7}.route span{position:absolute;left:0;right:0;top:30px;height:34px;border:2px solid #ffc95b;border-radius:100%;transform:rotate(-12deg);width:450px}.route span:nth-child(2){left:70px;top:5px;transform:rotate(14deg);border-color:#48bcb2}.route span:nth-child(3){left:260px;top:50px;transform:rotate(-28deg);border-color:#29435d}.launch-card{padding:28px;border:1px solid #324158;background:#142033;border-radius:16px;box-shadow:0 18px 60px #0003}h2{font-size:22px;margin:0 0 10px}.muted{font-size:13px;line-height:1.7;color:#aabbd0}.file{display:flex;align-items:center;gap:12px;padding:18px 12px;margin:12px 0;border:1px solid #3a4e67;border-radius:8px;color:#68d8cb;font-size:11px;cursor:pointer}.file:hover{border-color:#68d8cb}.file span{font-size:14px;color:#fff;flex:1}.file small{display:block;font-size:10px;color:#94a8be;margin-top:6px}.file input{position:absolute;opacity:0;width:1px;height:1px}.file:focus-within{outline:2px solid #ffc95b}.file b{color:#ffc95b;font-size:11px;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.remember{display:flex;gap:8px;font-size:12px;color:#aabbd0;margin:20px 0;align-items:center}.remember input{accent-color:#ffc95b}#play{width:100%;border:0;padding:16px;border-radius:7px;background:#ffc95b;color:#152035;font-weight:700}#play:disabled{opacity:.5;cursor:wait}#status{font-size:12px;color:#a6e0d6;min-height:17px;overflow-wrap:anywhere}.gpu{font-size:11px;color:#94a8be;line-height:1.5;overflow-wrap:anywhere}.hint{font-size:11px;line-height:1.7;color:#94a8be;margin:18px 0 0}.links{display:flex;gap:18px;margin-top:16px}.text-button{border:0;background:none;padding:0;color:#88c1df;font-size:11px;text-decoration:underline;text-underline-offset:3px}.game-bar{display:flex;gap:16px;align-items:center;margin-bottom:14px;font-size:12px}.game-bar strong{color:#ffc95b}.game-bar strong span{color:#869fb7;font-weight:400;font-size:10px}.game-bar #live-status{flex:1;color:#a6e0d6}.game-bar button{padding:8px 12px;background:#1d3049;border:1px solid #3a4e67;border-radius:6px;color:#eaf1ff;font-size:11px}#game-wrap{background:#000;aspect-ratio:16/9;width:100%;overflow:hidden;border:1px solid #324158;border-radius:8px}#game{display:block;width:100%!important;height:100%!important;outline:none;touch-action:none}#game-wrap:fullscreen{border:0;border-radius:0;display:flex;align-items:center;justify-content:center}#game-wrap:fullscreen #game{width:100%!important;height:auto!important;max-height:100%;aspect-ratio:16/9}.controls{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:18px;color:#aabbd0;font-size:11px}kbd{font:10px ui-monospace,monospace;border:1px solid #3a4e67;background:#1d3049;padding:2px 4px;border-radius:3px;color:#fff;margin-right:3px}#error{margin:20px 0;padding:16px;background:#402029;border:1px solid #9c535b;border-radius:8px;white-space:pre-wrap;font-size:13px;overflow-wrap:anywhere}footer{font-size:11px;color:#718ba4;padding-top:28px;border-top:1px solid #243246}footer a{margin-left:auto}[hidden]{display:none!important}@media(max-width:1000px){#setup{gap:32px;grid-template-columns:1fr 440px}.intro h1{font-size:64px}}@media(max-width:760px){header,footer{padding:18px 20px}.edition{display:none}main{padding:28px 16px}#setup{display:flex;flex-direction:column;align-items:stretch}.intro h1{font-size:56px}.intro p{font-size:13px}.route{display:none}.launch-card{padding:22px}.game-bar{flex-wrap:wrap}.game-bar #live-status{min-width:40%}footer{align-items:flex-start}.controls{gap:12px}}

.rom-help{margin:-4px 0 14px;padding:0 12px;color:#aabbd0;font-size:12px;line-height:1.7}.rom-help summary{cursor:pointer;color:#8edee8;padding:6px 0}.rom-help[open]{padding-bottom:8px;border-bottom:1px solid #324158}.rom-help p{margin:10px 0}.rom-help code{font-size:11px;color:#ffc95b;overflow-wrap:anywhere}.rom-checksum{font-size:11px}
#game-wrap{position:relative}#game-viewport{position:relative;width:100%;aspect-ratio:16/9;container-type:inline-size}#game{position:absolute;inset:0}.touch-enabled{aspect-ratio:16/9!important}
#touch-controls{position:absolute;inset:0;pointer-events:none;background:none;padding:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;--touch-size:clamp(44px,7cqw,68px);--touch-gap:clamp(6px,1.2cqw,12px);--touch-edge:max(8px,1.5cqw)}
#touch-controls button{pointer-events:auto;touch-action:none;min-height:44px;min-width:44px;border:1px solid #ffffff60;background:#162c42a8;color:#fff;font:600 11px Inter,system-ui,sans-serif;padding:8px;box-shadow:0 2px 10px #0003;backdrop-filter:blur(3px)}
#touch-controls button.pressed{background:#527296dd;border-color:#b6e8ff;box-shadow:inset 0 0 0 2px #b6e8ff}.touch-drive{position:absolute;inset:0;pointer-events:none}
.touch-steer{position:absolute;bottom:var(--touch-edge);left:var(--touch-edge);display:grid;grid-template-columns:repeat(3,var(--touch-size));align-items:end;justify-items:center;gap:var(--touch-gap)}
.touch-steer button{border-radius:50%;width:var(--touch-size);height:var(--touch-size);font-size:18px!important}.touch-steer button[data-touch-key="ArrowDown"]{width:calc(var(--touch-size)*.8);height:calc(var(--touch-size)*.8);font-size:10px!important}
.touch-steer button[data-touch-key="ArrowUp"]{grid-column:2;grid-row:1}.touch-steer button[data-touch-key="ArrowLeft"]{grid-column:1;grid-row:2}.touch-steer button[data-touch-key="ArrowDown"]{grid-column:2;grid-row:2}.touch-steer button[data-touch-key="ArrowRight"]{grid-column:3;grid-row:2}
.touch-actions{position:absolute;bottom:var(--touch-edge);right:var(--touch-edge);display:grid;grid-template-columns:repeat(2,var(--touch-size));gap:var(--touch-gap);align-items:center;justify-items:center}
.touch-actions button{border-radius:50%;width:var(--touch-size);height:var(--touch-size)}#touch-controls button.touch-gas{background:#19564fa8;border-color:#79d3bd}.touch-actions button.touch-boost{background:#675022a8;border-color:#ffc95b}.touch-actions button[data-touch-key="ShiftLeft"]{width:calc(var(--touch-size)*.82);height:calc(var(--touch-size)*.82)}
#touch-options-toggle{position:absolute;left:var(--touch-edge);top:var(--touch-edge);width:44px;height:44px;border-radius:12px;font-size:21px!important;z-index:3}.touch-toolbar{position:absolute;left:var(--touch-edge);top:calc(var(--touch-edge) + 52px);z-index:4;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:min(250px,calc(100% - 16px));padding:12px;border:1px solid #62798f;border-radius:14px;background:#111e31f2;pointer-events:auto}.touch-toolbar button{border-radius:9px;background:#263d56!important;font-size:12px!important}
.touch-menu{position:absolute;left:var(--touch-edge);bottom:var(--touch-edge);display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-width:180px}.touch-menu button{border-radius:12px;min-width:62px;min-height:44px;padding:8px!important}.touch-primary{position:absolute;right:var(--touch-edge);bottom:var(--touch-edge);display:flex;gap:8px}.touch-primary button{border-radius:14px;min-width:68px;padding:14px!important;background:#675022bc!important;border-color:#ffc95b!important}
#exit-fullscreen,#enter-fullscreen{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:5;width:44px;height:44px;border:1px solid #52677d;border-radius:12px;background:#142033aa;color:#fff;font-size:18px;touch-action:manipulation}
.game-immersive{overflow:hidden}#game-wrap:is(:fullscreen,.immersive){position:fixed;inset:0;width:100%;height:100dvh;aspect-ratio:auto!important;border:0;border-radius:0;display:flex;align-items:center;justify-content:center;z-index:1000;background:#000;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
#game-wrap:is(:fullscreen,.immersive) #game-viewport{width:min(100%,calc((100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * 1.7777778));flex-shrink:0}#game-wrap:is(:fullscreen,.immersive) #game{height:100%!important;max-height:none;aspect-ratio:auto}#rotate-tip{display:none;position:absolute;top:70px;left:20px;right:20px;text-align:center;color:#aabbd0;font-size:13px;pointer-events:none}@media(orientation:portrait){#rotate-tip:not([hidden]){display:block}}

#enter-fullscreen{right:max(62px,calc(env(safe-area-inset-right) + 62px));font-size:24px}

.install-card{margin-top:26px;padding:20px;border:1px solid #3a4e67;border-radius:14px;background:#142033;scroll-margin-top:20px}.install-heading{display:flex;gap:14px;align-items:center}.install-heading img{flex-shrink:0;border-radius:14px}.install-heading h2{font-size:18px;margin:0 0 6px}.intro .install-card p{margin:0;font-size:12px;line-height:1.6}.install-card button{margin-top:16px;width:100%;min-height:44px;padding:12px;border:1px solid #ffc95b;border-radius:8px;background:#ffc95b;color:#152035;font-weight:700}.install-card #install-status:empty{display:none}.install-card #install-status{margin-top:12px;color:#a6e0d6}.install-card details{margin-top:14px;font-size:12px;line-height:1.6}.install-card summary{cursor:pointer;color:#8edee8}.intro .install-card details p{margin-top:12px}

.player-name{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;color:#b8c8de}.player-name input{width:55%;min-width:0;padding:10px;border:1px solid #354963;border-radius:8px;background:#101c2e;color:#fff;font:inherit}
