
:root{
  --fg:#2b2b2b; --muted:#8a8a8a; --link:#268bd2; --line:#e8e8e8;
  --bg:#fff; --code-bg:#f5f5f5; --code-line:#e0e0e0;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
.wrap{max-width:760px; margin:0 auto; padding:0 22px;}

/* ── 头部 ── */
.masthead{border-bottom:1px solid var(--line); padding:26px 0;}
.masthead .wrap{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
.avatar img{width:56px; height:56px; border-radius:50%; display:block; object-fit:cover; border:1px solid var(--line);}
.site-info{flex:1; min-width:150px;}
.site-name{margin:0; font-size:20px; letter-spacing:.3px;}
.site-name a{color:var(--fg); text-decoration:none;}
.site-name a:hover{color:var(--link);}
.site-desc{margin:2px 0 0; color:var(--muted); font-size:13px;}
.nav{display:flex; gap:18px; font-size:14px;}
.nav a{color:var(--muted); text-decoration:none; padding-bottom:2px; border-bottom:1px solid transparent;}
.nav a:hover{color:var(--link); border-bottom-color:var(--link);}

/* ── 正文 ── */
main{padding:34px 0 10px; min-height:60vh;}
article.post{padding-bottom:26px;}
.post-title, article h1{font-size:26px; line-height:1.4; margin:0 0 6px;}
article h2{font-size:20px; margin:2em 0 .6em; padding-bottom:.3em; border-bottom:1px solid var(--line);}
article h3{font-size:17px; margin:1.6em 0 .5em;}
article p{margin:0 0 1.1em;}
article a{color:var(--link); text-decoration:none; border-bottom:1px solid rgba(38,139,210,.3);}
article a:hover{border-bottom-color:var(--link);}
article img{max-width:100%; height:auto; display:block; margin:1.2em 0; border-radius:4px;}
article ul,article ol{padding-left:1.5em; margin:0 0 1.1em;}
article li{margin:.3em 0;}
article blockquote{margin:1.2em 0; padding:.4em 1em; border-left:3px solid var(--line); color:#555;}
article hr{border:none; border-top:1px solid var(--line); margin:2em 0;}
article table{border-collapse:collapse; width:100%; margin:1.2em 0; font-size:14px; overflow:auto; display:block;}
article th,article td{border:1px solid var(--line); padding:8px 12px; text-align:left;}
article th{background:#fafafa;}

/* ── 行内代码 ── */
code{font-family:'Bitstream Vera Sans Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.9em;}
:not(pre) > code{background:#f2f2f2; border:1px solid #e6e6e6; border-radius:4px; padding:1px 6px; color:#c7254e;}

/* ── 代码块（含 Rouge 高亮配色）── */
.highlight{
  background:var(--code-bg); border:1px solid var(--code-line); border-radius:6px;
  margin:1.3em 0; overflow-x:auto;
}
.highlight pre{margin:0; padding:14px 16px; background:transparent; border:none; overflow-x:auto;}
.highlight pre code{background:none; border:none; padding:0; color:inherit;}
pre{background:var(--code-bg); border:1px solid var(--code-line); border-radius:6px; padding:14px 16px; overflow-x:auto; margin:1.3em 0;}

.highlight .c{color:#586E75}
.highlight .err{color:#93A1A1}
.highlight .g{color:#93A1A1}
.highlight .k{color:#859900}
.highlight .l{color:#93A1A1}
.highlight .n{color:#586e75}
.highlight .o{color:#859900}
.highlight .x{color:#CB4B16}
.highlight .p{color:#657b83}
.highlight .cm{color:#586E75}
.highlight .cp{color:#859900}
.highlight .c1{color:#586E75}
.highlight .cs{color:#859900}
.highlight .gd{color:#2AA198}
.highlight .ge{color:#93A1A1;font-style:italic}
.highlight .gr{color:#DC322F}
.highlight .gh{color:#CB4B16}
.highlight .gi{color:#859900}
.highlight .go{color:#93A1A1}
.highlight .gp{color:#93A1A1}
.highlight .gs{color:#93A1A1;font-weight:bold}
.highlight .gu{color:#CB4B16}
.highlight .gt{color:#93A1A1}
.highlight .kc{color:#CB4B16}
.highlight .kd{color:#268BD2}
.highlight .kn{color:#859900}
.highlight .kp{color:#859900}
.highlight .kr{color:#268BD2}
.highlight .kt{color:#DC322F}
.highlight .ld{color:#93A1A1}
.highlight .m{color:#2AA198}
.highlight .s{color:#2AA198}
.highlight .na{color:#93A1A1}
.highlight .nb{color:#B58900}
.highlight .nc{color:#268BD2}
.highlight .no{color:#CB4B16}
.highlight .nd{color:#268BD2}
.highlight .ni{color:#CB4B16}
.highlight .ne{color:#CB4B16}
.highlight .nf{color:#268BD2}
.highlight .nl{color:#93A1A1}
.highlight .nn{color:#93A1A1}
.highlight .nx{color:#555}
.highlight .py{color:#93A1A1}
.highlight .nt{color:#268BD2}
.highlight .nv{color:#268BD2}
.highlight .ow{color:#859900}
.highlight .w{color:#93A1A1}
.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#2AA198}
.highlight .sb{color:#586E75}
.highlight .sc{color:#2AA198}
.highlight .sd{color:#93A1A1}
.highlight .s2{color:#2AA198}
.highlight .se{color:#CB4B16}
.highlight .sh{color:#93A1A1}
.highlight .si{color:#2AA198}
.highlight .sx{color:#2AA198}
.highlight .sr{color:#DC322F}
.highlight .s1{color:#2AA198}
.highlight .ss{color:#2AA198}
.highlight .bp{color:#268BD2}
.highlight .vc,.highlight .vg,.highlight .vi{color:#268BD2}
.highlight .il{color:#2AA198}

/* ── 文章列表 ── */
.post-list{list-style:none; padding:0; margin:0;}
.post-list li{padding:18px 0; border-bottom:1px solid var(--line);}
.post-list li:last-child{border-bottom:none;}
.post-list .h{font-size:19px; margin:0 0 6px;}
.post-list .h a{color:var(--fg); text-decoration:none;}
.post-list .h a:hover{color:var(--link);}
.post-list .meta{color:var(--muted); font-size:13px; margin:0 0 6px;}
.post-list .excerpt{color:#666; font-size:14px; margin:0;}
.post-date{color:var(--muted); font-size:13px; margin-top:26px; padding-top:16px; border-top:1px solid var(--line);}
.back{margin:26px 0 0; font-size:14px;}
.back a{color:var(--muted); text-decoration:none;}
.back a:hover{color:var(--link);}

/* ── 页脚 ── */
.footer{border-top:1px solid var(--line); margin-top:40px; padding:22px 0 40px;}
.footer .wrap{display:flex; gap:20px; justify-content:center; flex-wrap:wrap; font-size:13px;}
.footer a{color:var(--muted); text-decoration:none;}
.footer a:hover{color:var(--link);}

@media (max-width:600px){
  .masthead .wrap{gap:12px;}
  .nav{width:100%;}
  .post-title,article h1{font-size:22px;}
  .post-list .h{font-size:17px;}
}
