:root{--bg:#0e0d0c;--rail:#121110;--unit:#181613;--raised:#211e1a;--sunk:#0b0a09;--line:#2e2a25;--line2:#433c35;--faint:#6d665d;--bone:#ece5d6;--sand:#bdb4a5;--dim:#a39a8d;--blood:#c8141a;--blood-hi:#ff4a4f;--blood-press:#dc1d23;--on-blood:#fff6f0;--gold:#d4a845;--gold-hi:#f0cd72;--gold-deep:#3a2f17;--gold-line:#7a6331;--live:#34d27b;--err:#ff4a4f;--head-top:#151311;--head-bot:#0f0e0d;--display:"TB Display","Big Shoulders Display","Arial Narrow",sans-serif;--ui:"TB Inter",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--site-header:0px}@font-face{font-family:TB Inter;src:url(/frets/assets/Inter-var-CqMUiV_X.woff2)format("woff2");font-weight:400 800;font-display:swap}@font-face{font-family:TB Display;src:url(/frets/assets/BigShoulders-var-BlzFmpqT.woff2)format("woff2");font-weight:600 900;font-display:swap}@font-face{font-family:WB Blackletter;src:url(/frets/assets/Maguntia-CI4xza2O.ttf)format("truetype");font-display:block}*{box-sizing:border-box}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:var(--pinned-chrome,0px)}body{background:var(--bg);color:var(--bone);font-family:var(--ui);-webkit-font-smoothing:antialiased;font-feature-settings:"cv05" 1;margin:0;font-size:14px;line-height:1.4}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}.tb-frame{height:100vh;grid-template-rows:auto minmax(0,1fr);min-width:0;height:100dvh;display:grid}.tb-stage{min-width:0;min-height:0;display:flex}.tb-stage:focus{outline:none}.tb-stage>.frets-app{flex:1;min-width:0}.tb-doc{height:auto;min-height:100vh;min-height:100dvh}.frets-app.tb-solo{background:0 0;height:auto;display:block}.frets-app.tb-solo>.main{background:0 0;max-width:760px;margin:0 auto}.tb-skip{z-index:100;background:var(--raised);color:var(--bone);border:1px solid var(--gold-line);border-radius:6px;padding:8px 12px;font-weight:600;text-decoration:none;position:absolute;top:-60px;left:8px}.tb-skip:focus{top:8px}.tb-header{border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--head-top),var(--head-bot));align-items:center;gap:12px;min-width:0;min-height:52px;padding:0 14px;display:flex}.tb-logo{white-space:nowrap;flex:none;align-items:center;gap:8px;margin-right:6px;text-decoration:none;display:flex}.tb-wm{color:var(--bone);font-family:WB Blackletter,serif;font-size:27px;line-height:1}.tb-tape{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;background:var(--blood);color:var(--bg);padding:2px 6px 1px;font-size:13px;font-weight:900;display:inline-block;transform:rotate(-3deg)}.tb-nav{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.tb-navlink{color:var(--sand);white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:7px;padding:6px 10px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.tb-navlink:hover{color:var(--bone);background:var(--raised)}.tb-navlink[aria-current=page]{color:var(--gold-hi);background:var(--gold-deep);border-color:var(--gold-line)}.tb-acct{border-color:var(--line2);color:var(--bone);margin-left:auto}.tb-live{background:var(--live);border-radius:50%;flex:none;width:8px;height:8px}.tb-who{color:var(--dim);text-overflow:ellipsis;max-width:200px;font-weight:500;overflow:hidden}.tb-navhint{color:var(--gold-hi);border:1px solid var(--gold-line);border-radius:999px;padding:0 6px;font-size:11px;font-weight:600;line-height:16px}@media (max-width:820px){.tb-frame{height:auto;display:block}.tb-stage{display:block}.tb-header{flex-wrap:wrap;gap:6px 8px;padding:8px 12px}.tb-logo{margin-right:0}.tb-wm{font-size:23px}.tb-who{display:none}}@media (max-width:400px){.tb-tape{display:none}.tb-navlink{padding:6px 8px}.tb-navhint{display:none}}.frets-app .tb-cta-card{background:var(--unit);border:1px solid var(--line2);border-left:3px solid var(--blood);border-radius:10px;align-items:flex-start;gap:12px;min-width:0;margin:16px 0 4px;padding:16px 44px 16px 18px;display:flex;position:relative}.frets-app .tb-cta-body{min-width:0}.frets-app .tb-cta-kicker{font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--blood-hi);font-size:13px;font-weight:800}.frets-app .tb-cta-title{font-family:var(--display);text-transform:uppercase;color:var(--bone);margin:2px 0 6px;font-size:24px;font-weight:800;line-height:1.05}.frets-app .tb-cta-text{color:var(--sand);max-width:640px;margin:0 0 10px;font-size:13.5px;line-height:1.5}.frets-app .tb-cta-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex}.frets-app .tb-cta-note{color:var(--dim);flex:220px;min-width:0;font-size:12.5px;line-height:1.45}.frets-app .tb-btn{font:inherit;color:var(--bone);background:var(--raised);border:1px solid var(--line2);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;padding:8px 13px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.frets-app .tb-btn:hover{border-color:var(--faint)}.frets-app .tb-btn-primary{background:var(--blood);border-color:var(--blood);color:var(--on-blood);font-weight:700}.frets-app .tb-btn-primary:hover{background:var(--blood-press);border-color:var(--blood-press)}.frets-app .tb-cta-x{width:32px;height:32px;color:var(--dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:8px;right:8px}.frets-app .tb-cta-x:hover{color:var(--bone);border-color:var(--line2)}.frets-app .tb-cta-line{color:var(--dim);margin:12px 0 0;font-size:13px;line-height:1.5}.frets-app .tb-cta-link{color:var(--gold-hi);text-underline-offset:3px;white-space:nowrap;font-weight:600;text-decoration:underline}.frets-app .tb-cta-link:hover{color:var(--bone)}@media (max-width:560px){.frets-app .tb-cta-card{padding:14px 40px 14px 14px}.frets-app .tb-cta-title{font-size:21px}.frets-app .tb-btn{white-space:normal}}.frets-app .tb-import-card{margin-bottom:14px}.frets-app .tb-import-file{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.frets-app .tb-filebtn{cursor:pointer}.frets-app .tb-import-file:focus-within .tb-filebtn{outline:2px solid var(--gold-hi);outline-offset:2px}.frets-app .tb-import-status{flex:240px;min-width:0;font-size:13px;line-height:1.5}.frets-app .tb-ok,.frets-app .ct.tb-ok{color:var(--live)}.frets-app .tb-bad{color:var(--err)}.frets-app{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--stage-room:#0b0a09;--canvas:#0e0d0c;--side-bg:#121110;--panel:#181613;--panel-hi:#1b1916;--raised:#211e1a;--pressed:#2a2620;--well:#0b0a09;--board-hi:#2a2520;--board-lo:#1c1915;--board-line:#4a423a;--hairline:#ece5d60f;--line:#2e2a25;--border-strong:#433c35;--edge-hi:inset 0 1px 0 #ece5d609;--glow-core:#f8e6b8;--tube-hi:#f0cd72;--orange:#d4a845;--orange-300:#e3bb5a;--orange-600:#b48d34;--orange-700:#f0cd72;--amber-hi:#f6dc98;--ember:#7a6331;--orange-soft:#d4a8451f;--orange-ring:#d4a84538;--orange-d:var(--orange-600);--orange-l:var(--orange-300);--gstr:#8f877c;--gfret:#7d7468;--ginlay:#554d44;--gfnum:#c4bbad;--gcld:#b8ad9c;--on-lit:#1a1408;--on-dark-dot:#171512;--on-emitter:#fff;--emitter-ring:#fff;--on-unlit-dot:#fff;--role-approach:#5fa8c9;--role-avoid:#c77b73;--role-blue:#c2a3e0;--role-tension:#e8896f;--harm:#4d8fd1;--harm-dim:#557a9c;--harm-label:#8fb3d6;--harm-ink:#0b1622;--suggest:#ffe08a;--card-lo:#161411;--hover-lo:#1e1b17;--tooltip-bg:#1a1815;--sel-chevron:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"6\" viewBox=\"0 0 10 6\"><path d=\"M1 1l4 4 4-4\" fill=\"none\" stroke=\"%23A39A8D\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>");--scroll-thumb:#433c35;--scroll-thumb-strong:#5a5148;--flame:#f0cd72;--flame-cold:#6d665d;--flame-cold-2:#433c35;--tab-ink:#ece5d6;--logo-ink:#ece5d6;--on-orange:#1a1408;--primary:#c8141a;--primary-hi:#dc1d23;--primary-press:#a51015;--on-primary:#fff6f0;--root-fill:#c8141a;--sel-bg:#3a2f17;--sel-ink:#f0cd72;--sel-line:#7a6331;--sel-bar:#d4a845;--display:"TB Display","Big Shoulders Display","Arial Narrow",sans-serif;--accent-rgb:212,168,69;--tube-rgb:227,187,90;--sheen-rgb:236,229,214;--sheen-cool-rgb:236,229,214;--sheen-warm-rgb:245,238,225;--shadow-rgb:0,0,0;--good-rgb:52,210,123;--harm-rgb:77,143,209;--suggest-rgb:255,224,138;--deep-rgb:24,22,19;--deeper-rgb:18,17,16;--pop-rgb:26,24,21;--pop-2-rgb:16,15,14;--pop-ink:#ece5d6;--pop-accent:#f0cd72;--scorch-rgb:58,13,14;--amber-a-rgb:240,205,114;--amber-b-rgb:212,168,69;--amber-c-rgb:240,205,114;--amber-d-rgb:212,168,69;--amber-e-rgb:240,205,114;--nav-hover-rgb:236,229,214;--glow-led:0 0 6px #f0cd72cc;--glow-sm:0 0 6px 1px #f0cd7273;--glow-md:0 0 12px #d4a84524;--glow-lg:0 0 24px #d4a8451a;--glow-text:0 0 10px #d4a84540;--pulse-ms:.44s;--dim-chrome:.4;--t-dim:.6s;--t-undim:.14s;--bg:var(--stage-room);--cream:#ece5d6;--cream2:#f5efe2;--paper:var(--panel);--ink:#ece5d6;--ink-2:#bdb4a5;--muted:#a39a8d;--char:#161411;--char2:#211e1a;--char3:#2a2620;--char-line:#ece5d61a;--side-text:#bdb4a5;--side-text-dim:#a39a8d;--good:#34d27b;--success-bg:#0f2016;--success-border:#1f5a37;--success-text:#34d27b;--danger-bg:#2a0c0d;--danger-border:#6a1a1d;--danger-text:#ff4a4f;--focus:#f0cd72;--focus-dark:#f0cd72;--sans:"TB Inter",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,"SF Mono","SFMono-Regular",Menlo,Consolas,monospace;--fs-overline:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:19px;--fs-2xl:24px;--fs-3xl:28px;--ls-caps:.08em;--ls-tight:-.02em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:12px;--r-2xl:14px;--r-full:999px;--sh-xs:0 1px 2px #0006;--sh-sm:0 1px 2px #00000059,0 2px 8px #0000004d;--sh-md:0 2px 4px #0006,0 8px 24px #00000059;--sh-lg:0 4px 8px #00000073,0 16px 40px #00000080;--sh-shell:none;--t-fast:.12s;--t-med:.2s;--t-slow:.34s;--ease:cubic-bezier(.25,.1,.25,1);--ease-out:cubic-bezier(.19,.66,.27,1);--ease-pop:cubic-bezier(.3,1.4,.5,1);box-sizing:border-box;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:radial-gradient(1100px 700px at 50% -160px, rgba(var(--accent-rgb),.05), transparent 60%),  repeating-linear-gradient(0deg, rgba(var(--amber-a-rgb),.012) 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, rgba(var(--amber-a-rgb),.012) 0 1px, transparent 1px 4px),  var(--stage-room);min-height:100%}.frets-app *,.frets-app :before,.frets-app :after{box-sizing:border-box;margin:0;padding:0}.frets-app a{color:inherit;text-decoration:none}.frets-app ::selection{background:rgba(var(--accent-rgb),.35)}.frets-app input[type=range]{accent-color:var(--orange)}.frets-app :where(button,a,select,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}.frets-app .side :where(a,button):focus-visible{outline-color:var(--focus-dark)}@keyframes risein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.frets-app .main>*{animation:risein var(--t-slow) var(--ease-out) backwards}.frets-app .main>:nth-child(2){animation-delay:45ms}.frets-app .main>:nth-child(3){animation-delay:90ms}.frets-app .main>:nth-child(4){animation-delay:.135s}.frets-app .main>:nth-child(n+5){animation-delay:.18s}@keyframes navin{0%{opacity:.5;transform:translate(-6px)}to{opacity:1;transform:none}}.frets-app .navlink.active{animation:navin var(--t-med) var(--ease-out)}@keyframes versein{0%{opacity:0;transform:translateY(4px)scale(.985)}to{opacity:1;transform:none}}@keyframes fadein{0%{opacity:0}}@keyframes shake{20%{transform:translate(-3px)}45%{transform:translate(3px)}70%{transform:translate(-2px)}90%{transform:translate(1px)}}.frets-app .qverdict{position:relative;overflow:hidden}.frets-app .qverdict:after{content:"";opacity:.35;transform-origin:0;background:currentColor;width:100%;height:2px;animation:.9s linear forwards drain;position:absolute;bottom:0;left:0}@keyframes drain{to{transform:scaleX(0)}}.frets-app .bpmnum{animation:numpop .2s var(--ease-pop);display:inline-block}@keyframes numpop{0%{text-shadow:0 0 12px rgba(var(--tube-rgb),.85),0 0 2px rgba(var(--amber-d-rgb),.9);transform:scale(1.18)}to{text-shadow:0 0 0 rgba(var(--tube-rgb),0);transform:scale(1)}}.frets-app .ph{opacity:0;transition:transform var(--ph-ms,90ms) var(--ease-out),opacity var(--t-fast) var(--ease);will-change:transform}.frets-app .ph.on{opacity:1}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.frets-app{width:100%;max-width:var(--frets-shell-w,none);background:var(--side-bg);box-shadow:var(--sh-shell);height:var(--frets-shell-h,100%);scroll-margin-top:calc(var(--site-header,0px) - var(--pinned-chrome,0px));border:0;border-radius:0;grid-template-columns:220px 1fr;display:grid;overflow:hidden}.frets-app .side{background:var(--side-bg);color:var(--cream);border-right:1px solid var(--hairline);flex-direction:column;gap:18px;padding:20px 14px;display:flex;overflow-y:auto}.frets-app .logo{font-family:var(--display);letter-spacing:.12em;color:var(--logo-ink);align-items:center;gap:10px;padding:0 6px;font-size:22px;font-weight:900;line-height:1;display:flex}.frets-app .logomark{background:linear-gradient(180deg,var(--tube-hi),var(--orange));width:18px;height:24px;box-shadow:0 0 0 2px var(--side-bg),0 0 0 3px var(--ember),0 0 12px 2px rgba(var(--accent-rgb),.45);border-radius:3px}.frets-app .nav{scroll-padding-inline:var(--sp-4);flex-direction:column;gap:2px;margin-top:2px;display:flex}.frets-app .navlink{border-radius:var(--r-md);color:var(--side-text);font-size:var(--fs-sm);letter-spacing:.01em;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease);align-items:center;gap:10px;padding:9px 12px;font-weight:600;display:flex}.frets-app .navlink:hover{background:rgba(var(--nav-hover-rgb),.05);color:var(--cream)}.frets-app .navlink.active{background:linear-gradient(90deg,rgba(var(--accent-rgb),.16),rgba(var(--accent-rgb),.05));color:var(--amber-hi);box-shadow:inset 0 0 0 1px rgba(var(--amber-b-rgb),.22)}.frets-app .navlink .ic{opacity:.35;width:6px;height:6px;transition:opacity var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);background:currentColor;border:none;border-radius:50%;flex:none;margin:0 4px}.frets-app .navlink:hover .ic{opacity:.7}.frets-app .navlink.active .ic{opacity:1;background:var(--orange-300);box-shadow:var(--glow-led)}.frets-app .pc{background:var(--canvas);border:1px solid var(--char-line);border-radius:var(--r-lg);margin-top:auto;padding:14px 13px}.frets-app .pclabel{letter-spacing:.12em;color:var(--side-text-dim);margin-bottom:10px;font-size:10px;font-weight:700}.frets-app .pcrow{flex-wrap:wrap;gap:6px;display:flex}.frets-app .chip{border-radius:var(--r-full);height:26px;font-size:var(--fs-xs);background:var(--raised);color:var(--ink-2);border:1px solid #0000;align-items:center;padding:0 11px;font-family:inherit;font-weight:600;display:inline-flex}.frets-app .chip.on{background:linear-gradient(180deg,var(--tube-hi),var(--orange));color:var(--on-orange);box-shadow:0 0 12px rgba(var(--accent-rgb),.3);font-weight:700}.frets-app .main{background:var(--canvas) radial-gradient(900px 480px at 70% -10%,rgba(var(--accent-rgb),.06),transparent 60%) no-repeat;padding:var(--sp-6) 28px;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent;min-width:0;overflow-y:auto}.frets-app .shead{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.frets-app .ssub{font-size:var(--fs-overline);letter-spacing:var(--ls-caps);color:var(--muted);text-transform:uppercase;font-weight:700}.frets-app .stitle{font-family:var(--display);letter-spacing:.01em;text-transform:uppercase;margin-top:2px;font-size:34px;font-weight:800;line-height:1.02}.frets-app .sdesc{font-size:var(--fs-sm);color:var(--muted);max-width:560px;margin-top:5px;line-height:1.5}.frets-app .streak{background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-full);height:34px;font-weight:600;font-size:var(--fs-sm);color:var(--orange-700);box-shadow:var(--edge-hi),var(--sh-xs);align-items:center;gap:8px;padding:0 14px;display:inline-flex}.frets-app .flame{background:linear-gradient(180deg,var(--flame),var(--orange));width:11px;height:11px;box-shadow:var(--glow-sm);border-radius:50% 50% 50% 0;flex:none;transform:rotate(45deg)}.frets-app .card{background:linear-gradient(180deg,var(--panel-hi),var(--card-lo));border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--edge-hi),var(--sh-sm)}.frets-app .ct{font-size:var(--fs-overline);letter-spacing:var(--ls-caps);color:var(--muted);text-transform:uppercase;margin-bottom:14px;font-weight:700}.frets-app .hero{background:linear-gradient(180deg,var(--panel-hi),var(--card-lo));border:1px solid var(--line);border-radius:var(--r-xl);margin-bottom:var(--sp-4);box-shadow:var(--edge-hi),var(--sh-sm);display:flex;overflow:hidden}.frets-app .herobar{background:linear-gradient(180deg,var(--flame),var(--orange-300) 30%,var(--orange-600));width:4px;box-shadow:0 0 12px 1px rgba(var(--tube-rgb),.45)}.frets-app .herobody{flex:1;padding:22px 24px}.frets-app .herotitle{font-size:var(--fs-3xl);letter-spacing:var(--ls-tight);margin:10px 0 8px;font-weight:700;line-height:1.15}.frets-app .tag{background:var(--well);color:var(--tab-ink);font-size:var(--fs-overline);letter-spacing:var(--ls-caps);border-radius:var(--r-sm);border:1px solid var(--hairline);padding:4px 10px;font-weight:700}.frets-app .bento{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-areas:"hero hero hero hero streak streak""hero hero hero hero due due""week week week week rig rig""ready ready ready ready hist hist""jump jump jump jump jump jump";gap:14px;display:grid}.frets-app .tile{background:linear-gradient(180deg,var(--panel-hi),var(--card-lo));border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-5);box-shadow:var(--edge-hi),var(--sh-sm);margin:0}.frets-app .tile-hero{grid-area:hero}.frets-app .tile-streak{grid-area:streak}.frets-app .tile-due{grid-area:due}.frets-app .tile-rig{grid-area:rig}.frets-app .tile-week{grid-area:week}.frets-app .tile-jump{grid-area:jump}.frets-app .tile-ready{grid-area:ready}.frets-app .tile-hist{grid-area:hist}.frets-app .tile-hero{background:linear-gradient(180deg,rgba(var(--deep-rgb),.62),rgba(var(--deeper-rgb),.72));-webkit-backdrop-filter:blur(16px)saturate(140%);backdrop-filter:blur(16px)saturate(140%);border-color:rgba(var(--amber-c-rgb),.14);min-height:248px;position:relative;overflow:hidden}.frets-app .tile-hero:before{content:"";pointer-events:none;background:radial-gradient(560px 320px at 18% -10%,rgba(var(--accent-rgb),.16),transparent 64%);position:absolute;inset:0}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.frets-app .tile-hero{background:linear-gradient(180deg,var(--panel-hi),var(--card-lo))}}.frets-app .tile-hero .btn{box-shadow:inset 0 1px 0 rgba(var(--sheen-warm-rgb),.4),0 1px 3px rgba(var(--shadow-rgb),.5),0 0 24px rgba(var(--accent-rgb),.3)}.frets-app .tile-streak,.frets-app .tile-due,.frets-app .tile-rig{flex-direction:column;justify-content:center;gap:10px;min-height:110px;display:flex}.frets-app .tile-streak .streak{box-shadow:none;height:auto;color:var(--ink);font-size:var(--fs-md);background:0 0;border:0;gap:10px;padding:0}.frets-app .flame.f1,.frets-app .flame.f2,.frets-app .flame.f3{margin:4px 2px;position:relative}.frets-app .flame.f1{width:18px;height:18px;box-shadow:0 0 12px rgba(var(--accent-rgb),.55),0 0 28px rgba(var(--accent-rgb),.22)}.frets-app .flame.f2{width:26px;height:26px;box-shadow:0 0 16px rgba(var(--tube-rgb),.6),0 0 40px rgba(var(--accent-rgb),.28)}.frets-app .flame.f3{width:36px;height:36px;box-shadow:0 0 20px rgba(var(--tube-rgb),.7),0 0 56px rgba(var(--accent-rgb),.35);animation:flick 3.4s var(--ease) infinite}.frets-app .flame.f2:after,.frets-app .flame.f3:after{content:"";background:var(--glow-core);opacity:.9;border-radius:50% 50% 50% 0;position:absolute;inset:22% 22% 12% 12%}.frets-app .flame.cold{background:linear-gradient(135deg,var(--flame-cold),var(--flame-cold-2));box-shadow:none}.frets-app .flame.cold:after{display:none}@keyframes flick{0%,to{transform:rotate(45deg)scale(1)}38%{transform:rotate(45deg)scale(1.05)}62%{transform:rotate(45deg)scale(.97)}}.frets-app .milestone{font-size:var(--fs-xs);color:var(--orange-700);font-weight:600;line-height:1.5}.frets-app .duerow{gap:10px;display:flex}.frets-app .duecell{border-radius:var(--r-lg);background:var(--raised);border:1px solid var(--line);transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex}.frets-app .duecell:hover{border-color:rgba(var(--tube-rgb),.45);background:var(--pressed)}.frets-app .duenum{letter-spacing:var(--ls-tight);color:var(--orange-300);font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.frets-app .duecell span{font-size:var(--fs-overline);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);font-weight:700}.frets-app .rigline{font-size:var(--fs-lg);color:var(--ink);font-weight:700}.frets-app .rigtune{border-radius:var(--r-full);background:var(--orange-soft);height:24px;color:var(--orange-700);font-size:var(--fs-xs);align-self:flex-start;align-items:center;padding:0 10px;font-weight:700;display:inline-flex}.frets-app .phase.today{border-color:rgba(var(--tube-rgb),.55)}.frets-app .phase.today:before{content:"";background:var(--orange-300);width:6px;height:6px;box-shadow:var(--glow-led);border-radius:50%;flex:none}.frets-app .tile-ready,.frets-app .tile-hist{flex-direction:column;gap:8px;display:flex}.frets-app .ready-row{border-top:1px solid var(--hairline);font-size:var(--fs-sm);justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;display:flex}.frets-app .ready-row:first-of-type{border-top:0}.frets-app .ready-row .rname{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.frets-app .ready-row .rsub{color:var(--muted);font-size:var(--fs-xs)}.frets-app .ready-chip{border-radius:var(--r-full);background:var(--orange-soft);height:20px;color:var(--orange-700);font-size:var(--fs-overline);letter-spacing:var(--ls-caps);text-transform:uppercase;flex:none;align-items:center;padding:0 8px;font-weight:700;display:inline-flex}.frets-app .histbars{align-items:flex-end;gap:3px;height:48px;display:flex}.frets-app .histbar{background:var(--orange-300);opacity:.9;border-radius:2px 2px 0 0;flex:1;min-width:2px;min-height:2px}.frets-app .histbar.zero{background:var(--line);opacity:1;height:2px}.frets-app .obrow{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0;display:flex}.frets-app .oblabel{font-size:var(--fs-sm);color:var(--muted);min-width:110px;font-weight:600}.frets-app .bento>*{animation:risein var(--t-slow) var(--ease-out) backwards}.frets-app .bento>:nth-child(2){animation-delay:45ms}.frets-app .bento>:nth-child(3){animation-delay:90ms}.frets-app .bento>:nth-child(4){animation-delay:.135s}.frets-app .bento>:nth-child(5){animation-delay:.18s}.frets-app .bento>:nth-child(6){animation-delay:.225s}.frets-app .bento>:nth-child(7){animation-delay:.27s}.frets-app .bento>:nth-child(8){animation-delay:.315s}@media (max-width:820px){.frets-app .bento{grid-template-columns:1fr;grid-template-areas:"hero""streak""due""rig""week""ready""hist""jump"}}.frets-app .btn{border-radius:var(--r-lg);background:var(--primary);height:38px;color:var(--on-primary);border:1px solid var(--primary);font-family:inherit;font-weight:700;font-size:var(--fs-md);letter-spacing:-.01em;cursor:pointer;box-shadow:0 1px 2px rgba(var(--shadow-rgb),.45);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);justify-content:center;align-items:center;gap:7px;padding:0 16px;display:inline-flex}.frets-app .btn:hover{background:var(--primary-hi);border-color:var(--primary-hi)}.frets-app .btn:active{background:var(--primary-press);border-color:var(--primary-press);box-shadow:inset 0 1px 2px rgba(var(--scorch-rgb),.45);transition-duration:60ms;transform:translateY(1px)}.frets-app .btn:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.frets-app .btn.play{min-width:104px}.frets-app .btn.ghost{background:var(--raised);color:var(--ink);border-color:var(--border-strong);box-shadow:none;font-weight:600}.frets-app .btn.ghost:hover{background:var(--pressed);border-color:var(--scroll-thumb-strong);color:var(--ink);box-shadow:none}.frets-app .btn.ghost:active{background:rgba(var(--shadow-rgb),.25);box-shadow:none;transform:none}.frets-app .btn[aria-pressed=true],.frets-app .btn[aria-pressed=true]:hover{background:var(--sel-bg);color:var(--sel-ink);border-color:var(--sel-line);box-shadow:inset 0 -2px 0 var(--sel-bar)}.frets-app .btn[aria-pressed=true]:hover{border-color:var(--sel-bar)}.frets-app .btn.qopt{background:var(--raised);min-width:72px;height:46px;color:var(--ink);border:1px solid var(--border-strong);font-size:var(--fs-lg);box-shadow:var(--sh-xs);font-weight:700}.frets-app .btn.qopt:hover:not(:disabled){border-color:var(--orange-300);color:var(--orange-700);box-shadow:var(--sh-sm),0 0 12px rgba(var(--accent-rgb),.12);transform:translateY(-1px)}.frets-app .btn.qopt:active:not(:disabled){background:var(--pressed);transform:none}.frets-app .btn.qopt:disabled{opacity:.45;cursor:default;box-shadow:none}.frets-app .btn.qopt.is-correct,.frets-app .btn.qopt.is-correct:disabled{opacity:1;background:var(--success-bg);border-color:var(--success-border);color:var(--success-text);animation:bloom .42s var(--ease-out) forwards}.frets-app .btn.qopt.is-wrong,.frets-app .btn.qopt.is-wrong:disabled{opacity:1;background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger-text);animation:shake .3s var(--ease)}.frets-app .quizopts{margin-top:var(--sp-4)}.frets-app .kbd{font-family:var(--mono);border:1px solid var(--border-strong);vertical-align:2px;border-radius:4px;margin-right:7px;padding:1px 4px;font-size:10px;font-weight:700}.frets-app .raterow{margin-top:var(--sp-3);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.frets-app .ratehint{font-size:var(--fs-overline)}.frets-app .btn.rate{height:32px;font-size:var(--fs-xs);padding:0 12px}.frets-app .laddermsg{font-size:var(--fs-xs);color:var(--orange-700);font-weight:700}.frets-app .duechip{color:var(--orange-700)}.frets-app .ladderline{align-items:center;min-height:20px;margin-top:4px;display:flex}.frets-app .repchip{font-size:var(--fs-xs);color:var(--orange-700);font-variant-numeric:tabular-nums;font-weight:700}.frets-app .exfoot{margin-top:8px;font-size:11.5px}.frets-app .stagephase{display:none}.frets-app .sel{appearance:none;background:var(--panel) var(--sel-chevron) no-repeat right 11px center;border:1px solid var(--border-strong);border-radius:var(--r-md);height:36px;font-family:inherit;font-size:var(--fs-sm);color:var(--ink);box-shadow:var(--edge-hi),var(--sh-xs);cursor:pointer;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);padding:0 30px 0 12px;font-weight:600}.frets-app input.sel{cursor:text;background-image:none;padding-right:12px}.frets-app .sel:hover{border-color:rgba(var(--amber-e-rgb),.4);box-shadow:var(--edge-hi),var(--sh-sm)}.frets-app .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.frets-app .grid2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.frets-app .grid2>*{min-width:0}.frets-app .sgrid{grid-template-columns:minmax(180px,260px) minmax(0,1fr)}.frets-app .muted{color:var(--muted)}.frets-app .phase{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);font-size:var(--fs-sm);transition:border-color var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease),background var(--t-fast) var(--ease);align-items:center;gap:11px;margin-bottom:8px;padding:12px 14px;display:flex}.frets-app .phase[role=button]{cursor:pointer}.frets-app .phase[role=button]:hover{border-color:var(--border-strong);background:var(--hover-lo);box-shadow:var(--sh-xs)}.frets-app .phase.active{border-color:var(--orange-300);box-shadow:0 0 0 3px var(--orange-ring),0 0 20px rgba(var(--accent-rgb),.1),var(--edge-hi)}.frets-app .phase .min{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--fs-sm);margin-left:auto}.frets-app .timer{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:650;line-height:1.1}.frets-app .timer .muted{letter-spacing:0;margin-left:2px;font-size:15px;font-weight:600}.frets-app .logged{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text);font-weight:600;font-size:var(--fs-sm);border-radius:var(--r-lg);animation:versein var(--t-med) var(--ease-out);align-items:center;gap:8px;margin-top:14px;padding:10px 14px;display:flex}.frets-app .missed{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-text);font-weight:600;font-size:var(--fs-sm);border-radius:var(--r-lg);animation:fadein var(--t-fast) var(--ease-out),shake .3s var(--ease);align-items:center;gap:8px;margin-top:14px;padding:10px 14px;display:flex}.frets-app .lockin{padding:var(--sp-4);background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);margin-top:18px}.frets-app .lockin .ct{margin-bottom:6px}.frets-app .exercise{margin-top:var(--sp-4);border-top:1px solid var(--line);padding-top:var(--sp-4)}.frets-app .exhead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.frets-app .exnow{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.frets-app .exbig{letter-spacing:-.025em;color:var(--orange-300);font-variant-numeric:tabular-nums;min-width:56px;text-shadow:var(--glow-text);font-size:34px;font-weight:750}.frets-app .exnow .muted{font-size:var(--fs-xs)}.frets-app .expos{font-size:var(--fs-overline);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted);align-items:center;gap:7px;font-weight:700;display:flex}.frets-app .expos .sel{height:30px;font-size:var(--fs-xs);padding:0 26px 0 10px}.frets-app .extempo{font-size:var(--fs-sm);color:var(--ink-2);align-items:center;gap:8px;margin-left:auto;font-weight:600;display:flex}.frets-app .extempo b{font-variant-numeric:tabular-nums;text-align:center;min-width:30px;color:var(--ink)}.frets-app .tstep{border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--raised);cursor:pointer;width:30px;height:30px;color:var(--orange-700);box-shadow:var(--sh-xs);transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),transform var(--t-fast) var(--ease);font-family:inherit;font-size:15px;font-weight:700;line-height:1}.frets-app .tstep:hover{border-color:var(--orange-300);background:var(--pressed)}.frets-app .tstep:active{background:var(--well);transition-duration:60ms;transform:scale(.94)}.frets-app .board{background:linear-gradient(180deg,var(--board-hi),var(--board-lo));border:1px solid var(--board-line);box-shadow:inset 0 1px 0 rgba(var(--sheen-rgb),.07),inset 0 0 40px rgba(var(--accent-rgb),.04),0 4px 16px rgba(var(--shadow-rgb),.4);border-radius:12px;padding:14px 12px;position:relative}.frets-app .board svg{width:100%;height:auto;display:block}.frets-app .gstr{stroke:var(--gstr);stroke-width:1.5px}.frets-app .gfret{stroke:var(--gfret);stroke-width:2px}.frets-app .gnut{stroke:var(--cream);stroke-width:5px}.frets-app .gstr.core{stroke:var(--orange-600);stroke-width:2.5px}.frets-app .gmk.same{fill:var(--orange)}.frets-app .gmk.octave{fill:var(--orange-300)}.frets-app .gmk.shift{fill:var(--cream2)}.frets-app .gmk.extra{fill:var(--char3);stroke:var(--gfret);stroke-width:1.5px}.frets-app .gmkl{text-anchor:middle;font-size:10px;font-weight:800;font-family:var(--sans);fill:var(--on-lit)}.frets-app .gmkl.extra{fill:var(--gfnum)}.frets-app .gcapo{fill:var(--orange-700)}.frets-app .gcapolbl{fill:var(--orange-700);text-anchor:middle;font-size:11px;font-weight:800;font-family:var(--sans)}.frets-app .ghit{fill:#0000;cursor:pointer}.frets-app .ghit:hover{fill:rgba(var(--tube-rgb),.1)}.frets-app .dHSeq{fill:var(--char3);stroke:var(--harm-dim);stroke-width:1.5px}.frets-app .dHSeqOn{fill:var(--harm);stroke:var(--emitter-ring);stroke-width:3px;filter:drop-shadow(0 0 6px rgba(var(--harm-rgb),.7))}.frets-app .gcldh{fill:var(--harm-label);text-anchor:middle;font-size:11px;font-weight:700;font-family:var(--sans)}.frets-app .ginlay{fill:var(--ginlay)}.frets-app .gfnum{fill:var(--gfnum);text-anchor:middle;font-size:12px;font-weight:700;font-family:var(--sans)}.frets-app .gdl{fill:var(--on-dark-dot);text-anchor:middle;font-size:11px;font-weight:800;font-family:var(--sans)}.frets-app .dRoot{fill:var(--orange)}.frets-app .dDeg{fill:var(--cream2)}.frets-app .fL{fill:var(--orange)}.frets-app .fC{fill:var(--cream2)}.frets-app .fT{fill:var(--role-tension)}.frets-app .fS{fill:var(--role-blue)}.frets-app .dLt{fill:var(--orange)}.frets-app .dLc{fill:var(--cream2)}.frets-app .dLx{fill:var(--role-approach)}.frets-app .dLa{fill:var(--role-avoid)}.frets-app .dLb{fill:var(--role-blue)}.frets-app .gsuggest{fill:none;stroke:var(--suggest);stroke-width:2.5px;filter:drop-shadow(0 0 4px rgba(var(--suggest-rgb),.7))}.frets-app .gdim{opacity:.45}.frets-app .dCh{fill:var(--char2);stroke:var(--orange-300);stroke-width:2.5px}.frets-app .dChR{fill:var(--root-fill);stroke:var(--emitter-ring);stroke-width:2.5px}.frets-app .gcl{fill:var(--on-emitter);text-anchor:middle;font-size:12px;font-weight:800;font-family:var(--sans)}.frets-app .dCh+.gcl{fill:var(--on-unlit-dot)}.frets-app .dSeq{fill:var(--char3);stroke:var(--gfret);stroke-width:1.5px}.frets-app .dSeqOn{fill:var(--orange);stroke:var(--emitter-ring);stroke-width:3px;filter:drop-shadow(0 0 6px rgba(var(--tube-rgb),.8))}.frets-app .gcld{fill:var(--gcld);text-anchor:middle;font-size:11px;font-weight:700;font-family:var(--sans)}.frets-app .gpc{fill:none;stroke:var(--gfret);stroke-width:3px;stroke-linecap:round;opacity:.5}.frets-app .gpc.on{stroke:var(--orange);stroke-width:4px;opacity:.9}.frets-app .gpcl{fill:var(--gfnum);text-anchor:middle;font-size:12px;font-weight:800;font-family:var(--sans)}.frets-app .gpcl.bend{fill:var(--orange-700);text-anchor:start}.frets-app .ph .gcl{fill:var(--on-orange)}.frets-app .ph.hph .gcl{fill:var(--harm-ink)}.frets-app .relhead{margin-top:0;font-size:1.25rem}.frets-app .changelist{margin:14px 0 0;padding:0;list-style:none}.frets-app .changelist>li{border-left:2px solid var(--line);margin-bottom:16px;padding:0 0 0 14px}.frets-app .changelist>li:last-child{margin-bottom:0}.frets-app .changelist>li>b{font-weight:700;line-height:1.45;display:block}.frets-app .changelist>li>.hintline{margin-bottom:0;display:block}.frets-app .legend{font-size:var(--fs-xs);color:var(--ink-2);flex-wrap:wrap;gap:14px;margin:10px 0;font-weight:600;display:flex}.frets-app .legend i{vertical-align:-2px;border-radius:50%;width:12px;height:12px;margin-right:5px;display:inline-block}.frets-app .legend em{color:var(--muted);font-style:normal;font-weight:600}.frets-app .leadlegend{font-size:var(--fs-xs);color:var(--ink-2);flex-wrap:wrap;gap:14px;margin:8px 0 4px;font-weight:600;display:flex}.frets-app .leadlegend i{vertical-align:-2px;border-radius:50%;width:12px;height:12px;margin-right:5px;display:inline-block}.frets-app .leadlegend i.dLt{background:var(--orange)}.frets-app .leadlegend i.dLc{background:var(--cream2)}.frets-app .leadlegend i.dLx{background:var(--role-approach)}.frets-app .leadlegend i.dLa{background:var(--role-avoid)}.frets-app .leadlegend i.dLb{background:var(--role-blue)}.frets-app .leadlegend em{color:var(--muted);font-style:normal;font-weight:600}.frets-app .leadrole{letter-spacing:var(--ls-caps);text-transform:uppercase;border-radius:var(--r-full);color:var(--on-dark-dot);padding:1px 6px;font-size:10px;font-weight:800;display:inline-block}.frets-app .leadrole.target{background:var(--orange)}.frets-app .leadrole.color{background:var(--cream2)}.frets-app .leadrole.approach{background:var(--role-approach)}.frets-app .leadrole.avoid{background:var(--role-avoid)}.frets-app .leadrole.blue{background:var(--role-blue)}.frets-app .leadtimeline{flex-wrap:wrap;gap:6px;margin:6px 0 2px;display:flex}.frets-app .leadbar{border:1px solid var(--line);background:var(--panel);min-width:48px;height:28px;font-weight:700;font-size:var(--fs-sm);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;padding:0 12px;display:inline-flex}.frets-app .leadbar.on{border-color:var(--orange-300);background:var(--pressed);color:var(--amber-hi);box-shadow:0 0 0 2px var(--orange-ring)}.frets-app .leaddurs .durbtn{min-width:38px;height:34px;padding:0 8px;font-size:16px;line-height:1}.frets-app .leaddurs .durbtn.on{background:linear-gradient(180deg,var(--tube-hi),var(--orange));color:var(--on-orange);border-color:var(--ember)}.frets-app .btn.disabled,.frets-app .btn[aria-disabled=true]{opacity:.4;pointer-events:none}.frets-app pre.tab.leadtab{white-space:pre;font-size:11.5px;line-height:1.5}.frets-app .leadflow{margin:2px 0 6px}.frets-app .leadlegend i.ringswatch{border:2px solid var(--suggest);width:12px;height:12px;box-shadow:0 0 4px rgba(var(--suggest-rgb),.7);background:0 0;border-radius:50%}.frets-app .moves{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.frets-app :is(.move,.nchord){background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--edge-hi),var(--sh-xs);transition:border-color var(--t-med) var(--ease-out),box-shadow var(--t-med) var(--ease-out);padding:12px 14px}.frets-app :is(.move,.nchord):hover{border-color:var(--border-strong);box-shadow:var(--edge-hi),var(--sh-sm)}.frets-app .move.pull{border-color:rgba(var(--tube-rgb),.55);box-shadow:0 0 0 3px var(--orange-soft),0 0 18px rgba(var(--accent-rgb),.1),var(--edge-hi)}.frets-app :is(.move,.nchord) .rn{letter-spacing:var(--ls-caps);color:var(--orange-700);font-size:10px;font-weight:800}.frets-app :is(.move,.nchord) .ch{letter-spacing:var(--ls-tight);margin:3px 0;font-size:18px;font-weight:700}.frets-app .move .fr{font-family:var(--mono);color:var(--muted);font-size:11px}.frets-app :is(.move,.nchord) .wy{font-size:var(--fs-xs);color:var(--ink-2);margin-top:6px;line-height:1.45}.frets-app .tabwrap{background:var(--well);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:inset 0 2px 8px rgba(var(--shadow-rgb),.5);scrollbar-width:thin;scrollbar-color:var(--scroll-thumb-strong) transparent;padding:14px 16px;position:relative;overflow:auto}.frets-app .tabwrap::-webkit-scrollbar{height:8px}.frets-app .tabwrap::-webkit-scrollbar-thumb{background:var(--scroll-thumb-strong);border-radius:4px}.frets-app .tabwrap::-webkit-scrollbar-track{background:0 0}.frets-app pre.tab{font-family:var(--mono);color:var(--tab-ink);white-space:pre;font-size:12.5px;line-height:1.55}.frets-app .pills{flex-wrap:wrap;gap:6px;display:flex}.frets-app .pills span{border-radius:var(--r-full);height:24px;font-size:var(--fs-overline);background:var(--raised);border:1px solid var(--line);color:var(--ink-2);align-items:center;padding:0 10px;font-weight:600;display:inline-flex}.frets-app .chain{font-size:var(--fs-sm);color:var(--ink-2);line-height:1.7}.frets-app .chain b{color:var(--ink)}.frets-app .skeleton{background:var(--raised);border-radius:var(--r-lg);color:#0000;min-height:18px;position:relative;overflow:hidden}.frets-app .skeleton:after{content:"";background:linear-gradient(90deg,transparent,rgba(var(--sheen-rgb),.07),transparent);animation:1.4s infinite shimmer;position:absolute;inset:0}.frets-app .errdetails{margin-top:8px}.frets-app .errdetails summary{cursor:pointer;font-size:var(--fs-xs);color:var(--muted);font-weight:700}.frets-app .errdetails pre{font-family:var(--mono);color:var(--muted);white-space:pre-wrap;margin-top:6px;font-size:11.5px}.frets-app .explainer{border-left:4px solid var(--orange-300)}.frets-app .exphead{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.frets-app .expclose{color:var(--muted);cursor:pointer;border-radius:var(--r-sm);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease);background:0 0;border:none;padding:4px 6px;font-family:inherit;font-size:14px}.frets-app .expclose:hover{color:var(--ink);background:rgba(var(--sheen-cool-rgb),.08)}.frets-app .expsteps{flex-direction:column;gap:10px;margin:0 0 14px;list-style:none;display:flex}.frets-app .expsteps li{align-items:flex-start;gap:11px;display:flex}.frets-app .expnum{background:linear-gradient(180deg,var(--tube-hi),var(--orange));width:22px;height:22px;color:var(--on-orange);font-size:var(--fs-xs);box-shadow:0 0 8px rgba(var(--accent-rgb),.3);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:1px;font-weight:700;display:flex}.frets-app .expsteps li div b{font-size:var(--fs-sm);letter-spacing:-.01em;display:block}.frets-app .expsteps li div span{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}.frets-app .linklike{color:var(--muted);font-size:var(--fs-xs);cursor:pointer;text-underline-offset:3px;transition:color var(--t-fast) var(--ease);background:0 0;border:none;border-radius:4px;padding:2px 0;font-family:inherit;font-weight:700;text-decoration:underline}.frets-app .linklike:hover{color:var(--orange-700)}.frets-app .jumpgrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.frets-app .jump{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.frets-app .jumpdesc{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.frets-app .hint{align-items:center;margin-left:6px;display:inline-flex;position:relative}.frets-app .hintbtn{border:1px solid var(--border-strong);background:var(--raised);width:16px;height:16px;color:var(--muted);cursor:help;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease);border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:relative}.frets-app .hintbtn:before{content:"";position:absolute;inset:-6px}.frets-app .hintbtn:hover{border-color:var(--orange-300);color:var(--orange-700)}.frets-app .hintpop{background:linear-gradient(180deg,rgba(var(--pop-rgb),.78),rgba(var(--pop-2-rgb),.84));-webkit-backdrop-filter:blur(20px)saturate(140%);backdrop-filter:blur(20px)saturate(140%);border:1px solid rgba(var(--sheen-cool-rgb),.14);width:max-content;max-width:min(260px,100vw - 28px);color:var(--pop-ink);font-size:var(--fs-xs);letter-spacing:0;text-transform:none;text-align:left;border-radius:var(--r-lg);box-shadow:inset 0 1px 0 rgba(var(--sheen-rgb),.08),0 12px 32px rgba(var(--shadow-rgb),.55),0 2px 8px rgba(var(--shadow-rgb),.4);z-index:60;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),visibility var(--t-fast);padding:9px 11px;font-weight:600;line-height:1.5;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.frets-app .hintpop:after{content:"";border:5px solid #0000;border-top-color:var(--tooltip-bg);margin-left:-5px;position:absolute;top:100%;left:50%}.frets-app .hintpop.open{opacity:1;visibility:visible;transform:translate(-50%)}.frets-app .hintpop b{color:var(--pop-accent)}.frets-app .hint--left .hintpop{left:auto;right:-8px;transform:translateY(4px)}.frets-app .hint--left .hintpop.open{transform:translate(0)}.frets-app .hint--left .hintpop:after{left:auto;right:11px}.frets-app .hint--right .hintpop{left:-8px;transform:translateY(4px)}.frets-app .hint--right .hintpop.open{transform:translate(0)}.frets-app .hint--right .hintpop:after{margin-left:0;left:11px}.frets-app .gterm{margin:0;display:inline}.frets-app .gtermbtn{font:inherit;color:inherit;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--orange-300);text-decoration-color:var(--orange-300);text-underline-offset:2px;transition:color var(--t-fast) var(--ease);background:0 0;border:0;padding:0}.frets-app .gtermbtn:hover,.frets-app .gtermbtn:focus-visible{color:var(--orange-700);outline:none}.frets-app .hintline{font-size:var(--fs-xs);color:var(--muted);margin-top:6px;font-weight:500;line-height:1.5}.frets-app .gtrstatus{font-size:var(--fs-xs);flex-wrap:wrap;align-items:center;gap:6px;font-weight:500;display:inline-flex}.frets-app .gtrline{display:flex}.frets-app .gtrline:not(:empty){margin:0 0 10px}.frets-app .gtrretry{font-size:var(--fs-xs);padding:2px 10px}.frets-app .hintline b{color:var(--ink-2)}.frets-app .relsongs .reltag{margin-top:4px}.frets-app .relsongs .rellabel{font-size:var(--fs-xs);color:var(--orange-700);text-transform:uppercase;letter-spacing:.06em;margin:12px 0 2px;font-weight:700}.frets-app .relrow{background:var(--raised);border:1px solid var(--line);color:var(--ink);box-shadow:var(--edge-hi);border-radius:12px;grid-template-columns:1fr auto;grid-template-areas:"t ug""w ug";align-items:center;gap:2px 14px;margin-top:8px;padding:10px 12px;text-decoration:none;display:grid}.frets-app .relrow:hover{border-color:var(--border-strong)}.frets-app .relrow .t{grid-area:t;font-weight:700}.frets-app .relrow .a{color:var(--orange-700);font-size:13px;font-weight:600}.frets-app .relrow .w{color:var(--muted);grid-area:w;font-size:12.5px;line-height:1.5}.frets-app .relrow .ug{color:var(--orange-700);white-space:nowrap;grid-area:ug;font-size:12.5px}.frets-app .relinline{flex-wrap:wrap;align-items:baseline;gap:4px 14px;display:flex}.frets-app .relinline a{color:var(--orange-700);text-underline-offset:3px;text-decoration:underline}.frets-app .rigclass{margin-top:4px}.frets-app .rigclasshead{justify-content:space-between;align-items:center;gap:12px;margin:18px 0 10px;display:flex}.frets-app .exercise{position:relative}.frets-app .exercise:before{content:"";background:linear-gradient(90deg,transparent,rgba(var(--tube-rgb),.9) 18%,rgba(var(--tube-rgb),.9) 82%,transparent);opacity:.14;pointer-events:none;height:1px;position:absolute;top:-1px;left:0;right:0}@keyframes plBeat{0%{opacity:var(--pl-rest,.14)}9%{opacity:max(var(--pl-rest,.14),.32)}to{opacity:var(--pl-rest,.14)}}@keyframes plGroup{0%{opacity:var(--pl-rest,.14)}9%{opacity:max(var(--pl-rest,.14),.55)}to{opacity:var(--pl-rest,.14)}}@keyframes plBar{0%{opacity:var(--pl-rest,.14)}9%{opacity:max(var(--pl-rest,.14),.85)}to{opacity:var(--pl-rest,.14)}}.frets-app .exercise[data-pulse=beat]:before{animation:plBeat var(--pulse-ms) var(--ease-out)}.frets-app .exercise[data-pulse=group]:before{animation:plGroup var(--pulse-ms) var(--ease-out)}.frets-app .exercise[data-pulse=bar]:before{animation:plBar var(--pulse-ms) var(--ease-out)}.frets-app .board:after{content:"";border-radius:inherit;pointer-events:none;box-shadow:0 0 0 1px rgba(var(--tube-rgb),.3),0 0 26px 2px rgba(var(--accent-rgb),.2);opacity:0;position:absolute;inset:-1px}@keyframes plRing{0%{opacity:0}9%{opacity:.55}to{opacity:0}}.frets-app .exercise[data-pulse=bar] .board:after{animation:plRing var(--pulse-ms) var(--ease-out)}@keyframes exnote{0%{opacity:.4;transform:translateY(2px)}to{opacity:1;transform:none}}.frets-app .exbig{animation:exnote var(--ph-ms,90ms) var(--ease-out)}@keyframes bloom{0%{box-shadow:0 0 0 0 rgba(var(--good-rgb),0)}40%{box-shadow:0 0 0 4px rgba(var(--good-rgb),.16),0 0 18px rgba(var(--good-rgb),.2)}to{box-shadow:0 0 0 3px rgba(var(--good-rgb),.1)}}.frets-app .logged:not(.qverdict){flex-wrap:wrap;position:relative;overflow:hidden}.frets-app .logged:not(.qverdict):after{content:"";pointer-events:none;background:linear-gradient(100deg,transparent 30%,rgba(var(--amber-c-rgb),.18) 50%,transparent 70%);animation:lggleam 1.1s var(--ease-out) .2s forwards;position:absolute;inset:0;transform:translate(-120%)}@keyframes lggleam{to{transform:translate(120%)}}@keyframes streakpop{0%{transform:scale(1.22)}to{transform:scale(1)}}.frets-app .logged:not(.qverdict) b{animation:streakpop .32s var(--ease-pop) 1.3s backwards;display:inline-block}.frets-app .lgms{opacity:.85;flex-basis:100%;font-weight:500}.frets-app :is(.exercise,.riffplayer,.vampcard) .exhead .btn.ghost{transition:opacity var(--t-undim) var(--ease)}.frets-app :is(.exercise,.riffplayer,.vampcard).is-playing .exhead .btn.ghost{opacity:.55;transition:opacity var(--t-dim) var(--ease) .4s}.frets-app :is(.exercise,.riffplayer,.vampcard).is-playing .exhead .row:is(:hover,:focus-within) .btn.ghost{opacity:1;transition:opacity var(--t-undim) var(--ease) 0s}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold))>:not(:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold))):not(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)){display:none}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)){padding-top:12px;padding-bottom:12px}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)) .setup-only{display:none}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)) .card:is(:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)),:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)){margin-bottom:0;padding:12px 16px}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)) .card>.ct{display:none}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)) .sgrid{grid-template-columns:1fr}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)) .timer{font-size:36px}.frets-app .main:has(:is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold)) .stagephase{letter-spacing:0;color:var(--muted);margin-left:10px;font-size:14px;font-weight:600;display:inline}.frets-app .exercise:is(.is-playing,.stage-hold){flex-direction:column;margin-top:8px;padding-top:8px;display:flex}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) :is(.hintline,.ratehint){display:none}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exhead{margin-bottom:8px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exhead>div:not(.row){display:none}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exnow{margin-bottom:8px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exnow .expos:not(.engaged),.frets-app .exercise:is(.is-playing,.stage-hold) .setuprow{display:none}.frets-app .exercise:is(.is-playing,.stage-hold) .setuprow:has(.expos.engaged){order:1;margin:0;display:flex}.frets-app .exercise:is(.is-playing,.stage-hold):has(.setuprow .expos.engaged) .exfoot{display:none}.frets-app .exercise:is(.is-playing,.stage-hold) .exfoot{order:2;font-size:13px}.frets-app .exercise:is(.is-playing,.stage-hold) .tabwrap~.tabwrap{display:none}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exbig{font-size:40px;line-height:1.05}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exnow>.muted{font-size:14px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .extempo b{min-width:52px;font-size:28px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .tstep{width:44px;height:44px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exhead .row{gap:6px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exhead .row .btn{height:44px;padding:0 12px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .exhead .row .hint{display:none}.frets-app .exercise:is(.is-playing,.stage-hold) .raterow{flex-wrap:nowrap;gap:16px;margin-top:8px}.frets-app .exercise:is(.is-playing,.stage-hold) .btn.rate{flex:1;height:48px;font-size:15px}.frets-app .exercise:is(.is-playing,.stage-hold) .ladderline{min-height:26px}.frets-app .exercise:is(.is-playing,.stage-hold) .laddermsg{font-size:20px;line-height:1.2}.frets-app .exercise:is(.is-playing,.stage-hold) .repchip{font-size:18px}.frets-app .vampcard.is-playing .vampbar{padding:5px 12px;font-size:15px}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .board{width:100%;max-width:720px;margin-left:auto;margin-right:auto}.frets-app :is(.exercise,.riffplayer,.vampcard):is(.is-playing,.stage-hold) .tabwrap{padding:6px 12px;margin-top:8px!important}.frets-app .exercise:is(.is-playing,.stage-hold) .board[data-strings="7"]{max-width:620px}.frets-app .exercise:is(.is-playing,.stage-hold) .board[data-strings="8"]{max-width:520px}.frets-app .exercise:is(.is-playing,.stage-hold):has(.board[data-strings="7"],.board[data-strings="8"]) .exfoot{display:none}.frets-app .exercise:is(.is-playing,.stage-hold):has(.board[data-strings="7"],.board[data-strings="8"]) pre.tab{font-size:12px;line-height:1.35}.frets-app .exercise.phase-ending{--pl-rest:.45}.frets-app .exercise.phase-ending:before{opacity:.45}.frets-app .main.stage-exit>*{animation-duration:0s;animation-delay:0s}@keyframes lampbreath{0%,to{box-shadow:0 0 0 2px var(--side-bg),0 0 0 3px var(--ember),0 0 8px 1px rgba(var(--accent-rgb),.18)}50%{box-shadow:0 0 0 2px var(--side-bg),0 0 0 3px var(--ember),0 0 14px 2px rgba(var(--accent-rgb),.4)}}.frets-app .logomark{animation:4.4s ease-in-out infinite lampbreath}@media (max-width:1180px){.frets-app .sgrid{grid-template-columns:1fr}}@media (max-width:820px){.frets-app{grid-template-columns:1fr;height:auto;overflow:clip}.frets-app .main{min-width:0;overflow-y:visible}html:has(.frets-app){--frets-side-h:60px;--pinned-chrome:calc(var(--site-header,0px) + var(--frets-side-h))}.frets-app .side{top:var(--site-header,0px);z-index:30;border-right:none;border-bottom:1px solid var(--hairline);flex-flow:row;align-items:center;gap:12px;height:auto;padding:10px 16px;position:sticky;overflow:hidden}.frets-app .logo{flex:none;padding:0}.frets-app .nav{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent;flex-flow:row;flex:1;gap:4px;margin:0;overflow-x:auto}.frets-app .navlink{white-space:nowrap}.frets-app .side .pc{display:none}.frets-app .grid2,.frets-app .moves{grid-template-columns:1fr}}@media (max-width:560px){.frets-app{border:none;border-radius:0}.frets-app .side{gap:10px;padding:9px 12px}.frets-app .logo{font-size:var(--fs-md);letter-spacing:.1em}.frets-app .navlink{font-size:var(--fs-xs);padding:7px 11px}.frets-app .navlink .ic{display:none}.frets-app .main{padding:16px 14px}.frets-app .shead{flex-direction:column;align-items:flex-start;gap:10px}.frets-app .stitle{font-size:1.55rem;line-height:1.12}.frets-app .timer{font-size:38px}.frets-app .sel{min-width:0;max-width:100%}.frets-app .expos{flex-wrap:wrap}.frets-app .exnow .expos{max-width:100%}}.frets-app .vampbars{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.frets-app .vampbar{border:1px solid var(--line);background:var(--panel);font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:8px;padding:3px 9px}.frets-app .vampbar b{color:var(--ink);font-weight:700}.frets-app .vampbar.on{border-color:var(--orange-300);background:var(--pressed)}.frets-app .vampbar.on b{color:var(--amber-hi)}.frets-app .vampcard.compact .vampbars{margin-top:8px}.frets-app .tunestrip{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 4px;display:flex}.frets-app .tunestrip .btn{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;padding:3px 10px}.frets-app .tabcopy{height:26px;font-size:var(--fs-xs);padding:0 10px;position:absolute;top:6px;right:6px}@media (prefers-reduced-motion:reduce){.frets-app *,.frets-app :before,.frets-app :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.frets-app .main>*{animation:none}.frets-app .ph,.frets-app .hintpop{transition:none}.frets-app .skeleton:after{animation:none}.frets-app .exercise:before,.frets-app .board:after{animation:none!important}.frets-app .logomark{box-shadow:0 0 0 2px var(--side-bg),0 0 0 3px var(--ember),0 0 11px 1.5px rgba(var(--accent-rgb),.28);animation:none}.frets-app .exbig,.frets-app .bpmnum{animation:none}.frets-app .btn.qopt.is-correct,.frets-app .btn.qopt.is-correct:disabled{box-shadow:0 0 0 3px rgba(var(--good-rgb),.1);animation:none}.frets-app .btn.qopt.is-wrong,.frets-app .bento>*,.frets-app .flame.f3{animation:none}.frets-app .logged:not(.qverdict):after{opacity:0;animation:none}.frets-app .logged:not(.qverdict) b{animation:none}}
/*$vite$:1*/