.wrap{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto;padding:clamp(40px,7vh,72px) 24px 14vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:clamp(40px,8vh,72px)}.back{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink-soft);transition:color .16s,gap .16s}.back:hover{color:var(--accent-ink);gap:13px}.back svg{width:15px;height:15px}.topbar .who{font-size:12.5px;color:var(--ink-mute)}.topbar .who b{color:var(--ink);font-weight:600}.blog-hero{margin-bottom:clamp(36px,6vh,56px)}.blog-hero h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.02em}.blog-hero p{margin:16px 0 0;color:var(--ink-soft);max-width:52ch;line-height:1.65}.archive{display:flex;flex-direction:column}.entry{display:block;padding:26px 18px;margin:0 -18px;border-radius:12px;border-bottom:1px solid var(--line-soft);transition:background .18s}.entry:hover{background:var(--surface)}.entry-meta{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--ink-mute);margin-bottom:10px}.entry-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-mute)}.entry-meta .draft{color:var(--accent-ink);border:1px solid var(--accent-line);border-radius:999px;padding:2px 8px;font-size:11px}.entry h2{font-size:clamp(19px,2.4vw,23px);transition:color .16s}.entry:hover h2{color:var(--accent-ink)}.entry p{margin:10px 0 0;color:var(--ink-soft);font-family:var(--prose);font-size:16.5px;line-height:1.6;max-width:60ch}.entry .more{margin-top:14px;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--accent-ink)}.entry.is-draft{opacity:.62;pointer-events:none}.article-head{margin-bottom:clamp(30px,5vh,48px)}.article-head .kicker{margin-bottom:18px}.article-head h1{font-size:clamp(28px,4.4vw,42px);letter-spacing:-.02em;line-height:1.12;max-width:22ch}.article-meta{margin-top:20px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--ink-mute)}.article-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-mute)}.rule{height:1px;background:var(--line);border:0;margin:0 0 clamp(30px,5vh,44px)}.prose{font-family:var(--prose);color:var(--ink)}.prose>*{max-width:100%}.prose p{font-size:18px;line-height:1.74;margin:0 0 1.35em;color:#36302a}.prose h2{font-family:var(--mono);font-size:21px;letter-spacing:-.01em;margin:2.2em 0 .7em;display:flex;align-items:baseline;gap:.5em}.prose h2:before{content:"##";color:var(--accent);font-weight:600;font-size:.8em}.prose h3{font-family:var(--mono);font-size:17px;margin:1.8em 0 .5em}.prose a{color:var(--accent-ink);border-bottom:1px solid var(--accent-line)}.prose a:hover{border-color:var(--accent-ink)}.prose strong{font-weight:600;color:var(--ink)}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 1.35em;padding-left:1.4em}.prose li{font-size:18px;line-height:1.7;margin-bottom:.5em}.prose li::marker{color:var(--accent)}.prose blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:2px solid var(--accent-line);color:var(--ink-soft);font-style:italic}.prose blockquote p{font-size:18px}.prose code{font-family:var(--mono);font-size:.86em;background:var(--bg-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.prose pre{font-family:var(--mono);background:#2a251f;color:#e9dcc6;border-radius:12px;padding:20px 22px;overflow-x:auto;font-size:13.5px;line-height:1.65;margin:1.6em 0;border:1px solid #3a3329}.prose pre code{background:none;border:0;padding:0;font-size:inherit;color:inherit}.prose pre .c{color:#8b7e6a}.prose pre .k{color:#d98a6a}.prose pre .s{color:#9fae74}.prose pre .fn{color:#e0c07a}.callout{margin:1.8em 0;padding:18px 20px;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:12px;font-family:var(--mono);font-size:14px;line-height:1.6;color:var(--ink-soft)}.callout b{color:var(--accent-ink)}.article-foot{margin-top:clamp(48px,8vh,80px);padding-top:28px;border-top:1px solid var(--line)}.article-foot .sig{font-size:14px;color:var(--ink-soft)}.article-foot .sig b{color:var(--ink)}.next-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-top:26px}.next-link{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--ink-soft);border:1px solid var(--line);border-radius:10px;padding:11px 16px;background:var(--surface);transition:border-color .18s,color .18s,transform .18s}.next-link:hover{border-color:var(--accent-line);color:var(--accent-ink);transform:translateY(-2px)}
