.page-disclaimer {
  --t-hair: rgba(138, 135, 166, 0.18);
  --t-grid: rgba(138, 135, 166, 0.09);
  --t-num-w: 84px;
  padding-bottom: clamp(56px, 9vw, 104px);
}

/* 面包屑 */
.page-disclaimer .crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 18px;
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--muted);
}

.page-disclaimer .crumbs a {
  color: var(--muted);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}

.page-disclaimer .crumbs a:hover,
.page-disclaimer .crumbs a:focus-visible {
  color: var(--cyan);
}

.page-disclaimer .crumbs [aria-current="page"] {
  color: var(--text);
}

/* 首屏 */
.page-disclaimer .terms-hero {
  display: grid;
  gap: clamp(24px, 4vw, 40px);
  padding: clamp(20px, 4vw, 34px) 0 clamp(24px, 4vw, 40px);
  border-bottom: 2px solid var(--stroke);
}

@media (min-width: 960px) {
  .page-disclaimer .terms-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    align-items: center;
  }
}

.page-disclaimer .terms-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.22em;
  color: var(--cyan);
}

.page-disclaimer .terms-kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--orange);
}

.page-disclaimer h1 {
  margin: 0 0 18px;
  font-size: clamp(34px, 7.4vw, var(--fs-64));
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.04;
  color: var(--text);
}

.page-disclaimer .terms-lede {
  margin: 0;
  max-width: 38ch;
  font-size: var(--fs-16);
  line-height: 1.85;
  color: var(--text);
}

.page-disclaimer .terms-lede strong {
  color: var(--cyan);
  font-weight: 700;
}

.page-disclaimer .terms-visual {
  margin: 0;
  border: 3px solid var(--stroke);
  background: var(--ink-2);
  box-shadow: var(--shadow-hard);
  max-width: 100%;
}

.page-disclaimer .terms-visual img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

.page-disclaimer .terms-visual .media-caption {
  display: block;
  padding: 10px 14px;
  border-top: 2px solid var(--stroke);
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.06em;
  color: var(--muted);
}

/* 版本条 */
.page-disclaimer .terms-version-bar {
  display: grid;
  gap: 12px;
  margin-top: clamp(20px, 3vw, 28px);
  padding: 14px 18px;
  border: 2px solid var(--stroke);
  border-left: 5px solid var(--cyan);
  border-right: 5px solid var(--orange);
  background: linear-gradient(90deg, rgba(47, 224, 208, 0.09), rgba(255, 122, 47, 0.06));
}

@media (min-width: 780px) {
  .page-disclaimer .terms-version-bar {
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 20px;
  }
}

.page-disclaimer .ver-tag {
  justify-self: start;
  padding: 4px 10px;
  background: var(--cyan);
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: var(--fs-14);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.page-disclaimer .ver-scope {
  font-size: var(--fs-14);
  color: var(--text);
  line-height: 1.6;
}

.page-disclaimer .ver-stage {
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--orange);
}

/* 目录 */
.page-disclaimer .terms-toc {
  margin-top: clamp(24px, 4vw, 36px);
  border: 2px solid var(--stroke);
  background: var(--ink-2);
}

.page-disclaimer .toc-head {
  margin: 0;
  padding: 11px 18px;
  border-bottom: 2px solid var(--stroke);
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.2em;
  color: var(--muted);
}

.page-disclaimer .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}

@media (min-width: 720px) {
  .page-disclaimer .toc-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .page-disclaimer .toc-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.page-disclaimer .toc-list li {
  border-bottom: 1px solid var(--t-hair);
}

.page-disclaimer .toc-list a {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 18px;
  color: var(--text);
  font-size: var(--fs-14);
  text-decoration: none;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}

.page-disclaimer .toc-list a:hover,
.page-disclaimer .toc-list a:focus-visible {
  background: rgba(47, 224, 208, 0.1);
  color: var(--cyan);
}

.page-disclaimer .toc-num {
  flex: none;
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--orange);
}

