:root{color-scheme:light;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.2rem;--text-xl:1.44rem;--text-2xl:1.728rem;--text-3xl:2.074rem;--text-display-s:1.44rem;--text-display:1.728rem;--text-section:1.2rem;--text-title:1rem;--text-lead:1rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--color-error:oklch(52% .19 27);--color-success:oklch(50% .12 150);--container:1440px;--gutter:64px;--gap-columns:32px;--section-gap-s:120px;--section-gap:144px;--section-gap-l:176px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--color-paper:oklch(94% .011 92);--color-paper-2:oklch(90.5% .015 88);--color-paper-3:oklch(87% .017 86);--color-ink:oklch(17% .012 60);--color-ink-2:oklch(27% .012 58);--color-muted:oklch(46% .014 60);--color-rule:oklch(68% .016 75);--color-rule-2:oklch(34% .012 60);--color-accent:oklch(44% .13 32);--color-accent-ink:oklch(95% .012 90);--color-focus:oklch(48% .17 32);--font-display:"Bitter", ui-serif, Georgia, serif;--font-body:"Spectral", ui-serif, Georgia, serif;--font-outlier:"Libre Franklin", ui-sans-serif, sans-serif;--radius-card:0;--radius-pill:0;--rule-hair:1px;--shadow-card:none;--tracking-display:-.02em;--display-weight:700}*,:before,:after{box-sizing:border-box}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:color-mix(in oklab, var(--color-accent) 20%, transparent)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,700);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;line-height:1.05}h1{max-width:20ch;font-size:var(--text-display)}h2{max-width:30ch;font-size:var(--text-section)}h3{max-width:40ch;font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;line-height:1.45}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-slot]>img{filter:grayscale()contrast(1.18)}:root{--color-wood:oklch(45% .085 45);--color-wood-edge:oklch(33% .07 42);--color-wood-light:oklch(56% .09 52);--color-board:oklch(76% .075 72);--color-board-edge:oklch(60% .08 62);--color-gut:oklch(63% .07 72);--color-wood-celtic:oklch(52% .07 62);--color-wood-celtic-edge:oklch(38% .06 58);--color-board-celtic:oklch(80% .06 80);--color-wood-tranh:oklch(36% .06 30);--color-wood-tranh-edge:oklch(26% .05 30);--color-board-tranh:oklch(70% .07 60);--color-steel-tranh:oklch(58% .02 80);--color-wood-harpsi:oklch(32% .03 160);--color-wood-harpsi-edge:oklch(24% .03 160);--color-board-harpsi:oklch(80% .05 85);--color-string-c:var(--color-accent);--color-string-f:oklch(36% .1 262);--row:34px}body{font-size:1.0625rem}:lang(ko){word-break:keep-all}h1,h2,h3{color:var(--color-ink)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-lg)}p{color:var(--color-ink-2)}a{color:var(--color-accent);text-decoration-color:var(--color-accent)}a:hover{text-decoration-thickness:2px}.topbar{justify-content:space-between;align-items:center;gap:var(--space-md);padding-block:var(--space-md) var(--space-sm);border-bottom:var(--rule-hair) solid var(--color-rule);display:flex}.wordmark{white-space:nowrap;align-items:center;gap:var(--space-xs);font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);letter-spacing:var(--tracking-display);color:var(--color-ink);text-decoration:none;display:inline-flex}.wordmark svg{flex:none;width:28px;height:28px}.wordmark-frame{fill:none;stroke:var(--color-wood);stroke-width:2px;stroke-linejoin:round}.wordmark-strings{fill:none;stroke:var(--color-ink-2);stroke-width:1.1px}.wordmark:hover{text-decoration:none}.wordmark:focus-visible{outline-offset:4px}.lang{position:relative}.lang summary{align-items:center;gap:var(--space-xs);min-height:40px;padding:0 var(--space-sm);border-block:var(--rule-hair) solid var(--color-ink);color:var(--color-ink);font-weight:500;font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out);list-style:none;display:inline-flex}.lang summary::-webkit-details-marker{display:none}.lang summary svg{fill:none;stroke:currentColor;stroke-width:1.2px;width:16px;height:16px}.lang summary:hover{background:var(--color-paper-2)}.lang summary:active,.lang[open] summary{background:var(--color-paper-3)}.lang ul{right:0;top:calc(100% + var(--space-2xs));z-index:var(--z-dropdown);padding:var(--space-2xs) 0;background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule-2);min-width:200px;margin:0;list-style:none;position:absolute}.lang a{padding:var(--space-xs) var(--space-md);color:var(--color-ink);text-decoration:none;display:block}.lang a:hover{background:var(--color-paper-2)}.lang a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--color-accent)}.stage{gap:var(--space-md) var(--space-xl);padding-block:var(--space-lg) var(--space-xl);display:grid}.stage-head h1{max-width:14ch}.stage-head .lead{margin-top:var(--space-sm);color:var(--color-ink-2)}.player{gap:var(--space-md);min-width:0;display:grid}.controls{align-items:center;gap:var(--space-sm) var(--space-lg);flex-wrap:wrap;display:flex}.ctl{align-items:center;gap:var(--space-xs) var(--space-sm);min-width:0;display:flex}.ctl-label{font-size:var(--text-sm);color:var(--color-muted);min-width:3.5rem;font-weight:500}@media (width>=64rem){.ctl{padding-block:var(--space-xs);border-top:var(--rule-hair) solid var(--color-rule);justify-content:space-between}.ctl--key{flex-direction:column;align-items:stretch}.ctl--midi{border-bottom:var(--rule-hair) solid var(--color-rule);padding-bottom:var(--space-sm)}.ctl--fader .fader{flex:1;max-width:12rem}.stage{grid-template:"head harp""controls harp"1fr/minmax(0,19rem) minmax(0,1fr);align-items:start}.stage-head{grid-area:head}.player{display:contents}.controls{flex-flow:column;grid-area:controls;align-items:stretch;gap:0}.harp-stage{grid-area:harp}}.select{min-width:0;position:relative}.select select{-webkit-appearance:none;appearance:none;max-width:100%;height:40px;padding:0 36px 0 var(--space-sm);border:var(--rule-hair) solid var(--color-rule-2);background:var(--color-paper-2);color:var(--color-ink);font-family:var(--font-display);font-weight:700;font-size:var(--text-md);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out);border-radius:0}.select select:hover,.select select:active{background:var(--color-paper-3)}.select select:disabled{opacity:.5;cursor:not-allowed}.select option{background:var(--color-paper);color:var(--color-ink)}.select-caret{fill:none;width:12px;height:12px;stroke:var(--color-ink);stroke-width:1.6px;pointer-events:none;position:absolute;top:50%;right:12px;translate:0 -50%}.fader{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:112px;height:44px;margin:0}.fader::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--color-ink) var(--level), var(--color-rule) var(--level));height:4px}.fader::-moz-range-track{background:linear-gradient(to right, var(--color-ink) var(--level), var(--color-rule) var(--level));height:4px}.fader::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:28px;margin-top:calc(-1 * var(--space-sm));background:var(--color-ink);box-shadow:0 0 0 3px var(--color-paper);border:0;border-radius:0}.fader::-moz-range-thumb{background:var(--color-ink);width:12px;height:28px;box-shadow:0 0 0 3px var(--color-paper);border:0;border-radius:0}.fader:hover::-webkit-slider-thumb{background:var(--color-ink-2)}.fader:active::-webkit-slider-thumb{background:var(--color-wood-edge)}.fader:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.fader:disabled{opacity:.5;cursor:not-allowed}.seg{border-block:var(--rule-hair) solid var(--color-ink);flex-wrap:wrap;display:inline-flex}.seg-btn{min-width:40px;height:36px;padding:0 var(--space-sm);color:var(--color-ink);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out);background:0 0;border:0;border-radius:0}.seg-btn:hover{background:var(--color-paper-2)}.seg-btn:active{background:var(--color-paper-3)}.seg-btn[aria-checked=true]{background:var(--color-ink);color:var(--color-paper)}.seg-btn:focus-visible{outline-offset:-2px}.seg-btn:disabled{opacity:.5;cursor:not-allowed}.seg--keys{grid-template-columns:repeat(8,minmax(0,1fr));display:grid}.seg--keys .seg-btn{min-width:0;padding:0 var(--space-2xs)}.chip{height:40px;padding:0 var(--space-md);border:0;border-block:var(--rule-hair) solid var(--color-ink);color:var(--color-ink);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out);background:0 0;border-radius:0;align-items:center;text-decoration:none;display:inline-flex}.chip:hover{background:var(--color-paper-2);text-decoration:none}.chip:active{background:var(--color-paper-3)}.chip[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper)}.chip:disabled{opacity:.5;cursor:not-allowed}.link-btn{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-btn:hover{text-decoration-thickness:2px}.harp-stage{min-width:0;position:relative;container:harp/inline-size}.harp{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;position:relative}.harp-inner{aspect-ratio:25/17.5;width:min(100%,142.857svh - 214.286px);position:relative}.harp-frame{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.harp-frame--tall{display:none}.harp-board{fill:var(--color-board);stroke:var(--color-board-edge);stroke-width:.06px}.harp-rib{fill:var(--color-board-edge)}.harp-pillar,.harp-neck{fill:var(--color-wood);stroke:var(--color-wood-edge);stroke-width:.06px}.harp-foot{fill:var(--color-wood-edge)}.harp[data-body=lever-harp]{--color-wood:var(--color-wood-celtic);--color-wood-edge:var(--color-wood-celtic-edge);--color-board:var(--color-board-celtic)}.harp[data-body=dan-tranh]{--color-wood:var(--color-wood-tranh);--color-wood-edge:var(--color-wood-tranh-edge);--color-board:var(--color-board-tranh);--color-gut:var(--color-steel-tranh)}.harp[data-body=harpsichord]{--color-wood:var(--color-wood-harpsi);--color-wood-edge:var(--color-wood-harpsi-edge);--color-board:var(--color-board-harpsi)}.strings{position:absolute;inset:0}.string{top:0;bottom:0;left:calc((var(--x) - .5) * 100% / var(--vw));width:calc(100% / var(--vw));cursor:pointer;--line:var(--color-gut);position:absolute}.string.is-c{--line:var(--color-string-c)}.string.is-f{--line:var(--color-string-f)}.string-line{width:var(--w);margin-left:calc(var(--w) / -2);left:50%;top:calc(var(--a) * 100% / var(--vh));height:calc((var(--b) - var(--a)) * 100% / var(--vh));background:var(--line);position:absolute}.string:before{content:"";background:var(--color-paper-3);opacity:0;transition:opacity var(--dur-short) var(--ease-out);position:absolute;inset:0}@media (hover:hover){.string:hover:before{opacity:.45}}.string.is-down:before{opacity:.8;transition:none}.string.is-down .string-line{box-shadow:0 0 0 2px color-mix(in oklab, var(--line) 30%, transparent)}.lever{left:50%;top:calc((var(--a) + .42) * 100% / var(--vh));background:var(--color-rule);transform-origin:90%;width:10px;height:4px;transition:transform var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);border-radius:2px;position:absolute;transform:translate(4px)rotate(-35deg)}.string.has-lever .lever{background:var(--color-ink);transform:none}.string-label{left:50%;top:calc((var(--b) - .95) * 100% / var(--vh));z-index:1;padding:0 var(--space-3xs);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-sm);white-space:nowrap;pointer-events:none;font-weight:500;line-height:1.35;position:absolute;translate:-50%}.string.is-c .string-label{color:var(--color-accent)}.harp-window{display:none}.harp-status{margin:var(--space-xs) 0 0;color:var(--color-muted);font-size:var(--text-sm)}.harp-status:empty{display:none}.harp-status.is-error{color:var(--color-error)}.harp-hint{margin:var(--space-xs) 0 0;color:var(--color-muted);font-size:var(--text-sm);pointer-events:none;font-style:italic}@container harp (width<=560px){.harp{height:calc(15 * var(--row));border-block:var(--rule-hair) solid var(--color-rule);overflow:hidden}.harp-inner{width:100%;height:calc(var(--vw) * var(--row));aspect-ratio:auto;transform:translateY(calc((var(--win) + 1.5) * var(--row) * -1));transition:transform var(--dur-long) var(--ease-out)}.harp-frame--wide{display:none}.harp-frame--tall{display:block}.string{top:calc((var(--x) - .5) * 100% / var(--vw));width:auto;height:calc(100% / var(--vw));bottom:auto;left:0;right:0}.string-line{top:50%;left:calc(var(--a) * 100% / var(--vh));width:calc((var(--b) - var(--a)) * 100% / var(--vh));height:var(--w);margin-left:0;margin-top:calc(var(--w) / -2)}.lever{top:50%;left:calc((var(--a) + .42) * 100% / var(--vh));transform-origin:50% 90%;width:4px;height:10px;transform:translateY(4px)rotate(-35deg)}.string-label{top:50%;left:calc((var(--b) - .6) * 100% / var(--vh));translate:-100% -50%}.harp-window{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);display:flex}.win-btn{border:0;border-block:var(--rule-hair) solid var(--color-ink);width:44px;height:40px;color:var(--color-ink);cursor:pointer;transition:background-color var(--dur-micro) var(--ease-out);background:0 0;border-radius:0;place-items:center;padding:0;display:grid}.win-btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;width:16px;height:16px}.win-btn:hover{background:var(--color-paper-2)}.win-btn:active{background:var(--color-paper-3)}.win-btn:focus-visible{outline-offset:2px}.win-btn:disabled{opacity:.35;cursor:not-allowed}.win-map{align-items:center;gap:var(--space-2xs);display:flex}.win-map i{background:var(--color-rule);opacity:.6;width:3px;height:14px;transition:opacity var(--dur-short) var(--ease-out)}.win-map i.is-in{opacity:1;background:var(--color-gut)}.win-map i.is-in.is-c{background:var(--color-string-c)}.win-map i.is-in.is-f{background:var(--color-string-f)}}@media (prefers-reduced-motion:reduce){.harp-inner{transition:none}}.section{padding-block:var(--section-gap-s) 0}.section>.container{border-top:3px double var(--color-rule-2);padding-top:var(--space-lg)}.section--band{margin-top:var(--section-gap-s);padding-block:var(--space-2xl);background:var(--color-paper-2);border-block:var(--rule-hair) solid var(--color-rule)}.section--band>.container{border-top:0;padding-top:0}.section-intro{margin-top:var(--space-sm);max-width:62ch}.howto-grid{gap:var(--space-xl);display:grid}@media (width>=60rem){.howto-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}}.steps{counter-reset:step;margin:var(--space-lg) 0 0;max-width:60ch;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;gap:var(--space-sm);padding-block:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule);color:var(--color-ink-2);grid-template-columns:2rem minmax(0,1fr);display:grid}.steps li:before{content:counter(step) ".";font-family:var(--font-display);color:var(--color-ink);font-weight:700}.keymap{min-width:0;margin:0}.keyboard{gap:var(--space-xs);padding:var(--space-md);background:var(--color-paper-2);border-block:var(--rule-hair) solid var(--color-rule);display:grid}.keyboard-row{gap:var(--space-xs);grid-template-columns:repeat(17,minmax(0,1fr));display:grid}.keyboard-row>.keycap{grid-column:span 2}.keyboard-row--1>.keycap:first-child{grid-column:2/span 2}.keyboard-row--2>.keycap:first-child{grid-column:3/span 2}.keycap{justify-items:start;gap:var(--space-2xs);min-width:0;padding:var(--space-xs);background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-top:3px solid var(--color-gut);display:grid}.keycap.is-c{border-top-color:var(--color-string-c)}.keycap.is-f{border-top-color:var(--color-string-f)}.keycap b{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--color-ink);line-height:1.1}.keycap-note{font-size:var(--text-sm);color:var(--color-muted);line-height:1.1}.keycap.is-c .keycap-note{color:var(--color-accent)}.keymap-legend{margin-top:var(--space-sm);font-size:var(--text-sm);color:var(--color-muted)}.song-list{margin:var(--space-lg) 0 0;align-items:start;column-gap:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));padding:0;list-style:none;display:grid}.song{padding-block:var(--space-md) var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule)}.song h3{font-size:var(--text-xl)}.song-tab{margin-top:var(--space-sm);border-top:var(--rule-hair) solid var(--color-rule)}.song-line{gap:0 var(--space-xs);padding:var(--space-2xs) 0 var(--space-2xs) var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-rule);flex-wrap:wrap;display:flex}.song-line>.note:first-child{margin-left:calc(-1 * var(--space-lg))}.note{grid-template-rows:6px auto auto 6px;place-items:center;min-width:1.5rem;display:grid}.note:before,.note:after{content:"";border-radius:50%;width:4px;height:4px}.note.is-high:before,.note.is-low:after{background:var(--color-ink)}.note-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-xl);color:var(--color-ink);line-height:1.1}.note.is-c .note-name{color:var(--color-string-c)}.note.is-f .note-name{color:var(--color-string-f)}.note-key{font-size:var(--text-xs);color:var(--color-muted);line-height:1.2}.sound-list{margin:var(--space-lg) 0 0;grid-template-columns:minmax(0,1fr);padding:0;list-style:none;display:grid}@media (width>=40rem){.sound-list{column-gap:var(--gap-columns);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.sound-list{grid-template-columns:repeat(4,minmax(0,1fr))}.sound+.sound{border-left:var(--rule-hair) solid var(--color-rule);padding-left:var(--gap-columns)}.sound-list{column-gap:var(--gap-columns)}}.sound{justify-items:start;gap:var(--space-sm);padding-block:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);grid-template-rows:auto 1fr auto;display:grid}@media (width>=64rem){.sound{border-top:0}}.sound h3{font-size:var(--text-xl)}.sound:has([aria-pressed=true]) h3{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.18em;text-decoration-thickness:2px}.about-cols{margin-top:var(--space-lg);columns:3 18rem;column-gap:var(--gap-columns);column-rule:var(--rule-hair) solid var(--color-rule)}.about-cols p{text-align:justify;hyphens:auto;max-width:none;color:var(--color-ink-2)}.about-cols p+p{margin-top:var(--space-sm)}.about-cols p:first-child:first-letter{float:left;font:700 3.4em/.8 var(--font-display);color:var(--color-ink);padding-right:.08em}.faq-list{margin:var(--space-lg) 0 0;padding:0;list-style:none}.faq-list li{gap:var(--space-xs) var(--gap-columns);padding-block:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);display:grid}.faq-list li:last-child{border-bottom:var(--rule-hair) solid var(--color-rule)}.faq-list h3{font-size:var(--text-lg);max-width:28ch}@media (width>=60rem){.faq-list li{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.ad{margin-top:var(--section-gap-s)}.ad-box{min-height:280px}.ad:has(ins[data-ad-status=unfilled]){display:none}.ad iframe:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.footer{margin-top:var(--section-gap-s);padding-block:var(--space-2xl) var(--space-xl);background:var(--color-ink);color:var(--color-paper)}.footer-grid{gap:var(--space-lg);display:grid}.footer-langs{gap:var(--space-xs) var(--space-md);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.footer a{color:var(--color-paper);text-decoration:none}.footer a:hover{text-decoration:underline;text-decoration-color:var(--color-paper)}.footer a:focus-visible{outline-color:var(--color-paper)}.footer a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--color-accent-ink);text-decoration-thickness:2px}.footer-bottom{gap:var(--space-lg);padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-ink-2);font-size:var(--text-sm);color:var(--color-paper-3);flex-wrap:wrap;display:flex}.prose{padding-block:var(--space-xl) var(--space-3xl)}.prose h1{margin-bottom:var(--space-md)}.prose h2{margin-top:var(--space-xl);margin-bottom:var(--space-sm);font-size:var(--text-xl)}.prose p+p{margin-top:var(--space-sm)}@media (width<=40rem){:root{--row:33px}.topbar{padding-block:var(--space-sm) var(--space-xs)}.wordmark{font-size:var(--text-lg)}.stage{padding-block:var(--space-sm) var(--space-lg);gap:var(--space-xs)}h1{font-size:var(--text-2xl)}.stage-head .lead{margin-top:var(--space-2xs);font-size:var(--text-sm)}.player{gap:var(--space-xs);flex-direction:column;display:flex}.controls{display:contents}.ctl--sound,.ctl--key{width:100%}.ctl--sound .select,.ctl--key .seg{flex:1}.ctl--key .ctl-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.seg--keys .seg-btn{height:44px}.ctl--sound select{width:100%}.harp-stage{order:1}.ctl--fader,.ctl--labels,.ctl--midi{order:2}.ctl--fader .fader{flex:1}.ctl-label{min-width:3.5rem}.keyboard{padding:var(--space-xs);gap:var(--space-2xs)}.keyboard-row{gap:var(--space-2xs);grid-template-columns:repeat(8,minmax(0,1fr))}.keyboard-row>.keycap,.keyboard-row--1>.keycap:first-child,.keyboard-row--2>.keycap:first-child{grid-column:auto}.keycap{padding:var(--space-2xs)}.keycap b{font-size:var(--text-md)}}html,body{overflow-x:clip}
