/* ==========================================================================
   全宝 quan77.cn · 全站唯一 CSS（v2 赤金大刊版）
   设计语言：米纸 + 墨 + 朱砂 + 赤金 · editorial 衬线 · 直角 · 硬阴影
   配色与版式血统：岱昊「赤金大刊」合同模板
   目录：01 字体 / 02 Tokens / 03 Reset / 04 工具类 / 05 顶栏 / 06 抽屉
        07 报头 / 08 大刊主体 / 09 速览 / 10 版块头 / 11 精选 Bento
        12 总目 / 13 为何全宝 / 14 上新热榜 / 15 页脚 / 16 关键帧
        17 无障碍 / 18 响应式
   ========================================================================== */

/* ===== 01 字体 ===== */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url('../fonts/fraunces-latin.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url('../fonts/fraunces-latin-italic.woff2') format('woff2')}

/* ===== 02 Design Tokens ===== */
:root{
  /* 亮色 · 米纸 */
  --paper:#F7EDDA;        /* 纸面 */
  --paper2:#F2E4C9;       /* 深纸 / 巨字水印 */
  --sheet:#FCF9F1;        /* 大刊版心 */
  --cell-h:rgba(255,255,255,.55); /* 单元格悬浮 */
  --ink:#2C1810;          /* 浓墨 */
  --ink-soft:#4A3528;     /* 正文墨 */
  --muted:#8A7361;
  --faint:#B5A18C;
  --line:#E2D4BC;
  --line2:#C9B698;
  --red:#C5391F;          /* 朱砂 */
  --amber:#D9892F;        /* 赤金 */
  --cream:#F7EDDA;        /* 墨块上的纸色文字（恒定） */
  --block:#2C1810;        /* 墨块 */
  --shadow:rgba(44,24,16,.07);

  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --en:'Fraunces',"Songti SC",serif;
  --ease:cubic-bezier(.4,0,.2,1);
}

[data-theme="dark"]{
  /* 暗色 · 墨夜 */
  --paper:#1C1510;
  --paper2:#241B12;
  --sheet:#251D14;
  --cell-h:rgba(255,255,255,.035);
  --ink:#F2E6CF;
  --ink-soft:#D9C9AC;
  --muted:#9D8770;
  --faint:#6B5A48;
  --line:#3B2F22;
  --line2:#4D3D2B;
  --red:#E25C3B;
  --amber:#E2A458;
  --cream:#F7EDDA;
  --block:#120D09;
  --shadow:rgba(0,0,0,.35);
}

/* ===== 03 Reset ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth;scroll-padding-top:84px}
body{
  font-family:var(--serif);font-size:15.5px;line-height:1.9;
  color:var(--ink-soft);background:var(--paper);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background-color .35s var(--ease),color .35s var(--ease);
}
/* 簾纹纸理 */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(44,24,16,.016) 0 1px,transparent 1px 5px);
}
[data-theme="dark"] body::before{background:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 5px)}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
/* 去 iOS 输入框原生圆角 / 内阴影（排除 checkbox/radio/range 与 select 原生箭头，避免破坏勾选框/滑块/下拉箭头） */
input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea{-webkit-appearance:none;appearance:none;border-radius:0}
ul,ol{list-style:none}
strong{color:var(--ink)}
::selection{background:rgba(197,57,31,.18)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}

::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-thumb{background:var(--line2);border:2px solid var(--paper)}
::-webkit-scrollbar-track{background:transparent}

/* ===== 03.5 移动端通病防护 ===== */
/* iOS Safari：可输入元素 font-size<16px 时聚焦会自动放大整页（"点击搜索框放大"根因）
   → 移动端统一 ≥16px 杜绝放大。!important 覆盖各组件/工具页设计的小字。桌面不受影响。 */
@media (max-width:768px){
  input,select,textarea{font-size:16px!important}
}

/* ===== 04 工具类 ===== */
.container{max-width:1140px;margin:0 auto;padding:0 28px}
.skip{position:fixed;top:-48px;left:16px;z-index:200;padding:8px 16px;background:var(--red);color:var(--cream);transition:top .2s}
.skip:focus{top:0}

.reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease) var(--d,0s),transform .7s var(--ease) var(--d,0s)}
.reveal.in{opacity:1;transform:none}

/* 印章（顶栏 / 报头 / 页脚共用） */
.brand-seal{color:var(--red)}
.seal-t{font-family:var(--serif);font-weight:900;font-size:34px;fill:var(--cream);text-anchor:middle}

/* ===== 05 顶栏 ===== */
.topbar{
  position:sticky;top:0;z-index:100;
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border-bottom:1.5px solid var(--ink);
  transition:background-color .35s var(--ease);
}
.topbar-in{display:flex;align-items:center;gap:26px;padding-top:12px;padding-bottom:12px}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand .brand-seal{width:36px;height:36px}
.brand-txt{display:flex;flex-direction:column;line-height:1.25}
.brand-txt strong{font-size:18px;font-weight:900;letter-spacing:.08em;color:var(--ink)}
.brand-txt i{font-family:var(--en);font-style:italic;font-size:11px;color:var(--muted);letter-spacing:.02em}

.nav{display:flex;gap:2px;margin-left:6px}
.nav a{
  padding:6px 13px;font-size:14px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em;
  border-bottom:2px solid transparent;
  transition:color .2s,border-color .2s;
}
.nav a:hover{color:var(--red);border-bottom-color:var(--red)}

.topbar-acts{display:flex;align-items:center;gap:8px;margin-left:auto}
.tbtn{
  display:grid;place-items:center;width:36px;height:36px;
  border:1.5px solid var(--ink);color:var(--ink);
  transition:background-color .25s var(--ease),color .25s var(--ease);
}
.tbtn:hover{background:var(--ink);color:var(--paper)}
.tbtn-menu{display:none}
.ic-moon,[data-theme="dark"] .ic-sun{display:none}
[data-theme="dark"] .ic-moon{display:block}
.ic-x,.menu-open .ic-menu{display:none}
.menu-open .ic-x{display:block}

/* ===== 06 抽屉 ===== */
.drawer{
  position:fixed;inset:61px 0 0;z-index:99;
  background:color-mix(in srgb,var(--paper) 96%,transparent);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  padding:26px 28px;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
.drawer-nav a{
  display:flex;align-items:center;gap:14px;
  padding:16px 6px;font-size:18px;font-weight:900;color:var(--ink);letter-spacing:.08em;
  border-bottom:1px solid var(--line2);
}
.drawer-nav a i{font-style:normal;font-size:13px;font-weight:700;color:var(--red)}
.drawer-nav a:active{background:var(--cell-h)}

/* ===== 07 报头 Masthead ===== */
.mast{position:relative;overflow:hidden;border-bottom:2px solid var(--ink);padding-bottom:64px}
.mast::before{
  content:attr(data-char);position:absolute;right:-2%;top:54%;transform:translateY(-50%);
  font-size:44vh;font-weight:900;line-height:.8;color:var(--paper2);
  z-index:0;pointer-events:none;
}
.mast .container{position:relative;z-index:1}

.mast-rule{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  border-bottom:1.5px solid var(--ink);
  padding:12px 2px;margin-bottom:54px;
  font-size:12.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.12em;
}
.mast-rule-mid{font-family:var(--en);font-style:italic;font-weight:500;font-size:11.5px;color:var(--muted);letter-spacing:.28em}

.mast-in{max-width:760px;margin:0 auto;text-align:center}
.mast-tag{
  display:inline-block;margin-bottom:34px;padding:7px 22px;
  font-family:var(--en);font-style:italic;font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--red);border:1.5px solid var(--red);
  animation:fade-up .8s var(--ease) both;
}
.mast-title-wrap{position:relative;display:inline-block}
.mast-title{
  font-size:clamp(86px,15vw,158px);font-weight:900;line-height:1.05;
  letter-spacing:.1em;margin-right:-.1em;color:var(--ink);
  animation:title-in 1s var(--ease) .1s both;
}
.seal{
  position:absolute;right:-78px;bottom:14px;width:72px;height:72px;
  color:var(--red);transform:rotate(-8deg);
  mix-blend-mode:multiply;
  animation:stamp .6s cubic-bezier(.2,1.4,.4,1) 1s both;
}
[data-theme="dark"] .seal{mix-blend-mode:normal}

.mast-sub-en{
  font-family:var(--en);font-style:italic;font-size:15px;color:var(--muted);letter-spacing:.06em;
  margin:14px 0 10px;
  animation:fade-up .8s var(--ease) .3s both;
}
.mast-sub{
  font-size:15.5px;color:var(--ink-soft);margin-bottom:40px;
  animation:fade-up .8s var(--ease) .4s both;
}

/* 检索 */
.mast-search{
  position:relative;display:flex;align-items:center;gap:10px;
  max-width:620px;margin:0 auto;padding:7px 7px 7px 18px;
  background:var(--sheet);border:1.5px solid var(--ink);
  box-shadow:8px 8px 0 var(--shadow);
  transition:box-shadow .25s var(--ease),transform .25s var(--ease);
  animation:fade-up .8s var(--ease) .5s both;
}
.mast-search:focus-within{transform:translate(-2px,-2px);box-shadow:11px 11px 0 var(--shadow)}
.ms-ico{flex-shrink:0;color:var(--muted)}
.mast-search input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:15px;height:42px;font-family:var(--serif)}
.mast-search input::placeholder{color:var(--faint)}
.mast-search input::-webkit-search-cancel-button{display:none}
.ms-kbd{
  flex-shrink:0;font-family:var(--en);font-style:italic;font-size:13px;color:var(--muted);
  padding:2px 10px;border:1px solid var(--line2);
}
.ms-btn{
  flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  height:42px;padding:0 26px;
  background:var(--red);color:var(--cream);
  font-family:var(--serif);font-weight:700;font-size:14.5px;letter-spacing:.2em;
  transition:background-color .25s var(--ease);
}
.ms-btn:hover{background:var(--ink)}
[data-theme="dark"] .ms-btn:hover{background:var(--block);color:var(--ink)}

/* 检索联想 */
.search-suggest{
  position:absolute;top:calc(100% + 10px);left:-1.5px;right:-1.5px;z-index:50;
  background:var(--sheet);border:1.5px solid var(--ink);
  box-shadow:8px 8px 0 var(--shadow);
  padding:6px;max-height:320px;overflow:auto;text-align:left;
}
.search-suggest li a{
  display:flex;align-items:baseline;gap:10px;padding:10px 14px;
  font-size:14.5px;font-weight:700;color:var(--ink);
}
.search-suggest li a:hover,.search-suggest li.act a{background:var(--paper);color:var(--red)}
.search-suggest .sg-no{font-family:var(--en);font-style:italic;font-weight:500;font-size:12px;color:var(--red)}
.search-suggest .sg-tag{margin-left:auto;font-size:12px;font-weight:400;color:var(--muted)}
.search-suggest .sg-empty{padding:14px;text-align:center;color:var(--faint);font-size:13.5px;letter-spacing:.2em}

.mast-hot{
  margin-top:22px;font-size:13px;color:var(--muted);letter-spacing:.04em;
  animation:fade-up .8s var(--ease) .6s both;
}
.mast-hot i{font-style:normal;color:var(--faint);margin:0 2px}
.mast-hot a{
  font-weight:700;color:var(--ink-soft);padding-bottom:2px;
  border-bottom:1.5px dashed var(--amber);
  transition:color .2s,border-color .2s;
}
.mast-hot a:hover{color:var(--red);border-bottom-color:var(--red)}

/* ===== 08 大刊主体 ===== */
.sheet{
  background:var(--sheet);border:1.5px solid var(--ink);
  box-shadow:14px 14px 0 var(--shadow);
  padding:54px 58px 64px;
  margin:52px 0 0;
}

