@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.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:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(./atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.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{--star:var(--felt);--star-off:var(--line)}@media (prefers-color-scheme:dark){:root{--star:#e37c8a}}.stars{flex:none;gap:2px;display:inline-flex}.star{fill:none;width:22px;height:22px;stroke:var(--star-off);stroke-width:1.6px;stroke-linejoin:round}.star.on{fill:var(--star);stroke:var(--star)}.star-count{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:4px;font-size:.9rem;font-weight:600;display:inline-flex}.star-count .star{width:18px;height:18px}.path-progress{flex-direction:column;grid-column:-2;align-items:flex-end;gap:6px;display:flex}.chapter-meta{flex-wrap:wrap;align-items:center;gap:4px 18px;display:flex}.chapter-stars{align-items:center;gap:6px;font-weight:600;display:inline-flex}.chapter-stars .star{width:20px;height:20px}.medal{width:40px;height:40px;color:var(--ink-soft);border:2px dashed var(--line);background:0 0;border-radius:50%;flex:none;place-items:center;font-size:1rem;font-weight:700;line-height:1;display:grid}.medal.big{width:64px;height:64px;font-size:1.5rem}.medal.long{font-size:.85rem}.medal.big.long{font-size:1.15rem}.medal.earned{color:var(--ivory);background:var(--felt);box-shadow:inset 0 0 0 3px var(--felt), inset 0 0 0 5px color-mix(in srgb, var(--ivory) 55%, transparent);border:none}.badges-summary{flex-wrap:wrap;align-items:baseline;gap:8px 28px;margin-bottom:6px;display:flex}.badges-summary p{margin:0;font-size:1.15rem}.star-total{align-items:center;gap:6px;display:inline-flex}.star-total .star{width:22px;height:22px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin:20px 0 0;padding:0;list-style:none;display:grid}.badge-card{border:1px dashed var(--line);border-radius:var(--radius-l);background:0 0;align-items:flex-start;gap:16px;padding:18px 20px;display:flex}.badge-card.earned{background:var(--sheet);border:1px solid #0000;border-top:5px solid var(--felt)}.badge-text h2{margin:2px 0 4px;font-size:1.15rem}.badge-card:not(.earned) h2{color:var(--ink-soft)}.badge-text p{margin:0;font-size:.98rem}.badge-date{color:var(--felt);font-weight:600;margin-top:6px!important}@media (prefers-color-scheme:dark){.badge-date{color:var(--star)}}.badge-progress{color:var(--ink-soft);align-items:center;gap:10px;display:flex;margin-top:8px!important;font-size:.9rem!important}.badge-bar{background:var(--line);border-radius:3px;width:110px;height:6px;overflow:hidden}.badge-bar span{background:var(--ink-soft);height:100%;display:block}.celebrate{z-index:50;top:max(16px, env(safe-area-inset-top));background:var(--sheet);width:min(520px,100vw - 32px);color:var(--ink);border-radius:var(--radius-l);border-top:6px solid var(--felt);padding:16px 20px 14px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #14183238}.celebrate-title{color:var(--ink-soft);margin:0 0 6px;font-weight:700}.celebrate-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.celebrate-list li{align-items:center;gap:12px;font-size:1.05rem;display:flex}.celebrate-list li:nth-child(n+5){display:none}.celebrate-actions{justify-content:flex-end;align-items:center;gap:16px;margin-top:12px;display:flex}.celebrate-actions a{min-height:44px;color:var(--select);align-items:center;font-weight:600;display:inline-flex}@media (prefers-reduced-motion:no-preference){.celebrate{animation:.42s cubic-bezier(.2,.9,.3,1.25) both celebrate-in}.celebrate .medal.earned{animation:.9s ease-out .2s both medal-shine}.celebrate .stars.pop .star.on{animation:.42s cubic-bezier(.2,.9,.3,1.5) both star-pop}}@keyframes celebrate-in{0%{opacity:0;transform:translate(-50%,-18px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes medal-shine{0%{transform:scale(.6)rotate(-20deg)}60%{transform:scale(1.12)rotate(4deg)}to{transform:scale(1)rotate(0)}}@keyframes star-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}.star{transform-origin:50%;transform-box:fill-box}@font-face{font-family:Bravura;src:url(./Bravura-CEAu5fi8.woff2)format("woff2");font-display:block}:root{--paper:#eef2f5;--sheet:#fbfcfd;--ink:#1d2340;--ink-soft:#545b7a;--line:#c9d1dc;--felt:#7a1f2b;--ivory:#fbfaf6;--ebony:#23232b;--right:#2e7d5b;--right-wash:#dcefe5;--amber:#b86e0b;--amber-wash:#f8ead2;--select:#3f57b8;--select-wash:#dfe5fa;--radius-s:8px;--radius-l:18px;--font:"Atkinson Hyperlegible Next Variable", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#141729;--sheet:#1c2036;--ink:#e8eaf4;--ink-soft:#a4a9c3;--line:#3a4060;--felt:#8e2634;--ivory:#ecebe4;--ebony:#0d0d12;--right:#5fc394;--right-wash:#1f3a31;--amber:#f0a73d;--amber-wash:#3e3020;--select:#8ea2f2;--select-wash:#2a3260;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{touch-action:manipulation;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-tap-highlight-color:transparent;margin:0;font-size:19px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .5em;font-weight:700;line-height:1.15}h1{font-size:2.1rem}h2{font-size:1.45rem}h3{font-size:1.15rem}p{max-width:62ch;margin:0 0 .8em}a{color:inherit}button,.button{font:inherit;border-radius:var(--radius-s);border:2px solid var(--ink);background:var(--sheet);min-width:48px;min-height:48px;color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.5em;padding:.55em 1.2em;font-weight:600;text-decoration:none;display:inline-flex}button.primary,.button.primary{background:var(--ink);color:var(--sheet)}button:disabled{opacity:.45;cursor:default}button:focus-visible,.button:focus-visible,a:focus-visible{outline:3px solid var(--select);outline-offset:2px}button.quiet{color:var(--ink-soft);background:0 0;border-color:#0000}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.keyboard{overscroll-behavior-x:contain;width:100%;overflow-x:auto}.keyboard-felt{background:var(--felt);height:10px;min-width:var(--kb-min,0);border-radius:4px 4px 0 0}.keyboard svg{width:100%;min-width:var(--kb-min,0);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;max-height:40vh;display:block}.key{cursor:pointer}.key text{font-family:var(--font);pointer-events:none;font-size:26px;font-weight:600}.key-white rect{fill:var(--ivory);stroke:var(--line);stroke-width:2px}.key-white text{fill:#4a4f66}.key-black rect{fill:var(--ebony)}.key-black text{fill:#e9e9ef;font-size:20px}.key[data-mark=selected] rect{fill:var(--select)}.key-white[data-mark=selected] rect{fill:#c7d1f5}.key[data-mark=given] rect{fill:#9aa6cf}.key-white[data-mark=given] rect{fill:#d9def0}.key[data-mark=correct] rect{fill:#3f9e74}.key-white[data-mark=correct] rect{fill:#bfe3cf}.key[data-mark=wrong] rect{fill:#c9801a}.key-white[data-mark=wrong] rect{fill:#f4d39d}.key[data-mark=hint] rect{stroke:var(--right);stroke-width:6px}.key:active rect{filter:brightness(.93)}.staff{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-height:34vh;display:block}.staff .glyph{fill:var(--ink);font-family:Bravura}.staff-line{stroke:var(--ink);stroke-width:1.6px}.staff-hidden{fill:var(--select);font-size:44px;font-weight:700}.staff-correct .glyph{fill:var(--right)}.staff-wrong .glyph{fill:var(--amber)}.staff-ghost .glyph{fill:var(--select);opacity:.8}.staff-ghost .staff-line{stroke:var(--select)}.staff-hit{fill:#0000;cursor:pointer}.circle{touch-action:manipulation;width:100%;max-width:420px;max-height:50vh;margin:0 auto;display:block}.circle-major{fill:var(--sheet);stroke:var(--line);stroke-width:1.5px}.circle-minor{fill:var(--paper);stroke:var(--line);stroke-width:1.5px}.circle-hi .circle-major,.circle-hi .circle-minor{fill:var(--select-wash);stroke:var(--select)}.circle-tap{cursor:pointer}.circle-label{fill:var(--ink);font-family:var(--font);pointer-events:none;font-size:24px;font-weight:700}.circle-label.small{font-size:16px}.circle-label.minor{fill:var(--ink-soft);font-size:17px;font-weight:500}.circle-label.q{fill:var(--select);font-size:30px}.fretboard{width:100%;max-height:28vh;display:block}.fb-wood{fill:#5a3a2a}.fb-inlay{fill:#e9dfcf;opacity:.7}.fb-fret{stroke:#c9c2b5;stroke-width:3px}.fb-nut{stroke:#efe8da;stroke-width:8px}.fb-string{stroke:#d9d4cb}.fb-muted{fill:var(--ink-soft);font-size:24px;font-family:var(--font)}.fb-fretno{fill:var(--ink-soft);font-size:16px;font-family:var(--font)}.fb-mark circle{fill:var(--select);stroke:var(--sheet);stroke-width:2px}.fb-root circle{fill:var(--felt)}.fb-mark text{fill:#fff;font-family:var(--font);font-size:13px;font-weight:700}.exercise{flex-direction:column;gap:14px;display:flex}.exercise-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.exercise-prompt{margin:0;font-size:1.6rem}.exercise-visual{flex-direction:column;align-items:stretch;gap:10px;display:flex}.exercise-visual .staff{background:var(--sheet);border-radius:var(--radius-l);padding:4px 0}.choice-step{color:var(--ink-soft);margin:0 0 6px;font-weight:600}.choice-options{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.choice-options button{min-height:60px;font-size:1.1rem}.exercise-actions{justify-content:flex-end;display:flex}.feedback{border-radius:var(--radius-l);border-left:6px solid;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.is-right .feedback{background:var(--right-wash);border-color:var(--right)}.is-wrong .feedback{background:var(--amber-wash);border-color:var(--amber)}.feedback-title{font-size:1.25rem;display:block}.feedback-explain,.feedback-answer{margin:4px 0 0}.rhythm{background:var(--sheet);border-radius:var(--radius-l);width:100%;max-height:26vh;display:block}.rhythm .glyph{fill:var(--ink);font-family:Bravura}.rhythm .glyph.hl{fill:var(--select)}.rhythm .stem{stroke:var(--ink);stroke-width:2.6px}.rhythm .beam{fill:var(--ink)}.tapper{flex-direction:column;align-items:stretch;gap:12px;display:flex}.tapper .button.big,.tapper button.big{align-self:flex-start;min-height:64px;padding:0 32px;font-size:1.2rem}.tap-pad{border-radius:var(--radius-l);border:3px dashed var(--ink-soft);background:var(--sheet);touch-action:none;-webkit-user-select:none;user-select:none;min-height:34vh;font-size:1.4rem}.tap-pad:not(:disabled):active{background:var(--select-wash);border-color:var(--select)}.staff-show .rhythm{background:var(--paper);max-height:120px}.staff.staff-input{max-height:52vh}.sing{flex-direction:column;gap:12px;display:flex}.sing-live{background:var(--sheet);border-radius:var(--radius-l);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;gap:4px 18px;padding:18px 22px;display:grid}.sing-note{text-align:center;grid-row:span 2;min-width:4ch;font-size:3rem;font-weight:700}.sing-hint{color:var(--ink-soft)}.sing-meter{background:var(--line);border-radius:5px;height:10px;overflow:hidden}.sing-meter span{background:var(--right);height:100%;transition:width 60ms linear;display:block}.sing-time{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.sing-time span{background:var(--ink-soft);transform-origin:0;width:100%;height:100%;animation:linear forwards sing-countdown;display:block}@keyframes sing-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.trace{background:var(--paper);border-radius:var(--radius-s);width:100%;max-height:30vh;display:block}.trace-grid{stroke:var(--line);stroke-width:1px}.trace-label{font:600 12px var(--font);fill:var(--ink-soft)}.trace-target{fill:var(--right-wash);stroke:var(--right);stroke-width:1px}.trace-voice{fill:none;stroke:var(--select);stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round}.hold-bar{background:var(--line);border-radius:6px;height:12px;overflow:hidden}.hold-bar span{background:var(--right);height:100%;transition:width 80ms linear;display:block}.feedback-trace{margin-top:8px}.feedback{flex-wrap:wrap}.range-result{margin:4px 0;font-size:1.15rem;font-weight:600}.warmup-syllables{color:var(--select);margin:0;font-size:1.2rem;font-weight:600}select{font:inherit;border-radius:var(--radius-s);border:2px solid var(--ink);background:var(--sheet);min-height:48px;color:var(--ink);padding:0 12px}.hold-bar{position:relative}.hold-best{background:var(--ink-soft);width:3px;margin-left:-1px;position:absolute;top:0;bottom:0}.info-btn{border:2px solid var(--ink-soft);width:44px;min-width:44px;min-height:44px;color:var(--ink-soft);background:0 0;border-radius:50%;padding:0;font-family:Georgia,serif;font-size:1.25rem;font-style:italic;font-weight:700}.exercise-head{align-items:center}.exercise-head .exercise-prompt{flex:1}.info-backdrop{z-index:20;background:#14172973;justify-content:center;align-items:flex-end;padding:16px;display:flex;position:fixed;inset:0}.info-sheet{background:var(--paper);color:var(--ink);border-radius:var(--radius-l) var(--radius-l) var(--radius-s) var(--radius-s);border-top:8px solid var(--felt);width:min(900px,100%);max-height:88vh;padding:20px 22px 16px;overflow:auto;box-shadow:0 -8px 40px #14183240}.info-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.info-head h2{margin:0}.info-page{background:var(--sheet);border-radius:var(--radius-l);flex-direction:column;gap:12px;margin:12px 0;padding:18px 20px;display:flex}.info-foot{margin:8px 0 0;font-size:.9rem}@media (prefers-reduced-motion:no-preference){.info-sheet{animation:.18s ease-out info-up}}@keyframes info-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.info-page .staff,.info-page .rhythm{max-height:18vh}.info-page .keyboard svg{max-height:26vh}.strip{background:var(--sheet);border-radius:var(--radius-l);width:100%;max-height:44vh;display:block}.strip-ink{fill:var(--ink)}.strip-label{fill:var(--ink);font-family:var(--font);font-size:28px;font-weight:700}.strip-hidden{fill:var(--select)}.strip-hl{fill:var(--select-wash)}.strip-bracket{fill:none;stroke:var(--ink);stroke-width:1.8px}.strip-small{fill:var(--ink);font-family:var(--font);font-size:17px}.strip-italic{font-style:italic}.strip-bold{font-weight:700}.strip-glyph{fill:var(--ink);font-family:Bravura;font-size:40px}.strip-glyph.strip-dyn{font-size:44px}.staff-show .strip{background:var(--paper)}.staff-chord{fill:var(--ink);font-family:var(--font);font-size:26px;font-weight:700}.chord-lyrics{background:var(--sheet);border-radius:var(--radius-l);padding:14px 18px;font-family:ui-monospace,Menlo,monospace;font-size:1.15rem;line-height:1.5;overflow-x:auto}.strip-label{paint-order:stroke;stroke:var(--sheet);stroke-width:10px;stroke-linejoin:round}.staff-show .strip-label{stroke:var(--paper)}.rhythm-triplet{fill:var(--ink);font-family:var(--font);font-size:22px;font-style:italic;font-weight:700}.page{max-width:1100px;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 48px max(20px, env(safe-area-inset-left));margin:0 auto}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.brand{letter-spacing:-.02em;margin:0;font-size:1.7rem}.brand:before{content:"";vertical-align:-4px;background:var(--felt);border-radius:3px;width:14px;height:30px;margin-right:10px;display:inline-block}.topnav{flex-wrap:wrap;gap:4px;display:flex}.topnav a{border-radius:var(--radius-s);min-height:44px;color:var(--ink-soft);align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.topnav a:active{background:var(--sheet)}.back{min-height:44px;color:var(--ink-soft);align-items:center;margin-bottom:6px;font-weight:600;text-decoration:none;display:inline-flex}.kicker{color:var(--ink-soft);margin:0 0 4px;font-weight:600}.muted{color:var(--ink-soft)}.banner{background:var(--select-wash);border-radius:var(--radius-s);max-width:none;padding:12px 16px}.banner-amber{background:var(--amber-wash)}.button.big{min-height:64px;padding:0 28px;font-size:1.2rem}.today{background:var(--sheet);border-radius:var(--radius-l);border-top:8px solid var(--felt);grid-template-columns:1.6fr 1fr;align-items:end;gap:24px;margin-bottom:32px;padding:28px;display:grid}.today h2{font-size:1.7rem}@media (width<=700px){.today{grid-template-columns:1fr}}.week-label{margin-bottom:8px;font-weight:600}.week-dots{gap:8px;margin:0;padding:0;list-style:none;display:flex}.week-dots li{color:var(--ink-soft);flex-direction:column;align-items:center;gap:4px;font-size:.8rem;display:flex}.week-dots .dot{border:2px solid var(--line);border-radius:50%;width:22px;height:22px}.week-dots .done .dot{background:var(--right);border-color:var(--right)}.path{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.path-row{border-radius:var(--radius-s);min-height:72px;color:inherit;grid-template-columns:52px 1fr auto auto;align-items:center;gap:14px;padding:10px 14px;text-decoration:none;display:grid}a.path-row:active{background:var(--sheet)}.path-no{border:2px solid var(--ink);border-radius:50%;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.started .path-no{background:var(--ink);color:var(--sheet)}.soon{opacity:.55}.soon .path-no{border-style:dashed}.path-text{flex-direction:column;display:flex}.path-title{font-size:1.1rem;font-weight:700}.path-summary{color:var(--ink-soft);font-size:.95rem}.path-bar{background:var(--line);border-radius:4px;width:120px;height:8px;overflow:hidden}.path-bar span{background:var(--right);height:100%;display:block}@media (width<=600px){.path-bar{width:60px}.path-row{grid-template-columns:44px 1fr auto}.path-row .tag{display:none}}.tag{background:var(--select-wash);color:var(--select);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.85rem;font-weight:600}.tag-soon{color:var(--ink-soft);border:1px dashed var(--line);background:0 0}.tag-done{background:var(--right-wash);color:var(--right)}.lessons{flex-direction:column;gap:6px;margin:20px 0 28px;padding:0;list-style:none;display:flex}.lesson-row{background:var(--sheet);border-radius:var(--radius-s);min-height:60px;color:inherit;align-items:center;gap:14px;padding:8px 14px;text-decoration:none;display:flex}.lesson-no{color:var(--ink-soft);width:24px;font-weight:700}.lesson-title{flex:1;font-weight:600}.next .lesson-row{outline:2px solid var(--select)}.lesson-page{background:var(--sheet);border-radius:var(--radius-l);flex-direction:column;gap:14px;min-height:300px;margin:12px 0 18px;padding:24px 28px;display:flex}.lesson-page p{font-size:1.1rem}.lesson-nav{justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-dots{gap:8px;margin:0;padding:0;list-style:none;display:flex}.lesson-dots li{background:var(--line);border-radius:50%;width:10px;height:10px}.lesson-dots .seen{background:var(--ink-soft)}.lesson-dots .current{background:var(--ink);transform:scale(1.3)}.note-box{border-left:4px solid var(--select);background:var(--select-wash);border-radius:0 var(--radius-s) var(--radius-s) 0;padding:6px 14px}.try-out{color:var(--ink-soft);margin-bottom:0;font-weight:600}.live-answer{min-height:2.2rem;margin:0;font-size:1.6rem;font-weight:700}table.facts{border-collapse:collapse;font-size:1.05rem}table.facts th,table.facts td{text-align:left;border-bottom:1px solid var(--line);padding:6px 14px 6px 0}.practice-top{align-items:center;gap:14px;margin-bottom:12px;display:flex}.practice-progress{background:var(--line);border-radius:5px;flex:1;height:10px;overflow:hidden}.practice-progress span{background:var(--ink);height:100%;transition:width .25s;display:block}.practice-count{color:var(--ink-soft);white-space:nowrap;font-weight:600}.done-panel{background:var(--sheet);border-radius:var(--radius-l);border-top:8px solid var(--right);padding:32px}.done-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.settings-group{background:var(--sheet);border-radius:var(--radius-l);margin:0 0 16px;padding:18px 22px}.settings-group h2{font-size:1.2rem}.stepper{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0;display:flex}.stepper-label{flex:1;min-width:200px}.stepper-value{text-align:center;min-width:3ch;font-size:1.2rem;font-weight:700}.toggle,.range,.radios label{align-items:center;gap:12px;min-height:48px;display:flex}.toggle input,.radios input{width:26px;height:26px;accent-color:var(--ink)}.range input{max-width:360px;accent-color:var(--ink);flex:1}.radios{flex-direction:column;display:flex}.reminder-time{align-items:center;gap:12px;min-height:56px;display:flex}.reminder-time input{font:inherit;border:2px solid var(--ink);border-radius:var(--radius-s);background:var(--sheet);min-height:48px;color:var(--ink);padding:0 12px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.confirm{border:2px solid var(--amber);border-radius:var(--radius-s);margin-top:12px;padding:12px 16px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tool-panel{flex-direction:column;gap:12px;display:flex}.cheat{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.cheat section{background:var(--sheet);border-radius:var(--radius-l);padding:16px 20px}.circle-explorer{grid-template-columns:minmax(260px,1fr) 1fr;align-items:center;gap:16px;display:grid}@media (width<=760px){.circle-explorer{grid-template-columns:1fr}}.bars{align-items:flex-end;gap:6px;height:180px;margin:0 0 24px;padding:0;list-style:none;display:flex}.bars li{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.bars .bar{background:var(--ink);border-radius:4px 4px 0 0;width:100%;max-width:34px;min-height:2px}.bar-count,.bar-label{color:var(--ink-soft);font-size:.8rem}.stats-table td:not(:first-child),.stats-table th:not(:first-child){text-align:right}.grip h3{margin:8px 0 4px}.staff-show{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.staff-show .staff{background:var(--paper);border-radius:var(--radius-s);max-height:22vh}.install{background:var(--sheet);border:2px solid var(--select);border-radius:var(--radius-l);margin-bottom:20px;padding:18px 22px}.install h2{font-size:1.3rem}.update-prompt{left:50%;top:max(12px, env(safe-area-inset-top));background:var(--sheet);border-radius:var(--radius-l);z-index:10;align-items:center;gap:10px;padding:10px 14px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #1418322e}.guitar-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.guitar-head h1{margin:0}button.live{background:var(--right);border-color:var(--right);color:#fff}.guitar-toolbar{flex-wrap:wrap;align-items:center;gap:10px 14px;margin:14px 0;display:flex}.guitar-toolbar select{font:inherit;border-radius:var(--radius-s);border:2px solid var(--ink);background:var(--sheet);min-height:48px;color:var(--ink);padding:0 12px}.guitar-toolbar .spacer{flex:1}.check{min-height:44px;color:var(--ink-soft);align-items:center;gap:8px;display:inline-flex}.check input{width:22px;height:22px;accent-color:var(--ink)}.gpanel{background:var(--sheet);border-radius:var(--radius-l);margin-bottom:14px;padding:16px 18px}.gpanel h2{color:var(--ink-soft);font-size:1rem}.gprompt{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.gtarget{color:var(--select);font-size:2.6rem;font-weight:700;line-height:1}.gtarget.ok{color:var(--right);margin:0}.gfeedback{min-height:1.6em;margin:6px 0 0;font-weight:600}.gfeedback.ok{color:var(--right)}.gfeedback.bad{color:var(--amber)}.gdone p{margin:0 0 8px}.gscore-scroll{margin-top:8px;overflow-x:auto}.gscore{display:block}.gscore .glyph{fill:var(--ink);font-family:Bravura}.gscore .staff-line,.gscore .ledger{stroke:var(--ink);stroke-width:1.3px}.gscore .stem{stroke:var(--ink);stroke-width:1.6px}.gscore .clef8{font:600 13px var(--font);fill:var(--ink)}.gscore .tab line{stroke:var(--ink-soft);stroke-width:1px;opacity:.6}.gscore .tablabel{font:700 13px var(--font);fill:var(--ink-soft)}.gscore .band{fill:var(--select-wash)}.gscore .fretbg{fill:var(--sheet)}.gscore .fret{font:700 15px var(--font);fill:var(--ink);text-anchor:middle}.gscore .gnote.cur .glyph,.gscore .fret.cur{fill:var(--select)}.gscore .gnote.cur .stem,.gscore .gnote.cur .ledger{stroke:var(--select)}.gscore .gnote.done .glyph,.gscore .fret.done{fill:var(--right);opacity:.6}.gscore .gnote.done .stem{stroke:var(--right);opacity:.6}.gscore .gnote.done.missed .glyph,.gscore .fret.done.missed{fill:var(--amber)}.gscore .glive .glyph,.gscore .glive-name{opacity:.85}.gscore .glive.neutral .glyph,.gscore .glive.neutral .glive-name{fill:var(--ink-soft)}.gscore .glive.match .glyph,.gscore .glive.match .glive-name{fill:var(--right)}.gscore .glive.wrong .glyph,.gscore .glive.wrong .glive-name{fill:var(--amber)}.gscore .glive .ledger{stroke:var(--ink-soft)}.gscore .glive-name{font:700 13px var(--font)}.guitar-grid{grid-template-columns:1.3fr 1fr;gap:14px;display:grid}@media (width<=720px){.guitar-grid{grid-template-columns:1fr}}.tuner-top{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.tuner-note{min-width:3ch;font-size:2.2rem;font-weight:700}.tuner-cents{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:700}.meter{background:var(--paper);border:1px solid var(--line);border-radius:6px;height:34px;margin-top:12px;position:relative;overflow:hidden}.meter-ok{background:var(--right-wash);width:20%;position:absolute;top:0;bottom:0;left:40%}.meter .needle{background:var(--ink-soft);opacity:.25;border-radius:2px;width:4px;margin-left:-2px;transition:left 80ms linear;position:absolute;top:3px;bottom:3px}.meter .needle.on{opacity:1}.meter .needle.good{background:var(--right)}.meter .needle.off{background:var(--amber)}.meter-scale{color:var(--ink-soft);justify-content:space-between;margin-top:4px;font-size:.8rem;display:flex}.level{background:var(--paper);border:1px solid var(--line);border-radius:4px;height:8px;margin:14px 0 4px;position:relative;overflow:hidden}.level .fill{background:var(--ink-soft);position:absolute;inset:0 auto 0 0}.level .fill.loud{background:var(--right)}.level .gate{background:var(--amber);width:2px;position:absolute;top:-2px;bottom:-2px}.gstats{grid-template-columns:1fr 1fr;gap:12px 18px;margin-bottom:14px;display:grid}.gstats strong{font-size:1.6rem;display:block}.gstats span{color:var(--ink-soft);font-size:.9rem}details.gpanel summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}
