/* 老号说 · LAOVOX 全站样式(v4a 蓝晒:冷白底 + 普鲁士蓝单色,方角,等宽编号 + 通栏实线)
   换皮规则:颜色、字体栈、圆角、描边、阴影、间距、封面比例全部在第 1 节变量里;组件里不写色值。
   全站唯一的记忆点「蓝晒印相」是预先烘焙好的静态图(static/img/print/),页面里不跑 SVG 滤镜。
   改完任何 CSS / JS:hugo.toml 的 params.assetV +1。 */

/* ===== 1. 变量 ===== */
:root{
  --lan-paper:#F1F4F7;            /* 页面底 */
  --lan-sheet:#FBFCFD;            /* 卡片、封面纸边、输入框底 */
  --lan-ink:#0F2A4A;              /* 正文与标题 */
  --lan-soft:#3D5573;             /* 次要文字 */
  --lan-faint:#5B6F8A;            /* 第三级文字 */
  --lan-print:#183E6C;            /* 印相底、主按钮、码卡表头、页脚 */
  --lan-print-2:#2C5C91;          /* 话题标签、编号、20%、焦点环 */
  --lan-pale:#C6D5E6;             /* 选中底 */
  --lan-wash:#E2E9F1;             /* 悬停底、提示块底 */
  --lan-hair:rgba(15,42,74,.14);  /* 发丝线 */
  --lan-rule:#0F2A4A;             /* 通栏实线 */
  --lan-on-print:#F4F7FB;         /* 印相 / 深蓝底上的主文字 */
  --lan-on-print-soft:#C9D8EA;    /* 深蓝底上的次文字 */
  --lan-on-print-faint:#AFC3DA;   /* 深蓝底上的第三级文字 */
  --lan-on-print-hair:rgba(244,247,251,.22);
  --lan-knock:var(--lan-paper);   /* logo 里反白的折线颜色(页脚里改成印相蓝) */
  --lan-result-bg:var(--lan-print);   /* 工具结果卡:深蓝印相底反白大数字 */

  /* 字号阶梯 */
  --fs-1:14px; --fs-2:15px; --fs-3:17px; --fs-4:18px; --fs-5:21px;
  --fs-body:17px; --fs-art-h1:30px; --fs-art-h2:22px; --fs-art-h3:18px; --fs-page-h1:32px;
  /* 间距(4 的倍数) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px;
  /* 圆角、描边、阴影:蓝晒是方角、发丝线、无阴影 */
  --lan-r:0; --lan-bw:1px; --lan-shadow:none;
  /* 版心与封面 */
  --lan-max:1136px; --lan-gut:40px; --lan-main:700px; --lan-side:296px; --lan-prose:720px;
  --lan-cover-ratio:4/3; --lan-thumb-w:148px; --lan-paper-edge:5px;

  /* 字体:标题用各平台都有的黑体,字重只用 400 / 600(各平台都存在的档位);站名「老号说」烘焙在印相图里 */
  --lan-head:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC",sans-serif;
  --lan-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC",sans-serif;
  --lan-mono:"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --lan-latin:"Avenir Next Condensed","DIN Alternate","Helvetica Neue",Arial,sans-serif;
}

/* ===== 2. 基础 ===== */
*{box-sizing:border-box}
html{background:var(--lan-paper);-webkit-text-size-adjust:100%}
body{margin:0;min-width:320px;color:var(--lan-ink);background:var(--lan-paper);font:16px/1.75 var(--lan-sans);-webkit-font-smoothing:antialiased}
::selection{background:var(--lan-pale);color:var(--lan-ink)}
a{color:inherit;text-decoration-thickness:var(--lan-bw);text-underline-offset:.28em;text-decoration-color:var(--lan-hair);transition:color .15s,text-decoration-color .15s,background .15s,border-color .15s}
a:hover{text-decoration-color:currentColor}
:focus{outline:none}
:focus-visible{outline:2px solid var(--lan-print-2);outline-offset:3px}
time,.lan-mono{font-family:var(--lan-mono);font-variant-numeric:tabular-nums}
img{max-width:100%;height:auto}
.lan-skip{position:absolute;left:-999px;top:8px;z-index:9;padding:10px 16px;background:var(--lan-ink);color:var(--lan-paper)}
.lan-skip:focus{left:10px}
.lan-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lan-wrap{width:min(var(--lan-max),100%);margin:0 auto;padding:0 var(--lan-gut)}
.lan-nobr{white-space:nowrap}

/* ===== 3. 顶栏 ===== */
.lan-bar{border-bottom:var(--lan-bw) solid var(--lan-rule)}
.lan-bar-in{display:flex;align-items:center;min-height:64px}
.lan-brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--lan-ink);text-decoration:none}
.lan-logo{display:block;width:30px;height:30px;flex:none}
.lan-logo .lan-logo-k{fill:none;stroke:var(--lan-knock)}
.lan-brand b{font:700 19px/1 var(--lan-latin);letter-spacing:.2em}
.lan-nav{display:flex;margin-left:auto}
.lan-nav a{display:inline-flex;align-items:center;min-height:64px;padding:0 16px;margin-bottom:-1px;font-size:var(--fs-2);letter-spacing:.08em;color:var(--lan-soft);text-decoration:none;border-bottom:2px solid transparent}
.lan-nav a:hover{color:var(--lan-ink);border-bottom-color:var(--lan-print)}
.lan-nav a[aria-current]{color:var(--lan-ink);border-bottom-color:var(--lan-print)}
.lan-find{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:8px;margin-right:-10px;color:var(--lan-soft);border-left:var(--lan-bw) solid var(--lan-hair)}
.lan-find:hover{color:var(--lan-ink)}
.lan-find svg{width:18px;height:18px}

