/* ==========================================================================
   7eta.com 公开区 · 全站样式（第七轮设计稿 / round7）
   ⚠ 集成版：本文件 = round7 的 style-r7.css 更名而来（§7-bis.4-6），
     唯一改动 = .igrid 的 2 列断点 760 → 600（§7-bis.4-2，见文件末尾）。
     相册页不加载本文件，它用自包含的 /photos/album.css（§7-bis.4-1）。
   把 round6 相册页的设计语言推广到全站：首页 / 笔记列表 / 文章 / 关于 / 隐私 / 404
   语言：INS 的「密」与日式的「空」分区处理 —— 网格内部密排（4px 缝），
        留白全部给卷间与页面四周；1px 细线；衬线正文 400；小号宽字距无衬线做标签。
   朱红预算：全站只有两处 —— ① 朱印 ② 当前导航下划线。其余强调一律靠墨色与留白。
   纯静态、零 JavaScript、零外部依赖（无 CDN / 无外链字体 / 无外链图片）。
   兼容：覆盖现行生成器输出的全部 class（.sec/.notes/.tags/.catbar/.prose/.fig-2up/
        .lightbox 等），可直接替换 /style.css。
   ========================================================================== */

:root{
  /* --- 日式极简 token（与 round6 同源） --- */
  --paper:#fafaf7;        /* 米白底 */
  --paper-2:#f2f0e9;      /* 代码块 / 图片衬底 */
  --ink:#1a1a18;          /* 近黑 */
  --ink-soft:#3d3a34;     /* 正文次级 */
  --ink-muted:#6b675e;    /* 弱化文字 */
  --ink-subtle:#6f6a61;   /* 最弱：日期 / 计数 / 页脚。⚠️ 2026-10-13 相册三轮 P1-1：旧值 #a09a8d 对 --paper 仅 2.68:1、
                             对 --paper-2 仅 2.45:1（WCAG AA 要 4.5:1，页脚备案语境不达标；火山复核 #6/#7）⇒ 压深为
                             #6f6a61 = 5.14:1 / 4.71:1。与相册页 --ink-3 同值（全站单令牌体系，见 10-设计定案 §7-bis.6）；
                             13 处 var() 引用自动跟随。层级感损失由字号/字距承担（.tlabel__n 已同步去掉叠乘透明度） */
  --line:#d8d5cd;         /* 1px 细线 */
  --line-strong:#c4c0b5;  /* 稍重的细线（表格 / 输入框级别，仍只有 1px） */
  --vermilion:#c3272b;    /* 朱红：唯一点缀色，只花在两处 */

  /* --- 字体：只用系统栈，中文写全 --- */
  --serif:"Hiragino Mincho ProN","Yu Mincho","Noto Serif SC","Source Han Serif SC",
          "Noto Serif CJK SC","Songti SC","SimSun","Noto Serif JP",Georgia,
          "Times New Roman",serif;
  --sans:"Hiragino Kaku Gothic ProN","Yu Gothic","PingFang SC","Microsoft YaHei",
         "Noto Sans CJK SC","Noto Sans SC","Segoe UI",-apple-system,
         BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"Cascadia Mono",Consolas,"Liberation Mono",monospace;

  /* --- 节奏 --- */
  --space:96px;           /* 区块间距基准（≥96px） */
  --wrap:62rem;           /* 页面外框 */
  --measure:40rem;        /* 长文阅读行宽：可读性优先，不再放宽 */
  --gap:4px;              /* INS 网格缝：密排 */
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:15px;
  font-weight:400;
  line-height:1.95;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;height:auto;display:block}

a{color:inherit;text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline;text-decoration-thickness:1px}
/* 键盘焦点环用近黑，不占朱红预算 */
a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.lightbox a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

hr{border:0;border-top:1px solid var(--line);margin:2.4rem 0}
.rule{border:0;border-top:1px solid var(--line)}

.skip{position:absolute;left:-9999px}
.skip:focus{
  left:1rem;top:1rem;position:fixed;z-index:120;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--ink);padding:.6em 1em;
  font-family:var(--sans);font-size:12px;letter-spacing:.1em;
}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}

