*{box-sizing:border-box}html{background:#fff7e8}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Noto Sans CJK SC",Arial,sans-serif;color:#2f2a25;background:linear-gradient(#fff7e8,#f5fbef);min-height:100vh}.topbar{max-width:900px;margin:auto;padding:18px 18px 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar h1{font-size:25px;margin:0}.eyebrow,.muted{color:#8a7e72;font-size:13px}.parent-link,.back{color:#2f2a25;text-decoration:none;background:#fff;padding:10px 14px;border-radius:16px;box-shadow:0 5px 18px rgba(70,50,30,.08)}.page{max-width:900px;margin:auto;padding:10px 16px 100px}.card{background:rgba(255,255,255,.92);border:1px solid rgba(80,60,40,.08);border-radius:24px;box-shadow:0 10px 30px rgba(71,53,35,.07);padding:18px}.hero{display:flex;align-items:center;gap:16px}.hero h2{margin:3px 0 6px;font-size:23px}.hero p{margin:0;color:#6d645b}.buddy{font-size:54px;background:#fff3cb;width:78px;height:78px;display:grid;place-items:center;border-radius:24px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 24px}.stat{text-align:center;padding:14px 8px}.stat b{font-size:25px;display:block}.stat span{font-size:12px;color:#766d64}.section-title{display:flex;align-items:end;justify-content:space-between;margin:18px 4px 10px}.section-title h2{font-size:20px;margin:0}.section-title span{color:#8a7e72;font-size:12px}.town-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.place{min-height:126px;border-radius:25px;padding:18px;text-decoration:none;color:#2f2a25;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 10px 25px rgba(60,45,30,.07)}.place span{font-size:34px;margin-bottom:auto}.place b{font-size:18px}.place small{color:#6e655d;margin-top:3px}.home{background:#ffe1c7}.school{background:#dceeff}.shop{background:#fff0b9}.park{background:#dff3d4}.library{background:#eadfff}.game{background:#ffdfe9}.task-card{margin-top:18px}.task{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid #eee}.task:first-of-type{border-top:0}.task small{display:block;color:#887f77;margin-top:3px}.task.done{opacity:.55}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-top:1px solid #eee;display:flex;justify-content:center;gap:30px;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom));z-index:5}.bottom-nav a{text-decoration:none;color:#766d64;text-align:center;font-size:22px}.bottom-nav span{display:block;font-size:10px}.bottom-nav .active{color:#2e7d32}.lesson-card{text-align:center}.progress{height:10px;background:#f0ece7;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:#7abf62;width:0;transition:.3s}.lesson-count{font-size:12px;color:#988d82;margin:12px 0}.prompt{font-size:25px;margin:20px 0}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.choice{border:0;background:#f5f2ed;border-radius:20px;padding:24px 8px;font-size:28px;font-weight:700;cursor:pointer}.choice.correct{background:#d9f6d1}.choice.wrong{background:#ffd8d8}.primary,.secondary{border:0;border-radius:17px;padding:13px 16px;font-weight:700;font-size:15px}.primary{background:#2f2a25;color:#fff}.secondary{background:#fff2c7;color:#554a3f;margin-top:18px}.rescue{margin:12px auto;background:#f8f7f4;padding:12px;border-radius:14px;max-width:390px}.hidden{display:none}.feedback{font-size:18px;font-weight:700;margin-top:14px;min-height:25px}.finish{padding:40px 0;font-size:18px}.finish:first-letter{font-size:55px}.linkbtn{display:inline-block;text-decoration:none;margin-top:10px}.story{text-align:center}.story-cover{font-size:72px;padding:20px}.story p{font-size:22px;line-height:1.8}.review-list,.mastery-table{display:grid;gap:10px}.review-row,.mastery-row{padding:13px;background:#f8f6f2;border-radius:16px;display:flex;justify-content:space-between;gap:12px}.review-row div,.mastery-row div{display:flex;gap:7px;flex-wrap:wrap}.review-row span,.mastery-row span{background:#fff;padding:5px 7px;border-radius:9px;font-size:11px}blockquote{margin:12px 0;background:#fff4c8;padding:18px;border-radius:16px;font-size:20px;border:0}.parent .page{padding-bottom:30px}@media(min-width:700px){.town-grid{grid-template-columns:repeat(3,1fr)}.place{min-height:160px}.page{padding-top:18px}}
.talk{background:#d9f5f1}.talk-page{max-width:760px}.buddy-big{font-size:58px}
.setup-warning{margin-top:12px;background:#fff2c7}.setup-warning p{margin-bottom:0}
.mic-card{text-align:center;margin-top:14px;padding:26px 18px}
.mic-orb{width:108px;height:108px;margin:2px auto 18px;border-radius:999px;background:#eef7e7;display:grid;place-items:center;font-size:46px;box-shadow:inset 0 0 0 8px rgba(255,255,255,.8),0 12px 30px rgba(60,80,40,.10);transition:.2s}
.mic-orb.recording{animation:pulseMic 1s infinite;background:#ffe1df}
.mic-orb.thinking{animation:pulseThink 1.3s infinite;background:#e6e1ff}
@keyframes pulseMic{50%{transform:scale(1.07);box-shadow:0 0 0 15px rgba(225,80,80,.08)}}
@keyframes pulseThink{50%{transform:scale(.96);opacity:.75}}
.record-btn{border:0;border-radius:20px;background:#2f2a25;color:white;padding:15px 22px;font-weight:800;font-size:17px;min-width:min(100%,340px)}
.record-btn:disabled{opacity:.5}.mic-status{margin-top:10px;color:#786f67}.privacy-note{font-size:12px;color:#8a8179;margin-top:18px}
.conversation{display:grid;gap:12px;margin:18px 0}.bubble{display:flex;gap:9px;align-items:flex-end}.bubble>span{font-size:27px}
.bubble>div{max-width:82%;padding:14px 16px;border-radius:20px;line-height:1.55;box-shadow:0 7px 20px rgba(70,50,30,.06)}
.bubble.doudou>div{background:white;border-bottom-left-radius:6px}.bubble.child{justify-content:flex-end}.bubble.child>div{background:#dff3d4;border-bottom-right-radius:6px}
.say-again{margin-top:9px;padding-top:9px;border-top:1px solid rgba(0,0,0,.08);font-size:14px}.new-phrase{margin-top:9px;background:#fff5c9;padding:8px 10px;border-radius:12px;font-size:14px}
.voice-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.voice-summary b{display:block;font-size:18px}.voice-summary span{display:block;font-size:11px;color:#81776e;margin-top:4px}
@media(max-width:520px){.voice-summary{grid-template-columns:1fr 1fr}.voice-summary div:last-child{grid-column:1/-1}.bubble>div{max-width:86%}}