/* ===== 4. 首页网格与印相站名 ===== */
.lan-desk{display:grid;grid-template-columns:minmax(0,var(--lan-main)) var(--lan-side);justify-content:space-between;grid-template-areas:"head side" "main side";align-items:start}
.lan-head{grid-area:head;padding-top:32px}
.lan-main{grid-area:main;min-width:0}
/* 蓝晒印相区 */
.lan-print{position:relative;margin:0}
.lan-print img{display:block;width:100%;height:auto}
.lan-print h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0}
.lan-by{position:absolute;left:5.7%;top:66%;margin:0;font-size:var(--fs-2);line-height:1.4;letter-spacing:.1em;color:var(--lan-on-print-soft)}
.lan-by b{font-weight:600;color:var(--lan-on-print);margin-right:10px}
.lan-lead{text-wrap:pretty;margin:22px 0 0;max-width:40em;font-size:var(--fs-3);line-height:1.85}

.lan-pick{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;margin-top:24px;border:var(--lan-bw) solid var(--lan-ink);background:var(--lan-sheet);text-decoration:none}
.lan-pick small{display:flex;align-items:center;padding:0 14px;font-size:var(--fs-1);letter-spacing:.14em;background:var(--lan-ink);color:var(--lan-paper)}
.lan-pick span{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 12px;padding:11px 16px}
.lan-pick strong{font:600 var(--fs-3)/1.55 var(--lan-head)}
.lan-pick em{font-style:normal;font-size:var(--fs-1);color:var(--lan-faint)}
.lan-pick svg{align-self:center;width:18px;height:18px;margin-right:14px;color:var(--lan-soft);transition:transform .2s,color .2s}
.lan-pick:hover{background:var(--lan-wash)}
.lan-pick:hover svg{transform:translateX(3px);color:var(--lan-ink)}

/* 区块小标题:等宽编号 + 通栏实线(全站统一) */
.lan-sh{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);padding-bottom:10px;border-bottom:var(--lan-bw) solid var(--lan-rule)}
.lan-sh h2{display:flex;align-items:baseline;gap:14px;margin:0;font:600 var(--fs-4)/1.4 var(--lan-head);letter-spacing:.12em}
.lan-sh h2 span{font:500 var(--fs-1)/1 var(--lan-mono);letter-spacing:.04em;color:var(--lan-print-2)}
.lan-sh p,.lan-sh a{margin:0;font-size:var(--fs-1);color:var(--lan-soft)}
.lan-sh a{display:inline-flex;align-items:center;min-height:32px}
.lan-sh a:hover{color:var(--lan-ink)}

/* ===== 5. 笔记条目(首页、/notes/、话题页共用):封面在右,4:3 带白纸边 ===== */
.lan-recent{margin-top:36px}
.lan-list{list-style:none;margin:0;padding:0}
.lan-list>li{border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-item{display:grid;grid-template-columns:minmax(0,1fr) var(--lan-thumb-w);column-gap:32px;align-items:center;padding:18px 0;text-decoration:none}
.lan-txt{grid-column:1;grid-row:1;min-width:0}
.lan-thumb{display:block;grid-column:2;grid-row:1;width:100%;padding:var(--lan-paper-edge);background:var(--lan-sheet);box-shadow:0 0 0 var(--lan-bw) var(--lan-hair)}
.lan-thumb img{display:block;width:100%;height:auto;aspect-ratio:var(--lan-cover-ratio);object-fit:cover}
.lan-item:hover .lan-thumb{box-shadow:0 0 0 var(--lan-bw) var(--lan-print-2)}
.lan-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;font-size:var(--fs-1);line-height:1.5;color:var(--lan-faint)}
.lan-meta em{font-style:normal;color:var(--lan-print-2);font-weight:500;letter-spacing:.04em}
.lan-meta time{color:var(--lan-soft)}
.lan-chk{font-family:var(--lan-mono);font-variant-numeric:tabular-nums;color:var(--lan-faint)}
.lan-item strong{display:block;text-wrap:balance;margin-top:6px;font:600 var(--fs-4)/1.55 var(--lan-head);color:var(--lan-ink)}
.lan-item:hover strong{text-decoration:underline;text-decoration-color:var(--lan-print-2);text-underline-offset:.3em;text-decoration-thickness:var(--lan-bw)}
.lan-sum{text-wrap:pretty;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:6px;font-size:var(--fs-2);line-height:1.75;color:var(--lan-soft)}
.lan-more{display:flex;justify-content:flex-end;padding-top:var(--sp-3)}
.lan-more a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:var(--fs-2);color:var(--lan-soft)}
.lan-more a:hover{color:var(--lan-ink)}
.lan-more svg{width:16px;height:16px}
/* 紧凑条目:标题 + 日期 */
.lan-lines{list-style:none;margin:0;padding:0}
.lan-lines li{border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-line{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);min-height:48px;padding:11px 0;text-decoration:none}
.lan-line span{font:600 var(--fs-3)/1.55 var(--lan-head)}
.lan-line time{flex:none;font-size:var(--fs-1);color:var(--lan-faint)}
.lan-line:hover span{color:var(--lan-print-2)}

