/* ════════════════════════════════════════════════════════════════════
   ANNONUS 静态站 · 全站样式（site.css）
   规则来源：hidden_files/DESIGN.md v1.0 + §10 连续世界原则（2026-11-07）。
   数值以宪法为准；与 v4.1 稿的校准记录见 qa/calibration-log.md。
   主要语法（§10）：首屏贴纸环（持续物体）+ 期刊图河（无缝大图带）；
   幽灵大字 / 宣言逐词为次级层（全页贯穿墨线已于整改轮缺陷9 删除）。禁小卡片阵列、禁逐块入场当主语法。
   纪律：CSS 永不预隐藏内容；无 JS 时贴纸环摊平为静态横排、
   图河为原生横滑，全页完整可读（§7.5）。
   贴纸环几何与物理已按定版表 v1 并入（hidden_files/ring-prototype/params.md）。
   ════════════════════════════════════════════════════════════════════ */
:root{
  /* §1 Colors */
  --color-paper:#FAF7F1;
  --color-white:#FFFFFF;
  --color-ink:#1E1A15;
  --color-ochre:#A4713C;
  --color-ink-60:rgba(30,26,21,.60);
  --color-ink-40:rgba(30,26,21,.40);
  --color-hairline:rgba(30,26,21,.12);
  --color-paper-deep:#F1EAE0;
  --color-ghost:rgba(30,26,21,.05);
  /* Ink hover 档（QA 建议 A2 登记）：#38312A = Ink 提亮一档，
     仅主按钮 hover 使用，不作任何底色/文字色 */
  --color-ink-hover:#38312A;
  /* §2 Type scale（锁定） */
  --fs-caption:12px; --fs-small:14px; --fs-body:16px; --fs-lead:18px;
  --fs-h3:20px; --fs-h2s:24px; --fs-h2:30px; --fs-h1s:36px; --fs-h1:48px;
  --fs-display:60px; --fs-hero:72px;
  /* 流体下限（缺陷4）：宣言/字标在窄屏必须继续缩小，下限按 360px
     视口实测可容纳设定，不许桌面字阶原样带到手机被边缘裁切 */
  --fs-manifesto:clamp(40px,9.4vw,118px);
  --fs-wordmark:clamp(46px,12.5vw,164px);
  /* §2.1 Font stacks */
  --font-display:"Songti SC","Noto Serif SC","Noto Serif CJK SC","STSong","SimSun",serif;
  --font-display-latin:"Playfair Display","Didot",Georgia,"Times New Roman",serif;
  --font-body:"PingFang SC","Noto Sans SC","Noto Sans CJK SC","Hiragino Sans GB","Microsoft YaHei",-apple-system,sans-serif;
  --font-body-latin:Inter,-apple-system,"PingFang SC","Noto Sans SC",sans-serif;
  /* §3 Shapes & shadows */
  --radius-panel:16px;
  --shadow-float:0 12px 40px rgba(20,20,20,.10),0 2px 8px rgba(20,20,20,.05);
  --shadow-header:0 1px 12px rgba(20,20,20,.06);
  --shadow-sticker:0 6px 18px rgba(30,26,21,.12);
  --shadow-sticker-hover:0 12px 28px rgba(30,26,21,.16);
  /* §7.3 唯一缓动 */
  --ease:cubic-bezier(.2,.8,.2,1);
  --dur-ui:180ms; --dur-hover:600ms;
  --content-width:1200px;
  /* 贴纸环参数已按定版表 v1 并入（几何在 motion.js RING 定版常量与本文件环段） */
}
*{margin:0;padding:0;box-sizing:border-box}
/* 缺陷4：关掉移动浏览器文字自动放大（font boosting）——真机实测
   宣言大字被自动放大到远超 CSS 字号、单字撑破屏幕；声明按 CSS
   字号原样渲染后，流体字阶才真正生效 */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:clip} /* 环件/幽灵字/图河的横向溢出在此收口，不影响吸顶（clip 不建滚动容器） */
body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);
  font-size:var(--fs-body);line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:var(--content-width);margin-inline:auto;padding-inline:24px;position:relative}
/* 微标签（§2.4 去演示稿化）：禁全大写+宽字距演示式；拉丁用衬线
   斜体混合大小写、字距 ≤.04em；中文标签字距上限 .14em */
.eyebrow{font-family:var(--font-display-latin);font-style:italic;font-size:var(--fs-caption);
  letter-spacing:.04em;color:var(--color-ochre)}
.eyebrow .zh{font-family:var(--font-body);font-style:normal;letter-spacing:.14em}
.meta{font-size:var(--fs-caption);color:var(--color-ink-40);letter-spacing:.04em}
.t-lead{font-size:var(--fs-lead);line-height:1.7}
.t-caption{font-size:var(--fs-caption);line-height:1.6}
.lead-dim{color:var(--color-ink-60)}

/* ── 次级连续层 ①：幽灵大字（整页横移 ≤14vw，§4.3） ── */
.ghost{position:fixed;top:34vh;left:0;z-index:0;font-family:var(--font-display-latin);
  font-size:clamp(160px,22vw,320px);line-height:1;font-weight:400;letter-spacing:.02em;
  color:var(--color-ghost);white-space:nowrap;pointer-events:none;will-change:transform}
/* ── （已删）次级连续层 ②：全页贯穿墨线 —— 整改轮缺陷9 整条删除：
   用户裁定贯穿竖线显得廉价。结构细线只保留在 .ch-head 标题下短线、
   栏目行/货架书脊/索引头等局部分隔处，均为发丝级 hairline（Ink 低透明）。 ── */
main{position:relative;z-index:1}
.ch-no{font-family:var(--font-body-latin);font-size:var(--fs-small);letter-spacing:.08em;color:var(--color-ochre);
  display:flex;align-items:center;gap:14px}
.ch-no::after{content:"";height:1px;width:56px;background:var(--color-ochre);opacity:.55}

/* ── 页眉（§4.1 定版：纯白实色、76px、吸顶、禁毛玻璃） ── */
.site-header{position:sticky;top:0;z-index:200;background:var(--color-white);
  border-bottom:1px solid var(--color-hairline)}
