:root{--fw-bg: #0e0e11;--fw-surface: #1a1a1f;--fw-surface-2: #232329;--fw-fret-marker: #2a2a31;--fw-line: #3a3a42;--fw-text: #f0f0f2;--fw-text-dim: #9a9aa3;--fw-accent: #5dcaa5;--fw-root: #1d9e75;--fw-interval: #7f77dd;--fw-fifth: #d85a30;--fw-degree: #378add;--fw-penta: #e8c34a;--fw-tone-dim: #8a8a99;--fw-use-chords: #e07b5f;--fw-use-chords-bg: #2d1c19;--fw-use-melody: #5b9de1;--fw-use-melody-bg: #172333;--fw-use-riffs: #d7b84b;--fw-use-riffs-bg: #2b2717;--fw-use-tension: #9a8be8;--fw-use-tension-bg: #242039;--fw-note-0: #e5564e;--fw-note-1: #e07a3e;--fw-note-2: #d6a23c;--fw-note-3: #c2bf4a;--fw-note-4: #5bbf5b;--fw-note-5: #3fbf8c;--fw-note-6: #3fb6c4;--fw-note-7: #3f8fd8;--fw-note-8: #6a78dd;--fw-note-9: #9a6fdd;--fw-note-10: #c45fc4;--fw-note-11: #e05a8f;--fw-font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--fw-bg);color:var(--fw-text);font-family:var(--fw-font);-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:500}a{color:var(--fw-accent)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app{max-width:760px;margin:0 auto;padding:16px 16px 64px}@media(min-width:820px){.app.wide{max-width:min(94vw,1380px);padding:14px 32px 24px}}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:14px 0}.stat{background:var(--fw-surface);border-radius:10px;padding:12px 14px}.stat .k{font-size:12px;color:var(--fw-text-dim);margin:0 0 4px}.stat .v{font-size:18px;font-weight:500;margin:0}.theory{font-size:15px;line-height:1.7;color:var(--fw-text-dim);margin-top:14px}.theory strong{color:var(--fw-text);font-weight:500}.fretboard-wrap.svelte-183o4sz{width:100%;background:var(--fw-surface);border-radius:12px;padding:8px;box-sizing:border-box}canvas.svelte-183o4sz{display:block;width:100%;cursor:pointer;touch-action:manipulation}dialog.svelte-r2hhvq{width:min(760px,calc(100vw - 28px));max-width:none;padding:0;border:1px solid var(--fw-line);border-radius:18px;background:var(--fw-bg);color:var(--fw-text);box-shadow:0 28px 90px #0000009e}dialog.svelte-r2hhvq::backdrop{background:#030305c2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.sheet.svelte-r2hhvq{padding:22px}.heading.svelte-r2hhvq{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.eyebrow.svelte-r2hhvq{margin:0 0 4px;color:var(--fw-accent);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}h2.svelte-r2hhvq{margin:0;font-size:23px}.close.svelte-r2hhvq{width:42px;height:42px;border:1px solid var(--fw-line);border-radius:50%;background:var(--fw-surface);color:var(--fw-text-dim);font-size:25px;line-height:1;cursor:pointer}.format-row.svelte-r2hhvq{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.format-label.svelte-r2hhvq{margin:0;color:var(--fw-text-dim);font-size:12px;font-weight:500}.format-options.svelte-r2hhvq{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--fw-line);border-radius:11px;background:var(--fw-surface)}.format-options.svelte-r2hhvq button:where(.svelte-r2hhvq){min-height:34px;padding:7px 12px;border:0;border-radius:8px;background:transparent;color:var(--fw-text-dim);font:inherit;font-size:13px;font-weight:500;cursor:pointer}.format-options.svelte-r2hhvq button.active:where(.svelte-r2hhvq){background:var(--fw-surface-2);color:var(--fw-text)}.format-options.svelte-r2hhvq button:where(.svelte-r2hhvq):focus-visible{outline:2px solid var(--fw-accent);outline-offset:2px}.preview.svelte-r2hhvq{overflow:hidden;border:1px solid var(--fw-line);border-radius:13px;background:#09090c}.preview.svelte-r2hhvq img:where(.svelte-r2hhvq){display:block;width:100%;height:100%;object-fit:contain}.preview-placeholder.svelte-r2hhvq{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--fw-text-dim);font-size:13px}.placeholder-title.svelte-r2hhvq{color:var(--fw-text);font-size:22px;font-weight:600}.details.svelte-r2hhvq{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:10px 0 0;color:var(--fw-text-dim);font-size:12px}.preview-title.svelte-r2hhvq{color:var(--fw-text);font-size:14px}.error.svelte-r2hhvq{margin:9px 0 0;color:#ff9b8e;font-size:13px}.actions.svelte-r2hhvq{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.actions.svelte-r2hhvq button:where(.svelte-r2hhvq){min-height:44px;padding:10px 18px;border-radius:10px;font:inherit;font-size:14px;font-weight:500;cursor:pointer}.actions.svelte-r2hhvq button:where(.svelte-r2hhvq):disabled{opacity:.45;cursor:default}.primary.svelte-r2hhvq{border:1px solid var(--fw-accent);background:var(--fw-accent);color:#0b0b0d}.secondary.svelte-r2hhvq{border:1px solid var(--fw-line);background:var(--fw-surface);color:var(--fw-text)}.secondary.primary.svelte-r2hhvq{border-color:var(--fw-accent);background:var(--fw-accent);color:#0b0b0d}@media(max-width:560px){dialog.svelte-r2hhvq{margin:auto auto 10px;border-radius:18px 18px 14px 14px}.sheet.svelte-r2hhvq{padding:18px}.format-row.svelte-r2hhvq{align-items:flex-start;flex-direction:column}.actions.svelte-r2hhvq{flex-direction:column}.actions.svelte-r2hhvq button:where(.svelte-r2hhvq){width:100%}}.group.svelte-w49llb{margin-bottom:16px}.label.svelte-w49llb{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--fw-text-dim);margin:0 0 7px}.buttons.svelte-w49llb{display:flex;flex-wrap:wrap;gap:7px}.buttons-grid.svelte-w49llb{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.buttons-grid.svelte-w49llb button:where(.svelte-w49llb){width:100%}@media(min-width:640px){.buttons-grid.svelte-w49llb{grid-template-columns:repeat(4,minmax(0,1fr))}}button.svelte-w49llb{font-size:14px;font-weight:500;padding:9px 14px;min-height:40px;border-radius:9px;border:1px solid var(--fw-line);background:var(--fw-surface);color:var(--fw-text);cursor:pointer;transition:transform .08s,background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}button.svelte-w49llb:active{transform:scale(.96)}button.svelte-w49llb:focus-visible{outline:2px solid var(--fw-accent);outline-offset:2px}button.active.svelte-w49llb{background:var(--fw-accent);border-color:var(--fw-accent);color:#0b0b0d}.play.svelte-7vuq36{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;padding:8px 14px;min-height:40px;border-radius:10px;border:1px solid var(--fw-accent);background:var(--fw-accent);color:#0b0b0d;cursor:pointer;transition:transform .08s,opacity .15s}.play.svelte-7vuq36:active{transform:scale(.97)}.play.playing.svelte-7vuq36{background:transparent;color:var(--fw-accent)}.ico.svelte-7vuq36{font-size:13px}.ml.svelte-1b7w4au{display:flex;flex-direction:column;gap:18px}.ml-controls.svelte-1b7w4au{display:flex;flex-direction:column;gap:14px}.ml-controls.svelte-1b7w4au .group{margin-bottom:0}.ml-controls.svelte-1b7w4au .ml-play{display:flex;justify-content:flex-end}.ml-readout.svelte-1b7w4au{display:flex;flex-direction:column;gap:8px}.ml-readout.svelte-1b7w4au .stat-grid{margin:0}@media(min-width:820px){.ml.svelte-1b7w4au{gap:16px}.ml-controls.svelte-1b7w4au{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:14px 24px}.ml-controls.svelte-1b7w4au .ml-play{margin-left:auto;align-self:flex-end}.ml-readout.svelte-1b7w4au{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:14px 32px;align-items:start}.ml-readout.svelte-1b7w4au .theory{font-size:14px;line-height:1.55;margin-top:9px}.ml-readout.svelte-1b7w4au .prose>.theory:first-child{margin-top:0}}.note-tools.svelte-nquyda{display:flex;align-items:flex-end;gap:8px}.clear.svelte-nquyda,.share.svelte-nquyda{min-height:40px;padding:9px 14px;border-radius:9px;font-size:14px;border:1px solid var(--fw-line);background:var(--fw-surface);color:var(--fw-text);cursor:pointer;display:inline-flex;align-items:center;gap:8px;-webkit-tap-highlight-color:transparent;transition:background .15s,border-color .15s,color .15s,transform .08s}.clear.svelte-nquyda:active,.share.svelte-nquyda:active{transform:scale(.96)}.clear.svelte-nquyda:hover:not(:disabled),.share.svelte-nquyda:hover:not(:disabled){border-color:var(--fw-accent)}.clear.svelte-nquyda:disabled,.share.svelte-nquyda:disabled{opacity:.4;cursor:default}.share.svelte-nquyda{border-color:color-mix(in srgb,var(--fw-accent) 65%,var(--fw-line));color:var(--fw-accent)}.alt.svelte-nquyda{margin:4px 0 0;color:var(--fw-text-dim);font-size:12px;line-height:1.35}.discovery.svelte-nquyda{padding-left:12px;border-left:2px solid var(--fw-accent)}.enharmonics.svelte-nquyda{margin-top:8px;color:var(--fw-text-dim)}.interval-summary.svelte-ib1bmn{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}.relationship.svelte-ib1bmn{display:flex;align-items:center;gap:10px;margin:0;font-size:25px;font-weight:500}.relationship.svelte-ib1bmn span:where(.svelte-ib1bmn):first-child{color:var(--fw-root)}.relationship.svelte-ib1bmn span:where(.svelte-ib1bmn):last-child{color:var(--fw-interval)}.relationship.svelte-ib1bmn .arrow:where(.svelte-ib1bmn){color:var(--fw-text-dim);font-size:17px}.definition.svelte-ib1bmn{margin:0;color:var(--fw-text-dim);font-size:14px;text-align:right}.definition.svelte-ib1bmn span:where(.svelte-ib1bmn){padding:0 4px;color:var(--fw-line)}.anchor-nav.svelte-ib1bmn{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin-top:10px}.anchor-nav.svelte-ib1bmn button:where(.svelte-ib1bmn){min-width:44px;min-height:44px;border:1px solid var(--fw-line);border-radius:9px;background:var(--fw-surface);color:var(--fw-text);font-size:18px;cursor:pointer}.anchor-nav.svelte-ib1bmn button:where(.svelte-ib1bmn):focus-visible{outline:2px solid var(--fw-accent);outline-offset:2px}.anchor-nav.svelte-ib1bmn p:where(.svelte-ib1bmn){display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;text-align:center}.anchor-nav.svelte-ib1bmn span:where(.svelte-ib1bmn){color:var(--fw-text-dim);font-size:12px}.anchor-nav.svelte-ib1bmn strong:where(.svelte-ib1bmn){font-size:14px;font-weight:500}.use-card.svelte-ib1bmn{background:var(--fw-surface);border-radius:10px;padding:14px}.eyebrow.svelte-ib1bmn,.try-label.svelte-ib1bmn{margin:0;color:var(--fw-text-dim);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.uses.svelte-ib1bmn{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 14px;padding:0;list-style:none}.uses.svelte-ib1bmn li:where(.svelte-ib1bmn){display:flex}.uses.svelte-ib1bmn button:where(.svelte-ib1bmn){display:inline-flex;align-items:center;min-height:40px;padding:0;border:0;background:transparent;color:var(--fw-text);font:inherit;font-size:13px;cursor:pointer}.chip-visual.svelte-ib1bmn{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid;border-radius:999px}.uses.svelte-ib1bmn button:where(.svelte-ib1bmn):focus-visible{outline:none}.uses.svelte-ib1bmn button:where(.svelte-ib1bmn):focus-visible:not(.active) .chip-visual:where(.svelte-ib1bmn){box-shadow:0 0 0 2px var(--fw-accent)}.uses.svelte-ib1bmn button.active:where(.svelte-ib1bmn) .chip-visual:where(.svelte-ib1bmn){padding:3px 7px;border-width:3px}.use-kind.svelte-ib1bmn{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.use-chords.svelte-ib1bmn .chip-visual:where(.svelte-ib1bmn){border-color:var(--fw-use-chords);background:var(--fw-use-chords-bg)}.use-chords.svelte-ib1bmn .use-kind:where(.svelte-ib1bmn){color:var(--fw-use-chords)}.use-melody.svelte-ib1bmn .chip-visual:where(.svelte-ib1bmn){border-color:var(--fw-use-melody);background:var(--fw-use-melody-bg)}.use-melody.svelte-ib1bmn .use-kind:where(.svelte-ib1bmn){color:var(--fw-use-melody)}.use-riffs.svelte-ib1bmn .chip-visual:where(.svelte-ib1bmn){border-color:var(--fw-use-riffs);background:var(--fw-use-riffs-bg)}.use-riffs.svelte-ib1bmn .use-kind:where(.svelte-ib1bmn){color:var(--fw-use-riffs)}.use-tension.svelte-ib1bmn .chip-visual:where(.svelte-ib1bmn){border-color:var(--fw-use-tension);background:var(--fw-use-tension-bg)}.use-tension.svelte-ib1bmn .use-kind:where(.svelte-ib1bmn){color:var(--fw-use-tension)}.try-this.svelte-ib1bmn{padding-top:12px;border-top:1px solid var(--fw-line)}.try-this.svelte-ib1bmn>p:where(.svelte-ib1bmn):last-child{margin:6px 0 0;color:var(--fw-text);font-size:14px;line-height:1.5}.exercise-root.svelte-ib1bmn{color:var(--fw-root);font-weight:600}.exercise-target.svelte-ib1bmn{color:var(--fw-interval);font-weight:600}@media(max-width:560px){.interval-summary.svelte-ib1bmn{align-items:flex-start;flex-direction:column;gap:3px}.definition.svelte-ib1bmn{text-align:left}}.octave-actions.svelte-1onbvti{display:flex;flex-wrap:wrap;gap:8px}.octave-actions.svelte-1onbvti button:where(.svelte-1onbvti),.anchor-nav.svelte-1onbvti button:where(.svelte-1onbvti){min-height:44px;padding:9px 14px;border-radius:9px;border:1px solid var(--fw-line);background:var(--fw-surface);color:var(--fw-text);font:inherit;cursor:pointer}.octave-actions.svelte-1onbvti button:where(.svelte-1onbvti):disabled{opacity:.4;cursor:default}.octave-actions.svelte-1onbvti .primary:where(.svelte-1onbvti){border-color:var(--fw-accent);background:var(--fw-accent);color:#0b0b0d}.octave-summary.svelte-1onbvti{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}.octave-summary.svelte-1onbvti strong:where(.svelte-1onbvti){font-size:18px;font-weight:500}.octave-summary.svelte-1onbvti span:where(.svelte-1onbvti){color:var(--fw-text-dim);font-size:13px}.anchor-nav.svelte-1onbvti{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px;margin-top:10px}.anchor-nav.svelte-1onbvti button:where(.svelte-1onbvti){padding-inline:0;font-size:20px}.anchor-nav.svelte-1onbvti p:where(.svelte-1onbvti){display:flex;justify-content:space-between;gap:12px;margin:0;color:var(--fw-text-dim);font-size:13px}.anchor-nav.svelte-1onbvti strong:where(.svelte-1onbvti){color:var(--fw-text);font-weight:500}@media(max-width:560px){.octave-summary.svelte-1onbvti,.anchor-nav.svelte-1onbvti p:where(.svelte-1onbvti){align-items:flex-start;flex-direction:column;gap:3px}}.triad-controls.svelte-1mv44zg{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;grid-template-areas:"explore root play" "type type play";gap:14px 24px;align-items:end}.explore-control.svelte-1mv44zg{grid-area:explore}.root-control.svelte-1mv44zg{grid-area:root;min-width:0}.harmony-type-slot.svelte-1mv44zg{grid-area:type;min-height:113px;min-width:0}.triad-controls.svelte-1mv44zg .ml-play:where(.svelte-1mv44zg){grid-area:play;align-self:start;margin-top:18px}.triad-controls.svelte-1mv44zg .group{margin-bottom:0}.auto-control.svelte-1mv44zg{position:relative;width:150px;height:48px}.auto-transport.svelte-1mv44zg{display:flex;flex-direction:column;align-items:stretch}.auto-action.svelte-1mv44zg,.auto-tempo.svelte-1mv44zg button:where(.svelte-1mv44zg){min-height:40px;border:1px solid var(--fw-line);border-radius:9px;background:var(--fw-surface);color:var(--fw-text);font:inherit;cursor:pointer}.auto-action.svelte-1mv44zg{width:150px;min-height:48px;padding:8px 10px;border-color:var(--fw-accent);color:var(--fw-accent);font-size:14px;font-weight:500}.auto-action.auto-running.svelte-1mv44zg{background:var(--fw-accent);color:#0b0b0d}.auto-tempo.svelte-1mv44zg{position:absolute;right:0;bottom:calc(100% + 5px);display:flex;align-items:center;justify-content:center;gap:5px;width:100%}.auto-tempo.svelte-1mv44zg button:where(.svelte-1mv44zg){min-width:28px;min-height:28px;padding:0 6px;font-size:16px}.auto-tempo.svelte-1mv44zg button:where(.svelte-1mv44zg):disabled{opacity:.4;cursor:default}.auto-tempo.svelte-1mv44zg span:where(.svelte-1mv44zg){display:flex;flex-direction:column;min-width:58px;color:var(--fw-text-dim);font-size:11px;line-height:1.15;text-align:center;font-variant-numeric:tabular-nums}.auto-tempo.svelte-1mv44zg strong:where(.svelte-1mv44zg){color:var(--fw-text-dim);font-size:12px;font-weight:500}.auto-tempo.svelte-1mv44zg small:where(.svelte-1mv44zg){font-size:10px}.position-nav.svelte-1mv44zg{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:12px;margin-bottom:10px}.position-nav.path-nav.svelte-1mv44zg{min-height:88px}.position-nav.svelte-1mv44zg .auto-control:where(.svelte-1mv44zg){position:absolute;right:60px;top:50%;transform:translateY(-50%)}.position-arrow.svelte-1mv44zg{width:48px;min-height:48px;border:1px solid var(--fw-line);border-radius:12px;background:var(--fw-surface);color:var(--fw-accent);font-size:22px;cursor:pointer}.position-arrow.svelte-1mv44zg:disabled{opacity:.28;cursor:default;color:var(--fw-text-dim)}.position-copy.svelte-1mv44zg{min-width:0;text-align:center;display:flex;flex-direction:column;gap:2px}.position-copy.svelte-1mv44zg strong:where(.svelte-1mv44zg){font-size:15px;font-weight:600}.position-copy.svelte-1mv44zg span:where(.svelte-1mv44zg){color:var(--fw-text-dim);font-size:13px}.scale-context.svelte-1mv44zg{padding:14px;border:1px solid var(--fw-line);border-radius:12px;background:var(--fw-surface)}.scale-context-heading.svelte-1mv44zg{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.scale-context-heading.svelte-1mv44zg .k:where(.svelte-1mv44zg){margin:0;color:var(--fw-text-dim);font-size:12px}.scale-context-heading.svelte-1mv44zg h3:where(.svelte-1mv44zg){margin:0;font-size:15px;font-weight:600}.scale-strip.svelte-1mv44zg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:0;padding:0;list-style:none}.scale-strip.svelte-1mv44zg li:where(.svelte-1mv44zg){min-width:0;padding:6px 2px;border:1px solid transparent;border-radius:8px;text-align:center;color:var(--fw-text-dim);background:var(--fw-surface-2)}.scale-strip.svelte-1mv44zg strong:where(.svelte-1mv44zg){display:block;overflow:hidden;font-size:14px;color:var(--fw-text);text-overflow:ellipsis}.scale-degree.svelte-1mv44zg,.chord-degree.svelte-1mv44zg{display:block;min-height:14px;font-size:10px;line-height:1.4}.chord-degree.svelte-1mv44zg{color:transparent}.scale-strip.svelte-1mv44zg .chord-tone:where(.svelte-1mv44zg){border-color:var(--fw-line)}.scale-strip.svelte-1mv44zg .chord-tone:where(.svelte-1mv44zg) .chord-degree:where(.svelte-1mv44zg){color:var(--fw-text);font-weight:600}.scale-strip.svelte-1mv44zg .root-tone:where(.svelte-1mv44zg){border-color:var(--fw-root);background:color-mix(in srgb,var(--fw-root) 22%,var(--fw-surface-2))}.scale-strip.svelte-1mv44zg .upper-tone:where(.svelte-1mv44zg){border-color:var(--fw-interval);background:color-mix(in srgb,var(--fw-interval) 22%,var(--fw-surface-2))}.scale-strip.svelte-1mv44zg .fifth-tone:where(.svelte-1mv44zg){border-color:var(--fw-fifth);background:color-mix(in srgb,var(--fw-fifth) 22%,var(--fw-surface-2))}.scale-stack.svelte-1mv44zg{margin:10px 0 0;color:var(--fw-text-dim);font-size:13px;line-height:1.5}.scale-stack.svelte-1mv44zg strong:where(.svelte-1mv44zg){color:var(--fw-text);font-weight:600;white-space:nowrap}.scale-note.svelte-1mv44zg{margin:4px 0 0;color:var(--fw-text-dim);font-size:12px;line-height:1.5}.path-chord-map.svelte-1mv44zg{padding:12px;border:1px solid var(--fw-line);border-radius:12px;background:var(--fw-surface)}.path-chord-heading.svelte-1mv44zg{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.path-chord-heading.svelte-1mv44zg .k:where(.svelte-1mv44zg){margin:0;color:var(--fw-text-dim);font-size:12px}.path-chord-heading.svelte-1mv44zg strong:where(.svelte-1mv44zg){font-size:14px;font-weight:600}.path-chord-map.svelte-1mv44zg ol:where(.svelte-1mv44zg){display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:0;padding:0;list-style:none}.path-chord-map.svelte-1mv44zg li:where(.svelte-1mv44zg){min-width:0;padding:6px 2px;border:1px solid transparent;border-radius:7px;background:var(--fw-surface-2);color:var(--fw-text-dim);text-align:center}.path-chord-map.svelte-1mv44zg li.current:where(.svelte-1mv44zg){border-color:var(--fw-accent);background:color-mix(in srgb,var(--fw-accent) 18%,var(--fw-surface-2));color:var(--fw-text)}.path-chord-map.svelte-1mv44zg li:where(.svelte-1mv44zg) span:where(.svelte-1mv44zg),.path-chord-map.svelte-1mv44zg li:where(.svelte-1mv44zg) strong:where(.svelte-1mv44zg){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.path-chord-map.svelte-1mv44zg li:where(.svelte-1mv44zg) span:where(.svelte-1mv44zg){font-size:10px;line-height:1.3}.path-chord-map.svelte-1mv44zg li:where(.svelte-1mv44zg) strong:where(.svelte-1mv44zg){font-size:12px;font-weight:600}@media(max-width:1100px){.position-nav.path-nav.svelte-1mv44zg{grid-template-columns:48px minmax(0,1fr) 48px;min-height:0}.position-nav.svelte-1mv44zg .auto-control:where(.svelte-1mv44zg){position:relative;top:auto;right:auto;width:150px;height:48px;transform:none;grid-column:2 / -1;grid-row:2}.auto-transport.svelte-1mv44zg{justify-content:flex-end}.auto-tempo.svelte-1mv44zg{position:static;order:-1;margin-bottom:5px}}@media(max-width:819px){.triad-controls.svelte-1mv44zg{grid-template-columns:minmax(0,1fr);grid-template-areas:"explore" "root" "type" "play";gap:14px}.harmony-type-slot.svelte-1mv44zg{min-height:160px}.triad-controls.svelte-1mv44zg .ml-play:where(.svelte-1mv44zg){justify-self:end;margin-top:0}.scale-context-heading.svelte-1mv44zg{align-items:flex-start;flex-direction:column;gap:2px}}.chord-controls.svelte-fj5ixu{display:flex;flex-direction:column;gap:14px}.position-nav.svelte-fj5ixu{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:12px;margin-bottom:10px}.position-arrow.svelte-fj5ixu{width:48px;min-height:48px;border:1px solid var(--fw-line);border-radius:12px;background:var(--fw-surface);color:var(--fw-accent);font-size:22px;cursor:pointer;transition:border-color .15s,background .15s,transform .08s,opacity .15s;-webkit-tap-highlight-color:transparent}.position-arrow.svelte-fj5ixu:hover:not(:disabled){border-color:var(--fw-accent)}.position-arrow.svelte-fj5ixu:active:not(:disabled){transform:scale(.96)}.position-arrow.svelte-fj5ixu:disabled{opacity:.28;cursor:default;color:var(--fw-text-dim)}.position-copy.svelte-fj5ixu{min-width:0;text-align:center;display:flex;flex-direction:column;gap:2px}.position-copy.svelte-fj5ixu strong:where(.svelte-fj5ixu){font-size:15px;font-weight:600}.position-copy.svelte-fj5ixu span:where(.svelte-fj5ixu){color:var(--fw-text-dim);font-size:13px}@media(min-width:820px){.chord-controls.svelte-fj5ixu{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"root root" "family family" "formula play";align-items:end;gap:14px 24px;width:100%}.root-control.svelte-fj5ixu{grid-area:root;min-width:0}.family-control.svelte-fj5ixu{grid-area:family;min-width:0}.formula-control.svelte-fj5ixu{grid-area:formula;min-width:0}.chord-controls.svelte-fj5ixu .ml-play:where(.svelte-fj5ixu){grid-area:play}.formula-control.svelte-fj5ixu .buttons,.root-control.svelte-fj5ixu .buttons{flex-wrap:nowrap}}@media(min-width:1100px){.chord-controls.svelte-fj5ixu{grid-template-columns:max-content 300px minmax(0,1fr);grid-template-areas:"root root root" "family formula play";column-gap:24px}.chord-controls.svelte-fj5ixu .ml-play:where(.svelte-fj5ixu){justify-self:end}}.position-legend.svelte-erqjx4{margin:0 0 6px;color:var(--fw-text-dim);font-size:13px}.position-legend-hidden.svelte-erqjx4{visibility:hidden}.previous.svelte-erqjx4,.next.svelte-erqjx4{color:var(--fw-text-dim)}.focus.svelte-erqjx4{color:var(--fw-text)}.roots.svelte-erqjx4{color:var(--fw-root)}.penta-controls.svelte-erqjx4,.penta-position-stack.svelte-erqjx4{display:flex;flex-direction:column;gap:14px}.practice-label.svelte-erqjx4{margin:0 0 7px;color:var(--fw-text-dim);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.practice-actions.svelte-erqjx4{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tempo-controls.svelte-erqjx4{display:flex;align-items:center;gap:8px}.tempo-controls.svelte-erqjx4 button:where(.svelte-erqjx4){min-height:40px;padding:8px 14px;border:1px solid var(--fw-line);border-radius:9px;background:var(--fw-surface);color:var(--fw-text);font:inherit;cursor:pointer}.tempo-controls.svelte-erqjx4 button:where(.svelte-erqjx4):disabled{opacity:.4;cursor:default}.tempo-controls.svelte-erqjx4 span:where(.svelte-erqjx4){min-width:66px;text-align:center;color:var(--fw-text-dim);font-size:13px;font-variant-numeric:tabular-nums}.penta-summary.svelte-erqjx4{display:grid;gap:10px}.penta-summary.svelte-erqjx4>div:where(.svelte-erqjx4)+div:where(.svelte-erqjx4){border-top:1px solid var(--fw-line);padding-top:10px}@media(min-width:820px){.penta-controls.svelte-erqjx4{display:grid;grid-template-columns:max-content max-content minmax(0,1fr);grid-template-areas:"root scale practice" "position labels .";align-items:flex-end;gap:14px 24px}.penta-root.svelte-erqjx4{grid-area:root}.penta-scale.svelte-erqjx4{grid-area:scale}.penta-position-stack.svelte-erqjx4{grid-area:position}.penta-labels.svelte-erqjx4{grid-area:labels}.penta-practice.svelte-erqjx4{grid-area:practice;min-width:0}}.guide.svelte-49t0kh{display:flex;flex-direction:column;gap:9px;min-width:min(100%,390px)}.guide-main.svelte-49t0kh{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}button.svelte-49t0kh{min-height:40px;padding:8px 14px;border:1px solid var(--fw-line);border-radius:9px;background:var(--fw-surface);color:var(--fw-text);font:inherit;cursor:pointer}button.svelte-49t0kh:disabled{opacity:.4;cursor:default}.guide-action.svelte-49t0kh{border-color:var(--fw-accent);background:var(--fw-surface);color:var(--fw-accent);font-weight:500}.stop.svelte-49t0kh{background:var(--fw-accent);color:#0b0b0d}.tempo.svelte-49t0kh{display:flex;align-items:center;gap:8px}.tempo.svelte-49t0kh span:where(.svelte-49t0kh){min-width:66px;text-align:center;color:var(--fw-text-dim);font-size:13px;font-variant-numeric:tabular-nums}.guide-readout.svelte-49t0kh{min-height:42px;padding:10px 12px;border-radius:9px;background:var(--fw-surface);display:flex;justify-content:space-between;gap:12px;color:var(--fw-text-dim);font-size:13px;line-height:1.45}.guide-readout.svelte-49t0kh strong:where(.svelte-49t0kh){color:var(--fw-text);font-weight:500}.guide-readout.svelte-49t0kh span:where(.svelte-49t0kh):last-child{white-space:nowrap}.guide-inline.svelte-49t0kh{display:contents}.guide-inline.svelte-49t0kh .guide-main:where(.svelte-49t0kh){justify-content:flex-start}.guide-inline.svelte-49t0kh .guide-readout:where(.svelte-49t0kh){flex-basis:100%;min-height:0;padding:0 2px;background:transparent}@media(max-width:520px){.guide-inline.svelte-49t0kh .guide-main:where(.svelte-49t0kh){flex-wrap:wrap}.guide-inline.svelte-49t0kh .guide-readout:where(.svelte-49t0kh){margin-top:1px}}.chord-diagram.svelte-1c5ejg5{display:block}.na-controls.svelte-crcc74{display:flex;flex-direction:column;gap:0;width:100%}.na-setup.svelte-crcc74{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px 32px}.na-key-controls.svelte-crcc74,.na-display-controls.svelte-crcc74{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 24px}.na-display-controls.svelte-crcc74{padding-left:24px;border-left:1px solid var(--fw-line)}.na-practice-card.svelte-crcc74{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;margin:20px 0;padding:16px 18px;border:1px solid var(--fw-line);border-radius:14px;background:color-mix(in srgb,var(--fw-surface) 72%,var(--fw-bg))}.na-practice-main.svelte-crcc74{min-width:0;display:flex;flex-direction:column;gap:12px}.na-practice-main.svelte-crcc74 .group{margin:0}.na-transport.svelte-crcc74{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.na-current-chord.svelte-crcc74{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:0 0 12px 20px;border-left:1px solid var(--fw-line)}.na-current-h.svelte-crcc74{margin:0;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--fw-text-dim)}.na-current-chord.svelte-crcc74>strong:where(.svelte-crcc74){font-size:15px;font-weight:600}.na-explore.svelte-crcc74{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin-bottom:4px}.na-explore.svelte-crcc74 .group{flex:1 1 480px;margin:0}.na-legend.svelte-crcc74{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:10px;font-size:13px;color:var(--fw-text-dim)}.na-legend.svelte-crcc74 .leg:where(.svelte-crcc74){display:inline-flex;align-items:center;gap:7px}.na-legend.svelte-crcc74 .sw:where(.svelte-crcc74){width:13px;height:13px;border-radius:50%}.na-legend.svelte-crcc74 .sw-dim:where(.svelte-crcc74){width:11px;height:11px;opacity:.55}.na-legend.svelte-crcc74 .sw-ring:where(.svelte-crcc74){box-shadow:0 0 0 2px var(--fw-penta)}.na-stop.svelte-crcc74,.na-tempo.svelte-crcc74 button:where(.svelte-crcc74),.na-loop.svelte-crcc74,.na-secondary.svelte-crcc74{min-height:44px;padding:9px 14px;border:1px solid var(--fw-line);border-radius:9px;background:var(--fw-surface);color:var(--fw-text);font:inherit;cursor:pointer}.na-stop.svelte-crcc74{border-color:var(--fw-accent);color:var(--fw-accent)}.na-loop.active.svelte-crcc74{background:var(--fw-surface-2);border-color:var(--fw-accent);color:var(--fw-accent)}.na-secondary.svelte-crcc74{color:var(--fw-text-dim)}.na-tempo.svelte-crcc74{display:flex;align-items:center;gap:4px}.na-tempo.svelte-crcc74 button:where(.svelte-crcc74){width:40px;padding:0;font-size:20px}.na-tempo.svelte-crcc74 button:where(.svelte-crcc74):disabled{opacity:.4;cursor:default}.na-tempo.svelte-crcc74 span:where(.svelte-crcc74){min-width:58px;text-align:center;color:var(--fw-text-dim);font-size:13px;font-variant-numeric:tabular-nums}.na-progress-copy.svelte-crcc74{min-height:20px;color:color-mix(in srgb,var(--fw-text) 75%,var(--fw-text-dim));font-size:13px}.na-progress-copy.svelte-crcc74 strong:where(.svelte-crcc74){color:var(--fw-text);font-weight:500}.na-progression-note.svelte-crcc74{margin:0;color:var(--fw-text-dim);font-size:13px}@media(max-width:820px){.na-display-controls.svelte-crcc74{padding-left:0;border-left:0}.na-practice-card.svelte-crcc74{grid-template-columns:1fr}.na-current-chord.svelte-crcc74{padding:14px 0 12px;border-top:1px solid var(--fw-line);border-left:0}}.cof-stage.svelte-1o9rxsq{display:flex;flex-direction:column;gap:10px}.circle-wrap.svelte-1o9rxsq{margin:8px 0 18px}text.svelte-1o9rxsq{-webkit-user-select:none;user-select:none}@media(min-width:820px){.cof-stage.svelte-1o9rxsq{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:28px;align-items:center}.circle-wrap.svelte-1o9rxsq{margin:0}.cof-board.svelte-1o9rxsq{min-width:0}}.tuning.svelte-av7ov0{margin:20px 0 18px;position:relative;z-index:10}.section-label.svelte-av7ov0{margin:0 0 8px;color:var(--fw-text-dim);font-size:12px;letter-spacing:.05em;text-transform:uppercase}.tuning-button.svelte-av7ov0,.tuning-option.svelte-av7ov0{width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:14px;padding:16px 18px;color:var(--fw-text);cursor:pointer;transition:transform .08s,border-color .15s,background .15s;-webkit-tap-highlight-color:transparent;font:inherit}.tuning-button.svelte-av7ov0:hover,.tuning-option.svelte-av7ov0:hover{border-color:var(--fw-accent)}.tuning-button.svelte-av7ov0:active,.tuning-option.svelte-av7ov0:active{transform:scale(.99)}.tuning-icon.svelte-av7ov0{width:36px;min-width:36px;color:var(--fw-text-dim);font-size:13px;font-variant-numeric:tabular-nums}.tuning-copy.svelte-av7ov0{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}.tuning-title.svelte-av7ov0{font-size:16px;font-weight:500}.tuning-notes.svelte-av7ov0{color:var(--fw-text-dim);font-size:13px;line-height:1.5}.tuning-action.svelte-av7ov0{color:var(--fw-text-dim);font-size:13px;white-space:nowrap}.tuning-button[aria-expanded=true].svelte-av7ov0{border-color:color-mix(in srgb,var(--fw-accent) 70%,var(--fw-line));background:var(--fw-surface-2)}.tuning-list.svelte-av7ov0{position:absolute;left:0;right:0;top:calc(100% - 24px);bottom:auto;opacity:0;transform:translateY(-4px) scale(.99);transform-origin:top center;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.tuning-list.open-above.svelte-av7ov0{top:auto;bottom:calc(100% - 24px);transform:translateY(4px) scale(.99);transform-origin:bottom center}.tuning-list.open.svelte-av7ov0{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.tuning-list-inner.svelte-av7ov0{max-height:min(62vh,620px);overflow:auto;border:1px solid var(--fw-line);border-radius:16px;background:color-mix(in srgb,var(--fw-bg) 92%,transparent);box-shadow:0 18px 48px #0000006b;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tuning-options.svelte-av7ov0{display:flex;flex-direction:column;gap:8px;padding:10px}.tuning-option.svelte-av7ov0{min-height:58px;padding:13px 16px;border-radius:12px}.tuning-option.active.svelte-av7ov0{background:var(--fw-accent);border-color:var(--fw-accent);color:#0b0b0d}.tuning-option.active.svelte-av7ov0 .tuning-notes:where(.svelte-av7ov0){color:#0b0b0db8}.tuning-check.svelte-av7ov0{width:22px;min-width:22px;color:transparent;font-size:16px;text-align:center}.tuning-option.active.svelte-av7ov0 .tuning-check:where(.svelte-av7ov0){color:#0b0b0d}@media(max-width:520px){.tuning-action.svelte-av7ov0{display:none}.tuning-button.svelte-av7ov0{padding:15px 16px}}.sound-toggle.svelte-wwq073{display:inline-grid;place-items:center;width:40px;min-width:40px;height:40px;padding:0;border:1px solid var(--fw-line);border-radius:9px;background:transparent;color:var(--fw-text-dim);cursor:pointer;transition:border-color .15s,color .15s,background .15s,transform .08s;-webkit-tap-highlight-color:transparent}.sound-toggle.svelte-wwq073:hover{border-color:var(--fw-accent);color:var(--fw-text)}.sound-toggle.svelte-wwq073:active{transform:scale(.95)}.sound-toggle.svelte-wwq073:focus-visible{outline:2px solid var(--fw-accent);outline-offset:2px}.sound-toggle.muted.svelte-wwq073{background:var(--fw-surface-2);color:var(--fw-text)}svg.svelte-wwq073{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hero.svelte-1n46o8q{margin:8px 0 22px;text-align:center}.wordmark.svelte-1n46o8q{margin:0;line-height:0}.logo.svelte-1n46o8q{width:min(72vw,400px);height:auto;display:block;margin:0 auto}.hero.svelte-1n46o8q p:where(.svelte-1n46o8q){color:var(--fw-text-dim);margin:6px auto 0;font-size:15px;line-height:1.6;max-width:46ch}.grid.svelte-1n46o8q{display:flex;flex-direction:column;gap:10px}.card.svelte-1n46o8q{display:flex;align-items:center;gap:14px;text-align:left;background:var(--fw-surface);border:1px solid var(--fw-line);border-radius:14px;padding:16px 18px;color:var(--fw-text);text-decoration:none;cursor:pointer;transition:transform .08s,border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}.card.svelte-1n46o8q:active{transform:scale(.99)}.card.svelte-1n46o8q:hover{border-color:var(--fw-accent)}.num.svelte-1n46o8q{font-size:13px;color:var(--fw-text-dim);font-variant-numeric:tabular-nums;min-width:22px}.body.svelte-1n46o8q{display:flex;flex-direction:column;gap:3px;flex:1}.title.svelte-1n46o8q{font-size:16px;font-weight:500}.blurb.svelte-1n46o8q{font-size:13px;color:var(--fw-text-dim);line-height:1.5}.chev.svelte-1n46o8q{color:var(--fw-text-dim);font-size:18px}.about.svelte-1n46o8q{margin:28px 0 8px}.about.svelte-1n46o8q p:where(.svelte-1n46o8q){margin:0 0 6px;color:var(--fw-text-dim);font-size:13px;line-height:1.6}.about.svelte-1n46o8q p:where(.svelte-1n46o8q):last-child{margin-bottom:0}.about.svelte-1n46o8q a:where(.svelte-1n46o8q){color:var(--fw-accent);text-decoration:none}.about.svelte-1n46o8q a:where(.svelte-1n46o8q):hover{text-decoration:underline}.topbar.svelte-1n46o8q{display:flex;align-items:center;gap:12px;margin:6px 0 4px}.topbar-actions.svelte-1n46o8q{display:flex;align-items:center;gap:8px;margin-left:auto}.back.svelte-1n46o8q{background:none;border:none;color:var(--fw-accent);font-size:14px;cursor:pointer;padding:6px 0;min-height:40px}.crumb.svelte-1n46o8q{font-size:13px;color:var(--fw-text-dim);font-variant-numeric:tabular-nums}.tuning-pill.svelte-1n46o8q{min-width:0;padding:5px 9px;border:1px solid var(--fw-line);border-radius:999px;color:var(--fw-text-dim);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reset.svelte-1n46o8q{min-height:40px;padding:7px 12px;border:1px solid var(--fw-line);border-radius:9px;background:transparent;color:var(--fw-text-dim);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s,transform .08s;-webkit-tap-highlight-color:transparent}.reset.svelte-1n46o8q:hover{border-color:var(--fw-accent);color:var(--fw-text)}.reset.svelte-1n46o8q:active{transform:scale(.97)}.module-title.svelte-1n46o8q{font-size:24px;margin:6px 0 18px}.pager.svelte-1n46o8q{display:flex;justify-content:space-between;gap:10px;margin-top:30px}.pager.svelte-1n46o8q button:where(.svelte-1n46o8q){flex:1;padding:12px 16px;border-radius:10px;border:1px solid var(--fw-line);background:var(--fw-surface);color:var(--fw-text);cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:border-color .15s,background .15s}.pager.svelte-1n46o8q button:where(.svelte-1n46o8q):hover:not(:disabled){border-color:var(--fw-accent)}.pager.svelte-1n46o8q button.prev:where(.svelte-1n46o8q){align-items:flex-start;text-align:left}.pager.svelte-1n46o8q button.next:where(.svelte-1n46o8q){align-items:flex-end;text-align:right}.pager.svelte-1n46o8q .dir:where(.svelte-1n46o8q){font-size:12px;color:var(--fw-text-dim)}.pager.svelte-1n46o8q .dest:where(.svelte-1n46o8q){font-size:15px;font-weight:500}.pager.svelte-1n46o8q button:where(.svelte-1n46o8q):disabled{opacity:.4;cursor:default}@media(min-width:820px){.app.wide.svelte-1n46o8q .topbar:where(.svelte-1n46o8q){margin:0 0 2px}.app.wide.svelte-1n46o8q .module-title:where(.svelte-1n46o8q){font-size:28px;margin:2px 0 12px}.app.wide.svelte-1n46o8q .pager:where(.svelte-1n46o8q){margin-top:16px}}@media(max-width:560px){.tuning-pill.svelte-1n46o8q{display:none}}
