.theory-section.svelte-iric0{padding-top:3rem;margin-top:3rem;border-top:1px solid #222;scroll-margin-top:calc(var(--site-header-h) + 1.5rem)}h2.svelte-iric0{font-size:clamp(1.5rem,3vw,2rem);font-weight:400;line-height:1.2;text-wrap:balance}.summary.svelte-iric0{max-width:68ch;margin-top:.75rem;font-size:1.05rem;line-height:1.6;color:#aaa}.prose.svelte-iric0{max-width:68ch;margin-top:1.25rem;font-size:1rem;line-height:1.75;color:#ddd}.prose.svelte-iric0 p{margin:.9rem 0}.prose.svelte-iric0 ul,.prose.svelte-iric0 ol{margin:.9rem 0;padding-left:1.4rem;list-style:disc}.prose.svelte-iric0 li{margin:.35rem 0}.prose.svelte-iric0 b,.prose.svelte-iric0 strong{color:#fff;font-weight:500}.prose.svelte-iric0 a{color:#fff;text-decoration:underline;text-underline-offset:.2em;text-decoration-color:#555}.prose.svelte-iric0 a:hover{text-decoration-color:#fff}.prose.svelte-iric0 h3{margin:2rem 0 .5rem;font-size:1.1rem;font-weight:500;color:#fff}.prose.svelte-iric0 blockquote{margin:1.25rem 0;padding:.75rem 1rem;border-left:1px solid #444;color:#bbb;line-height:1.9}.prose.svelte-iric0 blockquote p{margin:0}.prose.svelte-iric0 .glossary-wrap{overflow-x:auto;margin:1.25rem 0}.prose.svelte-iric0 .glossary{width:100%;min-width:30rem;border-collapse:collapse;font-size:.9rem}.prose.svelte-iric0 .glossary th,.prose.svelte-iric0 .glossary td{padding:.5rem .7rem;text-align:left;vertical-align:top;border-bottom:1px solid #222}.prose.svelte-iric0 .glossary thead th{color:#777;font-size:.72rem;font-weight:400;text-transform:uppercase;letter-spacing:.08em}.prose.svelte-iric0 .glossary tbody th{width:30%;color:#fff;font-weight:400}.prose.svelte-iric0 .glossary tbody td{color:#bbb}.prose.svelte-iric0 .glossary tr.group th{padding-top:1.5rem;color:#fff;font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;border-bottom-color:#444}.progress.svelte-1g65yun{position:fixed;top:var(--site-header-h);left:0;right:0;height:2px;background:#1a1a1a;z-index:45}.progress.svelte-1g65yun span:where(.svelte-1g65yun){display:block;height:100%;background:#fff;transform-origin:left;will-change:transform}.toc-mobile.svelte-1g65yun{display:none;margin-bottom:1rem}.toc-mobile.svelte-1g65yun details:where(.svelte-1g65yun){border:1px solid #333;padding:.6rem .8rem}.toc-mobile.svelte-1g65yun summary:where(.svelte-1g65yun){cursor:pointer;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#999;display:flex;justify-content:space-between;gap:1rem}.toc-mobile.svelte-1g65yun summary:where(.svelte-1g65yun):hover{color:#fff}.toc-mobile.svelte-1g65yun .pct:where(.svelte-1g65yun){color:#666}.toc-mobile.svelte-1g65yun ol:where(.svelte-1g65yun){margin-top:.75rem}.toc-rail.svelte-1g65yun{display:block;position:sticky;top:calc(var(--site-header-h) + 1.5rem);align-self:start;max-height:calc(100dvh - var(--site-header-h) - 3rem);overflow-y:auto;scrollbar-width:none;padding-right:.5rem}.label.svelte-1g65yun{margin-bottom:.75rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#666}ol.svelte-1g65yun{display:flex;flex-direction:column;gap:.15rem;border-left:1px solid #222;padding-left:.75rem}a.svelte-1g65yun{display:block;padding:.2rem 0;font-size:.8rem;line-height:1.35;color:#666;transition:color .15s ease}a.svelte-1g65yun .num:where(.svelte-1g65yun){color:#444}a.svelte-1g65yun:hover{color:#bbb}a.svelte-1g65yun.active{color:#fff}a.svelte-1g65yun.active .num:where(.svelte-1g65yun){color:#888}@media(max-width:900px){.toc-mobile.svelte-1g65yun{display:block}.toc-rail.svelte-1g65yun{display:none}}.demo.svelte-14ycuce{padding:1rem;margin:1.5rem 0 0}svg.svelte-14ycuce{display:block;width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none}.grid.svelte-14ycuce{stroke:#1a1a1a;stroke-width:1}.axis.svelte-14ycuce{stroke:#333;stroke-width:1}.area.svelte-14ycuce{fill:#fff;opacity:.05}.curve.svelte-14ycuce{fill:none;stroke:#fff;stroke-width:1.6}.playhead.svelte-14ycuce{stroke:#fff;stroke-width:1.5;opacity:.7}.stage.svelte-14ycuce{stroke:#1d1d1d;stroke-width:1;stroke-dasharray:2 4}.stage-label.svelte-14ycuce{fill:#666;font-size:9px}.knob.svelte-14ycuce{fill:#000;stroke:#fff;stroke-width:1.5;pointer-events:none}.knob-label.svelte-14ycuce{fill:#fff;font-size:9px;opacity:0;pointer-events:none}.knob-label.svelte-14ycuce.show{opacity:1}.controls.svelte-14ycuce{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem 1.5rem;margin-top:1rem}.control.svelte-14ycuce{display:flex;flex-direction:column;gap:.5rem}.control.svelte-14ycuce span:where(.svelte-14ycuce){font-size:.85rem;color:#999}.control.svelte-14ycuce b:where(.svelte-14ycuce){color:#fff;font-weight:400}.actions.svelte-14ycuce{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.5rem;margin-top:1rem}.inline.svelte-14ycuce{flex:0 1 12rem;min-width:11rem}.play.svelte-14ycuce{font:inherit;font-size:.85rem;color:#fff;background:#111;border:1px solid #444;padding:.45rem .9rem;cursor:pointer}.play.svelte-14ycuce:hover,.play.svelte-14ycuce.active{border-color:#fff}.play.svelte-14ycuce.active{background:#1a1a1a}.hint.svelte-14ycuce{max-width:34rem;margin:.6rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.demo.svelte-rte1da{padding:1rem;margin:1.5rem 0 0}svg.svelte-rte1da{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.wavefront.svelte-rte1da{fill:none;stroke:#555;stroke-width:1}.shock.svelte-rte1da{stroke:#f66;stroke-width:1.5;stroke-dasharray:5 4}.track.svelte-rte1da{stroke:#333;stroke-width:1;stroke-dasharray:3 5}.ray.svelte-rte1da{stroke:#444;stroke-width:1;stroke-dasharray:2 4}.head.svelte-rte1da{fill:#0a0a0a;stroke:#555;stroke-width:1.5}.ear.svelte-rte1da,.nose.svelte-rte1da{fill:#333}.source.svelte-rte1da{fill:#fff;stroke:#000;stroke-width:1.5}.source.svelte-rte1da.approach{stroke:#f66}.source.svelte-rte1da.recede{stroke:#6af}.label.svelte-rte1da{fill:#666;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.readout.svelte-rte1da{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.5rem;color:#888;font-size:.8rem}.readout.svelte-rte1da b:where(.svelte-rte1da){color:#fff;font-weight:400}.readout.svelte-rte1da .boom:where(.svelte-rte1da){color:#f66;letter-spacing:.08em;text-transform:uppercase}.actions.svelte-rte1da{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1rem}.control.svelte-rte1da{display:flex;flex-direction:column;gap:.5rem}.control.svelte-rte1da span:where(.svelte-rte1da){font-size:.85rem;color:#999}.control.svelte-rte1da b:where(.svelte-rte1da){color:#fff;font-weight:400}.inline.svelte-rte1da{flex:0 1 14rem;min-width:12rem}.play.svelte-rte1da{font:inherit;font-size:.85rem;color:#fff;background:#111;border:1px solid #444;padding:.45rem .9rem;cursor:pointer}.play.svelte-rte1da:hover,.play.svelte-rte1da.active{border-color:#fff}.play.svelte-rte1da.active{background:#1a1a1a}.hint.svelte-rte1da{max-width:34rem;margin:.6rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.demo.svelte-1nr1him{padding:1rem;margin:1.5rem 0 0}.presets.svelte-1nr1him{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;color:#777;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.stack.svelte-1nr1him{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.4rem .8rem}.head.svelte-1nr1him{color:#777;font-size:.72rem;letter-spacing:.08em;text-align:center;text-transform:uppercase}.cell.svelte-1nr1him{position:relative;min-width:0;background:#0b0b0b;border:1px solid #222;touch-action:none}button.cell.svelte-1nr1him{display:block;width:100%;padding:0;color:inherit;font:inherit;line-height:0;text-align:inherit;appearance:none;border-radius:0}.left.svelte-1nr1him{cursor:crosshair;outline:none}.left.svelte-1nr1him:hover,.left.svelte-1nr1him:focus-visible,.left.svelte-1nr1him.dragging{border-color:#777}.right.svelte-1nr1him.last{border-color:#555}svg.svelte-1nr1him{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.axis.svelte-1nr1him{stroke:#2a2a2a;stroke-width:1}.wave.svelte-1nr1him{fill:none;stroke:#888;stroke-width:1.2}.left.svelte-1nr1him .wave:where(.svelte-1nr1him){stroke:#fff}.freq-label.svelte-1nr1him{fill:#fff;font-size:11px;paint-order:stroke;stroke:#0b0b0b;stroke-linejoin:round;stroke-width:4px}.final.svelte-1nr1him{position:absolute;top:.2rem;left:.35rem;color:#555;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase}.remove.svelte-1nr1him{position:absolute;top:.1rem;right:.2rem;width:1.2rem;height:1.2rem;padding:0;color:#666;background:transparent;border:0;cursor:pointer;font:inherit;font-size:1rem;line-height:1}.remove.svelte-1nr1him:hover{color:#fff}.remove.svelte-1nr1him:disabled{opacity:.2;cursor:default}.actions.svelte-1nr1him{display:flex;align-items:center;gap:.75rem;margin-top:.6rem}.add.svelte-1nr1him{font:inherit;font-size:.78rem;color:#fff;background:#111;border:1px solid #444;padding:.32rem .6rem;cursor:pointer}.add.svelte-1nr1him:hover{border-color:#fff}.add.svelte-1nr1him:disabled{opacity:.35;cursor:default}.count.svelte-1nr1him{color:#666;font-size:.72rem}.hint.svelte-1nr1him{margin:.6rem 0 0;color:#777;font-size:.8rem;line-height:1.5}.orbits.svelte-1nr1him{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.2rem;padding-top:1rem;border-top:1px solid #1e1e1e}.orbit-title.svelte-1nr1him{margin-bottom:.35rem;color:#777;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.orbits.svelte-1nr1him svg:where(.svelte-1nr1him){width:220px;max-width:100%}.orbit-axis.svelte-1nr1him{stroke:#1e1e1e;stroke-width:1}.orbit.svelte-1nr1him{fill:none;stroke:#444;stroke-dasharray:2 3;stroke-width:1}.orbit-path.svelte-1nr1him{fill:none;stroke:#fff;stroke-width:1.1}.orbit-tip.svelte-1nr1him{fill:#fff}.orbit-hint.svelte-1nr1him{flex:1 1 14rem;max-width:24rem;margin:0;color:#777;font-size:.8rem;line-height:1.5}@media(max-width:600px){.stack.svelte-1nr1him{gap:.3rem .4rem}}.demo.svelte-1xxw0gk{padding:1rem;margin:1.5rem 0 0}svg.svelte-1xxw0gk{display:block;width:100%;max-width:30rem;height:auto;margin:0 auto}.orbit.svelte-1xxw0gk{fill:none;stroke:#1f1f1f;stroke-width:1}.base.svelte-1xxw0gk{fill:none;stroke:#242424;stroke-width:1}.active.svelte-1xxw0gk{fill:none;stroke:#fff;stroke-width:1;marker-end:url(#fifths-arrow)}.node.svelte-1xxw0gk .dot:where(.svelte-1xxw0gk){fill:#000;stroke:#333;stroke-width:1}.node.svelte-1xxw0gk text:where(.svelte-1xxw0gk){fill:#555;font-size:10px}.node.svelte-1xxw0gk.active .dot:where(.svelte-1xxw0gk){stroke:#fff;stroke-width:1.2}.node.svelte-1xxw0gk.active text:where(.svelte-1xxw0gk){fill:#fff}.node.svelte-1xxw0gk.tonic text:where(.svelte-1xxw0gk){font-weight:500}.node.svelte-1xxw0gk .tonic-ring:where(.svelte-1xxw0gk){fill:none;stroke:#fff;stroke-width:1;stroke-dasharray:2 3;opacity:.4}.bubble-wrap.svelte-1xxw0gk{transform-box:fill-box;transform-origin:center;transition:transform .16s ease-out}.bubble-wrap.svelte-1xxw0gk.bubble{transform:scale(1.35)}.travel.svelte-1xxw0gk{transition:transform .45s ease-in-out}.travel.svelte-1xxw0gk circle:where(.svelte-1xxw0gk){fill:#fff;filter:drop-shadow(0 0 4px #fff)}.caption.svelte-1xxw0gk{margin:.45rem 0 0;color:#777;font-size:.72rem;letter-spacing:.08em;text-align:center}.caption.svelte-1xxw0gk b:where(.svelte-1xxw0gk){color:#fff;font-weight:400}.legend.svelte-1xxw0gk{display:flex;justify-content:center;gap:1.25rem;margin-top:.75rem;font-size:.75rem;color:#777}.legend.svelte-1xxw0gk span:where(.svelte-1xxw0gk){display:inline-flex;align-items:center;gap:.4rem}.legend.svelte-1xxw0gk i:where(.svelte-1xxw0gk){width:.5rem;height:.5rem;border:1px solid #fff;border-radius:50%}.legend.svelte-1xxw0gk i:where(.svelte-1xxw0gk).muted{border-color:#444}.actions.svelte-1xxw0gk{display:flex;justify-content:center;margin-top:.75rem}.play.svelte-1xxw0gk{font:inherit;font-size:.85rem;color:#fff;background:#111;border:1px solid #444;padding:.45rem .9rem;cursor:pointer}.play.svelte-1xxw0gk:hover{border-color:#fff}.hint.svelte-1xxw0gk{max-width:32rem;margin:.6rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.demo.svelte-1n2ygp3{padding:1rem;margin:1.5rem 0 0}.controls.svelte-1n2ygp3{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:.5rem}.control.svelte-1n2ygp3{display:flex;flex-direction:column;gap:.35rem}.control.svelte-1n2ygp3 span:where(.svelte-1n2ygp3){color:#888;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.steps-row.svelte-1n2ygp3{display:flex;gap:.15rem;margin-bottom:.75rem}.step-btn.svelte-1n2ygp3{flex:1;min-width:0;height:1.55rem;padding:0;border:1px solid #222;background:#000;color:#444;font:inherit;font-size:.62rem;cursor:pointer}.step-btn.svelte-1n2ygp3:hover{border-color:#777;color:#fff}.step-btn.svelte-1n2ygp3.active{border-color:#aaa;background:#222;color:#fff}svg.svelte-1n2ygp3{display:block;width:100%;height:auto}svg.svelte-1n2ygp3 .staff:where(.svelte-1n2ygp3){stroke:#2c2c2c;stroke-width:1}svg.svelte-1n2ygp3 .bar:where(.svelte-1n2ygp3),svg.svelte-1n2ygp3 .ledger:where(.svelte-1n2ygp3){stroke:#555;stroke-width:1}.note.svelte-1n2ygp3{cursor:pointer;outline:none}.note.svelte-1n2ygp3 ellipse:where(.svelte-1n2ygp3){fill:#fff}.note.svelte-1n2ygp3 .accidental:where(.svelte-1n2ygp3){fill:#fff;font-size:13px}.note.svelte-1n2ygp3 .label:where(.svelte-1n2ygp3){fill:#ccc;font-size:11px;text-anchor:middle}.note.svelte-1n2ygp3 .degree:where(.svelte-1n2ygp3){fill:#666;font-size:9px;text-anchor:middle}.note.svelte-1n2ygp3:hover ellipse:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3:focus-visible ellipse:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3.active ellipse:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3:hover .accidental:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3:focus-visible .accidental:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3.active .accidental:where(.svelte-1n2ygp3){fill:#fff;filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 20px #fff) drop-shadow(0 0 40px #fff)}.note.svelte-1n2ygp3:hover .label:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3:focus-visible .label:where(.svelte-1n2ygp3),.note.svelte-1n2ygp3.active .label:where(.svelte-1n2ygp3){fill:#fff}.bar-controls.svelte-1n2ygp3{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem}.play.svelte-1n2ygp3{font:inherit;font-size:.8rem;color:#fff;background:#111;border:1px solid #444;padding:.45rem .8rem;cursor:pointer}.play.svelte-1n2ygp3:hover{border-color:#fff}.hint.svelte-1n2ygp3{font-size:.8rem;color:#777}.demo.svelte-182dl8n{padding:1rem;margin:1.5rem 0 0}.controls.svelte-182dl8n{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem}.timing.svelte-182dl8n{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem 2rem;margin-top:1rem}.control.svelte-182dl8n{display:grid;gap:.3rem;color:#777;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.control.svelte-182dl8n b:where(.svelte-182dl8n){color:#fff;font-weight:400}.control.svelte-182dl8n .stepped-select{border-color:#333}.modes.svelte-182dl8n{display:flex;gap:.25rem}.modes.svelte-182dl8n button:where(.svelte-182dl8n),.mute.svelte-182dl8n,.log-toggle.svelte-182dl8n{font:inherit;font-size:.75rem;color:#999;background:#0a0a0a;border:1px solid #333;padding:.45rem .6rem;cursor:pointer;white-space:nowrap}:is(.modes.svelte-182dl8n button:where(.svelte-182dl8n),.mute.svelte-182dl8n,.log-toggle.svelte-182dl8n):hover{color:#fff;border-color:#777}.modes.svelte-182dl8n button.active:where(.svelte-182dl8n),.mute.active.svelte-182dl8n,.log-toggle.active.svelte-182dl8n{color:#fff;border-color:#fff;background:#141414}.hint.svelte-182dl8n{margin:.7rem 0 0;color:#777;font-size:.8rem}.scale-row.svelte-182dl8n{display:flex;align-items:start;gap:.6rem;margin-top:.75rem}.scale-row.svelte-182dl8n svg:where(.svelte-182dl8n){flex:1;min-width:0;cursor:crosshair}.log-toggle.svelte-182dl8n{align-self:start}svg.svelte-182dl8n{display:block;width:100%;height:auto}svg.svelte-182dl8n .rail:where(.svelte-182dl8n){stroke:#333;stroke-width:1}svg.svelte-182dl8n .span:where(.svelte-182dl8n){stroke:#fff;stroke-width:2}svg.svelte-182dl8n .tick:where(.svelte-182dl8n){stroke:#333;stroke-width:1}svg.svelte-182dl8n .tick:where(.svelte-182dl8n).major{stroke:#777}svg.svelte-182dl8n .tick:where(.svelte-182dl8n).beyond,svg.svelte-182dl8n .tick:where(.svelte-182dl8n).beyond.major{stroke:#1e1e1e}svg.svelte-182dl8n .root:where(.svelte-182dl8n){fill:#fff}svg.svelte-182dl8n .target:where(.svelte-182dl8n){fill:#000;stroke:#fff;stroke-width:2}svg.svelte-182dl8n text:where(.svelte-182dl8n){fill:#999;font-family:inherit;font-size:11px}.readout.svelte-182dl8n{margin-top:.5rem;color:#999;font-size:.85rem}.readout.svelte-182dl8n b:where(.svelte-182dl8n){color:#fff;font-weight:400}h3.svelte-182dl8n{margin:1.5rem 0 .5rem;color:#777;font-size:.68rem;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.grid.svelte-182dl8n{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.4rem}.grid.svelte-182dl8n button:where(.svelte-182dl8n){display:flex;flex-direction:column;gap:.12rem;min-width:0;padding:.45rem .55rem;color:#999;text-align:left;background:#0a0a0a;border:1px solid #333;cursor:pointer;font:inherit}.grid.svelte-182dl8n button:where(.svelte-182dl8n):hover{color:#fff;border-color:#777}.grid.svelte-182dl8n button:where(.svelte-182dl8n).active{color:#fff;border-color:#fff;background:#141414}.grid.svelte-182dl8n button:where(.svelte-182dl8n).ghost:not(.active){opacity:.42}.grid.svelte-182dl8n button:where(.svelte-182dl8n).ghost:hover{opacity:1}.short.svelte-182dl8n{color:#fff;font-size:.9rem;line-height:1.1}.name.svelte-182dl8n{font-size:.72rem;line-height:1.25}.semi.svelte-182dl8n{color:#666;font-size:.65rem}.ratio.svelte-182dl8n{color:#999;font-size:.72rem;font-variant-numeric:tabular-nums}.demo.svelte-1d21xpl{padding:1rem;margin:1.5rem 0 0}.hint.svelte-1d21xpl{color:#777;font-size:.8rem;margin-bottom:.5rem}.row.svelte-1d21xpl{display:flex;align-items:center;gap:1rem;width:100%;font:inherit;color:#ccc;text-align:left;background:transparent;border:0;padding:.35rem 0;cursor:pointer}.row.svelte-1d21xpl:hover{color:#fff}.row.svelte-1d21xpl:hover svg:where(.svelte-1d21xpl) .wave:where(.svelte-1d21xpl){stroke:#fff}.note.svelte-1d21xpl{width:2.5rem;font-size:.9rem}.freq.svelte-1d21xpl{width:5rem;text-align:right;font-size:.8rem;color:#777}svg.svelte-1d21xpl{flex:1;height:2.2rem;width:100%}svg.svelte-1d21xpl .axis:where(.svelte-1d21xpl){stroke:#2a2a2a;stroke-width:1}svg.svelte-1d21xpl .wave:where(.svelte-1d21xpl){fill:none;stroke:#888;stroke-width:1.2}.demo.svelte-1ncj5rt{padding:1rem;margin:1.5rem 0 0}svg.svelte-1ncj5rt{display:block;width:100%;height:auto}svg.svelte-1ncj5rt .base:where(.svelte-1ncj5rt){stroke:#333;stroke-width:1}svg.svelte-1ncj5rt .active:where(.svelte-1ncj5rt){stroke:#fff;stroke-width:2}svg.svelte-1ncj5rt .bridge:where(.svelte-1ncj5rt){stroke:#fff;stroke-width:1.5}svg.svelte-1ncj5rt .nut:where(.svelte-1ncj5rt){fill:#777}.readout.svelte-1ncj5rt{margin-top:.5rem;font-size:.85rem;color:#999}.readout.svelte-1ncj5rt b:where(.svelte-1ncj5rt){color:#fff;font-weight:400}.ratio.svelte-1ncj5rt{color:#fff}.options.svelte-1ncj5rt{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.5rem;margin-top:1rem}button.svelte-1ncj5rt{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font:inherit;font-size:.8rem;color:#999;background:#0a0a0a;border:1px solid #333;padding:.5rem .6rem;cursor:pointer;text-align:left}button.svelte-1ncj5rt span:where(.svelte-1ncj5rt){color:#666}button.svelte-1ncj5rt:hover{color:#fff;border-color:#777}button.svelte-1ncj5rt.active{color:#fff;border-color:#fff;background:#141414}.demo.svelte-av7nc7{padding:1rem;margin:1.5rem 0 0}svg.svelte-av7nc7{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.grid.svelte-av7nc7{stroke:#1a1a1a;stroke-width:1}.mark.svelte-av7nc7{stroke:#1d1d1d;stroke-width:1;stroke-dasharray:2 4}.tick.svelte-av7nc7{fill:#666;font-size:9px}.interval.svelte-av7nc7{fill:#999;font-size:9px;letter-spacing:.02em}.axis.svelte-av7nc7{stroke:#333;stroke-width:1}.area.svelte-av7nc7{fill:#fff;opacity:.05}.curve.svelte-av7nc7{fill:none;stroke:#fff;stroke-width:1.6}.cursor.svelte-av7nc7{stroke:#777;stroke-width:1;stroke-dasharray:3 3}.dot.svelte-av7nc7{fill:#fff;stroke:#000;stroke-width:1.5}.readout.svelte-av7nc7{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.5rem;color:#888;font-size:.8rem}.readout.svelte-av7nc7 b:where(.svelte-av7nc7){color:#fff;font-weight:400}.controls.svelte-av7nc7{display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:1rem}.control.svelte-av7nc7{display:flex;flex:1;flex-direction:column;gap:.5rem;min-width:12rem}.control.svelte-av7nc7 span:where(.svelte-av7nc7){font-size:.85rem;color:#999}.control.svelte-av7nc7 b:where(.svelte-av7nc7){color:#fff;font-weight:400}.hint.svelte-av7nc7{margin:.75rem 0 0;color:#777;font-size:.8rem;line-height:1.5}.demo.svelte-jz0oz0{padding:1rem;margin:1.5rem 0 0}.controls.svelte-jz0oz0{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin-bottom:1rem}.control.svelte-jz0oz0{display:flex;flex-direction:column;gap:.35rem}.control.svelte-jz0oz0 span:where(.svelte-jz0oz0){color:#888;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.degrees.svelte-jz0oz0{display:flex;flex-wrap:wrap;gap:.25rem}.degrees.svelte-jz0oz0 button:where(.svelte-jz0oz0){font:inherit;font-size:.75rem;color:#777;background:#000;border:1px solid #222;padding:.25rem .45rem;cursor:pointer}.degrees.svelte-jz0oz0 button:where(.svelte-jz0oz0):hover,.degrees.svelte-jz0oz0 button:where(.svelte-jz0oz0).active{color:#fff;border-color:#fff}.pyramid.svelte-jz0oz0{display:flex;flex-direction:column;gap:.55rem}.layer.svelte-jz0oz0{box-sizing:border-box;width:100%;text-align:center}.layer.svelte-jz0oz0 header:where(.svelte-jz0oz0){display:flex;justify-content:space-between;gap:1rem;margin-bottom:.35rem;color:#777;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.layer.svelte-jz0oz0 header:where(.svelte-jz0oz0) b:where(.svelte-jz0oz0){color:#aaa;font-weight:400}.chips.svelte-jz0oz0{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.2rem}.chip.svelte-jz0oz0{display:inline-flex;box-sizing:border-box;align-items:center;justify-content:center;width:100%;min-width:0;padding:.16rem .1rem;color:#ddd;background:#111;font:inherit;font-size:.8rem;letter-spacing:.04em}.ghost.svelte-jz0oz0{opacity:0}button.chip.svelte-jz0oz0{cursor:pointer}button.chip.svelte-jz0oz0:hover,button.chip.svelte-jz0oz0.selected{color:#fff;background:#222}.l4.svelte-jz0oz0 .chip:where(.svelte-jz0oz0){padding:.3rem .1rem;font-size:1rem}.filtered.svelte-jz0oz0{margin:.4rem 0 0;color:#666;font-size:.7rem}.hint.svelte-jz0oz0{max-width:34rem;margin:.7rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.demo.svelte-1dsy9q8{padding:1rem;margin:1.5rem 0 0}.top.svelte-1dsy9q8{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin-bottom:.75rem}.modes.svelte-1dsy9q8{display:flex;border:1px solid #333}.sound.svelte-1dsy9q8{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem}.control.svelte-1dsy9q8{display:flex;flex-direction:column;gap:.35rem;min-width:9rem}.control.svelte-1dsy9q8 span:where(.svelte-1dsy9q8){color:#888;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.control.svelte-1dsy9q8 b:where(.svelte-1dsy9q8){color:#fff;font-weight:400;font-variant-numeric:tabular-nums;text-transform:none}.osc .select-frame{width:8rem}button.svelte-1dsy9q8{padding:.45rem .8rem;border:1px solid #333;background:#0a0a0a;color:#999;font:inherit;font-size:.78rem;cursor:pointer}button.svelte-1dsy9q8:hover{border-color:#777;color:#fff}button.svelte-1dsy9q8:focus-visible{outline:1px solid #777;outline-offset:2px}.modes.svelte-1dsy9q8 button:where(.svelte-1dsy9q8){border:0;border-right:1px solid #333}.modes.svelte-1dsy9q8 button:where(.svelte-1dsy9q8):last-child{border-right:0}.modes.svelte-1dsy9q8 button:where(.svelte-1dsy9q8):hover{background:#151515;color:#fff}.modes.svelte-1dsy9q8 button.active:where(.svelte-1dsy9q8){background:#fff;color:#000}.modes.svelte-1dsy9q8 button.active:where(.svelte-1dsy9q8):hover{background:#fff;color:#000}.scene.svelte-1dsy9q8{display:block;width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;outline:none}.scene.svelte-1dsy9q8:focus-visible{outline:1px solid #555;outline-offset:4px}.scene.svelte-1dsy9q8.dragging{cursor:grabbing}.ring.svelte-1dsy9q8{fill:none;stroke:#1a1a1a;stroke-width:1;stroke-dasharray:2 5}.axis.svelte-1dsy9q8{stroke:#222;stroke-width:1;stroke-dasharray:2 5}.label.svelte-1dsy9q8{fill:#666;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.head.svelte-1dsy9q8{fill:#0a0a0a;stroke:#555;stroke-width:1.5}.ear.svelte-1dsy9q8,.nose.svelte-1dsy9q8{fill:#333}.ray.svelte-1dsy9q8{stroke:#444;stroke-width:1;stroke-dasharray:2 3}.halo.svelte-1dsy9q8{fill:none;stroke:#fff;stroke-width:1.5;stroke-opacity:0}.halo.on.svelte-1dsy9q8{stroke-opacity:.25}.source.svelte-1dsy9q8{fill:#fff;stroke:#000;stroke-width:1.5}.readout.svelte-1dsy9q8{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.5rem;color:#888;font-size:.8rem}.readout.svelte-1dsy9q8 b:where(.svelte-1dsy9q8){color:#fff;font-weight:400}.hint.svelte-1dsy9q8{margin:.75rem 0 0;color:#777;font-size:.8rem;line-height:1.5}.demo.svelte-1a6er7p{padding:1rem;margin:1.5rem 0 0}.controls.svelte-1a6er7p{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem 1rem;margin-bottom:.75rem}.control.svelte-1a6er7p{display:flex;flex-direction:column;gap:.35rem}.control.svelte-1a6er7p span:where(.svelte-1a6er7p){color:#888;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}svg.svelte-1a6er7p{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.staff.svelte-1a6er7p{stroke:#2c2c2c;stroke-width:1}.bar.svelte-1a6er7p,.ledger.svelte-1a6er7p{stroke:#666;stroke-width:1}.notehead.svelte-1a6er7p{fill:#0a0a0a;stroke:#fff;stroke-width:1.5}.notehead.svelte-1a6er7p.filled{fill:#fff}.stem.svelte-1a6er7p,.flag.svelte-1a6er7p{fill:none;stroke:#fff;stroke-width:1.6}.accidental.svelte-1a6er7p{fill:#ddd;font-family:Noto Sans Symbols,DejaVu Sans,serif;font-size:30px}.c-clef.svelte-1a6er7p{fill:#fff;font-family:"Noto Serif","DejaVu Serif",serif;font-size:48px}.clef-line.svelte-1a6er7p{stroke:#666;stroke-width:1}.note-label.svelte-1a6er7p{fill:#888;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.readout.svelte-1a6er7p{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:.5rem;color:#888;font-size:.8rem}.readout.svelte-1a6er7p b:where(.svelte-1a6er7p){color:#fff;font-weight:400}.hint.svelte-1a6er7p{max-width:34rem;margin:.7rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.demo.svelte-1x67bab{padding:1rem;margin:1.5rem 0 0}.tabs.svelte-1x67bab{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:.8rem}.tabs.svelte-1x67bab button:where(.svelte-1x67bab){font:inherit;font-size:.75rem;color:#999;background:#0a0a0a;border:1px solid #333;padding:.45rem .6rem;cursor:pointer}.tabs.svelte-1x67bab button:where(.svelte-1x67bab):hover{color:#fff;border-color:#777}.tabs.svelte-1x67bab button:where(.svelte-1x67bab).active{color:#fff;border-color:#fff;background:#141414}figure.svelte-1x67bab{margin:0;text-align:center}svg.svelte-1x67bab{display:block;width:100%;max-width:14rem;height:auto;margin:0 auto}.arc.svelte-1x67bab{fill:none;stroke:#fff;stroke-width:1.2}.arc.svelte-1x67bab.gap{stroke:#d98b6a;stroke-dasharray:2 3}.arc.svelte-1x67bab.wolf{stroke:#d98b6a;stroke-width:2}.dot.svelte-1x67bab{fill:#000;stroke:#777;stroke-width:1}.standard.svelte-1x67bab{fill:#fff;font-family:inherit;font-size:8px;letter-spacing:.08em;text-transform:uppercase}figcaption.svelte-1x67bab{margin-top:.5rem}figcaption.svelte-1x67bab b:where(.svelte-1x67bab){display:block;color:#fff;font-size:.82rem;font-weight:400;line-height:1.3}figcaption.svelte-1x67bab span:where(.svelte-1x67bab){display:block;margin-top:.25rem;color:#777;font-size:.72rem;line-height:1.4}.hint.svelte-1x67bab{max-width:34rem;margin:.9rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.demo.svelte-1cgoh05{padding:1rem;margin:1.5rem 0 0}svg.svelte-1cgoh05{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}svg.svelte-1cgoh05 .axis:where(.svelte-1cgoh05){stroke:#333;stroke-width:1}svg.svelte-1cgoh05 .wave:where(.svelte-1cgoh05){fill:none;stroke:#fff;stroke-width:1.5}.hint.svelte-1cgoh05{margin:.5rem 0 0;color:#777;font-size:.8rem}.controls.svelte-1cgoh05{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 2rem;margin-top:1rem}.control.svelte-1cgoh05{display:flex;flex-direction:column;gap:.5rem;min-width:12rem;flex:1}.control.svelte-1cgoh05 span:where(.svelte-1cgoh05){font-size:.85rem;color:#999}.control.svelte-1cgoh05 b:where(.svelte-1cgoh05){color:#fff;font-weight:400}.demo.svelte-1td1el4{padding:1rem;margin:1.5rem 0 0}svg.svelte-1td1el4{display:block;width:100%;max-width:30rem;height:auto;margin:0 auto}.tri.svelte-1td1el4{cursor:pointer;outline:none}.tri.svelte-1td1el4 polygon:where(.svelte-1td1el4){fill:#0b0b0b;stroke:#262626;stroke-width:.8;transition:fill .15s ease,stroke .15s ease}.tri.svelte-1td1el4.major polygon:where(.svelte-1td1el4){stroke:#333}.tri.svelte-1td1el4:hover polygon:where(.svelte-1td1el4),.tri.svelte-1td1el4:focus-visible polygon:where(.svelte-1td1el4){fill:#1d1d1d;stroke:#777}.tri.svelte-1td1el4.active polygon:where(.svelte-1td1el4){fill:#222;stroke:#fff}.node.svelte-1td1el4{pointer-events:none}.node.svelte-1td1el4 circle:where(.svelte-1td1el4){fill:#777}.node.svelte-1td1el4 text:where(.svelte-1td1el4){fill:#ddd;font-size:10px;font-weight:500}.status.svelte-1td1el4{margin:.5rem 0 0;color:#fff;font-size:.85rem;text-align:center;min-height:1.3em}.hint.svelte-1td1el4{max-width:32rem;margin:.35rem auto 0;color:#777;font-size:.8rem;line-height:1.5;text-align:center}.placeholder.svelte-1mlfr2x{display:grid;gap:.35rem;margin:1.5rem 0 0;padding:1.1rem 1.2rem;border:1px dashed #333;color:#777}.badge.svelte-1mlfr2x{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#666}strong.svelte-1mlfr2x{font-weight:400;color:#bbb}p.svelte-1mlfr2x{margin:0;font-size:.8rem;line-height:1.5}.theory-page.svelte-1r5e96a{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:3rem;max-width:70rem;margin:0 auto;padding:2.5rem 1.5rem 6rem;box-sizing:border-box;font-variant-numeric:tabular-nums}.theory-page .readout b,.theory-page .control b,.theory-page .actions b,.theory-page .count{display:inline-block;min-width:6ch;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;text-align:right}.theory-page .freq{display:inline-block;min-width:4ch;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;text-align:right}.article.svelte-1r5e96a{min-width:0}.intro.svelte-1r5e96a h1:where(.svelte-1r5e96a){font-size:clamp(2rem,5vw,3.25rem);font-weight:300;line-height:1.05;letter-spacing:-.01em;text-wrap:balance}.intro.svelte-1r5e96a .lead:where(.svelte-1r5e96a){max-width:60ch;margin-top:1rem;font-size:1.15rem;line-height:1.6;color:#bbb}@media(max-width:900px){.theory-page.svelte-1r5e96a{grid-template-columns:1fr;gap:.5rem;padding:1.5rem 1rem 4rem}}