/* ===== 6. 侧栏 ===== */
.lan-side{grid-area:side;padding-top:32px;position:sticky;top:var(--sp-4)}
.lan-search{display:flex;height:44px;border:var(--lan-bw) solid var(--lan-ink);background:var(--lan-sheet)}
.lan-search:focus-within{box-shadow:0 0 0 2px var(--lan-pale)}
.lan-search input{flex:1;min-width:0;border:0;padding:0 12px;background:transparent;color:var(--lan-ink);font:var(--fs-2) var(--lan-sans)}
.lan-search input::placeholder{color:var(--lan-faint)}
.lan-search input:focus-visible{outline:none}
.lan-search button{flex:none;width:44px;border:0;border-left:var(--lan-bw) solid var(--lan-hair);background:transparent;color:var(--lan-soft);cursor:pointer;display:grid;place-items:center}
.lan-search button:hover{color:var(--lan-ink);background:var(--lan-wash)}
.lan-search svg{width:16px;height:16px}

/* 邀请码卡:带四角裁切标的说明单(首页侧栏 + 文章里的 invite 短代码共用) */
.lan-sheet{margin-top:20px;padding:7px;
  background:
   linear-gradient(var(--lan-ink),var(--lan-ink)) 0 0/12px 1px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 0 0/1px 12px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 100% 0/12px 1px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 100% 0/1px 12px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 0 100%/12px 1px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 0 100%/1px 12px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 100% 100%/12px 1px no-repeat,
   linear-gradient(var(--lan-ink),var(--lan-ink)) 100% 100%/1px 12px no-repeat}
.lan-card{background:var(--lan-sheet);border:var(--lan-bw) solid var(--lan-hair)}
.lan-card-top{display:flex;justify-content:space-between;align-items:center;margin:0;padding:7px 16px;background:var(--lan-print);color:var(--lan-on-print);font-size:var(--fs-1);letter-spacing:.12em}
.lan-card-in{padding:14px 18px 18px}
.lan-code-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}
.lan-code{font:600 34px/1.15 var(--lan-mono);letter-spacing:.12em;color:var(--lan-ink)}
.lan-copy{flex:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;min-height:44px;padding:0 14px;border:var(--lan-bw) solid var(--lan-ink);border-radius:var(--lan-r);background:transparent;color:var(--lan-ink);font:500 var(--fs-1)/1 var(--lan-sans);letter-spacing:.06em;cursor:pointer;transition:background .15s,color .15s,transform .05s}
.lan-copy svg{width:14px;height:14px;display:none}
.lan-copy:hover{background:var(--lan-wash)}
.lan-copy:active{transform:translateY(1px)}
.lan-copy[data-state="ok"]{background:var(--lan-ink);color:var(--lan-sheet)}
.lan-copy[data-state="ok"] svg{display:block}
.lan-copynote{min-height:21px;margin:4px 0 0;font-size:var(--fs-1);line-height:1.5;color:var(--lan-soft)}
.lan-copynote.is-bad{color:var(--lan-print-2);font-weight:600}
.lan-gain{margin:12px 0 0;padding-top:12px;border-top:var(--lan-bw) dashed var(--lan-pale);font:600 var(--fs-3)/1.55 var(--lan-head)}
.lan-gain em{font-style:normal;font-family:var(--lan-mono);color:var(--lan-print-2)}
.lan-gain-note{margin:2px 0 0;font-size:var(--fs-1);line-height:1.6;color:var(--lan-soft)}
.lan-go{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;margin-top:14px;border-radius:var(--lan-r);background:var(--lan-print);color:var(--lan-on-print);font:500 var(--fs-2)/1.2 var(--lan-sans);letter-spacing:.06em;text-decoration:none;transition:background .15s,transform .05s}
.lan-go:hover{background:var(--lan-ink);color:var(--lan-on-print);text-decoration:none}
.lan-go:active{transform:translateY(1px)}
.lan-go svg{width:16px;height:16px}
.lan-go-note{text-wrap:pretty;margin:8px 0 0;font-size:var(--fs-1);line-height:1.6;color:var(--lan-soft)}
.lan-go-route{text-wrap:pretty;margin:4px 0 0;font-size:var(--fs-1);line-height:1.6;color:var(--lan-faint)}
.lan-go-route span{font-family:var(--lan-mono)}
/* 文章里的码卡:窄一点,不抢正文 */
.lan-sheet--inline{max-width:500px;margin:var(--sp-6) 0}
.lan-sheet--inline .lan-code{padding:0;background:none;font:600 28px/1.15 var(--lan-mono)}
.lan-prose .lan-sheet p{margin-bottom:0}
.lan-prose .lan-go,.lan-prose .lan-go:hover{color:var(--lan-on-print);text-decoration:none}

