.page-news {
  --news-gap: clamp(18px, 2.6vw, 32px);
  --news-line: var(--ink-700);
  background: var(--ink-900);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.7;
  overflow-x: hidden;
}

.page-news h1,
.page-news h2,
.page-news h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.01em;
}

.page-news p {
  margin: 0;
}

.page-news a {
  color: var(--cyan);
  text-decoration: none;
  transition: color 0.2s var(--ease), border-color 0.2s var(--ease), background 0.2s var(--ease);
}

.page-news a:hover {
  color: var(--orange);
}

.page-news .mono {
  font-family: var(--font-mono);
}

.page-news .section {
  padding: clamp(34px, 5.6vw, 70px) 0;
}

/* 面包屑 */
.page-news .breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.06em;
  color: var(--paper-dim);
}

.page-news .breadcrumb__item + .breadcrumb__item::before {
  content: "/";
  margin-right: 6px;
  color: var(--steel);
}

.page-news .breadcrumb__link {
  color: var(--paper-dim);
}

.page-news .breadcrumb__current {
  color: var(--paper);
}

/* 眉标 */
.page-news .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cyan);
}

.page-news .eyebrow::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--cyan);
}

/* 首屏 */
.page-news .news-hero {
  position: relative;
  padding: clamp(24px, 4vw, 48px) 0 clamp(30px, 5vw, 62px);
  border-bottom: 1px solid var(--news-line);
  background:
    repeating-linear-gradient(90deg, rgba(94, 107, 122, 0.09) 0 1px, transparent 1px 64px),
    var(--ink-900);
}

.page-news .news-hero__inner {
  display: grid;
  gap: var(--news-gap);
}

.page-news .news-hero__copy {
  display: grid;
  gap: 14px;
  align-content: start;
}

.page-news .news-hero h1 {
  font-size: clamp(32px, 6vw, 62px);
  max-width: 20ch;
  text-wrap: balance;
}

.page-news .news-hero__lede {
  max-width: 60ch;
  color: var(--paper-dim);
  font-size: var(--fs-body);
}

.page-news .news-hero__lede--sub {
  padding-left: 14px;
  border-left: 2px solid var(--orange);
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .news-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 6px;
  border-top: 1px solid var(--news-line);
}

.page-news .news-stats__item {
  padding: 12px 12px 12px 0;
  border-bottom: 1px solid var(--news-line);
}

.page-news .news-stats__num {
  display: block;
  font-family: var(--font-mono);
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.2;
  color: var(--orange);
}

.page-news .news-stats__label {
  display: block;
  margin-top: 2px;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--paper-dim);
}

.page-news .news-hero__fig {
  margin: 0;
  border: 1px solid var(--news-line);
  background: var(--ink-950);
}

.page-news .news-hero__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.page-news .news-hero__cap {
  padding: 8px 12px;
  border-top: 1px solid var(--news-line);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.06em;
  color: var(--paper-dim);
}

/* 章节标题行 */
.page-news .section-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 6px 12px;
  padding-bottom: 12px;
  margin-bottom: var(--news-gap);
  border-bottom: 1px solid var(--news-line);
}

.page-news .section-head__index {
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.1em;
  color: var(--orange);
}

.page-news .section-head__title {
  font-size: var(--fs-h2);
}

.page-news .section-head__note {
  grid-column: 1 / -1;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 时间线引导图 */
.page-news .timeline-fig {
  margin: 0 0 var(--news-gap);
  border: 1px solid var(--news-line);
  background: var(--ink-950);
}

.page-news .timeline-fig img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: cover;
}

.page-news .timeline-fig__cap {
  padding: 8px 12px;
  border-top: 1px solid var(--news-line);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  color: var(--paper-dim);
}

/* 报告板：筛选 + 时间线 */
.page-news .report-board {
  display: grid;
  gap: var(--news-gap);
}

.page-news .report-filter {
  display: grid;
  gap: 12px;
  align-content: start;
  padding: 16px;
  border: 1px solid var(--news-line);
  background: var(--ink-800);
}

.page-news .report-filter__title {
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--paper);
}

.page-news .report-filter__hint {
  font-size: var(--fs-small);
  color: var(--paper-dim);
  padding-top: 10px;
  border-top: 1px solid var(--news-line);
}

.page-news .filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.page-news .chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border: 1px solid var(--steel);
  background: transparent;
  color: var(--paper-dim);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.06em;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease);
}

.page-news .chip:hover {
  border-color: var(--cyan);
  color: var(--cyan);
}

.page-news .filter-radio:checked + .chip {
  background: var(--cyan);
  border-color: var(--cyan);
  color: var(--ink-950);
}

.page-news .filter-radio:focus-visible + .chip {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

/* 纯 CSS 筛选 */
.page-news .report-board:has(#r-cat-pre:checked) .rl-item:not(.is-pre),
.page-news .report-board:has(#r-cat-pos:checked) .rl-item:not(.is-pos),
.page-news .report-board:has(#r-cat-squad:checked) .rl-item:not(.is-squad),
.page-news .report-board:has(#r-cat-compare:checked) .rl-item:not(.is-compare) {
  display: none;
}

/* 倒序时间线 */
.page-news .rl-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 16px;
}

.page-news .rl-item {
  --dot: var(--orange);
  position: relative;
  display: grid;
  gap: 8px;
  padding-left: 22px;
}

.page-news .rl-item.is-pre { --dot: var(--cyan); }
.page-news .rl-item.is-pos { --dot: var(--red); }
.page-news .rl-item.is-squad { --dot: var(--yellow); }
.page-news .rl-item.is-compare { --dot: var(--green); }

.page-news .rl-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 9px;
  height: 9px;
  background: var(--dot);
}

.page-news .rl-item::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 24px;
  bottom: -16px;
  width: 1px;
  background: var(--news-line);
}

.page-news .rl-item:last-child::after {
  display: none;
}

.page-news .rl-item__time {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--paper-dim);
}

