:root{--moss:#3D4A2F;--reed:#C8A26A;--plank:#A87B4F;--water:#6E8C8A;--mist:#EEF0E6;--berry:#9C3D35;--ink:#20251B;--soft:#5E6656;--disp:'Alegreya',Georgia,serif;--body:'Alegreya Sans',system-ui,sans-serif;--mono:'Source Code Pro',ui-monospace,monospace}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--mist);color:var(--ink);font:400 1.1rem/1.65 var(--body)}
a{color:var(--berry);text-underline-offset:3px}a:hover{color:var(--moss)}
:focus-visible{outline:3px solid var(--reed);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--moss);color:var(--mist);padding:.6rem 1rem;z-index:9}.skip:focus{left:1rem}
.wrap{width:min(1100px,100% - 2.5rem);margin-inline:auto}
h1,h2,h3{font-family:var(--disp);font-weight:700;line-height:1.12;margin:0 0 .6em}
h1{font-size:clamp(2.4rem,5vw,3.8rem)}h1 em{display:block;font-weight:500;color:var(--plank)}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem)}h3{font-size:1.2rem}
.marker{font:600 .76rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--moss);margin:0 0 1rem;display:inline-block;padding:.3rem .7rem .3rem 1.6rem;background:var(--reed);clip-path:polygon(0 50%,12px 0,100% 0,100% 100%,12px 100%)}
.prose{max-width:62ch}.prose p{margin:0 0 1rem}
.rail{background:var(--moss);border-bottom:6px solid var(--plank);background-image:repeating-linear-gradient(90deg,transparent 0 46px,rgba(0,0,0,.12) 46px 48px)}
.rail__in{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--mist);text-decoration:none;font:700 1.65rem/1 var(--disp)}.brand svg{width:30px;height:24px}
.rail nav{display:flex;gap:1.4rem}.rail nav a{color:#DCE2CF;text-decoration:none;font-weight:700}.rail nav a:hover{color:var(--reed)}
.hero{padding:4.5rem 0 3.5rem}
.hero__grid{display:grid;grid-template-columns:1.45fr 1fr;gap:3rem;align-items:center}
.lede{font-size:1.16rem;max-width:58ch}
.post-card{background:var(--plank);color:#FFF8EC;padding:1.6rem;border-radius:4px;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 2px,transparent 2px 9px);box-shadow:0 0 0 4px var(--moss),8px 8px 0 4px var(--reed)}
.post-card h2{font-size:1.5rem;color:#fff}
.post-card ol{list-style:none;margin:0 0 1rem;padding:0}.post-card li{padding:.45rem 0;border-bottom:1px dashed rgba(255,248,236,.4)}
.post-card b{font-family:var(--mono);color:var(--moss);background:var(--reed);padding:0 .35rem;margin-right:.5rem;border-radius:2px}
.post-card p{margin:0;font-style:italic}
.walk{padding:4.5rem 0;background:#E0E6D4}
.walk__grid{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;align-items:center}
.marshview{margin:0;background:#fff;border:2px solid var(--moss);border-radius:4px;padding:1rem}
.marshview svg{width:100%;height:auto;display:block}.marshview figcaption{font-size:.92rem;color:var(--soft);margin-top:.6rem}
.marshview .sky{fill:#F2F3EA}.marshview .marsh{fill:var(--water)}
.marshview .reeds path{stroke:#7C8A4A;stroke-width:3;stroke-linecap:round}
.marshview .plank rect{fill:var(--plank);stroke:#6F4E2E;stroke-width:1.5}
.marshview .plank .post{stroke:#6F4E2E;stroke-width:4}
.marshview .plank text{font:500 11px var(--body);text-anchor:middle;fill:var(--ink)}
.marshview .plank .n{font:600 10px var(--mono);fill:#FFF8EC}
.marshview .next rect{fill:none;stroke:var(--plank);stroke-dasharray:5 4}.marshview .next .post{stroke-dasharray:4 4;opacity:.5}.marshview .next .n{fill:var(--plank)}.marshview .next text{fill:var(--soft)}
@media (prefers-reduced-motion:no-preference){.marshview .laid{opacity:0;animation:lay .6s ease-out forwards;animation-delay:calc(var(--i) * .45s)}.marshview .next rect{animation:wait 2s ease-in-out 2.4s infinite}.marshview .reeds{transform-origin:50% 100%;animation:sway 4s ease-in-out infinite}}
@keyframes lay{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
@keyframes wait{50%{opacity:.35}}
@keyframes sway{0%,100%{transform:skewX(0)}50%{transform:skewX(-3deg)}}
.survey{padding:4.5rem 0}
.tbl-wrap{overflow-x:auto;margin-top:1.5rem;border:2px solid var(--moss);background:#fff}
.tbl{border-collapse:collapse;width:100%;min-width:680px}
.tbl caption{text-align:left;padding:.8rem 1rem;font:400 .82rem var(--mono);color:var(--soft);border-bottom:2px solid var(--moss)}
.tbl th,.tbl td{padding:.8rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid #E0E6D4}
.tbl thead th{font:600 .76rem var(--mono);text-transform:uppercase;background:var(--moss);color:var(--mist)}
.tbl tbody th{font-family:var(--disp)}
.tbl td:nth-child(3){color:var(--berry)}
.soft-ground{padding:4.5rem 0;background:var(--moss);color:var(--mist)}
.risk-list{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.risk-list li{background:rgba(200,162,106,.12);padding:1.2rem;border-radius:4px;border-left:5px solid var(--reed)}
.risk-list span{font:600 .74rem var(--mono);color:var(--reed)}.risk-list h3{margin-top:.4rem}.risk-list p{margin:0;font-size:.98rem;color:#DCE2CF}
.hut{padding:4.5rem 0}
.hut__grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem}
.reading{list-style:none;margin:0;padding:0}.reading li{border-top:2px solid var(--moss)}
.reading a{display:block;padding:.9rem 0;text-decoration:none;color:var(--ink)}.reading span{display:block;font:600 .74rem var(--mono);text-transform:uppercase;color:var(--plank)}
.reading strong{font:700 1.3rem var(--disp)}.reading a:hover strong{text-decoration:underline}
.page{padding:3.5rem 0 4.5rem}.page article{max-width:68ch}.page h2{font-size:1.55rem;margin-top:2rem}.page .meta{font:400 .85rem var(--mono);color:var(--soft)}
.page ul{padding-left:1.2rem}.page li{margin-bottom:.5rem}
.backlink{display:inline-block;margin-top:2rem;font-weight:700}
.foot{background:var(--moss);color:#DCE2CF;padding:2.5rem 0;font-size:.92rem;border-top:6px solid var(--plank)}
.foot nav{display:flex;flex-wrap:wrap;gap:1.2rem;margin-bottom:1rem}.foot a{color:#fff}
@media (max-width:860px){.hero__grid,.walk__grid,.hut__grid{grid-template-columns:1fr}.hide-sm{display:none}}
