:root{
  --paper: oklch(95.5% 0.014 92); --paper-deep: oklch(92.5% 0.02 90);
  --ink: oklch(24% 0.012 60); --ink-soft: oklch(38% 0.015 60); --ink-faint: oklch(55% 0.012 65);
  --cinnabar: oklch(50% 0.155 32); --cinnabar-deep: oklch(42% 0.14 32);
  --hairline: oklch(80% 0.02 85); --seal-text: #f7f2e6;
  --serif: "Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
}
html[data-theme="xuanye"]{ --paper: oklch(21% 0.014 260); --paper-deep: oklch(25.5% 0.016 260);
  --ink: oklch(90% 0.02 85); --ink-soft: oklch(76% 0.018 85); --ink-faint: oklch(60% 0.014 85);
  --cinnabar: oklch(78% 0.13 85); --cinnabar-deep: oklch(70% 0.12 85);
  --hairline: oklch(36% 0.016 260); --seal-text: oklch(22% 0.02 85); }
html[data-theme="qingci"]{ --paper: oklch(96.5% 0.008 190); --paper-deep: oklch(93.5% 0.014 195);
  --ink: oklch(27% 0.022 230); --ink-soft: oklch(40% 0.024 230); --ink-faint: oklch(56% 0.02 230);
  --cinnabar: oklch(48% 0.135 252); --cinnabar-deep: oklch(41% 0.125 252);
  --hairline: oklch(82% 0.02 200); --seal-text: #f2f6fa; }
html[data-theme="zhuqing"]{ --paper: oklch(95% 0.014 125); --paper-deep: oklch(91.5% 0.02 128);
  --ink: oklch(25% 0.018 155); --ink-soft: oklch(37% 0.02 155); --ink-faint: oklch(53% 0.018 155);
  --cinnabar: oklch(45% 0.105 158); --cinnabar-deep: oklch(38% 0.095 158);
  --hairline: oklch(80% 0.024 128); --seal-text: #f2f7ee; }
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--serif);background:var(--paper);color:var(--ink);line-height:1.9;
  -webkit-font-smoothing:antialiased;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.4 0 0 0 0 0.36 0 0 0 0 0.28 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");}
a{color:inherit;text-decoration:none}
.wrap{max-width:760px;margin:0 auto;padding:0 20px}
header{position:sticky;top:0;z-index:10;background:color-mix(in oklch, var(--paper) 88%, transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}
.nav{display:flex;align-items:center;justify-content:space-between;height:58px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.1em;font-size:15px}
.seal{width:30px;height:30px;flex:none;border-radius:4px;background:var(--cinnabar);color:var(--seal-text);
  display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:1px;text-indent:1px;
  box-shadow:inset 0 0 0 1.5px rgba(128,128,128,.25), inset 0 0 8px rgba(0,0,0,.15)}
.cta{font-size:14px;color:var(--cinnabar);letter-spacing:.08em}
main{padding:clamp(28px,5vw,52px) 0}
.meta{display:flex;gap:14px;align-items:baseline;margin-bottom:12px;font-size:13px;color:var(--ink-faint)}
.meta span{border:1px solid var(--cinnabar);color:var(--cinnabar);padding:2px 9px;border-radius:2px;letter-spacing:.15em}
h1{font-size:clamp(24px,4.5vw,34px);line-height:1.4;letter-spacing:.04em;margin-bottom:8px}
article p{margin:14px 0;color:var(--ink)}
article h2{font-size:19px;margin:30px 0 6px;letter-spacing:.06em;
  padding-left:12px;border-left:3px solid var(--cinnabar)}
article code{background:var(--paper-deep);padding:2px 8px;border-radius:3px;font-size:.9em}
article strong{color:var(--cinnabar-deep)}
.related{margin-top:44px;border-top:1px solid var(--hairline);padding-top:26px}
.related h2{font-size:17px;letter-spacing:.15em;margin-bottom:14px}
.rel{display:block;padding:11px 0;border-bottom:1px solid var(--hairline);font-size:15.5px;transition:.2s ease-out}
.rel:hover{color:var(--cinnabar)}
.rel.more{color:var(--ink-faint)}
.list h1{margin-bottom:6px}
.lead{color:var(--ink-soft);font-size:14.5px;margin-bottom:26px}
.item{display:block;padding:20px 0;border-bottom:1px solid var(--hairline)}
.item .cat{font-size:12.5px;color:var(--cinnabar);border:1px solid var(--cinnabar);padding:2px 8px;border-radius:2px;letter-spacing:.15em}
.item h2{font-size:18px;margin:8px 0 4px;transition:.2s ease-out}
.item:hover h2{color:var(--cinnabar)}
.item p{font-size:14px;color:var(--ink-soft)}
.item time{font-size:12.5px;color:var(--ink-faint)}
footer{border-top:1px solid var(--hairline);padding:26px 0 40px;font-size:13px;color:var(--ink-faint);margin-top:30px}
.disclaimer{border-left:3px solid var(--cinnabar);padding:8px 14px;margin-bottom:12px;color:var(--ink-soft);
  background:color-mix(in oklch, var(--paper-deep) 50%, transparent)}
footer a:hover{color:var(--cinnabar)}
/* 微信引导 */
.wx-ui{display:none}
body.is-wx{padding-bottom:76px}
body.is-wx .wx-ui{display:block}
.wx-bar{position:fixed;left:0;right:0;bottom:0;z-index:200;display:flex;align-items:center;gap:10px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:color-mix(in oklch, var(--ink) 94%, transparent);color:var(--paper);font-size:13px;line-height:1.55}
.wx-bar .txt{flex:1;min-width:0}
.wx-bar b{font-weight:700;text-decoration:underline;text-underline-offset:3px}
.wx-btn{flex:none;border:1px solid color-mix(in oklch, var(--paper) 55%, transparent);color:var(--paper);
  background:transparent;padding:7px 12px;font-family:var(--serif);font-size:12.5px;border-radius:2px;cursor:pointer}
.wx-toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(8px);z-index:210;max-width:82vw;
  padding:10px 18px;border-radius:3px;background:var(--cinnabar);color:var(--seal-text);font-size:14px;
  opacity:0;pointer-events:none;transition:.25s ease-out}
.wx-toast.show{opacity:1;transform:translateX(-50%)}
