.page-news {
  --news-line: rgba(23, 24, 26, 0.13);
  --news-line-dark: rgba(251, 247, 239, 0.16);
  --news-deep-text: #556880;
  background: var(--paper);
  color: var(--text);
  font-family: var(--font-sans);
  overflow-x: clip;
}

.page-news .sf-shell {
  position: relative;
}

/* ---------- hero ---------- */

.page-news .news-hero {
  position: relative;
  background: var(--ink);
  color: var(--bone);
  padding: clamp(22px, 4vw, 40px) 0 0;
  overflow: hidden;
}

.page-news .news-hero::before {
  content: "";
  position: absolute;
  inset: -30% -12% auto -12%;
  height: 78%;
  background:
    radial-gradient(ellipse at 18% 0%, rgba(228, 180, 76, 0.22), transparent 62%),
    radial-gradient(ellipse at 88% 24%, rgba(185, 255, 75, 0.13), transparent 58%);
  pointer-events: none;
}

.page-news .news-hero__crumbs ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: var(--haze);
}

.page-news .news-hero__crumbs li + li::before {
  content: "／";
  margin-right: 8px;
  color: rgba(134, 152, 179, 0.6);
}

.page-news .news-hero__crumbs a {
  color: var(--haze);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

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

.page-news .news-hero__head {
  position: relative;
  padding: clamp(30px, 6vw, 66px) 0 0;
  max-width: 900px;
}

.page-news .news-hero__title {
  margin: 16px 0 0;
  font-size: clamp(34px, 7.4vw, 74px);
  line-height: 1.03;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--bone);
  max-width: 15ch;
  text-wrap: balance;
}

.page-news .news-hero__lede {
  margin: 22px 0 0;
  max-width: 60ch;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.85;
  color: var(--haze);
}

.page-news .news-hero__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.page-news .news-hero__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(32px, 5vw, 54px);
  background: var(--news-line-dark);
  border: 1px solid var(--news-line-dark);
}

.page-news .news-stat {
  background: var(--ink-2);
  padding: 18px 16px 20px;
}

.page-news .news-stat__num {
  display: block;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: clamp(24px, 4.4vw, 36px);
  line-height: 1.08;
  color: var(--gold);
}

.page-news .news-stat__unit {
  font-size: 0.5em;
  margin-left: 3px;
  color: var(--haze);
}

.page-news .news-stat__label {
  margin: 8px 0 0;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--haze);
}

.page-news .news-hero__frame {
  margin: clamp(30px, 5vw, 56px) 0 0;
  position: relative;
  clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 34px 100%, 0 calc(100% - 34px));
  border: 1px solid var(--news-line-dark);
}

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

/* ---------- toc ---------- */

.page-news .news-toc {
  background: var(--bone);
  border-bottom: 1px solid var(--rule);
  padding: 16px 0 18px;
}

.page-news .news-toc__inner {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.page-news .news-toc__label {
  margin: 0;
}

.page-news .news-toc__list {
  list-style: none;
  margin: 0;
  padding: 0 0 4px;
  display: flex;
  gap: 6px 22px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}

.page-news .news-toc__list li {
  flex: 0 0 auto;
}

.page-news .news-toc__list a {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
  font-size: 14px;
  color: var(--text);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: color 200ms var(--ease), border-color 200ms var(--ease);
}

.page-news .news-toc__list a:hover,
.page-news .news-toc__list a:focus-visible {
  color: var(--gold-deep);
}

.page-news .news-toc__list a[data-active] {
  border-bottom-color: var(--gold);
  color: var(--gold-deep);
}

.page-news .news-toc__list .sf-mono {
  font-size: 12px;
  color: var(--gold-deep);
}

/* ---------- shared section bits ---------- */

.page-news .news-sec {
  padding: clamp(46px, 8vw, 100px) 0;
}

.page-news .news-sec--index {
  background: var(--paper);
}

.page-news .news-sec--leagues {
  background: var(--bone);
}

.page-news .news-sec--subscribe {
  background: var(--bone);
}

.page-news .news-chapter {
  margin-bottom: clamp(26px, 4vw, 42px);
  max-width: 760px;
}

.page-news .news-chapter .sf-chapter__title {
  margin: 10px 0 0;
}

.page-news .news-chapter .sf-chapter__note {
  margin: 12px 0 0;
  max-width: 58ch;
}

/* ---------- 01 index ---------- */

.page-news .news-idx {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.page-news .news-idx__item {
  position: relative;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  padding: 16px 16px 18px 14px;
  background: var(--bone);
  border: 1px solid var(--news-line);
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
  transition: transform 220ms var(--ease), background 220ms var(--ease), box-shadow 220ms var(--ease);
}

.page-news .news-idx__item::after {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 2px;
  background: var(--rule);
  transition: background 220ms var(--ease);
}

.page-news .news-idx__item:hover,
.page-news .news-idx__item:focus-within {
  transform: translateY(-3px);
  background: #ffffff;
  box-shadow: 0 12px 26px -18px rgba(10, 17, 31, 0.55);
}

.page-news .news-idx__item:hover::after,
.page-news .news-idx__item:focus-within::after {
  background: var(--gold);
}

.page-news .news-idx__seat {
  font-size: 15px;
  color: var(--gold-deep);
  letter-spacing: 0.06em;
  padding-top: 2px;
}

.page-news .news-idx__body {
  min-width: 0;
}

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

.page-news .news-idx__tag {
  font-size: 12px;
  letter-spacing: 0.08em;
  padding: 3px 9px;
  border: 1px solid var(--news-line);
  clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
}

.page-news .news-idx__tag--report {
  color: var(--gold-deep);
  border-color: rgba(138, 106, 34, 0.5);
}

.page-news .news-idx__tag--lineup {
  color: var(--text);
  border-color: var(--news-line-dark);
  background: var(--ink);
}

.page-news .news-idx__tag--lineup {
  color: var(--bone);
  background: var(--ink);
  border-color: transparent;
}

.page-news .news-idx__tag--review {
  color: var(--news-deep-text);
  border-color: rgba(85, 104, 128, 0.45);
}

.page-news .news-idx__tag--feature {
  color: var(--text);
  background: rgba(228, 180, 76, 0.34);
  border-color: transparent;
}

.page-news .news-idx__lg {
  font-size: 12px;
  color: var(--haze);
  letter-spacing: 0.05em;
}

.page-news .news-idx__title {
  margin: 10px 0 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--text);
  letter-spacing: -0.005em;
}

.page-news .news-idx__meta {
  margin: 10px 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  color: var(--news-deep-text);
  font-variant-numeric: tabular-nums;
}

.page-news .news-idx__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  flex: 0 0 auto;
}

.page-news .news-idx__dot--live {
  background: var(--live);
}

/* ---------- 02 leagues ---------- */

.page-news .news-tabs__bar {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 6px;
  scrollbar-width: thin;
  scrollbar-color: var(--gold-deep) transparent;
}

