
:root{--blue:#1f5f8b;--ink:#173f5f;--line:#c9e5f2;--cream:#fffdf7;--orange:#ffb52e;--green:#54a84f;--purple:#7b51b5;--sky:#2e83c5}
*{box-sizing:border-box}body{margin:0;font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;color:var(--ink);background:linear-gradient(180deg,#eefaff,#fffaf0)}a{text-decoration:none;color:inherit}button,a.btn{font:inherit}.shell{max-width:1260px;margin:auto;padding:18px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:3px solid var(--line);border-radius:24px;padding:14px 18px;position:sticky;top:8px;z-index:5}.brand{font-size:1.35rem;font-weight:1000;color:var(--blue)}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{border:3px solid var(--line);border-radius:16px;padding:11px 16px;background:#fff;color:var(--blue);font-weight:1000;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary{background:var(--orange);border-color:#e9a120;color:#3e2b00}.btn.green{background:var(--green);border-color:#3a8d38;color:white}.btn.purple{background:var(--purple);border-color:#633b99;color:white}.btn.blue{background:var(--sky);border-color:#216ca8;color:white}.hero,.card{background:#fff;border:3px solid var(--line);border-radius:28px;padding:24px;margin-top:18px;box-shadow:0 10px 25px rgba(31,95,139,.08)}.hero{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:22px}.hero img{width:100%;border-radius:22px}.badge{display:inline-block;border-radius:999px;background:#eaf6fb;padding:8px 14px;font-weight:1000;color:var(--blue)}h1,h2,h3{color:var(--blue);margin-top:.35em}h1{font-size:clamp(2rem,5vw,3.8rem)}.muted{color:#667f90;font-weight:700;line-height:1.7}.mission-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.mission-card{border:3px solid var(--line);border-radius:24px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:10px}.mission-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px}.mission-card h3{margin:0}.mission-card .btn{margin-top:auto}.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.step{border:2px solid var(--line);border-radius:16px;padding:12px;background:#f9fdff;font-weight:900}.layout{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.scene{width:100%;border-radius:20px;border:3px solid var(--line)}.panel{border:3px solid var(--line);border-radius:22px;padding:18px;background:#fbfeff}.question{font-size:1.45rem;font-weight:1000;margin:10px 0}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.choice{border:3px solid var(--line);border-radius:16px;background:#fff;padding:8px;cursor:pointer;font-weight:900;color:var(--blue)}.choice img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}.choice.correct{border-color:#63aa58;background:#edf8e9}.choice.wrong{border-color:#d9796d;background:#fff0ee}.answer-box{border:3px dashed #bad9e8;border-radius:18px;padding:18px;background:#f2fbff;min-height:90px;font-size:1.15rem;line-height:1.7}.progress{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.progress span{padding:8px 12px;border-radius:999px;background:#eaf5fa;font-weight:900}.progress span.on{background:#ffd36e}.option-row{display:flex;flex-wrap:wrap;gap:10px}.option{border:3px solid var(--line);border-radius:14px;background:white;padding:12px;cursor:pointer;font-weight:900}.option.selected{background:#fff0b9;border-color:var(--orange)}.reward{background:linear-gradient(180deg,#fff6c9,#eefaff);text-align:center}.hidden{display:none!important}.feedback{font-weight:900;min-height:28px;margin:8px 0}.footer{text-align:center;padding:28px;color:#69808e;font-weight:800}
@media(max-width:950px){.mission-grid{grid-template-columns:1fr 1fr}.hero,.layout{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr 1fr}.choices{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.mission-grid,.steps,.choices{grid-template-columns:1fr}.shell{padding:10px}.top{position:static}.hero,.card{padding:16px}.top-actions{width:100%}.top{align-items:flex-start;flex-direction:column}}

.question-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.question-audio,.option-audio{border:3px solid var(--line);background:#fff;border-radius:999px;color:var(--blue);font-weight:1000;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.question-audio{width:52px;height:52px;font-size:1.35rem;flex:0 0 auto}.listen-help{margin:0 0 12px;color:#668092;font-weight:800}.choice-card{position:relative}.choice-card .choice{width:100%;height:100%;padding-bottom:46px}.option-audio{position:absolute;right:10px;bottom:8px;width:38px;height:38px;font-size:1rem;z-index:2}.question-audio:hover,.option-audio:hover{background:#eaf6fb}.question-audio:focus-visible,.option-audio:focus-visible,.choice:focus-visible{outline:4px solid #ffd36e;outline-offset:2px}.choice:disabled{cursor:default;opacity:.78}.choice.correct:disabled{opacity:1}

.mission-nav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}.mission-nav .btn{min-width:180px}.step-card{border:3px solid var(--line);border-radius:20px;padding:18px;background:#fbfeff;margin-top:14px}.step-card[hidden]{display:none}.step-number{display:inline-flex;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;background:var(--orange);font-weight:1000;color:#3e2b00;margin-right:8px}.choice-note{color:#668092;font-weight:800;line-height:1.6}.talk-outline{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.talk-outline div{border:2px solid var(--line);border-radius:14px;padding:12px;background:white;font-weight:900}.talk-outline div.done{background:#eef9e9;border-color:#72b568}.next-step{margin-top:14px}.mission-explain{background:#fff8dc;border:3px solid #f3d47c;border-radius:18px;padding:16px;line-height:1.7;font-weight:800}
@media(max-width:720px){.talk-outline{grid-template-columns:1fr 1fr}.mission-nav .btn{width:100%}}

.report-card{margin-top:18px;border:3px solid #b8ddeb;border-radius:22px;background:linear-gradient(180deg,#f8fdff,#fff8dc);padding:20px}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.report-item{background:#fff;border:2px solid var(--line);border-radius:14px;padding:12px;font-weight:800}.report-item strong{display:block;color:var(--blue);margin-bottom:4px}.report-sample{background:#fff;border-left:6px solid var(--orange);border-radius:12px;padding:14px;line-height:1.7}.audio-status{font-size:.9rem;color:#668092;font-weight:800;min-height:22px}.recent-report{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.recent-report .btn{white-space:nowrap}@media(max-width:620px){.report-grid{grid-template-columns:1fr}.recent-report{grid-template-columns:1fr}}

/* v10.63 child-owned learning report and Mission 2 natural audio */
.description-lines{display:flex;flex-direction:column;gap:.55rem;align-items:stretch}
.description-line{width:100%;border:0;background:transparent;color:inherit;text-align:left;font:inherit;font-weight:700;padding:.45rem .65rem;border-radius:14px;cursor:pointer;transition:.18s ease}
.description-line:hover{background:#fff7d8}
.description-line.is-playing{background:#fff0b8;box-shadow:0 0 0 3px #ffbd3d inset;transform:translateX(3px)}
.description-line .line-speaker{float:right;font-size:.9em;opacity:.72}

/* v10.64 content expansion */
.topic-tabs,.game-grid,.detail-grid,.repair-grid{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.topic-card{flex:1 1 220px;border:3px solid var(--line);border-radius:18px;background:white;padding:14px;cursor:pointer;font-weight:900;color:var(--blue)}.topic-card.selected{background:#fff0b9;border-color:var(--orange)}.step-shell{display:none}.step-shell.active{display:block}.stepbar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:14px 0}.stepbar span{padding:8px 6px;text-align:center;border-radius:12px;background:#edf7fb;font-size:.82rem;font-weight:900}.stepbar span.on{background:#ffd36e}.mini-scene-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.scene-thumb{width:150px;border:3px solid var(--line);border-radius:14px;padding:6px;background:#fff;cursor:pointer;font-weight:900;color:var(--blue)}.scene-thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}.scene-thumb.selected{border-color:var(--orange);background:#fff6d8}.zoom-mask{overflow:hidden;border-radius:20px;border:3px solid var(--line);height:260px;background:#eef8fc}.zoom-mask img{width:100%;height:100%;object-fit:cover;transform:scale(2.4);transform-origin:35% 65%;transition:.5s ease}.zoom-mask.revealed img{transform:scale(1)}.skill-chips{display:flex;gap:8px;flex-wrap:wrap}.skill-chip{padding:8px 12px;border-radius:999px;background:#eef8fc;font-weight:900}.game-title{display:flex;align-items:center;gap:10px}.game-title b{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--orange)}.step-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:16px}.example-box{padding:14px;border-left:6px solid var(--orange);background:#fff;border-radius:12px;line-height:1.7}.timer{font-size:2.1rem;font-weight:1000;color:var(--purple);text-align:center}.checklist label{display:block;margin:8px 0;font-weight:800}.compact-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.compact-choices button{min-height:70px}.topic-status{font-weight:900;color:var(--green)}
@media(max-width:760px){.stepbar{grid-template-columns:repeat(4,1fr)}.compact-choices{grid-template-columns:1fr}.zoom-mask{height:210px}}

/* v10.65 Mission 4 draggable talk builder and low-pressure preparation */
.talk-builder-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.sentence-pool,.drop-slots{display:flex;flex-direction:column;gap:10px}.sentence-card{width:100%;text-align:left;border:3px solid var(--line);background:#fff;border-radius:15px;padding:13px 15px;color:var(--ink);font-weight:850;line-height:1.45;cursor:grab;transition:.15s ease}.sentence-card:hover,.sentence-card.selected{border-color:var(--orange);background:#fff6d8;transform:translateY(-1px)}.sentence-card.used{opacity:.42}.sentence-card.shake{animation:mission4Shake .35s linear}.drop-slot{width:100%;min-height:82px;text-align:left;border:3px dashed #a9d4e6;background:#f5fcff;border-radius:16px;padding:10px 14px;cursor:pointer;display:flex;flex-direction:column;gap:5px;color:var(--ink)}.drop-slot span{font-size:.83rem;color:var(--blue);font-weight:1000}.drop-slot strong{font-size:.95rem;line-height:1.4}.drop-slot.filled{border-style:solid;border-color:#6eb663;background:#f0faed}.drop-slot.dragover{border-color:var(--orange);background:#fff4c8;transform:scale(1.01)}.prompt-outline{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0}.prompt-outline>div{border:2px solid var(--line);border-radius:14px;padding:10px;background:#fff;min-height:112px}.prompt-outline span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#ffd36e;font-weight:1000}.prompt-outline strong,.prompt-outline small{display:block;margin-top:7px}.prompt-outline small{color:#688093;line-height:1.4}.prepare-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.script-help{margin:14px 0}.script-help summary{cursor:pointer;font-weight:1000;color:var(--blue);padding:10px 0}@keyframes mission4Shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@media(max-width:850px){.talk-builder-layout{grid-template-columns:1fr}.prompt-outline{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.prompt-outline{grid-template-columns:1fr}.prepare-actions .btn{width:100%}}

/* v10.66 Speak-to-Unlock */
.voice-score{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.voice-score span{background:#fff6cf;border:2px solid #ffd36b;border-radius:999px;padding:8px 14px;font-weight:800;color:#82530b}.locked-next{opacity:.42;pointer-events:none;filter:grayscale(.35)}.voice-controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.voice-note{font-weight:750;color:#487087;margin-top:10px}.report-voice{margin-top:16px;padding-top:14px;border-top:2px dashed #c9e5f4}.speak-gate{background:#f0fbf6;border:2px solid #bde7ca;border-radius:18px;padding:12px 16px;margin:12px 0;font-weight:800;color:#236b3c}

/* v10.67 Bright US classroom UI */
:root{
  --navy:#123f70;--royal:#1769aa;--aqua:#22a7b8;--sun:#ffbf2f;--coral:#ff755f;
  --mint:#64c88a;--lav:#8a63d2;--paper:#ffffff;--soft-blue:#eef8ff;--soft-gold:#fff7d8;
}
body{background:
  radial-gradient(circle at 8% 5%,rgba(255,191,47,.18),transparent 18%),
  radial-gradient(circle at 92% 10%,rgba(34,167,184,.15),transparent 20%),
  linear-gradient(180deg,#eef9ff 0%,#fffdf7 52%,#f4fbff 100%);font-family:Nunito,ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif}
.card,.hero,.panel,.step-card{border-color:#bfe3f3;box-shadow:0 12px 28px rgba(18,63,112,.10)}
.card{padding:clamp(20px,3vw,34px)}
h1{font-weight:1000;letter-spacing:-.035em}
h2{font-size:clamp(1.85rem,3.3vw,2.7rem);font-weight:1000;letter-spacing:-.025em;margin-bottom:.55rem}
h3{font-size:clamp(1.35rem,2.2vw,1.8rem)}
.muted,.choice-note,.listen-help{font-size:1.05rem;color:#55748c}
.badge{background:linear-gradient(135deg,#e8f7ff,#fff3c5);border:2px solid #c7e8f6;box-shadow:0 5px 14px rgba(23,105,170,.08)}
.btn,.option,.topic-card,.choice{min-height:58px;border-radius:18px;box-shadow:0 5px 0 rgba(18,63,112,.10);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.btn:hover,.option:hover,.topic-card:hover,.choice:hover{transform:translateY(-2px);box-shadow:0 8px 0 rgba(18,63,112,.10)}
.btn:active,.option:active,.topic-card:active,.choice:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(18,63,112,.10)}
.option,.topic-card{font-size:clamp(1.08rem,1.8vw,1.35rem);padding:16px 18px;background:linear-gradient(180deg,#fff,#f8fcff)}
.option.selected,.topic-card.selected{background:linear-gradient(180deg,#fff5bf,#ffe89a);border-color:#ffad1f}
.compact-choices{gap:16px}.compact-choices button{min-height:104px}
.answer-box,.example-box,.report-sample{font-size:clamp(1.08rem,1.7vw,1.3rem);background:linear-gradient(180deg,#f2fbff,#fff);border-color:#acd9ec}
.stepbar{gap:10px;margin:18px 0 24px}.stepbar span{min-height:56px;padding:10px 8px;border-radius:18px;background:#eaf5fb;border:2px solid #d2eaf5;color:#315f80;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.stepbar span.on{background:linear-gradient(180deg,#ffd86d,#ffc345);border-color:#f1a91e;color:#493000;box-shadow:0 6px 0 #e7a51f}
.game-title{margin-top:8px}.game-title b,.step-number{width:48px;height:48px;font-size:1.3rem;background:linear-gradient(180deg,#ffd45d,#ffb72b);box-shadow:0 4px 0 #df9218}
.ui-en{display:block;font-weight:1000;line-height:1.16}.ui-zh{display:block;font-size:.72em;line-height:1.25;margin-top:6px;color:#69849a;font-weight:800;letter-spacing:.01em}.btn.primary .ui-zh,.btn.green .ui-zh,.btn.purple .ui-zh,.btn.blue .ui-zh{color:inherit;opacity:.9}
.option .ui-zh,.topic-card .ui-zh{font-size:.69em}.stepbar .ui-zh{font-size:.72rem;margin-top:4px}.stepbar .ui-en{font-size:.93rem}
.feedback{font-size:1.05rem;padding:6px 0}.report-card{border-width:4px}.report-item{font-size:1.02rem}
@media(max-width:760px){h2{font-size:1.75rem}.compact-choices button{min-height:88px}.stepbar span{min-height:52px}.option,.topic-card{font-size:1.05rem}}


/* v10.70 stronger success feedback + Ollie celebration */
.correct{background:linear-gradient(180deg,#eaffdf,#c8f2b8)!important;border-color:#55b94e!important;box-shadow:0 0 0 4px rgba(85,185,78,.18),0 8px 0 rgba(49,136,51,.16)!important;animation:ollieCorrectPop .38s ease}
.feedback.success{display:block;background:#eafbe5;border:3px solid #68bf5d;color:#226529;border-radius:18px;padding:14px 18px;font-size:1.18rem;font-weight:1000;box-shadow:0 6px 0 rgba(68,151,61,.14)}
.feedback.try-again{display:block;background:#fff4d7;border:3px solid #f0b437;color:#79520b;border-radius:18px;padding:14px 18px;font-weight:900}
@keyframes ollieCorrectPop{0%{transform:scale(.96)}55%{transform:scale(1.035)}100%{transform:scale(1)}}
.ollie-celebrate{position:fixed;inset:0;z-index:9999;background:rgba(11,48,79,.32);display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}
.ollie-celebrate.show{display:flex;animation:celebrateFade .22s ease}
.ollie-celebrate-card{position:relative;width:min(520px,92vw);text-align:center;background:linear-gradient(180deg,#fff,#fff7ce);border:5px solid #ffd15a;border-radius:32px;padding:26px 24px 24px;box-shadow:0 25px 70px rgba(12,53,86,.28);animation:celebratePop .45s cubic-bezier(.2,.9,.25,1.25)}
.ollie-celebrate-card img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(28,82,119,.18))}
.ollie-celebrate-card h2{margin:6px 0;color:#1769aa;font-size:clamp(2rem,6vw,3.2rem)}
.ollie-celebrate-card p{font-size:1.12rem;font-weight:900;color:#4b6d84;line-height:1.55}
.ollie-celebrate-stars{font-size:2rem;letter-spacing:.25rem;margin:8px 0}
@keyframes celebratePop{0%{transform:scale(.72) translateY(30px);opacity:0}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes celebrateFade{from{opacity:0}to{opacity:1}}
