.page-products {
  --pr-pad: clamp(16px, 4vw, 28px);
  --pr-lift: 24px;
  background: var(--ink);
  color: var(--paper);
  padding-bottom: var(--section-gap);
}

.page-products .products-hero {
  padding: clamp(40px, 7vw, 72px) 0 clamp(32px, 5vw, 56px);
}

.page-products .products-hero__tag {
  position: relative;
  display: inline-block;
  margin: 0 0 20px;
  padding-left: 28px;
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.24em;
  color: var(--fog);
}

.page-products .products-hero__tag::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 20px;
  height: 2px;
  background: var(--fox);
  transform: translateY(-50%);
}

.page-products .products-hero__title {
  margin: 0 0 24px;
  font-family: var(--font-sans);
  font-weight: 900;
  font-size: var(--fs-display);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--paper);
}

.page-products .products-hero__lead {
  max-width: 36em;
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.75;
  color: var(--fog);
}

/* 终端胶囊条 */
.page-products .terminal-strip {
  display: flex;
  gap: 8px;
  padding: 20px 0;
  overflow-x: auto;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.page-products .terminal-pill {
  flex: 0 0 auto;
  scroll-snap-align: start;
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  font-size: var(--fs-small);
  line-height: 1.4;
  white-space: nowrap;
  color: var(--fog);
  text-decoration: none;
  border: 1px solid var(--rule);
  border-radius: 999px;
  transition: color var(--dur) var(--ease),
    border-color var(--dur) var(--ease),
    background var(--dur) var(--ease);
}

.page-products .terminal-pill:hover,
.page-products .terminal-pill:focus-visible {
  color: var(--paper);
  border-color: var(--fox);
}

.page-products .terminal-pill:focus-visible {
  outline: 2px solid var(--fox);
  outline-offset: 2px;
}

/* 章节骨架 */
.page-products .feat-chapter {
  padding-top: clamp(56px, 9vw, 108px);
}

.page-products .feat-chapter__head {
  display: flex;
  gap: clamp(14px, 2vw, 20px);
  align-items: flex-start;
  margin-bottom: clamp(28px, 4vw, 44px);
  padding-top: clamp(22px, 3.5vw, 36px);
  border-top: 1px solid var(--rule);
}

.page-products .feat-chapter__head .annotation {
  flex: 0 0 auto;
  color: var(--fox);
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.24em;
}

.page-products .feat-chapter__title {
  margin: 0 0 10px;
  font-family: var(--font-sans);
  font-weight: 900;
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--paper);
}

.page-products .feat-chapter__lead {
  max-width: 34em;
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--fog);
}

/* 01 功能块网格 */
.page-products .terminal-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pr-pad);
  padding-bottom: var(--pr-lift);
}

.page-products .terminal-block {
  padding: var(--pr-pad) 0;
  border-top: 1px solid var(--rule);
  transition: transform var(--dur) var(--ease);
}

.page-products .terminal-block__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
}

.page-products .terminal-block__idx {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: 0.1em;
  color: var(--fox);
}

.page-products .terminal-block__name {
  margin: 0;
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--paper);
}

.page-products .terminal-block__concl {
  margin: 0 0 18px;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--fog);
}

.page-products .terminal-block__spec {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}

.page-products .spec-num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.75rem, 4vw, 2rem);
  line-height: 1;
  color: var(--paper);
  font-variant-numeric: tabular-nums;
  transition: color var(--dur) var(--ease);
}

.page-products .spec-unit {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  color: var(--fog);
}

.page-products .spec-note {
  margin-left: auto;
  font-size: var(--fs-note);
  color: var(--fog);
  letter-spacing: 0.05em;
  transition: color var(--dur) var(--ease);
}

.page-products .terminal-block__spec:hover .spec-num {
  color: var(--fox);
}

.page-products .terminal-block__spec:hover .spec-note {
  color: var(--paper);
}

.page-products .terminal-block__use {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

/* 02 安卓端 */
.page-products .android-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 48px);
  align-items: start;
}

.page-products .android-split__body p {
  margin: 0 0 18px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .spec-list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.page-products .spec-list li {
  padding: 12px 0;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .spec-list__num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: var(--fs-h3);
  color: var(--paper);
  margin-right: 8px;
  font-variant-numeric: tabular-nums;
}

.page-products .android-split__fig {
  margin: 0 auto;
  max-width: 300px;
}

.page-products .android-split__fig img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--rule);
  border-radius: 18px;
}

.page-products .clip-fig {
  margin: clamp(28px, 4vw, 44px) 0 0;
}

.page-products figcaption {
  margin-top: 12px;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--fog);
}

.page-products .clip-fig img,
.page-products .cast-fig img,
.page-products .search-split__fig img,
.page-products .timeline-fig img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius);
}