.page-news .news-tabs__btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: inherit;
  font-size: 14px;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--news-line);
  padding: 9px 16px;
  cursor: pointer;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
  transition: background 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
}

.page-news .news-tabs__btn .sf-mono {
  font-size: 12px;
  color: var(--gold-deep);
}

.page-news .news-tabs__btn:hover {
  border-color: var(--gold-deep);
}

.page-news .news-tabs__btn:focus-visible {
  outline: 2px solid var(--gold-deep);
  outline-offset: 2px;
}

.page-news .news-tabs__btn[aria-selected="true"],
.page-news .news-tabs__btn[data-active] {
  background: var(--ink);
  color: var(--bone);
  border-color: var(--ink);
}

.page-news .news-tabs__btn[aria-selected="true"] .sf-mono,
.page-news .news-tabs__btn[data-active] .sf-mono {
  color: var(--neon);
}

.page-news .news-tabs__panel {
  margin-top: 22px;
}

.page-news .news-tabs__panel[hidden] {
  display: none;
}

.page-news .news-lg {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.page-news .news-lg__item {
  padding: 15px 16px;
  background: var(--paper);
  border-left: 3px solid var(--rule);
  transition: border-color 200ms var(--ease), transform 200ms var(--ease);
}

.page-news .news-lg__item:hover {
  border-left-color: var(--gold);
  transform: translateX(3px);
}

.page-news .news-lg__name {
  display: block;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.005em;
}

.page-news .news-lg__note {
  margin: 7px 0 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--news-deep-text);
}

.page-news .news-leagues__foot {
  margin: 26px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--news-deep-text);
  max-width: 68ch;
  padding-left: 16px;
  border-left: 2px solid var(--gold);
}

/* ---------- 03 features ---------- */

.page-news .news-sec--features {
  background: var(--ink);
  color: var(--bone);
  padding-left: 0;
  padding-right: 0;
  position: relative;
  overflow: hidden;
}

.page-news .news-sec--features::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(228, 180, 76, 0.6), transparent);
}

.page-news .news-chapter--dark .sf-chapter__title {
  color: var(--bone);
}

.page-news .news-chapter--dark .sf-chapter__note {
  color: var(--haze);
}

.page-news .news-feat__rail {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  padding: 10px var(--gut) 30px;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}

.page-news .news-feat__rail::-webkit-scrollbar {
  height: 6px;
}

.page-news .news-feat__rail::-webkit-scrollbar-thumb {
  background: var(--gold);
  border-radius: 3px;
}

.page-news .news-feat__track {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  width: max-content;
  padding-right: 12px;
}

.page-news .news-feat__card {
  flex: 0 0 min(320px, 76vw);
  scroll-snap-align: start;
  background: var(--ink-2);
  border: 1px solid var(--news-line-dark);
  padding: 20px 20px 26px;
  clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px));
  transition: transform 260ms var(--ease), border-color 260ms var(--ease);
}

.page-news .news-feat__card:nth-child(even) {
  margin-top: 26px;
}

.page-news .news-feat__card:hover {
  transform: translateY(-4px);
  border-color: rgba(228, 180, 76, 0.55);
}

.page-news .news-feat__media {
  margin: 0 0 18px;
  overflow: hidden;
  border: 1px solid var(--news-line-dark);
}

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

.page-news .news-feat__media--tilt {
  transform: rotate(-2deg) scale(0.97);
}

.page-news .news-feat__kicker {
  margin: 0;
}

.page-news .news-feat__title {
  margin: 12px 0 0;
  color: var(--bone);
  font-size: 22px;
}

.page-news .news-feat__text {
  margin: 12px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--haze);
}

.page-news .news-feat__tagline {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--news-line-dark);
  font-size: 12.5px;
  letter-spacing: 0.05em;
  color: var(--haze);
}

.page-news .news-feat__tagline .sf-mono {
  color: var(--neon);
}

.page-news .news-feat__foot {
  margin: 4px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--haze);
  max-width: 68ch;
}

/* ---------- 04 timeline ---------- */

.page-news .news-tl {
  display: grid;
  gap: 30px;
}

.page-news .news-tl__chart {
  margin-bottom: 22px;
}

.page-news .news-tl__chart svg {
  display: block;
  width: 100%;
  height: 64px;
}

.page-news .news-tl__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.page-news .news-tl__step {
  padding-top: 14px;
  border-top: 2px solid var(--rule);
  transition: border-color 220ms var(--ease);
}

.page-news .news-tl__step:hover {
  border-top-color: var(--gold);
}

.page-news .news-tl__n {
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--gold-deep);
}

.page-news .news-tl__name {
  margin: 8px 0 0;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.005em;
}

.page-news .news-tl__desc {
  margin: 8px 0 0;
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--news-deep-text);
}

.page-news .news-tl__figure {
  margin: 0;
  border: 1px solid var(--news-line);
  background: var(--bone);
  padding: 10px;
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
}

.page-news .news-tl__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 12 / 7;
  object-fit: cover;
}

.page-news .news-tl__figure figcaption {
  margin: 12px 2px 4px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--news-deep-text);
}

/* ---------- 05 subscribe ---------- */

.page-news .news-sub__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.page-news .news-sub__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px 22px 26px;
  background: var(--paper);
  border: 1px solid var(--news-line);
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
  transition: transform 240ms var(--ease), box-shadow 240ms var(--ease);
}

.page-news .news-sub__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 30px -22px rgba(10, 17, 31, 0.6);
}

.page-news .news-sub__title {
  margin: 12px 0 0;
  font-size: 19px;
}

.page-news .news-sub__text {
  margin: 12px 0 22px;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--news-deep-text);
  flex: 1 1 auto;
}

/* ---------- 06 partner ---------- */

.page-news .news-partner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}

.page-news .news-partner__main {
  background: var(--ink);
  color: var(--bone);
  padding: clamp(24px, 4vw, 38px);
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 26px 100%, 0 calc(100% - 26px));
}

.page-news .news-partner__title {
  margin: 0;
  color: var(--bone);
  font-size: 22px;
}

.page-news .news-partner__text {
  margin: 16px 0 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--haze);
  max-width: 62ch;
}

.page-news .news-partner__list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.page-news .news-partner__list li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--bone);
  padding-top: 14px;
  border-top: 1px solid var(--news-line-dark);
}

.page-news .news-partner__list .sf-mono {
  color: var(--gold);
  font-size: 13px;
  padding-top: 3px;
}

.page-news .news-partner__side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 26px 22px 28px;
  background: var(--bone);
  border: 1px solid var(--news-line);
  border-top: 3px solid var(--gold);
}

.page-news .news-partner__mail {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 15px;
  word-break: break-all;
  color: var(--text);
}

.page-news .news-partner__note {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--news-deep-text);
}

.page-news .news-partner__btn2 {
  margin-top: -2px;
}

/* ---------- breakpoints ---------- */

