/* Practice-room palette. Loaded last so all 25 chapters share the same theme. */
#lesson-demos button::before{content:'▶';display:inline-block;margin-right:9px;font-size:.9em}
:root{color-scheme:light;--bg:#f7efdd;--panel:#fff9eb;--border:#a68b6e;--text:#39271e;--muted:#705c48;--root:#466239;--third:#a44c2e;--fifth:#326b68;--seventh:#75567d;--paper:#fffdf3;--sage:#dce4c4;--peach:#efd0b3;--shadow:#bba381}
body{background:var(--bg);color:var(--text);font-family:'Yu Gothic','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;background-image:radial-gradient(#9879570b .7px,transparent .7px);background-size:5px 5px}
header{height:82px;background:#ead9b9;border-bottom:3px solid #806347;padding:0 max(24px,calc((100vw - 1240px)/2));box-shadow:0 3px 0 #cbb494;gap:16px}
header strong{font-family:'Courier New',monospace;font-weight:900;font-size:26px;letter-spacing:.015em;line-height:1.1;text-shadow:2px 2px 0 #c7a680}header strong span{color:#6c824b}header strong::after{content:' ♪';color:#8c5935;font-size:21px}header>.muted{background:#456039;color:#fffbea;border:3px solid #7c5a3e;border-radius:3px;padding:8px 14px;box-shadow:2px 2px 0 #b19774;font-size:13px;font-weight:700}
main{max-width:1240px;padding:28px 26px 40px}h1{font-size:clamp(29px,3.5vw,45px);font-weight:900;letter-spacing:.01em;line-height:1.35}h2{font-size:21px}h3{line-height:1.45}p{color:var(--muted);line-height:1.85}.eyebrow{color:#566942;letter-spacing:.08em}.muted,.hint{color:var(--muted)}
.intro{position:relative;min-height:248px;align-items:center;margin:18px 0 28px;gap:22px;padding:10px 0}.intro>div:first-child{flex:1;min-width:0;max-width:760px}.intro>div:first-child>p{max-width:720px;font-size:16px}.intro>.key{display:none}.room-scene{position:relative;flex:0 0 325px;align-self:flex-end;padding-top:45px;pointer-events:none}.room-scene img{display:block;width:100%;height:215px;object-fit:contain;object-position:center bottom;image-rendering:pixelated}.cat-message{position:absolute;z-index:1;top:0;left:0;max-width:285px;padding:12px 17px;background:var(--paper);border:2px solid #604936;border-radius:15px;color:var(--text);font-size:13px;font-weight:700;box-shadow:3px 3px 0 #cfbea2}.cat-message::after{content:'';position:absolute;bottom:-9px;left:45px;width:14px;height:14px;background:var(--paper);border-right:2px solid #604936;border-bottom:2px solid #604936;transform:rotate(45deg)}
.room-scene.is-playing img{animation:room-breathe 1.2s steps(2,end) infinite}.room-scene.is-celebrating .cat-message{background:#e2e8c9;border-color:var(--root)}@keyframes room-breathe{50%{transform:translateY(-2px)}}
.panel{background:var(--panel);border:2px solid #987b5c;border-radius:10px;box-shadow:4px 4px 0 #dfcfb2;padding:22px}.lesson-goal,.minor-goal{border-left:6px solid #6c874f;background:#f0efd9}.beginner-guide{max-width:none;margin:0 0 28px}.beginner-guide h3{font-size:24px}.beginner-guide #lesson-progress,.beginner-guide #guide-progress,.beginner-guide #mg-progress{font-size:22px;color:#423020;border-bottom:1px dashed #b8a486;padding-bottom:16px;margin-bottom:22px}.beginner-guide [data-step]>h3{margin-top:12px}
button,select{background:#fff9e9;color:var(--text);border:2px solid #a0886a;border-radius:7px;box-shadow:0 3px 0 #cfb994;padding:10px 14px;transition:background-color .12s,border-color .12s;min-height:44px}button:hover,select:hover{background:#f1e7ce;border-color:#6d7950}button:active{box-shadow:0 1px 0 #cfb994;transform:translateY(2px)}button:disabled{opacity:.55;cursor:default}.primary,.course-start{background:#5e7b48;color:#fffbed;border:2px solid #3f5934;box-shadow:0 3px 0 #b6c293;font-weight:800}.primary:hover{background:#4c693b;color:#fffbed}.course-start{padding:12px 20px;border-radius:7px;text-decoration:none;color:#fffbed!important}.actions{gap:12px}.actions button{font-size:14px}.guide-navigation{border-color:#c2ad8e;padding-top:20px}.guide-navigation button{min-width:95px}.guide-choices{gap:18px}.guide-choices button{min-height:70px;background:#e0e7c9;border:2px solid #718157;box-shadow:4px 4px 0 #d8c4a0;font-size:17px;font-weight:800;text-align:left;padding:18px 22px}.guide-choices button:nth-child(2n){background:#efceb9;border-color:#b47453}.guide-choices button:hover{filter:brightness(.97)}.guide-choices button[aria-pressed=true]{background:#d5dfb6;outline:2px solid #506b3a}.guide-keys button{background:#fffef4;color:#3a2b22;border-color:#aa9478}.guide-keys .minor-sharp{background:#4d3b2e;color:#fff9eb;border-color:#876e54}
.guide-route>span{background:#f0e4ca;border:1px solid #b49b78}.guide-chord>*{background:#fff9e9;border-color:#b49b78}.guide-success,#result.clear{background:#e8ecd2;color:#3d5a30;border:2px solid #7d945e;border-radius:8px}.explain{color:var(--text);border-left:3px solid #af7550}.lesson-current,.guide-now,.lesson-current strong{color:#48633c}
.session-nav{gap:9px;margin-bottom:16px}.session-nav a{background:#f8f1dd;border:1px solid #b59b7a;color:#6e5540;border-radius:5px;padding:7px 10px;box-shadow:0 2px 0 #d9c5a4}.session-nav a:hover{background:#e9e6cd}.session-nav a[aria-current=page]{background:#dce5c4;color:#405b32;border-color:#6e8550}.course-active{color:#45613a;font-weight:700}.course-menu{border:1px solid #b49b78;background:#f4ead3;border-radius:6px;margin-bottom:18px}.course-menu summary{color:#624c35}details{border-color:#b49b78}.course-end a{color:#45613a}.course-group>h2{padding:10px 0;border-bottom:2px dashed #c5b08f;font-size:23px}.course-cards{gap:20px}.course-card{background:#fff8e6;border-color:#ad9271;padding:19px}.course-card:hover{background:#f0f1d9;border-color:#69804b;box-shadow:4px 4px 0 #bbca9d}.course-card h3{color:#39271e}.course-card .eyebrow{display:inline-block;border:1px solid #93a573;background:#e9edcf;padding:2px 7px;border-radius:3px}.course-card .hint{color:#506741}.course-card:nth-child(2n){background:#faf0df}
.lesson-editor{border-top:5px solid #947d55}.lesson-bar h3,.journey-bar h3{color:#4c3928}.lesson-beats button,.beat,.journey-beat{background:#f8efdc;border:2px solid #c0aa88;box-shadow:0 3px 0 #dfcbab;min-height:86px}.lesson-beats strong,.beat strong{font-size:17px;color:#39271e}.lesson-beats small,.beat small,.journey-beat small{color:#705c48;font-size:12px}.lesson-beats button[aria-pressed=true],.beat.selected,.journey-beat.selected{background:#e1e8cb;outline:2px solid #68864c;border-color:#68864c;outline-offset:0}.lesson-beats button.sounding,.beat.sounding,.journey-beat.sounding{background:#e4d3a4;border-color:#a56b33}.beat.sounding:after{background:#815b32}.lesson-options button[aria-pressed=true],.note-options button[aria-pressed=true],#impressions button[aria-pressed=true],.options button[aria-pressed=true]{background:#dce5c6;color:#354f2d;border-color:#6f8452}.lesson-options small{color:#6b593f}.eighth-grid button{min-height:80px}.lesson-options button{min-height:54px}
.transport,.instrument-controls{background:#ede0c5;border:1px solid #c7ae8b;border-radius:8px;padding:14px}.transport{padding:17px}.sound-controls{background:#f5ead4;border-radius:8px;padding:12px}input{accent-color:#658348}input[type=number]{background:#fff9e9;color:#39271e;border:1px solid #a0886a;border-radius:5px;padding:7px}.transport #status{color:#705c48}.live-mission{border-top:5px solid #af7850}.instrument-chart>div{background:#fff9e9;border:2px solid #c0aa88;box-shadow:0 3px 0 #decdb0;color:var(--text)}.instrument-chart strong{color:#3f3022}.instrument-chart .live-playing{border-color:#658348;background:#e5eacb;box-shadow:0 0 0 2px #8b9d66}.instrument-now{color:#4c693c}.live-mission fieldset{border:1px solid #b79b77;background:#f6eedb}.live-mission legend{color:#4d3b29}.live-mission label{color:#705c48}
.fret-scroll{background:#e8d5b4;border:2px solid #9f835f}.fret{background:linear-gradient(transparent 48%,#a08059 49%,#a08059 51%,transparent 52%);border-right-color:#ac8b62;box-shadow:none;border-radius:0}.fret:hover{background-color:#efe1c6}.fret span{background:#fff5db;color:#654b31}.fret.tone span{background:#fbf0d5}.fret.chosen span{outline-color:#47623a}.fret-head,.string-label{color:#705438}.bar,.journey-bar{border-top-color:#bd9e76}.bar.active,.journey-bar.playing{border-color:#668449}.chip{background:#fff9e9}.root{color:#466239}.third{color:#a44c2e}.fifth{color:#326b68}.seventh{color:#75567d}.other{color:#705c48}
.scale-note.in-chord{background:#f0dfc3}.scale-note[aria-pressed=true],.chord-button[aria-pressed=true]{background:#e1e8c9;border-color:#718753}.stack-note{background:#fff8e5}.interval-intro{background:#ecedd7;border-color:#789253}.half-step{background:#eee0c9;color:#9b5130}.octave-note{color:#456139}.compare-cards>div{background:#fff8e7;border-color:#b59b7a}.compare-cards .playing{background:#e5eacf;border-color:#66824c}.voicing-guide{background:#f5ecd6;border-color:#bca17c}.voicing-guide th,.voicing-guide td{border-color:#c5ae8c}.voicing-guide td.finger-note{background:#dce5c7;color:#354f2d}.minor-scale-chart>div,.degree-summary span{background:#f9f0dc;border-color:#bda17d}.foundation-lab{background:#f3ecd7}.foundation-lab summary{color:#4c653c}
.reference-keyboard{background:#f5edda}.piano-key{box-shadow:none;transform:none}.piano-key.white{background:#fffcef;border-color:#ac987c;color:#3a2b22}.piano-key.black{background:#493b31;border-color:#2d231c;color:#fff9e8;box-shadow:0 4px 0 #2e251f}.piano-key.white:hover{background:#f7edda}.piano-key.black:hover{background:#5f4a37}.piano-key.white[aria-pressed=true]{background:#d7e4b5;color:#304c27}.piano-key.black[aria-pressed=true]{background:#577644;color:#fff9e8}.piano-key .octave{color:#776045}.piano-key.black .octave{color:#f4e9cf}.piano-key:focus-visible{outline-color:#9e6d45}
button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #8c5a34;outline-offset:3px}.check{border-color:#c8b28f}.check.done strong{color:#4b663a}footer{color:#806b52;border-top:1px dashed #c5b08f;padding-top:18px;font-size:12px}main a:not(.session-nav a):not(.course-card):not(.course-start){color:#456139}
@media(max-width:1050px){.intro{min-height:225px}.room-scene{flex-basis:270px}.room-scene img{height:195px}.cat-message{font-size:12px;padding:10px 12px}.course-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){header{height:auto;min-height:76px;padding:14px 18px;flex-wrap:wrap}header strong{font-size:23px}header>.muted{font-size:11px;padding:5px 9px;max-width:100%;white-space:normal}main{padding:21px 16px 32px}.intro{display:grid;grid-template-columns:1fr;min-height:0;padding:0;margin-bottom:23px;gap:4px}.intro>div:first-child{max-width:none}.intro>div:first-child>p{font-size:15px}.room-scene{width:240px;justify-self:end;margin-top:3px;padding-top:32px}.room-scene img{height:148px}.cat-message{max-width:240px;font-size:12px;top:0;left:-20px;padding:8px 12px}.panel{padding:17px;border-radius:8px;box-shadow:3px 3px 0 #dfcfb2}.guide-choices{gap:12px}.guide-choices button{min-width:120px;padding:14px;font-size:15px;min-height:66px}.beginner-guide h3{font-size:20px}.beginner-guide #lesson-progress,.beginner-guide #guide-progress,.beginner-guide #mg-progress{font-size:19px}.course-cards{grid-template-columns:1fr}.course-group>h2{font-size:20px}.lesson-beats strong{font-size:15px}.session-nav a{font-size:12px}.instrument-controls{padding:12px}.guide-navigation button{min-width:0}.actions button{font-size:13px}.room-scene.is-playing img{animation:none}}
@media(prefers-reduced-motion:reduce){.room-scene.is-playing img{animation:none}button,select{transition:none}button:active{transform:none}}
