@charset "UTF-8";
:root{--ink:#283b4b;--muted:#66766d;--paper:#f8f6ee;--green:#217661;--mint:#e0f0e6;--line:#dce2d7;--yellow:#ffd66f;--white:#fffdf8;font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);font-size:18px;line-height:1.55;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper);min-height:100svh}button,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.48}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e98c35;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.9rem,5.5vw,2.65rem);line-height:1.25;letter-spacing:-.045em}h2{font-size:1.6rem;line-height:1.3;letter-spacing:-.035em}h3{font-size:1.08rem}a{color:var(--green)}
.page-decor{position:fixed;border-radius:50%;pointer-events:none;z-index:-1}.decor-one{width:360px;height:360px;background:#e4edda;top:-180px;right:-140px}.decor-two{width:280px;height:280px;background:#fae9cf;bottom:-140px;left:-130px}
.shell{max-width:720px;margin:auto;padding:27px 24px 36px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:30px}.brand{display:flex;align-items:center;gap:9px;font-size:1.02rem;font-weight:800}.brand svg{width:35px;height:35px}.unit-tag{color:var(--muted);font-size:.73rem;letter-spacing:.04em}.quiet{background:none;border:0;color:var(--muted);min-height:48px;padding:8px;font-size:.85rem}.eyebrow{font-size:.73rem;font-weight:800;letter-spacing:.11em;color:var(--green);display:flex;align-items:center;gap:9px;margin-bottom:12px}.eyebrow:before{content:"";width:22px;height:3px;background:var(--green);border-radius:4px}.lead{color:var(--muted);font-size:.95rem;margin-top:13px}.hero{position:relative}.hero-art{position:relative;max-width:430px;margin:12px auto 0}.hero-art:before{content:"";position:absolute;background:#e5efe3;width:80%;height:80%;left:10%;top:10%;border-radius:44% 56% 55% 45%;z-index:-1}.scene-svg{width:100%;display:block;max-height:300px}.hero-art .scene-svg{max-height:260px}.art-tag{position:absolute;right:5px;top:22px;transform:rotate(7deg);border:1px solid var(--line);border-radius:12px;background:var(--white);padding:5px 12px;font-size:.75rem;box-shadow:0 4px 0 #e8e9df}.swatch-row{display:flex;gap:7px;position:absolute;left:12px;bottom:35px}.mini-dot{width:13px;height:13px;border-radius:50%;border:1px solid #b5b9af}
.task-box{margin-top:12px;background:var(--white);border:1px solid var(--line);border-radius:23px;padding:23px;box-shadow:0 5px 0 #eceee3}.task-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}.pill{display:inline-block;background:var(--mint);color:var(--green);font-size:.74rem;font-weight:800;padding:5px 10px;border-radius:9px}.small-muted{font-size:.77rem;color:var(--muted)}.scene-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 20px}.scene-choice{background:var(--paper);border:2px solid transparent;border-radius:14px;padding:11px 8px;color:var(--ink);min-height:53px;font-size:.9rem;font-weight:700}.scene-choice[aria-pressed=true]{background:#e9f3e9;border-color:var(--green)}.scene-choice span{margin-right:6px}.primary{width:100%;min-height:57px;border:0;border-radius:15px;background:var(--ink);color:white;font-size:1rem;font-weight:800;padding:13px 18px;box-shadow:0 4px 0 #192936;transition:transform .15s,box-shadow .15s}.primary:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px 0 #192936}.secondary{background:var(--mint);border:1px solid #c4dfce;border-radius:14px;min-height:51px;padding:11px 18px;color:var(--green);font-weight:750}.center{text-align:center}.task-note{margin:13px 0 0;text-align:center;font-size:.75rem;color:var(--muted)}.journey{display:flex;justify-content:center;align-items:center;gap:14px;font-size:.8rem;margin:27px 0 17px;color:var(--muted)}.journey b{color:#b4c5ae}.footer{font-size:.72rem;text-align:center;color:var(--muted);margin-top:24px}.parent-info{font-size:.79rem;margin-top:23px;color:var(--muted)}summary{cursor:pointer;min-height:44px;padding:10px 0}details p{margin:8px 0;line-height:1.8}.notice{padding:13px 16px;margin:0 0 20px;border:1px solid #ddb86f;background:#fff1cd;border-radius:13px;font-size:.8rem}.notice button{display:block;margin-top:9px}.progress-track{height:7px;border-radius:20px;background:#e2e8dd;overflow:hidden;margin:15px 0 27px}.progress-fill{height:100%;background:var(--green);border-radius:20px;transition:width .3s}.step-line{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted)}
.learn-card{margin-top:20px;border:1px solid var(--line);border-radius:27px;background:var(--white);padding:28px 22px;text-align:center;box-shadow:0 5px 0 #e9ecdf}.big-swatch{height:130px;width:160px;border-radius:35% 45% 37% 43%;border:3px solid #283b4b22;box-shadow:inset 0 -8px 0 #00000009;margin:6px auto 20px;transform:rotate(-5deg)}.word{font-size:2.7rem;letter-spacing:-.04em;font-weight:850;line-height:1.2}.meaning{color:var(--muted);margin:5px 0 20px}.audio-button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:58px;border:0;border-radius:16px;padding:13px 24px;background:var(--green);color:white;font-weight:800}.audio-button svg{width:25px;height:25px}.audio-message{min-height:46px;font-size:.8rem;color:var(--muted);padding-top:10px;text-align:center}.below-card{margin-top:24px}.learn-tip{font-size:.8rem;color:var(--muted);text-align:center;margin:16px 0}.game-head{text-align:center}.game-head .pill{margin-bottom:10px}.game-art{margin:8px auto 0;max-width:420px}.game-art .scene-svg{max-height:260px}.paint-region.active-region{stroke-dasharray:9 6;stroke:#d27a16}.palette{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:17px 0}.paint-choice{min-width:0;min-height:94px;background:var(--white);border:2px solid var(--line);border-radius:19px;padding:13px 8px;color:var(--ink);position:relative}.paint-choice:not(:disabled):hover{border-color:var(--green);transform:translateY(-2px)}.paint-choice:disabled{opacity:.38}.paint-pot{display:block;width:60px;height:48px;margin:0 auto;border:3px solid #283b4b50;border-radius:10px 10px 18px 18px;position:relative;box-shadow:inset 0 -6px 0 #0000000c}.paint-pot:before{content:"";display:block;position:absolute;top:-8px;left:-5px;right:-5px;height:13px;border:3px solid #283b4b50;background:inherit;border-radius:8px}.choice-label{display:block;font-size:.66rem;margin-top:8px;color:var(--muted)}.game-controls{display:flex;justify-content:center;gap:12px;align-items:center}.hint-button{min-height:48px;padding:8px 12px;border:0;background:transparent;color:var(--muted);font-size:.82rem;text-decoration:underline;text-underline-offset:4px}.feedback{padding:16px 20px;border:1px solid #c8ddc7;background:#edf5e7;border-radius:19px;margin:12px 0 18px;text-align:center}.feedback.help{background:#fff1d8;border-color:#ead4ab}.feedback .word{font-size:1.65rem}.feedback p{font-size:.85rem;margin:6px 0 12px}.hint-panel{background:#fff1d8;border-radius:14px;text-align:center;padding:10px 14px;margin:12px 0;font-size:.9rem}.hint-panel strong{font-size:1.25rem}.round-dots{display:flex;justify-content:center;gap:7px;margin-top:15px}.round-dot{width:8px;height:8px;border-radius:50%;background:#d5dfcf}.round-dot.done{background:var(--green)}
.summary-title{text-align:center}.summary-title h1{font-size:2rem}.summary-art{margin:10px 0 20px;border:1px solid var(--line);background:var(--white);border-radius:25px;padding:10px 18px}.summary-art .scene-svg{max-height:250px}.result-card{background:#e4efdf;border-radius:20px;padding:18px 21px;margin:0 0 20px}.result-number{font-size:1.4rem;font-weight:850}.result-sub{font-size:.82rem;color:var(--muted);margin-top:6px}.word-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.word-tag{font-size:.8rem;padding:4px 9px;border-radius:8px;background:var(--white)}.stack{display:grid;gap:12px}.observation{padding-top:10px;display:flex;flex-direction:column;gap:6px;font-size:.85rem}.observation select{border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--white);font-size:.85rem;min-height:48px}.loading-shell{margin:15vh auto;text-align:center;padding:30px}.loading-shell p{margin:18px 0;color:var(--muted)}.conflict{border-color:#d6a66d;background:#fff0d9}
@media(min-width:640px){.shell{padding:35px 40px 45px}.home-intro{max-width:400px}.hero-art{margin-top:-25px;margin-left:190px}.hero-art .scene-svg{max-height:260px}.hero{min-height:350px}.task-box{margin-top:-12px}.palette{gap:22px}.paint-choice{min-height:110px}.paint-pot{width:72px;height:53px}.game-art .scene-svg{max-height:295px}.learn-card{padding:32px}.big-swatch{width:200px;height:145px}.game-controls .audio-button{min-width:190px}}
@media(max-width:380px){.shell{padding:18px 17px 28px}.topbar{margin-bottom:22px}.brand{font-size:.9rem}.unit-tag{font-size:.66rem}.task-box{padding:18px}.hero-art .scene-svg{max-height:215px}.paint-pot{width:48px}.palette{gap:9px}.game-art .scene-svg{max-height:215px}.audio-button{padding:12px 18px}.word{font-size:2.3rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.answer-swatch{display:inline-block;width:30px;height:30px;border:2px solid #52645a;border-radius:9px;vertical-align:middle;margin-right:10px}
.white-swatch,.white-swatch:before{border-color:#52645a}.audio-message,.lead,.feedback p{font-size:1rem}

.word-illustration{display:block;font-size:5rem;line-height:1.3;margin:4px auto 16px}.word-symbol{display:inline-block;font-size:1.7rem;vertical-align:middle;margin-right:8px}.word-example{background:var(--paper);padding:12px;border-radius:14px;margin:12px 0 20px;font-size:1rem;text-align:left}.word-example p+p{margin-top:8px;color:var(--muted)}.meaning-choices{display:grid;gap:12px;margin:20px 0}.meaning-choice{min-height:64px;background:var(--white);border:2px solid var(--line);border-radius:16px;padding:15px;color:var(--ink);font-size:1rem;text-align:left;overflow-wrap:anywhere}.meaning-choice:not(:disabled):hover{border-color:var(--green)}.listening-picture{font-size:4.5rem;text-align:center;margin:20px 0}.word-album{display:grid;gap:12px;margin:24px 0}.album-card{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--white);border:1px solid var(--line);border-radius:18px;padding:16px}.album-card .word-illustration{font-size:2.5rem;margin:0}.album-card strong{font-size:1.25rem;overflow-wrap:anywhere}.album-card span:last-child{font-size:1rem}.wordbook{border:1px solid var(--line);border-radius:16px;padding:7px 14px;background:var(--white)}.wordbook h3{margin:20px 0 10px}.wordbook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wordbook-entry{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:120px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 7px;color:var(--ink);overflow-wrap:anywhere;font-size:1rem}.wordbook-entry .answer-swatch{margin:0}.wordbook-entry .word-symbol{margin:0}.book-meaning{font-size:.85rem}.hint-example{font-size:1rem;margin:10px 0}.wordbook-entry:focus-visible{outline:3px solid #e98c35}.meaning{font-size:1rem}

.story-home{margin-top:36px;border-top:1px solid var(--line);padding-top:28px}.chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.chapter-card{display:flex;flex-direction:column;gap:9px;align-items:flex-start;text-align:left;min-height:170px;border:1px solid var(--line);border-radius:20px;padding:18px;background:var(--white);color:var(--ink);font-size:1rem}.chapter-card>span:first-child{font-size:2.6rem}.chapter-card>span:last-child{font-size:.85rem;color:var(--muted)}.story-heading{text-align:center}.chapter-icon{display:block;font-size:4rem}.story-word-list{display:grid;gap:12px;margin:25px 0}.story-word{display:flex;align-items:center;gap:12px;text-align:left;min-height:85px;border:1px solid var(--line);border-radius:16px;background:var(--white);padding:14px;color:var(--ink)}.story-word>span:first-child{font-size:2rem}.story-word>span:nth-child(2){flex:1;display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.story-word .small-muted{max-width:85px}.adventure h2{margin-top:20px}.story-narrative{margin-top:18px;font-size:1rem}.story-stage{background:#edf2e3;border:1px solid var(--line);border-radius:28px;margin:20px 0;padding:15px;min-height:160px;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;text-align:center}.story-painting{width:240px;max-width:100%;height:160px}.stage-character{font-size:4.2rem}.placed-item{font-size:3rem;animation:story-arrive .35s ease-out}.placed-item p{font-size:1rem}.story-done{background:#e0f0e6}.story-instruction{font-size:1rem;margin:15px 0}.story-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0;align-items:stretch}.story-option{min-width:0;min-height:150px;border:2px solid var(--line);border-radius:18px;background:var(--white);padding:14px 7px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:12px;color:var(--ink);font-size:1rem;overflow-wrap:anywhere}.object-icon{font-size:3rem;line-height:1.2;min-height:65px;display:flex;align-items:center}.object-small{font-size:1.7rem}.object-large{font-size:3.6rem}.object-far{padding-bottom:50px}.object-near{padding-top:50px}.object-badge{padding:4px 8px;background:#f3ddac;border-radius:8px;font-size:1rem}.story-option.carrying{border-color:var(--green);background:var(--mint)}.story-destination{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;min-height:140px;border:3px dashed #7a9d80;border-radius:22px;background:#eaf2e7;color:var(--ink);padding:16px;margin:18px 0;font-size:1rem}.story-destination>span:first-child{font-size:2.5rem}.story-destination small{font-size:1rem}.butterflies{display:flex;gap:10px}.butterfly{border:1px solid var(--line);border-radius:14px;background:var(--white);min-width:62px;min-height:70px;font-size:2.4rem}.butterfly.flown{visibility:hidden}.feeling-picker{border:1px solid var(--line);border-radius:18px;padding:15px;display:flex;gap:8px;flex-wrap:wrap;margin:25px 0}.feeling-picker legend{font-size:1rem}.feeling-picker button{flex:1;padding:12px 8px;font-size:1rem;min-width:70px}.feeling-picker [aria-pressed=true]{outline:3px solid var(--green)}.adventure .game-controls{flex-wrap:wrap}.adventure .hint-panel p{margin-top:10px}.story-home>.secondary{margin-top:18px}
@keyframes story-arrive{from{transform:translateY(-20px);opacity:.3}to{transform:translateY(0);opacity:1}}@media(max-width:380px){.chapter-card{padding:13px}.story-option{padding:12px 4px}.story-options .paint-pot{width:43px}.object-icon{font-size:2.5rem}.object-small{font-size:1.4rem}.object-large{font-size:3rem}.butterfly{min-width:58px}.object-far{padding-bottom:45px}.object-near{padding-top:45px}}@media(prefers-reduced-motion:reduce){.placed-item{animation:none}}

.story-speaker{display:flex;align-items:center;gap:14px;margin-top:18px}.story-speaker>span:first-child{font-size:2.6rem}.speech-bubble{border:2px solid #b6cdbb;border-radius:18px 18px 18px 0;background:var(--white);padding:12px;font-size:1rem}

.story-basic-prompt{margin-top:12px;padding:12px 15px;border-left:4px solid var(--green);background:var(--mint);border-radius:8px;font-size:1rem}.teaching-support{margin:18px 0;padding:17px;background:#fff1d8;border:1px solid #ead4ab;border-radius:20px;font-size:1rem}.teaching-support>p{margin-top:10px}.teaching-frames{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:18px}.teaching-frames>div{flex:1;min-width:0;text-align:center;background:var(--white);border-radius:14px;padding:12px 8px;overflow-wrap:anywhere}.teaching-frames>div>span{font-size:2rem;display:block;line-height:1.5}.teaching-frames p{font-size:1rem;margin-top:8px}.frame-arrow{font-size:1.5rem;color:var(--green)}.teaching-note{color:var(--muted)}.story-extension{font-size:1rem;border:1px solid var(--line);border-radius:15px;padding:10px 14px;margin:22px 0;background:var(--white)}.story-extension summary{font-size:1rem;min-height:48px}.story-extension [lang=en]{font-size:1.1rem;color:var(--green);font-weight:700}.story-extension button{margin:10px 0}.adventure .game-controls{gap:10px}

.story-object{display:block;width:88px;height:88px;max-width:100%}.story-stage>.story-object{width:240px;height:160px}.story-option .story-object{flex-shrink:0}

.journey-home h1{font-size:clamp(2rem,7vw,3rem)}.birthday-picture{display:flex;align-items:center;justify-content:center;gap:25px;font-size:3rem;padding:18px 0}.birthday-rainbow{font-size:5rem}.journey-current{padding:22px;background:var(--white);border:1px solid var(--line);border-radius:24px;box-shadow:0 5px 0 #eceee3}.journey-current .primary{margin-top:22px}.journey-current .task-meta{flex-wrap:wrap}.journey-current h2{font-size:1.4rem}.story-route{display:grid;gap:10px;margin-top:24px}.route-act{position:relative;display:flex;gap:15px;align-items:center;text-align:left;background:transparent;border:1px solid var(--line);border-radius:16px;padding:14px;min-height:80px;width:100%;color:var(--ink)}.route-marker{display:flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border-radius:50%;background:#e3e9dc;color:var(--green);font-weight:800}.route-act>span:last-child{display:grid;gap:5px}.route-act strong{font-size:1rem}.route-act small{font-size:.85rem;color:var(--muted)}.current-act{background:var(--mint);border-color:#6b9e82}.route-note{margin:12px 0;text-align:center}.journey-home .hero-art{margin:0 auto;max-width:280px}.story-link{font-size:.85rem;color:var(--green);margin:0 0 9px;font-weight:700}.story-setup{padding:12px 15px;border-left:4px solid #e0b251;background:#fff0d2;margin:0 0 20px;font-size:1rem;border-radius:0 12px 12px 0}.story-bridge{background:#e0f0e6;border-radius:14px;padding:16px;margin:18px 0;font-size:1rem}.story-word:disabled{opacity:.65}.journey-home+.parent-info{margin-top:18px}
@media(max-width:380px){.birthday-picture{font-size:2.5rem;gap:18px}.birthday-rainbow{font-size:4rem}.journey-current{padding:17px}.route-act{padding:12px}.route-act strong{font-size:.95rem}}

.journey-bear{display:none}@media(max-width:600px){.birthday-picture{display:none}.journey-bear{display:inline;font-size:.85em}}