@media (min-width: 640px) {
  .page-news .news-idx {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

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

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

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

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

@media (min-width: 900px) {
  .page-news .news-feat__card {
    flex: 0 0 340px;
  }
}

@media (min-width: 1024px) {
  .page-news .news-idx {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .page-news .news-idx > li:nth-child(3n + 2) {
    padding-top: 30px;
  }

  .page-news .news-idx > li:nth-child(3n) {
    padding-top: 60px;
  }

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

  .page-news .news-sub__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  .page-news .news-tl {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.9fr);
    align-items: start;
    gap: 40px;
  }

  .page-news .news-tl__steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
  }

  .page-news .news-partner {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.85fr);
    gap: 28px;
    align-items: start;
  }
}

@media (min-width: 1180px) {
  .page-news .news-feat__card {
    flex: 0 0 360px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-news .news-idx__item,
  .page-news .news-feat__card,
  .page-news .news-sub__card,
  .page-news .news-lg__item {
    transition: none;
  }

  .page-news .news-idx__item:hover,
  .page-news .news-feat__card:hover,
  .page-news .news-sub__card:hover,
  .page-news .news-lg__item:hover {
    transform: none;
  }
}
<<<END>>>

等等——我加了个 `<<<END>>>`，但按说明格式，只能输出 `` 和 `` 这两个标记，多出来的标记算违规。我删掉。
<main id="main-content" class="page-news">

  <section class="news-hero">
    <div class="sf-shell">
      <nav class="sf-crumbs news-hero__crumbs" aria-label="页面位置">
        <ol>
          <li><a href="/">星空首页</a></li>
          <li aria-current="page">战报与专题</li>
        </ol>
      </nav>

      <div class="news-hero__head">
        <p class="sf-meta sf-meta--gold">比赛日 · 每日更新</p>
        <h1 class="sf-display news-hero__title">今晚想看哪几场，先在这里翻一遍</h1>
        <p class="sf-lede news-hero__lede">
          星空赛事把每个比赛日的 30-60 场比赛，收成一张阵容卡加一份 90 秒读完的战报。从星空体育战报进入，你可以按联赛、按赛季阶段或者按专题系列往下读；追的联赛什么时候更新、哪几场冒出了伤停变化，扫一遍条目就有数。
        </p>
        <div class="news-hero__acts">
          <a class="sf-btn sf-btn--gold" href="/experience/">看多联赛同屏怎么用</a>
          <a class="sf-btn sf-btn--outline" href="#news-index">直接翻今天的条目</a>
        </div>
      </div>

      <div class="news-hero__stats">
        <div class="news-stat">
          <span class="news-stat__num">26</span>
          <p class="news-stat__label">个联赛覆盖</p>
        </div>
        <div class="news-stat">
          <span class="news-stat__num">30-60</span>
          <p class="news-stat__label">场／比赛日</p>
        </div>
        <div class="news-stat">
          <span class="news-stat__num">48,000+</span>
          <p class="news-stat__label">篇已发战报</p>
        </div>
        <div class="news-stat">
          <span class="news-stat__num">90<span class="news-stat__unit">秒</span></span>
          <p class="news-stat__label">读完一份摘要</p>
        </div>
      </div>

      <figure class="news-hero__frame">
        <img src="{zhanqunpic:h:800w:1600}" width="1600" height="800" alt="夜场球场大屏与看台灯光，画面以光斑和观众轮廓为主">
      </figure>
    </div>
  </section>

  <nav class="news-toc" aria-label="章节索引">
    <div class="sf-shell news-toc__inner">
      <p class="sf-meta news-toc__label">章节索引</p>
      <ol class="news-toc__list">
        <li><a href="#news-index" data-toc-link><span class="sf-mono">01</span>今日条目</a></li>
        <li><a href="#news-leagues" data-toc-link><span class="sf-mono">02</span>联赛频道</a></li>
        <li><a href="#news-features" data-toc-link><span class="sf-mono">03</span>专题系列</a></li>
        <li><a href="#news-timeline" data-toc-link><span class="sf-mono">04</span>赛季阶段</a></li>
        <li><a href="#news-subscribe" data-toc-link><span class="sf-mono">05</span>订阅与提醒</a></li>
        <li><a href="#news-partner" data-toc-link><span class="sf-mono">06</span>选题合作</a></li>
      </ol>
    </div>
  </nav>

  <section id="news-index" class="news-sec news-sec--index" data-section>
    <div class="sf-shell">
      <header class="sf-chapter news-chapter" data-reveal>
        <span class="sf-chapter__num">01</span>
        <h2 class="sf-h2 sf-chapter__title">今天已经出了哪些条目</h2>
        <p class="sf-chapter__note">按更新时间从近到远排，先扫标题，再决定要不要看阵容细节。</p>
      </header>

      <ol class="news-idx">
        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">01</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--report">战报</span>
              <span class="news-idx__lg">欧洲主流</span>
            </div>
            <h3 class="news-idx__title">换人之后的三次回收，领先一直守到终场</h3>
            <p class="news-idx__meta"><span class="news-idx__dot"></span>昨晚 · 90 秒摘要</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">02</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--lineup">阵容</span>
              <span class="news-idx__lg">亚洲与大洋洲</span>
            </div>
            <h3 class="news-idx__title">开赛前十分钟确认，主队中场连换两人</h3>
            <p class="news-idx__meta"><span class="news-idx__dot news-idx__dot--live"></span>1 小时前 · 阵容卡已确认</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">03</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--review">复盘</span>
              <span class="news-idx__lg">洲际杯赛</span>
            </div>
            <h3 class="news-idx__title">高位压迫失效的三个信号，以及中场休息的两次调整</h3>
            <p class="news-idx__meta"><span class="news-idx__dot"></span>昨晚 · 战术板拆解</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">04</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--report">战报</span>
              <span class="news-idx__lg">欧洲其他</span>
            </div>
            <h3 class="news-idx__title">加时阶段的体能分配，决定了最后二十分钟的走向</h3>
            <p class="news-idx__meta"><span class="news-idx__dot"></span>两天前 · 90 秒摘要</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">05</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--lineup">阵容</span>
              <span class="news-idx__lg">美洲</span>
            </div>
            <h3 class="news-idx__title">伤停名单更新之后，中场配置的第二套备选</h3>
            <p class="news-idx__meta"><span class="news-idx__dot news-idx__dot--live"></span>昨天 · 含停赛标记</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">06</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--feature">专题</span>
              <span class="news-idx__lg">第一排视角</span>
            </div>
            <h3 class="news-idx__title">客队看台的九十分钟：声浪从哪里开始断档</h3>
            <p class="news-idx__meta"><span class="news-idx__dot"></span>上周 · 看台观察</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">07</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--review">复盘</span>
              <span class="news-idx__lg">欧洲主流</span>
            </div>
            <h3 class="news-idx__title">定位球防守从区域切到人盯人，代价与收益各占多少</h3>
            <p class="news-idx__meta"><span class="news-idx__dot"></span>两天前 · 战术板拆解</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">08</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--report">战报</span>
              <span class="news-idx__lg">亚洲与大洋洲</span>
            </div>
            <h3 class="news-idx__title">补时读秒的节奏，与替补席上的临场选择</h3>
            <p class="news-idx__meta"><span class="news-idx__dot"></span>昨晚 · 90 秒摘要</p>
          </div>
        </li>

        <li class="news-idx__item" data-reveal>
          <span class="news-idx__seat sf-mono">09</span>
          <div class="news-idx__body">
            <div class="news-idx__tags">
              <span class="news-idx__tag news-idx__tag--lineup">阵容</span>
              <span class="news-idx__lg">欧洲主流</span>
            </div>
            <h3 class="news-idx__title">停赛一人、伤停两人，锋线位置还剩两条路</h3>
            <p class="news-idx__meta"><span class="news-idx__dot news-idx__dot--live"></span>3 小时前 · 阵容卡已确认</p>
          </div>
        </li>
      </ol>
    </div>
  </section>

  <section id="news-leagues" class="news-sec news-sec--leagues" data-section>
    <div class="sf-shell">
      <header class="sf-chapter news-chapter" data-reveal>
        <span class="sf-chapter__num">02</span>
        <h2 class="sf-h2 sf-chapter__title">26 个联赛，各自的更新时段不一样</h2>
        <p class="sf-chapter__note">挑你常看的那一组点开，看看它偏重什么、几点钟最容易刷出新条目。</p>
      </header>

      <div class="news-tabs" data-tabs>
        <div class="news-tabs__bar" role="tablist" aria-label="联赛分组">
          <button type="button" class="news-tabs__btn" role="tab" id="lg-tab-eu" aria-controls="lg-panel-eu" aria-selected="true" data-tab="eu">欧洲主流<span class="sf-mono">07</span></button>
          <button type="button" class="news-tabs__btn" role="tab" id="lg-tab-eu2" aria-controls="lg-panel-eu2" aria-selected="false" data-tab="eu2">欧洲其他与洲际<span class="sf-mono">07</span></button>
          <button type="button" class="news-tabs__btn" role="tab" id="lg-tab-asia" aria-controls="lg-panel-asia" aria-selected="false" data-tab="asia">亚洲与大洋洲<span class="sf-mono">06</span></button>
          <button type="button" class="news-tabs__btn" role="tab" id="lg-tab-am" aria-controls="lg-panel-am" aria-selected="false" data-tab="am">美洲<span class="sf-mono">06</span></button>
        </div>

        <div class="news-tabs__panels">
          <div class="news-tabs__panel" role="tabpanel" id="lg-panel-eu" aria-labelledby="lg-tab-eu" data-panel="eu">
            <ul class="news-lg">
              <li class="news-lg__item"><span class="news-lg__name">英超</span><p class="news-lg__note">赛后快讯加伤停追踪，凌晨再补一次阵容变化</p></li>
              <li class="news-lg__item"><span class="news-lg__name">西甲</span><p class="news-lg__note">技术流复盘为主，晚间场次集中在同一时段更新</p></li>
              <li class="news-lg__item"><span class="news-lg__name">意甲</span><p class="news-lg__note">战术板条目最多，次日午间出深度摘要</p></li>
              <li class="news-lg__item"><span class="news-lg__name">德甲</span><p class="news-lg__note">节奏快、摘要短，阵容卡在这一组里出得最早</p></li>
              <li class="news-lg__item"><span class="news-lg__name">法甲</span><p class="news-lg__note">年轻球员出场记录与阵容轮换一并标出</p></li>
              <li class="news-lg__item"><span class="news-lg__name">荷甲</span><p class="news-lg__note">进球密集的场次优先，周末晚间集中推送</p></li>
              <li class="news-lg__item"><span class="news-lg__name">葡超</span><p class="news-lg__note">与洲际赛事交叉，赛程密集期条目量翻倍</p></li>
            </ul>
          </div>

          <div class="news-tabs__panel" role="tabpanel" id="lg-panel-eu2" aria-labelledby="lg-tab-eu2" data-panel="eu2" hidden>
            <ul class="news-lg">
              <li class="news-lg__item"><span class="news-lg__name">英冠</span><p class="news-lg__note">赛程密，轮换信息比比分更值得先看</p></li>
              <li class="news-lg__item"><span class="news-lg__name">德乙</span><p class="news-lg__note">早场居多，白天就能读到当轮摘要</p></li>
              <li class="news-lg__item"><span class="news-lg__name">西乙</span><p class="news-lg__note">升级区形势按轮次汇总成一条</p></li>
              <li class="news-lg__item"><span class="news-lg__name">比甲</span><p class="news-lg__note">附加赛阶段单独成组，条目另起一栏</p></li>
              <li class="news-lg__item"><span class="news-lg__name">欧冠</span><p class="news-lg__note">比赛日夜间高频更新，阵容卡最先发布</p></li>
              <li class="news-lg__item"><span class="news-lg__name">欧联</span><p class="news-lg__note">与国内联赛交叉，轮换影响单独标注</p></li>
              <li class="news-lg__item"><span class="news-lg__name">世俱杯</span><p class="news-lg__note">跨时区赛程，摘要按结束时间顺序排列</p></li>
            </ul>
          </div>

          <div class="news-tabs__panel" role="tabpanel" id="lg-panel-asia" aria-labelledby="lg-tab-asia" data-panel="asia" hidden>
            <ul class="news-lg">
              <li class="news-lg__item"><span class="news-lg__name">中超</span><p class="news-lg__note">时段友好，晚间赛后一小时内出摘要</p></li>
              <li class="news-lg__item"><span class="news-lg__name">J1 联赛</span><p class="news-lg__note">跑动与压迫类条目占比高，附场面数据</p></li>
              <li class="news-lg__item"><span class="news-lg__name">K 联赛</span><p class="news-lg__note">轮换规律稳定，适合长期跟一条线看</p></li>
              <li class="news-lg__item"><span class="news-lg__name">澳超</span><p class="news-lg__note">南半球赛季错开，反季节时段内容不断档</p></li>
              <li class="news-lg__item"><span class="news-lg__name">亚冠</span><p class="news-lg__note">与国内联赛交叉期，伤停信息合并展示</p></li>
              <li class="news-lg__item"><span class="news-lg__name">女超</span><p class="news-lg__note">专题与复盘的比重高于单场快讯</p></li>
            </ul>
          </div>

          <div class="news-tabs__panel" role="tabpanel" id="lg-panel-am" aria-labelledby="lg-tab-am" data-panel="am" hidden>
            <ul class="news-lg">
              <li class="news-lg__item"><span class="news-lg__name">巴甲</span><p class="news-lg__note">开赛偏后，次日早间集中补一轮条目</p></li>
              <li class="news-lg__item"><span class="news-lg__name">阿甲</span><p class="news-lg__note">分组赛制，按阶段出一个汇总条目</p></li>
              <li class="news-lg__item"><span class="news-lg__name">MLS</span><p class="news-lg__note">跨时区跨度大，赛历订阅用得最多</p></li>
              <li class="news-lg__item"><span class="news-lg__name">墨超</span><p class="news-lg__note">附加赛阶段条目密度明显上升</p></li>
              <li class="news-lg__item"><span class="news-lg__name">智甲</span><p class="news-lg__note">高原场地的战术条目单独归类</p></li>
              <li class="news-lg__item"><span class="news-lg__name">哥伦甲</span><p class="news-lg__note">年轻球员出场记录与阵容变动一起放</p></li>
            </ul>
          </div>
        </div>
      </div>

      <p class="news-leagues__foot" data-reveal>全站共覆盖 26 个联赛与 180 余项杯赛赛事，比赛日单日内容量在 30-60 场之间。阵容卡在开赛前十分钟内完成确认与发布，首发、替补、伤停、停赛四类状态分别标记。</p>
    </div>
  </section>

  <section id="news-features" class="news-sec news-sec--features" data-section>
    <div class="sf-shell">
      <header class="sf-chapter news-chapter news-chapter--dark" data-reveal>
        <span class="sf-chapter__num">03</span>
        <h2 class="sf-h2 sf-chapter__title">每周三期专题，跟一条线往下读</h2>
        <p class="sf-chapter__note">比赛结果看完就过去，专题留下的是一条能连着读几周的线。</p>
      </header>
    </div>

    <div class="news-feat__rail" tabindex="0" role="region" aria-label="专题系列">
      <div class="news-feat__track">
        <article class="news-feat__card" data-reveal>
          <figure class="news-feat__media">
            <img src="{zhanqunpic:h:900w:1200}" width="1200" height="900" alt="俯拍战术板，画有阵型线条与跑动箭头，画面中没有文字" loading="lazy" decoding="async">
          </figure>
          <p class="sf-meta sf-meta--gold news-feat__kicker">每周一期 · 每月一篇深度</p>
          <h3 class="sf-h3 news-feat__title">一周战术复盘</h3>
          <p class="news-feat__text">把这一周最值得回看的几场放在一起，讲清楚阵型怎么变、换人想解决什么问题。月底那篇写得更细，会连着几轮的调整一起看。</p>
          <p class="news-feat__tagline"><span class="sf-mono">战术板</span> · 阵型与临场调整</p>
        </article>

        <article class="news-feat__card" data-reveal>
          <figure class="news-feat__media news-feat__media--tilt">
            <img src="{zhanqunpic:h:900w:1400}" width="1400" height="900" alt="客队看台的观众剪影与围栏前景，逆光拍摄，没有面部特写" loading="lazy" decoding="async">
          </figure>
          <p class="sf-meta sf-meta--gold news-feat__kicker">每周一期</p>
          <h3 class="sf-h3 news-feat__title">第一排视角</h3>
          <p class="news-feat__text">写的是坐在看台上能感觉到、但比分牌上看不到的东西：什么时候声浪起来，什么时候看台安静下来，主客队球迷的情绪拐点在哪一分钟。</p>
          <p class="news-feat__tagline"><span class="sf-mono">看台</span> · 临场与氛围</p>
        </article>

        <article class="news-feat__card" data-reveal>
          <p class="sf-meta sf-meta--gold news-feat__kicker">每周一期</p>
          <h3 class="sf-h3 news-feat__title">转会窗口观察</h3>
          <p class="news-feat__text">窗口期里，人员流动会直接改写下赛季的阵容结构。这一条线盯的是位置补强、合约到期与租借回归，按联赛分组来看。</p>
          <p class="news-feat__tagline"><span class="sf-mono">人员</span> · 流动与补强</p>
        </article>

        <article class="news-feat__card" data-reveal>
          <p class="sf-meta sf-meta--gold news-feat__kicker">随阶段更新</p>
          <h3 class="sf-h3 news-feat__title">赛季阶段观察</h3>
          <p class="news-feat__text">每走到一个新的阶段节点就出一期，把这段时间的积分走势、伤停累积和轮换深度摊开讲一遍，帮你在密集赛程里保持判断。</p>
          <p class="news-feat__tagline"><span class="sf-mono">阶段</span> · 走势与轮换</p>
        </article>
      </div>
    </div>

    <div class="sf-shell">
      <p class="news-feat__foot" data-reveal>专题按系列归档，同一系列下的往期都能顺着往下翻。累计发布战报 48,000 余篇、阵容卡 62,000 余张，其中不少条目后来被并进了专题的上下文里。</p>
    </div>
  </section>

  <section id="news-timeline" class="news-sec news-sec--timeline" data-section>
    <div class="sf-shell">
      <header class="sf-chapter news-chapter" data-reveal>
        <span class="sf-chapter__num">04</span>
        <h2 class="sf-h2 sf-chapter__title">赛季走到哪一段，内容重心就跟着变</h2>
        <p class="sf-chapter__note">阶段比日期好用：你现在大概处在哪里，往下翻的时候就知道该重点看什么。</p>
      </header>

      <div class="news-tl">
        <div class="news-tl__left">
          <div class="news-tl__chart" aria-hidden="true">
            <svg viewBox="0 0 1000 64" preserveAspectRatio="none" focusable="false">
              <polyline points="100,46 300,26 500,40 700,16 900,32" fill="none" stroke="#E4B44C" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
              <polyline points="100,58 300,58 500,58 700,58 900,58" fill="none" stroke="#D8D2C6" stroke-width="1" stroke-dasharray="4 6"/>
              <circle cx="100" cy="46" r="5" fill="#0A111F" stroke="#E4B44C" stroke-width="2"/>
              <circle cx="300" cy="26" r="5" fill="#0A111F" stroke="#E4B44C" stroke-width="2"/>
              <circle cx="500" cy="40" r="5" fill="#0A111F" stroke="#E4B44C" stroke-width="2"/>
              <circle cx="700" cy="16" r="5" fill="#0A111F" stroke="#E4B44C" stroke-width="2"/>
              <circle cx="900" cy="32" r="5" fill="#0A111F" stroke="#E4B44C" stroke-width="2"/>
            </svg>
          </div>

          <ol class="news-tl__steps">
            <li class="news-tl__step" data-reveal>
              <span class="news-tl__n sf-mono">01</span>
              <h3 class="news-tl__name">赛前准备期</h3>
              <p class="news-tl__desc">阵容变动最集中，转会与伤停条目同时上量，适合先把常看的联赛订阅起来。</p>
            </li>
            <li class="news-tl__step" data-reveal>
              <span class="news-tl__n sf-mono">02</span>
              <h3 class="news-tl__name">开季磨合期</h3>
              <p class="news-tl__desc">战术复盘产量最高，新体系前几轮的每一次调整都值得逐场看过去。</p>
            </li>
            <li class="news-tl__step" data-reveal>
              <span class="news-tl__n sf-mono">03</span>
              <h3 class="news-tl__name">密集赛程期</h3>
              <p class="news-tl__desc">一周双赛，轮换信息优先于比分。多联赛同屏在这个阶段用得最频繁。</p>
            </li>
            <li class="news-tl__step" data-reveal>
              <span class="news-tl__n sf-mono">04</span>
              <h3 class="news-tl__name">冲刺期</h3>
              <p class="news-tl__desc">伤停与停赛标记出现频率最高，摘要里会额外点出关键缺阵带来的位置变化。</p>
            </li>
            <li class="news-tl__step" data-reveal>
              <span class="news-tl__n sf-mono">05</span>
              <h3 class="news-tl__name">收官期</h3>
              <p class="news-tl__desc">专题从单场转向阶段总结，赛季回顾类条目集中上线，适合补整段的内容。</p>
            </li>
          </ol>
        </div>

        <figure class="news-tl__figure" data-reveal>
          <img src="{zhanqunpic:h:700w:1200}" width="1200" height="700" alt="日历与赛程排期的抽象排布示意，画面由网格与刻度组成" loading="lazy" decoding="async">
          <figcaption>条目按联赛、专题、赛季阶段三个维度交叉归档，同一个阶段里的内容可以顺着看下去。</figcaption>
        </figure>
      </div>
    </div>
  </section>

  <section id="news-subscribe" class="news-sec news-sec--subscribe" data-section>
    <div class="sf-shell">
      <header class="sf-chapter news-chapter" data-reveal>
        <span class="sf-chapter__num">05</span>
        <h2 class="sf-h2 sf-chapter__title">订阅和提醒，把常看的那几栏固定下来</h2>
        <p class="sf-chapter__note">设置一次就长期有效，偏好存在你自己的浏览器里，不用装任何插件。</p>
      </header>

      <div class="news-sub__grid">
        <article class="news-sub__card" data-reveal>
          <p class="sf-meta sf-meta--deep">赛历订阅</p>
          <h3 class="sf-h3 news-sub__title">把你追的联赛排进赛历</h3>
          <p class="news-sub__text">选定联赛之后，开赛时间与当轮场次会一起排好。多联赛同屏最多固定 6 个入口，切换时页面结构不重排，平均响应低于 0.3 秒。</p>
          <a class="sf-btn sf-btn--ink" href="/experience/">去体验中心设置</a>
        </article>

        <article class="news-sub__card" data-reveal>
          <p class="sf-meta sf-meta--deep">阵容提醒</p>
          <h3 class="sf-h3 news-sub__title">阵容卡一确认就通知你</h3>
          <p class="news-sub__text">首发、替补、伤停、停赛四类状态在开赛前十分钟内确认，确认完成即推送。临时改动也会跟着补一条，不会让你按旧名单做准备。</p>
          <a class="sf-btn sf-btn--outline" href="/faq/">提醒收不到怎么办</a>
        </article>

        <article class="news-sub__card" data-reveal>
          <p class="sf-meta sf-meta--deep">更新通知</p>
          <h3 class="sf-h3 news-sub__title">新战报和新专题上线时提示</h3>
          <p class="news-sub__text">不想一整天刷页面的话，可以只留通知。90 秒摘要先到，感兴趣再点进阵容卡与专题，深夜时段的条目次日早间也会汇总一次。</p>
          <a class="sf-btn sf-btn--outline" href="/faq/">看通知设置说明</a>
        </article>
      </div>
    </div>
  </section>

  <section id="news-partner" class="news-sec news-sec--partner" data-section>
    <div class="sf-shell">
      <header class="sf-chapter news-chapter" data-reveal>
        <span class="sf-chapter__num">06</span>
        <h2 class="sf-h2 sf-chapter__title">选题合作与内容互认</h2>
        <p class="sf-chapter__note">做赛事内容的媒体、数据机构与品牌方，可以按下面几条线找我们对上。</p>
      </header>

      <div class="news-partner">
        <div class="news-partner__main" data-reveal>
          <h3 class="sf-h3 news-partner__title">我们已经在做的那部分</h3>
          <p class="news-partner__text">内容团队 28 人，赛事值班编辑 8 人一班，按赛程覆盖深夜时段；平台接入 6 家赛事数据供应方的实时接口，比分与赛果以赛会公布结果为准。目前与 12 家体育媒体、4 家数据机构保持内容互认与联合选题。</p>
          <ul class="news-partner__list">
            <li><span class="sf-mono">A</span>联合选题：围绕赛季阶段共同策划专题，双方各自出稿。</li>
            <li><span class="sf-mono">B</span>数据互认：阵容与伤停信息在双方渠道同步更新，避免口径打架。</li>
            <li><span class="sf-mono">C</span>素材授权：站内自建观赛视角影像库收录约 24,000 张球场、夜灯与看台素材，可用于合作选题配图。</li>
          </ul>
        </div>

        <aside class="news-partner__side" data-reveal>
          <p class="sf-meta sf-meta--gold">合作对接</p>
          <p class="news-partner__mail">contact@starry-first-row.com.cn</p>
          <p class="news-partner__note">写明合作方向与期望时间，我们会安排对应的人回复。日常访问类问题可以走帮助中心，处理起来更快。</p>
          <a class="sf-btn sf-btn--gold" href="/faq/">先去帮助中心</a>
          <a class="sf-btn sf-btn--outline news-partner__btn2" href="/about/">了解团队的日常</a>
        </aside>
      </div>
    </div>
  </section>

</main>

.page-news {
  --news-line: rgba(23, 24, 26, 0.13);
  --news-line-dark: rgba(251, 247, 239, 0.16);
  --news-deep-text: #556880;
  background: var(--paper);
  color: var(--text);
  font-family: var(--font-sans);
  overflow-x: clip;
}

.page-news .sf-shell {
  position: relative;
}

/* ---------- hero ---------- */

.page-news .news-hero {
  position: relative;
  background: var(--ink);
  color: var(--bone);
  padding: clamp(22px, 4vw, 40px) 0 0;
  overflow: hidden;
}

.page-news .news-hero::before {
  content: "";
  position: absolute;
  inset: -30% -12% auto -12%;
  height: 78%;
  background:
    radial-gradient(ellipse at 18% 0%, rgba(228, 180, 76, 0.22), transparent 62%),
    radial-gradient(ellipse at 88% 24%, rgba(185, 255, 75, 0.13), transparent 58%);
  pointer-events: none;
}

.page-news .news-hero__crumbs ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: var(--haze);
}