/* ===== 09 速览（keyterms） ===== */
.keyterms{border:1.5px solid var(--ink);margin-bottom:56px}
.kt-head{
  background:var(--block);color:var(--cream);
  font-size:12.5px;font-weight:700;letter-spacing:.22em;padding:10px 18px;
}
.kt-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.kt{padding:18px 20px 15px;border-right:1px solid var(--line);border-top:1px solid var(--line)}
.kt:nth-child(4n){border-right:none}
.kt-label{font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.08em}
.kt-val{display:flex;align-items:baseline;gap:5px}
.kt-val b{font-family:var(--en);font-weight:600;font-size:31px;color:var(--red);line-height:1.1}
.kt-unit{font-size:12.5px;color:var(--muted)}

/* ===== 10 版块头（clause__head） ===== */
.sec{margin-bottom:64px}
.sec-last{margin-bottom:0}
.sec-head{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  border-bottom:1.5px solid var(--ink);
  padding-bottom:12px;margin-bottom:26px;
}
.sec-badge{
  align-self:center;background:var(--red);color:var(--cream);
  font-size:12.5px;font-weight:700;padding:5px 14px;letter-spacing:.16em;white-space:nowrap;
}
.sec-title{font-size:23px;font-weight:900;color:var(--ink);letter-spacing:.06em}
.sec-en{font-family:var(--en);font-style:italic;font-size:13px;color:var(--muted);letter-spacing:.04em}
.sec-more{
  margin-left:auto;font-size:13.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em;
  transition:color .2s;
}
.sec-more:hover{color:var(--red)}

/* ===== 11 精选 Bento（发丝格报纸版面） ===== */
.bento{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(152px,auto);
  gap:1px;background:var(--line2);border:1.5px solid var(--ink);
}
.cell{
  position:relative;display:flex;flex-direction:column;
  padding:20px 22px 38px;background:var(--sheet);
  transition:background-color .25s var(--ease);
}
.cell:hover{background:var(--cell-h);outline:1.5px solid var(--ink);outline-offset:-1.5px;z-index:2}
.cell-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto;gap:8px}
.cell-badge{
  background:var(--red);color:var(--cream);
  font-size:10.5px;font-weight:700;padding:3px 10px;letter-spacing:.14em;white-space:nowrap;
}
.badge-amber{background:var(--amber)}
.cell-no{font-family:var(--en);font-style:italic;font-weight:500;font-size:12px;color:var(--faint)}
.cell-title{font-size:18.5px;font-weight:900;color:var(--ink);letter-spacing:.03em;margin:12px 0 3px;transition:color .2s}
.cell:hover .cell-title{color:var(--red)}
.cell-desc{font-size:13px;color:var(--muted);line-height:1.7}
.cell-domain{
  position:absolute;left:22px;bottom:13px;
  font-family:var(--en);font-style:italic;font-size:11px;color:var(--faint);
}
.cell-go{
  position:absolute;right:18px;bottom:8px;
  font-family:var(--en);font-style:italic;font-size:20px;color:var(--red);
  opacity:0;transform:translateX(-6px);
  transition:opacity .25s var(--ease),transform .25s var(--ease);
}
.cell:hover .cell-go{opacity:1;transform:none}