.lan-how{margin-top:28px}
.lan-how h2{margin:0;padding-bottom:8px;font:600 var(--fs-2)/1.5 var(--lan-head);letter-spacing:.12em;border-bottom:var(--lan-bw) solid var(--lan-rule)}
.lan-how ol{margin:0;padding:0;list-style:none;counter-reset:how}
.lan-how li{position:relative;padding:9px 0 9px 32px;font-size:var(--fs-1);line-height:1.7;color:var(--lan-soft);border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-how li::before{counter-increment:how;content:counter(how,decimal-leading-zero);position:absolute;left:0;top:9px;font:500 var(--fs-1)/1.7 var(--lan-mono);color:var(--lan-print-2)}
.lan-how p{display:flex;gap:20px;margin:6px 0 0;font-size:var(--fs-1)}
.lan-how p a{display:inline-flex;align-items:center;min-height:32px;color:var(--lan-ink)}

/* ===== 7. 首屏以下:话题网格表、小工具 ===== */
.lan-sec{margin-top:var(--sp-8)}
.lan-topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;border-left:var(--lan-bw) solid var(--lan-hair)}
.lan-topics li{border-right:var(--lan-bw) solid var(--lan-hair);border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-topics a,.lan-topics .lan-topic-off{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:96px;padding:14px 16px;text-decoration:none}
.lan-topics strong{font:600 var(--fs-3)/1.45 var(--lan-head)}
.lan-topics a>span,.lan-topics .lan-topic-off>span{font:var(--fs-1)/1.4 var(--lan-mono);color:var(--lan-faint)}
.lan-topics a:hover{background:var(--lan-sheet)}
.lan-topics a:hover strong{color:var(--lan-print-2)}
.lan-topics .lan-topic-off strong{font-weight:400;color:var(--lan-soft)}
.lan-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-left:var(--lan-bw) solid var(--lan-hair)}
.lan-tool{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--sp-4);padding:20px 22px 22px;border-right:var(--lan-bw) solid var(--lan-hair);border-bottom:var(--lan-bw) solid var(--lan-hair);text-decoration:none}
.lan-tool:hover{background:var(--lan-sheet)}
.lan-tool small{grid-column:1;font:var(--fs-1)/1.5 var(--lan-mono);color:var(--lan-print-2);letter-spacing:.06em}
.lan-tool strong{grid-column:1;margin-top:6px;font:600 var(--fs-5)/1.4 var(--lan-head)}
.lan-tool span{grid-column:1;margin-top:6px;font-size:var(--fs-2);line-height:1.7;color:var(--lan-soft)}
.lan-tool svg{grid-column:2;grid-row:1/4;align-self:center;width:20px;height:20px;color:var(--lan-soft);transition:transform .2s,color .2s}
.lan-tool:hover svg{transform:translateX(3px);color:var(--lan-ink)}

/* ===== 8. 列表页 / 话题页 / 工具页 / 搜索页页头 ===== */
.lan-page{padding-top:var(--sp-6)}
.lan-narrow{max-width:var(--lan-prose)}
.lan-crumbs{display:flex;flex-wrap:wrap;gap:0 var(--sp-2);margin:0 0 var(--sp-3);font-size:var(--fs-1);color:var(--lan-faint)}
.lan-crumbs a{color:var(--lan-soft);text-decoration:none}
.lan-crumbs a:hover{color:var(--lan-ink);text-decoration:underline}
.lan-crumbs i{font-style:normal;color:var(--lan-faint)}
.lan-top{padding-bottom:var(--sp-4);border-bottom:var(--lan-bw) solid var(--lan-rule)}
.lan-top h1{margin:0;text-wrap:balance;font:600 var(--fs-page-h1)/1.35 var(--lan-head);letter-spacing:.06em}
.lan-top-lede{text-wrap:pretty;margin:var(--sp-3) 0 0;max-width:40em;font-size:var(--fs-3);line-height:1.85;color:var(--lan-ink)}
.lan-top-count{margin:var(--sp-3) 0 0;font-size:var(--fs-1);color:var(--lan-faint)}
.lan-top-count b{font:500 var(--fs-1) var(--lan-mono);color:var(--lan-print-2)}
.lan-intro{max-width:40em;margin-top:var(--sp-4);font-size:var(--fs-2);line-height:1.9;color:var(--lan-soft)}
.lan-intro p{margin:0 0 var(--sp-3)}
.lan-aka{margin:var(--sp-2) 0 0;font-size:var(--fs-1);color:var(--lan-faint)}
.lan-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-5);padding-top:var(--sp-3);border-top:var(--lan-bw) solid var(--lan-rule);font-size:var(--fs-2)}
.lan-pager a{display:inline-flex;align-items:center;min-height:44px;color:var(--lan-ink)}
.lan-pager-off{color:var(--lan-faint)}
.lan-pager-at{font:var(--fs-1) var(--lan-mono);color:var(--lan-print-2)}
.lan-alltopics{list-style:none;margin:0;padding:0;counter-reset:topic}
.lan-alltopics li{position:relative;border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-alltopics li::before{counter-increment:topic;content:counter(topic,decimal-leading-zero);position:absolute;left:0;top:calc(var(--sp-4) + 4px);font:500 var(--fs-1)/1.4 var(--lan-mono);color:var(--lan-print-2)}
.lan-alltopics a,.lan-alltopics .lan-topic-off{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--sp-5);padding:var(--sp-4) 0 var(--sp-4) 44px;text-decoration:none}
.lan-alltopics .lan-topic-notes a{display:inline;padding:0;text-decoration:underline;text-underline-offset:3px;color:inherit}
.lan-alltopics strong{font:600 var(--fs-4)/1.5 var(--lan-head)}
.lan-alltopics em{grid-column:1;font-style:normal;font-size:var(--fs-2);line-height:1.7;color:var(--lan-soft)}
.lan-alltopics a>span,.lan-alltopics .lan-topic-off>span{grid-column:2;grid-row:1/3;align-self:center;font:var(--fs-1) var(--lan-mono);color:var(--lan-faint);white-space:nowrap}
.lan-alltopics a:hover strong{color:var(--lan-print-2)}
.lan-alltopics .lan-topic-off strong{font-weight:400;color:var(--lan-soft)}
.lan-others{margin-top:var(--sp-7);font-size:var(--fs-2);color:var(--lan-soft)}
.lan-others a{margin-right:var(--sp-4)}