.site-header.scrolled{box-shadow:var(--shadow-header)}
.site-header .bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  min-height:76px;max-width:var(--content-width);margin-inline:auto;padding-inline:24px}
.brand{display:flex;align-items:center;gap:12px;justify-self:start}
.brand img{height:52px;width:auto}
.brand .brand-zh{font-family:var(--font-display);font-size:var(--fs-h3);letter-spacing:.28em}
.main-nav{display:flex;gap:44px;justify-self:center}
.main-nav a{font-size:var(--fs-lead);font-weight:500;letter-spacing:.02em;line-height:1.4;
  white-space:nowrap;padding:6px 2px;transition:opacity var(--dur-ui) var(--ease)}
.main-nav a:hover{opacity:.55}
.main-nav a[aria-current]{box-shadow:inset 0 -2px 0 var(--color-ochre)}
.head-right{justify-self:end;display:flex;align-items:center}
.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);
  background:none;border:0;cursor:pointer;padding:8px 4px;font-family:var(--font-body);color:var(--color-ink)}
.lang-btn svg{width:19px;height:19px;stroke:var(--color-ink-60);fill:none;stroke-width:1.4}
.lang-btn .caret{font-size:var(--fs-caption);color:var(--color-ink-40)}
.lang-panel{position:absolute;right:0;top:calc(100% + 10px);min-width:208px;
  background:var(--color-white);border:1px solid rgba(20,20,20,.06);
  border-radius:var(--radius-panel);box-shadow:var(--shadow-float);padding:8px;
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity var(--dur-ui) var(--ease),transform var(--dur-ui) var(--ease),
  visibility 0s linear var(--dur-ui)}
.lang:hover .lang-panel,.lang:focus-within .lang-panel{opacity:1;visibility:visible;transform:translateY(0)}
.lang-panel a,.lang-panel .lang-item{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:10px 12px;font-size:var(--fs-body);border-radius:12px;line-height:1.45}
.lang-panel a:hover{background:rgba(20,20,20,.055)}
.lang-panel a .check{font-size:var(--fs-caption);opacity:.65}
/* 未生成语言的禁用态（B2）：不可点、置灰、标「即将上线」 */
.lang-panel .lang-item.is-off{color:var(--color-ink-40);cursor:default}
.lang-panel .lang-item .soon{font-size:var(--fs-caption);letter-spacing:.04em}

/* ── 按钮（§5.1：一对 + 文字链接） ── */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;
  font-size:var(--fs-body);font-weight:500;line-height:1.4;padding:13px 28px;cursor:pointer;
  font-family:var(--font-body);
  transition:transform var(--dur-ui) var(--ease),background var(--dur-ui) var(--ease)}
.btn:active{transform:translateY(1px) scale(.985)}
.btn-primary{background:var(--color-ink);color:var(--color-white);border:1px solid var(--color-ink)}
.btn-primary:hover{background:var(--color-ink-hover)}
.btn-ghost{background:transparent;color:var(--color-ink);border:1px solid var(--color-hairline)}
.btn-ghost:hover{background:rgba(20,20,20,.05)}
.link-arrow{font-size:var(--fs-body);display:inline-flex;gap:6px;align-items:center;
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size var(--dur-hover) var(--ease),color var(--dur-ui) var(--ease)}
.link-arrow:hover{color:var(--color-ochre);background-size:100% 1px}

/* ── 章节通用（间距档 §3：96/64/32） ── */
.chapter{padding-block:96px;position:relative}
.ch-head{margin-bottom:48px}
.ch-head h2{font-family:var(--font-display);font-size:clamp(36px,3.6vw,48px);
  line-height:1.2;font-weight:400;letter-spacing:-.01em;margin-top:16px}
figure.ph{overflow:hidden;border-radius:16px}
figure.ph img{width:100%;height:100%;object-fit:cover;will-change:transform}

/* ── 贴纸通用形态（§5.3）：白边 + 贴纸阴影。
   ⚠ 环内与点缀贴纸目前均为「紧裁切 + 白边」演示近似
   （data-sticker-status="placeholder-crop"），生产须换透明底去背图。── */
/* 圆角归档（S6）：外圆角取卡片档 16px；内图按嵌套公式
   内圆角 = 外圆角 − 间隙（白边 8px）= 8px */
.sticker-in{display:block;background:var(--color-white);padding:8px;border-radius:16px;
  box-shadow:var(--shadow-sticker)}
.sticker-in img{width:100%;height:100%;object-fit:cover;border-radius:8px}

/* ═══ S1 首屏：贴纸环（§10.5，参数定版表 v1 · ring-prototype/params.md） ═══
   320vh 环段 + 粘性舞台；环 = CSS 3D 圆柱（preserve-3d），不用 Three.js。
   无 JS 时 .ring 为静态横排（flex + 横滑），全环可见可读；
   JS 初始化后给 .ring-viewport 加 .is-live，切换为 3D 定位。 */
.hero{position:relative}
.hero-stage{position:relative;height:calc(100vh - 76px);height:calc(100svh - 76px);min-height:600px;
  overflow:hidden;display:flex;flex-direction:column}
.hero-meta{display:flex;justify-content:space-between;align-items:baseline;
  padding-top:20px;position:relative;z-index:5}
.wordmark{position:absolute;left:50%;top:26%;transform:translate(-50%,-50%);
  font-family:var(--font-display-latin);font-size:var(--fs-wordmark);
  letter-spacing:.045em;line-height:1;font-weight:400;color:var(--color-ink);
  z-index:1;white-space:nowrap;user-select:none;pointer-events:none}
.wordmark .dot{color:var(--color-ochre)}
.ring-viewport{position:absolute;inset:0;z-index:2}
.ring{display:flex;gap:16px;overflow-x:auto;padding:16px 24px;height:100%;align-items:center;scrollbar-width:thin}
.ring-panel{flex:0 0 auto;width:200px;height:248px;position:relative}
.ring-panel:focus-visible{outline:2px solid var(--color-ochre);outline-offset:3px}
.card{width:100%;height:100%;border-radius:16px;overflow:hidden;position:relative;
  border:6px solid var(--color-white);background:var(--color-white);
  box-shadow:0 26px 54px rgba(30,26,21,.24),0 5px 16px rgba(30,26,21,.13);
  will-change:transform}
