:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#244c50;background:#a7d9e9;font-synthesis:none;--panel:rgba(248,255,255,.85);--line:rgba(48,105,110,.15);--text:#244c50;--muted:#537b80;--accent:#256c66}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;touch-action:manipulation}button:focus-visible{outline:3px solid #d69937;outline-offset:4px}button, .surface{transition:background .2s,color .2s,box-shadow .2s}button:hover{background:rgba(51,108,108,.09)}button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}#world{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.surface{background:var(--panel);border:1px solid rgba(255,255,255,.5);box-shadow:0 8px 35px #234b5c0d;backdrop-filter:blur(16px);border-radius:15px}.masthead{position:fixed;left:36px;top:30px;display:flex;gap:13px;align-items:center;pointer-events:none}.brand-mark{width:49px;height:49px;background:#276b65;border-radius:13px;padding:6px;box-shadow:0 6px 15px #26645a15}.brand-mark svg{stroke:#daf1dd;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round}h1{font-family:"STSong","SimSun",serif;font-size:30px;font-weight:600;letter-spacing:5px;margin:0}h1 span{font-family:"Microsoft YaHei",sans-serif;letter-spacing:2px;font-size:14px;font-weight:400;border-left:1px solid #51858670;margin-left:14px;padding-left:16px;vertical-align:middle}.masthead p{font-size:12px;letter-spacing:3px;color:var(--muted);margin:6px 0 0}.top-controls{position:fixed;right:34px;top:32px;padding:5px;display:flex;gap:3px}.top-controls button{border-radius:10px;padding:10px 17px;font-size:14px;min-height:42px}.top-controls button span{font-size:19px;margin-right:5px}.selected{background:#286d65!important;color:#fff}.intro{position:fixed;left:38px;top:155px;pointer-events:none}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--muted)}.intro h2{font-family:"STSong","SimSun",serif;font-size:34px;line-height:1.5;letter-spacing:4px;font-weight:500;margin:17px 0}.intro p{font-size:13px;line-height:1.9;color:var(--muted)}.text-button{pointer-events:auto;padding:8px 0;border-bottom:1px solid #6b999570;font-size:13px;margin-top:8px}.text-button span{margin-left:20px}.view-tools{position:fixed;right:34px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;padding:5px}.icon-button{height:44px;width:44px;display:grid;place-items:center;border-radius:9px;font-size:25px}.view-tools>span{height:1px;background:var(--line);margin:5px 10px}.view-tools .active{color:#1d8772}.compass{position:fixed;left:42px;bottom:116px;width:84px;height:84px;border:1px solid #46757b35;border-radius:50%;font-size:11px;color:var(--muted);pointer-events:none}.compass span{position:absolute}.north{top:-20px;left:29px;font-size:12px;color:var(--text)}.south{bottom:5px;left:35px}.west{left:7px;top:34px}.east{right:7px;top:34px}#compass-needle{position:absolute;left:33px;top:20px;width:16px;height:42px}#compass-needle i,#compass-needle b{position:absolute;left:0;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent}#compass-needle i{top:0;border-bottom:21px solid #2b736c}#compass-needle b{top:21px;border-top:21px solid #ffffffb0}footer{position:fixed;left:0;bottom:26px;width:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.bottom-controls{pointer-events:auto;display:flex;padding:6px;gap:5px;align-items:center}.bottom-controls button{display:flex;gap:9px;align-items:center;padding:12px 18px;border-radius:11px;min-height:46px;font-size:14px}.bottom-controls>span{width:1px;height:24px;background:var(--line);margin:0 4px}#motion{padding:12px 14px}#motion-icon{font-size:18px}.scene-caption{position:absolute;left:36px;bottom:10px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.live-dot{background:#438a6a;width:6px;height:6px;border-radius:50%}.divider{opacity:.4;margin:0 3px}#hint{position:absolute;right:34px;bottom:5px;font-size:12px;color:var(--muted)}#hint span{padding:0 8px}#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}.map-label{position:absolute;left:0;top:0;white-space:nowrap;pointer-events:auto;background:rgba(250,255,253,.87);border:1px solid #ffffff9c;box-shadow:0 4px 13px #163f511a;border-radius:6px;padding:6px 10px;color:#365b53;font-size:12px;transform:translate(-50%,-100%);transition:opacity .2s,background .2s}.map-label:after{content:"";position:absolute;left:50%;bottom:-5px;width:7px;height:7px;transform:rotate(45deg);background:inherit;border-right:1px solid #ffffff9c;border-bottom:1px solid #ffffff9c}.map-label:hover,.map-label.chosen{background:#256e65;color:white}.map-label small{color:#849585;font-size:10px;margin-right:5px}.river-label{position:absolute;color:#e4fcff;letter-spacing:5px;font-size:12px;text-shadow:0 1px 5px #14698885;transform:translate(-50%,-50%)}#info{position:fixed;left:34px;top:145px;width:295px;padding:27px 24px;z-index:3}#info[hidden]{display:none}#close-info{position:absolute;right:8px;top:7px;font-size:22px;width:34px;height:34px}#info h2{font-family:"STSong","SimSun",serif;font-weight:600;font-size:26px;letter-spacing:2px;margin:18px 0 13px}#info p{font-size:14px;line-height:1.9;color:var(--muted);margin-bottom:24px}.info-bottom{border-top:1px solid var(--line);padding-top:16px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.info-bottom button{color:var(--accent);padding:8px 0}.info-bottom button span{padding-left:5px}#loading{position:fixed;inset:0;background:#a7d9e9;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:10;transition:opacity .6s}#loading p{font-size:14px;letter-spacing:3px}.loading-mark{width:38px;height:38px;border:2px solid #43878035;border-top-color:#286d65;border-radius:50%;animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;top:105px;left:50%;transform:translate(-50%,-10px);padding:10px 18px;border-radius:10px;background:#234e4ded;color:#fff;font-size:13px;opacity:0;pointer-events:none;transition:.2s;max-width:90vw;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}#walk-help{position:fixed;left:50%;top:110px;transform:translateX(-50%);padding:16px 22px;text-align:center;min-width:360px}#walk-help strong{font-size:15px}#walk-help p{font-size:12px;color:var(--muted);line-height:1.8;margin:8px 0}#lock-pointer{font-size:12px;color:var(--accent);padding:8px 14px;border:1px solid var(--line);border-radius:7px}.walk-pad{display:none}body.walking .intro,body.walking .compass,body.walking .view-tools,body.walking #labels,body.walking .scene-caption{display:none}body.night{--panel:rgba(21,42,62,.88);--text:#e1eff0;--muted:#a8beca;--accent:#9edacc;color:var(--text)}body.night .surface{border-color:#a0d6ef22}body.night .map-label{background:#1a354de0;color:#e0efde;border-color:#729ab05a}body.night .masthead p,body.night .intro{color:var(--text)}body.night .brand-mark{background:#1e5653}.model-note{font-size:11px}
@media(min-width:1700px){.intro{top:190px}.intro h2{font-size:40px}}@media(max-width:1200px){.intro{top:145px}.intro h2{font-size:27px}.intro p,.intro .eyebrow{display:none}.scene-caption{bottom:74px}#hint{bottom:74px}#info{top:130px}.compass{bottom:128px}.map-label{font-size:11px;padding:5px 8px}}@media(max-width:700px){.masthead{left:18px;top:22px;gap:9px}.brand-mark{width:39px;height:39px}h1{font-size:24px;letter-spacing:3px}h1 span{display:none}.masthead p{font-size:10px;letter-spacing:2px}.top-controls{right:16px;top:22px;padding:3px}.top-controls button{padding:8px 10px;min-height:37px;font-size:12px}.top-controls button span{font-size:16px}.intro{left:20px;top:106px}.intro h2{font-size:24px;line-height:1.4;margin:0}.intro .text-button{font-size:12px;padding:7px 0;margin-top:6px}.view-tools{right:14px;top:48%;padding:3px}.icon-button{width:36px;height:39px}.compass{left:23px;bottom:150px;width:62px;height:62px}.compass .north{left:18px}.compass .south{left:25px;bottom:0}.compass .west{left:3px;top:25px}.compass .east{right:3px;top:25px}#compass-needle{left:23px;top:11px;transform:scale(.8)}footer{bottom:max(22px,env(safe-area-inset-bottom))}.bottom-controls button{padding:12px 13px;font-size:13px}.bottom-controls{border-radius:14px;gap:2px;padding:5px}#motion{padding:12px 10px}.motion-text{display:none}.scene-caption{left:20px;bottom:96px;font-size:11px;gap:6px}#hint{right:auto;bottom:62px;left:0;width:100%;text-align:center;font-size:11px;margin:0}#info{top:auto;bottom:120px;left:16px;right:16px;width:auto;padding:20px}#info h2{font-size:23px;margin:10px 0}#info p{margin:8px 0 13px;line-height:1.7}#info .info-bottom{padding-top:8px}.map-label{font-size:10px;padding:4px 6px}.map-label small{display:none}#walk-help{top:99px;min-width:0;width:calc(100% - 32px);padding:13px}#walk-help p{font-size:11px}.walk-pad{display:grid;position:fixed;top:calc(100dvh - 330px);left:0;grid-template-columns:repeat(3,44px);gap:4px}.walk-pad button{border-radius:10px;background:var(--panel);height:44px;font-size:22px;border:1px solid var(--line)}.walk-pad button:first-child{grid-column:2}.walk-pad button:nth-child(2){grid-column:1}.river-label{font-size:10px;letter-spacing:2px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
body.walking .masthead{padding:10px 14px;background:var(--panel);border-radius:14px}body.walking #hint{padding:8px 12px;background:var(--panel);border-radius:9px}
