    /* ============================================================
       聚文坞 FileDock · 古风档案视觉系统
       调性：杂志编辑 × 轻奢雅致（宣纸 / 墨色 / 朱砂印）
       记忆点：竖排印章标题 + 卷轴式档案卡片 + 田字格纹理
       ============================================================ */

    :root {
      /* 纸与墨 */
      --paper:        #f4ede0;   /* 宣纸底 */
      --paper-2:      #ece2d0;   /* 次级纸面 */
      --paper-3:      #e2d5be;   /* 折叠暗面 */
      --ink:          #221c15;   /* 浓墨 */
      --ink-2:        #4a4038;   /* 淡墨 */
      --ink-3:        #857a6b;   /* 灰墨（次要文字） */
      --ink-4:        #b3a894;   /* 极淡（分隔/装饰） */

      /* 朱砂：唯一强调色，只给关键动作与印章 */
      --cinnabar:     #a8322a;
      --cinnabar-dk:  #7d211c;
      --cinnabar-lt:  #c1503f;

      /* 点缀：竹青、石青（用于功能分类标签，不属于强调色） */
      --bamboo:       #5c6b52;
      --azure:        #3f5a6b;

      /* 线 */
      --rule:         rgba(34, 28, 21, 0.16);
      --rule-strong:  rgba(34, 28, 21, 0.34);
      --rule-hair:    rgba(34, 28, 21, 0.08);

      /* 尺度 */
      --sp-1: 4px;  --sp-2: 8px;  --sp-3: 16px; --sp-4: 24px;
      --sp-5: 40px; --sp-6: 64px; --sp-7: 96px; --sp-8: 140px;

      --shadow-1: 0 1px 2px rgba(60, 44, 28, .10);
      --shadow-2: 0 6px 20px rgba(60, 44, 28, .13);
      --shadow-3: 0 20px 48px rgba(60, 44, 28, .18);

      --ease: cubic-bezier(.16, 1, .3, 1);
      --dur-fast: 180ms;
      --dur-base: 360ms;
      --dur-slow: 720ms;

      --font-display: 'LXGW WenKai', 'Noto Serif SC', serif;
      --font-body: 'Noto Serif SC', 'Songti SC', serif;
      --font-label: 'Noto Sans SC', 'PingFang SC', sans-serif;
    }

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

    html {
      scroll-behavior: smooth;
      -webkit-text-size-adjust: 100%;      /* 横屏时 iOS 不擅自放大正文 */
      text-size-adjust: 100%;
    }

    body {
      font-family: var(--font-body);
      background: var(--paper);
      color: var(--ink);
      line-height: 1.9;
      letter-spacing: .015em;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
      overflow-wrap: break-word;            /* 长命令 / 长链接不撑破窄屏 */
    }

    /* ===== 宣纸氛围：纸纹 + 纤维 + 淡淡朱印晕染 ===== */
    .paper-field { position: fixed; inset: 0; pointer-events: none; z-index: 0; }

    /* 纤维纹理 */
    .paper-field::before {
      content: ""; position: absolute; inset: 0;
      opacity: .5;
      background-image:
        repeating-linear-gradient(91deg, rgba(120,100,70,.030) 0 1px, transparent 1px 3px),
        repeating-linear-gradient(2deg, rgba(120,100,70,.022) 0 1px, transparent 1px 4px);
    }
    /* 颗粒 */
    .paper-field::after {
      content: ""; position: absolute; inset: 0; opacity: .035;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    }

    /* 四角晕染 */
    .halo { position: fixed; inset: 0; pointer-events: none; z-index: 0; }
    .halo::before {
      content: ""; position: absolute; inset: 0;
      background:
        radial-gradient(50rem 34rem at 88% -6%, rgba(168,50,42,.10), transparent 62%),
        radial-gradient(44rem 30rem at 4% 8%, rgba(92,107,82,.09), transparent 60%),
        radial-gradient(38rem 26rem at 50% 104%, rgba(63,90,107,.07), transparent 58%);
    }

    .wrap { max-width: 1180px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 2; }

    /* ===== 顶栏 ===== */
    .topbar {
      position: sticky; top: 0; z-index: 50;
      background: rgba(244,237,224,.9);
      backdrop-filter: blur(10px) saturate(1.1);
      border-bottom: 1px solid var(--rule);
    }
    .topbar-in {
      display: flex; align-items: center; justify-content: space-between;
      height: 74px;
    }
    .brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--ink); }
    /* 方印 logo */
    .seal {
      width: 40px; height: 40px; flex: none;
      background: var(--cinnabar); color: #fbeee0;
      display: grid; place-items: center;
      font-family: var(--font-display); font-size: 22px; font-weight: 600;
      border-radius: 3px;
      box-shadow: inset 0 0 0 1px rgba(255,255,255,.22), var(--shadow-1);
      letter-spacing: 0;
    }
    .brand-txt { display: flex; flex-direction: column; line-height: 1.15; }
    .brand-cn { font-family: var(--font-display); font-size: 21px; font-weight: 600; letter-spacing: .16em; }
    .brand-en { font-family: var(--font-label); font-size: 9.5px; letter-spacing: .34em; color: var(--ink-3); text-transform: uppercase; }

    .nav { display: flex; align-items: center; gap: 30px; }
    .nav a {
      font-family: var(--font-label); font-size: 13.5px; letter-spacing: .12em;
      color: var(--ink-2); text-decoration: none; position: relative; padding: 6px 0;
      transition: color var(--dur-fast) ease;
    }
    .nav a::after {
      content: ""; position: absolute; left: 0; bottom: 0; height: 1px; width: 0;
      background: var(--cinnabar); transition: width var(--dur-base) var(--ease);
    }
    .nav a:hover { color: var(--ink); }
    .nav a:hover::after { width: 100%; }

    /* ===== 按钮 ===== */
    .btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 10px;
      min-height: 46px; padding: 12px 26px;
      font-family: var(--font-label); font-size: 13.5px; letter-spacing: .16em;
      text-decoration: none; cursor: pointer; border: 1px solid transparent;
      transition: all var(--dur-fast) var(--ease); position: relative;
    }
    .btn-seal {
      background: var(--cinnabar); color: #fbeee0;
      box-shadow: var(--shadow-1), inset 0 0 0 1px rgba(255,255,255,.18);
    }
    .btn-seal:hover { background: var(--cinnabar-dk); transform: translateY(-2px); box-shadow: var(--shadow-2); }
    .btn-ink {
      background: transparent; color: var(--ink); border-color: var(--rule-strong);
    }
    .btn-ink:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
    .btn-lg { min-height: 54px; padding: 15px 34px; font-size: 14.5px; }

    /* ===== 首屏 ===== */
    .hero { padding: var(--sp-8) 0 var(--sp-7); position: relative; }
    .hero-grid {
      display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--sp-7);
      align-items: center;
    }
    /* 竖排小签 */
    .vsign {
      position: absolute; left: -58px; top: 6px;
      writing-mode: vertical-rl; text-orientation: upright;
      font-family: var(--font-display); font-size: 13px; letter-spacing: .5em;
      color: var(--ink-3);
      padding: 18px 8px;
      border-left: 1px solid var(--rule); border-right: 1px solid var(--rule);
    }
    .kicker {
      display: inline-flex; align-items: center; gap: 10px;
      font-family: var(--font-label); font-size: 11.5px; letter-spacing: .3em;
      color: var(--cinnabar); text-transform: uppercase; margin-bottom: var(--sp-4);
    }
    .kicker::before { content: ""; width: 34px; height: 1px; background: var(--cinnabar); }

    h1.hero-title {
      font-family: var(--font-display);
      font-size: clamp(46px, 6.6vw, 88px);
      font-weight: 600; line-height: 1.06; letter-spacing: .04em;
      margin-bottom: var(--sp-4);
    }
    h1.hero-title .mark {
      color: var(--cinnabar); position: relative; white-space: nowrap;
    }
    /* 朱笔圈点 */
    h1.hero-title .mark::after {
      content: ""; position: absolute; inset: -8px -12px -4px -12px;
      border: 2px solid var(--cinnabar); border-radius: 50% 46% 52% 48%;
      opacity: .34; transform: rotate(-2.4deg);
    }
    .hero-lede {
      font-size: 17px; color: var(--ink-2); line-height: 2.05;
      max-width: 34em; margin-bottom: var(--sp-5);
      text-align: justify;
    }
    .hero-lede strong { color: var(--ink); font-weight: 600; border-bottom: 1px solid var(--cinnabar-lt); }
    .hero-act { display: flex; gap: 14px; flex-wrap: wrap; }

    /* 右：册页示意 */
    .folio {
      background: var(--paper-2);
      border: 1px solid var(--rule-strong);
      box-shadow: var(--shadow-3);
      position: relative; padding: 22px;
    }
    /* 线装书线 */
    .folio::before {
      content: ""; position: absolute; left: 14px; top: 16px; bottom: 16px; width: 0;
      border-left: 2px dashed rgba(34,28,21,.22);
    }
    /* 角标 */
    .folio::after {
      content: ""; position: absolute; right: -7px; bottom: -7px; width: 46px; height: 46px;
      border-right: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule-strong);
    }
    .folio-cap {
      display: flex; align-items: baseline; justify-content: space-between;
      padding-left: 22px; margin-bottom: 14px;
      border-bottom: 1px solid var(--rule); padding-bottom: 12px;
    }
    .folio-cap b { font-family: var(--font-display); font-size: 16px; font-weight: 600; letter-spacing: .1em; }
    .folio-cap span { font-family: var(--font-label); font-size: 10.5px; letter-spacing: .2em; color: var(--ink-3); }

    .cat-row {
      display: flex; align-items: center; gap: 12px; padding: 11px 10px 11px 26px;
      border-bottom: 1px solid var(--rule-hair); font-size: 13.5px;
      transition: background var(--dur-fast) ease, padding-left var(--dur-base) var(--ease);
    }
    .cat-row:last-child { border-bottom: none; }
    .cat-row:hover { background: rgba(168,50,42,.05); padding-left: 33px; }
    .cat-tag {
      flex: none; width: 26px; height: 26px; display: grid; place-items: center;
      font-family: var(--font-display); font-size: 13px; border-radius: 2px;
      background: var(--paper-3); color: var(--ink-2);
    }
    .cat-name { font-family: var(--font-display); color: var(--ink); }
    .cat-ext {
      margin-left: auto; font-family: var(--font-label); font-size: 11px;
      letter-spacing: .08em; color: var(--ink-3);
    }
    .cat-row.hot .cat-tag { background: var(--cinnabar); color: #fbeee0; }

    /* ===== 分隔：卷轴线 ===== */
    .scroll-rule {
      display: flex; align-items: center; gap: 18px;
      margin: var(--sp-7) 0;
    }
    .scroll-rule::before, .scroll-rule::after {
      content: ""; flex: 1; height: 1px; background: var(--rule);
    }
    .scroll-rule span {
      font-family: var(--font-display); font-size: 13px; letter-spacing: .44em;
      color: var(--ink-3); padding-left: .44em;
    }

    /* ===== 章节标题 ===== */
    section { position: relative; }
    section[id] { scroll-margin-top: 92px; }   /* 锚点跳转别被吸顶栏压住标题 */
    .ch-head { margin-bottom: var(--sp-6); max-width: 40em; }
    .ch-no {
      font-family: var(--font-label); font-size: 11px; letter-spacing: .3em;
      color: var(--cinnabar); display: block; margin-bottom: 12px;
    }
    .ch-title {
      font-family: var(--font-display); font-weight: 600;
      font-size: clamp(28px, 3.6vw, 42px); letter-spacing: .05em; line-height: 1.25;
      margin-bottom: 14px;
    }
    .ch-desc { color: var(--ink-3); font-size: 15.5px; line-height: 2; }

    /* ===== 功能：档案卡片 ===== */
    .ledger { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule-strong); }
    .sheet {
      background: var(--paper); padding: 34px 30px 30px; position: relative;
      transition: background var(--dur-base) var(--ease);
    }
    .sheet:hover { background: var(--paper-2); }
    /* 编号水印 */
    .sheet-no {
      position: absolute; top: 14px; right: 18px;
      font-family: var(--font-label); font-size: 10.5px; letter-spacing: .18em;
      color: var(--ink-4);
    }
    .sheet-ico {
      width: 46px; height: 46px; margin-bottom: 20px;
      display: grid; place-items: center;
      border: 1px solid var(--rule-strong); border-radius: 2px;
      background: var(--paper-2); color: var(--cinnabar);
      transition: all var(--dur-base) var(--ease);
    }
    .sheet:hover .sheet-ico { background: var(--cinnabar); color: #fbeee0; border-color: var(--cinnabar); }
    .sheet h3 {
      font-family: var(--font-display); font-size: 19px; font-weight: 600;
      letter-spacing: .06em; margin-bottom: 12px;
    }
    .sheet p { font-size: 14px; color: var(--ink-2); line-height: 1.95; margin-bottom: 18px; }
    .sheet p code {
      font-family: 'Consolas', 'Noto Sans SC', monospace; font-size: 12.5px;
      background: var(--paper-3); color: var(--ink); padding: 1px 5px; border-radius: 2px;
    }
    .sheet-meta {
      display: flex; flex-wrap: wrap; gap: 7px; padding-top: 16px;
      border-top: 1px dashed var(--rule);
    }
    .chip {
      font-family: var(--font-label); font-size: 11px; letter-spacing: .06em;
      padding: 3px 9px; border: 1px solid var(--rule); color: var(--ink-3);
      background: var(--paper-2);
    }
    .chip.b { color: var(--azure); border-color: rgba(63,90,107,.3); background: rgba(63,90,107,.06); }
    .chip.g { color: var(--bamboo); border-color: rgba(92,107,82,.3); background: rgba(92,107,82,.06); }

    /* ===== 终端：竹简风 ===== */
    .bamboo-term {
      background: #241f19; border: 1px solid #3c332a; border-radius: 3px;
      box-shadow: var(--shadow-3); overflow: hidden; margin-top: var(--sp-6);
    }
    .term-head {
      display: flex; align-items: center; gap: 14px;
      padding: 12px 18px; background: #1c1813; border-bottom: 1px solid #3c332a;
    }
    .term-head .seal-sm {
      width: 20px; height: 20px; background: var(--cinnabar); border-radius: 2px;
      display: grid; place-items: center; font-family: var(--font-display); font-size: 11px; color: #fbeee0;
    }
    .term-file { font-family: var(--font-label); font-size: 11.5px; letter-spacing: .14em; color: #8c8071; }
    .term-body { padding: 22px 20px; font-family: 'Consolas', 'Noto Sans SC', monospace; font-size: 13.5px; line-height: 2; }
    .t-line { display: flex; gap: 10px; }
    .t-sym { color: var(--cinnabar-lt); flex: none; }
    .t-cmd { color: #e8ded0; }
    .t-out { color: #9a8d7c; padding-left: 22px; }
    .t-ok { color: #7d9a6e; }
    /* v1.2.2：中文诊断在终端里的样子（朱砂报错 + 竹青建议） */
    .t-diag { color: #dd8a72; }
    .t-tip { color: #8fa888; }
    .caret { display: inline-block; width: 8px; height: 15px; background: var(--cinnabar-lt); vertical-align: -2px; animation: blink 1.05s steps(1) infinite; }
    @keyframes blink { 0%,50%{opacity:1} 51%,100%{opacity:0} }

    /* ===== 更新手记（历次修订） ===== */
    .journal { list-style: none; margin-left: 7px; border-left: 2px solid var(--rule); }
    .jr-item { position: relative; padding: 0 0 var(--sp-6) var(--sp-5); }
    .jr-item:last-child { padding-bottom: 0; }
    .jr-item::before {
      content: ""; position: absolute; left: -8px; top: 8px; width: 14px; height: 14px;
      border-radius: 50%; background: var(--paper); border: 2px solid var(--rule-strong);
    }
    .jr-item.latest::before { background: var(--cinnabar); border-color: var(--cinnabar); box-shadow: 0 0 0 5px rgba(168,50,42,.12); }
    .jr-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px; margin-bottom: 14px; }
    .jr-ver { font-family: var(--font-display); font-size: 23px; font-weight: 600; letter-spacing: .05em; color: var(--ink-2); }
    .jr-item.latest .jr-ver { color: var(--cinnabar); }
    .jr-date { font-family: var(--font-label); font-size: 11.5px; letter-spacing: .14em; color: var(--ink-4); }
    .jr-tag {
      font-family: var(--font-label); font-size: 11px; letter-spacing: .1em;
      padding: 3px 10px; border: 1px solid var(--rule); background: var(--paper-2); color: var(--ink-3);
    }
    .jr-tag.fix { color: var(--cinnabar); border-color: rgba(168,50,42,.32); background: rgba(168,50,42,.06); }
    .jr-tag.new { color: var(--bamboo); border-color: rgba(92,107,82,.32); background: rgba(92,107,82,.06); }
    .jr-tag.imp { color: var(--azure); border-color: rgba(63,90,107,.32); background: rgba(63,90,107,.06); }
    .jr-list { list-style: none; display: grid; gap: 11px; }
    .jr-list > li { position: relative; padding-left: 19px; font-size: 14.5px; line-height: 1.95; color: var(--ink-2); }
    .jr-list > li::before { content: "·"; position: absolute; left: 4px; top: -1px; color: var(--cinnabar); font-weight: 700; font-size: 17px; }
    .jr-list b { color: var(--ink); font-weight: 600; }
    .jr-list em { font-style: normal; color: var(--ink-3); }
    .jr-list code { font-family: 'Consolas', 'Noto Sans SC', monospace; font-size: 12.5px; background: var(--paper-3); padding: 1px 6px; }

    /* ===== 下载 ===== */
    .get-card {
      border: 1px solid var(--rule-strong); background: var(--paper-2);
      padding: var(--sp-6) var(--sp-6) var(--sp-5);
      position: relative; box-shadow: var(--shadow-2);
      text-align: center;
    }
    /* 四角括号 */
    .get-card .corner { position: absolute; width: 20px; height: 20px; border-color: var(--cinnabar); }
    .get-card .c1 { top: 10px; left: 10px; border-left: 2px solid; border-top: 2px solid; }
    .get-card .c2 { top: 10px; right: 10px; border-right: 2px solid; border-top: 2px solid; }
    .get-card .c3 { bottom: 10px; left: 10px; border-left: 2px solid; border-bottom: 2px solid; }
    .get-card .c4 { bottom: 10px; right: 10px; border-right: 2px solid; border-bottom: 2px solid; }

    .get-title { font-family: var(--font-display); font-size: clamp(26px,3.4vw,38px); font-weight: 600; letter-spacing: .06em; margin-bottom: 14px; }
    .get-sub { color: var(--ink-3); font-size: 15px; margin-bottom: var(--sp-5); }

    .dl-row { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; margin-bottom: var(--sp-4); }
    .dl-btn {
      display: flex; align-items: center; gap: 14px;
      min-width: 292px; padding: 18px 26px; text-align: left;
      background: var(--paper); border: 1px solid var(--rule-strong);
      color: var(--ink); text-decoration: none; cursor: pointer;
      transition: all var(--dur-fast) var(--ease);
    }
    .dl-btn:hover { border-color: var(--cinnabar); transform: translateY(-3px); box-shadow: var(--shadow-2); }
    .dl-btn svg { width: 26px; height: 26px; flex: none; color: var(--cinnabar); }
    .dl-os { display: block; font-family: var(--font-display); font-size: 16px; font-weight: 600; letter-spacing: .08em; }
    .dl-meta { display: block; font-family: var(--font-label); font-size: 11px; letter-spacing: .1em; color: var(--ink-3); margin-top: 3px; }
    .dl-note { font-family: var(--font-label); font-size: 11.5px; letter-spacing: .12em; color: var(--ink-3); }
    .dl-note b { color: var(--ink-2); font-weight: 500; }

    /* ===== 多线程下载的进度条（v1.4.2） =====
       跨境单连接慢，站内改成 8 段并发取；这条是真实进度，不是装饰动画。 */
    .dl-bar { display: block; height: 3px; margin-top: 8px; background: var(--rule); border-radius: 2px; overflow: hidden; }
    .dl-bar[hidden] { display: none; }
    .dl-bar > b { display: block; height: 100%; width: 0; background: var(--cinnabar); transition: width .25s linear; }
    .dl-btn[aria-busy="true"] { border-color: var(--cinnabar); }
    .dl-btn[aria-busy="true"] svg { animation: dl-pulse 1.2s ease-in-out infinite; }
    @keyframes dl-pulse { 50% { opacity: .45; } }

    /* ===== 下载校验码（v1.2.5 完整性与来源校验） ===== */
    .dl-ck { margin-top: 18px; border-top: 1px solid var(--rule); padding-top: 14px; }
    .dl-ck summary { font-family: var(--font-label); font-size: 12px; letter-spacing: .1em; color: var(--cinnabar); cursor: pointer; list-style: none; }
    .dl-ck summary::-webkit-details-marker { display: none; }
    .dl-ck summary::before { content: '▸ '; }
    .dl-ck[open] summary::before { content: '▾ '; }
    .dl-ck-desc { font-size: 12px; line-height: 1.85; color: var(--ink-3); margin: 10px 0 12px; }
    .dl-ck-desc b { color: var(--ink-2); font-weight: 500; }
    .dl-ck-table { width: 100%; border-collapse: collapse; font-family: var(--font-label); font-size: 10.5px; }
    .dl-ck-table th { text-align: left; font-weight: 500; color: var(--ink-3); letter-spacing: .1em; padding: 6px 8px; border-bottom: 1px solid var(--rule); }
    .dl-ck-table td { padding: 7px 8px; border-bottom: 1px solid var(--rule); color: var(--ink-2); vertical-align: top; }
    .dl-ck-table td:last-child { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; word-break: break-all; color: var(--ink-3); }
    .dl-ck-pending { color: var(--ink-3); text-align: center; letter-spacing: .08em; }

    /* ===== 页脚 ===== */
    footer { margin-top: var(--sp-8); border-top: 1px solid var(--rule); padding: var(--sp-5) 0; }
    .foot-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
    .foot-links { display: flex; gap: 26px; list-style: none; }
    .foot-links a {
      font-family: var(--font-label); font-size: 12.5px; letter-spacing: .12em;
      color: var(--ink-3); text-decoration: none; transition: color var(--dur-fast) ease;
    }
    .foot-links a:hover { color: var(--cinnabar); }
    .foot-copy { font-family: var(--font-label); font-size: 11.5px; letter-spacing: .1em; color: var(--ink-4); }

    /* ============================================================
       手机端专属组件（桌面一律 display:none，不影响原版式）
       ============================================================ */

    /* --- 汉堡按钮 --- */
    .burger {
      display: none; flex-direction: column; align-items: center; justify-content: center;
      gap: 4.5px; width: 42px; height: 42px; flex: none;
      background: transparent; border: 1px solid var(--rule-strong); border-radius: 2px;
      cursor: pointer; padding: 0;
      transition: background var(--dur-fast) ease, border-color var(--dur-fast) ease;
    }
    .burger span {
      display: block; width: 17px; height: 1.5px; background: var(--ink);
      transition: transform 220ms var(--ease), opacity 140ms ease;
    }
    .burger.open { background: var(--paper-2); border-color: var(--rule-strong); }
    .burger.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .burger.open span:nth-child(2) { opacity: 0; transform: scaleX(.3); }
    .burger.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    /* --- 抽屉菜单 --- */
    .mnav {
      display: none;
      position: fixed; left: 0; right: 0; top: 58px; z-index: 49;
      padding: 4px 18px 18px;
      background: rgba(244,237,224,.975);
      -webkit-backdrop-filter: blur(14px) saturate(1.1);
      backdrop-filter: blur(14px) saturate(1.1);
      border-bottom: 1px solid var(--rule-strong);
      box-shadow: var(--shadow-3);
      max-height: calc(100dvh - 58px); overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      opacity: 0; visibility: hidden; transform: translateY(-10px);
      transition: opacity 180ms ease, transform 240ms var(--ease), visibility 180ms;
    }
    .mnav.open { opacity: 1; visibility: visible; transform: none; }
    .mnav a:not(.btn) {
      display: flex; align-items: center; justify-content: space-between;
      min-height: 54px; padding: 0 2px;
      font-family: var(--font-label); font-size: 16px; letter-spacing: .1em;
      color: var(--ink); text-decoration: none;
      border-bottom: 1px solid var(--rule-hair);
    }
    .mnav a:not(.btn)::after {
      content: "›"; font-size: 20px; color: var(--ink-4); line-height: 1;
    }
    .mnav a:not(.btn):active { background: rgba(168,50,42,.05); }
    .mnav .btn { width: 100%; margin-top: 16px; min-height: 50px; }

    .mnav-mask {
      display: none;
      position: fixed; inset: 58px 0 0; z-index: 48;
      background: rgba(34,28,21,.16);
      opacity: 0; visibility: hidden;
      transition: opacity 180ms ease, visibility 180ms;
    }
    .mnav-mask.open { opacity: 1; visibility: visible; }

    /* --- 手机端下载提示 + 复制链接 --- */
    .mobile-tip {
      display: none;
      margin: 0 0 20px; padding: 12px 14px; text-align: left;
      font-size: 12.5px; line-height: 1.8; color: var(--ink-2);
      background: rgba(168,50,42,.05);
      border-left: 2px solid var(--cinnabar);
    }
    .mobile-tip b {
      display: block; margin-bottom: 3px;
      font-family: var(--font-label); font-size: 11px; letter-spacing: .1em; color: var(--cinnabar);
    }
    .dl-copy {
      display: none;
      margin: 14px auto 0; min-height: 42px; padding: 10px 18px;
      font-family: var(--font-label); font-size: 12.5px; letter-spacing: .1em;
      color: var(--ink-2); background: transparent;
      border: 1px dashed var(--rule-strong); border-radius: 2px; cursor: pointer;
      transition: color var(--dur-fast) ease, border-color var(--dur-fast) ease, background var(--dur-fast) ease;
    }
    .dl-copy.ok { color: var(--bamboo); border-style: solid; border-color: rgba(92,107,82,.5); background: rgba(92,107,82,.07); }

    /* --- 回到顶部 --- */
    .totop {
      display: none;
      position: fixed; z-index: 45;
      right: 12px; bottom: calc(14px + env(safe-area-inset-bottom));
      width: 45px; height: 45px; place-items: center;
      background: rgba(236,226,208,.9);
      -webkit-backdrop-filter: blur(8px);
      backdrop-filter: blur(8px);
      color: var(--ink-2);
      border: 1px solid var(--rule-strong); border-radius: 50%;
      box-shadow: var(--shadow-2); cursor: pointer; padding: 0;
      opacity: 0; visibility: hidden; transform: translateY(12px);
      transition: opacity 200ms ease, transform 260ms var(--ease), visibility 200ms;
    }
    .totop.show { opacity: 1; visibility: visible; transform: none; }
    /* 手指还在滚 → 让道，别压住正文；停手 320ms 再显形 */
    .totop.show.scrolling { opacity: .26; }
    .totop svg { width: 19px; height: 19px; }

    /* ===== 入场 =====
       隐藏状态挂在 html.rv-ready 下，由 site.js 在**确实装上观察器之后**才加：
       万一 JS 没跑 / 浏览器没有 IntersectionObserver，内容就是普通可见，而不会永远隐形。
       （更新手记专页曾经整页空白，就是因为整个 <ol> 高 5785px 而观察器阈值是 12%，
         视口只有 600px，最大交叉比 ~10% —— 永远不触发，条目就永久停在 opacity:0。） */
    html.rv-ready .rv { opacity: 0; transform: translateY(22px); }
    html.rv-ready .rv.in {
      opacity: 1; transform: none;
      transition: opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);
    }
    @media (prefers-reduced-motion: reduce) {
      html.rv-ready .rv { opacity: 1; transform: none; transition: none; }
      .caret { animation: none; }
      html { scroll-behavior: auto; }
    }

    /* ===== 焦点 ===== */
    a:focus-visible, button:focus-visible {
      outline: 2px solid var(--cinnabar); outline-offset: 3px; border-radius: 2px;
    }

    /* ============================================================
       响应式：桌面 1180 原版不动 —— 以下只在窄屏生效
       断点：1024 平板横屏 / 820 平板竖屏 / 640 手机 / 400 小屏 / 340 极窄
       ============================================================ */

    /* --- 触屏：撤掉悬停态（手指点一下会"粘住"），换成按压反馈 --- */
    @media (hover: none) {
      .btn-seal:hover { background: var(--cinnabar); transform: none; box-shadow: var(--shadow-1), inset 0 0 0 1px rgba(255,255,255,.18); }
      .btn-ink:hover { background: transparent; color: var(--ink); border-color: var(--rule-strong); }
      .sheet:hover { background: var(--paper); }
      .sheet:hover .sheet-ico { background: var(--paper-2); color: var(--cinnabar); border-color: var(--rule-strong); }
      .cat-row:hover { background: transparent; padding-left: 26px; }
      .dl-btn:hover { border-color: var(--rule-strong); transform: none; box-shadow: none; }
      .foot-links a:hover { color: var(--ink-3); }

      .btn-seal:active { background: var(--cinnabar-dk); transform: translateY(1px); }
      .btn-ink:active { background: var(--ink); color: var(--paper); border-color: var(--ink); }
      .sheet:active { background: var(--paper-2); }
      .cat-row:active { background: rgba(168,50,42,.05); }
      .dl-btn:active { border-color: var(--cinnabar); background: var(--paper-2); }
    }
    @media (pointer: coarse) {
      a, button, .sheet, .cat-row, .dl-btn { -webkit-tap-highlight-color: transparent; }
    }

    /* --- 平板横屏 / 窄桌面 --- */
    @media (max-width: 1024px) {
      .hero-grid { grid-template-columns: 1fr; gap: var(--sp-6); }
      .vsign { display: none; }
      .ledger { grid-template-columns: repeat(2, 1fr); }
      section[id] { scroll-margin-top: 88px; }
    }

    /* --- 平板竖屏 --- */
    @media (max-width: 820px) {
      :root { --sp-6: 52px; --sp-7: 72px; --sp-8: 92px; }
      .wrap { padding: 0 24px; }
      .hero-lede { max-width: none; }
      .ledger { grid-template-columns: 1fr; }
      .dl-btn { min-width: 100%; max-width: 460px; }
      .foot-in { flex-direction: column; gap: 22px; text-align: center; }
      .foot-links { flex-wrap: wrap; justify-content: center; }
    }

    /* --- 手机 --- */
    @media (max-width: 640px) {
      :root {
        --sp-3: 13px; --sp-4: 17px; --sp-5: 22px;
        --sp-6: 32px; --sp-7: 44px; --sp-8: 56px;
      }
      .wrap { padding: 0 18px; }

      /* 顶栏：一行装下 brand + 汉堡 */
      .topbar-in { height: 58px; }
      .brand { gap: 11px; }
      .seal { width: 34px; height: 34px; font-size: 19px; }
      .brand-cn { font-size: 18px; letter-spacing: .12em; }
      .brand-en { font-size: 8.5px; letter-spacing: .26em; }
      .nav { display: none; }
      .nav-cta { display: none; }
      .burger { display: flex; }
      .mnav, .mnav-mask { display: block; }
      body.menu-open { overflow: hidden; }

      /* 首屏 */
      .hero { padding: var(--sp-7) 0 var(--sp-6); }
      .hero-grid { gap: var(--sp-5); }
      .kicker { font-size: 10.5px; letter-spacing: .22em; margin-bottom: var(--sp-4); }
      .kicker::before { width: 22px; }
      h1.hero-title { font-size: clamp(34px, 10vw, 46px); line-height: 1.12; letter-spacing: .03em; margin-bottom: var(--sp-3); }
      h1.hero-title .mark::after { inset: -5px -8px -2px -8px; border-width: 1.5px; }
      .hero-lede { font-size: 15px; line-height: 1.95; margin-bottom: var(--sp-5); text-align: left; }
      .hero-act { flex-direction: column; gap: 10px; }
      .hero-act .btn { width: 100%; }
      .btn-lg { min-height: 50px; padding: 13px 22px; font-size: 14px; }

      /* 册页示意 */
      .folio { padding: 16px 14px 14px; }
      .folio::before { left: 9px; top: 12px; bottom: 12px; }
      .folio::after { right: -5px; bottom: -5px; width: 34px; height: 34px; }
      .folio-cap { padding-left: 16px; margin-bottom: 10px; padding-bottom: 9px; }
      .folio-cap b { font-size: 14.5px; letter-spacing: .07em; }
      .folio-cap span { font-size: 9.5px; letter-spacing: .16em; }
      .cat-row { padding: 9px 6px 9px 20px; gap: 10px; font-size: 13px; }
      .cat-tag { width: 23px; height: 23px; font-size: 12px; }
      .cat-ext { font-size: 9.5px; letter-spacing: .02em; }

      /* 分隔线与章节头 */
      .scroll-rule { margin: var(--sp-6) 0; gap: 12px; }
      .scroll-rule span { font-size: 12px; letter-spacing: .34em; padding-left: .34em; }
      .ch-head { margin-bottom: var(--sp-5); }
      .ch-title { font-size: clamp(23px, 6.6vw, 28px); margin-bottom: 10px; }
      .ch-desc { font-size: 14px; line-height: 1.9; }

      /* 功能卡片 */
      .sheet { padding: 22px 20px 20px; }
      .sheet-no { top: 10px; right: 14px; font-size: 9.5px; }
      .sheet-ico { width: 42px; height: 42px; margin-bottom: 16px; }
      .sheet h3 { font-size: 17.5px; margin-bottom: 9px; }
      .sheet p { font-size: 13.5px; line-height: 1.9; margin-bottom: 15px; }

      /* 终端：长命令不折行，整条可左右推 */
      .bamboo-term { margin-top: var(--sp-5); }
      .term-head { padding: 10px 14px; gap: 10px; }
      .term-file { font-size: 10.5px; letter-spacing: .1em; }
      .term-body {
        padding: 16px 14px; font-size: 12px; line-height: 1.95;
        overflow-x: auto; -webkit-overflow-scrolling: touch;
      }
      .term-body .t-line, .term-body .t-out { white-space: nowrap; }
      .t-out { padding-left: 18px; }

      /* 下载卡 */
      .get-card { padding: 26px 16px 20px; }
      .get-card .corner { width: 14px; height: 14px; }
      .get-card .c1, .get-card .c2 { top: 7px; }
      .get-card .c3, .get-card .c4 { bottom: 7px; }
      .get-card .c1, .get-card .c3 { left: 7px; }
      .get-card .c2, .get-card .c4 { right: 7px; }
      .get-title { font-size: clamp(21px, 6vw, 26px); letter-spacing: .03em; margin-bottom: 10px; }
      .get-sub { font-size: 13.5px; margin-bottom: var(--sp-5); }
      .dl-row { margin-bottom: 16px; }
      .dl-btn { min-width: 100%; padding: 15px 16px; gap: 13px; justify-content: center; }
      .dl-btn > span { text-align: left; }
      .dl-btn svg { width: 22px; height: 22px; }
      .dl-os { font-size: 15.5px; }
      .dl-meta { font-size: 10.5px; letter-spacing: .06em; }
      .dl-note { font-size: 11px; letter-spacing: .06em; line-height: 1.8; }

      /* 更新手记 */
      .journal { margin-left: 4px; }
      .jr-head { gap: 8px 12px; margin-bottom: 12px; }
      .jr-ver { font-size: 19.5px; }
      .jr-date { font-size: 10.5px; }
      .jr-tag { font-size: 10px; padding: 2px 8px; }
      .jr-list { gap: 10px; }
      .jr-list > li { font-size: 13.5px; line-height: 1.9; padding-left: 15px; }
      .jr-list > li::before { left: 2px; top: -2px; font-size: 15px; }
      .jr-list code {
        font-size: 11.5px; padding: 1px 4px;
        /* 短标识符整体挪行（不拦腰截断）；万一超宽也只在自己内部断 */
        display: inline-block; max-width: 100%; overflow-wrap: anywhere;
      }

      /* 页脚 */
      footer { margin-top: var(--sp-7); padding: var(--sp-5) 0 calc(var(--sp-5) + env(safe-area-inset-bottom)); }
      .brand { min-height: 42px; }
      .foot-in { gap: 18px; }
      .foot-links { gap: 2px 16px; }
      .foot-links a {
        display: inline-flex; align-items: center;
        min-height: 42px; padding: 0 2px; font-size: 12px;
      }
      .foot-copy { font-size: 10.5px; }

      /* 手机专属件显形 */
      .mobile-tip { display: block; }
      .dl-copy { display: inline-flex; align-items: center; justify-content: center; }
      .totop { display: grid; }

      section[id] { scroll-margin-top: 70px; }
    }

    /* --- 小屏手机 --- */
    @media (max-width: 400px) {
      .wrap { padding: 0 15px; }
      h1.hero-title { font-size: clamp(30px, 10.4vw, 38px); }
      .mnav { padding-left: 15px; padding-right: 15px; }
      .cat-ext { font-size: 9px; }
      .sheet { padding: 20px 17px 18px; }
      .term-body { font-size: 11.5px; }
      .jr-list > li { font-size: 13px; }
      .get-title { font-size: 20px; }
      .dl-copy { width: 100%; }
    }

    /* --- 极窄（iPhone SE 一代 / 折叠机外屏） --- */
    @media (max-width: 340px) {
      h1.hero-title { font-size: 27px; }
      .cat-ext { display: none; }
      .get-sub { font-size: 12.5px; }
    }

    /* ============================================================
       独立子页（v1.3.0）：更新手记专页 / 反馈页
       与主页同一套纸墨气质。变量只用本样式表自己那套
       （--paper/--paper-2/--ink*/--cinnabar/--rule*/--font-*/--sp-*/--shadow-*），
       不要照抄客户端里的名字（--card/--line-strong/--seal…），那些在这边是空的，
       写下去浏览器会整条忽略 —— 表现就是"输入框和按钮看不见"。
       ============================================================ */
    .subhero { padding: calc(var(--sp-7) + 40px) 0 var(--sp-5); }
    .subhero .ch-head { padding-left: 0; padding-right: 0; }
    .jr-back, .jr-more { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: var(--sp-4); }
    .jr-more { justify-content: center; margin-top: var(--sp-5); }
    .jr-page { padding-bottom: var(--sp-7); }
    .jr-page .journal { max-width: 900px; margin: 0 auto; }
    .jr-page .jr-item { padding: var(--sp-4) 0 var(--sp-5); }
    .nav a.on { color: var(--cinnabar); }

    /* ── 反馈页 ── */
    .fb-grid {
      display: grid; grid-template-columns: minmax(0, 1fr) 320px;
      gap: var(--sp-5); align-items: start; max-width: 1080px; margin: 0 auto;
    }
    .fb-card {
      background: var(--paper); border: 1px solid var(--rule-strong);
      padding: var(--sp-4) var(--sp-4) var(--sp-5); box-shadow: var(--shadow-1);
    }
    .fb-field { margin-bottom: var(--sp-4); }
    .fb-field > label {
      display: block; font-family: var(--font-label); font-size: 11.5px;
      letter-spacing: .16em; color: var(--ink-2); margin-bottom: 8px;
    }
    .fb-field .req { color: var(--cinnabar); margin-left: 3px; }
    .fb-in, .fb-ta, .fb-sel {
      width: 100%; box-sizing: border-box;
      font-family: var(--font-body); font-size: 15px; line-height: 1.7; color: var(--ink);
      background: var(--paper-2); border: 1px solid var(--rule-strong);
      padding: 11px 13px; outline: none; border-radius: 2px;
      transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
    }
    .fb-ta { min-height: 190px; resize: vertical; }
    .fb-in::placeholder, .fb-ta::placeholder { color: var(--ink-4); }
    .fb-in:focus, .fb-ta:focus, .fb-sel:focus {
      border-color: var(--cinnabar); background: var(--paper);
      box-shadow: 0 0 0 3px rgba(168, 50, 42, .12);
    }
    .fb-hint { font-family: var(--font-label); font-size: 11.5px; color: var(--ink-3); margin-top: 7px; line-height: 1.7; }
    .fb-kinds { display: flex; flex-wrap: wrap; gap: 10px; }
    .fb-kind { position: relative; }
    .fb-kind input { position: absolute; opacity: 0; pointer-events: none; }
    .fb-kind span {
      display: inline-block; cursor: pointer; padding: 8px 16px;
      border: 1px solid var(--rule-strong); background: var(--paper-2);
      font-family: var(--font-label); font-size: 13px; letter-spacing: .08em;
      color: var(--ink-2); transition: all var(--dur-fast) var(--ease);
    }
    .fb-kind span:hover { border-color: var(--cinnabar); color: var(--cinnabar); }
    .fb-kind input:checked + span { background: var(--cinnabar); border-color: var(--cinnabar); color: #fbeee0; }
    .fb-kind input:focus-visible + span { box-shadow: 0 0 0 3px rgba(168, 50, 42, .18); }
    .fb-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: var(--sp-4); }
    .fb-msg { margin-top: var(--sp-3); font-size: 14px; line-height: 1.85; }
    .fb-msg:empty { display: none; }
    .fb-msg.ok { color: var(--bamboo); }
    .fb-msg.err { color: var(--cinnabar); }
    .fb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
    .fb-side h3 {
      font-family: var(--font-display); font-size: 18px; font-weight: 600;
      margin: 0 0 var(--sp-3); letter-spacing: .06em;
    }
    .fb-side ul { margin: 0 0 var(--sp-4); padding-left: 1.15em; font-size: 13.5px; line-height: 1.95; color: var(--ink-2); }
    .fb-side li { margin-bottom: 6px; }
    .fb-side b { color: var(--ink); font-weight: 600; }
    .fb-side code {
      font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px;
      background: var(--paper-3); padding: 1px 5px; color: var(--ink-2);
    }
    .fb-side a { color: var(--cinnabar); }

    /* ── 好评：五星评分 ── */
    .fb-rate { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
    .fb-stars { display: inline-flex; gap: 4px; }
    .fb-star {
      position: relative; width: 34px; height: 34px; padding: 0; cursor: pointer;
      background: none; border: none; line-height: 0; border-radius: 3px;
      transition: transform var(--dur-fast) var(--ease);
    }
    .fb-star svg { width: 100%; height: 100%; display: block; }
    .fb-star .st-fill { fill: var(--paper-3); stroke: var(--rule-strong); stroke-width: 1.4; transition: fill var(--dur-fast) var(--ease); }
    .fb-star .st-line { fill: none; stroke: var(--rule-strong); stroke-width: 1.4; }
    .fb-star:hover { transform: translateY(-2px); }
    .fb-star:hover .st-fill, .fb-star.on .st-fill { fill: var(--cinnabar); }
    .fb-star:hover .st-line, .fb-star.on .st-line { stroke: var(--cinnabar-dk); }
    .fb-star:focus-visible { outline: 2px solid var(--cinnabar); outline-offset: 2px; }
    .fb-rate-txt { font-family: var(--font-label); font-size: 13px; color: var(--ink-3); letter-spacing: .06em; min-width: 5.5em; }
    .fb-rate-txt.on { color: var(--cinnabar); font-weight: 600; }
    .fb-rate-clear {
      font-family: var(--font-label); font-size: 12px; color: var(--ink-3);
      background: none; border: none; cursor: pointer; padding: 2px 4px; text-decoration: underline;
      text-underline-offset: 3px;
    }
    .fb-rate-clear:hover { color: var(--cinnabar); }

    /* ── 好评：帮到你什么（标签多选）── */
    .fb-tags { display: flex; flex-wrap: wrap; gap: 8px; }
    .fb-tag { position: relative; }
    .fb-tag input { position: absolute; opacity: 0; pointer-events: none; }
    .fb-tag span {
      display: inline-block; cursor: pointer; padding: 6px 13px;
      border: 1px solid var(--rule-strong); background: var(--paper-2); border-radius: 99px;
      font-family: var(--font-label); font-size: 12.5px; letter-spacing: .04em;
      color: var(--ink-2); transition: all var(--dur-fast) var(--ease);
    }
    .fb-tag span:hover { border-color: var(--cinnabar); color: var(--cinnabar); }
    .fb-tag input:checked + span { background: var(--cinnabar); border-color: var(--cinnabar); color: #fbeee0; }
    .fb-tag input:focus-visible + span { box-shadow: 0 0 0 3px rgba(168, 50, 42, .18); }

    /* 好评模式下：必填标记与提示换一套说法 */
    .fb-opt-note { font-weight: 400; color: var(--ink-3); letter-spacing: 0; }
    .fb-field.praise-mode .req { display: none; }
    .fb-praise-tip {
      display: none; margin-top: 10px; padding: 10px 13px; font-size: 13px; line-height: 1.8;
      background: rgba(92, 107, 82, .09); border-left: 3px solid var(--bamboo); color: var(--ink-2);
    }
    .fb-field.praise-mode .fb-praise-tip { display: block; }
    .fb-praise-tip b { color: var(--bamboo); }

    @media (max-width: 900px) {
      .fb-grid { grid-template-columns: minmax(0, 1fr); }
      .subhero { padding-top: calc(var(--sp-6) + 30px); }
      .fb-card { padding: var(--sp-3) var(--sp-3) var(--sp-4); }
    }

/* ═══ GitHub Pages 镜像站：页脚那一行提示 ═══ */
.gh-mirror {
  max-width: var(--wrap, 1120px); margin: 18px auto 0; padding: 10px 16px;
  font-size: 13px; line-height: 1.7; color: var(--ink-3, #6b6b6b);
  border-top: 1px dashed var(--rule, rgba(0,0,0,.14)); text-align: center;
}
.gh-mirror a { color: var(--cinnabar, #a8322a); border-bottom: 1px solid rgba(168,50,42,.35); }
