.article-head{padding:56px 0 20px;max-width:1180px;}
.article-head h1{font-size:clamp(1.9rem,4vw,3rem);max-width:1120px;overflow-wrap:anywhere;word-break:break-word;}
.article-hero-img{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);
  border:1px solid var(--line);margin:24px 0 8px;background:var(--ink-2);
}
.article-body{
  max-width:1100px;margin:0 auto;padding:20px 24px 70px;
  font-size:1.05rem;color:#DCE3F2;
  overflow-wrap:anywhere;word-break:break-word;
}
.article-body > *{max-width:100%;}
.article-body p,.article-body li,.article-body h2,.article-body h3,.article-body blockquote{overflow-wrap:anywhere;word-break:break-word;}
.article-body ul,.article-body ol{overflow-wrap:anywhere;word-break:break-word;}
.article-body pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow-x:auto;}
.article-body h2{font-size:1.5rem;margin-top:1.8em;}
.article-body h3{font-size:1.2rem;margin-top:1.5em;}
.article-body p{margin-bottom:1.2em;}
.article-body a{color:var(--sky);text-decoration:underline;text-underline-offset:3px;}
.article-body img{border-radius:10px;margin:1.4em 0;border:1px solid var(--line);}
.article-body pre{
  background:var(--ink-2);border:1px solid var(--line);border-radius:10px;
  padding:16px 18px;overflow-x:auto;font-family:'JetBrains Mono',monospace;font-size:.85rem;
  margin:1.4em 0;color:#B9F0C0;
}
.article-body code{
  font-family:'JetBrains Mono',monospace;background:var(--ink-2);
  padding:.15em .4em;border-radius:5px;font-size:.88em;color:var(--sky);
}
.article-body pre code{background:none;padding:0;color:inherit;}
.article-body blockquote{
  border-left:3px solid var(--sky);margin:1.4em 0;padding:4px 0 4px 18px;
  color:var(--text-dim);font-style:italic;
}
.article-body ul,.article-body ol{margin:0 0 1.2em;padding-left:1.3em;}
.article-body ul li,.article-body ol li{margin-bottom:.4em;}
.callout{
  background:rgba(79,211,255,.06);border:1px solid var(--sky-dim);
  border-radius:10px;padding:16px 18px;margin:1.4em 0;
}
.callout strong{color:var(--sky);}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;}
.tag-chip{
  font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--violet);
  border:1px solid rgba(156,140,255,.35);background:rgba(156,140,255,.08);
  padding:5px 11px;border-radius:99px;
}
.author-box{
  display:flex;align-items:center;gap:14px;margin-top:44px;padding-top:24px;
  border-top:1px solid var(--line);
}
.author-avatar{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--sky),var(--violet));
}
.author-box .name{font-weight:600;font-size:.95rem;}
.author-box .role{font-size:.8rem;color:var(--text-dim);}
.related{max-width:820px;margin:60px auto 0;padding:0 24px;}
