.page-news {
  --news-block-gap: clamp(48px, 7vw, 92px);
  --news-item-pad: clamp(16px, 2.2vw, 24px);
  background: var(--pitch);
  color: var(--neon);
  font-family: var(--font-sans);
  overflow-x: clip;
  padding-bottom: clamp(48px, 8vw, 100px);
}

.page-news .breadcrumbs {
  padding-block: 18px 4px;
}

/* ---------- 报头区 ---------- */
.page-news .news-mast {
  padding-block: clamp(24px, 4.5vw, 52px) clamp(24px, 3.4vw, 40px);
  position: relative;
}

.page-news .news-mast::after {
  content: "";
  position: absolute;
  right: var(--gutter);
  top: clamp(20px, 4vw, 44px);
  width: clamp(56px, 10vw, 132px);
  height: 6px;
  background: linear-gradient(90deg, var(--yellow) 0 58%, var(--red) 58% 100%);
  transform: skewX(-22deg);
}

.page-news .news-mast__title {
  margin: 10px 0 18px;
  font-size: clamp(34px, 7.4vw, 78px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  font-weight: 800;
  color: var(--neon);
  max-width: 16ch;
}

.page-news .news-mast__lede {
  margin: 0;
  max-width: 38ch;
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 1.75;
  color: var(--mist);
}

.page-news .news-mast__strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin: clamp(26px, 3.6vw, 40px) 0 0;
  padding: 0;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
}

.page-news .news-mast__cell {
  background: var(--stand);
  padding: 16px 18px;
}

.page-news .news-mast__cell dt {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .16em;
  color: var(--mist);
  margin-bottom: 6px;
}

.page-news .news-mast__cell dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--neon);
}

.page-news .news-mast__cell .display-num {
  font-size: 26px;
  color: var(--yellow);
  margin-right: 2px;
}

/* ---------- 筛选条 ---------- */
.page-news .news-filter {
  border-block: 1px solid var(--line);
  background: var(--night);
}

.page-news .news-filter__inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-block: 12px;
  min-width: 0;
}

.page-news .news-filter__label {
  flex: 0 0 auto;
  margin: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .16em;
  color: var(--mist);
  writing-mode: horizontal-tb;
}

.page-news .news-filter__rail {
  min-width: 0;
  flex: 1 1 auto;
}

.page-news .news-filter__rail .chip {
  text-decoration: none;
  white-space: nowrap;
}

/* ---------- 头条专题 ---------- */
.page-news .news-lead {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(22px, 3.4vw, 44px);
  padding-block: var(--news-block-gap) clamp(30px, 4vw, 48px);
  scroll-margin-top: 80px;
}

.page-news .news-lead__figure {
  position: relative;
  margin: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--stand);
  box-shadow: 0 var(--lift) 0 -4px rgba(245, 194, 66, .22);
}

.page-news .news-lead__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 14 / 9;
  object-fit: cover;
  filter: saturate(.72) brightness(.86);
}

.page-news .news-lead__figure .media-frame__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  margin: 0;
  padding: 8px 16px;
  background: var(--night);
  color: var(--yellow);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  border-top-right-radius: var(--r-sm);
}

.page-news .news-stamp {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--mist);
}

.page-news .news-lead__title {
  margin: 10px 0 16px;
  font-size: clamp(25px, 3.8vw, 42px);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -.01em;
  color: var(--neon);
}

.page-news .news-lead__text {
  margin: 0 0 14px;
  max-width: 36ch;
  font-size: 15px;
  line-height: 1.8;
  color: var(--mist);
}

.page-news .news-lead__keys {
  list-style: none;
  margin: 22px 0 26px;
  padding: 0;
  display: grid;
  gap: 10px;
}

.page-news .news-lead__keys li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--neon);
}

.page-news .news-lead__keys li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 7px;
  height: 7px;
  background: var(--yellow);
  transform: skewX(-20deg);
}

.page-news .news-lead__keys .news-stamp {
  margin-right: 8px;
  color: var(--green);
}

/* ---------- 通用区块头 ---------- */
.page-news .news-block,
.page-news .news-tags,
.page-news .news-notes,
.page-news .news-archive {
  scroll-margin-top: 92px;
}

.page-news .news-block {
  padding-block: clamp(30px, 4vw, 48px);
}

.page-news .news-block__head {
  max-width: 60ch;
  margin-bottom: clamp(24px, 3.4vw, 40px);
}

.page-news .news-block__head .section__title,
.page-news .news-tags__head .section__title,
.page-news .news-notes__head .section__title,
.page-news .news-archive__head .section__title,
.page-news .news-follow__text .section__title {
  margin: 8px 0 12px;
  font-size: clamp(23px, 3.4vw, 36px);
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: -.01em;
}

.page-news .news-block__head .section__lede,
.page-news .news-tags__head .section__lede,
.page-news .news-notes__head .section__lede,
.page-news .news-archive__head .section__lede {
  margin: 0;
  max-width: 40ch;
  font-size: 14px;
  line-height: 1.8;
  color: var(--mist);
}

/* ---------- 复盘：首条图文 ---------- */
.page-news .news-feature {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: var(--stand);
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--line);
  margin-bottom: clamp(20px, 2.6vw, 32px);
}

.page-news .news-feature__thumb {
  order: -1;
}

.page-news .news-feature__thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(.7) brightness(.85);
}