.page-news .rl-item__time .mono {
  padding: 2px 6px;
  background: var(--ink-700);
  color: var(--paper);
}

.page-news .rl-item__card {
  display: grid;
  gap: 10px;
  padding: clamp(14px, 2vw, 22px);
  border: 1px solid var(--news-line);
  background: var(--ink-800);
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
}

.page-news .rl-item__card:hover,
.page-news .rl-item__card:focus-within {
  border-color: var(--steel);
  background: var(--ink-700);
}

.page-news .rl-item__card h3 {
  font-size: var(--fs-h3);
  color: var(--paper);
}

.page-news .rl-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.page-news .tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid currentColor;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  line-height: 1.4;
  letter-spacing: 0.06em;
  border-radius: 0;
}

.page-news .tag--red { color: var(--red); }
.page-news .tag--cyan { color: var(--cyan); }
.page-news .tag--yellow { color: var(--yellow); }
.page-news .tag--green { color: var(--green); }
.page-news .tag--mono {
  color: var(--paper-dim);
  border-color: var(--news-line);
}

.page-news .rl-item__summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .rl-item__card:hover .rl-item__summary,
.page-news .rl-item__card:focus-within .rl-item__summary {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}

.page-news .rl-item__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid var(--news-line);
}

.page-news .rl-item__meta div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.page-news .rl-item__meta dt {
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--steel);
}

.page-news .rl-item__meta dd {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--paper);
}

/* 字段说明 */
.page-news .fields-grid {
  display: grid;
  gap: var(--news-gap);
}

.page-news .field-item {
  border: 1px solid var(--news-line);
  background: var(--ink-800);
}

.page-news .field-item + .field-item {
  border-top: 0;
}

.page-news .field-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--paper);
  transition: color 0.2s var(--ease), background 0.2s var(--ease);
}

.page-news .field-item summary::-webkit-details-marker {
  display: none;
}

.page-news .field-item summary::after {
  content: "+";
  font-family: var(--font-mono);
  color: var(--orange);
}

.page-news .field-item[open] summary::after {
  content: "–";
}

.page-news .field-item summary:hover {
  background: var(--ink-700);
}

.page-news .field-item[open] summary {
  color: var(--cyan);
  border-bottom: 1px solid var(--news-line);
}

.page-news .field-item__body {
  padding: 12px 16px 16px;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .fields-fig {
  margin: 0;
  border: 1px solid var(--news-line);
  background: var(--ink-950);
  align-self: start;
}

.page-news .fields-fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.page-news .fields-fig__cap {
  padding: 8px 12px;
  border-top: 1px solid var(--news-line);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  color: var(--paper-dim);
}

/* 3 月赛程段专题 */
.page-news .march-panel {
  display: grid;
  gap: 0;
  border: 1px solid var(--news-line);
  background: var(--ink-800);
}

.page-news .march-panel__fig {
  margin: 0;
  background: var(--ink-950);
  border-bottom: 1px solid var(--news-line);
}

.page-news .march-panel__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.page-news .march-panel__body {
  display: grid;
  gap: 16px;
  padding: clamp(18px, 3vw, 32px);
}

.page-news .march-panel__lede {
  color: var(--paper-dim);
  font-size: var(--fs-small);
}

.page-news .march-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
}

.page-news .march-list__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--news-line);
}

.page-news .march-list__no {
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--orange);
  padding-top: 4px;
}

.page-news .march-list__item h3 {
  font-size: 17px;
  color: var(--paper);
}

.page-news .march-list__item p {
  margin-top: 4px;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .march-panel__note {
  padding-left: 12px;
  border-left: 2px solid var(--cyan);
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 旧版对照 */
.page-news .archive-panel {
  display: grid;
  gap: var(--news-gap);
  padding: clamp(18px, 3vw, 34px);
  border: 1px solid var(--news-line);
  border-left: 3px solid var(--orange);
  background: var(--ink-800);
}

.page-news .archive-panel__copy {
  display: grid;
  gap: 12px;
  align-content: start;
}

.page-news .archive-panel__copy h2 {
  font-size: var(--fs-h2);
  max-width: 24ch;
}

.page-news .archive-panel__copy p {
  font-size: var(--fs-small);
  color: var(--paper-dim);
  max-width: 62ch;
}

.page-news .archive-panel__actions,
.page-news .search-band__actions,
.page-news .next-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.page-news .archive-facts {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
  align-content: start;
  border-top: 1px solid var(--news-line);
}

.page-news .archive-facts li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 0;
  border-bottom: 1px solid var(--news-line);
}

.page-news .archive-facts__k {
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--steel);
}

.page-news .archive-facts__v {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--paper);
}

/* 检索 */
.page-news .search-band {
  display: grid;
  gap: var(--news-gap);
  padding: clamp(18px, 3vw, 34px);
  border: 1px solid var(--news-line);
  background:
    linear-gradient(120deg, rgba(55, 230, 212, 0.06), transparent 55%),
    var(--ink-800);
}

.page-news .search-band__copy {
  display: grid;
  gap: 12px;
  align-content: start;
}

.page-news .search-band__copy h2 {
  font-size: var(--fs-h2);
  max-width: 22ch;
}

.page-news .search-band__copy p {
  font-size: var(--fs-small);
  color: var(--paper-dim);
  max-width: 58ch;
}

.page-news .search-ways {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.page-news .search-ways__item {
  padding: 14px 16px;
  border: 1px solid var(--news-line);
  background: var(--ink-900);
  display: grid;
  gap: 6px;
}

.page-news .search-ways__idx {
  font-size: var(--fs-index);
  letter-spacing: 0.1em;
  color: var(--cyan);
}

.page-news .search-ways__item h3 {
  font-size: 17px;
  color: var(--paper);
}

.page-news .search-ways__item p {
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 结尾推进 */
.page-news .section--last {
  border-top: 1px solid var(--news-line);
  background: var(--ink-950);
}

.page-news .next-band {
  display: grid;
  gap: 14px;
}

.page-news .next-band h2 {
  font-size: var(--fs-h2);
  max-width: 22ch;
}

.page-news .next-band p {
  font-size: var(--fs-small);
  color: var(--paper-dim);
  max-width: 58ch;
}

/* 按钮 */
.page-news .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 18px;
  border: 1px solid var(--steel);
  background: transparent;
  color: var(--paper);
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: 0.06em;
  border-radius: 0;
  cursor: pointer;
}

.page-news .btn--solid {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--ink-950);
}