/* ===== 9. 文章页 ===== */
.lan-art{max-width:var(--lan-prose);margin:0 auto;padding-top:var(--sp-6)}
.lan-art-head{margin:0}
/* 标题区:一条窄的蓝晒印相带(静态图拉伸,只放标题) */
.lan-strip{margin:var(--sp-2) 0 0;padding:26px 30px 28px;color:var(--lan-on-print);background:url(/img/print/band-760.webp) 0 0/100% 100% no-repeat;background-image:image-set(url(/img/print/band-760.webp) 1x,url(/img/print/band-1520.webp) 2x)}
.lan-strip h1{margin:0;text-wrap:pretty;font:600 var(--fs-art-h1)/1.45 var(--lan-head);letter-spacing:.02em}
.lan-art-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-1) 14px;margin:var(--sp-4) 0 0;font-size:var(--fs-1);color:var(--lan-soft)}
.lan-art-meta b{font-weight:600;color:var(--lan-ink);letter-spacing:.1em}
.lan-art-meta .lan-chk{padding:1px 8px;border:var(--lan-bw) solid var(--lan-print-2);color:var(--lan-print-2)}
.lan-art-topics{display:flex;flex-wrap:wrap;gap:var(--sp-1) 14px;margin:var(--sp-2) 0 0;font-size:var(--fs-1)}
.lan-art-topics a,.lan-art-topics span{color:var(--lan-print-2);font-weight:500;text-decoration:none}
.lan-art-topics a:hover{text-decoration:underline}
.lan-cover{margin:var(--sp-5) 0 0;padding:var(--lan-paper-edge);background:var(--lan-sheet);box-shadow:0 0 0 var(--lan-bw) var(--lan-hair)}
.lan-cover img{display:block;width:100%;height:auto;aspect-ratio:var(--lan-cover-ratio);object-fit:cover}
.lan-cover figcaption,.lan-shot figcaption{margin-top:var(--sp-2);font-size:var(--fs-1);color:var(--lan-faint)}

.lan-toc{margin:var(--sp-6) 0 0;border-top:var(--lan-bw) solid var(--lan-rule)}
.lan-toc h2{margin:0;padding:10px 0 6px;font:600 var(--fs-2)/1.5 var(--lan-head);letter-spacing:.12em}
.lan-toc ol{margin:0;padding:0;list-style:none;counter-reset:toc}
.lan-toc li{position:relative;padding:7px 0 7px 36px;font-size:var(--fs-2);line-height:1.6;border-top:var(--lan-bw) solid var(--lan-hair)}
.lan-toc li::before{counter-increment:toc;content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:8px;font:500 var(--fs-1)/1.6 var(--lan-mono);color:var(--lan-print-2)}
.lan-toc a{text-decoration:none}
.lan-toc a:hover{color:var(--lan-print-2);text-decoration:underline}

.lan-prose{margin-top:var(--sp-6);font-size:var(--fs-body);line-height:1.95;letter-spacing:.01em}
.lan-prose>*{margin:0 0 1.15em}
.lan-prose h2{margin:2.2em 0 .8em;padding-top:var(--sp-3);border-top:var(--lan-bw) solid var(--lan-rule);font:600 var(--fs-art-h2)/1.45 var(--lan-head);letter-spacing:.03em;scroll-margin-top:var(--sp-5)}
.lan-prose h3{margin:1.8em 0 .6em;font:600 var(--fs-art-h3)/1.5 var(--lan-head);scroll-margin-top:var(--sp-5)}
.lan-prose a{text-decoration-color:var(--lan-print-2)}
.lan-prose a:hover{color:var(--lan-print-2)}
.lan-prose strong{font-weight:600}
.lan-prose ul{padding-left:0;list-style:none}
.lan-prose ul>li{position:relative;padding-left:1.3em;margin:.35em 0}
.lan-prose ul>li::before{content:"";position:absolute;left:.15em;top:.95em;width:.55em;height:var(--lan-bw);background:var(--lan-ink)}
.lan-prose ol{padding-left:0;list-style:none;counter-reset:step}
.lan-prose ol>li{position:relative;counter-increment:step;padding:.15em 0 .15em 2.6em;margin:.5em 0}
.lan-prose ol>li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:.35em;padding:0 4px;background:var(--lan-print);color:var(--lan-on-print);font:500 var(--fs-1)/1.6 var(--lan-mono)}
.lan-prose blockquote{margin-left:0;padding-left:var(--sp-4);border-left:2px solid var(--lan-pale);color:var(--lan-soft)}
.lan-prose code{padding:.1em .3em;background:var(--lan-wash);font:.9em var(--lan-mono)}
.lan-prose hr{border:0;border-top:var(--lan-bw) solid var(--lan-hair);margin:2em 0}
.lan-prose img{display:block}
/* 样式块 */
.lan-prose .note,.lan-prose .warn{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-2);line-height:1.85}
.lan-prose .note{background:var(--lan-wash);border-left:3px solid var(--lan-print-2)}
.lan-prose .warn{background:var(--lan-sheet);border:var(--lan-bw) solid var(--lan-ink);border-left-width:4px}
.lan-prose .key{padding:var(--sp-2) 0;border-top:var(--lan-bw) solid var(--lan-rule);border-bottom:var(--lan-bw) solid var(--lan-rule);font:600 var(--fs-4)/1.75 var(--lan-head);color:var(--lan-print)}
/* 表格外层:窄屏横滑 */
.lan-tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.4em;border-top:var(--lan-bw) solid var(--lan-rule)}
.lan-tbl table{width:100%;min-width:520px;border-collapse:collapse;font-size:var(--fs-2);line-height:1.7}
.lan-tbl th,.lan-tbl td{padding:9px 12px 9px 0;border-bottom:var(--lan-bw) solid var(--lan-hair);text-align:left;vertical-align:top}
.lan-tbl th{font-weight:600;white-space:nowrap;color:var(--lan-ink);background:var(--lan-wash);padding-left:8px}
.lan-tbl td:first-child{padding-left:8px}
.lan-tbl .al-center{text-align:center}
.lan-tbl .al-right{text-align:right}
.lan-shot{margin:var(--sp-5) 0}
.lan-shot img{display:block;border:var(--lan-bw) solid var(--lan-hair)}