.page-news .news-feature__body {
  padding: clamp(18px, 2.4vw, 28px);
}

.page-news .news-feature__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.page-news .news-feature__title {
  margin: 10px 0 10px;
  font-size: clamp(19px, 2.4vw, 26px);
  line-height: 1.32;
  font-weight: 700;
  color: var(--neon);
}

.page-news .news-feature__body p {
  margin: 0;
  max-width: 38ch;
  font-size: 14px;
  line-height: 1.8;
  color: var(--mist);
}

/* ---------- 索引式列表 ---------- */
.page-news .news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.page-news .news-list__item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "index time"
    "main  main";
  gap: 6px 14px;
  align-items: baseline;
  padding: var(--news-item-pad) 0 var(--news-item-pad) 14px;
  border-bottom: 1px solid var(--line);
  transition: background var(--speed) var(--ease);
}

.page-news .news-list__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(var(--news-item-pad) + 6px);
  width: 7px;
  height: 7px;
  background: var(--yellow);
  transform: skewX(-22deg) scaleX(0);
  transform-origin: left center;
  transition: transform var(--speed) var(--ease);
}

.page-news .news-list__item:hover::before,
.page-news .news-list__item:focus-within::before {
  transform: skewX(-22deg) scaleX(1);
}

.page-news .news-list__item:hover {
  background: rgba(18, 70, 61, .55);
}

.page-news .news-list__index {
  grid-area: index;
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1;
  letter-spacing: .02em;
  color: var(--stand);
  -webkit-text-stroke: 1px var(--mist);
}

.page-news .news-list__time {
  grid-area: time;
  justify-self: end;
}

.page-news .news-list__main {
  grid-area: main;
}

.page-news .news-list__title {
  display: inline-block;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.45;
  font-weight: 700;
  color: var(--neon);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color var(--speed) var(--ease), color var(--speed) var(--ease);
}

.page-news .news-list__title:hover,
.page-news .news-list__title:focus-visible {
  border-bottom-color: var(--red);
  color: var(--yellow);
}

.page-news .news-list__desc {
  margin: 6px 0 0;
  max-width: 44ch;
  font-size: 13px;
  line-height: 1.75;
  color: var(--mist);
}

/* ---------- 标签更新 ---------- */
.page-news .news-tags {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(22px, 3vw, 40px);
  padding-block: clamp(34px, 4.6vw, 56px);
  background: var(--stand);
  border-radius: var(--r-lg);
  padding-inline: var(--gutter);
  margin-block: clamp(20px, 3vw, 36px);
}

.page-news .news-tags__head {
  max-width: 56ch;
}

.page-news .news-tags__log {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
}

.page-news .news-tags__log li {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.page-news .news-tags__log p {
  margin: 8px 0 0;
  max-width: 44ch;
  font-size: 14px;
  line-height: 1.78;
  color: var(--neon);
}

.page-news .news-tags__figure {
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--lift) var(--lift) 0 -6px rgba(56, 211, 159, .18);
}

.page-news .news-tags__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(.7) brightness(.85);
}

/* ---------- 设备手记 ---------- */
.page-news .news-notes {
  padding-block: var(--news-block-gap) clamp(28px, 3.6vw, 44px);
}

.page-news .news-notes__head {
  max-width: 58ch;
  margin-bottom: clamp(22px, 3vw, 36px);
}

.page-news .news-notes__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 2vw, 22px);
}

.page-news .news-note {
  background: var(--night);
  border-radius: var(--r-md);
  padding: clamp(18px, 2.4vw, 26px);
  border-left: 4px solid var(--green);
}

.page-news .news-note--shift {
  border-left-color: var(--yellow);
  background: var(--stand);
}

.page-news .news-note h3 {
  margin: 10px 0 10px;
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.4;
  font-weight: 700;
  color: var(--neon);
}

.page-news .news-note p {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mist);
}

/* ---------- 归档 ---------- */
.page-news .news-archive {
  padding-block: clamp(28px, 3.6vw, 44px) var(--news-block-gap);
}

.page-news .news-archive__banner {
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: clamp(24px, 3.4vw, 40px);
}

.page-news .news-archive__banner img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 6;
  object-fit: cover;
  filter: saturate(.62) brightness(.78);
}

.page-news .news-archive__head {
  max-width: 60ch;
  margin-bottom: clamp(22px, 3vw, 36px);
}

.page-news .news-archive__track {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.page-news .news-archive__track::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--line-strong);
}

.page-news .news-archive__stage {
  position: relative;
  padding: 0 0 26px 28px;
}

.page-news .news-archive__stage:last-child {
  padding-bottom: 0;
}

.page-news .news-archive__dot {
  position: absolute;
  left: 0;
  top: 5px;
  width: 11px;
  height: 11px;
  background: var(--yellow);
  transform: skewX(-20deg);
}

.page-news .news-archive__stage h3 {
  margin: 8px 0 8px;
  font-size: clamp(17px, 2.1vw, 22px);
  line-height: 1.4;
  font-weight: 700;
  color: var(--neon);
}

.page-news .news-archive__stage p {
  margin: 0;
  max-width: 46ch;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mist);
}

.page-news .news-archive__more {
  margin: 26px 0 0;
  max-width: 48ch;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mist);
}

.page-news .news-archive__more a {
  color: var(--yellow);
  text-decoration: none;
  border-bottom: 1px solid rgba(245, 194, 66, .5);
}

