.blog-shell{max-width:760px;margin:0 auto;padding:32px 24px 64px}.blog-shell__heading{margin-bottom:24px}.blog-hero{color:inherit;border:1px solid var(--rule-soft);background:var(--paper-2);border-radius:12px;margin-bottom:32px;padding:24px 28px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}.blog-hero:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.blog-hero__meta{align-items:center;gap:12px;margin-bottom:12px;display:flex}.blog-hero__date{font-family:var(--f-mono);color:var(--ink-soft);letter-spacing:.04em;font-size:11px}.blog-hero__title{font-family:var(--f-sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 8px;font-size:22px;font-weight:600;line-height:1.25}.blog-hero__excerpt{font-family:var(--f-sans);color:var(--ink-soft);margin:0;font-size:14px;line-height:1.55}.blog-filter-sticky{z-index:10;background:var(--paper);border-bottom:1px solid var(--rule-soft);margin-bottom:16px;padding:12px 0;position:sticky;top:64px}.blog-filter-row{flex-wrap:wrap;gap:8px;display:flex}.blog-feed{flex-direction:column;gap:12px;display:flex}.blog-card{color:inherit;border:.5px solid var(--rule-soft);background:var(--paper-2);border-radius:12px;padding:14px 16px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}.blog-card:hover{border-color:var(--ink-soft);transform:translateY(-1px)}.blog-card__meta{align-items:center;gap:10px;margin-bottom:6px;display:flex}.blog-card__date{font-family:var(--f-mono);color:var(--ink-soft);letter-spacing:.04em;font-size:11px}.blog-card__title{font-family:var(--f-sans);color:var(--ink);margin:0 0 4px;font-size:15px;font-weight:500;line-height:1.3}.blog-card__excerpt{font-family:var(--f-sans);color:var(--ink-soft);margin:0;font-size:13px;line-height:1.55}.blog-empty{font-family:var(--f-sans);color:var(--ink-soft);text-align:center;padding:40px 16px;font-size:14px}.blog-post{max-width:680px;margin:0 auto;padding:40px 24px 64px}.blog-post__back{font-family:var(--f-mono);letter-spacing:.04em;color:var(--ink-soft);margin-bottom:24px;font-size:11px;text-decoration:none;display:inline-block}.blog-post__back:hover{color:var(--ink)}.blog-post__meta{align-items:center;gap:12px;margin-bottom:12px;display:flex}.blog-post__date{font-family:var(--f-mono);color:var(--ink-soft);letter-spacing:.04em;font-size:11px}.blog-post__title{font-family:var(--f-sans);letter-spacing:-.01em;color:var(--ink);margin:0 0 32px;font-size:28px;font-weight:600;line-height:1.2}.blog-post__body{font-family:var(--f-sans);color:var(--ink);font-size:16px;line-height:1.65}.blog-post__body--serif{font-family:var(--f-serif);font-size:18px;line-height:1.7}.blog-post__body p{margin:0 0 1.2em}.blog-post__body h2{font-family:var(--f-sans);color:var(--ink);margin:2em 0 .6em;font-size:20px;font-weight:600;line-height:1.3}.blog-post__body h3{font-family:var(--f-sans);color:var(--ink);margin:1.6em 0 .5em;font-size:17px;font-weight:600;line-height:1.3}.blog-post__body a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule-soft);text-decoration-color:var(--rule-soft);text-underline-offset:3px}.blog-post__body a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.blog-post__body ul,.blog-post__body ol{margin:0 0 1.2em 1.4em}.blog-post__body li{margin-bottom:.4em}.blog-post__body code{font-family:var(--f-mono);background:var(--paper-2);border-radius:4px;padding:2px 6px;font-size:.9em}.blog-post__body pre{background:var(--paper-2);border:1px solid var(--rule-soft);border-radius:8px;margin:0 0 1.4em;padding:16px;font-size:13px;line-height:1.5;overflow-x:auto}.blog-post__body pre code{background:0 0;border-radius:0;padding:0}.blog-post__body blockquote{border-left:3px solid var(--rule-soft);color:var(--ink-soft);margin:0 0 1.4em;padding-left:16px;font-style:italic}.blog-post__body img{border-radius:8px;max-width:100%;height:auto;margin:1.4em 0}.blog-post__hero{border-radius:12px;width:100%;margin-bottom:32px}.blog-related{border-top:1px solid var(--rule-soft);margin-top:64px;padding-top:32px}.blog-related__heading{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 16px;font-size:11px}.blog-related__grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (max-width:640px){.blog-shell{padding:24px 16px 48px}.blog-post{padding:32px 16px 48px}.blog-post__title{font-size:24px}.blog-post__body{font-size:15px}.blog-post__body--serif{font-size:17px}.blog-related__grid{grid-template-columns:1fr}.blog-filter-sticky{top:56px}}
