/* Post layout & typography */
body[data-page='post'] { --accent:#7040d6; --accent-hover:#5426b3; }

.article-hero { padding:var(--space-20) 0 var(--space-12); background:linear-gradient(140deg, rgba(112 64 214 / .18), rgba(112 64 214 / 0)); }
[data-theme='dark'] .article-hero { background:linear-gradient(140deg, rgba(112 64 214 / .30), rgba(112 64 214 / 0)); }
.post-title { margin:0 0 var(--space-4); font-size:clamp(2rem,4.2vw,2.9rem); letter-spacing:-1px; line-height:1.1; }
.post-excerpt { margin:0 0 var(--space-6); font-size:1rem; color:var(--text-light); }
.post-meta-bar { font-size:.65rem; letter-spacing:.5px; text-transform:uppercase; display:flex; gap:10px; align-items:center; color:var(--text-light); font-weight:600; }
.post-meta-bar .post-meta-tag { background:var(--accent); color:#fff; padding:4px 8px; border-radius:20px; font-size:.55rem; letter-spacing:.5px; }
.post-meta-bar .divider { opacity:.4; }

.article-layout { padding-top:var(--space-16); }
.article-grid { display:grid; gap:var(--space-16); grid-template-columns:260px 1fr; align-items:start; }
.toc { position:sticky; top:88px; max-height:calc(100vh - 120px); overflow:auto; padding-right:4px; }
.toc-inner { background:var(--surface); border:1px solid var(--border); padding:16px 18px; border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); }
.toc-title { margin:0 0 10px; font-size:.75rem; letter-spacing:.5px; text-transform:uppercase; color:var(--text-light); }
.toc-list { list-style:none; margin:0; padding:0; display:grid; gap:6px; font-size:.7rem; }
.toc-list a { text-decoration:none; display:block; padding:4px 2px; border-radius:4px; color:var(--text-light); line-height:1.3; }
.toc-list a:hover { color:var(--accent); }
.toc-list a.is-active { color:var(--accent); font-weight:600; }

.article-body { max-width:820px; }
.article-body h2 { margin:var(--space-12) 0 var(--space-4); font-size:1.6rem; letter-spacing:-1px; }
.article-body h3 { margin:var(--space-8) 0 var(--space-3); font-size:1.15rem; letter-spacing:-.5px; }
.article-body p { line-height:1.65; margin:0 0 var(--space-6); font-size:1rem; }
.article-body pre { background:#1d1b26; color:#f4f2f8; padding:18px 22px; border-radius:12px; overflow:auto; font-size:.8rem; line-height:1.45; }
[data-theme='dark'] .article-body pre { background:#14121b; }
.article-body code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace; }
.article-body a { color:var(--accent); }
.article-body a:hover { text-decoration:none; }
.article-body .article-cta { margin:var(--space-16) 0 var(--space-4); }

.back-link { font-size:.7rem; text-decoration:none; font-weight:600; color:var(--accent); display:inline-block; margin-bottom:var(--space-4); }
.back-link:hover { text-decoration:underline; }

/* Responsive */
@media (max-width:980px){
	.article-grid { grid-template-columns:1fr; }
	.toc { position:relative; top:auto; max-height:none; order:-1; margin-bottom:var(--space-12); }
}
@media (max-width:600px){
	.post-title { font-size:clamp(1.8rem,6vw,2.4rem); }
	.article-body h2 { font-size:1.4rem; }
	.article-body h3 { font-size:1.05rem; }
}