.page-news .news-hero__crumbs li + li::before {
  content: "／";
  margin-right: 8px;
  color: rgba(134, 152, 179, 0.6);
}

.page-news .news-hero__crumbs a {
  color: var(--haze);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

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

.page-news .news-hero__head {
  position: relative;
  padding: clamp(30px, 6vw, 66px) 0 0;
  max-width: 900px;
}

.page-news .news-hero__title {
  margin: 16px 0 0;
  font-size: clamp(34px, 7.4vw, 74px);
  line-height: 1.03;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--bone);
  max-width: 15ch;
  text-wrap: balance;
}

.page-news .news-hero__lede {
  margin: 22px 0 0;
  max-width: 60ch;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.85;
  color: var(--haze);
}

.page-news .news-hero__acts {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.page-news .news-hero__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(32px, 5vw, 54px);
  background: var(--news-line-dark);
  border: 1px solid var(--news-line-dark);
}

.page-news .news-stat {
  background: var(--ink-2);
  padding: 18px 16px 20px;
}

.page-news .news-stat__num {
  display: block;
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: clamp(24px, 4.4vw, 36px);
  line-height: 1.08;
  color: var(--gold);
}

.page-news .news-stat__unit {
  font-size: 0.5em;
  margin-left: 3px;
  color: var(--haze);
}

