@charset "UTF-8";
:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#25372e;background:#c3d3d0;font-synthesis:none;--paper:#f4f3e9;--ink:#253c30;--green:#365a42;--muted:#737d70;--line:#d6d9ca}*{box-sizing:border-box}body{margin:0;overflow:hidden;width:100vw;height:100dvh}button,input{font:inherit}button{cursor:pointer;border:0;transition:background .18s,transform .18s}button:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #dfb765;outline-offset:3px}button:disabled{cursor:default;opacity:.4}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}#world,#scene{position:absolute;inset:0;width:100%;height:100%;display:block}#scene{touch-action:none;outline:0}.topbar{position:absolute;top:28px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:5}.brand{display:flex;align-items:center;gap:13px;filter:drop-shadow(0 1px 8px #f5f5e877)}.brand-seal{width:49px;height:53px;border-radius:14px 14px 20px 20px;background:#304a3e;display:grid;place-items:center;box-shadow:0 5px 16px #19372819}.brand-seal svg{width:34px;fill:none;stroke:#ede6cb;stroke-width:1.5}.brand h1{font-family:"STSong","SimSun",serif;font-weight:600;letter-spacing:5px;font-size:27px;margin:0;color:#273d31}.brand h1 span{letter-spacing:2px;font:10px system-ui;margin-left:14px;border-left:1px solid #718575;padding-left:14px}.brand p{font-size:10px;letter-spacing:2px;margin:5px 0 0;color:#4b6558}.top-actions{display:flex;gap:8px;pointer-events:auto}.top-actions button{background:#f5f5ebdd;backdrop-filter:blur(12px);height:39px;padding:0 14px;border:1px solid #ffffff80;border-radius:8px;font-size:12px;color:#344d3e;box-shadow:0 3px 12px #2d4c3810;display:flex;align-items:center;gap:9px}.top-actions button:hover{background:#fffdf2}.top-actions #help-button{font-family:Georgia,serif;font-size:19px;width:39px;justify-content:center}.top-actions kbd{font-size:10px;border:1px solid #bcc6b8;background:transparent}.compass{position:absolute;top:35px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:22px;font:10px system-ui;letter-spacing:2px;color:#486351;text-shadow:0 1px 6px #fff}.compass i{width:1px;height:8px;background:#6d8d78;opacity:.6}.compass b{font-weight:700;color:#2c4b39;font-size:13px}.survey-card{position:absolute;right:32px;top:108px;width:286px;padding:23px 23px 14px;background:linear-gradient(130deg,#f8f7eef2,#f0f1e5e8);border:1px solid #ffffffa0;backdrop-filter:blur(16px);box-shadow:0 14px 45px #29443814;border-radius:13px;z-index:4}.eyebrow{display:flex;align-items:center;font-size:8px;letter-spacing:1.6px;color:#7e8978;gap:7px}.live-dot{width:5px;height:5px;border-radius:50%;background:#6d8553}.chapter{margin-left:auto;letter-spacing:.5px}.survey-card h2{font-family:"STSong","SimSun",serif;font-size:22px;font-weight:500;margin:20px 0 9px;letter-spacing:1px}.intro{font-size:10px;color:#7c8575;line-height:1.8;margin:0}.land-stat{margin-top:24px}.land-stat strong{font:34px Georgia,serif;letter-spacing:-1px;color:#344e3e}.land-stat strong small{font-size:20px;margin:0 6px;color:#8d9887}.land-stat strong span{font:10px system-ui;margin-left:9px;letter-spacing:0;color:#7d8876}.land-stat p{font-size:9px;color:#8a9282;letter-spacing:.4px;margin:8px 0 16px}.biomes{display:flex;justify-content:space-between;font-size:10px;color:#697762}.biomes span{display:flex;align-items:center;gap:6px}.biomes i,.map-legend i{display:inline-block;width:7px;height:7px;border-radius:2px}.grass{background:#a0ae76}.forest{background:#4f7150}.river{background:#649eaa}.rock{background:#a7a28e}.divider{height:1px;background:var(--line);margin:20px 0 17px}.tool-tabs{display:grid;grid-template-columns:repeat(3,1fr);padding:3px;background:#e5e9dc;border-radius:7px;gap:3px}.tool-tabs button{background:transparent;font-size:11px;padding:8px 0;border-radius:5px;color:#7a8473}.tool-tabs button.active{background:#fffef6;box-shadow:0 2px 5px #364b2710;color:#3b5540}.tool-detail{min-height:89px;padding-top:17px}.tool-detail b{font-size:11px;font-weight:500;line-height:1.7}.tool-detail p{font-size:10px;color:#7e8776;line-height:1.9;margin:7px 0}.tool-detail .metrics{display:flex;justify-content:space-between;gap:8px;margin:9px 0;color:#5b6c52}.metrics strong{font:22px Georgia,serif}.metrics span{font-size:9px}.tool-detail .bad{color:#9c694b}.primary{background:#365942;color:#f5f2df;border:1px solid #536e4e;box-shadow:0 7px 18px #213e291a;border-radius:8px;padding:15px 22px;font-size:13px;letter-spacing:1px}.primary:hover:not(:disabled){background:#294b35}.primary span{margin-left:38px}.primary.small{width:100%;padding:10px;font-size:11px;margin:4px 0 10px}.survey-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:9px;padding-top:14px;border-top:1px solid var(--line);font-size:10px;color:#7d8876}.survey-bottom label{display:flex;align-items:center;gap:4px;cursor:pointer}.survey-bottom input{accent-color:#496748;width:12px;height:12px}.survey-bottom button{background:transparent;color:#4e694e;font-size:10px;padding:4px}.survey-bottom b{background:#dfe5d5;border-radius:4px;padding:2px 5px;margin-left:4px;font-weight:500}.save-note{font-size:9px;color:#a0a795;margin:12px 0 0}.entry{position:absolute;left:7%;bottom:19%;z-index:3;max-width:510px}.entry-kicker{font-size:11px;letter-spacing:6px;color:#dae0c9;text-shadow:0 1px 6px #24432b}.entry h2{font-family:"STSong","SimSun",serif;font-size:44px;line-height:1.55;font-weight:500;color:#fffbea;letter-spacing:4px;margin:19px 0 15px;text-shadow:0 3px 24px #213a3370}.entry p{font-size:12px;color:#eef0de;letter-spacing:1px;line-height:1.8;text-shadow:0 2px 8px #29483b}.entry .primary{margin-top:14px;background:#f2f0dc;color:#2c4935;border-color:#f7f5e5;box-shadow:0 10px 35px #15342030}.entry .primary:hover{background:#ffffef}.entry small{display:block;font-size:9px;color:#e3e5cf;letter-spacing:1px;margin-top:15px;text-shadow:0 1px 5px #29483b}.location{position:absolute;left:32px;bottom:28px;display:flex;align-items:center;gap:11px;background:#f4f4e9da;backdrop-filter:blur(10px);border:1px solid #ffffff80;border-radius:9px;padding:12px 16px;z-index:3;min-width:205px}.location-icon{font-size:28px;color:#8b9a7a;font-family:serif}.location strong{font-size:11px;font-weight:500;letter-spacing:1px}.location p{font-size:9px;margin:5px 0 0;color:#88937f}.location-separator{padding:0 9px;color:#b0b8a6}.movement{position:absolute;left:50%;bottom:33px;transform:translateX(-50%);display:flex;gap:7px;align-items:center;color:#edf2de;font-size:10px;text-shadow:0 1px 4px #163d26;white-space:nowrap;background:#233e3740;backdrop-filter:blur(8px);padding:10px 14px;border-radius:8px}.movement span{margin-right:9px}.movement span:last-child{margin-right:0}kbd{font:10px system-ui;display:inline-block;border-radius:3px;border:1px solid #c9d4bd70;padding:3px 5px;background:#ecf0de15}.mode-note{position:absolute;right:33px;bottom:36px;color:#f7f5df;font-size:10px;background:#2c473c77;border-radius:5px;padding:9px 12px;backdrop-filter:blur(6px)}.toast{position:absolute;bottom:92px;left:50%;transform:translate(-50%,10px);background:#f7f5e9f5;border:1px solid white;box-shadow:0 6px 30px #1f3e2920;border-radius:8px;padding:12px 18px;font-size:12px;max-width:80vw;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:12}.toast.visible{opacity:1;transform:translate(-50%,0)}.loading{position:absolute;inset:0;background:#e8ede0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:30;transition:opacity .7s}.loading.done{opacity:0;pointer-events:none}.loading p{font-size:12px;color:#7c8b70;letter-spacing:2px;margin-top:23px}.loader-mark{display:grid;place-items:center;width:66px;height:72px;border-radius:22px;background:#385640;color:#efe9cc;font:30px "SimSun",serif;box-shadow:0 12px 30px #34522b20}.touch-controls,.survey-toggle{display:none}dialog{color:var(--ink);background:#f4f3e9;border:1px solid #fff9;border-radius:15px;padding:25px;width:min(710px,92vw);box-shadow:0 25px 100px #1c392c50;max-height:92dvh}dialog::backdrop{background:#213c3a70;backdrop-filter:blur(5px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-header h2{font:25px "STSong","SimSun",serif;letter-spacing:2px;margin:5px 0 0}.dialog-header small{font-size:9px;letter-spacing:2px;color:#89927f}.dialog-header button{background:#e6e9dc;color:#788672;font-size:22px;border-radius:50%;height:31px;width:31px}.map-layout{display:flex;gap:22px;align-items:center}#map-canvas{width:min(440px,60vw,65dvh);height:min(440px,60vw,65dvh);border:1px solid #bfc8ad;border-radius:6px}.map-legend{font-size:11px;line-height:1.8;min-width:125px}.map-legend p{display:flex;gap:8px;align-items:center}.map-legend .muted{font-size:10px;line-height:1.9;color:#8b9582;display:block;margin-top:24px}.map-player{background:#f8f3d4;border:2px solid #384f3e;width:10px!important;height:10px!important;border-radius:50%!important}.map-parcel{border:1px solid #ba9a58;background:#e1cf91}.scale{font-size:9px;margin-top:30px;color:#79886b}.scale span{display:block;width:60px;border:1px solid #8d9e7c;height:5px;border-top:0;margin-bottom:7px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 22px}.help-grid p{display:flex;flex-direction:column;gap:10px;font-size:12px;background:#e9ecdf;border-radius:8px;padding:15px;margin:0}.help-grid kbd{align-self:flex-start;border-color:#bfc9b0;background:#f9f8ed;font-size:11px}.help-footer{border-top:1px solid var(--line);padding-top:19px;margin:22px 0 0;font-size:11px;line-height:2;color:#7c8971}#saved-dialog{width:min(500px,92vw)}.saved-row{display:flex;align-items:center;justify-content:space-between;background:#e8ecdf;padding:13px;border-radius:8px;margin:10px 0}.saved-row strong{font-size:12px;font-weight:500}.saved-row p{font-size:10px;color:#7c8971;margin:5px 0 0}.saved-row button{background:#f7f6e9;border:1px solid #d4d9c5;font-size:10px;color:#8b725c;border-radius:5px;padding:8px}.empty{font-size:12px;color:#7f8c74;text-align:center;padding:45px 15px;line-height:2}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:11px;color:#7d8971}.pagination button{padding:8px 12px;border-radius:5px;background:#e3e8d7;color:#5f7452;font-size:11px}.walking .entry{display:none}.walking .mode-note{display:none}.walking .survey-card h2{font-size:19px;margin-top:15px}.walking .land-stat{margin-top:16px}.walking .land-stat strong{font-size:29px}body.tool-active #scene{cursor:crosshair}
@media(max-width:1100px){.movement{left:44%;font-size:9px;gap:4px}.movement span{margin-right:3px}.survey-card{right:22px;width:260px;padding:20px}.topbar{left:22px;right:22px}.compass{left:46%}.entry h2{font-size:36px}.entry{left:5%}.mode-note{bottom:100px;right:22px}.location{left:22px;bottom:25px;padding:10px 12px;min-width:190px}.movement{bottom:25px;left:auto;right:22px;transform:none}.survey-card .intro{font-size:9px}}
@media(max-height:720px) and (min-width:701px){.survey-card{top:92px;padding:16px 20px}.survey-card h2{font-size:19px;margin-top:13px}.land-stat{margin-top:13px}.land-stat strong{font-size:28px}.divider{margin:13px 0}.tool-detail{min-height:76px;padding-top:12px}.survey-bottom{padding-top:10px}.save-note{margin-top:7px}.entry h2{font-size:33px}.entry{bottom:20%}.entry-kicker{font-size:9px}.entry p{font-size:10px}.compass{top:35px}}
@media(max-width:700px){.topbar{top:16px;left:16px;right:16px}.brand-seal{width:36px;height:40px;border-radius:11px}.brand-seal svg{width:26px}.brand{gap:9px}.brand h1{font-size:22px}.brand h1 span,.brand p,.button-label,.top-actions kbd{display:none}.top-actions{gap:5px}.top-actions button{height:34px;padding:0 10px;font-size:10px}.top-actions #help-button{width:34px;font-size:17px}.compass{top:75px;left:50%;gap:16px}.survey-card{display:none;top:108px;right:16px;width:258px;padding:17px}.survey-card.open{display:block}.survey-card h2{font-size:19px;margin-top:12px}.land-stat{margin-top:14px}.land-stat strong{font-size:28px}.divider{margin:14px 0}.entry{left:25px;right:20px;bottom:24%;max-width:400px}.entry h2{font-size:31px;letter-spacing:2px}.entry p{font-size:10px;max-width:260px;line-height:2}.entry-kicker{font-size:9px;letter-spacing:4px}.entry small{font-size:8px}.entry .primary{font-size:12px;padding:13px 18px}.movement{display:none}.location{left:16px;bottom:18px;min-width:180px;padding:9px 12px}.location strong{font-size:10px}.location p{font-size:8px}.mode-note{right:16px;bottom:87px;font-size:9px}.survey-toggle{display:block;position:absolute;right:16px;bottom:25px;background:#f4f3e6dd;color:#4e694c;border:1px solid #fff9;border-radius:7px;padding:11px 13px;font-size:11px;z-index:7}.touch-controls{position:absolute;left:18px;bottom:103px;z-index:6;text-align:center}.walking .touch-controls{display:block}.touch-controls button{touch-action:none;user-select:none;width:38px;height:38px;background:#f4f6e4b8;border:1px solid #ffffff70;border-radius:8px;color:#426141;margin:2px;font-size:16px}.map-layout{display:block}#map-canvas{width:min(100%,60dvh);height:auto;aspect-ratio:1}.map-legend{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:10px;align-items:center}.map-legend .muted,.scale{display:none}dialog{padding:20px}.dialog-header{margin-bottom:15px}.dialog-header h2{font-size:22px}.help-grid{gap:8px}.help-grid p{padding:11px;font-size:10px}.help-grid kbd{font-size:9px}.help-footer{font-size:10px;margin-top:15px}.toast{bottom:75px;font-size:11px}.walking .mode-note{display:none}}
.portrait .survey-card{visibility:hidden;pointer-events:none}.portrait .movement{display:none}
.interaction-card{position:absolute;left:50%;bottom:96px;transform:translateX(-50%);z-index:8;display:flex;align-items:center;gap:16px;width:min(390px,calc(100vw - 32px));padding:13px 15px;background:#f5f3e5ed;backdrop-filter:blur(12px);border:1px solid #fff9;border-radius:11px;box-shadow:0 8px 28px #243e3522;color:#304f3e}.interaction-card[hidden]{display:none}.interaction-copy{min-width:0;flex:1}.interaction-copy small{display:block;color:#8c9276;font-size:9px;letter-spacing:2px;margin-bottom:5px}.interaction-copy strong{display:block;font-size:13px;font-weight:500}.interaction-copy p{font-size:10px;color:#7a866e;line-height:1.6;margin:5px 0 0}.interaction-card button{display:flex;align-items:center;gap:7px;flex-shrink:0;background:#3f624a;color:#fff9e8;border:1px solid #587354;border-radius:8px;padding:11px 13px;font-size:12px}.interaction-card button:disabled{background:#e0e5d7;color:#929d86;border-color:#d3dac7;cursor:default}.interaction-card kbd{padding:1px 5px}.walking .toast{bottom:208px}.map-timber{background:#b57936;border-radius:2px}
@media(max-width:700px){.interaction-card{bottom:205px;padding:11px 12px;gap:10px}.interaction-copy strong{font-size:12px}.interaction-copy p{font-size:10px}.interaction-card button{padding:12px;font-size:12px}.interaction-card kbd{display:none}.walking .toast{bottom:318px}.help-grid p{padding:9px}.help-footer{line-height:1.6}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
