@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-opsz-normal-C5tfwALZ.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-opsz-normal-DgmypKXX.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-opsz-normal-DGm64vGR.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-opsz-normal-DFglUmAd.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-opsz-normal-Gqw5JQlq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-opsz-normal-STiTPs0F.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-opsz-normal-BHZsWIlc.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-ext-opsz-italic-5yUt4G_9.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-cyrillic-opsz-italic-Bj0ndbyp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-ext-opsz-italic-DFpO5j-Z.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-greek-opsz-italic-CHERNRFq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-vietnamese-opsz-italic-BdcrZMcO.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-ext-opsz-italic-4y8iAqqs.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/assets/literata-latin-opsz-italic-CJ93D38p.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f4f4f1;--paper-deep:#ecece7;--card:#fff;--line:#e6e6e0;--line-strong:#d6d6ce;--ink:#1c1c1e;--ink-2:#38383b;--text-2:#55554f;--muted:#75756f;--faint:#a9a9a2;--staff:#b4b4ac;--wine:#8e2c48;--wine-deep:#6b1f35;--wine-soft:#8e2c4824;--wine-wash:#8e2c4812;--wrong:#c2415f;--font-display:"Literata Variable", Georgia, serif;--font-ui:"IBM Plex Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--r-card:12px;--r-btn:10px;--r-sheet:16px;--bar-h:64px;--gutter:clamp(16px, 4vw, 40px);--page:min(1200px, 100% - 2 * var(--gutter));--section:clamp(96px, 7vw + 56px, 176px);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--shadow-sheet:0 1px 1px #1c1c1e0a, 0 8px 18px -8px #1c1c1e1a, 0 34px 64px -34px #1c1c1e47;--shadow-soft:0 1px 1px #1c1c1e0a, 0 10px 30px -14px #1c1c1e2e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-h) + 24px);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.1 0 0 0 0 0.1 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}::selection{background:var(--wine-soft)}a{color:inherit}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--wine);outline-offset:3px;border-radius:4px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0;font-weight:500}p{text-wrap:pretty;margin:0}.wrap{width:var(--page);margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;border-radius:var(--r-btn);background:var(--ink);color:#fff;padding:10px 16px;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-200%)}.skip:focus{transform:none}.btn{border-radius:var(--r-btn);background:var(--ink);color:#fff;letter-spacing:.005em;white-space:nowrap;cursor:pointer;min-height:48px;transition:background-color .18s, transform .12s var(--ease-out);border:0;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:1rem;font-weight:500;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffff1a,0 1px 2px #1c1c1e40}.btn:hover{background:var(--ink-2)}.btn:active{transform:translateY(1px)}.btn-small{min-height:38px;padding:0 16px;font-size:.9375rem}.chip{border:1px solid var(--line-strong);border-radius:var(--r-btn);background:var(--card);min-height:38px;color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:.9375rem;font-weight:500;transition:border-color .18s,background-color .18s,color .18s;display:inline-flex}.chip svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.chip:hover{border-color:var(--faint);color:var(--ink)}.chip.is-on{color:var(--wine);background:#fbf6f7;border-color:#8e2c4859}.link-button{color:var(--wine);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;display:inline}.bar{z-index:50;height:var(--bar-h);transition:background-color .3s,box-shadow .3s,color .3s;position:fixed;inset:0 0 auto}.bar.is-scrolled{box-shadow:0 1px 0 var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.3);backdrop-filter:blur(16px)saturate(1.3);background:#f4f4f1d1}.bar.is-dark{color:#f4f4f1;background:#1c1c1ec7;box-shadow:0 1px #ffffff0f}.bar-inner{width:var(--page);align-items:center;gap:32px;height:100%;margin-inline:auto;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:10px;margin-right:auto;font-size:1.1875rem;font-weight:600;text-decoration:none;display:inline-flex}.brand-mark{border-radius:8px;flex:none;width:30px;height:30px}.bar-nav{gap:28px;font-size:.9375rem;display:flex}.bar-nav a{color:var(--text-2);text-decoration:none;transition:color .18s}.bar-nav a:hover{color:var(--ink)}.bar.is-dark .bar-nav a{color:#f4f4f1b3}.bar.is-dark .bar-nav a:hover{color:#fff}.bar.is-dark .brand-mark{box-shadow:0 0 0 1px #ffffff29}.bar.is-dark .btn{color:var(--ink);background:#f4f4f1}.hero{padding-top:calc(var(--bar-h) + clamp(16px, 4vh, 72px));text-align:center;position:relative}.hero-text{width:var(--page);margin-inline:auto}.hero-title{letter-spacing:-.028em;max-width:11.5em;margin-inline:auto;font-size:clamp(2.6rem,min(6vw,8vh),5.9rem);font-weight:420;line-height:1.02}.hero-title .w{display:inline-block}.hero-lede{text-wrap:balance;max-width:43em;color:var(--text-2);margin:clamp(10px,1.8vh,24px) auto 0;font-size:clamp(1.0625rem,.96rem + .42vw,1.25rem);line-height:1.55}.signup{width:min(500px,100%);margin:clamp(14px,2.4vh,30px) auto 0}.signup-row{border:1px solid var(--line-strong);background:var(--card);box-shadow:var(--shadow-soft);border-radius:14px;align-items:center;gap:6px;padding:5px;transition:border-color .2s,box-shadow .2s;display:flex}.signup-row:focus-within{box-shadow:0 0 0 4px var(--wine-wash), var(--shadow-soft);border-color:#8e2c4873}.signup input{background:0 0;border:0;outline:none;flex:auto;min-width:0;height:46px;padding:0 12px 0 14px;font-size:1rem}.signup .trap{opacity:0;width:1px;height:1px;position:absolute;left:-10000px}.signup input::placeholder{color:var(--faint)}.signup .btn{flex:none;min-height:46px}.signup-note{color:var(--muted);margin-top:10px;font-size:.875rem}.signup.is-sending .btn{opacity:.7;pointer-events:none}.signup.is-done .signup-row{display:none}.signup-done{background:var(--card);min-height:58px;box-shadow:var(--shadow-soft);animation:rise .5s var(--ease-out);border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:500;display:flex}.signup-done svg{fill:none;width:22px;height:22px;stroke:var(--wine);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:none}.signup-error{color:var(--wrong)}.stage{margin-top:clamp(18px,3vh,48px);position:relative}.sheet-card{z-index:2;width:min(1180px, 100% - 2 * var(--gutter));border-radius:var(--r-sheet) var(--r-sheet) 6px 6px;background:var(--card);box-shadow:var(--shadow-sheet);text-align:left;margin:0 auto;padding:clamp(12px,1.9vh,22px) clamp(14px,2.4vw,30px) clamp(10px,1.5vh,18px);position:relative}.score-head{min-height:24px;transition:opacity .22s, transform .22s var(--ease-out);grid-template-columns:1fr auto 1fr;align-items:baseline;gap:12px;display:grid}.sheet-card.is-swapping .score-head{opacity:0;transform:translateY(-4px)}.tempo-mark{font-family:var(--font-display);white-space:nowrap;font-size:.9375rem;font-weight:700}.note-glyph{vertical-align:-.2em;fill:currentColor;width:.5em;height:1.1em;margin-right:.08em;display:inline-block}.score-title{font-family:var(--font-display);color:var(--ink-2);text-align:center;font-size:clamp(.9375rem,.85rem + .3vw,1.0625rem);font-style:italic}.score-level{color:var(--muted);white-space:nowrap;justify-self:end;font-size:.8125rem;transition:opacity .3s}.sheet-card.is-stamped .score-level{opacity:0}.sheet-view{transition:height .5s var(--ease-out);margin-top:4px;position:relative;overflow:hidden}.sheet{width:100%;transition:opacity .6s var(--ease-out), transform .7s var(--ease-out);position:absolute;inset:0 auto auto 0}.sheet.is-entering{opacity:0;transition:none;transform:translate(56px)}.sheet.is-leaving{opacity:0;transform:translate(-56px)}.sheet svg{fill:var(--ink);stroke:var(--ink);display:block;overflow:visible}.sheet .vf-stave{stroke:var(--staff)}.sheet .vf-stavebarline rect{fill:var(--staff)}.sheet .vf-stavenote{transition:fill .45s,stroke .45s}.sheet .vf-stavenote.is-ok{fill:var(--faint);stroke:var(--faint)}.sheet .vf-stavenote.is-bad{fill:var(--wrong);stroke:var(--wrong);transition-duration:.15s}.sheet .cursor{fill:var(--wine-soft);stroke:none}.sheet .cover{fill:#f8f8f5;stroke:none}.ghost .ghost-head{fill:none;stroke:var(--wrong);stroke-width:1.8px;stroke-dasharray:3 2}.ghost .ghost-ledger{stroke:var(--wrong);stroke-width:1.2px}.ghost .ghost-accidental{fill:var(--wrong);stroke:none;font-family:Segoe UI Symbol,Apple Symbols,serif;font-size:18px}.ghost{animation:.25s ease-out ghost-in}@keyframes ghost-in{0%{opacity:0}}.ghost-tag{z-index:3;color:var(--wrong);white-space:nowrap;pointer-events:none;animation:tag-in .4s var(--ease-out);background:#fff;border:1px dashed #c2415f8c;border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:500;position:absolute;transform:translate(8px,-50%)}@keyframes tag-in{0%{opacity:0;transform:translateY(-50%)}}.stamp{z-index:3;width:112px;height:78px;color:var(--wine);pointer-events:none;opacity:0;place-items:center;display:grid;position:absolute;top:clamp(-30px,-2.4vw,-18px);right:clamp(-10px,-1vw,0px);transform:rotate(-7deg)}.stamp svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;width:100%;height:100%;position:absolute;inset:0}.stamp-num{font-family:var(--font-display);margin-top:-14px;font-size:2rem;font-style:italic;font-weight:600;line-height:1}.stamp-label{font-family:var(--font-display);font-size:.8125rem;font-style:italic;position:absolute;bottom:9px}.stamp.is-on{opacity:1}.stamp.is-on svg{animation:pencil .7s var(--ease-out) forwards}.stamp.is-on .stamp-num,.stamp.is-on .stamp-label{animation:rise .5s .35s var(--ease-out) both}@keyframes pencil{to{stroke-dashoffset:0}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.stage-controls{width:var(--page);flex-wrap:wrap;justify-content:center;gap:10px;margin:18px auto 0;display:flex}.stage-caption{width:var(--page);max-width:44em;color:var(--muted);min-height:1.6em;margin:12px auto 0;font-size:.875rem}.piano{--white-h:clamp(88px, 14vh, 168px);padding:16px max(var(--gutter), (100% - 1640px) / 2) 0;-webkit-user-select:none;user-select:none;background:linear-gradient(#2a2a2d 0,#1c1c1e 22px 100%);position:relative;box-shadow:inset 0 1px #ffffff12,0 26px 40px -30px #1c1c1e99}.piano-felt{background:linear-gradient(180deg, #a63a59, var(--wine) 40%, var(--wine-deep));height:4px;position:absolute;top:12px;left:0;right:0;box-shadow:0 1px #00000059}.piano-viewport{padding-bottom:14px;position:relative;overflow:hidden}.piano-keys{--pan:0px;height:var(--white-h);transform:translateX(var(--pan));transition:transform .7s var(--ease-out);display:flex;position:relative}.k{-webkit-tap-highlight-color:transparent;display:block;position:relative}.piano.is-playable .k{cursor:pointer;touch-action:pan-y}.k.w{transform-origin:50% 0;min-width:0;transition:transform .16s var(--ease-out), background .16s, box-shadow .16s;background:linear-gradient(#d9d9d3 0,#f3f3ef 4%,#fdfdfb 14%,#fff 58%,#f4f4f0 100%);border-radius:0 0 5px 5px;flex:1 1 0;margin-right:1px;box-shadow:inset 0 -9px 0 -1px #ecece6,inset 0 -10px 0 -1px #dededa,0 1px #00000080}.k.w:last-child{margin-right:0}.k.b{z-index:2;transform-origin:50% 0;height:62%;transition:transform .16s var(--ease-out), background .16s, box-shadow .16s;background:linear-gradient(#0f0f10 0,#2c2c30 9%,#252528 60%,#1e1e21 100%);border-radius:0 0 4px 4px;position:absolute;top:0;box-shadow:inset 0 -7px 0 -1px #3d3d42,inset 1px 0 #ffffff12,inset -1px 0 #00000080,0 3px 4px #00000073}.k.w.is-play,.k.w.is-user,.k.w.is-wrong{transition-duration:40ms;transform:scaleY(.985);box-shadow:inset 0 -5px 0 -1px #e9dce0,inset 0 -6px 0 -1px #d9c7cd,0 0 #00000080}.k.w.is-play,.k.w.is-user{background:linear-gradient(#c7a4b0 0,#ecd9df 6%,#f6ebee 40%,#f2e4e8 100%);box-shadow:inset 0 -5px 0 -1px #e9dce0,inset 0 -6px 0 -1px #d9c7cd,0 -4px 14px -4px #c4466cbf}.k.b.is-play,.k.b.is-user,.k.b.is-wrong{transition-duration:40ms;transform:scaleY(.975);box-shadow:inset 0 -3px 0 -1px #6b3a4a,inset 1px 0 #ffffff12,0 1px 2px #00000073}.k.b.is-play,.k.b.is-user{background:linear-gradient(#2a1219 0,#6a2c40 12%,#5a2a3a 100%);box-shadow:inset 0 -3px 0 -1px #6b3a4a,inset 1px 0 #ffffff12,0 -4px 14px -4px #c4466cbf}.k.w.is-wrong{background:linear-gradient(#d79aaa 0,#f6d9e0 8%,#fbe9ed 100%);box-shadow:inset 0 -5px 0 -1px #f0d5dc,inset 0 -6px 0 -1px #e2bcc6,0 -4px 14px -4px #e25070d9}.k.b.is-wrong{background:linear-gradient(#3a0f1a 0,#a3354f 12%,#8f2c45 100%)}.k.is-hint:after{content:"";background:var(--wine);width:10px;height:10px;box-shadow:0 0 0 4px var(--wine-soft);border-radius:50%;margin-left:-5px;animation:1.2s ease-in-out infinite hint;position:absolute;bottom:18%;left:50%}.k.b.is-hint:after{background:#fff;bottom:14%;box-shadow:0 0 0 4px #fff3}@keyframes hint{50%{transform:scale(.75)}}.k[data-finger]:before{content:attr(data-finger);background:var(--wine);color:#fff;text-align:center;width:18px;height:18px;animation:rise .25s var(--ease-out);border-radius:50%;font-size:11px;font-weight:600;line-height:18px;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.k-name{color:var(--faint);text-align:center;pointer-events:none;font-size:10px;font-weight:500;position:absolute;bottom:14px;left:0;right:0}.piano.is-intro .k{transition:transform .6s var(--ease-out), opacity .5s ease;transition-delay:calc(var(--i) * 9ms)}.piano.is-lowered .k{opacity:0;transform:translateY(18%)}.piano-hero{margin-top:-20px;padding-top:34px}.piano-hero .piano-felt{top:30px}.why,.how,.inside,.faq{padding-top:var(--section)}h2{letter-spacing:-.022em;font-size:clamp(2rem,1.15rem + 2.7vw,3.5rem);font-weight:450;line-height:1.08}h3{letter-spacing:-.008em;font-size:1.375rem;font-weight:600;line-height:1.25}.why-grid{gap:clamp(28px,4vw,56px);display:grid}.why-text{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:end;gap:clamp(24px,5vw,80px);display:grid}.why-text p{color:var(--text-2);max-width:34em;font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem)}.ladder{border-radius:var(--r-sheet);background:var(--card);box-shadow:var(--shadow-sheet);margin:0;padding:clamp(18px,3vw,40px) clamp(10px,2.5vw,36px) clamp(16px,2vw,26px);position:relative}.ladder-legend{color:var(--text-2);flex-wrap:wrap;gap:8px 28px;margin:0 0 8px clamp(4px,1vw,12px);font-size:.875rem;display:flex}.ladder-legend span{align-items:center;gap:10px;display:inline-flex}.legend-fluent i{background:var(--wine);border-radius:50%;width:10px;height:7px;transform:rotate(-20deg)}.legend-fluent{color:var(--wine);font-weight:500}.legend-jump i{border-top:1.6px dashed var(--faint);width:26px}.ladder-canvas svg{width:100%;height:auto;display:block;overflow:visible}.ladder-hint{color:var(--muted);text-align:center;margin-top:8px;font-size:.8125rem}.ladder-tip{z-index:4;border-radius:var(--r-card);background:var(--ink);color:#f4f4f1;pointer-events:none;opacity:0;width:max-content;max-width:min(300px,80vw);transition:opacity .18s, transform .25s var(--ease-out);padding:12px 14px;font-size:.875rem;line-height:1.45;position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 14px))translateY(4px);box-shadow:0 12px 30px -10px #1c1c1e80}.ladder-tip.is-on{opacity:1;transform:translate(-50%,calc(-100% - 14px))}.ladder-tip strong{font-family:var(--font-display);margin-bottom:2px;font-size:1rem;font-weight:600;display:block}.ladder-tip .tip-level{color:#d9a5b5;font-size:.75rem;font-weight:500}.lad-staff line,.lad-bar{stroke:var(--staff);stroke-width:1.2px}.lad-ink{fill:var(--ink)}.lad-stem{stroke:var(--ink);stroke-width:1.6px}.lad-ledger{stroke:var(--ink);stroke-width:1.4px}.lad-jump{fill:none;stroke:var(--faint);stroke-width:1.6px;stroke-dasharray:6 6}.lad-label{fill:var(--muted);font-family:var(--font-ui);font-size:13px}.lad-label.is-wine{fill:var(--wine);font-weight:600}.lad-book{fill:var(--text-2);font-family:var(--font-display);font-size:14px;font-style:italic}.lad-note{cursor:pointer}.lad-note .head{fill:var(--ink);transform-box:fill-box;transform-origin:50%;transition:fill .25s, transform .25s var(--ease-out)}.lad-note .hit{fill:#0000}.lad-note:hover .head,.lad-note.is-active .head{fill:var(--wine);transform:scale(1.25)}.ladder.is-filling .lad-note .head{opacity:0;transform:scale(.4)}.ladder.is-filling .lad-note.is-in .head{opacity:1;fill:var(--wine);transition:transform .35s var(--ease-out), fill .9s .25s;transform:scale(1)}.ladder.is-filling .lad-note.is-in.is-settled .head{fill:var(--ink)}.ladder.is-filling .lad-jump{stroke-dashoffset:0}.ladder.is-filling .lad-fluent{opacity:0;transition:opacity .6s}.ladder.is-filled .lad-fluent{opacity:1}.how h2{max-width:14em}.steps{grid-template-columns:repeat(3,minmax(0,1fr));margin:clamp(40px,5vw,72px) 0 0;padding:0;list-style:none;display:grid;position:relative}.steps:before{content:"";background:repeating-linear-gradient(180deg, var(--staff) 0 1px, transparent 1px 6px);height:25px;position:absolute;top:0;left:0;right:0}.steps:after{content:"";border-left:1.5px solid var(--ink-2);border-right:5px solid var(--ink);width:9px;height:25px;position:absolute;top:0;right:0}.step{border-left:1.5px solid var(--ink-2);border-image:linear-gradient(var(--ink-2) 25px, transparent 25px) 1;padding:50px clamp(16px,2.6vw,40px) 8px;position:relative}.step:after{content:"";top:calc(var(--note-y) - 3.6px);border-style:solid;border-color:var(--ink);opacity:0;width:9.5px;height:7.2px;transition:opacity .4s, transform .6s var(--ease-out);border-width:1.4px 2.6px;border-radius:50%;position:absolute;left:clamp(40px,34%,140px);transform:rotate(-24deg)scale(.6)}.step:first-child{--note-y:24px}.step:nth-child(2){--note-y:15px}.step:nth-child(3){--note-y:6px}.step.is-in:after{opacity:1;transform:rotate(-24deg)}.measure-no{font-family:var(--font-display);color:var(--muted);font-size:1rem;font-style:italic;position:absolute;top:-26px;left:2px}.step-art{width:100%;max-width:300px;height:auto;margin:8px 0 22px;display:block;overflow:visible}.step h3{margin-bottom:8px}.step p{color:var(--text-2);max-width:28em}.step-art .art-soft,.step-art .art-card,.step-art .art-track{fill:var(--card);stroke:var(--line-strong);stroke-width:1.4px}.step-art .art-keys path{fill:none;stroke:var(--faint);stroke-width:1.2px}.step-art .art-keys .art-black{fill:var(--ink-2);stroke:none}.step-art .art-line{fill:none;stroke:var(--line-strong);stroke-width:1.4px;stroke-linecap:round}.step-art .art-cable{fill:none;stroke:var(--ink-2);stroke-width:2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.step-art .art-pulse{fill:var(--wine);opacity:0;offset-path:path("M128 92c34 0 30 -46 66 -46h26")}.step-art .art-light{fill:var(--line-strong);transition:fill .4s}.step.is-in .art-cable{transition:stroke-dashoffset 1.1s var(--ease-in-out) .2s;stroke-dashoffset:0}.step.is-in .art-pulse{animation:pulse-run 1.6s 1.2s var(--ease-in-out) infinite}.step.is-in .art-light{fill:var(--wine);transition-delay:1.3s}@keyframes pulse-run{0%{offset-distance:0%;opacity:0}15%,85%{opacity:1}to{offset-distance:100%;opacity:0}}.step-art .art-staff{fill:none;stroke:var(--line-strong);stroke-width:1px}.step-art .art-head{fill:var(--ink)}.step-art .art-card{transform-box:fill-box;transform-origin:50% 100%;transition:transform .7s var(--ease-out)}.step.is-in .art-card.c2{transform:rotate(-7deg)translate(-6px)}.step.is-in .art-card.c3{transform:rotate(-14deg)translate(-12px)}.step-art .art-rungs{fill:none;stroke:var(--line-strong);stroke-width:1.4px;stroke-linecap:round}.step-art .art-marker circle{fill:var(--wine)}.step-art .art-marker text,.step-art .art-legend text{fill:var(--text-2);font-family:var(--font-ui);font-size:13px}.step-art .art-marker{opacity:0;transition:transform .9s var(--ease-out) .5s, opacity .4s .5s;transform:translateY(-40px)}.step.is-in .art-marker{opacity:1;transform:none}.step-art .art-lives path{fill:var(--wine);opacity:.85}.step-art .art-track{fill:none;stroke:var(--track,#e6e6e1);stroke-width:10px}.step-art .art-arc{fill:none;stroke-width:10px;stroke-linecap:butt;transform-origin:86px 75px;stroke-dasharray:0 100;transform:rotate(-90deg)}.step-art .a1{stroke:var(--faint)}.step-art .a2{stroke:var(--ink-2)}.step-art .a3{stroke:var(--wine)}.step.is-in .a1{animation:arc1 .6s var(--ease-out) .2s forwards}.step.is-in .a2{animation:arc2 .8s var(--ease-out) .8s forwards}.step.is-in .a3{animation:arc3 1s var(--ease-out) 1.6s forwards}@keyframes arc1{to{stroke-dasharray:14 100}}@keyframes arc2{0%{stroke-dasharray:0 100;stroke-dashoffset:-15px}to{stroke-dasharray:34 100;stroke-dashoffset:-15px}}@keyframes arc3{0%{stroke-dasharray:0 100;stroke-dashoffset:-50px}to{stroke-dasharray:50 100;stroke-dashoffset:-50px}}.step-art .art-mins{font-family:var(--font-display);fill:var(--ink);font-size:26px;font-weight:600}.step-art .art-unit{font-family:var(--font-ui);fill:var(--muted);font-size:11px}.step-art .art-legend .l1{fill:var(--faint)}.step-art .art-legend .l2{fill:var(--ink-2)}.step-art .art-legend .l3{fill:var(--wine)}.inside-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 32px;display:flex}.inside-head p{color:var(--text-2);font-size:1.125rem}.contents{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:start;gap:clamp(28px,5vw,80px);margin-top:clamp(28px,4vw,52px);display:grid}.toc{border-top:1px solid var(--line-strong);flex-direction:column;display:flex}.toc-row{border-bottom:1px solid var(--line-strong)}.toc-btn{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:auto minmax(24px,1fr) auto;align-items:baseline;gap:10px;width:100%;padding:16px 0 14px;display:grid;position:relative}.toc-title{font-family:var(--font-display);letter-spacing:-.012em;color:var(--ink-2);font-size:clamp(1.25rem,1.02rem + .75vw,1.6875rem);font-weight:450;transition:color .2s}.toc-dots{background-image:radial-gradient(circle, var(--faint) 1px, transparent 1.2px);background-position:0;background-repeat:repeat-x;background-size:7px 3px;align-self:end;height:1px;min-height:3px;margin-bottom:.42em}.toc-count{font-family:var(--font-display);color:var(--muted);font-variant-numeric:oldstyle-nums;white-space:nowrap;font-size:1.0625rem;font-style:italic}.toc-btn:before{content:"";background:var(--wine);width:6px;height:6px;transition:transform .3s var(--ease-out);border-radius:50%;margin-top:-3px;position:absolute;top:50%;left:-18px;transform:scale(0)}.toc-btn:hover .toc-title,.toc-row.is-active .toc-title{color:var(--ink)}.toc-row.is-active .toc-btn:before{transform:scale(1)}.toc-desc{transition:grid-template-rows .45s var(--ease-out);grid-template-rows:0fr;display:grid}.toc-desc>p{color:var(--text-2);max-width:34em;font-size:.9875rem;overflow:hidden}.toc-row.is-active .toc-desc{grid-template-rows:1fr}.toc-row.is-active .toc-desc>p{padding-bottom:16px}.plate{top:calc(var(--bar-h) + 28px);border-radius:var(--r-sheet);background:var(--card);box-shadow:var(--shadow-sheet);position:sticky;overflow:hidden}.plate-stage{flex-direction:column;min-height:clamp(380px,34vw,470px);padding:clamp(18px,2.4vw,28px);display:flex;position:relative}.plate-progress{background:var(--line);height:2px}.plate-progress span{background:var(--wine);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.scene{animation:scene-in .5s var(--ease-out);flex-direction:column;flex:1;gap:14px;display:flex}@keyframes scene-in{0%{opacity:0;transform:translateY(8px)}}.scene-head{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;font-size:.875rem;display:flex}.scene-head strong{font-family:var(--font-display);color:var(--ink);font-size:.9375rem;font-weight:700}.scene-view{flex:none;margin:auto 0;position:relative;overflow:hidden}.scene .sheet{position:relative}.scene-foot{flex:none}.scene .piano{--white-h:clamp(74px, 9vw, 104px);margin:0 calc(-1*clamp(18px,2.4vw,28px)) calc(-1*clamp(18px,2.4vw,28px));padding:12px clamp(14px,2vw,22px) 0}.scene .piano-felt{height:3px;top:8px}.scene .piano-viewport{padding-bottom:10px}.scene-note{color:var(--muted);font-size:.875rem}.pill-row{flex-wrap:wrap;gap:6px;display:flex}.pill{border:1px solid var(--line-strong);color:var(--text-2);border-radius:999px;padding:4px 11px;font-size:.8125rem;font-weight:500;transition:background-color .3s,color .3s,border-color .3s}.pill.is-on{border-color:var(--ink);background:var(--ink);color:#fff}.card-deck{place-items:center;height:clamp(190px,18vw,230px);display:grid;position:relative}.flash{aspect-ratio:1.25;border:1px solid var(--line);border-radius:var(--r-card);width:min(270px,70%);box-shadow:var(--shadow-soft);transition:transform .6s var(--ease-out), opacity .5s;background:#fff;place-items:center;padding:10px 18px;display:grid;position:absolute}.flash svg{width:100%;height:100%;fill:var(--ink);stroke:var(--ink);overflow:visible}.flash .vf-stave{stroke:var(--staff)}.flash .vf-stavenote{transition:fill .25s,stroke .25s}.flash .vf-stavenote.is-ok{fill:var(--wine);stroke:var(--wine)}.flash.is-next{opacity:0;transform:translate(46%)scale(.92)rotate(3deg)}.flash.is-gone{opacity:0;transform:translate(-46%)scale(.92)rotate(-3deg)}.flash-time{font-family:var(--font-display);color:var(--wine);opacity:0;transition:opacity .3s, transform .3s var(--ease-out);font-size:.9375rem;font-style:italic;position:absolute;top:10px;right:12px;transform:translateY(4px)}.flash.is-done .flash-time{opacity:1;transform:none}.beats{justify-content:center;gap:10px;display:flex}.beat{background:var(--line-strong);border-radius:50%;width:10px;height:10px;transition:background-color .12s,transform .12s}.beat.is-on{background:var(--ink);transform:scale(1.3)}.beat.is-on.is-one{background:var(--wine)}.tap-pad{height:64px;color:var(--muted);background:linear-gradient(#f9f9f7,#fff 40%,#f1f1ed);border-radius:12px;place-items:center;font-size:.8125rem;transition:transform 50ms,box-shadow .12s,background .12s;display:grid;box-shadow:inset 0 -6px #e9e9e3,0 1px 2px #1c1c1e2e}.tap-pad.is-down{background:linear-gradient(#f1e3e8,#f7eef1);transform:translateY(2px);box-shadow:inset 0 -3px #e6d3d9,0 0 #1c1c1e2e}.ear{place-items:center;gap:18px;padding:8px 0 4px;display:grid}.ear-play{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:50%;place-items:center;width:76px;height:76px;display:grid;position:relative}.ear-play svg{fill:currentColor;width:28px;height:28px;margin-left:4px}.ear-play:before,.ear-play:after{content:"";border:1.5px solid var(--ink);opacity:0;border-radius:50%;position:absolute;inset:0}.ear.is-listening .ear-play:before{animation:ring 1.4s var(--ease-out) infinite}.ear.is-listening .ear-play:after{animation:ring 1.4s .7s var(--ease-out) infinite}@keyframes ring{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}.ear-dots{gap:12px;display:flex}.ear-dot{border:1.5px dashed var(--line-strong);width:26px;height:26px;transition:background-color .2s, border-color .2s, transform .2s var(--ease-out);border-radius:50%;place-items:center;display:grid}.ear-dot svg{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;opacity:0;width:14px;height:14px}.ear-dot.is-heard{border:1.5px solid var(--ink);transform:scale(1.12)}.ear-dot.is-right{border-color:var(--wine);background:var(--wine)}.ear-dot.is-right svg{opacity:1}.song-page{border:1px solid var(--line);box-shadow:0 1px 0 var(--line);background:#fff;border-radius:8px;padding:16px 18px 6px}.song-title{font-family:var(--font-display);text-align:center;font-size:1.375rem;font-weight:600}.song-composer{font-family:var(--font-display);color:var(--muted);text-align:right;margin-top:-2px;font-size:.8125rem;font-style:italic}.files{flex-wrap:wrap;gap:6px;display:flex}.file{background:var(--paper);color:var(--text-2);border-radius:6px;padding:3px 8px;font-size:.75rem;font-weight:500}.grade{margin-top:var(--section);background:var(--ink);color:#f4f4f1;height:420svh;position:relative}.grade-sticky{align-items:center;height:100svh;min-height:560px;display:flex;position:sticky;top:0;overflow:hidden}.grade-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(32px,6vw,96px);display:grid}.grade h2{color:#f4f4f19e;letter-spacing:-.005em;font-size:clamp(1.25rem,1rem + .7vw,1.625rem);font-weight:500}.grade-name{height:1.08em;font-family:var(--font-display);letter-spacing:-.035em;margin-top:8px;font-size:clamp(3.75rem,2rem + 7vw,9rem);font-weight:380;line-height:1.08;position:relative;overflow:hidden}.grade-name span{transition:transform .6s var(--ease-out), opacity .4s;display:block}.grade-name span.is-above{opacity:0;position:absolute;inset:0 auto auto 0;transform:translateY(-70%)}.grade-name span.is-below{opacity:0;position:absolute;inset:0 auto auto 0;transform:translateY(70%)}.grade-line{color:#f4f4f1db;max-width:26em;min-height:3.2em;margin-top:10px;font-size:clamp(1.0625rem,.98rem + .4vw,1.3125rem)}.grade-steps{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;max-width:560px;margin:28px 0 0;padding:0;list-style:none;display:grid}.grade-steps li{color:#f4f4f16b;white-space:nowrap;text-overflow:ellipsis;padding-top:12px;font-size:.6875rem;font-weight:500;transition:color .3s;position:relative;overflow:hidden}.grade-steps li:before{content:"";background:#f4f4f129;border-radius:2px;height:3px;transition:background-color .3s;position:absolute;top:0;left:0;right:0}.grade-steps li.is-past:before{background:#f4f4f180}.grade-steps li.is-now{color:#f4f4f1}.grade-steps li.is-now:before{background:#c2557a}.grade-about{color:#f4f4f19e;max-width:32em;margin-top:28px;font-size:.9375rem}.metronome{justify-self:center;width:min(100%,340px)}.metronome svg{width:100%;height:auto;display:block;overflow:visible}.faq-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);align-items:start;gap:clamp(24px,5vw,80px);display:grid}.faq-list{border-top:1px solid var(--line-strong)}.faq details{border-bottom:1px solid var(--line-strong)}.faq summary{font-family:var(--font-display);letter-spacing:-.01em;cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:22px 44px 22px 0;font-size:clamp(1.1875rem,1.05rem + .45vw,1.4375rem);font-weight:450;list-style:none;display:flex;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:before,.faq summary:after{content:"";background:var(--ink);width:16px;height:1.6px;transition:transform .35s var(--ease-out);border-radius:1px;position:absolute;top:50%;right:6px}.faq summary:after{transform:rotate(90deg)}.faq details[open] summary:after{transform:rotate(0)}.faq-body{overflow:hidden}.faq-body p{color:var(--text-2);max-width:40em;padding:0 0 24px}.finale{padding-top:var(--section);text-align:center}.finale h2{letter-spacing:-.03em;font-size:clamp(2.5rem,1.2rem + 4.4vw,5rem);font-weight:420}.finale-inner>p{max-width:30em;color:var(--text-2);margin:18px auto 0;font-size:1.1875rem}.piano-finale{margin-top:clamp(56px,8vw,104px)}.piano-finale .piano{--white-h:clamp(84px, 12vw, 150px)}.foot{background:var(--ink);color:#f4f4f1b3;padding:56px 0 40px;font-size:.875rem;position:relative}.foot-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1.3fr);align-items:start;gap:24px 48px;display:grid}.foot-name{color:#f4f4f1;font-family:var(--font-display);font-size:1.375rem;font-weight:600;display:block}.foot-tag{font-family:var(--font-display);margin-top:4px;font-style:italic;display:block}.foot-nav{flex-direction:column;gap:6px;display:flex}.foot-nav a{text-decoration:none;transition:color .18s}.foot-nav a:hover{color:#fff}.foot-privacy{max-width:30em}.foot-copy{color:#f4f4f19e;border-top:1px solid #ffffff14;grid-column:1/-1;padding-top:24px}.final-barline{right:max(var(--gutter), (100% - 1200px) / 2);fill:#f4f4f1bf;width:14px;height:38px;position:absolute;bottom:40px}.js:not(.is-still) .hero-title .w{opacity:0;filter:blur(10px);transform:translateY(.35em)}.js.is-ready:not(.is-still) .hero-title .w{opacity:1;filter:none;transition:opacity .9s var(--ease-out), filter .9s var(--ease-out), transform 1.1s var(--ease-out);transition-delay:calc(var(--w) * 70ms);transform:none}.js:not(.is-still) .hero .signup,.js:not(.is-still) .sheet-card,.js:not(.is-still) .stage-controls,.js:not(.is-still) .stage-caption{opacity:0;transform:translateY(14px)}.js.is-ready:not(.is-still) .hero .signup,.js.is-ready:not(.is-still) .sheet-card,.js.is-ready:not(.is-still) .stage-controls,.js.is-ready:not(.is-still) .stage-caption{opacity:1;transition:opacity .9s var(--ease-out), transform 1s var(--ease-out);transform:none}.js.is-ready .hero-lede{transition-delay:.45s}.js.is-ready .hero .signup{transition-delay:.6s}.js.is-ready .sheet-card{transition-delay:.75s}.js.is-ready .stage-controls,.js.is-ready .stage-caption{transition-delay:1.4s}.is-og .bar-nav,.is-og .bar .btn,.is-og .hero-lede,.is-og .hero .signup,.is-og .stage-controls,.is-og .stage-caption,.is-og .stamp{display:none}.is-og .bar{position:absolute}.is-og .bar-inner{justify-content:center}.is-og .brand{margin:0}.is-og .hero{padding-top:94px}.is-og .hero-title{white-space:nowrap;max-width:none;font-size:3.5rem}.is-og .stage{margin-top:26px}.is-og .piano{--white-h:150px}@media (width<=960px){.bar-nav{display:none}.why-text,.contents,.faq-grid,.grade-grid{grid-template-columns:minmax(0,1fr)}.plate{margin:4px 0 18px;position:relative;top:0}.grade-grid{gap:24px}.metronome{order:-1;width:min(56vw,230px,34vh)}.grade{height:340svh}.grade-steps li{font-size:0}.foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.foot-privacy{grid-column:1/-1}}@media (width<=720px){:root{--bar-h:58px}.brand span{font-size:1.0625rem}.steps{grid-template-columns:minmax(0,1fr)}.steps:before,.steps:after,.step:after{display:none}.step{border-left:1.5px solid var(--ink);border-image:;padding:30px 0 18px 20px}.measure-no{top:4px;left:20px}.step-art{max-width:260px}.score-level{display:none}.score-head{grid-template-columns:auto 1fr}.score-title{text-align:right}.stamp{width:92px;height:64px;top:-26px}.stamp-num{font-size:1.6rem}.stamp-label{bottom:9px}.ladder-hint{display:none}.ladder{padding-inline:0}.ladder-legend{margin-inline:16px}.ladder-canvas{overscroll-behavior-x:contain;scrollbar-width:none;padding:0 16px 6px;overflow-x:auto}.ladder-canvas::-webkit-scrollbar{display:none}.ladder-canvas svg{width:820px;max-width:none}.toc-btn:before{left:-12px}.toc{padding-left:12px}.foot-grid{grid-template-columns:minmax(0,1fr)}.final-barline{bottom:30px}}@media (width<=480px){.signup-row{flex-direction:column;align-items:stretch}.signup .btn{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
