:root{color-scheme:dark;--bg:#101416;--panel:#191f22;--line:#303a3f;--ink:#eff4ef;--muted:#91a3a8;--lime:#d6fa75;--red:#ff785f;--blue:#7addf3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 'Segoe UI','Malgun Gothic',sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:var(--ink);background:#252e32;border:1px solid #3c484d;padding:10px 18px;border-radius:7px;transition:.15s}button:hover{border-color:var(--lime);transform:translateY(-1px);background:#354137}button:focus-visible,a:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button.primary{background:var(--lime);color:#1a2510;border-color:var(--lime);font-weight:700}button.active{border-color:var(--lime);color:var(--lime)}button.danger{color:var(--red)}button:disabled{opacity:.35;cursor:default;transform:none}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px;padding:0 5vw}#brand{color:var(--ink);font-size:27px;letter-spacing:3px;font-weight:900;text-decoration:none}#brand span{color:var(--lime)}#brand small{font-size:9px;letter-spacing:2px;display:block;color:var(--muted);line-height:1}.edition{margin-left:auto;color:var(--muted);font-size:11px;letter-spacing:2px}main{max-width:1240px;margin:auto;padding:40px 30px 28px;animation:enter .25s ease}h1,h2,h3,p{margin-top:0}h1{font-size:56px;line-height:1.13;letter-spacing:-2px;margin-bottom:22px}h2{font-size:30px;letter-spacing:-1px;margin-bottom:10px}h3{font-size:18px}p{color:var(--muted)}.eyebrow{color:var(--lime);letter-spacing:3px;font-size:11px;font-weight:700;margin-bottom:20px}.hero{display:grid;grid-template-columns: .9fr 1.1fr;gap:60px;align-items:center;min-height:530px}.hero h1{font-size:76px}.hero p{max-width:390px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.hero .primary{padding:16px 30px;min-width:220px}.preview{position:relative;background:#192223;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 25px 80px #0004}.preview canvas{width:100%;display:block}.preview .caption{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:var(--muted);padding:16px 0 0}.tag{color:var(--lime)}.features{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:28px;gap:30px;padding:25px 0}.features b{display:block;margin-bottom:8px}.features p{font-size:13px;margin:0}.topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:20px}.muted{color:var(--muted)}.section-label{font-size:11px;letter-spacing:2px;color:var(--muted);margin:28px 0 13px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;position:relative}.card .num{color:var(--lime);font:32px monospace;margin-bottom:20px}.card p{font-size:13px;min-height:42px}.record{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-bottom:16px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px}.arena{position:relative;background:#131a1d;border:1px solid #3b494b;border-radius:12px;overflow:hidden}.arena canvas{display:block;width:100%;height:auto;outline:none}.hud{display:flex;align-items:center;gap:25px;padding:15px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.hud .time{font:23px monospace;color:var(--lime)}.hud small{color:var(--muted);font-size:10px;letter-spacing:1px;display:block}.sidebar,.formpanel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px}.sidebar p{font-size:13px}.legend{display:flex;gap:10px;align-items:center;margin:18px 0;font-size:12px;color:var(--muted)}.dot{width:12px;height:12px;border-radius:3px;background:var(--lime)}.dot.red{background:var(--red)}.dot.blue{background:var(--blue)}kbd{border:1px solid #475259;border-bottom:3px solid #475259;padding:2px 7px;border-radius:4px;background:#252f34;color:var(--ink)}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0c131be8;backdrop-filter:blur(8px);z-index:3}.modal{max-width:480px;text-align:center;padding:25px}.modal h2{font-size:55px;color:var(--lime);letter-spacing:0}.stats{display:flex;justify-content:center;gap:40px;margin:24px 0}.stats strong{display:block;font:30px monospace}.stats span{color:var(--muted);font-size:12px}.footnote{color:var(--muted);font-size:12px;margin-top:16px}.editor{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px}.editor canvas{cursor:crosshair}.formpanel label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}input,select,textarea{width:100%;border:1px solid #455057;background:#10171a;color:var(--ink);border-radius:5px;padding:8px}input[type=checkbox]{width:auto}.fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tools{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.tools button{padding:7px 10px;font-size:12px}.event-list{max-height:150px;overflow:auto;margin-top:10px}.event-row{display:flex;align-items:center;gap:8px;font:12px monospace;padding:5px;border-bottom:1px solid var(--line)}.event-row button{margin-left:auto;padding:1px 9px}.timeline{height:55px;position:relative;background:#1c2529;border:1px solid var(--line);border-radius:6px;margin-top:14px;overflow:hidden}.timeline .mark{position:absolute;top:20px;width:6px;height:18px;background:var(--red);border-radius:3px}.timeline .cursor{position:absolute;top:0;height:100%;width:2px;background:var(--lime)}.timeline small{position:absolute;top:0;color:var(--muted);font:10px monospace}.settings{max-width:620px;margin:30px auto}.settings label{display:block;padding:18px 0;border-bottom:1px solid var(--line)}.settings input{width:auto;margin-right:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--lime);color:#1b2613;padding:12px 22px;border-radius:8px;z-index:20;max-width:90vw;display:none}.empty{padding:24px;background:var(--panel);border:1px dashed var(--line);border-radius:10px;color:var(--muted)}@keyframes enter{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}@media(max-width:900px){.hero{grid-template-columns:1fr;gap:25px}.hero h1{font-size:60px}.cards{grid-template-columns:repeat(2,1fr)}.game-layout,.editor{grid-template-columns:1fr}.sidebar{display:none}.features{gap:14px}.edition{display:none}header{padding:0 20px;justify-content:space-between}main{padding:24px 16px}.formpanel{max-width:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
:root{--amber:#ffd37c}.map-toolbar{margin-top:0}.tool-hint{min-height:48px;color:var(--muted);font-size:12px;padding:0 0 12px}.time-controls{margin-top:16px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.time-controls .fields{grid-template-columns:repeat(3,1fr)}.time-controls label{display:block;font-size:11px;color:var(--muted);margin-bottom:5px}.time-controls .actions{margin:12px 0}.time-controls button{font-size:12px;padding:6px 10px}.time-controls .footnote{margin:0;align-self:center}.timeline-labels{font-size:10px;display:flex;gap:20px;color:var(--muted)}.scrub-timeline{height:88px;touch-action:none;cursor:ew-resize;user-select:none;margin-top:6px;background:linear-gradient(to bottom,#1c2529 49%,#334147 50%,#1c2529 51%)}.scrub-timeline>*{pointer-events:none}.scrub-timeline .mark{top:57px;height:20px;transform:translateX(-50%)}.scrub-timeline .warning-mark{position:absolute;top:24px;height:14px;background:#ffd37c77;border:1px solid var(--amber);border-radius:3px;min-width:2px}.scrub-timeline small{padding-left:3px;top:3px}.scrub-timeline .cursor{z-index:2;box-shadow:0 0 6px #d6fa7566}.warning-text{color:var(--amber)}.explosion-text{color:var(--red)}[hidden]{display:none!important}.editor .event-list{max-height:230px}.editor .event-row span{flex:1}.editor .event-row button{margin-left:0}.editor .arena canvas{touch-action:none}@media(max-width:650px){.time-controls .fields{grid-template-columns:1fr}.map-toolbar{gap:5px}}
.unified-editor .editor-viewport{height:360px;overflow:auto;border-radius:8px;overscroll-behavior:contain}.unified-editor .editor-viewport canvas{max-width:none;flex-shrink:0}.mode-toolbar kbd{margin-left:8px;font-size:10px}.mode-toolbar .footnote{margin-top:0;align-self:center}.viewport-controls{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:12px;color:var(--muted)}.viewport-controls button{padding:3px 10px}.viewport-controls .footnote{margin:0 0 0 auto;font-size:11px}.floor-swatch:before{content:'';display:inline-block;width:11px;height:11px;margin-right:6px;border:1px solid #748083;border-radius:2px;vertical-align:middle}.floor-teal:before{background:#244348}.floor-slate:before{background:#363b55}.unified-editor details{border-top:1px solid var(--line);margin:12px 0;padding-top:10px}.unified-editor summary{cursor:pointer;color:var(--muted);font-size:12px}.unified-editor details button{margin-top:10px;padding:6px 10px}.unified-editor .formpanel>.actions button{font-size:12px;padding:7px 10px}.unified-editor .tool-hint{min-height:40px}.unified-editor .mode-toolbar{margin-top:0}.unified-editor .time-controls{margin-top:10px;padding:12px}.unified-editor .formpanel{max-height:1000px;overflow:auto}@media(max-width:900px){.unified-editor .formpanel{max-height:none}.viewport-controls .footnote{display:none}}
.unified-editor .editor-viewport{height:clamp(300px,46vh,540px)}.brush-size{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;background:var(--panel);border:1px solid var(--line);border-radius:7px;font-size:12px;color:var(--muted)}.brush-size strong{color:var(--ink);margin-right:8px}.brush-size input{width:64px;padding:5px 7px}.map-size-panel{margin:18px 0;padding:14px;border:1px solid #4b5f5d;border-radius:8px;background:#142321}.map-size-panel h3{font-size:14px;margin-bottom:6px}.map-size-panel button{margin-top:10px}.map-size-panel .footnote{margin-bottom:0;font-size:11px}

.debug-modal{max-width:540px;text-align:left;max-height:90vh;overflow:auto}.debug-modal label{display:block;margin:14px 0}.debug-modal input[type=number]{display:block;width:100%;margin-top:6px;padding:9px;background:#111918;color:var(--text);border:1px solid var(--line);border-radius:6px}#ghostToggle[aria-pressed=true]{border-color:#8edcff;color:#8edcff}

.scrub-timeline [data-timeline-event]{pointer-events:auto;cursor:ew-resize;min-width:10px}.scrub-timeline .time-selected{outline:2px solid #fff;z-index:1;box-shadow:0 0 8px #fff8}.debug-modal{padding:16px}.debug-modal h2{font-size:30px}.debug-modal label{margin:8px 0}.debug-modal p{margin-bottom:8px}

.scrub-timeline{background:#1c2529}
.scrub-timeline .time-grid{position:absolute;top:19px;bottom:0;border-left:1px solid #49616d44;width:1px}.scrub-timeline .time-grid.major{top:18px;border-color:#81939d66}.scrub-timeline small{z-index:1;top:2px;background:#1c2529;font-size:10px;padding:0 3px}.scrub-timeline [data-timeline-event]{transform:none;height:18px}.scrub-timeline .wall-mark{background:#b68bea;border:1px solid #dfc7ff}.scrub-timeline #timeMarquee{position:absolute;z-index:4;border:1px solid #8edcff;background:#8edcff26;pointer-events:none}.timeline-actions{align-items:center}.scrub-timeline{overscroll-behavior:contain;cursor:crosshair}.logic-panel{margin:32px 0;border-top:1px solid var(--line);padding-top:24px}.logic-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.logic-grid>section{background:var(--panel);padding:20px;border:1px solid var(--line);border-radius:10px;min-width:0;max-height:650px;overflow:auto}.logic-grid label{display:block;font-size:12px;color:var(--muted);margin:10px 0}.logic-grid h4{margin:18px 0 8px}.logic-grid button{font-size:12px;padding:7px 10px}.condition-terms{max-height:170px;overflow:auto}.condition-terms label{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8px}.rule-action{display:grid;grid-template-columns:minmax(0,1fr) 140px 32px;gap:6px;margin:10px 0}.rule-action select{font-size:12px;min-width:0}.logic-grid .footnote{line-height:1.65}.logic-grid input[type=checkbox]{vertical-align:middle}@media(max-width:800px){.logic-grid{grid-template-columns:1fr}}
.wall-brush-options{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:10px 0;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:7px}.wall-brush-options label{font-size:11px;color:var(--muted)}.wall-brush-options input{width:70px;padding:5px}.wall-brush-options select{width:130px;padding:5px}.wall-brush-options button{font-size:11px;padding:7px 9px}.wall-selection-bar{padding:8px 10px;margin-bottom:8px;background:#292236;border:1px solid #785694;color:#efd3ff;font-size:12px;border-radius:6px}.logic-grid #deleteDynamicWall{margin-top:10px}
/* Stage library and ordered map-pack editor. */
.library-tools{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.library-tools input{flex:1;min-width:220px}.pack-editor{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;margin-top:24px}.pack-editor section{min-width:0;padding:22px;border:1px solid var(--line);border-radius:12px}.pack-order{padding-left:24px}.pack-order li{padding:12px 0;border-bottom:1px solid var(--line)}.pack-order li span{display:block;margin-bottom:10px;overflow-wrap:anywhere}.pack-order button{padding:7px 12px;margin-right:4px}.pack-available{max-height:65vh;overflow:auto}.pack-available>div{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.pack-available span{flex:1;overflow-wrap:anywhere}.pack-results{max-height:85vh;overflow:auto;width:min(680px,95%)}.pack-results table{width:100%;border-collapse:collapse;text-align:left}.pack-results th,.pack-results td{padding:12px 8px;border-bottom:1px solid var(--line)}.pack-results tfoot{color:var(--lime)}.card h3{overflow-wrap:anywhere}#packName{max-width:700px}button:disabled{opacity:.35;cursor:default}@media(max-width:800px){.pack-editor{grid-template-columns:1fr}.library-tools>*{flex:1}.pack-results th,.pack-results td{padding:8px 4px;font-size:12px}}
textarea{box-sizing:border-box;width:100%;background:#111b20;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:10px;font:inherit;resize:vertical}.pack-metadata{max-width:700px;display:grid;gap:8px;margin-top:16px}.map-description{white-space:pre-wrap;overflow-wrap:anywhere}.stats-scroll{overflow:auto}.stats-table{width:100%;border-collapse:collapse;margin:15px 0}.stats-table th,.stats-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}#resizeBar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:10px;background:#263526}#resizeLive{color:var(--lime)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible,[role=button]:focus-visible{outline:3px solid #8edcff;outline-offset:3px}dialog{color:var(--text);background:#142027;border:1px solid var(--line);border-radius:16px;width:min(900px,90vw);max-height:85vh;overflow:auto;padding:26px}dialog::backdrop{background:#000b}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.dialog-heading h2{font-size:25px}.record-summary{display:flex;flex-wrap:wrap;gap:20px}.recent-runs{display:grid;gap:8px}.rgb-editor{border:1px solid #866cc2;padding:12px;margin:16px 0;border-radius:8px}.rgb-editor label{display:block;margin:12px 0 6px}.rgb-editor input[type=checkbox]{width:auto}.rgb-progress{display:flex;gap:16px;padding:12px;background:#29203b;align-items:center;margin-bottom:10px}.rgb-progress progress{flex:1;accent-color:#ad91ef}.mode-badge{display:inline-block;color:#bca6f5;border:1px solid #735a9f;border-radius:6px;padding:5px 8px}.beat-grid{border-color:#d8aff777!important}.scrub-timeline [data-timeline-event]:focus-visible{outline:3px solid white;z-index:6}
.time-grid.whole-beat{background:#bdc5d1;width:2px;opacity:.65;pointer-events:none}
.time-grid.offset-line{background:#ff424d;width:3px;opacity:1;z-index:3;pointer-events:none;box-shadow:0 0 5px #ff424d88}
#hazardPanel{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}
.hazard-keys{max-height:240px;overflow:auto;margin-top:10px}
.hazard-keys>div{display:flex;gap:4px;margin:4px 0}
.hazard-keys button:first-child{flex:1}
#newBarSize[hidden]{display:none}
.hazard-group-list{max-height:220px;overflow:auto;border:1px solid var(--line);padding:8px}
.hazard-group-list label{display:block;margin:6px 0}
.hazard-group-list input{width:auto;margin-right:5px}

/* v19: selection options follow the active editing tool. */
#mapSelectionOptions[hidden]{display:none}
/* Overlays belong to the viewport, independent of map aspect ratio. */
.arena .overlay{position:fixed;inset:0;z-index:30;padding:16px;overflow:auto;align-items:flex-start}
.arena .overlay .modal{margin:auto;flex-shrink:0;width:min(760px,100%);max-width:760px;max-height:calc(100dvh - 32px);overflow:auto;background:#142027;border:1px solid #49616d;border-radius:12px;overscroll-behavior:contain}
.arena .overlay .modal h2{font-size:clamp(26px,6vw,55px)}
.debug-modal label{display:block;text-align:left;margin-top:12px}.debug-modal input[type=checkbox]{width:auto}
#tempoPanel{border-top:1px solid var(--line);margin-top:18px;padding-top:12px}
.scrub-timeline .tempo-line{background:#55dcd0;width:2px;opacity:.9;pointer-events:none;z-index:2}