.card img{width:100%;height:100%;object-fit:cover}
.card .shade{position:absolute;inset:0;background:var(--color-paper);opacity:0;z-index:2;pointer-events:none}
.card figcaption{position:absolute;left:10px;bottom:10px;z-index:3;
  background:rgba(250,247,241,.93);border-radius:12px;padding:6px 10px 7px;
  font-size:var(--fs-caption);letter-spacing:.06em;line-height:1.35;color:var(--color-ink);
  box-shadow:0 3px 10px rgba(30,26,21,.12)}
.card figcaption i{font-family:var(--font-display-latin);font-style:italic;color:var(--color-ochre);
  font-size:var(--fs-caption);letter-spacing:.04em;display:block}
/* 去背换图位（生产预留）：cutout=true 时面板走透明底形态——
   无边框无底色，图 contain 底对齐，投影改沿轮廓的 drop-shadow */
.ring-panel.is-cutout .card{border:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.ring-panel.is-cutout .card img{object-fit:contain;object-position:50% 100%;
  filter:drop-shadow(0 18px 22px rgba(30,26,21,.18))}
.ring-panel.is-cutout .card .shade{display:none}
/* 帧率守卫降级（body.lowperf，定版表硬规则）：只减装饰，不减运动 */
body.lowperf .card{box-shadow:0 10px 24px rgba(30,26,21,.18)}
body.lowperf .card .shade{display:none}
/* JS 3D 模式（定版几何：透视 1500、origin 50% 52%、环倾角 -5° 由 JS 写） */
.ring-viewport.is-live{perspective:1500px;perspective-origin:50% 52%;touch-action:pan-y;
  cursor:grab;user-select:none;-webkit-user-select:none}
.ring-viewport.is-live:active{cursor:grabbing}
.ring-viewport.is-live .ring{display:block;overflow:visible;padding:0;height:auto;
  position:absolute;left:50%;top:59%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.ring-viewport.is-live .ring-panel{position:absolute;left:0;top:0;flex:none;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;will-change:transform}
/* 正前方主体联动文案（左下）与序号（右下）：同一行 flex 两端分布
   （缺陷4 重组：原先两者各自绝对定位，窄屏舞台变矮后必然叠压；
   合进同一容器后桌面同位、移动端随流排布，永不相撞） */
/* left 取 76px：环左钮占 x∈[20,64] 的竖直车道，文案块底锚向上生长，
   长语言（德/法/西）题注换行变高后顶进按钮车道会压字（i18n 构建实测）。
   文案整行右移让开车道，全语言全高度不相撞；移动端文案改静态流不适用本值。 */
.hero-caption{position:absolute;left:76px;right:28px;bottom:12vh;z-index:4;
  display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  /* 容器整宽横贯舞台下部，盒子本身必须点击穿透——否则正前方
     面板的下半会被这层透明盒子挡住点不动（缺陷1 复测实锤）；
     只有文字子块接事件（选中/点链接），中间留空给面板 */
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease}
.hero-caption .hc-main,.hero-caption .front-idx{pointer-events:auto}
/* 整改轮（缺陷8）：文案块加纸色衬底——幽灵大字是 fixed 背景层，
   从文案下方透出来会与标题字形叠印（用户桌面实拍实锤）；衬底把
   文案与背景层隔开，重影不再压字。衬底只包文字块本身，不扩成卡片。 */
.hero-caption .hc-main{background:rgba(250,247,241,.84);backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);border-radius:12px;padding:12px 16px 14px}
.hero-caption .front-idx{background:rgba(250,247,241,.84);backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);border-radius:12px;padding:10px 14px}
.hero-caption.swap{opacity:0;transform:translateY(8px)}
.hc-main{max-width:320px}
.hero-caption .hc-tag{font-size:var(--fs-caption);letter-spacing:.14em;color:var(--color-ochre);margin-bottom:10px}
.hero-caption h2{font-family:var(--font-display);font-size:clamp(24px,2.7vw,30px);
  font-weight:400;line-height:1.25;letter-spacing:-.01em}
.hero-caption p{margin-top:10px;font-size:var(--fs-body);line-height:1.75;color:var(--color-ink-60)}
.hero-caption .link-arrow{margin-top:10px}
.front-idx{position:static;flex:0 0 auto;
  text-align:right;font-size:var(--fs-caption);letter-spacing:.04em;color:var(--color-ink-40)}
.front-idx b{display:block;font-family:var(--font-display-latin);font-size:30px;
  letter-spacing:.04em;color:var(--color-ink);font-weight:400;margin-bottom:4px}
.front-idx span{font-family:var(--font-display-latin);font-style:italic}
.hint{position:absolute;left:50%;bottom:3.4vh;transform:translateX(-50%);z-index:4;
  font-size:var(--fs-caption);letter-spacing:.14em;color:var(--color-ink-40);white-space:nowrap}
.ring-progress{position:absolute;left:50%;bottom:2.2vh;transform:translateX(-50%);
  width:min(300px,50vw);height:2px;background:var(--color-hairline);z-index:4}
.ring-progress span{display:block;height:100%;width:0;background:var(--color-ochre)}
/* ── 轮播保底按钮（缺陷3升级/缺陷7）：环与图河共用同一套样板——
   48px 纸面圆钮、发丝描边、悬浮影，与圆角阶梯同语言；只转不跳，
   内容入口永远是面板/图片本体链接，两条路独立 ── */
.car-btn{position:absolute;z-index:6;width:48px;height:48px;border-radius:50%;
  background:var(--color-paper);border:1px solid var(--color-hairline);
  box-shadow:var(--shadow-float);display:grid;place-items:center;cursor:pointer;
  color:var(--color-ink);padding:0;
  transition:border-color var(--dur-ui) var(--ease),color var(--dur-ui) var(--ease)}
.car-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
.car-btn:hover{border-color:var(--color-ochre);color:var(--color-ochre)}
.car-btn:active{scale:.94}
.car-btn:focus-visible{outline:2px solid var(--color-ochre);outline-offset:3px}
/* 环按钮锚点取舞台正中（50%）：原 59% 在矮视口下会压到左下文案卡的
   眉题行（缩放矩阵 1024 档实拍：‹ 钮遮住「今日主推」首字）——50% 与
   图河按钮同锚点、全高度区间都不与文案带相交（相对定位规则，非定宽补丁） */