/* ---------- 顶栏：极简三入口 + 1px 细线 ---------- */
.site-head{border-bottom:1px solid var(--line);background:var(--paper)}
.site-head .wrap,.head-in{
  display:flex;align-items:center;justify-content:space-between;
  gap:1.5rem;flex-wrap:wrap;min-height:68px;
}
.brand{
  font-family:var(--serif);font-size:16px;font-weight:500;
  letter-spacing:.18em;color:var(--ink);
}
.brand:hover{text-decoration:none;color:var(--ink)}
.site-nav{display:flex;gap:38px}
.site-nav a{
  font-family:var(--sans);font-size:12px;font-weight:500;
  letter-spacing:.2em;color:var(--ink-muted);
  padding-bottom:2px;border-bottom:1px solid transparent;
}
.site-nav a:hover{color:var(--ink);text-decoration:none}
/* 朱红出现处之二：当前页标记（仅此一处，绝不滥用） */
.site-nav a[aria-current]{color:var(--ink);border-bottom-color:var(--vermilion)}

/* ---------- 页首（首页）：大留白 + 朱印 + 竖排落款 ---------- */
.hero{position:relative;padding:132px 0 var(--space)}
.eyebrow,.kicker{
  font-family:var(--sans);font-size:11px;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink-muted);margin-bottom:26px;
}
.display{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(38px,6.2vw,58px);line-height:1.38;letter-spacing:.1em;
}
/* 旧生成器把首页标题放在 .lede h1 —— 同一套排场 */
.lede h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,4.6vw,44px);line-height:1.45;letter-spacing:.08em;
  margin:0;max-width:36rem;text-wrap:balance;
}
.lead{
  margin-top:26px;max-width:var(--measure);
  font-size:15px;line-height:2;color:var(--ink-muted);
}
.lede p{color:var(--ink-muted);margin:1.2rem 0 0;max-width:var(--measure);line-height:2}
.hero-note{
  margin-top:28px;font-family:var(--sans);font-size:11px;
  letter-spacing:.22em;color:var(--ink-subtle);
}
.lede{padding:110px 0 72px;border-bottom:1px solid var(--line)}

/* 朱印：朱红出现处之一（只用于首页与相册页页首，别页不用，保持稀缺） */
.seal{
  display:inline-flex;align-items:center;justify-content:center;
  width:46px;height:46px;margin-top:34px;
  background:var(--vermilion);color:#fff;
  font-family:var(--serif);font-size:16px;font-weight:500;letter-spacing:.1em;
  transform:rotate(-2deg);user-select:none;
}
/* 竖排落款：和风手法，只在宽屏出现 */
.inscription{
  position:absolute;right:32px;top:196px;
  writing-mode:vertical-rl;
  font-family:var(--serif);font-size:12px;letter-spacing:.4em;
  color:var(--ink-subtle);
}

/* ---------- 内页页首（列表 / 文章 / 关于 / 隐私）：留白收窄，仪式让位阅读 ---------- */
.page-head{position:relative;padding:88px 0 44px}
.page-head .eyebrow{margin-bottom:20px}
.page-title{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(28px,4.2vw,38px);line-height:1.45;letter-spacing:.08em;
}
.page-meta{
  margin-top:18px;font-family:var(--sans);font-size:11px;
  letter-spacing:.22em;color:var(--ink-subtle);
}

/* ---------- 分卷式区块头：细线 + 卷名 + 计数（相册页语言的推广） ---------- */
.sec,.album-sec{padding:var(--space) 0 0}
.sec-head,.album-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:18px;margin-bottom:28px;
}
.sec-title,.album-title{
  font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:.08em;
  margin:0;display:inline-flex;align-items:baseline;gap:.7rem;
}
.sec-title .en,.album-meta,.sec-more{
  font-family:var(--sans);font-size:11px;font-weight:500;
  letter-spacing:.2em;color:var(--ink-subtle);text-transform:uppercase;
}
.sec-more a{color:var(--ink-muted);border-bottom:1px solid var(--line-strong)}
.sec-more a:hover{color:var(--ink);text-decoration:none}
.sec-note{
  color:var(--ink-muted);font-size:13.5px;line-height:1.9;
  margin:-14px 0 0;max-width:var(--measure);
}

