.fretboard[data-v-c3c26386]{background:var(--board-bg,#ffffffd1);border:1px solid var(--stroke);border-radius:20px;padding:14px 12px 10px}.fretboard.scrollable[data-v-c3c26386]{overscroll-behavior-x:contain;overflow-x:auto}.fretboard.vertical[data-v-c3c26386]{padding:10px 6px}.board[data-v-c3c26386]{gap:4px;min-width:max-content;display:grid}.board.vertical[data-v-c3c26386]{gap:2px;width:100%;min-width:0}.fret-label[data-v-c3c26386]{text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;align-self:center;padding-bottom:2px;font-size:.72rem}.board.vertical .fret-label[data-v-c3c26386]{text-align:right;padding:0 4px 0 0;font-size:.62rem}.fret-label.open[data-v-c3c26386]{color:var(--accent-2);font-weight:600}.fret-label.marked[data-v-c3c26386]{color:var(--ink);font-weight:600}.string-label[data-v-c3c26386]{color:var(--muted);justify-content:flex-end;align-items:baseline;gap:5px;padding-right:4px;font-size:.8rem;display:flex}.board.vertical .string-label[data-v-c3c26386]{flex-direction:column-reverse;justify-content:flex-end;align-items:center;gap:0;padding:0 0 3px;font-size:.7rem}.string-label b[data-v-c3c26386]{font-variant-numeric:tabular-nums;opacity:.65;font-size:.72rem}.string-label em[data-v-c3c26386]{color:var(--ink);font-style:normal;font-weight:600}.string-label.focus em[data-v-c3c26386]{color:var(--accent-2)}.string-label.dim[data-v-c3c26386]{opacity:.4}.cell[data-v-c3c26386]{cursor:default;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffff8c;border:1px solid #1e1c241a;border-radius:10px;justify-content:center;align-items:center;min-width:46px;min-height:44px;padding:0;transition:background-color .15s,border-color .15s;display:flex;position:relative}.board.vertical .cell[data-v-c3c26386]{border-radius:8px;min-width:0;min-height:38px}.cell[data-v-c3c26386]:not(:disabled){cursor:pointer}.cell[data-v-c3c26386]:not(:disabled):hover{background:#ffffffe6}.cell[data-v-c3c26386]:not(:disabled):active{transform:scale(.96)}.cell[data-v-c3c26386]:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px;z-index:1}.cell.dim[data-v-c3c26386]{opacity:.35}.string-wire[data-v-c3c26386]{height:var(--gauge);background:linear-gradient(#786e6426,#5a50468c,#786e6426);border-radius:2px;position:absolute;left:0;right:0}.board.vertical .string-wire[data-v-c3c26386]{height:auto;width:var(--gauge);background:linear-gradient(90deg,#786e6426,#5a50468c,#786e6426);inset:0 auto 0 50%;transform:translate(-50%)}.inlay[data-v-c3c26386]{background:#1e1c2424;border-radius:50%;width:9px;height:9px;position:absolute}.marker[data-v-c3c26386]{opacity:0;border-radius:50%;place-items:center;width:24px;height:24px;transition:opacity .15s,transform .15s;display:grid;position:relative}.board.vertical .marker[data-v-c3c26386]{width:22px;height:22px}.state-selected .marker[data-v-c3c26386]{opacity:1;background:radial-gradient(circle at 35% 30%,#fff 0%,#8a7dff 55%,#5b4aff 100%)}.state-correct .marker[data-v-c3c26386]{opacity:1;background:radial-gradient(circle at 35% 30%,#fff 0%,#4bd5b4 55%,#1d8f6c 100%)}.state-correct .marker[data-v-c3c26386]:after{content:"";border-bottom:2.5px solid #fff;border-left:2.5px solid #fff;width:10px;height:6px;transform:rotate(-45deg)translate(1px,-1px)}.state-missed .marker[data-v-c3c26386]{opacity:1;background:0 0;border:2.5px dashed #1d8f6c}.state-wrong .marker[data-v-c3c26386]{opacity:1;background:radial-gradient(circle at 35% 30%,#fff 0%,#ff8f8f 55%,#c62828 100%)}.state-wrong .marker[data-v-c3c26386]:after{content:"";clip-path:polygon(18% 0%,50% 32%,82% 0%,100% 18%,68% 50%,100% 82%,82% 100%,50% 68%,18% 100%,0% 82%,32% 50%,0% 18%);background:#fff;width:11px;height:11px}.state-prompt .marker[data-v-c3c26386]{opacity:1;border:3px solid var(--accent);background:0 0;box-shadow:0 0 0 4px #ff7b7b2e}.state-ghost .marker[data-v-c3c26386]{opacity:.55;background:var(--muted);transform:scale(.5)}@media (prefers-reduced-motion:reduce){.cell[data-v-c3c26386],.marker[data-v-c3c26386]{transition:none}.cell[data-v-c3c26386]:not(:disabled):active{transform:none}}.heatmap[data-v-3e97c1d4]{background:var(--card);box-shadow:var(--shadow);border:1px solid #fff9;border-radius:24px;padding:20px}.heat-head[data-v-3e97c1d4]{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.heat-title[data-v-3e97c1d4]{font-family:var(--display);font-size:1.25rem;font-weight:700}.heat-sub[data-v-3e97c1d4]{color:var(--muted);margin-top:2px;font-size:.82rem}.heat-score[data-v-3e97c1d4]{text-align:right;flex:none}.score-value[data-v-3e97c1d4]{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700;line-height:1;display:block}.score-label[data-v-3e97c1d4]{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:4px;font-size:.7rem;display:block}.heat-scroll[data-v-3e97c1d4]{overflow-x:auto}.grid[data-v-3e97c1d4]{grid-template-columns:18px repeat(13,minmax(18px,1fr));gap:3px;min-width:300px;display:grid}.fret-label[data-v-3e97c1d4],.string-label[data-v-3e97c1d4]{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;font-size:.6rem}.fret-label.marked[data-v-3e97c1d4]{color:var(--ink);font-weight:600}.string-label[data-v-3e97c1d4]{text-align:right;padding-right:3px;font-weight:600}.cell[data-v-3e97c1d4]{aspect-ratio:1;border-radius:3px;min-height:16px}.legend[data-v-3e97c1d4]{color:var(--muted);align-items:center;gap:8px;margin-top:12px;font-size:.7rem;display:flex}.ramp[data-v-3e97c1d4]{background:linear-gradient(90deg, #1e1c240d, var(--accent-3));border-radius:4px;width:60px;height:8px}.spacer[data-v-3e97c1d4]{flex:1}.session-card[data-v-2e8b23a7]{box-shadow:var(--shadow);background:linear-gradient(135deg,#ff7b7b29,#8a7dff29);border:1px solid #ffffffb3;border-radius:24px;gap:18px;padding:24px;display:grid}.session-card.done[data-v-2e8b23a7]{background:linear-gradient(135deg,#4bd5b42e,#8a7dff1f)}.session-eyebrow[data-v-2e8b23a7]{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:8px;font-size:.7rem}.session-card h2[data-v-2e8b23a7]{font-family:var(--display);text-wrap:balance;margin-bottom:8px;font-size:1.7rem}.session-card p[data-v-2e8b23a7]{color:var(--muted);max-width:48ch;line-height:1.5}.legs[data-v-2e8b23a7]{flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding:0;list-style:none;display:flex}.legs li[data-v-2e8b23a7]{color:var(--muted);align-items:center;gap:7px;font-size:.85rem;display:flex}.legs li.done[data-v-2e8b23a7]{color:var(--good-ink)}.legs li.current[data-v-2e8b23a7]{color:var(--ink);font-weight:600}.leg-dot[data-v-2e8b23a7]{opacity:.45;background:currentColor;border-radius:50%;width:7px;height:7px}.legs li.done .leg-dot[data-v-2e8b23a7],.legs li.current .leg-dot[data-v-2e8b23a7]{opacity:1}.leg-tick[data-v-2e8b23a7]{font-size:.75rem}.session-go[data-v-2e8b23a7]{justify-self:start;padding:14px 28px}@media (width>=720px){.session-card[data-v-2e8b23a7]{grid-template-columns:1fr auto;align-items:center}.session-go[data-v-2e8b23a7]{justify-self:end}}.streak[data-v-0d129932]{color:var(--muted);background:#1e1c240d;border-radius:999px;align-items:center;gap:8px;margin-top:16px;padding:7px 14px;font-size:.82rem;display:inline-flex}.streak.live[data-v-0d129932]{color:#96302c;background:#ff7b7b29;font-weight:600}.flame[data-v-0d129932]{opacity:.5;font-size:.7rem}.streak.live .flame[data-v-0d129932]{opacity:1;color:var(--accent)}.rotate-hint[data-v-2180cb5d]{color:var(--muted);background:#5546c717;border:1px solid #5546c729;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-size:.78rem;line-height:1.4;display:flex}.rotate-icon[data-v-2180cb5d]{color:var(--accent-2);flex:none;font-size:1rem}.rotate-dismiss[data-v-2180cb5d]{color:var(--muted);background:0 0;border:none;border-radius:8px;flex:none;min-height:0;margin-left:auto;padding:6px 8px;font-size:.85rem}.rotate-dismiss[data-v-2180cb5d]:hover{background:#1e1c240f;transform:none}.summary[data-v-08394571]{background:var(--card-strong);border:1px solid var(--stroke);border-radius:20px;gap:14px;padding:18px;display:grid}.summary-head[data-v-08394571]{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.summary-verdict[data-v-08394571]{font-family:var(--display);font-size:1.25rem;font-weight:700}.summary-verdict.good[data-v-08394571]{color:var(--good-ink)}.summary-verdict.bad[data-v-08394571]{color:var(--bad-ink)}.summary-delta[data-v-08394571]{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.summary-delta.up[data-v-08394571]{color:var(--good-ink)}.summary-grid[data-v-08394571]{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.summary-grid dt[data-v-08394571]{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:3px;font-size:.68rem}.summary-grid dd[data-v-08394571]{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:600}.summary-levels[data-v-08394571]{font-size:.85rem}.summary-levels.muted[data-v-08394571]{color:var(--muted)}.done-card[data-v-7601088d]{background:var(--card-strong);border:1px solid var(--stroke);box-shadow:var(--shadow);border-radius:24px;gap:16px;padding:26px;display:grid}.done-eyebrow[data-v-7601088d]{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-size:.7rem}.done-card h2[data-v-7601088d]{font-family:var(--display);text-wrap:balance;font-size:1.9rem}.done-score[data-v-7601088d]{align-items:baseline;gap:12px;display:flex}.done-score-value[data-v-7601088d]{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:3rem;font-weight:700;line-height:1}.done-score-meta[data-v-7601088d]{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.78rem}.done-score-meta b[data-v-7601088d]{letter-spacing:0;text-transform:none;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.95rem;display:block}.done-score-meta b.up[data-v-7601088d]{color:var(--good-ink)}.done-grid[data-v-7601088d]{border-top:1px solid var(--stroke);border-bottom:1px solid var(--stroke);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px 0;display:grid}.done-grid dt[data-v-7601088d]{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px;font-size:.68rem}.done-grid dd[data-v-7601088d]{font-variant-numeric:tabular-nums;font-size:1.2rem;font-weight:600}.done-legs[data-v-7601088d]{gap:8px;padding:0;list-style:none;display:grid}.done-legs li[data-v-7601088d]{justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.done-leg-name[data-v-7601088d]{font-weight:500}.done-leg-stat[data-v-7601088d]{color:var(--muted);font-variant-numeric:tabular-nums}.done-levels[data-v-7601088d]{font-size:.88rem}.done-actions[data-v-7601088d]{gap:10px;display:grid}@media (width>=620px){.done-actions[data-v-7601088d]{grid-template-columns:1fr 1fr}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-1:#f4d9ff;--bg-2:#d7f2ff;--bg-3:#fff1d3;--ink:#1e1c24;--muted:#5f5769;--card:#ffffffb8;--card-strong:#ffffffeb;--shadow:0 20px 60px #160f2d26;--accent:#ff7b7b;--accent-2:#5546c7;--accent-3:#4bd5b4;--stroke:#1e1c2414;--good-ink:#146b50;--bad-ink:#b3352f;--display:"Fraunces", ui-serif, Georgia, "Times New Roman", serif;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(150deg, var(--bg-1) 0%, var(--bg-2) 45%, var(--bg-3) 100%);min-height:100vh;color:var(--ink);background-attachment:fixed}#app{min-height:100vh}.app{flex-direction:column;gap:24px;max-width:1100px;margin:0 auto;padding:24px 20px 48px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:14px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent) 0%, #8a7dff 60%, #5ce8cb 100%);border-radius:16px;flex:none;width:44px;height:44px;box-shadow:0 10px 20px #7a5cff4d}.brand-title{font-family:var(--display);font-size:1.4rem;font-weight:700}.brand-sub{color:var(--muted);font-size:.85rem}.chip{background:var(--card-strong);border:1px solid var(--stroke);white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:.85rem}.layout{grid-template-columns:1fr;align-items:start;gap:20px;display:grid}.menu{gap:24px;padding:24px 0 40px;display:grid}.menu-hero{background:var(--card);box-shadow:var(--shadow);border:1px solid #fff9;border-radius:24px;padding:24px}.menu-hero h1{font-family:var(--display);text-wrap:balance;margin:18px 0 10px;font-size:2.1rem}.menu-hero p{color:var(--muted);max-width:52ch;line-height:1.5}.menu-grid{gap:16px;display:grid}.game-card{text-align:left;border:1px solid var(--stroke);background:#ffffffd9;border-radius:20px;padding:18px;transition:transform .2s,box-shadow .2s;box-shadow:0 12px 30px #1910341f}.game-card:hover{transform:translateY(-2px)}.game-card-title{margin-bottom:6px;font-size:1.2rem;font-weight:600}.game-card-sub{color:var(--muted);margin-bottom:10px}.game-card-meta{color:#4c4459;font-size:.85rem}.panel{background:var(--card);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #fff9;border-radius:24px;min-width:0;padding:22px;animation:.5s both floatIn}.stats h1{font-family:var(--display);text-wrap:balance;margin-bottom:10px;font-size:2rem}.lede{color:var(--muted);margin-bottom:18px;line-height:1.5}.round{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:8px;font-size:.8rem}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0;display:grid}.metric{border:1px solid var(--stroke);background:#fffc;border-radius:16px;padding:12px}.metric-label{color:var(--muted);margin-bottom:6px;font-size:.75rem;display:block}.metric-value{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:600}.mastery{background:#ffffffa6;border:1px dashed #1e1c2426;border-radius:18px;margin-bottom:18px;padding:14px}.mastery-header{color:var(--muted);justify-content:space-between;gap:12px;margin-bottom:6px;font-size:.85rem;display:flex}.mastery-status{font-weight:600}.mastery-status.ready{color:var(--good-ink)}.mastery-status.warn{color:var(--bad-ink)}.round-message{color:var(--muted);margin-top:8px;font-size:.85rem}.controls{flex-direction:column;gap:10px;display:flex}button{cursor:pointer;border:none;border-radius:14px;min-height:44px;padding:12px 16px;font-family:inherit;font-size:.95rem;transition:transform .2s,box-shadow .2s,opacity .2s}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px}.primary{color:#33201f;background:linear-gradient(120deg,#ff7b7b 0%,#ffaf7b 100%);font-weight:600;box-shadow:0 12px 30px #ff7b7b59}.ghost{border:1px solid var(--stroke);color:var(--ink);background:#ffffffd9}button:not(:disabled):hover{transform:translateY(-2px)}.game{flex-direction:column;gap:14px;display:flex}.game-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.badge{color:#3a2f9e;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:#5546c724;border-radius:999px;padding:4px 12px;font-size:.75rem}.chunk{color:var(--muted);white-space:nowrap;font-size:.85rem}.prompt{text-wrap:balance;flex-wrap:wrap;align-items:baseline;gap:6px;font-size:1.2rem;font-weight:500;display:flex}.prompt strong{font-family:var(--display);font-size:1.35rem}.hunt-meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:12px;font-size:.85rem;display:flex}.feedback{min-height:1.4em;font-size:.95rem}.feedback .correct{color:var(--good-ink);font-weight:600}.feedback .wrong{color:var(--bad-ink);font-weight:600}.hint{color:var(--muted);font-size:.85rem}.options,.hunt-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.option{background:var(--card-strong);border:1px solid var(--stroke);animation:.35s both rise;animation-delay:calc(var(--i) * 60ms);font-size:1.1rem;font-weight:600}.option.correct{border-color:var(--good-ink);color:var(--good-ink);background:#4bd5b440}.option.wrong{border-color:var(--bad-ink);color:var(--bad-ink);background:#d14c4c26}.option.dim{opacity:.55}.settings-note{max-width:46ch;color:var(--muted);margin:6px 0 0;font-size:.78rem;line-height:1.45}.semitones{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.semitone{background:var(--card-strong);border:1px solid var(--stroke);font-variant-numeric:tabular-nums;min-height:52px;padding:0;font-size:1.05rem;font-weight:600}.semitone.correct{border-color:var(--good-ink);color:var(--good-ink);background:#4bd5b440}.semitone.wrong{border-color:var(--bad-ink);color:var(--bad-ink);background:#d14c4c26}.semitone.dim{opacity:.55}@media (width<=420px){.settings-note{max-width:46ch;color:var(--muted);margin:6px 0 0;font-size:.78rem;line-height:1.45}.semitones{grid-template-columns:repeat(4,minmax(0,1fr))}}@keyframes floatIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}button:not(:disabled):hover,.game-card:hover{transform:none}}@media (width>=900px){.app{padding:40px 32px 64px}.layout{grid-template-columns:1fr 1.15fr}.menu{padding:40px 0 48px}.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats h1{font-size:2.4rem}.controls{flex-flow:wrap}.controls>*{flex:auto}}.topbar-actions{align-items:center;gap:10px;display:flex}.icon-toggle{background:var(--card-strong);border:1px solid var(--stroke);color:var(--muted);white-space:nowrap;border-radius:999px;min-height:0;padding:8px 14px;font-size:.8rem}.icon-toggle[aria-pressed=true]{color:var(--accent-2);border-color:#5546c759;font-weight:600}.settings{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.seg{border:1px solid var(--stroke);background:var(--card-strong);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);background:0 0;border-radius:0;min-height:0;padding:8px 14px;font-size:.8rem}.seg button[aria-pressed=true]{color:#3a2f9e;background:#5546c724;font-weight:600}.seg button:not(:disabled):hover{transform:none}.settings-label{color:var(--muted);font-size:.78rem}.session-pill{color:#96302c;letter-spacing:.08em;background:#ff7b7b2e;border-radius:999px;padding:3px 10px;font-weight:600;display:inline-block}@media (width<=620px){.app{gap:16px;padding:14px 12px 40px}.panel{border-radius:20px;padding:16px 14px}.topbar{flex-wrap:wrap;gap:10px}.brand-sub{display:none}.brand-mark{border-radius:12px;width:36px;height:36px}.topbar-actions{flex:auto;justify-content:flex-end;min-width:0}.chip,.icon-toggle{text-overflow:ellipsis;padding:7px 11px;font-size:.75rem;overflow:hidden}.menu-hero,.session-card{padding:18px 16px}.menu-hero h1{font-size:1.75rem}.stats h1{font-size:1.6rem}.prompt{font-size:1.05rem}.prompt strong{font-size:1.15rem}}
