:root{color-scheme:dark;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#101310;color:#e8ede4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 0%,#21302466,transparent 50%)}main{max-width:1136px;padding:0 36px;margin:auto}header{height:91px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #30382e}.wordmark{font-weight:950;font-size:28px;letter-spacing:-3px;color:#eef5e8;text-decoration:none;font-style:italic}.wordmark span{color:#c5fa61;margin-left:3px}.edition,.eyebrow,.format,footer,.toolbar>span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;letter-spacing:1.5px;color:#95a18f}.edition b{border:1px solid #536445;color:#c5fa61;padding:5px 7px;font-size:9px;margin-left:16px;font-weight:500}.intro{padding:43px 0 34px;display:flex;align-items:end;justify-content:space-between}.eyebrow{font-size:10px;line-height:1.5;margin:0 0 12px}h1{font-size:64px;letter-spacing:-4px;line-height:1;margin:0;text-transform:uppercase;font-style:italic;font-weight:900}h1 em{color:#c5fa61}.tagline{color:#a1ad9b;font-size:14px;line-height:1.7;margin:0 0 2px}.player{border:1px solid #3a4534;background:#090c09;box-shadow:0 25px 90px #0005}.player-bar,.toolbar{display:flex;align-items:center;justify-content:space-between;min-height:43px;padding:0 17px;font-size:11px;color:#b3c0ac;background:#191f17}.player-bar>span:first-child{display:flex;align-items:center;gap:9px}#indicator{width:6px;height:6px;border-radius:50%;background:#808d76}body.running #indicator{background:#c5fa61;box-shadow:0 0 10px #c5fa6166}.format{font-size:9px}.screen{position:relative;background:#050705;display:flex;justify-content:center;min-height:480px}canvas{display:block;background:#000;max-width:100%;width:auto;height:480px;aspect-ratio:4/3;outline:none;image-rendering:pixelated;object-fit:contain}#loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(#101710b3,#0c100df2),repeating-linear-gradient(90deg,transparent 0px,transparent 63px,#43513b55 64px),repeating-linear-gradient(0deg,transparent 0px,transparent 63px,#43513b55 64px)}#loader[hidden]{display:none}.track-mark{font-size:92px;font-weight:900;font-style:italic;letter-spacing:-7px;color:#c5fa6133;line-height:1}h2{font-size:24px;letter-spacing:-.8px;margin:23px 0 0}#loader p{font-size:13px;color:#a2af9a;margin:10px 0 24px}.load-actions{display:flex;gap:10px}button,.file-button{border:1px solid #576847;background:#c5fa61;color:#17200c;border-radius:3px;padding:13px 18px;font:600 12px inherit;cursor:pointer;font-family:inherit;font-size:12px;font-weight:650}button span{margin-left:22px}.file-button{background:#21291d;color:#e4ebdf;position:relative;overflow:hidden}input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}button:hover,.file-button:hover{filter:brightness(1.13)}button:focus-visible,.file-button:focus-within,summary:focus-visible{outline:2px solid #c5fa61;outline-offset:4px}button:disabled{opacity:.4;cursor:default}#loader .fine{font-size:10px;color:#74806e;margin:20px 0 0}progress{width:270px;margin-top:20px;accent-color:#c5fa61;height:5px}.toolbar{min-height:52px;background:#141a12}.toolbar>div{display:flex;gap:17px}.quiet{background:transparent;border:0;color:#bfccb5;padding:8px 0;font-size:11px}.toolbar>span{font-size:9px}.below{display:flex;justify-content:space-between;gap:20px;padding:27px 0 20px}.controls{display:flex;gap:19px;flex-wrap:wrap;font-size:11px;color:#c2cebb;align-items:center}.controls span{white-space:nowrap}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:24px;background:#242d20;border:1px solid #414c38;border-bottom:2px solid #536147;border-radius:3px;font-size:11px;margin-right:3px;color:#e4eddf}kbd:last-of-type{margin-right:7px}.hint{font-size:11px;color:#83907b;margin-top:15px}.route{min-width:220px;border-left:1px solid #34402d;padding-left:23px}.route p:last-child{font-size:12px;line-height:1.8;margin:0;color:#a8b69e}details{font-size:11px;color:#84947c;margin:4px 0 25px}summary{cursor:pointer;width:fit-content}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:230px;overflow:auto;padding:15px;background:#080b07;color:#93a28a;font-size:10px}footer{display:flex;justify-content:space-between;border-top:1px solid #30382e;padding:23px 0 32px;font-size:9px;letter-spacing:.7px}.screen:fullscreen{width:100vw;height:100vh;align-items:center}.screen:fullscreen canvas{width:100%;height:100%;max-height:100vh;object-fit:contain}body.failed #indicator{background:#ed996b}@media(max-width:750px){main{padding:0 18px}.intro{padding:28px 0}h1{font-size:48px}.tagline,.format{display:none}.screen{min-height:320px}canvas{height:auto;width:100%;max-height:70vh}.below{flex-direction:column}.route{border:0;padding:5px 0}.load-actions{flex-direction:column;text-align:center}.controls{gap:10px}.track-mark{font-size:60px}h2{font-size:21px;margin-top:10px}#loader p{margin-bottom:15px}footer{gap:10px;font-size:8px}.toolbar>div{gap:12px}}
:root .multiplayer{margin-bottom:20px;padding:20px;border:1px solid #3a4534;background:#171f15}.multiplayer .eyebrow{margin-bottom:6px}.multiplayer p{font-size:12px;line-height:1.6;color:#a8b69e;margin:0 0 12px}.room-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.multiplayer input{min-width:220px;padding:12px;border:1px solid #536445;border-radius:3px;background:#0c120a;color:#e4ebdf;font:12px inherit}.room-actions input{flex:1}.secondary{background:#21291d;color:#e4ebdf}.multiplayer #room-status{margin:12px 0 0}.multiplayer details{margin:12px 0 0}.multiplayer label{display:flex;align-items:center;gap:12px;margin:12px 0}.multiplayer label input{flex:1}.multiplayer [hidden]{display:none}
.controller{margin:0 0 24px;padding:18px 20px;border:1px solid #3a4534;background:#171f15;font-size:12px;color:#a8b69e}.controller-heading,.controller-options{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.controller-heading{justify-content:space-between}.controller .eyebrow{margin:0}.controller label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.controller select{max-width:100%;min-width:180px;padding:9px;border:1px solid #536445;border-radius:3px;background:#0c120a;color:#e4ebdf;font:inherit}.controller-heading label{min-width:0;max-width:85%}.controller-heading select{max-width:480px;min-width:0;flex:1;width:100%}.controller p{line-height:1.7}.controller-guide{color:#84947c;font-size:11px}.controller details{margin:12px 0 0}.controller-options{margin-top:16px}.controller input{accent-color:#c5fa61}.controller output{min-width:30px}.controller [hidden]{display:none}.controller select:focus-visible,.controller input:focus-visible{outline:2px solid #c5fa61;outline-offset:3px}
.controller-panel{margin:0 0 24px;border:1px solid #3a4534;background:#171f15}.controller-panel>summary{width:100%;padding:14px 18px;line-height:1.8}.controller-panel>summary strong{color:#c2cebb;margin-right:16px}.controller-panel .controller{border:0;border-top:1px solid #3a4534;margin:0}
/* CRT is a presentation layer; the original canvas keeps focus and input. */
#crt-canvas{position:absolute;pointer-events:none;z-index:1;max-width:none;max-height:none;aspect-ratio:auto;image-rendering:auto}
#crt-canvas[hidden]{display:none}.screen.crt-active #canvas{opacity:0}#loader{z-index:2}
.display-panel{margin:0 0 16px;border:1px solid #3a4534;background:#171f15}.display-panel>summary{width:100%;padding:14px 18px;line-height:1.8}.display-panel>summary strong{color:#c2cebb;margin-right:16px}.display-options{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;padding:18px 20px;border-top:1px solid #3a4534;color:#a8b69e;font-size:12px}.display-options label{display:flex;align-items:center;gap:8px}.display-options select{padding:9px;border:1px solid #536445;border-radius:3px;background:#0c120a;color:#e4ebdf;font:inherit}.display-options input{accent-color:#c5fa61}.display-options output{min-width:32px}.display-options p{flex-basis:100%;line-height:1.7;margin:0;color:#84947c;font-size:11px}.display-options :focus-visible{outline:2px solid #c5fa61;outline-offset:3px}
@media(max-width:750px){.toolbar{flex-wrap:wrap;gap:4px;padding:8px 12px}.toolbar>div{gap:14px}.toolbar>span{max-width:100%;overflow-wrap:anywhere}.display-options{gap:18px}}