.car-btn.ring-prev{left:20px;top:50%;transform:translateY(-50%)}
.car-btn.ring-next{right:20px;top:50%;transform:translateY(-50%)}
.car-btn.river-prev{left:20px;top:50%;transform:translateY(-50%)}
.car-btn.river-next{right:20px;top:50%;transform:translateY(-50%)}

/* 环后导读带 */
.hero-outro{padding:0 0 96px}
.hero-sub{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
.hero-sub .lead{grid-column:1/7;font-size:var(--fs-h3);line-height:1.8;color:var(--color-ink-60)}
.hero-sub .side{grid-column:9/13;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* ═══ S2 期刊图河（§10.6，主要语法 · 无缝大图带） ═══
   桌面：纵滚驱动横移（JS pin + scrub）；移动/无 JS：原生横滑。
   面板无缝相接（gap:0），题字以纸签形态骑在图上。 */
.river-sec{padding-block:96px;position:relative;overflow:hidden}
.river-head{margin-bottom:32px}
.river-frame{position:relative}
.river-viewport{overflow-x:auto;scrollbar-width:thin}
.river-viewport.is-live{overflow:hidden;cursor:grab;user-select:none;-webkit-user-select:none}
.river-viewport.is-live:active{cursor:grabbing}
/* 缺陷2：图河图片本体链接（点图进文章），填满面板、圆角由面板裁切 */
.river-img-link{display:block;width:100%;height:100%}
.river-img-link:focus-visible{outline:2px solid var(--color-ochre);outline-offset:-2px}
.river-track{display:flex;gap:0;width:max-content;will-change:transform}
/* B3：overflow 裁切使 20px 圆角视觉成立（图不再以直角盖满面板） */
.river-panel{position:relative;flex:0 0 auto;height:60vh;width:58vw;border-radius:20px;overflow:hidden}
.river-panel img{width:100%;height:100%;object-fit:cover}
.river-panel.text{width:min(58vw,540px);background:var(--color-paper-deep);
  display:flex;align-items:center;padding:48px}
.river-panel.text .big{font-family:var(--font-display);font-size:clamp(24px,2.6vw,36px);
  line-height:1.5;font-weight:400;max-width:14em}
.river-panel.text .meta{margin-top:14px}
.river-panel.text .link-arrow{margin-top:16px}
.river-tag{position:absolute;left:24px;bottom:24px;background:var(--color-paper);
  border-radius:16px;box-shadow:var(--shadow-sticker);padding:16px 20px;max-width:min(430px,calc(100% - 48px))}
.river-tag h3{font-family:var(--font-display);font-size:var(--fs-h2s);line-height:1.3;
  font-weight:400;letter-spacing:-.01em;margin-top:6px}
.river-tag h3 a:hover{color:var(--color-ochre)}
.river-tag .judge{color:var(--color-ink-60);font-size:var(--fs-small);margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.river-tag .meta{margin-top:8px}
.river-hint{text-align:right;margin-top:16px}

/* ── S3 深读 · 丝绸活样（DESIGN.md §7.2/§7.4）：丝绸是框内展品，
   与展签列表同坐纸面；本区无卡片、无阴影、无压图文字。桌面活样
   由右侧列表以 grid stretch 撑高，移动端以 3/2 比例先行锁定高度。 ── */
.deep-body{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;margin-top:48px}
.deep-silk{grid-column:1/6;position:relative;border-radius:20px;overflow:hidden;background:var(--color-paper-deep)}
.deep-silk video,.deep-silk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.deep-silk img{will-change:transform}
.deep-list{grid-column:6/13}
.deep-p{padding:24px 0 32px}
.deep-p:first-child{padding-top:8px}
.deep-p + .deep-p{border-top:1px solid var(--color-hairline)}
.deep-p h3{font-family:var(--font-display);font-size:var(--fs-h2s);line-height:1.3;font-weight:400;margin:10px 0}
.deep-p p{color:var(--color-ink-60);max-width:34em}
.deep-lead{margin-top:14px;max-width:34em}
.deep-meta{margin-top:12px}
.deep-p .link-arrow{margin-top:14px}

/* ── S4 栏目：目录页大字行（纯排版，无图无卡） ── */
.cols-rows{display:flex;flex-direction:column}
.col-row{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:baseline;padding:32px 0}
.col-row + .col-row{border-top:1px solid var(--color-hairline)}
.col-row .num{grid-column:1/2;font-family:var(--font-display-latin);font-size:clamp(36px,3.4vw,48px);
  color:var(--color-ochre);line-height:1;font-weight:400}
.col-row .c-txt{grid-column:2/13}
.col-row .c-txt h3{font-family:var(--font-display);font-size:clamp(24px,3vw,36px);
  line-height:1.25;font-weight:400;letter-spacing:-.01em}
.col-row .c-txt p{color:var(--color-ink-60);margin-top:6px;max-width:38em}
.col-row:hover .c-txt h3{color:var(--color-ochre)}

/* ── S5 衣橱经济学：图顶在标题肩上 ── */
.econ-top{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:end}
.econ-top .e-txt{grid-column:1/9}
.econ-top h2{font-family:var(--font-display);font-size:clamp(36px,3.8vw,48px);line-height:1.26;
  font-weight:400;letter-spacing:-.01em;margin-top:16px}
.econ-top .e-fig{grid-column:9/13;aspect-ratio:3/2;margin-bottom:-64px;position:relative;z-index:2}
.econ-lead{margin-top:96px;max-width:36em;font-size:var(--fs-lead);color:var(--color-ink-60);line-height:1.85}
.econ-rules{margin-top:48px}
.econ-rule{display:grid;grid-template-columns:88px 1fr;gap:20px;padding:24px 0;align-items:baseline}
.econ-rule + .econ-rule{border-top:1px solid var(--color-hairline)}
.econ-rule .n{font-family:var(--font-display-latin);font-size:clamp(30px,3vw,48px);color:var(--color-ochre);line-height:1;font-weight:400}
.econ-rule b{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:400}
.econ-rule span{color:var(--color-ink-60);margin-left:14px}
.econ-link{margin-top:32px}

/* ── S6 宣言（次级层：逐词变实）+ 环外贴纸点缀 1/2：品牌徽章 ── */
.manifesto{padding-block:96px}
.manifesto .slogan{font-family:var(--font-display);font-size:var(--fs-manifesto);
  line-height:1.25;font-weight:400;letter-spacing:-.01em;max-width:11em;margin-top:32px}
.manifesto .cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:64px;max-width:920px}
/* 缺陷6：中文版宣言只有中文一段（英文句不渲染），单列收窄排布 */
.manifesto .cols.single{grid-template-columns:1fr;max-width:640px}
.manifesto .cols p{color:var(--color-ink-60)}
.manifesto .en{font-family:var(--font-display-latin);font-style:italic}
.sticker{position:absolute;z-index:5;will-change:transform;--tilt:0deg;transform:rotate(var(--tilt))}
.sticker-badge{width:132px;height:132px;right:3%;top:8px;--tilt:4deg}
.sticker-badge .sticker-in{height:100%;border-radius:50%;padding:7px}
.sticker-badge .badge-core{height:100%;border-radius:50%;background:var(--color-ink);
  color:var(--color-white);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px;text-align:center}
.sticker-badge .badge-core b{font-family:var(--font-display-latin);font-size:var(--fs-small);letter-spacing:.14em;font-weight:400}
.sticker-badge .badge-core span{font-family:var(--font-display);font-size:var(--fs-small);letter-spacing:.14em;text-indent:.14em}
.sticker-badge .badge-core i{font-style:normal;font-family:var(--font-body-latin);font-size:var(--fs-caption);letter-spacing:.04em;opacity:.65}

/* ── S7 货架：纯排版书脊，横向翻阅 ── */
.shelf-sec{overflow:hidden;padding-block:96px;background:var(--color-paper-deep);position:relative}
/* 缺陷5：宽度与全站内容宽对齐（原 1280 比 .wrap 的 1200 宽 40px，
   书脊文字左界比其他区更靠左，正压在墨线（内容左界内 10px）上——
   1440/1920 宽截图实测墨线穿过书脊 01 的数字、标题与正文） */
.shelf{display:flex;gap:0;overflow-x:auto;padding:16px 24px 24px;scroll-snap-type:x mandatory;
  /* scroll-padding 修正吸附原点：没有它，浏览器初始吸附会把第一
     根书脊的起点对齐滚动口左缘、吃掉 24px 左内边距，书脊 01 在
     窄屏被左缘裁切（移动端逐屏自检实测） */
  scroll-padding-left:24px;
  max-width:var(--content-width);margin-inline:auto;scrollbar-width:thin}
.spine{flex:0 0 300px;scroll-snap-align:start;padding:8px 32px 8px 0;margin-right:32px;
  border-right:1px solid var(--color-hairline);display:flex;flex-direction:column;min-height:340px}
.spine:last-child{border-right:0}
.spine .no{font-family:var(--font-display-latin);font-size:var(--fs-display);color:var(--color-ink-40);line-height:1;font-weight:400}
.spine h3{font-family:var(--font-display);font-size:clamp(24px,2.4vw,30px);font-weight:400;margin-top:16px}
.spine p{color:var(--color-ink-60);font-size:var(--fs-small);margin-top:10px;flex:1}
.shelf-head{margin-bottom:24px}
.shelf-hint{text-align:right}

/* ── S8 订阅：纸面直排（§5.4：全站唯一表单，底线式整区一致） ── */
.subscribe{display:grid;grid-template-columns:repeat(12,1fr);gap:24px;align-items:start}
.subscribe .s-left{grid-column:1/6}
.subscribe .s-left .day{font-family:var(--font-display);font-size:clamp(48px,4.6vw,60px);
  line-height:1.15;font-weight:400;margin-top:14px}
.subscribe .s-right{grid-column:7/13}
.subscribe .s-right h2{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:400}
.subscribe .s-right .t-lead{margin-top:10px}
.sub-form{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}
.sub-form input{flex:1 1 280px;font-family:var(--font-body);font-size:var(--fs-lead);
  padding:10px 2px 12px;border:0;border-bottom:2px solid var(--color-ink);
  background:transparent;color:var(--color-ink);border-radius:0}
.sub-form input:focus{outline:none;border-bottom-color:var(--color-ochre)}
/* 订阅状态行（B4 诚实禁用态）：明示即将开通，不收集邮箱 */
.sub-status{margin-top:16px;color:var(--color-ink-60);font-size:var(--fs-lead);max-width:34em}
.sub-form input:disabled{color:var(--color-ink-40);border-bottom-color:var(--color-hairline);cursor:not-allowed}
.sub-form .btn:disabled{opacity:.5;cursor:not-allowed}
.sub-form .btn:disabled:active{transform:none}
.subscribe .fine{margin-top:16px;color:var(--color-ink-40)}
.sub-meta{margin-top:14px}

/* ── 页脚（§5.5：Paper Deep 底，出处只占一行） ── */
.site-footer{background:var(--color-paper-deep);border-top:1px solid var(--color-hairline);
  padding:88px 0 48px;position:relative;z-index:1}
/* 整改轮（缺陷11）：页脚重做为正经的收尾区，不再是「剩余空间放小字」：
   品牌块在前（大字标 + 安诺丝 + 一句关于图片的人话，替代原先与页面
   上方重复的自我介绍句），三列导航居中（字号提到正文级可舒服阅读），
   版权行在后保持小字但与主体拉开间距层级。免责式图片声明已删。 */
.foot-top{padding-bottom:44px;border-bottom:1px solid var(--color-hairline);margin-bottom:52px}
.foot-wordmark{font-family:var(--font-display-latin);font-size:clamp(42px,6vw,84px);
  letter-spacing:.045em;line-height:1;font-weight:400;color:var(--color-ink)}
.foot-wordmark .dot{color:var(--color-ochre)}
.foot-brandzh{font-family:var(--font-display);font-size:var(--fs-h3);letter-spacing:.28em;margin-top:18px}
.foot-imgnote{color:var(--color-ink-60);font-size:var(--fs-small);line-height:1.75;margin-top:14px;max-width:38em}
.foot-grid{display:grid;grid-template-columns:1fr 1.5fr 1.5fr;gap:48px}
.foot-grid h5{font-size:var(--fs-small);letter-spacing:.14em;color:var(--color-ink-60);font-weight:600;margin-bottom:20px}
.foot-grid li{list-style:none;margin-bottom:12px;font-size:var(--fs-body);line-height:1.55}
.foot-grid a:hover{opacity:.6}
.foot-bottom{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:56px;padding-top:28px;border-top:1px solid var(--color-hairline)}
.foot-bottom p{font-size:var(--fs-caption);color:var(--color-ink-40)}

@media (max-width:1023px){
  .foot-grid{grid-template-columns:1fr 1fr}
  .manifesto .cols{grid-template-columns:1fr}
}
@media (max-width:767px){
  .site-footer{padding:64px 0 40px}
  .foot-top{padding-bottom:32px;margin-bottom:40px}
  .foot-bottom{margin-top:44px}
}
@media (max-width:767px){
  .site-header .bar{grid-template-columns:1fr auto;min-height:60px;padding-block:8px}
  /* 追加A（2026-11-07 晚）：移动端页眉收紧为两行——显式落格：
     第一行 Logo（左，col 1）+ 语言切换器（右，col 2），第二行导航。
     原自动落格把 .head-right 挤到第三行独占一行，页眉撑高挤压内容。
     桌面端（>767px）一行三段定版不受此段影响。 */
  .brand{grid-column:1;grid-row:1}
  .head-right{grid-column:2;grid-row:1}
  /* justify-self 必须 stretch：start 会让导航盒按内容（max-content）撑宽，
     长语言标签（日/德/法等）下盒宽超屏、overflow-x:auto 永不生效（i18n 构建实测）。
     stretch 把盒宽约束在栅格列内，内容超宽时在盒内横滚，链接仍左起排布。 */
  .main-nav{grid-column:1/-1;grid-row:2;justify-self:stretch;min-width:0;overflow-x:auto;gap:28px;padding-bottom:8px;scrollbar-width:none}
  .main-nav::-webkit-scrollbar{display:none}
  .chapter{padding-block:64px}
  .manifesto{padding-block:64px}
  .shelf-sec{padding-block:64px}
  .river-sec{padding-block:64px}
  /* 缺陷4 环区重排：舞台改自然流高度——环带占 54svh，文案与序号
     在环带下方同一 flex 行排布（左文案、右序号），不再用各自的
     绝对定位在矮舞台里叠压；巨字标退到环带中心作背景层 */
  .hero-stage{height:auto;min-height:0}
  .ring-viewport{position:relative;inset:auto;height:54svh;min-height:330px;flex:0 0 auto}
  .ring-viewport.is-live .ring{top:54%}
  .wordmark{top:41%}
  .hero-caption{position:static;padding:14px 18px 28px;max-width:none;align-items:flex-start}
  .hc-main{max-width:none;flex:1}
  .hero-caption p{font-size:var(--fs-small)}
  .front-idx{padding-top:6px}
  .front-idx b{font-size:24px}
  .car-btn{width:44px;height:44px}
  /* ── 移动端悬浮按钮带（全站规则，2026-11-07 晚藤原手机实拍点名后立）──
     任何宽度下，悬浮导航按钮不得进入文字区。移动端各舞台的文字全在
     中下部（图河题字卡在面板左下、环文案卡在舞台下方流式排布、展品
     题字在卡片下沿），上沿只有图——故移动端按钮一律退到舞台上沿的
     图片带：环钮分居上沿两角，图河两钮成对收进右上角（题字在左下，
     右上与任何停位的题字卡、下一张卡题字、文字面板大字都不相交）。
     原中线放法（环 top:41%、图河 top:50%）经 audit-mobile 两档真宽
     逐位实测：图河左钮盖住题字标题首字（「一位」被盖成「位」），
     环钮 8 步逐位压侧面展品题字——是位置规则错了，不是某个宽度的问题，
     修法只许改这条相对锚点规则，不许针对单一宽度打补丁。
     桌面端（>767px）左右中线放法维持定版，不受本段影响。 */
  .car-btn.ring-prev{left:10px;top:10px;transform:none}
  .car-btn.ring-next{right:10px;top:10px;transform:none}
  .car-btn.river-prev{left:auto;right:64px;top:12px;transform:none}
  .car-btn.river-next{right:12px;top:12px;transform:none}
  /* 幽灵大字按视口宽缩放，整词收进屏内不裁切 */
  .ghost{font-size:19vw;top:30vh}
  .hint{display:none}
  .hero-sub .lead,.hero-sub .side{grid-column:1/-1}
  .river-panel{height:56vh;width:84vw}
  .river-panel.text{width:84vw;padding:32px}
  .river-tag{left:12px;bottom:12px;padding:12px 14px}
  .deep-body{display:block;margin-top:32px}
  .deep-silk{aspect-ratio:3/2;border-radius:16px}
  .deep-list{margin-top:32px}
  .deep-p{padding:24px 0}
  .deep-p:first-child{padding-top:24px}
  .deep-p p{max-width:none}
  .col-row .num{grid-column:1/3}
  .col-row .c-txt{grid-column:3/-1}
  .econ-top .e-txt{grid-column:1/-1}
  .econ-top .e-fig{grid-column:1/-1;margin:24px 0 0}
  .econ-lead{margin-top:32px}
  .subscribe .s-left,.subscribe .s-right{grid-column:1/-1}
  .sticker-badge{width:96px;height:96px;top:-4px;right:0}
  .foot-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ═══ 刊物化修订（DESIGN §2.4，2026-11-07 20:01） ═══
   folio 章节头：左栏目名 + 右期号、下压发丝线；拉丁点缀衬线斜体；
   首字下沉只给深读首段与文章首段。 */
.ch-head{border-bottom:1px solid var(--color-hairline);padding-bottom:16px}
.ch-no{font-family:var(--font-display-latin);font-style:italic;letter-spacing:.03em;
  text-transform:none;color:var(--color-ochre)}
.river-head .rh-right{font-family:var(--font-display-latin);font-style:italic;color:var(--color-ink-40)}
.deep-list .deep-p:first-child .p-body::first-letter,
.article-body.has-cap>p:first-of-type::first-letter{
  font-family:var(--font-display);font-size:3.1em;float:left;line-height:.86;
  padding:6px 10px 0 0;color:var(--color-ink)}
 em.latin, .latin-i{font-family:var(--font-display-latin);font-style:italic;letter-spacing:.01em}

/* ═══ 文章页 / 索引页 / 专题页（子页共用） ═══ */
.page-main{padding:48px 0 96px}
.crumb{font-size:var(--fs-small);color:var(--color-ink-60);margin-bottom:32px}
.crumb a{color:var(--color-ochre)}
.article-col{font-size:var(--fs-small);letter-spacing:.14em;color:var(--color-ochre);margin-bottom:16px}
.article-col .latin-i{color:var(--color-ink-40);margin-left:10px}
.article-title{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4.6vw,44px);
  line-height:1.3;letter-spacing:-.01em;max-width:820px}
.article-lede{margin-top:20px;font-size:18px;line-height:1.9;color:var(--color-ink-60);max-width:720px}
.byline{margin-top:20px;padding:12px 0;border-top:1px solid var(--color-hairline);
  border-bottom:1px solid var(--color-hairline);font-size:var(--fs-small);color:var(--color-ink-40);
  display:flex;gap:24px;flex-wrap:wrap;max-width:820px}
/* ── 文章页编辑排版（article-editorial-design §3，2026-11-07 深夜）──
   文字柱 680 居中；头部六件同柱；图三档（同柱/破格/全幅）+ 竖幅
   原比例呈现；编辑块只许提炼/事实卡/注脚三件；文末五件。 */
.article-head{max-width:680px;margin:0 auto}
.article-folio{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  border-bottom:1px solid var(--color-hairline);padding-bottom:12px;
  font-size:var(--fs-small);color:var(--color-ink-60)}
.article-folio .af-col{color:var(--color-ochre)}
.article-folio .af-col .latin-i{color:var(--color-ink-40);margin-left:10px}
.article-head .article-title{max-width:680px;margin-top:28px}
.article-head .article-lede{max-width:680px;line-height:1.75}
.article-head .byline{max-width:680px}
.article-hero{max-width:920px;margin:32px auto 8px}
.article-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px;display:block}
.article-hero.is-portrait{max-width:500px}
.article-hero.is-portrait img{aspect-ratio:auto}
.article-body{max-width:680px;margin:32px auto 0;font-family:var(--font-body-serif,serif);
  font-size:17.5px;line-height:1.95;color:var(--color-ink)}
.article-body{font-family:"Noto Serif SC","Noto Serif CJK SC","Songti SC",serif}
.article-body.is-news{font-family:var(--font-body);font-size:16px;line-height:1.75}
.article-body p{margin-bottom:1.5em}
.article-body h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2s);
  margin:64px 0 16px;letter-spacing:-.01em}
