:root{color:#233c32;font-synthesis:none;--green:#214b3d;--muted:#7e897e;--line:#e3e7df;--gold:#ab8952;background:#f9faf6;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}svg{flex-shrink:0;width:22px;height:22px}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #b08a4e}button{border:0}button[hidden],[hidden]{display:none!important}#app{flex-direction:column;height:100dvh;min-height:650px;display:flex}.header{border-bottom:1px solid var(--line);z-index:4;background:#fffefa;flex-shrink:0;align-items:center;gap:24px;height:88px;padding:0 32px;display:flex}.brand{align-items:center;gap:13px;display:flex}.brand-symbol{width:45px;height:45px;color:var(--green);border:1px solid #42644e;border-radius:50%;place-items:center;display:grid}.brand-symbol svg{width:29px;height:29px}.brand strong{letter-spacing:2px;font-size:19px;font-weight:600}.brand-divider{color:#9faaa0;margin:0 14px;font-weight:300}.brand small{letter-spacing:3px;color:#8c9589;margin-top:6px;font-size:9px;display:block}.header-location{color:#647463;align-items:center;gap:10px;margin-left:auto;font-size:12px;display:flex}.live-dot{background:#719876;border-radius:50%;width:6px;height:6px}.header-slash{color:#b8c1b6;margin:0 5px}.quiet-button{background:0 0;justify-content:center;align-items:center;gap:7px;font-size:12px;display:flex}.header .quiet-button{border-left:1px solid var(--line);padding:9px 0 9px 24px}.quiet-button svg{width:18px;height:18px}.workspace{flex:1;min-height:0;display:flex}.sidebar{border-right:1px solid var(--line);z-index:3;background:#fffefa;flex-direction:column;flex-shrink:0;width:300px;padding:34px 25px 18px;display:flex;overflow-y:auto}.eyebrow{letter-spacing:2.5px;color:#879581;font-size:9px;font-weight:600}.intro h1{letter-spacing:3px;margin:15px 0 14px;font-family:Songti SC,STSong,Noto Serif CJK SC,serif;font-size:39px;font-weight:500;line-height:1.32}.intro p{color:var(--muted);margin:0 0 24px;font-size:12px;line-height:1.9}.search-box{background:#f1f3ee;border:1px solid #0000;border-radius:4px;flex-shrink:0;align-items:center;gap:9px;padding:12px;display:flex;position:relative}.search-box:focus-within{border-color:#6d8a6c}.search-box svg{color:#7b8a7a;width:17px;height:17px}.search-box input{width:100%;min-width:0;color:var(--green);background:0 0;border:0;outline:none;font-size:12px}.search-box input::placeholder{color:#899486}.search-box kbd{color:#a1aaa0;border:1px solid #d8dfd4;border-radius:3px;padding:0 4px;font:11px inherit}.list-heading{justify-content:space-between;align-items:center;margin:29px 0 13px;display:flex}.list-heading h2{letter-spacing:1px;margin:0;font-size:12px;font-weight:600}.list-heading>span{color:#919b8e;font-size:10px}#place-list{flex-direction:column;gap:2px;display:flex}.place-item{text-align:left;background:0 0;border-radius:4px;align-items:center;gap:12px;width:100%;padding:13px 10px;transition:background .2s,color .2s;display:flex}.place-item:hover{background:#eef1e9}.place-item.active{background:var(--green);color:#fffdf5}.place-number{color:#a1ac9b;font-variant-numeric:tabular-nums;align-self:flex-start;margin-top:3px;font-size:11px}.place-copy{flex-direction:column;flex:1;gap:5px;display:flex}.place-copy strong{letter-spacing:.5px;font-size:13px;font-weight:500}.place-copy small{color:#939d8c;font-size:10px}.active .place-copy small,.active .place-number{color:#b5c6b1}.place-arrow{color:#b1bbae}.place-arrow svg{width:16px;height:16px}.sidebar-foot{margin-top:auto;padding:29px 10px 0}.mini-line{background:#c0a575;width:24px;height:2px;display:block}.sidebar-foot p{color:#929b8b;letter-spacing:1px;font-size:11px;line-height:1.9}.edition{letter-spacing:2px;color:#a0a994;font-size:9px}.empty-state{padding:20px 7px;font-size:12px}.empty-state strong{font-weight:500}.empty-state p{color:var(--muted);font-size:11px;line-height:1.8}.empty-state button{text-underline-offset:4px;padding:0;text-decoration:underline}.map-area{background:#e9ede7;flex:1;min-width:0;position:relative;overflow:hidden}#scene{position:absolute;inset:0}#scene canvas{touch-action:none;display:block}.map-heading{pointer-events:none;position:absolute;top:32px;left:34px}.map-heading h2{letter-spacing:2px;margin:10px 0 12px;font-size:19px;font-weight:500}.model-status{letter-spacing:.5px;color:#7b8678;background:#edf0e8b3;border:1px solid #c9d1c4;border-radius:3px;padding:5px 8px;font-size:10px}.compass{pointer-events:none;place-items:center;width:45px;height:65px;display:grid;position:absolute;top:29px;right:33px}#compass-needle{transform-origin:50% 65%;flex-direction:column;align-items:center;width:32px;height:55px;display:flex}#compass-needle b{font-family:Georgia,serif;font-size:12px;line-height:18px}#compass-needle svg{width:26px;height:34px}.map-actions{background:#fffef8e8;border:1px solid #dce1d5;border-radius:7px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:50%;right:28px;transform:translateY(-30%);box-shadow:0 5px 20px #284b3610}.map-actions button{background:0 0;border-radius:4px;place-items:center;width:36px;height:36px;display:grid}.map-actions button:hover{background:#e7eddf}.map-actions svg{width:19px;height:19px}.action-divider{background:var(--line);height:1px;margin:3px 5px}.map-bottom{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;bottom:24px;left:30px;right:30px}.map-hint{letter-spacing:.5px;color:#7e8b78;align-items:center;gap:9px;font-size:10px;display:flex}.mouse-icon{border:1px solid #91a088;border-radius:6px;width:11px;height:16px;position:relative}.mouse-icon:after{content:"";background:#91a088;width:1px;height:4px;position:absolute;top:3px;left:4px}.touch-hint{display:none}.legend{color:#7a8775;gap:16px;font-size:10px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:2px;width:7px;height:7px;display:inline-block}.land-dot{background:#c9b89b}.water-dot{background:#7eaeaf}.tree-dot{background:#85a074}.map-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.map-label{white-space:nowrap;color:#3b5640;letter-spacing:.4px;pointer-events:auto;background:#fffff1e6;border:1px solid #e1e5d6;border-radius:4px;align-items:center;gap:6px;padding:7px 10px;font-size:11px;display:flex;position:absolute;transform:translate(-50%,-120%);box-shadow:0 3px 9px #294e3312}.map-label:hover,.map-label.selected{color:#fffdf5;background:#234d3d;border-color:#234d3d}.label-dot{background:#a8894f;border-radius:50%;width:5px;height:5px}.map-label.selected{z-index:2}.detail-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffef8f5;border:1px solid #dce1d5;border-radius:7px;width:310px;max-width:calc(100% - 100px);padding:21px 23px;animation:.3s arrive;position:absolute;bottom:68px;left:28px;box-shadow:0 14px 40px #25463214}.detail-topline{justify-content:space-between;align-items:center;display:flex}.detail-topline>span{color:#8b977e;letter-spacing:1px;align-items:center;gap:5px;font-size:10px;display:flex}.detail-topline svg{width:14px;height:14px}.detail-topline button{background:0 0;place-items:center;padding:5px;display:grid}.detail-topline button svg{width:18px;height:18px}.detail-panel h2{letter-spacing:1px;margin:13px 0 6px;font-family:Songti SC,STSong,serif;font-size:24px;font-weight:500}.detail-subtitle{color:#a08659;margin:0 0 16px;font-size:11px}.detail-description{margin:0;font-size:12px;line-height:1.9}.detail-note{color:#8c9485;background:#f0f2e9;margin:15px 0;padding:10px 12px;font-size:10px;line-height:1.8}.detail-source{justify-content:space-between;align-items:center;font-size:10px;display:flex}.detail-source svg{width:15px;height:15px}.footer{border-top:1px solid var(--line);letter-spacing:.7px;color:#95a08f;background:#fffefa;flex-shrink:0;justify-content:space-between;align-items:center;height:34px;padding:0 30px;font-size:9px;display:flex}.footer-dot{margin:0 10px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.scene-error{border:1px solid var(--line);background:#fffef8;width:min(360px,80%);margin:160px auto 0;padding:25px}.scene-error h2{font-size:18px}.scene-error p{color:var(--muted);font-size:13px;line-height:1.8}dialog{color:#264735;background:#fffef8;border:1px solid #dfe3d6;border-radius:10px;width:calc(100% - 36px);max-width:480px;padding:40px;box-shadow:0 30px 120px #18362833}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1d382d65}dialog form{position:absolute;top:14px;right:14px}.dialog-close{background:0 0;place-items:center;padding:5px;display:grid}dialog h2{margin:15px 0 20px;font-family:Songti SC,STSong,serif;font-size:30px;font-weight:500;line-height:1.5}dialog p{color:#75816c;font-size:13px;line-height:1.9}dialog>a{align-items:center;gap:10px;padding:10px 0;font-size:12px;display:flex}dialog>a svg{width:16px;height:16px}dialog .dialog-footnote{border-top:1px solid var(--line);margin:20px 0 0;padding-top:17px;font-size:10px}@keyframes arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=1450px){.sidebar{width:330px;padding:42px 32px 24px}.intro h1{font-size:44px}.place-item{padding:16px 10px}.intro p{margin-bottom:30px}.map-heading{top:40px;left:40px}}@media (height<=800px) and (width>=761px){.sidebar{padding-top:24px}.intro h1{margin:10px 0;font-size:31px}.intro p{margin-bottom:17px}.list-heading{margin-top:20px}.place-item{padding:10px}.sidebar-foot{padding-top:16px}.sidebar-foot p{display:none}.edition{margin-top:10px;display:block}}@media (width<=1000px) and (width>=761px){.sidebar{width:260px;padding-left:20px;padding-right:20px}.header{padding:0 22px}.header-location{display:none}.header .quiet-button{margin-left:auto}.map-heading{left:23px}.map-bottom{left:22px;right:22px}.legend{display:none}}@media (width<=760px){#app{height:auto;min-height:100dvh}.header{gap:8px;height:70px;padding:0 16px}.brand{gap:9px}.brand-symbol{width:35px;height:35px}.brand-symbol svg{width:23px;height:23px}.brand strong{letter-spacing:1px;font-size:14px}.brand-divider{margin:0 7px}.brand small{letter-spacing:1.6px;margin-top:4px;font-size:7px}.header-location{display:none}.header .quiet-button{margin-left:auto;padding-left:10px}.header .quiet-button span{display:none}.workspace{flex-direction:column}.map-area{flex:none;order:0;height:60dvh;min-height:400px}.sidebar{border-right:0;border-top:1px solid var(--line);order:1;width:100%;padding:22px 20px;overflow:visible}.intro{display:none}.search-box{padding:13px}.list-heading{margin:22px 0 10px}.place-item{padding:13px 10px}.sidebar-foot{display:none}.map-heading{top:22px;left:20px}.map-heading h2{letter-spacing:1px;margin:8px 0 10px;font-size:16px}.map-heading .eyebrow{letter-spacing:1.6px;font-size:8px}.model-status{font-size:9px}.compass{top:20px;right:14px;transform:scale(.85)}.map-actions{padding:4px;top:auto;bottom:49px;right:13px;transform:none}.map-actions button{width:32px;height:32px}.map-bottom{bottom:17px;left:20px;right:20px}.legend,.desktop-hint{display:none}.touch-hint{display:inline}.map-hint{font-size:9px}.map-label{gap:4px;padding:6px;font-size:9px}.detail-panel{width:290px;max-width:calc(100% - 72px);max-height:calc(100% - 152px);padding:15px 17px;bottom:47px;left:12px;overflow-y:auto}.detail-panel h2{margin-top:8px;font-size:21px}.detail-subtitle{margin-bottom:10px}.detail-description{font-size:11px;line-height:1.8}.detail-note{margin:10px 0;padding:8px;font-size:9px}.footer{flex-direction:column;align-items:flex-start;gap:6px;height:auto;padding:14px 20px;font-size:8px;line-height:1.8}.search-box kbd{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.detail-provenance{color:#818b78;margin:0 0 12px;font-size:9px;line-height:1.7}.map-labels{z-index:1}.map-heading,.compass,.map-bottom{z-index:2}.detail-panel{z-index:3}.map-actions{z-index:4}.place-filters{flex-shrink:0;gap:5px;margin-bottom:10px;display:flex}.place-filters button{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:4px;padding:7px 8px;font-size:10px}.place-filters button[aria-pressed=true]{color:var(--green);background:#e7eddf;border-color:#bbc9b4}
