@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./archivo-vietnamese-wght-normal-XAtsl5Q_.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./archivo-latin-ext-wght-normal-C4zznr8T.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./archivo-latin-wght-normal-E0tuGl4L.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.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}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,main,menu,nav,output,ruby,section,summary,time,mark,audio,video{font-size:100%;font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}[hidden]{display:none}body{line-height:1}menu,ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}.drawer-layer{z-index:30;position:fixed;inset:0}.drawer{border-left:1px solid var(--line);background:var(--surface);width:min(28rem,100%);box-shadow:-.5rem 0 1.5rem var(--shadow);flex-direction:column;animation:.2s ease-out slide-in;display:flex;position:absolute;top:0;bottom:0;right:0;overflow-y:auto}.drawer .drawer-header{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:1rem 1rem 1rem 1.75rem;display:flex}.drawer .drawer-header h2{font-size:1.375rem;font-weight:var(--title-weight);flex:1}.drawer .drawer-body{flex-direction:column;gap:1.5rem;padding:1.75rem;display:flex}@keyframes slide-in{0%{transform:translate(100%)}}.latency-option{flex-direction:column;gap:.5rem;display:flex}.latency-option+.latency-option{border-top:1px solid var(--surface-2);padding-top:1rem}.latency-row,.calibration-row{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.latency-label{min-width:6.5em;font-size:.9375rem;font-weight:500}.latency-input{min-height:var(--control);border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:text;border-radius:.625rem;align-items:center;gap:.25rem;padding:0 .625rem;font-size:.875rem;display:inline-flex}.latency-input:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.latency-input input{width:4.5ch;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-align:right;appearance:textfield;background:0 0;border:none;outline:none}.latency-input input::-webkit-inner-spin-button{appearance:none;margin:0}.latency-input input::-webkit-outer-spin-button{appearance:none;margin:0}.velocity-bands{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.875rem}.latency-hint{flex-wrap:wrap;align-items:center;gap:0 .5rem;display:flex}.latency-hint .text-button{min-height:1.75rem}.calibration{background:var(--surface-2);border-radius:.75rem;padding:.75rem}.calibration .button{min-height:var(--control);padding:0 .875rem}.calibration-note{flex:1;min-width:12rem;font-size:.875rem;line-height:1.5}.calibration-taps{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.beat-light{border:1px solid var(--line);background:var(--bg);border-radius:50%;flex:none;width:1.5rem;height:1.5rem}.beat-light.lit{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 .375rem var(--accent-soft)}.devices-button{position:relative}.devices-button[aria-expanded=true]{background:var(--surface-2);color:var(--text)}.devices-button .status-dot{box-shadow:0 0 0 .125rem var(--surface);position:absolute;top:.375rem;right:.375rem}.devices-button .status-dot.connected{box-shadow:0 0 0 .125rem var(--surface), 0 0 0 .3125rem var(--ok-glow)}.popover{z-index:10;border:1px solid var(--line);background:var(--surface);box-shadow:0 1rem 2rem var(--shadow);border-radius:1rem;flex-direction:column;gap:.5rem;padding:.75rem;animation:.12s ease-out fade-in;display:flex;position:absolute}.device-setup .drawer-header .button{min-height:var(--control);padding:0 .625rem}.device-section{flex-direction:column;gap:.5rem;display:flex}.device-section+.device-section{border-top:1px solid var(--line);padding-top:1.5rem}.device-section-header{align-items:center;gap:.5rem;min-height:2.25rem;display:flex}.device-section-header .eyebrow{flex:none}.device-section-header .icon-button.small{width:var(--control);height:var(--control);border-radius:.625rem}.device-section-header .icon-button.small .icon{width:1.125em;height:1.125em}.device-count{color:var(--faint);font-size:.8125rem}.device-rows{flex-direction:column;display:flex}.device-row{cursor:pointer;align-items:center;gap:1rem;padding:.75rem 0;display:flex}.device-row+.device-row{border-top:1px solid var(--surface-2)}.device-row .device-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:500}.device-row .device-kind{color:var(--muted);flex:none;font-size:.8125rem}.keyboard-size{border-top:1px solid var(--surface-2);flex-direction:column;gap:.5rem;margin-top:.5rem;padding:1rem .75rem 0;display:flex}.keyboard-size-row{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.keyboard-size-label{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;font-size:.9375rem;display:flex}.keyboard-size-label select{min-width:14rem}.text-button{min-height:var(--control);color:var(--accent-text);background:0 0;border:none;border-radius:.5rem;padding:0 .5rem;font-size:.875rem;font-weight:600}@media (hover:hover){.text-button:hover:not(:disabled){background:var(--accent-soft)}}.text-button:disabled{color:var(--faint);cursor:not-allowed}.device-note{color:var(--muted);font-size:.8125rem;line-height:1.5}.device-note.error{color:var(--bad-light)}.devices-status{min-width:0;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}@media (width<=48rem){.devices-status{display:none}}.fix-it{min-height:100vh}.fix-it-title{font-size:1.125rem;font-weight:var(--title-weight)}.fix-it-main{flex-direction:column;gap:1.5rem;max-width:40rem;padding:1.5rem 1.5rem 3rem;display:flex}@media (width<=30rem){.fix-it-main{padding-inline:1rem}}.fix-it-passage{flex-direction:column;gap:.25rem;display:flex}.fix-it-passage p{margin:0}.fix-it-song{font-size:1.375rem;font-weight:var(--title-weight);margin:0}.fix-it-bars{font-weight:var(--title-weight)}.fix-it-state,.fix-it-empty{color:var(--muted)}.fix-steps{border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-direction:column;gap:.5rem;margin:0;padding:1rem 1.125rem;list-style:none;display:flex}.fix-step{align-items:center;gap:.75rem;display:flex}.fix-tick{border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;width:1.5rem;height:1.5rem;display:grid}.played .fix-tick{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.fix-tick .icon{width:1em;height:1em}.fix-text{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.fix-title{font-weight:var(--title-weight)}.fix-detail{color:var(--muted);font-size:.875rem}.practice-report{border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-direction:column;gap:.5rem;padding:1rem 1.125rem;display:flex}.report-headline{font-size:1.125rem;font-weight:var(--title-weight);margin:0}.report-gloss{color:var(--faint);font-size:.875rem;font-weight:400}.report-lines{color:var(--muted);flex-direction:column;gap:.25rem;margin:0;padding-left:1.25em;display:flex}.choices-picker .segment{flex:1;justify-content:center}.choices{border:1px solid var(--line);border-radius:.875rem;flex-direction:column;gap:.75rem;padding:.875rem 1rem;display:flex}.practice-calendar{flex-direction:column;gap:.5rem;display:flex}.calendar-grid{grid-template-columns:auto repeat(var(--weeks), minmax(0, 1fr));gap:.1875rem;max-width:56rem;display:grid}.calendar-month,.calendar-weekday{color:var(--muted);white-space:nowrap;font-size:.6875rem;line-height:1}.calendar-month{grid-row:1;padding-bottom:.25rem}.calendar-weekday{grid-column:1;align-self:center;padding-right:.375rem}.calendar-day{aspect-ratio:1;background:color-mix(in oklab, var(--accent) calc(var(--level) * 25%), var(--surface-2));border-radius:.1875rem}.calendar-grid .calendar-day:hover{outline:2px solid var(--text);outline-offset:0}.calendar-legend{color:var(--muted);align-items:center;gap:.1875rem;font-size:.75rem;display:flex}.calendar-legend .calendar-day{width:.75rem}.calendar-legend .calendar-day:first-of-type{margin-left:.375rem}.calendar-legend .calendar-day:last-of-type{margin-right:.375rem}.accuracy-trend{vertical-align:middle;align-items:center;gap:.5rem;display:inline-flex}.trend-plot{width:6rem;height:1.5rem;display:block;position:relative}.trend-plot svg{width:100%;height:100%;display:block;overflow:visible}.trend-plot path{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.trend-point{left:var(--x);top:var(--y);border-radius:50%;width:.75rem;height:.75rem;position:absolute;translate:-50% -50%}.trend-point:after{content:"";background:var(--accent);box-shadow:0 0 0 2px var(--bg);opacity:0;border-radius:50%;position:absolute;inset:.1875rem}.trend-point:last-child:after,.trend-point:hover:after{opacity:1}.trend-last{font-variant-numeric:tabular-nums;min-width:4ch;font-size:.8125rem;font-weight:600}.learn{flex-direction:column;height:100dvh;display:flex}.learn-main{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:2rem;min-height:0;padding:1.5rem max(1.5rem,50% - 22.5rem) 3rem;display:flex;overflow-y:auto}@media (width<=30rem){.learn-main{padding-inline:1rem}}.learn-main>*{flex-shrink:0}.learn-next{border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;display:flex}.learn-next-text{flex-direction:column;gap:.25rem;display:flex}.learn-next-title{font-size:1.25rem;font-weight:var(--title-weight)}.learn-next-note{color:var(--muted);margin:0;font-size:.875rem}.learn-section{flex-direction:column;gap:.75rem;display:flex}.unit-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.unit{border:1px solid var(--line);background:var(--surface);border-radius:1rem}.unit-head{width:100%;min-height:3.5rem;color:var(--text);text-align:start;background:0 0;border:none;border-radius:1rem;align-items:center;gap:.75rem;padding:0 1rem 0 1.25rem;font-size:1rem;display:flex}@media (hover:hover){.unit-head:hover{background:var(--surface-2)}}.unit-head>.icon{width:1.125em;height:1.125em;color:var(--muted);flex:none}.unit-mark{border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;width:1.5rem;height:1.5rem;display:grid}.unit.passed .unit-mark{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.unit-mark .icon{width:1em;height:1em}.unit.current{border-color:var(--accent)}.unit.current .unit-state{color:var(--accent-text);font-weight:600}.unit-id{min-width:2em;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.unit-title{flex:1;font-weight:600}.unit-state{color:var(--muted);align-items:center;gap:.25em;font-size:.8125rem;display:inline-flex}.unit-state .icon{width:1em;height:1em}.unit.passed .unit-state{color:var(--accent-text)}.unit.distinction .unit-state{font-weight:600}.unit-body{flex-direction:column;gap:1rem;padding:.25rem 1.25rem 1.25rem;display:flex}.unit-intro,.unit-body-card{max-width:40em;color:var(--muted);margin:0;line-height:1.55}.note-name,.numeral{color:var(--text);white-space:nowrap;font-weight:600}.unit-window{max-width:40em;color:var(--muted);margin:0;font-size:.875rem}.unit-body-card{border-left:.125rem solid var(--line);padding-left:.75em}.unit-stalled{color:var(--muted);margin:0;padding:0 1.25rem .75rem;font-size:.875em}.unit-drills{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.drill-name{white-space:normal;text-align:start;min-width:0}.unit-lesson{flex-direction:column;gap:1rem;padding:1.25rem 1.5rem 1.5rem;display:flex}@media (width<=30rem){.unit-lesson{padding-inline:1rem}}.unit-lesson .unit-stalled{padding:0}.lesson-back{align-self:flex-start;align-items:center;gap:.25em;font-size:.875rem;display:inline-flex}.lesson-back .icon{width:1em;height:1em}.lesson-head{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;display:flex}.lesson-head .eyebrow{flex-basis:100%}.lesson-title{font-size:1.5rem;font-weight:var(--title-weight);flex:0 auto;margin:0}.lesson-drills{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}.lesson-drills .eyebrow{margin:0}.lesson-pass{color:var(--muted);margin:0 0 .75rem}.lesson-pass strong{color:var(--text);margin-inline-end:.25em}.lesson-drill{border:1px solid var(--line);width:100%;min-height:3rem;color:var(--text);text-align:start;background:0 0;border-radius:.75rem;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:1rem;display:flex}@media (hover:hover){.lesson-drill:hover:not(:disabled){background:var(--surface-2)}}.lesson-drill:disabled{opacity:.45;cursor:not-allowed}.lesson-drill .drill-name{flex:1}.lesson-drill.next{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.lesson-drill-number{border:1px solid var(--line);width:1.5rem;height:1.5rem;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:.8125rem;display:grid}.marked .lesson-drill-number{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.lesson-drill-number .icon{width:1em;height:1em}.lesson-drill-next{background:var(--accent);color:var(--accent-ink);border-radius:.5rem;align-items:center;gap:.375em;padding:.375em .875em;font-size:.875rem;display:inline-flex}.lesson-drill-next .icon{width:.875em;height:.875em}.lesson-next{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding-top:1rem;display:flex}.lesson-next .icon{width:1em;height:1em}.learn-views{background:var(--surface);border-radius:.875rem;align-self:flex-start;padding:.25rem}.learn-views .segment{border-radius:.625rem;min-height:2.5rem;padding:0 1.125rem;font-size:.9375rem;font-weight:600}@media (width<=40rem){.learn-views{align-self:stretch}.learn-views .segment{flex:1;justify-content:center}}.course-head .eyebrow{margin:0}.course-head{flex-flow:wrap;align-items:center;gap:.5rem 1rem}.course-passed,.level-passed{color:var(--muted);font-size:.875rem}.progressed{background:var(--surface-2);border-radius:.375rem;flex:6rem;max-width:12rem;height:.375rem;overflow:hidden}.progressed-done{background:var(--accent);height:100%;display:block}.learn-plan-on{flex-basis:100%;font-size:.875rem}.track-name{color:var(--text);font-weight:600}.track-about{flex:1;font-size:.875rem}.track-card{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:1rem;flex-direction:column;gap:1rem;margin-bottom:.75rem;padding:1rem 1.125rem;display:flex}.track-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1.5rem;display:flex}.track-card-head .track-name{margin:0;font-size:1rem}.track-card-text{flex-direction:column;flex:18rem;gap:.375rem;display:flex}.reading-rating{align-items:baseline;gap:.5rem;display:flex}.track-card-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:2rem;line-height:1}.reading-rating-change{color:var(--accent-text);font-size:.875rem;font-weight:600}.reading-rating-change.down{color:var(--muted)}.track-card-next,.reading-ahead,.review-to-play{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.review-limits{flex-direction:column;gap:.75rem;display:flex}.review-change{min-height:0;font-size:inherit;padding:0}.reading-grade{align-items:center;gap:.25rem;display:flex}.reading-grade .icon-button{width:2.25rem;height:2.25rem}.reading-grade .icon-button:disabled{opacity:.45;cursor:not-allowed}.reading-grade,.reading-ahead>span,.track-next,.track-passed,.track-rated{font-size:.875rem}.track-rated{max-width:16em;color:var(--muted);text-align:end}.folded-row{flex-flow:wrap;align-items:center;gap:.5rem 1rem}.folded-row .eyebrow{margin:0}.folded-row-line{color:var(--muted);font-size:.875rem}.level-heading{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;display:flex}.track-level{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.track-level .track-card-value{font-size:1.5rem}.track-levels{border-top:1px solid var(--line);flex-direction:column;gap:1.25rem;padding-top:1rem;display:flex}.reading-skills-head{flex-direction:column;gap:.25rem;display:flex}.reading-skills-head .eyebrow{margin:0}.reading-skills{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.reading-skill{align-items:center;gap:.5rem;display:flex}.reading-list{border-top:1px solid var(--line);flex-direction:column;gap:.25rem;margin:0;padding:.75rem 0 0;font-size:.875rem;list-style:none;display:flex}.reading-item{justify-content:space-between;gap:1rem;display:flex}.learn-keyboard{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.9375rem;display:flex}.learn-keyboard strong{color:var(--text);font-weight:600}.learn-keyboard.picking{border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-flow:column;align-items:stretch;gap:.75rem;padding:1.25rem 1.5rem}.learn-keyboard.asking{border-color:var(--accent);box-shadow:0 0 0 .1875rem var(--accent-soft)}.learn-keyboard-title{color:var(--text);font-size:1.25rem;font-weight:var(--title-weight);margin:0}.learn-keyboard-note{margin:0}.size-choices{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.5rem;display:grid}.size-choice{border:1px solid var(--line);color:var(--text);text-align:start;background:0 0;border-radius:.75rem;flex-direction:column;align-items:flex-start;gap:.125rem;padding:.625rem .875rem;display:flex}@media (hover:hover){.size-choice:hover{background:var(--surface-2)}}.size-choice.selected{border-color:var(--accent);background:var(--accent-soft)}.size-keys{font-weight:600}.size-range{color:var(--muted);font-size:.8125rem}.learn-keyboard-detect{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.todays-practice{border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-direction:column;gap:.75rem;padding:1rem 1.125rem;display:flex}.week-goal{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.875rem;display:flex}.week-goal p{margin:0}.week-head{flex-wrap:wrap;align-items:center;gap:.25rem .75rem;display:flex}.week-head .week-change{min-height:0;font-size:inherit;padding:0}.week-goal .choices{color:var(--text);margin-top:.5rem}.week-line{flex-wrap:wrap;align-items:center;gap:.25rem .75rem;display:flex}.week-days{gap:.25rem;display:flex}.week-day{border:1px solid;border-radius:50%;width:.75em;height:.75em}.week-day.practised{border-color:var(--accent);background:var(--accent)}.week-day.ahead{opacity:.4}.today-steps{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.today-head{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;display:flex}.today-head .eyebrow{margin:0}.today-head .week-goal{flex-basis:100%}.today-done{color:var(--accent-text);margin:0;font-weight:600}.today-step{align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.today-step.ticked .today-title{color:var(--muted)}.today-step.next{border:1px solid var(--accent);background:var(--accent-soft);border-radius:.875rem;padding:1rem 1.125rem}.today-step.next .today-title{font-size:1.25rem}.today-step.next .today-detail{color:var(--text);font-size:1rem}@media (width<=30rem){.today-step{flex-wrap:wrap}.today-step.next .button{flex-basis:100%}}.today-up{color:var(--accent-text);letter-spacing:.14em;text-transform:uppercase;font-size:.75rem;font-weight:600}.today-tick{border:1px solid var(--line);border-radius:50%;flex:none;place-items:center;width:1.5rem;height:1.5rem;display:grid}.ticked .today-tick{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.today-tick .icon{width:1em;height:1em}.today-text{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.today-title{font-weight:var(--title-weight)}.today-detail,.today-minutes,.today-length{color:var(--muted);font-size:.875rem}.today-length{margin:0}.today-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem 1rem;padding-top:.75rem;font-size:.875rem;display:flex}.plan-tracks{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.plan-group-name{margin-top:.25rem}.plan-note{color:var(--muted);margin:0}.plan-track-choices{flex-wrap:wrap;gap:.375rem;display:flex}.plan-track{border:1px solid var(--line);min-height:2rem;color:var(--muted);background:0 0;border-radius:1rem;align-items:center;gap:.375em;padding:0 .875em;font-size:.875rem;display:inline-flex}.plan-track.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.plan-track:disabled{cursor:default}.plan-track .icon{width:1em;height:1em}.today-rest .button:disabled{opacity:1;cursor:default;font-variant-numeric:tabular-nums}.dialog.catalogue{gap:0;width:min(52rem,100%);height:min(48rem,100%);padding:0;animation:.2s ease-out rise-in;overflow:hidden}.catalogue-header{align-items:center;padding:1rem 1rem 1rem 1.75rem;display:flex}.catalogue-header h2{flex:1}.catalogue-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:0 1.75rem 1rem;display:flex}.catalogue-filters .search{flex:16rem;width:auto}.catalogue-filters .segmented{flex-wrap:wrap}.catalogue-body{flex:1;min-height:0;padding:.5rem 1rem;overflow-y:auto}.catalogue-empty{text-align:center;color:var(--muted);justify-content:center;align-items:center;gap:.5rem;padding:3rem 1rem;display:flex}.pieces{flex-direction:column;display:flex}.piece{border-radius:.75rem;grid-template-columns:auto 1fr auto auto;grid-template-areas:"listen text difficulty action"".player player player";align-items:center;gap:.5rem 1rem;padding:.625rem .75rem;display:grid}@media (hover:hover){.piece:hover{background:var(--bg)}}.piece .difficulty{grid-area:difficulty;width:6.5rem}@media (width<=40rem){.piece{grid-template-columns:auto 1fr auto;grid-template-areas:"listen text text"".difficulty action"".player player"}}.piece-listen{grid-area:listen}.piece-player{grid-area:player;align-items:center;gap:.75rem;display:flex}.piece-seek{min-width:0;accent-color:var(--accent);flex:1}.piece-time{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:.75rem}.piece-text{flex-direction:column;grid-area:text;gap:.125rem;min-width:0;display:flex}.piece-title{font-weight:500}.piece-meta{color:var(--muted);font-size:.8125rem}.piece-meta a{color:inherit;white-space:nowrap;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.2em}@media (hover:hover){.piece-meta a:hover{color:var(--text)}}.piece-action{grid-area:action;min-width:8rem}.placeholders{animation:.3s .15s both fade-in}@media (hover:hover){.placeholders .piece:hover{background:0 0}}.placeholders .piece-text{gap:.5rem}.placeholder{background:var(--surface-2);border-radius:.375rem;animation:1.2s ease-in-out infinite alternate placeholder-pulse;display:block}@media (prefers-reduced-motion:reduce){.placeholder{animation:none}}.placeholders .piece:first-child .placeholder{animation-delay:80ms}.placeholders .piece:nth-child(2) .placeholder{animation-delay:.16s}.placeholders .piece:nth-child(3) .placeholder{animation-delay:.24s}.placeholders .piece:nth-child(4) .placeholder{animation-delay:.32s}.placeholders .piece:nth-child(5) .placeholder{animation-delay:.4s}.placeholders .piece:nth-child(6) .placeholder{animation-delay:.48s}.placeholders .piece:nth-child(7) .placeholder{animation-delay:.56s}.placeholders .piece:nth-child(8) .placeholder{animation-delay:.64s}@keyframes placeholder-pulse{to{opacity:.45}}.placeholder-listen{border-radius:50%;grid-area:listen;width:1.25rem;height:1.25rem;margin:.75rem}.placeholder-title{width:55%;height:1em}.placeholder-meta{width:75%;height:.8125em}.placeholders .piece:nth-child(3n+2) .placeholder-title{width:40%}.placeholders .piece:nth-child(3n+2) .placeholder-meta{width:62%}.placeholders .piece:nth-child(3n) .placeholder-title{width:68%}.placeholders .piece:nth-child(3n) .placeholder-meta{width:50%}.placeholder-difficulty{grid-area:difficulty;width:4.5rem;height:.8125em;margin-right:2rem}.placeholder-action{border-radius:.75rem;grid-area:action;width:8rem;height:2.75rem}.catalogue-footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding:1rem 1.75rem;font-size:.8125rem;display:flex}.catalogue-footer .catalogue-count{white-space:nowrap;flex:1}.catalogue-footer a{color:var(--text)}.chord-chart{width:max-content;min-width:100%;font-family:var(--mono);flex-direction:column;gap:.75em;font-size:.9375rem;line-height:1.4;display:flex}.chart-line{border-radius:.5em;flex-direction:column;padding:.25em .5em;display:flex}.chart-line.current{background:var(--surface-2)}.chart-section{color:var(--muted);font-family:var(--font);letter-spacing:.04em;text-transform:uppercase;margin-top:.5em;font-size:.8125em;font-weight:600}.chart-chords{min-width:calc(var(--columns) * 1ch);height:1.6em;position:relative}.chart-chord,.chart-mark,.chart-times{top:0;left:calc(var(--column) * 1ch);white-space:nowrap;position:absolute}.chart-chord{color:var(--accent);font-weight:700}.chart-chord.no-chord{color:var(--muted);font-weight:400}.chart-chord.sounding{background:var(--accent);color:var(--accent-ink);border-radius:.25em;margin-left:-.25em;padding:0 .25em}button.chart-chord{border:1px solid var(--line);background:var(--surface);font:inherit;font-weight:700;line-height:inherit;border-radius:.25em;align-items:baseline;gap:.5ch;margin-left:-.25em;padding:0 .25em;display:inline-flex}@media (hover:hover){button.chart-chord:hover{border-color:var(--accent)}}.chart-mark{color:var(--muted);opacity:.6}.chart-line.borrowed .chart-chord,.chart-line.borrowed .chart-mark{opacity:.6}.chart-from{letter-spacing:normal;text-transform:none;margin-left:.75em;font-weight:400}.chart-length{color:var(--muted);font-size:.8125em;font-weight:400}.chart-times{color:var(--muted);margin-left:1ch}.chart-lyric{white-space:pre}.chart-timing{flex-direction:column;gap:.75rem;display:flex}.chart-settings{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:flex}.chart-setting{color:var(--muted);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.chart-tempo{border:1px solid var(--line);background:var(--surface);width:4.5em;color:var(--text);font-variant-numeric:tabular-nums;border-radius:.5rem;padding:.375rem .5rem}.chart-tempo:focus{border-color:var(--accent);outline:none}.chart-hint{color:var(--muted);flex-basis:100%;font-size:.8125rem}.chart-scroll{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;max-height:24rem;padding:.75rem;overflow:auto}.chart-strip{z-index:3;top:calc(var(--top-bar-height) + 1rem);max-width:calc(100% - 2rem);max-height:var(--over-roll);border:1px solid var(--line);background:var(--surface);box-shadow:0 .5rem 1.5rem var(--shadow);pointer-events:none;border-radius:1rem;padding:.5rem;position:absolute;left:1rem;overflow:auto}.chart-strip .chord-chart{gap:.25em;min-width:0;font-size:1.0625rem}.chart-strip .chart-line:not(.current){opacity:.6}.chart-sheet{padding:calc(var(--top-bar-height) + 1rem) 1rem 2rem;position:absolute;inset:0;overflow:auto}.chart-sheet .chord-chart{width:max-content;min-width:0;margin:0 auto;font-size:1.125rem}.dialog.paste-chart{width:min(40rem,100%)}.paste-chart-header{align-items:center;display:flex}.paste-chart-header h2{flex:1}.paste-chart-header .icon-button{margin:-.75rem -.75rem -.75rem 0}.paste-chart-text{border:1px solid var(--line);background:var(--bg);min-height:16rem;font-family:var(--mono);white-space:pre;resize:vertical;border-radius:.75rem;padding:.75rem;font-size:.875rem;line-height:1.4}.paste-chart-text:focus{border-color:var(--accent);outline:none}.paste-chart-error{color:var(--bad);font-size:.875rem}.dialog.chart-dialog{gap:0;width:min(48rem,100%);padding:0;overflow:hidden}.dialog.import-dialog{gap:0;width:min(60rem,100%);padding:0;animation:.2s ease-out rise-in;overflow:hidden}.import-header{border-bottom:1px solid var(--line);align-items:center;padding:1rem 1rem 1rem 1.75rem;display:flex}.import-header h2{flex:1}.import-body{flex-direction:column;flex:1;gap:1.25rem;min-height:0;padding:1.5rem 1.75rem;display:flex;overflow-y:auto}.import-footer{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem;padding:1rem 1.75rem;display:flex}.import-footer .import-count{color:var(--muted);flex:1;font-size:.875rem}.import-footer .import-actions{gap:.5rem;margin-left:auto;display:flex}.picked-song{border:1px solid var(--line);background:var(--bg);border-radius:1rem;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.picked-song.skipped{color:var(--muted);background:0 0;border-style:dashed;flex-flow:wrap;justify-content:space-between;align-items:center;padding:.5rem .5rem .5rem 1.25rem}.picked-song.skipped strong{color:var(--text);font-weight:600}.picked-header{align-items:flex-start;gap:.75rem;display:flex}.picked-text{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.picked-name{width:100%;color:var(--text);font:inherit;font-size:1.25rem;font-weight:var(--title-weight);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:.5rem;margin-left:-.5rem;padding:.25rem .5rem}@media (hover:hover){.picked-name:hover{border-color:var(--line)}}.picked-name:focus{border-color:var(--accent);background:var(--surface);outline:none}.picked-meta{color:var(--muted);font-size:.8125rem}.picked-fit{align-self:flex-start;min-height:0;padding:0;font-size:.8125rem}.picked-moved .text-button,.picked-capo .text-button{min-height:0;font-size:inherit;padding:0}.preview-scroll{border:1px solid var(--line);background:var(--surface);border-radius:.75rem;overflow-x:auto}.import-preview{min-width:100%;width:calc(var(--beats) * 3rem);height:clamp(8rem, var(--rows) * .625rem, 20rem);display:block}.import-preview path{vector-effect:non-scaling-stroke}.import-preview .octave-lines{stroke:var(--line);stroke-dasharray:.25rem}.import-preview .beat-lines{stroke:var(--line)}.import-preview .bar-lines{stroke:var(--faint)}.import-preview .right{fill:var(--note-right)}.import-preview .left{fill:var(--note-left)}.import-preview .off{fill:var(--faint)}@keyframes rise-in{0%{opacity:0;transform:translateY(1rem)}}.import-notices{flex-direction:column;gap:.75rem;display:flex}.import-notice{border:1px solid var(--line);color:var(--muted);border-radius:.75rem;align-items:flex-start;gap:.75rem;padding:.75rem .75rem .75rem 1rem;display:flex}.import-notice>.icon{flex:none;margin-top:calc(.5lh - .625em)}.import-notice .icon-button{flex:none;margin:-.25rem 0}.import-notice.failed{border-color:var(--bad-line);background:var(--bad-soft);color:var(--bad-light)}.import-notice.failed strong,.import-notice.failed .file-name{color:inherit}.notice-text{flex-direction:column;flex:1;gap:.375rem;min-width:0;display:flex}.notice-text strong{color:var(--text);font-weight:600}.notice-files{flex-direction:column;gap:.25rem;font-size:.875em;display:flex}.notice-files.columns{grid-template-columns:repeat(auto-fill,minmax(18em,1fr));gap:.25rem 1.5rem;display:grid}.notice-files.columns li{text-overflow:ellipsis;white-space:nowrap;color:var(--text);overflow:hidden}.notice-files.columns .file-name{color:var(--muted);margin-left:.25em}.notice-files .file-name{font-family:var(--mono);color:var(--text);font-size:.9em}.library{flex-direction:column;height:100dvh;display:flex}.library-main{flex:1;grid-template-columns:minmax(0,1fr) 24rem;gap:1.5rem;min-height:0;padding:1.25rem 1.5rem;display:grid}@media (width<=60rem){.library-main{grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;padding-bottom:3rem;overflow-y:auto}}.songs{flex-direction:column;gap:.75rem;min-height:0;display:flex;container-type:inline-size}.songs-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.search{border:1px solid var(--line);background:var(--surface);width:min(22rem,100%);min-height:2.75rem;color:var(--muted);cursor:text;border-radius:.75rem;align-items:center;gap:.5rem;padding:0 .75rem;display:flex}.search:focus-within{outline:2px solid var(--accent);outline-offset:-1px}.search:focus-within kbd{visibility:hidden}@media (hover:none){.search kbd{display:none}}.search input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.9375rem}.search input::placeholder{color:var(--faint)}.songs-count{color:var(--muted);font-size:.875rem}.listening{border:1px solid var(--line);color:var(--muted);border-radius:.75rem;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.75rem 1rem;display:flex}.listening strong{color:var(--text);font-weight:600}.listening .bar{background:var(--surface-2);border-radius:999px;flex:1;min-width:6rem;height:.375rem;overflow:hidden}.listening .fill{width:var(--progress);border-radius:inherit;background:var(--accent);height:100%;display:block}.listening-percent{min-width:4ch;font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;font-size:.875rem}.songs-empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:1rem;padding:3rem 1rem}.drop-zone{flex-direction:column;justify-content:center;align-items:center;gap:1rem;transition:border-color .15s,background-color .15s,color .15s;display:flex}.drop-zone-text{justify-content:center;align-items:center;gap:.5rem;display:flex}.dragging .drop-zone,.dragging .song-table-scroll{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.song-table-scroll{border:2px solid #0000;border-radius:.75rem;flex:1;min-height:0;transition:border-color .15s,background-color .15s;overflow-y:auto}@media (width<=60rem){.song-table-scroll{overflow:visible}}.song-table-scroll .songs-empty{margin-top:1rem}.song-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:.9375rem}.song-table th{z-index:1;border-bottom:1px solid var(--line);background:var(--bg);text-align:left;padding:0;font-weight:500;position:sticky;top:0}.song-table td{vertical-align:middle;border-bottom:1px solid var(--surface-2);white-space:nowrap;text-overflow:ellipsis;height:2.5rem;padding:0 .75rem;overflow:hidden}.song-table .column-difficulty,.song-table .column-best{width:8.5rem}.song-table .column-played{width:8rem;color:var(--muted)}.song-table .column-length{text-align:right;font-variant-numeric:tabular-nums;width:5rem;color:var(--muted)}@container (width<=46rem){.song-table .column-played{display:none}}@container (width<=34rem){.song-table .column-difficulty{display:none}}.column-sort{width:100%;min-height:2.5rem;color:var(--muted);background:0 0;border:none;align-items:center;gap:.25rem;padding:0 .75rem;font-size:.8125rem;font-weight:500;display:inline-flex}.column-length .column-sort{justify-content:flex-end}.column-sort .icon{width:1em;height:1em}.column-sort.sorted{color:var(--text)}@media (hover:hover){.column-sort:hover{color:var(--text)}}.song-row{cursor:pointer}@media (hover:hover){.song-row:hover td{background:var(--surface)}}.song-row.selected td{background:var(--surface-2)}.song-row.selected td:first-child{box-shadow:inset .1875rem 0 0 var(--accent)}.song-row .song-name{width:100%;color:inherit;font:inherit;text-align:left;text-overflow:ellipsis;cursor:inherit;background:0 0;border:none;padding:0;display:block;overflow:hidden}.song-row .song-name:focus-visible{outline:none}.song-row:has(.song-name:focus-visible) td:first-child{box-shadow:inset .1875rem 0 0 var(--accent)}.song-row.selected .song-name{font-weight:600}.song-beyond{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;display:block;overflow:hidden}.song-fit{text-align:left;min-height:0;padding:0;font-size:.8125rem}.never{color:var(--faint)}.difficulty{font-size:.8125rem;font-weight:500}.difficulty.difficulty-0{color:color-mix(in oklch, var(--swatch-green) 75%, var(--text))}.difficulty.difficulty-1{color:color-mix(in oklch, var(--swatch-teal) 75%, var(--text))}.difficulty.difficulty-2{color:color-mix(in oklch, var(--swatch-amber) 75%, var(--text))}.difficulty.difficulty-3{color:color-mix(in oklch, var(--swatch-orange) 75%, var(--text))}.difficulty.difficulty-4{color:color-mix(in oklch, var(--swatch-red) 75%, var(--text))}.best{align-items:center;gap:.5rem;display:flex}.best .bar{background:var(--surface-2);border-radius:999px;flex:1;max-width:4rem;height:.25rem;overflow:hidden}.selected .best .bar{background:var(--line)}.best .fill{width:var(--progress);border-radius:inherit;background:var(--accent);height:100%;display:block}.best-percent{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.8125rem}.song-details{border:1px solid var(--line);background:var(--surface);border-radius:1rem;flex-direction:column;gap:1.25rem;min-height:0;padding:1.25rem;display:flex;overflow-y:auto}@media (width<=60rem){.song-details{order:-1;overflow:visible}}.song-details .eyebrow{font-size:.6875rem}.details-name{font-size:1.25rem;font-weight:var(--title-weight);line-height:1.2}.details-name .rename{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0}.details-name .rename .icon{vertical-align:-.05em;width:.8em;height:.8em;color:var(--faint);opacity:0;margin-left:.4em}.details-name .rename:focus-visible .icon{opacity:1}@media (hover:hover){.details-name .rename:hover .icon{opacity:1}}@media (hover:none){.details-name .rename .icon{opacity:1}}.name-input{outline:2px solid var(--accent);outline-offset:-1px;background:var(--surface);width:100%;color:var(--text);box-sizing:content-box;border:none;border-radius:.5rem;margin:-.25rem -.5rem;padding:.25rem .5rem;font-family:inherit}.preview{flex-direction:column;gap:.5rem;display:flex}.roll-preview{background:var(--bg);fill:none;stroke-width:3px;stroke-linecap:butt;cursor:pointer;border-radius:.75rem;width:100%;height:8rem;display:block}.roll-preview *{vector-effect:non-scaling-stroke}.roll-preview .left{stroke:var(--note-left)}.roll-preview .right{stroke:var(--note-right)}.roll-preview .roll-playhead{stroke:var(--text);stroke-width:1.5px}.preview-controls{align-items:center;gap:.5rem;display:flex}.preview-seek{min-width:0;accent-color:var(--accent);flex:1}.preview-time{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:.75rem}.facts{border-block:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(4.5rem,1fr));gap:.75rem;padding:.875rem 0;display:grid}.facts div{flex-direction:column-reverse;gap:.125rem;display:flex}.facts dt{color:var(--muted);font-size:.75rem}.facts dd{white-space:nowrap;font-weight:600}.facts dd.difficulty{font-size:inherit;font-weight:600}.details-actions{flex-wrap:wrap;gap:.5rem;display:flex}.details-actions .primary{flex:1}.details-progress{flex-direction:column;gap:.625rem;display:flex}.bests{flex-direction:column;margin-bottom:.75rem;font-size:.875rem;display:flex}.bests li{border-bottom:1px solid var(--line);justify-content:space-between;gap:1rem;padding:.5rem 0;display:flex}.bests-hands{color:var(--muted)}.bests-score{font-variant-numeric:tabular-nums;align-items:baseline;gap:.5rem;font-weight:600;display:flex}.bests-speed{color:var(--muted);font-size:.75rem;font-weight:400}.fix-it-button{place-self:flex-start start;margin-top:.75rem}.passages-worked{gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.passages-worked li{align-items:baseline;gap:.5rem;display:flex}.passage-state{color:var(--muted);font-size:.875em}.trouble-bars{grid-template-columns:repeat(auto-fill,minmax(.625rem,1fr));gap:.1875rem;display:grid}.trouble-bar{background:color-mix(in oklab, var(--bad) calc(var(--level) * 100%), var(--surface-2));border:none;border-radius:.1875rem;height:1.25rem;padding:0}@media (hover:hover){.trouble-bar:hover{outline:2px solid var(--accent);outline-offset:0}}.details-footer{justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;display:flex}.details-footer .confirm{flex-wrap:wrap;align-items:center;gap:.25rem;margin-left:auto;display:flex}.details-footer .confirm-question{color:var(--bad-light);margin-right:.5rem;font-size:.9375rem}.details-meta{color:var(--muted);font-size:.8125rem}.practised{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.75rem;font-size:.875rem;display:flex}.practised strong{color:var(--text);font-weight:600}.backup-reminder{flex-wrap:wrap;align-items:center}.backup-reminder .notice-text{min-width:16em}.backup-reminder .button-row{gap:.5rem}.piano-roll,.keyboard{--key-white:oklch(94% .003 85);--key-black:oklch(23% .003 70);--key-gap:var(--bg);--held-on-white:oklch(43.4% .004 70);--held-on-black:oklch(85.1% .003 75);--key-label:oklch(60.5% .004 70);--key-bed:oklch(20% .002 70);--key-felt:oklch(52% .15 22);--key-shadow:oklch(0% 0 0/.55);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;display:block}[data-theme=light] .piano-roll,[data-theme=light] .keyboard{--key-white:oklch(97.8% .012 90);--key-gap:oklch(79% .026 85);--key-label:oklch(50% .024 80);--key-bed:oklch(30% .02 70);--key-felt:oklch(48% .14 25);--key-shadow:oklch(25% .018 70/.45)}.keyboard{--answer-right:var(--swatch-green);--answer-wrong:var(--bad)}.score{--notation:oklch(86% .003 75);--score-cursor:oklch(81% .144 79/.18);--score-loop:var(--accent-soft);--score-pedal:var(--muted);--score-held:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}[data-theme=light] .score{--notation:var(--text);--score-cursor:oklch(74% .125 72/.28)}.score-sheet{color:var(--notation);will-change:transform;flex:none;padding-inline:1.5rem}.score-sheet svg{display:block}.score-sheet [stroke]:not([stroke=none]){stroke:currentColor}.score-sheet [fill]:not([fill=none]){fill:currentColor}.score-sheet .lit.right{color:var(--note-right)}.score-sheet .lit.left{color:var(--note-left)}.score-sheet:where(.colored-notes) .letter-0{color:var(--letter-0)}.score-sheet:where(.colored-notes) .letter-1{color:var(--letter-1)}.score-sheet:where(.colored-notes) .letter-2{color:var(--letter-2)}.score-sheet:where(.colored-notes) .letter-3{color:var(--letter-3)}.score-sheet:where(.colored-notes) .letter-4{color:var(--letter-4)}.score-sheet:where(.colored-notes) .letter-5{color:var(--letter-5)}.score-sheet:where(.colored-notes) .letter-6{color:var(--letter-6)}.score-sheet .score-label{font-family:var(--font);text-anchor:middle;dominant-baseline:central;fill:var(--bg);stroke:none;font-weight:600}.score-sheet:where(.colored-notes) .score-label,.score-sheet .lit .score-label{fill:var(--accent-ink)}.score-sheet .score-label.hollow{fill:currentColor;stroke:var(--bg);stroke-width:.3em;paint-order:stroke}.score-sheet .score-held .score-label{fill:var(--bg)}.score-sheet .score-fingering{font-family:var(--font);text-anchor:middle;dominant-baseline:central;fill:currentColor;stroke:none;font-weight:600}.score-sheet .score-dynamic{fill:currentColor;stroke:none;font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:700}.score-sheet .score-hairpin{fill:none;stroke:currentColor}.score-sheet .score-chord{fill:currentColor;stroke:none;font-family:Georgia,Times New Roman,serif}.score-sheet .right{--hand:var(--note-right)}.score-sheet .left{--hand:var(--note-left)}.score-sheet .awaited{animation:.6s ease-in-out infinite alternate score-awaited}@media (prefers-reduced-motion:reduce){.score-sheet .awaited{color:var(--hand);animation:none}}.score-sheet.notes-clickable .right .pointed{color:var(--note-left)}.score-sheet.notes-clickable .left .pointed{color:var(--note-right)}.score-sheet[data-hands=right] .left,.score-sheet[data-hands=left] .right{opacity:.35}.score-sheet .score-held{color:var(--score-held);stroke-width:1.4px}@keyframes score-awaited{0%{color:var(--notation)}to{color:var(--hand)}}.score-cursor{fill:var(--score-cursor);stroke:none}.score-loop{fill:var(--score-loop);stroke:none}.score-ahead{fill:var(--bg);stroke:none}.score-pedal{fill:none;stroke:var(--score-pedal);stroke-linejoin:round}.score-rows{padding:calc(var(--top-bar-height,0rem) + 4.5rem) 1.5rem 1.5rem;place-content:center;justify-items:start;display:none;position:absolute;inset:0}.in-rows .score-rows{display:grid}.in-rows .score-sheet:not(.score-rows){visibility:hidden}.sheet-hero{--hero-ink:var(--text);--hero-staff-line:var(--muted);--hero-bar-line:var(--muted);--hero-cursor:oklch(81% .144 79/.18);--hero-loop:var(--accent-soft);--hero-held:var(--muted);--hero-label:var(--accent-ink);--hero-halo:var(--bg);cursor:pointer;width:100%;height:100%;font-size:1.25rem;display:block;position:absolute;inset:0}[data-theme=light] .sheet-hero{--hero-cursor:oklch(74% .125 72/.28)}.practice{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:clip}.practice-top-bar{z-index:5;background:var(--bg);transition:transform .2s ease-out,opacity .2s ease-out;position:absolute;inset:0 0 auto}.practice-top-bar.top-bar{flex-wrap:nowrap}.practice-top-bar>:not(.practice-song-name,.practice-title,.spacer){flex-shrink:0}@media (width<=48rem){.practice-top-bar.top-bar{gap:.5rem;padding-inline:.75rem}.practice-top-bar .back-link-name{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}.practice-top-bar.tucked:not(:focus-within,:has([aria-expanded=true])){opacity:0;transform:translateY(-100%)}@media (hover:hover){.practice-top-bar.tucked:hover{opacity:1;transform:none}}.practice-title{flex-direction:column;min-width:0;line-height:1.2;display:flex}.practice-lesson{white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:.75rem;overflow:hidden}.practice-song-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:1.125rem;font-weight:600;overflow:hidden}.slider-row{flex:1;align-items:center;display:flex}.slider-row .slider{flex:1;min-width:6rem}.slider-value{min-width:4ch;color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:none;margin-left:.5rem;padding:0;font-size:.8125rem}@media (hover:hover){button.slider-value:hover{color:var(--text)}}.practice-stage{--over-roll:calc(70% - var(--top-bar-height) - 2rem);flex:1;min-height:0;position:relative}.piano-roll{--octave-line:var(--surface-2);--bar-line:var(--surface-2);--split-line:var(--text);--pedal:var(--muted);--pedal-held:var(--text);--roll-note-label:var(--accent-ink);--roll-dynamic:var(--text);--on-time:var(--text);--off-time:var(--bad);position:absolute;inset:0}.piano-roll.over-note,.piano-roll.over-key{cursor:pointer}.piano-roll.over-key.picks-split{cursor:col-resize}.transport{border-top:1px solid var(--surface-2);background:var(--surface);flex-direction:column;gap:.5rem;padding:.5rem .75rem .625rem;display:flex;position:relative}.transport.floating{z-index:5;transition:transform .2s ease-out,opacity .2s ease-out;position:absolute;inset:auto 0 0}.transport.tucked:not(:has(:focus-visible,[aria-expanded=true])){opacity:0;transform:translateY(100%)}.transport-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.transport-controls .divider{background:var(--line);flex:none;width:1px;height:1.75rem;margin:0 .25rem}.transport-toggles{align-items:center;gap:.5rem;margin-left:auto;display:flex}.play-button{background:var(--text);width:3rem;height:3rem;color:var(--bg);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.play-button:hover{background:color-mix(in oklch, var(--text) 85%, var(--bg))}}.transport-time{white-space:nowrap;flex-direction:column;align-items:flex-end;margin-right:.5rem;line-height:1.25;display:flex}.transport-clock{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.75rem}.transport-clock strong{color:var(--text);font-size:1rem;font-weight:700}.transport-duration{margin-left:.375em}.transport-measure{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.8125rem;font-weight:600}.slider{--thumb:.875rem;--rail:.25rem;--fill:var(--accent);height:var(--control);appearance:none;background:0 0;margin:0}.slider::-webkit-slider-runnable-track{height:var(--rail);border-radius:var(--rail);background:linear-gradient(to right, var(--fill) calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--progress)), var(--line) 0)}.slider::-webkit-slider-thumb{appearance:none;width:var(--thumb);height:var(--thumb);margin-top:calc((var(--rail) - var(--thumb)) / 2);background:var(--fill);border:none;border-radius:50%}.slider::-moz-range-track{height:var(--rail);border-radius:var(--rail);background:var(--line)}.slider::-moz-range-progress{height:var(--rail);border-radius:var(--rail);background:var(--fill)}.slider::-moz-range-thumb{width:var(--thumb);height:var(--thumb);background:var(--fill);border:none;border-radius:50%}.slider:focus-visible{outline:none}.slider:focus-visible::-webkit-slider-thumb{outline:2px solid var(--text);outline-offset:2px}.slider:focus-visible::-moz-range-thumb{outline:2px solid var(--text);outline-offset:2px}.seek{--thumb:.75rem;--played:color-mix(in oklch, var(--line) 75%, var(--surface-2));border:1px solid var(--line);background:color-mix(in oklch, var(--surface-2) 60%, var(--surface));border-radius:.5rem;height:2.5rem;position:relative}.seek-bar{appearance:none;border-radius:inherit;cursor:pointer;background:0 0;width:100%;height:100%;margin:0;display:block}.seek-bar::-webkit-slider-runnable-track{border-radius:inherit;background:linear-gradient(to right, var(--played) calc(var(--thumb) / 2 + (100% - var(--thumb)) * var(--progress)), transparent 0);height:100%}.seek-bar::-webkit-slider-thumb{appearance:none;width:var(--thumb);background:0 0;border:none;height:100%}.seek-bar::-moz-range-track{background:0 0;height:100%}.seek-bar::-moz-range-progress{border-radius:inherit;background:var(--played);height:100%}.seek-bar::-moz-range-thumb{width:var(--thumb);background:0 0;border:none;height:100%}.seek-bar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.seek-track{inset:0 calc(var(--thumb) / 2);pointer-events:none;position:absolute}.bar-number{inset-block:0;left:calc(var(--at) * 100%);color:var(--faint);font-family:var(--mono);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;align-items:center;font-size:.8125rem;line-height:1;display:flex;position:absolute;translate:-50%}.bar-number:before,.bar-number:after{content:"";background:var(--faint);opacity:.4;width:1px;height:.5rem}.bar-line{inset-block:0;left:calc(var(--at) * 100%);background:var(--accent-soft);width:1px;position:absolute;translate:-50%}.loop-section{inset-block:0;left:calc(var(--from) * 100%);width:calc((var(--to) - var(--from)) * 100%);background:var(--accent-soft);box-shadow:inset 0 .125rem var(--accent), inset 0 -.125rem var(--accent);position:absolute}.playhead{top:-.25rem;bottom:0;left:calc(var(--at) * 100%);background:var(--text);width:.125rem;position:absolute;translate:-50%}.playhead:before{content:"";border:.3125rem solid #0000;border-top:.4375rem solid var(--text);border-bottom:none;position:absolute;top:0;left:50%;translate:-50%}.loop-handle{top:50%;left:calc(var(--at) * 100%);background:var(--accent-text);pointer-events:auto;touch-action:none;cursor:ew-resize;border-radius:.1875rem;width:.375rem;height:1.75rem;position:absolute;transform:translate(-50%,-50%)}.loop-handle:before{content:"";position:absolute;inset:-.25rem -.375rem}@media (pointer:coarse){.loop-handle:before{inset:-.5rem -.875rem}}.loop-handle:focus-visible{outline:2px solid var(--text);outline-offset:2px}.tooltip.loop-drag-tip{bottom:calc(100% + .25rem);left:calc(var(--at) * 100%);font-family:var(--mono);font-variant-numeric:tabular-nums;position:absolute;translate:-50%}.wait-hint{border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;pointer-events:none;border-radius:999px;padding:.5rem 1rem;font-size:1.0625rem;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.wait-hint strong{font-family:var(--mono);color:var(--text);font-weight:600}.wait-hint-keys{vertical-align:.0625em;gap:.25rem;margin-left:.5rem;display:inline-flex}.read-through{z-index:4;top:calc(var(--top-bar-height) + 1rem);max-height:var(--over-roll);border:1px solid var(--line);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:.75rem;padding:.375rem .5rem .375rem 1rem;font-size:.9375rem;display:flex;position:absolute;left:50%;overflow-y:auto;transform:translate(-50%)}.read-through-left{min-width:2.5em;color:var(--text);font-variant-numeric:tabular-nums}.start-overlay{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.start-band{border-block:1px solid var(--line);background:color-mix(in oklch, var(--bg) 75%, transparent);-webkit-backdrop-filter:blur(.375rem);backdrop-filter:blur(.375rem);width:100%;box-shadow:0 .75rem 2.5rem var(--shadow);place-items:center;padding-block:1.25rem;display:grid}.start-button{border:1px solid color-mix(in oklch, var(--accent) 45%, transparent);background:color-mix(in oklch, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);width:5.5rem;height:5.5rem;color:var(--accent-text);pointer-events:auto;border-radius:50%;place-items:center;transition:background .15s,color .15s,scale .15s;display:grid}.start-button .icon{width:2.25rem;height:2.25rem}@media (hover:hover){.start-button:hover{background:var(--accent);color:var(--accent-ink);scale:1.05}}.start-button:active{scale:.97}.countdown{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.countdown span{border:1px solid var(--line);background:var(--surface);width:2em;height:2em;box-shadow:0 .5rem 2rem var(--shadow);color:var(--text);font-family:var(--mono);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:4rem;font-weight:600;animation:.3s ease-out countdown-beat;display:grid}@keyframes countdown-beat{0%{opacity:.4;transform:scale(1.25)}}.wait-toggle{min-height:var(--control);border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:.75rem;justify-content:center;align-items:center;gap:.5em;padding:0 .875rem;font-size:.875rem;font-weight:500;display:inline-flex}@media (hover:hover){.wait-toggle:hover:not(:disabled){color:var(--text)}}.wait-toggle .icon{width:1.125em;height:1.125em}.wait-toggle.selected{border-color:var(--accent-text);background:var(--accent-soft);color:var(--accent-text)}.wait-toggle.icon-only{width:var(--control);padding:0}.wait-toggle:disabled{opacity:.45;cursor:not-allowed}.hand-dot{background:var(--note-right);border-radius:50%;width:.5em;height:.5em}.hand-dot.left{background:var(--note-left)}.view-menu{position:relative}.view-menu.open:before{content:"";z-index:10;border:1px solid var(--line);background:var(--surface);border-bottom:none;border-radius:1rem 1rem 0 0;position:absolute;inset:-.5rem -.5rem 0}.view-tabs{z-index:11;align-items:center;gap:.25rem;display:flex;position:relative}.view-options-button,.toggle-options-button{width:var(--control);height:var(--control)}.view-options-button .icon,.toggle-options-button .icon{transition:transform .15s}.view-options-button[aria-expanded=true] .icon,.toggle-options-button[aria-expanded=true] .icon{transform:rotate(180deg)}.view-panel{z-index:10;border:1px solid var(--line);background:var(--surface);box-shadow:0 1rem 2rem var(--shadow);border-top:none;border-radius:0 0 1rem 1rem;flex-direction:column;gap:.25rem;padding:.5rem .5rem .75rem;display:flex;position:absolute;top:100%;left:-.5rem;right:-.5rem}.view-panel:before{content:"";border-top:1px solid var(--line);margin:0 -.5rem .25rem}.view-choice{display:none}@media (width<=36rem){.view-tabs>.segmented{display:none}.view-menu{position:static}.view-menu.open:before{display:none}.view-panel{border-top:1px solid var(--line);border-radius:1rem;left:.75rem;right:.75rem}.view-panel:before{display:none}.view-panel .view-option.view-choice{display:flex}}.view-option{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:2.5rem;padding:0 .5rem;font-size:.9375rem;display:flex}.view-option-name{flex-direction:column;display:flex}.view-option-views{color:var(--muted);font-size:.75rem}.hand-chips{gap:.5rem;display:flex}.hand-chip{min-height:var(--control);border:1px solid var(--line);background:var(--bg);border-radius:999px;align-items:center;gap:.5rem;padding:0 .75rem 0 .375rem;font-size:.8125rem;font-weight:600;display:flex}@media (hover:hover){.hand-chip:hover{background:var(--surface-2)}}.hand-chip[aria-pressed=true]{border-color:var(--text)}.swatch{background:var(--swatch);border-radius:50%;width:1.5rem;height:1.5rem}.swatches{flex-wrap:wrap;justify-content:flex-end;gap:.375rem;padding:0 .5rem .25rem;display:flex}.swatch-button{background:var(--swatch);border:none;border-radius:50%;width:1.5rem;height:1.5rem;padding:0}.swatch-button[aria-checked=true]{box-shadow:0 0 0 .125rem var(--surface), 0 0 0 .25rem var(--text)}.toggle-menu{align-items:center;gap:.25rem;display:flex;position:relative}.toggle-menu .toggle-options-button{width:2rem;height:var(--control);border:1px solid var(--line)}.toggle-menu .popover{gap:.25rem;width:min(22rem,100vw - 2rem);padding:.5rem;bottom:calc(100% + .5rem);right:0}.toggle-menu .select-button{min-width:5rem}.slider-menu{position:relative}.slider-menu .popover{width:18rem;padding:.25rem .75rem;bottom:calc(100% + .5rem);right:0}.slider-menu-button{min-height:var(--control);border:1px solid var(--line);font-variant-numeric:tabular-nums;background:0 0;border-radius:.75rem;align-items:center;gap:.375rem;padding:0 .625rem;font-size:.875rem;font-weight:500;display:inline-flex}.slider-menu-button .icon{width:1.125em;height:1.125em;color:var(--muted)}.slider-menu-button .icon:last-child{width:1em;height:1em;transition:rotate .15s}.slider-menu-button[aria-expanded=true]{background:var(--surface-2)}@media (hover:hover){.slider-menu-button:hover:not(:disabled){background:var(--surface-2)}}.slider-menu-button:disabled{opacity:.45;cursor:not-allowed}.slider-menu-button[aria-expanded=true] .icon:last-child{rotate:180deg}.slider-menu-value{text-align:right;min-width:4ch}.more-menu{position:relative}.more-menu .more-popover{gap:.75rem;width:min(20rem,100vw - 2rem);bottom:calc(100% + .5rem);right:0}.more-menu .segment{flex:1;justify-content:center}.more-toggles{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.more-toggles .toggle-menu{grid-column:1/-1}.more-toggles .toggle-menu .wait-toggle{flex:1}.more-row{color:var(--muted);align-items:center;gap:.75rem;padding-left:.5rem;font-size:.875rem;display:flex}.song-drawer .drawer-body{gap:.75rem}.song-button.open{background:var(--surface-2);color:var(--text)}.song-option{cursor:pointer;align-items:center;gap:.875rem;min-height:3rem;display:flex}.song-option .select-button{min-width:5rem}.song-option-icon{background:var(--surface-2);width:2.5rem;height:2.5rem;color:var(--text);border-radius:.75rem;flex:none;justify-content:center;align-items:center;display:flex}.song-option-icon .icon{width:1.125em;height:1.125em}.song-option-text{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.song-option-title{font-weight:600}.song-option-detail{color:var(--muted);font-size:.8125rem}.hands-section{border-top:1px solid var(--line);flex-direction:column;gap:.75rem;padding-top:.75rem;display:flex}.swap-button{min-height:var(--control);border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:.75rem;padding:0 .875rem;font-size:.875rem;font-weight:500}.swap-button[aria-expanded=true]{color:var(--text);background:var(--surface-2)}@media (hover:hover){.swap-button:hover{color:var(--text);background:var(--surface-2)}}.hands-head{justify-content:space-between;align-items:center;gap:1rem;min-height:2.25rem;display:flex}.track-row{align-items:center;gap:1rem;display:flex}.track-row.off .track-name{color:var(--muted)}.track-text{flex-direction:column;flex:1;gap:.125rem;min-width:0;display:flex}.track-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.track-detail{color:var(--muted);margin:0;font-size:.8125rem;line-height:1.5}.flip-row,.split-row{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.flip-row{align-items:flex-start}.hands-section>:first-child{border-top:none;padding-top:0}.split-control{align-items:center;gap:.5rem;font-size:.875rem;display:flex}.split-control span{flex:1}.split-key{text-align:center;min-width:3em;font-family:var(--mono)}.step-button{width:var(--control);height:var(--control);border:1px solid var(--line);color:var(--text);background:0 0;border-radius:.625rem;font-size:1.125rem}@media (hover:hover){.step-button:hover{background:var(--surface-2)}}.trouble-spot{top:.1875rem;left:calc(var(--from) * 100%);width:calc((var(--to) - var(--from)) * 100%);background:var(--bad);min-width:.25rem;height:.25rem;opacity:calc(.35 + .65 * var(--level));pointer-events:auto;border:none;border-radius:.25rem;padding:0;position:absolute}.trouble-spot:before{content:"";position:absolute;inset:-.375rem 0 -.125rem}.trouble-spot:focus-visible{opacity:1}@media (hover:hover){.trouble-spot:hover{opacity:1}}.trouble-spot:focus-visible{outline:2px solid var(--text);outline-offset:2px}.pass-summary{z-index:4;top:calc(var(--top-bar-height) + 1rem);max-height:var(--over-roll);border:1px solid var(--line);background:var(--surface);width:min(20rem,100% - 2rem);box-shadow:0 .5rem 1.5rem var(--shadow);border-radius:1rem;flex-direction:column;gap:.375rem;padding:.75rem .75rem 1rem 1.25rem;transition:top .2s ease-out;display:flex;position:absolute;right:1rem;overflow-y:auto}.practice-top-bar.tucked:not(:focus-within,:has([aria-expanded=true]))~.practice-stage .pass-summary{top:1rem}@media (hover:hover){.practice-top-bar.tucked:hover~.practice-stage .pass-summary{top:calc(var(--top-bar-height) + 1rem)}}.pass-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pass-dismiss{border-radius:.5rem;width:2rem;height:2rem}.pass-score{align-items:baseline;gap:.5rem;display:flex}.pass-percent{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:600}.pass-label{color:var(--muted)}.pass-best{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;margin-left:auto;margin-right:.5rem;padding:.125rem .625rem;font-size:.8125rem;font-weight:600}.pass-details,.pass-late,.pass-comparison{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}.pass-comparison{color:var(--faint)}.pass-lesson{flex-direction:column;gap:.5rem;margin-block:.25rem .5rem;display:flex}.pass-lesson-line{color:var(--accent-text);align-items:center;gap:.375rem;margin:0;font-weight:600;display:flex}.pass-lesson-line .icon{block-size:1.125em;inline-size:1.125em}.pass-lesson-actions{flex-wrap:wrap;gap:.5rem;display:flex}.pass-lesson-actions .button{white-space:normal;text-align:start;max-inline-size:100%}.pass-lesson-actions .button .icon{flex-shrink:0;block-size:1em;inline-size:1em}.pass-numbers summary{color:var(--faint);cursor:pointer;font-size:.875rem}.pass-numbers>*+*{margin-top:.375rem}.pass-sped-up{color:var(--accent-text)}.pass-helps,.pass-nothing{color:var(--text);margin:0;font-size:.875rem;line-height:1.5}.pass-helps p,.pass-nothing p{margin:0}.pass-nothing+.button{align-self:flex-start}.pass-cold{color:var(--text);margin:0;font-size:.875rem;line-height:1.5}.pass-hesitated .text-button{min-height:0;font-size:inherit;padding:0}.pass-question{margin:.25rem 0 0;font-weight:600}.pass-gloss{color:var(--muted);font-weight:400}.pass-guesses{flex-wrap:wrap;align-items:center;gap:.375rem;display:flex}.pass-skip{margin-left:auto}.pass-reading{color:var(--muted);align-items:baseline;gap:.5rem;margin:0;font-size:.875rem;display:flex}.pass-reading strong{color:var(--text);font-size:1rem}.pass-reading-change{color:var(--accent-text);font-weight:600}.pass-reading-change.down{color:var(--muted)}.take-manner{border-top:1px solid var(--line);flex-direction:column;gap:.5rem;margin-top:.375rem;padding-top:.625rem;display:flex}.manner-belt{align-items:center;gap:.5rem;display:flex}.manner-size{color:var(--muted);font-size:.875rem}.manner-next,.manner-pedal,.manner-hands{color:var(--muted);margin:0;font-size:.875rem;line-height:1.5}.manner-facts{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));gap:.5rem;margin:0;display:grid}.manner-facts dt{color:var(--faint);font-size:.75rem}.manner-facts dd{font-variant-numeric:tabular-nums;margin:0;font-size:.875rem}.manner-dynamic+.manner-dynamic{margin-left:.5em}.manner-dynamic.off{color:var(--bad)}.manner-strip{width:100%;height:2.5rem}.manner-note{fill:var(--note-right)}.manner-note.left{fill:var(--note-left)}.hold-cue{z-index:4;top:calc(var(--top-bar-height) + 1rem);max-height:var(--over-roll);border:1px solid var(--line);background:var(--surface);width:max-content;max-width:calc(100% - 2rem);color:var(--text);text-align:center;pointer-events:none;border-radius:1rem;padding:.5rem 1rem;font-size:1.0625rem;transition:top .2s ease-out;position:absolute;left:50%;overflow-y:auto;transform:translate(-50%)}.practice-top-bar.tucked:not(:focus-within,:has([aria-expanded=true]))~.practice-stage .hold-cue{top:1rem}@media (hover:hover){.practice-top-bar.tucked:hover~.practice-stage .hold-cue{top:calc(var(--top-bar-height) + 1rem)}}.prompt{flex-direction:column;height:100dvh;display:flex}.prompt-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.prompt-stage{text-align:center;flex-direction:column;flex:1;justify-content:safe center;align-items:center;gap:clamp(.25rem,2vh,1rem);min-height:0;padding:clamp(.25rem,1vh,1rem) 1rem;display:flex;overflow-y:auto}.prompt-staff{width:100%}.prompt-staff svg{width:100%;height:8rem;display:block}.prompt-staff.one-note svg{height:clamp(8rem,24vh,12rem)}.prompt-staff .staff-label{font-family:var(--font);text-anchor:middle;dominant-baseline:central;fill:var(--bg);stroke:none;font-weight:600}.prompt-staff .staff-label.hollow{fill:currentColor;stroke:var(--bg);stroke-width:.3em;paint-order:stroke}.prompt-question{margin:0;font-size:clamp(1.75rem,5vw,3rem);font-weight:600}.prompt-sign{vertical-align:baseline;font-size:.6em;line-height:0;position:relative}sup.prompt-sign{top:-.75em}sub.prompt-sign{top:.1em}.prompt-called{margin:0;font-size:clamp(3rem,min(15vw,15vh),8rem);font-weight:700;line-height:1}.prompt-clock{background:var(--line);border-radius:1rem;width:min(12rem,60%);height:.375rem;overflow:hidden}.prompt-clock span{background:var(--accent);transform-origin:0;height:100%;animation:prompt-clock var(--allowed) linear forwards;display:block}.prompt-clock.stopped span{animation-play-state:paused}@keyframes prompt-clock{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.prompt-goal,.prompt-kept{color:var(--muted);margin:0;font-size:.875rem}@media (height<=25rem){.prompt-goal,.prompt-kept{display:none}}.prompt-time{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:flex}@media (height<=25rem){.prompt-time{display:none}}.prompt-passed{color:var(--ok);margin:0;font-weight:600}.prompt-streak,.prompt-verdict{min-height:1.5em;color:var(--muted);margin:0}.prompt-verdict.right{color:var(--text)}.prompt-verdict.wrong{color:var(--bad)}.prompt-keys{flex:none;height:clamp(4rem,30vh,14rem)}.prompt-play{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.prompt-play-buttons{gap:.5rem;display:flex}.settings-drawer .drawer-body{gap:2.25rem}.settings-drawer .drawer-section{border:none;flex-direction:column;gap:.75rem;margin:0;padding:0;display:flex}.settings-drawer .drawer-section legend{padding:0 0 .75rem}.theme-picker .segment{flex:1;justify-content:center}.drawer-note{color:var(--muted);font-size:.875rem;line-height:1.5}.drawer-note a{color:var(--text)}.backup-notices .notice-files{max-height:12em;overflow-y:auto}.backup-notices .notice-files .file-name{overflow-wrap:anywhere}.tooltip{z-index:40;border:1px solid var(--line);background:var(--surface);max-width:min(20rem,100vw - 1rem);color:var(--text);box-shadow:0 .5rem 1.5rem var(--shadow);pointer-events:none;border-radius:.5rem;align-items:center;gap:.625rem;padding:.375rem .625rem;font-size:.8125rem;font-weight:500;line-height:1.4;animation:.12s ease-out tooltip-in;display:flex;position:fixed}.tooltip.below{--from:-.25rem}.tooltip-keys{flex:none;gap:.25rem;display:flex}@keyframes tooltip-in{0%{opacity:0;transform:translateY(var(--from,.25rem))}}#app.crashed{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:1.5rem;display:flex}#app.crashed .logo{background:var(--brand);width:3rem;height:3rem;color:var(--brand-ink);border-radius:22.5%;display:inline-flex}#app.crashed h1{font-size:1.5rem;font-weight:var(--title-weight)}#app.crashed p{max-width:32em;color:var(--muted);line-height:1.5}#app.crashed .button{margin-top:.5rem}.crashed-error{background:var(--bad-soft);max-width:40em;color:var(--bad-light);font-family:var(--mono);overflow-wrap:anywhere;border-radius:.5rem;padding:.5rem .75rem;font-size:.8125rem}:root{--bg:oklch(15% .002 70);--surface:oklch(19% .002 70);--surface-2:oklch(23% .003 70);--line:oklch(28% .003 70);--text:oklch(94.9% .002 80);--muted:oklch(71.3% .004 70);--faint:oklch(55.4% .004 70);--accent:oklch(81% .144 79);--accent-ink:oklch(15% .002 70);--accent-soft:oklch(81% .144 79/.12);--accent-text:var(--accent);--ok:oklch(78.9% .12 240);--ok-soft:oklch(78.9% .12 240/.14);--ok-glow:oklch(78.9% .12 240/.18);--bad:oklch(73.3% .164 26);--bad-light:oklch(86.7% .071 25);--bad-soft:oklch(73.3% .164 26/.12);--bad-line:oklch(73.3% .164 26/.35);--scrim:oklch(11% .001 70/.62);--shadow:oklch(0% 0 0/.35);--note-right:var(--accent);--note-left:var(--ok);--note-app:var(--faint);--font:"Archivo Variable", system-ui, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, monospace;--title-weight:600;--control:2.25rem}@media (pointer:coarse){:root{--control:2.75rem}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:oklch(95% .02 90);--surface:oklch(97.4% .014 90);--surface-2:oklch(91.8% .024 88);--line:oklch(85.5% .028 86);--text:oklch(25% .018 70);--muted:oklch(46% .024 75);--faint:oklch(50% .024 80);--accent:oklch(74% .125 72);--accent-ink:oklch(25% .018 70);--accent-soft:oklch(74% .125 72/.18);--accent-text:oklch(50% .1 65);--ok:oklch(60% .115 245);--ok-soft:oklch(60% .115 245/.14);--ok-glow:oklch(60% .115 245/.2);--bad:oklch(66% .145 27);--bad-light:oklch(50% .15 27);--bad-soft:oklch(66% .145 27/.1);--bad-line:oklch(66% .145 27/.35);--scrim:oklch(25% .018 70/.35);--shadow:oklch(25% .018 70/.12);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--brand:oklch(74% .125 72);--brand-ink:oklch(25% .018 70);--swatch-red:oklch(72% .16 25);--swatch-orange:oklch(76% .15 55);--swatch-amber:oklch(81% .144 79);--swatch-green:oklch(77% .15 145);--swatch-teal:oklch(77% .11 190);--swatch-blue:oklch(78.9% .12 240);--swatch-violet:oklch(72% .14 300);--swatch-pink:oklch(74% .16 350)}:root[data-theme=light]{--swatch-red:oklch(62% .17 25);--swatch-orange:oklch(68% .15 55);--swatch-amber:oklch(74% .125 72);--swatch-green:oklch(64% .14 145);--swatch-teal:oklch(64% .1 190);--swatch-blue:oklch(60% .115 245);--swatch-violet:oklch(60% .14 300);--swatch-pink:oklch(62% .16 350)}[data-left-hand=red]{--note-left:var(--swatch-red)}[data-right-hand=red]{--note-right:var(--swatch-red)}[data-left-hand=orange]{--note-left:var(--swatch-orange)}[data-right-hand=orange]{--note-right:var(--swatch-orange)}[data-left-hand=amber]{--note-left:var(--swatch-amber)}[data-right-hand=amber]{--note-right:var(--swatch-amber)}[data-left-hand=green]{--note-left:var(--swatch-green)}[data-right-hand=green]{--note-right:var(--swatch-green)}[data-left-hand=teal]{--note-left:var(--swatch-teal)}[data-right-hand=teal]{--note-right:var(--swatch-teal)}[data-left-hand=blue]{--note-left:var(--swatch-blue)}[data-right-hand=blue]{--note-right:var(--swatch-blue)}[data-left-hand=violet]{--note-left:var(--swatch-violet)}[data-right-hand=violet]{--note-right:var(--swatch-violet)}[data-left-hand=pink]{--note-left:var(--swatch-pink)}[data-right-hand=pink]{--note-right:var(--swatch-pink)}:root{--letter-0:oklch(72% .15 25);--letter-1:oklch(76% .14 60);--letter-2:oklch(84% .14 98);--letter-3:oklch(77% .15 145);--letter-4:oklch(76% .11 195);--letter-5:oklch(72% .13 250);--letter-6:oklch(72% .14 305)}:root[data-theme=light]{--letter-0:oklch(64% .17 25);--letter-1:oklch(70% .15 60);--letter-2:oklch(76% .15 95);--letter-3:oklch(68% .15 145);--letter-4:oklch(68% .11 195);--letter-5:oklch(64% .13 250);--letter-6:oklch(64% .14 305)}*,:before,:after{box-sizing:border-box}*{touch-action:manipulation}html,body{background:var(--bg)}body{min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.4}#app{min-height:100vh}#app.loading{justify-content:center;align-items:center;display:flex}.splash{background:var(--brand);width:4rem;height:4rem;color:var(--brand-ink);border-radius:22.5%;animation:.4s .3s both fade-in,1.6s ease-in-out .7s infinite alternate breathe;display:inline-flex}@media (prefers-reduced-motion:reduce){.splash{animation:.4s .3s both fade-in}}@keyframes breathe{to{opacity:.55;transform:scale(.94)}}.logo-mark{fill:currentColor;width:100%;height:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.icon{flex:none;width:1.25em;height:1.25em}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:0;font-size:.75rem;font-weight:600}kbd{font-family:var(--mono);border:1px solid var(--line);color:var(--muted);border-radius:.375rem;padding:.0625rem .375rem;font-size:.75rem}.spacer{flex:1}.button{border:1px solid var(--line);min-height:2.75rem;color:var(--text);white-space:nowrap;background:0 0;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:0 1rem;font-size:.9375rem;font-weight:500;display:inline-flex}.button .icon{width:1.125em;height:1.125em}@media (hover:hover){.button:hover:not(:disabled){background:var(--surface-2)}}.button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}@media (hover:hover){.button.primary:hover:not(:disabled){background:color-mix(in oklch, var(--accent) 88%, white)}}.button.primary kbd{color:var(--accent-ink);background:oklch(15% .002 70/.15);border:none}.button.danger{background:var(--bad);color:var(--accent-ink);border-color:#0000;font-weight:600}@media (hover:hover){.button.danger:hover:not(:disabled){background:color-mix(in oklch, var(--bad) 88%, white)}}.button.quiet{color:var(--muted);border-color:#0000}@media (hover:hover){.button.quiet:hover:not(:disabled){color:var(--text)}}.button.large{border-radius:.875rem;min-height:3rem;padding:0 1.375rem;font-size:1rem}.button:disabled{opacity:.45;cursor:not-allowed}.icon-button{width:2.75rem;height:2.75rem;color:var(--muted);background:0 0;border:none;border-radius:.75rem;flex:none;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.icon-button:hover{background:var(--surface-2);color:var(--text)}}.segmented{border:1px solid var(--line);border-radius:.75rem;padding:.1875rem;display:flex}.segment{min-height:2.25rem;color:var(--muted);background:0 0;border:none;border-radius:.5625rem;align-items:center;gap:.4em;padding:0 .75rem;font-size:.8125rem;font-weight:500;display:flex}@media (hover:hover){.segment:hover:not(:disabled){color:var(--text)}}.segment.selected{background:var(--surface-2);color:var(--text)}.segment:disabled{opacity:.45;cursor:not-allowed}.button-row{flex-wrap:wrap;gap:.75rem;display:flex}.button-row.end{justify-content:flex-end}.top-bar{flex-wrap:wrap;align-items:center;gap:1rem;padding:.875rem 1.5rem;display:flex}.top-bar.bordered{border-bottom:1px solid var(--surface-2)}.top-bar .divider{background:var(--line);width:1px;height:1.75rem}.home-bar{padding-block:0}.home-bar .home-tabs{align-self:stretch}@media (width<=30rem){.home-bar{gap:.5rem;padding-inline:1rem}}.home-tabs{gap:.25rem;margin-inline-start:1rem;display:flex}@media (width<=30rem){.home-tabs{margin-inline-start:0}}.home-tab{min-height:4.5rem;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-1px;padding:0 .875rem;font-size:1rem;font-weight:500;display:inline-flex}.home-tab:focus-visible{outline-offset:-2px}@media (hover:hover){.home-tab:hover{color:var(--text)}}.home-tab.selected{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.home-tab.selected .icon{color:var(--accent-text)}@media (width<=30rem){.home-tab{padding-inline:.625rem}}@media (width<=22rem){.home-tab .icon{display:none}}.brand{align-items:center;gap:.75rem;display:flex}.brand .logo{background:var(--brand);width:2.25rem;height:2.25rem;color:var(--brand-ink);border-radius:22.5%;justify-content:center;align-items:center;display:inline-flex}.brand-name{font-size:1.125rem;font-weight:var(--title-weight)}@media (width<=30rem){.brand-name{display:none}}.back-link{min-height:2.75rem;color:var(--muted);background:0 0;border:none;border-radius:.75rem;align-items:center;gap:.375rem;padding:0 .875rem 0 .5rem;font-size:.9375rem;font-weight:500;display:inline-flex}@media (hover:hover){.back-link:hover{background:var(--surface-2);color:var(--text)}}.status-dot{background:var(--faint);border-radius:50%;flex:none;width:.5rem;height:.5rem}.status-dot.connected{background:var(--ok);box-shadow:0 0 0 .25rem var(--ok-glow)}.status-dot.error{background:var(--bad)}.scrim{background:var(--scrim);animation:.15s ease-out fade-in;position:absolute;inset:0}.dialog-layer{z-index:20;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.dialog{border:1px solid var(--line);background:var(--surface);width:min(32rem,100%);max-height:100%;box-shadow:0 1.5rem 3rem var(--shadow);border-radius:1.5rem;flex-direction:column;gap:1rem;padding:1.75rem;display:flex;position:relative;overflow-y:auto}.dialog h2{font-size:1.375rem;font-weight:var(--title-weight)}.dialog-text{color:var(--muted);line-height:1.5}.switch{border:1px solid var(--line);cursor:pointer;border-radius:.875rem;align-items:center;gap:1rem;padding:.875rem 1rem;display:flex}@media (hover:hover){.switch:hover{background:var(--surface-2)}}.switch input,.toggle{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;flex:none;width:2.5rem;height:1.5rem;margin:0;transition:background .15s;position:relative}.switch input:after,.toggle:after{content:"";background:var(--text);border-radius:50%;width:1.125rem;height:1.125rem;transition:transform .15s;position:absolute;top:.1875rem;left:.1875rem}.switch input:checked,.toggle:checked{background:var(--accent)}.switch input:checked:after,.toggle:checked:after{background:var(--accent-ink);transform:translate(1rem)}.switch-text{flex-direction:column;flex:1;gap:.25rem;display:flex}.switch-label{font-weight:500}.switch-detail{color:var(--muted);font-size:.875rem;line-height:1.5}.select{display:inline-flex}.select-button{min-width:8.5rem;min-height:var(--control);border:1px solid var(--line);background:var(--bg);color:var(--text);white-space:nowrap;cursor:pointer;border-radius:.625rem;justify-content:space-between;align-items:center;gap:.5rem;padding:0 .625rem 0 .75rem;font-size:.875rem;display:inline-flex}.select-button[aria-expanded=true]{background:var(--surface-2)}@media (hover:hover){.select-button:hover{background:var(--surface-2)}}.select-button .icon{width:1em;height:1em;color:var(--muted);flex:none;transition:transform .15s}.select-button[aria-expanded=true] .icon{transform:rotate(180deg)}.select-list{z-index:30;border:1px solid var(--line);background:var(--surface);box-shadow:0 1rem 2rem var(--shadow);border-radius:.75rem;flex-direction:column;gap:.125rem;padding:.25rem;animation:.12s ease-out fade-in;display:flex;position:fixed;overflow-y:auto}.select-option{min-height:var(--control);white-space:nowrap;cursor:pointer;border-radius:.5rem;flex:none;justify-content:space-between;align-items:center;gap:1rem;padding:0 .625rem;font-size:.875rem;display:flex}.select-option.active{background:var(--surface-2)}.select-option[aria-selected=true]{color:var(--accent-text);font-weight:600}.select-option .icon{flex:none;width:1em;height:1em}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}::-webkit-scrollbar{width:.75rem;height:.75rem}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border:.1875rem solid var(--bg);background:var(--line);border-radius:999px}.drill-mark{border:1px solid var(--line);color:var(--muted);border-radius:1em;padding:.125em .5em;font-size:.75rem;font-weight:600}.drill-mark.fluent{color:var(--accent-text);border-color:currentColor}.drill-mark.polished{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.drill-mark.waiting{border-style:dashed}