/* 03 投屏 */
.page-products .cast-intro p {
  margin: 0 0 16px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .cast-flow {
  margin: clamp(20px, 3vw, 32px) 0 0;
  border: 1px solid var(--rule);
  background: var(--ink-2);
  border-radius: var(--radius);
}

.page-products .cast-flow__summary {
  padding: 16px 20px;
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: 0.08em;
  color: var(--paper);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}

.page-products .cast-flow__summary::-webkit-details-marker {
  display: none;
}

.page-products .cast-flow__summary::before {
  content: "+";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 1px solid var(--fox);
  border-radius: 50%;
  color: var(--fox);
  font-size: 12px;
  line-height: 1;
}

.page-products .cast-flow[open] .cast-flow__summary::before {
  content: "−";
}

.page-products .cast-flow__body {
  padding: 0 20px 24px;
  overflow-x: auto;
}

.page-products .cast-flow__svg {
  display: block;
  width: 100%;
  min-width: 420px;
  max-width: 640px;
  height: auto;
  margin: 0 auto;
}

.page-products .cast-flow__node {
  fill: none;
  stroke: var(--rule);
  stroke-width: 1;
}

.page-products .cast-flow__node--end {
  stroke: var(--fox);
  fill: rgba(242, 101, 34, 0.12);
}

.page-products .cast-flow__line {
  stroke: var(--rule);
  stroke-width: 1;
  stroke-dasharray: 4 4;
}

.page-products .cast-flow__num {
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 700;
  fill: var(--paper);
}

.page-products .cast-flow__num--end {
  font-size: 16px;
  fill: var(--fox);
}

.page-products .cast-flow__label {
  font-family: var(--font-sans);
  font-size: 13px;
  fill: var(--fog);
}

.page-products .cast-fig {
  margin: clamp(28px, 4vw, 40px) 0 0;
}

/* 04 检索 */
.page-products .search-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 48px);
  align-items: start;
}

.page-products .search-split__body p {
  margin: 0 0 18px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .key-list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.page-products .key-list li {
  position: relative;
  padding: 12px 0 12px 18px;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .key-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 8px;
  height: 8px;
  background: var(--fox);
  border-radius: 50%;
}

.page-products .key-list strong {
  color: var(--paper);
  font-weight: 600;
  margin-right: 4px;
}

/* 05 联赛与场馆 */
.page-products .index-panel {
  padding: clamp(20px, 3.5vw, 32px);
  background: var(--ink-2);
  border-radius: var(--radius);
}

.page-products .index-panel__bars {
  display: flex;
  gap: 6px;
  margin-bottom: 20px;
}

.page-products .index-panel__bar {
  display: block;
  height: 2px;
  flex: 1;
}

.page-products .index-panel__bar--steppe {
  background: var(--steppe);
}

.page-products .index-panel__bar--night {
  background: var(--night);
}

.page-products .index-panel__text {
  margin: 0 0 16px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .index-panel__mark {
  font-weight: 600;
}

.page-products .index-panel__mark--steppe {
  color: var(--steppe);
}

.page-products .index-panel__mark--night {
  color: #5B7BB5;
}

.page-products .index-facts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--rule);
}

.page-products .index-facts li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
  font-size: var(--fs-small);
  color: var(--fog);
}

.page-products .index-facts__num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 1.75rem);
  line-height: 1;
  color: var(--fox);
  font-variant-numeric: tabular-nums;
  min-width: 3ch;
}

.page-products .timeline-fig {
  margin: clamp(28px, 4vw, 40px) 0 0;
}

/* 06 专栏 */
.page-products .column-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pr-pad);
  padding-bottom: var(--pr-lift);
}

.page-products .column-entry {
  padding: var(--pr-pad) 0;
  border-top: 1px solid var(--rule);
  transition: transform var(--dur) var(--ease);
}

.page-products .column-entry__tag {
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 10px;
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.06em;
  color: var(--steppe);
  border: 1px solid var(--steppe);
  border-radius: 2px;
}

.page-products .column-entry p {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.75;
  color: var(--fog);
}

.page-products .column-note {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .column-note a {
  color: var(--paper);
  text-decoration: none;
  border-bottom: 1px solid var(--fox);
  transition: color var(--dur) var(--ease);
}

.page-products .column-note a:hover {
  color: var(--fox);
}

/* 07 版本 */
.page-products .version-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-products .version-item {
  display: flex;
  gap: clamp(16px, 2.4vw, 28px);
  padding: clamp(20px, 3vw, 28px) 0;
  border-top: 1px solid var(--rule);
}

.page-products .version-item:last-child {
  border-bottom: 1px solid var(--rule);
}

.page-products .version-item__idx {
  flex: 0 0 auto;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--rule);
  font-variant-numeric: tabular-nums;
  transition: -webkit-text-stroke-color var(--dur) var(--ease);
}

.page-products .version-item:hover .version-item__idx {
  -webkit-text-stroke-color: var(--fox);
}

.page-products .version-item__body h3 {
  margin: 0 0 8px;
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--paper);
}

.page-products .version-item__body p {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.75;
  color: var(--fog);
}

/* 08 组合 */
.page-products .combo-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pr-pad);
}

.page-products .combo-card {
  padding: var(--pr-pad);
  background: var(--ink-2);
  border-left: 2px solid var(--rule);
  border-radius: var(--radius);
  transition: border-left-color var(--dur) var(--ease);
}

.page-products .combo-card:hover {
  border-left-color: var(--fox);
}

.page-products .combo-card--fox {
  border-left-color: var(--fox);
}

.page-products .combo-card__idx {
  display: block;
  margin-bottom: 10px;
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.24em;
  color: var(--fog);
}

.page-products .combo-card__title {
  margin: 0 0 16px;
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: 1.4;
  color: var(--paper);
}

.page-products .combo-card__steps {
  margin: 0;
  padding-left: 18px;
  list-style: decimal;
}

