/* Li-dream — 关于页（2026-10-14 视觉改版第二批；规格 docs/superpowers/specs/2026-10-13-visual-redesign-design.md §4.3）。
   只在 /about/ 加载，排在 site.css、vis.css 之后。外观从 docs/reference/visual-redesign-20261014/hifi-about.html 移植（行号见
   docs/superpowers/plans/2026-10-14-visual-redesign-batch2-about.md），令牌换成 site.css 的 :root（同 vis.css 文件头的对照表；另：
   --on-dark2→--on-dark-2、--on-dark3→--on-dark-3、--amber-hi2→#ffc66b、--on-amber→--amber-ink、--paper→--paper、--ll→--line）。
   对比度：HTML 文字在深底不低于 --on-dark-3（6.4:1），在浅底不低于 --muted（5.7:1；--subtle 在卡片灰底上不到 4.5:1）；高保真稿里 #55585e / #5d6168 / #7d8087 的小字
   只留在 SVG 装饰里。原则：服务端输出全部可见（无 JS 时简介面板、支柱原文、图组各项都展开排列）；.is-live 等由 about-page.js 加；
   所有动画有限轮数（3 轮、both），减少动态时关闭（文件末尾）。旧版关于页在 site.css 里的 .ahero / .about-* / .bwall / .vcard / .afac
   规则不再使用（合并后另行清理，见计划「待定问题」）。 */
.page-about main [id] { scroll-margin-top: calc(var(--hdr-h) + 12px); }
.page-about .vk b { font-weight: 600; opacity: .65; letter-spacing: .1em; }

