.pitch-pair[data-astro-cid-hmkgaeuc]{display:flex;justify-content:center;gap:2rem;padding-block:2rem}.pitch-pair[data-astro-cid-hmkgaeuc] span[data-astro-cid-hmkgaeuc]{display:grid;place-items:center;width:5rem;height:5rem;border:2px solid var(--border-strong);border-radius:50%;font-size:2rem}.pitch-pair[data-astro-cid-hmkgaeuc] [data-astro-cid-hmkgaeuc][data-active=true]{border-color:var(--brand-accent);background:var(--surface-brand-wash)}.sync-lanes[data-astro-cid-hmkgaeuc]{display:grid;gap:.6rem;margin-block:1rem}.sync-lanes[data-astro-cid-hmkgaeuc]>span[data-astro-cid-hmkgaeuc]{font-size:.85rem;color:var(--text-secondary)}.sync-lanes[data-astro-cid-hmkgaeuc]>div[data-astro-cid-hmkgaeuc]{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:3px}.sync-lanes[data-astro-cid-hmkgaeuc] i{height:1.8rem;border-bottom:2px solid var(--border-subtle)}.sync-lanes[data-astro-cid-hmkgaeuc] i[data-target=true]{border:1px solid var(--brand-accent);border-radius:var(--radius-control)}.sync-lanes[data-astro-cid-hmkgaeuc] i[data-active=true]{background:var(--brand-accent)}.sync-lanes[data-astro-cid-hmkgaeuc] i[data-hit=true]{border-bottom:4px solid var(--feedback-correct)}.sync-lanes[data-astro-cid-hmkgaeuc][data-faded=true]{opacity:.15}.sync-pad[data-astro-cid-hmkgaeuc]{display:grid;place-items:center;gap:.5rem;width:100%;min-height:160px;touch-action:manipulation;user-select:none;border:2px solid var(--border-brand);background:var(--surface-brand-wash);border-radius:var(--radius-control);color:var(--text-primary)}.sync-pad[data-astro-cid-hmkgaeuc] strong[data-astro-cid-hmkgaeuc]{font-size:2rem}.sync-pad[data-astro-cid-hmkgaeuc]:active:not(:disabled){background:var(--surface-raised)}.core-training[data-astro-cid-hmkgaeuc] details[data-astro-cid-hmkgaeuc] summary[data-astro-cid-hmkgaeuc]{min-height:48px;padding-block:.75rem;cursor:pointer}.game-intro{padding:clamp(1rem,3vw,2rem);border:1px solid var(--border-brand);border-radius:var(--radius-control);background:var(--surface-brand-wash)}.game-intro h4{font-size:clamp(1.5rem,3vw,2rem);margin-block:.5rem}.game-intro p{max-width:38rem;line-height:1.65}.tutorial-visual{display:grid;place-items:center;min-height:7rem;margin-block:1rem;border-block:1px solid var(--border-subtle);color:var(--brand-text)}.tutorial-visual span{font-size:clamp(1.8rem,4vw,3rem);font-weight:600;text-align:center}.tutorial-visual[data-step=answer] span{animation:lesson-bloom .6s ease-out}.tutorial-again{margin-bottom:1rem;min-height:44px}.result-celebration{min-height:6rem;position:relative;display:grid;place-items:center;color:var(--brand-text);isolation:isolate;overflow:hidden}.result-celebration span{font-size:2rem;font-weight:600;z-index:1}.result-celebration i{position:absolute;width:4rem;height:4rem;border:2px solid currentColor;border-radius:50%;opacity:.4}.result-celebration i:nth-child(2){width:5.5rem;height:5.5rem}[data-result-state=success] [data-celebration] i{animation:lesson-bloom .8s ease-out both}[data-result-state=success] [data-celebration] i:nth-child(2){animation-delay:.12s}[data-kind=melody] i{border-radius:.4rem;width:10rem;height:3rem}[data-kind=mystery] i{border-radius:.4rem}[data-kind=voice] i:first-child{transform:translate(-.5rem)}[data-kind=voice] i:nth-child(2){transform:translate(.5rem)}[data-answer-state=correct] [data-harmony-feedback],[data-answer-state=correct] [data-chord-feedback]{color:var(--feedback-correct);animation:lesson-bloom .45s ease-out}.result-accomplishment{font-weight:600}.result-learning{border-top:1px solid var(--border-subtle);margin-top:1.5rem;padding-top:.5rem}.result-learning summary{min-height:48px;padding-block:.75rem;cursor:pointer}.result-learning p{color:var(--text-secondary);line-height:1.7}.result-learning a{display:inline-flex;min-height:44px;align-items:center;text-decoration:underline;text-underline-offset:.25em}.answer-review{padding-left:1.5rem;margin-block:1rem}.answer-review li{line-height:1.7}.game-turn{font-size:1.35rem;font-weight:600;color:var(--brand-text);margin-block:.75rem}.challenge-picker{display:grid;gap:.5rem;margin-block:1rem}.challenge-picker select{min-height:48px;width:100%;min-width:0;font:inherit;font-size:16px;color:var(--text-primary);background:var(--surface-raised);padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-control)}@keyframes lesson-bloom{0%{opacity:.3;scale:.85}to{opacity:1;scale:1}}@media(prefers-reduced-motion:reduce){.tutorial-visual span,.result-celebration i,[data-answer-state] [data-harmony-feedback],[data-answer-state] [data-chord-feedback]{animation:none!important}}@media(max-width:520px){.game-intro .activity-actions{flex-direction:column}.game-intro .activity-actions button{width:100%}}.copy-beat,.activity{--chord-blue: var(--palette-blue-400)}.chord-swatch.blue{background:var(--chord-blue)}.chord-signal[data-tone=blue]{color:var(--chord-blue)}[data-colorless=true] .chord-swatch{background:transparent!important;border:1px solid currentColor}.training-path-label{font-weight:600;margin-block:1.5rem .6rem}.training-path-label span{display:block;font-size:.875rem;color:var(--text-secondary);font-weight:400;margin-top:.4rem}[data-answer-state=correct] [data-core-feedback]{color:var(--feedback-correct)}.activity-nav[aria-label="Timing training"]{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:520px){.activity-nav[aria-label="Pitch training"]{grid-template-columns:repeat(2,minmax(0,1fr))}}.learning-setup{margin-block:0 1.5rem}.learning-setup>p{max-width:42rem;line-height:1.6}.learning-setup fieldset{border:0;padding:1rem 0;margin:0;min-width:0}.learning-setup legend{font-weight:600;padding:0}.learning-setup label{display:grid;gap:.5rem;margin-top:.75rem}.learning-setup select{min-height:48px;width:100%;min-width:0;font:inherit;font-size:16px;padding:.6rem;color:var(--text-primary);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-control)}.learning-setup .caregiver-option{display:flex;align-items:center;min-height:48px}.caregiver-option input{width:1.25rem;height:1.25rem;flex-shrink:0}.learning-setup summary{cursor:pointer;min-height:48px;padding-block:.75rem}.learning-result{border-top:1px solid var(--border-subtle);padding-top:1.5rem;margin-top:1rem}.learning-result h5{font-size:1.1rem;margin-block:1.5rem .5rem}.learning-result p{line-height:1.65;max-width:42rem}[data-tutorial-step],[data-tutorial-skip],[data-learning-action]{min-height:48px}@media(max-width:520px){.learning-result .activity-actions{flex-direction:column;align-items:stretch}}.harmony-level{display:grid;gap:.6rem;margin-top:1.5rem;font-size:.875rem}.harmony-level select{min-height:48px;width:100%;min-width:0;padding:.7rem;background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-control);font:inherit;font-size:16px}.harmony-timeline{display:flex;gap:.5rem}.harmony-timeline span{flex:1;padding:.75rem .25rem;text-align:center;border:1px solid var(--border-strong);border-radius:var(--radius-control);font-family:var(--font-mono)}.harmony-timeline span[data-active=true]{outline:2px solid var(--brand-accent);background:var(--surface-brand-wash)}.harmony-choices,.harmony-references{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.harmony-choices button{flex:1 1 48px}.harmony-references button{flex:1;font-size:.8125rem}.melody-map{display:block;width:100%;max-height:230px;margin-top:1rem;border:1px solid var(--border-default);border-radius:var(--radius-control);background:var(--surface-subtle)}.melody-map text{fill:var(--text-secondary);font-size:12px;font-family:var(--font-mono)}.melody-map circle{fill:var(--surface-raised);stroke:var(--border-strong)}.melody-map .path-note{fill:var(--brand-accent);stroke:var(--brand-accent)}.melody-map polyline{fill:none;stroke:var(--brand-accent);stroke-width:2}.harmony-activity [data-harmony-results]{margin-top:1.5rem}@media(max-width:620px){.harmony-choices button{flex-basis:20%}.harmony-timeline{gap:.35rem}}.copy-journey{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;margin-top:1.5rem;color:var(--text-secondary);font-size:.875rem}.copy-journey li{border-left:3px solid var(--border-default);padding:.5rem}.copy-journey li[aria-current]{border-color:var(--brand-accent);color:var(--text-primary);background:var(--surface-brand-wash)}.copy-options{margin-top:1.25rem}.copy-options summary{min-height:48px;padding-block:.75rem;cursor:pointer;font-size:.875rem}.copy-options label{display:block;margin-block:.6rem;font-size:.875rem}.copy-options select{width:100%;min-height:48px;min-width:0;padding:.7rem;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface-raised);color:var(--text-primary);font:inherit;font-size:16px}.copy-phase{text-align:center;color:var(--brand-text);font-weight:600;margin-bottom:.5rem}.copy-beat .copy-pad{position:relative;touch-action:manipulation;gap:.45rem;transition:background-color .12s,border-color .12s}.copy-pad .drum-face{width:64px;height:30px;position:relative;display:block}.drum-face i{width:6px;height:8px;border-radius:50%;background:var(--text-primary);position:absolute;top:0;left:14px}.drum-face i:nth-child(2){left:44px}.drum-face b{position:absolute;width:24px;height:12px;border-bottom:2px solid var(--text-primary);border-radius:50%;left:20px;top:10px}.copy-slots{grid-template-columns:repeat(4,minmax(0,1fr));min-height:2.5rem}.copy-slots li[data-hit=true]{color:var(--feedback-correct);border-color:var(--feedback-correct)}.copy-slots li[data-active=true]{color:var(--brand-text);border-color:var(--brand-accent);background:var(--surface-brand-wash)}.copy-beat [data-beat-summary]{color:var(--brand-text)}@media(prefers-reduced-motion:reduce){.copy-beat .copy-pad{transition:none}}@media(max-height:500px)and (orientation:landscape){.copy-pad .drum-face{display:none}}.copy-beat[data-copy-state=answering] .copy-phase{font-size:1.25rem}.copy-beat[data-copy-state=answering] .copy-pad{border-color:var(--brand-accent);background:var(--surface-brand-wash)}.copy-beat [data-copy-ready]{width:100%;min-height:52px}.play-container{max-width:1040px}.playground [hidden]{display:none!important}.playground{background:var(--surface-subtle)}.play-heading{max-width:43rem;margin-bottom:2rem}.play-eyebrow{display:block;color:var(--brand-text);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.play-heading h2{margin-block:.75rem 1rem;font-size:clamp(2.3rem,5vw,4rem);line-height:1.06;letter-spacing:-.045em}.play-heading p,.activity-heading p{color:var(--text-secondary);line-height:1.65}.activity-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--border-default)}.activity-nav a{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;min-height:64px;padding:.8rem 1rem;border-bottom:3px solid transparent;color:var(--text-secondary);font-weight:600}.activity-nav a[aria-current]{border-color:var(--brand-accent);color:var(--text-primary);background:var(--surface-brand-wash)}.activity-nav a>span{color:var(--brand-text);font-size:.75rem}.activity-nav small{margin-left:auto;font-size:.75rem;font-weight:400}.activity-nav a[data-complete=true]>span:after{content:" ✓";color:var(--feedback-correct)}.play-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-block:1rem;color:var(--text-secondary);font-size:.8125rem}.sound-control{display:flex;gap:.65rem;align-items:center;min-height:44px}.sound-control input{width:7rem;min-height:44px;accent-color:var(--brand-accent)}.sound-control output{width:3ch;font-variant-numeric:tabular-nums}.activity{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(1.5rem,4vw,3rem);padding:clamp(1.25rem,4vw,2.5rem);border:1px solid var(--border-default);border-radius:var(--radius-feature);background:var(--surface-raised);scroll-margin-top:5rem}.activity>*,.activity-body>*,.voice-options>*{min-width:0}.activity h3{margin-block:.75rem 1rem;font-size:clamp(1.8rem,3.5vw,2.6rem);line-height:1.1;letter-spacing:-.035em}.activity h4{font-size:clamp(1.3rem,2.5vw,1.8rem);letter-spacing:-.02em;line-height:1.2}.playground button,.playground .primary-action,.playground .secondary-action{min-height:48px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.7rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-control);color:var(--text-primary);background:var(--fill-subtle);font:inherit;font-weight:600;font-size:.9375rem;line-height:1.4;text-align:center;cursor:pointer;touch-action:manipulation}.playground .primary-action{background:var(--action-primary-bg);color:var(--action-primary-fg);border-color:transparent}.playground button:disabled{opacity:.5;cursor:default}.playground :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}.playground :is(h3,h4):focus{outline:none}.playground :is(h3,h4):focus-visible{outline:2px solid var(--focus-ring);outline-offset:5px}.playground :is(button,a,summary,input,select){-webkit-tap-highlight-color:transparent;scroll-margin-block:5rem 2rem}.activity-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.activity-actions>*{flex:1 1 9rem}.activity-feedback{min-height:3em;margin-top:1rem;font-size:1rem;line-height:1.5;color:var(--text-primary)}.supporting-copy,.privacy-note{margin-top:.8rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.6}.finish-link{display:flex;align-items:center;min-height:44px;width:fit-content;padding-block:.5rem;margin-top:.5rem;color:var(--text-secondary);text-decoration:underline;text-underline-offset:4px;font-size:.875rem}.activity-result>p{margin-top:1rem}.activity-result>.play-eyebrow{margin-bottom:.75rem}.beat-count{text-align:center;color:var(--text-secondary);font-variant-numeric:tabular-nums;min-height:1.5rem}.playground .beat-pad{display:flex;flex-direction:column;width:min(100%,14rem);aspect-ratio:1;border-radius:50%;margin:1rem auto;border:2px solid var(--border-brand);background:var(--surface-brand-wash);user-select:none;-webkit-user-select:none;touch-action:none;transition:border-color .1s,background-color .1s}.beat-pad strong{font-size:1.75rem;letter-spacing:-.035em}.beat-pad span{max-width:10rem;font-size:.8125rem;color:var(--text-secondary)}.playground .beat-pad[data-pulse=true]{border-color:var(--brand-accent);background:var(--fill-strong)}.playground .beat-pad:active{border-color:var(--brand-accent-highlight)}.beat-slots{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));list-style:none;gap:.4rem}.beat-slots li{border-bottom:3px solid var(--border-strong);padding-block:.45rem;text-align:center;font-size:.8125rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.beat-slots li[data-grade=Perfect],.beat-slots li[data-grade=Great]{border-color:var(--feedback-correct);color:var(--feedback-correct)}.beat-slots li[data-grade=Early],.beat-slots li[data-grade=Late],.beat-slots li[data-grade=Miss]{border-color:var(--feedback-off)}.beat-slots li[data-grade=Skipped]{border-color:var(--text-disabled)}.timing-details{margin-top:1.25rem;border-block:1px solid var(--border-default)}.timing-details summary{padding-block:.85rem;min-height:48px;cursor:pointer}.timing-axis{display:flex;justify-content:space-between;margin-top:1rem;font-size:.75rem;color:var(--text-secondary)}.timing-review{list-style:none;margin-block:.5rem 1rem}.timing-review li{display:grid;grid-template-columns:1.4rem minmax(0,1fr) 5.5rem;gap:.5rem;align-items:center;min-height:2.25rem;font-size:.75rem;font-variant-numeric:tabular-nums}.timing-track{position:relative;height:.8rem;background:var(--fill-default);border-radius:2px}.timing-track:before{content:"";position:absolute;left:50%;height:100%;border-left:1px solid var(--text-secondary)}.timing-track i{position:absolute;width:.6rem;height:.6rem;top:.1rem;transform:translate(-50%);border-radius:50%;background:var(--feedback-off)}.timing-track i[data-close=true]{background:var(--feedback-correct)}.timing-value{text-align:right}.chord-signal{display:grid;place-content:center;justify-items:center;gap:.8rem;min-height:9rem;color:var(--chord-neutral);text-align:center}.chord-signal i{width:3.5rem;height:3.5rem;border:1px solid currentColor;border-radius:50%;box-shadow:inset 0 0 0 8px var(--surface-raised),inset 0 0 0 9px currentColor}.chord-signal[data-tone=red]{color:var(--chord-red)}.chord-signal[data-tone=yellow]{color:var(--chord-yellow)}.chord-signal[data-playing=true] i{animation:chord-breathe 1.5s ease-in-out infinite alternate}.chord-examples,.chord-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.chord-examples button{flex-wrap:wrap}.chord-examples small{display:block;flex-basis:100%;font-size:.75rem;color:var(--text-secondary);font-weight:400}.chord-swatch{flex-shrink:0;width:.75rem;height:.75rem;border-radius:50%}.chord-swatch.red{background:var(--chord-red)}.chord-swatch.yellow{background:var(--chord-yellow)}.chord-choices{margin-top:1rem}.chord-choices button{min-height:64px}.chord-choices [data-result=correct]{border-color:var(--feedback-correct);background:var(--surface-correct-wash)}.chord-choices [data-result=miss]{border-color:var(--feedback-error);background:var(--surface-error-wash)}.voice-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}.voice-options label{font-size:.8125rem;color:var(--text-secondary)}.voice-options select{display:block;min-height:48px;width:100%;margin-top:.35rem;border:1px solid var(--border-strong);border-radius:var(--radius-control);padding:.6rem .5rem;background:var(--surface-strong);color:var(--text-primary);font:inherit;font-size:1rem}.voice-console{position:relative}.voice-target{position:absolute;top:.25rem;left:0;display:grid;z-index:1}.voice-target span,.voice-target small{color:var(--text-secondary);font-size:.75rem}.voice-target strong{font-size:1.5rem;font-variant-numeric:tabular-nums}.pitch-meter{position:relative;height:12rem;display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;padding-block:.5rem;font-size:.8125rem;color:var(--text-secondary)}.pitch-center{position:absolute;top:50%;left:0;right:0;height:1.75rem;transform:translateY(-50%);background:var(--surface-correct-wash);border-block:1px solid var(--border-default)}.pitch-center-label{position:absolute;top:50%;right:0;transform:translateY(-50%);color:var(--feedback-correct)}.pitch-meter b{position:absolute;left:45%;top:50%;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--brand-accent);transform:translate(-50%,calc(-50% + var(--pitch-shift, 0px)));opacity:0}.pitch-meter:not([data-state=waiting]) b{opacity:1}.pitch-meter[data-state=matched] b{background:var(--feedback-correct)}.voice-reading{text-align:center;color:var(--text-secondary);font-size:.8125rem;min-height:2.8em;font-variant-numeric:tabular-nums;margin-block:.6rem}.hold-label,.input-level{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.75rem;color:var(--text-secondary)}.hold-track{margin-top:.4rem;height:.4rem;background:var(--fill-strong);overflow:hidden}.hold-track i{display:block;height:100%;background:var(--feedback-correct);transform:scaleX(0);transform-origin:left}.input-level{margin-top:.6rem}.input-level meter{width:5rem;height:.65rem}.session-finish{display:block;max-width:48rem;margin-inline:auto}.session-finish>p{color:var(--text-secondary)}.offline-practice{padding-block:1.5rem;margin-top:1.5rem;border-block:1px solid var(--border-default)}.offline-practice h4{margin-block:.8rem}.offline-practice p{color:var(--text-secondary)}.play-note{max-width:48rem;margin-top:1.5rem;font-size:.8125rem;color:var(--text-secondary);line-height:1.65}.play-message{margin-block:1rem}.play-message a{text-decoration:underline}@keyframes chord-breathe{to{transform:scale(1.12);opacity:.65}}@media(hover:hover)and (pointer:fine){.playground button:hover:not(:disabled),.playground .secondary-action:hover{border-color:var(--brand-accent)}.activity-nav a:hover,.finish-link:hover{color:var(--text-primary)}}@media(max-width:700px){.activity{grid-template-columns:minmax(0,1fr);gap:1.25rem}.activity-heading p{font-size:.9375rem}.activity-nav a{justify-content:center;gap:.35rem;padding:.65rem .4rem}.activity-nav small{flex-basis:100%;margin-left:0;text-align:center}.play-toolbar{gap:.25rem}.play-toolbar>p{flex-basis:100%}.sound-control{margin-left:auto}.activity h3{font-size:1.8rem;margin-block:.45rem .7rem}.playground .beat-pad{width:10.5rem;margin-block:.6rem}.chord-signal{min-height:6rem;gap:.5rem}.chord-signal i{width:2.5rem;height:2.5rem}}@media(max-width:380px){.play-container{padding-inline:1rem}.activity{padding:1rem}.activity-nav a{font-size:.875rem}.activity-actions>*{flex-basis:100%}.voice-options{grid-template-columns:minmax(0,1fr)}}@media(max-height:600px)and (orientation:landscape){.playground .beat-pad{width:8rem}.pitch-meter{height:9rem}}@media(prefers-reduced-motion:reduce){.playground *,.playground *:before,.playground *:after{animation:none!important;transition:none!important}}@media(max-width:800px){.activity-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}