/* 问答区 */
.lan-faq{margin-top:var(--sp-7);counter-reset:qa}
.lan-qa{padding:var(--sp-4) 0;border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-qa h3{margin:0;font:600 var(--fs-3)/1.6 var(--lan-head)}
.lan-qa h3::before{counter-increment:qa;content:"Q" counter(qa,decimal-leading-zero);margin-right:12px;font:500 var(--fs-1) var(--lan-mono);color:var(--lan-print-2)}
.lan-qa p{margin:var(--sp-2) 0 0;font-size:var(--fs-2);line-height:1.9;color:var(--lan-soft)}

/* 文末:话题条、署名、相关笔记 */
.lan-tagline{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-7);padding-top:var(--sp-4);border-top:var(--lan-bw) solid var(--lan-rule);font-size:var(--fs-1);color:var(--lan-faint)}
.lan-tagline a,.lan-tagline span{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:var(--lan-bw) solid var(--lan-hair);font-size:var(--fs-1);color:var(--lan-soft);text-decoration:none}
.lan-tagline a{color:var(--lan-print-2);border-color:var(--lan-print-2)}
.lan-tagline a:hover{background:var(--lan-wash)}
.lan-tagline b{font-weight:400}
.lan-sign{margin:var(--sp-4) 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--lan-soft)}
.lan-sign b{font-weight:600;color:var(--lan-ink)}
.lan-rel{margin-top:var(--sp-7)}
.lan-rel ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-5);margin:var(--sp-4) 0 0;padding:0;list-style:none}
.lan-rel a{display:block;text-decoration:none}
.lan-rel strong{display:block;margin-top:var(--sp-2);font:600 var(--fs-2)/1.6 var(--lan-head);color:var(--lan-ink)}
.lan-rel a:hover strong{color:var(--lan-print-2)}

