: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}}