/* 条款条目 */
.page-disclaimer .terms-list {
  margin-top: clamp(36px, 6vw, 60px);
  border-top: 2px solid var(--stroke);
}

.page-disclaimer .terms-item {
  display: grid;
  gap: 12px;
  padding: clamp(24px, 4vw, 40px) 0;
  border-bottom: 2px solid var(--stroke);
  background-image: repeating-linear-gradient(
    90deg,
    var(--t-grid) 0 1px,
    transparent 1px 72px
  );
  scroll-margin-top: 96px;
}

@media (min-width: 960px) {
  .page-disclaimer .terms-item {
    grid-template-columns: var(--t-num-w) minmax(0, 1fr);
    gap: 32px;
    align-items: start;
  }
}

.page-disclaimer .terms-num {
  font-family: var(--font-mono);
  font-size: clamp(26px, 4.4vw, 40px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--cyan);
}

.page-disclaimer .terms-body h2 {
  margin: 0 0 14px;
  font-size: clamp(20px, 3vw, var(--fs-28));
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--text);
}

.page-disclaimer .terms-body p {
  margin: 0 0 14px;
  max-width: 40ch;
  font-size: var(--fs-16);
  line-height: 1.85;
  color: var(--text);
}

.page-disclaimer .terms-body p:last-child {
  margin-bottom: 0;
}

.page-disclaimer .terms-body a {
  color: var(--cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-disclaimer .terms-body a:hover,
.page-disclaimer .terms-body a:focus-visible {
  color: var(--orange);
}

/* 版本差异折叠 */
.page-disclaimer .terms-changes {
  margin-top: clamp(28px, 4vw, 40px);
  border: 2px solid var(--stroke);
  border-left: 5px solid var(--orange);
  background: var(--ink-2);
}

.page-disclaimer .terms-changes summary {
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-mono);
  font-size: var(--fs-14);
  letter-spacing: 0.06em;
  color: var(--orange);
}

.page-disclaimer .terms-changes summary::-webkit-details-marker {
  display: none;
}

.page-disclaimer .terms-changes summary::before {
  content: "▸ ";
  color: var(--cyan);
}

.page-disclaimer .terms-changes[open] summary::before {
  content: "▾ ";
}

.page-disclaimer .terms-changes summary:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: -4px;
}

.page-disclaimer .terms-changes ul {
  margin: 0;
  padding: 4px 22px 20px 38px;
  display: grid;
  gap: 10px;
}

.page-disclaimer .terms-changes li {
  font-size: var(--fs-14);
  line-height: 1.75;
  color: var(--muted);
}

/* 末尾咨询入口 */
.page-disclaimer .terms-cta {
  display: grid;
  gap: 20px;
  margin-top: clamp(32px, 5vw, 52px);
  padding: clamp(22px, 4vw, 34px);
  border: 2px solid var(--stroke);
  background: var(--ink-2);
  box-shadow: var(--shadow-hard);
}

@media (min-width: 860px) {
  .page-disclaimer .terms-cta {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 32px;
  }
}

.page-disclaimer .terms-cta-text {
  margin: 0;
  max-width: 46ch;
  font-size: var(--fs-16);
  line-height: 1.8;
  color: var(--text);
}

.page-disclaimer .terms-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

@media (max-width: 479px) {
  .page-disclaimer .terms-num {
    font-size: 22px;
  }

  .page-disclaimer .terms-cta-actions .btn {
    flex: 1 1 100%;
    text-align: center;
  }

  .page-disclaimer .terms-visual {
    box-shadow: 4px 4px 0 0 var(--stroke);
  }
}
<<<END>>>

等等，我应该再确认一下——我不该在末尾加 `<<<END>>>`；规范里说的是 main_html 和 page_css 两个标记，每个标记只能出现一次。让我去掉 `<<<END>>>`。不过其实它已经在那儿了……我得确保输出干净。

让我重新输出。光标位置：我应该只写两个标记。好。

其实看我的输出，末尾确实有 `<<<END>>>`。我得去掉它。