.page-news .btn--solid:hover {
  background: var(--cyan);
  border-color: var(--cyan);
  color: var(--ink-950);
}

.page-news .btn--line:hover {
  border-color: var(--cyan);
  color: var(--cyan);
}

/* 桌面增强 */
@media (min-width: 900px) {
  .page-news .news-hero__inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: end;
  }

  .page-news .news-hero__lede--sub {
    max-width: 54ch;
  }

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

  .page-news .news-stats__item {
    padding: 14px 14px 14px 0;
  }

  .page-news .news-stats__item + .news-stats__item {
    padding-left: 14px;
    border-left: 1px solid var(--news-line);
  }

  .page-news .section-head {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: end;
  }

  .page-news .section-head__note {
    grid-column: auto;
    text-align: right;
    max-width: 32ch;
  }

  .page-news .report-board {
    grid-template-columns: 232px minmax(0, 1fr);
    align-items: start;
  }

  .page-news .report-filter {
    position: sticky;
    top: calc(var(--header-h) + 16px);
  }

  .page-news .fields-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr);
    align-items: start;
  }

  .page-news .march-panel {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: stretch;
  }

  .page-news .march-panel__fig {
    border-bottom: 0;
    border-right: 1px solid var(--news-line);
  }

  .page-news .march-panel__fig img {
    height: 100%;
    aspect-ratio: auto;
    min-height: 340px;
  }

  .page-news .archive-panel {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr);
    align-items: start;
  }

  .page-news .search-band {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }

  .page-news .next-band {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  /* 宽窄交错的卡片节奏 */
  .page-news .rl-item:nth-child(3n + 2) .rl-item__card {
    margin-right: clamp(0px, 7vw, 110px);
  }

  .page-news .rl-item:nth-child(3n) .rl-item__card {
    margin-left: clamp(0px, 4vw, 64px);
  }
}