/* ===== 10. 小工具 ===== */
.lan-toolpage{max-width:880px}
.lan-tool-lede{max-width:40em}
.lan-calc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:var(--sp-6);align-items:start;margin-top:var(--sp-5)}
.lan-form{margin:0}
.lan-fs{margin:0 0 var(--sp-5);padding:0;border:0}
.lan-fs legend{padding:0;margin-bottom:var(--sp-2);font:600 var(--fs-2)/1.5 var(--lan-sans);letter-spacing:.06em}
.lan-seg{display:inline-flex;border:var(--lan-bw) solid var(--lan-ink)}
.lan-seg label{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;font-size:var(--fs-2);cursor:pointer;background:var(--lan-sheet)}
.lan-seg label+label{border-left:var(--lan-bw) solid var(--lan-ink)}
.lan-seg input{position:absolute;opacity:0;width:1px;height:1px}
.lan-seg label:has(input:checked){background:var(--lan-print);color:var(--lan-on-print)}
.lan-seg label:has(input:focus-visible){outline:2px solid var(--lan-print-2);outline-offset:2px}
.lan-field{display:block;margin:0 0 var(--sp-4)}
.lan-field>span{display:block;margin-bottom:var(--sp-1);font-size:var(--fs-1);color:var(--lan-soft)}
.lan-field input[type="number"]{width:100%;max-width:280px;height:44px;padding:0 12px;border:var(--lan-bw) solid var(--lan-faint);border-radius:var(--lan-r);background:var(--lan-sheet);color:var(--lan-ink);font:500 var(--fs-3) var(--lan-mono)}
.lan-field input[type="number"]:focus{border-color:var(--lan-ink);box-shadow:0 0 0 2px var(--lan-pale)}
.lan-field small{display:block;margin-top:var(--sp-1);font-size:var(--fs-1);color:var(--lan-faint)}
.lan-pair{display:flex;flex-wrap:wrap;gap:0 var(--sp-5)}
.lan-pair .lan-field{flex:1 1 160px}
.lan-check{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-2);cursor:pointer}
.lan-check input{width:18px;height:18px;margin:4px 0 0;accent-color:var(--lan-print)}
.lan-hide{display:none}
.lan-result{position:sticky;top:var(--sp-5);padding:var(--sp-5);background:var(--lan-result-bg);color:var(--lan-on-print);box-shadow:var(--lan-shadow)}
.lan-result h2{margin:0;font:600 var(--fs-1)/1.5 var(--lan-sans);letter-spacing:.14em;color:var(--lan-on-print-soft)}
.lan-big{margin:var(--sp-2) 0 0;font:600 44px/1.1 var(--lan-mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.lan-big small{margin-left:6px;font-size:var(--fs-2);font-weight:500;color:var(--lan-on-print-soft)}
.lan-rows{margin:var(--sp-4) 0 0;padding:0}
.lan-rows div{display:flex;justify-content:space-between;gap:var(--sp-3);padding:8px 0;border-top:var(--lan-bw) solid var(--lan-on-print-hair);font-size:var(--fs-2)}
.lan-rows dt{color:var(--lan-on-print-soft)}
.lan-rows dd{margin:0;font-family:var(--lan-mono);font-variant-numeric:tabular-nums}
.lan-split{display:flex;height:10px;margin-top:var(--sp-4);background:var(--lan-on-print-hair)}
.lan-split i{display:block;height:100%}
.lan-split .lan-split-a{background:var(--lan-on-print)}
.lan-split .lan-split-b{background:var(--lan-on-print-faint)}
.lan-legend{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);margin:var(--sp-2) 0 0;font-size:var(--fs-1);color:var(--lan-on-print-soft)}
.lan-legend span::before{content:"";display:inline-block;width:9px;height:9px;margin-right:6px;vertical-align:0}
.lan-legend .lan-split-a::before{background:var(--lan-on-print)}
.lan-legend .lan-split-b::before{background:var(--lan-on-print-faint)}
.lan-formula{margin:var(--sp-4) 0 0;padding-top:var(--sp-3);border-top:var(--lan-bw) solid var(--lan-on-print-hair);font:var(--fs-1)/1.8 var(--lan-mono);color:var(--lan-on-print-soft);word-break:break-word}
.lan-risk{margin:var(--sp-5) 0 0;padding:var(--sp-3) var(--sp-4);border:var(--lan-bw) solid var(--lan-ink);border-left-width:4px;background:var(--lan-sheet);font-size:var(--fs-2);line-height:1.8}
.lan-src{margin:var(--sp-3) 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--lan-faint)}
.lan-guide{margin-top:var(--sp-7);border-top:var(--lan-bw) solid var(--lan-rule)}
.lan-guide summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;cursor:pointer;font:600 var(--fs-4)/1.4 var(--lan-head);letter-spacing:.08em;list-style:none}
.lan-guide summary::-webkit-details-marker{display:none}
.lan-guide summary::after{content:"+";font:400 22px/1 var(--lan-mono);color:var(--lan-print-2)}
.lan-guide[open] summary::after{content:"−"}
.lan-guide .lan-prose{margin-top:var(--sp-2)}
/* 注销清单 */
.lan-progress{display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-5);padding:var(--sp-4) var(--sp-5);background:var(--lan-result-bg);color:var(--lan-on-print)}
.lan-progress-n{margin:0;font:600 30px/1 var(--lan-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.lan-progress-n small{font-size:var(--fs-2);color:var(--lan-on-print-soft)}
.lan-progress-bar{flex:1;height:8px;background:var(--lan-on-print-hair);overflow:hidden}
.lan-progress-bar i{display:block;width:0;height:100%;background:var(--lan-on-print);transition:width .25s}
.lan-reset{flex:none;min-height:40px;padding:0 14px;border:var(--lan-bw) solid var(--lan-on-print-soft);background:transparent;color:var(--lan-on-print);font:500 var(--fs-1) var(--lan-sans);cursor:pointer}
.lan-reset:hover{border-color:var(--lan-on-print)}
.lan-progress-msg{margin:var(--sp-2) 0 0;min-height:24px;font-size:var(--fs-1);color:var(--lan-soft)}
.lan-group{margin-top:var(--sp-6)}
.lan-group h2{margin:0 0 var(--sp-1);padding-bottom:var(--sp-2);border-bottom:var(--lan-bw) solid var(--lan-rule);font:600 var(--fs-4)/1.4 var(--lan-head);letter-spacing:.08em}
.lan-group ul{margin:0;padding:0;list-style:none}
.lan-group li{border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-tick{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:var(--sp-3);padding:var(--sp-3) 0;cursor:pointer}
.lan-tick input{width:20px;height:20px;margin:4px 0 0;accent-color:var(--lan-print)}
.lan-tick strong{font:600 var(--fs-3)/1.6 var(--lan-sans)}
.lan-tick em{grid-column:2;font-style:normal;font-size:var(--fs-1);line-height:1.75;color:var(--lan-soft)}
.lan-tick:has(input:checked) strong{color:var(--lan-soft);text-decoration:line-through;text-decoration-color:var(--lan-faint)}

/* ===== 11. 搜索页、404 ===== */
.lan-findpage .lan-search{max-width:560px;margin-top:var(--sp-5)}
.lan-hits{list-style:none;margin:var(--sp-5) 0 0;padding:0}
.lan-hits li{border-bottom:var(--lan-bw) solid var(--lan-hair)}
.lan-hits a{display:block;padding:var(--sp-3) 0;text-decoration:none}
.lan-hits strong{display:block;font:600 var(--fs-3)/1.6 var(--lan-head)}
.lan-hits span{display:block;font-size:var(--fs-1);color:var(--lan-soft)}
.lan-hits small{font:var(--fs-1) var(--lan-mono);color:var(--lan-print-2)}
.lan-hits a:hover strong{color:var(--lan-print-2)}
.lan-findnote{margin:var(--sp-3) 0 0;font-size:var(--fs-1);color:var(--lan-faint)}
.lan-lost-go{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);margin:var(--sp-5) 0 0;padding:0;list-style:none}
.lan-lost-go a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-2)}

/* ===== 12. 通用页(合规页) ===== */
.lan-doc>h1{margin:0;padding-bottom:var(--sp-3);border-bottom:var(--lan-bw) solid var(--lan-rule);text-wrap:balance;font:600 var(--fs-art-h1)/1.4 var(--lan-head);letter-spacing:.04em}
.lan-doc .lan-prose{margin-top:var(--sp-5)}
.lan-doc-date{margin:var(--sp-3) 0 0;font-size:var(--fs-1);color:var(--lan-faint)}