.article-body h2 .h2-no{font-family:var(--font-display-latin);font-style:italic;
  color:var(--color-ochre);font-size:var(--fs-lead);margin-right:12px}
.article-body strong{font-weight:600}
.article-body sup.fn{color:var(--color-ochre);font-size:10px}
.sec-div{width:48px;height:1px;background:var(--color-ink-40);margin:32px 0}
.pull-quote{border-top:1px solid var(--color-hairline);padding-top:24px;margin:48px 0;
  font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2);line-height:1.4;color:var(--color-ink)}
.fact-card{background:var(--color-paper-deep);border-radius:16px;padding:24px;margin:32px 0}
.fact-card h4{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h3);margin-bottom:12px}
.fc-row{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:14px;line-height:1.6}
.fc-k{font-weight:500;white-space:nowrap}
.fc-dots{flex:1;border-bottom:1px dotted var(--color-ink-40);transform:translateY(-4px)}
.fc-v{text-align:right}
.fact-card.ledger .fc-v{font-family:var(--font-display);font-size:16px}
.fact-card.checklist .fc-k::before{content:"□ "}
.article-fig{margin:32px 0 0}
.article-fig img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:16px;display:block}
.article-fig.wide{position:relative;width:min(920px,calc(100vw - 48px));left:50%;transform:translateX(-50%)}
.article-fig.wide img{aspect-ratio:4/3;border-radius:20px}
.article-fig.full{position:relative;width:min(1200px,calc(100vw - 48px));left:50%;transform:translateX(-50%)}
.article-fig.full img{aspect-ratio:16/9;border-radius:20px}
.article-fig.is-portrait{max-width:400px;margin-left:auto;margin-right:auto}
.article-fig.is-portrait img{aspect-ratio:auto}
.article-fig figcaption, .article-hero figcaption{font-size:var(--fs-small);line-height:1.6;
  color:var(--color-ink-60);margin-top:8px}
