:root{--shell-rail:100px;--ink:#254650;--teal:#267f83;--gold:#dfad54}body{background:#edf5f4}.topbar{background:#204953;color:#fff;border-color:#3b6a6f}.stage{overflow:hidden;background:#f0f5f1}.lesson-content-slot{height:100%;min-height:0}.rail{background:#fff8ea;gap:8px;grid-template-columns:75px 1fr auto;padding:8px 12px}.rail button{padding:0 10px;border:2px solid #88b2b0;border-radius:12px;color:#254650;background:#fffdf6}.teacher-tools,.navcluster{gap:5px}button{transition:transform .16s,box-shadow .16s}button:hover:not(:disabled){;box-shadow:0 4px 12px #315c6322}button:active:not(:disabled){;}button:focus-visible{outline:4px solid #f1b741;outline-offset:3px}button.selected{background:#d8f0e7!important;border-color:#338a72!important;box-shadow:0 0 0 3px #84d5bc44}button:disabled{opacity:.6}.scene-page{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--ink);font-family:'Segoe UI',Arial,sans-serif}.scene-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 25px 10px;background:#fff9e9}.eyebrow{font-weight:800;font-size:11px;letter-spacing:1.7px;text-transform:uppercase;color:#8d7041}.scene-heading h1{font-size:clamp(23px,2.5vw,34px);margin:4px 0}.scene-heading p{font-size:16px;margin:0}.mission-count{border:2px solid #cbaf75;border-radius:15px;padding:10px 16px;white-space:nowrap;font-size:23px;background:#fff0c9}.mission-count span{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase}.world{position:relative;overflow:auto;min-height:0;background:linear-gradient(#fcfaf141,#eff9f235),url('assets/scene.webp') center/cover}.world:before{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 60px #132d4b24}.scene-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:10px 25px;background:#fff9eb;border-top:2px solid #e4d3ac;min-height:66px}.feedback{font-size:16px;line-height:1.35;margin:0;max-width:73%}.feedback.success{color:#297646;font-weight:800}.teacher-accept,.primary{background:#1e7279!important;color:#fff!important;border:2px solid #1e7279!important;border-radius:12px;min-height:46px;min-width:166px}.teacher-accept:disabled{background:#d3e3de!important;border-color:#acc8be!important;color:#4f6d63!important;opacity:.7}.voice-badge{position:absolute;bottom:6px;right:12px;z-index:8;background:#fff9e8e8;padding:4px 9px;border-radius:9px;font-size:11px;color:#647976;pointer-events:none}.speech-bubble{position:relative;background:#fffdf3f7;border:3px solid #c3a86a;border-radius:19px;padding:12px 16px;box-shadow:0 5px 0 #785c2922;animation:bubble-in .4s ease-out}.speech-bubble:after{content:'';position:absolute;left:-10px;top:38%;width:16px;height:16px;background:#fffdf3;transform:rotate(45deg);border-left:3px solid #c3a86a;border-bottom:3px solid #c3a86a}.speech-bubble>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:#8b7347;font-weight:800;margin-bottom:5px}.speech-bubble strong{font-size:clamp(20px,2.1vw,28px);line-height:1.3;display:block;overflow-wrap:anywhere}.speech-bubble.speaking{border-color:#229b91;box-shadow:0 0 0 5px #80d8c536}.speaking .portrait img{animation:talk-nod .65s ease-in-out infinite alternate}.portrait{position:relative;overflow:hidden;border-radius:18px;background:#fff7e8;width:100%;height:100%;min-height:0}.portrait img{width:100%;height:100%;object-fit:contain;display:block}.portrait.crop{background-size:200% 200%;background-repeat:no-repeat;background-position:left top;aspect-ratio:4/5}.portrait.crop.hair{background-position:left bottom}.portrait-stage{height:100%;min-height:390px;position:relative;max-width:1200px;margin:auto}.observation-photo{position:absolute;left:6%;top:5%;height:85%;width:36%;border:7px ridge #cfac66;border-radius:23px;box-shadow:0 12px 25px #21474835}.observation-photo .portrait{border-radius:12px}.hotspot{position:absolute;background:#ffe3710a;border:3px dashed #d6aa49;border-radius:45%;padding:0;min-height:44px;min-width:44px;color:#26494d}.hotspot>span{position:absolute;top:-19px;left:0;background:#fff8d3;border:2px solid #d2ae61;border-radius:10px;padding:5px 10px;font-size:13px;white-space:nowrap}.hotspot.lit{background:#ffe97626;border:5px solid #ffc95b;box-shadow:0 0 15px #fff1a9;animation:focus-ring .7s ease-out}.hotspot.solved{border-color:#2eae8b}.mode-trace .hotspot.lit{animation:trace-in .9s ease-out;border-radius:14px}.mode-photo .hotspot.lit{animation:photo-flash .65s ease-out;border-radius:8px}.question-in-scene{position:absolute;left:47%;right:5%;top:5%}.feature-dock{position:absolute;left:47%;right:5%;top:32%;padding:16px;border:3px solid #81b7ac;border-radius:20px;background:#fff9eaf5;animation:slide-in .35s ease-out}.choices{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:10px 0}.choices button{min-height:52px;padding:9px 18px;font-size:20px;border:2px solid #9bbab0;border-radius:13px;background:#fffef7}.feature-label{display:block;text-align:center;font-size:22px;color:#287c60}.answer-in-scene{position:absolute;left:47%;right:5%;bottom:13%;display:grid;gap:8px}.answer-in-scene .speech-bubble strong{font-size:22px}.answer-in-scene .speech-bubble{padding:10px 13px;border-color:#489a83}.feature-trail{position:absolute;bottom:5%;left:47%;right:5%;display:flex;gap:8px;flex-wrap:wrap}.feature-trail span{background:#fff2cedd;border:2px dashed #bfa56b;border-radius:9px;padding:7px 10px;font-size:13px}.scene-sign{position:absolute;top:38%;left:49%;right:6%;background:#fff9eaf2;border:3px dashed #c8a56e;border-radius:16px;padding:18px;text-align:center;font-size:21px}.scene-sign.inline{position:relative;inset:auto;padding:8px;font-size:15px;margin:8px auto;max-width:900px}.photo-stamp{position:absolute;bottom:-28px;right:0;padding:8px 14px;background:#eef9dd;border:3px double #709a61;border-radius:15px;color:#4a7f47;font-weight:900;transform:rotate(-4deg);animation:stamp-in .5s ease-out}.actor{position:absolute;bottom:4%;left:2%;height:88%;width:25%;background:none;border:0;padding:0;z-index:2}.actor img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;pointer-events:none}.actor span{position:absolute;bottom:0;left:10%;right:10%;padding:8px 15px;background:#fff8e9;border:2px solid #d1ae68;border-radius:15px;font-size:19px}.actor i{font-size:12px;color:#28a89a;animation:tap-dot 1.7s infinite}.actor.right{left:auto;right:2%}.welcome-board{position:relative;width:42%;margin:20px auto;padding:20px;border:4px solid #d1ad68;border-radius:28px;background:#fff9e9f2;text-align:center;z-index:3;box-shadow:0 12px 25px #3e5b4233}.welcome-board h2{font-size:32px;margin:9px 0}.welcome-board p{font-size:19px}.club-pass{background:#fff0c7;border:2px dashed #c7a15c;padding:15px;border-radius:15px;margin:12px 0;font-size:20px}.personality-scene{position:relative;margin-left:25%;height:100%;min-height:390px}.personality-scene .portrait{position:absolute;left:20%;width:39%;top:4%;height:91%;background:transparent}.personality-scene .portrait img{object-fit:cover;mix-blend-mode:multiply;transform:scale(1.22);transform-origin:center 42%}.personality-scene>.speech-bubble{position:absolute;top:5%;left:2%;width:47%;z-index:3}.scene-object{position:absolute;right:5%;top:7%;width:160px;height:150px;z-index:3;border:3px solid #bca668;border-radius:20px;background:#fff3d9;box-shadow:0 8px 0 #71683725}.scene-object svg{height:105px;display:block;width:100%}.scene-object span{font-size:14px}.opened.quiet .scene-object{animation:book-open .6s ease-out}.opened.shy .scene-object{animation:curtain-open .65s ease-out}.opened.outgoing .scene-object{animation:mic-glow .8s ease-out}.context-note{position:absolute;left:1%;bottom:14%;width:38%;background:#fff7e7;border:2px solid #d0b97f;border-radius:16px;padding:14px;font-size:18px}.personality-choice{position:absolute;right:3%;bottom:12%;width:40%;z-index:4;padding:10px;background:#fff8e5ee;border-radius:18px}.personality-choice .choices button{font-size:18px;min-height:45px;padding:7px 11px}.person-label{position:absolute;bottom:4%;left:36%;padding:7px 20px;background:#fff9dc;border:2px solid #c7a961;border-radius:13px;font-size:20px;font-weight:800}.delivery-scene,.detective-board,.review-exhibition{position:relative;max-width:1150px;margin:auto;padding:16px 22px 32px;min-height:100%;}.mail-rack,.candidate-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.picture-card,.candidate{position:relative;min-width:0;border:5px solid #caa86c;border-radius:20px;background:#fffaf0;padding:8px;box-shadow:0 7px 0 #7f673825;overflow:hidden}.picture-card .portrait{height:230px;background:#fffef5}.picture-card>span,.candidate>span{display:block;font-size:19px;margin:6px 0}.attached-label{display:block;background:#d9f2e5;color:#287955;border-radius:11px;padding:8px;font-size:18px;animation:stamp-in .45s ease-out}.matched{border-color:#459781}.sentence-mail{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:20px 0 5px}.mail-token{background:#fff1ce;border:2px dashed #be9b5d;padding:14px 20px;font-size:20px;border-radius:12px;min-height:56px;touch-action:none;user-select:none}.drag-mail{position:fixed;pointer-events:none;z-index:10000;background:#fff0bc;border:3px solid #c3a15a;padding:13px;border-radius:12px;font-size:20px;box-shadow:0 8px 22px #25464d44}.clue-envelopes{display:flex;justify-content:center;gap:12px;margin-bottom:15px;flex-wrap:wrap}.envelope{padding:13px 20px;min-height:57px;min-width:170px;border:3px solid #cda763;border-radius:13px;background:linear-gradient(150deg,#fff9df,#ffe7aa);font-size:19px;max-width:100%}.envelope.open{background:#edf9ed;border-color:#76a890;animation:envelope-in .5s ease-out}.candidate-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}.candidate .portrait{height:225px}.candidate-gallery.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin:auto}.candidate-gallery.two .portrait{height:240px}.message-log{display:flex;justify-content:center;gap:12px;margin-top:15px}.message-log .speech-bubble{max-width:48%}.message-log .speech-bubble strong{font-size:20px}.description-scene{height:100%;min-height:390px;display:grid;grid-template-columns:48% 49%;gap:3%;max-width:1150px;padding:18px 30px 32px;margin:auto}.subject-photo{position:relative;min-height:340px}.subject-photo>.portrait{width:75%;height:100%;background:#fff9e7;border:5px ridge #c7a05c}.subject-photo .person-label{left:17%;bottom:0}.subject-badges{position:absolute;right:0;top:9%;display:flex;flex-direction:column;gap:12px;max-width:45%;}.subject-badges button{background:#fff5d8;padding:12px;border:3px solid #c9ad71;border-radius:12px;font-size:17px;box-shadow:0 5px 0 #886d3222}.subject-badges button.complete{background:#dff3e4;border-color:#64a883}.description-dock{padding-top:4px;overflow:auto}.description-dock h2{font-size:20px;color:#558c7d;margin:14px 0}.description-dock>p{padding:14px;background:#fff6e1;font-size:19px;border-radius:13px}.description-dock .speech-bubble{margin-bottom:14px}.description-dock .speech-bubble strong{font-size:23px}.roleplay-scene{position:relative;width:54%;margin:15px auto 30px;border:4px solid #c4a467;border-radius:24px;background:#fffaf0ee;padding:16px;z-index:3;}.role-selector{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;padding-bottom:12px}.role-selector .eyebrow{width:100%;text-align:center}.role-selector button,.example-button{padding:9px 13px;min-height:45px;background:#ffedc2;border:2px solid #c7ad77;border-radius:12px}.dialogue-history{max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:4px 7px 14px}.dialogue-history .speech-bubble{max-width:93%;flex-shrink:0}.dialogue-history .speech-bubble strong{font-size:21px}.dialogue-history .learner{align-self:flex-end;border-color:#66a892;background:#effaf1}.dialogue-history .learner:after{left:auto;right:-10px;border-color:#66a892;border-left:0;border-right:3px solid #66a892;background:#effaf1}.dialogue-history .current{border-style:dashed}.personal-reminder{font-size:13px;margin:9px 0 0}.learner-avatar{position:absolute;bottom:4%;right:3%;width:18%;height:66%;}.learner-avatar svg{width:100%;height:90%;filter:drop-shadow(0 8px 3px #1f43482a)}.learner-avatar span{display:block;border:2px solid #c7a96b;border-radius:14px;background:#fff6dc;padding:8px;font-weight:800;text-align:center;font-size:16px}.review-exhibition{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.review-card{min-width:0;border:4px solid #bfa067;border-radius:20px;background:#fff9e9;padding:10px;box-shadow:0 8px 0 #886f4125;}.review-card .portrait{height:220px}.review-card>span{display:block;font-size:21px;margin:10px 0}.review-card strong{font-size:18px;display:block;color:#3b806b}.review-card.opened{animation:stamp-in .4s ease-out}.review-frames{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:8px}.review-frames span{background:#fff5d6;border:2px solid #cead71;padding:10px 15px;border-radius:13px;font-size:18px}.mission-earned:after{content:'✦ GREAT WORK ✦';position:absolute;left:35%;top:30%;padding:20px;background:#fff2b2;border:4px double #e2a937;border-radius:25px;color:#367b68;font-size:25px;z-index:20;pointer-events:none;animation:earned 1.6s forwards}
@keyframes bubble-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes focus-ring{from{transform:scale(1.12);box-shadow:0 0 40px #ffe68b}to{transform:scale(1)}}@keyframes trace-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}@keyframes photo-flash{0%{background:#fff;box-shadow:0 0 50px #fff}100%{background:#ffe97626}}@keyframes slide-in{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}@keyframes stamp-in{from{transform:scale(1.13) rotate(-5deg);opacity:0}to{transform:scale(1);opacity:1}}@keyframes envelope-in{from{transform:rotateX(50deg)}to{transform:none}}@keyframes tap-dot{50%{opacity:.4;transform:scale(.7)}}@keyframes book-open{from{transform:rotateY(60deg)}to{transform:none}}@keyframes curtain-open{from{transform:translateX(35px);opacity:.4}to{transform:none}}@keyframes mic-glow{50%{box-shadow:0 0 40px #efc854;transform:scale(1.06)}}@keyframes talk-nod{to{transform:translateY(-4px)}}@keyframes earned{0%{opacity:0;transform:scale(.6)}25%,75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(-20px)}}
@media(max-height:750px) and (min-width:901px){.scene-heading{padding:10px 22px 8px}.scene-heading h1{font-size:27px}.portrait-stage,.personality-scene,.description-scene{min-height:360px}.picture-card .portrait,.candidate .portrait,.review-card .portrait{height:190px}.candidate-gallery.two .portrait{height:200px}.choices button{min-height:45px;padding:7px 12px;font-size:18px}.feature-dock{padding:11px;top:29%}.answer-in-scene{bottom:13%}.answer-in-scene .speech-bubble strong{font-size:20px}.feature-trail{bottom:3%}.scene-footer{min-height:60px}.dialogue-history{max-height:200px}.roleplay-scene{margin-top:10px;padding:12px}.voice-badge{font-size:10px}}
@media(max-width:1100px){.rail{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:7px}.progress{position:static}.teacher-tools{justify-self:auto}.navcluster{justify-self:auto}.rail button{font-size:13px;padding:0 8px}.lesson-shell{grid-template-rows:52px minmax(0,1fr) 130px}.rail{height:130px}.description-dock .speech-bubble strong{font-size:21px}}
@media(max-width:750px){.lesson-shell{grid-template-rows:46px minmax(0,1fr) 194px}.rail{height:194px;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;padding:6px 6px;gap:6px}.navcluster,.teacher-tools{width:100%;justify-content:center;flex-shrink:0;gap:4px}.rail button{font-size:12px;padding:0 7px;min-height:44px}.progress{height:24px;flex-shrink:0}.topbar{padding:0 10px;gap:8px}.brand{font-size:12px}.scene-heading{padding:12px 14px;align-items:flex-start}.scene-heading h1{font-size:23px}.scene-heading p{font-size:14px;line-height:1.4}.mission-count{padding:7px;font-size:17px}.scene-footer{padding:10px 12px;flex-wrap:wrap;gap:8px}.feedback{max-width:100%;font-size:14px}.teacher-accept{min-height:44px;min-width:160px;font-size:13px}.world{overflow:auto}.voice-badge{position:sticky;bottom:0;display:block;text-align:right;float:right;font-size:9px}.portrait-stage{min-height:790px;height:auto;padding:15px}.observation-photo{position:relative;left:auto;top:auto;height:350px;width:270px;max-width:90%;margin:auto}.question-in-scene{position:relative;inset:auto;margin:12px 0}.feature-dock,.answer-in-scene,.feature-trail,.scene-sign{position:relative;inset:auto;margin:12px 0}.speech-bubble strong{font-size:22px}.feature-trail{justify-content:center}.answer-in-scene .speech-bubble strong{font-size:20px}.hotspot span{font-size:12px}.actor{position:relative;left:auto;bottom:auto;width:42%;height:240px;display:inline-block;margin:10px 3%;vertical-align:top}.actor.right{right:auto}.actor span{font-size:15px;padding:6px;left:0;right:0}.welcome-board{width:92%;margin:12px auto}.welcome-board h2{font-size:26px}.cover-world,.ending-world{text-align:center}.personality-world>.actor{display:none}.personality-scene{margin:0;min-height:690px}.personality-scene .portrait{left:8%;top:90px;width:76%;height:360px}.personality-scene>.speech-bubble{left:4%;top:10px;width:92%}.scene-object{top:115px;right:3%;width:110px;height:122px}.scene-object svg{height:75px}.scene-object span{font-size:12px}.context-note{left:4%;bottom:auto;top:455px;width:92%;font-size:16px;padding:10px}.personality-choice{left:4%;right:auto;width:92%;bottom:auto;top:525px}.person-label{bottom:auto;top:408px;left:32%;font-size:16px}.mail-rack,.candidate-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.delivery-scene,.detective-board,.review-exhibition{padding:14px 12px 25px}.picture-card .portrait,.candidate .portrait{height:180px}.picture-card,.candidate{border-width:3px;padding:5px}.picture-card>span,.candidate>span{font-size:15px}.attached-label{font-size:15px}.sentence-mail{gap:8px}.mail-token{font-size:17px;padding:11px}.clue-envelopes{gap:8px}.envelope{font-size:17px;min-width:0;width:100%}.candidate-gallery.two .portrait{height:180px}.message-log{flex-direction:column}.message-log .speech-bubble{max-width:100%}.description-scene{display:flex;flex-direction:column;height:auto;padding:15px 12px;gap:15px}.subject-photo{height:390px;min-height:390px}.subject-photo .person-label{top:auto;bottom:0;left:16%}.subject-badges button{font-size:15px;padding:10px}.description-dock{overflow:visible}.description-dock .speech-bubble strong{font-size:21px}.talk-world>.actor{position:relative;width:45%;height:250px;margin-left:27%;}.learner-avatar{display:none}.roleplay-scene{width:94%;margin:5px auto 20px;padding:12px}.dialogue-history{max-height:300px}.dialogue-history .speech-bubble strong{font-size:19px}.review-exhibition{grid-template-columns:1fr}.review-card .portrait{height:280px;max-width:250px;margin:auto}.review-frames{grid-column:1;gap:8px}.review-frames span{font-size:17px}.mission-earned:after{left:5%;right:5%;text-align:center;font-size:21px}.scene-sign.inline{font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.mission-earned:after{display:none}}

.observation-photo{width:auto;aspect-ratio:4/5;max-width:40%}.hotspot{width:auto;height:44px;background:#fff7d9;border:2px solid #bc9a51;border-radius:12px;padding:6px 10px;z-index:5;box-shadow:0 3px 0 #99753624}.hotspot>span{position:static;background:none;border:0;padding:0;font-size:13px}.feature-ring{position:absolute;pointer-events:none;border:4px dashed transparent;border-radius:45%}.feature-ring.lit{border-color:#f0ba47;background:#ffe78422;box-shadow:0 0 14px #fff4a8;animation:focus-ring .6s ease-out}.feature-ring.solved{border-color:#3fba8c}.mode-trace .feature-ring.lit{border-radius:10px;animation:trace-in .8s ease-out}.mode-photo .feature-ring.lit{border-radius:8px;animation:photo-flash .65s ease-out}@media(max-width:750px){.observation-photo{max-width:90%;width:270px}}

.all-found .feature-dock{display:none}.all-found .answer-in-scene{bottom:22%;gap:15px}.all-found .speech-bubble strong{font-size:24px}@media(max-width:750px){.all-found .answer-in-scene{bottom:auto}.all-found .speech-bubble strong{font-size:21px}}

.personality-scene .portrait{left:28%;width:39%}.personality-scene .portrait img{object-fit:contain;transform:none}.personality-scene>.speech-bubble{left:1%;width:34%}.personality-scene>.speech-bubble strong{font-size:24px}.actor img{transform:scale(1.12);transform-origin:center bottom}@media(max-width:750px){.personality-scene .portrait{left:8%;width:76%}.personality-scene>.speech-bubble{left:4%;width:92%}.actor img{transform:none}}

.lesson-2 .actor{height:75%;width:22%;bottom:7%}.lesson-2 .actor img{object-fit:contain;border-radius:23px;transform:none}.lesson-2 .actor span{bottom:-8px}.delivery-scene,.detective-board{padding-bottom:12px}.roleplay-scene{margin-bottom:10px}.learner-avatar{bottom:7%}.voice-badge{bottom:1px}.picture-card{display:flex;flex-direction:column}.candidate{display:flex;flex-direction:column}.picture-card .portrait,.candidate .portrait{flex-shrink:0}.picture-card>span,.candidate>span{flex-shrink:0}@media(max-width:750px){.lesson-2 .actor{position:relative;width:42%;height:240px;bottom:auto;margin:12px 3%}.lesson-2 .actor span{bottom:0}}

.candidate:disabled{opacity:.9}.clue-match-world .candidate .portrait{height:180px}.clue-match-world .envelope{min-height:50px;padding:9px 15px}.clue-match-world .clue-envelopes{margin-bottom:8px}.clue-match-world .message-log{margin-top:8px}.clue-match-world .message-log .speech-bubble{padding:7px 12px}.clue-match-world .message-log .speech-bubble strong{font-size:17px}.clue-match-world .message-log .speech-bubble>span{margin-bottom:3px}.detective-board .candidate .portrait{height:205px}.detective-board .scene-sign{padding:6px;margin:7px auto}.detective-board .clue-envelopes{margin-bottom:10px}.talk-world .roleplay-scene{margin-bottom:5px}@media(max-width:750px){.clue-match-world .candidate .portrait,.detective-board .candidate .portrait{height:180px}.clue-match-world .message-log .speech-bubble{max-width:100%}}

.detective-board .candidate .portrait{height:188px}.match-world .picture-card .portrait{height:180px}.sentence-mail{margin:12px 0 4px}.match-world .scene-sign.inline{padding:6px}.matched>span{visibility:hidden}.attached-label{position:absolute;bottom:8px;left:8px;right:8px;margin:0;padding:6px;font-size:16px}@media(max-width:750px){.attached-label{font-size:14px}.detective-board .candidate .portrait{height:180px}}

.roleplay-scene{max-height:calc(100% - 20px);display:flex;flex-direction:column}.dialogue-history{overflow-x:hidden;overflow-y:auto;min-height:0;flex:1;padding:4px 14px 14px;max-height:180px}.role-selector,.personal-reminder,.example-button{flex-shrink:0}.example-button{align-self:flex-start}@media(max-width:750px){.roleplay-scene{max-height:none}.dialogue-history{max-height:300px;flex:0 1 auto}}

/* L002 review portraits: preserve each source quadrant's 4:5 proportions. */
.lesson-2 .review-card .portrait.crop{width:min(100%,176px);height:auto;aspect-ratio:4/5;margin-inline:auto}
@media(max-height:750px) and (min-width:901px){.lesson-2 .review-card .portrait.crop{width:min(100%,152px);height:auto}}
@media(max-width:750px){.lesson-2 .review-card .portrait.crop{width:min(100%,224px);height:auto}}

.lesson-4{--teal:#17776e;--gold:#e1ad56}.lesson-5{--teal:#5b7993;--gold:#d9ad68}
.lesson-4 .actor,.lesson-5 .actor{height:78%;width:21%;bottom:7%}.lesson-4 .actor img,.lesson-5 .actor img{object-fit:contain;mix-blend-mode:normal;transform:none;border-radius:22px}.lesson-4 .actor span,.lesson-5 .actor span{bottom:-10px}
.story-set{position:relative;height:100%;min-height:350px;max-width:1250px;margin:auto;padding:12px}.story-set .actor{left:1%;width:20%;height:76%;bottom:8%}.story-picture{position:absolute;left:24%;top:5%;width:37%;height:86%;padding:8px 8px 36px;border:5px ridge #d2ac64;border-radius:24px;background:#fff8e6;overflow:hidden;box-shadow:0 12px 25px #26465033}.story-picture .portrait{background:#fff9e9}.picture-invitation{position:absolute;bottom:0;left:0;right:0;padding:7px 10px;color:#3a625a;background:#fff0c9;font-size:19px;font-weight:800}.story-dialogue{position:absolute;right:3%;top:6%;width:34%;max-height:89%;overflow:auto;padding:2px 10px 12px}.story-dialogue .speech-bubble{margin-bottom:11px;padding:10px 14px}.story-dialogue .speech-bubble strong{font-size:23px}.story-dialogue .previous strong{font-size:17px}.story-dialogue .previous{padding:6px 12px}.story-options{background:#fff9e9ed;border:2px solid #b99e69;padding:12px;border-radius:17px}.story-options .choices{flex-direction:column;margin:9px 0 0}.story-options button{font-size:19px;min-height:51px;text-align:left}.story-stamp{display:block;background:#dff6e5;color:#2c725a;border:2px dashed #6c9c76;border-radius:12px;padding:10px;font-size:16px}.story-answer .speech-bubble{border-color:#64a88b}.story-glimmer{position:absolute;top:0;left:-100%;width:45%;height:100%;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:skewX(-15deg);pointer-events:none}.clue-open .story-glimmer{animation:scene-shine 1s ease-out}.clue-open.bounce .portrait img{animation:ball-bounce .7s ease-out}.clue-open.book .portrait img{animation:book-open .7s ease-out}.clue-open.board .portrait{animation:stamp-in .6s ease-out}.clue-open.music .portrait{animation:music-beat .8s ease-out}.clue-open.science .portrait{animation:science-glow 1s ease-out}.clue-open.cook .portrait{animation:stamp-in .6s ease-out}.clue-open.doctor .portrait{animation:music-beat .8s ease-out}.clue-open.teacher .portrait{animation:book-open .7s ease-out}
.lesson-4 .mode-hobby{min-height:350px}.mode-hobby>.portrait{position:absolute;left:3%;top:4%;width:51%;height:auto;aspect-ratio:3/2;border:5px solid #c9a769;box-shadow:0 8px 20px #25465033}.mode-hobby .hotspot,.mode-hobby .feature-ring{display:none}.mode-hobby .hobby-hotspot{position:absolute;border:3px dashed #ffdb72;border-radius:20px;min-width:44px;min-height:44px;background:#fff8;z-index:3;box-shadow:0 0 0 3px #fff5}.mode-hobby .hobby-hotspot span{display:block;background:#fff5d6;border-radius:10px;padding:6px;color:#264c53;font-size:17px;font-weight:800}.mode-hobby .hobby-hotspot.solved{background:#d8f7dc99;border-color:#228466}.mode-hobby .question-in-scene,.mode-hobby .feature-dock,.mode-hobby .answer-in-scene,.mode-hobby .feature-trail{left:59%;right:3%}.mode-hobby .feature-dock{top:30%}.mode-hobby .answer-in-scene{bottom:20%}.mode-hobby .scene-sign{left:59%;right:3%;top:36%}.mode-hobby .feature-trail{bottom:6%}
.lesson-4 .mail-rack{grid-template-columns:repeat(4,minmax(0,1fr))}.lesson-5 .mail-rack{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px;margin:auto}.lesson-5 .match-world .picture-card .portrait{height:245px}.lesson-4 .review-exhibition,.lesson-5 .review-exhibition{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-top:16px}.lesson-4 .review-card .portrait,.lesson-5 .review-card .portrait{height:170px;object-fit:contain}.lesson-4 .review-card>span,.lesson-5 .review-card>span{font-size:19px}.lesson-4 .review-card strong,.lesson-5 .review-card strong{font-size:17px}.lesson-4 .review-frames span,.lesson-5 .review-frames span{font-size:16px;padding:9px 12px}.lesson-4 .welcome-board,.lesson-5 .welcome-board{margin-top:14px;padding:15px}.lesson-4 .welcome-board h2,.lesson-5 .welcome-board h2{font-size:27px}.lesson-4 .welcome-board p,.lesson-5 .welcome-board p{font-size:17px}.lesson-5 .welcome-board .speech-bubble strong{font-size:23px}
.dream-passport{position:relative;min-height:350px;height:100%;max-width:1250px;margin:auto;padding:12px 22px 22px 23%;display:grid;grid-template-columns:1fr 1fr;gap:16px}.dream-passport .actor{left:1%;width:20%;height:78%}.dream-clues{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start;margin-top:10px}.dream-clue{position:relative;min-width:0;border:4px solid #ccaf78;border-radius:20px;background:#fff9e9;padding:8px;overflow:hidden;box-shadow:0 7px 0 #55777133}.dream-clue .portrait{height:178px}.dream-tag{display:block;font-size:16px;background:#fff0c6;border-radius:10px;padding:9px 4px;margin-top:6px}.dream-clue strong{font-size:17px;display:block;margin:8px 0;line-height:1.3}.dream-clue.opened{animation:stamp-in .45s ease-out}.dream-clue.opened .dream-tag{background:#e5f3e2}.passport-questions{overflow:auto;padding:2px 10px}.passport-question .speech-bubble{padding:8px 12px}.passport-question .speech-bubble strong{font-size:21px}.passport-question .choices{gap:6px;margin:7px 0}.passport-question .choices button{font-size:16px;min-height:42px;padding:6px 9px}.passport-question{margin-bottom:10px}.evidence-link{font-size:14px;margin:5px 0;color:#2e715c;background:#ecf9e7;border-radius:8px;padding:7px}
@keyframes scene-shine{to{left:160%}}@keyframes ball-bounce{0%,100%{transform:none}35%{transform:translateY(-10px)}65%{transform:translateY(-4px)}}@keyframes music-beat{25%,75%{box-shadow:0 0 0 8px #86d8c677}50%{box-shadow:0 0 0 18px #86d8c622}}@keyframes science-glow{50%{filter:brightness(1.16) saturate(1.2)}}
@media(max-width:1050px) and (min-width:751px){.story-dialogue .speech-bubble strong{font-size:20px}.story-options button{font-size:17px}.story-dialogue{width:35%;right:1%}.story-picture{left:23%;width:36%}.scene-heading p{font-size:14px}.lesson-4 .review-card>span,.lesson-5 .review-card>span{font-size:17px}.dream-passport{padding-left:20%}.dream-clue .portrait{height:150px}.passport-question .speech-bubble strong{font-size:18px}.dream-clue strong{font-size:15px}}
@media(max-width:750px){.lesson-4 .actor,.lesson-5 .actor{height:210px;width:40%;position:relative;bottom:auto;left:auto;margin:12px 4%}.story-set{min-height:950px;display:grid;grid-template-columns:1fr 1fr;padding:12px;gap:12px;height:auto}.story-set .actor{position:relative;height:190px;width:100%;grid-column:1;left:auto;bottom:auto;margin:0}.story-picture{position:relative;left:auto;top:auto;width:100%;height:270px;grid-column:1/-1;grid-row:2}.story-dialogue{position:relative;inset:auto;width:100%;grid-column:1/-1;max-height:none;overflow:visible}.story-dialogue .speech-bubble strong{font-size:21px}.story-options button{font-size:18px}.story-set{min-height:0}.lesson-4 .mail-rack,.lesson-5 .mail-rack{grid-template-columns:1fr 1fr;gap:10px}.lesson-4 .match-world .picture-card .portrait,.lesson-5 .match-world .picture-card .portrait{height:170px}.lesson-4 .review-exhibition,.lesson-5 .review-exhibition{grid-template-columns:1fr 1fr;padding:14px 12px 25px;gap:10px}.lesson-4 .review-card .portrait,.lesson-5 .review-card .portrait{height:165px;max-width:100%}.lesson-4 .review-card>span,.lesson-5 .review-card>span{font-size:16px}.lesson-4 .review-card strong,.lesson-5 .review-card strong{font-size:15px}.lesson-4 .welcome-board,.lesson-5 .welcome-board{width:90%;margin:12px auto}.dream-passport{display:flex;flex-direction:column;padding:12px;min-height:0;height:auto}.dream-passport .actor{height:210px;width:58%;margin:auto}.dream-clues{width:100%}.dream-clue .portrait{height:170px}.passport-questions{overflow:visible;padding:0}.mode-hobby>.portrait{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3/2}.mode-hobby .question-in-scene,.mode-hobby .feature-dock,.mode-hobby .answer-in-scene,.mode-hobby .feature-trail,.mode-hobby .scene-sign{position:relative;inset:auto;margin:12px 0;width:100%}.lesson-4 .mode-hobby{padding:12px;min-height:0;height:auto}.mode-hobby .hobby-hotspot span{font-size:13px;padding:4px}.mode-hobby .hobby-hotspot{border-width:2px}}
@media(prefers-reduced-motion:reduce){.scene-page *{animation:none!important;transition:none!important}}
.hobby-art{position:absolute;left:3%;top:4%;width:51%;aspect-ratio:3/2;height:auto;border:5px solid #c9a769;border-radius:20px;overflow:hidden;box-shadow:0 8px 20px #25465033}.hobby-art>.portrait{width:100%;height:100%;position:absolute;inset:0}.hobby-art img{object-fit:contain}.mode-hobby .hobby-hotspot{background:transparent}.mode-hobby .hobby-hotspot span{position:absolute;top:-6px;left:0;font-size:14px;padding:4px 7px}
@media(max-width:750px){.hobby-art{position:relative;inset:auto;width:100%;height:auto}.mode-hobby .hobby-hotspot span{font-size:12px}}
.activity-fx{position:absolute;inset:8px 8px 39px;pointer-events:none;overflow:hidden;border-radius:16px}.sport-orbit{position:absolute;bottom:13%;left:11%;width:48%;height:13%;border-bottom:5px dashed #fff17b;animation:track-reveal 1.2s ease-out}.reading-line{position:absolute;bottom:23%;left:20%;width:50%;border-top:4px solid #ffe875;animation:track-reveal 1s ease-out}.reading-line.second{bottom:19%;animation-delay:.15s}.board-piece{position:absolute;left:44%;top:64%;width:17px;height:17px;border:3px solid white;background:#e65f61;border-radius:50%;box-shadow:0 4px 7px #4e393955;animation:piece-step 1.1s ease-out}.equalizer{position:absolute;bottom:5%;left:30%;width:40%;height:50px;display:flex;align-items:end;justify-content:center;gap:8px}.equalizer i{width:13px;height:80%;border-radius:6px;background:#ffe075;box-shadow:0 0 6px #ffe8a5;animation:eq-beat .45s alternate 6}.equalizer i:nth-child(even){animation-delay:.2s;height:45%}.equalizer i:nth-child(3){animation-delay:.1s;height:100%}.lab-bubble{position:absolute;left:40%;bottom:20%;width:23px;height:23px;border:3px solid #71d7d5;background:#c4fcf5aa;border-radius:50%;animation:bubble-rise 1.5s ease-out 2}.lab-bubble.second{left:52%;width:14px;height:14px;animation-delay:.3s}.lab-bubble.third{left:60%;width:18px;height:18px;animation-delay:.6s}.chalk-path{position:absolute;right:16%;top:30%;width:34%;border-top:4px dashed #fff2a4;animation:track-reveal 1.2s ease-out}.steam{position:absolute;left:43%;bottom:34%;height:40%;width:13%;border-left:5px solid #ffffffaa;border-radius:50%;animation:steam-rise 1s 2}.steam.second{left:54%;animation-delay:.2s}.heart-trace{position:absolute;bottom:5%;left:20%;width:60%;height:22%;filter:drop-shadow(0 0 5px #fff)}.heart-trace path{fill:none;stroke:#ef6775;stroke-width:5;stroke-dasharray:300;stroke-dashoffset:300;animation:pulse-trace 1.4s forwards}
@keyframes track-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes piece-step{from{transform:translate(-70px,20px)}to{transform:none}}@keyframes eq-beat{to{height:25%}}@keyframes bubble-rise{to{transform:translateY(-80px);opacity:0}}@keyframes steam-rise{to{transform:translateY(-25px);opacity:0}}@keyframes pulse-trace{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.activity-fx *{animation:none!important}.heart-trace path{stroke-dashoffset:0}}
.hobby-art{width:46%;max-width:550px}.lesson-5 .welcome-board{padding:12px;margin-top:10px}.lesson-5 .welcome-board h2{font-size:25px;margin:7px 0}.lesson-5 .welcome-board p{font-size:16px;margin:9px 0}.lesson-5 .welcome-board .club-pass{font-size:17px;padding:10px;margin:9px 0}.lesson-5 .welcome-board .speech-bubble{padding:9px 12px}.lesson-5 .welcome-board .speech-bubble strong{font-size:21px}
.lesson-5 .match-world .delivery-scene{display:grid;grid-template-columns:3fr 1fr;gap:14px;padding-bottom:15px;align-items:start}.lesson-5 .match-world .mail-rack{grid-column:1;width:100%}.lesson-5 .match-world .sentence-mail{grid-column:2;flex-direction:column;align-items:stretch;margin-top:40px;gap:15px}.lesson-5 .match-world .scene-sign.inline{grid-column:1/-1;width:100%;margin:0}.lesson-5 .match-world .mail-token{padding:16px 8px;font-size:22px}
@media(max-width:750px){.hobby-art{width:100%;max-width:none}.lesson-5 .match-world .delivery-scene{display:block}.lesson-5 .match-world .sentence-mail{flex-direction:row;margin:15px 0}.lesson-5 .match-world .mail-token{padding:12px;font-size:19px}.lesson-5 .welcome-board .speech-bubble strong{font-size:21px}}
.story-dialogue.complete .speech-bubble{padding:7px 12px;margin-bottom:8px}.story-dialogue.complete .speech-bubble strong{font-size:18px}.story-dialogue.complete .final-response strong{font-size:21px}.story-dialogue.complete .speech-bubble>span{font-size:10px;margin-bottom:3px}.story-dialogue.complete .story-stamp{font-size:14px;padding:7px}
.all-delivered>.clue-envelopes{display:none}.lesson-4 .review-exhibition,.lesson-5 .review-exhibition{padding-bottom:15px}.lesson-4 .review-frames,.lesson-5 .review-frames{padding:4px}
@media(max-width:750px){.story-set .actor{grid-column:1/-1;width:65%;margin:0 auto}.lesson-4 .review-exhibition,.lesson-5 .review-exhibition{padding-bottom:25px}}
.lesson-5 .talk-world .roleplay-scene{margin-top:8px;max-height:calc(100% - 30px);padding:12px}.lesson-5 .talk-world .role-selector{padding-bottom:8px}
@media(max-width:750px){.lesson-5 .talk-world .roleplay-scene{max-height:none}}
.all-delivered>.scene-sign.inline{margin:4px auto}
.lesson-4 .learner-avatar svg,.lesson-5 .learner-avatar svg{height:calc(100% - 64px)}
.passport-question .choices{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0}.passport-question .choices button{min-width:0;font-size:15px;white-space:normal;min-height:44px}.passport-question .evidence-link{font-size:13px;padding:5px}.passport-question .speech-bubble strong{font-size:20px}

.lesson-6{--teal:#247c83;--gold:#dfac59}.lesson-7{--teal:#397e56;--gold:#e4af5b}.lesson-6 .actor,.lesson-7 .actor{height:78%;width:20%;bottom:6%}.lesson-6 .actor img,.lesson-7 .actor img{object-fit:contain;border-radius:24px;mix-blend-mode:normal}.lesson-6 .welcome-board,.lesson-7 .welcome-board{padding:14px;margin-top:14px}.lesson-6 .welcome-board h2,.lesson-7 .welcome-board h2{font-size:28px}.lesson-6 .welcome-board p,.lesson-7 .welcome-board p{font-size:17px}.lesson-6 .welcome-board .speech-bubble strong,.lesson-7 .welcome-board .speech-bubble strong{font-size:23px}
.journey-scene{display:grid;grid-template-columns:57% 43%;height:100%;min-height:350px;padding:14px;gap:0}.journey-art{position:relative;min-height:320px;height:100%;padding:8px 8px 60px;border:4px ridge #d7b371;border-radius:28px;background:#fff8e9ed;box-shadow:0 8px 18px #344c5533}.journey-art>.portrait{height:100%;border-radius:18px;overflow:hidden}.journey-art .portrait img{width:100%;height:100%;object-fit:contain}.scene-clue-trail{position:absolute;bottom:9px;left:9px;right:9px;display:flex;gap:7px;justify-content:center;flex-wrap:wrap}.scene-clue{font-size:16px;padding:9px 12px;min-height:44px;background:#fff3c3;border:2px solid #a6854c;border-radius:14px}.scene-clue.current{border-color:#208a70;box-shadow:0 0 0 4px #67cba444;animation:clue-pulse 2s 3}.journey-dialogue{margin-left:18px;padding:8px 10px;height:100%;overflow:auto}.journey-dialogue .speech-bubble{padding:10px 13px;margin:0 0 10px}.journey-dialogue .speech-bubble strong{font-size:23px}.journey-dialogue .choices{flex-direction:column;margin:10px 0}.journey-dialogue .choices button{font-size:19px;min-height:48px;text-align:left}.evidence-note{padding:13px;border:2px dashed #78a993;background:#fffce8f5;border-radius:16px;font-size:20px;animation:stamp-in .4s ease-out}.journey-progress{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.journey-progress span{border-radius:10px;padding:6px 9px;background:#fff8dd;font-size:14px}.journey-progress .complete{background:#d1f0d7;color:#286943}.oral-turn{border:2px solid #68a483;background:#edfae7;padding:12px;border-radius:15px;font-size:19px}.assembled-introduction .speech-bubble strong{font-size:19px}.assembled-introduction .speech-bubble{padding:7px 12px;margin-bottom:6px}.assembled-introduction .speech-bubble>span{font-size:10px}.support-vocabulary{display:flex;gap:5px;flex-wrap:wrap}.support-vocabulary span{background:#fff8e6;padding:5px 8px;border-radius:8px;font-size:14px}.journey-complete .journey-art{animation:music-beat .8s ease-out}.relation-tag{position:absolute;top:15%;max-width:40%;background:#fff2b5;padding:10px;border:3px solid white;border-radius:13px;font-size:20px;box-shadow:0 5px 12px #304d5533}.relation-tag.left{left:5%}.relation-tag.right{right:5%}.relation-connector{position:absolute;left:44%;top:22%;font-size:46px;color:#fff;background:#257d69;border-radius:15px;animation:stamp-in .6s ease-out}
.lesson-7 .story-set .story-picture{left:3%;width:55%;top:4%;height:89%}.lesson-7 .story-dialogue{width:37%;right:2%;top:6%}.lesson-7 .story-set .portrait img{object-fit:contain}.garden-bloom{position:absolute;bottom:4%;left:15%;right:15%;display:flex;justify-content:space-around;color:#e873ad;font-size:38px}.garden-bloom i{font-style:normal;animation:bloom-up .7s ease-out}.garden-bloom i:nth-child(2){animation-delay:.15s}.garden-bloom i:nth-child(3){animation-delay:.3s}.lesson-7 .story-answer .speech-bubble strong{font-size:22px}
.family-tree-scene{position:relative;max-width:1050px;margin:auto;padding:4px 20px 15px;height:100%;min-height:390px}.tree-people{display:grid;grid-template-columns:1fr 1fr;gap:26px 130px;max-width:680px;margin:16px auto;position:relative;z-index:2}.tree-person{height:148px;border:4px solid #b99c62;border-radius:22px;background:#fff9e6;padding:6px 6px 25px;position:relative;overflow:hidden}.tree-person .portrait{height:100%}.tree-person span{position:absolute;bottom:0;left:0;right:0;padding:4px;background:#fff1c5;font-size:15px}.tree-person.matched{border-color:#3b9a64;animation:stamp-in .45s ease-out}.tree-generation{position:absolute;left:12px;top:65px;background:#ffffe5;padding:7px;border-radius:9px;z-index:3;font-size:16px}.tree-generation.lower{top:240px}.tree-links{position:absolute;left:28%;right:28%;top:50%;height:35px;border:4px solid #659768;border-bottom:none;z-index:1}.family-tree-scene .sentence-mail{position:absolute;right:12px;top:12px;bottom:45px;width:145px;display:flex;flex-direction:column;justify-content:center;gap:12px}.family-tree-scene .mail-token{font-size:18px;padding:12px 7px}.family-tree-scene .tree-people{margin-right:165px;margin-left:110px;gap:24px 24px}.tree-speaking{font-size:17px;text-align:center;background:#ffffe9;border-radius:12px;padding:9px;position:relative;z-index:2}
.lesson-7 .review-exhibition{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;max-width:1150px}.lesson-7 .review-card .portrait{height:120px}.lesson-7 .review-card>span{font-size:17px}.lesson-7 .review-card strong{font-size:16px}.lesson-7 .review-frames{padding:5px;gap:5px}.lesson-7 .review-frames span{font-size:15px;padding:6px}.lesson-6 .review-exhibition{grid-template-columns:repeat(4,minmax(0,1fr));padding:14px}.lesson-6 .review-card .portrait{height:170px}.lesson-6 .review-card>span{font-size:17px}.lesson-6 .review-card strong{font-size:17px}.family-role-album{position:absolute;right:2%;top:5%;width:18%;height:72%;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px;background:#fff9e8;border:4px solid #b49b63;border-radius:20px}.family-role-album .portrait{height:100%;min-height:0}.lesson-7 .talk-world .learner-avatar{display:none}.lesson-6 .learner-avatar svg,.lesson-7 .learner-avatar svg{height:calc(100% - 64px)}
@keyframes clue-pulse{50%{box-shadow:0 0 0 8px #67cba422}}@keyframes bloom-up{from{opacity:0;transform:translateY(20px) scale(.2)}to{opacity:1;transform:none}}
@media(max-width:1050px) and (min-width:751px){.journey-dialogue .speech-bubble strong{font-size:20px}.journey-dialogue .choices button{font-size:17px}.evidence-note{font-size:18px}.scene-clue{font-size:14px;padding:7px}.lesson-7 .review-card .portrait{height:125px}.family-tree-scene .tree-people{margin-left:70px;gap:25px 15px}.tree-generation{font-size:13px;left:0}.journey-dialogue{margin-left:9px;padding:5px}.oral-turn{font-size:17px}}
@media(max-width:750px){.lesson-6 .actor,.lesson-7 .actor{position:relative;height:210px;width:40%;bottom:auto;left:auto;margin:12px 4%}.journey-scene{grid-template-columns:1fr;height:auto;padding:10px}.journey-art{height:360px;min-height:0}.journey-dialogue{margin:12px 0 0;height:auto;overflow:visible;padding:5px}.journey-dialogue .speech-bubble strong{font-size:21px}.lesson-7 .story-set{display:block}.lesson-7 .story-set .story-picture{position:relative;inset:auto;width:100%;height:370px}.lesson-7 .story-dialogue{position:relative;inset:auto;width:100%;margin-top:15px}.family-tree-scene{height:auto;padding:10px;min-height:0}.family-tree-scene .tree-people{margin:45px 0 15px;gap:40px 12px}.tree-person{height:210px}.tree-generation{top:12px;left:10px}.tree-generation.lower{top:268px}.family-tree-scene .sentence-mail{position:relative;inset:auto;width:100%;flex-direction:row;flex-wrap:wrap;gap:8px}.tree-links{top:48%;height:35px;left:25%;right:25%}.tree-speaking{margin-top:15px}.lesson-7 .review-exhibition,.lesson-6 .review-exhibition{grid-template-columns:1fr 1fr;gap:10px;padding:12px}.lesson-7 .review-card .portrait,.lesson-6 .review-card .portrait{height:170px}.family-role-album{position:relative;inset:auto;width:90%;height:300px;margin:15px auto}.lesson-6 .welcome-board,.lesson-7 .welcome-board{width:90%;margin:12px auto}.relation-tag{font-size:16px}.relation-connector{font-size:35px}.scene-clue{font-size:14px}}
@media(prefers-reduced-motion:reduce){.scene-clue,.garden-bloom i,.journey-complete .journey-art{animation:none}}
.previous-exchange{background:#fff9e9de;border-radius:12px;padding:6px 10px;margin-bottom:8px;border-left:4px solid #82ad95}.previous-exchange p{font-size:14px;margin:3px 0}.family-album{display:grid;grid-template-columns:55% 45%;grid-template-rows:minmax(210px,1fr) 105px auto;height:100%;gap:10px;padding:12px 22px}.album-main{background:#fff8e9;border:4px ridge #c5a168;border-radius:22px;padding:7px;min-height:0}.album-main .portrait{height:100%}.album-language{padding:12px}.album-language .speech-bubble strong{font-size:24px}.album-word{font-size:23px;background:#e7f4d7;border-radius:14px;padding:10px;text-align:center}.album-found{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.album-found span{background:#fffbe8;border-radius:9px;padding:5px;font-size:14px}.album-thumbnails{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.album-thumb{height:105px;position:relative;padding:4px 4px 22px;background:#fff8e8;border:2px solid #b29c70;border-radius:12px;overflow:hidden}.album-thumb .portrait{height:100%}.album-thumb span{position:absolute;bottom:0;left:0;right:0;background:#fff4ce;padding:3px;font-size:13px}.album-thumb.selected{border:4px solid #3f9a75}.album-frames{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.album-frames span{font-size:14px;background:#fff9e8;padding:4px 8px;border-radius:8px}
@media(max-width:750px){.family-album{display:flex;flex-direction:column;height:auto;padding:10px}.album-main{height:340px}.album-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr))}.album-language{padding:8px}.previous-exchange p{font-size:14px}}
@media(min-width:751px){.journey-complete .speech-bubble{padding:6px 10px;margin-bottom:5px}.journey-complete .speech-bubble strong{font-size:17px;line-height:1.18}.journey-complete .speech-bubble>span{font-size:9px;margin-bottom:3px}.journey-complete .oral-turn{font-size:16px;padding:8px;line-height:1.25}.journey-complete .journey-progress{margin:7px 0;gap:4px}.journey-complete .journey-progress span{font-size:12px;padding:4px 6px}.family-album{grid-template-rows:minmax(140px,1fr) 85px auto;gap:7px;padding:9px 18px}.album-thumbnails{gap:8px}.album-thumb{height:85px}.album-language{padding:5px 10px}.album-language .speech-bubble{padding:8px 12px;margin-bottom:8px}.album-language .speech-bubble strong{font-size:21px}.album-word{font-size:20px;padding:8px}.album-found{margin-top:8px}.album-found span{font-size:12px;padding:4px}.album-frames span{font-size:13px}.lesson-6 .review-card .portrait{height:150px}.lesson-6 .review-card strong{font-size:16px}.lesson-6 .review-frames span{font-size:15px;padding:6px 9px}.lesson-6 .review-exhibition{padding:10px;gap:10px}.lesson-6 .review-card>span{margin:7px 0}}
.learning-cue{position:absolute;right:3%;top:6%;padding:12px;border:3px solid #fff;border-radius:17px;background:#fff0badb;box-shadow:0 5px 14px #34544333;animation:stamp-in .45s ease-out;max-width:42%;pointer-events:none}.learning-cue>span{display:block;font-size:14px;text-transform:uppercase;letter-spacing:1px}.learning-cue>strong{font-size:24px;display:block;margin-top:6px}.cue-spark{font-size:40px;font-style:normal;color:#b67d28;display:block;text-align:center;animation:cue-twinkle .8s ease-out 2}.cue-face{border-radius:8px;border:4px dashed #e6b147}.cue-greet{animation:music-beat .9s ease-out 2}.learning-cue.cue-music,.learning-cue.cue-science{width:130px;height:120px}.learning-cue .equalizer{left:12%;width:76%;bottom:12px}.learning-cue .lab-bubble{bottom:15%}.cue-identity{transform:rotate(-3deg);border-style:dashed}.cue-reveal{background:#def2d9ed}.learning-cue.cue-face{background:#fff3c2b8}.journey-art:has(.cue-face) .portrait{animation:science-glow .8s ease-out}.journey-art:has(.cue-greet) .portrait{animation:book-open .6s ease-out}.journey-art:has(.cue-music) .portrait{animation:music-beat .9s ease-out}
@keyframes cue-twinkle{50%{transform:rotate(45deg) scale(1.3);filter:brightness(1.3)}}@media(max-width:750px){.learning-cue>strong{font-size:19px}.learning-cue>span{font-size:12px}.learning-cue{padding:8px;max-width:42%}.learning-cue.cue-music,.learning-cue.cue-science{width:105px;height:100px}}@media(prefers-reduced-motion:reduce){.learning-cue,.cue-spark,.journey-art .portrait{animation:none!important}}
@media(min-width:751px){.lesson-7 .journey-complete .speech-bubble{padding:4px 10px}.lesson-7 .journey-complete .oral-turn{padding:6px 8px}}
.tree-person.matched>span{visibility:visible;background:#dff1d8;color:#286541;z-index:3}