.page-news .news-archive__more a:hover,
.page-news .news-archive__more a:focus-visible {
  color: var(--neon);
  border-bottom-color: var(--neon);
}

/* ---------- 持续跟进 ---------- */
.page-news .news-follow {
  background: var(--night);
  border-top: 1px solid var(--line);
  padding-block: clamp(34px, 4.6vw, 58px);
}

.page-news .news-follow__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 3vw, 40px);
  align-items: start;
}

.page-news .news-follow__text p {
  margin: 0;
  max-width: 44ch;
  font-size: 14px;
  line-height: 1.85;
  color: var(--mist);
}

.page-news .news-follow__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.page-news .news-follow__acts .btn {
  text-decoration: none;
}

/* ---------- 平板 ---------- */
@media (min-width: 700px) {
  .page-news .news-mast__strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .page-news .news-feature {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: stretch;
  }

  .page-news .news-feature__thumb {
    order: 0;
  }

  .page-news .news-feature__thumb img {
    height: 100%;
    aspect-ratio: auto;
    min-height: 220px;
  }

  .page-news .news-list__item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "index main time";
    gap: 0 22px;
    align-items: start;
  }

  .page-news .news-list__time {
    align-self: start;
    padding-top: 4px;
  }

  .page-news .news-notes__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-news .news-note--shift {
    transform: translateY(14px);
  }

  .page-news .news-follow__inner {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: center;
  }

  .page-news .news-follow__acts {
    justify-content: flex-end;
  }
}

/* ---------- 桌面 ---------- */
@media (min-width: 1000px) {
  .page-news .news-mast__title {
    max-width: 14ch;
  }

  .page-news .news-lead {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
  }

  .page-news .news-lead__figure {
    position: sticky;
    top: 96px;
  }

  .page-news .news-feature {
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  }

  .page-news .news-tags {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
    padding-inline: clamp(28px, 4vw, 56px);
  }

  .page-news .news-tags__figure {
    position: sticky;
    top: 96px;
  }

  .page-news .news-notes__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 34px;
  }

  .page-news .news-archive__track {
    padding-left: 8px;
  }

  .page-news .news-archive__stage {
    padding-left: 36px;
    padding-bottom: 32px;
  }
}

/* ---------- 大屏 ---------- */
@media (min-width: 1240px) {
  .page-news .news-filter__inner {
    gap: 22px;
  }

  .page-news .news-note--shift {
    transform: translateY(20px);
  }
}

/* ---------- 减少动效 ---------- */
@media (prefers-reduced-motion: reduce) {
  .page-news .news-list__item,
  .page-news .news-list__item::before,
  .page-news .news-list__title {
    transition: none;
  }

  .page-news .news-note--shift {
    transform: none;
  }
}
<<<END>>>

等等，多了一条 `<<<END>>>`。其实按格式要求，每个标记只能出现一次，而且只有 `` 和 `` 这两个标记。`<<<END>>>` 是我多加的，不该出现。得去掉。

另外，`@media (prefers-reduced-motion: reduce)` 里只对页面专属元素生效，这没问题。

还有一个部分我需要检查一下：`.page-news .news-list__index` 用了 `-webkit-text-stroke`，在某些浏览器上效果可能不太理想，但不会导致渲染失败，可以保留。

再检查一下 `data-reveal`。这个属性在 `site_kit` 的交互协议里是有的，所以可以用。不过要确保没有 JS 的时候内容仍然可见。因为 CSS 里没有写 `.page-news [data-reveal] { opacity: 0 }`，所以没有 JS 的时候内容也是正常显示的。没问题。

`scroll-margin-top` 设置得也合理，跳转的时候不会被吸顶的筛选栏挡住。

再检查一下图片占位符的格式：`{zhanqunpic:h:900w:1400}`——这是“先 h 后 w”的正确格式。没错。

最后确认一下可见文案里没有出现被禁止的措辞。通篇没有“本页只做”“口径”这类词——等等，我在归档那段写了“……用到的统计口径”。这个说法有点擦边，虽然它没有触犯禁令里的具体原句，但“口径”这个词本身就在禁止清单里。我得改掉。

改成：“也可以从功能中心看这些结论背后的统计方式。”

……可是“统计方式”也带有一种自我注解的味道，同样不太合适。

换一种写法：“每个阶段的完整篇目在赛事观察栏目下按轮次排列；这些观察里用到的射门、控球与角球数据，在功能中心有对应的说明。”

这样更自然一些，也避开了所有被禁用的表述。

我来把这一段替换掉。

还要再检查一下“持续跟进”那个区块里的文案，看看有没有类似的问题。那里写的是：“遇到比分不刷新、标签没更新这类情况，帮助中心里有排查步骤；想谈内容合作或数据引用，联系对接页能找到人。”

这段没问题。

再回头全文扫一遍“口径”“边界”“核对”这些词——没有出现，好。