/* JSON 大格 */
.c-json{grid-column:span 2;grid-row:span 2}
.cell-code{
  margin-top:16px;flex:1;padding:16px 18px;overflow:hidden;
  background:var(--block);
  font-family:ui-monospace,"SF Mono",Consolas,monospace;
  font-size:13px;line-height:1.75;color:#B5A18C;
}
.cell-code .ck{color:#D9892F}
.cell-code .cs{color:#F7EDDA}
.cell-code .cn{color:#E0654A}
.cell-code .cb{color:#C9B698;font-style:italic}
.caret{display:inline-block;width:7px;height:14px;margin-left:3px;vertical-align:-2px;background:#D9892F;animation:caret 1.1s steps(1) infinite}

/* 时间戳竖格 */
.c-ts{grid-row:span 2}
.ts-live{
  margin-top:14px;flex:1;padding:14px 16px;
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  border:1.5px dashed var(--amber);
  background:color-mix(in srgb,var(--amber) 7%,transparent);
}
.ts-label{font-family:var(--en);font-style:italic;font-size:10.5px;letter-spacing:.2em;color:var(--muted)}
.ts-unix{font-family:var(--en);font-weight:600;font-size:22px;color:var(--red);letter-spacing:.02em}
.ts-clock{font-family:var(--en);font-weight:500;font-size:15px;color:var(--ink)}
.ts-date{font-size:12px;color:var(--muted)}

/* 天气宽格 */
.c-wx{grid-column:span 2;flex-direction:row;align-items:center;gap:22px;padding:20px 24px}
.wx-left{display:flex;align-items:center;gap:14px;flex-shrink:0}
.wx-icon{width:50px;height:50px;color:var(--amber)}
.wx-rays{transform-origin:32px 32px;animation:spin 26s linear infinite}
.wx-now strong{display:block;font-family:var(--en);font-weight:600;font-size:31px;line-height:1.1;color:var(--ink)}
.wx-now span{font-size:12.5px;color:var(--muted)}
.wx-days{display:flex;gap:16px;flex-shrink:0;margin-left:auto;order:3}
.wx-days span{display:flex;flex-direction:column;align-items:center;gap:1px}
.wx-days i{font-style:normal;font-size:11px;color:var(--muted)}
.wx-days b{font-family:var(--en);font-weight:600;font-size:14.5px;color:var(--ink)}
.wx-meta{order:2}
.wx-meta .cell-badge{display:inline-block;margin-bottom:8px}
.wx-meta .cell-title{margin:0 0 2px}
.c-wx .cell-go{bottom:10px}

/* CTA 墨格 */
.c-cta{align-items:center;justify-content:center;text-align:center;gap:2px;background:var(--block);padding:20px}
.c-cta strong{font-family:var(--en);font-weight:600;font-size:38px;color:var(--red);line-height:1.1}
[data-theme="dark"] .c-cta strong{color:var(--red)}
.c-cta span{font-size:13px;font-weight:700;color:var(--cream);letter-spacing:.1em}
.c-cta:hover{background:var(--red);outline-color:var(--red)}
.c-cta:hover strong{color:var(--cream)}

/* ===== 12 工具总目 ===== */
.cats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;background:var(--line2);border:1.5px solid var(--ink);
}
.cat{
  display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;
  column-gap:14px;align-items:baseline;
  padding:18px 20px;background:var(--sheet);
  transition:background-color .25s var(--ease);
}
.cat:hover{background:var(--cell-h);outline:1.5px solid var(--ink);outline-offset:-1.5px;z-index:2}
.cat-no{grid-row:span 2;font-family:var(--en);font-style:italic;font-weight:600;font-size:19px;color:var(--red);align-self:center}
.cat-name{font-size:15.5px;font-weight:900;color:var(--ink);letter-spacing:.04em;transition:color .2s}
.cat:hover .cat-name{color:var(--red)}
.cat-en{grid-column:2;font-family:var(--en);font-style:italic;font-size:11px;color:var(--faint)}
.cat-count{grid-row:span 2;align-self:center;font-size:12px;color:var(--muted)}

/* ===== 13 为何全宝 ===== */
.whys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.why{padding-top:4px}
.why-no{
  display:inline-grid;place-items:center;width:46px;height:46px;margin-bottom:16px;
  border:1.5px solid var(--red);color:var(--red);
  font-size:21px;font-weight:900;
}
.why h3{font-size:18px;font-weight:900;color:var(--ink);letter-spacing:.04em;margin-bottom:2px}
.why-en{font-family:var(--en);font-style:italic;font-size:12px;color:var(--muted);margin-bottom:10px}
.why p:last-child{font-size:13.5px;line-height:1.95}

/* ===== 14 上新 · 热榜 ===== */
.panels{display:grid;grid-template-columns:1fr 1fr;gap:44px}
.panel-head{
  display:flex;align-items:baseline;justify-content:space-between;
  border-bottom:1.5px solid var(--ink);padding-bottom:9px;margin-bottom:6px;
}
.panel-head h3{font-size:16px;font-weight:900;color:var(--ink);letter-spacing:.06em}
.panel-head h3 i{font-family:var(--en);font-style:italic;font-weight:500;font-size:11.5px;color:var(--muted);margin-left:8px;letter-spacing:.04em}
.panel-head a{font-size:12.5px;font-weight:700;color:var(--muted);transition:color .2s}
.panel-head a:hover{color:var(--red)}

.list-new li a,.list-hot li a{
  display:flex;align-items:center;gap:12px;
  height:54px;padding:0 2px;font-size:14.5px;line-height:1.5;
  border-bottom:1px solid var(--line);
  transition:background-color .2s var(--ease),padding-left .2s var(--ease);
}
.list-new li a:hover,.list-hot li a:hover{background:var(--cell-h);padding-left:10px}
.li-date{font-family:var(--en);font-style:italic;font-size:12px;color:var(--muted);min-width:44px}
.li-name{font-weight:900;color:var(--ink)}
.list-new li a:hover .li-name,.list-hot li a:hover .li-name{color:var(--red)}
.li-new{
  background:var(--red);color:var(--cream);
  font-size:10.5px;font-weight:700;padding:1px 8px;letter-spacing:.12em;
  align-self:center;
}
.li-cat{margin-left:auto;font-size:12px;color:var(--muted)}
.li-rank{font-family:var(--en);font-style:italic;font-weight:600;font-size:17px;line-height:1;color:var(--faint);min-width:24px;text-align:center;flex-shrink:0}
.li-rank.top{color:var(--red)}
.lead{flex:1;border-bottom:1px dotted var(--line2);transform:translateY(-4px)}
.li-count{font-family:var(--en);font-weight:500;font-size:13px;color:var(--ink-soft);white-space:nowrap}
.li-count em{font-style:normal;font-size:10px;color:var(--red)}

/* ===== 15 页脚 ===== */
.foot{margin-top:72px;background:var(--block);color:rgba(247,237,218,.65)}
.foot-grid{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;
  padding:52px 0 38px;
}
.foot-logo{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.foot-logo .brand-seal{width:34px;height:34px}
.foot-logo strong{display:block;color:var(--cream);font-size:17px;font-weight:900;letter-spacing:.08em;line-height:1.3}
.foot-logo i{font-family:var(--en);font-style:italic;font-size:11px;color:rgba(247,237,218,.45)}
.foot-slogan{font-size:14px;font-weight:700;color:rgba(247,237,218,.85);letter-spacing:.1em;margin-bottom:10px}
.foot-en{font-family:var(--en);font-style:italic;font-size:11.5px;line-height:2;color:rgba(247,237,218,.38);letter-spacing:.05em}
.foot-col h4{color:var(--cream);font-size:13.5px;font-weight:900;letter-spacing:.18em;margin-bottom:14px}
.foot-col a{display:block;font-size:13px;padding:4.5px 0;color:rgba(247,237,218,.55);transition:color .2s,padding-left .2s}
.foot-col a:hover{color:var(--cream);padding-left:6px}
.foot-copy{
  display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;
  border-top:1px solid rgba(247,237,218,.15);
  padding:18px 0 26px;font-size:12px;color:rgba(247,237,218,.4);
}

/* ===== 移动端底部导航「印章栏」：顶栏的底部镜像，延续赤金大刊印章母题 —— 仅 ≤640px ===== */
.btmnav{display:none;-webkit-user-select:none;user-select:none}
@media (max-width:640px){
  /* 容器：纸色半透明 + 毛玻璃 + 顶部墨线（与 .topbar 的 border-bottom 成对呼应） */
  .btmnav{
    position:fixed;left:0;right:0;bottom:0;z-index:95;
    display:grid;grid-template-columns:repeat(7,1fr);align-items:center;
    background:color-mix(in srgb,var(--paper) 92%,transparent);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border-top:1.5px solid var(--ink);
    padding:7px 2px;padding-bottom:calc(7px + env(safe-area-inset-bottom));
  }
  /* 分类项：小墨边印章方块 + 衬线字图标（同顶栏 .tbtn 的方形语言） */
  .btmnav-item{
    display:flex;flex-direction:column;align-items:center;gap:4px;
    min-width:0;text-decoration:none;color:var(--muted);
  }
  .btmnav-ico{
    display:grid;place-items:center;width:27px;height:27px;
    border:1.5px solid var(--ink);background:var(--sheet);
    font-family:var(--serif);font-weight:900;font-size:14px;color:var(--ink);
    transition:background-color .2s var(--ease),color .2s var(--ease);
  }
  .btmnav-lbl{
    max-width:100%;font-size:9px;line-height:1.05;letter-spacing:.02em;color:var(--muted);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  /* 点击态：印章反白（同 .tbtn:hover 的墨底纸字） */
  .btmnav-item:active .btmnav-ico{background:var(--ink);color:var(--cream)}
  .btmnav-item:active .btmnav-lbl{color:var(--ink)}
  /* 中间搜索：朱砂方印章 + 硬阴影 + 按下位移（整站交互语言：translate + 阴影收拢） */
  .btmnav-search{
    justify-self:center;display:grid;place-items:center;
    width:42px;height:42px;margin-top:-3px;
    border:1.5px solid var(--ink);background:var(--red);color:var(--cream);
    cursor:pointer;box-shadow:3px 3px 0 var(--shadow);
    transition:transform .15s var(--ease),box-shadow .15s var(--ease);
  }
  .btmnav-search:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--shadow)}
  .btmnav-search svg{width:20px;height:20px}
  /* 给页面腾出底部空间，避免内容/页脚被固定导航遮挡 */
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  /* 文章返顶按钮上移，避开底部导航 */
  .art-top{bottom:calc(80px + env(safe-area-inset-bottom))}
}

/* ===== 16 关键帧 ===== */
@keyframes fade-up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes title-in{from{opacity:0;letter-spacing:.34em}to{opacity:1;letter-spacing:.1em}}
@keyframes stamp{
  0%{opacity:0;transform:rotate(-8deg) scale(1.7)}
  62%{opacity:1;transform:rotate(-8deg) scale(.94)}
  100%{opacity:1;transform:rotate(-8deg) scale(1)}
}
@keyframes caret{0%,55%{opacity:1}56%,100%{opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== 17 无障碍 ===== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}

/* ===== 18 响应式 ===== */
@media (max-width:1020px){
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sheet{padding:40px 36px 48px}
}
@media (max-width:880px){
  .nav{display:none}
  .tbtn-menu{display:grid}
  .whys{grid-template-columns:1fr;gap:26px}
  .panels{grid-template-columns:1fr;gap:36px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px}
  .foot-brand{grid-column:span 2}
  .mast::before{font-size:34vh;opacity:.75}
}
@media (max-width:640px){
  .container{padding:0 18px}
  body{font-size:15px}
  .mast{padding-bottom:48px}
  .mast-rule{margin-bottom:40px;font-size:11px;justify-content:center;text-align:center}
  .mast-rule-mid{display:none}
  .mast-title{font-size:clamp(72px,24vw,110px)}
  .seal{right:-58px;bottom:8px;width:52px;height:52px}
  .mast-sub{font-size:14px}
  .mast-search{padding-left:14px}
  .ms-kbd{display:none}
  .ms-btn{padding:0 18px;letter-spacing:.1em}
  .sheet{padding:28px 20px 36px;margin-top:36px;box-shadow:8px 8px 0 var(--shadow)}
  .kt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kt:nth-child(2n){border-right:none}
  .kt-val b{font-size:26px}
  .sec{margin-bottom:48px}
  .sec-head{gap:10px}
  .sec-title{font-size:20px}
  .sec-en{display:none}
  .bento{grid-template-columns:1fr;grid-auto-rows:auto}
  .cell{min-height:118px}
  .c-json,.c-ts,.c-wx{grid-column:auto;grid-row:auto}
  .cell-code{max-height:150px}
  .c-wx{flex-wrap:wrap;row-gap:12px}
  .wx-days{margin-left:0;order:2}
  .wx-meta{order:3;flex-basis:100%}
  .cats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat{padding:14px 16px}
  .lead{display:none}
  .li-cat{display:none}
  .foot-grid{grid-template-columns:1fr;gap:22px;padding:40px 0 28px}
  .foot-brand{grid-column:auto}
  .foot-copy{flex-direction:column;gap:3px}
}

/* ==========================================================================
   19 分类页（T2 模板：分部刊头 / 面包屑 / 工具陈列墙 / FAQ / 相邻各类）
   ========================================================================== */

/* ----- 分部刊头 ----- */
.chero{position:relative;overflow:hidden;border-bottom:2px solid var(--ink);padding-bottom:52px}
.chero::before{
  content:attr(data-char);position:absolute;right:-3%;top:58%;transform:translateY(-50%);
  font-size:38vh;font-weight:900;line-height:.8;color:var(--paper2);
  z-index:0;pointer-events:none;
}
.chero .container{position:relative;z-index:1}
.chero-rule{margin-bottom:46px}
.crumbs{display:flex;align-items:center;gap:9px;letter-spacing:.06em}
.crumbs a{transition:color .2s}
.crumbs a:hover{color:var(--red)}
.crumbs i{font-style:normal;color:var(--faint);font-weight:400}
.crumbs b{color:var(--red)}

.chero-in{max-width:820px}
.chero-row{display:flex;align-items:center;gap:22px;margin:6px 0 14px}
.chero-row h1{
  font-size:clamp(54px,9vw,92px);font-weight:900;line-height:1.1;
  letter-spacing:.08em;color:var(--ink);
  animation:title-in .9s var(--ease) .05s both;
}
.cseal{
  position:static;flex-shrink:0;width:64px;height:64px;
  color:var(--amber);transform:rotate(-7deg);
  mix-blend-mode:multiply;
  animation:stamp .6s cubic-bezier(.2,1.4,.4,1) .8s both;
}
[data-theme="dark"] .cseal{mix-blend-mode:normal}
.seal-t-lg{font-size:46px}
.chero-intro{
  font-size:15px;line-height:2;color:var(--ink-soft);
  animation:fade-up .8s var(--ease) .25s both;
}

/* ----- 陈列墙工具条 ----- */
.wall-bar{display:flex;flex-direction:column;gap:14px;margin-bottom:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{
  display:inline-flex;align-items:baseline;gap:6px;
  padding:5px 14px;border:1px solid var(--line2);
  font-family:var(--serif);font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em;
  transition:all .2s var(--ease);
}
.chip i{font-family:var(--en);font-style:italic;font-weight:500;font-size:11.5px;color:var(--red)}
.chip:hover{border-color:var(--red);color:var(--red)}
.chip.act{background:var(--red);border-color:var(--red);color:var(--cream)}
.chip.act i{color:var(--cream)}

.wall-ops{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.wall-find{
  display:flex;align-items:center;gap:9px;flex:1;min-width:220px;max-width:380px;
  padding:0 13px;border:1.5px solid var(--ink);background:var(--sheet);
  color:var(--muted);
  transition:box-shadow .25s var(--ease);
}
.wall-find:focus-within{box-shadow:5px 5px 0 var(--shadow)}
.wall-find input{flex:1;min-width:0;border:0;outline:0;background:none;height:38px;font-family:var(--serif);font-size:14px;color:var(--ink)}
.wall-find input::placeholder{color:var(--faint)}
.wall-find input::-webkit-search-cancel-button{display:none}
.sorts{display:flex;border:1.5px solid var(--ink);margin-left:auto}
.sort{
  padding:8px 17px;font-family:var(--serif);font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.08em;
  border-right:1px solid var(--line2);
  transition:all .2s var(--ease);
}
.sort:last-child{border-right:0}
.sort:hover{color:var(--red)}
.sort.act{background:var(--block);color:var(--cream)}

.wall-count{
  font-family:var(--en);font-style:italic;font-size:12.5px;color:var(--muted);
  letter-spacing:.04em;margin-bottom:14px;
}

/* ----- 工具陈列墙（发丝格） ----- */
.wall{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;background:var(--line2);border:1.5px solid var(--ink);
}
.tcell{
  position:relative;display:flex;flex-direction:column;gap:2px;
  padding:15px 18px 12px;min-height:118px;background:var(--sheet);
  transition:background-color .22s var(--ease);
}
.tcell:hover{background:var(--cell-h);outline:1.5px solid var(--ink);outline-offset:-1.5px;z-index:2}
.tcell-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px}
.tcell-top i{font-style:normal;font-size:11px;font-weight:700;color:var(--amber);letter-spacing:.16em}
.tcell-top span{font-family:var(--en);font-style:italic;font-size:11px;color:var(--faint)}
.tcell h3{font-size:16px;font-weight:900;color:var(--ink);letter-spacing:.03em;transition:color .2s}
.tcell:hover h3{color:var(--red)}
.tcell h3 .li-new{vertical-align:3px;margin-left:4px}
.tcell p{font-size:12.5px;color:var(--muted);line-height:1.65}
.tcell-foot{display:flex;align-items:baseline;justify-content:space-between;margin-top:auto;padding-top:8px}
.tcell-foot b{font-family:var(--en);font-weight:500;font-size:11.5px;color:var(--muted)}
.tcell:hover .tcell-foot b{color:var(--red)}
.tcell-foot em{
  font-family:var(--en);font-style:italic;font-size:17px;color:var(--red);
  opacity:0;transform:translateX(-6px);
  transition:opacity .22s var(--ease),transform .22s var(--ease);
}
.tcell:hover .tcell-foot em{opacity:1;transform:none}
.wall-empty{
  text-align:center;padding:34px 0 8px;
  font-size:13.5px;color:var(--faint);letter-spacing:.2em;
}

/* ----- 分类 FAQ ----- */
.faq{border-top:0}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  display:flex;align-items:center;gap:13px;
  padding:16px 4px;cursor:pointer;list-style:none;
  font-size:15.5px;font-weight:900;color:var(--ink);letter-spacing:.03em;
  transition:color .2s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--red)}
.faq summary i,.faq-a i{
  flex-shrink:0;display:inline-grid;place-items:center;width:24px;height:24px;
  font-style:normal;font-size:12px;font-weight:900;
  border:1.5px solid var(--red);color:var(--red);
}
.faq-a i{border-color:var(--amber);color:var(--amber);float:left;margin:3px 13px 0 4px}
.faq-x{
  margin-left:auto;font-size:17px;font-weight:400;color:var(--muted);
  transition:transform .25s var(--ease),color .2s;
}
details[open] .faq-x{transform:rotate(45deg);color:var(--red)}
.faq-a{padding:2px 4px 20px 0;font-size:14px;line-height:2;color:var(--ink-soft)}
.faq-a p{overflow:hidden}
.faq-a a{color:var(--red);border-bottom:1.5px dashed var(--amber)}

/* ----- 相邻各类 ----- */
.adj{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px}
.adj-card{
  display:flex;flex-direction:column;gap:3px;
  padding:22px 26px;border:1.5px solid var(--ink);background:var(--sheet);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .25s var(--ease);
}
.adj-card:hover{transform:translate(-3px,-3px);box-shadow:8px 8px 0 var(--shadow);background:var(--cell-h)}
.adj-card span{font-size:11.5px;font-weight:700;color:var(--red);letter-spacing:.22em}
.adj-card strong{font-size:23px;font-weight:900;color:var(--ink);letter-spacing:.06em}
.adj-card i{font-family:var(--en);font-style:italic;font-size:12px;color:var(--muted)}
.adj-next{text-align:right;align-items:flex-end}

.adj-strip{display:flex;flex-wrap:wrap;gap:8px}
.adj-strip a{
  display:inline-flex;align-items:baseline;gap:7px;
  padding:5px 14px;border:1px solid var(--line2);
  font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.06em;
  transition:all .2s var(--ease);
}
.adj-strip a i{font-family:var(--en);font-style:italic;font-weight:500;font-size:11px;color:var(--faint)}
.adj-strip a:hover{border-color:var(--red);color:var(--red)}
.adj-strip a:hover i{color:var(--red)}

/* ----- 分类页响应式 ----- */
@media (max-width:1020px){
  .wall{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:880px){
  .chero::before{font-size:28vh;opacity:.75}
}
@media (max-width:640px){
  .chero{padding-bottom:40px}
  .chero-rule{margin-bottom:34px}
  .crumbs{flex-wrap:wrap}
  .chero-row{gap:14px}
  .cseal{width:48px;height:48px}
  .chero-intro{font-size:14px}
  .wall{grid-template-columns:1fr}
  .wall-ops{flex-direction:column;align-items:stretch}
  .wall-find{max-width:none}
  .sorts{margin-left:0}
  .sort{flex:1;text-align:center;padding:8px 6px}
  .adj{grid-template-columns:1fr}
  .adj-next{text-align:left;align-items:flex-start}
  .faq summary{font-size:14.5px}
}

/* ==========================================================================
   20 工具页（T3 模板：刊头 / 功能区 / 同族 / 八节内容 / 原理图 / 目录）
   ========================================================================== */

/* ----- 工具刊头（chero 修饰） ----- */
.thero{padding-bottom:42px}
.thero .chero-row{margin:4px 0 10px}
.thero h1{font-size:clamp(40px,6.5vw,66px)}
.thero .cseal{width:54px;height:54px}
.thero-def{font-size:15px;line-height:1.95;color:var(--ink-soft);max-width:720px;animation:fade-up .8s var(--ease) .2s both}
.tbadges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;animation:fade-up .8s var(--ease) .3s both}
.tbadge{
  display:inline-flex;align-items:baseline;gap:6px;
  padding:3px 13px;border:1px solid var(--line2);
  font-size:12px;font-weight:700;color:var(--ink-soft);letter-spacing:.08em;
}
.tbadge b{color:var(--red);font-weight:900}
.tbadge-meta{font-family:var(--en);font-style:italic;font-size:12px;color:var(--muted);margin-left:4px}

/* ----- 功能区 ----- */
.tool{
  margin-top:34px;border:1.5px solid var(--ink);background:var(--sheet);
  box-shadow:10px 10px 0 var(--shadow);
}
.tool-bar{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:11px 14px;border-bottom:1.5px solid var(--ink);
}
.pbtn{
  padding:8px 18px;border:1.5px solid var(--ink);
  font-family:var(--serif);font-size:13.5px;font-weight:700;color:var(--ink);letter-spacing:.12em;
  background:var(--sheet);
  transition:background-color .2s var(--ease),color .2s var(--ease);
}
.pbtn:hover{background:var(--ink);color:var(--paper)}
.pbtn:active{transform:translateY(1px)}
.pbtn-red{background:var(--red);border-color:var(--red);color:var(--cream)}
.pbtn-red:hover{background:var(--ink);border-color:var(--ink)}
.pbtn-ghost{border-color:var(--line2);color:var(--muted)}
.pbtn-ghost:hover{border-color:var(--ink)}
.pbtn-mini{padding:4px 12px;font-size:12px;letter-spacing:.08em}
.tool-sep{width:1px;height:22px;background:var(--line2);margin:0 4px}
.tool-gap{flex:1}
.tool-opt{
  display:inline-flex;align-items:center;gap:7px;
  font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;
}
.tool-opt select{
  font-family:var(--serif);font-size:13px;font-weight:700;color:var(--ink);
  border:1.5px solid var(--line2);background:var(--sheet);padding:5px 8px;outline:none;
}
.tool-opt select:focus{border-color:var(--red)}
.tool-chk input{accent-color:var(--red);width:15px;height:15px}

.tool-grid{display:grid;grid-template-columns:1fr 1fr}
.tio{display:flex;flex-direction:column;min-width:0}
.tio + .tio{border-left:1px solid var(--line2)}
.tio-h{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:8px 15px;border-bottom:1px solid var(--line);
  font-size:11.5px;font-weight:900;color:var(--muted);letter-spacing:.3em;
}
.tio-h i{font-family:var(--en);font-style:italic;font-weight:500;font-size:11px;letter-spacing:.03em}
.tio-in{
  border:0;outline:0;background:none;resize:vertical;
  height:330px;padding:14px 16px;
  font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:13px;line-height:1.7;color:var(--ink);
}
.tio-in::placeholder{color:var(--faint)}
.tio-in.drag{background:color-mix(in srgb,var(--amber) 8%,transparent)}
.tio-out{
  height:330px;overflow:auto;padding:14px 16px;margin:0;
  font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:13px;line-height:1.7;color:var(--ink-soft);
  white-space:pre;
}
.tio-out .ck{color:#B06000}
.tio-out .cs{color:#7A5230}
.tio-out .cn{color:var(--red)}
.tio-out .cb{color:#5E5CE6;font-style:italic}
[data-theme="dark"] .tio-out .ck{color:var(--amber)}
[data-theme="dark"] .tio-out .cs{color:#D9C9AC}
[data-theme="dark"] .tio-out .cb{color:#9d9bff}
.tio-out .cx{color:var(--red);font-weight:700;white-space:pre-wrap}
.out-hint{font-family:var(--serif);font-style:italic;color:var(--faint)}

.tool-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:9px 14px;border-top:1.5px solid var(--ink);
  font-size:12.5px;color:var(--muted);
}
.tool-foot .st-ok{color:#5F8A4F;font-weight:700}
.tool-foot .st-err{color:var(--red);font-weight:700}
[data-theme="dark"] .tool-foot .st-ok{color:#8FB479}
.tool-foot-r{display:inline-flex;align-items:center;gap:8px}
.tool-foot-r i{font-family:var(--en);font-style:italic;font-size:11.5px;color:var(--faint);margin-right:4px}

/* ----- 同族工具 ----- */
.fam{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}
.fam-l{font-size:12px;font-weight:900;color:var(--muted);letter-spacing:.22em;margin-right:4px}
.fam a{
  padding:4px 13px;border:1px solid var(--line2);
  font-size:12.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;
  transition:all .2s var(--ease);
}
.fam a:hover{border-color:var(--red);color:var(--red)}

/* ----- 版心 + 目录布局 ----- */
.tlayout{display:grid;grid-template-columns:minmax(0,1fr) 178px;gap:30px;align-items:start;margin-top:52px}
.tlayout .sheet{margin-top:0}
.toc{
  position:sticky;top:90px;
  border-left:1.5px solid var(--ink);padding:4px 0 4px 18px;
}
.toc-h{font-size:11.5px;font-weight:900;color:var(--muted);letter-spacing:.3em;margin-bottom:10px}
.toc a{
  display:flex;align-items:baseline;gap:9px;
  padding:5px 0;font-size:13.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;
  transition:color .2s,transform .2s var(--ease);
}
.toc a i{font-style:normal;font-size:11px;color:var(--faint);font-weight:400}
.toc a:hover{color:var(--red)}
.toc a.act{color:var(--red);transform:translateX(4px)}
.toc a.act i{color:var(--red)}

/* ----- 使用场景 ----- */
.scenes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line2);border:1.5px solid var(--ink)}
.scene{padding:20px 24px;background:var(--sheet)}
.scene i{
  display:inline-grid;place-items:center;width:34px;height:34px;margin-bottom:12px;
  font-style:normal;font-size:15px;font-weight:900;
  border:1.5px solid var(--red);color:var(--red);
}
.scene h3{font-size:16.5px;font-weight:900;color:var(--ink);letter-spacing:.04em;margin-bottom:4px}
.scene p{font-size:13.5px;line-height:1.9;color:var(--ink-soft)}

/* ----- 表格（对比矩阵 / 错误对照） ----- */
.tbl-wrap{overflow-x:auto}
.cmp{width:100%;border-collapse:collapse;font-size:13.5px}
.cmp th,.cmp td{border:1px solid var(--line2);padding:10px 14px;text-align:left;vertical-align:top;line-height:1.7}
.cmp th{background:var(--paper);color:var(--ink);font-weight:900;letter-spacing:.06em;white-space:nowrap}
.cmp th.hi{background:var(--block);color:var(--cream)}
.cmp td.hi{background:color-mix(in srgb,var(--red) 5%,transparent)}
.cmp .ok{color:#5F8A4F;font-weight:700}
[data-theme="dark"] .cmp .ok{color:#8FB479}
.cmp .no{color:var(--red);font-weight:700}
.cmp .ic{
  font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12px;
  background:var(--paper);border:1px solid var(--line);padding:1px 7px;color:var(--red);
}

/* ----- 上手步骤 ----- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;counter-reset:step}
.steps li{position:relative;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line2);background:var(--paper);padding:16px 18px}
.steps li i{
  display:inline-grid;place-items:center;width:32px;height:32px;
  font-family:var(--en);font-style:italic;font-weight:600;font-size:16px;
  border:1.5px solid var(--red);color:var(--red);
}
.steps li b{font-size:14.5px;font-weight:900;color:var(--ink);letter-spacing:.04em}
.steps li span{font-size:12.5px;line-height:1.75;color:var(--muted)}

.sub-h{font-size:15px;font-weight:900;color:var(--ink);letter-spacing:.1em;margin:30px 0 14px;padding-left:11px;border-left:4px solid var(--red)}

/* ----- 输入输出示例 / 代码盒 ----- */
.io{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.io-arrow{font-family:var(--en);font-style:italic;font-size:26px;color:var(--red)}
.codebox{
  position:relative;background:var(--block);padding:15px 17px;overflow-x:auto;
}
.codebox code{
  display:block;font-family:ui-monospace,"SF Mono",Consolas,monospace;
  font-size:12.5px;line-height:1.8;color:#B5A18C;white-space:pre;
}
.codebox .ck{color:#D9892F}
.codebox .cs{color:#F7EDDA}
.codebox .cn{color:#E0654A}
.codebox .cb{color:#C9B698;font-style:italic}
.codebox .cmt{color:#6E5B47;font-style:italic}
.copybtn{
  position:absolute;top:9px;right:9px;z-index:2;
  padding:2px 11px;border:1px solid rgba(247,237,218,.35);
  font-family:var(--serif);font-size:11px;font-weight:700;color:rgba(247,237,218,.75);letter-spacing:.1em;
  transition:all .2s var(--ease);
}
.copybtn:hover{background:var(--red);border-color:var(--red);color:var(--cream)}

/* ----- 避坑提示 ----- */
.pits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pit{border:1px solid var(--line2);border-left:4px solid var(--amber);background:var(--paper);padding:14px 17px}
.pit b{display:block;font-size:13.5px;font-weight:900;color:var(--ink);letter-spacing:.03em;margin-bottom:5px}
.pit p{font-size:12.5px;line-height:1.8;color:var(--ink-soft)}

/* ----- 工作原理 ----- */
.prose p{font-size:14.5px;line-height:2.05;color:var(--ink-soft);margin-bottom:13px}

/* ----- 原理图 ----- */
.diagram{margin-top:28px;border:1.5px solid var(--ink);background:var(--paper);padding:22px 18px 14px}
.diagram svg{width:100%;height:auto}
.diagram figcaption{
  margin-top:12px;padding-top:10px;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--muted);text-align:center;letter-spacing:.04em;
}
.dg-t{font-family:var(--serif);font-weight:900;font-size:14px;fill:var(--ink);letter-spacing:.1em}
.dg-en{font-family:var(--en);font-style:italic;font-size:10.5px;fill:var(--muted);letter-spacing:.06em}
.dg-faint{opacity:.7}
.dg-mono{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:10.5px;fill:var(--muted)}
.dg-tkt{fill:var(--ink);font-size:11.5px}
.dg-mark{stroke:var(--faint);stroke-width:1.3;opacity:.6}
.dg-box{stroke:var(--ink);stroke-width:1.5;fill:var(--sheet)}
.dg-dash{stroke:var(--line2);stroke-width:1.2;stroke-dasharray:4 5;fill:none}
.dg-scan{fill:var(--amber);opacity:.14;animation:dg-scan 5.6s var(--ease) infinite}
.dg-flow{stroke:var(--red);stroke-width:1.6;stroke-dasharray:5 6;stroke-linecap:round;animation:flow 1.2s linear infinite}
.dg-flow.amber{stroke:var(--amber)}
.dg-arr{fill:var(--red)}
.dg-arr.amber{fill:var(--amber)}
.dg-tok{stroke:var(--red);stroke-width:1.4;fill:var(--sheet);animation:dg-pulse 5.6s var(--ease) infinite}
.dg-tok.amber{stroke:var(--amber)}
.tk2{animation-delay:.25s}.tk3{animation-delay:.5s}.tk4{animation-delay:.75s}
.tk5{animation-delay:1s}.tk6{animation-delay:1.25s}.tk7{animation-delay:1.5s}.tk8{animation-delay:1.75s}
.dg-node{stroke:var(--red);stroke-width:1.5;fill:var(--sheet);animation:dg-pulse 5.6s var(--ease) infinite}
.dg-node.n1{animation-delay:2.2s}.dg-node.n2{animation-delay:2.4s}.dg-node.n3{animation-delay:2.6s}
.dg-leaf{stroke:var(--amber);stroke-width:1.4;fill:var(--sheet);animation:dg-pulse 5.6s var(--ease) infinite}
.dg-leaf.l1{animation-delay:2.8s}.dg-leaf.l2{animation-delay:3s}.dg-leaf.l3{animation-delay:3.2s}
.dg-edge{stroke:var(--line2);stroke-width:1.3;fill:none;stroke-dasharray:3 4;animation:flow 1.6s linear infinite}
.dg-out{fill:var(--red);opacity:.28;animation:dg-out 5.6s var(--ease) infinite}
.dg-out.amber{fill:var(--amber)}
.o2{animation-delay:.3s}.o3{animation-delay:.6s}.o4{animation-delay:.9s}.o5{animation-delay:1.2s}.o6{animation-delay:1.5s}
.dg-seal rect{fill:var(--red)}
.dg-seal text{font-family:var(--serif);font-weight:900;font-size:18px;fill:var(--cream);text-anchor:middle}
.dg-seal{transform-origin:833px 233px;transform:rotate(-8deg);animation:dg-pulse 5.6s var(--ease) infinite;animation-delay:3.8s}

@keyframes dg-pulse{0%,100%{opacity:.35}12%,30%{opacity:1}}
@keyframes dg-out{0%,100%{opacity:.12}14%,34%{opacity:.6}}
@keyframes dg-scan{0%{transform:translateY(0);opacity:.14}48%{transform:translateY(140px);opacity:.2}100%{transform:translateY(0);opacity:.14}}

/* ----- 开发者集成 ----- */
.dev-note{font-size:14px;color:var(--ink-soft);margin-bottom:14px}
.tabs{display:inline-flex;border:1.5px solid var(--ink);margin-bottom:-1.5px;position:relative;z-index:2}
.tab{
  padding:8px 20px;font-family:var(--serif);font-size:13px;font-weight:700;color:var(--ink-soft);letter-spacing:.08em;
  border-right:1px solid var(--line2);
  transition:all .2s var(--ease);
}
.tab:last-child{border-right:0}
.tab:hover{color:var(--red)}
.tab.act{background:var(--block);color:var(--cream)}
.tabpanes .codebox{display:none;border:1.5px solid var(--ink);padding:18px 18px}
.tabpanes .codebox.act{display:block}

/* ----- 相关工具（4 列墙） ----- */
.wall-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ----- 工具页响应式 ----- */
@media (max-width:1100px){
  .tlayout{grid-template-columns:minmax(0,1fr)}
  /* 工具目录 → 吸顶横滑锚点条 */
  .toc{
    order:-1;position:sticky;top:61px;z-index:60;
    display:block;border:1.5px solid var(--ink);border-left:1.5px solid var(--ink);
    background:color-mix(in srgb,var(--paper) 94%,transparent);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    padding:7px 10px;margin-bottom:4px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .toc::-webkit-scrollbar{display:none}
  .toc-h{display:none}
  .toc ol{display:flex;gap:4px;width:max-content}
  .toc a{
    padding:4px 12px;white-space:nowrap;font-size:12.5px;
    border:1px solid var(--line2);
  }
  .toc a i{font-size:10px}
  .toc a.act{background:var(--red);border-color:var(--red);color:var(--cream);transform:none}
  .toc a.act i{color:var(--cream)}
  html{scroll-padding-top:118px}
}
@media (max-width:1020px){
  .wall-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:880px){
  .tool-grid{grid-template-columns:1fr}
  .tio + .tio{border-left:0;border-top:1.5px solid var(--ink)}
  .tio-in,.tio-out{height:260px}
  .scenes{grid-template-columns:1fr}
  .io{grid-template-columns:1fr;justify-items:center}
  .io .codebox{width:100%}
  .io-arrow{transform:rotate(90deg)}
  .pits{grid-template-columns:1fr}
}
@media (max-width:640px){
  .thero{padding-bottom:34px}
  .tool{margin-top:26px;box-shadow:7px 7px 0 var(--shadow)}
  .tool-bar{gap:6px}
  .pbtn{padding:7px 13px;font-size:12.5px;letter-spacing:.06em}
  .tool-sep{display:none}
  .steps{grid-template-columns:1fr}
  .wall-4{grid-template-columns:1fr}
  .tabs{display:flex}
  .tab{flex:1;text-align:center;padding:8px 6px}
  .tlayout{margin-top:36px}
}

/* ==========================================================================
   21 副刊文章列表页（头条 / 文章索引 / 侧栏 / 分页 / 订阅）
   ========================================================================== */

/* ----- 头条 ----- */
.feat{
  display:grid;grid-template-columns:1.55fr 1fr;
  gap:1px;background:var(--line2);border:1.5px solid var(--ink);
}
.feat-main{
  position:relative;display:flex;flex-direction:column;gap:12px;
  padding:30px 34px 26px 64px;background:var(--sheet);overflow:hidden;
  transition:background-color .25s var(--ease);
}
.feat-main::after{
  content:attr(data-char);position:absolute;right:-16px;bottom:-44px;
  font-size:190px;font-weight:900;line-height:1;color:var(--paper2);
  pointer-events:none;
}
.feat-main:hover{background:var(--cell-h)}
.feat-main>*{position:relative;z-index:1}
.feat-vlabel{
  position:absolute;left:22px;top:30px;z-index:1;
  writing-mode:vertical-rl;
  font-size:12px;font-weight:900;color:var(--red);letter-spacing:.42em;
  border-left:2px solid var(--red);padding-left:9px;
}
.feat-main .cell-badge{align-self:flex-start}
.feat-title{
  font-size:clamp(21px,2.8vw,29px);font-weight:900;line-height:1.5;
  color:var(--ink);letter-spacing:.03em;transition:color .2s;
}
.feat-main:hover .feat-title{color:var(--red)}
.feat-sum{font-size:13.5px;line-height:1.95;color:var(--ink-soft)}
.ameta{
  display:flex;flex-wrap:wrap;gap:0 14px;
  font-family:var(--en);font-style:italic;font-size:12px;color:var(--muted);letter-spacing:.03em;
}
.feat-side{display:grid;grid-template-rows:1fr 1fr;gap:1px;background:var(--line2)}
.feat-item{
  display:flex;flex-direction:column;justify-content:center;gap:9px;
  padding:20px 24px;background:var(--sheet);
  transition:background-color .25s var(--ease);
}
.feat-item:hover{background:var(--cell-h)}
.feat-item .cell-badge{align-self:flex-start}
.feat-item h3{font-size:16.5px;font-weight:900;line-height:1.6;color:var(--ink);letter-spacing:.02em;transition:color .2s}
.feat-item:hover h3{color:var(--red)}

/* ----- 列表 + 侧栏布局 ----- */
.alayout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:34px;align-items:start}

/* ----- 文章索引 ----- */
.alist{border-top:1.5px solid var(--ink)}
.arow{
  display:flex;align-items:flex-start;gap:18px;
  padding:19px 6px;border-bottom:1px solid var(--line);
  transition:background-color .22s var(--ease),padding-left .22s var(--ease);
}
.arow:hover{background:var(--cell-h);padding-left:14px}
.aglyph{
  flex-shrink:0;display:grid;place-items:center;width:46px;height:46px;margin-top:2px;
  border:1.5px solid var(--red);color:var(--red);
  font-size:20px;font-weight:900;transform:rotate(-3deg);
  transition:transform .25s var(--ease);
}
.aglyph.amber{border-color:var(--amber);color:var(--amber);transform:rotate(2deg)}
.aglyph.ink{border-color:var(--ink);color:var(--ink);transform:rotate(-1deg)}
.arow:hover .aglyph{transform:rotate(0) scale(1.06)}
.abody{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.arow h3{
  font-size:16.5px;font-weight:900;color:var(--ink);letter-spacing:.02em;line-height:1.6;
  transition:color .2s;
}
.arow:hover h3{color:var(--red)}
.arow h3 .li-new{vertical-align:3px;margin-left:5px}
.asum{
  font-size:13px;line-height:1.8;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.arow .ameta{margin-top:3px}
.arow .ameta span:nth-child(2){font-family:var(--serif);font-style:normal;font-weight:700;color:var(--ink-soft)}

/* ----- 分页 ----- */
.pager{
  display:flex;width:max-content;margin:30px auto 0;
  border:1.5px solid var(--ink);
}
.pager a,.pager span{
  display:grid;place-items:center;min-width:42px;padding:9px 14px;
  border-right:1px solid var(--line2);
  font-family:var(--en);font-style:italic;font-weight:600;font-size:14px;color:var(--ink-soft);
  transition:color .2s,background-color .2s;
}
.pager :last-child{border-right:0}
.pager a:hover{color:var(--red)}
.pager .cur{background:var(--block);color:var(--cream)}
.pager .pg-dots{color:var(--faint)}
.pager .pg-dis{color:var(--faint)}
.pager .pg-dis,.pager .pg-next{font-family:var(--serif);font-style:normal;font-size:13px;font-weight:700;letter-spacing:.06em}
.pager .pg-next{color:var(--ink-soft)}
.pager .pg-next:hover{color:var(--red)}

/* ----- 侧栏 ----- */
.apanel{
  border:1.5px solid var(--ink);background:var(--paper);
  padding:16px 18px 8px;margin-bottom:18px;
}
.apanel .panel-head{padding-bottom:8px;margin-bottom:4px}
.apanel .list-hot li a{height:46px;padding:0 2px}
.acats a{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:10px 2px;border-bottom:1px solid var(--line);
  font-size:14px;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;
  transition:color .2s,padding-left .2s var(--ease);
}
.acats a:last-child{border-bottom:0}
.acats a:hover{color:var(--red);padding-left:8px}
.acats a i{font-family:var(--en);font-style:italic;font-weight:500;font-size:11.5px;color:var(--faint)}
.tagcloud{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 14px}
.tagcloud a{
  padding:4px 13px;border:1px solid var(--line2);
  font-size:12.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.04em;
  transition:all .2s var(--ease);
}
.tagcloud a:hover{border-color:var(--red);color:var(--red)}

/* 订阅盒 */
.subbox{
  position:relative;background:var(--block);padding:22px 22px 24px;overflow:hidden;
}
.subseal{
  position:absolute;right:14px;top:14px;width:44px;height:44px;
  color:var(--red);transform:rotate(-8deg);
  animation:stamp .6s cubic-bezier(.2,1.4,.4,1) .9s both;
}
.subbox h4{color:var(--cream);font-size:16px;font-weight:900;letter-spacing:.14em;margin-bottom:8px}
.subbox p{font-size:12.5px;line-height:1.85;color:rgba(247,237,218,.6);margin-bottom:14px;max-width:85%}
.subbox input{
  width:100%;padding:9px 12px;margin-bottom:8px;
  background:transparent;border:1px solid rgba(247,237,218,.35);
  font-family:var(--en);font-size:13px;color:var(--cream);outline:none;
  transition:border-color .2s;
}
.subbox input::placeholder{color:rgba(247,237,218,.35)}
.subbox input:focus{border-color:var(--amber)}
.sub-btn{width:100%;height:38px}

/* ----- 副刊响应式 ----- */
@media (max-width:1020px){
  .alayout{grid-template-columns:1fr}
  .aside{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;margin-top:8px}
  .apanel{margin-bottom:0}
}
@media (max-width:880px){
  .feat{grid-template-columns:1fr}
  .feat-side{grid-template-rows:auto;grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .feat-main{padding:22px 20px 20px 50px}
  .feat-vlabel{left:14px;top:22px}
  .feat-main::after{font-size:130px;bottom:-30px}
  .feat-side{grid-template-columns:1fr}
  .arow{gap:13px}
  .aglyph{width:38px;height:38px;font-size:16px}
  .asum{-webkit-line-clamp:3}
  .arow .ameta span:nth-child(4){display:none}
  .aside{grid-template-columns:1fr}
  .pager a,.pager span{min-width:34px;padding:8px 10px}
}

/* ==========================================================================
   22 文章详情页（阅读进度 / 文章刊头 / 长文排版 / 扫描器图 / 文脚）
   ========================================================================== */

/* ----- 阅读进度线 ----- */
.rprog{
  position:fixed;top:0;left:0;z-index:120;
  height:3px;width:0;
  background:linear-gradient(90deg,var(--red),var(--amber));
}

/* ----- 文章刊头 ----- */
.ahero-in{max-width:860px}
.ahero{padding-bottom:32px}
.ahero .chero-rule{margin-bottom:30px}
.ahero-title{
  font-size:clamp(21px,2.6vw,29px);font-weight:900;line-height:1.55;
  letter-spacing:.03em;color:var(--ink);margin:4px 0 8px;
  animation:fade-up .8s var(--ease) .08s both;
}
.ahero-sub{
  font-size:14px;color:var(--muted);margin-bottom:14px;
  animation:fade-up .8s var(--ease) .18s both;
}
.ahero-meta{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  font-family:var(--en);font-style:italic;font-size:12.5px;color:var(--muted);
  animation:fade-up .8s var(--ease) .28s both;
}
.am-author{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--serif);font-style:normal;font-weight:700;font-size:13.5px;color:var(--ink-soft);
}
.am-seal{width:26px;height:26px;color:var(--red);flex-shrink:0}

/* ----- 长文排版 ----- */
.article p{font-size:15px;line-height:2.15;color:var(--ink-soft);margin-bottom:16px}
.article p a{color:var(--red);border-bottom:1.5px dashed var(--amber)}
.article .lead{font-size:15.5px}
.article .lead::first-letter{
  float:left;
  font-size:44px;line-height:1;font-weight:900;
  color:var(--cream);background:var(--red);
  padding:9px 13px;margin:7px 13px 2px 0;
}
.article h2{
  display:flex;align-items:center;gap:13px;
  font-size:21px;font-weight:900;color:var(--ink);letter-spacing:.05em;
  border-bottom:1.5px solid var(--ink);
  padding-bottom:12px;margin:46px 0 18px;
}
.asec:first-of-type h2{margin-top:30px}
.article h2 i{
  flex-shrink:0;display:inline-grid;place-items:center;width:34px;height:34px;
  background:var(--red);color:var(--cream);
  font-style:normal;font-size:15px;font-weight:700;
}
.article blockquote{
  margin:24px 0;padding:16px 24px;
  background:var(--paper);border-left:4px solid var(--red);
  font-size:15.5px;font-weight:700;line-height:2;color:var(--ink);letter-spacing:.02em;
}
.article .codebox{margin:18px 0}
.article .pit{margin:20px 0}
.article .diagram{margin:26px 0}
.cbtag{
  display:block;margin-bottom:8px;
  font-family:var(--serif);font-size:11px;font-weight:700;letter-spacing:.18em;
}
.cbtag.bad{color:#E0654A}
.cbtag.good{color:#8FB479}

/* ----- 扫描器图（fig.01） ----- */
.fg-cell{stroke:var(--line2);stroke-width:1.4;fill:var(--sheet)}
.fg-ch{fill:var(--ink);font-size:17px}
.fg-bad{animation:fg-bad 6s var(--ease) infinite}
.fg-badch{animation:fg-badch 6s var(--ease) infinite}
.fg-burst path{
  stroke:var(--red);stroke-width:2;stroke-linecap:round;
  opacity:0;transform-origin:478px 50px;
  animation:fg-burst 6s var(--ease) infinite;
}
.fg-errt{
  font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12.5px;font-weight:700;
  fill:var(--red);opacity:0;
  animation:fg-errt 6s var(--ease) infinite;
}
.fg-ptr path{fill:var(--red)}
.fg-ptr{animation:fg-ptr 6s linear infinite}
@keyframes fg-ptr{
  0%{transform:translateX(0);opacity:1}
  8%{transform:translateX(0)}
  52%{transform:translateX(416px);opacity:1}
  86%{transform:translateX(416px);opacity:1}
  94%{transform:translateX(416px);opacity:0}
  100%{transform:translateX(0);opacity:0}
}
@keyframes fg-bad{
  0%,52%{stroke:var(--line2);fill:var(--sheet)}
  57%,86%{stroke:var(--red);fill:color-mix(in srgb,var(--red) 10%,var(--sheet))}
  96%,100%{stroke:var(--line2);fill:var(--sheet)}
}
@keyframes fg-badch{
  0%,52%{fill:var(--ink)}
  57%,86%{fill:var(--red)}
  96%,100%{fill:var(--ink)}
}
@keyframes fg-burst{
  0%,53%{opacity:0;transform:scale(.5)}
  58%{opacity:1;transform:scale(1)}
  74%{opacity:1}
  86%,100%{opacity:0}
}
@keyframes fg-errt{
  0%,55%{opacity:0}
  60%,86%{opacity:1}
  94%,100%{opacity:0}
}

/* ----- 文中工具 CTA ----- */
.toolcta{
  display:flex;align-items:center;gap:18px;
  margin:36px 0;padding:18px 22px;
  border:1.5px solid var(--ink);background:var(--paper);
  box-shadow:7px 7px 0 var(--shadow);
}
.cta-seal{width:46px;height:46px;color:var(--amber);transform:rotate(-6deg);flex-shrink:0}
.cta-txt{flex:1;min-width:0}
.cta-txt b{display:block;font-size:15px;font-weight:900;color:var(--ink);letter-spacing:.06em;margin-bottom:2px}
.cta-txt span{font-size:13px;line-height:1.8;color:var(--muted)}
.cta-btn{display:inline-flex;align-items:center;flex-shrink:0;text-align:center}

/* ----- 文脚 ----- */
.afoot{margin-top:44px;border-top:2px solid var(--ink);padding-top:20px;display:flex;flex-direction:column;gap:16px}
.afoot .tagcloud{padding:0}
.alic{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  border:1px solid var(--line2);border-left:4px solid var(--amber);
  background:var(--paper);padding:13px 18px;
}
.alic p{font-size:12.5px;line-height:1.9;color:var(--muted);margin:0}
.alic p b{color:var(--ink)}
.alic-acts{display:flex;gap:8px;flex-shrink:0}
.alic-acts .pbtn{display:inline-flex;align-items:center}
.article .adj{margin:34px 0 0}
.arel{margin-top:36px}
.arel .arow{padding:14px 4px}
.arel .arow h3{font-size:15.5px}
.article .fam{margin-top:28px}

/* ----- 文章页响应式 ----- */
@media (max-width:640px){
  .ahero-title{font-size:19px}
  .article p{font-size:14.5px}
  .article .lead::first-letter{font-size:36px;padding:7px 10px}
  .article h2{font-size:18.5px;gap:10px;margin:38px 0 14px}
  .article h2 i{width:29px;height:29px;font-size:13px}
  .toolcta{flex-direction:column;align-items:flex-start;gap:12px}
  .cta-btn{width:100%;justify-content:center}
  .alic{flex-direction:column;align-items:flex-start}
}

/* ==========================================================================
   23 首页第五版 · 最新文章（复用副刊头条卡 + 题花文章行）
   ========================================================================== */
.homefeat{
  display:grid;grid-template-columns:1fr 1.15fr;
  gap:1px;background:var(--line2);border:1.5px solid var(--ink);
}
.homefeat-list{
  display:flex;flex-direction:column;justify-content:space-between;
  background:var(--sheet);padding:6px 22px;
}
.homefeat-list .arow{flex:1;align-items:center;padding:12px 2px}
.homefeat-list .arow:last-child{border-bottom:0}
.homefeat-list .arow:hover{padding-left:10px}
.homefeat-list .arow h3{font-size:15px}
.homefeat-list .aglyph{width:40px;height:40px;font-size:17px;margin-top:0}

@media (max-width:880px){
  .homefeat{grid-template-columns:1fr}
}
@media (max-width:640px){
  .homefeat-list{padding:2px 16px}
}

/* ==========================================================================
   24 服务端壳层（SSR base/header/footer 适配 + ⌘K 搜索弹层）
   ========================================================================== */

/* 品牌图片 Logo（白标：后台上传图片时替代印章） */
.brand-img{height:36px;width:auto}
.foot-logo .brand-img{height:32px}
.foot-contact{font-size:12px;color:rgba(247,237,218,.5);margin-top:10px;display:flex;gap:14px;flex-wrap:wrap}

/* 顶栏检索按钮（⌘K） */
.tbtn-search{
  width:auto;padding:0 13px;gap:8px;
  display:inline-flex;align-items:center;
  font-family:var(--serif);font-size:12.5px;font-weight:700;letter-spacing:.1em;color:var(--ink-soft);
}
.tbtn-search kbd{
  font-family:var(--en);font-style:italic;font-size:11px;font-weight:500;color:var(--muted);
  border:1px solid var(--line2);padding:1px 7px;
}
.tbtn-search:hover kbd{color:var(--cream);border-color:rgba(247,237,218,.4)}

/* 页脚六列（品牌 + 5 链接列） */
.foot-grid-6{grid-template-columns:1.5fr repeat(5,minmax(0,1fr))}

/* ----- ⌘K 搜索弹层（dialog） ----- */
.search-modal{
  width:min(620px,calc(100vw - 32px));
  margin:9vh auto auto;padding:0;
  background:var(--sheet);color:var(--ink-soft);
  border:1.5px solid var(--ink);box-shadow:12px 12px 0 var(--shadow);
}
.search-modal::backdrop{background:rgba(28,21,16,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.search-modal-form{
  display:flex;align-items:center;gap:11px;
  padding:7px 16px;border-bottom:1.5px solid var(--ink);
}
.search-modal-icon{width:18px;height:18px;flex-shrink:0;color:var(--muted)}
.search-modal-input{
  flex:1;min-width:0;border:0;outline:0;background:none;
  height:46px;font-family:var(--serif);font-size:15px;color:var(--ink);
}
.search-modal-input::placeholder{color:var(--faint)}
.search-modal-clear,.search-modal-close{
  flex-shrink:0;display:grid;place-items:center;width:28px;height:28px;
  color:var(--muted);transition:color .2s;
}
.search-modal-clear svg,.search-modal-close svg{width:14px;height:14px}
.search-modal-clear:hover,.search-modal-close:hover{color:var(--red)}
.search-modal-results{max-height:52vh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px}
.smr{
  display:flex;align-items:center;gap:13px;
  padding:10px 12px;
  transition:background-color .15s var(--ease);
}
.smr:hover,.smr.act{background:var(--paper)}
.smr-ico{
  flex-shrink:0;display:grid;place-items:center;width:38px;height:38px;
  border:1.5px solid var(--red);color:var(--red);
  font-size:16px;font-weight:900;transform:rotate(-3deg);
}
.smr:nth-child(2n) .smr-ico{border-color:var(--amber);color:var(--amber);transform:rotate(2deg)}
.smr-main{flex:1;min-width:0}
.smr-main b{display:block;font-size:14.5px;font-weight:900;color:var(--ink);letter-spacing:.02em}
.smr:hover .smr-main b,.smr.act .smr-main b{color:var(--red)}
.smr-main i{
  display:block;font-style:normal;font-size:12px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.smr-cat{flex-shrink:0;font-size:11.5px;color:var(--faint)}
.smr-empty,.smr-hint{padding:26px 0;text-align:center;font-size:13px;color:var(--faint);letter-spacing:.18em}
.search-modal-foot{
  display:flex;gap:16px;justify-content:center;
  padding:9px 16px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--faint);
}
.search-modal-foot kbd{
  font-family:var(--en);font-style:italic;font-size:10.5px;
  border:1px solid var(--line2);padding:0 6px;margin-right:3px;
}

@media (max-width:1020px){
  .foot-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-grid-6 .foot-brand{grid-column:span 3}
}
@media (max-width:880px){
  .tbtn-search-lbl,.tbtn-search kbd{display:none}
  .tbtn-search{display:grid;place-items:center;width:36px;padding:0}
}
@media (max-width:640px){
  /* 移动端顶栏：品牌与按钮缩一号，垂直严格居中、上下留白对称 */
  .topbar-in{padding-top:10px;padding-bottom:10px;gap:14px}
  .brand{gap:9px}
  .brand .brand-seal{width:31px;height:31px}
  .brand-img{height:31px}
  .brand-txt{line-height:1.2}
  .brand-txt strong{font-size:16px}
  .brand-txt i{font-size:9.5px;letter-spacing:.01em}
  .topbar-acts{gap:6px}
  .tbtn{width:34px;height:34px}
  .tbtn-search{width:34px}
}
@media (max-width:640px){
  /* 移动端页脚：工具列一行三列；隐藏英文标语(Local First · Zero Upload + 域名)；版权居中 */
  .foot-grid-6{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-grid-6 .foot-brand{grid-column:span 3}
  .foot-en{display:none}
  .foot-copy{flex-direction:column;align-items:center;text-align:center;gap:4px}
  .search-modal{margin-top:4vh}
}

/* ==========================================================================
   25 首页 SSR（精选工具题花格 / 搜索唤起按钮 / 总目描述 / 工具类）
   ========================================================================== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 报头搜索（按钮形态，点击唤起 ⌘K 弹层） */
.mast-search-btn{width:100%;cursor:pointer;text-align:left}
.mast-search-btn .msb-ph{flex:1;min-width:0;font-family:var(--serif);font-size:15px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mast-search-btn .ms-btn{pointer-events:none}

/* 精选工具 · 题花印紧凑格 */
.fwall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line2);border:1.5px solid var(--ink)}
.fcell{
  position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;column-gap:13px;min-width:0;
  padding:16px 18px;background:var(--sheet);
  transition:background-color .22s var(--ease);
}
.fcell:hover{background:var(--cell-h);outline:1.5px solid var(--ink);outline-offset:-1.5px;z-index:2}
.fcell-ico{
  flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;
  border:1.5px solid var(--red);color:var(--red);
  font-size:17px;font-weight:900;transform:rotate(-3deg);
  transition:transform .25s var(--ease);
}
.fcell:nth-child(2n) .fcell-ico{border-color:var(--amber);color:var(--amber);transform:rotate(2deg)}
.fcell:hover .fcell-ico{transform:rotate(0) scale(1.06)}
.fcell-main{flex:1;min-width:0}
.fcell-main b{display:block;font-size:15px;font-weight:900;color:var(--ink);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}
.fcell:hover .fcell-main b{color:var(--red)}
.fcell-no{display:block;font-family:var(--en);font-style:italic;font-size:11px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fcell-go{
  flex-shrink:0;font-family:var(--en);font-style:italic;font-size:17px;color:var(--red);
  opacity:0;transform:translateX(-6px);
  transition:opacity .22s var(--ease),transform .22s var(--ease);
}
.fcell:hover .fcell-go{opacity:1;transform:none}

/* 工具总目 · 分类描述行 */
.cat-desc{grid-column:2;font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

@media (max-width:1020px){
  .fwall{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .fwall{grid-template-columns:1fr}
}

/* ==========================================================================
   26 分类总览页（/categories/ · 分部目录条目列表）
   ========================================================================== */
.acatlist{border-top:1.5px solid var(--ink)}
.acat{padding:20px 6px 18px;border-bottom:1px solid var(--line);transition:background-color .22s var(--ease)}
.acat:hover{background:var(--cell-h)}
.acat-head{display:flex;align-items:center;gap:15px}
.acat-no{flex-shrink:0;width:34px;font-family:var(--en);font-style:italic;font-weight:600;font-size:18px;color:var(--red);text-align:center}
.acat .aglyph{margin-top:0}
.acat:nth-child(2n) .aglyph{border-color:var(--amber);color:var(--amber);transform:rotate(2deg)}
.acat:hover .aglyph{transform:rotate(0) scale(1.06)}
.acat-main{flex:1;min-width:0}
.acat-main h2{font-size:17px;font-weight:900;color:var(--ink);letter-spacing:.04em;transition:color .2s}
.acat:hover .acat-main h2{color:var(--red)}
.acat-count{margin-left:10px;font-family:var(--en);font-style:italic;font-weight:500;font-size:12px;color:var(--muted)}
.acat-desc{font-size:12.5px;color:var(--muted);line-height:1.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acat-go{
  flex-shrink:0;font-family:var(--en);font-style:italic;font-size:19px;color:var(--red);
  opacity:0;transform:translateX(-6px);
  transition:opacity .22s var(--ease),transform .22s var(--ease);
}
.acat:hover .acat-go{opacity:1;transform:none}
.acat-subs{margin:12px 0 0 95px;padding:0}
@media (max-width:640px){
  .acat-head{gap:11px}
  .acat-no{width:24px;font-size:15px}
  .acat .aglyph{width:38px;height:38px;font-size:16px}
  .acat-desc{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .acat-subs{margin-left:0}
}

/* ==========================================================================
   27 热门工具页（全站热榜 · 名次题花格）
   ========================================================================== */
.fcell-rank{font-family:var(--en);font-style:italic;font-weight:600;font-size:12px;color:var(--faint)}
.fcell-top .fcell-ico{border-color:var(--red);color:var(--red);transform:rotate(-3deg)}
.fcell-top .fcell-rank{color:var(--red);font-size:13px}
.fcell-top .fcell-main b{color:var(--red)}

/* ==========================================================================
   28 工具页 SSR（合规提示 / 占位 / 公式 / 错误对照 / 原理图图例 / 表格）
   ========================================================================== */

/* 合规/隐私提示条（命理·彩票·健康·随机 + 全站隐私保证） */
.notice{
  display:flex;align-items:flex-start;gap:13px;
  margin:18px 0;padding:14px 18px;
  border:1px solid var(--line2);border-left:4px solid var(--amber);
  background:var(--paper);
}
.notice-red{border-left-color:var(--red)}
.notice svg{flex-shrink:0;width:20px;height:20px;margin-top:3px;color:var(--amber)}
.notice-red svg{color:var(--red)}
.notice p{font-size:13px;line-height:1.9;color:var(--ink-soft);margin:0}
.notice p strong{color:var(--ink);margin-right:6px}
.notice p b{color:var(--ink);font-weight:700}

/* tool_ui 默认占位（工具开发中） */
.tool-pending{
  margin:34px 0 0;padding:44px 24px;text-align:center;
  border:1.5px dashed var(--line2);background:var(--sheet);
}
.tool-pending h2{font-size:19px;font-weight:900;color:var(--ink);letter-spacing:.08em;margin-bottom:8px}
.tool-pending p{font-size:13.5px;color:var(--muted);line-height:1.9}
.tool-pending .ic{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12px;background:var(--paper);border:1px solid var(--line);padding:1px 7px;color:var(--red)}

/* 表格补充 */
.td-mono{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12.5px;word-break:break-all}
.cmp-auto td:nth-child(2){background:color-mix(in srgb,var(--red) 5%,transparent);font-weight:700}

/* 上手步骤（纯文本步骤） */
.steps .step-txt{font-size:13px;line-height:1.85;color:var(--ink-soft)}

/* 核心公式 */
.formula-expr{
  margin:6px 0 18px;padding:18px 22px;text-align:center;
  border:1.5px solid var(--ink);background:var(--paper);
  font-size:16.5px;font-weight:900;color:var(--ink);letter-spacing:.04em;
}
.var-list{margin:4px 0 14px;padding:0;list-style:none}
.var-list li{font-size:13.5px;line-height:2;color:var(--ink-soft)}
.var-list code{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12.5px;background:var(--paper);border:1px solid var(--line);padding:1px 7px;color:var(--red);margin-right:6px}

/* 典籍依据引述（通用版 .article blockquote） */
.refquote{
  margin:8px 0;padding:16px 24px;
  background:var(--paper);border-left:4px solid var(--red);
}
.refquote p{font-size:15px;font-weight:700;line-height:2;color:var(--ink);letter-spacing:.02em;margin:0 0 8px}
.refquote footer{font-size:12.5px;color:var(--muted)}
.refquote footer a{color:var(--red);border-bottom:1.5px dashed var(--amber)}

/* 常见错误对照（错误 → 修复 双栏） */
.erritem{margin-bottom:22px}
.erritem:last-child{margin-bottom:0}
.erritem-t{font-size:14.5px;font-weight:900;color:var(--ink);letter-spacing:.03em;margin-bottom:10px}
.erritem-t i{font-family:var(--en);font-style:italic;font-weight:600;color:var(--red);margin-right:8px}
.errcols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.errcols .codebox{margin:0}
.errcols .codebox code{white-space:pre-wrap;word-break:break-all}
.erritem-note{margin-top:8px;font-size:12.5px;line-height:1.8;color:var(--muted)}

/* 原理图（LLM 生成 SVG 容器 + 图例） */
.diagram-svg svg{max-width:100%;height:auto;display:block;margin:0 auto}
.diagram-legend{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.diagram-legend-item{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted)}
.diagram-legend-dot{width:10px;height:10px;flex-shrink:0;border:1px solid var(--line2)}

/* 子标题（模块内 h4） */
.subblock-h4{font-size:13.5px;font-weight:900;color:var(--ink);letter-spacing:.08em;margin:16px 0 6px}

@media (max-width:880px){
  .errcols{grid-template-columns:1fr}
}

/* 相关工具：5 个一行 */
.fwall-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.fwall-5 .fcell{padding:14px 14px}
.fwall-5 .fcell-ico{width:36px;height:36px;font-size:15px}
@media (max-width:1020px){.fwall-5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.fwall-5{grid-template-columns:1fr}}

/* 相关工具 · 五列题字格（标题完整换行，不省略） */
.wall-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.wall-5 .tcell{min-height:104px;padding:13px 15px 10px}
.wall-5 .tcell h3{font-size:14.5px;line-height:1.6;white-space:normal}
.wall-5 .tcell-foot{justify-content:flex-end;padding-top:5px}
@media (max-width:1020px){.wall-5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.wall-5{grid-template-columns:repeat(1,minmax(0,1fr))}}

/* 相关工具 · 三列题字卡（标题完整换行 + 摘要两行截断） */
.wall-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.wall-3 .tcell{min-height:118px}
.wall-3 .tcell h3{white-space:normal;line-height:1.6}
.wall-3 .tcell p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.wall-3 .tcell-foot{padding-top:6px}
@media (max-width:880px){.wall-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.wall-3{grid-template-columns:repeat(1,minmax(0,1fr))}}

/* ==========================================================================
   29 工具功能区共用小件（自 json 工具上提：动作钮组 / 迷你钮 / 闲置态文案）
   ========================================================================== */
.jf-acts{display:inline-flex;align-items:center;gap:7px}
.jf-acts i{font-family:var(--en);font-style:italic;font-size:11px;color:var(--red);letter-spacing:.06em}
.jf-mini{
  padding:2px 11px;border:1px solid var(--line2);
  font-family:var(--serif);font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.08em;
  transition:all .2s;cursor:pointer;background:none;
}
.jf-mini:hover{border-color:var(--red);color:var(--red)}
.jf-st-idle{color:var(--faint)}

/* ===== 移动端工具区适配兜底（精做工具区一律响应式，禁止整页横向滚动） ===== */
@media (max-width:640px){
  /* 工具内宽表格 → 自身横向滚动，内容不丢失、可滑动查看，不撑破页面 */
  .tool table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  /* 兜底：clip 掉验印/SVG 等装饰性横向溢出（clip 不建立滚动容器，不破坏 position:sticky） */
  .container{overflow-x:clip}
}

/* ============================================================
   赤金大刊 · 文章阅读系统（T-Article）
   分类目录页 / 详情阅读页；纯变量驱动，自动随 light/dark 主题
   ============================================================ */

/* —— 顶部阅读进度 —— */
.art-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;background:transparent;pointer-events:none}
.art-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--amber),var(--red));box-shadow:0 0 8px rgba(217,137,47,.55);transition:width .12s linear}

/* —— 文章刊头：长标题收敛、印章让位、节奏紧凑 —— */
.art-chero{padding-bottom:40px}
.art-chero .chero-row{display:block;margin:.2rem 0 1rem}
.art-chero h1{font-size:clamp(26px,3.2vw,42px);font-weight:800;line-height:1.3;letter-spacing:.02em;max-width:19em}
.art-chero .cseal{display:none}

/* —— 刊头增强 —— */
.art-sub{margin:.9rem 0 0;font-family:var(--serif);font-size:1.12rem;line-height:1.85;color:var(--ink-soft);max-width:42em}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-top:1.15rem;font-size:.86rem;color:var(--muted)}
.art-meta .am{display:inline-flex;align-items:center;gap:.38rem}
.art-meta .am b{color:var(--ink);font-weight:600}
.art-meta .am svg{width:15px;height:15px;stroke:var(--amber);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.art-meta .am-sep{width:1px;height:12px;background:var(--line2)}

/* —— 题图 —— */
.art-cover{display:block;width:100%;max-height:440px;object-fit:cover;border-radius:14px;border:1px solid var(--line);box-shadow:0 18px 40px -22px var(--shadow);margin:1.6rem 0 .2rem}

/* —— 双栏 —— */
.art-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:2.4rem;padding:2.2rem 0 1rem;align-items:start}
@media(min-width:1000px){.art-wrap{grid-template-columns:232px minmax(0,1fr)}}
.art-main{min-width:0}
/* 奶白版心(sheet)内：双栏贴 sheet 内边距、相关阅读顶距校正 */
.art-sheet .art-wrap{padding:0}
.art-sheet .art-rel-box{margin:2.4rem 0 0}

/* —— 目录 TOC —— */
.art-toc{display:none}
@media(min-width:1000px){.art-toc{display:block;position:sticky;top:90px;max-height:calc(100vh - 120px);overflow:auto;padding-left:1rem;border-left:1px solid var(--line)}}
.art-toc-h{font-family:var(--en);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin-bottom:.9rem}
.art-toc nav{display:flex;flex-direction:column;gap:.05rem}
.art-toc a{position:relative;display:block;padding:.36rem .2rem .36rem .9rem;font-size:.88rem;line-height:1.45;color:var(--muted);text-decoration:none;border-radius:6px;transition:color .25s,background .25s}
.art-toc a.lv3{padding-left:1.7rem;font-size:.82rem}
.art-toc a::before{content:"";position:absolute;left:0;top:50%;width:2px;height:0;background:var(--amber);transform:translateY(-50%);border-radius:2px;transition:height .28s var(--ease)}
.art-toc a:hover{color:var(--ink)}
.art-toc a.is-active{color:var(--red);font-weight:600}
.art-toc a.is-active::before{height:60%}

/* —— 正文排版 prose —— */
.art-prose{max-width:40em;font-family:var(--serif);color:var(--ink-soft);font-size:1.05rem;line-height:1.9}
.art-prose>*:first-child{margin-top:0}
.art-prose p{margin:1.1rem 0}
.art-prose>p:first-of-type{font-size:1.08rem;color:var(--ink)}
.art-prose li>strong:first-child{color:var(--red)}
.art-prose h2,.art-prose h3,.art-prose h4{font-family:var(--serif);color:var(--ink);line-height:1.35;scroll-margin-top:88px;position:relative}
.art-prose h2{font-size:1.5rem;margin:2.6rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.art-prose h2::after{content:"";position:absolute;top:1.5rem;left:0;width:26px;height:3px;background:linear-gradient(90deg,var(--amber),var(--red));border-radius:2px}
.art-prose h3{font-size:1.2rem;margin:1.9rem 0 .8rem;padding-left:.8rem;border-left:3px solid var(--amber)}
.art-prose h4{font-size:1.05rem;margin:1.5rem 0 .6rem;color:var(--ink-soft)}
.art-prose a:not(.art-anchor){color:var(--red);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--line2);transition:text-decoration-color .25s,color .25s}
.art-prose a:not(.art-anchor):hover{color:var(--amber);text-decoration-color:var(--amber)}
.art-prose strong{color:var(--ink);font-weight:700}
.art-prose ul,.art-prose ol{margin:1.1rem 0;padding-left:1.5rem}
.art-prose li{margin:.5rem 0}
.art-prose ul li::marker{color:var(--amber)}
.art-prose ol li::marker{color:var(--amber);font-family:var(--en)}
.art-prose blockquote{margin:1.6rem 0;padding:.9rem 1.2rem;border-left:3px solid var(--amber);background:var(--paper2);border-radius:0 10px 10px 0;color:var(--muted)}
.art-prose blockquote p{margin:.4rem 0}
.art-prose img{display:block;max-width:100%;height:auto;margin:1.6rem auto;border-radius:12px;border:1px solid var(--line);box-shadow:0 14px 34px -20px var(--shadow)}
.art-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--paper2);color:var(--red);padding:.12em .4em;border-radius:5px;border:1px solid var(--line)}
.art-prose pre{margin:1.5rem 0;padding:1.1rem 1.3rem;background:var(--block);border-radius:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;box-shadow:0 14px 34px -22px var(--shadow)}
.art-prose pre code{background:none;border:0;color:var(--cream);padding:0;font-size:.86rem;line-height:1.7}
.art-prose hr{border:0;margin:2.4rem 0;text-align:center}
.art-prose hr::after{content:"❖";color:var(--amber);font-size:1rem;letter-spacing:.4em}
.art-prose table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.92rem}
.art-prose th,.art-prose td{border:1px solid var(--line);padding:.55rem .8rem;text-align:left}
.art-prose th{background:var(--paper2);color:var(--ink);font-weight:600}
.art-prose .art-anchor{position:absolute;left:-1.3em;opacity:0;color:var(--faint);text-decoration:none;font-weight:400;transition:opacity .2s}
.art-prose h2:hover .art-anchor,.art-prose h3:hover .art-anchor{opacity:1}

/* —— 文末 —— */
.art-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.art-share{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .95rem;font-size:.86rem;color:var(--ink);background:transparent;border:1px solid var(--line2);border-radius:999px;cursor:pointer;transition:all .25s var(--ease);font-family:inherit}
.art-share svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.art-share:hover{color:var(--cream);background:var(--block);border-color:var(--block);transform:translateY(-2px)}
.art-back{font-size:.9rem;color:var(--muted);text-decoration:none}
.art-back:hover{color:var(--red)}

/* —— 相关阅读：keyterms 同款「深墨头 + 直角墨框 + 发丝线网格」 —— */
.art-rel-box{margin-top:1.4rem}
.art-rel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line)}
.art-rel-cell{display:flex;flex-direction:column;gap:.7rem;min-height:118px;padding:20px 22px;background:var(--sheet);text-decoration:none;transition:background-color .25s var(--ease)}
.art-rel-cell:hover{background:var(--cell-h)}
.art-rel-t{display:block;font-family:var(--serif);font-size:1.04rem;font-weight:600;color:var(--ink);line-height:1.55;transition:color .2s}
.art-rel-cell:hover .art-rel-t{color:var(--red)}
.art-rel-m{display:flex;gap:.8rem;margin-top:auto;font-size:.8rem;color:var(--muted)}

/* —— 返回顶部 —— */
.art-top{position:fixed;right:22px;bottom:26px;width:46px;height:46px;display:grid;place-items:center;background:var(--block);color:var(--cream);border:0;border-radius:50%;cursor:pointer;opacity:0;transform:translateY(14px) scale(.92);pointer-events:none;box-shadow:0 14px 30px -12px var(--shadow);transition:all .3s var(--ease);z-index:90}
.art-top svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.art-top.show{opacity:1;transform:none;pointer-events:auto}
.art-top:hover{transform:translateY(-3px)}

/* —— 分类列表 —— */
.art-list{display:flex;flex-direction:column}
.art-item{position:relative;display:grid;grid-template-columns:auto 1fr;gap:1.1rem;padding:1.5rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .25s var(--ease)}
.art-item:hover{padding-left:.5rem}
.art-no{font-family:var(--en);font-size:1.5rem;color:var(--line2);line-height:1.1;transition:color .25s}
.art-item:hover .art-no{color:var(--amber)}
.art-it-body{min-width:0}
.art-it-t{display:block;font-family:var(--serif);font-size:1.22rem;font-weight:600;color:var(--ink);line-height:1.5;margin:0 0 .5rem;transition:color .25s}
.art-item:hover .art-it-t{color:var(--red)}
.art-it-s{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.94rem;color:var(--muted);line-height:1.75;margin:0 0 .7rem}
.art-it-m{display:flex;flex-wrap:wrap;gap:.8rem;font-size:.82rem;color:var(--faint)}
.art-empty{padding:3rem 1rem;text-align:center;color:var(--muted);font-family:var(--serif)}

/* —— 子栏目卡 —— */
.art-subgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem}
.art-subcard{display:block;padding:1rem 1.1rem;background:var(--sheet);border:1px solid var(--line);border-radius:10px;text-decoration:none;transition:transform .25s var(--ease),border-color .25s}
.art-subcard:hover{transform:translateY(-3px);border-color:var(--amber)}
.art-subcard b{display:block;color:var(--ink);font-size:1rem;margin-bottom:.3rem}
.art-subcard span{font-size:.82rem;color:var(--muted);line-height:1.6}

/* —— 分页 —— */
.art-pager{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:2rem}
.art-pg{min-width:38px;height:38px;padding:0 .6rem;display:inline-flex;align-items:center;justify-content:center;font-family:var(--en);font-size:.9rem;color:var(--ink-soft);background:var(--sheet);border:1px solid var(--line);border-radius:8px;text-decoration:none;transition:all .25s}
.art-pg:hover{border-color:var(--amber);color:var(--red)}
.art-pg.cur{background:var(--block);color:var(--cream);border-color:var(--block)}
.art-pg.dis{opacity:.4;pointer-events:none}

@media(max-width:640px){
  .art-sub{font-size:1.05rem}
  .art-prose{font-size:1.02rem}
  .art-item{grid-template-columns:1fr;gap:.25rem}
  .art-no{font-size:1.1rem}
  .art-top{right:14px;bottom:18px}
}

/* ============================================================
   v1 遗留通用类 → 赤金大刊重定义
   common.css 已废弃不再加载，但 46 个工具页/旧模板仍用
   .panel / .stack-y / .section-pad —— 此处补齐奶白版心，
   使其与 .tool / .sheet 统一（奶白 --sheet + 墨边 + 硬阴影）
   ============================================================ */
.section-pad{padding:34px 0}
.stack-y>*+*{margin-top:26px}
.panel{position:relative;background:var(--sheet);border:1.5px solid var(--ink);box-shadow:10px 10px 0 var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 20px;border-bottom:1.5px solid var(--ink)}
.panel-title{font-family:var(--serif);font-size:17px;font-weight:900;color:var(--ink);letter-spacing:.04em;margin:0}
.panel-title-rule::before{content:'';display:inline-block;width:4px;height:17px;vertical-align:-3px;margin-right:10px;background:linear-gradient(180deg,var(--amber),var(--red));border-radius:2px}
.panel-toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.panel-body{padding:20px 22px;color:var(--ink-soft);line-height:1.85}
.panel-body.no-pad{padding:0;overflow:hidden}
