:root{
  --bg:#f6f4f0;--surface:#e3eeeb;--ink:#3b3535;--muted:#6f6666;--accent:#4f8f8a;--accent-ink:#2f6a64;--line:#d6cfc8;
  --serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost','Helvetica Neue',Arial,sans-serif;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#1f1c1c;--surface:#27312f;--ink:#ece6e0;--muted:#b0a69f;--accent:#8fc9c3;--accent-ink:#8fc9c3;--line:#3d3737}}
:root[data-theme="dark"]{--bg:#1f1c1c;--surface:#27312f;--ink:#ece6e0;--muted:#b0a69f;--accent:#8fc9c3;--accent-ink:#8fc9c3;--line:#3d3737}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.7 var(--sans)}
a{color:var(--accent-ink)}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}
img{max-width:100%}

/* header + footer (shared) */
header{position:sticky;top:0;z-index:5;background:var(--bg);border-bottom:1px solid var(--line)}
nav{max-width:1100px;margin:0 auto;padding:.9rem 1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.brand{font:600 1.35rem var(--serif);color:var(--ink);text-decoration:none}
.brand span{font-weight:500;font-style:italic;color:var(--muted)}
nav ul{display:flex;gap:1.25rem;list-style:none;margin:0;padding:0}
nav ul a{color:var(--muted);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}
nav ul a:hover{color:var(--ink)}
nav ul a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}
footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);padding:2rem 1.25rem;font-size:.95rem}

h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;margin:0 0 1.5rem}
h2{font-size:clamp(2rem,5vw,3rem)}
.wrap{max-width:1100px;margin:0 auto;padding:0 1.25rem}
.prose{max-width:62ch}
.prose p{margin:0 0 1.2rem}
.sign{font:italic 500 1.4rem var(--serif);margin-top:2rem}
.btn{display:inline-block;background:var(--accent);color:#102321;padding:.8rem 1.6rem;border-radius:2px;text-decoration:none;font-weight:500;margin-top:.5rem}
.btn:hover{filter:brightness(1.08)}

/* home */
.home section{max-width:960px;margin:0 auto;padding:4.5rem 1.25rem}
.home h1{font-family:var(--serif);font-weight:500;line-height:1.05;font-size:clamp(3.2rem,11vw,7rem);letter-spacing:-.01em;margin:0 0 1.5rem}
.home h1 em{color:var(--accent-ink)}
.hero{padding-top:5rem}
.hero .lead{font:italic 500 clamp(1.4rem,3.5vw,2rem)/1.35 var(--serif);color:var(--muted);max-width:28ch;margin:0}
.band{background:var(--surface)}
.band>div{max-width:960px;margin:0 auto;padding:4.5rem 1.25rem}
.about-grid{display:grid;gap:2rem 3.5rem;grid-template-columns:minmax(0,62ch) minmax(200px,1fr);grid-template-areas:"text pic";align-items:start}
.about-grid .prose{grid-area:text}
.about-grid figure{grid-area:pic;margin:0;position:sticky;top:6rem}
.about-grid figure img{display:block;width:100%;height:auto;border-radius:2px}
@media (max-width:760px){.about-grid{grid-template-columns:1fr;grid-template-areas:"pic" "text"}.about-grid figure{position:static;max-width:320px}}
.beliefs{display:grid;gap:2.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.beliefs h3{font:600 1.5rem var(--serif);margin:0 0 .5rem}
.beliefs p{margin:0;color:var(--muted)}
.latest{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:2rem 0 1.5rem}
.latest a{display:block}
.latest img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--bg)}
@media (max-width:620px){.latest{grid-template-columns:1fr}}
dl{display:grid;grid-template-columns:max-content 1fr;gap:.6rem 2rem;margin:0}
dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}
@media (max-width:520px){dl{grid-template-columns:1fr;gap:.1rem}dd{margin-bottom:.9rem}}

/* blog index */
.blog-head{padding:4rem 0 2.5rem}
.blog-head h1{font-size:clamp(3rem,9vw,5.5rem);letter-spacing:-.01em;margin:0 0 .75rem}
.blog-head p{margin:0;max-width:44ch;font:italic 500 clamp(1.3rem,3vw,1.7rem)/1.35 var(--serif);color:var(--muted)}
.posts{padding-bottom:5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.75rem 1.5rem}
.posts .post:first-child{grid-column:1/-1}
.post{display:block;color:inherit;text-decoration:none}
.post img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:var(--surface)}
.post:first-child img{aspect-ratio:16/9}
.post h3{font-size:1.75rem;line-height:1.15;margin:.85rem 0 .3rem}
.post:hover h3{color:var(--accent-ink)}
.post .meta{margin:0;color:var(--muted);font-size:.98rem}
.post .meta span+span{margin-left:1.1rem}
@media (max-width:720px){
  .posts{grid-template-columns:1fr}
}

/* post page */
.post-head{padding:3.5rem 0 2rem}
.post-head .back{display:inline-block;margin-bottom:1.5rem;color:var(--muted);text-decoration:none}
.post-head .back:hover{color:var(--ink)}
.post-head h1{font-size:clamp(2.4rem,7vw,4.5rem);letter-spacing:-.01em;margin:0 0 .75rem;max-width:18ch}
.post-head .meta{margin:0;color:var(--muted)}
.post-head .meta span+span{margin-left:1.1rem}
.flow{--row:240px;display:flex;flex-wrap:wrap;gap:8px}
.flow a{display:block;flex:var(--r) 1 calc(var(--r) * var(--row));background:var(--surface);cursor:zoom-in}
.flow a img{display:block;width:100%;height:auto}
.flow::after{content:"";flex:999 1 0}
@media (max-width:620px){.flow{--row:150px;gap:6px}}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:4rem 0 5rem}
.pager a{display:block;text-decoration:none;color:var(--ink);border-top:1px solid var(--line);padding-top:1rem}
.pager a small{display:block;color:var(--muted);font-size:.95rem}
.pager a span{font:500 1.5rem/1.2 var(--serif)}
.pager a:hover span{color:var(--accent-ink)}
.pager .older{text-align:right;grid-column:2}
.pager .newer{grid-column:1}
@media (max-width:620px){.pager{grid-template-columns:1fr}.pager .older,.pager .newer{grid-column:1;text-align:left}}

/* lightbox */
dialog.lb{border:0;padding:0;margin:0;max-width:none;max-height:none;width:100%;height:100%;background:transparent;color:#f2ece6}
dialog.lb[open]{display:grid;place-items:center}
dialog.lb::backdrop{background:rgb(12 10 10 / .95)}
.lb img{max-width:100vw;max-height:100vh;max-height:100dvh;width:auto;height:auto;object-fit:contain;display:block}
.lb button{position:absolute;display:grid;place-items:center;width:3rem;height:3rem;border:0;border-radius:50%;background:rgb(0 0 0 / .45);color:#f2ece6;cursor:pointer}
.lb button:hover{background:rgb(0 0 0 / .75)}
.lb button svg{width:1.4rem;height:1.4rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lb .lb-close{top:max(.75rem,env(safe-area-inset-top));right:.75rem}
.lb .lb-prev{left:.75rem;top:50%;transform:translateY(-50%)}
.lb .lb-next{right:.75rem;top:50%;transform:translateY(-50%)}
.lb .lb-count{position:absolute;left:0;right:0;bottom:max(.75rem,env(safe-area-inset-bottom));margin:0;text-align:center;font-size:.95rem;text-shadow:0 1px 3px #000}
body.lb-open{overflow:hidden}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
