:root{
  --bg:#0e1116; --panel:#161b22; --panel2:#1b2230; --line:#2a3340;
  --text:#e6edf3; --dim:#9aa7b4; --faint:#6b7785; --gold:#f0b90b;
  --blue:#3b82f6; --green:#22ab94; --purple:#a78bfa; --red:#ff5d5d;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:940px;margin:0 auto;padding:0 22px}
/* 顶栏 */
nav{position:sticky;top:0;z-index:10;background:rgba(14,17,22,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:56px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.5px}
.brand .dot{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#f0b90b,#ff7a45);display:flex;align-items:center;justify-content:center;color:#0e1116;font-size:15px;font-weight:900}
.navlinks{display:flex;gap:22px;font-size:14px}
.navlinks a{color:var(--dim)}
.navlinks a:hover{color:var(--text);text-decoration:none}
/* Hero */
header.home{padding:90px 0 56px;text-align:center}
.avatar{width:88px;height:88px;border-radius:24px;margin:0 auto 22px;background:linear-gradient(135deg,#f0b90b,#ff7a45);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:900;color:#0e1116}
h1{font-size:32px;font-weight:800;letter-spacing:1px}
.tagline{margin-top:14px;color:var(--dim);font-size:15.5px;max-width:620px;margin-left:auto;margin-right:auto}
.chips{margin-top:22px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.chip{font-size:12.5px;color:var(--faint);border:1px solid var(--line);border-radius:999px;padding:5px 13px}
/* 区块 */
.divider{height:1px;background:var(--line)}
section{padding:42px 0}
.sec-head{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}
.sec-head h2{font-size:20px;font-weight:800}
.sec-head .sub{font-size:13px;color:var(--faint)}
.sec-desc{color:var(--dim);font-size:14px;margin:10px 0 22px;max-width:720px}
/* 卡片网格 */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;transition:.15s;display:flex;flex-direction:column}
.card:hover{border-color:#3a4656;transform:translateY(-2px)}
.card .tag{font-size:11.5px;font-weight:700;letter-spacing:.5px;padding:3px 9px;border-radius:6px;align-self:flex-start;margin-bottom:10px}
.tag-ai{background:rgba(167,139,250,.16);color:var(--purple)}
.tag-sw{background:rgba(34,171,148,.16);color:var(--green)}
.card h3{font-size:15.5px;font-weight:800;margin-bottom:8px;line-height:1.4}
.card p{color:var(--dim);font-size:13.5px;flex:1}
.card .meta{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}
.card .meta span{font-size:11px;color:var(--faint);border:1px solid var(--line);border-radius:5px;padding:2px 7px}
.card-link{color:inherit;text-decoration:none;display:block}
.card-link:hover .card{border-color:#3a4656}
.card-link:hover{text-decoration:none}
/* 关于/联系 卡片 */
.note{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;color:var(--dim);font-size:14px}
.note b{color:var(--text)}
/* 页脚 */
footer{border-top:1px solid var(--line);margin-top:30px;padding:30px 0 52px;color:var(--faint);font-size:12.5px;text-align:center}
footer .beian{margin:5px 0}
.beian-ok{color:var(--green)}
/* ---------------- 文章页 ---------------- */
header.article{padding:54px 0 8px}
header.article .back{font-size:13px;color:var(--dim)}
header.article .tag{font-size:11.5px;font-weight:700;letter-spacing:.5px;padding:3px 9px;border-radius:6px;display:inline-block;margin-bottom:14px}
.article h1{font-size:28px;text-align:left;line-height:1.35}
.article .lead{color:var(--dim);font-size:15px;margin:14px 0 6px;max-width:760px}
.article .date{color:var(--faint);font-size:12.5px;margin-bottom:8px}
.divider.soft{margin:26px 0}
.article-body{font-size:15px;color:var(--text)}
.article-body h2{font-size:19px;font-weight:800;margin:30px 0 10px}
.article-body h3{font-size:16px;font-weight:800;margin:22px 0 8px;color:#cdd9e5}
.article-body p{margin:10px 0;color:#d5dde6}
.article-body ul,.article-body ol{margin:10px 0 10px 22px;color:#d5dde6}
.article-body li{margin:6px 0}
.article-body code{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:2px 6px;font-size:13px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#ffd479}
.article-body pre{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow:auto;margin:14px 0}
.article-body pre code{background:none;border:none;padding:0;color:#e6edf3;font-size:13px;line-height:1.6}
.article-body blockquote{border-left:3px solid var(--gold);background:rgba(240,185,11,.07);padding:12px 16px;margin:14px 0;border-radius:0 8px 8px 0;color:var(--dim)}
.article-body blockquote b{color:var(--text)}
.callout{border:1px solid var(--line);border-left:3px solid var(--blue);background:rgba(59,130,246,.07);border-radius:0 8px 8px 0;padding:12px 16px;margin:14px 0;color:var(--dim)}
.callout b{color:var(--text)}
.toc{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin:18px 0;font-size:13.5px}
.toc b{display:block;margin-bottom:6px;color:var(--text)}
.toc a{color:var(--dim);display:block;padding:2px 0}
.toc a:hover{color:var(--text)}
@media(max-width:560px){.navlinks{display:none}h1{font-size:26px}.article h1{font-size:23px}}
