:root{--forest:#14301F;--forest2:#1E4530;--lake:#2E6C8A;--paper:#F5F0E4;--card:#FBF8F0;--copper:#9A5224;--amber:#D9923F;--ink:#17251C;--mute:#4D5B52;--line:#D8D0BC;--r:10px}
*{box-sizing:border-box}html{scroll-padding-top:70px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Figtree,system-ui,sans-serif;padding-bottom:env(safe-area-inset-bottom)}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.15;margin:0 0 .5em}h1{font-size:clamp(2.2rem,6vw,4rem);font-weight:800}h2{font-size:1.7rem}h3{font-size:1.15rem}
a{color:var(--lake)}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
.top{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;background:var(--forest);color:var(--paper);padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top))}
.brand{display:flex;gap:8px;align-items:center;color:var(--paper);text-decoration:none;font:800 1.25rem Fraunces,serif}
.brand svg{fill:none;stroke:var(--amber);stroke-width:2.2;stroke-linecap:round}
nav{display:flex;gap:4px}nav a{color:var(--paper);text-decoration:none;padding:8px 12px;border-radius:8px}nav a:hover,nav a[aria-current]{background:var(--forest2)}
main{min-height:70vh;outline:0}.page{max-width:960px;margin:0 auto;padding:24px 16px 56px;animation:in .25s ease-out}
@keyframes in{from{opacity:0}to{opacity:1}}
.hero{background:var(--forest);color:var(--paper);padding:56px 16px 64px}.hero>div{max-width:960px;margin:0 auto}
.hero p{max-width:34em;font-size:1.15rem;color:#DDE5D8}
.search{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 8px}.search input{flex:1 1 240px}
.wisp{stroke-dasharray:40;animation:rise 4s ease-in-out infinite}.w2{animation-delay:.6s}.w3{animation-delay:1.2s}
@keyframes rise{0%,100%{opacity:.3;transform:translateY(2px)}50%{opacity:1;transform:translateY(-2px)}}
input,select,textarea{font:inherit;padding:10px 12px;border:1.5px solid #8a937f;border-radius:8px;background:#fff;color:var(--ink);width:100%}
label{display:block;font-weight:700;margin:14px 0 4px}label.inl{font-weight:400;display:flex;gap:8px;align-items:flex-start;margin:6px 0}label.inl input{width:auto;margin-top:5px}
.btn{display:inline-block;font:700 1rem Figtree,sans-serif;background:var(--copper);color:#fff;border:0;border-radius:8px;padding:11px 18px;cursor:pointer;text-decoration:none}
.btn:hover{background:#7f4219}.btn.alt{background:transparent;color:inherit;border:1.5px solid currentColor}.btn.sm{padding:6px 12px;font-size:.9rem}.btn.danger{background:#8c1d18}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;text-decoration:none;color:inherit;display:block}
a.card:hover{border-color:var(--copper)}.card h3{margin-bottom:.2em}.meta{color:var(--mute);font-size:.92rem}
.tag{display:inline-block;background:#E4ECE2;color:var(--forest);border-radius:99px;padding:2px 10px;font-size:.85rem;margin:2px 4px 2px 0}
.tag.warn{background:#F6E3C8;color:#6b3a14}
.mapwrap{display:flex;flex-direction:column;height:calc(100dvh - 58px - 56px)}
.tools{background:var(--card);border-bottom:1px solid var(--line);padding:8px 12px}.tools .row{display:flex;gap:8px;flex-wrap:wrap}.tools .row>*{flex:1 1 140px}
.tools details{margin-top:6px}.tools summary{cursor:pointer;font-weight:700;padding:4px 0}
.stage{position:relative;flex:1;min-height:0}#map,#pick{height:100%;width:100%;z-index:1}#pick{height:300px;border-radius:8px}
.listv{position:absolute;inset:0;overflow:auto;background:var(--paper);padding:12px;z-index:2}
.sheet{position:absolute;left:8px;right:8px;bottom:8px;z-index:3;max-width:420px;box-shadow:0 6px 24px #0004}
.leaflet-control-layers{font:700 1rem Figtree}.leaflet-control-layers-toggle{width:44px!important;height:44px!important}
.pin{width:18px;height:18px;border-radius:50%;background:var(--copper);border:3px solid #fff;box-shadow:0 1px 5px #0006}.pin.a{background:var(--lake)}
.marker-cluster div{background:var(--forest)!important;color:#fff;font-weight:700}.marker-cluster{background:#14301f66!important}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin:12px 0}.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.ph{aspect-ratio:4/3;border-radius:8px;background:linear-gradient(160deg,var(--forest2),var(--lake));display:grid;place-items:center;color:var(--amber);font:800 1.1rem Fraunces}
.note{background:#F6E3C8;border-left:4px solid var(--copper);padding:10px 14px;border-radius:6px;margin:12px 0}
fieldset{border:1px solid var(--line);border-radius:var(--r);margin:16px 0;padding:8px 14px 14px}legend{font:700 1.1rem Fraunces}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.err{color:#8c1d18;font-weight:700}
#toast{position:fixed;left:50%;bottom:76px;transform:translate(-50%,20px);background:var(--forest);color:#fff;padding:10px 16px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:99;max-width:90vw}
#toast.on{opacity:1;transform:translate(-50%,0)}
.foot{display:flex;gap:16px;flex-wrap:wrap;padding:20px 16px 90px;background:var(--forest);color:#DDE5D8}.foot a{color:var(--amber)}.foot span{flex:1 1 100%}
@media(max-width:700px){.top nav{position:fixed;left:0;right:0;bottom:0;background:var(--forest);justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom));z-index:60;box-shadow:0 -2px 10px #0004}
.mapwrap{height:calc(100dvh - 58px - 62px)}.row2{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