@media (min-width: 1280px) {
  .page-news .rl-item__meta {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-news *,
  .page-news *::before,
  .page-news *::after {
    transition-duration: 0.01ms !important;
  }
}
<<<END>>>

等等，最后多写了 <<<END>>> 吗？标记只能出现两次。我需要移除。重新输出，不加 END。

另外检查：`.page-news .section--last` 使用了 --last 修饰，需要定义？已定义。`section--last` 不在全局类列表里，但这是我自己页面内使用的类，且已在 page_css 定义，允许。

再检查：`#next` 锚点存在 ✓，`#timeline`、`#fields`、`#march`、`#archive`、`#search` 都有对应 section ✓。

href 全部来自合法路由 ✓。

图片 4 张 ✓，hero 无 lazy ✓。

品牌名在首屏导语出现 ✓。

不需要再输出 END 标记。重写最终答案。
<main id="main-content" class="page-news">

  <section class="news-hero">
    <div class="container news-hero__inner">
      <div class="news-hero__copy">
        <nav class="breadcrumb" aria-label="位置导航">
          <ol class="breadcrumb__list">
            <li class="breadcrumb__item"><a class="breadcrumb__link" href="/">赛前总览</a></li>
            <li class="breadcrumb__item breadcrumb__current" aria-current="page">阵容变更报告</li>
          </ol>
        </nav>

        <p class="eyebrow">变更报告 / 倒序阅读</p>

        <h1>每一处赛前名单调整，都按开赛时间倒序排在这里</h1>

        <p class="news-hero__lede">
          中欧体育把每场比赛开赛前的名单变化放进同一条时间线：离跳球还有多久、是哪支队伍、动了哪个位置、原来的排布是什么样，都能在一条记录里读完。想抓最新的一次调整，从上往下看就够了。
        </p>

        <p class="news-hero__lede news-hero__lede--sub">
          需要做体育赛事阵容变更说明查看时，条目按开赛时间从近到远排列；点开任意一条，还能顺着旧版对照回看调整前的完整名单。
        </p>

        <div class="news-stats">
          <div class="news-stats__item">
            <span class="news-stats__num">1260</span>
            <span class="news-stats__label">变更条目</span>
          </div>
          <div class="news-stats__item">
            <span class="news-stats__num">5200</span>
            <span class="news-stats__label">赛事资料</span>
          </div>
          <div class="news-stats__item">
            <span class="news-stats__num">18</span>
            <span class="news-stats__label">历史版本包</span>
          </div>
          <div class="news-stats__item">
            <span class="news-stats__num">3月</span>
            <span class="news-stats__label">已排至赛程段</span>
          </div>
        </div>
      </div>

      <figure class="news-hero__fig">
        <img src="{zhanqunpic:h:900w:1600}" width="1600" height="900" alt="夜间球场灯光下的边线与看台，冷色基底上带信号橙光点">
        <figcaption class="news-hero__cap">夜间赛场 · 变更批次按开赛时间推进</figcaption>
      </figure>
    </div>
  </section>

  <section class="section" id="timeline">
    <div class="container">
      <div class="section-head">
        <span class="section-head__index">01</span>
        <h2 class="section-head__title">最近的变更批次，从开赛前两小时往回读</h2>
        <p class="section-head__note">7 个批次 · 覆盖小组赛至淘汰赛阶段</p>
      </div>

      <figure class="timeline-fig">
        <img src="{zhanqunpic:h:800w:1200}" width="1200" height="800" alt="从上到下的变更节点与状态标签信息图，展示倒序阅读顺序" loading="lazy" decoding="async">
        <figcaption class="timeline-fig__cap">越靠上，离开赛越近；越往下，批次越早</figcaption>
      </figure>

      <div class="report-board">
        <aside class="report-filter" aria-label="按变更类型筛选报告">
          <p class="report-filter__title">按类型筛选</p>
          <div class="filter-chips">
            <input class="visually-hidden filter-radio" type="radio" name="report-cat" id="r-cat-all" checked>
            <label class="chip" for="r-cat-all">全部</label>

            <input class="visually-hidden filter-radio" type="radio" name="report-cat" id="r-cat-pre">
            <label class="chip" for="r-cat-pre">赛前确认</label>

            <input class="visually-hidden filter-radio" type="radio" name="report-cat" id="r-cat-pos">
            <label class="chip" for="r-cat-pos">位置变动</label>

            <input class="visually-hidden filter-radio" type="radio" name="report-cat" id="r-cat-squad">
            <label class="chip" for="r-cat-squad">名单增补</label>

            <input class="visually-hidden filter-radio" type="radio" name="report-cat" id="r-cat-compare">
            <label class="chip" for="r-cat-compare">旧版对照</label>
          </div>
          <p class="report-filter__hint">
            比赛日按开赛时间滚动更新，非比赛日每日做一次归档巡检；常规在开赛前 6 小时完成首轮发布。
          </p>
        </aside>

        <ol class="rl-list">
          <li class="rl-item is-pos">
            <p class="rl-item__time"><span class="mono">T-06:00</span>开赛前 6 小时</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--red">有变更</span>
                <span class="tag tag--mono">位置变动</span>
              </div>
              <h3>城市联赛第 18 轮 · 主队中前场两处对调</h3>
              <p class="rl-item__summary">
                开赛前六小时确认的这一版里，主队在中前场做了两处位置对调，边路与中路的跑动职责随之变化。若您手上有调整前的排布，从条目底部进入旧版对照，就能把两个版本的站位并排看一遍。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>城市联赛第 18 轮</dd></div>
                <div><dt>队伍</dt><dd>主队</dd></div>
                <div><dt>位置</dt><dd>中前场两处</dd></div>
                <div><dt>变更类型</dt><dd>位置变动</dd></div>
              </dl>
            </div>
          </li>

          <li class="rl-item is-pre">
            <p class="rl-item__time"><span class="mono">T-02:00</span>开赛前 2 小时</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--cyan">已确认</span>
                <span class="tag tag--mono">赛前确认</span>
              </div>
              <h3>热身赛收官轮 · 客队出场名单最终版</h3>
              <p class="rl-item__summary">
                开赛前两小时落定的最终版名单，位置与号码都已固定。此后若出现临时调整，会在原条目上追加状态标记，不会另起一条，方便您反复回看同一个位置。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>热身赛收官轮</dd></div>
                <div><dt>队伍</dt><dd>客队</dd></div>
                <div><dt>位置</dt><dd>全场覆盖</dd></div>
                <div><dt>变更类型</dt><dd>赛前确认</dd></div>
              </dl>
            </div>
          </li>

          <li class="rl-item is-pos">
            <p class="rl-item__time"><span class="mono">T-04:00</span>开赛前 4 小时</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--red">有变更</span>
                <span class="tag tag--mono">位置变动</span>
              </div>
              <h3>联赛第 22 轮 · 客队后防站位整体后撤</h3>
              <p class="rl-item__summary">
                离开赛还有四小时，客队后防整体后撤半个身位，边后卫的插上频率同步下调。这一批次通常与赛前最后一次场地适应前后脚出现，是当天更新最快的一类条目。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>联赛第 22 轮</dd></div>
                <div><dt>队伍</dt><dd>客队</dd></div>
                <div><dt>位置</dt><dd>后防线</dd></div>
                <div><dt>变更类型</dt><dd>位置变动</dd></div>
              </dl>
            </div>
          </li>

          <li class="rl-item is-squad">
            <p class="rl-item__time"><span class="mono">T-12:00</span>开赛前 12 小时</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--yellow">待确认</span>
                <span class="tag tag--mono">名单增补</span>
              </div>
              <h3>青年组邀请赛 · 主队名单一处名额待定</h3>
              <p class="rl-item__summary">
                主队还有一个名额在走流程，条目先以待确认标注，确定后直接改写这一个位置的状态，不新增条目。关注这场比赛的读者记住当前条目位置即可，不必每次从头翻找。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>青年组邀请赛</dd></div>
                <div><dt>队伍</dt><dd>主队</dd></div>
                <div><dt>位置</dt><dd>中场一处</dd></div>
                <div><dt>变更类型</dt><dd>名单增补</dd></div>
              </dl>
            </div>
          </li>

          <li class="rl-item is-squad">
            <p class="rl-item__time"><span class="mono">T-24:00</span>开赛前 1 天</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--cyan">已确认</span>
                <span class="tag tag--mono">名单增补</span>
              </div>
              <h3>杯赛半决赛 · 客队替补席补入两人</h3>
              <p class="rl-item__summary">
                客队在赛前一天补齐替补席，两人进入出场名单，位置覆盖后场与中场。参赛名单以本条为准，先前公布的那一版依然保留在旧版对照里，两者差别一目了然。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>杯赛半决赛</dd></div>
                <div><dt>队伍</dt><dd>客队</dd></div>
                <div><dt>位置</dt><dd>后场、中场</dd></div>
                <div><dt>变更类型</dt><dd>名单增补</dd></div>
              </dl>
            </div>
          </li>

          <li class="rl-item is-pre">
            <p class="rl-item__time"><span class="mono">T-48:00</span>开赛前 2 天</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--cyan">已确认</span>
                <span class="tag tag--mono">赛前确认</span>
              </div>
              <h3>区域锦标赛小组赛第 2 轮 · 主力框架按预期落定</h3>
              <p class="rl-item__summary">
                赛前两天公布的名单与此前预告一致，主力框架没有变化，替补席轮换一人。适合作为整段赛程的第一条来读，再往下按顺序看同一赛程段内的其它场次。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>区域锦标赛小组赛第 2 轮</dd></div>
                <div><dt>队伍</dt><dd>主队</dd></div>
                <div><dt>位置</dt><dd>主力框架</dd></div>
                <div><dt>变更类型</dt><dd>赛前确认</dd></div>
              </dl>
            </div>
          </li>

          <li class="rl-item is-compare">
            <p class="rl-item__time"><span class="mono">T-72:00</span>开赛前 3 天</p>
            <div class="rl-item__card">
              <div class="rl-item__tags">
                <span class="tag tag--green">已归档</span>
                <span class="tag tag--mono">旧版对照</span>
              </div>
              <h3>淘汰赛首回合 · 早期排布已归入对照包</h3>
              <p class="rl-item__summary">
                这场比赛更早的那版排布已经打包成只读版本，赛后回看变化过程时，从这条进入对照包就能看到当时的完整名单与位置标注，与最新一版分开阅读不冲突。
              </p>
              <dl class="rl-item__meta">
                <div><dt>赛事</dt><dd>淘汰赛首回合</dd></div>
                <div><dt>队伍</dt><dd>主队</dd></div>
                <div><dt>位置</dt><dd>全队</dd></div>
                <div><dt>变更类型</dt><dd>旧版对照</dd></div>
              </dl>
            </div>
          </li>
        </ol>
      </div>
    </div>
  </section>

  <section class="section" id="fields">
    <div class="container">
      <div class="section-head">
        <span class="section-head__index">02</span>
        <h2 class="section-head__title">一条记录里的七个字段，各管一件事</h2>
        <p class="section-head__note">展开任一项，看该字段在什么情况下最有用</p>
      </div>

      <div class="fields-grid">
        <div class="fields-list">
          <details class="field-item" open>
            <summary>赛事名称</summary>
            <div class="field-item__body">用于把同一天的多场比赛区分开。赛事名称带轮次信息，看到“第 18 轮”就知道属于常规赛程中的哪一段，不必再对着日历逐场比对。</div>
          </details>

          <details class="field-item">
            <summary>开赛时间</summary>
            <div class="field-item__body">决定整条时间线的排序位置。报告统一以开赛时刻为坐标，标出这次调整发生在开赛前几小时或几天，方便您判断信息的时效。</div>
          </details>

          <details class="field-item">
            <summary>队伍</summary>
            <div class="field-item__body">标明变动发生在主队还是客队。同一场比赛里，两队可能先后各有一条记录，看队伍字段就能分清哪一条与您关注的阵容有关。</div>
          </details>

          <details class="field-item">
            <summary>位置</summary>
            <div class="field-item__body">指出名单调整落在哪个区域，例如后防线、中场或替补席。位置越靠核心，对比赛走势的连带影响通常越明显，这也是判断影响大小的第一步。</div>
          </details>

          <details class="field-item">
            <summary>变更类型</summary>
            <div class="field-item__body">分为赛前确认、位置变动、名单增补、旧版对照四类。类型决定阅读重点：确认类看最终名单，变动类看差异，增补类看人数，对照类看历史版本。</div>
          </details>

          <details class="field-item">
            <summary>生效状态</summary>
            <div class="field-item__body">用待确认、已确认、有变更、已归档四种标识呈现进度。状态会随发布推进在原条目上更新，看到“待确认”时可以先收藏，稍后再回来看结论。</div>
          </details>

          <details class="field-item">
            <summary>旧版对照</summary>
            <div class="field-item__body">指向调整前的完整排布。想复盘一次换人、一次站位调整的前因后果，沿着这个入口进去，就能把两个版本放在一起读，不必凭记忆还原。</div>
          </details>
        </div>

        <figure class="fields-fig">
          <img src="{zhanqunpic:h:1000w:1000}" width="1000" height="1000" alt="战术板上的位置标记与箭头示意，表现阵容位置调整关系" loading="lazy" decoding="async">
          <figcaption class="fields-fig__cap">位置字段对应战术板上的具体区域</figcaption>
        </figure>
      </div>
    </div>
  </section>

  <section class="section" id="march">
    <div class="container">
      <div class="section-head">
        <span class="section-head__index">03</span>
        <h2 class="section-head__title">3 月赛程段：三个批次，按周推进</h2>
        <p class="section-head__note">当前资料已排至 3 月赛程段</p>
      </div>

      <div class="march-panel">
        <figure class="march-panel__fig">
          <img src="{zhanqunpic:h:800w:1200}" width="1200" height="800" alt="夜间球场上的运动员剪影，表现赛前阵容公布的临场气氛" loading="lazy" decoding="async">
        </figure>

        <div class="march-panel__body">
          <p class="march-panel__lede">
            3 月赛程段的变更说明按上、中、下旬拆成三个批次发布，每个批次覆盖当段的全部场次。已归档的批次继续保留只读入口，赛程过半后再回头看变化过程，起点和终点都能找到。
          </p>

          <ul class="march-list">
            <li class="march-list__item">
              <span class="march-list__no mono">B-01</span>
              <div>
                <h3>3 月上旬 · 赛前名单与位置变动</h3>
                <p>集中在开赛前 1 天到 6 小时之间发布，位置变动条目占比最高，适合跟踪开局阶段的排布思路。</p>
              </div>
            </li>
            <li class="march-list__item">
              <span class="march-list__no mono">B-02</span>
              <div>
                <h3>3 月中旬 · 名单增补与待确认跟进</h3>
                <p>赛程密集，增补类条目增多；标为待确认的名额会在结论明确后于原条目更新，不必重复查找。</p>
              </div>
            </li>
            <li class="march-list__item">
              <span class="march-list__no mono">B-03</span>
              <div>
                <h3>3 月下旬 · 旧版对照与归档收尾</h3>
                <p>本段结束的场次统一归入只读版本，保留当时的名单与位置标注，供赛后复盘与内容整理使用。</p>
              </div>
            </li>
          </ul>

          <p class="march-panel__note">
            下一段赛程的条目会沿用同一套字段和状态标识，先前收藏的列表位置不会因为新增批次而失效。
          </p>
        </div>
      </div>
    </div>
  </section>

  <section class="section" id="archive">
    <div class="container">
      <div class="archive-panel">
        <div class="archive-panel__copy">
          <p class="eyebrow">旧版对照</p>
          <h2>需要调整前的那一版？从收藏页面按赛事和时间取回</h2>
          <p>
            报告条目里的旧版对照链接，最终都指向同一处：按赛事、赛季和开赛时间归档的收藏页面。18 个历史版本包分别标注版本号、归档状态与适用范围，以只读方式展示，桌面和手机浏览器都能打开。
          </p>
          <p class="archive-panel__actions">
            <a class="btn btn--solid" href="/services/">进入收藏与检索</a>
            <a class="btn btn--line" href="/team/">了解资料团队</a>
          </p>
        </div>

        <ul class="archive-facts">
          <li><span class="archive-facts__k mono">归档版本包</span><span class="archive-facts__v">18 个</span></li>
          <li><span class="archive-facts__k mono">覆盖赛季</span><span class="archive-facts__v">9 个赛季</span></li>
          <li><span class="archive-facts__k mono">赛事资料</span><span class="archive-facts__v">5200 场</span></li>
          <li><span class="archive-facts__k mono">展示方式</span><span class="archive-facts__v">只读版本</span></li>
        </ul>
      </div>
    </div>
  </section>

  <section class="section" id="search">
    <div class="container">
      <div class="search-band">
        <div class="search-band__copy">
          <p class="eyebrow">队名检索</p>
          <h2>知道队名，就不用从头翻列表</h2>
          <p>
            在检索入口输入队名，可以直接定位到这支队伍的赛事资料、阵容变更记录和对应的旧版收藏包；把赛事名称或开赛时间一起写上，结果会更贴近您要找的那一场。
          </p>
          <p class="search-band__actions">
            <a class="btn btn--solid" href="/services/">打开检索入口</a>
            <a class="btn btn--line" href="/troubleshooting/">检索不到怎么办</a>
          </p>
        </div>

        <ul class="search-ways">
          <li class="search-ways__item">
            <span class="search-ways__idx mono">01</span>
            <h3>完整队名</h3>
            <p>队名写全时定位最直接，适合已经确认参赛队伍的场合。</p>
          </li>
          <li class="search-ways__item">
            <span class="search-ways__idx mono">02</span>
            <h3>队名关键词</h3>
            <p>只记得队名里的几个字时，用关键词也能找到相关场次与变更条目。</p>
          </li>
          <li class="search-ways__item">
            <span class="search-ways__idx mono">03</span>
            <h3>赛事名加开赛时间</h3>
            <p>同一天比赛较多时，加上开赛时间可把范围收窄到您要看的那一场。</p>
          </li>
        </ul>
      </div>
    </div>
  </section>

  <section class="section section--last" id="next">
    <div class="container">
      <div class="next-band">
        <div>
          <h2>看完成变更，接着安排下一步</h2>
          <p>需要长期跟踪某支队伍或某个赛程段，可以先把报告列表按类型筛好再收藏；涉及旧版资料的调取与合作洽谈，我们在工作时段内回复。</p>
        </div>
        <p class="next-band__actions">
          <a class="btn btn--solid" href="/cooperation/">联系合作</a>
          <a class="btn btn--line" href="/">回到赛前总览</a>
        </p>
      </div>
    </div>
  </section>

</main>

.page-news {
  --news-gap: clamp(18px, 2.6vw, 32px);
  --news-line: var(--ink-700);
  background: var(--ink-900);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.7;
  overflow-x: hidden;
}

.page-news h1,
.page-news h2,
.page-news h3 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.01em;
}