另外检查一下：`.media-caption` 在全局 css 里——我用的是 `.terms-visual .media-caption`，限定在页面作用域里了，没问题。

再确认一下 `--t-hair` 和 `--t-grid` 是定义在 `.page-disclaimer` 作用域里，没问题。

没问题，输出。
<main id="main-content" class="page-disclaimer">
  <div class="container">

    <nav class="crumbs" aria-label="面包屑">
      <a href="/">首页</a>
      <span aria-hidden="true">/</span>
      <span aria-current="page">使用条款</span>
    </nav>

    <header class="terms-hero">
      <div class="terms-hero-text">
        <p class="terms-kicker">站点使用约定</p>
        <h1>使用条款</h1>
        <p class="terms-lede">
          这份约定面向所有使用 <strong>百博体育</strong> 中文站赛程日历、伤停信息与赛事公告的访客与长期用户。
          它讲清楚站内内容可以怎样引用、账号与关注列表有哪些使用要求、客户端升级与停止支持如何安排，
          以及公告上标注的校对时间意味着什么。赛前赶时间查数据，按这份约定使用能省掉反复确认的功夫。
        </p>
      </div>
      <figure class="terms-visual">
        <img src="{zhanqunpic:h:500w:1200}" width="1200" height="500" alt="由并列线条与编号标记构成的抽象规则图形，深墨蓝底配电光青高亮">
        <figcaption class="media-caption">站内各端共用的使用约定 · 当前版本 V4.2</figcaption>
      </figure>
    </header>

    <div class="terms-version-bar">
      <span class="ver-tag">版本 V4.2</span>
      <span class="ver-scope">适用于网页端、安卓端与平板端的全部功能</span>
      <span class="ver-stage">本赛季常规赛阶段生效</span>
    </div>

    <nav class="terms-toc" aria-label="条款目录">
      <p class="toc-head">条款目录</p>
      <ol class="toc-list">
        <li><a href="#scope"><span class="toc-num">01</span>使用范围</a></li>
        <li><a href="#license"><span class="toc-num">02</span>内容与数据使用许可</a></li>
        <li><a href="#account"><span class="toc-num">03</span>账号与关注列表规范</a></li>
        <li><a href="#client"><span class="toc-num">04</span>客户端使用与版本更新</a></li>
        <li><a href="#timeliness"><span class="toc-num">05</span>信息时效与校对说明</a></li>
        <li><a href="#revision"><span class="toc-num">06</span>条款修订与咨询入口</a></li>
      </ol>
    </nav>

    <div class="terms-list">

      <article class="terms-item" id="scope">
        <span class="terms-num">01</span>
        <div class="terms-body">
          <h2>使用范围</h2>
          <p>
            这份约定覆盖本站网页端、安卓端与平板端的全部功能，包括赛程日历查询、伤停与停赛名单查看、
            射手榜浏览、赛事公告阅读，以及球队与联赛的订阅提醒。你在三种设备上的账号与关注列表共用同一套设置，
            规则也一并适用，换设备登录后不需要重新接受一遍。
          </p>
          <p>
            即便只是以访客身份翻看当天赛程、没有注册账号，关于内容引用方式与信息更新时间的约定同样成立。
            平板端并排阅读公告与赛程条目时，双栏中的两份内容各自适用于本约定。
          </p>
        </div>
      </article>

      <article class="terms-item" id="license">
        <span class="terms-num">02</span>
        <div class="terms-body">
          <h2>内容与数据使用许可</h2>
          <p>
            站内的赛程条目、伤停与停赛名单、射手榜数值、赛事公告和赛季专题，可供个人查询、学习与日常交流使用。
            你可以截图、摘录或转发单条赛程与公告，前提是保留标注的校对时间与来源说明，
            并且不改动原始名单状态与数值。
          </p>
          <p>
            如果把站内内容用于商业展示、批量抓取、二次打包，或把数据接入自有的产品与服务中，
            需要事先取得书面许可。赛季回顾专题中使用的图表样式与整理结构，按同样的方式处理。
          </p>
          <p>
            有引用方面的具体问题，可在咨询通道说明用途与使用范围，我们会按事项类型给出答复。
          </p>
        </div>
      </article>

      <article class="terms-item" id="account">
        <span class="terms-num">03</span>
        <div class="terms-body">
          <h2>账号与关注列表规范</h2>
          <p>
            注册之后，你最多可以同时订阅 8 支球队与 5 个联赛，并按联赛分组管理。
            请自行保管账号信息，不要多人共用同一账号，也不要借用他人账号查看订阅内容。
            发现登录异常时，可通过咨询通道联系客服处理。
          </p>
          <p>
            关注列表的设置应与你的实际关注范围相符。同一账号不得用于批量注册、脚本自动订阅，
            或以推广为目的的批量添加行为。这类操作会让提醒在高峰时段延迟送达，
            影响同组其他用户的接收体验。
          </p>
        </div>
      </article>

      <article class="terms-item" id="client">
        <span class="terms-num">04</span>
        <div class="terms-body">
          <h2>客户端使用与版本更新</h2>
          <p>
            安卓客户端支持 Android 8.0 及以上系统，安装包体积约 28MB。
            安装后用同一账号登录，关注列表、分组方式与提醒节点会自动同步过来。
            客户端每 4 周发布一次功能更新，每个赛季开始前发布一次赛季大版本。
          </p>
          <p>
            当某个旧版本不再维护时，会在应用内给出提示并引导升级。
            继续停留在已停止支持的版本上，赛程时间轴可能显示不完整，提醒也可能无法送达，
            建议保持自动更新处于开启状态。各版本的安装包与系统要求，可在
            <a href="/download/">下载中心</a>查看。
          </p>
        </div>
      </article>

      <article class="terms-item" id="timeliness">
        <span class="terms-num">05</span>
        <div class="terms-body">
          <h2>信息时效与校对说明</h2>
          <p>
            每轮赛事公告发布时会标注校对时间，公告内容同步进赛程条目通常在 30 分钟内完成。
            这条时间表示该条信息最后一次整理的时刻，你可以据此判断两条内容的先后顺序。
          </p>
          <p>
            伤停、停赛与射手榜条目随轮次推进不断调整。按下赛前 60 分钟或名单更新提醒之后，
            建议再回到对应条目看一眼最新内容。赛事数据由 9 家体育数据供应方提供，
            来源会在公告中统一标注；同一项数值可能因上游更新而发生变化，以最新标注的时间为准。
          </p>
        </div>
      </article>

      <article class="terms-item" id="revision">
        <span class="terms-num">06</span>
        <div class="terms-body">
          <h2>条款修订与咨询入口</h2>
          <p>
            条款会随功能扩展、赛季安排与相关要求进行修订。修订后的版本会更新版本号并在站内发布，
            自发布之日起适用于后续使用。你可以留意页面顶部版本条上的编号变化。
          </p>
          <p>
            对条款内容、内容引用许可或账号处理有疑问，可通过咨询通道与我们联系，
            并在邮件标题中注明事项类型。涉及数据使用的咨询，建议一并写明用途与范围，方便我们更快回复。
          </p>
        </div>
      </article>

    </div>

    <details class="terms-changes">
      <summary>本版相比上一版的主要变化</summary>
      <ul>
        <li>补充已停止支持版本的处理方式，明确应用内提示与升级引导的流程。</li>
        <li>细化关注列表上限的说明，写清分组管理与提醒送达之间的关系。</li>
        <li>在信息时效部分增加来源更新的说明，解释同一项数值出现变化的常见原因。</li>
      </ul>
    </details>

    <aside class="terms-cta">
      <p class="terms-cta-text">
        需要确认某条内容能否转载、或想了解账号订阅的处理方式，把用途写清楚发给我们即可。
        个人信息相关的处理方式，可在数据保护说明中查看。
      </p>
      <div class="terms-cta-actions">
        <a class="btn btn-primary" href="/inquiry/">前往咨询通道</a>
        <a class="btn btn-ghost" href="/data-protection/">数据保护说明</a>
      </div>
    </aside>

  </div>