/* ---- 01 页头 + 公司介绍（高保真稿第 78–101 行） */
.abh { position: relative; overflow: hidden; background: #0e0f11; color: var(--on-dark); padding: 30px 0 96px; }
.abh__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.abh__bg img { position: absolute; right: 0; top: 0; width: 72%; height: 880px; object-fit: cover; object-position: 50% 40%;
  filter: grayscale(.55) contrast(1.15) brightness(.42) blur(.6px); opacity: .75;
  -webkit-mask-image: radial-gradient(70% 72% at 62% 30%, #000 25%, transparent 100%); mask-image: radial-gradient(70% 72% at 62% 30%, #000 25%, transparent 100%); }
.abh__bg::before { content: ""; position: absolute; inset: 0; z-index: 1; background:
  radial-gradient(820px 520px at 74% 6%, rgba(242, 163, 58, .20), transparent 62%),
  radial-gradient(760px 640px at -8% 96%, rgba(90, 110, 140, .18), transparent 62%),
  linear-gradient(180deg, rgba(14, 15, 17, .15) 0, rgba(14, 15, 17, .55) 520px, #0e0f11 900px); }
.abh__bg::after { content: ""; position: absolute; inset: 0; z-index: 2; opacity: .55;
  background-image: linear-gradient(rgba(255, 255, 255, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .035) 1px, transparent 1px);
  background-size: 56px 56px; -webkit-mask-image: radial-gradient(60% 50% at 30% 24%, #000, transparent 75%); mask-image: radial-gradient(60% 50% at 30% 24%, #000, transparent 75%); }
.abh__in { position: relative; z-index: 1; }
.abh .crumbs { margin-bottom: 44px; }
.abh__title { text-wrap: balance; font: 600 clamp(36px, 5.2vw, 72px)/1.06 var(--font-figure); letter-spacing: -.005em; margin: 20px 0 0; max-width: 1000px;
  background: linear-gradient(180deg, #fff 35%, #c9c7c1); -webkit-background-clip: text; background-clip: text; color: transparent; overflow-wrap: break-word; }
.abh__intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 64px; margin-top: 40px; align-items: start; }
.abh__lead { font-size: 20px; line-height: 1.6; color: #d4d5d8; margin: 0; max-width: 660px; }
.abh__lead strong, .abh__p strong { color: #fff; font-weight: 600; }
.abh__p { margin: 0; color: var(--on-dark-2); font-size: 15px; }
.abh__tocl { font: 600 10px/1 var(--font-figure); letter-spacing: .18em; color: var(--on-dark-3); text-transform: uppercase; margin: 28px 0 0; }
.abh__toc { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.abh__toc a { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px 7px 9px; border-radius: 9px; font-size: 12.5px; color: var(--on-dark-2);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); background: rgba(255, 255, 255, .025); transition: background-color .3s var(--vis-ease), color .3s; }
.abh__toc a i { font: 600 10px/1 var(--font-figure); font-style: normal; letter-spacing: .1em; color: var(--amber); }
.abh__toc a:hover { background: rgba(255, 255, 255, .07); color: #fff; }

/* 计数条（第 103–119 行）：dl 五格；数字 span.cnt 由 vis-reveal.js 计数 */
.abm { margin-top: 64px; border-radius: 20px; overflow: hidden; background: linear-gradient(180deg, rgba(34, 35, 39, .82), rgba(20, 21, 24, .9));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), inset 0 0 0 1px rgba(255, 255, 255, .06), 0 40px 80px -40px #000; }
.abm__ruler { height: 22px; border-bottom: 1px solid rgba(255, 255, 255, .08);
  background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .22) 0 1px, transparent 1px 60px), repeating-linear-gradient(90deg, rgba(255, 255, 255, .10) 0 1px, transparent 1px 12px);
  background-size: 100% 10px, 100% 5px; background-repeat: no-repeat; background-position: 0 100%, 0 100%; }
.abm__g { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; }
.abm__c { position: relative; padding: 26px 22px 22px; border-left: 1px solid rgba(255, 255, 255, .08); min-width: 0; }
.abm__c:first-child { border-left: 0; }
.abm__c::before { content: ""; position: absolute; left: 22px; top: 0; width: 22px; height: 2px; background: var(--amber); border-radius: 0 0 2px 2px; box-shadow: 0 0 12px rgba(242, 163, 58, .6); }
.abm__l { font: 600 10.5px/1.3 var(--font-figure); letter-spacing: .14em; color: var(--on-dark-3); text-transform: uppercase; overflow-wrap: anywhere; }
.abm__v { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 6px; margin: 14px 0; font: 500 clamp(32px, 3.4vw, 46px)/.95 var(--font-figure); color: var(--on-dark); font-variant-numeric: tabular-nums; }
.abm__v small { font: 500 14px var(--font); color: var(--on-dark-3); }
.abm__n { white-space: nowrap; }
.abm__src { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px; margin: 0; padding-top: 12px; border-top: 1px dashed rgba(255, 255, 255, .14); font-size: 12px; color: var(--on-dark-2); }
.abm__src i { font: 600 9px/1 var(--font-figure); font-style: normal; letter-spacing: .14em; padding: 4px 6px 3px; border-radius: 4px; color: var(--amber); box-shadow: inset 0 0 0 1px rgba(242, 163, 58, .35); white-space: nowrap; }

/* 三支柱（第 121–158 行）：无 JS 原文展开；.is-live 时收起（grid-template-rows 0fr），.is-open 展开 */
.abp__head { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin: 86px 0 24px; }
.abp__h { text-wrap: balance; font: 600 clamp(22px, 2.5vw, 32px)/1.2 var(--font-figure); margin: 12px 0 0; color: var(--on-dark); }
.abp__h::first-letter { text-transform: uppercase; }
.abp__note { margin: 0; max-width: 430px; font-size: 13.5px; color: var(--on-dark-3); }
.abp__row { display: grid; grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr) 46px minmax(0, 1fr); align-items: start; }
.abp__op { display: grid; place-items: center; align-self: stretch; max-height: 200px; }
.abp__op span { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font: 500 18px/1 var(--font-figure); color: var(--amber); box-shadow: inset 0 0 0 1px rgba(242, 163, 58, .35); background: radial-gradient(circle, rgba(242, 163, 58, .12), transparent 70%); }
.abp__p { position: relative; border-radius: 20px; padding: 22px 22px 0; overflow: hidden; background: linear-gradient(180deg, rgba(38, 39, 44, .92), rgba(22, 23, 26, .95));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), inset 0 0 0 1px rgba(255, 255, 255, .06), 0 40px 70px -40px rgba(0, 0, 0, .9); transition: box-shadow .5s var(--vis-ease); }
.abp__p.is-open { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), inset 0 0 0 1px rgba(242, 163, 58, .35), 0 40px 70px -40px rgba(0, 0, 0, .9); }
.abp__top { display: flex; justify-content: space-between; align-items: flex-start; }
.abp__n { margin: 0; font: 600 12px/1 var(--font-figure); letter-spacing: .16em; color: var(--amber); }
.abp__ic { width: 92px; height: 72px; margin: -4px -6px 0 0; }
.abp__p h3 { font: 600 24px/1.15 var(--font-figure); margin: 18px 0 6px; color: var(--on-dark); }
.abp__sub { margin: 0; font-size: 13px; color: var(--on-dark-3); }
.abp__btn { appearance: none; border: 0; background: none; cursor: pointer; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: calc(100% + 44px); margin: 20px -22px 0; padding: 14px 22px; border-top: 1px solid rgba(255, 255, 255, .08); text-align: left;
  font: 600 11px/1.3 var(--font-figure); letter-spacing: .14em; color: var(--on-dark-2); text-transform: uppercase; }
.abp__btn[hidden] { display: none; }
.abp__btn:hover { background: rgba(255, 255, 255, .03); }
.abp__btn:focus-visible { outline: 2px solid var(--amber); outline-offset: -2px; }
.abp__pm { position: relative; flex: none; width: 24px; height: 24px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); transition: background-color .4s var(--vis-ease); }
.abp__pm::before, .abp__pm::after { content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 1.5px; margin: -.75px 0 0 -4.5px; background: var(--on-dark-2); transition: transform .4s var(--vis-ease); }
.abp__pm::after { transform: rotate(90deg); }
.abp__p.is-open .abp__pm { background: var(--amber); box-shadow: none; }
.abp__p.is-open .abp__pm::before, .abp__p.is-open .abp__pm::after { background: var(--amber-ink); }
.abp__p.is-open .abp__pm::after { transform: rotate(0); }
.abp__q { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .55s var(--vis-ease); }
.abp__q > div { overflow: hidden; min-height: 0; }
.abp.is-live .abp__p:not(.is-open) .abp__q { grid-template-rows: 0fr; }
.abp__q blockquote { margin: 18px 0 20px; padding: 2px 0 0 14px; border-left: 2px solid var(--amber); font-size: 14px; color: #d8d9dc; line-height: 1.65; }
.abp__q blockquote p { margin: 0; }
.abp__q cite { display: block; margin-top: 8px; font: 600 9.5px/1.4 var(--font-figure); font-style: normal; letter-spacing: .14em; color: var(--on-dark-3); text-transform: uppercase; }
.abp__res { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 18px; align-items: center; margin-top: 18px; padding: 18px 22px 18px 14px; border-radius: 16px;
  background: linear-gradient(90deg, rgba(242, 163, 58, .10), rgba(242, 163, 58, .02) 60%, transparent); box-shadow: inset 0 0 0 1px rgba(242, 163, 58, .22); }
.abp__eq { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; justify-self: center; background: linear-gradient(180deg, #ffc66b, var(--amber)); color: var(--amber-ink); font: 600 18px/1 var(--font-figure); box-shadow: 0 0 22px -4px rgba(242, 163, 58, .8); }
.abp__res p { margin: 0; font-size: 14.5px; color: #d8d9dc; }
.abp__res p strong { color: #fff; font-weight: 600; }
.abp__outs { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.abp__out { display: flex; flex-direction: column; gap: 5px; padding: 9px 12px; border-radius: 10px; background: rgba(0, 0, 0, .25); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); font-size: 13px; color: var(--on-dark); }
.abp__out i { font: 600 9px/1 var(--font-figure); font-style: normal; letter-spacing: .16em; color: var(--amber); }

/* ---- 02 品牌产品墙（第 160–247 行）：无 JS 时卡片自然高度、简介面板在卡下；.is-live 定高、面板收进卡里 */
.abb { position: relative; background: var(--paper); padding: 120px 0; }
.abb::before { content: ""; position: absolute; inset: 0; background: radial-gradient(900px 520px at 88% 0%, rgba(242, 163, 58, .08), transparent 60%); pointer-events: none; }
.abb > .container { position: relative; }
.abb__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: end; margin-bottom: 44px; }
.abb__head .vsub strong { color: var(--ink); }
.abb__sum { display: flex; margin: 0; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 18px 36px -26px rgba(0, 0, 0, .35); overflow: hidden; }
.abb__sum div { padding: 12px 18px; }
.abb__sum div + div { border-left: 1px solid var(--line); }
.abb__sum dt { font: 600 9.5px/1.3 var(--font-figure); letter-spacing: .14em; color: var(--muted); text-transform: uppercase; }
.abb__sum dd { margin: 8px 0 0; font: 500 30px/1 var(--font-figure); color: var(--ink); }
.abw { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.abc { position: relative; display: flex; flex-direction: column; min-width: 0; border-radius: 20px; overflow: hidden;
  background: radial-gradient(120% 70% at 50% 0%, #f8f7f4, #ecebe6 70%), #ecebe6; box-shadow: 0 1px 0 #fff inset, 0 0 0 1px rgba(23, 24, 26, .07), 0 28px 50px -38px rgba(30, 25, 15, .55); }
.abc::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 220px; pointer-events: none; opacity: .8;
  background-image: linear-gradient(rgba(23, 24, 26, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(23, 24, 26, .04) 1px, transparent 1px); background-size: 16px 16px;
  -webkit-mask-image: radial-gradient(60% 55% at 50% 55%, #000, transparent); mask-image: radial-gradient(60% 55% at 50% 55%, #000, transparent); }
.abc__hd { position: absolute; left: 16px; right: 16px; top: 14px; z-index: 3; display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin: 0;
  font: 600 10px/1 var(--font-figure); letter-spacing: .16em; color: var(--muted); pointer-events: none; }
.abc__hd > span { white-space: nowrap; }
.abc__hd em { font-style: normal; padding: 4px 7px 3px; border-radius: 5px; background: rgba(23, 24, 26, .05); color: var(--muted); letter-spacing: .06em; font-size: 10px; line-height: 1.2; text-align: right; }
.abc--own .abc__hd em { background: var(--amber); color: var(--amber-ink); }
.abc__stack { position: relative; flex: none; height: 178px; margin-top: 34px; pointer-events: none; transition: transform .7s var(--vis-ease); }
.abc__stack::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: 2px; height: 14px; border-radius: 50%; background: radial-gradient(closest-side, rgba(20, 18, 12, .22), transparent); transition: left .7s var(--vis-ease), right .7s var(--vis-ease); }
.abc__t { position: absolute; left: 50%; bottom: 12px; aspect-ratio: 1; border-radius: 14px; background: #fff; overflow: hidden;
  box-shadow: 0 1px 0 #fff inset, 0 0 0 1px rgba(23, 24, 26, .06), 0 16px 26px -16px rgba(30, 25, 15, .5); transition: transform .75s var(--vis-ease); }
.abc__t img { width: 100%; height: 100%; object-fit: contain; padding: 2%; transform: scale(1.1); }
.abc__t0 { width: 58%; transform: translateX(-50%); z-index: 3; }
.abc__t1 { width: 44%; transform: translate(-100%, -16px) rotate(-7deg); z-index: 2; }
.abc__t2 { width: 44%; transform: translate(0%, -16px) rotate(7deg); z-index: 1; }
.abc.is-on .abc__stack { transform: translateY(-24px) scale(.84); }
.abc.is-on .abc__t0 { transform: translateX(-50%) translateY(-6px) scale(1.04); }
.abc.is-on .abc__t1 { transform: translate(-122%, -4px) rotate(-11deg); }
.abc.is-on .abc__t2 { transform: translate(22%, -4px) rotate(11deg); }
.abc.is-on .abc__stack::after { left: 4%; right: 4%; }
.abc__stack:empty::after { display: none; }  /* 清单里的图全被后台下架时图堆是空的：不画脚下阴影 */
.abc__btn { position: absolute; inset: 0; z-index: 4; appearance: none; border: 0; padding: 0; background: transparent; cursor: pointer; border-radius: inherit; }
.abc__btn[hidden] { display: none; }
.abc__btn:focus-visible { outline: 2px solid var(--amber); outline-offset: -2px; }
.abc__btn svg { position: absolute; right: 14px; top: 180px; width: 26px; height: 26px; padding: 7px; border-radius: 50%; background: #fff; color: var(--muted);
  box-shadow: 0 0 0 1px var(--line), 0 6px 14px -8px rgba(0, 0, 0, .5); transition: opacity .4s var(--vis-ease), transform .4s var(--vis-ease); }
.abc.is-on .abc__btn svg { opacity: 0; transform: scale(.6); }
.abc__ft { position: relative; z-index: 3; margin-top: auto; padding: 0 16px 16px; pointer-events: none; }
.abc__name { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin: 0; border-top: 2px solid var(--ink); padding-top: 11px; }
.abc__name b { font: 700 17px/1 var(--font-figure); letter-spacing: .12em; color: var(--ink); }
.abc__name span { font: 500 11px var(--font); color: var(--muted); }
.abc__name .cnt { font: 500 22px/1 var(--font-figure); color: var(--ink); margin-right: 2px; }
.abc__share { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 2px; margin-top: 10px; }
.abc__share i { height: 5px; border-radius: 1px; background: rgba(23, 24, 26, .08); }
.abc__share i.l { background: linear-gradient(180deg, #ffc66b, var(--amber)); }
.abc__meta { display: flex; justify-content: space-between; gap: 8px; margin: 6px 0 0; font: 600 9px/1.3 var(--font-figure); letter-spacing: .12em; color: var(--muted); text-transform: uppercase; }
.abc__more { position: relative; z-index: 4; padding: 0 16px 16px; }
.abc__more p { margin: 0 0 10px; font-size: 12.5px; line-height: 1.55; color: var(--muted); }
.abc__go { display: flex; justify-content: space-between; align-items: center; gap: 8px; border-top: 1px solid var(--line); padding-top: 10px; font: 600 12px/1.2 var(--font); color: var(--amber-deep); }
.abc__go svg { width: 14px; height: 14px; flex: none; }
.abw.is-live .abc { height: 330px; }
.abw.is-live .abc__more { position: absolute; left: 0; right: 0; bottom: 0; padding-top: 20px; transform: translateY(102%); transition: transform .6s var(--vis-ease);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .92) 18%, #fff 34%); }
.abw.is-live .abc.is-on .abc__more { transform: none; }
.abc--dark { background: linear-gradient(180deg, #26272b, #141518); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 28px 50px -30px rgba(0, 0, 0, .7); }
.abc--dark::before { background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px); }
.abc--dark .abc__hd { color: var(--on-dark-3); }
.abc--dark .abc__name { border-top-color: var(--on-dark); }
.abc--dark .abc__name b { color: var(--on-dark); }
.abc--dark .abc__quote { font: 600 11px/1.3 var(--font); color: var(--on-dark-2); text-align: right; }
.abc--dark .abc__t0 { width: 88%; aspect-ratio: 1200 / 760; bottom: 18px; border-radius: 12px; background: radial-gradient(80% 90% at 50% 40%, #22242a, #0d0e10); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), 0 22px 30px -18px #000; }
.abc--dark .abc__t0 img { object-fit: cover; padding: 0; transform: none; }
.abc--dark .abc__stack::after { display: none; }
.abc--dark .abc__meta { color: var(--on-dark-3); }
.abc--dark .abc__btn svg { background: #2a2b30; color: var(--on-dark-2); box-shadow: 0 0 0 1px rgba(255, 255, 255, .14); }
.abc--dark .abc__more p { color: var(--on-dark-2); }
.abc--dark .abc__go { border-top-color: rgba(255, 255, 255, .14); color: var(--amber); }
.abw.is-live .abc--dark .abc__more { background: linear-gradient(180deg, rgba(20, 21, 24, 0), rgba(20, 21, 24, .94) 18%, #141518 34%); }
.abb__note { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 28px; margin-top: 28px; }
.abb__why { border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); padding: 24px 26px; }
.abb__why p { margin: 0 0 16px; font-size: 14.5px; color: var(--muted); }
.abb__why p strong { color: var(--ink); }
.abb__why ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.abb__why li { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 12px; background: var(--paper); font-size: 13.5px; font-weight: 600; color: var(--ink); }
.abb__why li svg { width: 28px; height: 28px; flex: none; }
.abb__range { position: relative; overflow: hidden; border-radius: 20px; background: linear-gradient(180deg, #232428, #17181a); color: var(--on-dark); padding: 24px 26px 22px; box-shadow: 0 30px 60px -36px rgba(0, 0, 0, .7); }
.abb__range p { margin: 0 0 22px; font-size: 14.5px; color: var(--on-dark-2); }
.abb__scale { padding-top: 6px; }
.abb__bar { position: relative; display: block; height: 14px; border-radius: 7px; background: linear-gradient(90deg, rgba(242, 163, 58, .25), var(--amber) 55%, #ffc66b); box-shadow: 0 0 18px -4px rgba(242, 163, 58, .6); }
.abb__bar::after { content: ""; position: absolute; inset: 3px 4px; border-radius: 5px; background: repeating-linear-gradient(90deg, rgba(31, 20, 5, .35) 0 1px, transparent 1px 10px); }
.abb__stops { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; list-style: none; margin: 12px 0 0; padding: 0; }
.abb__stops li { position: relative; padding-top: 12px; font-size: 13px; color: var(--on-dark); }
.abb__stops li::before { content: ""; position: absolute; top: -6px; left: 0; width: 1px; height: 12px; background: var(--on-dark-2); }
.abb__stops li:nth-child(2) { text-align: center; }
.abb__stops li:nth-child(2)::before { left: 50%; }
.abb__stops li:nth-child(3) { text-align: right; }
.abb__stops li:nth-child(3)::before { left: auto; right: 0; }

/* ---- 03 制造能力（第 249–300 行） */
.abmf { position: relative; overflow: hidden; background: #0f1012; color: var(--on-dark); padding: 120px 0; }
.abmf__g { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 80px; align-items: start; }
.abmf .vsub strong { color: var(--on-dark); }
.abyr { margin: 38px 0 34px; }
.abyr__l { display: flex; justify-content: space-between; margin: 0 0 12px; font: 600 10px/1 var(--font-figure); letter-spacing: .18em; color: var(--on-dark-3); text-transform: uppercase; }
.abyr__track { position: relative; height: 44px; margin-bottom: 18px; }
.abyr__ticks { position: absolute; left: 0; right: 0; bottom: 0; height: 12px; border-bottom: 1px solid rgba(255, 255, 255, .14); background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .25) 0 1px, transparent 1px calc(100% / 12)); }
.abyr__fill { position: absolute; right: 0; bottom: 0; height: 3px; border-radius: 2px; transform-origin: left; background: linear-gradient(90deg, var(--amber), rgba(242, 163, 58, .25)); }
.abyr__fill--2 { bottom: 5px; background: linear-gradient(90deg, #e8e6e0, rgba(232, 230, 224, .2)); }
.rv-wait .abyr__fill { transform: scaleX(0); }
.is-in .abyr__fill { transition: transform 1.6s var(--vis-ease); }
.abyr__pin { position: absolute; bottom: 14px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; }
.abyr__pin::after { content: ""; width: 1px; height: 12px; background: var(--on-dark-2); }
.abyr__pin b { font: 600 11px/1 var(--font-figure); letter-spacing: .12em; white-space: nowrap; padding: 5px 8px 4px; border-radius: 6px; background: #1d1e22; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.abyr__pin--a b { color: var(--amber); box-shadow: inset 0 0 0 1px rgba(242, 163, 58, .45); }
.abyr__lab { position: absolute; left: 0; right: 0; top: 100%; display: flex; justify-content: space-between; margin-top: 6px; font: 600 9.5px/1 var(--font-figure); letter-spacing: .08em; color: var(--on-dark-3); }
.abmr { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 26px; padding: 26px 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.abmr:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.abmr__b { margin: 0; font: 700 22px/1 var(--font-figure); letter-spacing: .12em; color: var(--on-dark); }
.abmr__b small { display: block; margin-top: 9px; font: 600 10px/1.4 var(--font-figure); letter-spacing: .14em; color: var(--on-dark-3); text-transform: uppercase; }
.abmr__b em { display: inline-block; margin-top: 12px; font: 600 9.5px/1.2 var(--font-figure); font-style: normal; letter-spacing: .12em; color: var(--amber-ink); background: var(--amber); padding: 4px 7px 3px; border-radius: 4px; }
.abmr__p { margin: 0 0 18px; font-size: 14.5px; color: var(--on-dark-2); }
.abmr__p strong { color: var(--on-dark); font-weight: 600; }
.abrd { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.abrd__i { border-radius: 12px; padding: 12px 14px; min-width: 0; background: linear-gradient(180deg, #1f2024, #18191c); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .04); }
.abrd dt { font: 600 9.5px/1.3 var(--font-figure); letter-spacing: .14em; color: var(--on-dark-3); text-transform: uppercase; }
.abrd dd { margin: 9px 0; font: 500 26px/1 var(--font-figure); color: var(--on-dark); overflow-wrap: anywhere; }
.abrd dd small { font: 500 12px var(--font); color: var(--on-dark-3); margin: 0 3px; }
.abrd__cells { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2px; }
.abrd__cells i { height: 6px; border-radius: 1px; background: rgba(255, 255, 255, .07); }
.abrd__cells i.l { background: linear-gradient(180deg, #ffc66b, var(--amber)); box-shadow: 0 0 8px -2px rgba(242, 163, 58, .7); }
.abrd__s { display: flex; justify-content: space-between; margin-top: 6px; font: 600 8.5px/1 var(--font-figure); letter-spacing: .1em; color: var(--on-dark-3); }
.abvf { position: relative; margin: 0; }
.abvf::before, .abvf::after { content: ""; position: absolute; left: 28px; right: -22px; top: 34px; bottom: -22px; border-radius: 26px; }
.abvf::before { background: linear-gradient(160deg, #ffc66b, var(--amber) 40%, #c97a14); opacity: .95; box-shadow: 0 30px 60px -30px rgba(242, 163, 58, .5); }
.abvf::after { background: repeating-linear-gradient(135deg, rgba(31, 20, 5, .10) 0 1px, transparent 1px 9px); pointer-events: none; }
.abvf__in { position: relative; z-index: 1; border-radius: 24px; background: linear-gradient(180deg, #232428, #141518); padding: 10px; box-shadow: 0 50px 90px -40px #000, inset 0 1px 0 rgba(255, 255, 255, .08), inset 0 0 0 1px rgba(255, 255, 255, .07); }
.abvf__bar { display: flex; justify-content: space-between; align-items: center; margin: 0; padding: 6px 8px 10px; }
.abvf__bar b { display: flex; align-items: center; gap: 8px; font: 600 12px/1 var(--font-figure); letter-spacing: .06em; color: var(--on-dark); }
.abvf__bar b i { width: 7px; height: 7px; border-radius: 50%; background: #55585e; transition: background-color .3s, box-shadow .3s; }
.abvf.is-playing .abvf__bar b i { background: var(--amber); box-shadow: 0 0 10px var(--amber); }
.abvf__tc { font: 500 13px/1 var(--font-figure); letter-spacing: .06em; color: var(--on-dark); font-variant-numeric: tabular-nums; }
.abvf__tc small { color: var(--on-dark-3); }
.abvf video { display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; border-radius: 16px; background: #000; object-fit: cover; }
.abvf__ruler { position: relative; height: 26px; margin: 10px 6px 2px; cursor: pointer; }
.abvf__ruler[hidden] { display: none; }
.abvf__tk { position: absolute; inset: auto 0 8px; height: 9px; background-image: repeating-linear-gradient(90deg, rgba(255, 255, 255, .22) 0 1px, transparent 1px 10%), repeating-linear-gradient(90deg, rgba(255, 255, 255, .08) 0 1px, transparent 1px 2.5%);
  background-size: 100% 9px, 100% 5px; background-repeat: no-repeat; background-position: 0 100%, 0 100%; }
.abvf__pg { position: absolute; left: 0; bottom: 6px; height: 2px; width: 0; background: var(--amber); box-shadow: 0 0 10px rgba(242, 163, 58, .7); }
.abvf__hd { position: absolute; bottom: 2px; left: 0; width: 2px; height: 16px; background: #ffc66b; border-radius: 1px; transform: translateX(-1px); }

/* ---- 04 两座工厂（第 302–394 行）：地图 + 页签只在 JS 下出现（[data-js-only]）；.has-map 时页签浮在地图右上角 */
.abf { position: relative; background: var(--paper); padding: 120px 0; }
.abf::before { content: ""; position: absolute; inset: 0; background: radial-gradient(900px 500px at 10% 0%, rgba(242, 163, 58, .07), transparent 60%); pointer-events: none; }
.abf > .container { position: relative; }
.abf__head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 44px; }
.abf__chart { position: relative; border-radius: 28px; overflow: hidden; background: #0d0e10; color: var(--on-dark); --focus: var(--amber);
  box-shadow: 0 70px 110px -60px rgba(20, 16, 8, .7), 0 0 0 1px rgba(0, 0, 0, .2); }
.abf__map { position: relative; height: 580px; background: radial-gradient(900px 500px at 60% 60%, #16181c, #0c0d0f 75%); overflow: hidden; }
.abf__map[hidden] { display: none; }
.abf__svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.abf__svg text { font-family: var(--font-figure); }
.abmp__gl { font-size: 9.5px; letter-spacing: 1px; fill: rgba(255, 255, 255, .34); }
.abmp__gl--b { fill: rgba(255, 255, 255, .22); }
.abmp__to { font-size: 10px; letter-spacing: 2.5px; fill: #f2a33a; text-transform: uppercase; }
.abmp__note { font: 10px var(--font); fill: rgba(255, 255, 255, .5); }
.abmp__sb { font-size: 9px; letter-spacing: 1px; fill: rgba(255, 255, 255, .5); }
.abmp__dir { font-size: 9.5px; letter-spacing: 1px; fill: rgba(255, 255, 255, .6); }  /* 指北针的 N；地图文字一律 .abmp__*，别用计数条的 .abm__* 前缀（开工前扫描 #2：.abm__n 撞名） */
.abmp__eu { font-size: 7.5px; letter-spacing: 1px; fill: rgba(223, 232, 245, .8); }
.abmk { cursor: pointer; }
.abmk__lab { transition: opacity .5s var(--vis-ease); }
.abmk.is-dim .abmk__lab { opacity: .45; }
.abmk__no { font-size: 10px; letter-spacing: 2px; fill: #f2a33a; }
.abmk__city { font: 600 22px var(--font); fill: #f1f0ec; }
.abmk__city.is-m { font-size: 18px; }
.abmk__sub { font: 11px var(--font); fill: #b9bbc0; }
.abmk__ll { font-size: 9.5px; letter-spacing: 1px; fill: rgba(255, 255, 255, .38); }
@keyframes ab-pulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(4.2); opacity: 0; } }
@keyframes ab-flow { to { stroke-dashoffset: -60; } }
.abmk__pulse { transform-box: fill-box; transform-origin: center; opacity: 0; animation: ab-pulse 2.4s var(--vis-ease) 3 both; }
.abmk.is-dim .abmk__pulse, .is-redrawn .abmk__pulse { animation: none; }
.abmp__flow { stroke-dasharray: 3 7; animation: ab-flow 2.2s linear 3 both; }
.is-redrawn .abmp__flow { animation: none; }
.abf__loc { position: absolute; left: 30px; bottom: 30px; z-index: 2; width: 236px; border-radius: 14px; padding: 10px 10px 9px; background: rgba(14, 15, 17, .82);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 20px 40px -20px #000; }
.abf__loc canvas, .abf__loc svg { display: block; width: 216px; height: 104px; }
.abf__loc svg { position: absolute; left: 10px; top: 10px; }
.abf__loc p { margin: 8px 2px 0; font: 600 9px/1.3 var(--font-figure); letter-spacing: .14em; color: var(--on-dark-3); text-transform: uppercase; }
.abf__tabs { display: flex; gap: 4px; padding: 4px; margin: 14px; border-radius: 14px; background: rgba(14, 15, 17, .82); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 20px 40px -20px #000; }
.abf__tabs[hidden] { display: none; }
.abf__chart.has-map .abf__tabs { position: absolute; right: 26px; top: 26px; z-index: 3; margin: 0; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.abf__tab { appearance: none; border: 0; background: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; align-items: center; text-align: left; padding: 9px 14px 9px 10px; border-radius: 10px; color: inherit; transition: background-color .35s var(--vis-ease); }
.abf__tab:focus-visible { outline: 2px solid var(--amber); outline-offset: 1px; }
.abf__tab i { grid-row: span 2; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font: 600 10px/1 var(--font-figure); font-style: normal; letter-spacing: .08em; color: var(--on-dark-3); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.abf__tab b { font: 600 14px/1.15 var(--font); color: var(--on-dark-2); }
.abf__tab small { font: 600 9.5px/1.2 var(--font-figure); letter-spacing: .12em; color: var(--on-dark-3); text-transform: uppercase; }
.abf__tab[aria-selected="true"] { background: linear-gradient(180deg, #2a2b30, #1d1e22); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 8px 20px -10px #000; }
.abf__tab[aria-selected="true"] i { background: var(--amber); color: var(--amber-ink); box-shadow: 0 0 14px -2px rgba(242, 163, 58, .8); }
.abf__tab[aria-selected="true"] b { color: #fff; }
.abf__panel { position: relative; border-top: 1px solid rgba(255, 255, 255, .08); background: linear-gradient(180deg, #141518, #101113); padding: 34px 36px 36px; }
.abf__panel[hidden] { display: none; }
.abf__panel:not([hidden]) { animation: ab-swap .6s var(--vis-ease) 1 both; }
@keyframes ab-swap { from { opacity: 0; transform: translateY(10px); } }
.abf__hd { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: end; margin-bottom: 26px; }
.abf__k { display: flex; align-items: center; gap: 10px; margin: 0; font: 600 11px/1.3 var(--font-figure); letter-spacing: .18em; color: var(--amber); text-transform: uppercase; }
.abf__k i { width: 22px; height: 2px; background: var(--amber); border-radius: 2px; flex: none; }
.abf__hd h3 { font: 600 30px/1.15 var(--font-figure); margin: 12px 0 10px; }
.abf__hd p:not(.abf__k) { margin: 0; max-width: 760px; font-size: 14.5px; color: var(--on-dark-2); }
.abf__go { display: inline-flex; align-items: center; gap: 8px; padding: 11px 14px; border-radius: 999px; font: 600 13px/1 var(--font); color: var(--amber); box-shadow: inset 0 0 0 1px rgba(242, 163, 58, .4); white-space: nowrap; transition: background-color .3s; }
.abf__go:hover { background: rgba(242, 163, 58, .1); }
.abf__go svg { width: 14px; height: 14px; }
.abf__g { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.abf__col { display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.abg { display: grid; gap: 8px; }
.abg.is-live { grid-template-columns: minmax(0, 1fr) 96px; }
.abg__main { display: grid; gap: 8px; min-width: 0; }
.abg__item { position: relative; margin: 0; border-radius: 16px; overflow: hidden; background: #000; aspect-ratio: 16 / 11; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.abg__item[hidden] { display: none; }
.abg__item img, .abg__item video { display: block; width: 100%; height: 100%; object-fit: cover; }
.abg__item video { object-fit: contain; background: #0a0a0b; }
.abg__item.is-video { aspect-ratio: auto; }
.abg__item.is-video video { aspect-ratio: 16 / 11; height: auto; }
.abg__item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px 14px 12px; font-size: 12.5px; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .78)); pointer-events: none; }
.abg__item.is-video figcaption { position: static; padding: 10px 12px; background: #0a0a0b; color: var(--on-dark-2); }
.abg__idx { position: absolute; left: 12px; top: 12px; z-index: 2; font: 600 10px/1 var(--font-figure); letter-spacing: .16em; padding: 5px 7px 4px; border-radius: 6px; background: rgba(0, 0, 0, .55); color: #fff; }
.abg__thumbs { display: grid; grid-auto-rows: minmax(0, 1fr); gap: 8px; }
.abg__thumbs[hidden] { display: none; }
.abg__th { position: relative; appearance: none; border: 0; padding: 0; cursor: pointer; min-height: 60px; border-radius: 10px; overflow: hidden; background: #000; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); opacity: .55; transition: opacity .35s; }
.abg__th img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.abg__th[aria-pressed="true"] { opacity: 1; box-shadow: 0 0 0 2px var(--amber); }
.abg__th:hover { opacity: .9; }
.abg__th:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
.abg__play { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0, 0, 0, .25); color: #fff; }
.abg__play svg { width: 22px; height: 22px; }
.abf__capsh { display: flex; justify-content: space-between; gap: 12px; margin: 2px 0 12px; font: 600 10.5px/1.3 var(--font-figure); letter-spacing: .16em; color: var(--on-dark-3); text-transform: uppercase; }
.abf__capsh b { color: var(--amber); font-weight: 600; }
.abf__caps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.abf__caps li { display: flex; align-items: flex-start; gap: 7px; font-size: 12.5px; line-height: 1.4; padding: 7px 10px 7px 8px; border-radius: 9px; background: rgba(255, 255, 255, .035); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); color: var(--on-dark-2); }
.abf__caps li i { flex: none; width: 6px; height: 6px; margin-top: 5px; border-radius: 50%; background: var(--amber); box-shadow: 0 0 8px rgba(242, 163, 58, .6); }
.abf .vnp__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.abf .vnp__facts > div:nth-child(n) { padding-left: 0; border-left: 0; }
.abf .vnp__facts > div:nth-child(2n) { padding-left: 16px; border-left: 1px solid rgba(0, 0, 0, .14); }
.abf .vnp dd small { font: 600 13px/1.3 var(--font); color: #33363b; text-shadow: none; }  /* 铭牌事实的前后缀与单位（approx.、m²、design and utility patents） */
.abf .vbadges { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }

/* ---- 05 刻度能量环（第 396–421 行）：服务端 SVG；中心是 HTML 叠层（长译文可换行） */
.abr { position: relative; overflow: hidden; background: #0e0f11; color: var(--on-dark); padding: 120px 0; }
.abr__stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); min-height: 600px; border-radius: 26px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .08);
  background: radial-gradient(1200px 500px at 70% -10%, rgba(242, 163, 58, .10), transparent 60%), radial-gradient(900px 600px at 0% 120%, rgba(90, 110, 140, .18), transparent 60%), linear-gradient(180deg, #15161a, #0f1013);
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .04); }
.abr__copy { padding: 46px 44px 40px; }
.abr__copy .vsub { margin-top: 12px; }
.abr__list { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 2px; }
.abr__it { appearance: none; cursor: pointer; width: 100%; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 3px 14px; padding: 13px 16px; text-align: left; color: inherit;
  border-radius: 14px; border: 1px solid transparent; background: none; transition: background-color .35s var(--vis-ease), border-color .35s; }
.abr__it:focus-visible { outline: 2px solid var(--amber); outline-offset: 1px; }
.abr__it i { grid-row: span 2; font: 500 24px/1 var(--font-figure); font-style: normal; color: var(--on-dark-3); padding-top: 2px; transition: color .35s; }
.abr__it b { font-size: 15px; font-weight: 600; color: var(--on-dark-2); transition: color .35s; }
.abr__it span { font-size: 13px; line-height: 1.5; color: var(--on-dark-3); }
.abr__it.is-on { background: linear-gradient(90deg, rgba(242, 163, 58, .11), rgba(242, 163, 58, 0)); border-color: rgba(242, 163, 58, .24); }
.abr__it.is-on i { color: var(--amber); }
.abr__it.is-on b { color: var(--on-dark); }
.abr__it.is-on span { color: var(--on-dark-2); }
.abr__box { position: relative; display: grid; place-items: center; padding: 22px; }
.abr__dial { position: relative; width: 100%; max-width: 600px; container-type: inline-size; }  /* SVG 是正方形、与本容器同宽：叠层用 cqw 定位，1cqw = 5.4 个 SVG 单位（手机上读数排在环下也不影响圆心） */
.abr__svg { display: block; width: 100%; height: auto; overflow: visible; }
.abr__deg { font: 9px var(--font-figure); letter-spacing: 1px; fill: rgba(255, 255, 255, .3); }
.abr__track { fill: none; stroke: rgba(255, 255, 255, .07); stroke-width: 24; stroke-linecap: round; }
.abr__scale { fill: none; stroke: rgba(255, 255, 255, .16); stroke-width: 1; }
.abr__arc { fill: none; stroke: url(#ab-r-arc); stroke-width: 24; stroke-linecap: round; filter: url(#ab-r-glow); stroke-dasharray: 100; stroke-dashoffset: 100; opacity: 0;
  transition: stroke-dashoffset .9s var(--vis-ease), opacity .4s; }
.abr__arc.is-on { stroke-dashoffset: 0; opacity: 1; }
.abr__lab { font: 600 11px var(--font); letter-spacing: .2em; fill: var(--on-dark-3); text-transform: uppercase; transition: fill .4s; }
.abr__lab.is-on { fill: #ffc66b; }
.abr__lab.is-long { display: none; }
.abr__no { font: 600 10px var(--font-figure); letter-spacing: .1em; fill: #6c7078; transition: fill .4s; }
.abr__no.is-on { fill: var(--amber); }
.abr__hit { fill: none; stroke: transparent; stroke-width: 54; pointer-events: stroke; cursor: pointer; }
@keyframes ab-spin { to { transform: rotate(360deg); } }
.abr__spin { transform-box: fill-box; transform-origin: center; animation: ab-spin 40s linear 3 both; }
.abr__core { position: absolute; left: 50%; top: 50cqw; width: 26%; aspect-ratio: 1; transform: translate(-50%, -50%); display: grid; place-items: center; pointer-events: none; }
.abr__c { display: none; flex-direction: column; align-items: center; gap: 2px; text-align: center; color: var(--amber-ink); }
.abr__c.is-on { display: flex; animation: ab-core .55s var(--vis-ease) 1 both; }
@keyframes ab-core { from { opacity: 0; transform: translateY(6px); } }
.abr__ic { width: 34px; height: 34px; }
.abr__c b { font: 500 26px/1 var(--font-figure); }
.abr__c span { max-width: 9em; font: 600 11px/1.2 var(--font); letter-spacing: .04em; overflow-wrap: anywhere; }
/* 读数在琥珀核心（r 72）与旋转虚线圈（r 112）之间约 0.75r 处（顶边 y ≈ 76），字号收小让一行读数离虚线留出空隙；手机上这条环带只有约 24px 高，读数改排在环下（≤ 640） */
.abr__read { position: absolute; left: 50%; top: 64.1cqw; transform: translateX(-50%); width: 26%; text-align: center; pointer-events: none; }
.abr__r { display: none; margin: 0; font: 600 9px/1.25 var(--font); letter-spacing: .04em; color: var(--on-dark-2); text-wrap: balance; }  /* 小字不低于 9px（环较小的 1021–1180 宽原先缩到 7.5px） */
.abr__r b { font: 500 clamp(11px, 2.34cqw, 13px)/1 var(--font-figure); color: var(--on-dark); }  /* 数字随环缩放（1440 时 13px），1021–1180 宽也不压虚线 */
.abr__r.is-on { display: block; }
/* 环最小时（1021–1080 宽，环约 450–480px）9px 小字一行读数的末字会碰到虚线圈：收掉字距（≤ 640 的环下读数在后面另设，不受影响） */
@container (max-width: 480px) { .abr__r { letter-spacing: 0; } }

/* ---- 06 合作伙伴 + CTA + 收尾条（第 423–483 行） */
.abpt { position: relative; background: var(--paper); padding: 120px 0 110px; }
.abpt__g { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: start; }
.abpt__lead strong { color: var(--ink); }
.abpt__aud { margin-top: 26px; }
.abpt__l { margin: 0 0 10px; font: 600 10px/1.3 var(--font-figure); letter-spacing: .16em; color: var(--muted); text-transform: uppercase; }
.abpt__l b { color: var(--amber-deep); font-weight: 600; }
.abpt__aud ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.abpt__aud li { font-size: 13px; padding: 7px 11px; border-radius: 9px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); }
.abpt__need { border-radius: 20px; background: #fff; box-shadow: inset 0 0 0 1px var(--line), 0 24px 50px -36px rgba(0, 0, 0, .35); padding: 22px 24px; }
.abpt__need ol { list-style: none; margin: 4px 0 0; padding: 0; counter-reset: n; }
.abpt__need li { counter-increment: n; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 15px; font-weight: 600; color: var(--ink); }
.abpt__need li::before { content: counter(n, decimal-leading-zero); font: 600 11px/1 var(--font-figure); letter-spacing: .12em; color: var(--amber-deep); }
.abpt__need p { margin: 14px 0 0; padding-top: 14px; border-top: 2px solid var(--ink); font-size: 13.5px; color: var(--muted); }
.abpt__need p strong { color: var(--ink); }
.abcta { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 56px; }
.abcta__c { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 46%; min-height: 260px; border-radius: 24px; overflow: hidden; transition: transform .5s var(--vis-ease); }
.abcta__c:hover { transform: translateY(-4px); }
.abcta__c:focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }
.abcta__t { position: relative; z-index: 1; display: flex; flex-direction: column; padding: 28px 0 26px 30px; }
.abcta__k { font: 600 10.5px/1 var(--font-figure); letter-spacing: .2em; text-transform: uppercase; }
.abcta__h { display: block; font: 600 30px/1.1 var(--font-figure); margin: 14px 0 10px; }
.abcta__p { display: block; font-size: 13.5px; line-height: 1.55; }
.abcta__contact { display: flex; flex-direction: column; gap: 4px; margin: 16px 0 18px; font: 500 13px/1.4 var(--font-figure); letter-spacing: .03em; color: var(--on-dark); overflow-wrap: anywhere; }
.abcta__contact small { font: 600 9px/1 var(--font-figure); letter-spacing: .14em; color: var(--on-dark-3); margin-right: 8px; text-transform: uppercase; }
.abcta__go { margin-top: auto; padding-top: 18px; display: inline-flex; align-items: center; gap: 10px; font: 600 14px/1.2 var(--font); }
.abcta__arr { width: 40px; height: 40px; flex: none; border-radius: 50%; display: grid; place-items: center; transition: transform .4s var(--vis-ease); }
.abcta__arr svg { width: 16px; height: 16px; }
.abcta__c:hover .abcta__arr { transform: translateX(4px); }
.abcta__c--dark { background: radial-gradient(500px 300px at 85% 20%, rgba(242, 163, 58, .18), transparent 60%), linear-gradient(180deg, #232428, #141518); color: var(--on-dark);
  box-shadow: 0 40px 70px -40px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .07); }
.abcta__c--dark .abcta__k { color: var(--amber); }
.abcta__c--dark .abcta__p { color: var(--on-dark-2); }
.abcta__c--dark .abcta__arr { background: var(--amber); color: var(--amber-ink); box-shadow: 0 0 24px -6px rgba(242, 163, 58, .8); }
.abcta__c--light { background: linear-gradient(180deg, #fff, #f1f0ec); color: var(--ink); box-shadow: 0 1px 0 #fff inset, 0 0 0 1px rgba(23, 24, 26, .08), 0 40px 70px -46px rgba(30, 25, 15, .5); }
.abcta__c--light .abcta__k { color: var(--amber-deep); }
.abcta__c--light .abcta__p { color: var(--muted); }
.abcta__c--light .abcta__arr { background: var(--ink); color: #fff; }
.abcta__art { position: relative; display: block; }
.abcta__art > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.abfan { position: absolute; inset: 0; }
.abfan::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 34px; height: 16px; border-radius: 50%; background: radial-gradient(closest-side, rgba(20, 18, 12, .22), transparent); }
.abfan__t { position: absolute; left: 50%; bottom: 40px; aspect-ratio: 1; border-radius: 14px; background: #fff; overflow: hidden; box-shadow: 0 1px 0 #fff inset, 0 0 0 1px rgba(23, 24, 26, .06), 0 16px 26px -16px rgba(30, 25, 15, .5); transition: transform .75s var(--vis-ease); }
.abfan__t img { width: 100%; height: 100%; object-fit: contain; padding: 2%; transform: scale(1.1); }
.abfan__t--c { width: 46%; transform: translateX(-50%); z-index: 3; }
.abfan__t--l { width: 36%; transform: translate(-100%, -22px) rotate(-8deg); z-index: 2; }
.abfan__t--r { width: 36%; transform: translate(0%, -22px) rotate(8deg); z-index: 1; }
.abcta__c:hover .abfan__t--l { transform: translate(-112%, -28px) rotate(-12deg); }
.abcta__c:hover .abfan__t--r { transform: translate(12%, -28px) rotate(12deg); }
.abfan__tag { position: absolute; right: 22px; top: 24px; z-index: 4; max-width: 60%; text-align: right; font: 600 9.5px/1.4 var(--font-figure); letter-spacing: .14em; color: var(--muted); text-transform: uppercase; }
.abfan__tag b { display: block; font: 500 30px/1 var(--font-figure); color: var(--ink); letter-spacing: 0; }
.abcl { position: relative; overflow: hidden; background: linear-gradient(180deg, #f6b44f, #f2a33a 60%, #ec9a2e); color: var(--amber-ink); padding: 78px 0 70px; text-align: center; }
.abcl::before { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .07) 0 1px, rgba(0, 0, 0, .02) 1px 3px); opacity: .8; pointer-events: none; }
.abcl::after { content: ""; position: absolute; left: 50%; top: -140px; width: 900px; height: 300px; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(255, 236, 190, .55), transparent); pointer-events: none; }
.abcl__in { position: relative; z-index: 1; }
.abcl__k { display: flex; justify-content: center; align-items: center; gap: 14px; margin: 0; font: 600 10.5px/1 var(--font-figure); letter-spacing: .24em; color: rgba(31, 20, 5, .7); text-transform: uppercase; }
.abcl__k i { width: 40px; height: 1px; background: rgba(31, 20, 5, .4); }
.abcl__slogan { max-width: 26ch; margin: 22px auto 26px; text-wrap: balance; font: 600 clamp(28px, 4vw, 52px)/1.15 var(--font-figure); letter-spacing: .01em; }
.abcl__slogan strong { font-weight: inherit; }
.abcl__sign { display: inline-block; margin: 0; padding-top: 16px; border-top: 2px solid var(--amber-ink); font-size: 13.5px; }
.abcl__sign strong { display: block; font: 600 15px/1.3 var(--font-figure); letter-spacing: .04em; }
.abcl__sign em { color: rgba(31, 20, 5, .8); }

/* ---- 窄屏（第 494–608 行） */
@media (max-width: 1180px) {
  .abm__g { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .abm__c:nth-child(4) { border-left: 0; }
  .abm__c:nth-child(n+4) { border-top: 1px solid rgba(255, 255, 255, .08); }
  .abw { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1020px) {
  .abh__intro { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .abp__head { flex-direction: column; align-items: flex-start; }
  .abp__row { grid-template-columns: minmax(0, 1fr); }
  .abp__op { height: 40px; }
  .abp__res { grid-template-columns: 46px minmax(0, 1fr); }
  .abp__outs { grid-column: 1 / -1; }
  .abb__head, .abf__head { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .abb__sum { justify-self: start; }
  .abw { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .abb__note { grid-template-columns: minmax(0, 1fr); }
  .abmf__g { grid-template-columns: minmax(0, 1fr); gap: 60px; }
  .abvf { max-width: 420px; width: 100%; margin: 0 auto; }
  .abr__stage { grid-template-columns: minmax(0, 1fr); }
  .abr__box { order: -1; padding: 30px 20px 0; }
  .abpt__g { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .abcta { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 820px) {
  .abf__map { height: 540px; }
  .abf__chart.has-map .abf__map { padding-top: 66px; }
  .abf__chart.has-map .abf__svg { top: 66px; height: calc(100% - 66px); }
  .abf__loc { display: none; }
  .abf__chart.has-map .abf__tabs { left: 14px; right: 14px; top: 14px; }
  .abf__tab { flex: 1; }
  .abf__g { grid-template-columns: minmax(0, 1fr); }
  .abg.is-live { grid-template-columns: minmax(0, 1fr); }
  .abg__thumbs { grid-auto-rows: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .abg__th { aspect-ratio: 4 / 3; min-height: 0; }
  .abf__hd { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}
@media (max-width: 640px) {
  .abh { padding-bottom: 70px; }
  .abh .crumbs { margin-bottom: 24px; }
  .abh__bg img { width: 100%; height: 620px; opacity: .5; }
  .abh__title { font-size: 32px; line-height: 1.12; }
  .abh__lead { font-size: 17px; }
  .abm { margin-top: 40px; }
  .abm__g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .abm__c { padding: 20px 16px 16px; }
  .abm__c::before { left: 16px; }
  .abm__c:nth-child(n) { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .08); }
  .abm__c:first-child { grid-column: 1 / -1; border-top: 0; }
  .abm__c:nth-child(2n+1):not(:first-child) { border-left: 1px solid rgba(255, 255, 255, .08); }
  .abm__v { font-size: 30px; }
  .abm__src { font-size: 11.5px; }
  .abp__head { margin-top: 64px; }
  .abp__res { padding: 16px 14px; }
  .abb, .abmf, .abf, .abr, .abpt { padding: 76px 0 80px; }
  .abw { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .abw.is-live .abc { height: 286px; }
  .abc { border-radius: 16px; }
  .abc__stack { height: 136px; margin-top: 30px; }
  .abc__hd { left: 12px; right: 12px; top: 12px; font-size: 9px; letter-spacing: .1em; }
  .abc__hd em { font-size: 9px; padding: 3px 5px 2px; }
  .abc__ft, .abc__more { padding-left: 12px; padding-right: 12px; }
  .abc__name b { font-size: 14px; letter-spacing: .08em; }
  .abc__name .cnt { font-size: 17px; }
  .abc__more p { font-size: 11.5px; }
  .abw.is-live .abc__more p { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
  .abc__btn svg { top: 146px; right: 10px; }
  .abc__meta span:last-child { white-space: nowrap; } /* 「82 / 375」「48–72 V」不断行 */
  .abb__why ul { grid-template-columns: minmax(0, 1fr); }
  .abb__stops { grid-template-columns: minmax(0, 1fr); }
  .abb__stops li:nth-child(n) { text-align: left; }
  .abb__stops li:nth-child(n)::before { left: 0; right: auto; }
  .abmr { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .abrd { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .abrd__i:last-child:nth-child(3) { grid-column: 1 / -1; }
  .abrd dd { font-size: 22px; }
  .abyr__pin b { font-size: 9.5px; padding: 4px 6px 3px; }
  .abvf::before, .abvf::after { right: -8px; left: 20px; }
  .abf__chart { border-radius: 20px; }
  .abf__map { height: 500px; }
  .abf__tab { padding: 8px; gap: 2px 7px; }
  .abf__tab b { font-size: 12.5px; }
  .abf__tab small { font-size: 8.5px; letter-spacing: .08em; }
  .abf__tab i { width: 22px; height: 22px; }
  .abf__panel { padding: 24px 16px; }
  .abf__hd h3 { font-size: 24px; }
  .abf .vbadges { grid-template-columns: minmax(0, 1fr); }
  .abr__copy { padding: 26px 16px 28px; }
  .abr__box { padding: 24px 6px 0; }
  .abr__stage { border-radius: 20px; }
  .abr__it { padding: 11px 10px; grid-template-columns: 36px minmax(0, 1fr); }
  .abr__it i { font-size: 20px; }
  .abr__ic { width: 20px; height: 20px; }  /* 手机上琥珀圆只有约 88px：图标、编号、短标签缩小，短标签换行留在圆内 */
  .abr__c { gap: 1px; }
  .abr__c b { font-size: 17px; }
  .abr__c span { max-width: 72px; font-size: 9px; letter-spacing: .02em; }
  .abr__read { position: static; transform: none; width: auto; max-width: 92%; margin: 4px auto 0; }
  .abr__r { font-size: 10px; letter-spacing: .06em; }
  .abr__r b { font-size: 15px; }
  .abcta__c { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .abcta__t { padding: 24px 20px 22px; }
  .abcta__art { height: 210px; order: -1; }
  .abcta__c--dark .abcta__art { height: 170px; }
  .abfan__t { bottom: 26px; }
  .abfan__t--c { width: 40%; }
  .abfan__t--l, .abfan__t--r { width: 31%; }
  .abfan__tag { top: 16px; right: 16px; }
}

/* ---- 减少动态：不过渡、不做循环动画（显现与计数由 vis-reveal.js 跳过） */
@media (prefers-reduced-motion: reduce) {
  .abp__q, .abp__p, .abp__pm, .abp__pm::before, .abp__pm::after, .abc__stack, .abc__stack::after, .abc__t, .abc__btn svg, .abw.is-live .abc__more, .abyr__fill, .is-in .abyr__fill,
  .abr__arc, .abr__lab, .abr__no, .abr__it, .abmk__lab, .abcta__c, .abcta__arr, .abfan__t, .abf__tab { transition: none; }
  .abmk__pulse, .abmp__flow, .abr__spin, .abr__c.is-on, .abf__panel:not([hidden]) { animation: none; }
  .rv-wait .abyr__fill { transform: none; }
  .abcta__c:hover { transform: none; }
}