.page-news p {
  margin: 0;
}

.page-news a {
  color: var(--cyan);
  text-decoration: none;
  transition: color 0.2s var(--ease), border-color 0.2s var(--ease), background 0.2s var(--ease);
}

.page-news a:hover {
  color: var(--orange);
}

.page-news .mono {
  font-family: var(--font-mono);
}

.page-news .section {
  padding: clamp(34px, 5.6vw, 70px) 0;
}

/* 面包屑 */
.page-news .breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.06em;
  color: var(--paper-dim);
}

.page-news .breadcrumb__item + .breadcrumb__item::before {
  content: "/";
  margin-right: 6px;
  color: var(--steel);
}

.page-news .breadcrumb__link {
  color: var(--paper-dim);
}

.page-news .breadcrumb__current {
  color: var(--paper);
}

/* 眉标 */
.page-news .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cyan);
}

.page-news .eyebrow::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--cyan);
}

/* 首屏 */
.page-news .news-hero {
  position: relative;
  padding: clamp(24px, 4vw, 48px) 0 clamp(30px, 5vw, 62px);
  border-bottom: 1px solid var(--news-line);
  background:
    repeating-linear-gradient(90deg, rgba(94, 107, 122, 0.09) 0 1px, transparent 1px 64px),
    var(--ink-900);
}

