.blog-intro{padding:clamp(3rem,8vw,6rem) 0 2.5rem;border-bottom:1px solid var(--color-rule)}
.blog-intro h1{font-size:clamp(2.25rem,5vw,4.1rem);letter-spacing:-.045em;max-width:20ch;margin:1rem 0 1.25rem}
.blog-intro p{max-width:62ch;font-size:1.13rem;color:var(--color-ink-soft)}
.blog-meta{font-size:.875rem;color:var(--color-mute);margin:1.5rem 0;display:flex;gap:.65rem;flex-wrap:wrap}
.blog-meta a,.blog-prose a{text-decoration:underline;text-underline-offset:3px;color:var(--color-accent-deep)}
.blog-layout{padding:3rem 0 5rem;display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:4rem;align-items:start}
.blog-prose{max-width:46rem;font-size:1.0625rem;line-height:1.85;overflow-wrap:anywhere}
.blog-prose p{margin:0 0 1.5rem}.blog-prose h2{font-size:1.75rem;letter-spacing:-.03em;margin:2.8rem 0 1rem;scroll-margin-top:6rem}.blog-prose h3{font-size:1.3rem;margin:2rem 0 1rem}
.blog-prose>p:first-child{font-size:1.22rem;line-height:1.75;color:var(--color-accent-deep);padding-bottom:1.5rem;border-bottom:1px solid var(--color-rule)}
.blog-prose ul,.blog-prose ol{padding-left:1.5rem;margin:1.5rem 0}.blog-prose ul{list-style:disc}.blog-prose ol{list-style:decimal}.blog-prose li{margin:.65rem 0}
.blog-aside{padding:1.7rem;background:var(--color-paper-warm);border:1px solid var(--color-rule);border-radius:1rem;position:sticky;top:7rem}
.blog-aside h2{font-size:1.45rem;margin:0 0 1rem}.blog-aside p{font-size:.95rem;margin:0 0 1.25rem}.blog-aside .button{display:flex;margin:.75rem 0}.blog-aside small{display:block;line-height:1.6}
.blog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;padding:3rem 0 5rem}
.blog-card{border:1px solid var(--color-rule);border-radius:1rem;padding:2rem;display:flex;flex-direction:column;gap:1.2rem;background:#fff}
.blog-card h2{font-size:1.7rem;letter-spacing:-.035em;line-height:1.3}.blog-card h2 a:hover{color:var(--color-accent-deep)}.blog-card p{color:var(--color-ink-soft)}.blog-card .blog-meta{margin:0}.blog-read{font-weight:700;color:var(--color-accent-deep);margin-top:auto}
.blog-author{border-top:1px solid var(--color-rule);padding-top:1.5rem;margin-top:3rem;font-size:.95rem}.blog-empty{padding:3rem 0}.blog-intro .breadcrumb{margin:0 0 1.5rem}
@media(max-width:900px){.blog-layout{grid-template-columns:1fr;gap:2.5rem}.blog-aside{position:static}.blog-grid{grid-template-columns:1fr}.blog-intro h1{max-width:23ch}}
@media(max-width:480px){.blog-card{padding:1.5rem}.blog-prose{font-size:1rem}.blog-meta{gap:.35rem}.blog-intro{padding-top:2.5rem}}
