.blog-shell{padding-block:var(--space-xl) calc(var(--space-xl) * 1.5)}.blog-shell a:hover{text-decoration:none}.blog-prose a,.blog-prose a:hover{text-decoration:underline}.blog-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:var(--space-lg);font-size:.85rem;color:var(--text-tertiary)}.blog-breadcrumbs a{color:var(--text-secondary);text-decoration:none}.blog-breadcrumbs a:hover{color:var(--accent-strong)}.blog-breadcrumbs .sep{color:var(--text-tertiary);opacity:.6}.blog-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:calc(var(--space-xl) * 1.2);gap:calc(var(--space-xl) * 1.2);align-items:start}@media (max-width:900px){.blog-grid{grid-template-columns:minmax(0,1fr)}.blog-aside{order:2}}.blog-head{margin-bottom:var(--space-xl)}.blog-head h1{font-family:var(--font-display-stack);font-size:clamp(2rem,4vw,2.75rem);line-height:1.1;color:var(--text-primary);margin:0 0 .5rem}.blog-head p{color:var(--text-secondary);font-size:1.05rem;max-width:60ch;margin:0}.blog-kicker{display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-strong);margin-bottom:.5rem}.blog-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-lg);gap:var(--space-lg)}@media (max-width:620px){.blog-card-grid{grid-template-columns:minmax(0,1fr)}}.blog-card{display:flex;flex-direction:column;background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.blog-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-card)}.blog-card-cover{display:block;aspect-ratio:16/9;background:var(--surface-tint);object-fit:cover;width:100%}.blog-card-cover-link{display:block;text-decoration:none}.blog-card-cover-fallback{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;background:linear-gradient(135deg,var(--accent-tint),var(--surface-tint));color:var(--accent-strong);font-family:var(--font-display-stack);font-size:1.7rem;font-weight:800;letter-spacing:.02em;text-decoration:none;opacity:.65}.blog-card-body{display:flex;flex-direction:column;gap:.55rem;padding:var(--space-md)}.blog-card-title{font-family:var(--font-display-stack);font-size:1.2rem;line-height:1.25;margin:0}.blog-card-title a{color:var(--text-primary);text-decoration:none}.blog-card-title a:hover{color:var(--accent-strong)}.blog-card-excerpt{color:var(--text-secondary);font-size:.92rem;line-height:1.5;margin:0}.blog-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:auto;padding-top:.5rem;font-size:.82rem;color:var(--text-tertiary)}.blog-card-meta a{color:var(--text-secondary);text-decoration:none}.blog-badge,.blog-card-meta a:hover{color:var(--accent-strong)}.blog-badge{display:inline-block;align-self:flex-start;padding:.3rem .8rem;border-radius:var(--radius-pill);background:var(--surface-tint);font-size:.72rem;font-weight:600;line-height:1.4;text-decoration:none;transition:background var(--dur-fast) var(--ease-standard)}.blog-badge:hover{background:var(--surface-elev-2);text-decoration:none}.blog-aside{display:flex;flex-direction:column;gap:var(--space-lg);position:-webkit-sticky;position:sticky;top:calc(var(--topbar-h, 64px) + var(--space-lg))}.blog-widget{background:var(--surface-elev);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-md)}.blog-widget-title{font-family:var(--font-display-stack);font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-sm);padding-bottom:.5rem;border-bottom:1px solid var(--border)}.blog-widget p{color:var(--text-secondary);font-size:.9rem;line-height:1.55;margin:0}.blog-recent{display:flex;flex-direction:column;gap:var(--space-sm)}.blog-recent-item{display:grid;grid-template-columns:56px minmax(0,1fr);grid-gap:.7rem;gap:.7rem;align-items:center}.blog-recent-item,.blog-recent-item:hover{text-decoration:none}.blog-recent-thumb{object-fit:cover;background:var(--surface-tint)}.blog-recent-thumb,.blog-recent-thumb-fallback{width:56px;height:56px;border-radius:var(--radius-md)}.blog-recent-thumb-fallback{display:flex;align-items:center;justify-content:center;background:linear-gradient(120deg,var(--accent-tint),var(--surface-tint));color:var(--accent-strong);font-family:var(--font-display-stack);font-weight:700}.blog-recent-title{font-size:.88rem;font-weight:600;line-height:1.3;color:var(--text-primary)}.blog-recent-item:hover .blog-recent-title{color:var(--accent-strong)}.blog-recent-date{font-size:.78rem;color:var(--text-tertiary)}.blog-catlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.blog-catlist li+li{border-top:1px solid var(--border)}.blog-catlist a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem 0;color:var(--text-secondary);text-decoration:none;font-size:.92rem}.blog-catlist a:hover{color:var(--accent-strong)}.blog-catlist .count{color:var(--text-tertiary);font-size:.8rem}.blog-taglist{display:flex;flex-wrap:wrap;gap:.45rem}.blog-tag{display:inline-block;padding:.28rem .6rem;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:.8rem;text-decoration:none}.blog-tag:hover{border-color:var(--accent);color:var(--accent-strong);text-decoration:none}.blog-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:var(--space-xl)}.blog-page-link{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;padding:0 .7rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-elev);color:var(--text-secondary);text-decoration:none;font-size:.9rem;font-weight:600}.blog-page-link:hover{border-color:var(--accent);color:var(--accent-strong)}.blog-page-link[aria-current=page]{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.blog-page-link[aria-disabled=true]{opacity:.4;pointer-events:none}.blog-page-ellipsis{padding:0 .3rem;color:var(--text-tertiary)}.blog-post-header{margin-bottom:var(--space-lg)}.blog-post-title{font-family:var(--font-display-stack);font-size:clamp(2rem,5vw,3rem);line-height:1.1;color:var(--text-primary);margin:.6rem 0 .8rem}.blog-post-lede{font-size:1.15rem;line-height:1.5;color:var(--text-secondary);margin:0 0 var(--space-md)}.blog-key-takeaway{display:flex;flex-direction:column;gap:.4rem;margin:0 0 var(--space-lg);padding:var(--space-md);background:var(--surface-tint);border:1px solid var(--border);border-left:3px solid var(--accent-strong);border-radius:var(--radius-lg)}.blog-key-takeaway-label{align-self:flex-start;font-family:var(--font-display-stack);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-strong)}.blog-key-takeaway p{margin:0;font-size:1.05rem;line-height:1.55;color:var(--text-primary)}.blog-byline{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;color:var(--text-tertiary);font-size:.9rem}.blog-byline a{color:var(--text-secondary);text-decoration:none;font-weight:600}.blog-byline a:hover{color:var(--accent-strong)}.blog-avatar{object-fit:cover;background:var(--surface-tint)}.blog-avatar,.blog-avatar-fallback{width:40px;height:40px;border-radius:var(--radius-pill)}.blog-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:var(--accent-tint);color:var(--accent-strong);font-weight:700}.blog-byline .dot{opacity:.5}.blog-cover{width:100%;border-radius:var(--radius-lg);margin:var(--space-md) 0 var(--space-lg);aspect-ratio:16/9;object-fit:cover;background:var(--surface-tint)}.blog-draft-flag{display:inline-block;margin-bottom:var(--space-md);padding:.35rem .7rem;border-radius:var(--radius-md);background:var(--danger-bg,var(--surface-tint));color:var(--danger-text,var(--text-secondary));font-size:.82rem;font-weight:600}.blog-prose{color:var(--text-body,var(--text-secondary));font-size:1.05rem;line-height:1.7}.blog-prose>*+*{margin-top:1.1em}.blog-prose h2{font-family:var(--font-display-stack);font-size:1.6rem;line-height:1.2;color:var(--text-primary);margin-top:1.8em}.blog-prose h3{font-size:1.25rem;color:var(--text-primary);margin-top:1.6em}.blog-prose a{color:var(--accent-strong);text-decoration:underline;text-underline-offset:2px}.blog-prose ol,.blog-prose ul{padding-left:1.4em}.blog-prose li+li{margin-top:.4em}.blog-prose blockquote{border-left:3px solid var(--accent);padding-left:1em;color:var(--text-secondary);font-style:italic}.blog-prose code{background:var(--surface-tint);padding:.15em .4em;border-radius:var(--radius-sm);font-size:.9em}.blog-prose pre{background:var(--surface-inverse,var(--surface-tint));padding:var(--space-md);border-radius:var(--radius-md);overflow-x:auto}.blog-prose pre code{background:none;padding:0}.blog-prose img{max-width:100%;border-radius:var(--radius-md)}.blog-prose table{width:100%;border-collapse:collapse;font-size:.95em;display:block;overflow-x:auto}.blog-prose td,.blog-prose th{border:1px solid var(--border-strong);padding:.55em .75em;text-align:left;vertical-align:top}.blog-prose thead th{font-weight:600}.blog-prose tbody tr:nth-child(2n),.blog-prose thead th{background:var(--surface-tint)}.blog-post-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin:var(--space-lg) 0}.blog-author-card{display:flex;gap:var(--space-md);align-items:flex-start;padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-elev);margin-top:var(--space-lg)}.blog-author-card .blog-avatar,.blog-author-card .blog-avatar-fallback{width:56px;height:56px;font-size:1.2rem}.blog-author-card h3{margin:0 0 .2rem;font-size:1.1rem;color:var(--text-primary)}.blog-author-card .role{color:var(--text-tertiary);font-size:.82rem}.blog-author-card p{color:var(--text-secondary);font-size:.92rem;line-height:1.55;margin:.4rem 0 0}.blog-related{margin-top:calc(var(--space-xl) * 1.2)}.blog-related h2{font-family:var(--font-display-stack);font-size:1.4rem;color:var(--text-primary);margin:0 0 var(--space-md)}.blog-author-head{display:flex;gap:var(--space-md);align-items:center;margin-bottom:var(--space-xl)}.blog-author-head .blog-avatar,.blog-author-head .blog-avatar-fallback{width:72px;height:72px;font-size:1.6rem}.blog-empty{text-align:center;padding:calc(var(--space-xl) * 1.5) var(--space-md);color:var(--text-secondary)}.blog-empty h2{font-family:var(--font-display-stack);color:var(--text-primary);margin:0 0 .5rem}