:root{font-family:Songti SC,STSong,"Noto Serif CJK SC",serif;color:#495643;background:#e5e6d7;font-synthesis:none;font-weight:400;--paper:rgba(243,240,225,.9);--line:rgba(79,96,70,.2);--ink:#495643;--accent:#a07b51}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;touch-action:manipulation;min-height:44px}button,button *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button:hover{color:var(--accent)}button[aria-pressed=true]{color:#f7f3e8;background:#53654c}button[hidden],[hidden]{display:none!important}#scene,canvas,#fade,#loading{position:fixed;inset:0;width:100%;height:100%;display:block}canvas{touch-action:none;outline:none}#fade{pointer-events:none;background:#e8e5d7;z-index:4;opacity:0}header{position:fixed;left:30px;right:30px;top:27px;display:flex;align-items:center;justify-content:space-between;gap:24px;pointer-events:none;z-index:6}.brand{display:flex;gap:15px;align-items:center;font-size:27px;letter-spacing:3px;text-shadow:0 1px 14px #f5f3e3}.brand>svg{width:49px;height:44px}.brand small{display:block;font-family:Arial,sans-serif;font-size:9px;letter-spacing:2.4px;margin-top:10px}.light-switch{display:flex;padding:5px;border:1px solid var(--line);border-radius:6px;background:var(--paper);pointer-events:auto}.light-switch button{min-width:90px;border-radius:3px;font-size:15px}.text-button{border-bottom:1px solid var(--line);min-height:38px;padding:4px 0;pointer-events:auto;font-size:14px}.story{position:fixed;left:34px;top:155px;width:248px;pointer-events:none;z-index:3;text-shadow:0 1px 15px #f0eddb}.eyebrow{font-family:Arial,sans-serif;font-size:10px;letter-spacing:3px;color:#8f7b56;margin:0 0 28px}h1{font-size:43px;line-height:1.55;font-weight:400;letter-spacing:2px;white-space:pre-line;margin:0 0 20px}.english{font-family:Arial,sans-serif;font-size:9px;letter-spacing:2px;margin:0 0 29px}#intro{font-size:15px;line-height:2.1;margin:0 0 28px}.observation small{font-size:10px;letter-spacing:2px;color:#907c59}.observation p{font-size:12px;line-height:1.9}.story .text-button{margin-top:4px}.tools{position:fixed;right:28px;top:155px;display:flex;flex-direction:column;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:5px;z-index:7}.tools button{width:48px;min-height:56px;font-size:23px;border-radius:3px}.tools span{display:block;font-size:10px;margin-top:3px;letter-spacing:1px}.orientation{position:fixed;right:105px;top:170px;display:flex;align-items:center;flex-direction:column;pointer-events:none;z-index:3;width:43px}.orientation span{font:11px Georgia,serif;letter-spacing:2px}.orientation svg{width:39px;height:46px;transform-origin:center center}.map{position:fixed;right:28px;bottom:174px;width:181px;padding:12px 13px 9px;background:#f3f0e199;border:1px solid var(--line);border-radius:5px;pointer-events:none;z-index:3}.map>div{display:flex;justify-content:space-between;font-size:10px}.map svg{display:block;width:100%;height:137px;margin-top:8px}.map polyline{fill:none;stroke:#9caa8a;stroke-width:5;stroke-linejoin:round}.map polyline.active{stroke:#957347;stroke-width:7}.map circle,.map rect{fill:#67745d}.map text{fill:#68745d;font-size:33px}#map-dot{fill:#bd9260;stroke:#f7f0dc;stroke-width:3}.map small{font-size:9px;color:#849075}.caption{position:fixed;left:34px;bottom:181px;pointer-events:none;z-index:3}.caption small{font:9px Arial,sans-serif;letter-spacing:2px;color:#839074}.caption p{font-size:17px;margin:13px 0}.caption span{font-size:10px;color:#7c886f}footer{position:fixed;left:26px;right:26px;bottom:22px;background:var(--paper);border:1px solid var(--line);border-radius:6px;z-index:6;overflow:hidden}.route-top{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid var(--line)}.branch-switch{display:flex;gap:6px}.branch-switch button{font-size:14px;min-height:35px;padding:4px 13px;border-radius:3px}.branch-switch span{font-size:10px;margin-left:9px;opacity:.7}#route-hint{font-size:11px;color:#849075}.route-bottom{display:flex;align-items:center;height:78px}.transport{display:flex;align-items:center;gap:4px;padding:0 17px}.transport button{width:34px;font:25px Arial,sans-serif}#tour{border-radius:50%;background:#53654c;color:#f5f1e4;font-size:14px;width:40px;height:40px;min-height:40px}nav{display:flex;flex:1;min-width:0;height:100%}nav button{position:relative;flex:1;white-space:nowrap;font-size:13px}nav small{display:block;font:9px Arial,sans-serif;margin-bottom:8px;color:#8a967b}nav [aria-current]{color:var(--accent)}nav [aria-current]:after{content:"";position:absolute;bottom:11px;height:1px;background:var(--accent);left:24%;right:24%}#progress{position:absolute;height:2px;bottom:0;left:0;background:#a89065;pointer-events:none}.scene-label{display:none}dialog{border:1px solid var(--line);border-radius:8px;background:#f3f0e3;color:var(--ink);width:min(590px,calc(100vw - 32px));max-height:80dvh;padding:32px 36px}dialog::backdrop{background:#1f282166}dialog h2{font-weight:400;font-size:26px;margin:9px 0 23px}dialog h3{font-size:17px;font-weight:400;margin-top:26px}dialog p{font-size:14px;line-height:1.95}dialog a{color:#7e6947;text-underline-offset:5px}.note{font-size:12px!important;color:#818872}#close{position:absolute;right:11px;top:6px;width:40px;font-size:25px}select{display:block;width:100%;margin-top:13px;padding:10px;border:1px solid var(--line);background:#ede9da}#loading{display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e9e6d8;z-index:20;font-size:16px;letter-spacing:3px}#loading>span{width:65px}#walk-panel{position:fixed;left:50%;transform:translate(-50%);bottom:26px;width:min(650px,calc(100% - 40px));padding:15px 20px;background:var(--paper);border:1px solid var(--line);border-radius:6px;z-index:7;display:flex;justify-content:space-between;align-items:center;gap:15px}#walk-panel small{font-size:12px;letter-spacing:1px}#walk-panel p{font-size:10px;margin:8px 0}.walk-controls{display:flex;gap:8px}.walk-controls button{min-width:62px;background:#e3e4d6;border:1px solid var(--line);border-radius:4px;touch-action:none}.walk-controls button:active{background:#53654c;color:#fff}.walk-controls span{font-size:11px}.walk-controls #exit-walk{font-size:11px;min-width:82px;touch-action:manipulation}.walk-track{position:absolute;left:0;right:0;bottom:0;height:3px}#walk-progress{height:100%;background:#9b8052}#walk-panel[data-end=true] p:after{content:" · 已到达片段终点"}.walking .story #intro,.walking .observation,.walking .caption,.walking .map{display:none}.walking h1{font-size:27px}.walking .story{top:138px}.walking .english{margin-bottom:6px}@media(max-height:820px)and (min-width:761px){.story{top:126px}.eyebrow{margin-bottom:14px}h1{font-size:34px;margin-bottom:13px}.english{margin-bottom:17px}#intro{font-size:13px;margin-bottom:18px}.observation{display:none}.caption{bottom:167px}.caption p{font-size:14px}.tools{top:123px}.orientation{top:136px}.map{width:147px;bottom:165px}.map svg{height:102px}}@media(max-width:760px){header{left:17px;right:17px;top:max(17px,env(safe-area-inset-top));gap:10px;align-items:flex-start}.brand{font-size:18px;letter-spacing:1.7px;gap:9px}.brand>svg{width:33px;height:34px}.brand small{font-size:7px;letter-spacing:1.3px;margin-top:7px}.light-switch{position:fixed;top:76px;left:17px;padding:3px}.light-switch button{min-width:65px;min-height:36px;font-size:12px}#about{font-size:0;min-width:32px;border:1px solid var(--line);border-radius:50%;min-height:32px}#about:after{content:"i";font:italic 18px Georgia,serif}.story{left:19px;top:139px;width:195px}.eyebrow{font-size:9px;margin-bottom:12px;letter-spacing:1.7px}h1{font-size:28px;line-height:1.45;margin-bottom:12px}.english{font-size:7px;letter-spacing:1.5px;margin-bottom:12px}#intro{font-size:11px;line-height:1.8;width:178px;margin:0}.observation,.story #notes,.caption{display:none}.tools{right:12px;top:139px;padding:3px}.tools button{width:39px;min-height:48px;font-size:20px}.tools span{font-size:9px;margin-top:2px}.orientation{top:85px;right:16px;width:37px}.orientation svg{width:31px;height:37px}.orientation span{font-size:9px}.map{display:none}footer{left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));border-radius:5px}.route-top{padding:6px}.branch-switch{width:100%;gap:5px}.branch-switch button{flex:1;font-size:13px;min-height:34px;padding:4px}.branch-switch span{font-size:8px;margin-left:5px}#route-hint{display:none}.route-bottom{height:74px;display:block;padding-left:48px;position:relative}.transport{padding:0;position:absolute;left:6px;top:19px}.transport #prev,.transport #next{display:none}#tour{width:32px;height:32px;min-height:32px;font-size:11px}nav button{font-size:10px;padding:0 2px}nav small{font-size:8px}nav [aria-current]:after{left:18%;right:18%;bottom:10px}.walking .story{top:137px}.walking .story h1{font-size:21px}.walking .english{display:none}#walk-panel{bottom:max(12px,env(safe-area-inset-bottom));padding:10px 12px;display:block;width:calc(100% - 24px)}#walk-panel>div:first-child{display:flex;justify-content:space-between;align-items:center}#walk-panel small{font-size:10px;letter-spacing:0}#walk-panel p{font-size:9px}.walk-controls{margin-top:5px}.walk-controls button{flex:1;min-height:46px}dialog{padding:27px 24px}}@media(max-height:670px){.story #intro{display:none}.story h1{font-size:24px}.tools{top:128px}.tools button{min-height:43px}.map{display:none}}@media(max-height:480px){header{top:10px;left:16px;right:16px}.brand{font-size:17px}.brand small{display:none}.light-switch{position:static;padding:2px}.light-switch button{min-height:30px;min-width:60px}.story{top:83px!important;width:160px;left:18px}.story h1{font-size:23px}.story #intro,.story .english,.story #notes,.observation,.caption,.map{display:none}.eyebrow{margin-bottom:8px}.tools{top:65px;right:12px;flex-direction:column;padding:2px}.tools button{min-height:36px;width:38px;font-size:17px}.tools span{font-size:8px;margin-top:0}.orientation{top:76px;right:61px}.orientation svg{width:29px;height:36px}footer{left:12px;right:70px;bottom:9px}.route-top{padding:3px 8px}.branch-switch button{min-height:29px}.route-bottom{height:58px}.transport{top:12px}#route-hint{display:none}#walk-panel{width:430px;bottom:9px;padding:7px 12px;display:block}#walk-panel>div:first-child{display:flex;justify-content:space-between}.walk-controls button{min-height:40px}.walk-controls{margin-top:0}}body[data-light=night]{color:#d8e0df;--ink:#d8e0df;--paper:rgba(22,34,48,.94);--line:rgba(176,199,210,.25);--accent:#edc18c}body[data-light=night] .brand,body[data-light=night] .story{text-shadow:0 1px 13px #0b1422}body[data-light=night] .eyebrow,body[data-light=night] .observation small,body[data-light=night] nav small,body[data-light=night] #route-hint,body[data-light=night] .caption small,body[data-light=night] .caption span,body[data-light=night] .map small{color:#aabbc8}body[data-light=night] button[aria-pressed=true],body[data-light=night] #tour{background:#89683f;color:#fff8e9}body[data-light=night] .map{background:#162230d4}body[data-light=night] .map polyline{stroke:#718ca0}body[data-light=night] .map polyline.active{stroke:#e4b87f}body[data-light=night] .map circle,body[data-light=night] .map rect{fill:#a1b4c1}body[data-light=night] .map text{fill:#bccbd5}body[data-light=night] dialog,body[data-light=night] select,body[data-light=night] .walk-controls button{background:#1b2c3d}body[data-light=night] dialog a{color:#edc18c}body[data-light=night] .note{color:#adbdca}body[data-light=night] #fade{background:#142134}body[data-light=night] .walk-controls button:active{background:#89683f}