figcaption .fig-no{color:var(--color-ink-40)}
figcaption .fig-credit{color:var(--color-ink-40)}
/* 配图位（缺图占位）：虚线框 + 图源类型标注，不许乱抓图充数 */
.img-slot{border:1.5px dashed rgba(164,113,60,.55);border-radius:20px;background:var(--color-paper-deep);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  text-align:center;padding:24px;color:var(--color-ink-60)}
.img-slot .slot-kind{font-size:12px;letter-spacing:.14em;color:var(--color-ochre)}
.img-slot .slot-desc{font-size:14px;line-height:1.7;max-width:520px}
.img-slot .slot-src{font-size:12px;color:var(--color-ink-40)}
.article-hero.img-slot{aspect-ratio:16/9}
.article-fig.img-slot{aspect-ratio:3/2}
.article-end{max-width:720px;margin-top:48px;padding-top:24px;border-top:1px solid var(--color-hairline)}
.related{display:flex;gap:14px;flex-wrap:wrap;margin-top:16px}
/* 文章文末五件（规格 §3.7）：作者行 → 栏目 folio → 上下篇 → 相关阅读 → 注与来源 */
.article-end.art-end{max-width:680px;margin:48px auto 0}
.end-author{font-size:var(--fs-body);line-height:1.8;color:var(--color-ink-60)}
.end-author b{font-weight:500;color:var(--color-ink)}
.end-folio{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  margin-top:24px;font-size:var(--fs-small);color:var(--color-ink-60)}
.end-folio a{color:var(--color-ochre);text-decoration:underline;text-underline-offset:3px}
.end-folio .ef-no{color:var(--color-ink-40)}
.end-nav{display:flex;justify-content:space-between;gap:24px;margin-top:36px}
.end-nav a{display:block;max-width:48%}
.end-nav .en-k{display:block;font-size:var(--fs-small);color:var(--color-ink-40);margin-bottom:6px}
.end-nav .en-t{font-family:var(--font-display);font-size:var(--fs-h3);line-height:1.4;color:var(--color-ink)}
.end-nav .en-next{margin-left:auto;text-align:right}
.rel-cards{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}
.end-notes{margin-top:40px;padding-top:16px;border-top:1px solid var(--color-hairline);
  font-size:var(--fs-small);line-height:1.7;color:var(--color-ink-40)}