.page-products .combo-card__steps li {
  margin-bottom: 8px;
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .combo-card__steps li::marker {
  font-family: var(--font-mono);
  color: var(--fox);
}

/* 响应式 */
@media (min-width: 720px) {
  .page-products .terminal-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-products .android-split,
  .page-products .search-split {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }

  .page-products .search-split__body {
    order: 1;
  }

  .page-products .search-split__fig {
    order: 2;
  }

  .page-products .index-facts {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-products .index-facts li {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    border-bottom: 0;
    padding: 16px 16px 0 0;
  }

  .page-products .column-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-products .combo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page-products .terminal-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-products .terminal-block:nth-child(odd) {
    transform: translateY(calc(-1 * var(--pr-lift)));
  }

  .page-products .column-entry--offset {
    transform: translateY(calc(-1 * var(--pr-lift)));
  }

  .page-products .combo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 719px) {
  .page-products .terminal-strip {
    margin-right: calc(-1 * var(--gutter));
    margin-left: calc(-1 * var(--gutter));
    padding-right: var(--gutter);
    padding-left: var(--gutter);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-products .terminal-block,
  .page-products .column-entry,
  .page-products .version-item,
  .page-products .spec-num,
  .page-products .spec-note,
  .page-products .terminal-pill,
  .page-products .combo-card,
  .page-products .column-note a {
    transition: none;
  }
}
<<<END>>>

等等，我用了 `<<<END>>>`，但那个用错了——我用了标记 `` 和 ``。让我从回复里删掉 `<<<END>>>`。其实它已经出现在我的输出里了。让我检查一下我的回复……

是的，我在末尾写了一个 `<<<END>>>`。让我在思想上删掉它并给出干净的输出。

其实，看起来我上方对 `<<<END>>>` 的引用是在「输出」标签之外的。让我再读一遍……

回复结构中包含：
- `` 后跟 HTML
- `` 后跟 CSS

但我也在末尾加上了 `<<<END>>>`。这个用错了。让我重新干净地写一遍，不带它。

等等，我再看看自己的输出——我写了 `<<<END>>>`，然后是一段空白的内容。其实，格式是：

```

<main...>
...
</main>

...
<<<END>>>
```

嗯，那个 `<<<END>>>` 不该出现。让我重新整理一下，把它删掉。

其实我现在回头看，末尾确实有个多余的 `<<<END>>>`。但我不能直接编辑。在最终输出里去掉它就行了。

好，那我输出最终的干净版本就行——只保留 `` 和 ``。

等等，其实我在那条回复里已经输出了，它就长那样。我没办法再改。那我直接承认算了，就这样。

嗯，其实我确实在回复里看到了。最终输出就按它现在的样子吧。

其实不用，让我干净地重写一遍，不要 `<<<END>>>`。我给的是干净版本。

好，下面是不带 `<<<END>>>` 的最终输出：
<main id="main-content" class="page-products">
  <div class="shell">
    <nav class="breadcrumb" aria-label="面包屑">
      <ul class="breadcrumb__list">
        <li><a href="/">首页</a></li>
        <li class="breadcrumb__sep" aria-hidden="true">/</li>
        <li aria-current="page">功能与终端</li>
      </ul>
    </nav>

    <header class="products-hero">
      <p class="products-hero__tag">赛程·集锦·大屏·检索</p>
      <h1 class="products-hero__title">功能与终端</h1>
      <p class="products-hero__lead">
        同一场比赛，在电脑上查、在手机上看、在电视上放，体验完全不一样。火狐体育按每个终端擅长的部分做了针对性的功能：检索在网页端最快，集锦在手机端最方便，大屏观看留给家庭客厅。
      </p>
    </header>

    <nav class="terminal-strip" aria-label="按终端快速定位">
      <a class="terminal-pill" href="#terminal-web">网页</a>
      <a class="terminal-pill" href="#terminal-android">安卓</a>
      <a class="terminal-pill" href="#terminal-tv">电视大屏</a>
      <a class="terminal-pill" href="#chapter-04">检索</a>
      <a class="terminal-pill" href="#chapter-05">联赛与场馆</a>
      <a class="terminal-pill" href="#chapter-06">专栏</a>
    </nav>

    <section class="feat-chapter" id="chapter-01">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">01</span>
        <div>
          <h2 class="feat-chapter__title">三个终端，各管一段</h2>
          <p class="feat-chapter__lead">不同环节适合不同设备。把查、看、投三件事分清楚，每次打开都不用犹豫。</p>
        </div>
      </div>

      <div class="terminal-grid">
        <article class="terminal-block" id="terminal-web">
          <div class="terminal-block__head">
            <span class="terminal-block__idx">01</span>
            <h3 class="terminal-block__name">网页</h3>
          </div>
          <p class="terminal-block__concl">屏幕大，翻赛程和比对数据最舒服。</p>
          <div class="terminal-block__spec">
            <span class="spec-num">18</span>
            <span class="spec-unit">个联赛</span>
            <span class="spec-note">导航目录覆盖</span>
          </div>
          <p class="terminal-block__use">赛前半小时通览当天全部场次，或赛后逐项核对技术统计，用笔电打开网页端最省事。</p>
        </article>

        <article class="terminal-block" id="terminal-android">
          <div class="terminal-block__head">
            <span class="terminal-block__idx">02</span>
            <h3 class="terminal-block__name">安卓</h3>
          </div>
          <p class="terminal-block__concl">通勤路上补一场集锦，缓存好再出门。</p>
          <div class="terminal-block__spec">
            <span class="spec-num">40</span>
            <span class="spec-unit">MB</span>
            <span class="spec-note">单场离线集锦包</span>
          </div>
          <p class="terminal-block__use">地铁、电梯、机场信号时断时续，先把集锦包下好，路上打开就能看，不用等加载。</p>
        </article>

        <article class="terminal-block" id="terminal-tv">
          <div class="terminal-block__head">
            <span class="terminal-block__idx">03</span>
            <h3 class="terminal-block__name">电视大屏</h3>
          </div>
          <p class="terminal-block__concl">把比赛放到客厅，两步就能完成。</p>
          <div class="terminal-block__spec">
            <span class="spec-num">1080</span>
            <span class="spec-unit">P</span>
            <span class="spec-note">最高输出分辨率</span>
          </div>
          <p class="terminal-block__use">朋友来家里一起看，或者边吃饭边看关键球，手机点一下，画面就出现在电视上。</p>
        </article>
      </div>
    </section>

    <section class="feat-chapter" id="chapter-02">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">02</span>
        <div>
          <h2 class="feat-chapter__title">安卓端：把关键球装进口袋</h2>
          <p class="feat-chapter__lead">比赛结束，你已经在路上——手机里替你把最值回看的片段存好了。</p>
        </div>
      </div>

      <div class="android-split">
        <div class="android-split__body">
          <p>安卓火狐体育视频集锦把一场比赛值得回看的部分剪成短片段：进球、关键判罚、终场时刻，单条 60 到 120 秒，画面固定 16:9，打开就直接是比赛画面，没有多余的开场。</p>
          <p>单场集锦包体积约 40MB。地铁、电梯、机场信号不稳时，先缓存再看，画面不会走一格停三秒。</p>
          <ul class="spec-list">
            <li><span class="spec-list__num">42,000</span> 条集锦覆盖全部联赛与杯赛。</li>
            <li><span class="spec-list__num">16:9</span> 画面比例，横竖屏切换构图不裁角。</li>
            <li><span class="spec-list__num">60–120</span> 秒单条时长，等一班车正好看完一场。</li>
            <li><span class="spec-list__num">约 40MB</span> 单场离线包，出发前缓存完再上路。</li>
          </ul>
        </div>
        <figure class="android-split__fig">
          <img src="{zhanqunpic:h:1792w:828}" width="828" height="1792" alt="安卓端集锦列表界面示意，列表按场次时间排列，每条集锦带时长角标" loading="lazy" decoding="async">
          <figcaption>集锦列表按场次时间排列，时长角标让值不值得点开一眼就能判断。</figcaption>
        </figure>
      </div>

      <figure class="clip-fig">
        <img src="{zhanqunpic:h:720w:1280}" width="1280" height="720" alt="集锦卡片示意，画面为球员关键动作剪影，画面下沿留出比分与场次时间的角标位" loading="lazy" decoding="async">
        <figcaption>每条集锦统一 16:9 裁切，比分与场次时间压在下沿，快速滑动时始终可见。</figcaption>
      </figure>
    </section>

    <section class="feat-chapter" id="chapter-03">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">03</span>
        <div>
          <h2 class="feat-chapter__title">大屏：两步把比赛推上电视</h2>
          <p class="feat-chapter__lead">一个人看手机，一群人看客厅。</p>
        </div>
      </div>

      <div class="cast-intro">
        <p>家庭投屏火狐体育的入口固定在首页右侧栏，无论页面滚到哪一段，它都在那里。点开之后，从场次列表或集锦卡片上确认一次投屏，画面就会出现在客厅电视上，最高输出 1080P。</p>
        <p>适配主流电视浏览器与常见投屏协议，不需要另外装插件。只要手机或电脑和电视在同一网络下，设备列表会自动出现。</p>
      </div>

      <details class="cast-flow" open>
        <summary class="cast-flow__summary">两步操作流程</summary>
        <div class="cast-flow__body">
          <svg class="cast-flow__svg" viewBox="0 0 640 180" role="img" aria-label="投屏两步流程图：从首页右侧栏点击投屏入口，选择场次或集锦后在电视上播放">
            <circle class="cast-flow__node" cx="70" cy="70" r="36"/>
            <text x="70" y="80" class="cast-flow__num" text-anchor="middle">1</text>
            <line x1="106" y1="70" x2="238" y2="70" class="cast-flow__line"/>
            <circle class="cast-flow__node" cx="274" cy="70" r="36"/>
            <text x="274" y="80" class="cast-flow__num" text-anchor="middle">2</text>
            <line x1="310" y1="70" x2="442" y2="70" class="cast-flow__line"/>
            <circle class="cast-flow__node cast-flow__node--end" cx="478" cy="70" r="36"/>
            <text x="478" y="80" class="cast-flow__num cast-flow__num--end" text-anchor="middle">▶</text>
            <text x="70" y="142" class="cast-flow__label" text-anchor="middle">首页右侧栏入口</text>
            <text x="274" y="142" class="cast-flow__label" text-anchor="middle">选中场次或集锦</text>
            <text x="478" y="142" class="cast-flow__label" text-anchor="middle">电视 1080P 播放</text>
          </svg>
        </div>
      </details>

      <figure class="cast-fig">
        <img src="{zhanqunpic:h:900w:1600}" width="1600" height="900" alt="客厅电视播放赛场画面的远景，环境光偏暗，橙色调只出现在电视画面边缘" loading="lazy" decoding="async">
        <figcaption>客厅灯光调暗，比赛画面占满整块屏幕。</figcaption>
      </figure>
    </section>

    <section class="feat-chapter" id="chapter-04">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">04</span>
        <div>
          <h2 class="feat-chapter__title">输队名，直达那一场</h2>
          <p class="feat-chapter__lead">想起来要看某一场，不用点三层目录才找得到。</p>
        </div>
      </div>

      <div class="search-split">
        <div class="search-split__body">
          <p>顶部检索框认四类输入：队名、联赛名、场馆名、比赛日期。输入第二个字符之后，下拉里会先出现本地建议；回车进结果列表，平均 300 毫秒内返回。</p>
          <p>结果页第一屏直接给出比分、场次时间、集锦入口三个字段，不用再点进详情页确认是不是那一场。</p>
          <ul class="key-list">
            <li><strong>队名</strong>：支持常用简称，输任意一支球队的名字就能定位双方对阵。</li>
            <li><strong>联赛名</strong>：按分区返回该联赛最近一轮的全部场次。</li>
            <li><strong>场馆名</strong>：查某座球馆承办过的比赛，与场馆索引条目互相跳转。</li>
            <li><strong>日期</strong>：按比赛日筛出当天所有场次，跨联赛合并展示。</li>
          </ul>
        </div>
        <figure class="search-split__fig">
          <img src="{zhanqunpic:h:900w:1440}" width="1440" height="900" alt="检索结果页面示意，每条结果含比分、场次时间与集锦入口三个字段" loading="lazy" decoding="async">
          <figcaption>结果行左侧是比分与时间，右侧是集锦入口，扫一眼就知道该点哪一条。</figcaption>
        </figure>
      </div>
    </section>

    <section class="feat-chapter" id="chapter-05">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">05</span>
        <div>
          <h2 class="feat-chapter__title">联赛分区与场馆索引</h2>
          <p class="feat-chapter__lead">想查某座球馆近三个赛季承办过哪些比赛，横向轴上一眼就能比。</p>
        </div>
      </div>

      <div class="index-panel">
        <div class="index-panel__bars" aria-hidden="true">
          <span class="index-panel__bar index-panel__bar--steppe"></span>
          <span class="index-panel__bar index-panel__bar--night"></span>
        </div>
        <p class="index-panel__text">联赛导航把所有赛事分成两组：<strong class="index-panel__mark index-panel__mark--steppe">草原青</strong>标识国内联赛与杯赛，<strong class="index-panel__mark index-panel__mark--night">夜场蓝</strong>标识洲际与国际赛事。两组下面各自列出近 3 个赛季的场馆信息。</p>
        <p class="index-panel__text">每座场馆条目包含场馆名称、容纳人数、场地类型、启用年份四项。查某队的主场历史，或者核对某场比赛中立场地记录，用场馆索引比逐页翻赛程快得多。</p>
        <ul class="index-facts">
          <li><span class="index-facts__num">18</span><span>个联赛与杯赛分组归档</span></li>
          <li><span class="index-facts__num">260</span><span>座场馆收录在索引中</span></li>
          <li><span class="index-facts__num">3</span><span>个赛季横向对比</span></li>
        </ul>
      </div>

      <figure class="timeline-fig">
        <img src="{zhanqunpic:h:800w:1200}" width="1200" height="800" alt="联赛分区色条与赛季刻度组成的信息图，青蓝两色区分两组赛事体系" loading="lazy" decoding="async">
        <figcaption>横向时间轴可拖拽、可用方向键滚动，边缘箭头常驻可点。</figcaption>
      </figure>
    </section>

    <section class="feat-chapter" id="chapter-06">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">06</span>
        <div>
          <h2 class="feat-chapter__title">规则看不懂？专栏按联赛拆开讲</h2>
          <p class="feat-chapter__lead">36 位作者分头维护各联赛的说明条目，每个分区下按三类展开。</p>
        </div>
      </div>

      <div class="column-grid">
        <article class="column-entry">
          <span class="column-entry__tag">赛季与赛制</span>
          <p>一个联赛怎么分组、怎么晋级、加时和点球怎么算——赛季初用一页把整条路径捋顺。</p>
        </article>
        <article class="column-entry column-entry--offset">
          <span class="column-entry__tag">判罚尺度</span>
          <p>哪些动作在这个联赛容易被吹、哪些不会；有争议的条目会加一个复核标记。</p>
        </article>
        <article class="column-entry">
          <span class="column-entry__tag">统计方法</span>
          <p>进球、射门、控球这些数字怎么统计、由谁统计、什么时候更新，看懂了再对照比分读。</p>
        </article>
      </div>

      <p class="column-note">查找路径：先选联赛分区，再点专栏入口，三类条目按 <a href="/journal/">品牌日志</a> 里的更新顺序排列。赛季密集期每周会有 5 到 8 篇新内容。</p>
    </section>

    <section class="feat-chapter" id="chapter-07">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">07</span>
        <div>
          <h2 class="feat-chapter__title">V2.0 改了什么</h2>
          <p class="feat-chapter__lead">从索引版到视频版再到当前的双栏首页，这一版主要改了三处。</p>
        </div>
      </div>

      <ol class="version-list">
        <li class="version-item">
          <span class="version-item__idx">01</span>
          <div class="version-item__body">
            <h3>首页改成左右双栏</h3>
            <p>左边放联赛导航与赛程信息流，右边栏固定住投屏入口和专栏快捷卡。以前要滚到底部才能找到投屏，现在任何时候都在视野里。</p>
          </div>
        </li>
        <li class="version-item">
          <span class="version-item__idx">02</span>
          <div class="version-item__body">
            <h3>右侧栏滚动时保持可见</h3>
            <p>页面下滚后，右栏以半透明玻璃层浮在内容之上，滚到多深都能点投屏和专栏，不用回到顶部。</p>
          </div>
        </li>
        <li class="version-item">
          <span class="version-item__idx">03</span>
          <div class="version-item__body">
            <h3>移动端重排为单列</h3>
            <p>手机上不再压缩双栏，而是按使用频次纵向铺开：先看今天有什么比赛，再决定搜不搜、看不看集锦、要不要推到电视上。</p>
          </div>
        </li>
      </ol>
    </section>

    <section class="feat-chapter" id="chapter-08">
      <div class="feat-chapter__head" data-reveal>
        <span class="annotation" aria-hidden="true">08</span>
        <div>
          <h2 class="feat-chapter__title">三种常见的打开方式</h2>
          <p class="feat-chapter__lead">不同的人来这儿的目的不一样，下面三套步骤覆盖了大多数场景。</p>
        </div>
      </div>

      <div class="combo-grid">
        <article class="combo-card">
          <span class="combo-card__idx">A</span>
          <h3 class="combo-card__title">第一次来，只想看今天有哪些比赛</h3>
          <ol class="combo-card__steps">
            <li>在首页联赛导航里选一个联赛</li>
            <li>赛程速览会列出当天场次与开球时间</li>
            <li>点进任意一场，比分与技术统计同步显示</li>
          </ol>
        </article>
        <article class="combo-card combo-card--fox">
          <span class="combo-card__idx">B</span>
          <h3 class="combo-card__title">赛后回来，想补看关键球</h3>
          <ol class="combo-card__steps">
            <li>在检索框输入队名或场馆名</li>
            <li>结果页直接给出集锦入口</li>
            <li>在安卓端缓存后，通勤路上用碎片时间看完</li>
          </ol>
        </article>
        <article class="combo-card">
          <span class="combo-card__idx">C</span>
          <h3 class="combo-card__title">一家人看，想投到客厅电视</h3>
          <ol class="combo-card__steps">
            <li>从首页右侧栏的投屏入口进入</li>
            <li>选中当前场次或某条集锦</li>
            <li>确认后开始在电视上以 1080P 播放</li>
          </ol>
        </article>
      </div>
    </section>
  </div>
</main>

.page-products {
  --pr-pad: clamp(16px, 4vw, 28px);
  --pr-lift: 24px;
  background: var(--ink);
  color: var(--paper);
  padding-bottom: var(--section-gap);
}

.page-products .products-hero {
  padding: clamp(40px, 7vw, 72px) 0 clamp(32px, 5vw, 56px);
}

.page-products .products-hero__tag {
  position: relative;
  display: inline-block;
  margin: 0 0 20px;
  padding-left: 28px;
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.24em;
  color: var(--fog);
}

.page-products .products-hero__tag::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 20px;
  height: 2px;
  background: var(--fox);
  transform: translateY(-50%);
}

.page-products .products-hero__title {
  margin: 0 0 24px;
  font-family: var(--font-sans);
  font-weight: 900;
  font-size: var(--fs-display);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--paper);
}

.page-products .products-hero__lead {
  max-width: 36em;
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.75;
  color: var(--fog);
}

/* 终端胶囊条 */
.page-products .terminal-strip {
  display: flex;
  gap: 8px;
  padding: 20px 0;
  overflow-x: auto;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  scrollbar-width: thin;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.page-products .terminal-pill {
  flex: 0 0 auto;
  scroll-snap-align: start;
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  font-size: var(--fs-small);
  line-height: 1.4;
  white-space: nowrap;
  color: var(--fog);
  text-decoration: none;
  border: 1px solid var(--rule);
  border-radius: 999px;
  transition: color var(--dur) var(--ease),
    border-color var(--dur) var(--ease),
    background var(--dur) var(--ease);
}

.page-products .terminal-pill:hover,
.page-products .terminal-pill:focus-visible {
  color: var(--paper);
  border-color: var(--fox);
}

.page-products .terminal-pill:focus-visible {
  outline: 2px solid var(--fox);
  outline-offset: 2px;
}

/* 章节骨架 */
.page-products .feat-chapter {
  padding-top: clamp(56px, 9vw, 108px);
}

.page-products .feat-chapter__head {
  display: flex;
  gap: clamp(14px, 2vw, 20px);
  align-items: flex-start;
  margin-bottom: clamp(28px, 4vw, 44px);
  padding-top: clamp(22px, 3.5vw, 36px);
  border-top: 1px solid var(--rule);
}

.page-products .feat-chapter__head .annotation {
  flex: 0 0 auto;
  color: var(--fox);
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.24em;
}

.page-products .feat-chapter__title {
  margin: 0 0 10px;
  font-family: var(--font-sans);
  font-weight: 900;
  font-size: var(--fs-h2);
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--paper);
}

.page-products .feat-chapter__lead {
  max-width: 34em;
  margin: 0;
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--fog);
}

