:root{--ink:#070b14;--ink-2:#0c1322;--ink-3:#131c30;--line:#a0bae624;--line-strong:#a0bae647;--text:#e8eefb;--text-dim:#93a1bd;--text-faint:#7d8aa6;--warm:#ffb357;--warm-hot:#ffd9a0;--cool:#7cc8ff;--mint:#5ef2c2;--danger:#ff5d73;--done:#a8ffbf;--radius:10px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-size:15px}#app{position:fixed;inset:0;overflow:hidden}button{font:inherit;color:inherit}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:11px;font-weight:600}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--warm);margin:0;font-size:12px}.screen{position:absolute;inset:0}.btn{appearance:none;border:1px solid var(--line-strong);background:var(--ink-3);color:var(--text);letter-spacing:.02em;cursor:pointer;border-radius:999px;padding:11px 20px;font-weight:600;transition:background .15s,border-color .15s,transform .1s}.btn:hover{border-color:var(--text-dim)}.btn:active{transform:scale(.97)}.btn.primary{color:#1d1205;background:linear-gradient(#ffc477,#ff9d3d);border-color:#0000;box-shadow:0 6px 24px -8px #ff9d3db3}.btn.small{padding:6px 14px;font-size:13px}.btn:focus-visible,.icon-btn:focus-visible,.tool:focus-visible,.level-card:focus-visible{outline:2px solid var(--cool);outline-offset:2px}.icon-btn{appearance:none;border:1px solid var(--line);background:var(--ink-2);width:40px;height:40px;color:var(--text-dim);cursor:pointer;border-radius:10px;flex:none;place-items:center;transition:color .15s,border-color .15s,background .15s;display:inline-grid}.icon-btn svg{width:20px;height:20px}.icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--line-strong)}.icon-btn.active{color:var(--warm);border-color:#ffb35780}.icon-btn:disabled{opacity:.35;cursor:default}.link-btn{appearance:none;color:var(--cool);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:13px;display:inline-flex}.link-btn svg{width:16px;height:16px}.title-bg{object-fit:cover;opacity:.85;width:100%;height:100%;position:absolute;inset:0}.title-scrim{background:radial-gradient(at 30% 55%,#070b14db 0%,#070b148c 45%,#070b1426 80%),linear-gradient(90deg,#070b14b3,#0000 70%);position:absolute;inset:0}.title-card{left:max(6vw, calc(16px + var(--safe-l)));gap:18px;max-width:min(520px,100vw - 32px);display:grid;position:absolute;top:50%;transform:translateY(-50%)}.wordmark{letter-spacing:-.035em;background:linear-gradient(100deg, var(--warm-hot) 0%, var(--warm) 38%, #ff8a5c 60%, var(--cool) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(44px,9vw,96px);font-weight:800;line-height:.95}.tagline{color:var(--text-dim);margin:0;font-size:17px;line-height:1.5}.title-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.title-actions .btn{padding:14px 34px;font-size:16px}.title-progress:empty{display:none}.title-progress{color:var(--text-faint);font-family:var(--mono);margin:0;font-size:13px}.select{background:radial-gradient(ellipse at 80% -10%, #ffb35717, transparent 50%), radial-gradient(ellipse at 0% 110%, #7cc8ff14, transparent 50%), var(--ink);flex-direction:column;display:flex}.select-bar{padding:calc(14px + var(--safe-t)) calc(16px + var(--safe-r)) 14px calc(16px + var(--safe-l));border-bottom:1px solid var(--line);align-items:center;gap:14px;display:flex}.select-bar h1{margin:0;font-size:20px;font-weight:700}.chapters{padding:20px calc(16px + var(--safe-r)) calc(32px + var(--safe-b)) calc(16px + var(--safe-l));flex:1;align-content:start;gap:28px;width:100%;max-width:1100px;margin:0 auto;display:grid;overflow-y:auto}.chapter-head{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.chapter-head h2{margin:0;font-size:22px}.chapter-num{letter-spacing:.16em;text-transform:uppercase;color:var(--warm);font-size:11px}.chapter-stars{font-family:var(--mono);color:var(--text-faint);margin-left:auto;font-size:13px}.chapter.soon{opacity:.55}.chapter.soon .chapter-num{color:var(--text-faint)}.soon-note{border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--text-faint);margin:0;padding:16px;font-size:14px}.level-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:12px;display:grid}.level-card{appearance:none;text-align:left;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(180deg, var(--ink-3), var(--ink-2));cursor:pointer;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;padding:16px;transition:border-color .15s,transform .12s;display:grid}.level-card:hover:not(:disabled){border-color:#ffb35773;transform:translateY(-1px)}.level-card.locked{cursor:default;opacity:.45}.level-card.done{border-color:#5ef2c240}.level-thumb{border:1px solid var(--line);border-radius:6px;grid-column:1/-1;width:100%;display:block}.level-card.locked .level-thumb{filter:grayscale(.8)}.level-num{font-family:var(--mono);color:var(--text-faint);grid-row:span 2;font-size:26px}.level-card.open .level-num{color:var(--warm)}.level-name{font-weight:650}.lock svg{width:16px;height:16px;color:var(--text-faint)}.stars{gap:2px;display:inline-flex}.stars .star svg{width:16px;height:16px;color:var(--text-faint)}.stars .star.on svg{color:var(--warm);fill:var(--warm)}.play{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);grid-template:"top top""stage panel"1fr/1fr minmax(240px,300px);display:grid}.topbar{border-bottom:1px solid var(--line);grid-area:top;align-items:center;gap:14px;min-width:0;padding:10px 14px;display:flex}.title-block{min-width:0;display:grid}.title-block h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:17px;font-weight:700;overflow:hidden}.level-id{color:var(--warm);letter-spacing:.08em;font-size:11px}.goals{gap:10px;min-width:0;margin-left:auto;display:flex}.goal{border:1px solid var(--line);background:var(--ink-2);border-radius:10px;align-items:center;gap:8px;min-width:170px;padding:6px 10px;transition:border-color .2s,box-shadow .2s;display:flex}.goal-icon svg{width:20px;height:20px;display:block}.goal.focus .goal-icon,.goal.resonate .goal-icon,.goal.sustain .goal-icon{color:var(--warm)}.goal.silence .goal-icon{color:var(--cool)}.goal-body{flex:1;gap:4px;display:grid}.goal-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.goal-label{font-size:12px;font-weight:650}.goal-value{color:var(--text-dim);font-size:11px}.meter{background:#ffffff12;border-radius:3px;height:5px;position:relative;overflow:hidden}.meter-fill{background:var(--warm);border-radius:3px;width:0;height:100%;transition:width .1s linear}.goal.silence .meter-fill{background:var(--cool)}.goal.silence.over .meter-fill{background:var(--danger)}.meter-mark{background:var(--text);opacity:.6;width:2px;position:absolute;top:-1px;bottom:-1px;left:66.6667%}.hold{background:#ffffff0d;border-radius:1px;height:2px;overflow:hidden}.hold-fill{background:var(--done);width:0;height:100%}.goal.met{border-color:#a8ffbf59}.goal.complete{border-color:var(--done);box-shadow:0 0 18px -6px var(--done)}.clock{color:var(--text-dim);white-space:nowrap;font-size:13px}.stage{grid-area:stage;place-items:center;min-width:0;min-height:0;padding:12px;display:grid;position:relative;overflow:hidden}.board{box-shadow:0 0 0 1px var(--line-strong), 0 20px 60px -20px #000c;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;border-radius:6px;position:relative;overflow:hidden}.board .layer{width:100%;height:100%;display:block;position:absolute;inset:0}.stage.paused .board:after{content:"Paused";border:1px solid var(--line-strong);letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);pointer-events:none;background:#070b14cc;border-radius:999px;padding:4px 12px;font-size:12px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line-strong);opacity:0;pointer-events:none;background:#131c30f0;border-radius:999px;max-width:calc(100% - 32px);padding:8px 16px;font-size:13px;transition:opacity .2s,transform .2s;position:absolute;bottom:22px;left:50%;transform:translate(-50%,8px)}.toast.show{opacity:1;transform:translate(-50%)}.banner{background:#280e16f0;border:1px solid #ff5d7380;border-radius:999px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 10px 8px 16px;font-size:13px;display:flex;position:absolute;top:20px;left:50%;transform:translate(-50%)}.banner[hidden]{display:none}.panel{border-left:1px solid var(--line);background:linear-gradient(#0c132299,#0000);flex-direction:column;grid-area:panel;gap:18px;padding:14px;display:flex;overflow-y:auto}.panel section{gap:10px;display:grid}.brief p{color:var(--text-dim);margin:0;font-size:14px;line-height:1.5}.brief .hint{color:var(--cool);border-left:2px solid var(--cool);background:#7cc8ff0f;padding:8px 10px;font-size:13px}.hint[hidden]{display:none}.palette{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}.tool{appearance:none;text-align:left;border:1px solid var(--line);background:var(--ink-2);cursor:pointer;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;padding:8px 10px;transition:border-color .15s,background .15s;display:grid}.tool-icon{color:var(--mint);grid-row:span 2;display:grid}.tool-name{font-size:13px;font-weight:650}.tool-meta{color:var(--text-faint);font-size:11px}.tool:hover:not(:disabled){border-color:#5ef2c266}.tool.armed{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint) inset;background:#5ef2c21a}.tool:disabled{opacity:.4;cursor:default}.budget{color:var(--text-dim);align-items:center;gap:10px;font-size:12px;display:flex}.pips{flex:1;gap:4px;display:flex}.pip{background:#ffffff1a;border-radius:2px;width:14px;height:6px}.pip.over-par{outline-offset:1px;outline:1px dashed #ffb35780}.pip.used{background:var(--mint)}.tune{border-radius:var(--radius);background:#5ef2c20a;border:1px solid #5ef2c24d;padding:12px}.tune[hidden]{display:none}.slider{grid-template-columns:1fr auto;align-items:center;gap:4px 10px;font-size:12px;display:grid}.slider input{accent-color:var(--mint);grid-area:2/1/auto/-1;width:100%}.readout{color:var(--text-dim);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.meter.energy .meter-fill{background:var(--cool)}.meter.energy .meter-fill.over{background:var(--danger)}.controls{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex!important}.result-layer{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#04070d99;place-items:center;padding:16px;animation:.25s ease-out fade;display:grid;position:absolute;inset:0}.result-layer[hidden]{display:none}@keyframes fade{0%{opacity:0}}.result-card{border:1px solid var(--line-strong);background:linear-gradient(#151f36,#0c1322);border-radius:16px;gap:16px;width:min(420px,100%);padding:26px;animation:.35s cubic-bezier(.2,.9,.3,1.2) rise;display:grid;box-shadow:0 30px 80px -20px #000c}@keyframes rise{0%{opacity:0;transform:translateY(16px)scale(.97)}}.result-card h2{letter-spacing:-.02em;margin:0;font-size:28px}.star-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.star-list li{color:var(--text-faint);align-items:center;gap:12px;display:flex}.star-list li span:last-child{display:grid}.star-list small{font-size:12px}.star-list .star svg{width:26px;height:26px}.star-list li.earned{color:var(--text)}.star-list li.earned .star svg{color:var(--warm);fill:var(--warm);filter:drop-shadow(0 0 8px #ffb35799)}.best{color:var(--text-dim);margin:0;font-size:13px}.result-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.fatal{max-width:560px;margin:15vh auto;padding:0 16px}.fatal pre{white-space:pre-wrap;color:var(--text-dim)}@media (max-width:900px) and (orientation:landscape){.play{grid-template-columns:1fr 220px}.topbar{gap:10px;padding:6px 10px}.goal{min-width:130px}.brief{display:none!important}.panel{gap:12px;padding:10px}.palette{grid-template-columns:1fr}.stage{padding:6px}}@media (orientation:portrait){.play{grid-template:"top""stage""panel"minmax(0,1fr)/1fr}.topbar{flex-wrap:wrap}.goals{order:3;width:100%;margin-left:0}.goal{flex:1;min-width:0}.clock{margin-left:auto}.stage{aspect-ratio:16/10;max-height:52vh;padding:8px}.panel{border-left:0;border-top:1px solid var(--line)}.controls{margin-top:0}}.reduce-motion *,.reduce-motion :before,.reduce-motion :after{transition:none!important;animation:none!important}.piece-bar{z-index:5;background:#0c1322f0;border:1px solid #5ef2c259;border-radius:12px;gap:4px;padding:4px;animation:.14s ease-out pop;display:flex;position:absolute;box-shadow:0 10px 30px -10px #000000e6}.piece-bar[hidden]{display:none}@keyframes pop{0%{opacity:0;transform:scale(.9)}}.bar-btn{appearance:none;width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.bar-btn svg{width:19px;height:19px}.bar-btn:hover{background:#ffffff12}.bar-btn.danger{color:var(--danger)}.bar-btn.danger:hover{background:#ff5d7324}.trash-hint{border:1px solid var(--danger);color:#ffd0d7;pointer-events:none;z-index:6;background:#3c0e18f2;border-radius:999px;padding:6px 14px;font-size:13px;position:absolute;top:18px;left:50%;transform:translate(-50%)}.trash-hint[hidden]{display:none}.board.trash{box-shadow:0 0 0 2px var(--danger), 0 0 40px -6px #ff5d7399}.how{color:var(--text-faint);margin:0;font-size:12px;line-height:1.5}.inline-icon svg{vertical-align:-2px;width:13px;height:13px}.tune .material{color:var(--text-dim);margin:0;font-size:13px}.play.light .goal.focus .goal-icon,.play.light .goal.silence .goal-icon{color:var(--goal-color,var(--text))}.play.light .goal.focus .meter-fill{background:var(--goal-color,var(--warm))}.play.light .board{box-shadow:0 0 0 1px #c8dcff38,0 20px 60px -20px #000000e6}.level-card.light .level-num{background:linear-gradient(100deg,#ff5a4f,#ffe066,#4dff7a,#5b8cff);color:#0000;-webkit-background-clip:text;background-clip:text}.modal-layer{z-index:50;padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#04070d9e;place-items:center;animation:.2s ease-out fade;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--line-strong);background:linear-gradient(#151f36,#0c1322);border-radius:16px;gap:12px;width:min(440px,100%);max-height:100%;padding:22px;animation:.3s cubic-bezier(.2,.9,.3,1.2) rise;display:grid;overflow-y:auto;box-shadow:0 30px 80px -20px #000c}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{margin:0;font-size:22px}.modal-card h3.label{margin-top:8px}.setting-row{justify-content:space-between;align-items:center;gap:16px;min-height:40px;font-size:14px;display:flex}.setting-row input[type=range]{width:55%;accent-color:var(--mint)}.setting-text{gap:2px;display:grid}.setting-text small{color:var(--text-faint);font-size:12px}.switch{flex:none;width:44px;height:26px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch-track{background:var(--ink-3);border:1px solid var(--line-strong);pointer-events:none;border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch-track:after{content:"";background:var(--text-dim);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{border-color:var(--mint);background:#5ef2c240}.switch input:checked+.switch-track:after{background:var(--mint);transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--cool);outline-offset:2px}.segmented{border:1px solid var(--line-strong);border-radius:999px;flex:none;display:inline-flex;overflow:hidden}.segmented button{appearance:none;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:0;padding:7px 12px;font-size:13px}.segmented button.on{background:var(--ink-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.segmented button:focus-visible{outline:2px solid var(--cool);outline-offset:-2px}.setting-actions{flex-wrap:wrap;gap:10px;display:flex}.setting-note:not(:empty){color:var(--text-faint);flex-basis:100%;font-size:12px}.settings-foot{color:var(--text-faint);font-family:var(--mono);flex-wrap:wrap;justify-content:center;gap:4px 16px;margin:18px 0 0;font-size:12px;display:flex}.settings-foot a{color:var(--text-dim)}.btn.danger{color:#ffb3bf;border-color:#ff5d7380}.slow-badge,.perf-stats{z-index:4;pointer-events:none;border:1px solid var(--line);background:#070b14c7;border-radius:999px;padding:4px 10px;font-size:12px;position:absolute}.slow-badge{color:var(--warm);top:10px;right:12px}.perf-stats{color:var(--text-dim);bottom:10px;left:12px}.slow-badge[hidden],.perf-stats[hidden]{display:none}.select-bar .settings-btn{margin-left:auto}.coach-layer{z-index:20;pointer-events:none;position:absolute;inset:0}.coach-spot{box-shadow:0 0 0 2px var(--warm), 0 0 0 9999px #04070d8c;border-radius:14px;transition:left .25s,top .25s,width .25s,height .25s;position:absolute}.coach-spot[hidden]{width:0;height:0;display:block;box-shadow:0 0 0 9999px #04070d8c}.coach-card{pointer-events:auto;border:1px solid var(--line-strong);background:linear-gradient(#151f36,#0c1322);border-radius:14px;gap:8px;padding:16px 18px;display:grid;position:absolute;box-shadow:0 20px 60px -20px #000000e6}.coach-card h2{margin:0;font-size:18px}.coach-card p{color:var(--text-dim);margin:0;font-size:14px;line-height:1.45}.coach-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.editor .editor-actions{gap:8px;margin-left:auto;display:flex}.editor-panel{gap:14px}.editor-tabs{align-self:flex-start}.editor-section{gap:8px;display:grid}.editor-rows{gap:6px;display:grid}.editor-field{color:var(--text-dim);grid-template-columns:1fr 1.2fr;align-items:center;gap:8px;font-size:12px;display:grid}.editor-field.wide{grid-template-columns:1fr}.editor-field input,.editor-field select,.editor-field textarea,.editor-select{background:var(--ink);width:100%;min-width:0;color:var(--text);border:1px solid var(--line-strong);font:inherit;border-radius:6px;padding:5px 7px;font-size:13px}.editor-pair{grid-template-columns:1fr 1fr;gap:6px;display:grid}.editor-check{align-items:center;gap:8px;font-size:13px;display:flex}.editor-check input{accent-color:var(--mint)}.editor-tunes{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.editor-tunes .label{width:100%}.editor-card{border:1px solid var(--line);background:var(--ink-2);border-radius:8px;gap:6px;padding:10px;display:grid}.editor-card-head{text-transform:capitalize;justify-content:space-between;align-items:center;font-size:13px;display:flex}.icon-btn.small{width:30px;height:30px}.editor-inv{border-top:1px solid var(--line);gap:6px;padding:6px 0;display:grid}.editor-error:empty{display:none}.editor-error{color:#ffb3bf;border:1px solid #ff5d7380;border-radius:8px;margin:0;padding:8px 10px;font-size:13px}.title-editor{margin-top:4px}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.board:focus-visible{outline:2px solid var(--cool);outline-offset:3px}.how.keys{font-size:12px}.unlock-banner{border-radius:var(--radius);background:#ffb3570f;border:1px solid #ffb35759;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px;padding:12px 14px;display:flex}.unlock-banner p{color:var(--text-dim);flex:260px;margin:0;font-size:14px}