.end-notes p{margin-bottom:6px}
.end-notes sup{color:var(--color-ochre)}
/* 期刊索引 */
.jx-head{margin-bottom:40px}
/* 栏目筛选（§4.2 原地过滤，不跳页；无 JS 时全部栏目照常展示） */
.jx-filter{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.jx-filter button{font-family:var(--font-body);font-size:var(--fs-small);line-height:1.4;
  padding:8px 18px;border-radius:999px;border:1px solid var(--color-hairline);
  background:transparent;color:var(--color-ink);cursor:pointer;
  transition:background var(--dur-ui) var(--ease),color var(--dur-ui) var(--ease)}
.jx-filter button:hover{border-color:var(--color-ink-40)}
.jx-filter button[aria-pressed="true"]{background:var(--color-ink);color:var(--color-white);border-color:var(--color-ink)}
.jx-col{margin-top:56px}
.jx-col-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  border-bottom:1px solid var(--color-hairline);padding-bottom:12px;margin-bottom:24px}
.jx-col-head h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2)}
.jx-col-head .folio{font-family:var(--font-display-latin);font-style:italic;color:var(--color-ink-40);font-size:14px}
.jx-col-note{color:var(--color-ink-60);font-size:var(--fs-body);line-height:1.8;margin:-8px 0 20px;max-width:640px}
.jx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
.jx-card{display:block;border:1px solid var(--color-hairline);border-radius:16px;overflow:hidden;
  background:var(--color-white);transition:transform .3s var(--ease)}
