:root{
  --bg:#FAF6EE; --card:#FFFFFF; --line:#E7DFCE; --line2:#EFE8D7;
  --navy:#1F3A5F; --brick:#B8473D; --ink:#2B3138; --mut:#8A8579; --mut2:#B5AFA0;
  --shell:#F4EEDF; --hl:#F2ECDC;
  --serif:Georgia,"Noto Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--ink);font:15px/1.7 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
@media(max-width:640px){.wrap{padding:0 20px}}

/* ===== 顶栏 ===== */
.site-head{background:var(--card);border-bottom:1px solid var(--line)}
.head-in{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;align-items:center;gap:10px}
.brand .mark{width:40px;height:40px;border:1.5px solid var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;font:600 18px var(--serif);color:var(--navy)}
.brand .bn{font:600 20px var(--serif);color:var(--navy);line-height:1.1}
.brand .bs{font:400 10px var(--sans);letter-spacing:.18em;color:var(--mut);text-transform:uppercase}
.head-right{display:flex;align-items:center;gap:24px}
.cats{display:flex;gap:20px}
.cats a{font:500 15px var(--sans);color:var(--navy);padding:24px 0;border-bottom:2px solid transparent}
.cats a:hover{border-bottom-color:var(--navy)}
.btn-submit{background:var(--navy);color:#fff;font:500 14px var(--sans);padding:10px 20px;border-radius:6px}
.cats-m{display:none}
@media(max-width:900px){
  .head-right .cats{display:none}
  .cats-m{display:flex;gap:18px;overflow-x:auto;background:var(--card);border-bottom:1px solid var(--line);padding:0 20px;scrollbar-width:none}
  .cats-m::-webkit-scrollbar{display:none}
  .cats-m a{flex:0 0 auto;font:500 14px var(--sans);color:var(--mut);padding:10px 0 8px;border-bottom:2px solid transparent;white-space:nowrap}
  .cats-m a:hover,.cats-m a.active{color:var(--navy);border-bottom-color:var(--navy)}
}

/* ===== Hero ===== */
.hero{display:grid;grid-template-columns:1fr 380px;gap:48px;padding:56px 0 40px;align-items:start}
@media(max-width:900px){.hero{grid-template-columns:1fr;gap:28px;padding:36px 0 24px}}
.hero .kicker{font:400 12px var(--sans);letter-spacing:.2em;color:var(--navy);text-transform:uppercase}
.hero h1{font:600 clamp(40px,6.5vw,78px)/1.25 var(--serif);color:var(--navy);margin:14px 0 18px}
.hero h1 em{font-style:normal;color:var(--brick)}
.hero .sub{font:400 15px/1.7 var(--sans);color:var(--ink);max-width:560px}
.today{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px 26px}
.today .tk{display:flex;align-items:center;gap:10px}
.today .tk::before{content:"";width:4px;height:34px;background:var(--brick)}
.today .tk span{font:400 11px var(--sans);letter-spacing:.18em;color:var(--brick)}
.today h2{font:600 26px var(--serif);color:var(--navy);margin:12px 0 6px}
.today ol{list-style:none}
.today li{border-top:1px solid var(--line2)}
.today li a{display:flex;align-items:center;gap:14px;min-height:56px;font:400 14px var(--sans);color:var(--navy)}
.today li a:hover{text-decoration:underline}
.today .no{font:400 15px var(--serif);color:var(--brick)}
.today .ar{margin-left:auto;color:var(--navy)}

/* ===== 统计条 ===== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stats div{padding:20px 8px;text-align:center}
.stats div+div{border-left:1px solid var(--line)}
.stats b{display:block;font:600 32px var(--serif);color:var(--navy)}
.stats span{font:400 13px var(--sans);color:var(--mut)}
@media(max-width:640px){.stats b{font-size:24px}.stats span{font-size:11px}}

/* ===== 章节 + 行式列表 ===== */
.sec{padding:56px 0 8px}
.sec-h .no{font:400 20px var(--serif);color:var(--navy)}
.sec-h .en{font:400 12px var(--sans);letter-spacing:.18em;color:var(--mut);text-transform:uppercase}
.sec-h h2{font:600 clamp(26px,3.6vw,42px) var(--serif);color:var(--navy);margin:6px 0 4px}
.sec-h p{font:400 15px var(--sans);color:var(--mut);max-width:540px}
.sec-h .more{float:right;font:400 14px var(--sans);color:var(--navy);margin-top:14px}
.rows{border-top:1px solid var(--line);margin-top:20px}
.row{display:flex;gap:20px;align-items:flex-start;padding:22px 4px;border-bottom:1px solid var(--line2)}
.row .tile{flex:0 0 64px;width:64px;height:64px;border-radius:12px;background:var(--navy);color:#fff;font:600 24px var(--serif);display:flex;align-items:center;justify-content:center}
.row .tile.r{background:var(--brick)} .row .tile.g{background:#4A5D6B} .row .tile.b{background:#7A6A55}
.row .mid{flex:1;min-width:0}
.row .t{font:600 18px var(--serif);color:var(--navy)}
.row:hover .t{text-decoration:underline}
.row .s{font:400 14px/1.6 var(--sans);color:var(--mut);margin:4px 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row .tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font:500 12px var(--sans);padding:2px 10px;border-radius:4px;background:#F2ECDC;color:#7A6A55}
.tag.t2{background:#F7E9E7;color:var(--brick)} .tag.t3{background:#E9EEF4;color:var(--navy)}
.row .side{flex:0 0 auto;text-align:right}
.row .sc{font:600 24px var(--serif);color:var(--navy)}
.row .sc small{font:400 11px var(--sans);color:var(--mut);display:block}
.row .dt{font:400 12px var(--sans);color:var(--mut2);margin-top:6px}
@media(max-width:640px){
  .row{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;padding:16px}
  .rows{border-top:none;margin-top:12px}
  .row .tile{flex-basis:48px;width:48px;height:48px;font-size:18px}
  .row .sc{font-size:18px}
}

/* ===== 文章页 ===== */
.crumb{font:400 13px var(--sans);color:var(--mut);padding:20px 0 0}
.crumb a:hover{color:var(--navy)}
.article{max-width:760px;margin:0 auto;padding:24px 0 40px}
.article .kicker{font:400 12px var(--sans);letter-spacing:.18em;color:var(--navy);text-transform:uppercase;margin-top:14px}
.article h1{font:600 clamp(26px,4.5vw,48px)/1.3 var(--serif);color:var(--navy);margin:10px 0 12px}
.article .meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font:400 13px var(--sans);color:var(--mut);border-bottom:1px solid var(--line);padding-bottom:16px}
.article .meta a.go{background:var(--navy);color:#fff;padding:8px 16px;border-radius:6px;margin-left:auto}
.lede{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brick);border-radius:8px;padding:16px 18px;font:400 14.5px/1.75 var(--sans);color:var(--ink);margin:20px 0}
.prose{font:400 16.5px/1.85 var(--sans);color:var(--ink)}
.prose p{margin:.95em 0}
.prose h2{font:600 22px var(--serif);color:var(--navy);margin:1.5em 0 .5em}
.prose h3{font:600 18px var(--serif);color:var(--navy);margin:1.2em 0 .4em}
.prose img{max-width:100%;border:1px solid var(--line);border-radius:8px}
.prose a{color:var(--navy);text-decoration:underline}
.prose blockquote{border-left:3px solid var(--brick);padding:4px 0 4px 14px;color:var(--mut);margin:.9em 0}
.prose pre{background:var(--navy);color:#EDE6D6;padding:16px;border-radius:8px;overflow-x:auto;font-size:13.5px}
.prose code{font-family:ui-monospace,Consolas,monospace}
.prose p code{background:var(--hl);color:var(--navy);padding:1px 6px;border-radius:4px;font-size:14px}
.prose ul,.prose ol{padding-left:1.5em;margin:.8em 0}
.prose table{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}
.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.prose th{background:var(--hl)}
.related{margin-top:36px}
.related h3{font:600 20px var(--serif);color:var(--navy);margin-bottom:4px}
.site-foot{border-top:1px solid var(--line);margin-top:56px}
.site-foot p{color:var(--mut);font:400 13px var(--sans);padding:24px 0;text-align:center}
.list-head{padding:40px 0 0;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}
.list-head h1{font:600 clamp(30px,5vw,54px) var(--serif);color:var(--navy)}
.list-head p{font:400 14px var(--sans);color:var(--mut)}

.post-video{width:100%;border-radius:10px;margin:14px 0;background:#000}
#js_content,article img{max-width:100%;height:auto}

.src-note{font:400 13px var(--sans);color:var(--mut);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 14px;margin:0 0 20px}
.src-note a{color:var(--navy);text-decoration:underline}
