:root{--colour-background:oklch(95% .02 300);--colour-background-elevated:oklch(90% .048 300);--colour-background-nav-blur:#fff3;--colour-foreground:oklch(0% 0 0);--colour-foreground-secondary:oklch(48% .088 300);--colour-edge:oklch(75% .12 300);--colour-edge-active:oklch(50% .1 300);--colour-accent:oklch(45% .2 265);--colour-focus:#d000ff;--colour-background-swap:oklch(10% .04 295);--colour-background-elevated-swap:oklch(20% .06 295);--colour-background-nav-blur-swap:#0003;--colour-foreground-swap:oklch(98% .02 295);--colour-foreground-secondary-swap:oklch(65% .088 295);--colour-edge-swap:oklch(40% .12 295);--colour-edge-active-swap:oklch(50% .1 295);--colour-accent-swap:oklch(80% .24 80);--colour-focus-swap:#d000ff;background-color:var(--colour-background);color:var(--colour-foreground)}@media (prefers-color-scheme:dark){:root{--colour-background:oklch(10% .04 295);--colour-background-elevated:oklch(20% .06 295);--colour-background-nav-blur:#0003;--colour-foreground:oklch(98% .02 295);--colour-foreground-secondary:oklch(65% .088 295);--colour-edge:oklch(40% .12 295);--colour-edge-active:oklch(50% .1 295);--colour-accent:oklch(80% .24 80);--colour-focus:#d000ff;--colour-background-swap:oklch(95% .02 300);--colour-background-elevated-swap:oklch(90% .048 300);--colour-background-nav-blur-swap:#fff3;--colour-foreground-swap:oklch(0% 0 0);--colour-foreground-secondary-swap:oklch(48% .088 300);--colour-edge-swap:oklch(75% .12 300);--colour-edge-active-swap:oklch(50% .1 300);--colour-accent-swap:oklch(45% .2 265);--colour-focus-swap:#d000ff}}.scheme-light{--colour-background:oklch(95% .02 300);--colour-background-elevated:oklch(90% .048 300);--colour-background-nav-blur:#fff3;--colour-foreground:oklch(0% 0 0);--colour-foreground-secondary:oklch(48% .088 300);--colour-edge:oklch(75% .12 300);--colour-edge-active:oklch(50% .1 300);--colour-accent:oklch(45% .2 265);--colour-focus:#d000ff;--colour-background-swap:oklch(10% .04 295);--colour-background-elevated-swap:oklch(20% .06 295);--colour-background-nav-blur-swap:#0003;--colour-foreground-swap:oklch(98% .02 295);--colour-foreground-secondary-swap:oklch(65% .088 295);--colour-edge-swap:oklch(40% .12 295);--colour-edge-active-swap:oklch(50% .1 295);--colour-accent-swap:oklch(80% .24 80);--colour-focus-swap:#d000ff}.scheme-dark{--colour-background:oklch(10% .04 295);--colour-background-elevated:oklch(20% .06 295);--colour-background-nav-blur:#0003;--colour-foreground:oklch(98% .02 295);--colour-foreground-secondary:oklch(65% .088 295);--colour-edge:oklch(40% .12 295);--colour-edge-active:oklch(50% .1 295);--colour-accent:oklch(80% .24 80);--colour-focus:#d000ff;--colour-background-swap:oklch(95% .02 300);--colour-background-elevated-swap:oklch(90% .048 300);--colour-background-nav-blur-swap:#fff3;--colour-foreground-swap:oklch(0% 0 0);--colour-foreground-secondary-swap:oklch(48% .088 300);--colour-edge-swap:oklch(75% .12 300);--colour-edge-active-swap:oklch(50% .1 300);--colour-accent-swap:oklch(45% .2 265);--colour-focus-swap:#d000ff}:root{--font-var-wght:400;--font-var-casl:0;--font-var-crsv:.5;--font-var-mono:0;--font-var-slnt:0;font-family:Recursive,Noto Sans,Noto Sans JP,sans-serif;line-height:1.5}*{font-variation-settings:"wght" var(--font-var-wght), "CASL" var(--font-var-casl), "CRSV" var(--font-var-crsv), "MONO" var(--font-var-mono), "slnt" var(--font-var-slnt)}b,strong{--font-var-wght:700}em,i{--font-var-slnt:-15;--font-var-crsv:1;font-style:italic}sup,sub{vertical-align:baseline;position:relative;top:-.4em}sub{top:.4em}.text-h1,h1{--font-var-wght:800;--font-var-casl:1;--font-var-crsv:1;--font-var-slnt:-5;margin-block:unset;font-size:2rem}.text-h1 .alt-title,h1 .alt-title{color:var(--colour-foreground-secondary);font-size:.8em}article h1{margin-block:1em .5em}.text-h2,h2{--font-var-wght:800;--font-var-casl:1;--font-var-crsv:1;--font-var-slnt:-5;margin-block:unset;font-size:1.75rem}.text-h2 .alt-title,h2 .alt-title{color:var(--colour-foreground-secondary);font-size:.8em}article h2{margin-block:1em .5em}.text-h3,h3{--font-var-wght:800;--font-var-casl:1;--font-var-crsv:1;--font-var-slnt:-5;margin-block:unset;font-size:1.5rem}.text-h3 .alt-title,h3 .alt-title{color:var(--colour-foreground-secondary);font-size:.8em}article h3{margin-block:1em .5em}.text-h4,h4{--font-var-wght:800;--font-var-casl:1;--font-var-crsv:1;--font-var-slnt:-5;margin-block:unset;font-size:1.25rem}.text-h4 .alt-title,h4 .alt-title{color:var(--colour-foreground-secondary);font-size:.8em}article h4{margin-block:1em .5em}.text-h5,h5{--font-var-wght:800;--font-var-casl:1;--font-var-crsv:1;--font-var-slnt:-5;margin-block:unset;font-size:1.125rem}.text-h5 .alt-title,h5 .alt-title{color:var(--colour-foreground-secondary);font-size:.8em}article h5{margin-block:1em .5em}.text-h6,h6{--font-var-wght:800;--font-var-casl:1;--font-var-crsv:1;--font-var-slnt:-5;margin-block:unset;font-size:1rem}.text-h6 .alt-title,h6 .alt-title{color:var(--colour-foreground-secondary);font-size:.8em}article h6{margin-block:1em .5em}.text-smaller{font-size:.875rem}.t-bold{--font-var-wght:700}.t-italic{--font-var-slnt:-15;--font-var-crsv:1;font-style:italic}.t-cursive-always{--font-var-crsv:1}.t-cursive-never{--font-var-crsv:0}.t-linear{--font-var-casl:0}.t-linear-mostly{--font-var-casl:.25}.t-casual-somewhat{--font-var-casl:.5}.t-casual-mostly{--font-var-casl:.75}.t-casual{--font-var-casl:1}.t-mono{--font-var-mono:1}.t-proportional{--font-var-mono:0}a{color:var(--colour-accent);-webkit-text-decoration:underline dotted;text-decoration:underline dotted}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--colour-focus)}.button{box-sizing:content-box;background-color:var(--colour-background-elevated);border:1px solid var(--colour-edge);color:var(--colour-foreground);-webkit-user-select:none;user-select:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.25rem;padding:.5rem 1rem;text-decoration:none;display:flex}.button:hover{outline:1px solid var(--colour-edge);text-decoration:none}.button:active{outline:1px solid var(--colour-edge);background:var(--colour-edge);text-decoration:none}.button:focus-visible:hover,.button:focus-visible:active{outline:none}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{margin:0}main{box-sizing:border-box;grid-template-columns:minmax(0,1fr);gap:.5rem;max-width:50rem;margin:0 auto;padding:2rem 1rem;display:grid}h1{margin-bottom:.5rem;padding-inline:1rem}.panel{background-color:var(--colour-background-elevated);border-radius:.75rem;grid-template-columns:minmax(0,1fr);gap:.5rem;padding:.5rem;display:grid}.panel-header{align-items:center;gap:.5rem;min-height:1.5rem;padding-inline:1rem;display:flex}.panel-header h2{font-size:1rem}button,.tile{box-sizing:content-box;background-color:var(--colour-background-elevated);border:1px solid var(--colour-edge);color:var(--colour-foreground);-webkit-user-select:none;user-select:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.25rem;padding:.5rem 1rem;text-decoration:none;display:flex}button:hover,.tile:hover{outline:1px solid var(--colour-edge);text-decoration:none}button:active,.tile:active{outline:1px solid var(--colour-edge);background:var(--colour-edge);text-decoration:none}button:focus-visible:hover,button:focus-visible:active,.tile:focus-visible:hover,.tile:focus-visible:active{outline:none}button,.tile{box-sizing:border-box;min-height:2.5rem;font:inherit;cursor:pointer;padding:.25rem .75rem}button:disabled{opacity:.4;cursor:default}button:disabled:hover{outline:none}button[aria-pressed=true],[data-playing=true]{border-color:var(--colour-edge-active);box-shadow:inset 0 0 0 2px var(--colour-edge-active)}.accidental{font-size:.6em}.muted{color:var(--colour-foreground-secondary)}.row{flex-wrap:wrap;align-items:stretch;gap:.5rem;display:flex}.spread{justify-content:space-between}.roots button{flex:1 1 0;min-width:2.5rem;padding-inline:.25rem}.modes{flex:auto}.modes button{flex:auto;padding-inline:.5rem}.divider{background-color:var(--colour-edge);flex:none;width:1px}.pill{border-radius:999px;min-height:2rem;padding-inline:1rem}.tile-row{align-items:stretch;gap:.5rem;display:flex}.tiles{flex-wrap:wrap;flex:1;align-content:flex-start;gap:.5rem;display:flex}.tiles .tile{flex:4rem;min-height:4.5rem}.tiles .muted{align-self:center;margin:0;padding-inline:.5rem}.tiles-strip{scrollbar-width:thin;scrollbar-color:var(--colour-edge) transparent;flex-wrap:nowrap;min-width:0;overflow-x:auto}@media (prefers-reduced-motion:no-preference){.tiles-strip{scroll-behavior:smooth}}.tiles-strip .tile{flex:1 0 6rem;min-height:5.25rem}.tiles-strip .tile:has(select:focus-visible){outline-offset:-2px}.tile{text-align:center;flex-direction:column;gap:0;position:relative}.tile-caption{--font-var-mono:1;min-height:1em;font-size:.75rem;line-height:1}.tile-value{--font-var-wght:800;--font-var-casl:1;font-size:1.5rem;line-height:1.25}.tile-select select{opacity:0;cursor:pointer;outline:none;width:100%;height:100%;font-size:1rem;position:absolute;inset:0}.tile-select:has(select:focus-visible){outline:2px solid var(--colour-focus)}.tile-select .chevron{color:var(--colour-foreground-secondary);position:absolute;top:.5rem;right:.5rem}.play-button{flex:none;width:3rem;padding:0}.stack{flex-direction:column;flex:none;gap:.25rem;width:3rem;display:flex}.stack button{flex:1;padding:0}.hint-button{border-radius:50%;width:1.5rem;height:1.5rem;min-height:0;padding:0;font-size:.75rem;line-height:1}.hint-popover{box-sizing:border-box;border:1px solid var(--colour-edge-active);background-color:var(--colour-background-elevated);max-width:min(24rem,100vw - 1rem);color:var(--colour-foreground);border-radius:.5rem;margin:0;padding:.75rem 1rem;position:fixed;inset:auto}.hint-popover p{margin:0 0 .5rem}.hint-popover p:last-child{margin-bottom:0}.hint-attribution{color:var(--colour-foreground-secondary);font-size:.75rem}.footer{color:var(--colour-foreground-secondary);padding:1rem;font-size:.875rem}.footer p{margin:0 0 .5rem}.footer p:last-child{margin-bottom:0}.noscript{text-align:center;padding:2rem 1rem}.alert{border:1px solid var(--colour-edge-active);background-color:var(--colour-background-elevated);border-radius:.5rem;margin:0;padding:.5rem 1rem}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--colour-edge);text-align:left;padding:.5rem}.play-buttons{gap:.375rem;display:flex}