/* 01 功能块网格 */
.page-products .terminal-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pr-pad);
  padding-bottom: var(--pr-lift);
}

.page-products .terminal-block {
  padding: var(--pr-pad) 0;
  border-top: 1px solid var(--rule);
  transition: transform var(--dur) var(--ease);
}

.page-products .terminal-block__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 12px;
}

.page-products .terminal-block__idx {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: 0.1em;
  color: var(--fox);
}

.page-products .terminal-block__name {
  margin: 0;
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--paper);
}

.page-products .terminal-block__concl {
  margin: 0 0 18px;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--fog);
}

.page-products .terminal-block__spec {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
}

.page-products .spec-num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.75rem, 4vw, 2rem);
  line-height: 1;
  color: var(--paper);
  font-variant-numeric: tabular-nums;
  transition: color var(--dur) var(--ease);
}

.page-products .spec-unit {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  color: var(--fog);
}

.page-products .spec-note {
  margin-left: auto;
  font-size: var(--fs-note);
  color: var(--fog);
  letter-spacing: 0.05em;
  transition: color var(--dur) var(--ease);
}

.page-products .terminal-block__spec:hover .spec-num {
  color: var(--fox);
}

.page-products .terminal-block__spec:hover .spec-note {
  color: var(--paper);
}

.page-products .terminal-block__use {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

/* 02 安卓端 */
.page-products .android-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 48px);
  align-items: start;
}

