.blog-view{min-height:200px}.blog-loading,.blog-empty,.blog-error{color:var(--text-secondary);font-size:var(--fs-md);padding:var(--sp-8) 0;text-align:center}.blog-error{color:var(--danger-text)}.blog-list{display:grid;gap:var(--sp-5)}.blog-card{display:grid;grid-template-columns:1fr auto;gap:var(--sp-2) var(--sp-6);align-items:center;padding:var(--sp-7);text-decoration:none;color:inherit;border-radius:var(--radius-lg)}.blog-card:hover{transform:translateY(-3px)}.blog-card h2{font-size:var(--fs-2xl);line-height:var(--lh-snug);margin-bottom:var(--sp-2);color:var(--text-primary)}.blog-card:hover h2{color:var(--brand)}.blog-card .blog-card-q{font-size:var(--fs-md);color:var(--text-secondary);margin:0 0 var(--sp-4);max-width:70ch}.blog-card-meta{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint)}.blog-card-date{display:inline-flex;align-items:center;gap:var(--sp-1)}.blog-card-go{grid-row:1 / span 2;grid-column:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--brand);transition:background var(--dur-med) ease,border-color var(--dur-med) ease,transform var(--dur-med) ease}.blog-card:hover .blog-card-go{background:var(--brand);color:var(--on-brand);border-color:var(--brand);transform:translate(2px)}@media(max-width:560px){.blog-card{grid-template-columns:1fr;padding:var(--sp-5)}.blog-card-go{grid-row:auto;grid-column:auto;width:38px;height:38px}}.blog-post{max-width:780px}.blog-back{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-secondary);text-decoration:none;margin-bottom:var(--sp-7);transition:color var(--dur-fast) ease}.blog-back:hover{color:var(--brand)}.blog-post-title{font-size:clamp(var(--fs-4xl),3.6vw,var(--fs-6xl));line-height:var(--lh-snug);margin-bottom:var(--sp-4)}.blog-post-q{font-size:var(--fs-xl);color:var(--text-secondary);line-height:var(--lh-relaxed);margin:0 0 var(--sp-4)}.blog-post-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);padding-bottom:var(--sp-6);border-bottom:1px solid var(--border);margin-bottom:var(--sp-8)}.blog-body{font-family:var(--font-body);font-size:var(--fs-xl);line-height:var(--lh-loose);color:var(--text-body);word-wrap:break-word}.blog-body>*:first-child{margin-top:0}.blog-body p,.blog-body div{margin:0 0 var(--sp-5)}.blog-body h2,.blog-body h3,.blog-body h4{color:var(--text-primary);line-height:var(--lh-snug);margin:var(--sp-9) 0 var(--sp-4)}.blog-body h2{font-size:var(--fs-5xl)}.blog-body h3{font-size:var(--fs-4xl)}.blog-body h4{font-size:var(--fs-xl)}.blog-body strong,.blog-body b{color:var(--text-primary);font-weight:var(--fw-bold)}.blog-body em,.blog-body i{font-style:italic}.blog-body u{text-decoration:underline;text-underline-offset:3px}.blog-body s,.blog-body strike{text-decoration:line-through}.blog-body mark,.blog-body .hl{background:var(--brand-soft);color:var(--on-brand);padding:0 var(--sp-1);border-radius:var(--radius-sm)}.blog-body ul,.blog-body ol{margin:0 0 var(--sp-5);padding-left:var(--sp-6)}.blog-body ul{list-style:disc}.blog-body ol{list-style:decimal}.blog-body li{margin-bottom:var(--sp-2)}.blog-body li::marker{color:var(--brand)}.blog-body blockquote{margin:var(--sp-6) 0;padding:var(--sp-1) 0 var(--sp-1) var(--sp-5);border-left:3px solid var(--brand);color:var(--text-body);font-style:italic}.blog-body a{color:var(--brand-soft);text-decoration:underline;text-underline-offset:3px}.blog-body code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px var(--sp-2);color:var(--brand-soft)}.blog-body pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);overflow-x:auto;margin:0 0 var(--sp-5);font-family:var(--font-mono);font-size:var(--fs-base);line-height:var(--lh-loose)}.blog-body pre code{background:none;border:0;padding:0;color:inherit}.blog-body hr{border:0;border-top:1px solid var(--border);margin:var(--sp-7) 0}.blog-body img{border-radius:var(--radius-md);margin:var(--sp-2) 0 var(--sp-5)}.blog-body .blog-cta{margin:var(--sp-8) 0;padding:var(--sp-6) var(--sp-7);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4)}.blog-body .blog-cta-title{margin:0;font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);flex:1 1 240px}.blog-body .blog-cta-brand{color:var(--brand-soft)}.blog-body .blog-cta-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--sp-3) var(--sp-6);border-radius:var(--radius-pill);font-weight:var(--fw-bold);font-size:var(--fs-base);text-decoration:none;white-space:nowrap;flex:0 0 auto;transition:transform var(--dur-fast) ease,filter var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.blog-body .blog-cta-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}.blog-body .blog-cta-accent{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--brand)}.blog-body .blog-cta-accent .blog-cta-btn{background:var(--brand);color:var(--on-brand)}.blog-body .blog-cta-solid{background:linear-gradient(135deg,var(--brand),var(--brand-hover));justify-content:center;text-align:center}.blog-body .blog-cta-solid .blog-cta-title{color:var(--on-brand);flex:0 0 auto}.blog-body .blog-cta-solid .blog-cta-btn{background:var(--on-brand);color:var(--brand)}.blog-body .blog-cta-minimal{background:var(--bg-2);border:1px dashed var(--border-strong);padding:var(--sp-4) var(--sp-5)}.blog-body .blog-cta-minimal p{margin:0;color:var(--text-secondary)}.blog-body .blog-cta-minimal a{color:var(--brand-soft)}@media(max-width:560px){.blog-body .blog-cta{padding:var(--sp-5);flex-direction:column;align-items:flex-start}.blog-body .blog-cta-btn{width:100%}}