.jx-card:hover{transform:translateY(-3px)}
.jx-card .jx-img{aspect-ratio:3/2;overflow:hidden}
.jx-card .jx-img img{width:100%;height:100%;object-fit:cover}
.jx-card .jx-img.img-slot{border:0;border-radius:0;aspect-ratio:3/2}
.jx-card .jx-in{padding:18px 20px 20px}
.jx-card .jx-k{font-size:12px;letter-spacing:.14em;color:var(--color-ochre)}
.jx-card h3{font-family:var(--font-display);font-weight:400;font-size:20px;line-height:1.45;margin-top:8px}
.jx-card p{font-size:14px;line-height:1.75;color:var(--color-ink-60);margin-top:8px}
.jx-card .jx-d{font-size:12px;color:var(--color-ink-40);margin-top:12px}
/* 专题页 */
.topic-sec{margin-top:48px;max-width:820px}
.topic-sec h2{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h2);margin-bottom:14px}
.topic-sec p{font-size:var(--fs-body);line-height:1.9;color:var(--color-ink-60);margin-bottom:1.2em;max-width:720px}
.topic-fig{border-radius:20px;overflow:hidden;margin:20px 0}
.topic-fig img{width:100%;aspect-ratio:3/2;object-fit:cover}
.article-fig.img-slot{border-radius:16px}
@media (max-width:900px){ .article-body{font-size:17px} }
@media (max-width:768px){
  .article-fig.wide,.article-fig.full{width:100%;left:0;transform:none}
  .article-fig.wide img,.article-fig.full img{aspect-ratio:3/2}
  .pull-quote{font-size:24px}
  .fact-card{padding:20px}
  .end-nav{flex-direction:column}
  .end-nav a{max-width:100%}
  .end-nav .en-next{margin-left:0;text-align:left}
  .rel-cards{grid-template-columns:1fr}
}
.skip{position:absolute;left:-9999px;top:0;background:var(--color-ink);color:var(--color-paper);
  padding:10px 16px;z-index:300;border-radius:0 0 12px 0}
.skip:focus{left:0}

/* ── A 档构建（2026-11-07 夜）：期刊本期主打 / 图河出口 / 专题回索引 /
   关于·联系页诚实状态行。全部沿用既有令牌，不新造字号与圆角。── */
.river-outlet{margin-top:20px;text-align:right}
.jx-featured{display:grid;grid-template-columns:1.15fr 1fr;border:1px solid var(--color-hairline);
  border-radius:20px;overflow:hidden;margin:36px 0 8px;background:var(--color-white);
  transition:transform var(--dur-hover) var(--ease)}
.jx-featured:hover{transform:translateY(-3px)}
.jx-featured .jx-img{overflow:hidden}
.jx-featured .jx-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}
.jx-featured .jx-in{padding:28px 30px;display:flex;flex-direction:column;justify-content:center}
.jx-featured .jx-k{font-size:var(--fs-caption);letter-spacing:.14em;color:var(--color-ochre)}
.jx-featured h3{font-family:var(--font-display);font-weight:400;font-size:28px;line-height:1.4;margin-top:10px}
.jx-featured p{font-size:15px;line-height:1.8;color:var(--color-ink-60);margin-top:10px}
.jx-featured .jx-d{font-size:var(--fs-caption);color:var(--color-ink-40);margin-top:14px}
@media (max-width:767px){
  .jx-featured{grid-template-columns:1fr}
  .jx-featured .jx-in{padding:22px}
  .jx-featured h3{font-size:24px}
}
.topic-back{margin-top:28px;font-size:var(--fs-small)}
.topic-back a{color:var(--color-ochre)}
.page-note{font-size:var(--fs-lead);line-height:1.75;color:var(--color-ink-60);
  border-left:2px solid var(--color-ochre);padding-left:16px;margin:28px 0}