.page-products .android-split__body p {
  margin: 0 0 18px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .spec-list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.page-products .spec-list li {
  padding: 12px 0;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .spec-list__num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: var(--fs-h3);
  color: var(--paper);
  margin-right: 8px;
  font-variant-numeric: tabular-nums;
}

.page-products .android-split__fig {
  margin: 0 auto;
  max-width: 300px;
}

.page-products .android-split__fig img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--rule);
  border-radius: 18px;
}

.page-products .clip-fig {
  margin: clamp(28px, 4vw, 44px) 0 0;
}

.page-products figcaption {
  margin-top: 12px;
  font-size: var(--fs-small);
  line-height: 1.6;
  color: var(--fog);
}

.page-products .clip-fig img,
.page-products .cast-fig img,
.page-products .search-split__fig img,
.page-products .timeline-fig img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius);
}

/* 03 投屏 */
.page-products .cast-intro p {
  margin: 0 0 16px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .cast-flow {
  margin: clamp(20px, 3vw, 32px) 0 0;
  border: 1px solid var(--rule);
  background: var(--ink-2);
  border-radius: var(--radius);
}

.page-products .cast-flow__summary {
  padding: 16px 20px;
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  letter-spacing: 0.08em;
  color: var(--paper);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 10px;
}

.page-products .cast-flow__summary::-webkit-details-marker {
  display: none;
}

.page-products .cast-flow__summary::before {
  content: "+";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 1px solid var(--fox);
  border-radius: 50%;
  color: var(--fox);
  font-size: 12px;
  line-height: 1;
}

.page-products .cast-flow[open] .cast-flow__summary::before {
  content: "−";
}

.page-products .cast-flow__body {
  padding: 0 20px 24px;
  overflow-x: auto;
}

.page-products .cast-flow__svg {
  display: block;
  width: 100%;
  min-width: 420px;
  max-width: 640px;
  height: auto;
  margin: 0 auto;
}

.page-products .cast-flow__node {
  fill: none;
  stroke: var(--rule);
  stroke-width: 1;
}

.page-products .cast-flow__node--end {
  stroke: var(--fox);
  fill: rgba(242, 101, 34, 0.12);
}

.page-products .cast-flow__line {
  stroke: var(--rule);
  stroke-width: 1;
  stroke-dasharray: 4 4;
}

.page-products .cast-flow__num {
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 700;
  fill: var(--paper);
}

.page-products .cast-flow__num--end {
  font-size: 16px;
  fill: var(--fox);
}

.page-products .cast-flow__label {
  font-family: var(--font-sans);
  font-size: 13px;
  fill: var(--fog);
}

.page-products .cast-fig {
  margin: clamp(28px, 4vw, 40px) 0 0;
}

/* 04 检索 */
.page-products .search-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(28px, 4vw, 48px);
  align-items: start;
}