</main>

.page-disclaimer {
  --t-hair: rgba(138, 135, 166, 0.18);
  --t-grid: rgba(138, 135, 166, 0.09);
  --t-num-w: 84px;
  padding-bottom: clamp(56px, 9vw, 104px);
}

/* 面包屑 */
.page-disclaimer .crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 18px;
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--muted);
}

.page-disclaimer .crumbs a {
  color: var(--muted);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}

.page-disclaimer .crumbs a:hover,
.page-disclaimer .crumbs a:focus-visible {
  color: var(--cyan);
}

.page-disclaimer .crumbs [aria-current="page"] {
  color: var(--text);
}

/* 首屏 */
.page-disclaimer .terms-hero {
  display: grid;
  gap: clamp(24px, 4vw, 40px);
  padding: clamp(20px, 4vw, 34px) 0 clamp(24px, 4vw, 40px);
  border-bottom: 2px solid var(--stroke);
}

@media (min-width: 960px) {
  .page-disclaimer .terms-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    align-items: center;
  }
}

.page-disclaimer .terms-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.22em;
  color: var(--cyan);
}

.page-disclaimer .terms-kicker::before {
  content: "";
  width: 28px;
  height: 2px;
  background: var(--orange);
}

.page-disclaimer h1 {
  margin: 0 0 18px;
  font-size: clamp(34px, 7.4vw, var(--fs-64));
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.04;
  color: var(--text);
}

