:root{--river:#1d4b5a;--deep:#122f39;--sky:#e9f0f2;--paper:#fbfcfc;--stone:#b8954f;--ink:#1c2a2f;--mute:#5a6b70}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:1.125rem/1.7 'Source Serif 4',Georgia,serif}
a{color:var(--river);text-underline-offset:3px}a:focus-visible{outline:3px solid var(--stone);outline-offset:2px}
h1,h2,.brand{font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.15;letter-spacing:-.01em}
.wrap{max-width:42rem;margin:0 auto;padding:0 16px}
header.top{padding:1.2rem 0}.brand{font-weight:700;text-decoration:none;color:var(--deep);font-size:1.1rem}
.hero{background:var(--river);color:var(--sky);padding:3rem 0 0;overflow:hidden}
.hero h1{font-size:clamp(2.4rem,8vw,4.2rem);margin:0 0 .8rem;font-weight:800;color:#fff}
.hero p{max-width:34rem;margin:0;opacity:.9}
.river{display:block;width:100%;height:auto;margin-top:2rem}
.river text{font:600 20px 'Bricolage Grotesque',sans-serif;fill:var(--sky)}
.posts{list-style:none;padding:0;margin:2.5rem 0}
.posts li{padding:1.4rem 0;border-bottom:1px solid #d5e0e3}
.posts h2{font-size:1.45rem;margin:.2rem 0 .4rem}.posts h2 a{color:var(--deep);text-decoration:none}
.posts h2 a:hover{color:var(--river);text-decoration:underline}
time{color:var(--mute);font-size:.95rem}
article h1{font-size:clamp(2rem,6vw,2.9rem);margin:1rem 0 .4rem;color:var(--deep)}
article h2{font-size:1.4rem;margin:2.2rem 0 .3rem;color:var(--river)}
.lead{color:var(--mute)}nav.crumbs{font-size:.95rem;color:var(--mute);margin-top:1rem}
footer{margin-top:4rem;padding:2rem 0;background:var(--sky);font-size:.95rem;color:var(--mute)}