/* ===== 13. 页脚:整块印成蓝 ===== */
.lan-foot{margin-top:var(--sp-9);background:var(--lan-print);color:var(--lan-on-print-soft);--lan-knock:var(--lan-print)}
.lan-foot-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.7fr) minmax(0,.9fr);column-gap:var(--sp-7);padding-top:40px;padding-bottom:28px}
.lan-foot .lan-brand{color:var(--lan-on-print);margin-bottom:var(--sp-3)}
.lan-foot p{margin:0 0 var(--sp-3);max-width:40em;font-size:var(--fs-1);line-height:1.8;color:var(--lan-on-print-soft)}
.lan-foot p a{color:var(--lan-on-print)}
.lan-foot h2{margin:var(--sp-2) 0;font:600 var(--fs-1)/1.5 var(--lan-sans);letter-spacing:.14em;color:var(--lan-on-print)}
.lan-foot ul{margin:0;padding:0;list-style:none}
.lan-foot li a{display:inline-flex;align-items:center;min-height:32px;font-size:var(--fs-1);color:var(--lan-on-print-soft);text-decoration:none}
.lan-foot li a:hover{color:var(--lan-on-print);text-decoration:underline}
.lan-foot :focus-visible{outline-color:var(--lan-on-print)}
.lan-foot-mail{font-family:var(--lan-mono);color:var(--lan-on-print)}
.lan-foot-base{display:flex;justify-content:space-between;gap:var(--sp-4);padding-top:var(--sp-3);padding-bottom:var(--sp-6);border-top:var(--lan-bw) solid var(--lan-on-print-hair);font-size:var(--fs-1);color:var(--lan-on-print-faint)}
.lan-foot-base span:last-child{font-family:var(--lan-mono)}

/* ===== 14. 响应式 ===== */
@media (max-width:960px){
  :root{--lan-gut:24px}
  .lan-desk{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "card" "main" "how"}
  .lan-side{display:contents}
  .lan-side .lan-search{display:none}
  .lan-side .lan-sheet{grid-area:card;max-width:460px}
  .lan-how{grid-area:how;max-width:560px}
  .lan-topics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lan-calc{grid-template-columns:minmax(0,1fr)}
  .lan-side{position:static}
  .lan-result{position:static;order:-1}
  .lan-foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:var(--sp-5)}
  .lan-foot-grid>div:first-child{grid-column:1/3}
}
@media (max-width:640px){
  :root{--fs-3:16px;--fs-4:16px;--fs-5:18px;--fs-body:16px;--fs-art-h1:23px;--fs-art-h2:19px;--fs-art-h3:17px;--fs-page-h1:25px;
        --lan-gut:16px;--lan-thumb-w:96px;--lan-paper-edge:3px}
  body{font-size:15px}
  .lan-bar-in{display:grid;grid-template-columns:1fr auto;min-height:0}
  .lan-brand{min-height:50px}
  .lan-logo{width:28px;height:28px}
  .lan-brand b{font-size:18px}
  .lan-find{grid-column:2;grid-row:1;margin:0 -10px 0 0;border-left:0}
  .lan-nav{grid-column:1/3;margin:0 calc(var(--lan-gut) * -1);border-top:var(--lan-bw) solid var(--lan-hair)}
  .lan-nav a{flex:1;justify-content:center;min-height:42px;padding:0}
  .lan-head{padding-top:16px}
  .lan-by{left:5.2%;top:64%;font-size:12.5px;letter-spacing:.04em}
  .lan-by b{margin-right:6px}
  .lan-lead{margin-top:12px;line-height:1.75;font-size:15px}
  .lan-sheet{margin-top:14px;padding:6px}
  .lan-card-top{padding:5px 12px}
  .lan-card-in{padding:8px 12px 12px}
  .lan-code{font-size:28px}
  .lan-copynote{margin-top:0}
  .lan-gain{margin-top:6px;padding-top:8px;font-size:15px}
  .lan-go{margin-top:10px;min-height:44px}
  .lan-go-note{margin-top:6px;line-height:1.5}
  .lan-go-route{margin-top:2px;line-height:1.5}
  .lan-pick{grid-template-columns:minmax(0,1fr)}
  .lan-pick small{padding:5px 12px}
  .lan-pick span{padding:10px 12px}
  .lan-pick svg{display:none}
  .lan-recent{margin-top:28px}
  .lan-item{column-gap:14px;align-items:start;padding:16px 0}
  .lan-thumb{margin-top:4px}
  .lan-meta{gap:0 10px}
  .lan-item strong{margin-top:2px;line-height:1.5;text-wrap:pretty}
  .lan-sum{font-size:var(--fs-1);line-height:1.6}
  .lan-sh a{min-height:44px}
  .lan-how p a{min-height:44px}
  .lan-sec{margin-top:var(--sp-7)}
  .lan-topics a,.lan-topics .lan-topic-off{min-height:84px;padding:12px}
  .lan-tools{grid-template-columns:minmax(0,1fr)}
  .lan-tool{padding:16px}
  .lan-art{padding-top:var(--sp-5)}
  .lan-strip{padding:16px 16px 18px}
  .lan-prose h2{margin-top:1.8em}
  .lan-rel ul{grid-template-columns:minmax(0,1fr);gap:0}
  .lan-rel li{border-bottom:var(--lan-bw) solid var(--lan-hair)}
  .lan-rel a{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:var(--sp-3);align-items:center;padding:var(--sp-3) 0}
  .lan-rel strong{margin-top:0}
  .lan-big{font-size:36px}
  .lan-progress{flex-wrap:wrap}
  .lan-progress-bar{flex-basis:100%;order:3}
  .lan-alltopics a,.lan-alltopics .lan-topic-off{padding-left:36px}
  .lan-foot{margin-top:var(--sp-8)}
  .lan-foot-grid{grid-template-columns:minmax(0,1fr)}
  .lan-foot-grid>div:first-child{grid-column:auto}
  .lan-foot li a{min-height:44px;min-width:44px}
  .lan-foot-base{flex-direction:column;gap:2px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.lan-bar,.lan-foot,.lan-rel{display:none}}
