/* Springwald Land: one shared stylesheet for every page. Paper ground, framed photo windows, hairline rules, forest bands. */
:root{
  color-scheme:light;
  --paper:#f4efe4;--paper-2:#ece6d7;
  --line:rgba(35,41,31,.16);--line-2:rgba(35,41,31,.32);
  --ink:#23291f;--ink-2:#555d4e;--ink-3:#858c7c;
  --forest:#26331f;--forest-2:#2f4027;
  --cream:#f4efe4;--cream-2:#c9cfbb;--cream-3:#9aa38c;
  --clay:#8a5420;--wheat:#d9b06e;
  --serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,"Hoefler Text",Georgia,serif;
  --sans:ui-sans-serif,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --gutter:clamp(1.25rem,5vw,4.5rem);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.7 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
a:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
p{margin:1.1rem 0}
.wrap{max-width:82rem;margin:0 auto;padding-inline:var(--gutter)}

.d1,.d2{font-family:var(--serif);font-weight:400;letter-spacing:-.012em;margin:0;text-wrap:balance}
.d1{font-size:clamp(2.4rem,5.4vw,4.6rem);line-height:1.05}
.d2{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.12}
.d1 em,.d2 em{font-style:italic;color:var(--forest-2)}
.on-dark .d2 em{color:var(--wheat)}
.eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);margin:0 0 1.4rem;display:flex;align-items:center;gap:.9rem}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:var(--clay);flex:none}
.on-dark .eyebrow{color:var(--wheat)}
.on-dark .eyebrow::before{background:var(--wheat)}
.sub{font-size:clamp(1.02rem,1.35vw,1.2rem);line-height:1.65;color:var(--ink-2);max-width:36rem}

.tlink{display:inline-flex;align-items:baseline;gap:.55rem;text-decoration:none;font-weight:600;font-size:.98rem;padding-bottom:.25rem;border-bottom:1px solid var(--line-2);transition:border-color .18s,color .18s}
.tlink:hover{border-bottom-color:var(--ink);color:var(--forest)}
.tlink .arr{font-family:var(--serif);font-weight:400;display:inline-block;transition:transform .18s}
.tlink:hover .arr{transform:translateX(3px)}
.on-dark .tlink{border-bottom-color:rgba(244,239,228,.4)}
.on-dark .tlink:hover{color:var(--wheat);border-bottom-color:var(--wheat)}
.links{display:flex;flex-wrap:wrap;gap:1.2rem 2.4rem;margin-top:2.4rem}

/* header: identical on every page */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;background:rgba(244,239,228,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.mast{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding-block:1rem}
.mark{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink);justify-self:start}
.mark b{font-family:var(--serif);font-weight:400;font-size:1.28rem}
.nav{display:flex;gap:2rem;font-size:.92rem;color:var(--ink-2)}
.nav a{text-decoration:none;padding:.2rem 0;border-bottom:1px solid transparent}
.nav a:hover{color:var(--ink);border-bottom-color:var(--line-2)}
.nav a[aria-current]{color:var(--ink);border-bottom-color:var(--clay)}
.mast .cta{justify-self:end}
@media(max-width:980px){.nav{display:none}.mast{grid-template-columns:1fr auto}}
@media(max-width:560px){.mast .cta{display:none}}

/* photo windows */
figure{margin:0}
.window{background:var(--paper-2);border:1px solid var(--line);padding:clamp(8px,1.2vw,16px)}
.window .view{position:relative;overflow:hidden;background:var(--forest)}
.window img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center);display:block}
.window figcaption{margin:.7rem .1rem 0;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem 1rem}
.window figcaption span:last-child{text-transform:none;letter-spacing:0}

/* hero */
.hero{padding-block:clamp(3rem,7vw,6rem) clamp(2.5rem,5vw,4rem)}
.hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:end}
.hero-grid>div{min-width:0}
.hero .d1{max-width:14ch}
.hero .sub{margin-top:1.8rem}
.hero .view{aspect-ratio:5/4}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:2.2rem}.hero .view{aspect-ratio:4/3}.hero .window{order:-1}}