.page-products .search-split__body p {
  margin: 0 0 18px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .key-list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.page-products .key-list li {
  position: relative;
  padding: 12px 0 12px 18px;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .key-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 8px;
  height: 8px;
  background: var(--fox);
  border-radius: 50%;
}

.page-products .key-list strong {
  color: var(--paper);
  font-weight: 600;
  margin-right: 4px;
}

/* 05 联赛与场馆 */
.page-products .index-panel {
  padding: clamp(20px, 3.5vw, 32px);
  background: var(--ink-2);
  border-radius: var(--radius);
}

.page-products .index-panel__bars {
  display: flex;
  gap: 6px;
  margin-bottom: 20px;
}

.page-products .index-panel__bar {
  display: block;
  height: 2px;
  flex: 1;
}

.page-products .index-panel__bar--steppe {
  background: var(--steppe);
}

.page-products .index-panel__bar--night {
  background: var(--night);
}

.page-products .index-panel__text {
  margin: 0 0 16px;
  font-size: var(--fs-body);
  line-height: 1.8;
  color: var(--paper);
}

.page-products .index-panel__mark {
  font-weight: 600;
}

.page-products .index-panel__mark--steppe {
  color: var(--steppe);
}

.page-products .index-panel__mark--night {
  color: #5B7BB5;
}

.page-products .index-facts {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--rule);
}

