.score-view{--score-paper:var(--paper,#fffdf8);--score-ink:var(--paper-ink,#14141a);--score-faint:#8a8880;--score-rule:#e3ded1;--score-accent:var(--accent,#ff6a4d);--score-bad:#c62d2d;--score-warn:#a5700d;--score-lock:#efe6cf;border:1px solid var(--line,#33333f);border-radius:var(--radius,12px);background:var(--score-paper);flex:auto;min-width:0;min-height:220px;position:relative;overflow:hidden}.score-view:focus-visible{outline:2px solid var(--score-accent);outline-offset:2px}.score-scroll{overscroll-behavior:contain;scrollbar-color:#cfc7b4 transparent;height:100%;max-height:100%;overflow:auto}.score-paper{color:var(--score-ink);margin:0 auto;position:relative}.score-under,.score-chrome{pointer-events:none;position:absolute;inset:0}.score-under{z-index:0}.score-plate{z-index:1;position:relative}.score-chrome{z-index:2}.score-plate svg,svg.score-svg{pointer-events:none;display:block}.score-plate .vf-note .hit{cursor:pointer;pointer-events:all}.score-plate .vf-note:hover .hit{fill:#14141a0d}.score-plate .vf-note[data-state=selected],.score-plate .vf-note[data-state=selected] path,.score-plate .vf-note[data-state=selected] text,.score-plate .vf-note[data-state=selected] rect:not(.hit){fill:var(--score-accent);stroke:var(--score-accent)}.score-plate .vf-note[data-state=error],.score-plate .vf-note[data-state=error] path,.score-plate .vf-note[data-state=error] text,.score-plate .vf-note[data-state=error] rect:not(.hit){fill:var(--score-bad);stroke:var(--score-bad)}.score-plate .vf-note[data-state=warning],.score-plate .vf-note[data-state=warning] path,.score-plate .vf-note[data-state=warning] text,.score-plate .vf-note[data-state=warning] rect:not(.hit){fill:var(--score-warn);stroke:var(--score-warn)}.score-plate .vf-note[data-selected] .hit{fill:#ff6a4d1f;stroke:var(--score-accent);stroke-width:1px;rx:3}.bar-locked{background:var(--score-lock);opacity:.7;border-radius:3px;position:absolute}.bar-issue{opacity:.85;border-radius:2px;height:2px;position:absolute}.bar-issue.error{background:var(--score-bad)}.bar-issue.warning{background:var(--score-warn)}.bar-lock{width:15px;height:15px;color:var(--score-ink);cursor:pointer;pointer-events:auto;opacity:.16;background:0 0;border:1px solid #c9c1ae;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:9px;line-height:1;transition:opacity .12s,border-color .12s,background .12s;display:inline-flex;position:absolute;transform:translate(-50%,-100%)}.score-view:hover .bar-lock,.score-view:focus-within .bar-lock{opacity:.5}.bar-lock:hover,.bar-lock:focus-visible{opacity:1;border-color:var(--score-accent);background:#fff}.bar-lock.on,.score-view:hover .bar-lock.on{opacity:1;background:var(--score-lock);border-color:#b9ad8d}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cursor-band{background:#ff6a4d21;border-radius:4px;position:absolute}.cursor-line{background:var(--score-accent);opacity:.85;will-change:left;border-radius:1px;width:2px;margin-left:-1px;transition:left 60ms linear;position:absolute}.writing-accent{border:1.5px solid var(--score-accent);border-radius:6px;animation:1.5s ease-in-out infinite score-writing;position:absolute;box-shadow:0 0 0 3px #ff6a4d1a}@keyframes score-writing{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.writing-accent{opacity:.85;animation:none}.cursor-line{transition:none}.score-scroll{scroll-behavior:auto}}.score-fallback{color:#6f6c64;text-align:center;margin:0;padding:22px 18px;font-size:13px}@media print{.score-view{background:#fff;border:0;border-radius:0;height:auto;min-height:0;overflow:visible}.score-scroll{height:auto;max-height:none;overflow:visible}.bar-lock,.cursor-band,.cursor-line,.writing-accent,.bar-issue,.bar-locked{display:none!important}.score-plate .vf-note[data-state] path,.score-plate .vf-note[data-state] text,.score-plate .vf-note[data-state] rect:not(.hit){fill:#000;stroke:#000}}:root{--bg:#17171c;--panel:#1f1f26;--panel-2:#262630;--line:#33333f;--line-2:#45455470;--ink:#ecebe6;--ink-2:#b9b7b0;--muted:#8d8b85;--paper:#fffdf8;--paper-ink:#14141a;--accent:#ff6a4d;--accent-ink:#ffb3a3;--ok:#4ecb8a;--warn:#f0c264;--bad:#ff7a7a;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Inter", system-ui, -apple-system, "Apple SD Gothic Neo", sans-serif;--serif:"Instrument Serif", Georgia, serif;--radius:12px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3{margin:0;font-weight:600}.serif{font-family:var(--serif);font-weight:400}.mono{font-family:var(--mono);font-size:12px}.muted{color:var(--muted)}.small{font-size:12.5px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.app{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--panel);flex:none;align-items:center;gap:18px;padding:10px 16px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-weight:600;text-decoration:none;display:inline-flex}.brand .logo{flex-direction:column;justify-content:space-between;width:26px;height:20px;display:flex;position:relative}.brand .logo i{background:var(--ink-2);height:2px;display:block}.brand .logo b{background:var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;bottom:1px;right:0}.topbar .now{flex-direction:column;min-width:0;max-width:62vw;line-height:1.3;display:flex}.topbar .now b,.topbar .now span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar .now b{font-size:14px}.topbar nav{gap:14px;margin-left:auto;font-size:13px;display:flex}.topbar nav a{color:var(--ink-2);text-decoration:none}.topbar nav a:hover{color:var(--ink)}.stage{flex:1;grid-template-columns:minmax(0,1fr) 340px;gap:14px;min-height:0;padding:14px;display:grid}.stage main{flex-direction:column;gap:12px;min-width:0;display:flex}.stage aside{flex-direction:column;gap:12px;padding-right:2px;display:flex;overflow:auto}@media (width<=1080px){.stage{grid-template-columns:1fr;overflow:auto}.stage aside{overflow:visible}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.card-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;display:flex}.card-h h3{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:11.5px}.card-b{padding:12px}.btn{border:1px solid var(--line-2);background:var(--panel-2);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;display:inline-flex}.btn:hover{border-color:var(--ink-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.accent{background:var(--accent);border-color:var(--accent);color:#17171c}.btn.accent:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn.primary{background:var(--ink);border-color:var(--ink);color:#17171c}.btn.sm{padding:5px 11px;font-size:12.5px}.btn.xs{padding:3px 9px;font-size:12px}.btn.ghost{background:0 0}.btn.on{background:var(--ink);color:#17171c;border-color:var(--ink)}.seg{border:1px solid var(--line-2);background:var(--panel-2);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{cursor:pointer;color:var(--ink-2);background:0 0;border:0;padding:5px 11px;font-size:12.5px}.seg button.on{background:var(--ink);color:#17171c}.pill{border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;display:inline-flex}.pill.ok{color:var(--ok);background:#16311f;border-color:#2f6b4d}.pill.warn{color:var(--warn);background:#322a12;border-color:#6b5a26}.pill.bad{color:var(--bad);background:#351a1a;border-color:#7a3333}.pill.accent{color:var(--accent-ink);background:#331d16;border-color:#7a3c2c}.tag{text-transform:uppercase;letter-spacing:.07em;background:var(--panel-2);color:var(--ink-2);border-radius:4px;padding:1px 5px;font-size:10px}input[type=text],input[type=number],select,textarea{color:var(--ink);border:1px solid var(--line-2);font:inherit;background:#14141a;border-radius:8px;padding:6px 9px;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid #ff6a4d55}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:11.5px;display:flex}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty{align-items:stretch}.empty-console{width:100%;max-width:1100px;margin:0 auto;padding:0 16px 16px}#demo-cap{border:1px solid var(--line-2);color:#fff;max-width:min(900px,92vw);font:500 15px/1.4 var(--sans);z-index:9999;background:#0a0a0ef0;border-radius:12px;align-items:center;gap:12px;padding:11px 16px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000080}.toast{background:var(--ink);color:#17171c;z-index:90;border-radius:999px;padding:9px 15px;font-size:13px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@media print{body{color:#000;background:#fff}.topbar,.stage aside,.transport,.export-bar,#demo-cap,.console{display:none!important}.stage{padding:0;display:block}.score-view{background:#fff}}.console{color:#ecebe6;border-radius:var(--radius);background:#101014;border:1px solid #2b2b36;min-width:0;overflow:hidden}.console .c-h{text-transform:uppercase;letter-spacing:.08em;color:#8d8b85;border-bottom:1px solid #2b2b36;justify-content:space-between;align-items:center;padding:10px 14px;font-size:12px;display:flex}.console .c-b{flex-direction:column;gap:12px;padding:12px 14px;display:flex}.console .status{align-items:center;gap:8px;font-size:13px;display:flex}.console .status .dot{background:#5b5b66}.console .status .dot.on{background:#4ecb8a;box-shadow:0 0 10px #4ecb8a}.console .tools{flex-direction:column;gap:4px;display:flex}.console .tool{font-family:var(--mono);align-items:baseline;gap:8px;min-width:0;font-size:12px;display:flex}.console .tool .n{color:#ffb3a3;flex:none}.console .tool .d{color:#8d8b85;font-family:var(--sans);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;font-size:12px;display:-webkit-box;overflow:hidden}.console .tool .b{color:#b9b7b0;text-transform:uppercase;letter-spacing:.06em;background:#2b2b36;border-radius:4px;padding:0 5px;font-size:9.5px}.console .log{max-height:260px;font-family:var(--mono);flex-direction:column;gap:6px;font-size:11.5px;display:flex;overflow:auto}.console .log .l{border-left:2px solid #3a3a45;padding-left:8px}.console .log .l.agent{border-left-color:#4ecb8a}.console .log .l.demo{border-left-color:#ffb347}.console .log .l.console{border-left-color:#6ea8ff}.console .log .l.hand{border-left-color:#f0d27a}.console .log .l .h{color:#8d8b85}.console .log .l .h b{color:#fff}.console .log pre{white-space:pre-wrap;word-break:break-word;color:#cfcdc5;max-height:120px;margin:4px 0 0;overflow:auto}.console .log .err{color:#ff8f8f}.console select,.console textarea,.console input{color:#ecebe6;font:inherit;font-family:var(--mono);background:#0e0e12;border:1px solid #2f2f3a;border-radius:8px;width:100%;padding:7px 9px;font-size:12px}.console .btn{color:#fff;background:#22222b;border-color:#3a3a45}.console .btn:hover{border-color:#fff}.console .btn.accent{background:var(--accent);border-color:var(--accent)}.console details summary{cursor:pointer;color:#8d8b85;font-size:12px}.console{border-radius:var(--radius)}.console .c-h{font-family:var(--sans)}.empty-console .console{max-width:1100px}.ink{color:var(--ink)}.ens .card-b{gap:12px}.ens-presets{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.ens-preset{text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 9px;line-height:1.25}.ens-preset b{font-size:12.5px;font-weight:600}.ens-preset .muted{font-size:10.5px}.ens-parts{border:1px solid var(--line);background:var(--line);border-radius:10px;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.ens-part{background:var(--panel-2);flex-direction:column;gap:5px;padding:7px 9px;display:flex}.ens-part.has-error{box-shadow:inset 2px 0 0 var(--bad)}.ens-part-head{align-items:baseline;gap:7px;display:flex}.ens-part-head b{font-size:13px;font-weight:600}.ens-part-head .muted{text-overflow:ellipsis;white-space:nowrap;margin-right:auto;overflow:hidden}.ens-remove{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;flex:none;padding:0;font-size:15px;line-height:1}.ens-remove:hover:not(:disabled){color:var(--bad);border-color:var(--line-2)}.ens-remove:disabled{opacity:.3;cursor:not-allowed}.ens-pills{flex-wrap:wrap;gap:5px;display:flex}.ens-pills .pill{padding:1px 7px;font-size:11px}.ens-add select{width:100%}.ens-meta{flex-direction:column;gap:9px;display:flex}.field-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.field-label{color:var(--muted);font-size:11.5px}.ens-grid{grid-template-columns:1.1fr 1fr .9fr;gap:8px;display:grid}.ens .field select,.ens .field input{width:100%}.ens-foot{line-height:1.45}.transport{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:none;gap:8px;padding:9px 12px;display:flex}.tp-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tp-main{gap:8px}.tp-from{align-items:center;gap:5px;display:inline-flex}.tp-from input{width:56px;padding:4px 6px}.tp-pos{border:1px solid var(--line-2);white-space:nowrap;font-variant-numeric:tabular-nums;background:#14141a;border-radius:8px;padding:4px 10px}.tp-pos.live{border-color:var(--accent);color:var(--accent-ink)}.tp-tempo{align-items:center;gap:8px;margin-left:auto;display:inline-flex}.tp-tempo input[type=range]{width:150px;accent-color:var(--accent)}.tp-tempo .mono{color:var(--ink-2);white-space:nowrap}.tp-secondary{border-top:1px solid var(--line);padding-top:8px}.tp-partpick{max-width:170px}.tp-partpick:disabled{opacity:.4}.tp-mutes{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}.mute{border:1px solid var(--line-2);background:var(--panel-2);color:var(--ink-2);cursor:pointer;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11.5px}.mute:hover{border-color:var(--ink-2)}.mute.off{color:var(--muted);background:0 0;text-decoration:line-through}.tp-hint{color:var(--warn);margin:0}.ask-scrim{z-index:80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#08080c9e;justify-content:center;align-items:center;padding:18px;animation:.18s ease-out ask-in;display:flex;position:fixed;inset:0}@keyframes ask-in{0%{opacity:0}to{opacity:1}}.ask-card{background:var(--panel);border:1px solid var(--accent);border-radius:16px;flex-direction:column;gap:12px;width:min(520px,100%);max-height:88vh;padding:16px;display:flex;overflow:auto;box-shadow:0 24px 70px #0000008c}.ask-head{align-items:flex-start;gap:10px;display:flex}.ask-badge{white-space:nowrap;background:#331d16;border:1px solid #7a3c2c;border-radius:999px;flex:none;padding:3px 8px;font-size:13px}.ask-head b{font-size:13px}.ask-q{font-family:var(--serif);margin:0;font-size:21px;line-height:1.3}.ask-opts{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.ask-opt{border:1px solid var(--line-2);background:var(--panel-2);border-radius:10px;align-items:center;gap:9px;padding:8px 9px;display:flex}.ask-opt-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.ask-opt-main b{font-size:13.5px}.ask-opt-main .mono{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ask-play{min-width:92px}.ask-play.busy{border-color:var(--accent);color:var(--accent-ink)}.spinner{border:2px solid #ffffff40;border-top-color:var(--accent);border-radius:50%;width:11px;height:11px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.ask-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.export-bar{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;flex:none;gap:8px;padding:10px 12px;display:flex}.export-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.export-meta{min-width:0}.export-btns{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.export-note{margin:0}.export-done{background:#14261c;border:1px solid #2f6b4d;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.export-done .small{min-width:180px;color:var(--ink-2);flex:1}.empty-state{flex-direction:column;flex:1;gap:28px;width:100%;max-width:1100px;min-height:0;margin:0 auto;padding:40px 16px 8px;display:flex;overflow:auto}.empty-state .eyebrow{color:var(--muted);letter-spacing:.14em;margin:0 0 10px;font-size:11px}.empty-state h1{letter-spacing:-.02em;max-width:17ch;font-size:clamp(30px,5vw,46px);line-height:1.06}.empty-state .lede{max-width:62ch;color:var(--ink-2);margin:14px 0 0;font-size:15px;line-height:1.6}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.agent-line{max-width:68ch;color:var(--muted);margin:10px 0 0;line-height:1.6}.agent-line em{color:var(--ink-2);font-style:normal}.agent-line .mono{color:var(--ink-2)}.how{counter-reset:step;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.how li{counter-increment:step;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);flex-direction:column;gap:3px;padding:12px 13px;display:flex}.how li:before{content:counter(step, decimal-leading-zero);font-family:var(--mono);color:var(--accent);font-size:11px}.how li b{font-size:13.5px}.how li .small{line-height:1.5}.melodies-h{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.melodies-h h2{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-size:13px}.melody-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;display:grid}.melody{text-align:left;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 13px;transition:border-color .15s,transform .15s,background .15s;display:flex}.melody:hover{border-color:var(--accent);background:var(--panel-2);transform:translateY(-1px)}.melody b{font-family:var(--serif);font-size:19px;font-weight:400;line-height:1.2}.melody .mono{color:var(--ink-2)}.melody-src{line-height:1.4}.issue-list{flex-direction:column;gap:3px;max-height:360px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.issue{text-align:left;background:var(--panel-2);cursor:pointer;border:1px solid #0000;border-radius:9px;gap:8px;width:100%;padding:7px 8px;font-size:12.5px;line-height:1.4;display:flex}.issue.static{cursor:default}.issue:hover:not(.static){border-color:var(--line-2);background:#2c2c38}.issue-dot{border-radius:50%;flex:none;width:6px;height:6px;margin-top:6px}.issue-dot.error{background:var(--bad)}.issue-dot.warning{background:var(--warn)}.issue-body{flex-direction:column;gap:2px;min-width:0;display:flex}.issue-loc{color:var(--ink-2);font-size:11px}.issue.error .issue-loc{color:var(--bad)}.issue-msg{color:var(--ink);overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.issue:hover:not(.static) .issue-msg{-webkit-line-clamp:12;line-clamp:12}.issue-fix{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.issues-empty{margin:0;line-height:1.5}.act-list{flex-direction:column;gap:1px;max-height:300px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.act{border-radius:8px;align-items:baseline;gap:8px;padding:5px 6px;font-size:12.5px;line-height:1.4;display:flex}.act:nth-child(odd){background:#ffffff05}.act-icon{flex:none;width:14px;font-size:11px}.act-text{overflow-wrap:anywhere;min-width:0;color:var(--ink-2);flex:1}.act.by-agent .act-text{color:var(--ink)}.act.by-system .act-text{color:var(--muted)}.act-time{flex:none;font-size:10.5px}@media (width<=720px){.ens-presets{grid-template-columns:1fr}.ens-grid{grid-template-columns:1fr 1fr}.how,.melody-grid{grid-template-columns:1fr}.empty-state{gap:20px;padding:24px 14px 8px}.tp-tempo{width:100%;margin-left:0}.tp-tempo input[type=range]{flex:1;width:auto}.tp-mutes{margin-left:0}.tp-partpick{flex:1;max-width:none}.export-btns{margin-left:0}.ask-q{font-size:18px}.ask-opt{flex-wrap:wrap}.ask-opt-main{flex-basis:100%;order:-1}}.empty-state .exchange{border:1px solid var(--line);border-left:3px solid var(--accent);background:#101014;border-radius:10px;margin:14px 0 4px;padding:12px 14px;overflow-x:auto}.empty-state .exchange code{font-family:var(--mono);color:var(--ink-2);white-space:pre;font-size:12.5px;line-height:1.65}@media (width<=620px){.empty-state .exchange code{font-size:11px}}
