:root{color-scheme:dark;--ink:#f8f2e5;--muted:#aab6c5;--gold:#efc580;--line:rgba(213,229,242,.14);--ocean:#8fdcd8;--space:#efc580;--journey:#f1a58f;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:#152130;color:var(--ink);overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{border:0}a{color:inherit;text-decoration:none}button, a{touch-action:manipulation}[hidden]{display:none!important}#experience{height:100svh;min-height:480px;position:relative;isolation:isolate;overflow:hidden}#canvas-wrap{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(13,24,37,.5),transparent 20%,transparent 82%,rgba(13,24,37,.45));z-index:1}.topbar{position:absolute;z-index:5;top:0;left:0;right:0;padding:30px 42px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:14px;font-size:23px;font-weight:600;letter-spacing:3px}.brand-mark{color:var(--gold);font-size:40px;font-weight:300}.brand small{display:block;font-size:10px;letter-spacing:2.5px;font-weight:400;margin-top:5px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:13px}.icon-btn{border:1px solid var(--line);background:#15213088;width:40px;height:40px;border-radius:50%;font-size:19px;color:#cbd4dd;backdrop-filter:blur(8px)}.icon-btn:hover{background:#344253}.progress-pill{display:flex;align-items:center;gap:8px;padding:11px 17px;background:#23334399;border:1px solid var(--line);border-radius:30px;font-size:17px;color:var(--gold);backdrop-filter:blur(8px)}.progress-pill span{font-size:13px;color:#c4ced8}.intro{position:absolute;top:22%;left:46px;pointer-events:none;z-index:2;transition:opacity .4s}.eyebrow{font-size:12px;letter-spacing:2px;color:#c7d1db;display:flex;align-items:center;gap:8px}.eyebrow span{width:15px;height:1px;background:var(--gold)}h1{font-size:clamp(30px,3.1vw,49px);font-weight:400;font-family:"Songti SC","STSong",serif;line-height:1.5;letter-spacing:4px;margin:19px 0}h1 span{color:var(--gold)}.intro p{font-size:14px;line-height:2;color:var(--muted);letter-spacing:1px}.topics{position:absolute;left:42px;bottom:138px;display:flex;flex-direction:column;gap:7px;z-index:5}.topic{background:transparent;border:1px solid transparent;padding:11px 16px;border-radius:8px;text-align:left;font-size:14px;color:#a9b8c9;min-width:152px;transition:.25s}.topic.active{background:#35475966;border-color:#74829144;color:var(--ink)}.topic:hover{background:#34455766}.topic>span{margin-left:12px;font-size:12px;color:#b3c0cf}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin:0 12px 2px 0;background:var(--gold)}.dot.ocean{background:var(--ocean)}.dot.journey{background:var(--journey)}.discovery{position:absolute;right:40px;top:128px;width:185px;z-index:6;background:#162330bb;border:1px solid var(--line);border-radius:12px;backdrop-filter:blur(18px);overflow:hidden}.discovery>button{display:flex;justify-content:space-between;width:100%;padding:16px;background:transparent;font-size:14px;color:#d9e1e9}.discovery>button span:last-child{color:var(--gold)}#catalog{max-height:50vh;overflow:auto;padding:0 8px 8px}.catalog-item{display:flex;align-items:center;width:100%;gap:10px;padding:11px 8px;border-radius:6px;background:transparent;text-align:left;font-size:13px;color:#becbd9}.catalog-item:hover{background:#354958}.catalog-item b{margin-left:auto;font-weight:400;color:var(--gold)}.catalog-item .dot{margin:0}.scene-controls{position:absolute;left:50%;transform:translateX(-50%);bottom:76px;z-index:5;display:flex;gap:3px;background:#172737c9;backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:30px;padding:5px;box-shadow:0 8px 30px #0002}.scene-controls button{background:transparent;border-radius:24px;padding:10px 17px;color:#cad5df;font-size:18px;white-space:nowrap}.scene-controls button:hover{background:#40526799}.scene-controls button span{font-size:13px;margin-left:4px}.scene-controls button:first-child{color:var(--gold)}.bottom-bar{position:absolute;z-index:3;bottom:24px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#8192a4;letter-spacing:.7px}.separator{margin:0 10px;color:#536578}.mouse-icon{margin-right:9px;font-size:17px;color:#b4c0ca}.room-note{font-family:"Songti SC",serif;font-size:14px;letter-spacing:2px}.hotspot{position:absolute;left:0;top:0;z-index:3;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#152434b0;border:1px solid var(--hot-color,var(--gold));color:var(--hot-color,var(--gold));box-shadow:0 0 0 5px #efc5800c,0 0 15px #efc58030;pointer-events:auto;transition:opacity .25s,background .25s}.hotspot:before{content:"";width:6px;height:6px;background:currentColor;border-radius:50%}.hotspot.done:before{content:"✓";width:auto;height:auto;background:none;font-size:14px}.hotspot:after{content:attr(data-label);position:absolute;bottom:36px;left:50%;transform:translateX(-50%);padding:8px 12px;border-radius:6px;background:#172839f5;color:#f6f0e5;font-size:13px;white-space:nowrap;opacity:0;transition:.2s;pointer-events:none;border:1px solid #ffffff18}.hotspot:hover:after,.hotspot:focus-visible:after{opacity:1}.hotspot:hover{background:var(--hot-color);color:#14212c;box-shadow:0 0 25px #e8c99077}.hotspot.filtered{display:none}#hotspots{position:absolute;inset:0;pointer-events:none;z-index:3}.focused .intro{opacity:0}.focused .topics{opacity:.35}.focused .topics:hover{opacity:1}#loading{position:absolute;inset:0;z-index:20;background:radial-gradient(ellipse at center,#233446,#121e2b);display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .65s}#loading.dismiss{opacity:0;pointer-events:none}#loading h2{font-family:"Songti SC",serif;font-size:25px;font-weight:400;letter-spacing:4px;margin-bottom:5px}#loading p{color:#a8b7c7;font-size:14px}.loading-star{font-size:52px;color:var(--gold);animation:breathe 2s infinite}.loading-track{margin-top:20px;width:220px;height:2px;background:#52627355;overflow:hidden}#loading-bar{width:0;height:100%;background:var(--gold);transition:width .3s}#retry-load{margin-top:22px;padding:10px 25px;background:var(--gold);color:#14212d;border-radius:6px}#toast{position:absolute;bottom:137px;left:50%;transform:translate(-50%,12px);opacity:0;background:#eee6d7;color:#283746;padding:13px 24px;border-radius:40px;z-index:15;box-shadow:0 10px 40px #0003;transition:.3s;font-size:14px;pointer-events:none;max-width:85vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{padding:0;color:#213647;background:#f4f0e7;border:1px solid #fff9;box-shadow:0 30px 120px #07111d88;border-radius:20px;max-height:90svh}dialog::backdrop{background:#08152140;backdrop-filter:blur(3px)}#quiz{width:420px;max-width:calc(100vw - 30px);margin:auto 32px auto auto;overflow:auto}#quiz[open]{animation:enter .35s ease}.close{position:absolute;top:14px;right:14px;border:1px solid #ffffff40;background:#152434b0;color:white;border-radius:50%;width:33px;height:33px;font-size:22px;z-index:2}.quiz-art{height:168px;position:relative;overflow:hidden;background:#d6dbd8}.quiz-art img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;padding:10px;filter:drop-shadow(0 8px 10px #33404c28)}.quiz-art>span:first-of-type{position:absolute;bottom:12px;left:23px;font-size:11px;letter-spacing:2px;background:#203646d9;color:#fff;padding:6px 10px;border-radius:20px}.art-spark{position:absolute;right:30px;bottom:20px;font-size:35px;color:#627d89}.quiz-body{padding:25px 27px}.quiz-topline{display:flex;justify-content:space-between;font-size:12px;color:#7e8a8d;letter-spacing:1px}.quiz-topline span:first-child{color:#477079}#quiz-title{font-size:22px;line-height:1.6;letter-spacing:.3px;margin:15px 0 8px;font-weight:600}#quiz-hint{font-size:13px;line-height:1.6;color:#85908d;margin:0 0 20px}#answers{display:grid;gap:9px}.answer{background:#fff9;border:1px solid #dce0d8;min-height:47px;width:100%;text-align:left;display:flex;align-items:center;gap:13px;padding:11px 14px;border-radius:9px;color:#334956;font-size:15px;line-height:1.4;transition:.2s}.answer .letter{font-size:12px;color:#98a29c;font-weight:500}.answer:hover:not(:disabled){border-color:#b5a071;transform:translateX(3px);background:#fff}.answer.correct{border-color:#80b0a1;background:#dfeee4;color:#246657}.answer.incorrect{border-color:#d8a292;background:#f7e5dc;color:#945b48}#feedback{margin-top:19px;padding:14px 16px;background:#e6ede5;border-radius:10px;font-size:14px;line-height:1.8;color:#376454}#feedback.wrong{background:#f1e6da;color:#785d43}#feedback strong{display:block;font-size:16px;margin-bottom:5px}.primary{width:100%;background:#233f4e;color:#fff;border-radius:9px;padding:14px;font-size:15px;margin-top:17px}.primary:hover{background:#345564}.quiz-footnote{text-align:center;font-size:11px;color:#92998d;margin:18px 0 0}.quiz-body h2.complete{color:#2c7266}#help{width:430px;padding:35px;max-width:calc(100vw - 32px)}#help h2{font-size:24px}#help p{font-size:15px;line-height:1.9;color:#647774}.help-star{font-size:36px;color:#b38f51}.noscript{position:fixed;inset:0;z-index:100;background:#172737;display:grid;place-items:center}
@keyframes breathe{50%{opacity:.45;transform:scale(.9)}}@keyframes enter{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1600px){.intro{left:64px}.topbar{padding:35px 60px}.topics{left:60px}.discovery{right:60px}}
@media(max-width:1050px){.intro{top:18%;left:25px}.intro h1{font-size:33px}.intro p{font-size:12px}.topbar{padding:22px 25px}.topics{left:23px;bottom:125px}.discovery{right:25px;width:165px}.bottom-bar{left:25px;right:25px}.room-note{display:none}}
@media(max-width:700px){#experience{min-height:400px}.topbar{padding:20px}.brand{font-size:19px;gap:8px}.brand-mark{font-size:31px}.brand small{font-size:8px;letter-spacing:1.5px}.top-actions{gap:7px}.progress-pill{padding:8px 11px;font-size:14px;gap:4px}.progress-pill span{font-size:10px}.icon-btn{width:33px;height:33px;font-size:16px}#sound-btn{display:none}.intro{top:107px;left:23px}.intro h1{font-size:28px;line-height:1.35;letter-spacing:3px;margin:12px 0}.intro h1 br{display:none}.intro p{font-size:12px;line-height:1.7;margin-top:8px}.intro p br{display:none}.eyebrow{font-size:10px;letter-spacing:1px}.topics{left:16px;right:16px;bottom:105px;flex-direction:row;justify-content:center;gap:2px;background:#152434b5;border:1px solid var(--line);border-radius:24px;padding:4px;backdrop-filter:blur(16px)}.topic{font-size:11px;padding:10px 8px;min-width:0;white-space:nowrap;border-radius:20px}.topic>span{display:none}.dot{margin:0 5px 2px 0;width:4px;height:4px}.discovery{right:18px;top:185px;width:144px;max-height:44vh}.discovery>button{font-size:12px;padding:11px 12px}#catalog{max-height:34vh}.catalog-item{font-size:12px;padding:10px 5px}.scene-controls{bottom:48px;gap:0;padding:3px}.scene-controls button{padding:8px 13px;font-size:17px}.scene-controls button span{font-size:11px}.bottom-bar{bottom:14px;left:0;right:0;justify-content:center;font-size:10px}.separator{margin:0 5px}.hotspot{width:24px;height:24px}.hotspot:after{bottom:29px;font-size:11px}.hotspot:before{width:5px;height:5px}#quiz{margin:auto;max-height:90svh;width:390px}.quiz-art{height:125px}.quiz-body{padding:18px 22px}#quiz-title{font-size:19px;margin-top:12px}#quiz-hint{font-size:12px;margin-bottom:14px}.answer{min-height:43px;font-size:14px}#feedback{font-size:13px;margin-top:14px}.quiz-footnote{margin-top:14px}.focused .discovery{opacity:0;pointer-events:none}#toast{bottom:165px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.dot.octonauts{background:#b5c6ff}@media(max-width:700px){.topics{left:8px;right:8px;gap:0}.topic{padding:10px 6px;font-size:10px}.topic .dot{margin-right:3px}}

/* Keep shelf details readable while inspecting its objects. */
#quiz[data-asset="bookcase"]::backdrop,#quiz[data-asset="monkey"]::backdrop{backdrop-filter:none}