.page-news .news-hero__inner {
  display: grid;
  gap: var(--news-gap);
}

.page-news .news-hero__copy {
  display: grid;
  gap: 14px;
  align-content: start;
}

.page-news .news-hero h1 {
  font-size: clamp(32px, 6vw, 62px);
  max-width: 20ch;
  text-wrap: balance;
}

.page-news .news-hero__lede {
  max-width: 60ch;
  color: var(--paper-dim);
  font-size: var(--fs-body);
}

.page-news .news-hero__lede--sub {
  padding-left: 14px;
  border-left: 2px solid var(--orange);
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .news-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 6px;
  border-top: 1px solid var(--news-line);
}

.page-news .news-stats__item {
  padding: 12px 12px 12px 0;
  border-bottom: 1px solid var(--news-line);
}

.page-news .news-stats__num {
  display: block;
  font-family: var(--font-mono);
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.2;
  color: var(--orange);
}

.page-news .news-stats__label {
  display: block;
  margin-top: 2px;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--paper-dim);
}

.page-news .news-hero__fig {
  margin: 0;
  border: 1px solid var(--news-line);
  background: var(--ink-950);
}

.page-news .news-hero__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.page-news .news-hero__cap {
  padding: 8px 12px;
  border-top: 1px solid var(--news-line);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.06em;
  color: var(--paper-dim);
}