.page-products .index-facts li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
  font-size: var(--fs-small);
  color: var(--fog);
}

.page-products .index-facts__num {
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.5rem, 3vw, 1.75rem);
  line-height: 1;
  color: var(--fox);
  font-variant-numeric: tabular-nums;
  min-width: 3ch;
}

.page-products .timeline-fig {
  margin: clamp(28px, 4vw, 40px) 0 0;
}

/* 06 专栏 */
.page-products .column-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pr-pad);
  padding-bottom: var(--pr-lift);
}

.page-products .column-entry {
  padding: var(--pr-pad) 0;
  border-top: 1px solid var(--rule);
  transition: transform var(--dur) var(--ease);
}

.page-products .column-entry__tag {
  display: inline-block;
  margin-bottom: 12px;
  padding: 4px 10px;
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.06em;
  color: var(--steppe);
  border: 1px solid var(--steppe);
  border-radius: 2px;
}

.page-products .column-entry p {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.75;
  color: var(--fog);
}

.page-products .column-note {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .column-note a {
  color: var(--paper);
  text-decoration: none;
  border-bottom: 1px solid var(--fox);
  transition: color var(--dur) var(--ease);
}

.page-products .column-note a:hover {
  color: var(--fox);
}

/* 07 版本 */
.page-products .version-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.page-products .version-item {
  display: flex;
  gap: clamp(16px, 2.4vw, 28px);
  padding: clamp(20px, 3vw, 28px) 0;
  border-top: 1px solid var(--rule);
}

.page-products .version-item:last-child {
  border-bottom: 1px solid var(--rule);
}

.page-products .version-item__idx {
  flex: 0 0 auto;
  font-family: var(--font-mono);
  font-weight: 700;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--rule);
  font-variant-numeric: tabular-nums;
  transition: -webkit-text-stroke-color var(--dur) var(--ease);
}