.page-news .news-stat__label {
  margin: 8px 0 0;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--haze);
}

.page-news .news-hero__frame {
  margin: clamp(30px, 5vw, 56px) 0 0;
  position: relative;
  clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 34px 100%, 0 calc(100% - 34px));
  border: 1px solid var(--news-line-dark);
}

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

/* ---------- toc ---------- */

.page-news .news-toc {
  background: var(--bone);
  border-bottom: 1px solid var(--rule);
  padding: 16px 0 18px;
}

.page-news .news-toc__inner {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.page-news .news-toc__label {
  margin: 0;
}

.page-news .news-toc__list {
  list-style: none;
  margin: 0;
  padding: 0 0 4px;
  display: flex;
  gap: 6px 22px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}

.page-news .news-toc__list li {
  flex: 0 0 auto;
}

.page-news .news-toc__list a {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
  font-size: 14px;
  color: var(--text);
  text-decoration: none;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
  transition: color 200ms var(--ease), border-color 200ms var(--ease);
}

.page-news .news-toc__list a:hover,
.page-news .news-toc__list a:focus-visible {
  color: var(--gold-deep);
}

.page-news .news-toc__list a[data-active] {
  border-bottom-color: var(--gold);
  color: var(--gold-deep);
}

.page-news .news-toc__list .sf-mono {
  font-size: 12px;
  color: var(--gold-deep);
}

/* ---------- shared section bits ---------- */

.page-news .news-sec {
  padding: clamp(46px, 8vw, 100px) 0;
}

.page-news .news-sec--index {
  background: var(--paper);
}

.page-news .news-sec--leagues {
  background: var(--bone);
}

.page-news .news-sec--subscribe {
  background: var(--bone);
}

.page-news .news-chapter {
  margin-bottom: clamp(26px, 4vw, 42px);
  max-width: 760px;
}

.page-news .news-chapter .sf-chapter__title {
  margin: 10px 0 0;
}

.page-news .news-chapter .sf-chapter__note {
  margin: 12px 0 0;
  max-width: 58ch;
}

/* ---------- 01 index ---------- */

.page-news .news-idx {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.page-news .news-idx__item {
  position: relative;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 12px;
  padding: 16px 16px 18px 14px;
  background: var(--bone);
  border: 1px solid var(--news-line);
  clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
  transition: transform 220ms var(--ease), background 220ms var(--ease), box-shadow 220ms var(--ease);
}

.page-news .news-idx__item::after {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 2px;
  background: var(--rule);
  transition: background 220ms var(--ease);
}

.page-news .news-idx__item:hover,
.page-news .news-idx__item:focus-within {
  transform: translateY(-3px);
  background: #ffffff;
  box-shadow: 0 12px 26px -18px rgba(10, 17, 31, 0.55);
}

.page-news .news-idx__item:hover::after,
.page-news .news-idx__item:focus-within::after {
  background: var(--gold);
}

.page-news .news-idx__seat {
  font-size: 15px;
  color: var(--gold-deep);
  letter-spacing: 0.06em;
  padding-top: 2px;
}

.page-news .news-idx__body {
  min-width: 0;
}

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

.page-news .news-idx__tag {
  font-size: 12px;
  letter-spacing: 0.08em;
  padding: 3px 9px;
  border: 1px solid var(--news-line);
  clip-path: polygon(0 0, calc(100% - 7px) 0, 100% 7px, 100% 100%, 7px 100%, 0 calc(100% - 7px));
}

.page-news .news-idx__tag--report {
  color: var(--gold-deep);
  border-color: rgba(138, 106, 34, 0.5);
}

.page-news .news-idx__tag--lineup {
  color: var(--bone);
  background: var(--ink);
  border-color: transparent;
}

.page-news .news-idx__tag--review {
  color: var(--news-deep-text);
  border-color: rgba(85, 104, 128, 0.45);
}

.page-news .news-idx__tag--feature {
  color: var(--text);
  background: rgba(228, 180, 76, 0.34);
  border-color: transparent;
}

.page-news .news-idx__lg {
  font-size: 12px;
  color: var(--haze);
  letter-spacing: 0.05em;
}

.page-news .news-idx__title {
  margin: 10px 0 0;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--text);
  letter-spacing: -0.005em;
}

.page-news .news-idx__meta {
  margin: 10px 0 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  color: var(--news-deep-text);
  font-variant-numeric: tabular-nums;
}

.page-news .news-idx__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  flex: 0 0 auto;
}

