.overlay{z-index:50;background:var(--overlay-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity var(--overlay-out) var(--ease-standard);justify-content:center;align-items:flex-start;padding-top:11vh;display:flex;position:fixed;inset:0}.overlay:has(.palette.is-open){opacity:1}.overlay:has(.palette.is-closing){opacity:0}.palette{width:var(--palette-w);max-width:calc(100% - 2 * var(--space-400));background:var(--surface);border-radius:var(--radius-frame);box-shadow:var(--elevation-modal);transform-origin:50%;opacity:0;transition:transform var(--modal-out) var(--ease-modal-out), opacity var(--palette-out) var(--ease-standard);will-change:transform, opacity;flex-direction:column;display:flex;transform:scale(.96)}.palette.is-open{opacity:1;transition:transform var(--modal-in) var(--ease-modal-in), opacity var(--palette-in) var(--ease-standard);transform:scale(1)}.palette.is-closing{opacity:0;transition:transform var(--modal-out) var(--ease-modal-out), opacity var(--palette-out) var(--ease-standard);transform:scale(.96)}.psearch{align-items:center;gap:var(--space-300);padding:15px var(--space-400);border-bottom:1px solid var(--hairline);display:flex}.psearch-ic{width:16px;height:16px;color:var(--text2);flex:none;justify-content:center;align-items:center;display:inline-flex}.psearch-ic svg{width:16px;height:16px}.pinput{min-width:0;color:var(--text);font-family:var(--family-ui);font-size:16px;font-weight:400;line-height:var(--lh-flush);background:0 0;border:none;outline:none;flex:1}.pinput::placeholder{color:var(--text3)}.esc{font-family:var(--family-mono);font-size:10px;font-weight:400;line-height:var(--lh-flush);color:var(--text3);border:1px solid var(--hairline2);border-radius:var(--radius-kbd);flex:none;padding:2px 6px}.presults{padding:var(--space-200);max-height:48vh;margin:0;list-style:none;overflow-y:auto}.presults .pgroup,.presults .pgroup-list{margin:0;padding:0;list-style:none}.pgroup-h{font-family:var(--family-mono);font-size:10px;font-weight:500;line-height:var(--lh-flush);letter-spacing:1px;text-transform:uppercase;color:var(--text3);padding:9px 10px 4px}.pitem{height:var(--palette-row-h);border-radius:var(--radius-control);cursor:pointer;background:0 0;align-items:center;gap:11px;padding:0 11px;display:flex}.pitem.sel{background:var(--raised)}.pitem.soon{cursor:default}.pico{width:18px;color:var(--text3);flex:none;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.pitem.sel .pico{color:var(--mint)}.pitem.soon .pico{color:var(--muted)}.plabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--family-ui);font-size:14px;font-weight:400;line-height:var(--lh-flush);color:var(--string-name);flex:1;overflow:hidden}.pitem.soon .plabel{color:var(--muted)}.pmeta{font-family:var(--family-mono);font-size:11px;font-weight:400;line-height:var(--lh-flush);color:var(--text3);flex:none}.pmeta.palette-soon{color:var(--palette-soon)}.pempty{text-align:center;padding:var(--space-600) var(--space-300);font-family:var(--family-ui);font-size:14px;font-weight:400;line-height:var(--lh-normal);color:var(--text3);list-style:none}.pfoot{align-items:center;gap:var(--space-400);border-top:1px solid var(--hairline);font-family:var(--family-ui);font-size:11px;font-weight:400;line-height:var(--lh-flush);color:var(--text3);padding:9px 14px;display:flex}.pfoot-seg{align-items:center;gap:var(--space-100);display:inline-flex}.pfoot-key{font-family:var(--family-mono);font-size:10px;font-weight:400;line-height:var(--lh-flush);color:var(--text3);border:1px solid var(--hairline2);border-radius:var(--radius-kbd);padding:1px 5px}@media (prefers-reduced-motion:reduce){.overlay,.palette{transition:none}.palette,.palette.is-open,.palette.is-closing{transform:none}}.tuner-view{flex-direction:column;display:flex}.tuner-panel{align-items:center;gap:var(--space-500);width:100%;max-width:520px;padding-block:var(--space-600);text-align:center;flex-direction:column;margin:0 auto;display:flex}.tuner-idle-glyph{font-family:var(--family-mono);color:var(--mint);opacity:.9;font-size:48px;line-height:1}.tuner-idle-h{font-family:var(--family-ui);font-size:22px;font-weight:600;line-height:var(--lh-tight);letter-spacing:-.4px;color:var(--text);margin:0}.tuner-idle-rationale{max-width:42ch;font-family:var(--family-ui);font-size:14px;line-height:var(--lh-normal);color:var(--text2);margin:0}.tuner-start{min-height:var(--touch-target-min);padding:0 var(--space-500);border-radius:var(--radius-pill);border:1px solid var(--mint);color:var(--mint);font-family:var(--family-ui);font-size:14px;font-weight:600;line-height:var(--lh-flush);cursor:pointer;transition:background var(--color-shift) var(--ease-standard);background:0 0;justify-content:center;align-items:center;display:inline-flex}.tuner-start:hover{background:var(--pill-active-wash)}.tuner-start[aria-disabled=true]{cursor:default;opacity:.6}.tuner-stop{min-height:var(--touch-target-min);padding:0 var(--space-400);border-radius:var(--radius-pill);border:1px solid var(--hairline2);color:var(--text2);font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);cursor:pointer;transition:border-color var(--color-shift) var(--ease-standard);background:0 0;justify-content:center;align-items:center;display:inline-flex}.tuner-stop:hover{border-color:var(--hairline3)}.tuner-privacy{max-width:42ch;font-family:var(--family-ui);font-size:12px;line-height:var(--lh-normal);color:var(--text2);margin:0}.tuner-paused{font-family:var(--family-ui);color:var(--text2);margin:0;font-size:13px}.tuner-readout{align-items:center;gap:var(--space-100);flex-direction:column;min-height:96px;display:flex}.tuner-note{font-family:var(--family-mono);font-feature-settings:var(--features-mono);letter-spacing:-1px;color:var(--text);font-size:56px;font-weight:500;line-height:1}.tuner-cents{font-family:var(--family-mono);font-feature-settings:var(--features-mono);font-size:18px;font-weight:400;line-height:var(--lh-flush);color:var(--text2)}.tuner-dir-word{font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);color:var(--text2)}.tuner-readout.is-in-tune .tuner-note,.tuner-readout.is-in-tune .tuner-cents{color:var(--mint)}.tuner-intune{font-family:var(--family-mono);font-feature-settings:var(--features-mono);letter-spacing:1px;font-size:14px;font-weight:600;line-height:var(--lh-flush);color:var(--mint)}.tuner-readout-empty .tuner-note,.tuner-readout-empty .tuner-cents{color:var(--text3)}.tuner-meter{width:100%;max-width:360px;height:auto;overflow:visible}.tuner-axis{stroke:var(--hairline2);stroke-width:1px}.tuner-tick{stroke:var(--mint);stroke-width:1px;opacity:.55}.tuner-dir{font-family:var(--family-ui);fill:var(--text2);font-size:11px;font-weight:500}.tuner-dir-flat{text-anchor:end}.tuner-dir-sharp{text-anchor:start}.tuner-glow{stroke:var(--root-glow);stroke-width:3px;opacity:0;transition:opacity var(--glow-fade) var(--ease-standard)}.tuner-dot-g.is-in-tune .tuner-glow{opacity:1}.tuner-dot{fill:var(--in-scale-fill);stroke:var(--mint);stroke-width:1.5px;transition:r var(--dot-radius) var(--ease-spring), fill var(--state-color) var(--ease-standard), stroke var(--state-color) var(--ease-standard), stroke-width var(--state-color) var(--ease-standard)}.tuner-dot-g.is-in-tune .tuner-dot{fill:var(--mint);stroke:none;stroke-width:0}.tuner-dot-lbl{font-family:var(--family-ui);font-feature-settings:var(--features-ui);fill:var(--root-label);font-size:12px;font-weight:700}.tuner-chips{justify-content:center;gap:var(--space-200);flex-wrap:wrap;display:flex}.tuner-chip{height:var(--pill-h);border-radius:var(--radius-pill);border:1px solid var(--hairline2);color:var(--text2);font-family:var(--family-mono);font-feature-settings:var(--features-mono);font-size:13px;font-weight:500;line-height:var(--lh-flush);white-space:nowrap;transition:border-color var(--color-shift) var(--ease-standard), background var(--color-shift) var(--ease-standard);background:0 0;justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.tuner-chip.is-active{background:var(--pill-active-wash);border-color:var(--mint);color:var(--text)}.tuner-chip.is-active.is-in-tune{box-shadow:0 0 0 3px var(--root-glow);transition:border-color var(--color-shift) var(--ease-standard), background var(--color-shift) var(--ease-standard), box-shadow var(--glow-fade) var(--ease-standard)}.a4-cal{align-items:center;gap:var(--space-200);flex-direction:column;display:flex}.a4-cal-caption{font-family:var(--family-ui);letter-spacing:.5px;text-transform:uppercase;color:var(--text3);font-size:11px;font-weight:500}.a4-cal-row{align-items:center;gap:var(--space-300);display:inline-flex}.a4-step{min-width:var(--touch-target-min);min-height:var(--touch-target-min);border-radius:var(--radius-pill);border:1px solid var(--hairline2);color:var(--text);font-family:var(--family-mono);cursor:pointer;transition:border-color var(--color-shift) var(--ease-standard);background:0 0;justify-content:center;align-items:center;padding:0;font-size:20px;font-weight:500;line-height:1;display:inline-flex}.a4-step:hover:not(:disabled){border-color:var(--hairline3)}.a4-step:disabled{color:var(--muted);cursor:default;opacity:.55}.a4-cal-value{min-width:7ch;font-family:var(--family-mono);font-feature-settings:var(--features-mono);color:var(--text);justify-content:center;align-items:baseline;font-size:18px;font-weight:500;display:inline-flex}.a4-cal-unit{color:var(--text2)}@media (prefers-reduced-motion:reduce){.tuner-dot,.tuner-glow,.tuner-chip,.tuner-chip.is-active.is-in-tune,.tuner-start,.tuner-stop,.a4-step{transition:none}}.pill-track{align-items:center;gap:var(--space-100);flex-wrap:wrap;display:flex;position:relative}.view-rows{gap:var(--space-300);flex-direction:column;display:flex}.view-subrow{align-items:center;gap:var(--space-300);display:flex}.view-cap{width:72px;font-family:var(--family-ui);font-size:11px;font-weight:500;line-height:var(--lh-flush);color:var(--text3);flex:none}.pill{z-index:1;height:var(--pill-h);border-radius:var(--radius-pill);border:1px solid var(--hairline2);color:var(--text2);font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);white-space:nowrap;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0 12px;display:inline-flex;position:relative}.pill:hover{border-color:var(--hairline3)}.pill.is-active{background:var(--pill-active-wash);border-color:var(--mint);color:var(--text)}.pill.is-active:hover{border-color:var(--mint)}.pill.pill-tape.is-active{background:var(--tape-pill-wash);border-color:var(--tape);color:var(--tape-pill-fg)}.pill.pill-tape.is-active:hover{border-color:var(--tape)}.pill.pill-landmark.is-active{background:var(--land-pill-wash);border-color:var(--teal);color:var(--land-pill-fg)}.pill.pill-landmark.is-active:hover{border-color:var(--teal)}.pill.dim{opacity:.4;pointer-events:none}.pill-highlight{height:var(--pill-h);border-radius:var(--radius-pill);background:var(--pill-active-wash);z-index:0;pointer-events:none;width:0;position:absolute;top:0;left:0;transform:translate(0)}.mobile-controls{display:none}.mc-sheet-body{gap:var(--space-300);padding:var(--space-400);flex-direction:column;display:none;overflow-y:auto}.mc-sheet[data-open=true] .mc-sheet-body{display:flex}.mc-sheet .pill-track{gap:var(--space-200)}.mc-sheet .view-subrow{align-items:flex-start;gap:var(--space-100);flex-direction:column}.mc-sheet .pill-track[aria-label=Root\ note]{gap:var(--space-200);grid-template-columns:repeat(4,1fr);display:grid}.mc-sheet .pill-track[aria-label=Root\ note] .pill-highlight{display:none}@media (width<=760px){.mobile-controls{display:block}}.mc-header{align-items:center;gap:var(--space-200);width:100%;min-height:var(--sheet-peek-h);padding:var(--space-200) var(--space-400);color:var(--text);font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);text-align:left;cursor:pointer;background:0 0;border:none;display:flex;position:relative}.mc-grip{top:var(--space-200);width:var(--space-800);border-radius:var(--radius-pill);background:var(--hairline3);height:4px;position:absolute;left:50%;transform:translate(-50%)}.mc-header-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.mc-chevron{color:var(--text2);flex:none}.mc-close{min-height:var(--touch-target-min);padding:var(--space-200) var(--space-400);border:1px solid var(--hairline2);border-radius:var(--radius-pill);color:var(--text);font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);cursor:pointer;background:0 0;align-self:flex-end}.mc-close:hover{border-color:var(--hairline3)}.controls-sheet{z-index:40;background:var(--surface);border-top:1px solid var(--hairline);border-top-left-radius:var(--radius-frame);border-top-right-radius:var(--radius-frame);max-height:88vh;box-shadow:var(--elevation-modal);transform:translateY(calc(100% - var(--sheet-peek-h)));transition:transform var(--state-color) var(--ease-standard);position:fixed;bottom:0;left:0;right:0}.controls-sheet[data-open=true]{transform:translateY(0)}.mc-chevron{transition:transform var(--state-color) var(--ease-standard)}.controls-sheet[data-open=true] .mc-chevron{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.controls-sheet,.mc-chevron{transition:none}}.board .string-line{stroke:var(--string-line);stroke-width:1.5px}.board .nut{fill:var(--string-line)}.board .guide{stroke:var(--guide-line);stroke-width:1px}.board .string-name{font-family:var(--family-ui);fill:var(--string-name);font-size:11px;font-weight:600}.board .open-label{font-family:var(--family-ui);fill:var(--open-label);font-size:10px;font-weight:400}.board .note .glow{stroke:var(--root-glow);stroke-width:3px;opacity:0}.board .note.is-root .glow{opacity:1}.board .note.is-off .dot{fill:var(--off-fill);stroke:var(--off-stroke);stroke-width:1px}.board .note.is-scale .dot{fill:var(--in-scale-fill);stroke:var(--mint);stroke-width:1.5px}.board .note.is-root .dot{fill:var(--mint);stroke:none;stroke-width:0}.board .note .lbl{font-family:var(--family-ui);font-feature-settings:var(--features-ui);text-anchor:middle}.board .note.is-off .lbl{opacity:0}.board .note.is-scale .lbl{fill:var(--scale-label);opacity:1;font-size:12px;font-weight:500}.board .note.is-root .lbl{fill:var(--root-label);opacity:1;font-size:12px;font-weight:700}.board .tape.hide,.board .land.hide,.board .tape .tape-band.hide{opacity:0}.board .tape .tape-rect{fill:var(--tape-band)}.board .tape .tape-num{font-family:var(--family-mono);font-feature-settings:var(--features-mono);fill:var(--tape-num);font-size:9px}.board .land .heel-rect{fill:var(--heel-band)}.board .land .heel-dash{stroke:var(--heel-dash);stroke-width:1px;stroke-dasharray:2 3}.board .land .heel-label{font-family:var(--family-ui);fill:var(--heel-label);font-size:8px;font-style:italic;font-weight:400}.board .land .octave-rect{fill:var(--octave-band)}.board .land .octave-label{fill:var(--octave-label)}.board .land .octave-top{font-family:var(--family-mono);font-size:9px}.board .land .octave-bottom{font-family:var(--family-ui);font-size:8px}.board .land .pos-label{font-family:var(--family-ui);font-feature-settings:var(--features-ui);fill:var(--pos-label);font-size:10px;font-weight:600}.legend-item{font-family:var(--family-ui);color:var(--text2);align-items:center;gap:7px;font-size:12px;display:inline-flex}.legend-swatch{flex:none;display:inline-block}.lg-root{border-radius:var(--radius-pill);background:var(--mint);width:16px;height:16px}.lg-scale{border-radius:var(--radius-pill);background:var(--in-scale-swatch);border:1.5px solid var(--mint);width:16px;height:16px}.lg-off{border-radius:var(--radius-pill);background:var(--off-fill);border:1px solid var(--off-stroke);width:9px;height:9px}.lg-tape{border-radius:var(--radius-chip);background:var(--tape-swatch);width:13px;height:16px}.lg-landmark{border-radius:var(--radius-chip);background:linear-gradient(180deg, var(--teal), var(--violet));width:13px;height:16px}.board[data-motion=stateful]{--stagger-per-column:var(--stagger-per-column-stateful);--root-ring-color:var(--root-glow)}.board[data-motion=snappy]{--stagger-per-column:var(--stagger-per-column-snappy);--root-ring-color:var(--root-glow-snappy)}.board[data-motion] .note .glow{stroke:var(--root-ring-color)}.board[data-motion=stateful] .note .dot{transition:r var(--dot-radius) var(--ease-spring), fill var(--state-color) var(--ease-standard), stroke var(--state-color) var(--ease-standard), stroke-width var(--state-color) var(--ease-standard);transition-delay:calc(var(--col) * var(--stagger-per-column))}.board[data-motion=stateful] .note .glow{transition:opacity var(--glow-fade) var(--ease-standard);transition-delay:calc(var(--col) * var(--stagger-per-column))}.board[data-motion=stateful] .note .lbl{transition:opacity var(--label-fade) var(--ease-standard), fill var(--lbl-fill) var(--ease-standard);transition-delay:calc(var(--col) * var(--stagger-per-column))}@keyframes dotPop{0%{opacity:0;filter:blur(1.5px);transform:scale(.5)}70%{opacity:1}to{opacity:1;filter:blur();transform:scale(1)}}.board[data-motion=snappy] .dot-anim{transform-box:fill-box;transform-origin:50%;will-change:transform, opacity;animation:dotPop var(--pop) var(--ease-overshoot) both;animation-delay:calc(var(--col) * var(--stagger-per-column))}.board[data-motion] .tape .tape-band.t-panel-slide{transform-box:fill-box;transform-origin:50%;transition:transform var(--tape-slide) var(--ease-spring-2);transform:translate(0)}.board[data-motion] .tape .tape-band.t-panel-slide[data-open=false]{transform:translate(var(--low2-dx,0px), var(--low2-dy,0px))}.board[data-motion] .tape,.board[data-motion] .tape .tape-band{transition:opacity .19s var(--ease-standard)}.board[data-motion] .land{transition:opacity var(--state-color) var(--ease-standard)}.pill-highlight{transition:transform var(--color-shift) var(--ease-standard), width var(--color-shift) var(--ease-standard)}.board .note .sound{fill:none;stroke:var(--mint);stroke-width:3px;opacity:0;pointer-events:none}.board .note .sound.is-sounding{opacity:1}.board[data-motion] .note .sound{transition:opacity var(--glow-fade) var(--ease-standard)}@media (prefers-reduced-motion:reduce){.dot-anim{animation:none}.note .dot,.note .glow,.note .lbl,.tape,.land,.overlay,.palette,.pill{transition:none}.pill:active{transform:none}.pill-highlight,.board[data-motion] .note .dot,.board[data-motion] .note .glow,.board[data-motion] .note .lbl,.board[data-motion] .note .sound,.board[data-motion] .tape,.board[data-motion] .tape .tape-band,.board[data-motion] .tape .tape-band.t-panel-slide,.board[data-motion] .land{transition:none}.board[data-motion=snappy] .dot-anim{animation:none}.board[data-motion] .note,.board[data-motion] .notes{transition:none}}*,:before,:after{box-sizing:border-box}html,body{background:var(--canvas);color:var(--text);font-family:var(--family-ui);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{min-height:100vh}.skip-link{left:var(--space-200);top:calc(-1 * var(--space-1000));z-index:60;padding:var(--space-200) var(--space-300);background:var(--surface);color:var(--text);border:1px solid var(--hairline2);border-radius:var(--radius-control);font-size:13px;text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-200)}.app{min-height:100vh;display:flex}.side{width:var(--sidebar-w);height:100vh;padding:var(--space-400) 14px;background:var(--sidebar);border-right:1px solid var(--hairline);flex-direction:column;flex:none;align-self:flex-start;gap:14px;display:flex;position:sticky;top:0}.brand{font-family:var(--family-ui);font-size:16px;font-weight:600;line-height:var(--lh-flush);letter-spacing:-.02em;color:var(--text)}.brand-dot{color:var(--mint)}.search{align-items:center;gap:var(--space-200);height:var(--search-h);background:var(--surface);border:1px solid var(--hairline2);border-radius:var(--radius-control);color:var(--text3);font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);text-align:left;cursor:pointer;padding:0 10px;display:flex}.search:hover{border-color:var(--hairline3)}.search-ic{width:14px;height:14px;color:var(--text3);justify-content:center;align-items:center;display:inline-flex}.search-ic svg{width:14px;height:14px}.search-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.kbd{font-family:var(--family-mono);font-size:10px;font-weight:400;line-height:var(--lh-flush);color:var(--text3);border:1px solid var(--hairline2);border-radius:var(--radius-kbd);flex:none;padding:1px 5px}.sec-h{font-family:var(--family-mono);font-size:10px;font-weight:500;line-height:var(--lh-flush);letter-spacing:1px;text-transform:uppercase;color:var(--text3)}.nav{flex-direction:column;gap:2px;display:flex}.ni{height:var(--nav-item-h);border-radius:var(--radius-nav);font-family:var(--family-ui);font-size:14px;font-weight:500;line-height:var(--lh-flush);color:var(--text2);align-items:center;gap:9px;padding:0 10px;text-decoration:none;display:flex}.ni-button{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none}.ni .ic{width:15px;height:15px;color:var(--text3);justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.ni:hover{background:var(--nav-hover-bg)}.ni.active{background:var(--raised);color:var(--text)}.ni.active .ic{color:var(--mint)}.ni.soon{color:var(--muted);cursor:default}.ni.soon:hover{background:0 0}.ni.soon .ic{color:var(--muted)}.ni-label{flex:1;min-width:0}.soon-badge{font-family:var(--family-mono);font-size:9px;font-weight:400;line-height:var(--lh-flush);color:var(--text3);border:1px solid var(--hairline2);border-radius:var(--radius-kbd);flex:none;padding:1px 4px}.spacer{flex:1}.theme{align-items:center;gap:var(--space-200);height:var(--nav-item-h);border-radius:var(--radius-nav);border:1px solid var(--hairline);color:var(--text2);font-family:var(--family-ui);font-size:13px;line-height:var(--lh-flush);text-align:left;cursor:default;background:0 0;padding:0 10px;display:flex}.theme:hover{background:var(--nav-hover-bg)}.t-icon-swap{place-items:center;width:15px;height:15px;display:inline-grid}.t-icon{grid-area:1/1;line-height:1}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--topbar-h);padding:0 var(--space-800);border-bottom:1px solid var(--hairline);flex:none;justify-content:space-between;align-items:center;display:flex}.topbar-left{align-items:center;gap:var(--space-200);min-width:0;display:flex}.topbar-search{width:var(--nav-item-h);height:var(--nav-item-h);margin-left:calc(-1 * var(--space-100));border-radius:var(--radius-nav);color:var(--text2);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:none;position:relative}.topbar-search:hover{background:var(--nav-hover-bg)}.topbar-search:before{content:"";min-width:var(--touch-target-min);min-height:var(--touch-target-min);background:0 0;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.topbar-search-ic{width:14px;height:14px;color:var(--text3);justify-content:center;align-items:center;display:inline-flex}.topbar-search-ic svg{width:14px;height:14px}.crumb{align-items:center;gap:var(--space-200);min-width:0;font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);display:flex;overflow:hidden}.crumb-seg{color:var(--text3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.crumb-sep{color:var(--hairline3)}.crumb-active{color:var(--text2)}.topbar-right{align-items:center;gap:var(--space-200);flex:none;display:flex}.ghost{border:1px solid var(--hairline2);border-radius:var(--radius-pill);color:var(--text);font-family:var(--family-ui);font-size:13px;font-weight:500;line-height:var(--lh-flush);cursor:pointer;background:0 0;flex:none;padding:7px 14px;position:relative}.ghost:hover{border-color:var(--hairline3)}.ghost:active{transition:transform var(--press) var(--ease-standard);transform:translateY(1px)scale(.97)}.ghost:before{content:"";min-width:var(--touch-target-min);min-height:var(--touch-target-min);background:0 0;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ghost-label{filter:blur();opacity:1;transition:transform var(--tt-in) var(--ease-modal-in), filter var(--tt-in) var(--ease-modal-in), opacity var(--tt-in) var(--ease-modal-in);display:inline-block;transform:translateY(0)}.ghost-label[data-busy=true]{filter:blur();opacity:1;animation:ghost-label-in var(--tt-in) var(--ease-modal-in);transform:translateY(0)}@keyframes ghost-label-in{0%{filter:blur(2px);opacity:0;transform:translateY(2px)}to{filter:blur();opacity:1;transform:translateY(0)}}.ghost-status{align-items:center;gap:var(--space-100);font-family:var(--family-ui);font-size:12px;font-weight:500;line-height:var(--lh-flush);color:var(--text2);white-space:nowrap;display:inline-flex}.ghost-status-text{transition:opacity var(--tt-out) var(--ease-modal-out)}.ghost-check{transform-origin:50%;opacity:0;justify-content:center;align-items:center;width:12px;height:12px;display:inline-flex}.ghost-check[data-state=out]{opacity:0;width:0}.ghost-check svg{width:12px;height:12px;display:block;overflow:visible}.ghost-check svg path{stroke-dasharray:11;stroke-dashoffset:11px}.ghost-check[data-state=in]{opacity:1;animation:ghost-check-fade var(--tt-in) var(--ease-modal-in) forwards, ghost-check-rise var(--tt-in) var(--ease-modal-in) forwards}.ghost-check[data-state=in] svg path{animation:ghost-check-draw var(--tt-in) var(--ease-modal-in) forwards}@keyframes ghost-check-fade{0%{opacity:0}to{opacity:1}}@keyframes ghost-check-rise{0%{transform:translateY(2px)}to{transform:translateY(0)}}@keyframes ghost-check-draw{to{stroke-dashoffset:0}}.content{width:100%;max-width:var(--content-max-w);padding-block:26px 60px;padding-inline:var(--space-800)}.kicker{font-family:var(--family-mono);font-size:11px;font-weight:500;line-height:var(--lh-flush);letter-spacing:1px;text-transform:uppercase;color:var(--mint);opacity:.85;margin-bottom:5px}.toolhead{justify-content:space-between;align-items:baseline;gap:var(--space-200);margin-bottom:var(--space-400);display:flex}.h1{min-height:calc(32px * var(--lh-tight));font-family:var(--family-ui);font-size:32px;font-weight:600;line-height:var(--lh-tight);letter-spacing:-.7px;color:var(--text);margin:0}.formula{font-family:var(--family-mono);font-size:14px;font-weight:400;line-height:var(--lh-flush);letter-spacing:1px;color:var(--text2);font-feature-settings:var(--features-mono);flex:none}.controls{gap:var(--space-300);background:var(--surface);border-radius:var(--radius-card);border:1px solid var(--hairline);padding:var(--space-400);margin-bottom:var(--space-400);flex-direction:column;display:flex}.ctrl-row{align-items:flex-start;gap:6px;display:flex}.lab{width:52px;font-family:var(--family-ui);font-size:11px;font-weight:600;line-height:var(--lh-flush);letter-spacing:.5px;text-transform:uppercase;color:var(--text3);padding-top:var(--space-100);flex:none}.ctrl-slot{min-width:0;min-height:var(--pill-h);flex:1}.panelcard{border-radius:var(--radius-frame);border:1px solid var(--hairline);padding:var(--space-300);background:var(--panelcard-bg)}.panel{border-radius:var(--radius-plate);border:1px solid var(--panel-bd);background:var(--fingerboard-plate);padding:12px 10px 8px;overflow-x:auto}.board{width:100%;min-width:var(--board-min-width);height:auto;display:block}.board[data-orientation=vertical]{min-width:0}.caveat{font-family:var(--family-ui);font-size:12px;font-weight:400;line-height:var(--lh-normal);color:var(--tape);margin:10px 2px 0}.legend{gap:var(--space-400);flex-wrap:wrap;margin:14px 2px 0;display:flex}.crash{max-width:var(--content-max-w);padding:var(--space-1600) var(--space-800);color:var(--text);font-family:var(--family-ui);margin:0 auto}.crash h1{font-size:32px;font-weight:600;line-height:var(--lh-tight);letter-spacing:-.7px;color:var(--text)}.crash p{color:var(--text2);font-size:14px}@media (width<=760px){.app{display:block}.side{display:none}.topbar-search{display:flex}.controls{display:none}.content{width:100%;max-width:100%;padding-inline:var(--space-400)}.topbar{padding-inline:var(--space-400)}}@media (prefers-reduced-motion:reduce){.ghost:active,.ghost-label,.ghost-status-text{transition:none}.ghost-label[data-busy=true]{animation:none}.ghost-check[data-state=in]{opacity:1;animation:none}.ghost-check[data-state=in] svg path{stroke-dashoffset:0;animation:none}}:root{--gray-950:#0a0a0a;--gray-945:#0c0c0d;--gray-935:#0f0f11;--gray-930:#141417;--gray-925:#161618;--gray-915:#1c1c1f;--gray-900:#1f1f1f;--gray-880:#26262b;--gray-870:#28282c;--gray-820:#3a3a40;--gray-600:#4a4a52;--gray-500:#6a6a72;--gray-300:#9a9aa2;--gray-100:#ededed;--mint-500:#00d4a4;--mint-600:#00b48a;--amber-400:#caa45f;--teal-500:#2a9d8f;--violet-500:#7c5cbf;--red-500:#e5644e;--ink-string:#3a3a3f;--ink-guide:#1d1d22;--ink-off-fill:#17171c;--ink-off-edge:#2a2a30;--ink-root-lbl:#08130f;--ink-scale-lbl:#fff;--ink-strname:#cfcfd4;--ink-tape-num:#d6b878;--ink-heel-dash:#8a83a6;--ink-heel-lbl:#a99fc4;--ink-oct-lbl:#5ecabb;--ink-pos-lbl:#b9a7e8;--ink-tape-fg:#f0e2c4;--ink-land-fg:#bfeae3;--ink-pal-soon:#55555d;--canvas:var(--gray-950);--sidebar:var(--gray-945);--surface:var(--gray-925);--raised:var(--gray-915);--panel:var(--gray-930);--panel-bd:var(--gray-880);--panelcard-bg:var(--gray-935);--hairline:var(--gray-900);--hairline2:var(--gray-870);--hairline3:var(--gray-820);--nav-hover-bg:var(--gray-930);--text:var(--gray-100);--text2:var(--gray-300);--text3:var(--gray-500);--muted:var(--gray-600);--mint:var(--mint-500);--mint-deep:var(--mint-600);--tape:var(--amber-400);--teal:var(--teal-500);--violet:var(--violet-500);--success:var(--mint);--danger:var(--red-500);--in-scale-fill:#00d4a421;--in-scale-swatch:#00d4a424;--pill-active-wash:#00d4a41f;--root-glow:#00d4a447;--root-glow-snappy:#00d4a440;--tape-pill-wash:#caa45f24;--tape-swatch:#caa45f4d;--tape-band:#caa45f29;--land-pill-wash:#2a9d8f29;--octave-band:#2a9d8f57;--heel-band:#7c5cbf4d;--overlay-scrim:#0000008c;--fingerboard-plate:var(--panel);--open-label:var(--text3);--string-line:var(--ink-string);--guide-line:var(--ink-guide);--off-fill:var(--ink-off-fill);--off-stroke:var(--ink-off-edge);--root-label:var(--ink-root-lbl);--scale-label:var(--ink-scale-lbl);--string-name:var(--ink-strname);--tape-num:var(--ink-tape-num);--heel-dash:var(--ink-heel-dash);--heel-label:var(--ink-heel-lbl);--octave-label:var(--ink-oct-lbl);--pos-label:var(--ink-pos-lbl);--tape-pill-fg:var(--ink-tape-fg);--land-pill-fg:var(--ink-land-fg);--palette-soon:var(--ink-pal-soon);--space-100:4px;--space-200:8px;--space-300:12px;--space-400:16px;--space-500:20px;--space-600:24px;--space-800:32px;--space-1000:40px;--space-1200:48px;--space-1600:64px;--radius-chip:3px;--radius-kbd:4px;--radius-nav:6px;--radius-control:8px;--radius-plate:10px;--radius-card:12px;--radius-frame:14px;--radius-pill:9999px;--elevation-resting:none;--elevation-raised:none;--elevation-overlay:none;--elevation-modal:0 24px 64px #0009;--press:90ms;--color-shift:.14s;--color-shift-snappy:.12s;--label-fade:.16s;--lbl-fill:.19s;--pop:.15s;--overlay-out:.18s;--glow-fade:.2s;--state-color:.2s;--palette-in:.2s;--palette-out:.15s;--modal-out:.16s;--modal-in:.25s;--dot-radius:.23s;--tape-slide:.23s;--tt-in:.12s;--tt-out:.1s;--ease-standard:ease;--ease-spring:cubic-bezier(.34, 1.45, .64, 1);--ease-spring-2:cubic-bezier(.34, 1.4, .64, 1);--ease-overshoot:cubic-bezier(.34, 1.56, .64, 1);--ease-modal-in:cubic-bezier(.22, 1, .36, 1);--ease-modal-out:cubic-bezier(.4, 0, .2, 1);--stagger-per-column-stateful:6ms;--stagger-per-column-snappy:10ms;--reduced-motion:0;--sidebar-w:248px;--content-max-w:880px;--topbar-h:52px;--nav-item-h:32px;--search-h:36px;--pill-h:30px;--palette-w:560px;--palette-row-h:40px;--board-viewbox:0 0 760 264;--board-min-width:760px;--shell-min-width:760px;--touch-target-min:44px;--sheet-peek-h:52px}@media (prefers-reduced-motion:reduce){:root{--reduced-motion:1}}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter/inter-400-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter/inter-500-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/inter/inter-600-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:optional;src:url(/fonts/inter/inter-700-normal.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:optional;src:url(/fonts/inter/inter-400-italic.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/geist-mono/geist-mono-400-normal.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:500;font-display:optional;src:url(/fonts/geist-mono/geist-mono-500-normal.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:600;font-display:optional;src:url(/fonts/geist-mono/geist-mono-600-normal.woff2)format("woff2")}:root{--family-ui:"Inter", -apple-system, sans-serif;--family-mono:"Geist Mono", "SF Mono", Menlo, monospace;--lh-tight:1.1;--lh-normal:1.5;--lh-flush:1;--features-mono:"tnum", "lnum";--features-ui:"tnum"}.pill:focus-visible,.ni:focus-visible,.search:focus-visible,.ghost:focus-visible,.theme:focus-visible,.skip-link:focus-visible,.pinput:focus-visible,.tuner-start:focus-visible,.tuner-stop:focus-visible,.a4-step:focus-visible{box-shadow:0 0 0 2px var(--canvas), 0 0 0 4px var(--mint);outline:none}.pinput:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--mint)}.board .note:focus-visible,.board:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.pill:before,.ni:before,.theme:before{content:"";min-width:var(--touch-target-min);min-height:var(--touch-target-min);pointer-events:auto;z-index:0;background:0 0;width:100%;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ni,.theme{position:relative}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
