:root{color-scheme:light;font-family:Trebuchet MS,Microsoft YaHei,Noto Sans SC,sans-serif;color:#1d2a2a;background:#eef6f2;--ink: #1d2a2a;--muted: #66736f;--paper: #fffdf7;--line: rgba(29, 42, 42, .12);--teal: #38a3a5;--coral: #f06f5f;--sun: #f2b84b;--blue: #4b75d6;--green: #5c6f68;--pink: #f497b6;--shadow: 0 18px 45px rgba(43, 74, 68, .14)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(135deg,rgba(56,163,165,.16),transparent 38%),linear-gradient(45deg,rgba(242,184,75,.18),transparent 48%),#eef6f2}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}main{min-height:calc(100vh - 76px)}.app-shell{min-height:100vh}.top-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;padding:12px clamp(16px,4vw,54px);border-bottom:1px solid rgba(255,255,255,.65);background:#fafdf8e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-button,.nav-pill,.primary-button,.secondary-button,.danger-button,.thing-card,.owner-card,.mystery-box{border:0}.brand-button{display:flex;align-items:center;gap:12px;color:var(--ink);background:transparent;text-align:left}.brand-button small{display:block;color:var(--muted);font-size:12px}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border-radius:8px;color:#fff;font-weight:900;background:linear-gradient(135deg,var(--teal),var(--blue))}.top-nav nav,.action-row,.bubble-row,.word-cloud,.badge-strip,.word-tags{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.nav-pill{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 12px;border-radius:8px;color:var(--muted);background:transparent}.nav-pill.active,.nav-pill:hover{color:var(--ink);background:#fff;box-shadow:0 8px 20px #283e3a17}.home-page,.adventure-page,.report-page,.teacher-page,.about-page{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:28px 0 54px}.hero-panel,.scene-card,.teacher-hero,.report-hero,.about-hero,.ai-report-card,.records-card,.dashboard-card,.metric-card,.summary-card,.certificate-card,.info-card,.design-note,.start-card,.goal-card{border:1px solid rgba(255,255,255,.78);border-radius:8px;background:#fffdf7db;box-shadow:var(--shadow)}.hero-panel{display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,1.08fr);gap:24px;min-height:610px;overflow:hidden}.hero-copy{padding:clamp(28px,5vw,58px)}.eyebrow,.chapter-label,.task-chip{display:inline-flex;align-items:center;gap:7px;color:#0d7778;font-weight:800;font-size:13px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:12px;font-size:clamp(36px,6vw,68px);line-height:1.02}h2{margin-bottom:10px;font-size:clamp(24px,3vw,34px)}h3{margin-bottom:10px}p{color:var(--muted);line-height:1.75}.subtitle{color:var(--coral);font-size:22px;font-weight:800}.start-card{display:grid;gap:14px;margin-top:26px;padding:18px;background:#fff}.start-card label{display:grid;gap:7px;color:var(--green);font-weight:800}.start-card input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;padding:0 14px;background:#f7fbf8}.primary-button,.secondary-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:8px;font-weight:900}.primary-button{color:#fff;background:linear-gradient(135deg,var(--coral),#e05242)}.secondary-button{color:var(--ink);background:#fff;border:1px solid var(--line)}.danger-button{color:#fff;background:#be3f35}.hero-visual{position:relative;min-height:520px;background:#d6eee8}.hero-visual img{width:100%;height:100%;min-height:610px;object-fit:cover;display:block}.bobo-float{position:absolute;right:22px;bottom:22px;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;background:#fffdf7eb;box-shadow:0 16px 30px #19302c29;font-weight:900}.mission-goals{margin-top:24px}.section-title,.chapter-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.section-title>svg,.chapter-heading>svg{width:46px;height:46px;padding:10px;border-radius:8px;color:#fff;background:var(--teal)}.goal-grid,.metric-grid,.about-grid,.report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.goal-card{min-height:132px;padding:18px}.goal-card span{display:grid;width:32px;height:32px;place-items:center;margin-bottom:16px;border-radius:8px;color:#fff;background:var(--blue);font-weight:900}.goal-card p{color:var(--ink);font-weight:900}.mission-header{display:flex;justify-content:space-between;gap:18px;margin-bottom:18px;padding:22px;border-radius:8px;background:#fff;box-shadow:var(--shadow)}.mission-header h1{font-size:clamp(25px,4vw,42px)}.mission-stats{display:grid;gap:12px;justify-items:end}.star-trail{display:flex;align-items:center;gap:4px;color:var(--sun);font-size:18px}.star-trail strong{margin-left:6px;color:var(--ink)}.badge-strip span,.badge-wall span,.word-tags span,.item-parade span,.clue-card,.suggestion-grid span{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:8px;background:#38a3a51c;color:#176f70;font-weight:800}.badge-strip span{color:#93a09c;background:#eef2f0}.badge-strip span.earned{color:#fff;background:var(--teal)}.scene-card{position:relative;padding:clamp(18px,3vw,30px);overflow:hidden}.intro-scene,.box-layout,.owner-layout,.dialogue-stage{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;align-items:center}.scene-visual{display:grid;min-height:300px;place-items:center;border-radius:8px;background:linear-gradient(135deg,rgba(75,117,214,.14),transparent),#edf8f6}.dialogue-panel,.task-panel,.chat-script{padding:22px;border-radius:8px;background:#fff;border:1px solid var(--line)}.typewriter{color:var(--ink);font-size:20px;font-weight:900}.mystery-box{display:grid;place-items:center;min-height:330px;border:3px dashed rgba(56,163,165,.44);border-radius:8px;color:#176f70;background:repeating-linear-gradient(45deg,rgba(242,184,75,.18) 0 12px,transparent 12px 24px),#fff9e9;font-size:22px;font-weight:900}.mystery-box.open{border-color:var(--coral)}.hint-line,.scene-note,.loading-text,.empty-text{color:var(--green);font-weight:800}.word-cloud button,.bubble-row button,.bubble-column button{min-height:42px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-weight:900;box-shadow:0 8px 18px #283e3a14}.word-cloud button:hover,.bubble-row button:hover,.bubble-column button:hover,.thing-card:hover,.owner-card:hover{transform:translateY(-2px)}.thing-card{display:inline-grid;gap:8px;justify-items:center;min-width:128px;min-height:118px;padding:16px;border-radius:8px;color:var(--ink);background:#fff;box-shadow:0 10px 24px #283e3a1f}.thing-card.compact{min-width:100%;min-height:96px}.thing-card.selected{outline:3px solid var(--thing)}.thing-icon{display:grid;width:54px;height:54px;place-items:center;border-radius:8px;color:#fff;background:var(--thing);font-size:26px;font-weight:900}.desk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.desk-item{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.desk-item.solved{border-color:#38a3a594;background:#f2fbf8}.desk-item p{margin:12px 0;color:var(--ink);font-weight:900}.owner-layout{grid-template-columns:250px minmax(0,1fr)}.lost-tray,.owner-grid{display:grid;gap:12px}.lost-tray{align-self:start;padding:16px;border-radius:8px;background:#f8f5ed}.owner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.owner-card{display:grid;gap:12px;min-height:190px;padding:18px;border-radius:8px;text-align:left;color:var(--ink);background:#fff;border:1px solid var(--line)}.owner-card.matched{background:#effaf6;border-color:#38a3a585}.character-avatar{display:inline-flex;align-items:center;gap:10px}.avatar-face{display:grid;width:58px;height:58px;place-items:center;border:4px solid color-mix(in srgb,var(--accent),white 38%);border-radius:50%;color:#fff;background:var(--accent);font-size:24px;font-weight:900}.character-avatar.active .avatar-face{box-shadow:0 0 0 6px #f2b84b38}.modal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:20px;background:#16232161}.prompt-card{width:min(460px,100%);padding:26px;border-radius:8px;background:#fffdf7;box-shadow:0 28px 80px #00000038;text-align:center}.dialogue-stage{grid-template-columns:180px minmax(0,1fr) 74px}.bubble-column{display:grid;gap:10px;margin:18px 0}.speaker-line{color:var(--ink);font-size:20px}.send-orb{display:grid;width:58px;height:58px;place-items:center;border:0;border-radius:8px;color:#fff;background:var(--blue)}.bobo{position:relative;display:grid;justify-items:center;gap:4px}.bobo-large{transform:scale(1.45)}.bobo-antenna{width:4px;height:20px;background:var(--teal)}.bobo-antenna:before{content:"";display:block;width:13px;height:13px;margin-left:-4px;border-radius:50%;background:var(--sun)}.bobo-head{display:flex;align-items:center;justify-content:center;gap:14px;width:82px;height:60px;border-radius:8px;background:#fff;border:4px solid var(--teal)}.bobo-head span{width:13px;height:13px;border-radius:50%;background:var(--blue)}.bobo-body{display:grid;width:68px;height:64px;place-items:center;border-radius:8px;background:var(--teal)}.bobo-body i{width:28px;height:12px;border-radius:8px;background:#fff}.report-hero,.teacher-hero,.about-hero{display:flex;justify-content:space-between;gap:24px;margin-bottom:18px;padding:clamp(24px,4vw,42px)}.report-hero,.about-hero{display:block;background:linear-gradient(135deg,rgba(56,163,165,.13),transparent),#fffdf7}.report-grid{grid-template-columns:1.2fr 1fr 1fr 1fr}.certificate-card,.summary-card{padding:20px}.certificate-card{color:#fff;background:linear-gradient(135deg,var(--teal),var(--blue))}.certificate-card p{color:#ffffffe0}.badge-wall{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.badge-wall span{color:var(--ink);background:#fff}.summary-card ul{margin:0;padding-left:20px;color:var(--muted);line-height:1.9}.word-tags.warm span{color:#9b3f34;background:#f06f5f24}.item-parade{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.item-parade span{color:var(--ink);background:color-mix(in srgb,var(--thing),white 82%)}.teacher-page h1{font-size:clamp(34px,5vw,56px)}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:16px}.metric-card{padding:18px}.metric-card span{color:var(--muted);font-size:13px;font-weight:900}.metric-card strong{display:block;margin-top:10px;font-size:34px}.metric-card small{margin-left:4px;font-size:14px;color:var(--muted)}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.dashboard-card{padding:18px;min-height:330px}.dashboard-card.wide{grid-row:span 2}.ai-report-card,.records-card{margin-top:16px;padding:22px}.suggestion-grid,.level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.level-card{min-height:110px;padding:14px;border-radius:8px;background:#f4f7f5}.level-card p{margin:8px 0 0}.record-table{overflow-x:auto}.record-row{display:grid;grid-template-columns:1fr 1fr .6fr .6fr 1.3fr 1fr;gap:12px;min-width:820px;padding:12px 8px;border-bottom:1px solid var(--line);color:var(--muted)}.record-row.header{color:var(--ink);font-weight:900}.error-banner{padding:14px;border-radius:8px;color:#8a2119;background:#f06f5f26;font-weight:900}.about-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.info-card,.design-note{padding:20px}.info-card svg{width:42px;height:42px;padding:9px;border-radius:8px;color:#fff;background:var(--coral)}.info-card ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.85}.design-note{margin-top:16px}@media (max-width: 980px){.top-nav{align-items:flex-start;flex-direction:column}.hero-panel,.intro-scene,.box-layout,.owner-layout,.dialogue-stage,.teacher-hero,.report-hero{grid-template-columns:1fr}.hero-panel{min-height:0}.hero-visual img{min-height:360px}.goal-grid,.metric-grid,.about-grid,.report-grid,.desk-grid,.owner-grid,.dashboard-grid,.suggestion-grid,.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-header{flex-direction:column}.mission-stats{justify-items:start}}@media (max-width: 640px){.home-page,.adventure-page,.report-page,.teacher-page,.about-page{width:min(100% - 20px,1180px);padding-top:14px}.nav-pill span{display:none}h1{font-size:34px}.hero-copy,.scene-card,.teacher-hero,.about-hero,.report-hero{padding:18px}.goal-grid,.metric-grid,.about-grid,.report-grid,.desk-grid,.owner-grid,.suggestion-grid,.level-grid{grid-template-columns:1fr}.bobo-float{left:12px;right:12px}.mystery-box{min-height:240px}}.mission-deck-page,.teacher-command-page,.detective-report-page{width:min(1320px,calc(100% - 32px))}.mission-command-header,.mission-deck,.mission-scene,.lost-found-map,.mission-side-panel,.clue-board,.pending-tray,.skill-command-card,.skill-report-card,.command-hero,.detective-report-hero,.finale-scene{border:1px solid rgba(255,255,255,.78);border-radius:28px;background:#fffdf7e6;box-shadow:0 24px 70px #294a4629}.mission-command-header{display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);gap:20px;margin-bottom:18px;padding:clamp(22px,4vw,34px);background:radial-gradient(circle at 8% 8%,rgba(242,184,75,.26),transparent 30%),linear-gradient(135deg,#38a3a52e,#fffdf7f0)}.mission-command-header h1{font-size:clamp(30px,4.8vw,58px)}.phase-track{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.phase-track span{min-height:30px;padding:6px 10px;border-radius:999px;color:#8c9b96;background:#1d2a2a0f;font-size:12px;font-weight:900}.phase-track span.active{color:#174f52;background:#38a3a538}.phase-track.debug button{min-height:30px;padding:6px 10px;border:1px solid rgba(29,42,42,.08);border-radius:999px;color:#8c9b96;background:#1d2a2a0a;font-size:12px;font-weight:900}.phase-track.debug button.active{color:#174f52;background:#38a3a538;border-color:#38a3a533}.phase-track.debug button:hover{transform:translateY(-1px);color:#174f52}.mission-deck{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;margin-bottom:18px;padding:16px;background:linear-gradient(135deg,#d8f3eec2,#fff4d6b8),#f8fbf4}.mission-feedback-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:14px 18px;border:1px solid rgba(255,255,255,.78);border-radius:22px;background:#fffdf7eb;box-shadow:0 18px 42px #294a461f}.mission-feedback-bar>div{display:flex;align-items:center;gap:12px;min-width:0}.mission-feedback-bar p{margin:0;color:var(--ink);font-weight:800}.lost-found-map{position:relative;min-height:520px;overflow:hidden;background:#dff2ee}.map-backdrop,.map-backdrop img{width:100%;height:100%;min-height:520px}.map-backdrop img{display:block;object-fit:cover}.map-hotspot,.map-feedback,.selected-ribbon{position:absolute;display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:999px;color:#12393b;background:#fffdf7eb;box-shadow:0 14px 32px #19302c29;font-weight:900}.map-hotspot.scanner{left:7%;top:12%}.map-hotspot.clue-wall{right:8%;top:14%}.map-hotspot.owner-zone{right:9%;bottom:16%}.map-feedback{left:8%;bottom:12%;max-width:min(560px,70%);border:2px solid rgba(56,163,165,.18)}.map-feedback.success{border-color:#38a3a58c}.map-feedback.error{border-color:#f06f5f8c}.map-feedback.hint{border-color:#f2b84b9e}.map-items{position:absolute;left:14%;right:18%;bottom:24%;display:flex;align-items:end;justify-content:center;gap:10px}.map-item{display:grid;width:clamp(46px,6vw,72px);height:clamp(46px,6vw,72px);place-items:center;border-radius:20px;background:color-mix(in srgb,var(--thing),white 72%);opacity:.5;transform:translateY(10px) rotate(-3deg);transition:.22s ease}.map-item.scanned{opacity:1;transform:translateY(0) rotate(0);box-shadow:0 12px 26px color-mix(in srgb,var(--thing),transparent 70%)}.map-item img{width:78%;height:78%}.selected-ribbon{left:50%;top:50%;transform:translate(-50%,-50%);border:2px solid rgba(242,184,75,.6)}.mission-side-panel{display:grid;align-content:start;gap:14px;padding:16px}.mission-side-panel .bobo{justify-self:center}.feedback-beacon{justify-self:start;padding:6px 10px;border-radius:999px;color:#fff;background:var(--teal);font-size:12px;font-weight:900;text-transform:uppercase}.feedback-beacon.error{background:var(--coral)}.feedback-beacon.hint{background:var(--sun);color:#513714}.hint-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:0;border-radius:999px;color:#134345;background:#38a3a524;font-weight:900}.mission-scene{margin-bottom:18px;padding:clamp(18px,3vw,30px)}.briefing-card,.finale-scene{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:center;overflow:hidden;background:radial-gradient(circle at 82% 24%,rgba(242,184,75,.28),transparent 26%),linear-gradient(135deg,#fffdf7,#edf8f6)}.briefing-card p,.finale-scene p{max-width:760px}.scanner-grid{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);gap:20px;align-items:stretch}.scanner-window{position:relative;display:grid;min-height:330px;place-items:center;overflow:hidden;border:0;border-radius:28px;color:#176f70;background:linear-gradient(135deg,rgba(56,163,165,.18),transparent),#edf8f6;font-size:22px;font-weight:900}.scanner-window.open{background:#fff9e9}.scanner-window img{width:min(260px,72%);filter:drop-shadow(0 24px 24px rgba(40,62,58,.18))}.scan-line{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border:2px solid rgba(56,163,165,.2);border-radius:24px}.scanner-window.open .scan-line:after{content:"";position:absolute;left:6%;right:6%;top:18%;height:4px;border-radius:999px;background:var(--teal);animation:scanSweep 1.8s ease-in-out infinite}@keyframes scanSweep{0%,to{transform:translateY(0);opacity:.35}50%{transform:translateY(180px);opacity:.95}}.location-grid,.skill-command-grid,.skill-report-grid,.diagnosis-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.location-card{min-height:122px;padding:16px;border-radius:22px;background:linear-gradient(135deg,#38a3a51f,#f2b84b24),#fff;border:1px solid var(--line)}.location-card span{color:#0d7778;font-weight:900}.investigate-intro{max-width:820px;margin-bottom:18px;color:var(--green);font-weight:900}.clue-desk-grid .thing-card{width:100%}.clue-desk-grid .thing-card small{display:none}.bobo-clue-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}.bobo-clue-line span{color:#0d7778;font-size:12px;font-weight:900;text-transform:uppercase}.bobo-clue-line button{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:0;border-radius:999px;padding:0 12px;color:#134345;background:#38a3a524;font-weight:900}.english-hint{min-height:56px;margin:10px 0 12px;padding:12px;border-radius:14px;color:var(--ink);background:#f2b84b24;font-weight:900}.word-choice-row{display:flex;flex-wrap:wrap;gap:10px}.word-choice-row button{min-height:42px;padding:8px 16px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;font-weight:900;box-shadow:0 8px 18px #283e3a14}.word-choice-row button:hover{transform:translateY(-2px)}.item-feedback{margin:12px 0 0;padding:10px 12px;border-radius:14px;font-size:14px;font-weight:900}.item-feedback.error{color:#8a2119;background:#f06f5f24;border:1px solid rgba(240,111,95,.24)}.deduction-layout{display:grid;grid-template-columns:300px minmax(0,1fr) 260px;gap:16px;align-items:start}.deduction-focus{display:grid;grid-template-columns:minmax(260px,.34fr) minmax(0,.66fr);gap:18px;align-items:start}.deduction-intro{max-width:780px;margin-bottom:18px;color:var(--green);font-weight:900}.deduction-clues .clue-board,.return-workbench .pending-tray{height:100%}.return-workbench{display:grid;gap:16px}.return-workbench.single-pane{grid-template-columns:1fr}.return-workbench .pending-tray.full{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}.return-workbench .pending-tray.full h3,.return-workbench .pending-tray.full>p{grid-column:1 / -1}.return-workbench .owner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clue-board,.pending-tray{display:grid;gap:10px;padding:16px;background:#fffdf7}.clue-board.compact,.pending-tray:not(.full){box-shadow:none;border-radius:22px}.clue-board article{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border-radius:16px;background:color-mix(in srgb,var(--thing),white 84%)}.clue-board article img{width:42px;height:42px}.clue-board article p{grid-column:1 / -1;margin:0;font-size:13px}.pending-tray .thing-card{width:100%;min-width:0}.owner-card small,.emotion-line{color:var(--green);font-weight:800}.owner-card strong{color:#176f70;font-size:14px}.owner-check-card{display:grid;justify-items:center;gap:12px}.dialogue-stage{grid-template-columns:220px minmax(0,1fr)}.dialogue-agent-stage{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(320px,1.05fr);gap:22px;align-items:stretch}.textbook-panel{min-height:420px;overflow:hidden;border:1px solid rgba(29,42,42,.1);border-radius:24px;background:#fff;box-shadow:0 22px 52px #294a4629}.textbook-panel img{display:block;width:100%;height:100%;min-height:420px;object-fit:cover}.dialogue-object-panel{display:grid;min-height:420px;grid-template-rows:auto minmax(0,1fr) auto;justify-items:center;align-items:center;gap:16px;overflow:hidden;padding:clamp(20px,3vw,34px);border:1px solid rgba(29,42,42,.1);border-radius:24px;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--thing) 18%,transparent),transparent 42%),linear-gradient(180deg,#fffdf7,#f4fbfb);box-shadow:0 22px 52px #294a4624}.dialogue-object-panel span{justify-self:start;color:#0d7778;font-size:13px;font-weight:900;text-transform:uppercase}.dialogue-object-panel img{display:block;width:min(82%,340px);max-height:300px;object-fit:contain;filter:drop-shadow(0 24px 26px rgba(29,42,42,.18))}.dialogue-object-panel p{margin:0;color:var(--green);font-size:clamp(18px,2.4vw,26px);font-weight:900;text-align:center}.agent-dialogue-panel{display:grid;align-content:center;gap:14px;padding:clamp(18px,3vw,28px);border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#f2b84b29,#38a3a51a),#fffdf7}.roleplay-agent-card{display:grid;grid-template-columns:128px minmax(0,1fr);gap:18px;align-items:center;padding:16px;border:1px solid rgba(29,42,42,.1);border-radius:18px;background:#ffffffd1;box-shadow:0 18px 42px #294a461f}.roleplay-agent-card h3{margin:8px 0 2px;color:var(--ink);font-size:24px;line-height:1.1}.roleplay-agent-card .emotion-line{margin:0;color:var(--green);font-weight:900}.voice-orbit{position:relative;display:grid;width:112px;height:112px;place-items:center}.voice-orbit:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:999px;background:repeating-conic-gradient(from 0deg,rgba(92,102,255,.42) 0deg 2deg,transparent 2deg 7deg);mask:radial-gradient(circle,transparent 0 51%,#000 52% 100%);opacity:.34}.voice-orbit.speaking:before,.voice-orbit.listening:before,.voice-orbit.connecting:before{animation:voiceSweep 1.25s linear infinite;opacity:.7}.voice-orbit img,.voice-orbit .textbook-avatar{position:relative;z-index:2;width:72px;height:72px;object-fit:cover;border:4px solid #fff;border-radius:999px;background:#fff;box-shadow:0 12px 28px #4b75d633}.textbook-avatar{display:block;background-image:url(/assets/textbook-dialogue.png);background-repeat:no-repeat;background-color:#fff}.textbook-avatar.amy.large{background-size:470px auto;background-position:-99px -58px}.textbook-avatar.amy.small{background-size:220px auto;background-position:-46px -27px}.voice-orbit-wave{position:absolute;top:20px;right:20px;bottom:20px;left:20px;border:1px solid rgba(92,102,255,.16);border-radius:999px}.voice-orbit.speaking .voice-orbit-wave,.voice-orbit.listening .voice-orbit-wave{animation:voicePulse 1.1s ease-out infinite}.voice-float{position:absolute;z-index:3;top:0;right:-18px;display:grid;min-width:78px;min-height:48px;justify-items:center;align-content:center;gap:3px;padding:7px 10px;border-radius:18px;color:#5c66ff;background:#fff;box-shadow:0 14px 30px #1d2a2a24;font-size:12px;font-weight:900}.voice-float i{display:inline-block;width:9px;height:9px;margin:0 2px;border-radius:999px;background:#5c66ff;animation:voiceDot .9s ease-in-out infinite}.voice-float i:nth-child(2){animation-delay:.12s}.voice-float i:nth-child(3){animation-delay:.24s}.dialogue-chat-panel{display:grid;gap:13px;max-height:260px;overflow:auto;padding:16px;border:1px solid rgba(29,42,42,.08);border-radius:18px;background:#f7f9fc}.dialogue-chat-row{display:grid;gap:8px;align-items:start}.dialogue-chat-row.assistant{grid-template-columns:36px minmax(0,1fr);justify-items:start}.dialogue-chat-row.student{justify-items:end}.dialogue-chat-row img,.dialogue-chat-row .textbook-avatar{width:34px;height:34px;object-fit:cover;border-radius:999px;background:#fff;box-shadow:0 6px 14px #4b75d629}.dialogue-chat-row div{display:grid;gap:4px;max-width:min(100%,420px)}.dialogue-chat-row span{color:#1d2a2a9e;font-size:12px;font-weight:900}.dialogue-chat-row p{margin:0;padding:12px 14px;border:1px solid rgba(29,42,42,.1);border-radius:14px;color:var(--ink);background:#fff;font-weight:900;line-height:1.5}.dialogue-chat-row.student p{border-color:#5c66ff1f;background:#5c66ff14}.dialogue-chat-row.student.waiting p{color:#1d2a2a85;background:#ffffffbd}.roleplay-line,.student-line{position:relative;display:grid;gap:8px;padding:16px 58px 16px 16px;border-radius:18px;background:#fff;border:1px solid var(--line)}.student-line{padding-right:16px;background:#edf8f6;border-color:#38a3a547}.student-line.hidden-answer{padding:13px 16px}.roleplay-line span,.student-line span{color:#0d7778;font-size:13px;font-weight:900;text-transform:uppercase}.roleplay-line strong,.student-line strong{color:var(--ink);font-size:clamp(20px,2.7vw,30px);line-height:1.25}.student-line p{margin:0;color:var(--green);font-weight:800}.voice-status{display:grid;gap:6px;padding:14px 16px;border:1px solid rgba(75,117,214,.22);border-radius:18px;background:#4b75d614}.voice-status.accepted{border-color:#38a3a573;background:#38a3a51f}.voice-status.connecting,.voice-status.speaking,.voice-status.listening,.voice-status.checking{border-color:#4b75d661;background:#4b75d61a}.voice-status.rejected{border-color:#f06f5f6b;background:#f06f5f1a}.voice-status span{color:#0d7778;font-size:12px;font-weight:900;text-transform:uppercase}.voice-status p,.voice-status strong,.voice-status em{margin:0;color:var(--ink);font-weight:900}.voice-status em{display:block;overflow-wrap:anywhere;color:#4b75d6;font-style:normal}.voice-debug-id{display:block;overflow-wrap:anywhere;color:#1d2a2a9e;font-family:SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:800}.speak-button{position:absolute;right:14px;top:14px;display:grid;width:38px;height:38px;place-items:center;border:0;border-radius:12px;color:#fff;background:var(--teal)}.agent-controls{display:flex;flex-wrap:wrap;gap:10px}.record-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border:0;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--teal),var(--blue));font-weight:900}.record-button.recording{background:linear-gradient(135deg,var(--coral),#c44235);box-shadow:0 0 0 8px #f06f5f1f}.fallback-pass{border-radius:8px;background:#1d2a2a12}.teacher-next.ready{color:#fff;background:linear-gradient(135deg,var(--teal),var(--green));box-shadow:0 10px 24px #38a3a52e}@keyframes voiceSweep{to{transform:rotate(360deg)}}@keyframes voicePulse{0%{transform:scale(.82);opacity:.55}to{transform:scale(1.42);opacity:0}}@keyframes voiceDot{0%,to{transform:translateY(0);opacity:.55}45%{transform:translateY(-3px);opacity:1}}.final-badge{display:grid;min-height:260px;place-items:center;gap:12px;border-radius:34px;color:#fff;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 24%),linear-gradient(135deg,var(--teal),var(--blue));text-align:center;font-size:clamp(26px,4vw,46px);font-weight:900}.finale-medal{display:grid;width:min(220px,68vw);aspect-ratio:1;place-items:center;border:10px solid #ffeaa0;border-radius:50%;color:#74470f;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.78),transparent 18%),linear-gradient(145deg,#fff2a8,#f2b84b 48%,#d88725);box-shadow:inset 0 -14px 24px #74470f38,0 20px 44px #74470f3d}.finale-medal span{font-size:18px;letter-spacing:0}.bobo-great{margin:0;color:#ffffffeb;font-size:20px;font-weight:900}.badge-strip.finale{margin:14px 0;justify-content:flex-start}.dev-tools{position:fixed;right:18px;top:130px;z-index:80;display:grid;gap:8px;width:124px;padding:12px;border:2px solid rgba(240,111,95,.42);border-radius:18px;background:#fffdf7f0;box-shadow:0 20px 50px #19302c33}.dev-tools strong{color:var(--coral)}.dev-tools button{min-height:34px;border:0;border-radius:12px;color:#fff;background:var(--coral);font-weight:900}.bobo{position:relative}.bobo img{display:block;width:118px;max-width:100%;filter:drop-shadow(0 16px 18px rgba(25,48,44,.17))}.bobo-small img{width:92px}.bobo-large img{width:210px}.scan-ring{position:absolute;top:18%;right:18%;bottom:18%;left:18%;border:2px solid rgba(56,163,165,.28);border-radius:999px;animation:pulseScan 2.4s ease-out infinite}@keyframes pulseScan{0%{transform:scale(.7);opacity:.8}to{transform:scale(1.55);opacity:0}}.avatar-face{overflow:hidden;background:color-mix(in srgb,var(--accent),white 35%)}.avatar-face img{display:block;width:100%;height:100%;object-fit:cover}.thing-card{transition:transform .18s ease,box-shadow .18s ease}.thing-card.solved{background:color-mix(in srgb,var(--thing),white 86%)}.thing-icon{width:82px;height:82px;border:1px solid rgba(29,42,42,.08);background:#fff}.thing-icon img{width:88%;max-width:100%;height:88%;object-fit:contain}.speak-question{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;width:100%;border:0;border-radius:14px;color:#134345;background:#38a3a524;font-size:20px;font-weight:900}.thing-card small{color:var(--muted);font-size:12px;font-weight:900}.command-hero,.detective-report-hero{background:radial-gradient(circle at 8% 18%,rgba(56,163,165,.22),transparent 26%),radial-gradient(circle at 92% 0%,rgba(242,184,75,.22),transparent 28%),#fffdf7}.demo-banner,.report-spark{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;color:#174f52;background:#38a3a51f;font-weight:900}.muted-action{opacity:.72}.command-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.skill-command-card,.skill-report-card{display:grid;gap:10px;min-height:126px;padding:18px}.skill-command-card span,.skill-report-card span{color:var(--muted);font-weight:900}.skill-command-card strong,.skill-report-card strong{color:var(--ink);font-size:34px}.skill-command-card i,.skill-report-card i{display:block;height:10px;border-radius:999px;background:linear-gradient(90deg,var(--teal) var(--level),rgba(29,42,42,.08) var(--level))}.diagnosis-grid{margin-top:16px}.diagnosis-grid article{min-height:130px;padding:16px;border-radius:20px;background:#f4faf7;border:1px solid var(--line)}.command-record-row{grid-template-columns:1fr 1fr .55fr .55fr .55fr 1.25fr 1fr}.detective-report-grid{grid-template-columns:1.25fr 1fr 1fr 1fr}.detective-certificate{position:relative;overflow:hidden}.detective-certificate:after{content:"";position:absolute;right:-40px;bottom:-60px;width:180px;height:180px;border-radius:50%;background:#ffffff26}.report-item-parade span{gap:8px}.report-item-parade img{width:34px;height:34px}.report-actions{justify-content:center}@media (max-width: 1120px){.mission-command-header,.mission-deck,.scanner-grid,.deduction-layout,.deduction-focus,.dialogue-agent-stage,.briefing-card,.finale-scene{grid-template-columns:1fr}.mission-side-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.location-grid,.skill-command-grid,.skill-report-grid,.diagnosis-grid,.command-metric-grid,.return-workbench .pending-tray.full{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.mission-deck-page,.teacher-command-page,.detective-report-page{width:min(100% - 20px,1320px)}.mission-command-header,.mission-scene,.mission-deck{border-radius:20px}.mission-feedback-bar,.mission-feedback-bar>div,.agent-controls{align-items:stretch;flex-direction:column}.roleplay-agent-card{grid-template-columns:1fr;justify-items:center;text-align:center}.dialogue-chat-row.assistant{grid-template-columns:32px minmax(0,1fr)}.lost-found-map,.map-backdrop,.map-backdrop img{min-height:420px}.map-feedback{left:12px;right:12px;max-width:none}.mission-side-panel,.location-grid,.return-workbench .pending-tray.full,.return-workbench .owner-grid,.skill-command-grid,.skill-report-grid,.diagnosis-grid,.command-metric-grid,.detective-report-grid{grid-template-columns:1fr}.textbook-panel,.textbook-panel img,.dialogue-object-panel{min-height:300px}.phase-track{justify-content:flex-start}.dev-tools{top:auto;right:10px;bottom:10px}}
