:root{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:#243c33;background:#f4f1e8;--green:#193b32;--line:#d8d9cb;--accent:#b85a3b}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;padding:24px 5vw;border-bottom:1px solid var(--line)}.brand{font-weight:700;letter-spacing:.12em;text-decoration:none;color:var(--green)}.brand span{font-size:12px;display:block;font-weight:400;letter-spacing:.2em;margin-top:5px;color:#65776b}main{max-width:1280px;margin:auto;padding:0 5vw}h1,h2,h3{font-family:'Songti SC','Noto Serif CJK SC',serif;font-weight:600}h1{font-size:clamp(35px,4.4vw,61px);line-height:1.3;margin:18px 0}h2{font-size:clamp(25px,3vw,36px);margin:8px 0 22px}h3{font-size:23px;line-height:1.45}p{line-height:1.85}.hero{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:center;padding:65px 0 45px}.hero>div>p{max-width:480px}.hero figure{margin:0;transform:rotate(1deg);background:#fffdf7;padding:13px;box-shadow:0 12px 40px #293a2420}.hero img{width:100%;height:330px;object-fit:cover}.hero-placeholder{height:310px;display:flex;align-items:center;justify-content:center;background:#dfe6d5;line-height:2.2;text-align:center;font:27px/2 'Songti SC',serif}figcaption{font-size:12px;padding:12px 4px 3px;color:#667067}.eyebrow{font-size:12px;letter-spacing:.15em;color:#687b64}.badge{background:#e6eadb;padding:6px 10px;border-radius:3px;font-size:12px}.button,button{background:var(--green);color:white;border:1px solid var(--green);border-radius:4px;padding:12px 17px;font:inherit;cursor:pointer;display:inline-block;text-decoration:none;min-height:44px}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #c39346;outline-offset:3px}.quiet{background:transparent;color:var(--green);border-color:#b8c3b3}.text-link{display:inline-block;color:var(--green);margin:18px 0 0 20px}.notice{padding:16px 20px;background:#e6eadb;border-left:3px solid #6d8a67;line-height:1.7}.notice.error{background:#f3e1d6;border-color:#bd6246}nav{position:sticky;top:0;z-index:4;background:#f4f1e8f5;display:flex;gap:25px;align-items:center;border-bottom:1px solid var(--line);padding:20px 0;overflow-x:auto}nav a{white-space:nowrap;color:var(--green);font-size:14px;text-decoration:none}section{scroll-margin-top:80px}main>section:not(.hero){padding-top:55px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:25px}.small{font-size:12px;color:#657568;line-height:1.8}.map-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:25px;align-items:start}.map-wrap{background:#e2e5d5;border:1px solid #cbd1bd;max-height:760px;overflow:auto}.map-wrap svg{display:block;width:100%;touch-action:manipulation}svg rect[role=button]{cursor:pointer}svg rect.active{stroke:#f8ed9a;stroke-width:7}.panel{background:#fffcf5;border:1px solid var(--line);padding:25px;border-radius:5px}.panel+.panel{margin-top:22px}.panel button,.panel>a{margin:7px 7px 7px 0}#selected-note{white-space:pre-wrap}.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.photo-card{background:#fffdf8;color:var(--green);border:1px solid var(--line);padding:9px;text-align:left;min-width:0}.photo-card img{width:100%;height:180px;object-fit:cover;display:block;margin-bottom:10px}.photo-card b{font-size:13px;display:block;line-height:1.6}.photo-card small{display:block;font-size:11px;color:#6b7667;margin:5px 0}.contribute-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:25px}label{display:block;font-size:13px;font-weight:600;line-height:1.8;margin-bottom:15px}input,select,textarea{width:100%;font:inherit;color:var(--green);border:1px solid #bfc7b8;background:#fffefa;padding:12px;border-radius:3px;margin-top:5px}input[type=file]{font-size:12px}textarea{resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}.actions{display:flex;flex-wrap:wrap;gap:10px}.actions button{margin:0}.panel ul{padding-left:20px;line-height:2;font-size:14px}.submission{padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.submission strong{display:block}.submission p{font-size:13px;white-space:pre-wrap;margin:8px 0}.submission img{max-height:120px;max-width:100%;display:block}.submission small{font-size:11px}.submission button{font-size:12px;min-height:36px;padding:6px 10px}.submission video{width:100%;max-height:200px}#linked-photos{display:flex;gap:8px;overflow:auto}#linked-photos img{height:90px;width:90px;object-fit:cover}model-viewer{width:100%;height:470px;background:#e9e4d5}.model-stills{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.model-stills img{width:100%}footer{text-align:center;border-top:1px solid var(--line);margin-top:65px;padding:30px 0;font-size:13px;line-height:2}footer span{font-size:11px;color:#677662}dialog{max-width:min(900px,94vw);max-height:92vh;overflow:auto;border:1px solid var(--line);background:#fffdf5;color:var(--green);padding:20px}dialog::backdrop{background:#0d251cba}dialog img{display:block;max-width:100%;max-height:60vh;margin:12px auto}#login-form{display:flex;align-items:end;gap:15px;flex-wrap:wrap}#login-form label{flex:1;min-width:180px}#login-form button{margin-bottom:15px}[hidden]{display:none!important}@media(max-width:760px){header{padding:16px 5vw}.hero{grid-template-columns:1fr;padding-top:30px;gap:25px}.hero img{height:240px}.hero figure{transform:none}.hero h1{font-size:38px}.text-link{margin-left:0;display:block}nav{gap:18px;padding:15px 0}.map-layout,.contribute-layout{grid-template-columns:1fr}.map-wrap{max-height:520px}.photos{grid-template-columns:repeat(2,1fr);gap:12px}.photo-card img{height:165px}.panel{padding:19px}.section-title{display:block}.two{grid-template-columns:1fr;gap:0}main>section:not(.hero){padding-top:35px}.model-stills{grid-template-columns:1fr}model-viewer{height:330px}}

[hidden]{display:none!important}#annotation-form{scroll-margin-top:24px;max-width:820px}#annotation-form label{display:block;margin:14px 0}#photo-annotations{max-height:35vh;overflow:auto}#photo-annotations .submission{margin:12px 0;padding:12px;background:#f4f1e9}#storage-panel{margin:32px 0}.photo-card{min-height:140px}