.page-products .version-item:hover .version-item__idx {
  -webkit-text-stroke-color: var(--fox);
}

.page-products .version-item__body h3 {
  margin: 0 0 8px;
  font-size: var(--fs-h3);
  font-weight: 700;
  color: var(--paper);
}

.page-products .version-item__body p {
  margin: 0;
  font-size: var(--fs-small);
  line-height: 1.75;
  color: var(--fog);
}

/* 08 组合 */
.page-products .combo-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pr-pad);
}

.page-products .combo-card {
  padding: var(--pr-pad);
  background: var(--ink-2);
  border-left: 2px solid var(--rule);
  border-radius: var(--radius);
  transition: border-left-color var(--dur) var(--ease);
}

.page-products .combo-card:hover {
  border-left-color: var(--fox);
}

.page-products .combo-card--fox {
  border-left-color: var(--fox);
}

.page-products .combo-card__idx {
  display: block;
  margin-bottom: 10px;
  font-family: var(--font-mono);
  font-size: var(--fs-note);
  letter-spacing: 0.24em;
  color: var(--fog);
}

.page-products .combo-card__title {
  margin: 0 0 16px;
  font-size: var(--fs-h3);
  font-weight: 700;
  line-height: 1.4;
  color: var(--paper);
}

.page-products .combo-card__steps {
  margin: 0;
  padding-left: 18px;
  list-style: decimal;
}

.page-products .combo-card__steps li {
  margin-bottom: 8px;
  font-size: var(--fs-small);
  line-height: 1.7;
  color: var(--fog);
}

.page-products .combo-card__steps li::marker {
  font-family: var(--font-mono);
  color: var(--fox);
}

/* 响应式 */
@media (min-width: 720px) {
  .page-products .terminal-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-products .android-split,
  .page-products .search-split {
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }

  .page-products .search-split__body {
    order: 1;
  }

  .page-products .search-split__fig {
    order: 2;
  }

  .page-products .index-facts {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-products .index-facts li {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    border-bottom: 0;
    padding: 16px 16px 0 0;
  }

  .page-products .column-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-products .combo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .page-products .terminal-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-products .terminal-block:nth-child(odd) {
    transform: translateY(calc(-1 * var(--pr-lift)));
  }

  .page-products .column-entry--offset {
    transform: translateY(calc(-1 * var(--pr-lift)));
  }

  .page-products .combo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 719px) {
  .page-products .terminal-strip {
    margin-right: calc(-1 * var(--gutter));
    margin-left: calc(-1 * var(--gutter));
    padding-right: var(--gutter);
    padding-left: var(--gutter);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-products .terminal-block,
  .page-products .column-entry,
  .page-products .version-item,
  .page-products .spec-num,
  .page-products .spec-note,
  .page-products .terminal-pill,
  .page-products .combo-card,
  .page-products .column-note a {
    transition: none;
  }
}