现在把归档那段改写一下，然后重新输出。
<main id="main-content" class="page-news">

  <nav class="breadcrumbs shell" aria-label="面包屑">
    <a class="breadcrumbs__link" href="/">首页</a>
    <span class="breadcrumbs__sep">/</span>
    <span aria-current="page">赛事观察</span>
  </nav>

  <header class="news-mast shell">
    <p class="eyebrow">赛事观察</p>
    <h1 class="news-mast__title">跟着轮次读判罚，也读比分</h1>
    <p class="news-mast__lede">
      每一轮结束之后，YB体育会把哨声里的判罚尺度和禁区里的射门走势写成可以读完的观察。你不必等到赛季末再回头看，从第 1 轮到当下这一轮，线索是一条一条接起来的。
    </p>
    <dl class="news-mast__strip">
      <div class="news-mast__cell">
        <dt>覆盖赛事</dt>
        <dd><span class="display-num">12</span> 个联赛 · <span class="display-num">6</span> 项杯赛</dd>
      </div>
      <div class="news-mast__cell">
        <dt>持续更新</dt>
        <dd>每轮赛后 <span class="display-num">2</span> 小时内</dd>
      </div>
      <div class="news-mast__cell">
        <dt>连载专题</dt>
        <dd>《赛季判罚观察》按阶段推进</dd>
      </div>
    </dl>
  </header>

  <div class="news-filter">
    <div class="shell news-filter__inner">
      <p class="news-filter__label">按栏目翻</p>
      <ul class="chip-rail news-filter__rail">
        <li><a class="chip is-active" href="#round-watch">本轮判罚</a></li>
        <li><a class="chip" href="#review">比分复盘</a></li>
        <li><a class="chip" href="#tag-log">标签更新</a></li>
        <li><a class="chip" href="#device-notes">设备手记</a></li>
        <li><a class="chip" href="#archive">往期归档</a></li>
      </ul>
    </div>
  </div>

  <section id="round-watch" class="news-lead shell" data-reveal>
    <div class="news-lead__figure">
      <img src="{zhanqunpic:h:900w:1400}" width="1400" height="900" alt="裁判在球场中央举起判罚牌，边线向远处延伸的全景">
      <p class="media-frame__caption">第 18 轮 · 判罚专题</p>
    </div>
    <div class="news-lead__body">
      <p class="news-stamp">第 18 轮 · 赛后 6 小时更新</p>
      <h2 class="news-lead__title">黄牌总数回落，但三场对抗型对决值得单独翻出来看</h2>
      <p class="news-lead__text">
        本轮的黄牌比上一轮少了一成出头，红牌只出现一张。回落最明显的不是强强对话，而是两支主场球队把节奏压得很低的那两场——犯规次数少了，判罚自然跟着降。真正扛住强度的是另外三场：单场判罚次数仍在赛季同轮次的前段位置，中前场拼抢断球之后的连续犯规是主要来源。
      </p>
      <p class="news-lead__text">
        这三场的教练席整场站了十七次，换人节点也集中在六十分钟之后，说明两边都在用身体对抗换时间。如果你只想挑一场回看，建议从第七十分钟开始——那十分钟里出现了本轮四分之一的口头警告。
      </p>
      <ul class="news-lead__keys">
        <li><span class="news-stamp">看点一</span>三场高强度对决集中在同一比赛日</li>
        <li><span class="news-stamp">看点二</span>中前场抢断后的连续犯规构成主要判罚来源</li>
        <li><span class="news-stamp">看点三</span>换人节点靠后，判罚密度在末段抬升</li>
      </ul>
      <a class="btn btn--yellow" href="#review">看本轮的比分复盘</a>
    </div>
  </section>

  <section id="review" class="news-block shell" data-reveal>
    <div class="news-block__head">
      <p class="eyebrow">比分复盘</p>
      <h2 class="section__title">射门打在哪里，比比分本身更耐读</h2>
      <p class="section__lede">
        每篇复盘盯的是一条走势：射门集中在哪个区域、控球率什么时候翻转、角球有没有换来真正的威胁。比分只是结果，走势才是能带走的东西。
      </p>
    </div>

    <div class="news-feature">
      <div class="news-feature__thumb">
        <img src="{zhanqunpic:h:667w:1000}" width="1000" height="667" alt="记分牌数字与计时显示的局部特写，暗调背景" loading="lazy" decoding="async">
      </div>
      <div class="news-feature__body">
        <div class="news-feature__meta">
          <span class="tag tag--red">比分复盘</span>
          <span class="news-stamp">第 18 轮</span>
        </div>
        <h3 class="news-feature__title">射门十九次只换来一个进球，差的不是运气</h3>
        <p>
          十九脚射门里有十一脚来自禁区外，射正只有四次。对手把两条防线压在禁区弧顶附近，逼着出球点往外走。这类比赛的复盘价值在于：它告诉你看射门数之前，先看射门站在哪。
        </p>
      </div>
    </div>

    <ol class="news-list">
      <li class="news-list__item">
        <span class="news-list__index">01</span>
        <div class="news-list__main">
          <a class="news-list__title" href="#archive">上半场控球落到四成，下半场是怎么追回来的</a>
          <p class="news-list__desc">第 17 轮 · 两条边路换位之后，传中落点从后点挪到了点球点附近。</p>
        </div>
        <span class="news-stamp news-list__time">第 17 轮</span>
      </li>
      <li class="news-list__item">
        <span class="news-list__index">02</span>
        <div class="news-list__main">
          <a class="news-list__title" href="#archive">角球数翻倍的三场，一个都没顶进去</a>
          <p class="news-list__desc">第 17 轮 · 角球数量上去了，但第一落点争到的次数反而在下降。</p>
        </div>
        <span class="news-stamp news-list__time">第 17 轮</span>
      </li>
      <li class="news-list__item">
        <span class="news-list__index">03</span>
        <div class="news-list__main">
          <a class="news-list__title" href="#archive">最后十分钟的射门，多数来自同一个位置</a>
          <p class="news-list__desc">第 16 轮 · 体能下降之后，防守方让出的是同一个肋部空档。</p>
        </div>
        <span class="news-stamp news-list__time">第 16 轮</span>
      </li>
      <li class="news-list__item">
        <span class="news-list__index">04</span>
        <div class="news-list__main">
          <a class="news-list__title" href="#archive">控球七成却零射正的九十分钟</a>
          <p class="news-list__desc">第 16 轮 · 横向传递占了八成，向前的传递大多停在三十米区域之前。</p>
        </div>
        <span class="news-stamp news-list__time">第 16 轮</span>
      </li>
    </ol>
  </section>

  <section id="tag-log" class="news-tags shell" data-reveal>
    <div class="news-tags__body">
      <div class="news-tags__head">
        <p class="eyebrow">标签更新</p>
        <h2 class="section__title">分类标签这一轮动了哪些地方</h2>
        <p class="section__lede">
          一级标签管大类，二级标签管细分。每轮比赛结束后我们都会过一遍，该加的加、该合的合，让下一轮翻起来更顺手。
        </p>
      </div>
      <ul class="news-tags__log">
        <li>
          <span class="news-stamp">第 18 轮</span>
          <p>二级标签新增 4 条，都集中在定位球的来源方向，之前混在“其他”里的几种情况现在能分开了。</p>
        </li>
        <li>
          <span class="news-stamp">第 17 轮</span>
          <p>两条含义重复的边路推进标签完成合并，同一场比赛不会再同时挂上两个相似标记。</p>
        </li>
        <li>
          <span class="news-stamp">第 16 轮</span>
          <p>教练席关联信息的展示顺序调了一下，先出换人、再出判罚关联，读起来更贴时间轴。</p>
        </li>
        <li>
          <span class="news-stamp">全量维护</span>
          <p>96 条二级标签逐条过了一遍，清掉表达模糊的，补上这赛季才出现的场景。</p>
        </li>
      </ul>
    </div>
    <div class="news-tags__figure">
      <img src="{zhanqunpic:h:600w:900}" width="900" height="600" alt="成排标签贴纸与索引卡的特写，青绿底配黄红标记" loading="lazy" decoding="async">
    </div>
  </section>

  <section id="device-notes" class="news-notes shell" data-reveal>
    <div class="news-notes__head">
      <p class="eyebrow">设备手记</p>
      <h2 class="section__title">换个屏幕看，体验差在哪里</h2>
      <p class="section__lede">
        这些记录来自我们自己拿着设备翻页的过程。窄屏挤压了多少信息、横屏多出了几栏，都写在这里。
      </p>
    </div>
    <div class="news-notes__grid">
      <article class="news-note">
        <span class="news-stamp">iPad 横屏</span>
        <h3>判罚时间轴和比分栏并排时，宽度该怎么分</h3>
        <p>横过来之后多出一整块横向空间。我们把时间轴收窄了一点，把省下的宽度让给比分栏，两边都能一眼扫完，不用左右拖。</p>
      </article>
      <article class="news-note news-note--shift">
        <span class="news-stamp">iPhone 竖屏</span>
        <h3>长标签换行之后，行高跟着补了一档</h3>
        <p>有些二级标签名字长，窄屏上会折成两行。行高不补，相邻条目就粘在一起了。这一段调整之后，扫读节奏回来了。</p>
      </article>
      <article class="news-note">
        <span class="news-stamp">iPhone SE 窄屏</span>
        <h3>索引压到两列之后，标题还扫得动吗</h3>
        <p>小屏上三列会挤成一条缝。压到两列之后，标题能完整显示，代价是列表变长了一点，但翻起来反而更顺。</p>
      </article>
      <article class="news-note news-note--shift">
        <span class="news-stamp">全屏视图</span>
        <h3>看台灯光亮起来时，荧光白要不要压一压</h3>
        <p>夜场画面的背景偏亮，纯白数字会有点刺。我们把比分数字的亮度往下带了半档，长时间盯着看不再发涩。</p>
      </article>
    </div>
  </section>

  <section id="archive" class="news-archive shell" data-reveal>
    <div class="news-archive__banner">
      <img src="{zhanqunpic:h:600w:1600}" width="1600" height="600" alt="夜间球场看台灯带的横向长图，光点密集" loading="lazy" decoding="async">
    </div>
    <div class="news-archive__head">
      <p class="eyebrow">往期专题</p>
      <h2 class="section__title">《赛季判罚观察》是怎么一路写下来的</h2>
      <p class="section__lede">
        这个专题按赛季阶段连载，每个阶段结束收一篇。想从前面的阶段读起，顺着下面的顺序往回翻就行。
      </p>
    </div>
    <ol class="news-archive__track">
      <li class="news-archive__stage">
        <span class="news-archive__dot" aria-hidden="true"></span>
        <span class="news-stamp">第 1—8 轮</span>
        <h3>开局阶段：判罚尺度的第一个月</h3>
        <p>赛季刚开始时各队还在试探，判罚总量偏低。这一段记录了哪些判罚类型在开局阶段被放得比较松。</p>
      </li>
      <li class="news-archive__stage">
        <span class="news-archive__dot" aria-hidden="true"></span>
        <span class="news-stamp">第 9—18 轮</span>
        <h3>中段：对抗升级期的判罚密度</h3>
        <p>排名咬得紧，身体对抗跟着上来。这一段是全年判罚密度最高的一段，黄牌走势和积分压力几乎是同一条曲线。</p>
      </li>
      <li class="news-archive__stage">
        <span class="news-archive__dot" aria-hidden="true"></span>
        <span class="news-stamp">第 19—30 轮</span>
        <h3>冲刺阶段：关键判罚集中出现的地方</h3>
        <p>涉及排名归属的比赛，判罚争议也跟着集中。这一段把红牌出现的时段和比赛走势放在一起看。</p>
      </li>
    </ol>
    <p class="news-archive__more">
      每个阶段的完整篇目在<a href="/press/">赛事观察</a>栏目下按轮次排列；这些观察里用到的射门、控球和角球数据，在<a href="/features/">功能中心</a>有对应的说明。
    </p>
  </section>

  <section id="follow" class="news-follow" data-reveal>
    <div class="shell news-follow__inner">
      <div class="news-follow__text">
        <p class="eyebrow">持续跟进</p>
        <h2 class="section__title">想接着读下去，有两条路</h2>
        <p>
          一条是本栏目本身：每轮赛后固定更新，旧篇目按阶段归档，随时往回翻。另一条是集锦回看入口，固定在页面右下角，保留最近 30 天的赛事片段，看完一篇复盘可以直接点开对应的片段对照。遇到比分不刷新、标签没更新这类情况，帮助中心里有排查步骤；想谈内容合作或数据引用，联系对接页能找到人。
        </p>
      </div>
      <div class="news-follow__acts">
        <a class="btn btn--yellow" href="/help-center/">看帮助中心</a>
        <a class="btn btn--ghost" href="/reach-us/">联系对接</a>
        <a class="btn btn--quiet" href="/about/">了解团队</a>
      </div>
    </div>
  </section>