/* 章节标题行 */
.page-news .section-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 6px 12px;
  padding-bottom: 12px;
  margin-bottom: var(--news-gap);
  border-bottom: 1px solid var(--news-line);
}

.page-news .section-head__index {
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.1em;
  color: var(--orange);
}

.page-news .section-head__title {
  font-size: var(--fs-h2);
}

.page-news .section-head__note {
  grid-column: 1 / -1;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 时间线引导图 */
.page-news .timeline-fig {
  margin: 0 0 var(--news-gap);
  border: 1px solid var(--news-line);
  background: var(--ink-950);
}

.page-news .timeline-fig img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: cover;
}

.page-news .timeline-fig__cap {
  padding: 8px 12px;
  border-top: 1px solid var(--news-line);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  color: var(--paper-dim);
}

/* 报告板：筛选 + 时间线 */
.page-news .report-board {
  display: grid;
  gap: var(--news-gap);
}

.page-news .report-filter {
  display: grid;
  gap: 12px;
  align-content: start;
  padding: 16px;
  border: 1px solid var(--news-line);
  background: var(--ink-800);
}

.page-news .report-filter__title {
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--paper);
}

.page-news .report-filter__hint {
  padding-top: 10px;
  border-top: 1px solid var(--news-line);
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.page-news .chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border: 1px solid var(--steel);
  border-radius: 0;
  background: transparent;
  color: var(--paper-dim);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.2s var(--ease), color 0.2s var(--ease), border-color 0.2s var(--ease);
}

.page-news .chip:hover {
  border-color: var(--cyan);
  color: var(--cyan);
}

.page-news .filter-radio:checked + .chip {
  background: var(--cyan);
  border-color: var(--cyan);
  color: var(--ink-950);
}

.page-news .filter-radio:focus-visible + .chip {
  outline: 2px solid var(--orange);
  outline-offset: 2px;
}

/* 纯 CSS 筛选 */
.page-news .report-board:has(#r-cat-pre:checked) .rl-item:not(.is-pre),
.page-news .report-board:has(#r-cat-pos:checked) .rl-item:not(.is-pos),
.page-news .report-board:has(#r-cat-squad:checked) .rl-item:not(.is-squad),
.page-news .report-board:has(#r-cat-compare:checked) .rl-item:not(.is-compare) {
  display: none;
}

/* 倒序时间线 */
.page-news .rl-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 16px;
}

.page-news .rl-item {
  --dot: var(--orange);
  position: relative;
  display: grid;
  gap: 8px;
  padding-left: 22px;
}

.page-news .rl-item.is-pre { --dot: var(--cyan); }
.page-news .rl-item.is-pos { --dot: var(--red); }
.page-news .rl-item.is-squad { --dot: var(--yellow); }
.page-news .rl-item.is-compare { --dot: var(--green); }

.page-news .rl-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 9px;
  height: 9px;
  background: var(--dot);
}

.page-news .rl-item::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 24px;
  bottom: -16px;
  width: 1px;
  background: var(--news-line);
}

.page-news .rl-item:last-child::after {
  display: none;
}

.page-news .rl-item__time {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--paper-dim);
}

.page-news .rl-item__time .mono {
  padding: 2px 6px;
  background: var(--ink-700);
  color: var(--paper);
}

.page-news .rl-item__card {
  display: grid;
  gap: 10px;
  padding: clamp(14px, 2vw, 22px);
  border: 1px solid var(--news-line);
  background: var(--ink-800);
  transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
}

.page-news .rl-item__card:hover,
.page-news .rl-item__card:focus-within {
  border-color: var(--steel);
  background: var(--ink-700);
}

.page-news .rl-item__card h3 {
  font-size: var(--fs-h3);
  color: var(--paper);
}

.page-news .rl-item__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.page-news .tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border: 1px solid currentColor;
  border-radius: 0;
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.page-news .tag--red { color: var(--red); }
.page-news .tag--cyan { color: var(--cyan); }
.page-news .tag--yellow { color: var(--yellow); }
.page-news .tag--green { color: var(--green); }
.page-news .tag--mono {
  color: var(--paper-dim);
  border-color: var(--news-line);
}

.page-news .rl-item__summary {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .rl-item__card:hover .rl-item__summary,
.page-news .rl-item__card:focus-within .rl-item__summary {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}

.page-news .rl-item__meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 14px;
  margin: 0;
  padding-top: 10px;
  border-top: 1px solid var(--news-line);
}

.page-news .rl-item__meta div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.page-news .rl-item__meta dt {
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--steel);
}

.page-news .rl-item__meta dd {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--paper);
}

/* 字段说明 */
.page-news .fields-grid {
  display: grid;
  gap: var(--news-gap);
}

.page-news .field-item {
  border: 1px solid var(--news-line);
  background: var(--ink-800);
}

.page-news .field-item + .field-item {
  border-top: 0;
}

.page-news .field-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  list-style: none;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 17px;
  color: var(--paper);
  transition: color 0.2s var(--ease), background 0.2s var(--ease);
}

.page-news .field-item summary::-webkit-details-marker {
  display: none;
}

.page-news .field-item summary::after {
  content: "+";
  font-family: var(--font-mono);
  color: var(--orange);
}

.page-news .field-item[open] summary::after {
  content: "–";
}

.page-news .field-item summary:hover {
  background: var(--ink-700);
}

.page-news .field-item[open] summary {
  color: var(--cyan);
  border-bottom: 1px solid var(--news-line);
}

