*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#28524a}button{font:inherit;cursor:pointer;border:1px solid #cbd7c7;background:#fffcf0;color:#315c52;border-radius:9px;padding:10px 15px;transition:background .15s,transform .15s}button:hover{background:#f0e4c1}button:active{transform:translateY(1px)}button:focus-visible{outline:3px solid #efba5b;outline-offset:3px}[hidden]{display:none!important}#scene{width:100%;height:100%;display:block;touch-action:none;outline:0}header{position:absolute;left:24px;right:24px;top:22px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;gap:20px}header>*{pointer-events:auto}.brand{display:flex;gap:11px;align-items:center;text-shadow:0 1px 8px #fff6}.brand-icon{font-family:serif;font-size:26px;background:#236f60;color:#fff8df;width:47px;height:49px;display:grid;place-items:center;border-radius:10px;border:2px solid #fff1d6}.brand strong{font-size:21px;letter-spacing:2px}.brand small{display:block;font-size:12px;letter-spacing:1px;margin-top:4px}.header-actions{display:flex;gap:7px}.header-actions button{font-size:12px;background:#fffcf0ed}#location{background:#fffdf0e8;border:1px solid #ede5c9;padding:11px 19px;border-radius:25px;font-size:13px;display:flex;gap:9px;align-items:center}#location i{width:6px;height:6px;background:#2d7966;border-radius:50%}#discoveryStatus{position:absolute;top:95px;left:25px;background:#fffceded;border-radius:10px;padding:10px 14px;font-size:12px;display:flex;gap:8px;align-items:center;max-width:235px}.leaf{color:#bb9250;font-size:18px}.progress-line{display:none}#lookHint{position:absolute;top:98px;left:50%;transform:translateX(-50%);font-size:13px;background:#fffcebde;padding:10px 22px;border-radius:20px;white-space:nowrap;color:#597969}#crosshair{position:absolute;top:50%;left:50%;font-size:25px;color:#fff9d9;pointer-events:none;text-shadow:0 0 3px #314e3f}footer{position:absolute;bottom:21px;left:24px;right:24px;display:flex;justify-content:space-between;gap:20px;align-items:center;pointer-events:none}footer>*{pointer-events:auto}.move-guide{padding:10px 15px;background:#fffbeddd;font-size:12px;border-radius:10px;display:flex;align-items:center;gap:9px}.move-guide span{border:1px solid #b5c5ae;padding:3px 5px;border-radius:4px;font-size:11px}.footer-right{display:flex;gap:7px}.footer-right button{font-size:12px}#nearby{position:absolute;left:50%;bottom:106px;transform:translateX(-50%);background:#236f5e;color:#fff8df;border:1px solid #ebdfb1;box-shadow:0 5px 22px #30462c30;border-radius:12px;padding:14px 24px;font-size:15px;cursor:pointer;max-width:540px;text-align:center;line-height:1.5}#nearby small{display:block;font-size:12px;color:#e8e9d1;margin-top:4px}#objectHint{position:absolute;left:50%;top:55%;transform:translateX(-50%);padding:8px 14px;background:#fff4d9dc;border-radius:10px;font-size:12px}#toast{display:none;position:absolute;top:150px;left:50%;transform:translateX(-50%);background:#286d5def;color:#fff9df;border-radius:10px;padding:12px 23px;font-size:13px;max-width:620px;line-height:1.6;text-align:center}#activity{position:absolute;left:24px;top:95px;bottom:100px;width:324px;background:#fffdf3f5;border:1px solid #e0e2cd;border-radius:15px;box-shadow:0 7px 32px #213b2522;padding:24px;overflow:auto;display:flex;flex-direction:column}.activity-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.activity-top span{font-size:11px;color:#528374;letter-spacing:1px;line-height:1.7}.activity-top button,.dialog-head>button{font-size:25px;line-height:1;border:0;background:transparent;padding:0 2px}#activity h1{font-size:25px;line-height:1.4;margin:20px 0 12px;letter-spacing:.3px}#instruction{font-size:16px;line-height:1.9;margin:0 0 16px}#steps{font-size:12px;color:#7b8979;line-height:1.8;margin-bottom:20px;white-space:pre-line}#controls{display:flex;flex-wrap:wrap;gap:8px;padding-top:16px;border-top:1px solid #dbe0c9;margin-bottom:17px}#controls button{font-size:13px;padding:11px 12px}.primary{background:#337c68!important;color:#fff8df!important;border-color:#337c68!important}.selected{background:#e8cb85!important}#feedback{font-size:13px;line-height:1.8;padding:10px 0;min-height:48px}.success{color:#35784c}.retry{color:#aa713a}.activity-bottom{margin-top:auto;border-top:1px solid #dbe0c9;display:flex;gap:8px;padding-top:14px;flex-wrap:wrap}.activity-bottom button{font-size:12px;flex:1;min-width:116px}.playing #lookHint,.playing #discoveryStatus,.playing #crosshair,.playing #objectHint,.playing .move-guide{display:none!important}.playing #home,.playing #overview,.playing #walk{display:none!important}.playing footer{justify-content:flex-end}dialog{border:0;border-radius:20px;background:#fffcf1;padding:32px;color:#31584e;max-width:900px;width:90vw;max-height:88vh;overflow:auto;box-shadow:0 20px 80px #18342b4a}dialog::backdrop{background:#29493a8c;backdrop-filter:blur(5px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-head small{font-size:12px;color:#638778}.dialog-head h1{font-size:28px;margin:9px 0 15px}dialog p{font-size:14px;line-height:1.9;color:#627969}.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px}.guide-columns h3{font-size:16px;color:#3c705f}.guide-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.guide-actions button{font-size:13px}#mapDialog{max-width:760px}#mapDialog svg{width:100%;height:auto;max-height:60vh}#mapDialog text{font-family:"Microsoft YaHei",sans-serif;font-size:20px;fill:#496956;text-anchor:middle;dominant-baseline:middle}#mapDialog .minor{font-size:13px}.source-pages{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.source-pages figure{margin:0}.source-pages img{width:100%;height:auto}.source-pages figcaption{font-size:12px;margin-top:9px}.sun-symbol{color:#d8a050;font-size:46px}#loading{position:absolute;inset:0;background:#f7f0db;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:20}#loading h1{font-size:28px;letter-spacing:3px}#loading p{font-size:14px;color:#8d9577}@media(max-width:1300px){header{left:18px;right:18px;top:16px}#activity{left:18px;width:290px;top:85px;bottom:86px;padding:18px}#activity h1{font-size:22px}#instruction{font-size:15px}.move-guide{gap:5px;padding:9px;font-size:11px}.footer-right button{padding:9px 11px}.header-actions button{padding:9px 10px}#location{display:none}#lookHint{font-size:12px;top:90px;max-width:60vw;white-space:normal}#discoveryStatus{top:87px;left:18px}footer{left:18px;right:18px;bottom:16px}}@media(max-height:780px){#activity{top:82px;bottom:78px;padding:16px}#activity h1{margin:13px 0 8px;font-size:21px}#instruction{font-size:14px;line-height:1.7}#steps{margin-bottom:9px}#controls{padding-top:10px;margin-bottom:8px}#controls button{padding:8px 10px}.activity-bottom{padding-top:9px}#nearby{bottom:84px}}
.playing #mapButton{display:none!important}

