:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#294a40;background:#edf1e9;font-synthesis:none;--ink:#294a40;--muted:#7b8b7f;--line:rgba(61,88,71,.16);--paper:rgba(247,248,239,.86);--accent:#356452;--shadow:0 8px 34px #2c493b0a;font-weight:400}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:2px solid #b5814c;outline-offset:5px}button:disabled{opacity:.45;cursor:default}svg{display:block;width:19px;height:19px;stroke-width:1.5}button{transition:background .2s,color .2s,transform .2s}button:hover{transform:translateY(-1px)}#scene{position:fixed;inset:0;z-index:0;outline:none;touch-action:none}#scene canvas{display:block;width:100%;height:100%;outline:none}.topbar{position:fixed;z-index:10;top:0;left:0;right:0;height:88px;padding:0 42px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--paper),transparent);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:13px;background:none;text-align:left;padding:0}.brandmark{width:43px;height:43px;display:grid;place-items:center;background:#315748;border-radius:11px;color:#f4edd7}.brandmark svg{width:31px;height:31px}.brandname{display:block;font-family:"Noto Serif SC",Songti SC,serif;font-size:23px;font-weight:600;letter-spacing:3px}.brand-en{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;color:var(--muted)}.topnav{display:flex;gap:35px;align-items:center;position:absolute;left:50%;transform:translate(-50%);height:100%;font-size:13px}.nav-button{position:relative;height:100%;background:none;padding:0 3px;color:var(--muted);letter-spacing:1px}.nav-button.active{color:var(--ink)}.nav-button.active:after{content:"";position:absolute;bottom:23px;left:calc(50% - 3px);width:5px;height:5px;border-radius:50%;background:var(--accent)}.top-actions{display:flex;align-items:center;gap:20px}.audio-btn{background:none;padding:8px;color:var(--muted)}.day-toggle{background:var(--paper);padding:5px;border-radius:30px;border:1px solid var(--line);display:flex;gap:3px}.day-toggle button{display:flex;align-items:center;gap:7px;padding:8px 13px;border-radius:22px;background:transparent;font-size:12px;color:var(--muted)}.day-toggle button.active{background:#355c4b;color:#f5f3e6;box-shadow:0 2px 4px #284c3b15}.day-toggle svg{width:15px;height:15px}.intro{position:fixed;z-index:5;top:150px;left:48px;width:285px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2.4px;color:#73877b}.eyebrow:before{content:"";height:1px;width:27px;background:#819687}.intro h1{font-family:"Noto Serif SC",Songti SC,serif;font-size:49px;font-weight:500;letter-spacing:3px;line-height:1.5;margin:24px 0 17px;white-space:nowrap}.intro h1 em{font-style:normal;color:#65816c}.intro-copy{font-size:12px;line-height:2.1;color:#7b897c;letter-spacing:.7px}.small-stamp{display:inline-flex;width:25px;height:25px;font-family:serif;border:1px solid #b67b5c;color:#aa7256;align-items:center;justify-content:center;transform:rotate(-7deg);font-size:16px;margin-left:10px;vertical-align:middle;letter-spacing:0}.mode-label{margin-top:23px;display:flex;align-items:center;gap:7px;font-size:10px;letter-spacing:1px;color:#748674}.pulse-dot{width:5px;height:5px;border-radius:50%;background:#739b6e;box-shadow:0 0 0 4px #8aaa7c10}.intro-line{width:32px;height:1px;background:var(--line);margin:25px 0}.place-detail .detail-overline{font-size:9px;letter-spacing:2px;color:var(--muted)}.place-detail h2{font-family:"Noto Serif SC",Songti SC,serif;font-size:19px;font-weight:500;letter-spacing:2px;margin:10px 0}.place-detail p{font-size:11px;line-height:1.9;letter-spacing:.6px;color:var(--muted);width:253px;min-height:43px;margin:0}.intro-buttons{display:flex;gap:11px;margin-top:24px;pointer-events:auto}.walk-button{background:#315a48;color:#f3f1e3;border-radius:5px;padding:13px 18px;font-size:12px;display:flex;align-items:center;gap:23px;box-shadow:0 5px 15px #294d3620}.walk-button svg{width:16px;height:16px}.tour-button{display:grid;place-items:center;width:43px;background:transparent;border:1px solid #9fad964f;border-radius:5px}.tour-button.active{background:#315a48;color:#f3f1e3}.tour-caption{font-size:9px;color:var(--muted);margin-top:11px;letter-spacing:1px}.tools{position:fixed;z-index:10;top:50%;right:30px;transform:translateY(-50%);background:var(--paper);border:1px solid #fff8;border-radius:11px;padding:6px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.tools button{width:35px;height:35px;display:grid;place-items:center;border-radius:6px;background:transparent;color:#61796a}.tools button:hover,.tools button.active{background:#dce5d5;color:#294e3c}.tools svg{width:17px;height:17px}.tools hr{width:20px;border:0;border-top:1px solid var(--line);margin:5px auto}.compass{position:fixed;top:117px;right:37px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);font-size:10px}.compass svg{height:39px;width:39px;stroke-width:.8}.compass #needle{transform-origin:20px 20px}.compass span{font-size:8px;letter-spacing:2px}.location-labels{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}.poi{position:absolute;top:0;left:0;display:flex;align-items:center;gap:6px;background:#f8f9efeb;border:1px solid #fff9;border-radius:4px;padding:6px 9px;box-shadow:0 4px 16px #2c493c13;font-size:11px;letter-spacing:1px;white-space:nowrap;pointer-events:auto;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s,background .2s}.poi .dot{height:5px;width:5px;background:#728d72;border-radius:50%}.poi.active{background:#335d49;color:#f6f1df;border-color:#335d49}.poi.active .dot{background:#cfcca0}.poi:after{content:"";position:absolute;bottom:-8px;left:50%;width:1px;height:8px;background:#60796888}.region-text{position:absolute;color:#426e6670;font-family:"Noto Serif SC",serif;font-size:20px;letter-spacing:6px;transform:translate(-50%,-50%);white-space:nowrap}.minimap{position:fixed;z-index:5;bottom:57px;left:47px;width:214px;height:154px;background:linear-gradient(130deg,#f9f8ec9c,#f4f5e99c);border:1px solid #ffffff96;border-radius:9px;padding:12px 13px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.map-header{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.8px;color:#7d8d7b}.map-header span:last-child{font-size:8px;letter-spacing:.3px}.map-svg{width:185px;height:108px;overflow:visible}.map-svg .map-point{cursor:pointer;pointer-events:all}.map-svg .map-point:hover circle{fill:#c59661}.map-footer{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:1px;position:absolute;bottom:11px;right:12px;color:#7e907b}.map-footer i{display:block;width:11px;height:1px;background:#92a48b}.destinations{position:fixed;z-index:8;bottom:61px;left:max(310px,calc(50% - 359px));right:112px;max-width:900px;display:flex;align-items:center;gap:0;padding:10px 12px;background:#f9f9eed6;border:1px solid #ffffffbd;border-radius:10px;box-shadow:0 12px 35px #2c493b08;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.destination{background:none;position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:7px;padding:9px 8px 10px;color:#82927e;border-radius:6px}.destination:hover{background:#e7ecdf}.destination.active{background:#e1e9da;color:#365640}.destination .destination-icon{height:27px;width:35px;stroke-width:1.15}.destination-name{font-family:"Noto Serif SC",Songti SC,serif;font-size:12px;letter-spacing:2px}.destination-number{position:absolute;left:10px;top:5px;font-size:8px;letter-spacing:1px;color:#93a28c}.destination.active .destination-number{color:#64805c}.destination.active:after{content:"";width:16px;height:2px;background:#60865a;position:absolute;bottom:4px}.dock-caption{position:absolute;left:2px;top:-25px;display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1.5px;color:#83927d}.dock-caption svg{width:12px;height:12px}.footer{position:fixed;left:47px;right:33px;bottom:22px;display:flex;align-items:center;justify-content:space-between;z-index:6;font-size:9px;letter-spacing:1px;color:#7f907f;pointer-events:none}.footer-left{display:flex;align-items:center;gap:13px}.footer .sep{opacity:.4}.controls-hint{display:flex;gap:20px;align-items:center;letter-spacing:.4px;font-size:10px}.controls-hint>span{display:flex;align-items:center;gap:6px}.controls-hint svg{height:13px;width:13px}.scene-index{position:fixed;right:37px;bottom:59px;text-align:center;color:#7a8e7b;font-size:10px;letter-spacing:1px}.scene-index strong{display:block;font-size:23px;font-family:Georgia,serif;font-weight:400;color:var(--ink);margin-bottom:4px}.toast{position:fixed;z-index:30;left:50%;bottom:191px;transform:translate(-50%,15px);padding:10px 18px;background:#2c4d41ee;color:#f4f2e4;font-size:12px;border-radius:25px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 6px 25px #203f3220;max-width:calc(100% - 32px);text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.loading{position:fixed;inset:0;z-index:100;background:#edf1e9;display:grid;place-content:center;text-align:center;color:#476751;transition:opacity .7s,visibility .7s}.loading.hide{opacity:0;visibility:hidden}.loading-title{font-family:"Noto Serif SC",serif;font-size:31px;letter-spacing:8px;margin-bottom:17px}.loading-sub{font-size:10px;letter-spacing:3px;color:#8c9b86}.loading-bar{width:170px;height:2px;background:#cdd8c6;margin:28px auto;overflow:hidden}.loading-bar:after{content:"";display:block;background:#698960;height:100%;width:50%;animation:loading 1.3s infinite ease-in-out}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(200%)}}.modal-backdrop{position:fixed;z-index:40;inset:0;background:#203e374d;display:grid;place-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-backdrop[hidden]{display:none}.modal{position:relative;background:#f5f5e9;border:1px solid #ffffffaa;width:min(490px,calc(100vw - 40px));border-radius:14px;padding:38px;color:#345547;box-shadow:0 22px 80px #17342630}.modal h2{font-family:"Noto Serif SC",serif;letter-spacing:2px;font-size:27px;font-weight:500;margin:15px 0}.modal p{font-size:12px;line-height:2.1;color:#7a8a78}.modal-close{position:absolute;top:15px;right:15px;background:transparent;padding:5px}.modal-line{height:1px;background:#d8dfce;margin:23px 0}.modal-keys{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:11px;color:#758670}.modal-keys div{display:flex;align-items:center;gap:10px}kbd{font-family:inherit;font-size:10px;padding:4px 6px;background:#e8edde;border:1px solid #d5dfce;border-radius:4px;min-width:27px;text-align:center}.walk-hud{position:fixed;top:110px;left:50%;transform:translate(-50%);z-index:15;display:none;gap:16px;align-items:center;background:var(--paper);border:1px solid #fff7;padding:9px 14px;border-radius:28px;font-size:11px;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.walk-hud button{background:#355c4b;color:#f2efdb;border-radius:18px;padding:7px 12px;font-size:10px}.crosshair{position:fixed;top:50%;left:50%;width:5px;height:5px;border:1px solid #fffa;border-radius:50%;box-shadow:0 0 2px #193c32;display:none;pointer-events:none}.walk-touch{display:none;position:fixed;z-index:14;bottom:80px;left:24px;grid-template-columns:repeat(3,43px);gap:5px}.walk-touch button{height:43px;background:var(--paper);border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;touch-action:none}.walk-touch button:first-child{grid-column:2}.walk-touch button:nth-child(2){grid-column:1}.is-walking .walk-hud{display:flex}.is-walking .crosshair{display:block}.is-walking .intro,.is-walking .minimap,.is-walking .destinations,.is-walking .poi,.is-walking .scene-index,.is-walking .region-text{display:none}.is-walking #scene{cursor:grab}.is-walking #scene:active{cursor:grabbing}.is-walking .controls-hint{display:none}.is-walking .walk-instructions{display:flex}.walk-instructions{display:none;gap:18px;font-size:10px;align-items:center}.walk-instructions kbd{padding:3px 5px;color:#385342}.debug-panel{position:fixed;z-index:35;top:105px;left:350px;background:#f8faefeb;padding:14px;border:1px solid var(--line);border-radius:7px;font:11px monospace;line-height:1.8;min-width:220px}.debug-panel button,.debug-panel select{font:11px monospace;margin:3px;padding:4px;border:1px solid #bdcdb7;background:#e5eddc}.debug-metrics{white-space:pre;margin:9px 0 0}.night{--ink:#dce7d1;--muted:#91a69d;--line:rgba(157,188,171,.18);--paper:rgba(29,51,49,.83);--accent:#a8bba0;background:#142a31;color:var(--ink)}.night .intro h1 em{color:#a1b99e}.night .eyebrow,.night .intro-copy,.night .tour-caption,.night .mode-label,.night .footer,.night .compass{color:#91a89b}.night .brandmark{background:#53725a}.night .day-toggle button.active{background:#c5c8a0;color:#2b483d}.night .walk-button{background:#bfc7a0;color:#263f34}.night .tools button{color:#b3c5ae}.night .tools button:hover,.night .tools button.active{background:#425f50;color:#eff2df}.night .poi{background:#2f4b43e8;color:#cbd9be;border-color:#97b59025}.night .poi.active{background:#d5d3a6;color:#2c4737}.night .region-text{color:#a1c6b384}.night .destinations{background:#223f39dd;border-color:#adc49b24}.night .destination{color:#92ae97}.night .destination:hover,.night .destination.active{background:#3c5948;color:#e6e7c9}.night .minimap{background:#233f37b0;border-color:#acbf8e25}.night .dock-caption,.night .map-header,.night .map-footer{color:#93aa8e}.night .tour-button.active{background:#bccda7;color:#304936}@media(min-width:1600px){.intro{left:65px;top:170px}.intro h1{font-size:58px}.intro-copy{font-size:13px}.place-detail p{font-size:12px}.intro-line{margin:29px 0}.minimap{left:65px;bottom:66px}.destinations{left:calc(50% - 360px);right:140px;bottom:70px}.topbar{padding:0 58px}.footer{left:65px;bottom:25px}}@media(max-height:760px)and (min-width:761px){.intro{top:120px}.intro h1{font-size:40px;margin:15px 0 10px}.intro-line{margin:18px 0}.intro-copy{font-size:11px}.mode-label{margin-top:15px}.place-detail p{font-size:10px;line-height:1.8}.intro-buttons{margin-top:17px}.minimap{height:122px;bottom:53px;width:190px}.map-svg{height:80px;width:161px}.destinations{bottom:54px}.tour-caption{display:none}}@media(max-width:1050px){.intro{left:30px;width:220px}.intro h1{font-size:39px}.place-detail p{width:218px}.topbar{padding:0 27px}.topnav{gap:20px}.top-actions{gap:10px}.destinations{left:270px;right:85px;padding:8px}.destination{padding:8px 3px}.destination-number{display:none}.destination-name{font-size:11px;letter-spacing:1px}.minimap{left:30px;width:190px}.map-svg{width:160px}.footer{left:30px}.controls-hint{gap:12px}.footer-left .model-note{display:none}.tools{right:20px}.scene-index{right:24px}}@media(max-width:760px){.topbar{height:72px;padding:0 20px}.brandmark{width:34px;height:34px;border-radius:9px}.brandmark svg{width:25px;height:25px}.brand{gap:9px}.brandname{font-size:18px;letter-spacing:2px}.brand-en{font-size:7px;letter-spacing:1.1px;margin-top:4px}.topnav,.audio-btn{display:none}.day-toggle{padding:3px}.day-toggle button{padding:7px 9px;gap:4px;font-size:10px}.day-toggle svg{width:13px;height:13px}.intro{top:104px;left:23px;width:calc(100% - 90px);pointer-events:none}.eyebrow{font-size:8px;letter-spacing:2px}.eyebrow:before{width:18px}.intro h1{font-size:31px;line-height:1.4;margin:12px 0 9px;letter-spacing:2px}.intro h1 br{display:none}.small-stamp{width:19px;height:19px;font-size:12px}.intro-copy{font-size:10px;line-height:1.9;letter-spacing:.3px}.intro-copy br{display:none}.mode-label{margin-top:12px;font-size:8px}.intro-line,.place-detail,.tour-caption{display:none}.intro-buttons{margin-top:16px;gap:8px}.walk-button{padding:9px 12px;font-size:10px;gap:14px}.tour-button{width:35px}.compass{top:97px;right:22px}.compass svg{width:31px;height:31px}.compass span{display:none}.tools{right:15px;top:53%;padding:4px;border-radius:9px}.tools button{width:29px;height:31px}.tools svg{width:15px;height:15px}.tools hr{margin:2px auto}.minimap{display:none}.destinations{left:16px;right:16px;bottom:56px;padding:7px 5px;border-radius:9px}.destination{gap:6px;padding:9px 1px 10px}.destination-name{font-size:10px;letter-spacing:.5px}.destination .destination-icon{height:23px;width:28px}.dock-caption{font-size:8px;top:-22px}.scene-index{display:none}.footer{left:20px;right:20px;bottom:20px;font-size:8px;letter-spacing:.4px}.footer .sep,.footer .model-note,.controls-hint{display:none}.footer-left{gap:0}.footer:after{content:"单指旋转 · 双指缩放";font-size:8px}.poi{font-size:9px;padding:5px 6px;gap:4px}.region-text{font-size:14px;letter-spacing:3px}.toast{bottom:171px;font-size:10px;width:max-content}.walk-hud{top:90px;gap:9px;white-space:nowrap;font-size:10px}.is-walking .walk-touch{display:grid}.is-walking .footer:after{content:"拖动视线 · 方向键行走"}.is-walking .walk-instructions{display:none}.modal{padding:28px}.modal-keys{gap:10px}.debug-panel{left:15px;top:300px;font-size:9px}.is-walking .tools button[data-action=home]{display:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.loading-bar:after{animation:none}button{transition:none}}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(180deg,var(--paper),transparent)}.detail-view #app:before{content:"";position:fixed;z-index:3;inset:88px auto 0 0;width:430px;background:linear-gradient(90deg,#edf1e9,#edf1e9ef 63%,#edf1e900);pointer-events:none}.detail-view.night #app:before{background:linear-gradient(90deg,#162e35,#162e35ed 63%,#162e3500)}.is-walking #app:before{display:none}@media(max-width:1050px){.detail-view #app:before{width:330px}}@media(max-width:760px){.detail-view #app:before{inset:72px 0 auto;width:100%;height:245px;background:linear-gradient(180deg,#edf1e9ed,#edf1e900)}.detail-view.night #app:before{background:linear-gradient(180deg,#162e35ed,#162e3500)}}.poi:hover{transform:translate(-50%,-50%);background:#e2eadb}.night .poi:hover{background:#476650}.version-link{display:flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid var(--line);border-radius:20px;font-size:10px;letter-spacing:.8px;white-space:nowrap;background:var(--paper)}.version-link svg{width:12px;height:12px}@media(max-width:760px){.version-link{padding:7px 9px;font-size:9px}.version-link svg{display:none}}