/* bands */
.band{padding-block:clamp(4rem,8vw,7rem)}
.band.tight{padding-top:0}
.band.forest{background:var(--forest);color:var(--cream)}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.split>div{min-width:0}
.split .right{color:var(--ink-2);font-size:1.05rem;max-width:40rem}
.split .right p:first-child{margin-top:0}
.forest .split .right{color:var(--cream-2)}
@media(max-width:900px){.split{grid-template-columns:1fr;gap:1.6rem}}

/* what we buy: photo cards */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);margin-top:clamp(2.5rem,5vw,4rem)}
.card .view{aspect-ratio:4/3}
.card h3{margin:1rem 0 .35rem;font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.25}
.card p{margin:0;color:var(--ink-2);font-size:.97rem}
.card figcaption{font-size:.68rem}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cards{grid-template-columns:1fr}}

/* two-column hairline grid */
.reasons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line)}
.reason{padding:1.8rem 2rem 1.9rem 0;border-bottom:1px solid var(--line)}
.reason:nth-child(even){padding-left:2rem;border-left:1px solid var(--line)}
.reason h3{margin:0 0 .5rem;font-family:var(--serif);font-weight:400;font-size:1.45rem;line-height:1.28}
.reason p{margin:0;color:var(--ink-2);max-width:32rem}
@media(max-width:760px){.reasons{grid-template-columns:1fr}.reason,.reason:nth-child(even){padding:1.6rem 0;border-left:0}}

/* ledger on a forest band */
.kinds{margin-top:clamp(2.5rem,5vw,4rem);border-top:1px solid rgba(244,239,228,.18)}
.kind{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.6rem 2rem;padding:1.5rem 0;border-bottom:1px solid rgba(244,239,228,.18);align-items:baseline}
.kind h3{margin:0;font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.3;color:var(--cream)}
.kind p{margin:0;color:var(--cream-2);max-width:40rem}
@media(max-width:820px){.kind{grid-template-columns:1fr}}
.not{margin-top:2rem;color:var(--cream-3);font-size:.98rem;max-width:44rem}
.not b{color:var(--cream);font-weight:600}

/* numbered steps */
.steps{list-style:none;margin:clamp(2.5rem,5vw,4rem) 0 0;padding:0;counter-reset:s;border-top:1px solid var(--line)}
.steps li{counter-increment:s;display:grid;grid-template-columns:5rem minmax(0,16rem) minmax(0,1fr);gap:1.5rem 2rem;padding:1.9rem 0;border-bottom:1px solid var(--line)}
.steps li::before{content:"0" counter(s);font-family:var(--serif);font-size:1.15rem;color:var(--clay);line-height:1.5}
.steps h3{margin:0;font-family:var(--serif);font-weight:400;font-size:1.35rem;line-height:1.3}
.steps p{margin:0;color:var(--ink-2);max-width:38rem}
@media(max-width:760px){.steps li{grid-template-columns:3.2rem minmax(0,1fr)}.steps p{grid-column:2}}

.horizon{margin-top:clamp(2.5rem,5vw,4.5rem)}
.horizon .view{aspect-ratio:21/7}
@media(max-width:700px){.horizon .view{aspect-ratio:16/9}}