</main>

.page-news {
  --news-block-gap: clamp(48px, 7vw, 92px);
  --news-item-pad: clamp(16px, 2.2vw, 24px);
  background: var(--pitch);
  color: var(--neon);
  font-family: var(--font-sans);
  overflow-x: clip;
  padding-bottom: clamp(48px, 8vw, 100px);
}

.page-news .breadcrumbs {
  padding-block: 18px 4px;
}

/* ---------- 报头区 ---------- */
.page-news .news-mast {
  padding-block: clamp(24px, 4.5vw, 52px) clamp(24px, 3.4vw, 40px);
  position: relative;
}

.page-news .news-mast::after {
  content: "";
  position: absolute;
  right: var(--gutter);
  top: clamp(20px, 4vw, 44px);
  width: clamp(56px, 10vw, 132px);
  height: 6px;
  background: linear-gradient(90deg, var(--yellow) 0 58%, var(--red) 58% 100%);
  transform: skewX(-22deg);
}

.page-news .news-mast__title {
  margin: 10px 0 18px;
  font-size: clamp(34px, 7.4vw, 78px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  font-weight: 800;
  color: var(--neon);
  max-width: 16ch;
}

.page-news .news-mast__lede {
  margin: 0;
  max-width: 38ch;
  font-size: clamp(15px, 1.6vw, 18px);
  line-height: 1.75;
  color: var(--mist);
}

.page-news .news-mast__strip {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin: clamp(26px, 3.6vw, 40px) 0 0;
  padding: 0;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
}

.page-news .news-mast__cell {
  background: var(--stand);
  padding: 16px 18px;
}

.page-news .news-mast__cell dt {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .16em;
  color: var(--mist);
  margin-bottom: 6px;
}

.page-news .news-mast__cell dd {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--neon);
}