#floorBadge{position:absolute;left:24px;top:143px;padding:9px 14px;background:#326d65;color:#fff4d2;border-radius:8px;font-size:12px;pointer-events:none}.playing #floorBadge{display:none}#nearby{min-height:52px}#location{white-space:nowrap}.header-actions button,.footer-right button{min-height:40px}@media(max-width:900px){header{gap:8px}.brand small{display:none}.brand strong{font-size:17px}.header-actions button{padding:8px}.move-guide{display:none}footer{justify-content:flex-end}#lookHint{top:80px;max-width:calc(100vw - 40px);font-size:11px}#discoveryStatus{top:124px}#floorBadge{top:164px;left:18px}#nearby{max-width:90vw;width:max-content;bottom:80px;font-size:14px}#activity{width:265px;left:12px;top:75px;bottom:76px}.source-pages{grid-template-columns:1fr}.guide-columns{grid-template-columns:1fr}}

/* A single speech balloon belongs to the nearby child, never an activity directory. */
#npcDialogue{position:fixed;z-index:7;width:280px;max-width:calc(100vw - 32px);box-sizing:border-box;padding:13px 17px 14px;background:#fffbedf5;border:1px solid #d2d4b8;border-radius:18px;box-shadow:0 7px 25px #405d4320;transform:translate(-50%,-100%);pointer-events:none;color:#365b50}
#npcDialogue[hidden]{display:none}#npcDialogue small{display:block;font-size:11px;color:#829380;letter-spacing:.06em;margin-bottom:3px}#npcDialogue strong{font-size:15px;color:#316a59}#npcDialogue p{font-size:15px;line-height:1.65;margin:5px 0 0;text-wrap:pretty}
#npcDialogue:after{content:'';position:absolute;width:13px;height:13px;bottom:-7px;left:calc(50% + var(--tip-x,0px));background:#fffbed;border-right:1px solid #d2d4b8;border-bottom:1px solid #d2d4b8;transform:translateX(-50%) rotate(45deg)}
@media(max-width:900px){#npcDialogue{width:245px;padding:10px 13px}#npcDialogue p{font-size:14px}}

/* Compact touch layout keeps buttons readable and the 3D viewport unobstructed. */
dialog:not([open]){display:none}#loading{overflow:auto;padding:24px;max-height:100%;z-index:200}#loadText{max-width:650px;line-height:1.7}#loadActions{max-width:720px}#loadActions button{margin:5px}#loadActions details{text-align:left;margin:15px auto}#loadDetails,#deviceInfoText{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6;user-select:text;text-align:left}dialog[open]{z-index:100}#deviceDialog{z-index:110}#npcDialogue{z-index:7}
@media(max-width:1024px) and (pointer:coarse){header{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));gap:10px}.brand{gap:7px}.brand-icon{width:35px;height:36px;font-size:22px}.brand strong{font-size:16px;letter-spacing:1px}.brand small{display:none}.header-actions{gap:5px}.header-actions button{font-size:11px;padding:8px;min-height:36px}#location{padding:8px 11px;font-size:11px;max-width:28vw;white-space:nowrap}footer{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));gap:8px}.footer-right button{min-height:36px;padding:8px 10px;font-size:11px}.move-guide{display:none}#lookHint{pointer-events:none}#nearby{font-size:13px;padding:9px 15px;bottom:58px;max-width:65vw}#activity{top:57px;bottom:55px;left:max(10px,env(safe-area-inset-left));width:250px;padding:15px}#activity h1{font-size:20px;margin:10px 0 8px}#instruction{font-size:14px;line-height:1.7}#steps{font-size:11px;margin-bottom:9px}#controls{padding-top:10px;gap:6px}#controls button{font-size:12px;padding:9px;min-height:36px}.activity-bottom button{font-size:11px;padding:8px}#discoveryStatus{top:58px;left:10px;font-size:10px;padding:6px 9px}#floorBadge{top:92px;left:10px;font-size:10px}#toast{top:65px;padding:8px 14px;font-size:12px;max-width:70vw}dialog{max-height:calc(100% - 24px);padding:20px}#npcDialogue{width:230px;padding:9px 12px}#npcDialogue p{font-size:13px;line-height:1.55}#npcDialogue small{font-size:10px}#npcDialogue strong{font-size:13px}}
@media(max-height:500px) and (pointer:coarse){#lookHint{display:none}#discoveryStatus{max-width:200px}#activity{width:238px}#npcDialogue{width:220px}#nearby{bottom:56px}.playing #discoveryStatus,.playing #floorBadge{display:none}#location{max-width:25vw}.brand-icon{display:none}}
@media(max-width:700px) and (orientation:landscape){.brand{display:none}#location{max-width:34vw}.header-actions button{padding:7px}}
@media(max-width:600px) and (orientation:portrait){header{flex-wrap:wrap}.brand{display:none}#location{max-width:none}.header-actions{margin-left:auto}.header-actions button{font-size:10px;padding:6px}#lookHint{display:none}#activity{left:8px;right:8px;top:auto;bottom:54px;width:auto;max-height:43vh}#discoveryStatus{top:56px}.playing #discoveryStatus,.playing #floorBadge{display:none}#npcDialogue{max-width:calc(100vw - 40px)}}
#teacherActivities{margin-top:28px;border-top:1px solid #d4dacc;padding-top:18px}#teacherActivities h2{font-size:22px}.teacher-group{border:1px solid #d7dfd4;border-radius:12px;margin:12px 0;background:#fffdf6}.teacher-group summary{padding:16px;font-weight:700;cursor:pointer;min-height:44px;box-sizing:border-box}.teacher-group summary:focus-visible{outline:3px solid #518a79;outline-offset:2px}.teacher-group ol{padding:0 22px 10px 44px;margin:0}.teacher-group li{padding:8px 0 14px;border-top:1px solid #e6e7dc}.teacher-group h3{margin:9px 0;font-size:17px}.teacher-group p{font-size:15px;line-height:1.8;margin:6px 0}.teacher-place{color:#3d7668}.teacher-ambient{background:#edf3e9;padding:15px;border-radius:10px}.device-link{display:inline-block;color:inherit;text-decoration:none;padding:10px 16px;border:1px solid #d7dfd4;border-radius:8px;background:white}#teacherActivities{overflow-wrap:anywhere}@media(max-width:600px){.teacher-group ol{padding-left:32px;padding-right:12px}.teacher-group summary{padding:14px 12px}.teacher-group p{font-size:14px}}
