:root{color:#0a0a0a;font-synthesis:none;text-rendering:optimizelegibility;--surface:#fff;--surface-secondary:#f5f5f5;--text:#0a0a0a;--text-secondary:#666;--border:#d4d4d4;--border-strong:#0a0a0a;--focus:#0070f3;--inverse:#fff;background:#fff;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:var(--surface);min-height:100dvh;color:var(--text)}button,input{font:inherit}button{color:inherit}button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.36}.app-shell{width:min(100%,1600px);min-height:100dvh;margin:0 auto;padding-inline:clamp(20px,4vw,64px)}.topbar,.practice-header{justify-content:space-between;align-items:center;gap:24px;min-height:80px;display:flex}.brand{letter-spacing:-.02em;font-weight:600}.topbar__meta,.practice-header__step,.section-label{color:var(--text-secondary);font-size:.875rem}.practice-header>div:first-child{align-items:baseline;gap:24px;display:flex}.welcome{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;column-gap:clamp(24px,4vw,64px);min-height:calc(100dvh - 80px);padding-block:32px 64px;display:grid}.welcome__copy{grid-column:1/span 5;max-width:560px}.welcome__diagram{flex-direction:column;grid-column:7/-1;justify-content:center;align-self:stretch;min-width:0;display:flex}.section-label{margin:0 0 20px}.welcome h1{letter-spacing:-.065em;max-width:9ch;margin:0;font-size:clamp(3.5rem,7.5vw,7.5rem);font-weight:500;line-height:.9}.welcome__lede{max-width:34ch;color:var(--text-secondary);margin:32px 0 0;font-size:clamp(1.1rem,1.8vw,1.4rem);line-height:1.45}.session-outline{margin:48px 0}.session-outline div{border-bottom:1px solid var(--border);grid-template-columns:48px 1fr;gap:16px;padding-block:12px;display:grid}.session-outline dt{color:var(--text-secondary);font-family:Geist Mono,monospace;font-size:.8rem}.session-outline dd{margin:0}.primary-action{border:1px solid var(--text);background:var(--text);min-height:52px;color:var(--inverse);cursor:pointer;border-radius:6px;padding:0 24px;font-weight:500}.primary-action:hover{color:var(--text);background:0 0}.calendar{border-top:1px solid var(--border);padding-block:clamp(72px,10vw,144px)}.calendar__intro{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(24px,4vw,64px);margin-bottom:72px;display:grid}.calendar__intro .section-label{grid-column:1/span 2}.calendar__intro h2{letter-spacing:-.06em;grid-column:3/span 5;margin:0;font-size:clamp(3rem,6vw,6.5rem);font-weight:500;line-height:.92}.calendar__intro>p:last-child{color:var(--text-secondary);grid-column:9/-1;margin:0;font-size:1.05rem;line-height:1.55}.calendar__weeks{gap:72px;display:grid}.practice-week__header{grid-template-columns:minmax(220px,4fr) 8fr;align-items:end;gap:32px;padding-bottom:20px;display:grid}.practice-week__header h3,.practice-week__header p{margin:0}.practice-week__header h3{letter-spacing:-.035em;font-size:1.5rem;font-weight:500}.practice-week__header div>p,.practice-week__header>p{color:var(--text-secondary);margin-top:6px}.practice-week__header>p{justify-self:end;max-width:52ch}.practice-week__days{border-block:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.calendar-day{border-left:1px solid var(--border);flex-direction:column;min-width:0;min-height:270px;padding:18px 16px 20px;display:flex}.calendar-day:first-child{border-left:0}.calendar-day[aria-current=step]{background:var(--surface-secondary);box-shadow:inset 0 3px 0 var(--text)}.calendar-day.is-done .calendar-day__select{text-decoration:line-through;text-decoration-thickness:1px}.calendar-day__meta{color:var(--text-secondary);justify-content:space-between;gap:8px;font-family:Geist Mono,monospace;font-size:.72rem;display:flex}.calendar-day h4{margin:36px 0 0;font-size:1rem;font-weight:500;line-height:1.2}.calendar-day__select{color:inherit;cursor:pointer;font:inherit;font-weight:inherit;line-height:inherit;text-align:left;background:0 0;border:0;padding:0}.calendar-day__select:hover{text-underline-offset:4px;text-decoration:underline}.calendar-day>p:not(.calendar-day__chords){color:var(--text-secondary);margin:10px 0 0;font-size:.82rem;line-height:1.4}.calendar-day__chords{margin:20px 0 0;font-family:Geist Mono,monospace;font-size:.75rem;line-height:1.4}.calendar-day__actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:auto;padding-top:20px;display:flex}.calendar-day__actions button{min-height:32px;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:.72rem;font-weight:500}.calendar-day__actions button:hover,.calendar-day__actions button[aria-pressed=true]{color:var(--text)}.chord-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:24px;padding-bottom:16px;display:flex}.chord-heading span{color:var(--text-secondary);font-size:.875rem}.chord-heading strong{letter-spacing:-.035em;font-size:clamp(1.4rem,2vw,2rem);font-weight:500}.chord-diagram{width:100%;height:min(72dvh,680px);min-height:360px;color:var(--text);display:block}.chord-diagram__statuses{fill:currentColor;font-size:38px;font-weight:500}.chord-diagram__fret,.chord-diagram__string{stroke:var(--text-secondary);stroke-width:2px}.chord-diagram__nut{stroke:currentColor;stroke-width:10px}.chord-diagram__fingers circle{fill:currentColor}.chord-diagram__fingers text{fill:var(--inverse);font-size:23px;font-weight:600}.chord-diagram__base-fret{fill:currentColor;font-family:Geist Mono,monospace;font-size:22px}.app-shell--practice{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid;overflow:hidden}.practice-header{border-bottom:1px solid var(--border)}.practice-header__actions{align-items:center;gap:24px;display:flex}.fullscreen-status{max-width:220px;color:var(--text-secondary);text-align:right;font-size:.75rem;line-height:1.3}.completion-screen{place-items:center;display:grid}.completion-screen__content{width:min(100%,720px)}.completion-screen h1{letter-spacing:-.065em;max-width:10ch;margin:0;font-size:clamp(4rem,9vw,8rem);font-weight:500;line-height:.9}.completion-screen__content>p:not(.section-label){max-width:38ch;color:var(--text-secondary);margin:32px 0 40px;font-size:1.15rem;line-height:1.5}.practice-clock{font-variant-numeric:tabular-nums;text-align:right;min-width:72px;font-family:Geist Mono,monospace;font-size:1.1rem}.fullscreen-action{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:.875rem}.fullscreen-action:hover{color:var(--text)}.session-exit{border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:0;font-size:1.4rem;line-height:1;display:grid}.session-exit:hover{border-color:var(--text)}.practice-layout{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;column-gap:clamp(24px,4vw,64px);min-height:0;padding-block:24px;display:grid}.practice-copy{grid-column:1/span 4;min-width:0}.practice-copy h2{letter-spacing:-.055em;max-width:14ch;margin:0;font-size:clamp(2rem,4vw,4.5rem);font-weight:500;line-height:.98}.practice-copy>p:not(.section-label){max-width:36ch;color:var(--text-secondary);margin:24px 0 0;font-size:1.05rem;line-height:1.55}.practice-diagram{flex-direction:column;grid-column:6/-1;justify-content:center;align-items:center;min-width:0;height:100%;min-height:0;display:flex}.practice-diagram h1{letter-spacing:-.06em;margin:0;font-size:clamp(2.4rem,5vw,5.5rem);font-weight:500;line-height:1}.practice-diagram .chord-diagram{height:min(60dvh,580px);min-height:280px}.chord-switcher{flex-wrap:wrap;gap:8px;margin-top:32px;display:flex}.chord-switcher button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:5px;min-height:40px;padding:0 14px}.chord-switcher button.is-active{border-color:var(--text);background:var(--text);color:var(--inverse)}.practice-navigation{border-top:1px solid var(--border);grid-template-columns:minmax(88px,auto) 1fr minmax(88px,auto);align-items:center;gap:28px;min-height:76px;display:grid}.practice-navigation>button{cursor:pointer;background:0 0;border:0;min-height:44px;font-weight:500}.practice-navigation>button:first-child{text-align:left}.practice-navigation>button:last-child{text-align:right}.practice-next{white-space:nowrap}.step-progress{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.step-progress span{background:var(--border);height:2px}.step-progress span.is-complete{background:var(--text)}@media (width<=900px){.welcome{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;padding-top:48px}.welcome__copy{grid-column:1/-1;max-width:none}.welcome h1{max-width:12ch;font-size:clamp(3.5rem,13vw,6.5rem)}.welcome__diagram{grid-column:1/-1;margin-top:56px}.calendar__intro{grid-template-columns:repeat(6,minmax(0,1fr));row-gap:28px}.calendar__intro .section-label,.calendar__intro h2{grid-column:1/span 4}.calendar__intro>p:last-child{grid-area:2/5/auto/-1}.practice-week__days{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-day,.calendar-day:first-child{border-left:0;border-bottom:1px solid var(--border);min-height:220px}.calendar-day:nth-child(odd){border-right:1px solid var(--border)}.practice-layout{grid-template-columns:repeat(6,minmax(0,1fr));align-content:center}.practice-copy{grid-column:1/span 2}.practice-diagram{grid-column:3/-1}}@media (width<=640px){.app-shell{padding-inline:20px}.topbar,.practice-header{min-height:64px}.topbar__meta,.practice-header__step{display:none}.welcome{min-height:calc(100dvh - 64px);padding-block:32px 40px}.welcome h1{font-size:clamp(3rem,18vw,5rem)}.welcome__lede{margin-top:24px}.session-outline{margin-block:32px}.welcome__diagram{margin-top:48px}.calendar{padding-block:72px}.calendar__intro{margin-bottom:48px;display:block}.calendar__intro h2{font-size:clamp(3rem,16vw,5rem)}.calendar__intro>p:last-child{margin-top:24px}.calendar__weeks{gap:56px}.practice-week__header{display:block}.practice-week__header>p{margin-top:14px}.practice-week__days{grid-template-columns:1fr}.calendar-day,.calendar-day:first-child,.calendar-day:nth-child(odd){border-right:0;min-height:auto}.calendar-day h4{margin-top:24px}.chord-diagram{height:auto;min-height:0}.app-shell--practice{grid-template-rows:auto 1fr auto;height:auto;min-height:100dvh;overflow:visible}.practice-header__actions{gap:8px}.fullscreen-action{width:36px;font-size:0}.fullscreen-action:after{content:"⛶";font-size:1.1rem}.practice-clock{min-width:52px}.practice-layout{flex-direction:column;align-items:stretch;gap:12px;min-height:auto;padding-block:24px 16px;display:flex}.practice-copy{order:2}.practice-copy .section-label{margin-bottom:8px}.practice-copy h2{max-width:none;font-size:clamp(1.6rem,8vw,2.5rem)}.practice-copy>p:not(.section-label){margin-top:12px;font-size:.95rem}.practice-diagram{order:1}.practice-diagram h1{font-size:clamp(2.5rem,13vw,4.5rem)}.practice-diagram .chord-diagram{width:min(100%,390px);height:auto;min-height:0;max-height:48dvh}.chord-switcher{margin-top:16px}.practice-navigation{background:var(--surface);grid-template-columns:minmax(72px,auto) 1fr minmax(72px,auto);gap:16px;min-height:68px;position:sticky;bottom:0}}@media (prefers-color-scheme:dark){:root{color:#fafafa;--surface:#0a0a0a;--surface-secondary:#171717;--text:#fafafa;--text-secondary:#a3a3a3;--border:#333;--border-strong:#fafafa;--focus:#52a8ff;--inverse:#0a0a0a;background:#0a0a0a}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
