/* ── Reading progress bar ───────────────────────────────────────── */
#reading-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:var(--grad);z-index:999;transition:width .1s linear;pointer-events:none}

/* ── Blog index ─────────────────────────────────────────────────── */
.blog-hero{padding:130px 5vw 64px;background:var(--bg);border-bottom:1px solid var(--border)}
.blog-hero-inner{max-width:1240px;margin:0 auto}
.blog-hero-inner h1{font-family:Manrope,sans-serif;font-size:clamp(2rem,3.5vw,2.8rem);font-weight:700;letter-spacing:-.022em;line-height:1.12;margin-bottom:.75rem}
.blog-hero-inner p{color:var(--muted);font-size:1rem;max-width:500px;line-height:1.75}

.blog-posts{padding:72px 5vw 96px;background:var(--bg2)}
.blog-posts-inner{max-width:1240px;margin:0 auto}
.blog-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.blog-filter{background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:.82rem;font-weight:500;padding:.38rem .9rem;border-radius:20px;cursor:pointer;transition:border-color .2s,color .2s,background .2s;font-family:inherit}
.blog-filter:hover{border-color:var(--cyan);color:var(--text)}
.blog-filter.active{background:var(--grad);border-color:transparent;color:#000;font-weight:700}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}

.blog-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.85rem;text-decoration:none;display:flex;flex-direction:column;transition:border-color .3s,transform .3s}
.blog-card:hover{border-color:rgba(0,195,220,.4);transform:translateY(-3px)}
.blog-card-meta{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}
.blog-card-date,.blog-card-read{color:var(--muted);font-size:.8rem}
.blog-card h2{font-family:Manrope,sans-serif;font-size:1.1rem;font-weight:700;line-height:1.3;letter-spacing:-.01em;margin-bottom:.65rem;color:var(--text)}
.blog-card p{color:var(--muted);font-size:.9rem;line-height:1.68;flex:1;margin-bottom:1.25rem}
.blog-card-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.25rem}
.blog-card .read-more{color:var(--cyan);font-size:.88rem;font-weight:600;margin-top:auto}

/* ── Post page ──────────────────────────────────────────────────── */
.post-hero{padding:130px 5vw 64px;background:var(--bg);border-bottom:1px solid var(--border)}
.post-hero-inner{max-width:760px;margin:0 auto}

.back-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);text-decoration:none;font-size:.875rem;transition:color .2s;margin-bottom:2rem}
.back-link:hover{color:var(--cyan)}

.post-meta{display:flex;align-items:center;gap:.6rem;margin-bottom:1.25rem}
.post-author{color:var(--warm);font-size:.875rem;font-weight:600;text-decoration:none;transition:opacity .2s}
.post-author:hover{opacity:.75}
.post-date,.post-read{color:var(--muted);font-size:.875rem}
.post-dot{color:var(--border)}

.post-hero h1{font-family:Manrope,sans-serif;font-size:clamp(1.9rem,3.5vw,2.6rem);font-weight:700;letter-spacing:-.022em;line-height:1.12;margin-bottom:1.1rem}
.post-lead{color:var(--muted);font-size:1.05rem;line-height:1.8;max-width:620px;margin-bottom:1.5rem}
.post-tags{display:flex;gap:.5rem;flex-wrap:wrap}

/* shared tag style */
.post-tag{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);background:rgba(0,195,220,.08);border:1px solid rgba(0,195,220,.18);padding:.25rem .75rem;border-radius:20px}

/* Article body */
.post-body{padding:72px 5vw 96px;background:var(--bg2)}
.post-body-inner{max-width:760px;margin:0 auto}

.post-content{font-size:1.02rem;line-height:1.85;color:var(--text)}
.post-content h2{font-family:Manrope,sans-serif;font-size:1.35rem;font-weight:700;letter-spacing:-.015em;margin:2.75rem 0 .9rem}
.post-content h3{font-family:Manrope,sans-serif;font-size:1.1rem;font-weight:700;margin:2rem 0 .65rem}
.post-content p{margin-bottom:1.3rem}
.post-content p:last-child{margin-bottom:0}
.post-content ul,.post-content ol{margin:.25rem 0 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.55rem}
.post-content li{color:var(--muted)}
.post-content li strong{color:var(--text)}
.post-content strong{color:var(--text);font-weight:600}
.post-content a{color:var(--cyan);text-decoration:none}
.post-content a:hover{text-decoration:underline}
.post-content blockquote{border-left:3px solid var(--cyan);margin:2rem 0;padding:.85rem 1.3rem;background:rgba(0,195,220,.05);border-radius:0 8px 8px 0}
.post-content blockquote p{color:var(--text);font-style:italic;margin:0;font-size:1.05rem}
.post-content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}

/* Post footer CTA */
.post-cta{margin-top:3.5rem;padding:1.75rem 2rem;background:var(--surface);border:1px solid var(--border);border-radius:13px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.post-cta p{margin:0;color:var(--muted);font-size:.95rem}
.post-cta a{color:var(--text);font-weight:700;text-decoration:none;font-size:.92rem;transition:color .2s;white-space:nowrap}
.post-cta a:hover{color:var(--cyan)}
.post-cta-secondary{color:var(--muted) !important;font-weight:500 !important}
.post-back{margin-top:2rem}
.post-share{margin-top:1.5rem}
.post-share-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:.85rem;font-weight:500;padding:.5rem 1rem;border-radius:7px;cursor:pointer;transition:border-color .2s,color .2s;font-family:inherit}
.post-share-btn:hover{border-color:var(--cyan);color:var(--text)}
.post-share-btn.copied{border-color:var(--cyan);color:var(--cyan)}

/* ── Related posts ──────────────────────────────────────────────── */
.related-posts{margin-top:3.5rem}
.related-posts-title{font-family:Manrope,sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1.25rem;color:var(--muted)}
.related-posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}
.related-posts-grid .blog-card h3{font-family:Manrope,sans-serif;font-size:1rem;font-weight:700;line-height:1.3;letter-spacing:-.01em;margin-bottom:.65rem;color:var(--text)}

/* ── Responsive ─────────────────────────────────────────────────── */
@media(max-width:960px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.blog-grid{grid-template-columns:1fr}.post-cta{flex-direction:column;align-items:flex-start}.related-posts-grid{grid-template-columns:1fr}}
