:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:rgba(255,255,255,0.03);--border:rgba(255,255,255,0.06);--text-primary:#f0f0f5;--text-secondary:#8888a0;--text-muted:#717188;--accent-1:#6366f1;--accent-2:#8b5cf6;--accent-cyan:#22d3ee;--accent-green:#34d399;--accent-amber:#fbbf24;--accent-rose:#fb7185;--radius:16px;--radius-sm:10px}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.7}
code{font-family:'JetBrains Mono',monospace;background:rgba(99,102,241,0.1);padding:2px 7px;border-radius:4px;font-size:0.85em;color:var(--accent-cyan)}

/* ─── Nav ─── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(10,10,15,0.85);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
nav .nav-inner{max-width:1200px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:64px}
.nav-logo{font-weight:800;font-size:1.2rem;letter-spacing:-0.5px;background:linear-gradient(135deg,var(--accent-1),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:var(--text-secondary);text-decoration:none;font-size:0.875rem;font-weight:500;transition:color 0.2s}
.nav-links a:hover,.nav-links a.active{color:var(--text-primary)}
.nav-cta{background:linear-gradient(135deg,var(--accent-1),var(--accent-2))!important;color:#fff!important;padding:8px 20px;border-radius:8px;font-weight:600!important}

/* ─── Article Header (dev.to style) ─── */
.article-header{padding:100px 0 0;max-width:760px;margin:0 auto;padding-left:24px;padding-right:24px}
.breadcrumb{font-size:0.8rem;color:var(--text-muted);margin-bottom:20px;display:flex;gap:8px;align-items:center}
.breadcrumb a{color:var(--accent-1);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.article-tag{display:inline-block;background:rgba(99,102,241,0.12);color:var(--accent-1);padding:4px 14px;border-radius:100px;font-weight:600;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:20px}
.article-header h1{font-size:clamp(1.8rem,4.5vw,2.6rem);font-weight:800;letter-spacing:-1px;line-height:1.2;margin-bottom:24px}

/* Author card */
.author-card{display:flex;align-items:center;gap:14px;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:0}
.author-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent-1),var(--accent-cyan));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;color:#fff;flex-shrink:0}
.author-info{display:flex;flex-direction:column;gap:2px}
.author-name{font-weight:600;font-size:0.9rem;color:var(--text-primary)}
.author-name a{color:var(--text-primary);text-decoration:none}
.author-name a:hover{color:var(--accent-cyan)}
.author-meta{font-size:0.8rem;color:var(--text-muted);display:flex;gap:12px;align-items:center}
.author-meta span{display:flex;align-items:center;gap:4px}

/* ─── Article Layout (2 col: TOC sidebar + content) ─── */
.article-layout{max-width:1100px;margin:0 auto;padding:40px 24px 100px;display:grid;grid-template-columns:220px 1fr;gap:48px}

/* Sticky TOC sidebar */
.toc-sidebar{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}
.toc-sidebar h4{font-size:0.7rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:16px;font-weight:600}
.toc-sidebar ul{list-style:none;margin:0;padding:0;border-left:2px solid var(--border)}
.toc-sidebar li{margin-bottom:0}
.toc-sidebar a{display:block;padding:6px 0 6px 16px;color:var(--text-muted);text-decoration:none;font-size:0.82rem;font-weight:500;transition:all 0.2s;border-left:2px solid transparent;margin-left:-2px}
.toc-sidebar a:hover{color:var(--text-primary);border-left-color:var(--accent-1)}
.toc-sidebar a.active{color:var(--accent-cyan);border-left-color:var(--accent-cyan)}

/* ─── Article Body ─── */
.article-body{min-width:0}
.article-body h2{font-size:1.5rem;font-weight:700;letter-spacing:-0.5px;margin:48px 0 16px;color:var(--text-primary);scroll-margin-top:80px}
.article-body h2:first-child{margin-top:0}
.article-body h3{font-size:1.15rem;font-weight:600;margin:32px 0 12px;color:var(--text-primary)}
.article-body p{color:var(--text-secondary);margin-bottom:20px;font-size:0.95rem;line-height:1.85}
.article-body ul,.article-body ol{color:var(--text-secondary);margin:0 0 20px 20px;font-size:0.95rem}
.article-body li{margin-bottom:10px;line-height:1.7}
.article-body strong{color:var(--text-primary)}
.article-body a{color:var(--accent-cyan);text-decoration:none}
.article-body a:hover{text-decoration:underline}