.page-disclaimer .terms-lede {
  margin: 0;
  max-width: 38ch;
  font-size: var(--fs-16);
  line-height: 1.85;
  color: var(--text);
}

.page-disclaimer .terms-lede strong {
  color: var(--cyan);
  font-weight: 700;
}

.page-disclaimer .terms-visual {
  margin: 0;
  max-width: 100%;
  border: 3px solid var(--stroke);
  background: var(--ink-2);
  box-shadow: var(--shadow-hard);
}

.page-disclaimer .terms-visual img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: cover;
}

.page-disclaimer .terms-visual .media-caption {
  display: block;
  padding: 10px 14px;
  border-top: 2px solid var(--stroke);
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.06em;
  color: var(--muted);
}

/* 版本条 */
.page-disclaimer .terms-version-bar {
  display: grid;
  gap: 12px;
  margin-top: clamp(20px, 3vw, 28px);
  padding: 14px 18px;
  border: 2px solid var(--stroke);
  border-left: 5px solid var(--cyan);
  border-right: 5px solid var(--orange);
  background: linear-gradient(90deg, rgba(47, 224, 208, 0.09), rgba(255, 122, 47, 0.06));
}

@media (min-width: 780px) {
  .page-disclaimer .terms-version-bar {
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 20px;
  }
}

.page-disclaimer .ver-tag {
  justify-self: start;
  padding: 4px 10px;
  background: var(--cyan);
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: var(--fs-14);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.page-disclaimer .ver-scope {
  font-size: var(--fs-14);
  line-height: 1.6;
  color: var(--text);
}

.page-disclaimer .ver-stage {
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--orange);
}

/* 目录 */
.page-disclaimer .terms-toc {
  margin-top: clamp(24px, 4vw, 36px);
  border: 2px solid var(--stroke);
  background: var(--ink-2);
}

.page-disclaimer .toc-head {
  margin: 0;
  padding: 11px 18px;
  border-bottom: 2px solid var(--stroke);
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.2em;
  color: var(--muted);
}

.page-disclaimer .toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}