.page-news .field-item__body {
  padding: 12px 16px 16px;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .fields-fig {
  margin: 0;
  border: 1px solid var(--news-line);
  background: var(--ink-950);
  align-self: start;
}

.page-news .fields-fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.page-news .fields-fig__cap {
  padding: 8px 12px;
  border-top: 1px solid var(--news-line);
  font-family: var(--font-mono);
  font-size: var(--fs-index);
  color: var(--paper-dim);
}

/* 3 月赛程段专题 */
.page-news .march-panel {
  display: grid;
  border: 1px solid var(--news-line);
  background: var(--ink-800);
}

.page-news .march-panel__fig {
  margin: 0;
  background: var(--ink-950);
  border-bottom: 1px solid var(--news-line);
}

.page-news .march-panel__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.page-news .march-panel__body {
  display: grid;
  gap: 16px;
  padding: clamp(18px, 3vw, 32px);
}

.page-news .march-panel__lede {
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .march-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.page-news .march-list__item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--news-line);
}

.page-news .march-list__no {
  padding-top: 4px;
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--orange);
}

.page-news .march-list__item h3 {
  font-size: 17px;
  color: var(--paper);
}

.page-news .march-list__item p {
  margin-top: 4px;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .march-panel__note {
  padding-left: 12px;
  border-left: 2px solid var(--cyan);
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 旧版对照 */
.page-news .archive-panel {
  display: grid;
  gap: var(--news-gap);
  padding: clamp(18px, 3vw, 34px);
  border: 1px solid var(--news-line);
  border-left: 3px solid var(--orange);
  background: var(--ink-800);
}

.page-news .archive-panel__copy {
  display: grid;
  gap: 12px;
  align-content: start;
}

.page-news .archive-panel__copy h2 {
  font-size: var(--fs-h2);
  max-width: 24ch;
}

.page-news .archive-panel__copy p {
  max-width: 62ch;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .archive-panel__actions,
.page-news .search-band__actions,
.page-news .next-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 4px;
}

.page-news .archive-facts {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  align-content: start;
  border-top: 1px solid var(--news-line);
}

.page-news .archive-facts li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 0;
  border-bottom: 1px solid var(--news-line);
}

.page-news .archive-facts__k {
  font-size: var(--fs-index);
  letter-spacing: 0.08em;
  color: var(--steel);
}

.page-news .archive-facts__v {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--paper);
}

/* 检索 */
.page-news .search-band {
  display: grid;
  gap: var(--news-gap);
  padding: clamp(18px, 3vw, 34px);
  border: 1px solid var(--news-line);
  background:
    linear-gradient(120deg, rgba(55, 230, 212, 0.07), transparent 55%),
    var(--ink-800);
}

.page-news .search-band__copy {
  display: grid;
  gap: 12px;
  align-content: start;
}

.page-news .search-band__copy h2 {
  font-size: var(--fs-h2);
  max-width: 22ch;
}

.page-news .search-band__copy p {
  max-width: 58ch;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

.page-news .search-ways {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.page-news .search-ways__item {
  display: grid;
  gap: 6px;
  padding: 14px 16px;
  border: 1px solid var(--news-line);
  background: var(--ink-900);
}

.page-news .search-ways__idx {
  font-size: var(--fs-index);
  letter-spacing: 0.1em;
  color: var(--cyan);
}

.page-news .search-ways__item h3 {
  font-size: 17px;
  color: var(--paper);
}

.page-news .search-ways__item p {
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 结尾推进 */
.page-news .section--last {
  border-top: 1px solid var(--news-line);
  background: var(--ink-950);
}

.page-news .next-band {
  display: grid;
  gap: 14px;
}

.page-news .next-band h2 {
  font-size: var(--fs-h2);
  max-width: 22ch;
}

.page-news .next-band p {
  max-width: 58ch;
  font-size: var(--fs-small);
  color: var(--paper-dim);
}

/* 按钮 */
.page-news .btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 18px;
  border: 1px solid var(--steel);
  border-radius: 0;
  background: transparent;
  color: var(--paper);
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: 0.06em;
  cursor: pointer;
}

.page-news .btn--solid {
  background: var(--orange);
  border-color: var(--orange);
  color: var(--ink-950);
}

.page-news .btn--solid:hover {
  background: var(--cyan);
  border-color: var(--cyan);
  color: var(--ink-950);
}

.page-news .btn--line:hover {
  border-color: var(--cyan);
  color: var(--cyan);
}

/* 桌面增强 */
@media (min-width: 900px) {
  .page-news .news-hero__inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    align-items: end;
  }

  .page-news .news-hero__lede--sub {
    max-width: 54ch;
  }

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

  .page-news .news-stats__item {
    padding: 14px 14px 14px 0;
  }

  .page-news .news-stats__item + .news-stats__item {
    padding-left: 14px;
    border-left: 1px solid var(--news-line);
  }

  .page-news .section-head {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: end;
  }

  .page-news .section-head__note {
    grid-column: auto;
    max-width: 32ch;
    text-align: right;
  }

  .page-news .report-board {
    grid-template-columns: 232px minmax(0, 1fr);
    align-items: start;
  }

  .page-news .report-filter {
    position: sticky;
    top: calc(var(--header-h) + 16px);
  }

  .page-news .fields-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr);
    align-items: start;
  }

  .page-news .march-panel {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    align-items: stretch;
  }

  .page-news .march-panel__fig {
    border-bottom: 0;
    border-right: 1px solid var(--news-line);
  }

  .page-news .march-panel__fig img {
    height: 100%;
    min-height: 340px;
    aspect-ratio: auto;
  }

  .page-news .archive-panel {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.5fr);
    align-items: start;
  }

  .page-news .search-band {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
  }

  .page-news .next-band {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
  }

  .page-news .rl-item:nth-child(3n + 2) .rl-item__card {
    margin-right: clamp(0px, 7vw, 110px);
  }

  .page-news .rl-item:nth-child(3n) .rl-item__card {
    margin-left: clamp(0px, 4vw, 64px);
  }
}

@media (min-width: 1280px) {
  .page-news .rl-item__meta {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-news *,
  .page-news *::before,
  .page-news *::after {
    transition-duration: 0.01ms !important;
  }
}
