
      *,
      *::before,
      *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }
      :focus-visible {
        outline: 2px solid var(--blue2);
        outline-offset: 2px;
        border-radius: 4px;
      }
      a:not(:focus-visible),
      button:not(:focus-visible),
      [role="button"]:not(:focus-visible) {
        outline: none;
      }
      /* ============================================================
         设计令牌 · Design Tokens
         色值以 oklch 校准感知亮度后回写为 hex —— 为什么不用 oklch 直接写：
         自定义属性不做语法校验，不支持 oklch 的浏览器会把整条声明当作
         非法值丢弃，导致颜色整体失效。基础层用 hex 保证任何浏览器可用，
         oklch / color-mix 只在文件末尾的 @supports 现代层里使用。
         ============================================================ */
      :root {
        /* 品牌蓝：从 Tailwind sky-500 校准到航空仪表青，暗底对比 8.97:1 */
        --blue: #23bbf8;
        --blue2: #63d1ff;
        --blue3: #9ce5ff;
        --indigo: #6875f6;
        --violet: #a670f3;
        --cyan: #00d3e3;
        /* 仪表琥珀：本方案唯一的强调色，只用于关键数据与状态，不做装饰 */
        --alt: #fbbb2d;
        --glow: rgba(35, 187, 248, 0.3);

        /* 底色：四层夜航梯度，逐层 +0.04 感知亮度，层次可辨 */
        --bg: #050b11;
        --bg2: #0a141c;
        --bg3: #111d27;
        --bg4: #192834;

        --text: #ecf1f5;
        --muted: #9aa7b0;
        --muted2: #76828b;

        --border: rgba(35, 187, 248, 0.1);
        --border2: rgba(35, 187, 248, 0.22);
        --border3: rgba(35, 187, 248, 0.38);
        /* 发丝线：中性，不抢品牌色 */
        --hairline: rgba(236, 241, 245, 0.08);

        --card: rgba(10, 21, 30, 0.72);
        --card2: rgba(16, 29, 40, 0.55);
        --card-hover: rgba(21, 36, 49, 0.85);

        --green: #5edb81;
        --amber: #f9c13b;
        --rose: #fb5663;
        --teal: #4cd7c8;

        --grad-blue: linear-gradient(135deg, #23bbf8 0%, #6875f6 100%);
        --grad-cyan: linear-gradient(135deg, #00d3e3 0%, #23bbf8 100%);
        --grad-text: linear-gradient(
          120deg,
          #63d1ff 0%,
          #9ce5ff 50%,
          #a670f3 100%
        );
        --grad-alt: linear-gradient(135deg, #fbbb2d 0%, #f9c13b 100%);

        /* 阴影：四级高度 */
        --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.4),
          0 8px 24px rgba(0, 0, 0, 0.32);
        --shadow-glow: 0 0 40px rgba(35, 187, 248, 0.14);
        --shadow-hover: 0 2px 6px rgba(0, 0, 0, 0.45),
          0 24px 60px rgba(0, 0, 0, 0.45), 0 0 34px rgba(35, 187, 248, 0.12);

        /* 字体：中文走系统栈（CJK webfont 体积代价不可接受），
           数据与编号走等宽带 —— 让「200+ 台 / 15+ 区县」有仪表读数感 */
        --font-sans:
          "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei",
          "Helvetica Neue", sans-serif;
        --font-data:
          ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas,
          "PingFang SC", monospace;

        /* 字号：流体阶，标题与正文对比拉到 3.9:1 */
        --fs-h1: clamp(2.05rem, 1.05rem + 4.1vw, 4.15rem);
        --fs-h2: clamp(1.5rem, 1.08rem + 1.85vw, 2.45rem);
        --fs-h3: clamp(1.12rem, 1rem + 0.6vw, 1.42rem);
        --fs-body: clamp(1rem, 0.965rem + 0.18vw, 1.0625rem);

        /* 间距：4px 基准阶 */
        --sp-1: 0.25rem;
        --sp-2: 0.5rem;
        --sp-3: 0.75rem;
        --sp-4: 1rem;
        --sp-5: 1.25rem;
        --sp-6: 1.5rem;
        --sp-8: 2rem;
        --sp-10: 2.5rem;
        --sp-12: 3rem;
        --sp-16: 4rem;
        --sp-20: 5rem;
        --sp-24: 6rem;
        /* 区块纵向节奏：替代原先写死的 padding:70px 6% / 80px 6% */
        --sec-y: clamp(3.75rem, 2.5rem + 3.4vw, 7.5rem);
        --gutter: clamp(1.25rem, 4vw, 4.5rem);

        /* 圆角 */
        --r-xs: 4px;
        --r-sm: 8px;
        --r-md: 14px;
        --r-lg: 20px;
        --r-xl: 28px;
        --r-full: 999px;

        /* 动效：缓动与时长统一在此，禁止在局部随手写 ease */
        --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
        --ease-inout: cubic-bezier(0.65, 0, 0.35, 1);
        --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
        /* 时长阶：取自站内既有交互的真实取值（0.2s / 0.3s / 0.4s），
           替换后与原值偏差不超过 50ms，观感不变但不再是各写各的 */
        --dur-1: 200ms;
        --dur-2: 300ms;
        --dur-3: 400ms;
        --dur-4: 760ms;
      }
    


      html {
        scroll-behavior: smooth;
        scroll-padding-top: 80px;
      }
      body {
        background: var(--bg);
        color: var(--text);
        font-family: var(--font-sans);
        line-height: 1.75;
        overflow-x: hidden;
        -webkit-font-smoothing: antialiased;
      }
      a {
        color: inherit;
        text-decoration: none;
      }
      img {
        max-width: 100%;
        display: block;
      }
      #cvs {
        position: fixed;
        inset: 0;
        pointer-events: none;
        z-index: 0;
      }

      /* 画面暗角：静态，给深色底一个收边，替代原先的全屏扫描线 */
      body::after {
        content: "";
        position: fixed;
        inset: 0;
        background: radial-gradient(
          120% 90% at 50% 0%,
          transparent 42%,
          rgba(2, 5, 9, 0.55) 100%
        );
        z-index: 999;
        pointer-events: none;
      }

      /* 加载淡入：缩短到 0.45s，避免首屏白闪 */
      body {
        animation: fadeIn 0.45s var(--ease-out) both;
      }
      @keyframes fadeIn {
        from {
          opacity: 0;
        }
        to {
          opacity: 1;
        }
      }

      /* 光晕脉冲：只在首屏「NEW」标签上跑 3 次即停，不做永久循环 */
      .glow-pulse {
        animation: glowPulse 2.6s var(--ease-inout) 3;
      }
      @keyframes glowPulse {
        0%,
        100% {
          box-shadow: 0 0 18px rgba(35, 187, 248, 0.18);
        }
        50% {
          box-shadow: 0 0 34px rgba(35, 187, 248, 0.36);
        }
      }

      /* 数据读数：等宽 + 表格数字，数字对齐才有仪表感 */
      .num-val,
      .bi-v,
      .stat-num,
      .case-stat b,
      .band-nums .n,
      .map3d-legend b,
      .map3d-chip b,
      .fcs-stats .fs b,
      .faq-price .fp-num,
      .qa-figures .qf-cell dd b {
        font-family: var(--font-data);
        font-variant-numeric: tabular-nums;
        font-feature-settings: "tnum" 1;
        letter-spacing: -0.01em;
      }

      /* ── 叙事动画：以下五个 keyframes 各自对应一个真实的信息事件 ── */

      /* 1. 元素入场：位移 + 淡入，可给 delay 做错峰 */
      @keyframes riseIn {
        from {
          opacity: 0;
          transform: translate3d(0, 18px, 0);
        }
        to {
          opacity: 1;
          transform: none;
        }
      }

      /* 2. 控制台扫过：只在首屏设备框内跑一次 */
      @keyframes sweepOnce {
        0% {
          transform: translateY(-100%);
          opacity: 0;
        }
        12% {
          opacity: 1;
        }
        88% {
          opacity: 1;
        }
        100% {
          transform: translateY(100%);
          opacity: 0;
        }
      }

      /* 3. 架构描线：从左向右画出连接线 */
      @keyframes drawLine {
        from {
          transform: scaleX(0);
        }
        to {
          transform: scaleX(1);
        }
      }

      /* 5. 光柱生长：数据条自下而上长出（配合 map3d / 图表） */
      @keyframes growUp {
        from {
          transform: scaleY(0);
          opacity: 0;
        }
        to {
          transform: scaleY(1);
          opacity: 1;
        }
      }

      /* 卡片光流 */
      .hub,
      .eng,
      .case,
      .mode {
        position: relative;
      }
      .hub::before,
      .mode::before {
        z-index: 2;
      }
      .hub .glow-line,
      .mode .glow-line,
      .case .glow-line {
        position: absolute;
        top: 0;
        left: -100%;
        width: 100%;
        height: 100%;
        background: linear-gradient(
          90deg,
          transparent,
          rgba(14, 165, 233, 0.04),
          transparent
        );
        pointer-events: none;
        transition: left 0.8s ease;
      }
      .hub:hover .glow-line,
      .mode:hover .glow-line,
      .case:hover .glow-line {
        left: 100%;
      }

      /* ── 导航 ── */
      nav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 99;
        height: 64px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 6%;
        background: rgba(2, 12, 26, 0.75);
        backdrop-filter: blur(20px) saturate(180%);
        -webkit-backdrop-filter: blur(20px) saturate(180%);
        border-bottom: 1px solid var(--border);
        transition:
          background 0.3s ease,
          box-shadow 0.3s ease;
      }
      nav.scrolled {
        background: rgba(2, 12, 26, 0.92);
        box-shadow:
          0 4px 30px rgba(0, 0, 0, 0.5),
          0 1px 0 rgba(14, 165, 233, 0.1);
      }
      .logo {
        display: flex;
        align-items: center;
        gap: 9px;
        font-size: 1rem;
        font-weight: 800;
        color: var(--blue2);
      }
      .logo-img {
        height: 30px;
        width: auto;
        display: block;
      }
      .logo-text {
        font-size: 1.05rem;
        font-weight: 900;
        line-height: 1.1;
      }
      .logo-sub {
        font-size: 0.62rem;
        color: var(--muted);
        font-weight: 500;
        letter-spacing: 0.04em;
      }
      .logo-badge {
        font-size: 0.58rem;
        font-weight: 700;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.12);
        border: 1px solid rgba(14, 165, 233, 0.3);
        padding: 0.08rem 0.38rem;
        border-radius: 4px;
        margin-left: 0.45rem;
      }
      .nav-links {
        display: flex;
        gap: 1.8rem;
        list-style: none;
        font-size: 0.88rem;
        color: var(--muted);
      }
      .nav-links a {
        position: relative;
        transition: color 0.25s ease;
        padding: 0.3rem 0;
      }
      .nav-links a::after {
        content: "";
        position: absolute;
        bottom: -2px;
        left: 0;
        right: 0;
        height: 2px;
        background: linear-gradient(90deg, var(--blue), var(--blue2));
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.25s ease;
      }
      .nav-links a:hover,
      .nav-links a.active {
        color: var(--blue2);
      }
      .nav-links a:hover::after,
      .nav-links a.active::after {
        transform: scaleX(1);
      }
      .nav-cta {
        font-size: 0.82rem;
        font-weight: 700;
        color: #fff;
        background: linear-gradient(135deg, var(--blue), var(--indigo));
        padding: 0.5rem 1.1rem;
        border-radius: 8px;
        box-shadow: 0 4px 16px rgba(14, 165, 233, 0.3);
        transition:
          transform 0.2s,
          box-shadow 0.2s;
      }
      .nav-cta:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 22px rgba(14, 165, 233, 0.5);
      }
      .nav-cta-fly {
        background: linear-gradient(135deg, var(--cyan), var(--blue2));
        box-shadow: 0 4px 16px rgba(6, 182, 212, 0.3);
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
      }
      .nav-cta-fly:hover {
        box-shadow: 0 6px 22px rgba(6, 182, 212, 0.5);
      }
      @media (max-width: 880px) {
        .nav-links {
          display: none;
        }
      }
      @media (max-width: 640px) {
        .nav-cta {
          display: none;
        }
      }

      /* ── 通用 ── */
      section {
        position: relative;
        z-index: 1;
      }
      .wrap {
        max-width: 1180px;
        margin: 0 auto;
        padding: 0 6%;
      }
      .sec-tag {
        display: inline-block;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.08);
        border: 1px solid rgba(14, 165, 233, 0.2);
        padding: 0.3rem 0.9rem;
        border-radius: 99px;
        margin-bottom: 1rem;
        backdrop-filter: blur(4px);
      }
      .sec-title {
        font-size: clamp(1.7rem, 3.5vw, 2.6rem);
        font-weight: 800;
        line-height: 1.25;
        background: linear-gradient(
          120deg,
          #fff 20%,
          var(--blue2) 70%,
          var(--blue3)
        );
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        letter-spacing: -0.01em;
      }
      .sec-sub {
        margin-top: 0.8rem;
        color: var(--muted);
        font-size: 0.95rem;
        max-width: 600px;
        line-height: 1.8;
      }
      .center {
        text-align: center;
      }
      .center .sec-sub {
        margin: 0.8rem auto 0;
      }
      .sec-hd {
        margin-bottom: 3rem;
        position: relative;
      }
      .sec-hd.center::after {
        content: "";
        display: block;
        width: 60px;
        height: 3px;
        background: var(--grad-blue);
        border-radius: 3px;
        margin: 1.2rem auto 0;
      }
      .fi {
        opacity: 0;
        transform: translateY(30px) scale(0.98);
        transition:
          opacity 0.7s ease,
          transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
      }
      .fi.on {
        opacity: 1;
        transform: none;
      }
      .sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
      }

      /* ── Hero ── */
      #hero {
        min-height: 100vh;
        display: flex;
        align-items: center;
        padding: 120px 6% 90px;
        position: relative;
        overflow: hidden;
      }
      #hero::before {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background:
          radial-gradient(
            ellipse 90% 60% at 50% -10%,
            rgba(14, 165, 233, 0.25) 0%,
            transparent 60%
          ),
          radial-gradient(
            ellipse 60% 45% at 85% 50%,
            rgba(99, 102, 241, 0.15) 0%,
            transparent 50%
          ),
          radial-gradient(
            ellipse 50% 35% at 15% 80%,
            rgba(6, 182, 212, 0.1) 0%,
            transparent 42%
          ),
          radial-gradient(
            ellipse 40% 30% at 70% 90%,
            rgba(139, 92, 246, 0.08) 0%,
            transparent 40%
          );
      }
      #hero::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        pointer-events: none;
        background-image:
          linear-gradient(rgba(14, 165, 233, 0.03) 1px, transparent 1px),
          linear-gradient(90deg, rgba(14, 165, 233, 0.03) 1px, transparent 1px);
        background-size: 60px 60px;
        mask-image: radial-gradient(
          ellipse 80% 80% at 50% 50%,
          black,
          transparent 80%
        );
        -webkit-mask-image: radial-gradient(
          ellipse 80% 80% at 50% 50%,
          black,
          transparent 80%
        );
      }
      .hero-in {
        max-width: 1180px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 1.1fr 1fr;
        gap: 65px;
        align-items: center;
      }
      .hero-ping {
        display: inline-flex;
        align-items: center;
        gap: 0.48rem;
        font-size: 0.76rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.08);
        border: 1px solid rgba(14, 165, 233, 0.25);
        padding: 0.35rem 1rem;
        border-radius: 99px;
        margin-bottom: 1.3rem;
      }
      .hero-ping::before {
        content: "";
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--blue2);
        box-shadow: 0 0 10px var(--blue2);
        animation: blink 2s ease-in-out infinite;
      }
      .hero-ping-badge {
        font-size: 0.6rem;
        padding: 0.12rem 0.5rem;
        border-radius: 5px;
        background: linear-gradient(135deg, var(--blue), var(--indigo));
        color: #fff;
        margin-left: 0.4rem;
        letter-spacing: 0.04em;
      }
      @keyframes blink {
        0%,
        100% {
          opacity: 1;
          transform: scale(1);
        }
        50% {
          opacity: 0.35;
          transform: scale(0.8);
        }
      }
      h1 {
        font-size: clamp(2.4rem, 5.5vw, 4rem);
        font-weight: 900;
        line-height: 1.12;
        letter-spacing: -0.02em;
      }
      h1 em {
        font-style: normal;
        background: var(--grad-text);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        filter: drop-shadow(0 0 32px rgba(56, 189, 248, 0.35));
      }
      .hero-sub {
        margin: 1.5rem 0 2.3rem;
        color: var(--muted);
        font-size: 1.05rem;
        line-height: 1.85;
        max-width: 520px;
      }
      .btns {
        display: flex;
        gap: 1rem;
        flex-wrap: wrap;
      }
      .btn-p {
        display: inline-flex;
        align-items: center;
        gap: 0.48rem;
        padding: 0.9rem 2rem;
        border-radius: 12px;
        font-weight: 700;
        font-size: 0.95rem;
        background: var(--grad-blue);
        box-shadow:
          0 4px 22px rgba(14, 165, 233, 0.35),
          0 0 0 1px rgba(255, 255, 255, 0.1) inset;
        /* 显式列出属性，不用 all ——
           原写法会为每一个可动画属性建监听，其中含布局属性 */
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out);
        position: relative;
        overflow: hidden;
      }
      .btn-p:hover {
        transform: translateY(-3px);
        box-shadow: 0 8px 32px rgba(14, 165, 233, 0.5);
      }
      .btn-p:active {
        transform: scale(0.97) translateY(-1px);
      }
      .btn-o {
        display: inline-flex;
        align-items: center;
        gap: 0.48rem;
        padding: 0.82rem 1.9rem;
        border-radius: 10px;
        font-weight: 600;
        font-size: 0.93rem;
        border: 1px solid var(--border2);
        background: rgba(14, 165, 233, 0.05);
        transition:
          transform var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out);
      }
      .btn-o:hover {
        border-color: var(--blue2);
        color: var(--blue2);
        background: rgba(56, 189, 248, 0.1);
        transform: translateY(-2px);
      }
      .hero-nums {
        display: flex;
        gap: 2rem;
        margin-top: 2.6rem;
        padding-top: 1.6rem;
        border-top: 1px solid var(--border);
        flex-wrap: wrap;
      }
      .hn {
        min-width: 80px;
      }
      .num-val {
        font-size: 2rem;
        font-weight: 900;
        background: linear-gradient(135deg, var(--blue2), var(--blue3), #fff);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      .num-lab {
        font-size: 0.72rem;
        color: var(--muted);
        margin-top: 0.1rem;
      }

      /* 右侧平台截图 */
      .mock {
        border-radius: 16px;
        overflow: hidden;
        border: 1px solid rgba(14, 165, 233, 0.3);
        box-shadow:
          0 30px 70px rgba(0, 0, 0, 0.5),
          0 0 80px rgba(14, 165, 233, 0.12),
          0 0 0 1px rgba(14, 165, 233, 0.06);
        position: relative;
        animation: mockFloat 13s var(--ease-inout) infinite;
      }
      @keyframes mockFloat {
        0%,
        100% {
          transform: translate3d(0, 0, 0);
        }
        50% {
          transform: translate3d(0, -6px, 0);
        }
      }
      .mock-top {
        background: rgba(2, 18, 38, 0.9);
        padding: 0.55rem 1rem;
        display: flex;
        align-items: center;
        gap: 0.5rem;
        border-bottom: 1px solid rgba(14, 165, 233, 0.2);
        font-size: 0.74rem;
        color: var(--muted);
      }
      .dot {
        width: 9px;
        height: 9px;
        border-radius: 50%;
      }
      .mock-screenshot {
        display: block;
        width: 100%;
        aspect-ratio: 16/9;
        object-fit: cover;
        object-position: center top;
        transition: opacity 0.5s ease;
      }
      /* 已移除 .mock-thumbs / .mock-thumb / .mock-badge：
         这四个标签全部指向同一张截图，点击只会让图片闪一下，
         是「看起来可交互、实际没有信息」的假控件；
         「系统运行中」状态已并入 .mock-hud 的 .hud-live。 */
      .mock-version {
        position: absolute;
        top: 0.8rem;
        left: 0.9rem;
        z-index: 3;
        background: linear-gradient(135deg, var(--blue), var(--indigo));
        border-radius: 6px;
        padding: 0.28rem 0.7rem;
        font-size: 0.66rem;
        color: #fff;
        font-weight: 800;
        letter-spacing: 0.06em;
      }
      @media (max-width: 880px) {
        .hero-in {
          grid-template-columns: 1fr;
        }
        .mock {
          display: none;
        }
      }

      /* ── 关键数据横栏 ── */
      #bar {
        padding: 2.5rem 6%;
        background: linear-gradient(
          180deg,
          rgba(14, 165, 233, 0.04),
          rgba(14, 165, 233, 0.01)
        );
        border-top: 1px solid var(--border);
        border-bottom: 1px solid var(--border);
        position: relative;
      }
      #bar::before {
        content: "";
        position: absolute;
        top: 0;
        left: 10%;
        right: 10%;
        height: 1px;
        background: linear-gradient(
          90deg,
          transparent,
          var(--blue2),
          transparent
        );
        opacity: 0.3;
      }
      .bar-in {
        max-width: 1180px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        gap: 0;
      }
      .bi {
        text-align: center;
        padding: 0.8rem 0.6rem;
        position: relative;
        transition: transform 0.3s ease;
      }
      .bi:hover {
        transform: translateY(-4px);
      }
      .bi:not(:last-child)::after {
        content: "";
        position: absolute;
        right: 0;
        top: 20%;
        bottom: 20%;
        width: 1px;
        background: linear-gradient(
          180deg,
          transparent,
          var(--border),
          transparent
        );
      }
      .bi-v {
        font-size: 2rem;
        font-weight: 900;
        background: linear-gradient(135deg, var(--blue2), var(--blue3), #fff);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      .bi-l {
        font-size: 0.72rem;
        color: var(--muted);
        margin-top: 0.3rem;
        letter-spacing: 0.02em;
      }
      @media (max-width: 860px) {
        .bar-in {
          grid-template-columns: repeat(3, 1fr);
        }
        .bi:nth-child(3)::after {
          display: none;
        }
      }
      @media (max-width: 520px) {
        .bar-in {
          grid-template-columns: repeat(2, 1fr);
        }
        .bi::after {
          display: none;
        }
      }

      /* ── 定位升级 ── */
      #positioning {
        padding: 80px 6% 50px;
      }
      .pos-card {
        max-width: 980px;
        margin: 0 auto;
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.08) 0%,
          rgba(99, 102, 241, 0.05) 50%,
          rgba(6, 182, 212, 0.03) 100%
        );
        border: 1px solid rgba(14, 165, 233, 0.25);
        border-radius: 20px;
        padding: 2.8rem;
        position: relative;
        overflow: hidden;
        box-shadow: var(--shadow-card), var(--shadow-glow);
      }
      .pos-card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: linear-gradient(
          90deg,
          var(--blue),
          var(--indigo),
          var(--violet)
        );
      }
      .pos-badge {
        display: inline-flex;
        align-items: center;
        gap: 0.4rem;
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        background: linear-gradient(135deg, var(--blue), var(--indigo));
        color: #fff;
        padding: 0.28rem 0.8rem;
        border-radius: 99px;
        margin-bottom: 1.1rem;
      }
      .pos-title {
        font-size: clamp(1.4rem, 2.6vw, 2rem);
        font-weight: 900;
        line-height: 1.35;
        margin-bottom: 0.8rem;
      }
      .pos-title em {
        font-style: normal;
        background: linear-gradient(
          135deg,
          var(--blue),
          var(--blue2),
          var(--indigo)
        );
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      .pos-desc {
        color: var(--muted);
        font-size: 0.93rem;
        line-height: 1.85;
        max-width: 780px;
      }
      .pos-pillars {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1rem;
        margin-top: 1.8rem;
      }
      .pillar {
        background: rgba(6, 18, 36, 0.5);
        border: 1px solid rgba(14, 165, 233, 0.18);
        border-radius: 10px;
        padding: 1rem 0.9rem;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
      }
      .pillar:hover {
        border-color: rgba(14, 165, 233, 0.4);
        transform: translateY(-2px);
      }
      .pillar-ico {
        font-size: 1.4rem;
        margin-bottom: 0.35rem;
      }
      .pillar-t {
        font-size: 0.82rem;
        font-weight: 700;
        color: var(--blue2);
        margin-bottom: 0.18rem;
      }
      .pillar-d {
        font-size: 0.72rem;
        color: var(--muted);
        line-height: 1.5;
      }
      @media (max-width: 760px) {
        .pos-pillars {
          grid-template-columns: 1fr 1fr;
        }
      }
      @media (max-width: 480px) {
        .pos-pillars {
          grid-template-columns: 1fr;
        }
      }

      /* ── 行业痛点 ── */
      #pain {
        padding: 80px 6%;
        background: linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
      }
      .pains {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 1rem;
      }
      .pain {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 12px;
        padding: 1.4rem 1.2rem;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
      }
      .pain:hover {
        border-color: rgba(244, 63, 94, 0.35);
        transform: translateY(-3px);
      }
      .pain-num {
        font-size: 0.66rem;
        font-weight: 800;
        color: var(--rose);
        letter-spacing: 0.1em;
        margin-bottom: 0.5rem;
      }
      .pain-t {
        font-size: 0.84rem;
        font-weight: 600;
        line-height: 1.5;
        color: var(--text);
      }
      @media (max-width: 980px) {
        .pains {
          grid-template-columns: repeat(2, 1fr);
        }
      }
      @media (max-width: 520px) {
        .pains {
          grid-template-columns: 1fr;
        }
      }

      /* ── 实战场景 ── */
      #scenarios {
        padding: 80px 6%;
      }
      .scen-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
        margin-bottom: 2rem;
      }
      .scen {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 1.8rem;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
      }
      .scen:hover {
        border-color: rgba(14, 165, 233, 0.4);
        transform: translateY(-4px);
      }
      .scen-type {
        font-size: 0.66rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        color: var(--green);
        margin-bottom: 0.6rem;
      }
      .scen-t {
        font-size: 1rem;
        font-weight: 700;
        margin-bottom: 0.7rem;
      }
      .scen-list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
      }
      .scen-chip {
        font-size: 0.72rem;
        color: var(--muted);
        background: rgba(14, 165, 233, 0.06);
        border: 1px solid var(--border);
        padding: 0.25rem 0.6rem;
        border-radius: 99px;
      }
      .targets-label {
        font-size: 0.82rem;
        font-weight: 700;
        color: var(--blue2);
        margin-bottom: 0.8rem;
      }
      .targets {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
      }
      .target {
        font-size: 0.74rem;
        color: var(--text);
        background: rgba(14, 165, 233, 0.08);
        border: 1px solid rgba(14, 165, 233, 0.2);
        padding: 0.3rem 0.7rem;
        border-radius: 8px;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
      }
      .target:hover {
        background: rgba(14, 165, 233, 0.15);
        border-color: var(--blue2);
      }
      @media (max-width: 760px) {
        .scen-grid {
          grid-template-columns: 1fr;
        }
      }

      /* ── 案例证言 ── */
      .endorse {
        margin-top: 1rem;
        padding: 0.7rem 0.9rem;
        background: rgba(74, 222, 128, 0.06);
        border-left: 3px solid var(--green);
        border-radius: 0 8px 8px 0;
      }
      .endorse-src {
        font-size: 0.68rem;
        font-weight: 700;
        color: var(--green);
        margin-bottom: 0.2rem;
      }
      .endorse-txt {
        font-size: 0.74rem;
        color: var(--muted);
        line-height: 1.6;
        font-style: italic;
      }

      /* ── 发展历程 ── */
      .timeline {
        position: relative;
        padding-left: 2rem;
        margin-top: 1.5rem;
      }
      .timeline::before {
        content: "";
        position: absolute;
        left: 8px;
        top: 0;
        bottom: 0;
        width: 2px;
        background: linear-gradient(
          180deg,
          var(--blue),
          var(--indigo),
          transparent
        );
      }
      .tl-item {
        position: relative;
        padding-bottom: 1.5rem;
      }
      .tl-item:last-child {
        padding-bottom: 0;
      }
      .tl-item::before {
        content: "";
        position: absolute;
        left: -2rem;
        top: 4px;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--bg2);
        border: 3px solid var(--blue);
        box-shadow: 0 0 12px rgba(14, 165, 233, 0.4);
      }
      .tl-year {
        font-size: 0.78rem;
        font-weight: 800;
        color: var(--blue2);
        margin-bottom: 0.15rem;
      }
      .tl-event {
        font-size: 0.8rem;
        color: var(--text);
        line-height: 1.6;
      }

      /* ── 产品架构 ── */
      #product {
        padding: 70px 6%;
      }
      .arch-tags {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 0.7rem;
        margin: 1.5rem 0 2rem;
      }
      .arch-tag {
        padding: 0.48rem 1.3rem;
        border-radius: 99px;
        font-size: 0.83rem;
        font-weight: 700;
        border: 1px solid var(--border);
        background: var(--card);
        color: var(--blue2);
        transition:
          background 0.2s,
          border-color 0.2s;
      }
      .arch-tag:hover {
        background: rgba(14, 165, 233, 0.1);
        border-color: var(--blue2);
      }
      .san-tong {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
        margin-bottom: 2.5rem;
      }
      .st-block {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 1.8rem;
      }
      .st-label {
        font-size: 0.7rem;
        font-weight: 800;
        letter-spacing: 0.1em;
        color: var(--blue2);
        margin-bottom: 1rem;
      }
      .st-list {
        display: flex;
        flex-direction: column;
        gap: 0.8rem;
      }
      .st-item {
        display: flex;
        align-items: flex-start;
        gap: 0.7rem;
      }
      .st-item-ico {
        flex-shrink: 0;
        width: 28px;
        height: 28px;
        border-radius: 7px;
        background: rgba(14, 165, 233, 0.12);
        color: var(--blue2);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 0.85rem;
        font-weight: 800;
      }
      .st-item-t {
        font-size: 0.86rem;
        font-weight: 700;
        margin-bottom: 0.12rem;
      }
      .st-item-d {
        font-size: 0.76rem;
        color: var(--muted);
        line-height: 1.55;
      }
      @media (max-width: 760px) {
        .san-tong {
          grid-template-columns: 1fr;
        }
      }

      /* 六大中枢 */
      .hubs {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
      }
      .hub {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 18px;
        padding: 2.2rem;
        transition:
          transform var(--dur-3) var(--ease-out),
          box-shadow var(--dur-3) var(--ease-out),
          border-color var(--dur-3) var(--ease-out),
          background-color var(--dur-3) var(--ease-out),
          color var(--dur-3) var(--ease-out),
          opacity var(--dur-3) var(--ease-out);
        position: relative;
        overflow: hidden;
        box-shadow: var(--shadow-card);
      }
      .hub::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 3px;
        background: var(--grad-blue);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.4s ease;
      }
      .hub::after {
        content: "";
        position: absolute;
        bottom: -50%;
        right: -30%;
        width: 140px;
        height: 140px;
        background: radial-gradient(
          circle,
          rgba(14, 165, 233, 0.1),
          transparent 70%
        );
        border-radius: 50%;
        opacity: 0;
        transition: opacity 0.4s ease;
      }
      .hub:hover::before {
        transform: scaleX(1);
      }
      .hub:hover::after {
        opacity: 1;
      }
      .hub:hover {
        transform: translateY(-8px) scale(1.02);
        border-color: var(--border3);
        background: var(--card-hover);
        box-shadow: var(--shadow-hover);
      }
      .hub-ico {
        width: 48px;
        height: 48px;
        margin-bottom: 1.2rem;
        color: var(--blue2);
        padding: 10px;
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.12),
          rgba(99, 102, 241, 0.06)
        );
        border-radius: 12px;
        border: 1px solid rgba(14, 165, 233, 0.15);
      }
      .hub-ico svg {
        width: 100%;
        height: 100%;
      }
      .hub-t {
        font-size: 1.1rem;
        font-weight: 700;
        margin-bottom: 0.6rem;
      }
      .hub-d {
        font-size: 0.85rem;
        color: var(--muted);
        line-height: 1.85;
      }
      @media (max-width: 700px) {
        .hubs {
          grid-template-columns: 1fr 1fr;
        }
      }
      @media (max-width: 480px) {
        .hubs {
          grid-template-columns: 1fr;
        }
      }

      /* ── 5大智能化引擎 ── */
      #engines {
        padding: 80px 6%;
        background: linear-gradient(
          180deg,
          var(--bg) 0%,
          var(--bg2) 50%,
          var(--bg) 100%
        );
      }
      .engs {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 1rem;
      }
      @media (max-width: 520px) {
        .engs {
          display: flex;
        }
      }
      .eng {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 16px;
        padding: 1.8rem 1.4rem;
        transition:
          transform var(--dur-3) var(--ease-out),
          box-shadow var(--dur-3) var(--ease-out),
          border-color var(--dur-3) var(--ease-out),
          background-color var(--dur-3) var(--ease-out),
          color var(--dur-3) var(--ease-out),
          opacity var(--dur-3) var(--ease-out);
        position: relative;
        overflow: hidden;
        box-shadow: var(--shadow-card);
      }
      .eng::after {
        content: "";
        position: absolute;
        inset: 0;
        z-index: -1;
        opacity: 0;
        background: radial-gradient(
          circle at 50% 0%,
          rgba(14, 165, 233, 0.15),
          transparent 70%
        );
        transition: opacity 0.35s ease;
      }
      .eng::before {
        content: "";
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 0;
        height: 3px;
        background: var(--grad-blue);
        transition: width 0.4s ease;
        border-radius: 0 0 3px 3px;
      }
      .eng:hover::after {
        opacity: 1;
      }
      .eng:hover::before {
        width: 80%;
      }
      .eng:hover {
        transform: translateY(-8px) scale(1.03);
        border-color: rgba(14, 165, 233, 0.5);
        box-shadow: var(--shadow-hover);
      }
      .eng-num {
        font-size: 0.68rem;
        font-weight: 800;
        color: var(--blue);
        letter-spacing: 0.14em;
        margin-bottom: 0.7rem;
        padding: 0.2rem 0.5rem;
        background: rgba(14, 165, 233, 0.06);
        border-radius: 5px;
        display: inline-block;
      }
      .eng-ico {
        width: 44px;
        height: 44px;
        margin-bottom: 0.8rem;
        color: var(--blue2);
        padding: 8px;
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.1),
          rgba(99, 102, 241, 0.05)
        );
        border-radius: 11px;
        border: 1px solid rgba(14, 165, 233, 0.12);
      }
      .eng-ico svg {
        width: 100%;
        height: 100%;
      }
      .eng-t {
        font-size: 0.94rem;
        font-weight: 700;
        margin-bottom: 0.55rem;
        line-height: 1.4;
      }
      .eng-d {
        font-size: 0.78rem;
        color: var(--muted);
        line-height: 1.75;
      }
      .eng-feat {
        margin-top: 0.8rem;
        padding-top: 0.8rem;
        border-top: 1px dashed var(--border);
      }
      .eng-feat b {
        font-size: 0.7rem;
        color: var(--blue2);
        font-weight: 700;
      }
      .eng-feat span {
        font-size: 0.72rem;
        color: var(--muted);
        display: block;
        margin-top: 0.25rem;
        line-height: 1.6;
      }
      @media (max-width: 980px) {
        .engs {
          grid-template-columns: repeat(2, 1fr);
        }
      }
      @media (max-width: 520px) {
        .engs {
          grid-template-columns: 1fr;
          flex-direction: row;
          overflow-x: auto;
          scroll-snap-type: x mandatory;
          gap: 0.8rem;
          padding-bottom: 1rem;
        }
        .eng {
          min-width: 85%;
          scroll-snap-align: start;
          flex-shrink: 0;
        }
      }

      /* ── 合作模式 ── */
      #coop {
        padding: 80px 6%;
      }
      .modes {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
      }
      .mode {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 18px;
        padding: 2.2rem 1.8rem;
        transition:
          transform var(--dur-3) var(--ease-out),
          box-shadow var(--dur-3) var(--ease-out),
          border-color var(--dur-3) var(--ease-out),
          background-color var(--dur-3) var(--ease-out),
          color var(--dur-3) var(--ease-out),
          opacity var(--dur-3) var(--ease-out);
        position: relative;
        overflow: hidden;
        box-shadow: var(--shadow-card);
      }
      .mode::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 4px;
        background: var(--grad-blue);
      }
      .mode:hover {
        transform: translateY(-8px);
        border-color: var(--border3);
        box-shadow: var(--shadow-hover);
        background: var(--card-hover);
      }
      .mode-tag {
        display: inline-block;
        font-size: 0.68rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.1);
        border: 1px solid rgba(14, 165, 233, 0.25);
        padding: 0.22rem 0.7rem;
        border-radius: 99px;
        margin-bottom: 0.9rem;
      }
      .mode-t {
        font-size: 1.2rem;
        font-weight: 800;
        margin-bottom: 0.5rem;
      }
      .mode-d {
        font-size: 0.84rem;
        color: var(--muted);
        line-height: 1.8;
        margin-bottom: 1.2rem;
      }
      .mode-feats {
        list-style: none;
        margin-bottom: 1.3rem;
      }
      .mode-feats li {
        font-size: 0.8rem;
        color: var(--text);
        padding: 0.3rem 0 0.3rem 1.3rem;
        position: relative;
      }
      .mode-feats li::before {
        content: "✓";
        position: absolute;
        left: 0;
        color: var(--green);
        font-weight: 700;
      }
      .mode-price {
        padding-top: 1rem;
        border-top: 1px dashed var(--border);
      }
      .mode-price b {
        font-size: 1.05rem;
        color: var(--blue2);
        font-weight: 800;
      }
      .mode-price span {
        font-size: 0.72rem;
        color: var(--muted);
        display: block;
        margin-top: 0.2rem;
      }
      @media (max-width: 760px) {
        .modes {
          grid-template-columns: 1fr;
        }
      }

      /* 合作伙伴分级 */
      .partners {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
        margin-top: 2rem;
      }
      .partner-card {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 1.8rem;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
      }
      .partner-card:hover {
        border-color: rgba(14, 165, 233, 0.4);
        transform: translateY(-3px);
      }
      .partner-lvl {
        display: inline-block;
        font-size: 0.68rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        padding: 0.22rem 0.7rem;
        border-radius: 6px;
        margin-bottom: 0.8rem;
      }
      .partner-lvl.p1 {
        background: linear-gradient(135deg, var(--amber), #f59e0b);
        color: #1a1a1a;
      }
      .partner-lvl.p2 {
        background: linear-gradient(135deg, var(--blue), var(--indigo));
        color: #fff;
      }
      .partner-lvl.p3 {
        background: rgba(14, 165, 233, 0.12);
        color: var(--blue2);
        border: 1px solid rgba(14, 165, 233, 0.3);
      }
      .partner-t {
        font-size: 1.05rem;
        font-weight: 800;
        margin-bottom: 0.5rem;
      }
      .partner-target {
        font-size: 0.76rem;
        color: var(--muted);
        margin-bottom: 0.8rem;
        line-height: 1.6;
      }
      .partner-mode {
        font-size: 0.82rem;
        color: var(--blue2);
        font-weight: 600;
      }
      @media (max-width: 760px) {
        .partners {
          grid-template-columns: 1fr;
        }
      }

      /* ── 案例 ── */
      #cases {
        padding: 80px 6%;
        background: linear-gradient(
          180deg,
          var(--bg) 0%,
          var(--bg2) 40%,
          var(--bg) 100%
        );
      }
      .cases {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
      }
      .case {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 16px;
        padding: 1.8rem;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
        box-shadow: var(--shadow-card);
        position: relative;
        overflow: hidden;
      }
      .case::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 4px;
        height: 100%;
        background: var(--grad-blue);
        opacity: 0;
        transition: opacity 0.35s ease;
      }
      .case:hover::before {
        opacity: 1;
      }
      .case:hover {
        border-color: var(--border3);
        transform: translateY(-6px) scale(1.02);
        box-shadow: var(--shadow-hover);
      }
      .case-loc {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        font-size: 0.68rem;
        font-weight: 700;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.1);
        padding: 0.2rem 0.6rem;
        border-radius: 99px;
        margin-bottom: 0.7rem;
      }
      .case-t {
        font-size: 0.98rem;
        font-weight: 700;
        margin-bottom: 0.4rem;
      }
      .case-d {
        font-size: 0.78rem;
        color: var(--muted);
        line-height: 1.7;
        margin-bottom: 0.8rem;
      }
      .case-stats {
        display: flex;
        gap: 1rem;
        padding-top: 0.8rem;
        border-top: 1px solid var(--border);
        flex-wrap: wrap;
      }
      .case-stat {
        font-size: 0.72rem;
        color: var(--muted);
      }
      .case-stat b {
        color: var(--blue2);
        font-weight: 800;
        font-size: 0.85rem;
        display: block;
      }
      @media (max-width: 760px) {
        .cases {
          grid-template-columns: 1fr 1fr;
        }
      }
      @media (max-width: 480px) {
        .cases {
          grid-template-columns: 1fr;
        }
      }

      /* ── 生态伙伴 ── */
      #eco {
        padding: 80px 6%;
      }
      .eco-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: 1.2rem;
      }
      .eco-card {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 1.8rem 1.3rem;
        text-align: center;
        transition:
          transform var(--dur-2) var(--ease-out),
          box-shadow var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          color var(--dur-2) var(--ease-out),
          opacity var(--dur-2) var(--ease-out);
        position: relative;
        overflow: hidden;
        box-shadow: var(--shadow-card);
      }
      .eco-card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 2px;
        background: var(--grad-blue);
        opacity: 0;
        transition: opacity 0.3s ease;
      }
      .eco-card:hover::before {
        opacity: 1;
      }
      .eco-card:hover {
        border-color: rgba(14, 165, 233, 0.4);
        transform: translateY(-5px);
        box-shadow: var(--shadow-hover);
      }
      .eco-type {
        font-size: 0.66rem;
        font-weight: 800;
        letter-spacing: 0.1em;
        color: var(--blue);
        margin-bottom: 0.7rem;
        padding: 0.2rem 0.6rem;
        background: rgba(14, 165, 233, 0.08);
        border-radius: 99px;
        display: inline-block;
      }
      .eco-name {
        font-size: 0.92rem;
        font-weight: 700;
        margin-bottom: 0.4rem;
        line-height: 1.4;
      }
      .eco-role {
        font-size: 0.74rem;
        color: var(--muted);
        line-height: 1.6;
      }
      @media (max-width: 760px) {
        .eco-grid {
          grid-template-columns: 1fr 1fr;
        }
      }

      /* ── 关于 ── */
      #about {
        padding: 80px 6%;
        background: var(--bg2);
      }
      .about-in {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
        align-items: center;
      }
      .about-quals {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.6rem;
        margin-top: 1.5rem;
      }
      .qual {
        font-size: 0.76rem;
        color: var(--text);
        background: rgba(14, 165, 233, 0.06);
        border: 1px solid var(--border);
        border-radius: 8px;
        padding: 0.5rem 0.8rem;
        display: flex;
        align-items: center;
        gap: 0.4rem;
      }
      .qual::before {
        content: "✓";
        color: var(--green);
        font-weight: 700;
      }
      .about-text {
        font-size: 0.9rem;
        color: var(--muted);
        line-height: 1.9;
      }
      .about-text p {
        margin-bottom: 0.8rem;
      }
      @media (max-width: 760px) {
        .about-in {
          grid-template-columns: 1fr;
        }
        .about-quals {
          grid-template-columns: 1fr;
        }
      }

      /* ── 联系 ── */
      #contact {
        padding: 80px 6%;
      }
      .contact-in {
        display: grid;
        grid-template-columns: 1.3fr 1fr;
        gap: 3rem;
        align-items: center;
      }
      .contact-item {
        display: flex;
        align-items: flex-start;
        gap: 0.8rem;
        margin-bottom: 1.2rem;
      }
      .contact-ico {
        flex-shrink: 0;
        width: 40px;
        height: 40px;
        border-radius: 10px;
        background: rgba(14, 165, 233, 0.1);
        border: 1px solid var(--border);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.2rem;
      }
      .contact-t {
        font-size: 0.76rem;
        color: var(--muted);
        margin-bottom: 0.15rem;
      }
      .contact-v {
        font-size: 0.92rem;
        font-weight: 600;
        color: var(--text);
      }
      .qr-box {
        text-align: center;
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 1.5rem;
      }
      .qr-box img {
        width: 180px;
        height: 180px;
        object-fit: cover;
        border-radius: 10px;
        margin: 0 auto 0.8rem;
      }

      /* ── 留资表单 ── */
      .lead-form {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.8rem;
        margin-top: 1.2rem;
      }
      .lead-form.full {
        grid-template-columns: 1fr;
      }
      .lead-input {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 8px;
        padding: 0.7rem 0.9rem;
        color: var(--text);
        font-size: 0.85rem;
        font-family: inherit;
        transition: border-color 0.2s;
        width: 100%;
      }
      .lead-input:focus {
        outline: none;
        border-color: var(--blue2);
        box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.15);
      }
      .lead-input::placeholder {
        color: var(--muted2);
      }
      .lead-btn {
        grid-column: 1 / -1;
        padding: 0.85rem;
        border: none;
        border-radius: 8px;
        background: linear-gradient(135deg, var(--blue), var(--indigo));
        color: #fff;
        font-size: 0.9rem;
        font-weight: 700;
        cursor: pointer;
        transition:
          transform 0.2s,
          box-shadow 0.2s;
      }
      .lead-btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 6px 20px rgba(14, 165, 233, 0.4);
      }
      .lead-note {
        font-size: 0.72rem;
        color: var(--muted);
        margin-top: 0.5rem;
        text-align: center;
      }

      /* ── 资料下载 ── */
      .downloads {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.8rem;
        margin-top: 1rem;
      }
      .dl-item {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        padding: 0.8rem 1rem;
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 10px;
        transition:
          transform var(--dur-2) var(--ease-out),
          background-color var(--dur-2) var(--ease-out),
          border-color var(--dur-2) var(--ease-out);
        cursor: pointer;
      }
      .dl-item:hover {
        border-color: var(--blue2);
        transform: translateY(-2px);
        background: rgba(14, 165, 233, 0.05);
      }
      .dl-ico {
        width: 32px;
        height: 32px;
        border-radius: 7px;
        background: rgba(14, 165, 233, 0.1);
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--blue2);
        flex-shrink: 0;
      }
      .dl-ico svg {
        width: 18px;
        height: 18px;
      }
      .dl-t {
        font-size: 0.82rem;
        font-weight: 600;
        color: var(--text);
      }
      .dl-s {
        font-size: 0.68rem;
        color: var(--muted);
      }

      /* ── FAQ ── */
      #faq {
        padding: 80px 6%;
        background: var(--bg2);
      }
      .faqs {
        max-width: 760px;
        margin: 0 auto;
      }
      .faq-more {
        text-align: center;
        margin-top: 1.6rem;
      }
      .faq-item {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 12px;
        margin-bottom: 0.8rem;
        overflow: hidden;
        transition: border-color 0.2s;
      }
      .faq-item:hover {
        border-color: rgba(14, 165, 233, 0.3);
      }
      .faq-q {
        padding: 1.1rem 1.4rem;
        font-size: 0.9rem;
        font-weight: 600;
        cursor: pointer;
        display: flex;
        justify-content: space-between;
        align-items: center;
        transition: color 0.2s;
      }
      .faq-q:hover {
        color: var(--blue2);
      }
      .faq-q::after {
        content: "+";
        font-size: 1.3rem;
        font-weight: 300;
        color: var(--blue2);
        transition: transform 0.25s ease;
      }
      .faq-item.open .faq-q::after {
        transform: rotate(45deg);
      }
      .faq-a {
        max-height: 0;
        overflow: hidden;
        transition:
          max-height 0.3s ease,
          padding 0.3s ease;
        padding: 0 1.4rem;
        font-size: 0.83rem;
        color: var(--muted);
        line-height: 1.8;
      }
      .faq-item.open .faq-a {
        max-height: 300px;
        padding: 0 1.4rem 1.2rem;
      }
      /* /faq/ 独立页：details 原生折叠，复用 .faq-item 视觉，展开态改由 [open] 控制 */
      details.faq-item > summary.faq-q {
        list-style: none;
        cursor: pointer;
      }
      details.faq-item > summary.faq-q::-webkit-details-marker {
        display: none;
      }
      details.faq-item[open] .faq-a {
        max-height: none;
        padding: 0 1.4rem 1.2rem;
      }
      details.faq-item[open] .faq-q::after {
        transform: rotate(45deg);
      }
      .faq-item > summary.faq-q {
        scroll-margin-top: 90px;
      }
      .qr-t {
        font-size: 0.88rem;
        font-weight: 700;
        margin-bottom: 0.2rem;
      }
      .qr-d {
        font-size: 0.74rem;
        color: var(--muted);
      }
      @media (max-width: 760px) {
        .contact-in {
          grid-template-columns: 1fr;
        }
      }

      /* ── Footer ── */
      footer {
        padding: 3rem 6% 2rem;
        background: #010810;
        border-top: 1px solid var(--border);
        position: relative;
        z-index: 1;
      }
      .foot-in {
        max-width: 1180px;
        margin: 0 auto;
        display: grid;
        grid-template-columns: 2fr 1fr 1fr 1fr;
        gap: 2rem;
      }
      .foot-brand {
        font-size: 1rem;
        font-weight: 800;
        color: var(--blue2);
        margin-bottom: 0.5rem;
      }
      .foot-desc {
        font-size: 0.8rem;
        color: var(--muted);
        line-height: 1.7;
        margin-bottom: 1rem;
      }
      .foot-t {
        font-size: 0.82rem;
        font-weight: 700;
        margin-bottom: 0.8rem;
        color: var(--text);
      }
      .foot-links {
        list-style: none;
      }
      .foot-links li {
        margin-bottom: 0.4rem;
      }
      .foot-links a {
        font-size: 0.78rem;
        color: var(--muted);
        transition: color 0.2s;
      }
      .foot-links a:hover {
        color: var(--blue2);
      }
      .foot-bottom {
        max-width: 1180px;
        margin: 2rem auto 0;
        padding-top: 1.5rem;
        border-top: 1px solid var(--border);
        text-align: center;
        font-size: 0.74rem;
        color: var(--muted2);
      }
      @media (max-width: 760px) {
        .foot-in {
          grid-template-columns: 1fr 1fr;
        }
      }

      /* 移动端菜单 */
      .menu-btn {
        display: none;
        background: none;
        border: none;
        color: var(--blue2);
        font-size: 1.5rem;
        cursor: pointer;
      }
      @media (max-width: 880px) {
        .menu-btn {
          display: block;
        }
      }
      .mobile-menu {
        display: none;
        position: fixed;
        top: 64px;
        left: 0;
        right: 0;
        z-index: 98;
        background: rgba(2, 12, 26, 0.98);
        backdrop-filter: blur(20px);
        border-bottom: 1px solid var(--border);
        padding: 1rem 6%;
      }
      .mobile-menu.open {
        display: block;
      }
      .mobile-menu a {
        display: block;
        padding: 0.8rem 0;
        color: var(--muted);
        font-size: 0.9rem;
        border-bottom: 1px solid var(--border);
      }
      .mobile-menu a:last-child {
        border: none;
      }
    
      /* === 拆页新增：H1 公司全称前置后的排版适配 === */
      .h1-co{font-size:.38em;font-weight:800;letter-spacing:.04em;color:var(--blue2)}
      .h1-sub{font-size:.46em;font-weight:800;letter-spacing:.02em;color:var(--text)}
      .sub-hero{padding:150px 6% 60px;background:linear-gradient(180deg,var(--bg2) 0%,var(--bg) 100%);border-bottom:1px solid var(--border)}
      .sub-hero .wrap{max-width:1180px;margin:0 auto}
      .sub-hero h1{font-size:clamp(1.8rem,3.6vw,2.8rem);font-weight:800;line-height:1.3}
      .sub-hero p{color:var(--muted);font-size:1rem;line-height:1.9;margin-top:1rem;max-width:760px}
      .crumb{font-size:.8rem;color:var(--muted2);margin-bottom:1rem}
      .crumb a{color:var(--muted)}.crumb a:hover{color:var(--blue2)}
      .prose{max-width:860px;color:var(--text);font-size:.95rem;line-height:2}
      .prose h2{font-size:1.25rem;color:var(--blue2);margin:2rem 0 .8rem}
      .prose h3{font-size:1.05rem;color:var(--text);margin:1.5rem 0 .6rem}
      .prose p{margin:.6rem 0;color:#cbd8e6}
      .prose ul{padding-left:1.2rem;margin:.6rem 0}.prose li{margin:.3rem 0;color:#cbd8e6}
      .prose figure{margin:1.4rem 0;text-align:center}
      .prose img{max-width:100%;height:auto;border-radius:12px;border:1px solid var(--border)}
      .prose .src{font-size:.78rem;color:var(--muted2)}
      .card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem;margin-top:1.5rem}
      .mcard{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.4rem}
      .mcard h3{font-size:1.05rem;color:var(--text);margin-bottom:.5rem}
      .mcard p{font-size:.88rem;color:var(--muted);line-height:1.85}
      .mcard .meta{font-size:.78rem;color:var(--muted2);margin-top:.8rem}
      .kv{display:grid;grid-template-columns:120px 1fr;gap:.5rem 1rem;font-size:.92rem}
      .kv dt{color:var(--muted2)}.kv dd{color:var(--text)}
      .news-list{margin-top:1.5rem;border-top:1px solid var(--border)}
      .news-row{display:flex;gap:1.5rem;padding:1.3rem 0;border-bottom:1px solid var(--border);flex-wrap:wrap}
      .news-date{color:var(--blue2);font-size:.85rem;font-weight:700;min-width:100px}
      .news-main{flex:1;min-width:260px}
      .news-main h3{font-size:1.05rem;color:var(--text);margin-bottom:.4rem}
      .news-main p{font-size:.88rem;color:var(--muted);line-height:1.85}
      .news-tag{display:inline-block;font-size:.72rem;padding:2px 8px;border-radius:10px;background:rgba(14,165,233,.12);color:var(--blue2);margin-right:.4rem}
      /* 列表行缩略图：仅新文章（articles.json 提供 image）渲染，历史文章无图则整块不出现 */
      .news-thumb{flex:0 0 auto;width:180px;aspect-ratio:16/9;border-radius:10px;overflow:hidden;border:1px solid var(--border);display:block;background:rgba(148,163,184,.08)}
      .news-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
      .news-thumb:hover img{transform:scale(1.06)}
      @media(max-width:640px){.sub-hero{padding:120px 6% 40px}.kv{grid-template-columns:1fr}.news-thumb{width:120px}}

      /* === 导航跨页一致性 + 当前页选中态 === */
      @media(max-width:1240px){.nav-links{gap:1.05rem;font-size:.84rem}}
      @media(max-width:1024px){.nav-links{gap:.8rem;font-size:.8rem}}
      .nav-cta.active{box-shadow:0 0 0 1.5px rgba(255,255,255,.7),0 4px 16px rgba(14,165,233,.45)}
      .mobile-menu a.active{color:var(--blue2);font-weight:700}
      .mobile-menu a.active::after{content:" · 当前页";font-size:.72rem;font-weight:500;color:var(--muted2)}

      /* ==================== 案例页 3D 机场分布图 ==================== */
      .map3d{position:relative;width:100vw;margin-left:calc(50% - 50vw);height:clamp(360px,45vw,680px);overflow:hidden;margin-top:1.5rem}
      .map3d canvas{display:block;width:100%;height:100%;touch-action:pan-y}
      .map3d-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;letter-spacing:.2em;z-index:5;pointer-events:none;background:radial-gradient(ellipse at 50% 60%,rgba(14,165,233,.05),transparent 70%);transition:opacity .5s}
      .map3d--on .map3d-loading{opacity:0}
      .map3d-legend{position:absolute;left:14px;bottom:12px;z-index:4;display:flex;flex-direction:column;gap:2px;font-size:.75rem;color:var(--muted);background:rgba(6,21,42,.66);border:1px solid var(--border);border-radius:10px;padding:6px 12px;backdrop-filter:blur(4px)}
      .map3d-legend>div:first-child{display:flex;align-items:center;gap:.5rem}
      .map3d-src{font-size:.66rem;color:var(--muted2);line-height:1.5}
      .map3d-legend b{color:var(--blue2);font-size:.95rem;font-variant-numeric:tabular-nums}
      .map3d-legend .dot{width:8px;height:8px;border-radius:50%;background:var(--grad-cyan);box-shadow:0 0 8px var(--glow)}
      .map3d-hint{position:absolute;right:14px;bottom:12px;z-index:4;font-size:.72rem;color:var(--muted2)}
      .map3d-labels{position:absolute;inset:0;z-index:3;pointer-events:none}
      .map3d-label{position:absolute;left:0;top:0;font-size:.72rem;color:var(--blue3);background:rgba(8,22,42,.78);border:1px solid var(--border);padding:1px 8px;border-radius:99px;white-space:nowrap;opacity:0;transition:opacity .4s;will-change:transform}
      .map3d-label.on{opacity:1}
      .map3d-label.is-center{color:var(--cyan);border-color:var(--border3);box-shadow:0 0 12px var(--glow)}
      .map3d-tooltip{position:absolute;z-index:6;pointer-events:none;font-size:.8rem;color:var(--text);background:rgba(8,22,42,.92);border:1px solid var(--border2);border-radius:8px;padding:4px 10px;white-space:nowrap;box-shadow:var(--shadow-card)}
      .map3d-fallback{position:absolute;inset:0;z-index:2;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:8px;padding:22px;background:radial-gradient(ellipse at 50% 40%,rgba(14,165,233,.06),transparent 75%)}
      .map3d--on .map3d-fallback{display:none}
      .map3d-chip{font-size:.8rem;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:6px 12px}
      .map3d-chip b{color:var(--blue2);margin-left:4px;font-variant-numeric:tabular-nums}
      .map3d-chip.is-top{border-color:var(--border2);box-shadow:0 0 14px var(--glow)}
      @media(max-width:768px){
        .map3d-legend{left:10px;bottom:10px;font-size:.7rem;padding:4px 10px}
        .map3d-hint{display:none}
        .map3d-chip{font-size:.72rem;padding:5px 10px}
      }
      @media(prefers-reduced-motion:reduce){.map3d-label{transition:none}.map3d-loading{transition:none}}
      .map3d-legend,.map3d-hint{pointer-events:none}
      .map3d--off .map3d-loading{display:none}

      /* === 关于页：关键数字带（公司实体速览） === */
      .stat-band {
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        gap: 1px;
        background: var(--border);
        border: 1px solid var(--border);
        border-radius: 14px;
        overflow: hidden;
        margin: 1.6rem 0 0.4rem;
      }
      .stat-item {
        background: var(--card);
        padding: 1.5rem 1rem;
        text-align: center;
        transition: background 0.3s ease;
      }
      .stat-item:hover {
        background: var(--card-hover);
      }
      .stat-num {
        font-size: clamp(1.5rem, 2.4vw, 2rem);
        font-weight: 800;
        line-height: 1.15;
        background: var(--grad-text);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      /* 数字后缀（data-suffix）：走 CSS 生成内容，不能直接写进元素里 ——
         data-count 的数字滚动收尾会把 textContent 整个覆盖，元素内的「+」
         跑完动画就被抹掉了；生成内容不占 textContent，新旧脚本都稳。 */
      [data-count][data-suffix]::after {
        content: attr(data-suffix);
      }
      /* .stat-num 是渐变文字（-webkit-text-fill-color: transparent），伪元素会
         继承这份透明而看不见 —— 给它自己的实色。后缀比数字弱一档也更合层级 */
      .stat-num[data-suffix]::after {
        color: var(--blue2);
        -webkit-text-fill-color: currentColor;
      }
      .stat-lb {
        font-size: 0.78rem;
        color: var(--muted);
        margin-top: 0.45rem;
      }
      @media (max-width: 900px) {
        .stat-band {
          grid-template-columns: repeat(2, 1fr);
        }
      }
      @media (max-width: 520px) {
        .stat-band {
          grid-template-columns: 1fr;
        }
      }
      /* === 待补充内容占位（不编造数据） === */
      .pending {
        border: 1px dashed var(--border3);
        background: rgba(14, 165, 233, 0.03);
        border-radius: 12px;
        padding: 1.3rem 1.4rem;
      }
      .pending .ptag {
        font-size: 0.7rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        color: var(--amber);
        margin-bottom: 0.5rem;
      }
      .pending p {
        font-size: 0.88rem;
        color: var(--muted);
        line-height: 1.8;
      }
      /* === 首页：公司背书条（融合后摘要） === */
      .about-band {
        text-align: center;
        max-width: 860px;
        margin: 0 auto;
      }
      .about-band .band-lead {
        color: var(--muted);
        font-size: 1rem;
        line-height: 1.9;
        margin-top: 1rem;
      }
      .band-nums {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 0;
        margin: 2rem 0 1.8rem;
        border: 1px solid var(--border);
        border-radius: 14px;
        background: var(--card);
        overflow: hidden;
      }
      .band-nums > div {
        flex: 1 1 160px;
        padding: 1.3rem 1rem;
        position: relative;
      }
      .band-nums > div + div::before {
        content: "";
        position: absolute;
        left: 0;
        top: 22%;
        bottom: 22%;
        width: 1px;
        background: var(--border);
      }
      .band-nums .n {
        font-size: 1.7rem;
        font-weight: 800;
        background: var(--grad-text);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      .band-nums .l {
        font-size: 0.78rem;
        color: var(--muted);
        margin-top: 0.35rem;
      }
      @media (max-width: 640px) {
        .band-nums > div + div::before {
          display: none;
        }
        .band-nums {
          flex-direction: column;
        }
      }

      /* === 关于页：区块节奏（交替背景） === */
      .sec-alt {
        background: var(--bg2);
        border-top: 1px solid var(--border);
        border-bottom: 1px solid var(--border);
      }
      /* === 关于页：正文 + 公司名片两栏 === */
      .about-split {
        display: grid;
        grid-template-columns: 1fr 330px;
        gap: 2.6rem;
        align-items: start;
      }
      @media (max-width: 960px) {
        .about-split {
          grid-template-columns: 1fr;
        }
      }
      .namecard {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 14px;
        padding: 1.4rem 1.5rem 1.2rem;
        position: relative;
        overflow: hidden;
      }
      .namecard::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 3px;
        background: var(--grad-blue);
      }
      .namecard .nc-t {
        font-size: 0.78rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        color: var(--blue2);
        margin-bottom: 0.9rem;
      }
      .namecard .row {
        display: flex;
        gap: 1rem;
        padding: 0.6rem 0;
        border-bottom: 1px dashed var(--border);
      }
      .namecard .row:last-child {
        border-bottom: 0;
        padding-bottom: 0;
      }
      .namecard dt {
        flex: 0 0 4.6em;
        font-size: 0.8rem;
        color: var(--muted2);
      }
      .namecard dd {
        flex: 1;
        font-size: 0.85rem;
        color: #cbd8e6;
        line-height: 1.75;
        text-align: right;
      }
      /* === 发展历程：节点卡片化 === */
      .prose .timeline .tl-item {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 12px;
        padding: 1rem 1.2rem;
        margin-bottom: 1rem;
        transition:
          border-color 0.3s ease,
          transform 0.3s ease;
      }
      .prose .timeline .tl-item:hover {
        border-color: var(--border2);
        transform: translateX(4px);
      }
      .prose .timeline .tl-item:last-child {
        margin-bottom: 0;
      }
      /* === 资质分组小标题 === */
      .qual-group {
        margin-top: 1.4rem;
      }
      .qual-group .qg-t {
        font-size: 0.82rem;
        font-weight: 700;
        color: var(--blue2);
        margin-bottom: 0.7rem;
        letter-spacing: 0.03em;
      }
      /* === 联合实验室高亮卡 === */
      .lab-card {
        border: 1px solid var(--border2);
        border-radius: 14px;
        padding: 1.6rem 1.8rem;
        margin-top: 1rem;
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.08),
          rgba(99, 102, 241, 0.04)
        );
      }
      .lab-card .lb {
        font-size: 0.76rem;
        color: var(--muted2);
        font-weight: 600;
        letter-spacing: 0.06em;
        margin-bottom: 0.6rem;
      }
      .lab-card .lv {
        font-size: 1.02rem;
        color: var(--blue2);
        font-weight: 700;
        line-height: 1.75;
      }
      /* === 结尾 CTA === */
      .cta-band {
        text-align: center;
        max-width: 720px;
        margin: 0 auto;
      }
      .cta-band .btns {
        justify-content: center;
        margin-top: 1.4rem;
      }
      /* === 关于页：公司风采（gallery） === */
      .gallery-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-auto-rows: 150px;
        gap: 0.9rem;
      }
      .gitem {
        position: relative;
        border: 1px solid var(--border);
        border-radius: 12px;
        overflow: hidden;
        cursor: zoom-in;
        background: var(--card);
        transition:
          border-color 0.3s ease,
          transform 0.3s ease;
      }
      .gitem:hover {
        border-color: var(--border2);
        transform: translateY(-3px);
      }
      .gitem img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform 0.4s ease;
      }
      .gitem:hover img {
        transform: scale(1.04);
      }
      .gitem figcaption {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        padding: 1.4rem 0.8rem 0.5rem;
        font-size: 0.78rem;
        color: #dbe7f3;
        text-align: center;
        background: linear-gradient(180deg, transparent, rgba(4, 8, 15, 0.85));
        pointer-events: none;
      }
      .gitem.is-big {
        grid-column: span 2;
        grid-row: span 2;
      }
      .gitem.noimg {
        cursor: default;
        background: linear-gradient(135deg, #16324f, #0d1b2e);
      }
      .gitem.noimg img {
        display: none;
      }
      .gitem.noimg::before {
        content: "📷";
        position: absolute;
        top: 42%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 1.4rem;
        opacity: 0.4;
      }
      .gitem.noimg figcaption {
        top: 52%;
        padding: 0 0.8rem;
        background: none;
        color: var(--muted2);
      }
      .gitem.noimg:hover {
        transform: none;
        border-color: var(--border);
      }
      /* === 关于页：证书墙（cert wall） === */
      .cert-wall {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
        gap: 0.9rem;
        margin-bottom: 1rem;
      }
      .citem {
        position: relative;
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 12px;
        overflow: hidden;
        cursor: zoom-in;
        transition:
          border-color 0.3s ease,
          transform 0.3s ease;
      }
      .citem:hover {
        border-color: var(--border2);
        transform: translateY(-3px);
      }
      .citem .cimg {
        aspect-ratio: 4 / 3;
        background: #f4f7fb;
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
      }
      .citem .cimg img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        padding: 0.5rem;
        display: block;
      }
      .citem .ct {
        font-size: 0.8rem;
        color: #cbd8e6;
        text-align: center;
        padding: 0.55rem 0.6rem;
        border-top: 1px solid var(--border);
      }
      .citem.noimg {
        display: none;
      }
      /* === 关于页：知识产权证书轮播（cert strip，横向滚动 + 灯箱放大） === */
      .cert-strip {
        margin: 0 0 1.3rem;
      }
      .cs-head {
        display: flex;
        align-items: baseline;
        gap: 0.6rem;
        margin-bottom: 0.55rem;
      }
      .cs-t {
        font-size: 0.85rem;
        font-weight: 700;
        color: var(--text);
      }
      .cs-row {
        display: flex;
        align-items: center;
        gap: 0.5rem;
      }
      .cs-track {
        display: flex;
        gap: 0.7rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        padding: 0.2rem 0.15rem 0.6rem;
        min-width: 0;
        -webkit-overflow-scrolling: touch;
      }
      .cs-track::-webkit-scrollbar {
        height: 6px;
      }
      .cs-track::-webkit-scrollbar-thumb {
        background: var(--border2);
        border-radius: 3px;
      }
      .cs-track::-webkit-scrollbar-track {
        background: transparent;
      }
      /* cs-item 复用 .citem 全部视觉，仅覆盖为轮播条目尺寸 */
      .citem.cs-item {
        flex: 0 0 200px;
        margin: 0;
        scroll-snap-align: start;
      }
      .cs-btn {
        flex-shrink: 0;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        border: 1px solid var(--border2);
        background: rgba(14, 165, 233, 0.1);
        color: var(--blue2);
        font-size: 1.15rem;
        line-height: 1;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition:
          background 0.25s ease,
          opacity 0.25s ease;
      }
      .cs-btn:hover:not(:disabled) {
        background: rgba(14, 165, 233, 0.26);
      }
      .cs-btn:disabled {
        opacity: 0.22;
        cursor: default;
      }
      @media (max-width: 640px) {
        .citem.cs-item {
          flex-basis: 152px;
        }
        .cs-btn {
          display: none; /* 移动端原生滑动，按钮隐藏 */
        }
        .cs-row {
          gap: 0;
        }
      }
      @media (prefers-reduced-motion: reduce) {
        .cs-track {
          scroll-behavior: auto;
        }
      }

      /* === 关于页：发展历程 v2（左年份右卡片全宽，里程碑高亮） === */
      .timeline2 {
        max-width: 940px;
        margin-top: 1.6rem;
      }
      .tl2-row {
        position: relative;
        display: grid;
        grid-template-columns: 150px 1fr;
        gap: 0 1.5rem;
        padding-bottom: 1.1rem;
      }
      .tl2-row:last-child {
        padding-bottom: 0;
      }
      /* 列边界上的轨道线 */
      .tl2-row::before {
        content: "";
        position: absolute;
        left: calc(150px + 0.75rem - 1px);
        top: 0.55rem;
        bottom: -0.55rem;
        width: 2px;
        border-radius: 2px;
        background: linear-gradient(180deg, var(--border2), var(--border));
      }
      .tl2-row:last-child::before {
        bottom: auto;
        height: 1.1rem;
      }
      /* 节点圆点 */
      .tl2-row::after {
        content: "";
        position: absolute;
        left: calc(150px + 0.75rem - 5px);
        top: 0.9rem;
        width: 10px;
        height: 10px;
        border-radius: 50%;
        background: var(--bg2);
        border: 2px solid var(--blue);
        z-index: 1;
      }
      .tl2-side {
        text-align: right;
        padding-top: 0.15rem;
      }
      .tl2-year {
        font-size: 1.3rem;
        font-weight: 900;
        line-height: 1.2;
        color: var(--text);
        font-variant-numeric: tabular-nums;
        letter-spacing: -0.01em;
      }
      .tl2-tag {
        display: block;
        font-style: normal;
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.08);
        border: 1px solid rgba(14, 165, 233, 0.2);
        border-radius: 99px;
        padding: 0.14rem 0.6rem;
        margin-top: 0.45rem;
      }
      .tl2-card {
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 12px;
        padding: 1rem 1.3rem;
        font-size: 0.92rem;
        color: #cbd8e6;
        line-height: 1.8;
        transition:
          border-color 0.3s ease,
          transform 0.3s ease;
      }
      .tl2-row:hover .tl2-card {
        border-color: var(--border2);
        transform: translateX(4px);
      }
      /* 关键里程碑（标准落地 / 战略发布） */
      .tl2-row.is-key .tl2-year {
        background: var(--grad-text);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
      }
      .tl2-row.is-key .tl2-card {
        border-color: var(--border2);
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.09),
          rgba(99, 102, 241, 0.04)
        );
      }
      .tl2-row.is-key::after {
        background: var(--blue2);
        box-shadow: 0 0 12px var(--glow);
      }
      @media (max-width: 640px) {
        .tl2-row {
          grid-template-columns: 1fr;
          gap: 0.4rem 0;
          padding: 0 0 1rem 1.5rem;
        }
        .tl2-row::before {
          left: 4px;
          top: 0.4rem;
          bottom: -0.4rem;
        }
        .tl2-row:last-child::before {
          height: 1rem;
        }
        .tl2-row::after {
          left: 0;
          top: 0.55rem;
        }
        .tl2-side {
          text-align: left;
          padding-top: 0;
        }
        .tl2-year {
          font-size: 1.15rem;
          display: inline-block;
          vertical-align: middle;
        }
        .tl2-tag {
          display: inline-block;
          vertical-align: middle;
          margin-top: 0;
          margin-left: 0.55rem;
        }
      }
      /* === 关于页：灯箱 === */
      .lb-overlay {
        position: fixed;
        inset: 0;
        z-index: 999;
        background: rgba(2, 5, 10, 0.88);
        display: none;
        align-items: center;
        justify-content: center;
        flex-direction: column;
      }
      .lb-overlay.open {
        display: flex;
      }
      .lb-overlay img {
        max-width: min(88vw, 1000px);
        max-height: 78vh;
        border-radius: 10px;
        box-shadow: var(--shadow-card);
        background: #fff;
      }
      .lb-overlay.is-photo img {
        background: none;
      }
      .lb-cap {
        margin-top: 0.9rem;
        font-size: 0.9rem;
        color: var(--text);
      }
      .lb-count {
        margin-top: 0.3rem;
        font-size: 0.76rem;
        color: var(--muted2);
      }
      .lb-btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 44px;
        height: 44px;
        border-radius: 50%;
        border: 1px solid var(--border2);
        background: rgba(14, 165, 233, 0.12);
        color: var(--blue2);
        font-size: 1.3rem;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: background 0.25s ease;
      }
      .lb-btn:hover {
        background: rgba(14, 165, 233, 0.28);
      }
      .lb-prev {
        left: max(12px, 3vw);
      }
      .lb-next {
        right: max(12px, 3vw);
      }
      .lb-close {
        position: absolute;
        top: 18px;
        right: 22px;
        width: 40px;
        height: 40px;
        border: 0;
        background: none;
        color: var(--muted);
        font-size: 1.5rem;
        cursor: pointer;
      }
      .lb-close:hover {
        color: var(--text);
      }
      @media (max-width: 960px) {
        .gallery-grid {
          grid-template-columns: repeat(2, 1fr);
          grid-auto-rows: 140px;
        }
        .gitem.is-big {
          grid-column: span 2;
        }
      }
      @media (max-width: 640px) {
        .gallery-grid {
          grid-template-columns: 1fr 1fr;
          grid-auto-rows: 110px;
          gap: 0.6rem;
        }
        .gitem.is-big {
          grid-column: span 2;
          grid-row: span 2;
        }
        .cert-wall {
          grid-template-columns: 1fr 1fr;
          gap: 0.6rem;
        }
        .lb-prev,
        .lb-next {
          top: auto;
          bottom: 22px;
          transform: none;
        }
        .lb-prev {
          left: 22vw;
        }
        .lb-next {
          right: 22vw;
        }
      }

      /* ==================== FAQ 独立页：分组 + 结构化答案 ==================== */
      /* 仅 /faq/ 页使用的追加样式；首页 #faq 区块（.faq-item 基础视觉）不受影响 */
      #faq-list details.faq-item {
        scroll-margin-top: 90px;
      }
      .faq-jump {
        display: flex;
        flex-wrap: wrap;
        gap: 0.6rem;
        max-width: 760px;
        margin: 0 auto 2.4rem;
      }
      .faq-jump a {
        font-size: 0.82rem;
        font-weight: 600;
        color: var(--muted);
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 99px;
        padding: 0.42rem 1.1rem;
        transition:
          color 0.2s ease,
          border-color 0.2s ease,
          background 0.2s ease;
      }
      .faq-jump a:hover {
        color: var(--blue2);
        border-color: rgba(14, 165, 233, 0.4);
        background: rgba(14, 165, 233, 0.06);
      }
      .faq-cat {
        max-width: 760px;
        margin: 2.6rem auto 1rem;
        scroll-margin-top: 90px;
      }
      .faq-cat:first-of-type {
        margin-top: 0;
      }
      .fc-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 1rem;
        padding-bottom: 0.6rem;
        border-bottom: 2px solid rgba(14, 165, 233, 0.3);
        margin-bottom: 1.1rem;
      }
      .fc-name {
        font-size: 1.05rem;
        font-weight: 800;
        color: var(--text);
      }
      .fc-count {
        font-size: 0.72rem;
        font-weight: 700;
        color: var(--blue2);
        background: rgba(14, 165, 233, 0.08);
        border: 1px solid rgba(14, 165, 233, 0.2);
        padding: 0.18rem 0.65rem;
        border-radius: 99px;
        white-space: nowrap;
      }
      .fc-desc {
        font-size: 0.8rem;
        color: var(--muted2);
        margin: -0.4rem 0 0;
      }
      /* 组间距由 .faq-cat 自身 margin 控制，组内卡片保持 .faq-item 原生 0.8rem 节奏 */
      .faq-item + .faq-cat {
        margin-top: 3rem;
      }
      /* 结构化答案排版（仅 /faq/ 页内 details 使用） */
      details .faq-a p {
        margin: 0 0 0.7rem;
      }
      details .faq-a p:last-child {
        margin-bottom: 0;
      }
      .faq-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 0.45rem;
        margin: 0.2rem 0 0.9rem;
      }
      .faq-tags:last-child {
        margin-bottom: 0;
      }
      .faq-tags span {
        font-size: 0.76rem;
        color: var(--text);
        background: rgba(14, 165, 233, 0.06);
        border: 1px solid var(--border);
        border-radius: 8px;
        padding: 0.28rem 0.7rem;
      }
      .faq-tags .ft-label {
        font-size: 0.72rem;
        font-weight: 700;
        color: var(--blue2);
        background: none;
        border: none;
        padding: 0.28rem 0;
        align-self: center;
      }
      .faq-values {
        list-style: none;
        padding: 0;
        margin: 0.2rem 0 0.9rem;
      }
      .faq-values li {
        padding: 0.55rem 0;
        border-bottom: 1px dashed var(--border);
        display: grid;
        grid-template-columns: 6.5em 1fr;
        gap: 0.9rem;
        align-items: baseline;
      }
      .faq-values li:last-child {
        border-bottom: 0;
      }
      .faq-values b {
        color: var(--blue2);
        font-size: 0.85rem;
        font-weight: 700;
      }
      .faq-values span {
        color: var(--muted);
        font-size: 0.82rem;
        line-height: 1.7;
      }
      .faq-price {
        display: flex;
        align-items: baseline;
        gap: 0.6rem;
        flex-wrap: wrap;
        margin: 0.6rem 0 1rem;
        padding: 0.9rem 1.2rem;
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.1),
          rgba(99, 102, 241, 0.05)
        );
        border: 1px solid rgba(14, 165, 233, 0.25);
        border-radius: 10px;
      }
      .faq-price .fp-num {
        font-size: 1.5rem;
        font-weight: 900;
        background: var(--grad-text);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        letter-spacing: -0.01em;
      }
      .faq-price .fp-unit {
        font-size: 0.8rem;
        color: var(--muted);
      }
      .faq-factors {
        list-style: none;
        padding: 0;
        margin: 0.2rem 0 0.9rem;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0.4rem 1.2rem;
      }
      .faq-factors li {
        font-size: 0.82rem;
        color: var(--muted);
        padding-left: 1.1rem;
        position: relative;
        line-height: 1.6;
      }
      .faq-factors li::before {
        content: "·";
        position: absolute;
        left: 0.2rem;
        color: var(--blue2);
        font-weight: 800;
      }
      /* CTA 强化卡 */
      .faq-cta {
        margin-top: 3rem;
      }
      .fc-card {
        max-width: 760px;
        margin: 0 auto;
        background: linear-gradient(
          135deg,
          rgba(14, 165, 233, 0.09),
          rgba(99, 102, 241, 0.05)
        );
        border: 1px solid rgba(14, 165, 233, 0.25);
        border-radius: 16px;
        padding: 2.4rem 2rem;
        text-align: center;
        position: relative;
        overflow: hidden;
      }
      .fc-card::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 3px;
        background: var(--grad-blue);
      }
      .fcc-t {
        font-size: 1.15rem;
        font-weight: 800;
        color: var(--text);
        margin-bottom: 0.5rem;
      }
      .fcc-d {
        font-size: 0.88rem;
        color: var(--muted);
        line-height: 1.8;
        margin-bottom: 1.3rem;
      }
      .fc-card .btns {
        justify-content: center;
      }
      .fcc-wx {
        margin-top: 1.2rem;
        font-size: 0.76rem;
        color: var(--muted2);
      }
      @media (max-width: 640px) {
        .faq-jump {
          gap: 0.45rem;
          margin-bottom: 1.8rem;
        }
        .faq-jump a {
          flex: 1 1 auto;
          text-align: center;
          padding: 0.42rem 0.9rem;
        }
        .fc-head {
          flex-wrap: wrap;
        }
        .faq-values li {
          grid-template-columns: 1fr;
          gap: 0.15rem;
        }
        .faq-factors {
          grid-template-columns: 1fr;
        }
        .faq-price .fp-num {
          font-size: 1.25rem;
        }
        .fc-card {
          padding: 1.8rem 1.2rem;
        }
      }

      /* Hallmark · macrostructure: 交替媒体标杆案例（既有系统内增补） · tone: 深色科技权威 · anchor hue: 天蓝(203°) */
      /* ==================== 案例页：标杆案例（媒体交替大卡） ==================== */
      .stat-band.cols-3 {
        grid-template-columns: repeat(3, 1fr);
        margin-top: 1.6rem;
      }
      @media (max-width: 520px) {
        .stat-band.cols-3 .stat-num {
          font-size: 1.3rem;
        }
        .stat-band.cols-3 .stat-lb {
          font-size: 0.66rem;
        }
      }
      .fcs-list {
        display: flex;
        flex-direction: column;
        gap: 2rem;
        margin-top: 1.5rem;
      }
      .fcs-item {
        display: grid;
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
        gap: 1.8rem;
        align-items: center;
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 16px;
        padding: 1.6rem;
        transition: border-color 0.3s ease;
      }
      .fcs-item:hover {
        border-color: var(--border2);
      }
      .fcs-media {
        grid-column: 1;
        grid-row: 1;
        position: relative;
        margin: 0;
        border: 1px solid var(--border);
        border-radius: 12px;
        overflow: hidden;
        background: var(--card2);
        aspect-ratio: 4 / 3;
        min-width: 0;
      }
      .fcs-body {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
      }
      .fcs-item.flip .fcs-media {
        grid-column: 2;
      }
      .fcs-item.flip .fcs-body {
        grid-column: 1;
      }
      .fcs-media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform 0.45s ease;
      }
      .fcs-item:hover .fcs-media img {
        transform: scale(1.04);
      }
      /* 图片未就位时的诚实占位（放入 /assets/img/case-*.jpg 即自动显示） */
      .fcs-media.noimg img {
        display: none;
      }
      .fcs-media.noimg::before {
        content: "📷";
        position: absolute;
        top: 44%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 1.6rem;
        opacity: 0.4;
      }
      .fcs-media.noimg::after {
        content: "项目图片整理中";
        position: absolute;
        top: 57%;
        left: 50%;
        transform: translate(-50%, -50%);
        font-size: 0.78rem;
        color: var(--muted2);
        white-space: nowrap;
      }
      .fcs-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        align-items: center;
      }
      .fcs-body h3 {
        font-size: clamp(1.1rem, 1.8vw, 1.3rem);
        font-weight: 800;
        line-height: 1.45;
        color: var(--text);
        margin: 0.7rem 0 0;
        overflow-wrap: anywhere;
      }
      .fcs-kv {
        display: flex;
        flex-wrap: wrap;
        gap: 0.3rem 1.6rem;
        margin-top: 0.55rem;
        font-size: 0.84rem;
      }
      .fcs-kv span {
        color: var(--muted2);
      }
      .fcs-kv b {
        color: #cbd8e6;
        font-weight: 600;
      }
      .fcs-bg {
        font-size: 0.87rem;
        color: var(--muted);
        line-height: 1.8;
        margin-top: 0.8rem;
      }
      .fcs-flow {
        list-style: none;
        counter-reset: fcs;
        display: flex;
        flex-direction: column;
        gap: 0.55rem;
        margin: 0.9rem 0 0;
      }
      .fcs-flow li {
        counter-increment: fcs;
        position: relative;
        padding-left: 2rem;
        font-size: 0.85rem;
        color: #cbd8e6;
        line-height: 1.7;
      }
      .fcs-flow li::before {
        content: counter(fcs);
        position: absolute;
        left: 0;
        top: 0.18rem;
        width: 1.35rem;
        height: 1.35rem;
        border-radius: 6px;
        background: rgba(14, 165, 233, 0.12);
        border: 1px solid rgba(14, 165, 233, 0.25);
        color: var(--blue2);
        font-size: 0.72rem;
        font-weight: 800;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .fcs-flow b {
        color: var(--text);
        font-weight: 700;
      }
      .fcs-stats {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
        gap: 0.6rem;
        margin-top: 1.1rem;
        padding-top: 1rem;
        border-top: 1px dashed var(--border);
      }
      .fcs-stats .fs b {
        display: block;
        font-size: 1.3rem;
        font-weight: 900;
        line-height: 1.2;
        background: var(--grad-text);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        font-variant-numeric: tabular-nums;
      }
      .fcs-stats .fs span {
        display: block;
        font-size: 0.72rem;
        color: var(--muted);
        line-height: 1.5;
        margin-top: 0.15rem;
      }
      .fcs-foot {
        margin-top: 1rem;
      }
      .fcs-report {
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        font-size: 0.8rem;
        font-weight: 700;
        color: var(--blue2);
        border: 1px solid rgba(14, 165, 233, 0.3);
        border-radius: 99px;
        padding: 0.32rem 0.95rem;
        transition:
          background 0.25s ease,
          border-color 0.25s ease;
      }
      .fcs-report:hover {
        background: rgba(14, 165, 233, 0.12);
        border-color: var(--blue2);
      }
      .fcs-report.is-pending {
        color: var(--muted2);
        border-style: dashed;
        border-color: var(--border2);
        font-weight: 500;
      }
      @media (max-width: 880px) {
        .fcs-item,
        .fcs-item.flip {
          grid-template-columns: minmax(0, 1fr);
          gap: 1.1rem;
        }
        .fcs-media,
        .fcs-item.flip .fcs-media {
          grid-column: 1;
          grid-row: 1;
          aspect-ratio: 16 / 9;
        }
        .fcs-body,
        .fcs-item.flip .fcs-body {
          grid-column: 1;
          grid-row: 2;
        }
      }
      @media (prefers-reduced-motion: reduce) {
        .fcs-media img {
          transition: none;
        }
      }

      /* ════════════════════════════════════════════════════════════════
         现代层 · Modern Layer
         全部为渐进增强：不支持的浏览器整块跳过，不会留下残缺样式。
         ════════════════════════════════════════════════════════════════ */

      /* ── 1. 区块节奏 ──────────────────────────────────────────────
         原状：8 个区块写死同一套 padding:80px 6%，首页 12 屏节奏完全一致；
         且其中多数是 #id 规则，优先级高于类型选择器 —— 这正是为什么
         必须显式列出 id：只写 section{} 压不住原有的 #pain{padding:80px 6%}。
         现在按内容轻重分三级，制造呼吸差。 */
      section {
        padding-block: var(--sec-y);
        padding-inline: var(--gutter);
      }
      /* 承接原有 #id 内边距规则的区块（本规则在后，同优先级按顺序取胜） */
      #stats,
      #positioning,
      #pain,
      #scenarios,
      #product,
      #tech-base,
      #twin-concept,
      #engines,
      #coop,
      #cases,
      #eco,
      #about,
      #contact,
      #faq,
      #profile,
      #history,
      #gallery,
      #qual,
      #cta,
      #featured,
      #projects,
      #scenes,
      #voice,
      #info,
      #form,
      #faq-list,
      #list,
      #article {
        padding-block: var(--sec-y);
        padding-inline: var(--gutter);
      }
      /* 一级：核心叙事区，给更多留白 */
      #product,
      #engines {
        padding-block: calc(var(--sec-y) * 1.18);
      }
      /* 二级：密集论证区，收紧 */
      #pain,
      #tech-base,
      #twin-concept,
      #stats {
        padding-block: calc(var(--sec-y) * 0.84);
      }
      /* 紧跟上一个区块、不需要顶部留白的收尾区（该区块无 id，
         故本条 (0,1,0) 足以压过 section (0,0,1)） */
      .sec-flush {
        padding-block-start: 0;
      }
      #hero {
        padding: calc(var(--sec-y) + 4.5rem) var(--gutter) var(--sec-y);
      }
      .wrap,
      nav {
        padding-inline: var(--gutter);
      }

      /* ── 2. 排版：流体字号 + 中文断行 ─────────────────────────── */
      h1 {
        font-size: var(--fs-h1);
        letter-spacing: -0.022em;
        text-wrap: balance;
      }
      .sec-title {
        font-size: var(--fs-h2);
        letter-spacing: -0.022em;
        text-wrap: balance;
      }
      .sec-sub {
        font-size: var(--fs-body);
      }
      p,
      li,
      dd,
      .sec-sub,
      .pos-desc,
      .case-d,
      .eng-d,
      .hub-d,
      .mode-d {
        text-wrap: pretty;
      }

      /* ── 3. 区块编号 ──────────────────────────────────────────────
         CSS 计数器生成，不改 HTML。给长首页一条可数的「检查单」脊线，
         用户的滚动位置从「第几屏」变成「第几步」。 */
      body {
        counter-reset: sec;
      }
      .sec-hd {
        counter-increment: sec;
      }
      .sec-tag::before {
        content: counter(sec, decimal-leading-zero);
        font-family: var(--font-data);
        font-variant-numeric: tabular-nums;
        color: var(--alt);
        margin-right: 0.55rem;
        letter-spacing: 0;
      }

      /* ── 4. 分区头：把通用色条换成「跑道中线」标记 ───────────── */
      .sec-hd.center::after {
        width: 104px;
        height: 2px;
        border-radius: 2px;
        background: linear-gradient(
          90deg,
          var(--border2) 0 41%,
          var(--alt) 41% 59%,
          var(--border2) 59% 100%
        );
      }
      /* 打破「全部居中」：论证型区块改左对齐，形成阅读节奏差 */
      #pain .sec-hd,
      #coop .sec-hd,
      #tech-base .sec-hd {
        text-align: left;
      }
      #pain .sec-hd::after,
      #coop .sec-hd::after,
      #tech-base .sec-hd::after {
        margin-inline: 0;
      }
      #pain .sec-hd .sec-sub,
      #coop .sec-hd .sec-sub,
      #tech-base .sec-hd .sec-sub {
        margin-inline: 0;
      }

      /* ── 5. 入场：位移收敛 + 网格错峰 ─────────────────────────── */
      .fi {
        transform: translate3d(0, 22px, 0);
        transition:
          opacity var(--dur-3) var(--ease-out),
          transform var(--dur-4) var(--ease-out);
      }
      .fi.on {
        transform: none;
      }

      /* 网格子项错峰：容器本身不位移，由子项依次浮起 */
      .fi:is(.cases, .modes, .hubs, .engs, .eco-grid, .partners, .scen-grid, .pains) {
        transform: none;
      }
      .fi:is(.cases, .modes, .hubs, .engs, .eco-grid, .partners, .scen-grid, .pains)
        > * {
        opacity: 0;
        transform: translate3d(0, 16px, 0);
        transition:
          opacity var(--dur-3) var(--ease-out),
          transform var(--dur-3) var(--ease-out);
      }
      .fi:is(.cases, .modes, .hubs, .engs, .eco-grid, .partners, .scen-grid, .pains).on
        > * {
        opacity: 1;
        transform: none;
      }
      .fi.cases.on > *:nth-child(1),
      .fi.modes.on > *:nth-child(1),
      .fi.hubs.on > *:nth-child(1),
      .fi.engs.on > *:nth-child(1),
      .fi.eco-grid.on > *:nth-child(1),
      .fi.partners.on > *:nth-child(1),
      .fi.scen-grid.on > *:nth-child(1),
      .fi.pains.on > *:nth-child(1) {
        transition-delay: 0ms;
      }
      .fi.cases.on > *:nth-child(2),
      .fi.modes.on > *:nth-child(2),
      .fi.hubs.on > *:nth-child(2),
      .fi.engs.on > *:nth-child(2),
      .fi.eco-grid.on > *:nth-child(2),
      .fi.partners.on > *:nth-child(2),
      .fi.scen-grid.on > *:nth-child(2),
      .fi.pains.on > *:nth-child(2) {
        transition-delay: 70ms;
      }
      .fi.cases.on > *:nth-child(3),
      .fi.modes.on > *:nth-child(3),
      .fi.hubs.on > *:nth-child(3),
      .fi.engs.on > *:nth-child(3),
      .fi.eco-grid.on > *:nth-child(3),
      .fi.partners.on > *:nth-child(3),
      .fi.scen-grid.on > *:nth-child(3),
      .fi.pains.on > *:nth-child(3) {
        transition-delay: 140ms;
      }
      .fi.cases.on > *:nth-child(4),
      .fi.modes.on > *:nth-child(4),
      .fi.hubs.on > *:nth-child(4),
      .fi.engs.on > *:nth-child(4),
      .fi.eco-grid.on > *:nth-child(4),
      .fi.partners.on > *:nth-child(4),
      .fi.scen-grid.on > *:nth-child(4),
      .fi.pains.on > *:nth-child(4) {
        transition-delay: 210ms;
      }
      .fi.cases.on > *:nth-child(5),
      .fi.modes.on > *:nth-child(5),
      .fi.hubs.on > *:nth-child(5),
      .fi.engs.on > *:nth-child(5),
      .fi.eco-grid.on > *:nth-child(5),
      .fi.partners.on > *:nth-child(5),
      .fi.scen-grid.on > *:nth-child(5),
      .fi.pains.on > *:nth-child(5) {
        transition-delay: 280ms;
      }
      .fi.cases.on > *:nth-child(6),
      .fi.modes.on > *:nth-child(6),
      .fi.hubs.on > *:nth-child(6),
      .fi.engs.on > *:nth-child(6),
      .fi.eco-grid.on > *:nth-child(6),
      .fi.partners.on > *:nth-child(6),
      .fi.scen-grid.on > *:nth-child(6),
      .fi.pains.on > *:nth-child(6) {
        transition-delay: 350ms;
      }
      .fi.cases.on > *:nth-child(n + 7),
      .fi.modes.on > *:nth-child(n + 7),
      .fi.hubs.on > *:nth-child(n + 7),
      .fi.engs.on > *:nth-child(n + 7),
      .fi.eco-grid.on > *:nth-child(n + 7),
      .fi.partners.on > *:nth-child(n + 7),
      .fi.scen-grid.on > *:nth-child(n + 7),
      .fi.pains.on > *:nth-child(n + 7) {
        transition-delay: 400ms;
      }

      /* ── 6. 首屏控制台 ──────────────────────────────────────────
         原状：四个标签指向同一张图，switchMock() 换来换去还是那张，
         用户看到的是「闪一下」。改为单张实拍图 + 真实数据 HUD。 */
      .mock-stage {
        position: relative;
        overflow: hidden;
        background: #04090e;
        line-height: 0;
      }
      .mock-screenshot {
        width: 100%;
        display: block;
        position: relative;
        z-index: 1;
      }
      /* 开机扫过：只跑一次，模拟设备上电自检 */
      .mock-scan {
        position: absolute;
        inset-inline: 0;
        inset-block-start: 0;
        height: 38%;
        z-index: 3;
        pointer-events: none;
        background: linear-gradient(
          180deg,
          transparent,
          rgba(35, 187, 248, 0.13) 55%,
          rgba(35, 187, 248, 0.42) 92%,
          transparent
        );
        animation: sweepOnce 2.4s var(--ease-inout) 0.35s 1 both;
      }
      /* 数据 HUD：角标读数，数据全部取自本站真实口径
         （200+ 台 / 12 省 · 24 城见 #stats 区块与 llms.txt）。
         原先这里是四个假标签，全部指向同一张图，点谁都是「闪一下」。 */
      .mock-hud {
        display: flex;
        flex-wrap: wrap;
        gap: 1px;
        background: var(--hairline);
        border-top: 1px solid var(--border);
        backdrop-filter: blur(6px);
      }
      .hud-cell {
        flex: 1 1 30%;
        min-width: 108px;
        display: flex;
        align-items: baseline;
        gap: 0.35rem;
        padding: 0.5rem 0.75rem;
        background: rgba(4, 9, 14, 0.74);
        font-size: 0.7rem;
        color: var(--muted2);
        letter-spacing: 0.02em;
      }
      .hud-cell b {
        font-family: var(--font-data);
        font-variant-numeric: tabular-nums;
        font-size: 0.95rem;
        font-weight: 700;
        color: var(--alt);
        margin-left: auto;
      }
      .hud-live {
        margin-left: auto;
        display: inline-flex;
        align-items: center;
        gap: 0.35rem;
        font-style: normal;
        color: var(--green);
      }
      .hud-live::before {
        content: "";
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: currentColor;
        animation: blink 2s var(--ease-inout) infinite;
      }
      /* V2.0 版本标：回归标题栏流内布局。
         原来它是绝对定位 top:.8rem left:.9rem，正好压在三个窗口圆点上。 */
      .mock-version {
        position: static;
        margin-left: auto;
        border-radius: var(--r-xs);
        padding: 0.24rem 0.6rem;
        font-size: 0.64rem;
      }
      /* 底部能力轨：静态标签，不做假的可点击态 */
      .mock-rail {
        display: flex;
        flex-wrap: wrap;
        gap: 0.4rem;
        padding: 0.85rem 1rem;
        border-top: 1px solid var(--border);
        background: rgba(4, 9, 14, 0.6);
      }
      .mock-rail span {
        font-size: 0.72rem;
        color: var(--muted);
        border: 1px solid var(--border);
        border-radius: var(--r-full);
        padding: 0.22rem 0.72rem;
        letter-spacing: 0.02em;
      }
      .mock-title {
        font-family: var(--font-data);
        letter-spacing: 0.01em;
      }

      /* ── 7. 交互细节：选中、滚动条、焦点 ─────────────────────── */
      ::selection {
        background: rgba(35, 187, 248, 0.3);
        color: #fff;
      }
      :focus-visible {
        outline: 2px solid var(--blue2);
        outline-offset: 3px;
        border-radius: var(--r-xs);
      }
      @supports (scrollbar-width: thin) {
        html {
          scrollbar-width: thin;
          scrollbar-color: var(--border3) transparent;
        }
      }

      /* ── 8. 原生能力增强（各自独立探测，互不牵连）───────────── */

      /* 8.1 颜色派生：色阶一律从品牌色算，不再新增硬编码色值 */
      @supports (color: color-mix(in oklab, red, blue)) {
        :root {
          --tint-brand: color-mix(in oklab, var(--blue) 8%, transparent);
          --tint-brand-2: color-mix(in oklab, var(--blue) 16%, transparent);
          --tint-alt: color-mix(in oklab, var(--alt) 14%, transparent);
        }
        .sec-tag {
          background: var(--tint-brand);
          border-color: var(--tint-brand-2);
        }
        .case-loc,
        .eco-type,
        .tl2-tag,
        .fcs-report:not(.is-pending) {
          background: var(--tint-alt);
        }
      }

      /* 8.2 阅读进度：滚动驱动动画，零 JS，顶部一条走完即到底 */
      @supports (animation-timeline: scroll()) {
        body::before {
          content: "";
          position: fixed;
          inset-block-start: 0;
          inset-inline: 0;
          height: 2px;
          z-index: 1000;
          transform: scaleX(0);
          transform-origin: 0 50%;
          background: linear-gradient(90deg, var(--blue), var(--alt));
          animation: scrollGrow linear both;
          animation-timeline: scroll(root block);
          pointer-events: none;
        }
        @keyframes scrollGrow {
          to {
            transform: scaleX(1);
          }
        }
      }

      /* 8.3 容器查询：卡片按自身宽度换排，不依赖视口断点 */
      @supports (container-type: inline-size) {
        .cases,
        .modes,
        .hubs,
        .engs,
        .eco-grid,
        .partners,
        .scen-grid {
          container-type: inline-size;
        }
        @container (max-width: 720px) {
          .hub,
          .eng,
          .mode,
          .eco-card {
            padding: var(--sp-6);
          }
        }
      }

      /* ==================== FAQ 常见问题详解页（2026-09-15 新增） ==================== */
      /* /faq/ 与 /faq/<slug>/ 是同一条阅读链的两级：前者给一句话答案，后者给完整论证。
         所以这里刻意不引入任何新色相 / 新圆角 / 新阴影，全部复用既有令牌 ——
         它读起来必须是「同一套东西的加长版」，而不是另一个网站。
         另：站内此前没有任何 table 规则，而 6 篇长文里有 4 处表格，
         不补样式会直接裸奔（无边框、无内边距，深底上无法阅读）。 */

      /* 0. 页头元信息：字数 / 阅读时长 / 更新日期。
            .sub-hero p 是 (0,1,1) 的通用规则，这里必须用同样具体的复合选择器
            才压得住它的 1rem 字号，所以写成 .sub-hero p.qa-meta 而不是 .qa-meta。 */
      .qa-meta {
        font-family: var(--font-data);
        font-variant-numeric: tabular-nums;
        color: var(--muted2);
      }
      .sub-hero p.qa-meta {
        margin-top: 0.9rem;
        font-size: 0.8rem;
        line-height: 1.7;
        letter-spacing: 0.02em;
      }
      .qa-meta time {
        color: var(--muted);
      }

      /* 0.1 双栏骨架。正文列上限 760px（与 /faq/ 同一档），右侧挂一条吸附目录。
            只在够宽时开栏 —— 1100px 以下目录落到正文上方，用 order 把 DOM 里
            排在后面的它提到前面，这样移动端读到的第一块就是目录。 */
      .qa-shell {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
      }
      .qa-col {
        min-width: 0;
      }
      .qa-toc {
        order: -1;
        margin-bottom: 2.2rem;
      }
      @media (min-width: 1100px) {
        .qa-shell {
          grid-template-columns: minmax(0, 760px) 200px;
          gap: 3rem;
          justify-content: center;
        }
        .qa-toc {
          order: 0;
          margin-bottom: 0;
          position: sticky;
          top: 88px;
          align-self: start;
          border-left: 1px solid var(--hairline);
          padding-left: 1.2rem;
        }
      }

      /* 1100px 以下目录落到正文上方，给一张卡收住，免得和正文连成一片分不清 */
      @media (max-width: 1099px) {
        .qa-toc {
          padding: 1.1rem 1.3rem;
          background: var(--card2);
          border: 1px solid var(--hairline);
          border-radius: 14px;
        }
      }

      /* 目录：序号走 CSS 计数器（与首页 .sec-tag 的 01/02/03 同一套语言），
            所以列表项文字里不含数字，读屏也不会念成「零一 飙风把…」 */
      .qt-title {
        margin: 0 0 0.7rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        color: var(--blue2);
      }
      .qt-list {
        counter-reset: qt;
        margin: 0;
        padding: 0;
        list-style: none;
      }
      .qt-item {
        counter-increment: qt;
        display: flex;
        gap: 0.6rem;
        padding: 0.5rem 0;
        font-size: 0.82rem;
        line-height: 1.65;
        color: var(--muted);
        border-bottom: 1px solid var(--hairline);
        transition: color 0.2s ease;
      }
      .qt-item::before {
        content: counter(qt, decimal-leading-zero);
        flex: 0 0 auto;
        font-family: var(--font-data);
        font-size: 0.72rem;
        color: var(--blue2);
        opacity: 0.75;
      }
      .qt-list li:last-child .qt-item {
        border-bottom: 0;
      }
      .qt-item:hover {
        color: var(--text);
      }

      /* 1. 直接回答卡：AEO 锚点 —— 第一屏就给出一段可被整段引用的答案 */
      .qa-answer {
        position: relative;
        max-width: 760px;
        margin: 0 auto;
        padding: 1.9rem 2rem 1.8rem;
        background: linear-gradient(
          135deg,
          rgba(35, 187, 248, 0.09),
          rgba(104, 117, 246, 0.05)
        );
        border: 1px solid rgba(35, 187, 248, 0.25);
        border-radius: 16px;
        overflow: hidden;
      }
      /* 顶部横线自左向右画一次即停。用 transition 而非 animation：
         触发时机跟 .fi.on 走，与卡片淡入同时发生；reduced-motion 的
         transition-duration 兜底也能直接命中，不必额外写覆盖规则。 */
      .qa-answer::before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 3px;
        background: var(--grad-blue);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform 0.85s var(--ease-out);
      }
      .qa-answer.on::before {
        transform: scaleX(1);
      }
      .qa-label {
        margin: 0 0 0.75rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        color: var(--blue2);
      }
      .qa-lead {
        margin: 0;
        font-size: 1rem;
        line-height: 2.05;
        color: var(--text);
        text-wrap: pretty;
      }

      /* 2. 长文正文：度量收窄到 760px，与 /faq/ 同一档 */
      .qa-body {
        max-width: 760px;
        margin: 2.6rem auto 0;
        font-size: 0.95rem;
      }
      .qa-body h2 {
        position: relative;
        /* 目录跳转落点：导航是 64px 固定高度，不留这段偏移标题会被压在导航下面 */
        scroll-margin-top: 88px;
        margin: 2.4rem 0 0.9rem;
        font-size: 1.2rem;
        font-weight: 800;
        line-height: 1.5;
        color: var(--text);
      }
      .qa-body h2::before {
        content: "";
        display: block;
        width: 22px;
        height: 3px;
        margin-bottom: 0.9rem;
        border-radius: 2px;
        background: var(--grad-blue);
      }
      /* 小节自身的 # 链接：默认不可见但**始终占位**，所以悬停时标题不会左右跳。
            只在指针设备上出现 —— 触屏没有 hover，别让它变成点不到的假按钮。 */
      .qa-h2anchor {
        margin-left: 0.45em;
        font-family: var(--font-data);
        font-weight: 700;
        font-size: 0.9em;
        color: var(--blue2);
        opacity: 0;
        text-decoration: none;
        transition: opacity 0.2s ease;
      }
      .qa-body h2:hover .qa-h2anchor,
      .qa-h2anchor:focus-visible {
        opacity: 0.7;
      }
      @media (hover: none) {
        .qa-h2anchor {
          display: none;
        }
      }
      .qa-body > :first-child {
        margin-top: 0;
      }
      .qa-body p {
        margin: 0.8rem 0;
        line-height: 2;
        color: #cbd8e6;
        text-wrap: pretty;
      }
      .qa-body ul {
        margin: 0.9rem 0;
        padding-left: 1.2rem;
      }
      .qa-body li {
        margin: 0.55rem 0;
        line-height: 1.95;
        color: #cbd8e6;
        text-wrap: pretty;
      }
      .qa-body strong {
        font-weight: 700;
        color: var(--text);
      }

      /* 3. 表格：窄屏横向滚动，而不是改成卡片布局 ——
            改布局会丢掉 th 与 td 的对应关系，可访问性反而更差 */
      .qa-tablewrap {
        margin: 1.2rem 0 1.5rem;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        border: 1px solid var(--border);
        border-radius: 12px;
        /* 窄屏下这张表必然横向溢出（.qa-table 有 min-width），原先右侧被硬切、
           看不出还能往右滑。这里用 background-attachment 的 local/scroll 差值
           做「滚动阴影」：local 的两层是不透明盖片，随内容一起滚，滚到端点就把
           scroll 层的暗影盖住 —— 于是「能滑」和「滑到头了」都有视觉反馈，
           零 JS、零额外 DOM。 */
        background:
          linear-gradient(to right, var(--card) 30%, transparent) left center / 40px 100%
            no-repeat local,
          linear-gradient(to left, var(--card) 30%, transparent) right center / 40px 100%
            no-repeat local,
          radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0)) left
            center / 14px 100% no-repeat scroll,
          radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0)) right
            center / 14px 100% no-repeat scroll,
          var(--card);
      }
      .qa-table {
        width: 100%;
        min-width: 560px;
        border-collapse: collapse;
        font-size: 0.85rem;
        line-height: 1.7;
      }
      .qa-table th {
        padding: 0.75rem 1rem;
        text-align: left;
        font-weight: 700;
        color: var(--blue2);
        background: rgba(35, 187, 248, 0.07);
        border-bottom: 1px solid var(--border2);
        white-space: nowrap;
      }
      .qa-table td {
        padding: 0.75rem 1rem;
        vertical-align: top;
        color: #cbd8e6;
        border-bottom: 1px solid var(--hairline);
        text-wrap: pretty;
      }
      .qa-table td:first-child {
        font-weight: 600;
        color: var(--text);
      }
      .qa-table tbody tr:last-child td {
        border-bottom: 0;
      }
      .qa-table tbody tr:hover td {
        background: rgba(35, 187, 248, 0.04);
      }

      /* 4. 关键数据条：--alt（琥珀）是本站唯一的强调色，只给数字用，不做装饰。
            内容按页从 answers.json 的 figures 渲染（原先是模板里写死的一组公司级
            数字，6 篇详解页会全部显示同一组，讲算法的页面挂着「落地范围 7 省」）。 */
      .qa-figures {
        max-width: 760px;
        margin: 2.8rem auto 0;
        padding: 1.5rem 2rem 1.7rem;
        background: var(--card2);
        border: 1px solid var(--hairline);
        border-radius: 14px;
      }
      .qf-title {
        margin: 0 0 1.1rem;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        color: var(--blue2);
      }
      .qf-asof {
        margin: 1.1rem 0 0;
        padding-top: 0.9rem;
        border-top: 1px solid var(--hairline);
        font-size: 0.74rem;
        letter-spacing: 0.04em;
        color: var(--muted2);
      }
      .qf-list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 1.4rem 2rem;
        margin: 0;
      }
      .qf-cell dt {
        margin-bottom: 0.45rem;
        font-size: 0.78rem;
        color: var(--muted);
      }
      .qf-cell dd {
        margin: 0;
        font-size: 0.86rem;
        line-height: 1.5;
        color: var(--muted);
      }
      .qf-cell dd b {
        margin: 0 0.12rem;
        font-size: 1.5rem;
        font-weight: 800;
        color: var(--alt);
      }

      /* 5. 问题之间导航：把 6 篇详解页连成一张网（也是「无孤儿页」的保障） */
      .qa-nav {
        display: grid;
        /* auto-fit + 260px：两条时并排，首末篇只有一条时它自动占满整行 ——
           不必再塞一个隐藏占位去撑格子（那样会让内容缩在半边、另半边空着） */
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 0.8rem;
        max-width: 760px;
        margin: 2.4rem auto 0;
      }
      .qn-item {
        display: block;
        padding: 1rem 1.2rem;
        background: var(--card);
        border: 1px solid var(--border);
        border-radius: 12px;
        transition:
          border-color 0.2s ease,
          background 0.2s ease;
      }
      .qn-item:hover {
        border-color: var(--border3);
        background: var(--card-hover);
      }
      .qn-dir {
        display: block;
        margin-bottom: 0.4rem;
        font-size: 0.72rem;
        color: var(--muted2);
      }
      .qn-q {
        display: block;
        font-size: 0.85rem;
        font-weight: 600;
        line-height: 1.6;
        color: var(--text);
        transition: color 0.2s ease;
      }
      .qn-item:hover .qn-q {
        color: var(--blue2);
      }
      .qn-next {
        text-align: right;
      }
      /* 只有一条时（首篇 / 末篇）占满整行，再右对齐会像漏了左半边，改左对齐 */
      .qn-item:only-child {
        text-align: left;
      }

      /* 6. /faq/ 列表里的「查看详解」入口。
            必须挂在 .faq-a 之外：FAQ 的 JSON-LD acceptedAnswer.text 要与页面上
            可见的答案逐字一致，把链接塞进答案里就破坏了这条对齐。
            因此显隐跟随 details 的 [open] 状态，与 .faq-a 同步收放。 */
      details.faq-item .faq-detail-link {
        display: none;
      }
      details.faq-item[open] .faq-detail-link {
        display: inline-flex;
        align-items: center;
        gap: 0.3rem;
        margin: -0.5rem 1.4rem 1.2rem;
        font-size: 0.8rem;
        font-weight: 600;
        color: var(--blue2);
        border-bottom: 1px solid transparent;
        transition:
          border-color 0.2s ease,
          gap 0.2s ease;
      }
      details.faq-item[open] .faq-detail-link:hover {
        gap: 0.55rem;
        border-bottom-color: var(--border3);
      }

      @media (max-width: 640px) {
        .qa-answer {
          padding: 1.5rem 1.3rem 1.4rem;
          border-radius: 14px;
        }
        .qa-lead {
          font-size: 0.95rem;
        }
        .qa-body {
          margin-top: 2rem;
        }
        .qa-body h2 {
          margin-top: 2rem;
          font-size: 1.08rem;
        }
        .qa-figures {
          padding: 1.3rem 1.3rem 1.5rem;
        }
        .qf-list {
          grid-template-columns: 1fr;
          gap: 1.1rem;
        }
        .qa-nav {
          grid-template-columns: 1fr;
        }
        .qn-next {
          text-align: left;
        }
        .qa-toc {
          padding: 1rem 1.1rem;
        }
        .qt-item {
          font-size: 0.8rem;
        }
      }

      /* 7. 打印：长文被打印或存成 PDF 是真实场景（评标材料、政策参考）。
            打印态没有导航与动效，硬套深色底既费墨、对比度也不可控，整块切白底。
            .fi 那行是关键：入场动画把未进视口的元素压在 opacity:0，
            不覆盖的话打印出来会是半张白纸。 */
      @media print {
        nav,
        .mobile-menu,
        .qa-toc,
        .qa-nav,
        .cta-band,
        footer,
        #cvs {
          display: none !important;
        }
        .fi {
          opacity: 1 !important;
          transform: none !important;
        }
        body {
          background: #fff !important;
          color: #111 !important;
        }
        .sub-hero {
          padding: 0 0 1rem !important;
          background: none !important;
          border-bottom: 1px solid #ddd !important;
        }
        .qa-answer,
        .qa-figures,
        .qa-tablewrap {
          background: none !important;
          border: 1px solid #ddd !important;
        }
        .qa-answer::before {
          display: none !important;
        }
        .qa-shell {
          display: block !important;
        }
        .qa-answer,
        .qa-body,
        .qa-body h2,
        .qa-body p,
        .qa-body li,
        .qa-figures,
        .qa-lead,
        .qa-meta,
        .qa-table,
        .qf-cell dd b {
          max-width: none !important;
          color: #111 !important;
        }
        .qa-tablewrap {
          overflow: visible !important;
        }
        .qa-table {
          min-width: 0 !important;
        }
      }

      /* ── 9. 动效兜底 ──────────────────────────────────────────────
         原状：全文仅 3 处 reduced-motion，且一个都没覆盖到那 6 个
         永久循环动画。这里统一收口：所有动画与过渡归零，只保留最终态。 */
      @media (prefers-reduced-motion: reduce) {
        *,
        *::before,
        *::after {
          animation-duration: 0.001ms !important;
          animation-iteration-count: 1 !important;
          transition-duration: 0.001ms !important;
          scroll-behavior: auto !important;
        }
        .glow-pulse,
        .mock-scan,
        .hud-live::before {
          animation: none !important;
        }
        .mock-scan {
          display: none;
        }
        html {
          scroll-behavior: auto;
        }
        /* 入场元素直接呈现，不依赖滚动触发 */
        .fi,
        .fi:is(.cases, .modes, .hubs, .engs, .eco-grid, .partners, .scen-grid, .pains)
          > * {
          opacity: 1 !important;
          transform: none !important;
        }
      }