@media (min-width: 720px) {
  .page-disclaimer .toc-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .page-disclaimer .toc-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.page-disclaimer .toc-list li {
  border-bottom: 1px solid var(--t-hair);
}

.page-disclaimer .toc-list a {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 18px;
  color: var(--text);
  font-size: var(--fs-14);
  text-decoration: none;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}

.page-disclaimer .toc-list a:hover,
.page-disclaimer .toc-list a:focus-visible {
  background: rgba(47, 224, 208, 0.1);
  color: var(--cyan);
}

.page-disclaimer .toc-num {
  flex: none;
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  letter-spacing: 0.08em;
  color: var(--orange);
}

/* 条款条目 */
.page-disclaimer .terms-list {
  margin-top: clamp(36px, 6vw, 60px);
  border-top: 2px solid var(--stroke);
}

.page-disclaimer .terms-item {
  display: grid;
  gap: 12px;
  padding: clamp(24px, 4vw, 40px) 0;
  border-bottom: 2px solid var(--stroke);
  background-image: repeating-linear-gradient(
    90deg,
    var(--t-grid) 0 1px,
    transparent 1px 72px
  );
  scroll-margin-top: 96px;
}

@media (min-width: 960px) {
  .page-disclaimer .terms-item {
    grid-template-columns: var(--t-num-w) minmax(0, 1fr);
    gap: 32px;
    align-items: start;
  }
}

.page-disclaimer .terms-num {
  font-family: var(--font-mono);
  font-size: clamp(26px, 4.4vw, 40px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--cyan);
}

.page-disclaimer .terms-body h2 {
  margin: 0 0 14px;
  font-size: clamp(20px, 3vw, var(--fs-28));
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.25;
  color: var(--text);
}

.page-disclaimer .terms-body p {
  margin: 0 0 14px;
  max-width: 40ch;
  font-size: var(--fs-16);
  line-height: 1.85;
  color: var(--text);
}

.page-disclaimer .terms-body p:last-child {
  margin-bottom: 0;
}

.page-disclaimer .terms-body a {
  color: var(--cyan);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.page-disclaimer .terms-body a:hover,
.page-disclaimer .terms-body a:focus-visible {
  color: var(--orange);
}

/* 版本差异折叠 */
.page-disclaimer .terms-changes {
  margin-top: clamp(28px, 4vw, 40px);
  border: 2px solid var(--stroke);
  border-left: 5px solid var(--orange);
  background: var(--ink-2);
}

.page-disclaimer .terms-changes summary {
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-mono);
  font-size: var(--fs-14);
  letter-spacing: 0.06em;
  color: var(--orange);
}

.page-disclaimer .terms-changes summary::-webkit-details-marker {
  display: none;
}

.page-disclaimer .terms-changes summary::before {
  content: "▸ ";
  color: var(--cyan);
}

.page-disclaimer .terms-changes[open] summary::before {
  content: "▾ ";
}

.page-disclaimer .terms-changes summary:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: -4px;
}

.page-disclaimer .terms-changes ul {
  margin: 0;
  padding: 4px 22px 20px 38px;
  display: grid;
  gap: 10px;
}

.page-disclaimer .terms-changes li {
  font-size: var(--fs-14);
  line-height: 1.75;
  color: var(--muted);
}

/* 末尾咨询入口 */
.page-disclaimer .terms-cta {
  display: grid;
  gap: 20px;
  margin-top: clamp(32px, 5vw, 52px);
  padding: clamp(22px, 4vw, 34px);
  border: 2px solid var(--stroke);
  background: var(--ink-2);
  box-shadow: var(--shadow-hard);
}

@media (min-width: 860px) {
  .page-disclaimer .terms-cta {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 32px;
  }
}

.page-disclaimer .terms-cta-text {
  margin: 0;
  max-width: 46ch;
  font-size: var(--fs-16);
  line-height: 1.8;
  color: var(--text);
}

.page-disclaimer .terms-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

@media (max-width: 479px) {
  .page-disclaimer .terms-num {
    font-size: 22px;
  }

  .page-disclaimer .terms-cta-actions .btn {
    flex: 1 1 100%;
    text-align: center;
  }

  .page-disclaimer .terms-visual {
    box-shadow: 4px 4px 0 0 var(--stroke);
  }
}
