:root{--bg:#1a1a1f;--bg-panel:#16161a;--bg-hover:#26262e;--border:#33333d;--text:#d8d8e0;--muted:#7a7a88;--accent:#c0392b;--error:#e06c5a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Menlo,Consolas,monospace}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text)}#app{grid-template-columns:320px 1fr auto;height:100vh;display:grid}#sidebar{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}#sidebar-header{border-bottom:1px solid var(--border);padding:16px}#sidebar-header h1{margin:0 0 12px;line-height:0}.sidebar-logo{width:100%;height:auto;display:block}.launch-tabs,.subtabs{flex-wrap:wrap;gap:4px;margin-bottom:10px;display:flex}.sidebar-divider{border:none;border-top:1px solid var(--border);margin:16px 0}.sidebar-section-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:700}.tab-btn{white-space:nowrap;font:inherit;color:var(--muted);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;flex:1;padding:6px 4px;font-size:12px;font-weight:600;line-height:15px}#tab-settings{flex:0 auto;padding:6px 8px;font-size:17px}.tab-btn:hover:not(:disabled):not([aria-selected=true]){color:var(--text);background:var(--bg-hover)}.tab-btn[aria-selected=true]{color:#fff;background:var(--accent);border-color:var(--accent)}.tab-btn:disabled{color:var(--border);cursor:not-allowed}.tab-panel[hidden]{display:none}#select-workspace,#continue-run,#load-repo,#launch-demo-campaign{width:100%;font:inherit;color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:6px;padding:10px 12px;font-weight:600}#load-repo,#launch-demo-campaign{margin-top:8px}#select-workspace:hover:not(:disabled),#continue-run:hover:not(:disabled),#load-repo:hover:not(:disabled),#launch-demo-campaign:hover:not(:disabled){filter:brightness(1.12)}#select-workspace:disabled,#continue-run:disabled,#load-repo:disabled,#launch-demo-campaign:disabled{background:var(--border);cursor:not-allowed}.muted{color:var(--muted);font-size:12px}.settings-select{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:6px 8px;font-size:12px}.settings-select:disabled{color:var(--border);cursor:not-allowed}.error{color:var(--error)}.settings-label{color:var(--muted);margin:12px 0 4px;font-size:12px;display:block}.volume-slider{width:100%;accent-color:var(--accent)}#repo-input,.settings-text-input{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:12px}.checkbox-label{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin:10px 0 4px;font-size:12px;display:flex}.checkbox-label input[type=checkbox]{accent-color:var(--accent)}.multiplayer-code-wrap{align-items:stretch;gap:6px;margin:10px 0 0;display:flex}.multiplayer-code-wrap[hidden]{display:none}.multiplayer-code{letter-spacing:.1em;text-align:center;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:4px;flex:1;margin:0;padding:8px;font-size:20px;font-weight:700}.multiplayer-code-copy-btn{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;flex:none;padding:6px 10px;font-size:12px}.multiplayer-code-copy-btn:hover{background:var(--bg-hover)}#multiplayer-status{overflow-wrap:anywhere;margin:10px 0 0}#multiplayer-lobby-list{margin:0 0 12px;padding:0;list-style:none}.multiplayer-lobby-entry{width:100%;font:inherit;text-align:left;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;margin-bottom:6px;padding:8px;font-size:12px}.multiplayer-lobby-entry:hover{background:var(--bg-hover)}#repo-status{overflow-wrap:anywhere;margin:6px 0 0}.repo-suggestions{gap:6px;display:flex}.suggestion-btn{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;flex:1;padding:6px 4px;font-size:11px}.suggestion-btn:hover:not(:disabled){background:var(--bg-hover)}.suggestion-btn:disabled{color:var(--border);cursor:not-allowed}.settings-btn{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:4px;margin-top:12px;padding:6px 8px;font-size:12px}.settings-btn:hover:not(:disabled){background:var(--bg-hover)}.settings-btn:disabled{color:var(--border);cursor:not-allowed}.settings-btn.settings-btn-primary{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:700}.settings-btn.settings-btn-primary:hover:not(:disabled){filter:brightness(1.12)}.settings-btn.settings-btn-primary:disabled{color:var(--border);background:var(--bg);border-color:var(--border);font-weight:600}.export-map-btn{font:inherit;color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:6px;padding:10px 16px;font-size:14px;font-weight:600}.export-map-btn:hover{filter:brightness(1.12)}a.settings-btn{box-sizing:border-box;text-align:center;text-decoration:none;display:block}.online-wad-list{flex-direction:column;gap:8px;margin:4px 0 0;padding:0;list-style:none;display:flex}.online-wad-entry{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:8px 10px}.online-wad-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.online-wad-select-btn{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;padding:2px 0;font-size:13px;font-weight:600}.online-wad-select-btn:hover{color:var(--accent)}.online-wad-meta{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.5}.online-wad-meta--restricted{color:var(--error)}.online-wad-link{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:12px;text-decoration:none}.online-wad-link:hover{color:var(--accent)}#bgm-status{margin:6px 0 0}#highscore-dialog,#multiplayer-lobby-dialog{color:var(--text);background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;width:min(960px,95vw);padding:16px 20px 20px}#highscore-dialog::backdrop,#multiplayer-lobby-dialog::backdrop{background:#000000b3}#highscore-dialog h2,#multiplayer-lobby-dialog h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 12px;font-size:14px;font-weight:600}.highscore-table{border-collapse:collapse;width:100%;font-size:12px}.highscore-table th,.highscore-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:4px 10px 4px 0}.highscore-table th.wrap,.highscore-table td.wrap{white-space:normal;overflow-wrap:anywhere}.highscore-table td.hash{color:var(--muted)}.highscore-table td .replay-btn+.replay-btn{margin-left:6px}.replay-btn{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:4px;padding:4px 10px;font-size:11px}.replay-btn:hover:not(:disabled){background:var(--bg-hover)}.replay-btn:disabled{color:var(--border);cursor:not-allowed}.replay-btn.recording{color:#ff4d4d;border-color:#ff4d4d}.replay-controls{justify-content:center;align-items:center;gap:6px;display:flex}.replay-speed-label{text-align:center;min-width:2.5em;color:var(--muted);font-size:12px}#workspace-name{overflow-wrap:anywhere;margin:12px 0 0}#file-tree{flex:1;min-height:0;padding:8px 0;overflow:auto}.file-tree-empty{margin:0;padding:4px 16px;font-size:12px;line-height:1.5}.tab-btn--loaded:before{content:"▶ ";font-size:9px;position:relative;top:-1px}.tab-btn--loaded.tab-btn--paused:before{content:"❚❚ ";letter-spacing:1px;font-size:11px}.sidebar-footer{border-top:1px solid var(--border);color:var(--muted);text-align:center;flex-shrink:0;padding:8px 16px;font-size:11px}.sidebar-footer p{margin:0 0 4px}.sidebar-footer a{color:var(--muted)}.sidebar-footer a:hover{color:var(--text)}.tree-notice{z-index:1;color:var(--error);background:var(--bg-panel);border:1px solid var(--error);border-radius:3px;margin:0 8px 8px;padding:6px 8px;font-size:11px;line-height:1.4;position:sticky;top:0}.tree-list{margin:0;padding:0;list-style:none}.tree-list .tree-list{padding-left:14px}.tree-item{margin:0}.tree-row{width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:3px 12px;font-size:13px;display:flex}.tree-row:hover{background:var(--bg-hover)}.tree-twisty{width:10px;color:var(--muted);transition:transform .1s;display:inline-block}.tree-twisty--open{transform:rotate(90deg)}.tree-label{text-overflow:ellipsis;overflow:hidden}#viewport{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:relative;overflow:hidden}.intro-screen{text-align:left;max-width:760px;max-height:100%;padding:8px 4px;overflow-y:auto}.intro-title{text-align:center;margin:0 0 8px;font-size:22px;font-weight:700}.intro-lede{color:var(--muted);text-align:center;margin:0 0 24px;font-size:14px;line-height:1.5}.intro-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px;display:grid}.intro-card--full{grid-column:1/-1}.intro-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px 18px}.intro-card h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:600}.intro-card p{margin:0 0 10px;font-size:13px;line-height:1.6}.intro-card p:last-child{margin-bottom:0}.intro-card a{color:var(--accent)}.intro-card a:hover{filter:brightness(1.2)}.intro-mapping{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.intro-mapping li{grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;display:grid}.intro-mapping-from{color:var(--text);text-align:right}.intro-mapping-arrow{color:var(--muted)}.intro-mapping-to{color:var(--accent);font-weight:600}.intro-cta{color:var(--muted);text-align:center;margin:0;font-size:13px}.intro-cta strong{color:var(--text)}.loading-screen{flex-direction:column;align-items:center;gap:16px;display:flex}.loading-screen[hidden]{display:none}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.loading-status{color:var(--muted);text-align:center;margin:0;font-size:13px}.canvas-area{flex:1 1 0;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;overflow:hidden}.canvas-area[hidden]{display:none}.scene-canvas{aspect-ratio:640/400;object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;image-rendering:crisp-edges;image-rendering:pixelated;border:1px solid var(--border);cursor:crosshair;box-shadow:0 0 0 4px #000}.scene-canvas:fullscreen{width:100vw;max-width:none;height:100vh;image-rendering:crisp-edges;image-rendering:pixelated;object-fit:contain;box-shadow:none;border:none}.debug-map{image-rendering:pixelated;border:1px solid var(--border);max-width:100%;height:auto;box-shadow:0 0 0 4px #000}.map-caption{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:12px}.controls-legend{flex-direction:column;align-items:center;gap:6px;max-width:900px;display:flex}.key{min-width:20px;height:20px;color:var(--text);background:var(--bg-panel);border:1px solid var(--border);border-bottom:2px solid var(--border);border-radius:4px;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.controls-chip{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;font-size:11px;display:inline-flex}.controls-chip--freeform{white-space:normal;text-align:center}.controls-chip--gap{margin-left:14px}.controls-chip-label{margin-left:2px}.controls-sep{color:var(--border)}.vkeyboard{flex-direction:column;align-items:center;gap:4px;display:flex}.vkeyboard-row{flex-wrap:wrap;justify-content:center;gap:6px 14px;display:flex}.console-sidebar{background:var(--bg-panel);border-left:1px solid var(--border);flex-direction:column;width:260px;min-height:0;display:flex}.console-sidebar.hidden{display:none}.console-sidebar h2{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);margin:0;padding:12px 14px;font-size:12px;font-weight:600}#console-log{flex:1;min-height:0;padding:8px 12px;font-size:11px;line-height:1.5;overflow-y:auto}.console-line{color:var(--text);overflow-wrap:anywhere;white-space:pre-wrap}.intro-tour{z-index:50;background:#0000008c;position:fixed;inset:0}.intro-tour-highlight{border:2px solid var(--accent,#78c8d2);pointer-events:none;border-radius:4px;position:fixed;box-shadow:0 0 0 9999px #0000008c}.intro-tour-popout{width:280px;color:var(--text);background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:12px 14px;position:fixed;box-shadow:0 6px 24px #00000073}.intro-tour-title{margin:0 0 6px;font-size:14px}.intro-tour-body{margin:0 0 8px;font-size:12px;line-height:1.5}.intro-tour-progress{opacity:.7;margin:0 0 8px;font-size:11px}.intro-tour-controls{gap:6px;display:flex}.intro-tour-btn{flex:1;width:auto;margin-top:0}.intro-tour-btn--skip{opacity:.75;flex:none}.boss-screen{z-index:60;color:#c9ccd1;background:#1f2023;outline:none;flex-direction:column;font-size:13px;line-height:1.5;display:flex;position:fixed;inset:0}.boss-screen-bar{background:#17181a;border-bottom:1px solid #2c2e33;flex:none;align-items:baseline;gap:14px;padding:6px 12px;display:flex}.boss-screen-tab{color:#e4e6eb;background:#1f2023;border-top:1px solid #3a3d44;padding:3px 10px}.boss-screen-crumb{color:#6f757e;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.boss-screen-code{flex:auto;padding:8px 0 24px;overflow:auto}.boss-line{white-space:pre;align-items:flex-start;display:flex}.boss-line-no{text-align:right;color:#4d525a;-webkit-user-select:none;user-select:none;flex:none;width:52px;padding-right:16px}.boss-line-code{white-space:pre-wrap;overflow-wrap:anywhere}.boss-tok--comment{color:#6a9955}.boss-tok--string{color:#ce9178}.boss-tok--number{color:#b5cea8}.boss-tok--keyword{color:#7aa2f7}.boss-screen-status{color:#6f757e;background:#17181a;border-top:1px solid #2c2e33;flex:none;justify-content:space-between;gap:12px;padding:3px 12px;font-size:11px;display:flex}
