.menu[data-v-797fa7be]{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e0e1ab8;border:1px solid #ffffff14;border-radius:10px;gap:2px;padding:3px;display:flex;position:fixed;top:14px;right:14px}a[data-v-797fa7be]{color:#9d9dbb;border-radius:7px;padding:6px 12px;text-decoration:none;transition:background .15s,color .15s}a[data-v-797fa7be]:hover{color:#fff;background:#ffffff0f}a.on[data-v-797fa7be]{color:#fff;background:#8f7dff4d}.viz[data-v-f2b4173b]{touch-action:none;width:100vw;height:100dvh;display:block;position:fixed;top:0;left:0}@media (pointer:coarse) and (width<=900px){.viz[data-v-f2b4173b]{height:66.6667dvh}}.source[data-v-08ebbd89]{align-items:center;gap:10px;padding:4px 0;display:flex}.label[data-v-08ebbd89]{flex-direction:column;flex:1;min-width:0;display:flex}.label strong[data-v-08ebbd89]{color:#ececf8;font-weight:600}.label small[data-v-08ebbd89]{color:#9d9dbb;overflow-wrap:anywhere}.hint code[data-v-08ebbd89]{font-size:10px}.dot[data-v-08ebbd89]{background:#55556a;border-radius:50%;flex:none;width:8px;height:8px}.dot.on[data-v-08ebbd89]{background:#3ddc97;box-shadow:0 0 8px #3ddc97}.dot.busy[data-v-08ebbd89]{background:#f5b942;animation:1s infinite alternate pulse-08ebbd89}.dot.err[data-v-08ebbd89]{background:#ff6b6b}@keyframes pulse-08ebbd89{to{opacity:.3}}button[data-v-08ebbd89]{color:#fff;font:inherit;cursor:pointer;background:#786eff40;border:1px solid #ffffff26;border-radius:7px;flex:none;padding:5px 10px}button[data-v-08ebbd89]:hover{background:#786eff73}.panel[data-v-76542ed7]{box-sizing:border-box;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.55;background:#0e0e1ab8;border:1px solid #ffffff14;border-radius:12px;width:300px;max-width:calc(100vw - 28px);max-height:calc(100vh - 72px);padding:12px 14px;transition:opacity .18s,transform .18s;position:fixed;top:58px;left:14px;overflow-y:auto}.panel[data-v-76542ed7]:hover,.panel[data-v-76542ed7]:focus-within{opacity:1}.panel.closed[data-v-76542ed7]{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility 0s .18s;transform:translateY(-6px)}.wide[data-v-76542ed7]{width:auto!important}.segmented[data-v-76542ed7]{border:1px solid #ffffff24;border-radius:7px;margin:2px 0;display:flex;overflow:hidden}.segmented label[data-v-76542ed7]{text-align:center;color:#c4c4dc;cursor:pointer;flex:1;padding:4px 8px}.segmented label.on[data-v-76542ed7]{color:#fff;background:#8f7dff4d}.segmented label[data-v-76542ed7]:focus-within{outline-offset:-2px;outline:2px solid #8f7dff}.segmented input[data-v-76542ed7]{opacity:0;pointer-events:none;position:absolute}.tabs[data-v-76542ed7]{background:#ffffff0a;border-radius:9px;gap:2px;margin:-4px -6px 12px;padding:3px;display:flex}.tabs button[data-v-76542ed7]{color:#9d9dbb;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:auto;padding:5px 4px;font-size:11.5px;transition:background .15s,color .15s}.tabs button[data-v-76542ed7]:hover{color:#fff;background:#ffffff0f}.tabs button.on[data-v-76542ed7]{color:#fff;background:#8f7dff4d}.help dl[data-v-76542ed7]{grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;margin:0;display:grid}.help dt[data-v-76542ed7]{margin:0}.help dd[data-v-76542ed7]{color:#c4c4dc;margin:0}kbd[data-v-76542ed7]{color:#ececf8;min-width:18px;font:inherit;text-align:center;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff2e;border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:11px;display:inline-block}.panel section+section{margin-top:12px}.panel h2{letter-spacing:.08em;text-transform:uppercase;color:#8a8aa8;margin:0 0 6px;font-size:11px;font-weight:600}.panel .field{align-items:center;gap:10px;padding:3px 0;display:flex}.panel .field>span{color:#c4c4dc;flex:none;width:58px}.panel .field input[type=range]{accent-color:#8f7dff;flex:1;min-width:0}.panel .field output{text-align:right;color:#9d9dbb;width:36px}.panel .field select,.panel .field input[type=text]{color:#ececf8;min-width:0;font:inherit;background:#1b1b2e;border:1px solid #ffffff26;border-radius:6px;flex:1;padding:3px 6px}.panel .check input{accent-color:#8f7dff;margin:0}.panel .note{color:#9d9dbb;margin:4px 0 0;font-size:11px}.panel .note.warn{color:#f5b942}.wide[data-v-28421e72]{width:auto!important}.status[data-v-533760aa]{color:#c4c4dc;align-items:center;gap:8px;padding:3px 0 5px;display:flex}.grow[data-v-533760aa]{flex:1;min-width:0}.toggle[data-v-533760aa]{cursor:pointer;align-items:center;gap:6px;display:flex}.dot[data-v-533760aa]{background:#55556a;border-radius:50%;flex:none;width:8px;height:8px}.dot.on[data-v-533760aa]{background:#3ddc97;box-shadow:0 0 8px #3ddc97}.dot.busy[data-v-533760aa]{background:#f5b942;animation:1s infinite alternate pulse-533760aa}@keyframes pulse-533760aa{to{opacity:.3}}button[data-v-533760aa]{color:#fff;font:inherit;cursor:pointer;background:#786eff40;border:1px solid #ffffff26;border-radius:6px;flex:none;padding:3px 9px}button[data-v-533760aa]:hover:not(:disabled){background:#786eff73}button[data-v-533760aa]:disabled{opacity:.4;cursor:default}.peers[data-v-533760aa]{flex-direction:column;gap:3px;margin:6px 0 0;padding:0;list-style:none;display:flex}.peers li[data-v-533760aa]{color:#ececf8;align-items:center;gap:8px;display:flex}.peers small[data-v-533760aa]{color:#7c7c98}.swatch[data-v-533760aa]{border-radius:3px;flex:none;width:10px;height:10px}.gear[data-v-afec3cbb]{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#9d9dbb;cursor:pointer;opacity:.6;background:#0e0e1ab8;border:1px solid #ffffff1a;border-radius:50%;place-items:center;width:36px;height:36px;padding:0;transition:opacity .2s,color .2s;display:grid;position:fixed;top:14px;left:14px}.gear[data-v-afec3cbb]:hover,.gear[data-v-afec3cbb]:focus-visible,.gear.open[data-v-afec3cbb]{opacity:1;color:#fff}.gear svg[data-v-afec3cbb]{fill:currentColor;width:20px;height:20px;transition:transform .35s}.gear.open svg[data-v-afec3cbb]{transform:rotate(90deg)}.welcome[data-v-afec3cbb]{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#05050a99;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.welcome-card[data-v-afec3cbb]{box-sizing:border-box;text-align:center;background:#141226eb;border:1px solid #ffffff1a;border-radius:16px;width:100%;max-width:380px;padding:26px 24px 18px;box-shadow:0 20px 60px #00000080}.welcome-card h1[data-v-afec3cbb]{color:#f2f2fb;margin:0 0 10px;font-size:22px}.welcome-card p[data-v-afec3cbb]{color:#b4b4d0;margin:0 0 22px;font-size:14px;line-height:1.5}.welcome-card .primary[data-v-afec3cbb]{color:#fff;width:100%;font:inherit;cursor:pointer;background:#7a68ff;border:0;border-radius:10px;padding:12px;font-size:15px;font-weight:600;display:block}.welcome-card .primary[data-v-afec3cbb]:hover,.welcome-card .primary[data-v-afec3cbb]:focus-visible{background:#8f7dff;outline:none}.welcome-card .link[data-v-afec3cbb]{color:#8a8aa8;font:inherit;cursor:pointer;background:0 0;border:0;margin-top:12px;padding:4px;font-size:12px}.welcome-card .link[data-v-afec3cbb]:hover{color:#c4c4dc;text-decoration:underline}.error[data-v-afec3cbb]{color:#ff8a8a;place-items:center;font-size:15px;display:grid;position:fixed;inset:0}.kb[data-v-39241215]{width:min(340px,80vw);height:auto;display:block}rect[data-v-39241215]{stroke:#05050a;stroke-width:2px;transition:fill .12s}.white[data-v-39241215]{fill:#e9e9f4}.black[data-v-39241215]{fill:#1c1c2c}.held[data-v-39241215]{fill:#8f7dff}.hit[data-v-39241215]{fill:#3ddc97}.extra[data-v-39241215]{fill:#ff6b6b}.white.target[data-v-39241215]{fill:#c9c1ff}.black.target[data-v-39241215]{fill:#5a4fb0}.trainer[data-v-9a7a0c99]{box-sizing:border-box;background:radial-gradient(at 50% 30%,#17142e 0%,#05050a 70%);place-items:center;padding:64px 16px 24px;display:grid;position:fixed;inset:0;overflow-y:auto}.card[data-v-9a7a0c99]{box-sizing:border-box;background:#0e0e1ab8;border:1px solid #ffffff14;border-radius:16px;width:100%;max-width:520px;padding:24px}h1[data-v-9a7a0c99]{color:#f2f2fb;margin:0 0 4px;font-size:22px}.lead[data-v-9a7a0c99]{color:#9d9dbb;margin:0 0 18px}h2[data-v-9a7a0c99]{letter-spacing:.08em;text-transform:uppercase;color:#8a8aa8;margin:0;font-size:11px;font-weight:600}.group+.group[data-v-9a7a0c99]{margin-top:18px}.group>h2[data-v-9a7a0c99]{margin-bottom:8px}.group-head[data-v-9a7a0c99]{align-items:center;gap:10px;margin-bottom:8px;display:flex}.group-head h2[data-v-9a7a0c99]{flex:1}.link[data-v-9a7a0c99]{color:#a99cff;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.link[data-v-9a7a0c99]:hover{text-decoration:underline}.chips[data-v-9a7a0c99]{flex-wrap:wrap;gap:8px;display:flex}.chip[data-v-9a7a0c99]{color:#c4c4dc;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #ffffff24;border-radius:999px;align-items:baseline;gap:6px;padding:6px 12px;transition:background .15s,border-color .15s;display:flex}.chip input[data-v-9a7a0c99],.segmented input[data-v-9a7a0c99]{opacity:0;pointer-events:none;position:absolute}.chip small[data-v-9a7a0c99]{color:#7c7c98}.chip[data-v-9a7a0c99]:hover{border-color:#8f7dff99}.chip.on[data-v-9a7a0c99]{color:#fff;background:#8f7dff40;border-color:#8f7dff}.chip.on small[data-v-9a7a0c99]{color:#c9c1ff}.chip[data-v-9a7a0c99]:focus-within,.segmented label[data-v-9a7a0c99]:focus-within{outline-offset:2px;outline:2px solid #8f7dff}.options[data-v-9a7a0c99]{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.segmented[data-v-9a7a0c99]{border:1px solid #ffffff24;border-radius:8px;display:inline-flex;overflow:hidden}.segmented label[data-v-9a7a0c99]{cursor:pointer;color:#c4c4dc;padding:5px 12px}.segmented label.on[data-v-9a7a0c99]{color:#fff;background:#8f7dff4d}.check[data-v-9a7a0c99]{cursor:pointer;color:#c4c4dc;align-items:center;gap:8px;display:flex}.check input[data-v-9a7a0c99]{accent-color:#8f7dff;margin:0}.last[data-v-9a7a0c99]{color:#9d9dbb;margin:18px 0 0}.primary[data-v-9a7a0c99]{color:#fff;width:100%;font:inherit;cursor:pointer;background:#7a68ff;border:0;border-radius:10px;margin-top:20px;padding:12px;font-size:15px;font-weight:600;display:block}.primary[data-v-9a7a0c99]:hover{background:#8f7dff}.primary[data-v-9a7a0c99]:disabled{color:#8a8aa8;cursor:not-allowed;background:#3a3a55}.keys[data-v-9a7a0c99]{text-align:center;color:#7c7c98;margin-top:10px;font-size:11px;display:block}.play[data-v-9a7a0c99]{flex-direction:column;align-items:center;gap:28px;display:flex}.chord[data-v-9a7a0c99]{text-align:center;transition:transform .2s}.name[data-v-9a7a0c99]{color:#f2f2fb;text-shadow:0 0 40px #8f7dff59;font-size:clamp(72px,16vw,180px);font-weight:700;line-height:1;transition:color .15s,text-shadow .15s}.quality[data-v-9a7a0c99]{color:#9d9dbb;margin-top:8px;font-size:16px}.chord.success[data-v-9a7a0c99]{transform:scale(1.06)}.chord.success .name[data-v-9a7a0c99]{color:#3ddc97;text-shadow:0 0 50px #3ddc9799}.tones[data-v-9a7a0c99]{gap:10px;display:flex}.tone[data-v-9a7a0c99]{text-align:center;color:#c4c4dc;background:#ffffff0f;border-radius:8px;min-width:44px;padding:6px 10px;font-size:16px;font-weight:600;transition:background .12s,color .12s}.tone.held[data-v-9a7a0c99]{color:#3ddc97;background:#3ddc9733}.stats[data-v-9a7a0c99]{color:#9d9dbb;gap:24px;display:flex}.stats strong[data-v-9a7a0c99]{color:#ececf8}.actions[data-v-9a7a0c99]{gap:10px;display:flex}.actions button[data-v-9a7a0c99]{color:#fff;font:inherit;cursor:pointer;background:#786eff33;border:1px solid #ffffff26;border-radius:8px;padding:7px 16px}.actions button[data-v-9a7a0c99]:hover{background:#786eff66}.toast[data-v-1697e9fe]{z-index:20;color:#fff;pointer-events:none;background:#141423cc;border-radius:8px;padding:6px 14px;position:fixed;top:16px;left:50%;transform:translate(-50%)}.fade-enter-active[data-v-1697e9fe],.fade-leave-active[data-v-1697e9fe]{transition:opacity .25s}.fade-enter-from[data-v-1697e9fe],.fade-leave-to[data-v-1697e9fe]{opacity:0}html,body{background:#05050a;height:100%;margin:0;overflow:hidden}body{color:#d6d6e8;font:13px/1.45 system-ui,-apple-system,sans-serif}
