@charset "UTF-8";
:root{--paper:#f7f6f0;--white:#fffefa;--ink:#223e37;--muted:#77817a;--jade:#286459;--line:#e4e6dd;--amber:#be8d48;--serif:"Songti SC","STSong","Noto Serif CJK SC",serif;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button{border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #b5894c;outline-offset:3px}a{color:var(--jade)}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:var(--white);border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}.brand-mark{font-family:var(--serif);font-size:32px;width:40px;height:45px;border:1px solid #95afa1;border-radius:4px;display:grid;place-items:center;color:var(--jade)}.brand strong{font-family:var(--serif);font-size:23px;letter-spacing:5px;font-weight:600}.brand small{display:block;font-size:10px;color:var(--muted);letter-spacing:1px;margin-top:4px}.main-nav{display:flex;gap:32px;height:100%;align-items:stretch}.main-nav button{font-size:13px;position:relative;padding:4px 0 0;color:#7c827b}.main-nav button.active{color:var(--jade);font-weight:600}.main-nav button.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:var(--jade)}.top-link{font-size:12px;text-decoration:none;border:1px solid #cdd8ce;padding:10px 14px;border-radius:5px}.top-link span{margin-left:12px}.workspace{display:grid;grid-template-columns:266px minmax(0,1fr) 302px;height:calc(100dvh - 78px);min-height:620px}.sidebar{background:var(--white);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;padding:27px 22px 15px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#8b957e;font-weight:600}.sidebar h1{font-family:var(--serif);font-weight:500;font-size:29px;letter-spacing:2px;line-height:1.55;margin:14px 0 12px}.sidebar-intro p{color:var(--muted);font-size:11px;line-height:1.9;margin:0 0 22px}.side-tabs{display:flex;border-bottom:1px solid var(--line);gap:20px;margin-bottom:16px}.side-tabs button{font-size:12px;padding:8px 0 10px;position:relative;color:var(--muted)}.side-tabs button.active{color:var(--jade);font-weight:600}.side-tabs button.active:after{content:"";position:absolute;height:2px;background:var(--jade);bottom:-1px;left:0;right:0}.search-wrap{display:flex;gap:8px;align-items:center;background:#f0f2eb;padding:8px 9px;border-radius:4px;flex:none}.search-wrap input{width:100%;border:0;background:none;outline:0;font-size:10px;color:var(--ink)}.search-wrap span{font-size:20px;color:#8b9b8a}.place-list{overflow:auto;min-height:0;margin-top:13px;flex:1;scrollbar-width:thin}.place-item{display:flex;width:100%;gap:10px;text-align:left;padding:12px 10px;border-radius:6px;align-items:center;margin:2px 0}.place-item:hover{background:#f1f4ec}.place-item.selected{background:#e6eee4}.place-icon{display:grid;place-items:center;width:29px;height:31px;font-size:17px;border:1px solid #dae4d7;border-radius:5px;flex:none;color:var(--jade)}.place-item strong{font-size:12px;line-height:1.5;font-weight:500;display:block}.place-item small{font-size:9px;display:block;line-height:1.7;color:var(--muted)}.place-item .arrow{margin-left:auto;font-size:17px;color:#a1afa0}.sidebar-foot{display:flex;gap:9px;padding-top:13px;margin-top:8px;border-top:1px solid var(--line);align-items:center}.live-dot{display:inline-block;width:6px;height:6px;background:#518771;border-radius:50%;flex:none}.sidebar-foot b{font-size:9px;font-weight:500;display:block}.sidebar-foot small{font-size:8px;color:var(--muted);display:block;margin-top:5px}.stage{position:relative;min-width:0;overflow:hidden;background:#e9eee5}#canvas-wrap,#scene,#labels{position:absolute;inset:0;width:100%;height:100%}#scene{display:block;outline:0}#labels{pointer-events:none;overflow:hidden}.world-label{position:absolute;white-space:nowrap;font-size:10px;color:#334f47;background:#fffff0e8;border:1px solid #b6c7b49e;border-radius:4px;padding:5px 8px;box-shadow:0 2px 8px #31504412;transform:translate(-50%,-100%)}.world-label.active{background:#255b4f;color:white;border-color:#255b4f}.world-label.water{background:#eaf7f2e8;color:#246b64}.stage-top{position:absolute;inset:20px 18px auto;display:flex;justify-content:space-between;gap:10px;pointer-events:none}.scene-tag{display:flex;align-items:center;gap:7px;background:#fffef2e8;padding:10px 12px;border:1px solid #dae2d5;border-radius:5px;font-size:10px;backdrop-filter:blur(10px)}.scene-tag small{font-size:8px;color:var(--muted);padding-left:4px}.camera-tools{display:flex;gap:5px;pointer-events:auto}.camera-tools button{background:#fffef7ec;border:1px solid #dbe2d5;width:32px;height:32px;border-radius:5px;font-size:20px;box-shadow:0 2px 4px #183f2a09}.camera-tools button.active{background:var(--jade);color:white}.compass{position:absolute;top:84px;right:26px;width:35px;height:52px;text-align:center;font-size:10px;color:var(--jade);pointer-events:none}#compass-needle{transform-origin:50% 50%}.compass span{display:block;font-size:29px;line-height:32px}.mode-dock{position:absolute;top:74px;left:18px;display:flex;gap:3px;background:#fffef5ee;padding:4px;border:1px solid #d9e1d4;border-radius:6px}.mode-dock button{font-size:10px;padding:7px 10px;display:flex;align-items:center;gap:5px;border-radius:4px}.mode-dock button.active{background:var(--jade);color:white}.mode-dock button span{font-size:14px}.layer-switches{position:absolute;left:18px;bottom:194px;background:#fffef5e8;border:1px solid #e0e5d7;border-radius:5px;padding:9px;display:flex;gap:11px;backdrop-filter:blur(8px);font-size:9px}.layer-switches label{display:flex;align-items:center;gap:3px}.layer-switches input{accent-color:var(--jade);width:11px;height:11px;margin:0}.time-card{position:absolute;bottom:53px;left:18px;right:18px;background:#fffef4ed;border:1px solid #d9e1d4;border-radius:7px;padding:13px 16px;backdrop-filter:blur(10px)}.time-head{display:flex;justify-content:space-between;align-items:center}.time-head button{font-size:9px;color:var(--jade)}.time-stops{display:flex;margin:15px 0 10px;position:relative;justify-content:space-between}.time-stops:before{content:"";position:absolute;left:10px;right:10px;top:5px;height:1px;background:#d3dfd0}.time-stops button{position:relative;z-index:1;display:flex;align-items:center;flex-direction:column;gap:7px;font-size:9px;padding:0;color:#8a9285}.time-stops button:before{content:"";height:10px;width:10px;border:2px solid #b3c7af;background:#f6f9f0;border-radius:50%}.time-stops button.active{color:var(--jade);font-weight:bold}.time-stops button.active:before{background:var(--jade);border-color:var(--jade);box-shadow:0 0 0 3px #d5e4cf}.time-card p{font-size:10px;line-height:1.6;margin:0;color:#677766;min-height:16px}.map-credit{position:absolute;bottom:8px;left:18px;right:18px;font-size:8px;line-height:1.55;color:#718474;display:flex;gap:10px;flex-wrap:wrap}.map-credit a{font-size:8px}.gesture-hint{position:absolute;bottom:178px;right:22px;font-size:8px;color:#7d8b78;pointer-events:none}.sun-panel{position:absolute;left:18px;top:125px;width:245px;padding:13px;background:#fffef2ee;border:1px solid #d7e1d1;border-radius:6px;box-shadow:0 4px 30px #3f522016;backdrop-filter:blur(10px)}.sun-panel div{display:flex;justify-content:space-between;gap:6px;margin-bottom:12px}.sun-panel b{font-size:11px}.sun-panel span{font-size:9px;color:#94753c}.sun-panel label{display:flex;gap:15px;font-size:10px;align-items:center;margin-top:8px}.sun-panel input{width:150px;accent-color:#b78d51}.sun-panel select{font-size:10px;padding:3px;background:white;border:1px solid #ddd}.sun-panel small{display:block;margin-top:10px;font-size:8px;line-height:1.7;color:#8f8e7b}.detail-panel{border-left:1px solid var(--line);background:var(--white);padding:23px 23px;overflow:auto;scrollbar-width:thin}.detail-top{display:flex;justify-content:space-between;align-items:center}.detail-top button{font-size:23px;color:#a2ac9a;display:none}.detail-panel h2{font-family:var(--serif);font-size:25px;font-weight:500;letter-spacing:1px;line-height:1.5;margin:22px 0 8px}.detail-kicker{font-size:11px;color:#82927b;line-height:1.8}.detail-sep{height:1px;background:var(--line);margin:20px 0}.detail-panel p{font-size:12px;line-height:1.95;color:#6a756b}.detail-panel h3{font-size:11px;letter-spacing:1px;margin:21px 0 10px;font-weight:600}.pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.pill{font-size:9px;border:1px solid #dce3d5;border-radius:3px;padding:4px 7px;color:#5b8066}.pill.amber{color:#a3783c;background:#faf4e8;border-color:#ecdfc2}.detail-image{width:100%;border-radius:5px;margin-top:13px;aspect-ratio:1.5;object-fit:cover}.image-note{font-size:8px!important;color:#9a9b8a!important;margin:4px 0 12px;line-height:1.5!important}.facts{display:grid;grid-template-columns:68px 1fr;gap:10px 4px;font-size:10px;line-height:1.65;margin:14px 0}.facts dt{color:#9a9c8d}.facts dd{margin:0;color:#6a776c;overflow-wrap:anywhere}.source-links{display:flex;flex-direction:column;gap:9px}.source-links a{font-size:10px;line-height:1.6;text-decoration:none}.source-links a:hover{text-decoration:underline}.detail-actions{display:flex;gap:7px;margin:16px 0}.detail-actions a,.detail-actions button,.small-button{font-size:10px;text-decoration:none;border:1px solid #cbd9c6;border-radius:4px;padding:9px 10px;display:inline-flex;gap:6px;align-items:center;background:#f5f8ef}.note-input{width:100%;height:80px;resize:vertical;border:1px solid #dde4d6;background:#fafbf5;border-radius:4px;padding:10px;font-size:11px;color:var(--ink);line-height:1.8}.note-help{font-size:8px!important;color:#909c87!important;margin:7px 0}.primary-button{background:var(--jade)!important;color:white!important;padding:9px 13px;font-size:10px;border-radius:4px}.detail-quote{font-family:var(--serif);font-size:16px!important;color:#59705d!important;line-height:1.9!important}.detail-note{font-size:9px!important;color:#a2885e!important;background:#faf7ec;padding:9px;border-radius:4px}dialog{border:1px solid #dbe3d3;border-radius:12px;padding:26px 30px;width:min(900px,94vw);max-height:88dvh;background:var(--white);color:var(--ink);box-shadow:0 30px 100px #173c2d42}dialog::backdrop{background:#1b362b70;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:22px}.dialog-head h2{font-family:var(--serif);font-weight:500;font-size:27px;margin:10px 0 0;letter-spacing:1px}.dialog-head button{font-size:28px;color:#8c9a85}.dialog-copy{font-size:12px;line-height:1.9;color:#667465}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.research-card{border:1px solid #e1e7d9;border-radius:7px;padding:15px 17px;background:#fafbf6}.research-card h3{font-size:13px;font-weight:600;line-height:1.7;margin:2px 0 8px}.research-card p{font-size:11px;line-height:1.85;color:#73816d;margin:8px 0}.research-card a{font-size:10px;line-height:1.7;text-decoration:none}.research-card small{font-size:9px;color:#9a9a80}.timeline-entry{display:grid;grid-template-columns:90px 1fr;gap:18px;border-bottom:1px solid var(--line);padding:16px 0}.timeline-entry time{font-family:var(--serif);font-size:21px;color:#9e8655}.timeline-entry h3{font-size:13px;font-weight:600;margin:0 0 7px}.timeline-entry p{font-size:11px;line-height:1.85;color:#72816e;margin:0 0 7px}.timeline-entry a{font-size:9px}.dialog-tools{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.dialog-table{border-collapse:collapse;width:100%;font-size:10px;line-height:1.8;margin:17px 0}.dialog-table th,.dialog-table td{padding:10px;border:1px solid #dde4d6;text-align:left}.dialog-table th{background:#ecf1e5}.dialog-table td{color:#687865}.dialog-table a{word-break:break-all}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#214d42;color:white;border-radius:6px;font-size:12px;padding:12px 20px;z-index:100;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}#loading{position:absolute;inset:0;background:#eef1e8;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;z-index:6}#loading b{font-family:var(--serif);font-size:23px;font-weight:400;letter-spacing:2px}#loading small{font-size:10px;color:#8b987e}.loader{width:30px;height:30px;border:2px solid #dce6d4;border-top-color:#537b5c;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#webgl-fallback{position:absolute;inset:30% 15%;background:#fffef6e8;padding:25px;border:1px solid #dce4d3;border-radius:10px}#webgl-fallback h2{font-family:var(--serif);font-weight:400}#webgl-fallback p{font-size:12px;line-height:1.8}[hidden]{display:none!important}
@media(min-width:1600px){.workspace{grid-template-columns:294px 1fr 330px}.sidebar{padding:30px 28px}.detail-panel{padding:26px 28px}.sidebar h1{font-size:33px}.place-item{padding:15px 10px}.detail-panel p{font-size:13px}}
@media(max-width:1160px){.workspace{grid-template-columns:226px minmax(0,1fr) 264px}.topbar{padding:0 19px}.main-nav{gap:22px}.sidebar{padding:23px 16px 15px}.sidebar h1{font-size:25px}.sidebar-intro p{font-size:10px}.detail-panel{padding:22px 17px}.scene-tag small{display:none}.gesture-hint{display:none}.layer-switches{font-size:8px;gap:7px}.mode-dock button{padding:7px}.detail-panel h2{font-size:22px}}
@media(max-width:920px){.workspace{grid-template-columns:222px 1fr}.detail-panel{position:fixed;right:0;top:78px;bottom:0;width:290px;z-index:20;box-shadow:-8px 10px 25px #35503314;transform:translateX(100%);transition:.2s}.detail-panel.open{transform:translateX(0)}.detail-top button{display:block}.main-nav{gap:20px}.top-link{font-size:10px;padding:8px}.brand strong{font-size:21px}.main-nav button{font-size:12px}}
@media(max-width:640px){.topbar{height:70px;padding:0 13px;gap:10px;flex-wrap:wrap}.brand-mark{width:29px;height:35px;font-size:25px}.brand{gap:7px}.brand strong{font-size:20px;letter-spacing:3px}.brand small{font-size:8px;letter-spacing:.3px}.main-nav{gap:11px;margin-left:auto;align-items:center}.main-nav button{font-size:10px;line-height:1.4;max-width:30px;height:70px;padding:0}.top-link{display:none}.workspace{height:calc(100dvh - 70px);min-height:620px;display:flex;flex-direction:column}.sidebar{order:2;height:178px;flex:none;padding:12px 13px;border-top:1px solid var(--line);border-right:0;position:relative}.sidebar-intro{display:none}.side-tabs{position:absolute;left:14px;top:5px;gap:15px;width:155px;margin:0}.side-tabs button{font-size:11px;padding:7px 0}.search-wrap{margin:0 0 0 176px;padding:4px 7px;height:28px}.search-wrap input{font-size:9px}.place-list{display:flex;gap:6px;overflow:auto;margin-top:13px;padding-bottom:5px;align-items:start}.place-item{flex-direction:column;align-items:start;gap:6px;width:126px;min-width:126px;padding:9px;height:86px;background:#f4f7ee;margin:0;border:1px solid #e8ecdf}.place-item .place-icon{width:21px;height:21px;font-size:13px}.place-item strong{font-size:10px}.place-item small{font-size:8px;white-space:nowrap}.place-item .arrow{display:none}.sidebar-foot{position:absolute;left:14px;bottom:9px;right:14px;padding-top:7px;margin:0;gap:6px}.sidebar-foot small{display:inline;font-size:7px;margin-left:8px}.sidebar-foot b{display:inline;font-size:8px}.stage{order:1;flex:1;min-height:420px}.stage-top{inset:12px 10px auto}.scene-tag{font-size:9px;padding:8px}.camera-tools{gap:3px}.camera-tools button{width:27px;height:27px;font-size:18px}.mode-dock{top:54px;left:10px}.mode-dock button{font-size:9px;padding:6px}.mode-dock button span{font-size:12px}.compass{right:16px;top:67px}.layer-switches{left:10px;bottom:168px;font-size:8px;padding:7px}.time-card{left:10px;right:10px;bottom:43px;padding:10px 12px}.time-stops{margin:12px 0 8px}.time-stops button{font-size:8px}.time-card p{font-size:9px;line-height:1.6}.time-head .eyebrow{font-size:8px}.map-credit{left:10px;right:10px;bottom:4px;font-size:7px;gap:3px}.map-credit a{font-size:7px}.map-credit span{font-size:7px}.sun-panel{top:99px;left:10px;width:224px}.detail-panel{top:auto;bottom:0;right:0;width:100%;max-height:72dvh;transform:translateY(100%);border-radius:15px 15px 0 0;box-shadow:0 -10px 60px #264b342a;padding:20px 23px}.detail-panel.open{transform:translateY(0)}.detail-panel h2{margin-top:15px;font-size:25px}.detail-image{max-height:180px;object-fit:cover}.dialog-grid{grid-template-columns:1fr}dialog{padding:22px 18px}.dialog-head h2{font-size:24px}.timeline-entry{grid-template-columns:67px 1fr;gap:10px}.timeline-entry time{font-size:18px}.dialog-table{font-size:9px}.dialog-table th,.dialog-table td{padding:7px}.scene-tag small{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.loader{animation:none}}

.main-nav a{font-size:13px;display:flex;align-items:center;color:var(--jade);font-weight:600;padding-top:4px}.water-entry{display:block;border:1px solid #cfddc9;background:#eff4e9;border-radius:5px;padding:11px 12px;margin:-8px 0 17px;text-decoration:none}.water-entry b{font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:1px}.water-entry small{display:block;font-size:9px;color:#829477;margin-top:6px}.detail-actions{flex-wrap:wrap}@media(max-width:920px){.main-nav a{font-size:12px}}@media(max-width:640px){.main-nav{gap:8px}.main-nav a{font-size:10px;max-width:30px;padding:0;line-height:1.4;height:70px;text-align:center}}
