:root{
  --bg:#f6f7f9; --card:#ffffff; --ink:#23272e; --muted:#6b7280;
  --line:#e8eaed; --brand:#2563eb; --brand-ink:#1d4ed8; --brand-soft:#eef3ff;
  --tag:#eef2ff; --code-bg:#0f172a; --radius:16px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.8 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
a{color:var(--brand-ink);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:820px;margin:0 auto;padding:0 20px}
.site-header{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:30px 0}
.site-header h1{margin:0;font-size:24px;letter-spacing:.5px}
.site-header h1 a{color:#fff}
.site-header .sub{margin:8px 0 0;opacity:.85;font-size:13.5px}
.theme-nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;box-shadow:0 1px 3px rgba(0,0,0,.03)}
.theme-nav .wrap{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;padding-bottom:10px}
.theme-nav a{padding:6px 13px;border-radius:999px;color:var(--muted);font-size:13.5px;transition:.15s}
.theme-nav a:hover{background:var(--brand-soft);text-decoration:none;color:var(--brand-ink)}
.theme-nav a.on{background:var(--brand);color:#fff}
.theme-nav .cnt{font-size:11px;opacity:.65;margin-left:3px}
main.wrap{padding-top:28px;padding-bottom:48px}
.intro{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px;margin-bottom:26px;color:#374151;font-size:14.5px}
.intro p{margin:0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:34px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:.15s}
.card:hover{border-color:var(--brand);box-shadow:0 8px 24px rgba(37,99,235,.12);text-decoration:none;transform:translateY(-2px)}
.card-name{font-size:17px;font-weight:600;color:var(--ink)}
.card-desc{margin-top:8px;font-size:13px;color:var(--muted);min-height:34px}
.card-meta{margin-top:12px;font-size:12px;color:#9aa1ac}
.sec{font-size:19px;margin:6px 0 18px;padding-left:12px;border-left:4px solid var(--brand)}
.feed{list-style:none;margin:0;padding:0}
.feed li{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}
.feed-date{color:var(--muted);font-size:13px;white-space:nowrap}
.feed-tag{background:var(--tag);color:#4338ca;font-size:12px;padding:2px 9px;border-radius:6px;white-space:nowrap}
.feed-title{font-weight:500}
.theme-head{margin-bottom:22px}
.theme-desc{margin:4px 0 6px;color:var(--muted);font-size:14px}
.theme-count{margin:0;color:#9aa1ac;font-size:13px}
.posts{display:flex;flex-direction:column;gap:20px}
.post{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.post-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;position:relative}
.post-head h3{margin:0;font-size:20px;line-height:1.4;flex:1 1 auto}
.post-date{background:var(--brand-soft);color:var(--brand-ink);font-size:12.5px;padding:3px 10px;border-radius:999px;white-space:nowrap}
.post-permalink{font-size:15px;opacity:.55;order:-1}
.post-permalink:hover{opacity:1;text-decoration:none}
.post-body{margin-top:4px}
.back{margin-top:18px}
.markdown{font-size:16px;line-height:1.85;color:#2b313a}
.markdown h1,.markdown h2,.markdown h3{line-height:1.4;margin:1.3em 0 .6em;color:#1f2329}
.markdown h2{font-size:19px;border-bottom:1px solid var(--line);padding-bottom:7px}
.markdown h3{font-size:17px}
.markdown p{margin:.7em 0}
.markdown blockquote{margin:1.1em 0;padding:12px 16px;background:var(--brand-soft);border-left:4px solid var(--brand);border-radius:8px;color:#374151}
.markdown code{background:#eef1f5;padding:2px 7px;border-radius:6px;font-size:13.5px;font-family:"SFMono-Regular",Consolas,Menlo,monospace}
.markdown pre{background:var(--code-bg);color:#e2e8f0;padding:16px 18px;border-radius:12px;overflow:auto;font-size:13.5px;line-height:1.6}
.markdown pre code{background:none;color:inherit;padding:0}
.markdown ul,.markdown ol{padding-left:24px}
.markdown li{margin:.3em 0}
.markdown hr{border:0;border-top:1px solid var(--line);margin:1.4em 0}
.markdown table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:14.5px}
.markdown th,.markdown td{border:1px solid var(--line);padding:9px 12px;text-align:left}
.markdown th{background:#f3f5f8}
.markdown img{max-width:100%;border-radius:10px}
.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:12.5px;padding:20px 0;text-align:center}
.pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center}
.pager button{padding:7px 13px;border:1px solid var(--line);background:#fff;color:var(--brand-ink);border-radius:9px;font-size:13.5px;cursor:pointer;transition:.15s;min-width:38px}
.pager button:hover:not(:disabled){border-color:var(--brand);box-shadow:0 2px 8px rgba(37,99,235,.12)}
.pager button.on,.pager button:disabled{cursor:default}
.pager button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.pager .pager-prev,.pager .pager-next{font-weight:500}
.pager-bar{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;margin:22px 0 6px;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:12px}
.pager-size{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13.5px}
.pager-size select{padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--brand-ink);font-size:13.5px;cursor:pointer}
.pager-size select:hover{border-color:var(--brand)}
@media (max-width:560px){
  .pager-bar{justify-content:center;gap:10px}
  .pager button{padding:6px 10px;min-width:34px;font-size:13px}
}
@media (max-width:560px){
  .cards{grid-template-columns:1fr}
  .post{padding:18px 18px}
  .post-head h3{font-size:18px}
}