.page-news .news-idx__dot--live {
  background: var(--live);
}

/* ---------- 02 leagues ---------- */

.page-news .news-tabs__bar {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 6px;
  scrollbar-width: thin;
  scrollbar-color: var(--gold-deep) transparent;
}

.page-news .news-tabs__btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font: inherit;
  font-size: 14px;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--news-line);
  padding: 9px 16px;
  cursor: pointer;
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
  transition: background 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
}

.page-news .news-tabs__btn .sf-mono {
  font-size: 12px;
  color: var(--gold-deep);
}

.page-news .news-tabs__btn:hover {
  border-color: var(--gold-deep);
}

.page-news .news-tabs__btn:focus-visible {
  outline: 2px solid var(--gold-deep);
  outline-offset: 2px;
}

.page-news .news-tabs__btn[aria-selected="true"],
.page-news .news-tabs__btn[data-active] {
  background: var(--ink);
  color: var(--bone);
  border-color: var(--ink);
}

.page-news .news-tabs__btn[aria-selected="true"] .sf-mono,
.page-news .news-tabs__btn[data-active] .sf-mono {
  color: var(--neon);
}

.page-news .news-tabs__panel {
  margin-top: 22px;
}

.page-news .news-tabs__panel[hidden] {
  display: none;
}

