.blog-header{text-align:center;padding:120px 20px 40px}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px;padding:20px 0 60px}.blog-card{background:var(--card);border:1px solid var(--card-border);border-radius:16px;overflow:hidden;transition:transform .3s,box-shadow .3s}.blog-card:hover{transform:translateY(-4px);box-shadow:var(--glow)}.blog-card-img{width:100%;height:200px;object-fit:cover;border-bottom:1px solid var(--card-border)}.blog-card-img-placeholder{width:100%;height:200px;background:linear-gradient(135deg,var(--card),var(--card-border));display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-family:var(--font-mono);font-size:.85rem;border-bottom:1px solid var(--card-border)}.blog-card-body{padding:24px}.blog-card-meta{display:flex;align-items:center;gap:12px;margin-bottom:12px;font-size:.8rem;color:var(--text-muted)}.blog-tag{padding:2px 10px;border:1px solid var(--accent);border-radius:12px;color:var(--accent);font-size:.75rem;font-family:var(--font-mono)}.blog-card-body h2{font-size:1.2rem;font-weight:700;margin-bottom:8px;line-height:1.3}.blog-card-body h2 a{color:var(--text);transition:color .2s}.blog-card-body h2 a:hover{color:var(--accent)}.blog-card-body p{color:var(--text-muted);font-size:.95rem;line-height:1.6}.blog-empty{text-align:center;padding:80px 20px;color:var(--text-muted)}.blog-empty svg{margin-bottom:16px;opacity:.4}.article{max-width:720px;margin:0 auto;padding:120px 20px 60px}.article h1{font-size:clamp(1.8rem, 4vw, 2.5rem);font-weight:800;line-height:1.2;margin-bottom:16px}.article-meta{display:flex;align-items:center;gap:16px;margin-bottom:32px;font-size:.85rem;color:var(--text-muted)}.article h2{font-size:1.5rem;margin:40px 0 16px;color:var(--text)}.article h3{font-size:1.2rem;margin:32px 0 12px;color:var(--text)}.article p{margin-bottom:16px;color:var(--text-muted)}.article ol,.article ul{margin:0 0 16px 24px;color:var(--text-muted)}.article li{margin-bottom:8px}.article pre{background:var(--card);border:1px solid var(--card-border);border-radius:8px;padding:16px;overflow-x:auto;margin-bottom:16px;font-family:var(--font-mono);font-size:.9rem}.article code{font-family:var(--font-mono);background:var(--card);padding:2px 6px;border-radius:4px;font-size:.9em}.article pre code{background:0 0;padding:0}.article blockquote{border-left:3px solid var(--accent);padding:12px 20px;margin:0 0 16px;background:rgba(0,212,255,.05);border-radius:0 8px 8px 0;color:var(--text-muted)}.article img{max-width:100%;border-radius:8px;margin:16px 0}@media (max-width:768px){.blog-grid{grid-template-columns:1fr}}