:root{font-family:Microsoft YaHei,sans-serif;color:#25463a}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#d2e1d9}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible{outline:3px solid #bd8a3c;outline-offset:4px}#world{width:100%;height:100%;position:fixed;inset:0;touch-action:none;display:block}header{position:absolute;top:26px;left:32px;right:32px;display:flex;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;gap:16px}.brand b,#loading b{display:grid;place-items:center;border:1px solid #637c64;outline:1px solid #637c64;outline-offset:4px;background:#f3f0dfdd;width:44px;height:48px;font:30px serif;border-radius:3px}.brand h1{font:600 27px SimSun,serif;letter-spacing:5px;margin:0;text-shadow:0 1px 6px #fff}.brand small{font:9px sans-serif;letter-spacing:3px}.brand p{font-size:10px;letter-spacing:3px;margin:7px 0 0}.actions{display:flex;align-items:center;gap:10px;pointer-events:auto}.actions button,.actions>span{height:40px;border:1px solid #ffffffa0;background:#fbf9e8dc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:50%;width:40px;font-size:19px;box-shadow:0 3px 16px #1c3b3212}.actions>span{width:auto;border-radius:24px;padding:11px 17px;font-size:13px}aside{position:absolute;left:34px;top:132px;pointer-events:none}aside label{font-size:10px;letter-spacing:4px;opacity:.7}aside h2{font:500 37px SimSun,serif;letter-spacing:5px;margin:9px 0;text-shadow:0 1px 10px #fff}aside p{font-size:12px;margin:0;text-shadow:0 1px 5px #fff}.tag{margin-top:17px;font-size:10px;background:#faf7e9d9;border:1px solid #fff8;display:inline-block;padding:7px 10px;border-radius:20px}.tag span{opacity:.6}.map-wrap{position:absolute;top:114px;right:30px}.map-wrap button{padding:7px;background:#f6f5e7e8;border:1px solid #fffc;border-radius:50% 50% 15px 15px;box-shadow:0 12px 40px #12332215;width:156px}.map-wrap canvas{width:140px;height:140px;border-radius:50%;display:block}.map-wrap span{display:block;font-size:10px;padding:6px 4px 1px;letter-spacing:2px}footer{position:absolute;left:32px;right:32px;bottom:26px;display:flex;justify-content:space-between;align-items:end;gap:15px;pointer-events:none}.controls{display:flex;gap:12px;align-items:center;background:#f7f4e9db;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #fffa;padding:13px 17px;border-radius:14px;pointer-events:auto}.controls>div{text-align:center}kbd{display:inline-block;font:10px sans-serif;width:20px;padding:3px;background:#fff9;border:1px solid #54665445;border-radius:4px;margin:1px}.controls p{font-size:12px;margin:0}.controls small{display:block;font-size:9px;margin-top:6px;opacity:.65;line-height:1.7}nav{display:flex;background:#fbf8ebed;border:1px solid #fffc;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);box-shadow:0 6px 30px #183b3020;padding:7px;border-radius:19px;pointer-events:auto}nav button{border:0;background:none;min-width:94px;padding:7px 15px;font-size:11px;border-radius:13px}nav button:hover{background:#dce4d5}nav span{display:block;font-size:24px;height:30px}.signature{text-align:right;font:13px serif;text-shadow:0 1px 8px #fff}.signature small{display:block;font:8px sans-serif;letter-spacing:2px;margin-top:8px}#toast{position:absolute;left:50%;top:90px;transform:translate(-50%,-10px);padding:12px 22px;border-radius:30px;background:#25473ce8;color:#fff;opacity:0;transition:.3s;pointer-events:none;font-size:12px;text-align:center;max-width:85%}#toast.show{opacity:1;transform:translate(-50%)}dialog{border:1px solid #fff;border-radius:24px;padding:34px;background:#faf8ed;color:#27483c;box-shadow:0 25px 100px #102c3240;width:min(92vw,520px)}dialog::backdrop{background:#153b2e40;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}#close-panel{position:absolute;right:15px;top:11px;border:0;background:none;font-size:26px}dialog h2{font:500 26px serif;margin:0 0 20px}dialog p{font-size:13px;line-height:1.9;color:#657566}.option,.destination{display:block;width:100%;background:#fff9;border:1px solid #d8ddcf;border-radius:12px;padding:14px 17px;margin:10px 0;text-align:left}.option.active{background:#294e40;color:#fff}.destination small{float:right;opacity:.65}#large-map{width:100%;border-radius:14px}#loading{position:fixed;inset:0;z-index:20;background:#eeefe3;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .6s}#loading h1{font:500 28px serif;letter-spacing:5px;margin-top:35px}#loading p{font-size:12px;letter-spacing:2px;color:#82907e}#joystick,#run,#mobile-hint{display:none}body.map-view aside{display:none}@media(max-width:1000px){.signature{display:none}}@media(pointer:coarse),(max-width:600px){header{left:20px;right:16px;top:max(20px,env(safe-area-inset-top))}.brand{gap:11px}.brand b{width:32px;height:36px;font-size:24px}.brand h1{font-size:22px}.brand small{display:none}.brand p{font-size:8px;letter-spacing:1px}.actions{gap:6px}.actions button{width:33px;height:33px;font-size:16px}.actions>span{display:none}aside{top:103px;left:20px}aside h2{font-size:29px}aside p{font-size:10px;max-width:160px;line-height:1.8}.tag{font-size:9px;margin-top:10px}.map-wrap{top:102px;right:14px}.map-wrap button{width:100px;padding:5px}.map-wrap canvas{width:88px;height:88px}.map-wrap span{font-size:8px;letter-spacing:1px}footer{bottom:max(18px,env(safe-area-inset-bottom));left:50%;right:auto;transform:translate(-50%)}.controls{display:none}nav{border-radius:16px;padding:3px}nav button{min-width:83px;font-size:10px;padding:5px 8px}nav span{font-size:21px;height:26px}#joystick{display:block;position:absolute;bottom:132px;left:28px;width:112px;height:112px;background:#f7f6e438;border:1px solid #fff9;border-radius:50%;touch-action:none;box-shadow:inset 0 0 20px #fff2}#stick{position:absolute;left:35px;top:35px;width:40px;height:40px;border-radius:50%;background:#faf9ebc9;box-shadow:0 2px 12px #183a3930;pointer-events:none}#run{display:block;position:absolute;right:26px;bottom:155px;border-radius:50%;width:64px;height:64px;border:1px solid #fff9;background:#f9f6e9ad;font-size:13px;touch-action:none}#mobile-hint{display:block;position:absolute;bottom:92px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:9px;letter-spacing:1px;color:#fff;text-shadow:0 1px 4px #153327}#toast{top:76px;width:max-content;font-size:11px}dialog{padding:28px}}@media(max-height:500px){aside{top:85px}aside p,.tag{display:none}.map-wrap{top:85px}.map-wrap button{width:100px}.map-wrap canvas{width:86px;height:86px}#joystick{bottom:35px}footer{left:auto;right:110px;transform:none}#mobile-hint{display:none}#run{bottom:40px}}.online-status{position:absolute;top:85px;left:34px;font-size:11px;background:#fff9;padding:5px 10px;border-radius:15px}.chat-panel{position:absolute;right:25px;bottom:125px;width:270px}.chat-panel button,.listen-button{border:1px solid #fff9;border-radius:20px;background:#f5f1e2eb;padding:10px 18px}.chat-panel>button{float:right}#chat-body{clear:both;background:#faf7e9e8;border-radius:15px;padding:12px}#messages{height:160px;overflow:auto;font-size:12px}#messages p{overflow-wrap:anywhere}#chat-form{display:flex;gap:5px}#chat-input{width:170px;border:1px solid #ccc;border-radius:8px;padding:7px}#chat-form button{padding:6px}audio{width:100%;margin-top:20px}.listen-button{position:absolute;left:50%;bottom:200px;transform:translate(-50%)}.signature{display:none}@media(max-width:600px){.online-status{top:76px;left:20px;font-size:9px}.chat-panel{right:14px;bottom:250px;width:240px}#messages{height:110px}.listen-button{bottom:210px;font-size:12px}}.landmark-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.landmark-title{position:absolute;top:0;left:0;border:1px solid #d9bf83;border-radius:24px;background:#fff8e8f5;box-shadow:0 3px 12px #503d2026;color:#513e27;padding:7px 16px;font:700 15px Microsoft YaHei,sans-serif;white-space:nowrap}.landmark-title:after{content:"";position:absolute;left:50%;bottom:-6px;width:9px;height:9px;transform:rotate(45deg);background:#fff8e8;border-bottom:1px solid #d9bf83;border-right:1px solid #d9bf83}@media(max-width:600px){.landmark-title{font-size:12px;padding:5px 10px}}