.page-news .news-lg {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.page-news .news-lg__item {
  padding: 15px 16px;
  background: var(--paper);
  border-left: 3px solid var(--rule);
  transition: border-color 200ms var(--ease), transform 200ms var(--ease);
}

.page-news .news-lg__item:hover {
  border-left-color: var(--gold);
  transform: translateX(3px);
}

.page-news .news-lg__name {
  display: block;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.005em;
}

.page-news .news-lg__note {
  margin: 7px 0 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--news-deep-text);
}

.page-news .news-leagues__foot {
  margin: 26px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--news-deep-text);
  max-width: 68ch;
  padding-left: 16px;
  border-left: 2px solid var(--gold);
}

/* ---------- 03 features ---------- */

.page-news .news-sec--features {
  background: var(--ink);
  color: var(--bone);
  padding-left: 0;
  padding-right: 0;
  position: relative;
  overflow: hidden;
}

.page-news .news-sec--features::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(228, 180, 76, 0.6), transparent);
}

.page-news .news-chapter--dark .sf-chapter__title {
  color: var(--bone);
}

.page-news .news-chapter--dark .sf-chapter__note {
  color: var(--haze);
}

.page-news .news-feat__rail {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  padding: 10px var(--gut) 30px;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}

.page-news .news-feat__rail::-webkit-scrollbar {
  height: 6px;
}