/* ---------- 笔记时间流：只留 1px 细线，行距拉开 ---------- */
.notes{list-style:none;margin:30px 0 0;padding:0}
.notes li{border-top:1px solid var(--line);padding:30px 0}
.notes li:last-child{border-bottom:1px solid var(--line)}
.n-date{
  font-family:var(--sans);font-size:10.5px;font-weight:500;
  letter-spacing:.24em;color:var(--ink-subtle);
  display:block;margin-bottom:12px;
}
.n-title{
  font-family:var(--serif);font-size:19px;line-height:1.6;
  font-weight:500;letter-spacing:.03em;margin:0 0 10px;
}
.n-title a{color:var(--ink)}
.n-title a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.n-sum{
  margin:0;color:var(--ink-muted);font-size:14px;line-height:1.95;
  max-width:var(--measure);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* ---------- 标签与分类：直角、细线、墨色 —— 朱红不参与 ---------- */
.tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0}
.tags li{
  font-family:var(--sans);font-size:10.5px;font-weight:400;
  letter-spacing:.16em;color:var(--ink-muted);
  border:1px solid var(--line);padding:3px 10px;
}
.tags li a{color:inherit}
.tags li a:hover{color:var(--ink);text-decoration:none}
/* 每行第一枚是「分类」：用墨底反白与普通标签区分，仍不动朱红 */
.tags li.tag-cat{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.tags li.tag-cat a{color:inherit}
.tags li.tag-cat a:hover{color:var(--paper)}

.catbar{display:flex;flex-wrap:wrap;gap:8px;margin:30px 0 0}
.catbar a,.catbar span{
  font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.16em;
  padding:7px 14px;border:1px solid var(--line);color:var(--ink-muted);
}
.catbar a:hover{border-color:var(--ink);color:var(--ink);text-decoration:none}
.catbar .on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.catbar .on:hover{color:var(--paper)}
.cat-chip{
  display:inline-block;font-family:var(--sans);
  font-size:10.5px;font-weight:500;letter-spacing:.16em;
  color:var(--paper);background:var(--ink);border:1px solid var(--ink);
  padding:2px 10px;margin-left:.8rem;vertical-align:.15em;
}
.cat-chip:hover{text-decoration:none;opacity:.82}

/* ---------- INS 式网格（相册页 / 首页相册封面区共用） ---------- */
.igrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}
.igrid figure{margin:0;min-width:0}
.zoom{
  display:block;position:relative;overflow:hidden;
  aspect-ratio:4/5;background:var(--paper-2);
  border:0;cursor:zoom-in;
}
.zoom img{
  width:100%;height:100%;object-fit:cover;display:block;border:0;
  transition:opacity 220ms ease;
}
.zoom:hover img{opacity:.88}
.zoom::after{
  content:"";position:absolute;right:8px;bottom:8px;
  width:22px;height:22px;opacity:0;pointer-events:none;
  background:rgba(250,250,247,.86) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%231a1a18' stroke-width='1.6' stroke-linecap='round'><path d='M6.2 2.2H2.2v4M9.8 13.8h4v-4M2.2 2.2l4.4 4.4M13.8 13.8l-4.4-4.4'/></svg>") center/13px 13px no-repeat;
  transition:opacity 220ms ease;
}
.zoom:hover::after,.zoom:focus-visible::after{opacity:1}
.tile-cap{
  padding:11px 2px 0;
  font-family:var(--sans);font-size:10.5px;font-weight:400;
  letter-spacing:.18em;color:var(--ink-subtle);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* 旧首页的占位网格（.album/.ph）：同一套语言收编，方角 + 细线 + 交替衬底 */
.album{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap);margin:30px 0 0}
.ph{
  position:relative;aspect-ratio:4/5;background:var(--paper-2);
  display:flex;align-items:center;justify-content:center;border:0;
}
.ph i{display:none}
.ph span{
  font-family:var(--sans);font-size:10.5px;font-weight:400;
  letter-spacing:.24em;color:var(--ink-subtle);
}
.ph:nth-child(3n+2){background:#eeebe2}
.ph:nth-child(3n){background:#eae6db}

/* ---------- 长文阅读（文章页 / 关于 / 隐私）：段落可读性优先于仪式感 ---------- */
.prose{max-width:var(--measure)}
.prose p{margin:1.15rem 0;font-size:15.5px;line-height:2;color:var(--ink)}
.prose h2{
  font-family:var(--serif);font-size:19px;font-weight:500;letter-spacing:.05em;
  margin:3rem 0 .9rem;padding-top:1.4rem;border-top:1px solid var(--line);
}
.prose h3{
  font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.2em;
  color:var(--ink-muted);margin:2.2rem 0 .6rem;
}
.prose ul,.prose ol{padding-left:1.4rem;margin:.9rem 0}
.prose li{margin:.45rem 0;font-size:15px;line-height:1.95}
.prose strong{font-weight:600;color:var(--ink)}
.prose blockquote{
  margin:1.6rem 0;padding:.2rem 0 .2rem 1.2rem;
  border-left:1px solid var(--line-strong);color:var(--ink-muted);
}
.prose code{
  font-family:var(--mono);font-size:.88em;
  background:var(--paper-2);padding:.16em .44em;border:1px solid var(--line);
}
.prose pre{
  background:var(--paper-2);border:1px solid var(--line);
  padding:1.1rem 1.2rem;overflow-x:auto;
  font-size:13px;line-height:1.8;margin:1.5rem 0;
}
.prose pre code{background:none;border:0;padding:0;font-size:inherit}
.prose img{border:0}

/* 正文配图：去边框，图注居中（round6 语言）；双图并排桌面两列、手机上下。
   ⚠️ 必须排除 .lb-fig —— 灯箱的 figure 也躺在 .prose 里，
   被 width:100% 命中会把大图撑满容器（已实测踩到）。 */
.prose figure:not(.lb-fig){margin:2.2rem 0}
.prose figure:not(.lb-fig) img{width:100%;height:auto;display:block;border:0;background:var(--paper-2)}
.prose figure:not(.lb-fig) figcaption{
  margin-top:.8rem;font-family:var(--sans);
  font-size:11px;line-height:1.9;letter-spacing:.08em;
  color:var(--ink-subtle);text-align:center;
}
.prose figcaption b{color:var(--ink-muted);font-weight:500}
.fig-2up{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:2.2rem 0}
.fig-2up figure{margin:0}
.fig-3up{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:2.2rem 0}
.fig-3up figure{margin:0}
/* 文章页配图也可点开放大 */
.prose figure a.zoom{cursor:zoom-in}
.prose figure a.zoom img{aspect-ratio:auto;object-fit:contain}

/* ---------- 灯箱：纯 CSS :target，零 JS；米白画廊底 ---------- */
/* ⚠️ 容器必须给定宽度 width:min(...)，只给 max-width 会让内部
   max-width:100% 的图解析成 0 宽（已踩过的坑）。 */
.lightbox{
  position:fixed;inset:0;z-index:90;display:none;
  justify-content:center;align-items:center;
  padding:6vmin 4vmin;overflow:auto;
  background:rgba(250,250,247,.98);
}
.lightbox:target{display:flex}
.lb-backdrop{position:fixed;inset:0;z-index:0;display:block}
/* 形态一（推荐）：figure 包图与题注，整体居中 + 序号 */
.lb-fig{
  position:relative;z-index:1;margin:0;
  display:flex;flex-direction:column;align-items:center;gap:20px;
  width:min(1000px,92vw);
}
.lb-fig img{
  max-width:100%;max-height:74vh;width:auto;height:auto;
  object-fit:contain;border:0;background:none;
}
.lb-cap{
  max-width:34rem;text-align:center;
  font-family:var(--serif);font-size:14px;line-height:1.9;
  letter-spacing:.04em;color:var(--ink-muted);
}
.lb-count{
  display:block;margin-bottom:6px;
  font-family:var(--sans);font-size:10.5px;font-weight:500;
  letter-spacing:.24em;color:var(--ink-subtle);
}
/* 形态二（旧生成器）：img 直接躺在 .lightbox 里 —— 显式给宽，防 0 宽塌陷 */
.lightbox>img{
  position:relative;z-index:1;
  width:min(1000px,92vw);height:auto;max-height:78vh;
  object-fit:contain;margin:0 auto;border:0;background:none;
}
.lb-close,.lb-nav{
  position:fixed;z-index:2;
  display:flex;align-items:center;justify-content:center;
  width:42px;height:42px;border:1px solid var(--line);border-radius:50%;
  background:rgba(255,255,255,.72);color:var(--ink);
  font-family:var(--serif);line-height:1;
}
.lb-close{top:20px;right:22px;font-size:20px}
.lb-nav{top:50%;margin-top:-21px;font-size:22px}
.lb-prev{left:22px}
.lb-next{right:22px}
.lb-close:hover,.lb-nav:hover{
  background:var(--ink);border-color:var(--ink);color:var(--paper);
  text-decoration:none;
}
.lb-hint{
  position:fixed;left:0;right:0;bottom:18px;z-index:2;text-align:center;
  font-family:var(--sans);font-size:11px;letter-spacing:.14em;
  color:var(--ink-subtle);
}

/* ---------- 收尾 / 返回 ---------- */
.outro{padding:var(--space) 0}
.outro .rule{margin-bottom:34px}
.outro-text{max-width:var(--measure);font-size:14px;line-height:2;color:var(--ink-muted)}
.back{
  display:inline-block;margin-top:2.6rem;
  font-family:var(--sans);font-size:12px;letter-spacing:.16em;color:var(--ink-muted);
}
.back:hover{color:var(--ink)}
.sep{color:var(--ink-subtle);margin:0 .5rem;font-family:var(--sans);font-size:12px}

/* ---------- 404 ---------- */
.center{min-height:64vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.center .err-mark{
  font-family:var(--serif);font-size:13px;letter-spacing:.4em;
  color:var(--ink-subtle);margin-bottom:24px;
}
.center h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,5vw,44px);letter-spacing:.1em;line-height:1.4;margin:0 0 1.2rem;
}
.center p{color:var(--ink-muted);margin:.3rem 0;max-width:30rem;line-height:2}

/* ---------- 页脚：1px 细线 + 小号字 + 备案结构 ---------- */
.site-foot{
  margin-top:var(--space);
  border-top:1px solid var(--line);
  padding:40px 0 64px;
  font-family:var(--sans);font-size:12px;line-height:1.9;
  letter-spacing:.06em;color:var(--ink-subtle);
}
.site-foot .cols{
  display:flex;flex-wrap:wrap;gap:.8rem 2rem;
  align-items:baseline;justify-content:space-between;
}
.site-foot nav{display:flex;gap:26px}
.site-foot a{color:var(--ink-muted)}
.site-foot a:hover{color:var(--ink)}
.legal{margin-top:26px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.legal a{display:inline-flex;align-items:center;gap:6px;color:var(--ink-muted)}
.legal img{width:18px;height:20px;display:inline-block}

/* ---------- 响应式（手机优先验收宽度：375） ---------- */
@media (max-width:1000px){
  .inscription{display:none}
  .wrap{padding:0 24px}
  .hero{padding:96px 0 72px}
  .lede{padding:84px 0 60px}
  .page-head{padding:68px 0 36px}
}
@media (max-width:760px){
  .album{grid-template-columns:repeat(2,1fr);gap:3px}
  .display{font-size:32px;letter-spacing:.06em}
  .hero{padding:72px 0 56px}
  .lede{padding:64px 0 48px}
  .page-head{padding:56px 0 30px}
  .sec,.album-sec{padding:64px 0 0}
  .outro{padding:64px 0}
  .site-nav{gap:22px}
  .seal{width:40px;height:40px;font-size:15px;margin-top:28px}
  .fig-2up,.fig-3up{grid-template-columns:1fr;gap:14px}
  .prose h2{margin-top:2.4rem}
  .lb-close{top:14px;right:14px}
  .lb-prev{left:12px}
  .lb-next{right:12px}
  .lb-close,.lb-nav{width:38px;height:38px}
  .lb-fig img{max-height:66vh}
  .lightbox>img{max-height:66vh}
  .site-foot{margin-top:64px}
}
/* §7-bis.4-2（集成期落地）：首页相册封面区 .igrid 的 2 列断点 760 → 600，
   与相册页同一套「15 字配文宽度账」。601–760px 因此保持 3 列。
   实测（Edge 无头 + _src\probe-overflow.cjs，含 15px 经典滚动条）：
     窗口 602 → 布局视口 587，3 列，瓦片 177px；窗口 784 → 视口 745，3 列，瓦片 230px。
   ⚠ 已知边界：tile-cap 是 10.5px + .18em 字距 ⇒ 15 个全角字约需 186px，
     而 601–625 窗口档的瓦片只有 177–184px ⇒ **满 15 字的首页瓦片配文在这一档会被省略号截断**。
     本站首页实际最长的一条是「10.05 · 天黑后的灯」（11 字符 ≈112px）⇒ 不截断。
     若将来首页要放满 15 字，需把本断点抬到 ~640 或把 tile-cap 字距收窄（属外壳层改动，报队长裁）。
   （.album 是旧首页占位网格，本站已不用，仍留在 760 断点里不动。） */
@media (max-width:600px){
  .igrid{grid-template-columns:repeat(2,1fr);gap:3px}
}
@media (max-width:420px){
  .wrap{padding:0 18px}
  .head-in,.site-head .wrap{min-height:58px;gap:.8rem}
  .site-nav{gap:16px}
  .site-nav a{font-size:11px;letter-spacing:.14em}
  .brand{font-size:15px;letter-spacing:.12em}
  .display{font-size:28px}
  .page-title{font-size:24px}
  .n-title{font-size:17px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .zoom img,.zoom::after{transition:none}
}

/* ==========================================================================
   暗色模式 · 跟随系统 prefers-color-scheme: dark（千问定稿 2026-10-13 深夜）
   提案原文：..\50-暗色模式\千问提案.md
   --------------------------------------------------------------------------
   取色方向＝「暖调深墨」：夜里翻同一本纸书 —— 纸变墨、墨变月白、朱红把灯拧亮一档。
   纪律（改这段前先读）：
     1. 只覆盖颜色令牌 ＋ 下面 5 条"令牌够不着"的规则；几何/字号/间距一个字节不动。
        浅色是用户已认可的定版，本块排在文件末尾，同名后写者胜。
     2. 零 JS、零开关、零 filter:invert()。
     3. 对比度由门禁实算（check-album-a ⑪ 跑浅/深两套；朱印白字另有 _src\check-site-contrast.cjs），
        不靠注释自称。
     4. 与相册表同名的令牌必须逐字同值（--ink --line --paper --paper-2 --vermilion）—— 站的硬规矩，
        _src\check-tokens.cjs 第二段机械核验。
   ========================================================================== */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;        /* 让 UA 跟着暗：滚动条 / 过滚画布 / 选区 / 表单件。
                                 写在 media 里而不是全局 :root —— 浅色侧一个字节不碰 */
    --paper:#1a1917;          /* 页面底＝"纸变墨"：浅色 --ink 的近黑再偏暖一度（R26 G25 B23，R>B 保住黄纸底调）。
                                 不用纯黑 #000（OLED 死黑、长文刺眼），不用蓝黑（科技味，违调性） */
    --paper-2:#232220;        /* 代码块/图片衬底/抬升面：比主底亮一档。浅色里它比 paper 深一档做分层，
                                 暗色镜像成亮一档（暗色 UI 抬升面惯例），分层感不丢 */
    --ink:#e9e7e2;            /* 正文＝"墨变月白"：暖白不上纯白（纯白在近黑底有光晕眩感）。14.22:1 */
    --ink-soft:#cfccc4;       /* 正文次级：比 --ink 收一档。10.95:1 */
    --ink-muted:#a9a49a;      /* 弱化文字（导航/摘要/标签/题注）：7.08:1 对 paper、6.41:1 对 paper-2 */
    --ink-subtle:#9e9a90;     /* 最弱（日期/计数/页脚/备案）：6.26:1 / 5.66:1。
                                 暗色下与 muted 终于拉开一档（浅色为过 AA 被压到只差 0.25），层级回来了 */
    --line:#33312d;           /* 1px 细线：对 paper 1.35:1 —— 与浅色 line/paper 的 1.40:1 同比例，
                                 "看得见但不吵"的手感跨模式一致 */
    --line-strong:#45423c;    /* 稍重的线（表格/引用左边线级）：1.75:1，浅色同位是 1.74:1 */
    --vermilion:#d4382f;      /* ⚠️ 定稿值，**不是**先行的 #e2544f：那颗值下朱印白字「记」只有 3.74:1、
                                 不过 AA（实算）。本值＝同一颗朱红把灯拧亮一档（色相差 5°，肉眼同色）：
                                 白印字 4.77:1 过 AA、下划线对底 3.69:1 过 1.4.11 */
  }

  /* ---- 以下规则是"令牌够不着"的硬编码面，必须用规则翻（逐条理由见提案 §3/§6）---- */
  /* r7 灯箱是硬编码米白纱 rgba(250,250,247,.98)：暗色下不翻＝奶油色整层炸开，
     且 .lb-cap(--ink-muted) 在奶油底上只有 2.37:1。翻成与相册同族的深纱 */
  .lightbox{background:rgba(10,10,9,.98)}
  /* 圆钮底是硬编码 rgba(255,255,255,.72)：令牌翻转后钮字(--ink=月白)会溶进白钮。
     翻成暗 chip ＋ 亮描边，与相册 .lb__x 同语言；hover 规则用的是令牌，自动反白，不用管 */
  .lb-close,.lb-nav{background:rgba(250,250,247,.07);border-color:rgba(250,250,247,.22)}
  /* 大图发丝线：暗调照片在深纱上会"糊进背景"（任务硬约束⑤）。1px 亮描边是唯一对任意照片内容都成立的边 */
  .lb-fig img,.lightbox>img{box-shadow:0 0 0 1px rgba(250,250,247,.14)}
  /* 旧首页占位格 nth-child 是硬编码亮底 #eeebe2/#eae6db：暗色下是两块亮斑。
     ⚠️ 当前页面已不用 .ph（线上 html 里 0 处，2026-10-13 现查），保留是为了它回归时不炸 */
  .ph:nth-child(3n+2){background:#201f1d}
  .ph:nth-child(3n){background:#1d1c1a}
  /* 文章页插图：3 张 SVG 示意图自带 #faf7f1 亮底（另有 2 张浅色截图同为亮底），
     暗色下它们是**无边界的通栏亮卡片**。与上面"大图发丝线"同语言，给它们也压一条 1px 亮描边。
     ⚠️ 描边必须打在 `a.zoom` 这一层，**不能**打在 `img` 上：`.zoom{overflow:hidden}` 会把
     img 画在边框盒之外的外描边整条裁掉 —— 实测打在 img 上时 computed style 明明有值、
     而截图逐像素零差异（假绿）。图片内容一个字没动；浅色模式下本条不生效（整块都在 media 里）。
     千问 2026-10-14 复核提出、队长 2026-10-14 落地并**改写为不被裁的那一层**。 */
  .prose figure:not(.lb-fig) a.zoom{box-shadow:0 0 0 1px rgba(250,250,247,.14)}
}
/* 刻意不翻：.zoom::after 的奶油色放大角标（rgba(250,250,247,.86)＋深描边图标）保持原样。
   它压在**照片层**上、不压页面层；照片在两模式里都是任意颜色，角标的职责是"跟照片拉开"而非"跟页面拉开"。
   翻它反而会在亮照片上消失。（千问提案 §1 末段） */