.page-news .news-mast__cell .display-num {
  font-size: 26px;
  color: var(--yellow);
  margin-right: 2px;
}

/* ---------- 筛选条 ---------- */
.page-news .news-filter {
  border-block: 1px solid var(--line);
  background: var(--night);
}

.page-news .news-filter__inner {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-block: 12px;
  min-width: 0;
}

.page-news .news-filter__label {
  flex: 0 0 auto;
  margin: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .16em;
  color: var(--mist);
}

.page-news .news-filter__rail {
  min-width: 0;
  flex: 1 1 auto;
}

.page-news .news-filter__rail .chip {
  text-decoration: none;
  white-space: nowrap;
}

/* ---------- 头条专题 ---------- */
.page-news .news-lead {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(22px, 3.4vw, 44px);
  padding-block: var(--news-block-gap) clamp(30px, 4vw, 48px);
  scroll-margin-top: 80px;
}

.page-news .news-lead__figure {
  position: relative;
  margin: 0;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--stand);
  box-shadow: 0 var(--lift) 0 -4px rgba(245, 194, 66, .22);
}

.page-news .news-lead__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 14 / 9;
  object-fit: cover;
  filter: saturate(.72) brightness(.86);
}

.page-news .news-lead__figure .media-frame__caption {
  position: absolute;
  left: 0;
  bottom: 0;
  margin: 0;
  padding: 8px 16px;
  background: var(--night);
  color: var(--yellow);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  border-top-right-radius: var(--r-sm);
}

.page-news .news-stamp {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--mist);
}

