:root{--paper:#f8f5ee;--ink:#272c26;--muted:#596357;--sage:#497261;--line:#deded1;--gold:#b48a3c;--clay:#a34d35;--white:#fffdf7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--sage)}.top,main{max-width:1240px;margin:auto;padding:0 36px}.top{display:flex;align-items:center;gap:30px;padding-top:25px;padding-bottom:25px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:15px}.wordmark b{font:28px Georgia,'Songti SC',serif}.wordmark span{font-size:9px;letter-spacing:1.5px}nav{margin-left:auto;display:flex;gap:22px;font-size:12px}nav a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:5px}.private{font-size:9px;letter-spacing:1px;color:var(--sage);padding:6px 9px;border:1px solid #c7d3c7;border-radius:20px}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:65px;padding:60px 0 52px;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:650;color:var(--sage);margin:0 0 15px}h1,h2,h3,p{margin-top:0}h1{font:58px/1.05 Georgia,'Songti SC',serif;letter-spacing:-1.8px;margin-bottom:18px}h2{font:30px/1.2 Georgia,'Songti SC',serif;letter-spacing:-.4px;margin-bottom:17px}h3{font:26px/1.2 Georgia,'Songti SC',serif}.zh{font-family:'Songti SC',Georgia,serif;color:var(--sage);font-size:20px}.intro{font-size:16px;color:var(--muted);max-width:540px}.small{font-size:12px;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:24px;margin:25px 0 16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:44px;border:1px solid var(--sage);border-radius:5px;padding:10px 17px;font-size:13px;cursor:pointer}.primary{background:var(--sage);color:white}.primary:hover{background:#365a49}.secondary{background:transparent;color:var(--sage)}.text-link{font-size:13px;font-weight:600}.hero-art{background:#eeeee2;border:1px solid #dedfce;padding:25px 20px 20px;border-radius:130px 130px 8px 8px;transform:rotate(-2deg)}.art-label{text-align:center;letter-spacing:2px;font-size:9px;margin-top:30px;color:var(--sage)}.hero-art svg{width:100%;display:block;margin:22px 0}.art-bottom{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding:0 10px}.route{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:.75fr 1.6fr;gap:40px;padding:30px 0;margin-bottom:60px}.route h2{font-size:24px;margin-bottom:0}.route ol{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;list-style:none;padding:0;margin:0}.route li{display:flex;flex-direction:column;gap:7px;font-size:13px}.route b{font-size:12px;color:var(--sage)}.route small{font-size:11px;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-heading h2{margin-bottom:10px}.section-heading>span{font-size:12px;white-space:nowrap;background:#e7eee6;color:var(--sage);padding:8px 13px;border-radius:30px}.section-note{font-size:13px;color:var(--muted);max-width:850px;margin:5px 0 26px}.activities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.activity{display:flex;flex-direction:column;border:1px solid var(--line);border-top:3px solid var(--sage);padding:23px;background:var(--white);border-radius:7px}.activity.gold{border-top-color:var(--gold)}.activity.clay{border-top-color:var(--clay)}.activity.featured{background:#edf1e7;border-color:#cad6c5;border-top-color:var(--sage)}.activity-top{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:25px}.activity .toolname{font-size:11px;color:var(--sage);font-weight:650;margin:0 0 10px}.activity h3{font-size:25px;min-height:60px;margin-bottom:15px}.activity p{font-size:13px;color:var(--muted)}.activity .status{font-size:10px;line-height:1.4;border-top:1px solid var(--line);padding-top:12px;margin:0 0 17px;color:#4b6150}.activity .button{margin-top:auto;align-self:flex-start}.activity details{margin:17px 0 12px;font-size:12px}.activity summary{cursor:pointer;color:var(--sage);font-weight:600}.activity ol{padding-left:19px;margin:12px 0}.activity li{margin-bottom:8px}.activity .label{font-weight:650;color:var(--ink);display:block;margin-bottom:4px}.reviewed{display:flex;align-items:center;gap:7px;font-size:11px;margin:17px 0 8px;color:var(--muted)}input[type=checkbox]{accent-color:var(--sage);width:17px;height:17px;flex-shrink:0}textarea{width:100%;resize:vertical;background:#fffefa;border:1px solid #c8ccbe;border-radius:5px;padding:10px;font-size:12px;line-height:1.6;color:var(--ink);min-height:65px}.activity textarea{margin-top:3px}.materials{margin:60px 0 40px;padding:35px;display:grid;grid-template-columns:1fr 1.2fr;gap:60px;background:#eee9dd;border-radius:8px}.materials p{font-size:14px;color:var(--muted)}.material-list{display:flex;flex-direction:column;gap:10px;font-size:12px}.material-list>label{display:flex;align-items:center;gap:10px}.material-list .field-label{margin-top:7px;font-weight:650}.support{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:15px 0 40px}.support h2{font-size:26px}.support p{font-size:13px;color:var(--muted)}.support details{border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px;font-size:14px}.support summary{cursor:pointer}.concept{display:block;padding:12px 0;border-bottom:1px solid var(--line)}.concept:last-child{border:0}.concept b,.concept span{display:block;font-size:12px}.concept span{font-size:11px;color:var(--muted)}.review{padding:35px 0;border-top:1px solid var(--line)}.review-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}.review-fields label{font-size:12px;font-weight:600}.review-fields textarea{margin-top:8px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0 30px;font-size:10px;color:var(--muted)}.player-top{max-width:none;padding:15px 24px}.player-top .player-name{margin-right:auto;font-size:14px;font-weight:600}.player-top .button{min-height:38px;padding:7px 12px}.player-hint{margin:0;padding:10px 24px;font-size:12px;background:#eee9dd;border-bottom:1px solid var(--line)}.activity-frame{display:block;width:100%;height:calc(100dvh - 130px);min-height:500px;border:0;background:var(--white)}.error{padding:40px;max-width:700px;margin:auto}@media(max-width:950px){.top{flex-wrap:wrap;gap:15px}nav{order:3;width:100%}.private{margin-left:auto}.hero{gap:30px}h1{font-size:46px}.activities{grid-template-columns:repeat(2,1fr)}.route{grid-template-columns:1fr}.materials{gap:30px}.hero-actions{flex-wrap:wrap}.player-top nav{width:auto;order:initial}.player-top .player-name{width:100%;order:3}.activity-frame{height:calc(100dvh - 175px)}}@media(max-width:620px){.top,main{padding-left:20px;padding-right:20px}.wordmark{gap:10px}.wordmark b{font-size:25px}.wordmark span{font-size:8px}.private{font-size:8px}.hero{grid-template-columns:1fr;padding-top:40px;gap:25px}.hero-art{display:none}h1{font-size:46px}.route ol{grid-template-columns:1fr}.route{margin-bottom:40px;gap:25px}.route li{gap:2px}.activities,.materials,.support,.review-fields{grid-template-columns:1fr}.materials{padding:25px;margin-top:40px;gap:20px}.section-heading{align-items:flex-start}.section-heading h2{font-size:27px}.section-heading .button{font-size:11px}.activity h3{min-height:0}.support{gap:30px}.review .section-heading{flex-direction:column}footer{flex-direction:column;gap:7px}.player-hint{font-size:11px}.player-top{padding:12px}.player-name{font-size:12px!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{nav,.hero-actions,.hero-art,.button,.private{display:none!important}.top,main{max-width:none;padding:10px}.hero{display:block;padding:15px 0}.activities{grid-template-columns:repeat(2,1fr)}.activity{break-inside:avoid}.materials,.review{break-inside:avoid}textarea{border:0}.route{margin-bottom:20px}h1{font-size:36px}}

.ai-map{margin:35px 0;padding:30px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.ai-map>p{max-width:900px}.ai-privacy{padding:15px;border-left:4px solid var(--sage);background:#edf1e7;font-size:13px;margin:20px 0}.ai-code{display:block;max-width:320px}.ai-code input{display:block;width:100%;border:1px solid #c8ccbe;border-radius:5px;padding:9px;margin-top:6px}.ai-role-grid,.ai-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:22px 0}.ai-map fieldset{border:1px solid var(--line);border-radius:6px;padding:18px;min-width:0}.ai-map legend{font-weight:650;font-size:15px}.ai-map label{font-size:12px;font-weight:600;display:block;margin:10px 0}.ai-map textarea{display:block;margin-top:5px;font-weight:400}.ai-map select{font:inherit;font-size:13px;width:100%;padding:9px;border:1px solid #c8ccbe;background:var(--white);border-radius:5px;margin-top:6px}.ai-map button:disabled{opacity:.5;cursor:default}.ai-map textarea:disabled{background:#f1f1eb;color:#4b5248}.ai-map h3{font-size:21px}.ai-compare #ai-closing-fields{display:grid;gap:20px}.ai-compare #ai-original article{border:1px solid var(--line);border-radius:6px;padding:18px;margin-bottom:20px}.ai-compare #ai-original strong{font-size:12px}.ai-compare #ai-original p{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 17px}.ai-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.ai-shifts{padding:12px 0}.ai-shifts summary{cursor:pointer;font-weight:600;color:var(--sage)}.route ol{grid-template-columns:repeat(3,minmax(0,1fr))}.route li{padding:7px 0}@media(max-width:620px){.ai-map{padding:20px}.ai-role-grid,.ai-compare,.route ol{grid-template-columns:1fr}.ai-map fieldset{padding:12px}.ai-actions .button{width:100%}}

[data-language-toggle]{display:flex;gap:6px;flex-shrink:0}[data-language-toggle] button{font:inherit;font-size:13px;padding:7px 10px;border:1px solid #788f80;border-radius:6px;background:#fffdf8;color:#243b30;cursor:pointer}[data-language-toggle] button[aria-pressed="true"]{background:#365e4b;color:white}.top{flex-wrap:wrap}.ai-map input[type="password"]{display:block;width:min(100%,500px);padding:12px;margin:8px 0;border:1px solid #a3b4a5;border-radius:5px}html[lang="zh-CN"]{font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif}html[lang="zh-CN"] h1{letter-spacing:0;line-height:1.2}

/* Lesson-first workshop */
.lesson-launch{max-width:1100px;margin:18px auto;padding:24px;background:#fffdf8;border:1px solid #d9dfd8;border-radius:16px}.lesson-launch h1{font-size:clamp(24px,4vw,38px);margin:0 0 12px}.lesson-launch details{margin:16px 0}.lesson-launch summary,details.ai-map>summary{cursor:pointer;font-weight:650;padding:12px 0}.ai-actions button[aria-pressed="true"]{background:#456451;color:white}details.ai-map>section{border:0;padding:16px 0;margin:0}.player-hint{max-width:1100px;margin:16px auto;padding:0 24px}.player-top{position:static}.activity-frame{min-height:75vh}#activity-save-status{font-weight:650;color:#365c44}

#ai-opening-fields{display:block;max-width:900px}#ai-opening-fields>details{margin-top:24px}#ai-opening-fields fieldset>details{margin-top:20px}#ai-opening-fields label{margin-top:16px}

[hidden]{display:none!important}

#curriculum-pages figure{margin:20px 0}#curriculum-pages figcaption{font-size:14px;margin:10px 0;color:#526158}#lesson-before-copy p{white-space:pre-wrap}

.lesson-launch .ai-map label{display:block;font-size:16px;line-height:1.5;margin:18px 0 8px}

/* One page scroll on phones/tablets; child instruments report their content height. */
.activity-frame{height:800px;min-height:0}
#level-buttons button{min-height:44px;padding:10px 14px;border:1px solid #788f80;border-radius:6px;background:#fffdf8;color:#243b30;font:inherit;cursor:pointer}
#level-buttons button[aria-pressed="true"]{background:#456451;color:#fff}
@media(max-width:620px){
 .lesson-launch{margin:10px 8px;padding:16px}.lesson-launch h1{font-size:26px}.lesson-launch h2{font-size:21px}.lesson-launch p{margin-bottom:10px}
 #level-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:12px}#level-buttons button{font-size:14px;line-height:1.3;padding:8px 4px}
 #level-description,#activity-save-status{font-size:14px}.player-top .button{min-height:44px}.player-hint{padding:0 16px}
 .player-top{gap:8px}input,textarea,select{font-size:16px}.hero-actions{gap:12px}nav{flex-wrap:wrap}
}

.free-play-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.free-play-card{min-width:0;padding:22px}.free-play-card h3{min-height:0;font-size:23px}.free-play-card .preview-link{display:block;padding:0;margin-bottom:16px}.free-play-card img{display:block;width:100%;height:240px;object-fit:contain;background:#eef1e9;border:1px solid #d5ddcf;border-radius:8px}.free-play-card .button{margin:8px 0 0;min-height:44px}.free-play-card .small{margin:12px 0;font-size:12px}#free-play{margin:44px 0}@media(max-width:680px){.free-play-grid{grid-template-columns:1fr}.free-play-card img{height:200px}}

/* Language stays on the first header row, ahead of wrapping navigation. */
.top>[data-language-toggle]{order:1;margin-left:auto;align-self:flex-start}.top>nav{order:2;flex-basis:100%}[data-language-toggle]{justify-content:flex-end}[data-language-toggle] button{min-width:44px;min-height:44px}[data-language-toggle] button[aria-pressed=true]{font-weight:700;text-decoration:underline;text-underline-offset:4px}[data-language-toggle] button:focus-visible{outline:3px solid #ac6819;outline-offset:3px}@media(max-width:480px){[data-language-toggle]{gap:4px}[data-language-toggle] button{padding:7px 8px}.top>[data-language-toggle]{flex-shrink:0}}
