:root{
  --ink:#1f2430;--ink-2:#5a6172;--ink-3:#9aa1b2;--line:#e8e6df;--paper:#faf9f6;--card:#fff;
  --brand:#0b5cb8;--accent:#f6a821;
  --errors:#d64545;--tools:#2e8b57;--ai:#7c5cff;--games:#e07b39;--local:#0e7c86;
}
*{box-sizing:border-box}
body{font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif;margin:0;color:var(--ink);background:var(--paper);line-height:1.75;max-width:780px;padding:0 16px;margin-inline:auto;font-size:15.5px;-webkit-text-size-adjust:100%}
a{color:var(--brand)}
::selection{background:#ffe9bf}

header{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:2px solid var(--ink);flex-wrap:wrap}
.brand{font-weight:900;font-size:1.15rem;color:var(--ink);text-decoration:none}
.brand b{color:var(--accent)}
nav a{color:var(--ink-2);text-decoration:none;margin-left:14px;font-size:.93rem}
nav a:hover{color:var(--brand)}

.hero{padding:26px 0 4px}
.hero h1{font-size:1.55rem;margin:0 0 6px;line-height:1.35}
.hero p{color:var(--ink-2);margin:0}
.sec-title{font-size:1.05rem;margin:26px 0 8px;padding-left:10px;border-left:4px solid var(--accent)}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:18px 0}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;text-decoration:none;color:inherit;display:block;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(31,36,48,.08)}
.card-icon{font-size:1.4rem}
.card h2{font-size:.98rem;margin:6px 0 4px}
.card p{margin:0;font-size:.83rem;color:var(--ink-2);line-height:1.6}
.card-count{display:inline-block;margin-top:8px;font-size:.72rem;color:var(--ink-3)}
.card.t-errors{border-top:3px solid var(--errors)}
.card.t-tools{border-top:3px solid var(--tools)}
.card.t-ai{border-top:3px solid var(--ai)}
.card.t-games{border-top:3px solid var(--games)}
.card.t-local{border-top:3px solid var(--local)}

.latest{list-style:none;padding:0}
.latest li{display:flex;gap:12px;align-items:flex-start;border-bottom:1px dashed var(--line);padding:11px 2px}
.latest .li-main{flex:1;min-width:0}
.latest .li-main>a{color:var(--ink);font-weight:600;text-decoration:none}
.latest .li-main>a:hover{color:var(--brand)}
.li-desc{margin:3px 0 4px;font-size:.83rem;color:var(--ink-2);line-height:1.55}
.li-tags{margin:0}
.latest time{color:var(--ink-3);font-size:.75rem;white-space:nowrap;padding-top:3px}
.latest .tag{font-size:.7rem}

.tag{display:inline-block;font-size:.72rem;background:#eef2ff;border-radius:4px;padding:1px 6px;color:#56c;white-space:nowrap;line-height:1.7}
.tag.t-errors{background:#fdeaea;color:var(--errors)}
.tag.t-tools{background:#e7f4ec;color:var(--tools)}
.tag.t-ai{background:#efecff;color:var(--ai)}
.tag.t-games{background:#fbeee2;color:var(--games)}
.tag.t-local{background:#e4f2f4;color:var(--local)}

article{padding-top:6px}
.crumb{font-size:.82rem;color:var(--ink-3);margin:14px 0 4px}
.crumb a{color:var(--ink-3);text-decoration:none}
.crumb a:hover{color:var(--brand)}
article>h1{font-size:1.42rem;line-height:1.45;margin:6px 0 4px}
.meta{color:var(--ink-3);font-size:.83rem;margin:0 0 14px}
.toc{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 16px;margin:14px 0;font-size:.88rem}
.toc b{font-size:.82rem;color:var(--ink-2)}
.toc nav ul,article .toc ul{margin:4px 0 0;padding-left:1.2em}
.toc ul{list-style:decimal}
.toc a{color:var(--ink-2);text-decoration:none}
.toc a:hover{color:var(--brand)}

article h2{margin:1.9em 0 .6em;font-size:1.08rem;padding-left:10px;border-left:4px solid var(--accent);scroll-margin-top:70px}
article h3{margin:1.4em 0 .5em;font-size:.98rem}
article li{margin:4px 0}
article blockquote{border-left:3px solid var(--accent);margin:1.1em 0;padding:8px 14px;color:#6b5b2a;background:#fff8e8;border-radius:0 8px 8px 0;font-size:.92rem}
article blockquote p{margin:0}
article code{background:#f0efe9;border-radius:4px;padding:1px 6px;font-size:.86em;font-family:ui-monospace,Consolas,monospace}
article pre{background:#22262f;color:#e6e8ee;padding:12px 14px;border-radius:10px;overflow-x:auto;font-size:.85rem;line-height:1.6}
article pre code{background:none;padding:0;color:inherit}
article img{max-width:100%}
kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:#fff;padding:0 6px;font-size:.82em;font-family:inherit}

table{width:100%;border-collapse:collapse;font-size:.89rem;margin:1em 0}
table{display:block;overflow-x:auto}
th,td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
th{background:#f2f1e9;font-weight:600;white-space:nowrap}
tbody tr:nth-child(even){background:#f6f5f0}

.pagefoot{margin-top:30px;padding-top:14px;border-top:1px dashed var(--line);font-size:.88rem}
.noted{color:var(--ink-3);font-size:.83rem}
.pn{display:block;color:var(--brand);text-decoration:none;padding:4px 0}
.pn:hover{text-decoration:underline}
.rel{line-height:2}
.rel a{color:var(--ink-2);text-decoration:none;border-bottom:1px dashed var(--ink-3)}
.rel a:hover{color:var(--brand)}
footer{border-top:1px solid var(--line);margin-top:40px;padding:18px 0;color:var(--ink-3);font-size:.8rem;text-align:center}
footer a{color:var(--ink-3);text-decoration:none}footer a:hover{color:#555}
@media (max-width:520px){.latest li{flex-wrap:wrap}.latest time{order:2;padding:0}.cards{grid-template-columns:1fr 1fr}.card p{display:none}}