.page-news .news-lead__title {
  margin: 10px 0 16px;
  font-size: clamp(25px, 3.8vw, 42px);
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -.01em;
  color: var(--neon);
}

.page-news .news-lead__text {
  margin: 0 0 14px;
  max-width: 36ch;
  font-size: 15px;
  line-height: 1.8;
  color: var(--mist);
}

.page-news .news-lead__keys {
  list-style: none;
  margin: 22px 0 26px;
  padding: 0;
  display: grid;
  gap: 10px;
}

.page-news .news-lead__keys li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  line-height: 1.7;
  color: var(--neon);
}

.page-news .news-lead__keys li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .62em;
  width: 7px;
  height: 7px;
  background: var(--yellow);
  transform: skewX(-20deg);
}

.page-news .news-lead__keys .news-stamp {
  margin-right: 8px;
  color: var(--green);
}

/* ---------- 通用区块头 ---------- */
.page-news .news-block,
.page-news .news-tags,
.page-news .news-notes,
.page-news .news-archive {
  scroll-margin-top: 92px;
}

.page-news .news-block {
  padding-block: clamp(30px, 4vw, 48px);
}

.page-news .news-block__head {
  max-width: 60ch;
  margin-bottom: clamp(24px, 3.4vw, 40px);
}

.page-news .news-block__head .section__title,
.page-news .news-tags__head .section__title,
.page-news .news-notes__head .section__title,
.page-news .news-archive__head .section__title,
.page-news .news-follow__text .section__title {
  margin: 8px 0 12px;
  font-size: clamp(23px, 3.4vw, 36px);
  line-height: 1.22;
  font-weight: 800;
  letter-spacing: -.01em;
}

.page-news .news-block__head .section__lede,
.page-news .news-tags__head .section__lede,
.page-news .news-notes__head .section__lede,
.page-news .news-archive__head .section__lede {
  margin: 0;
  max-width: 40ch;
  font-size: 14px;
  line-height: 1.8;
  color: var(--mist);
}

/* ---------- 复盘：首条图文 ---------- */
.page-news .news-feature {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: var(--stand);
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--line);
  margin-bottom: clamp(20px, 2.6vw, 32px);
}

.page-news .news-feature__thumb {
  order: -1;
}

.page-news .news-feature__thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(.7) brightness(.85);
}

.page-news .news-feature__body {
  padding: clamp(18px, 2.4vw, 28px);
}

.page-news .news-feature__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.page-news .news-feature__title {
  margin: 10px 0 10px;
  font-size: clamp(19px, 2.4vw, 26px);
  line-height: 1.32;
  font-weight: 700;
  color: var(--neon);
}

.page-news .news-feature__body p {
  margin: 0;
  max-width: 38ch;
  font-size: 14px;
  line-height: 1.8;
  color: var(--mist);
}

/* ---------- 索引式列表 ---------- */
.page-news .news-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.page-news .news-list__item {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "index time"
    "main  main";
  gap: 6px 14px;
  align-items: baseline;
  padding: var(--news-item-pad) 0 var(--news-item-pad) 14px;
  border-bottom: 1px solid var(--line);
  transition: background var(--speed) var(--ease);
}

.page-news .news-list__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(var(--news-item-pad) + 6px);
  width: 7px;
  height: 7px;
  background: var(--yellow);
  transform: skewX(-22deg) scaleX(0);
  transform-origin: left center;
  transition: transform var(--speed) var(--ease);
}

.page-news .news-list__item:hover::before,
.page-news .news-list__item:focus-within::before {
  transform: skewX(-22deg) scaleX(1);
}

.page-news .news-list__item:hover {
  background: rgba(18, 70, 61, .55);
}

.page-news .news-list__index {
  grid-area: index;
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1;
  letter-spacing: .02em;
  color: var(--stand);
  -webkit-text-stroke: 1px var(--mist);
}

.page-news .news-list__time {
  grid-area: time;
  justify-self: end;
}

.page-news .news-list__main {
  grid-area: main;
}

.page-news .news-list__title {
  display: inline-block;
  font-size: clamp(16px, 2vw, 20px);
  line-height: 1.45;
  font-weight: 700;
  color: var(--neon);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: border-color var(--speed) var(--ease), color var(--speed) var(--ease);
}

.page-news .news-list__title:hover,
.page-news .news-list__title:focus-visible {
  border-bottom-color: var(--red);
  color: var(--yellow);
}

.page-news .news-list__desc {
  margin: 6px 0 0;
  max-width: 44ch;
  font-size: 13px;
  line-height: 1.75;
  color: var(--mist);
}

/* ---------- 标签更新 ---------- */
.page-news .news-tags {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(22px, 3vw, 40px);
  padding-block: clamp(34px, 4.6vw, 56px);
  background: var(--stand);
  border-radius: var(--r-lg);
  padding-inline: var(--gutter);
  margin-block: clamp(20px, 3vw, 36px);
}

.page-news .news-tags__head {
  max-width: 56ch;
}

.page-news .news-tags__log {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
}

.page-news .news-tags__log li {
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.page-news .news-tags__log p {
  margin: 8px 0 0;
  max-width: 44ch;
  font-size: 14px;
  line-height: 1.78;
  color: var(--neon);
}

.page-news .news-tags__figure {
  margin: 0;
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--lift) var(--lift) 0 -6px rgba(56, 211, 159, .18);
}

