/* ===== 博客 / 文章页（复用 sub.css 变量） ===== */
.blog-hero{padding:96px 0 56px;position:relative;overflow:hidden;
  background:radial-gradient(1000px 460px at 85% -12%,rgba(30,215,96,.13),transparent 60%)}
.blog-hero .crumb{font-size:13px;color:var(--muted-2);margin-bottom:18px;font-family:"Inter",sans-serif}
.blog-hero .crumb a:hover{color:var(--accent)}
.blog-hero .crumb span{margin:0 8px;opacity:.6}
.blog-hero h1{font-size:48px;line-height:1.14;font-weight:900;letter-spacing:-1px;max-width:760px}
.blog-hero p.lead{color:var(--muted);font-size:18px;margin-top:18px;max-width:620px}

/* blog index grid */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.acard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.acard:hover{border-color:rgba(30,215,96,.5);transform:translateY(-4px)}
.acard .cover{height:160px;background:linear-gradient(135deg,#1c1c1c,#141414);
  border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.acard .cover::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(30,215,96,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(30,215,96,.07) 1px,transparent 1px);
  background-size:24px 24px;mask-image:radial-gradient(circle at 70% 30%,#000,transparent 75%)}
.acard .body{padding:22px;display:flex;flex-direction:column;flex:1}
.acard .cat{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.04em;margin-bottom:10px}
.acard h3{font-size:18.5px;font-weight:800;line-height:1.4;margin-bottom:10px}
.acard h3 a:hover{color:var(--accent)}
.acard .excerpt{color:var(--muted);font-size:14px;line-height:1.7;flex:1}
.acard .meta{margin-top:16px;display:flex;justify-content:space-between;align-items:center;
  color:var(--muted-2);font-size:12.5px;border-top:1px solid var(--line);padding-top:14px}
.acard .meta .tag{color:var(--accent)}

/* article detail */
.article-wrap{max-width:820px;margin:0 auto;padding:0 24px}
.article-head{margin-bottom:36px}
.article-head .cat{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.04em}
.article-head h1{font-size:40px;line-height:1.22;font-weight:900;letter-spacing:-.6px;margin:14px 0 18px}
.article-head .meta{display:flex;gap:18px;color:var(--muted-2);font-size:14px;flex-wrap:wrap}
.article-head .meta b{color:var(--muted);font-weight:600}
.article-cover{height:300px;border-radius:var(--radius);border:1px solid var(--line);
  background:linear-gradient(135deg,#1c1c1c,#141414);position:relative;overflow:hidden;margin-bottom:40px}
.article-cover::after{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(30,215,96,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(30,215,96,.06) 1px,transparent 1px);
  background-size:28px 28px;mask-image:radial-gradient(circle at 75% 25%,#000,transparent 72%)}
.article-body{font-size:17px;line-height:1.95;color:#e6e6e6}
.article-body h2{font-size:27px;font-weight:800;margin:42px 0 16px;color:var(--text);letter-spacing:-.3px}
.article-body h3{font-size:21px;font-weight:700;margin:30px 0 12px;color:var(--text)}
.article-body p{margin:16px 0;color:#dcdcdc}
.article-body ul,.article-body ol{margin:16px 0;padding-left:24px;color:#dcdcdc}
.article-body li{margin:8px 0}
.article-body strong{color:var(--text)}
.article-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.article-body blockquote{margin:22px 0;padding:16px 22px;border-left:3px solid var(--accent);
  background:var(--accent-soft);border-radius:10px;color:var(--muted)}
.article-body code{background:var(--card);padding:2px 7px;border-radius:6px;font-size:14.5px;color:var(--accent)}
.article-body pre{background:var(--card);padding:18px;border-radius:12px;overflow:auto;margin:18px 0}
.article-body pre code{background:none;padding:0}
.article-body img{max-width:100%;border-radius:12px;margin:18px 0}
.article-foot{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.article-foot .tags{display:flex;gap:10px;flex-wrap:wrap}
.article-foot .tags span{font-size:13px;color:var(--accent);background:var(--accent-soft);
  padding:5px 12px;border-radius:999px}
.article-foot .src{color:var(--muted-2);font-size:13px}
.article-foot .src a{color:var(--muted)}

/* related posts */
.related-posts{margin-top:64px}
.related-posts h3{font-size:22px;font-weight:800;margin-bottom:24px}

@media(max-width:920px){
  .blog-grid{grid-template-columns:1fr}
  .blog-hero h1{font-size:34px}
  .article-head h1{font-size:30px}
  .article-body{font-size:16px}
}
