:root{--ink:#18231d;--paper:#f4f0e7;--card:#fffdf8;--green:#284c3b;--lime:#d7f06b;--rust:#b94e36;--line:#d6d0c3;--muted:#677269;--player:132px}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:Arial,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}body{margin:0;padding-bottom:calc(76px + var(--player) + env(safe-area-inset-bottom))}a{color:inherit;text-decoration:none}a,button{touch-action:manipulation}.siteHeader{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:rgba(244,240,231,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20}.brand{font-family:Georgia,serif;font-weight:800;font-size:20px}.headerNote{font-size:12px;color:var(--muted)}main{min-height:70vh}.page{width:min(100%,780px);margin:0 auto;padding:40px 20px 80px}.eyebrow{font-weight:800;font-size:11px;letter-spacing:.18em;color:var(--rust);text-transform:uppercase}.hero{padding:18px 0 22px}.hero h1,.lessonIntro h1,.page>h1{font-family:Georgia,Yu Mincho,serif;font-size:clamp(36px,10vw,66px);line-height:1.08;letter-spacing:-.04em;margin:18px 0}.hero h1 em{font-style:normal;color:var(--green)}.hero>p:last-child,.lead{font-size:16px;line-height:1.9;color:#4f5b53}.continueCard{background:var(--green);color:#fff;border-radius:4px;padding:24px;margin:22px 0 44px;box-shadow:8px 8px 0 #c8beab}.continueCard>div:first-child{display:flex;justify-content:space-between}.cardNumber{font:30px Georgia,serif;color:var(--lime)}.sourceBadge,.statusPill{font-size:11px;font-weight:700;border:1px solid;border-radius:999px;padding:6px 9px}.continueCard h2{font:28px Georgia,Yu Mincho,serif;margin:24px 0 8px}.continueCard p{color:#dce5de}.cardMeta{display:flex;gap:18px;font-size:12px;margin:20px 0}.primaryButton{min-height:50px;background:var(--lime);color:var(--ink);border:0;border-radius:2px;padding:15px 18px;font-weight:800;font-size:15px;display:flex;justify-content:space-between;align-items:center;width:100%;cursor:pointer}.flowSection h2{font:28px Georgia,Yu Mincho,serif}.flowSection ol{list-style:none;padding:0;border-top:1px solid var(--line)}.flowSection li{display:flex;align-items:center;gap:22px;padding:18px 4px;border-bottom:1px solid var(--line);font-weight:700}.flowSection li span{color:var(--rust);font:14px Georgia,serif}.primaryNav{position:fixed;z-index:40;bottom:0;left:0;right:0;height:calc(68px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid var(--line)}.primaryNav a{min-height:48px;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--muted);position:relative}.primaryNav a[aria-current=page]{color:var(--green)}.primaryNav a[aria-current=page]:before{content:"";position:absolute;top:0;width:28px;height:3px;background:var(--rust)}.lessonList{margin-top:36px}.lessonList article{display:grid;grid-template-columns:42px 1fr auto;grid-gap:14px;gap:14px;align-items:start;padding:22px 0;border-top:1px solid var(--line)}.lessonList h2{font:20px Georgia,Yu Mincho,serif;margin:0 0 6px}.lessonList p{font-size:13px;color:var(--muted);margin:0 0 8px}.lessonList small,.lessonNumber{color:var(--rust)}.lessonNumber{font:18px Georgia,serif}.lessonList a{width:48px;height:48px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:50%}.comingSoon{font-size:11px;padding:7px;background:#ddd7cb;color:var(--muted)}.lessonIntro{margin-bottom:28px}.lessonIntro>p:last-child{padding-left:14px;border-left:3px solid var(--lime)}.phaseStepper{display:flex;justify-content:space-between;list-style:none;padding:0;margin:24px 0 30px}.phaseStepper li{display:flex;flex-direction:column;align-items:center;gap:6px;color:#8a918c;font-size:9px;flex:1 1;position:relative}.phaseStepper li:not(:last-child):after{content:"";position:absolute;top:13px;left:65%;width:70%;height:1px;background:var(--line)}.phaseStepper span{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;background:var(--paper);z-index:1}.phaseStepper .current{color:var(--ink);font-weight:800}.phaseStepper .current span{background:var(--green);color:#fff;border-color:var(--green)}.phaseStepper .complete span{background:var(--lime);border-color:var(--lime);color:var(--ink)}.practiceCard{background:var(--card);border:1px solid var(--line);padding:24px 18px}.practiceCard h2{font:30px Georgia,Yu Mincho,serif;margin:10px 0 16px}.sourceBadge{display:inline-block;color:var(--green);margin-bottom:18px}.sourceBadge.site-original{color:#875333}.instruction{font-size:16px;line-height:1.9}.cue{background:#eef0e6;border-left:4px solid var(--lime);padding:16px;margin:22px 0;font-size:13px;line-height:1.7}.cue strong{display:block;font-size:11px;letter-spacing:.1em;margin-bottom:4px}.scorePanel{margin:24px -18px}.scoreToolbar{display:flex;align-items:center;gap:6px;padding:8px 18px}.scoreToolbar span{margin-right:auto;font-size:11px;font-weight:700}.scoreToolbar button{min-height:40px;border:1px solid var(--line);background:#fff;padding:0 12px}.scoreToolbar button[aria-pressed=true]{background:var(--green);color:#fff}.scoreScroll{overflow-x:auto;background:#f7f4ec;border-block:1px solid var(--line);padding:18px 10px 8px}.musicScore{display:block;min-width:430px;max-width:680px;height:auto;margin:0 auto;color:var(--ink)}.staffLine{stroke:#667067;stroke-width:1}.measureLine{stroke:var(--ink);stroke-width:1.5}.endBar{stroke:var(--ink);stroke-width:4}.chordSymbol,.trebleClef{fill:var(--ink)}.chordSymbol{font:700 15px Georgia,serif}.beam{fill:none;stroke:var(--ink);stroke-width:6;stroke-linecap:square}.noteHead{fill:currentColor}.noteStem{stroke:currentColor;stroke-width:2}.targetGlyph{color:var(--rust)}.passingGlyph{color:var(--ink)}.accidental{font:18px Georgia,serif;fill:var(--ink)}.noteLabel{font:700 10px Arial,sans-serif;fill:currentColor}.beatLabel{font:9px Arial,sans-serif;fill:var(--muted)}.scoreLegend{display:flex;gap:18px;padding:12px 18px 2px;font-size:10px;color:var(--muted)}.scoreLegend span{display:flex;align-items:center;gap:6px}.scoreLegend i{width:9px;height:9px;border-radius:50%;display:inline-block}.legendTarget{background:var(--rust)}.legendPassing{background:var(--ink)}.scoreHint{font-size:11px;color:var(--muted);padding:0 18px}.completionMessage{padding:18px;background:#eff5d2}.completionMessage>*{display:block;margin:4px 0}.completionMessage span{font-size:12px;color:var(--muted)}.practicePlayer{position:fixed;z-index:35;bottom:calc(68px + env(safe-area-inset-bottom));left:0;right:0;min-height:var(--player);background:#17251e;color:#fff;display:grid;grid-gap:10px;padding:13px 16px;border-top:3px solid var(--lime)}.playerTitle{min-width:0}.playerTitle span{display:block;font-size:8px;letter-spacing:.15em;color:var(--lime)}.playerTitle strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.playButton{grid-row:1/3;grid-column:2;width:54px;height:54px;border:0;border-radius:50%;background:var(--lime);font-size:19px}.tempoControl{display:flex;align-items:center;gap:8px}.modeButton,.tempoControl button{min-width:44px;min-height:40px;border:1px solid #617168;background:transparent;color:#fff}.tempoControl span{font-size:9px}.tempoControl strong{font-size:15px}.modeButton{position:absolute;right:78px;bottom:14px;padding:0 10px}.bluesGrid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px;margin:30px 0}.bluesGrid div{height:90px;border:1px solid var(--line);background:var(--card);padding:10px;display:flex;flex-direction:column;justify-content:space-between}.bluesGrid span{font-size:10px;color:var(--muted)}.bluesGrid strong{font:20px Georgia,serif}.bluesGrid .activeBar{border-color:var(--rust);box-shadow:inset 0 -4px var(--rust)}.practicePrompt{background:var(--green);color:#fff;padding:22px}.practicePrompt span{font-size:10px;color:var(--lime)}.practicePrompt h2{font:24px Georgia,Yu Mincho,serif}.practicePrompt p{font-size:13px;color:#d7e1da}.emptyState{border:1px dashed #aaa396;padding:30px;margin-top:30px;text-align:center}.emptyState strong{font:24px Georgia,Yu Mincho,serif}.emptyState p{color:var(--muted);line-height:1.7}.historyList article{border-top:1px solid var(--line);padding:18px 0}.historyList article>div{display:flex;justify-content:space-between}.historyList p,.historyList span{font-size:12px;color:var(--muted)}.textButton{min-height:44px;background:none;border:0;text-decoration:underline;color:var(--rust)}.prosePage{line-height:1.9}.prosePage dl div{border-top:1px solid var(--line);padding:18px 0}.prosePage dt{font-weight:800}.prosePage dd{margin:5px 0;color:var(--muted)}@media(min-width:700px){:root{--player:84px}.siteHeader{padding-inline:40px}.page{padding-top:64px}.practicePlayer{left:50%;transform:translateX(-50%);width:min(760px,calc(100% - 32px));bottom:20px;border-radius:4px;grid-template-columns:1fr auto auto;align-items:center}.playButton{grid-row:auto}.playButton,.tempoControl{grid-column:auto}.modeButton{position:static}.primaryNav{top:72px;bottom:auto;left:auto;right:40px;width:360px;height:52px;background:transparent;border:0}.primaryNav a[aria-current=page]:before{top:auto;bottom:4px}.bluesGrid{grid-template-columns:repeat(4,1fr)}body{padding-bottom:120px}.practiceCard{padding:36px}.scorePanel{margin-inline:-36px}}.dailyCard,.lessonPurpose{background:var(--green);color:#fff;padding:24px;margin:22px 0 38px;border-radius:4px}.dailyCard h2{font:28px Georgia,Yu Mincho,serif;margin:8px 0}.dailyCard>p:not(.eyebrow){color:#dce5de;line-height:1.7}.lessonPurpose>p{font-size:16px;line-height:1.9}.lessonPurpose aside{padding:14px;border-left:3px solid var(--lime);background:#1e3b2e;font-size:12px;line-height:1.7}.practiceSetup{display:grid;grid-gap:12px;gap:12px;margin:20px 0 32px}.lessonUtility label,.practiceSetup>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:700}.lessonUtility select,.practiceSetup select{min-height:44px;border:1px solid var(--line);background:#fff;padding:0 14px;font-size:16px}.randomButton{min-height:52px;border:0;background:var(--lime);font-weight:800;padding:0 16px}.stepIndex h2{font:28px Georgia,Yu Mincho,serif}.stepIndex>button{width:100%;display:grid;grid-template-columns:34px 1fr auto;grid-gap:12px;gap:12px;text-align:left;align-items:start;background:var(--card);border:0;border-top:1px solid var(--line);padding:18px 4px;color:var(--ink)}.stepIndex>button>span{font:18px Georgia;color:var(--rust)}.stepIndex small,.stepIndex strong{display:block}.stepIndex small{font-size:10px;color:var(--rust);margin-bottom:4px}.stepIndex p{font-size:12px;line-height:1.6;color:var(--muted);margin:6px 0}.lessonUtility{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.lessonUtility>button{min-height:44px;border:0;background:none;text-decoration:underline}.phaseStepper li button{border:0;background:none;color:inherit;font:inherit;display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.phaseStepper li:not(:last-child):after{left:70%;width:60%}.stepSignificance{font-size:13px;line-height:1.7;color:var(--muted);border-left:3px solid var(--lime);padding-left:12px}.scoreToolbar{flex-wrap:wrap;gap:8px}.scoreOptionGroup{display:flex}.scoreOptionGroup button{padding:0 9px}.scoreContext{display:flex;align-items:baseline;gap:12px;padding:10px 18px;background:#f7f4ec;border-top:1px solid var(--line)}.scoreContext strong{font:700 18px Georgia}.scoreContext span{font-size:10px;color:var(--muted)}.bassClef{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round}.bassClef circle{fill:var(--ink);stroke:none}.stepActions{display:grid;grid-template-columns:auto 1fr;grid-gap:10px;gap:10px}.stepActions>button:first-child{min-height:50px;border:1px solid var(--line);background:#fff;padding:0 12px}.stepActions .primaryButton{display:block}.completionMessage{display:grid;grid-gap:8px;gap:8px}.completionMessage button{min-height:44px;border:1px solid var(--green);background:#fff}.practicePlayer{grid-template-columns:1fr auto;gap:10px}.modeControl{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.modeControl button{min-height:44px;background:transparent;color:#fff;border:1px solid #617168}.modeControl button[aria-pressed=true]{background:#2b493a;border-color:var(--lime)}.modeControl small{display:block;color:#aebbb3;font-size:8px;margin-top:2px}.tempoControl{grid-column:1/-1}.tempoControl label{display:flex;align-items:center;gap:9px;flex:1 1}.tempoControl label span{white-space:nowrap}.tempoControl input{width:100%;accent-color:var(--lime);min-height:28px}.practicePrompt button{min-height:44px;padding:0 14px;border:1px solid #fff;background:transparent;color:#fff}.primaryNav{grid-template-columns:repeat(3,1fr)}@media(min-width:700px){.practiceSetup{grid-template-columns:1fr 1fr;align-items:end}.practicePlayer{grid-template-columns:1fr auto minmax(260px,1fr) minmax(210px,1fr)}.practicePlayer .playButton{grid-column:2}.modeControl{grid-column:3;grid-row:1}.tempoControl{grid-column:4;grid-row:1}.scoreToolbar{flex-wrap:nowrap}}.scoreScroll{overflow-x:hidden;padding:8px 2px 2px}.musicScore{width:100%;min-width:0;max-width:none}.bassClef{fill:var(--ink);stroke:none}.ledgerLine{stroke:#667067;stroke-width:1}.scoreContext{flex-wrap:wrap}.scoreContext small{margin-left:auto;font-size:9px;color:var(--rust)}.beam{stroke-width:5}@media(max-width:420px){.scorePanel{margin-inline:-18px}.scoreContext,.scoreToolbar{padding-inline:12px}.noteLabel{font-size:9px}}.metronomeButton{grid-column:1/-1;min-height:38px;border:1px solid #617168;background:transparent;color:#fff}.metronomeButton[aria-pressed=true]{border-color:var(--lime)}.metronomeButton strong{color:var(--lime);margin-left:6px}:root{--player:184px}@media(min-width:700px){:root{--player:118px}.metronomeButton{grid-column:3;grid-row:2}.tempoControl{grid-row:2!important;grid-column:4!important}}.methodBasis{margin:18px 0;padding:14px;background:#f3f5e8;border-left:4px solid var(--green);font-size:12px;line-height:1.7}.methodBasis strong{display:block;color:var(--green);margin-bottom:4px}.scoreKeyControl{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700}.scoreKeyControl select{min-height:38px;border:1px solid var(--line);background:#fff;padding:0 8px;font-size:13px}.scoreContext>strong{white-space:nowrap}.horizontalScoreScroll{overflow-x:auto;scrollbar-gutter:stable}.horizontalScore{width:auto;max-width:none;margin-left:0;margin-right:0}.generationTask{margin:20px 0;padding:18px;background:#172f25;color:#fff;border-left:4px solid var(--lime)}.generationTask h3{font:20px Georgia,Yu Mincho,serif;line-height:1.55;margin:5px 0 12px}.generationTask ul{padding-left:20px;color:#dce5de;font-size:12px;line-height:1.8}.generationTask .primaryButton{width:100%;margin-top:10px}.modelExplanation{padding:13px;background:#244336;line-height:1.7;font-size:12px}.modelExplanation strong{display:block;color:var(--lime);margin-bottom:4px}.curriculumIntro{color:var(--muted);font-size:13px;line-height:1.7;margin:-8px 0 18px}.lessonList+.lessonList{margin-top:56px;padding-top:34px;border-top:2px solid var(--green)}.rhythmScore .openNoteHead{fill:var(--card);stroke:currentColor;stroke-width:2}.rhythmScore .noteFlag{fill:none;stroke:currentColor;stroke-width:2}.rhythmRest path{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tripletBracket line{stroke:var(--rust);stroke-width:1}.tripletBracket text{font:700 10px Georgia;fill:var(--rust)}.harmonyStepNav{display:grid;grid-gap:6px;gap:6px;margin:18px 0}.harmonyStepNav a{display:flex;gap:10px;align-items:center;padding:10px 12px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none}.harmonyStepNav a.current{border-color:var(--green);background:#eef2e8}.harmonyStepNav span{font-size:12px}.harmonyKey{display:flex;justify-content:space-between;align-items:center;font-weight:700;margin:18px 0}.harmonyKey select{min-height:42px;padding:0 14px;border:1px solid var(--line);background:#fff}.voicingSequence{display:flex;gap:12px;overflow-x:auto;padding-bottom:12px}.voicingSequence>div{min-width:330px;background:#f8f5ed;border:1px solid var(--line);padding:8px}.grandStaff{width:100%;height:auto}.grandStaff line{stroke:#687068;stroke-width:1}.grandStaff ellipse{fill:var(--ink)}.grandStaff text{font-size:10px;fill:var(--ink)}.grandStaff>text:first-of-type,.grandStaff>text:nth-of-type(2){font-size:40px}.grandStaff .voicingName{font:700 15px Georgia}.harmonyKeyboard{height:88px;position:relative;margin:8px 4px}.whiteKey{width:6.66%;height:88px;border:1px solid #889088;background:#fff}.blackKey,.whiteKey{position:absolute;top:0}.blackKey{z-index:2;width:3.6%;height:55px;background:#17251e;color:#fff}.whiteKey.active{background:var(--lime)}.blackKey.active{background:var(--rust)}.harmonyKeyboard i{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-size:8px;font-style:normal}.harmonyPlay{width:100%;min-height:52px;background:var(--green);color:#fff;border:0;font-weight:800}.sourceBadge.source-phrase{background:#e8e2f3;color:#4b3767}@media(min-width:700px){.harmonyStepNav{grid-template-columns:repeat(5,1fr)}.harmonyStepNav a{display:block;text-align:center}.harmonyStepNav span{display:block;margin-top:4px}}.grandStaff>text.voicingName{font:700 15px Georgia}.harmonyClef{fill:var(--ink)}.grandBrace{fill:none;stroke:var(--ink);stroke-width:2}.grandStaff .harmonyStem{stroke:var(--ink);stroke-width:1.5}.grandStaff .harmonyLedger{stroke:var(--ink);stroke-width:1}.grandStaff .harmonyAccidental{font:18px Georgia}.lessonList article{display:block;padding:0}.lessonList article>a{display:grid;grid-template-columns:42px minmax(0,1fr) 48px;grid-gap:14px;gap:14px;align-items:start;justify-items:stretch;width:100%;height:auto;min-height:96px;padding:22px 4px;background:none;color:inherit;border-radius:0;text-align:left}.lessonList article>a>b{align-self:center;width:48px;height:48px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:50%}.randomPractice{margin-top:56px;padding:26px 22px;background:var(--green);color:#fff;border-radius:4px;box-shadow:8px 8px 0 #c8beab}.randomPractice h2{font:28px Georgia,Yu Mincho,serif;margin:8px 0 10px}.randomPractice>p:not(.eyebrow){color:#dce5de;font-size:13px;line-height:1.8;margin-bottom:20px}@media(max-width:699px){.hero h1 br{display:none}.hero h1 em{display:inline}.hero h1 em:before{content:" "}}.sequenceHint{margin:4px 0 10px;color:var(--muted);font-size:11px;font-weight:700}.voicingSequence{scroll-snap-type:x mandatory}.voicingSequence>div{position:relative;scroll-snap-align:start}.sequenceNumber{position:absolute;z-index:2;top:8px;right:10px;padding:4px 7px;border-radius:999px;background:var(--green);color:#fff;font-size:9px;font-weight:700}.primaryNav{transition:transform .22s ease,visibility .22s}.primaryNav.isHidden{transform:translateY(110%);visibility:hidden;pointer-events:none}.practicePlayer{transition:bottom .22s ease;grid-template-columns:minmax(0,1fr) auto;min-height:74px;padding-block:10px}.navHidden .practicePlayer{bottom:env(safe-area-inset-bottom)}.playerDisclosure{grid-column:1/-1;min-height:32px;border:0;border-top:1px solid #415349;background:transparent;color:#dce5de;display:flex;align-items:flex-end;justify-content:space-between;padding:7px 2px 0;font-size:10px}.playerDisclosure span{color:var(--lime);font-weight:800}.playerSettings{grid-column:1/-1;display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}.playerSettings[hidden]{display:none}.playerSettings .metronomeButton,.playerSettings .modeControl,.playerSettings .tempoControl{grid-column:1/-1}@media(max-width:699px){:root{--player:108px}body{padding-bottom:calc(76px + var(--player) + env(safe-area-inset-bottom))}.navHidden{padding-bottom:calc(var(--player) + env(safe-area-inset-bottom))}}@media(min-width:700px){.primaryNav.isHidden{transform:none;visibility:visible;pointer-events:auto}.practicePlayer{bottom:20px}.playerDisclosure{display:none}.playerSettings,.playerSettings[hidden]{display:contents}}