.page-news .news-tags__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(.7) brightness(.85);
}

/* ---------- 设备手记 ---------- */
.page-news .news-notes {
  padding-block: var(--news-block-gap) clamp(28px, 3.6vw, 44px);
}

.page-news .news-notes__head {
  max-width: 58ch;
  margin-bottom: clamp(22px, 3vw, 36px);
}

.page-news .news-notes__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 2vw, 22px);
}

.page-news .news-note {
  background: var(--night);
  border-radius: var(--r-md);
  padding: clamp(18px, 2.4vw, 26px);
  border-left: 4px solid var(--green);
}

.page-news .news-note--shift {
  border-left-color: var(--yellow);
  background: var(--stand);
}

.page-news .news-note h3 {
  margin: 10px 0 10px;
  font-size: clamp(17px, 2vw, 21px);
  line-height: 1.4;
  font-weight: 700;
  color: var(--neon);
}

.page-news .news-note p {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mist);
}

/* ---------- 归档 ---------- */
.page-news .news-archive {
  padding-block: clamp(28px, 3.6vw, 44px) var(--news-block-gap);
}

.page-news .news-archive__banner {
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: clamp(24px, 3.4vw, 40px);
}

.page-news .news-archive__banner img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 6;
  object-fit: cover;
  filter: saturate(.62) brightness(.78);
}

.page-news .news-archive__head {
  max-width: 60ch;
  margin-bottom: clamp(22px, 3vw, 36px);
}

.page-news .news-archive__track {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.page-news .news-archive__track::before {
  content: "";
  position: absolute;
  left: 5px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--line-strong);
}

.page-news .news-archive__stage {
  position: relative;
  padding: 0 0 26px 28px;
}

.page-news .news-archive__stage:last-child {
  padding-bottom: 0;
}

.page-news .news-archive__dot {
  position: absolute;
  left: 0;
  top: 5px;
  width: 11px;
  height: 11px;
  background: var(--yellow);
  transform: skewX(-20deg);
}

.page-news .news-archive__stage h3 {
  margin: 8px 0 8px;
  font-size: clamp(17px, 2.1vw, 22px);
  line-height: 1.4;
  font-weight: 700;
  color: var(--neon);
}

.page-news .news-archive__stage p {
  margin: 0;
  max-width: 46ch;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mist);
}

.page-news .news-archive__more {
  margin: 26px 0 0;
  max-width: 48ch;
  font-size: 13px;
  line-height: 1.8;
  color: var(--mist);
}

.page-news .news-archive__more a {
  color: var(--yellow);
  text-decoration: none;
  border-bottom: 1px solid rgba(245, 194, 66, .5);
}

.page-news .news-archive__more a:hover,
.page-news .news-archive__more a:focus-visible {
  color: var(--neon);
  border-bottom-color: var(--neon);
}

/* ---------- 持续跟进 ---------- */
.page-news .news-follow {
  background: var(--night);
  border-top: 1px solid var(--line);
  padding-block: clamp(34px, 4.6vw, 58px);
}

.page-news .news-follow__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(20px, 3vw, 40px);
  align-items: start;
}

.page-news .news-follow__text p {
  margin: 0;
  max-width: 44ch;
  font-size: 14px;
  line-height: 1.85;
  color: var(--mist);
}

.page-news .news-follow__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.page-news .news-follow__acts .btn {
  text-decoration: none;
}

/* ---------- 平板 ---------- */
@media (min-width: 700px) {
  .page-news .news-mast__strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .page-news .news-feature {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: stretch;
  }

  .page-news .news-feature__thumb {
    order: 0;
  }

  .page-news .news-feature__thumb img {
    height: 100%;
    aspect-ratio: auto;
    min-height: 220px;
  }

  .page-news .news-list__item {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "index main time";
    gap: 0 22px;
    align-items: start;
  }

  .page-news .news-list__time {
    align-self: start;
    padding-top: 4px;
  }

  .page-news .news-notes__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-news .news-note--shift {
    transform: translateY(14px);
  }

  .page-news .news-follow__inner {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: center;
  }

  .page-news .news-follow__acts {
    justify-content: flex-end;
  }
}

/* ---------- 桌面 ---------- */
@media (min-width: 1000px) {
  .page-news .news-mast__title {
    max-width: 14ch;
  }

  .page-news .news-lead {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
  }

  .page-news .news-lead__figure {
    position: sticky;
    top: 96px;
  }

  .page-news .news-feature {
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  }

  .page-news .news-tags {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
    padding-inline: clamp(28px, 4vw, 56px);
  }

  .page-news .news-tags__figure {
    position: sticky;
    top: 96px;
  }

  .page-news .news-notes__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 34px;
  }

  .page-news .news-archive__track {
    padding-left: 8px;
  }

  .page-news .news-archive__stage {
    padding-left: 36px;
    padding-bottom: 32px;
  }
}

/* ---------- 大屏 ---------- */
@media (min-width: 1240px) {
  .page-news .news-filter__inner {
    gap: 22px;
  }

  .page-news .news-note--shift {
    transform: translateY(20px);
  }
}

/* ---------- 减少动效 ---------- */
@media (prefers-reduced-motion: reduce) {
  .page-news .news-list__item,
  .page-news .news-list__item::before,
  .page-news .news-list__title {
    transition: none;
  }

  .page-news .news-note--shift {
    transform: none;
  }
}
