:root{--bg:#0d0f12;--fg:#f2f4f7;--dim:#8b93a1;--panel:#171b21;--line:#262c35;--accent:#4ade80;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sa-top:env(safe-area-inset-top,0px);--sa-right:env(safe-area-inset-right,0px);--sa-bottom:env(safe-area-inset-bottom,0px);--sa-left:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;overscroll-behavior:none;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}button{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:10px;min-height:48px;padding:12px 18px}button:disabled{opacity:.4}button.primary{background:var(--accent);color:#06240f;border-color:#0000;font-weight:600}button.on{border-color:var(--accent);color:var(--accent)}.setup{max-width:720px;padding:calc(24px + var(--sa-top)) calc(20px + var(--sa-right)) calc(64px + var(--sa-bottom)) calc(20px + var(--sa-left));margin:0 auto}.setup h1{margin:0 0 4px;font-size:22px}.setup h2{letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-size:14px}.setup section{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-top:18px;padding:18px}.sub{color:var(--dim);margin:0 0 8px}.dim{color:var(--dim);font-size:14px}.ok{color:var(--accent);font-weight:600}.caps{opacity:.75;margin-top:12px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.filepick{font:inherit;color:#06240f;background:var(--accent);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:12px 18px;font-weight:600;display:inline-flex}.filepick input{display:none}.ready-line{margin:0 0 6px;font-size:20px;font-weight:700}.ready-yes{border-color:var(--accent)!important}.ready-yes .ready-line{color:var(--accent)}.ready-no .ready-line{color:#fca5a5}.probes{margin:14px 0 0;padding:0;font-family:ui-monospace,Consolas,monospace;font-size:13px;list-style:none}.probes li{border-bottom:1px solid var(--line);grid-template-columns:18px 1fr;gap:2px 6px;padding:7px 0;display:grid}.probes strong{font-weight:600}.probes em{color:var(--dim);word-break:break-word;grid-column:2;font-style:normal}.probes .pass span{color:var(--accent)}.probes .fail span,.probes .fail em{color:#fca5a5}.err{color:#fca5a5;word-break:break-word;background:#3b1418;border:1px solid #7f1d24;border-radius:10px;padding:12px;font-size:14px}.bar{background:#0b0d10;border-radius:999px;height:10px;margin:10px 0;overflow:hidden}.bar-fill{background:var(--accent);height:100%;transition:width .2s}.presets{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.offset{color:var(--dim);flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;font-size:14px;display:flex}.offset input{flex:1;min-width:160px}.offset strong{color:var(--fg);min-width:64px}.rides{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.rides li{border:1px solid var(--line);background:#0f1318;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;padding:12px;display:flex}.ride-main{flex-direction:column;gap:2px;min-width:0;display:flex}.ride-main strong{font-size:17px}.ride-main .dim,.ride-main .ok,.ride-main .err-inline{font-size:13px}.err-inline{color:#fca5a5;font-weight:600}.ride-actions{flex-wrap:wrap;gap:6px;display:flex}.ride-actions button{min-height:42px;padding:9px 12px;font-size:14px}.filepick.alt{background:var(--panel);color:var(--fg);border:1px solid var(--line);font-weight:400}.fired{margin:0;padding:0;font-size:14px;list-style:none}.fired li{border-bottom:1px solid var(--line);padding:6px 0}.fired code{color:var(--accent);margin-right:10px;font-family:ui-monospace,Consolas,monospace}.editor{min-height:100dvh;padding:calc(10px + var(--sa-top)) calc(14px + var(--sa-right)) calc(10px + var(--sa-bottom)) calc(14px + var(--sa-left));flex-direction:column;gap:10px;display:flex}.ed-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ed-name{min-width:180px;font:inherit;color:var(--fg);background:0 0;border:1px solid #0000;border-radius:8px;flex:1;padding:6px 8px;font-size:19px;font-weight:700}.ed-name:hover,.ed-name:focus{border-color:var(--line);background:var(--panel);outline:none}.ed-top-actions{gap:8px;display:flex}.ed-body{flex:1;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:14px;min-height:0;display:grid}.ed-tracks{min-width:0;max-height:62vh;overflow-y:auto}.ed-tracks ol{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.ed-tracks li{border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:4px;display:grid}.ed-tracks li.on{background:#1a2029}.ed-track{text-align:left;min-height:0;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;grid-template-columns:4px 1fr;align-items:stretch;gap:8px;min-width:0;padding:7px 4px;display:grid}.ed-track-spine{border-radius:999px}.ed-track-text{flex-direction:column;min-width:0;display:flex}.ed-track-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.ed-track-text em{color:var(--dim);font-size:12px;font-style:normal}.ed-track-move{gap:2px;padding-right:4px;display:flex}.ed-track-move button{border-radius:6px;min-height:26px;padding:2px 7px;font-size:12px}.ed-main{flex-direction:column;gap:10px;min-width:0;display:flex}.ed-track-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ed-track-head label,.ed-inspector label{color:var(--dim);align-items:center;gap:8px;font-size:13px;display:flex}.ed-track-head input,.ed-inspector input,.ed-inspector select{font:inherit;color:var(--fg);border:1px solid var(--line);background:#0c1014;border-radius:8px;min-width:0;padding:7px 9px;font-size:14px}.ed-bar{border:1px solid var(--line);touch-action:none;background:#0b0d10;border-radius:10px;height:74px;position:relative;overflow:hidden}.ed-block{min-height:0;font:inherit;text-align:left;cursor:pointer;border:0;border-right:1px solid #0000008c;align-items:flex-start;padding:4px 6px;font-size:12px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.ed-block span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ed-block.on{box-shadow:inset 0 0 0 3px #fff}.ed-handle{cursor:col-resize;background:linear-gradient(90deg,#0000 3px,#ffffffd9 3px 6px,#0000 6px);width:9px;margin-left:-4px;position:absolute;top:0;bottom:0}.ed-playhead{pointer-events:none;background:#fff;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;box-shadow:0 0 6px #000000e6}.ed-transport{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.add-cue{border-color:var(--accent);color:var(--accent);font-weight:700}.ed-scrub{flex:1;min-width:140px}.ed-time{font-variant-numeric:tabular-nums;color:var(--dim);font-size:14px}kbd{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.ed-inspector{background:var(--panel);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 14px;padding:12px;display:grid}.ed-inspector .wide,.ed-inspector .run-side-label{grid-column:1/-1}.ed-inspector label.wide input{flex:1}.pair{gap:6px;display:flex}.pair input{width:5.5em}.ed-intensity{gap:5px;margin-top:5px;display:flex}.ed-intensity button{border:2px solid #0000;flex:1;min-height:38px;padding:4px;font-weight:800}.ed-intensity button.on{border-color:#fff}.ed-inspector-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ed-overview-bar{gap:2px;height:22px;margin-top:6px;display:flex}.ed-ov-track{cursor:pointer;opacity:.55;border-radius:3px;height:100%;display:flex;overflow:hidden}.ed-ov-track.on{opacity:1;box-shadow:0 0 0 2px #fff}.ed-ov-track span{height:100%}@media (width<=720px){.ed-body{grid-template-columns:1fr}.ed-tracks{max-height:30vh}}.confirm-backdrop{z-index:50;padding:max(16px, var(--sa-top)) max(16px, var(--sa-right)) max(16px, var(--sa-bottom)) max(16px, var(--sa-left));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040609db;place-items:center;display:grid;position:fixed;inset:0}.confirm-panel{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:16px;width:min(560px,100%);max-height:100%;padding:clamp(16px,4vh,30px) clamp(16px,4vw,32px);overflow:auto}.confirm-panel h2{color:var(--fg);letter-spacing:normal;text-transform:none;margin:0;font-size:clamp(26px,5.5vh,44px);line-height:1.1}.confirm-sub{color:var(--dim);font-variant-numeric:tabular-nums;margin:8px 0 0;font-size:clamp(13px,2.2vh,17px)}.confirm-actions{gap:12px;margin-top:clamp(14px,3vh,24px);display:flex}.confirm-keep{background:var(--accent);color:#06240f;border-color:#0000;flex:2;min-height:clamp(56px,11vh,84px);font-size:clamp(17px,3vh,24px);font-weight:800}.confirm-end{color:#fca5a5;background:0 0;border-color:#7f1d24;flex:1;min-height:clamp(56px,11vh,84px);font-size:clamp(14px,2.2vh,18px)}.confirm-count{color:var(--dim);margin:10px 0 0;font-size:13px}.run{height:100dvh;padding:calc(12px + var(--sa-top)) calc(18px + var(--sa-right)) calc(14px + var(--sa-bottom)) calc(18px + var(--sa-left));grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:minmax(0,2.3fr) minmax(0,1.4fr) minmax(0,1.6fr);gap:8px 18px;display:grid;overflow:hidden}.run-main,.run-side,.run-queue{min-width:0;min-height:0;overflow:hidden}.run-main{flex-direction:column;justify-content:center;display:flex}.run-badge{background:var(--cue);color:var(--cue-ink,#08120b);letter-spacing:.1em;border-radius:8px;flex:none;align-self:flex-start;padding:5px 12px;font-size:min(2.2vw,4.2vh,20px);font-weight:800;display:inline-block}.run-label{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;margin:min(1.6vh,14px) 0;font-size:min(6.4vw,11vh,68px);font-weight:700;line-height:1.06;display:-webkit-box;overflow:hidden}.run-numbers{color:var(--dim);flex-wrap:wrap;gap:16px;font-size:min(2.5vw,4.6vh,26px);display:flex}.run-side{text-align:right;flex-direction:column;justify-content:center;min-width:0;display:flex}.run-side-label{letter-spacing:.12em;color:var(--dim);flex:none;font-size:min(1.4vw,2.8vh,13px)}.run-block{font-variant-numeric:tabular-nums;font-size:min(12vw,21vh,130px);font-weight:800;line-height:1}@keyframes pulse{to{background:#4a3d14}}.run-clocks{color:var(--dim);font-variant-numeric:tabular-nums;margin-top:min(2vh,16px);font-size:min(1.55vw,3vh,15px)}.run-clocks strong{color:var(--fg)}.run-diag{opacity:.6;margin-top:6px}.run-queue{flex-direction:column;min-width:0;display:flex}.run-queue ol{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex-direction:column;flex:1;gap:min(.8vh,6px);min-height:0;margin:min(1vh,8px) 0 0;padding:0 6px 0 0;list-style:none;display:flex;overflow-y:auto}.run-queue ol::-webkit-scrollbar{width:6px}.run-queue ol::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.q-group{flex:none;grid-template-columns:4px 1fr;gap:0 8px;min-width:0;display:grid}.q-spine{border-radius:999px;align-self:stretch}.q-group-body{flex-direction:column;gap:min(.5vh,4px);min-width:0;display:flex}.q-song{z-index:1;background:var(--bg);align-items:baseline;gap:6px;min-width:0;padding:3px 0 2px;display:flex;position:sticky;top:0}.q-song-feature{letter-spacing:.1em;text-transform:uppercase;color:var(--dim);flex:none;font-size:min(1.15vw,2.3vh,11px);font-weight:800}.q-song-title{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:min(1.5vw,2.9vh,14px);font-weight:600;overflow:hidden}.q-group.on .q-song-title{color:var(--accent)}.q-row{border:0;border-left:4px solid var(--q);text-align:left;min-width:0;min-height:0;font:inherit;color:inherit;cursor:pointer;background:#12161c;border-radius:0 8px 8px 0;grid-template-columns:1fr auto;gap:0 10px;padding:min(.9vh,6px) 8px min(.9vh,6px) 9px;display:grid}.q-row:active{background:#1b212a}.q-row.past{opacity:.4}.q-row.now{box-shadow:inset 0 0 0 1px var(--q);background:#1c242e}.q-row.now .q-time em{color:var(--q);font-weight:700}.q-type{letter-spacing:.1em;text-transform:uppercase;color:var(--q);grid-column:1;font-size:min(1.25vw,2.5vh,12px);font-weight:700}.q-label{text-overflow:ellipsis;white-space:nowrap;grid-column:1;font-size:min(1.7vw,3.2vh,16px);line-height:1.15;overflow:hidden}.q-time{text-align:right;font-variant-numeric:tabular-nums;grid-area:1/2/span 2;align-self:center;font-size:min(2vw,3.8vh,19px);font-weight:700}.q-time em{color:var(--dim);font-size:min(1.25vw,2.5vh,12px);font-style:normal;font-weight:400;display:block}.q-row.lead{background:#2a2410;animation:.7s ease-in-out infinite alternate pulse}.queue-end{border-left-color:var(--line);color:var(--dim);padding:8px 10px}.run-track-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.song-head-row{align-items:baseline;gap:8px;min-width:0;margin-top:min(1.6vh,12px);font-size:min(1.55vw,3vh,15px);display:flex}.song-feature{background:var(--f);color:var(--f-ink,#08120b);text-transform:uppercase;letter-spacing:.08em;border-radius:6px;flex:none;padding:2px 8px;font-size:min(1.3vw,2.6vh,12px);font-weight:800}.song-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dim);text-align:left;flex:1;overflow:hidden}.song-left{font-variant-numeric:tabular-nums;flex:none;font-weight:700}.song-bar{background:color-mix(in srgb, var(--f) 22%, #0b0d10);border-radius:999px;height:min(1.6vh,12px);min-height:8px;margin-top:5px;position:relative;overflow:hidden}.song-seg{position:absolute;top:0;bottom:0;box-shadow:inset -1px 0 #0b0d10}.song-head{background:#fff;width:2px;position:absolute;top:-2px;bottom:-2px;box-shadow:0 0 4px #000000e6}.run-progress{background:#0b0d10;border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.run-progress-fill{background:var(--dim);height:100%}.run-transport{grid-column:1/-1;gap:10px;display:flex}@media (orientation:portrait){.run{grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-columns:1fr;gap:8px 0}.run-main,.run-side{display:block}.run-side{grid-template-columns:auto 1fr;align-items:end;gap:0 16px;display:grid}.run-side-label:first-child{grid-column:1/-1}.run-block{grid-row:2}.run-clocks{grid-row:2;margin:0 0 2px}.song-head-row{grid-area:3/1/auto/-1;font-size:14px}.song-feature{font-size:11px}.song-bar{grid-area:4/1/auto/-1}.run-side{text-align:left}.run-badge{font-size:15px}.run-label{-webkit-line-clamp:2;line-clamp:2;font-size:clamp(24px,6.5vw,38px)}.run-numbers{font-size:clamp(15px,4.2vw,20px)}.run-side-label{font-size:12px}.run-block{font-size:clamp(48px,17vw,88px)}.run-clocks{font-size:14px}.q-type{font-size:11px}.q-label{font-size:clamp(14px,3.8vw,17px)}.q-time{font-size:clamp(16px,4.4vw,20px)}.q-time em{font-size:11px}}
