:root{
  --ink:#16130F; --panel:#1D1912; --kinari:#EFE7D6; --soft:#CFC8B8; --mute:#9C9484; --dim:#6E6757;
  --beni:#C8472E; --sage:#9DAE9C; --line:rgba(239,231,214,.10); --line-2:rgba(239,231,214,.16);
  --gut:clamp(1.25rem,5vw,3.2rem); --maxw:1180px; --read:700px; --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--kinari);font-family:'Geist',system-ui,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.05;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);position:relative;z-index:2}
.mono{font-family:'Geist Mono',monospace}
.serif{font-family:'Zen Old Mincho',serif}

/* nav */
nav{position:sticky;top:0;z-index:60;background:rgba(22,19,15,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
nav .row{display:flex;align-items:center;justify-content:space-between;padding:.85rem var(--gut);max-width:var(--maxw);margin:0 auto}
.brand{display:flex;align-items:center;gap:.6rem}
.brand svg{width:26px;height:26px}
.brand b{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:1.02rem;color:var(--kinari)}
nav .links{display:flex;align-items:center;gap:clamp(1rem,2.4vw,1.7rem);font-size:13.5px;color:var(--mute)}
nav .links a{transition:color .2s}
nav .links a:hover,nav .links a.on{color:var(--kinari)}
nav .links .pill{border:1px solid var(--line-2);color:var(--kinari);padding:7px 15px;border-radius:8px;font-size:12.5px;transition:background .2s,border-color .2s}
nav .links .pill:hover{background:var(--panel);border-color:var(--mute)}
nav .links .nl{display:none}
@media(min-width:680px){nav .links .nl{display:inline}}

/* blog index hero */
.bhero{padding:clamp(3rem,7vw,5.5rem) 0 clamp(1.4rem,3vw,2.4rem)}
.eb{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.bhero h1{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:clamp(2.2rem,1.4rem+3vw,3.7rem);line-height:1.06;letter-spacing:-.022em;margin-top:.85rem;max-width:16ch}
.bhero h1 .mu{color:#7E7768}
.bhero p{margin-top:1.1rem;max-width:50ch;color:var(--mute);font-size:1.06rem;line-height:1.6}

/* post grid */
.bgrid{display:grid;grid-template-columns:1fr;gap:16px;padding-bottom:clamp(3rem,6vw,6rem)}
@media(min-width:720px){.bgrid{grid-template-columns:repeat(3,1fr)}}
.pcard{background:rgba(27,23,16,.7);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),border-color .3s}
.pcard:hover{transform:translateY(-4px);border-color:var(--line-2)}
.pcard .art svg{display:block;width:100%;height:auto}
.pcard .body{padding:16px 17px 18px;display:flex;flex-direction:column;flex:1}
.pcard .meta{font-family:'Geist Mono',monospace;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);display:flex;justify-content:space-between;margin-bottom:9px}
.pcard h3{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:1.13rem;color:var(--kinari);line-height:1.2;letter-spacing:-.01em}
.pcard p{font-size:12.5px;color:var(--mute);line-height:1.55;margin-top:8px;flex:1}
.pcard .go{font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--kinari);margin-top:14px}
.pcard .go b{color:var(--beni);font-weight:400}

/* article */
.article{padding:clamp(2.4rem,5vw,3.8rem) 0 clamp(3rem,6vw,6rem)}
.back{font-family:'Geist Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);display:inline-block;margin-bottom:1.8rem;transition:color .2s}
.back:hover{color:var(--kinari)}
.ameta{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);display:flex;gap:1.1rem}
.article h1{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:clamp(2rem,1.3rem+3vw,3.15rem);line-height:1.08;letter-spacing:-.022em;margin:.9rem 0 1.1rem;max-width:20ch}
.dek{font-size:1.2rem;color:var(--soft);max-width:44ch;line-height:1.5}
.abanner{margin:2.1rem 0 2.4rem;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.abanner svg{display:block;width:100%;height:auto}
.prose{max-width:var(--read);font-size:1.08rem;line-height:1.78;color:var(--soft)}
.prose>p:first-of-type::first-letter{font-family:'Zen Old Mincho',serif;font-size:3.2rem;line-height:.8;float:left;margin:.35rem .6rem 0 0;color:var(--kinari)}
.prose h2{font-family:'Zen Old Mincho',serif;font-weight:700;color:var(--kinari);font-size:1.55rem;margin:2.3rem 0 .8rem;letter-spacing:-.01em}
.prose p{margin:0 0 1.15rem}
.prose strong{color:var(--kinari);font-weight:600}
.prose em{color:var(--kinari);font-style:italic}
.prose blockquote{border-left:2px solid var(--beni);padding-left:1.2rem;margin:1.7rem 0;color:var(--kinari);font-family:'Zen Old Mincho',serif;font-size:1.3rem;line-height:1.42}
.prose ul{margin:0 0 1.2rem 1.15rem}
.prose li{margin:.35rem 0}
.asign{max-width:var(--read);margin-top:2.8rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.95rem;color:var(--mute);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}
.asign b{color:var(--kinari);font-weight:600}
.asign a{color:var(--beni);border-bottom:1px solid rgba(200,71,46,.4);padding-bottom:1px}

/* more posts */
.more{border-top:1px solid var(--line);padding:clamp(2.4rem,5vw,3.5rem) 0}
.more .lbl{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);margin-bottom:1.3rem}
.morerow{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:680px){.morerow{grid-template-columns:1fr 1fr}}
.mlink{display:flex;flex-direction:column;gap:.4rem;padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:12px;transition:border-color .25s,transform .25s var(--ease)}
.mlink:hover{border-color:var(--line-2);transform:translateY(-3px)}
.mlink .c{font-family:'Geist Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.mlink .t{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:1.08rem;color:var(--kinari);line-height:1.22}

/* footer */
footer{border-top:1px solid var(--line);padding:clamp(3rem,6vw,4.6rem) var(--gut) 2.2rem;position:relative;z-index:2}
.fwrap{max-width:var(--maxw);margin:0 auto}
.fcols{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:680px){.fcols{grid-template-columns:1.6fr 1fr 1fr 1fr}}
.fbrand{display:flex;align-items:center;gap:.55rem}
.fbrand svg{width:24px;height:24px}
.fbrand b{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:1rem}
.fblurb{margin-top:.8rem;color:var(--mute);font-size:13.5px;max-width:30ch;line-height:1.55}
.fcol .ttl{font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:.9rem}
.fcol a,.fcol .li{display:block;color:var(--soft);font-size:13.5px;margin-bottom:.55rem;transition:color .2s}
.fcol a:hover{color:var(--kinari)}
.fcol .li{color:var(--dim)}
.fmark{margin:clamp(2.4rem,5vw,3.6rem) 0 1.4rem;border-top:1px solid var(--line);padding-top:1.8rem;display:flex;align-items:center;gap:clamp(.8rem,2vw,1.3rem)}
.fmark svg{width:30px;height:30px;flex:none}
.fmark .big{font-family:'Zen Old Mincho',serif;font-weight:700;font-size:clamp(1.6rem,1rem+3vw,2.6rem);color:#403A30}
.fbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem;font-family:'Geist Mono',monospace;font-size:11px;color:var(--dim)}