.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,5vw,5rem)}
.pair>div{min-width:0}
.pair h2{margin-bottom:1.2rem}
.pair p{color:var(--ink-2);max-width:34rem}
@media(max-width:860px){.pair{grid-template-columns:1fr}}
.promises{list-style:none;margin:1.4rem 0 0;padding:0;border-top:1px solid var(--line)}
.promises li{padding:.9rem 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.promises li b{color:var(--ink);font-weight:600}
.forest .promises{border-top-color:rgba(244,239,228,.18)}
.forest .promises li{border-bottom-color:rgba(244,239,228,.18);color:var(--cream-2)}
.forest .promises li b{color:var(--cream)}

.quote{font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.25;margin:0;max-width:30ch;text-wrap:balance}
.quote em{color:var(--wheat)}
.quote-sub{color:var(--cream-2);margin-top:1.2rem;max-width:36rem}

.who{margin-top:2rem;color:var(--ink-2);font-size:.98rem}
.who b{color:var(--ink);font-weight:400}
.borrowed{color:var(--ink-3);font-size:.95rem;font-style:italic;max-width:38rem}

footer{border-top:1px solid var(--line);padding-block:2.6rem 3rem}
.disc{font-size:.8rem;line-height:1.7;color:var(--ink-3);max-width:58rem;margin:0 0 .9rem}
.copyright{margin-top:1.6rem;font-size:.8rem;color:var(--ink-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}

/* the land form */
.intake{background:var(--paper-2);border:1px solid var(--line);padding:clamp(1.4rem,3vw,2.6rem);max-width:46rem}
.prog{display:flex;align-items:center;gap:1rem;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1.6rem}
.bar{flex:1;height:2px;background:var(--line)}
.bar i{display:block;height:100%;width:0;background:var(--clay);transition:width .25s}
.q h3{margin:0 0 .4rem;font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.4vw,1.8rem);line-height:1.25;text-wrap:balance}
.q .hint{margin:0 0 1.3rem;color:var(--ink-3);font-size:.92rem}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.6rem}
.opt{display:flex;align-items:center;gap:.7rem;text-align:left;font:inherit;font-size:.98rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);padding:.85rem 1rem;cursor:pointer;min-width:0}
.opt:hover{border-color:var(--ink)}
.opt:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
.opt[aria-pressed="true"]{border-color:var(--forest-2);background:var(--forest-2);color:var(--cream)}
.opt .box{width:1rem;height:1rem;border:1px solid currentColor;flex:none;display:grid;place-items:center;font-size:.7rem}
.opt.single .box{border-radius:50%}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.fields .full{grid-column:1/-1}
@media(max-width:600px){.fields{grid-template-columns:1fr}}
.fld label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--ink-2);margin-bottom:.35rem}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-2);padding:.7rem .8rem;border-radius:0}
.fld textarea{min-height:6rem;resize:vertical}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--clay);outline-offset:1px}
.nav-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem;flex-wrap:wrap}
.btn{font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;padding:.75rem 1.4rem;border:1px solid var(--forest-2);background:var(--forest-2);color:var(--cream)}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.btn:focus-visible{outline:2px solid var(--clay);outline-offset:2px}
.err{color:var(--clay);font-size:.88rem;margin:.8rem 0 0;min-height:1.2em}
.summary{margin:1rem 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.summary li{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.95rem}
.summary li span:first-child{color:var(--ink-3)}
@media(max-width:520px){.summary li{grid-template-columns:1fr;gap:.1rem}}
.fine{font-size:.82rem;color:var(--ink-3);margin-top:1rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* insights */
.prose-wrap .d1.prose-title{max-width:20ch;font-size:clamp(2.2rem,4.6vw,3.8rem)}
.prose-wrap .sub{margin-top:1.4rem}
.meta{font-size:.82rem;color:var(--ink-3);letter-spacing:.04em;margin-top:1.2rem}
.prose{max-width:42rem;margin-top:clamp(2.5rem,5vw,4rem);font-size:1.08rem;color:var(--ink-2)}
.prose h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.2;color:var(--ink);margin:3rem 0 .6rem}
.prose h3{font-family:var(--serif);font-weight:400;font-size:1.3rem;color:var(--ink);margin:1.8rem 0 .3rem}
.prose ul{padding-left:1.2rem;margin:1rem 0}
.prose li{margin:.45rem 0}
.prose li::marker{color:var(--clay)}
.posts{display:grid;gap:2rem}
.post{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;text-decoration:none;color:inherit;padding-bottom:2rem;border-bottom:1px solid var(--line)}
.post .view{aspect-ratio:4/3}
.post h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.2;margin:0 0 .6rem}
.post p{color:var(--ink-2)}
.post:hover h2{color:var(--forest-2)}
@media(max-width:800px){.post{grid-template-columns:1fr}}