.page-news .news-feat__rail::-webkit-scrollbar-thumb {
  background: var(--gold);
  border-radius: 3px;
}

.page-news .news-feat__track {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  width: max-content;
  padding-right: 12px;
}

.page-news .news-feat__card {
  flex: 0 0 min(320px, 76vw);
  scroll-snap-align: start;
  background: var(--ink-2);
  border: 1px solid var(--news-line-dark);
  padding: 20px 20px 26px;
  clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 20px 100%, 0 calc(100% - 20px));
  transition: transform 260ms var(--ease), border-color 260ms var(--ease);
}

.page-news .news-feat__card:nth-child(even) {
  margin-top: 26px;
}

.page-news .news-feat__card:hover {
  transform: translateY(-4px);
  border-color: rgba(228, 180, 76, 0.55);
}

.page-news .news-feat__media {
  margin: 0 0 18px;
  overflow: hidden;
  border: 1px solid var(--news-line-dark);
}

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

.page-news .news-feat__media--tilt {
  transform: rotate(-2deg) scale(0.97);
}

.page-news .news-feat__kicker {
  margin: 0;
}

.page-news .news-feat__title {
  margin: 12px 0 0;
  color: var(--bone);
  font-size: 22px;
}

.page-news .news-feat__text {
  margin: 12px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--haze);
}

.page-news .news-feat__tagline {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--news-line-dark);
  font-size: 12.5px;
  letter-spacing: 0.05em;
  color: var(--haze);
}

.page-news .news-feat__tagline .sf-mono {
  color: var(--neon);
}

.page-news .news-feat__foot {
  margin: 4px 0 0;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--haze);
  max-width: 68ch;
}

/* ---------- 04 timeline ---------- */

.page-news .news-tl {
  display: grid;
  gap: 30px;
}

.page-news .news-tl__chart {
  margin-bottom: 22px;
}

.page-news .news-tl__chart svg {
  display: block;
  width: 100%;
  height: 64px;
}

.page-news .news-tl__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

.page-news .news-tl__step {
  padding-top: 14px;
  border-top: 2px solid var(--rule);
  transition: border-color 220ms var(--ease);
}

.page-news .news-tl__step:hover {
  border-top-color: var(--gold);
}

.page-news .news-tl__n {
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--gold-deep);
}

.page-news .news-tl__name {
  margin: 8px 0 0;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.005em;
}

.page-news .news-tl__desc {
  margin: 8px 0 0;
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--news-deep-text);
}

.page-news .news-tl__figure {
  margin: 0;
  border: 1px solid var(--news-line);
  background: var(--bone);
  padding: 10px;
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
}

.page-news .news-tl__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 12 / 7;
  object-fit: cover;
}

.page-news .news-tl__figure figcaption {
  margin: 12px 2px 4px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--news-deep-text);
}

/* ---------- 05 subscribe ---------- */

.page-news .news-sub__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.page-news .news-sub__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px 22px 26px;
  background: var(--paper);
  border: 1px solid var(--news-line);
  clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 18px 100%, 0 calc(100% - 18px));
  transition: transform 240ms var(--ease), box-shadow 240ms var(--ease);
}

.page-news .news-sub__card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 30px -22px rgba(10, 17, 31, 0.6);
}

.page-news .news-sub__title {
  margin: 12px 0 0;
  font-size: 19px;
}

.page-news .news-sub__text {
  margin: 12px 0 22px;
  font-size: 14.5px;
  line-height: 1.8;
  color: var(--news-deep-text);
  flex: 1 1 auto;
}

/* ---------- 06 partner ---------- */

.page-news .news-partner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
}

.page-news .news-partner__main {
  background: var(--ink);
  color: var(--bone);
  padding: clamp(24px, 4vw, 38px);
  clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 26px 100%, 0 calc(100% - 26px));
}

.page-news .news-partner__title {
  margin: 0;
  color: var(--bone);
  font-size: 22px;
}

.page-news .news-partner__text {
  margin: 16px 0 0;
  font-size: 15px;
  line-height: 1.85;
  color: var(--haze);
  max-width: 62ch;
}

.page-news .news-partner__list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  display: grid;
  gap: 14px;
}

.page-news .news-partner__list li {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--bone);
  padding-top: 14px;
  border-top: 1px solid var(--news-line-dark);
}

.page-news .news-partner__list .sf-mono {
  color: var(--gold);
  font-size: 13px;
  padding-top: 3px;
}

.page-news .news-partner__side {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: 26px 22px 28px;
  background: var(--bone);
  border: 1px solid var(--news-line);
  border-top: 3px solid var(--gold);
}

.page-news .news-partner__mail {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 15px;
  word-break: break-all;
  color: var(--text);
}

.page-news .news-partner__note {
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--news-deep-text);
}

.page-news .news-partner__btn2 {
  margin-top: -2px;
}

/* ---------- breakpoints ---------- */

@media (min-width: 640px) {
  .page-news .news-idx {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

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

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

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

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

@media (min-width: 900px) {
  .page-news .news-feat__card {
    flex: 0 0 340px;
  }
}

@media (min-width: 1024px) {
  .page-news .news-idx {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .page-news .news-idx > li:nth-child(3n + 2) {
    padding-top: 30px;
  }

  .page-news .news-idx > li:nth-child(3n) {
    padding-top: 60px;
  }

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

  .page-news .news-sub__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  .page-news .news-tl {
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 0.9fr);
    align-items: start;
    gap: 40px;
  }

  .page-news .news-tl__steps {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 16px;
  }

  .page-news .news-partner {
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.85fr);
    gap: 28px;
    align-items: start;
  }
}

@media (min-width: 1180px) {
  .page-news .news-feat__card {
    flex: 0 0 360px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-news .news-idx__item,
  .page-news .news-feat__card,
  .page-news .news-sub__card,
  .page-news .news-lg__item {
    transition: none;
  }

  .page-news .news-idx__item:hover,
  .page-news .news-feat__card:hover,
  .page-news .news-sub__card:hover,
  .page-news .news-lg__item:hover {
    transform: none;
  }
}