/* Blockquote */
.article-body blockquote{border-left:3px solid var(--accent-1);padding:16px 24px;margin:28px 0;background:rgba(99,102,241,0.04);border-radius:0 10px 10px 0}
.article-body blockquote p{color:var(--text-primary);margin:0;font-style:italic;font-size:1rem}

/* Code blocks */
.code-block{background:#0d1117;border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:20px 24px;margin:24px 0;overflow-x:auto;position:relative}
.code-block code{background:none;padding:0;color:var(--accent-cyan);font-size:0.85rem;line-height:1.7;white-space:pre;display:block}
.code-lang{position:absolute;top:8px;right:12px;font-size:0.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-weight:600;font-family:'JetBrains Mono',monospace}

/* Tables */
.comparison-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:0.875rem;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.comparison-table th,.comparison-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border)}
.comparison-table th{background:rgba(99,102,241,0.06);color:var(--text-primary);font-weight:600;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.5px}
.comparison-table td{color:var(--text-secondary)}
.comparison-table tr:last-child td{border-bottom:none}
.comparison-table tr:hover td{background:rgba(255,255,255,0.02)}

/* CTA box */
.cta-box{background:linear-gradient(135deg,rgba(99,102,241,0.06),rgba(34,211,238,0.04));border:1px solid rgba(99,102,241,0.12);border-radius:var(--radius);padding:40px;text-align:center;margin:56px 0 0}
.cta-box h3{font-size:1.25rem;font-weight:700;margin-bottom:10px}
.cta-box p{color:var(--text-secondary);margin-bottom:24px;font-size:0.95rem}
.cta-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:10px;font-weight:600;text-decoration:none;background:linear-gradient(135deg,var(--accent-1),var(--accent-2));color:#fff;font-size:0.9rem;transition:opacity 0.2s}
.cta-btn:hover{opacity:0.9;text-decoration:none}

/* Tags row */
.tags-row{display:flex;gap:8px;flex-wrap:wrap;margin:32px 0;padding-top:24px;border-top:1px solid var(--border)}
.tags-row a{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);padding:4px 14px;border-radius:100px;font-size:0.78rem;font-weight:500;text-decoration:none;transition:all 0.2s}
.tags-row a:hover{border-color:var(--accent-1);color:var(--accent-1)}

/* ─── Footer ─── */
footer{border-top:1px solid var(--border);padding:32px 0;text-align:center}
footer p{color:var(--text-muted);font-size:0.85rem}
footer a{color:var(--accent-1);text-decoration:none}
footer a:hover{text-decoration:underline}

/* ─── Blog Index Styles ─── */
.hero-blog{padding:120px 0 60px;text-align:center}
.hero-blog h1{font-size:clamp(2rem,5vw,3rem);font-weight:900;letter-spacing:-1.5px;margin-bottom:12px}
.hero-blog h1 span{background:linear-gradient(135deg,var(--accent-1),var(--accent-cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero-blog p{color:var(--text-secondary);font-size:1.05rem;max-width:550px;margin:0 auto}
.posts-grid{max-width:900px;margin:0 auto;padding:0 24px 100px;display:flex;flex-direction:column;gap:24px}
.post-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;transition:border-color 0.2s,transform 0.2s;text-decoration:none;color:inherit;display:block}
.post-card:hover{border-color:rgba(99,102,241,0.25);transform:translateY(-2px)}
.post-meta{display:flex;gap:12px;align-items:center;margin-bottom:14px;font-size:0.78rem;color:var(--text-muted)}
.post-tag{background:rgba(99,102,241,0.1);color:var(--accent-1);padding:3px 10px;border-radius:100px;font-weight:600;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.5px}
.post-tag.migration{background:rgba(34,211,238,0.1);color:var(--accent-cyan)}
.post-tag.security{background:rgba(251,113,133,0.1);color:var(--accent-rose)}
.post-tag.gherkin{background:rgba(52,211,153,0.1);color:var(--accent-green)}
.post-card h2{font-size:1.35rem;font-weight:700;margin-bottom:10px;letter-spacing:-0.3px;line-height:1.3}
.post-card p{color:var(--text-secondary);font-size:0.9rem;line-height:1.7;margin-bottom:12px}
.read-more{display:inline-flex;align-items:center;gap:5px;color:var(--accent-cyan);font-weight:600;font-size:0.85rem}

/* ─── Responsive ─── */
@media(max-width:900px){
    .article-layout{grid-template-columns:1fr;gap:0}
    .toc-sidebar{display:none}
}
@media(max-width:768px){
    .nav-links{display:none}
    .article-header{padding-top:80px}
    .article-layout{padding:24px 20px 80px}
    .post-card{padding:24px}
    .author-meta{flex-wrap:wrap}
}
