/* 新首页设计稿样式（司咏琪），由 tools/import-home-design.mjs 从设计稿原样导入，只改了素材路径。
   构建时由 lib/scope-css.js 限定在 .nh 范围内（新首页、全站顶栏与页脚），不影响详情页。 */
:where(.nh-home, .nh){
  --white:#fff;--canvas:#fff;--card:#f5f6f9;--ink:#212121;--primary:#17171c;--blue:#2950ff;--navy:#0a1d39;
  --stone:var(--card);--blue-tint:#eef1ff;--pale-blue:var(--card);--line:#d9d9dd;
  --midnight:#0b1424;--surface-cool:var(--card);--surface-fog:var(--card);
  --shadow-card:none;--shadow-control:none;
  --muted:#616161;--accent:#2950ff;--focus:#2950ff;
  --body:'PingFang SC','PingFang TC','Hiragino Sans GB','Microsoft YaHei','Noto Sans CJK SC',-apple-system,BlinkMacSystemFont,sans-serif;
  --display:var(--body);
  --mono:var(--body);
  --ease:cubic-bezier(.22,1,.36,1);--enter:cubic-bezier(.16,1,.3,1);
  --resolve:cubic-bezier(.33,1,.68,1);--io:cubic-bezier(.65,0,.35,1);
}
/* 统一尺寸规则（2026-10-28）：模块间距、字号、圆角只从这里取值。
   断点：桌面 ≥1024 / 平板 768–1023 / 手机 ≤767。首屏大标题与顶部导航不在规则内。 */
:where(.nh-home, .nh){
  --space-module:80px;--space-head:48px;
  --fs-display:64px;--fs-h2:48px;--fs-h3:24px;--fs-body:16px;--fs-aux:14px;--fs-note:12px;
  --radius-s:8px;--radius-m:12px;--radius-l:16px;--radius-pill:999px;
}
@media(max-width:1023px){:where(.nh-home, .nh){--space-module:64px;--fs-display:56px;--fs-h2:40px}}
@media(max-width:767px){:where(.nh-home, .nh){--space-module:56px;--space-head:32px;--fs-display:40px;--fs-h2:32px;--fs-h3:20px;--fs-body:14px}}
*:where(.nh, .nh *, .nh-home, .nh-home > body){box-sizing:border-box}
html:where(.nh, .nh *, .nh-home, .nh-home > body){scroll-behavior:smooth;scroll-padding-top:112px}
/* 机主 10-29：底部回弹露白边 → 根背景跟着位置走：上半页白，下半页换成页脚深蓝（body 自己保留白底，正文不受影响） */
html:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--canvas)}html.overscroll-dark:where(.nh, .nh *, .nh-home, .nh-home > body){background:#0E1A2E}
/* 机主 10-30：页脚底边落在半像素上时，最后一个物理像素露出白底（回弹时是一条细白线）→ 页面底色最底下 4px 铺成页脚深蓝，藏在页脚下面看不见 */
html body:where(.nh, .nh *, .nh-home, .nh-home > body){background:linear-gradient(#0E1A2E,#0E1A2E) 0 100%/100% 4px no-repeat,var(--canvas)}
body:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;color:var(--ink);background:var(--canvas);font:500 16px/1.6 var(--body);-webkit-font-smoothing:antialiased}
body.modal-open:where(.nh, .nh *, .nh-home, .nh-home > body),body.menu-open:where(.nh, .nh *, .nh-home, .nh-home > body){overflow:hidden}
button:where(.nh, .nh *, .nh-home, .nh-home > body),input:where(.nh, .nh *, .nh-home, .nh-home > body){font:inherit}button:where(.nh, .nh *, .nh-home, .nh-home > body),a:where(.nh, .nh *, .nh-home, .nh-home > body){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:where(.nh, .nh *, .nh-home, .nh-home > body){color:inherit;border:0;background:none;cursor:pointer}a:where(.nh, .nh *, .nh-home, .nh-home > body){text-decoration:none;color:inherit}
h1:where(.nh, .nh *, .nh-home, .nh-home > body),h2:where(.nh, .nh *, .nh-home, .nh-home > body),h3:where(.nh, .nh *, .nh-home, .nh-home > body),p:where(.nh, .nh *, .nh-home, .nh-home > body),figure:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0}h1:where(.nh, .nh *, .nh-home, .nh-home > body),h2:where(.nh, .nh *, .nh-home, .nh-home > body),h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:600;text-wrap:balance}p:where(.nh, .nh *, .nh-home, .nh-home > body){text-wrap:pretty}
h1:where(.nh, .nh *, .nh-home, .nh-home > body),h2:where(.nh, .nh *, .nh-home, .nh-home > body),.display:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--display)}img:where(.nh, .nh *, .nh-home, .nh-home > body),svg:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;max-width:100%}img:where(.nh, .nh *, .nh-home, .nh-home > body){height:auto}
ul:where(.nh, .nh *, .nh-home, .nh-home > body),ol:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;padding:0;list-style:none}[hidden]:where(.nh, .nh *, .nh-home, .nh-home > body){display:none!important}
button:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body),a:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body),summary:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body),[tabindex]:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline:2px solid var(--focus);outline-offset:5px}
:where(.nh, .nh *, .nh-home, .nh-home > body)::selection{background:var(--blue-tint);color:var(--blue)}
.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){width:min(1200px,calc(100% - 96px));margin-inline:auto}.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body),.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--body);font-weight:500}.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.5;letter-spacing:.04em}
.section-top:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px}
.section-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--muted)}.section-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}
h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25;letter-spacing:-1.2px}
.section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:var(--space-head)}
.section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);color:var(--muted);line-height:1.7;max-width:380px;margin-bottom:4px}
.button:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:12px 24px;border-radius:12px;background:var(--primary);color:var(--white);font-size:14px;font-weight:600;line-height:1.7;transition:transform .4s var(--ease),background .3s var(--ease)}
.button span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px;line-height:1}.button:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.98)}.button-white:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--white);color:var(--primary)}
.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 8px;font-size:var(--fs-aux);line-height:1.6;border-bottom:1px solid currentColor}
.text-link>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}.text-link.light:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--white)}
.skip-link:where(.nh, .nh *, .nh-home, .nh-home > body){position:fixed;z-index:200;left:16px;top:12px;background:var(--primary);color:white;padding:12px 24px;transform:translateY(-180%);border-radius:4px}.skip-link:focus:where(.nh, .nh *, .nh-home, .nh-home > body){transform:none}
.source-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.7;color:var(--muted);margin-top:24px}

/* The opening screen intentionally contains only a short typographic statement. */
.header:where(.nh, .nh *, .nh-home, .nh-home > body){position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid #f2f2f2;backdrop-filter:blur(16px)}
.nav-wrap:where(.nh, .nh *, .nh-home, .nh-home > body){height:88px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:10px;flex-shrink:0}.brand>img:where(.nh, .nh *, .nh-home, .nh-home > body){height:31px;width:24px;object-fit:contain}
.brand>span:not(.brand-en):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:25px;font-weight:600;letter-spacing:.5px}.brand-en:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--display);font-size:13px;letter-spacing:1.4px;margin-left:4px;padding-left:12px;border-left:1px solid var(--line)}
.nav-cta:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:42px;padding:9px 20px;font-size:13px;gap:20px}.menu-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.hero:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-height:calc(100svh - 88px);display:flex;justify-content:center;align-items:center;padding-block:72px 104px}
.hero-inner:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:center;max-width:680px;width:100%;margin-inline:auto}.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--body);font-size:14px;letter-spacing:.12em;margin-bottom:32px;color:var(--blue)}
.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:96px;line-height:1.16;letter-spacing:-2px;font-weight:600;text-align:center;width:100%;margin-inline:auto}.hero-line:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}.hero-end:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-block;position:relative}.hero-punctuation:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:100%;top:0}
.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px;line-height:1.7;color:var(--muted);margin-top:32px}
.hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px}.hero-scroll:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;font-size:11px;color:var(--muted)}
.hero-scroll>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px}.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body),.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body),.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body),.hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){animation:hero-appear .8s var(--ease) both}.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){animation-delay:.06s}.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){animation-delay:.14s}.hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){animation-delay:.22s}
@keyframes hero-appear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* Deep enterprise blue carries the first visual, below the fold. */
.intelligence:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:56px}.intelligence-band:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:.95fr 1.15fr;align-items:center;gap:40px;border-radius:var(--radius-l);background:var(--blue);color:var(--white);padding:64px 48px;overflow:hidden;isolation:isolate}
.intelligence-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--body);font-size:var(--fs-note);color:#bbcff0;letter-spacing:.06em}.intelligence-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.35;letter-spacing:-1px;margin-top:24px}
.intelligence-copy>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);color:#d5e2f7;line-height:1.9;margin-top:24px;max-width:370px}.intelligence-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px;font-size:var(--fs-aux)}
.intelligence-visual:where(.nh, .nh *, .nh-home, .nh-home > body){min-width:0;overflow:hidden;padding:8px 0}.visual-label:where(.nh, .nh *, .nh-home, .nh-home > body),.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;gap:16px;align-items:center}.visual-label:where(.nh, .nh *, .nh-home, .nh-home > body){color:#bbcff0}.visual-label>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.visual-label>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);flex-shrink:0}
.ownership-flow:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;margin-block:24px}.flow-line:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#789acb;stroke-width:1;opacity:.65}.flow-source rect:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#1c4885;stroke:#789acb;stroke-width:.7}.flow-source text:where(.nh, .nh *, .nh-home, .nh-home > body){font:14px var(--body);fill:#eff5ff;text-anchor:middle}
.flow-output:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue-tint)}.flow-output-echo:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#c3d8ff;opacity:0}.flow-output-title:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);font:20px var(--body);text-anchor:middle}.flow-output-note:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#4b6690;font:12px var(--body);text-anchor:middle}.flow-process:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue)}.flow-process-label:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#d4e4ff;font:12px var(--body);text-anchor:middle}.flow-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#b8d3ff;opacity:0;filter:drop-shadow(0 0 4px rgba(184,211,255,.35))}
.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:16px;border-top:1px solid #476898;color:#bbcff0;font-size:var(--fs-note)}.visual-footer>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.principles:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:48px}.principles>div:where(.nh, .nh *, .nh-home, .nh-home > body){border-top:1px solid var(--line);padding-top:24px}.principle-mark:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);color:var(--blue);line-height:1.2;display:block;margin-bottom:24px}.principles h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.3;margin-bottom:8px}.principles p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;color:var(--muted);max-width:290px}

/* Four self-contained illustrations. Each one tells a single, bounded story. */
.products:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:var(--space-module)}.product-grid:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1fr;gap:24px}.product-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px;border-radius:var(--radius-l);overflow:hidden;isolation:isolate;background:var(--stone)}
.card-nac:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue-tint)}.card-gateway:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--pale-blue)}.card-weaver:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f5f4f0}
.product-card-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.product-card-heading>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);letter-spacing:.025em}.round-link:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;display:grid;place-items:center;border:1px solid #b9b9ba;border-radius:var(--radius-m);font-size:var(--fs-h3);flex-shrink:0}
.product-card h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--display);font-size:var(--fs-h2);line-height:1.1;letter-spacing:-1px}.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);margin-top:16px;line-height:1.5}.product-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;color:var(--muted);margin-top:24px;min-height:51px;max-width:440px}.product-card>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);margin-top:24px}
.product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:218px;border-radius:var(--radius-s);background:var(--white);margin-top:32px;padding:24px;overflow:hidden;position:relative;isolation:isolate}
.demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;font-size:var(--fs-note);line-height:1.4;color:var(--ink);margin-bottom:16px}.demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);margin-left:auto}.demo-symbol:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1;color:var(--blue)}.demo-top>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.task-prompt:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f5f4f0;padding:16px;border-radius:var(--radius-s);font-size:var(--fs-note);min-height:43px;display:flex;align-items:center;white-space:nowrap}.typing-caret:where(.nh, .nh *, .nh-home, .nh-home > body){width:1px;height:14px;display:inline-block;background:var(--blue);margin-left:3px;opacity:0;flex-shrink:0}
.task-result:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;margin-top:16px;padding:16px 0 0}.task-result>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:4px}.task-result strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--display);font-size:var(--fs-note);font-weight:600}.task-result>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}.document-symbol:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center;height:36px;width:32px;border-radius:var(--radius-s);background:var(--blue-tint);color:var(--accent);flex-shrink:0}.task-check:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);margin-left:auto;font-size:var(--fs-body)}.task-knowledge:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;margin-top:16px;font-size:var(--fs-note);color:var(--muted)}.task-knowledge>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);font-size:var(--fs-body)}
.runtime-visual:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);color:var(--white)}.runtime-visual .demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){color:#d0ddf4}.runtime-visual .demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){color:#aebedb}.runtime-stages:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.runtime-node:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;font-size:var(--fs-note);line-height:1.4}.runtime-icon:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;font-size:var(--fs-h3);line-height:1.5;color:#e2ecff;width:44px;text-align:center}.runtime-glow:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;top:0;left:50%;transform:translateX(-50%);width:44px;height:36px;border-radius:var(--radius-s);background:#365b92;opacity:0}.runtime-track:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;height:22px;margin-block:8px}.runtime-track>path:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#526d97;stroke-width:1}.runtime-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#a9caff;opacity:0}.runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;gap:8px;color:#aebedb;font-size:var(--fs-note);padding-top:8px;border-top:1px solid #3b4c68}
.gateway-visual:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}.route-list:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}.route-row:where(.nh, .nh *, .nh-home, .nh-home > body){height:39px;display:flex;align-items:center;gap:8px;position:relative;font-size:var(--fs-note);padding-inline:8px}.route-marker:where(.nh, .nh *, .nh-home, .nh-home > body){height:39px;position:absolute;left:0;right:0;top:0;background:#eef1ff;border-radius:var(--radius-s);z-index:-1}.route-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:21px;height:21px;display:grid;place-items:center;border:1px solid #d5dbe7;border-radius:var(--radius-s);font:var(--fs-note) var(--display)}.route-category:where(.nh, .nh *, .nh-home, .nh-home > body){margin-left:auto;color:var(--muted);font-size:var(--fs-note)}.gateway-footer:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);display:flex;align-items:center;gap:8px;margin-top:8px}.small-dot:where(.nh, .nh *, .nh-home, .nh-home > body){width:5px;height:5px;background:var(--blue);border-radius:var(--radius-pill)}
.training-visual:where(.nh, .nh *, .nh-home, .nh-home > body){background:#fdfdfc}.training-chart:where(.nh, .nh *, .nh-home, .nh-home > body){height:115px;width:100%;margin-top:-2px}.chart-grid:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#dfe7f5;stroke-width:1;stroke-dasharray:3 4}.training-curve:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:var(--blue);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.training-marker:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);stroke:#eef1ff;stroke-width:3}.training-steps:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;font-size:var(--fs-note);line-height:1.5;color:var(--muted);margin-top:4px}.training-steps>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}

/* A quiet statement sits between the product system and its evidence. */
.thesis:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:104px;text-align:center}.thesis>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);margin-bottom:32px}.thesis h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display);line-height:1.25;letter-spacing:-2px}.thesis>p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.8;color:var(--muted);margin-top:32px}
.case-section:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue-tint)}.case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;gap:8px;margin-bottom:32px;flex-wrap:wrap}.case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){border:1px solid #b9c9e5;border-radius:var(--radius-m);font-size:var(--fs-aux);padding:8px 24px;min-height:44px}.case-tabs>button[aria-selected=true]:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);color:var(--white);border-color:var(--primary)}
.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;background:var(--white);padding:48px;border-radius:var(--radius-l);overflow:hidden;isolation:isolate}.case-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);font-size:var(--fs-note)}.case-copy h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;letter-spacing:-.5px;margin-top:24px}.case-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);color:var(--muted);line-height:1.8;max-width:390px;min-height:76px;margin-top:24px}.case-context:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;font-size:var(--fs-note);color:var(--muted);margin-top:24px}.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px;background:#f4f6fc;border-radius:var(--radius-s);overflow:hidden}.case-chart-top:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:var(--fs-aux);margin-bottom:24px}.case-chart-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}.evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px;border-radius:var(--radius-s);position:relative}.evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;inset:0;border:1px solid #b4c9ed;background:rgba(225,236,255,.5);border-radius:var(--radius-s);opacity:var(--inspected,0);pointer-events:none}.evidence-row>div:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative}.evidence-row>div:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:var(--fs-note);margin-bottom:8px}.evidence-row strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);font-weight:600;letter-spacing:-.6px}.bar-track:where(.nh, .nh *, .nh-home, .nh-home > body){background:#e2e8f3;height:9px;border-radius:var(--radius-s);overflow:hidden}.data-bar:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:var(--bar);height:100%;transform-origin:left center;background:#a5b6d2}.data-bar.after:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue)}.case-metrics:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid #dce4f2;margin-top:24px;padding-top:24px}.case-metrics>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px}.case-metrics strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);font-weight:600;line-height:1.1;letter-spacing:-1px}.case-metrics strong>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);margin-left:4px}.case-metrics>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);line-height:1.7}
.research-list:where(.nh, .nh *, .nh-home, .nh-home > body){border-top:1px solid var(--line)}.research-list>a:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 140px 110px 24px;gap:32px;align-items:center;border-bottom:1px solid var(--line);padding:32px 0}.research-title:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px}.research-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);letter-spacing:-.8px;line-height:1.3}.research-title>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);color:var(--muted)}.topic-chip:where(.nh, .nh *, .nh-home, .nh-home > body){border:1px solid #b8cdf0;color:#2950ff;border-radius:var(--radius-s);display:block;width:max-content;font-size:var(--fs-note);padding:8px 16px;line-height:1.5}.research-date:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}.research-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}
.solutions:where(.nh, .nh *, .nh-home, .nh-home > body){border-top:1px solid var(--line)}.solutions-layout:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1fr;gap:80px}.solutions-layout h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.35}.solutions-layout>div>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.8;color:var(--muted);margin-top:24px}.solution-list:where(.nh, .nh *, .nh-home, .nh-home > body){border-top:1px solid var(--line)}.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:24px;width:100%;padding:24px 0;text-align:left;border-bottom:1px solid var(--line)}.solution-list>button>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}.solution-list>button>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin-left:auto}.solution-list h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin-bottom:8px}.solution-list p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}
.about:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding-top:32px}.about-photo:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;overflow:hidden;border-radius:var(--radius-l);aspect-ratio:1.1;background:var(--stone)}.about-photo>img:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;height:100%;object-fit:cover}.about-photo>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;bottom:24px;left:24px;color:var(--white);font-size:var(--fs-note);text-shadow:0 1px 6px rgba(0,0,0,.7)}.about-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--blue);margin-bottom:24px}.about-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.35}.about-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);color:var(--muted);line-height:1.9;margin-top:24px}.about-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;font-size:var(--fs-aux)}.about-meta:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;font-size:var(--fs-note);color:var(--muted);margin-top:32px}
.pilot-steps:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,1fr);gap:48px}.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){border-top:1px solid var(--line);padding-top:24px}.pilot-steps>li>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--blue);display:block;margin-bottom:32px}.pilot-steps h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin-bottom:16px}.pilot-steps p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;color:var(--muted);max-width:310px}
.faq:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;border-top:1px solid var(--line)}.faq>div>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);margin-bottom:24px}.faq h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.faq-list:where(.nh, .nh *, .nh-home, .nh-home > body){border-top:1px solid var(--line)}.faq-list>details:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:24px;border-bottom:1px solid var(--line)}.faq-list summary:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:var(--fs-body);list-style:none;cursor:pointer}.faq-list summary:where(.nh, .nh *, .nh-home, .nh-home > body)::-webkit-details-marker{display:none}.faq-list summary>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1;font-weight:300;transition:transform .3s var(--ease)}.faq-list details[open] summary>span:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(45deg)}.faq-list details>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.9;color:var(--muted);padding-top:24px;padding-right:32px}
dialog:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;color:var(--ink);background:white;border:1px solid var(--line);border-radius:var(--radius-l);width:min(740px,calc(100% - 40px));max-height:85dvh;overscroll-behavior:contain}dialog:where(.nh, .nh *, .nh-home, .nh-home > body)::backdrop{background:rgba(10,29,57,.45);backdrop-filter:blur(5px)}.dialog-top:where(.nh, .nh *, .nh-home, .nh-home > body){position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:24px;background:white;padding:16px 32px;border-bottom:1px solid var(--line);z-index:1}.dialog-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}.dialog-close:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;font-size:var(--fs-h3);display:grid;place-items:center;border-radius:var(--radius-pill)}.dialog-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:40px}.dialog-body h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);margin-bottom:24px}.dialog-body p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.9;color:var(--muted);margin-bottom:16px}.dialog-body p:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);color:var(--ink)}.dialog-body>.button:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px}.dialog-body>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;width:max-content;font-size:var(--fs-note);color:var(--muted);margin-top:24px}

/* CSS entrances; the single JS clock handles only the illustrations' stories. */
.motion-enabled .motion-card:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transform:translateY(24px) scale(.985);filter:blur(6px);transition:transform .9s var(--enter),opacity .6s var(--resolve),filter .7s var(--resolve);transition-delay:var(--delay,0ms)}
.motion-enabled .motion-card.motion-in:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1;transform:none;filter:blur(0)}
.motion-enabled .product-card .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transform:translateY(10px);filter:blur(4px);transition:transform 1.05s var(--enter),opacity .75s var(--resolve),filter .75s var(--resolve);transition-delay:calc(var(--delay,0ms) + 150ms)}
.motion-enabled .product-card.motion-in .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1;transform:none;filter:blur(0)}
.motion-paused .motion-card:where(.nh, .nh *, .nh-home, .nh-home > body),.motion-paused .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1!important;transform:none!important;filter:none!important}
.motion-paused .data-bar:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scaleX(1)!important}
@media(hover:hover){.button:hover:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateY(-2px)}.button:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.98)}.text-link:hover:where(.nh, .nh *, .nh-home, .nh-home > body),.research-list>a:hover .research-name:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}.round-link:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--white)}.research-list>a:hover .research-arrow:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button:hover>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translate(3px,-3px)}.research-arrow:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){transition:transform .4s var(--ease)}.dialog-close:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--stone)}.text-link.light:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue-tint)}}
@media(min-width:1440px){.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:96px}.hero:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:80px 112px}}
@media(max-width:1100px){.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){width:calc(100% - 64px)}.brand-en:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}.intelligence-band:where(.nh, .nh *, .nh-home, .nh-home > body){padding:48px 32px;gap:32px}.intelligence-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px}.intelligence-copy>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:13px}.visual-label>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.visual-label>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:9px}.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.visual-footer>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.principles:where(.nh, .nh *, .nh-home, .nh-home > body){gap:32px}.product-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}.product-card h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px}.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px}.product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px}.demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.route-category:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px;gap:32px}.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:20px}.case-chart-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.case-metrics>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:9px}.solutions-layout:where(.nh, .nh *, .nh-home, .nh-home > body){gap:48px}.solutions-layout h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px}.about:where(.nh, .nh *, .nh-home, .nh-home > body){gap:40px}.about-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px}.faq:where(.nh, .nh *, .nh-home, .nh-home > body){gap:48px}.faq h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px}.footer-top:where(.nh, .nh *, .nh-home, .nh-home > body){gap:48px}.footer-bottom:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:10px}.footer-bottom>div:where(.nh, .nh *, .nh-home, .nh-home > body){gap:20px}.footer-bottom button:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:10px}}
@media(max-width:767px){
  html:where(.nh, .nh *, .nh-home, .nh-home > body){scroll-padding-top:96px}.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){width:calc(100% - 40px)}.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:56px}.nav-wrap:where(.nh, .nh *, .nh-home, .nh-home > body){height:76px;gap:20px}.brand>img:where(.nh, .nh *, .nh-home, .nh-home > body){width:21px;height:27px}.brand>span:not(.brand-en):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:23px}.brand-en:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline;font-size:11px;padding-left:10px;margin-left:0}.nav-cta:where(.nh, .nh *, .nh-home, .nh-home > body){margin-left:auto;min-height:40px;padding:8px 16px;font-size:12px;gap:12px}.nav-cta>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:17px}
  .menu-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;justify-content:center;gap:6px;width:28px;height:44px;padding:3px}.menu-icon:where(.nh, .nh *, .nh-home, .nh-home > body){overflow:visible}.menu-icon path:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:currentColor;stroke-width:1.7;stroke-linecap:round;transform-origin:12px 12px;transition:transform .5s var(--ease)}.menu-toggle[aria-expanded=true] .menu-icon path:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(45deg) translateY(4px)}.menu-toggle[aria-expanded=true] .menu-icon path:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(-45deg) translateY(-4px)}
  .hero:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:calc(100svh - 76px);padding-block:64px 104px}.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:60px;line-height:1.2;letter-spacing:-1px}.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px;letter-spacing:.12em;margin-bottom:28px}.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px;line-height:1.8;margin-top:28px}.hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:28px}.hero-scroll:where(.nh, .nh *, .nh-home, .nh-home > body){bottom:28px;font-size:10px;gap:12px}.hero-scroll>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px}
  .section-top:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:24px;gap:16px}.section-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);letter-spacing:.01em}.section-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);white-space:nowrap}h2:where(.nh, .nh *, .nh-home, .nh-home > body),.section-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.35;letter-spacing:-.8px}.section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin-bottom:var(--space-head)}.section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);margin-top:24px;line-height:1.7}.section-heading>p>br:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
  .intelligence:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:32px}.intelligence-band:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px;padding:32px 24px;border-radius:var(--radius-l)}.intelligence-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.intelligence-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.4;margin-top:16px}.intelligence-copy>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;margin-top:16px;max-width:100%}.intelligence-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:24px}.intelligence-visual:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:0}.visual-label>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.visual-label>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.ownership-flow:where(.nh, .nh *, .nh-home, .nh-home > body){margin-block:16px}.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px;padding-top:16px}.visual-footer>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .principles:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:24px;margin-top:32px}.principles>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:24px;display:grid;grid-template-columns:32px 1fr;gap:8px 16px}.principle-mark:where(.nh, .nh *, .nh-home, .nh-home > body){grid-row:1/3;font-size:var(--fs-h3);margin-bottom:0}.principles h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin-bottom:0}.principles p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;max-width:100%;grid-column:2}
  .product-grid:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:16px}.product-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px;border-radius:var(--radius-l)}.product-card-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:16px}.product-card-heading>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.product-card h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.5;margin-top:8px}.round-link:where(.nh, .nh *, .nh-home, .nh-home > body){width:36px;height:36px;font-size:var(--fs-h3)}.product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:214px;padding:16px;margin-top:24px}.product-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);min-height:0;margin-top:16px}.product-card>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:16px}.demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-bottom:16px}.demo-top>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.task-prompt:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px;font-size:var(--fs-note)}.task-result:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}.task-result strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.task-result>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.task-knowledge:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:16px}.runtime-stages:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px;margin-top:24px}.runtime-node:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.route-row:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px;padding-inline:8px}.route-category:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.route-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:19px;height:19px}.gateway-footer:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.training-steps:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.training-chart:where(.nh, .nh *, .nh-home, .nh-home > body){height:114px}
  .thesis:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:72px}.thesis>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-bottom:24px}.thesis h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display);line-height:1.35;letter-spacing:-1.2px}.thesis>p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.8;margin-top:24px}.case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px;margin-bottom:24px}.case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);min-height:42px;padding:8px 16px}.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px;padding:32px 24px;border-radius:var(--radius-l)}.case-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.case-copy h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);margin-top:16px;line-height:1.4}.case-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);min-height:0;margin-top:16px;max-width:100%}.case-context:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:16px}.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px}.case-chart-top:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px;margin-bottom:16px}.case-chart-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);letter-spacing:0}.evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 4px}.evidence-row>div:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px}.evidence-row strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}.case-metrics:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px;padding-top:24px;margin-top:16px}.case-metrics strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.case-metrics strong>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body)}.case-metrics>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.7}.source-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:16px;line-height:1.8}
  .research-list>a:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr auto;gap:16px;padding-block:24px}.research-title:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1/-1;padding-right:32px;gap:8px}.research-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.research-title>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux)}.topic-chip:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);padding:8px 8px;grid-column:1;grid-row:2}.research-date:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);grid-column:2;grid-row:2;margin-right:32px}.research-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:1;font-size:var(--fs-h3)}
  .solutions-layout:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px}.solutions-layout h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.solutions-layout>div>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);margin-top:16px;line-height:1.8}.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px;padding-block:24px}.solution-list>button>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.solution-list h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}.solution-list p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.7}.solution-list>button>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);flex-shrink:0}
  .about:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px;padding-top:0}.about-photo:where(.nh, .nh *, .nh-home, .nh-home > body){aspect-ratio:1.25}.about-photo>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);left:20px;bottom:20px}.about-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-bottom:16px}.about-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.35}.about-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.9;margin-top:16px}.about-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:24px}.about-meta:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:24px}
  .pilot-steps:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:24px}.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:24px;display:grid;grid-template-columns:32px 1fr;gap:8px 16px}.pilot-steps>li>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin:3px 0 0;grid-row:1/3}.pilot-steps h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin-bottom:0}.pilot-steps p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;max-width:100%;grid-column:2}.faq:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px}.faq>div>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-bottom:16px}.faq h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.faq-list>details:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:24px}.faq-list summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);gap:16px}.faq-list summary>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);flex-shrink:0}.faq-list details>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.9;padding-right:0;padding-top:24px}
  .dialog-top:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 24px}.dialog-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}.dialog-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px 24px 32px}.dialog-body h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.dialog-body p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux)}.dialog-body p:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body)}.dialog-body>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
}
@media(max-width:359px){.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){width:calc(100% - 32px)}.brand-en:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:48px;letter-spacing:-.8px}.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:13px}.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px}.nav-wrap:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}.nav-cta:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px;padding-inline:14px}.product-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:20px}.product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){padding:12px}.product-card-heading>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px}.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 20px}.case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){gap:6px}.case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:12px;font-size:10px}.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:14px}.case-metrics:where(.nh, .nh *, .nh-home, .nh-home > body){gap:12px}.case-metrics>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.section-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:8px}.section-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:9px}.intelligence-band:where(.nh, .nh *, .nh-home, .nh-home > body){padding:28px 20px}.visual-footer>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:6px}.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:7px}}
@media(prefers-reduced-motion:reduce){html:where(.nh, .nh *, .nh-home, .nh-home > body){scroll-behavior:auto}*:where(.nh, .nh *, .nh-home, .nh-home > body),*:where(.nh, .nh *, .nh-home, .nh-home > body):before,*:where(.nh, .nh *, .nh-home, .nh-home > body):after{animation:none!important;transition:none!important}.motion-enabled .motion-card:where(.nh, .nh *, .nh-home, .nh-home > body),.motion-enabled .product-card .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1!important;transform:none!important;filter:none!important}.motion-enabled .data-bar:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scaleX(1)!important}}

@media(max-width:767px){.flow-source text:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:22px}.flow-output-title:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:26px}.flow-output-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px}.flow-process-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px}}

/* Figma assets: original 16px SVGs, rendered as masks to inherit the UI color. */
.ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-block;vertical-align:middle;flex:0 0 20px;width:20px;height:20px;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat;pointer-events:none}
.icon-close:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(45deg)}
.button:where(.nh, .nh *, .nh-home, .nh-home > body){border-radius:12px;gap:16px}
.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:680px;margin-inline:auto;text-align:center}
.brand>img:where(.nh, .nh *, .nh-home, .nh-home > body),.footer .brand img:where(.nh, .nh *, .nh-home, .nh-home > body){filter:none}
.principle-mark:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-m);background:var(--blue-tint);color:var(--accent)}
.principle-mark .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:24px;height:24px}
.runtime-icon:where(.nh, .nh *, .nh-home, .nh-home > body){height:36px;display:grid;place-items:center}
.runtime-icon .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:24px;height:24px}
.route-icon .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:16px;height:16px;flex-basis:16px}
.task-check:where(.nh, .nh *, .nh-home, .nh-home > body),.demo-symbol:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center}
.task-knowledge .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body),.training-steps .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:16px;height:16px;flex-basis:16px}
.training-steps>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:4px}
.research-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center}
.research-arrow .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:24px;height:24px}
.dialog-close:where(.nh, .nh *, .nh-home, .nh-home > body){border-radius:var(--radius-m)}
@media(max-width:767px){.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:60px}.principle-mark:where(.nh, .nh *, .nh-home, .nh-home > body){width:32px;height:32px;border-radius:8px}.principle-mark .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:20px;height:20px}.menu-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;width:24px}.nav-cta .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:16px;height:16px;flex-basis:16px}.hero-scroll .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:16px;height:16px;flex-basis:16px}}
@media(max-width:359px){.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:48px}}

/* Surfaces and space carry the hierarchy; outlines are reserved for focus. */
.header:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;box-shadow:none}
.brand-en:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding-left:4px}
.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding-bottom:0}
.intelligence-band:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--midnight);box-shadow:none}
.intelligence-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body),.visual-label:where(.nh, .nh *, .nh-home, .nh-home > body),.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){color:#aabbd4}
.intelligence-copy>p:where(.nh, .nh *, .nh-home, .nh-home > body){color:#ccd7e8}
.flow-line:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#7591b6;stroke-width:1;opacity:.4}
.flow-source rect:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#192a43;stroke:none}
.flow-source text:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#e4edfc}
.flow-process:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--midnight)}
.flow-process-label:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#b9cce7}
.flow-output:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#eaf0ff}
.flow-output-title:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#2950ff}
.flow-output-note:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#536d95}
.visual-footer:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding-top:16px}
.principles:where(.nh, .nh *, .nh-home, .nh-home > body){gap:24px}
.principles>div:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding:32px;background:var(--surface-cool);border-radius:var(--radius-l);box-shadow:none}
.principle-mark:where(.nh, .nh *, .nh-home, .nh-home > body){background:white;box-shadow:none}
.product-card:where(.nh, .nh *, .nh-home, .nh-home > body){box-shadow:none}
.card-xiaobei:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--surface-cool)}
.card-weaver:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--surface-fog)}
.round-link:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;background:rgba(255,255,255,.85);box-shadow:none}
.product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){box-shadow:none}
.product-card .round-link:where(.nh, .nh *, .nh-home, .nh-home > body){box-shadow:none}
.task-prompt:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f1f4ff}
.runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){border:0}
.route-icon:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;background:#f1f4ff;border-radius:var(--radius-s)}
.training-visual:where(.nh, .nh *, .nh-home, .nh-home > body){background:white}
.chart-grid:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.3}
.case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;background:rgba(255,255,255,.8);box-shadow:none}
.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){box-shadow:none}
.evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body):before{border:0}
.case-metrics:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;gap:16px;padding-top:16px}
.case-metrics>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px;background:white;border-radius:var(--radius-s)}
.research-list:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;display:grid;gap:16px}
.research-list>a:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding:32px;background:#f7f9ff;border-radius:var(--radius-l);box-shadow:none}
.topic-chip:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;background:#eaf0ff}
.solutions:where(.nh, .nh *, .nh-home, .nh-home > body),.faq:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list:where(.nh, .nh *, .nh-home, .nh-home > body),.faq-list:where(.nh, .nh *, .nh-home, .nh-home > body){border:0}
.solution-list:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;gap:16px}
.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding:24px;background:#f7f9ff;border-radius:var(--radius-l);box-shadow:none}
.pilot-steps:where(.nh, .nh *, .nh-home, .nh-home > body){gap:24px}
.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding:32px;background:var(--blue-tint);border-radius:var(--radius-l);box-shadow:none}
.faq-list:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px}
.faq-list>details:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;padding:24px;background:#f7f9ff;border-radius:var(--radius-l);box-shadow:none}
dialog:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;box-shadow:none}
.dialog-top:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;box-shadow:none}
@media(hover:hover){.round-link:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:white}.research-list>a:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:white;box-shadow:none}}
@media(max-width:767px){
  .principles>div:where(.nh, .nh *, .nh-home, .nh-home > body),.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}
  .research-list>a:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px;gap:16px}
  .research-title:where(.nh, .nh *, .nh-home, .nh-home > body){padding-right:0}
  .solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px;gap:16px}
  .faq-list>details:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}
  .case-metrics:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}
  .case-metrics>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px}
}
@media(max-width:359px){.research-date:where(.nh, .nh *, .nh-home, .nh-home > body){margin-right:24px}.case-metrics>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px}}

/* One blue accent and one PingFang type family throughout the page. */
.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body),.topic-chip:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;border:0;border-radius:var(--radius-s);background:var(--blue-tint);color:var(--accent);font-family:var(--body);font-weight:600}
.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 16px;letter-spacing:.06em}
.hero-punctuation:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--accent)}
.topic-chip:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 16px;font-weight:500}
.button:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);font-weight:600}
.round-link:where(.nh, .nh *, .nh-home, .nh-home > body),.text-link:not(.light):where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button>.ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--primary)}
.research-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--accent)}
.case-tabs>button[aria-selected=true]:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary)}
.runtime-visual:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--midnight)}
.flow-source text:where(.nh, .nh *, .nh-home, .nh-home > body),.flow-process-label:where(.nh, .nh *, .nh-home, .nh-home > body),.flow-output-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:500}
.flow-output-title:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:600}
.research-name:where(.nh, .nh *, .nh-home, .nh-home > body),.product-card h3:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list h3:where(.nh, .nh *, .nh-home, .nh-home > body),.pilot-steps h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:600}
.faq-list summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:500}
.runtime-visual .demo-top:where(.nh, .nh *, .nh-home, .nh-home > body),.runtime-icon:where(.nh, .nh *, .nh-home, .nh-home > body){color:#e4eaff}
.runtime-glow:where(.nh, .nh *, .nh-home, .nh-home > body){background:#344b9c}
.runtime-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#b5c2ff}
.route-marker:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue-tint)}
.flow-line:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#8999cf}
.flow-source rect:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#1c2946}
.flow-output-echo:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#c5cfff}
.flow-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#bdc9ff;filter:drop-shadow(0 0 4px rgba(189,201,255,.35))}
@media(max-width:767px){.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 12px;letter-spacing:.04em}.topic-chip:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 8px}}

/* Supporting cards use white; product cards retain their colored surfaces. */
.principles>div:where(.nh, .nh *, .nh-home, .nh-home > body),.research-list>a:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body),.faq-list>details:where(.nh, .nh *, .nh-home, .nh-home > body),.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--white);box-shadow:none}

/* Industry capabilities: a horizontal row with generous padding and quiet depth. */
.solutions-layout:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}
.solutions-intro:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:flex-end;justify-content:space-between;gap:48px;margin-bottom:var(--space-head)}
.solutions-layout h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25;letter-spacing:-1.2px}
.solutions-layout>.solutions-intro>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.7;max-width:380px;margin:0 0 4px}
.solution-list:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:stretch}
.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 24px;grid-template-rows:auto 1fr;gap:24px 16px;align-items:start;min-height:200px;padding:32px 24px;border-radius:var(--radius-l);transition:transform .5s var(--ease)}
.solution-list>button>.mono:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1;grid-row:1;font-size:var(--fs-note);line-height:2;color:var(--accent)}
.solution-list>button>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:contents}
.solution-list>button>.ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:1;justify-self:end;margin:0;width:24px;height:24px}
.solution-list h3:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1;grid-row:1;font-size:var(--fs-h3);line-height:1.3;margin:0}
.solution-list p:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1/-1;grid-row:2;font-size:var(--fs-aux);line-height:1.7}
.solution-list>button:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.98)}
@media(max-width:1023px){.solution-list:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:repeat(2,minmax(0,1fr))}.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:200px}}
@media(max-width:767px){
  .solutions-intro:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin-bottom:var(--space-head)}
  .solutions-layout h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.3;letter-spacing:-.8px}
  .solutions-layout>.solutions-intro>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.8;margin-top:24px}
  .solution-list:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:16px}
  .solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:0;padding:24px;gap:16px}
  .solution-list h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin:0}
}

/* Product accordion: identical panel heights prevent page and pointer drift. */
.product-accordion:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:minmax(0,1fr);gap:8px;overflow-anchor:none}
.product-accordion .product-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;border-radius:var(--radius-l);box-shadow:none;overflow:hidden;overflow-anchor:none}
.motion-enabled .product-accordion .product-card:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1;transform:none;filter:none;transition:none}
.product-card .product-trigger-heading:where(.nh, .nh *, .nh-home, .nh-home > body){font:inherit;margin:0}
.product-trigger:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;height:96px;display:grid;grid-template-columns:minmax(0,1fr) auto 40px;align-items:center;gap:24px;padding:24px 32px;text-align:left;font:inherit}
.product-trigger-main:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:24px;min-width:0}
.product-index:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1;color:var(--accent);font-weight:600;flex-shrink:0}
.product-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);font-weight:600;line-height:1.2;letter-spacing:-.6px}
.product-tags:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;font-size:var(--fs-note);font-weight:500;white-space:nowrap}
.product-tags>span:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 16px;border-radius:var(--radius-s);background:rgba(255,255,255,.8);color:#535e78}
.product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;display:grid;place-items:center;background:rgba(255,255,255,.9);border-radius:var(--radius-m);color:var(--primary);transition:background .3s var(--ease),color .3s var(--ease)}
.product-toggle .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){transform:none}
.product-card.is-open .product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);color:white}
.product-trigger:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline-offset:-5px}
.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){height:340px;padding:0 32px 32px;overflow:hidden;overflow-anchor:none}
/* ===== 产品手风琴（第三轮反馈）：右侧箭头是真链接、三个标签改成安静文字 =====
   箭头是标题行旁边的原生 <a target="_blank">，收起、展开两种状态都点得开；
   标签不可点，去掉白底和圆角，不再长得像按钮。选择器多写一层，压过后面按断点写的旧规则。 */
.product-accordion .product-trigger-heading:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative}
.product-accordion .product-trigger-heading>.product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;right:24px;top:50%;transform:translateY(-50%);z-index:1;cursor:pointer;text-decoration:none}
.product-accordion .product-trigger-heading>.product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body)::after{content:'';position:absolute;inset:-6px}
.product-accordion .product-trigger-heading>.product-toggle:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateY(-50%) scale(.96)}
.product-accordion .product-trigger-heading>.product-toggle:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline-offset:2px}
@media(hover:hover){
  .product-accordion .product-trigger-heading>.product-toggle:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);color:#fff}
}
.product-accordion .product-tags:where(.nh, .nh *, .nh-home, .nh-home > body){gap:20px;user-select:none}
.product-accordion .product-tags>span:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--muted);font-weight:400}
.product-accordion .product-copy>a.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){text-decoration:none;cursor:pointer}
/* ===== 产品模块：左右结构（10-29 设计反馈：左边切换四个目录，右边是内容）=====
   左列四个目录（编号 + 产品名 + 一句定位）竖排，左侧一条细线，选中项那一段是品牌蓝，其余目录保持安静的灰色。
   右侧是选中产品的全部内容：功能示意小卡、眉标、副标题、介绍、「探索」链接、三个文字标签和去正式站的箭头。
   点击、悬停、方向键都能切换，不自动轮播；目录只负责切换，去正式站只走右侧两个原生链接（新窗口）。
   右侧内容区取四块里最高的那块（脚本量好写进 --product-stage-h），切换时整屏高度不变，目录也不会挪位。
   断点：桌面 ≥1024 内容两栏；平板 768–1023 目录仍在左、内容上下排；手机 ≤767 目录变成内容上方的 2×2 小格。
   旧手风琴规则还留在上面和后面按断点写的块里，这里每条都多套一层 .product-tabs 压过它们。 */
.product-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:minmax(0,288px) minmax(0,1fr);gap:32px;align-items:stretch}
.product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body){--product-active:0;position:relative;display:grid;grid-template-rows:repeat(5,minmax(0,1fr))}
.product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body)::before,.product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body)::after{content:'';position:absolute;left:0;top:0;width:2px;pointer-events:none}
.product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body)::before{bottom:0;background:#e4e8ee}
.product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body)::after{height:20%;background:var(--blue);transform:translateY(calc(var(--product-active) * 100%));transition:transform .45s var(--ease)}
.product-tabs .product-tab:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:32px minmax(0,1fr);align-content:center;align-items:baseline;gap:4px 0;width:100%;min-width:0;padding:8px 16px 8px 24px;text-align:left;color:#8c929f;cursor:pointer;transition:color .3s var(--ease)}
.product-tabs .product-tab-index:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1;grid-row:1;font-size:var(--fs-note);line-height:1;font-weight:600;color:#8c929f;font-variant-numeric:tabular-nums;transition:color .3s var(--ease)}
.product-tabs .product-tab-name:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:1;min-width:0;font-size:var(--fs-h3);line-height:1.33;font-weight:600;letter-spacing:-.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.product-tabs .product-tab-role:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:2;font-size:var(--fs-aux);line-height:1.5;font-weight:400;color:#8c929f;white-space:nowrap;transition:color .3s var(--ease)}
.product-tabs .product-tab[aria-selected=true]:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--ink)}
.product-tabs .product-tab[aria-selected=true] .product-tab-index:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.product-tabs .product-tab[aria-selected=true] .product-tab-role:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--muted)}
.product-tabs .product-tab:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline:2px solid var(--focus);outline-offset:-2px;border-radius:var(--radius-s)}
@media(hover:hover){
  .product-tabs .product-tab[aria-selected=false]:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
}
.product-tabs .product-stage:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;display:grid;min-height:var(--product-stage-h,288px);border-radius:var(--radius-l);background:var(--card);overflow:hidden;overflow-anchor:none}
.product-tabs .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){height:auto;min-width:0;padding:32px;overflow:visible;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:"visual meta" "visual copy";gap:16px 40px;align-items:start}
.product-tabs .product-panel[hidden]:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.product-tabs .product-stage>.product-panel.is-measuring:not([hidden]):where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0 0 auto;visibility:hidden;animation:none}
.motion-enabled .product-tabs .product-panel:not([hidden]):where(.nh, .nh *, .nh-home, .nh-home > body){animation:product-tab-in .4s var(--ease) both}
.motion-paused .product-tabs .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){animation:none}
@keyframes product-tab-in{from{opacity:0}to{opacity:1}}
.product-tabs .product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){grid-area:visual;width:100%;height:224px;margin:0;padding:16px}
.product-tabs .product-meta:where(.nh, .nh *, .nh-home, .nh-home > body){grid-area:meta;display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
.product-tabs .product-panel-tags:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-wrap:wrap;gap:4px 20px;font-size:var(--fs-aux);line-height:1.5;font-weight:400;color:var(--muted);user-select:none}
.product-tabs .product-go:where(.nh, .nh *, .nh-home, .nh-home > body){flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-m);background:var(--primary);color:var(--white);cursor:pointer;transition:background .3s var(--ease),transform .2s var(--ease)}
.product-tabs .product-go:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.96)}
.product-tabs .product-go:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline:2px solid var(--focus);outline-offset:2px}
@media(hover:hover){
  .product-tabs .product-go:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue)}
}
.product-tabs .product-copy:where(.nh, .nh *, .nh-home, .nh-home > body){grid-area:copy;align-self:end;min-width:0;max-width:none}
.product-tabs .product-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.5;color:var(--muted);letter-spacing:.04em}
.product-tabs .product-copy>.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;font-weight:600;margin-top:8px}
.product-tabs .product-copy>.product-description:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:0;max-width:none;font-size:var(--fs-aux);line-height:1.7;color:var(--muted);margin-top:8px}
.product-tabs .product-copy>a.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;font-size:var(--fs-aux);line-height:1.6;gap:16px;text-decoration:none;cursor:pointer}
@media(max-width:1023px){
  .product-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:24px}
  .product-tabs .product-tab:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:28px minmax(0,1fr);padding:8px 8px 8px 20px}
  .product-tabs .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;grid-template-areas:"meta" "visual" "copy";gap:20px}
  .product-tabs .product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:212px}
  .product-tabs .product-copy:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:start}
}
@media(max-width:767px){
  .product-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr);gap:16px}
  .product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
  .product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body)::before,.product-tabs .product-tablist:where(.nh, .nh *, .nh-home, .nh-home > body)::after{display:none}
  .product-tabs .product-tab:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:auto minmax(0,1fr);gap:4px 8px;padding:12px 0 4px;border-top:2px solid #e4e8ee;transition:color .3s var(--ease),border-color .3s var(--ease)}
  .product-tabs .product-tab[aria-selected=true]:where(.nh, .nh *, .nh-home, .nh-home > body){border-top-color:var(--blue)}
  .product-tabs .product-tab-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);letter-spacing:-.4px}
  .product-tabs .product-tab-role:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-tabs .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:20px;gap:16px}
  .product-tabs .product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:224px}
  .product-tabs .product-panel-tags:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:4px 16px}
  .product-tabs .product-go:where(.nh, .nh *, .nh-home, .nh-home > body){width:36px;height:36px;border-radius:var(--radius-s)}
  .product-tabs .product-copy>a.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
}
/* ===== 产品模块 · 「探索 xx →」入口按钮（10-29 第二轮设计反馈①，司咏琪；与机主产品版图合并时保留）=====
   右侧唯一的去正式站入口，做成和页面「联系合作」同一语言的深色按钮；悬停转品牌蓝、箭头右移一点。 */
.product-tabs .product-copy>a.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){--cta-arrow:0px;margin-top:4px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:44px;padding:10px 20px;border:0;border-radius:var(--radius-m);background:var(--primary);color:var(--white);font-size:var(--fs-aux);font-weight:600;line-height:1.6;text-decoration:none;cursor:pointer;transition:background .3s var(--ease),transform .2s var(--ease)}
.product-tabs .product-copy>a.text-link .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateX(var(--cta-arrow));transition:transform .3s var(--ease)}
.product-tabs .product-copy>a.text-link:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.98)}
.product-tabs .product-copy>a.text-link:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline:2px solid var(--focus);outline-offset:3px}
@media(hover:hover){
  .product-tabs .product-copy>a.text-link:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue);color:var(--white);--cta-arrow:4px}
}
.product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){height:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:48px;animation:product-panel-enter .5s var(--ease) both}
.product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:280px;margin:0;padding:24px;width:100%;box-shadow:none}
.product-copy:where(.nh, .nh *, .nh-home, .nh-home > body){min-width:0;max-width:440px}
.product-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.5;color:var(--muted);letter-spacing:.04em}
.product-copy>.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);font-weight:600;line-height:1.45;margin-top:8px}
.product-copy>.product-description:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:0;font-size:var(--fs-aux);line-height:1.8;margin-top:16px;max-width:none}
.product-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;font-size:var(--fs-aux)}
.product-panel .demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .task-result strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux)}
.product-panel .task-result>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .runtime-node:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .route-row:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .route-category:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.product-panel .training-chart:where(.nh, .nh *, .nh-home, .nh-home > body){height:176px;margin-top:0}
@keyframes product-panel-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.motion-paused .product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){animation:none}
@media(max-width:1023px){
  .product-trigger:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:24px;gap:16px}
  .product-trigger-main:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
  .product-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}
  .product-tags:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px}
  .product-tags>span:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 8px}
  .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:24px}
  .product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){gap:32px}
  .product-copy>.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}
}
@media(max-width:767px){
  .product-trigger:where(.nh, .nh *, .nh-home, .nh-home > body){height:76px;grid-template-columns:minmax(0,1fr) 36px;padding:16px 24px;gap:16px}
  .product-trigger-main:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}
  .product-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);letter-spacing:-.4px}
  .product-index:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-tags:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
  .product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){width:36px;height:36px;border-radius:var(--radius-s)}
  .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){height:520px;padding:0 24px 24px}
  .product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr);grid-template-rows:224px minmax(0,1fr);gap:24px;align-items:start}
  .product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:224px;padding:16px}
  .product-copy:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:none}
  .product-copy>.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.5;margin-top:8px}
  .product-copy>.product-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;margin-top:8px}
  .product-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-top:16px}
  .product-panel .demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .task-result strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .task-result>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .runtime-stages:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px}
  .product-panel .runtime-node:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .route-row:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .route-category:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .training-chart:where(.nh, .nh *, .nh-home, .nh-home > body){height:120px}
}

/* Industry cards carry the blue gradients and invert as a whole on hover. */
.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#f4f6ff 0%,#e7edff 48%,#d6e2ff 100%);box-shadow:none;color:var(--ink);transition:color .35s var(--ease),transform .5s var(--ease)}
.solution-list>button:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){background:linear-gradient(135deg,#f6f7ff 0%,#e8edff 46%,#dce2ff 100%)}
.solution-list>button:nth-child(3):where(.nh, .nh *, .nh-home, .nh-home > body){background:linear-gradient(135deg,#eef3ff 0%,#e1eaff 48%,#cfdfff 100%)}
.solution-list>button:nth-child(4):where(.nh, .nh *, .nh-home, .nh-home > body){background:linear-gradient(135deg,#f4f6ff 0%,#e6ecff 48%,#d5ddff 100%)}
.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;inset:0;background:var(--primary);opacity:0;transition:opacity .4s var(--ease);z-index:-1}
.solution-list>button h3:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button p:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button>.mono:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button>.ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){transition:color .35s var(--ease)}
@media(hover:hover){
  .solution-list>button:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:white}
  .solution-list>button:hover:where(.nh, .nh *, .nh-home, .nh-home > body):before{opacity:1}
  .solution-list>button:hover p:where(.nh, .nh *, .nh-home, .nh-home > body){color:#e3e5eb}
  .solution-list>button:hover>.mono:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button:hover>.ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){color:white}
}

/* The three cooperation steps stay quiet and have no hover treatment. */
.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f7f7f8;box-shadow:none}

/* A compact desktop accordion keeps all four product headers in one screen. */
@media(min-width:768px){
  .products:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
  .products .section-top:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:8px}
  .products .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){align-items:center;gap:32px;margin-bottom:var(--space-head)}
  .products .section-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25;white-space:nowrap}
  .products .section-heading h2 br:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
  .products .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.5;max-width:320px;margin:0}
  .product-accordion:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}
  .product-trigger:where(.nh, .nh *, .nh-home, .nh-home > body){height:56px;grid-template-columns:minmax(0,1fr) auto 32px;gap:16px;padding:8px 24px}
  .product-trigger-main:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
  .product-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}
  .product-tags:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.33;gap:8px}
  .product-tags>span:where(.nh, .nh *, .nh-home, .nh-home > body){padding:4px 8px}
  .product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body){width:32px;height:32px;border-radius:var(--radius-s)}
  .product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){height:220px;padding:0 24px 24px}
  .product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){gap:32px}
  .product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:196px;padding:16px}
  .product-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.33}
  .product-copy>.product-subtitle:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;margin-top:8px}
  .product-copy>.product-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.43;margin-top:8px}
  .product-copy>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;margin-top:16px}
  .product-panel .demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.33;margin-bottom:8px}
  .product-panel .demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .task-prompt:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:36px;padding:8px}
  .product-panel .task-result:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px;padding-top:0}
  .product-panel .task-result strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .task-result>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .task-knowledge:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px}
  .product-panel .runtime-stages:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px}
  .product-panel .runtime-node:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .product-panel .gateway-footer:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px}
  .product-panel .training-chart:where(.nh, .nh *, .nh-home, .nh-home > body){height:112px}
}

.product-accordion .product-card:not(.is-open):where(.nh, .nh *, .nh-home, .nh-home > body){background:transparent}

/* The reference model releases, translated into the current white and blue system. */
.release-grid:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.release-card:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;align-items:stretch;min-width:0;min-height:0;padding:32px 24px;background:white;border-radius:var(--radius-l);box-shadow:none}
.release-top:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}
.release-top h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.25;font-weight:600;letter-spacing:-.5px}
.release-top>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.33;color:var(--muted)}
.release-card h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;font-weight:600;min-height:56px;margin:0 0 16px;text-wrap:balance}
.release-card>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.43;color:var(--muted);min-height:48px;margin-bottom:24px}
.release-card .open-status:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;color:var(--accent);font-size:var(--fs-aux);line-height:1.43;margin-bottom:24px}
.release-card .open-status:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';width:5px;height:5px;border-radius:var(--radius-pill);background:currentColor;flex-shrink:0}
.release-scores:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;gap:24px;margin-bottom:24px}
.release-score:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;align-items:start}
.release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.11;font-weight:600;letter-spacing:-1.2px;font-variant-numeric:tabular-nums;color:var(--accent)}
.release-score>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:2px;min-width:0}
.release-score b:where(.nh, .nh *, .nh-home, .nh-home > body),.release-score span:where(.nh, .nh *, .nh-home, .nh-home > body),.release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;font-size:var(--fs-note);line-height:1.33;font-weight:500}
.release-score span:where(.nh, .nh *, .nh-home, .nh-home > body){margin-block:4px;color:var(--muted);overflow-wrap:anywhere}
.release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){color:#7c8598}
.release-card .pair-title:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-note);line-height:1.33;margin-bottom:16px}
.release-card .pair-title strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:500}
.release-card .delta:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--accent);font-weight:600}
.release-card .bar-row+.bar-row:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px}
.release-card .bar-caption:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:var(--fs-note);line-height:1.33;color:var(--muted)}
.release-card .bar-caption>b:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.release-card .bar-caption small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.release-card .bar-track:where(.nh, .nh *, .nh-home, .nh-home > body){height:5px;background:#f0f2f8;border-radius:var(--radius-s);overflow:hidden}
.release-card .bar:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:var(--value);height:100%;background:#aeb9d1;transform-origin:left center}
.release-card .bar.after:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--accent)}
.release-card>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:flex-start;justify-content:flex-start;margin-top:auto;font-size:var(--fs-aux);line-height:1.43;border:0}
.release-card>.text-link>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:inherit}
.motion-enabled .release-card .bar:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scaleX(0);transition:transform 1.1s var(--io);transition-delay:300ms}
.motion-enabled .release-card.motion-in .bar:where(.nh, .nh *, .nh-home, .nh-home > body),.motion-paused .release-card .bar:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scaleX(1)}
@media(min-width:768px) and (max-width:1023px){
  .release-grid:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr}
  .release-card:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1.2fr;gap:16px 32px;min-height:0;padding:32px}
  .release-top:where(.nh, .nh *, .nh-home, .nh-home > body),.release-card h4:where(.nh, .nh *, .nh-home, .nh-home > body),.release-card>p:where(.nh, .nh *, .nh-home, .nh-home > body),.release-card .open-status:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1;margin:0;min-height:0}
  .release-scores:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:1/span 5;align-self:center;margin:0}
  .release-card>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1;margin-top:8px}
}
@media(max-width:767px){
  .products .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:var(--space-head)}
  .release-grid:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:24px}
  .release-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px;min-height:0}
  .release-card h4:where(.nh, .nh *, .nh-home, .nh-home > body),.release-card>p:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:0}
  .release-card>.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px}
}
@media(min-width:768px) and (max-width:1023px){
  .products .section-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.2}
  .products .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;max-width:240px}
}

/* Give the company introduction a distinct pause after the industry cards. */
.about:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:80px}
@media(max-width:767px){
  .product-accordion:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
  .product-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}
  .about:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:64px}
}

/* The existing centered hero sits above the original transparent snow panorama. */
.hero.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;display:block;padding:24px 48px 0;overflow:hidden;isolation:isolate}
.hero-inner:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:2}
.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:24px}
.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;line-height:24px;margin-top:24px}
.hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
.hero-snowfield:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;bottom:0;width:100%;aspect-ratio:2172/1000;z-index:0;pointer-events:none;user-select:none}
.ascent-scene:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:100%;height:100%;overflow:visible}
.snow-massif:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.42;filter:saturate(1.05) brightness(1.2)}
.ascent-trail:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:url(#ascent-route-gradient);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:1}
.ascent-node:where(.nh, .nh *, .nh-home, .nh-home > body){--locator-accent:#2950ff;--locator-text:#3457b7;--locator-background:#fff;--locator-edge:#e2e8f6;--locator-pin:url(#ascent-pin-blue)}
.ascent-node.is-summit:where(.nh, .nh *, .nh-home, .nh-home > body){--locator-accent:#c58e22;--locator-text:#8a6111;--locator-background:#fff8e7;--locator-edge:#eeddb5;--locator-pin:url(#ascent-pin-gold)}
.ascent-pin:where(.nh, .nh *, .nh-home, .nh-home > body){transform-origin:0 0}
.map-pin-body:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--locator-pin)}
.locator-tooltip-surface:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--locator-background);stroke:var(--locator-edge);stroke-width:.8}
.locator-tooltip-tail:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--locator-background);stroke:none}
.ascent-label .locator-text:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--locator-text);font:500 12px var(--body);text-anchor:start;dominant-baseline:central;letter-spacing:0}
.ascent-head-halo:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue)}
.ascent-head-dot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:white;stroke:#6191ff;stroke-width:1}
.ascent-head.is-summit .ascent-head-halo:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#c58e22}
.ascent-head.is-summit .ascent-head-dot:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#c58e22}
@media(max-width:767px){.ascent-label .locator-text:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px}}
.motion-enabled:not(.motion-paused) .hero-snowfield:not([data-playing=true]) .ascent-journey:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0}
.hero-scroll:where(.nh, .nh *, .nh-home, .nh-home > body){z-index:3;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.8);color:#4b5770}
@media(min-width:768px) and (min-height:900px){.hero.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:48px}}

/* A quiet echo of the mountain fills only the unused left side of the FAQ. */
.faq-intro:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate;overflow:hidden;min-height:440px}
.faq-intro>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body),.faq-intro>h2:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1}
.faq-snow:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;bottom:0;width:100%;pointer-events:none;user-select:none;z-index:0;opacity:.28;filter:saturate(1.05) brightness(1.2);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 25%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 25%,transparent 75%)}
.faq-snow svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;height:auto;overflow:visible}
.faq-list:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1}
@media(max-width:767px){
  .hero.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px 20px 0}
  /* 10-31 手机也要看全 01–06：雪山缩到 01（x=150）离左缘 16px、06（x=1795）离右缘 32px（2172/1645 = 1.32036），
     脚本再按 --ascent-lift 把山连同攀登线以山脚为基准竖向拉高，山仍占首屏下半截，不缩成一条细带 */
  .hero-snowfield:where(.nh, .nh *, .nh-home, .nh-home > body){width:calc((100% - 48px) * 1.32036);left:calc(16px - (100% - 48px) * .091185);right:auto;--ascent-lift:1.9}
  .faq-intro:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:280px}
  .faq-snow:where(.nh, .nh *, .nh-home, .nh-home > body){left:0;bottom:0;width:100%;opacity:.24}
}


/* Light gray canvas and flat surfaces: color separation replaces elevation. */
.header:where(.nh, .nh *, .nh-home, .nh-home > body){background:rgba(246,247,249,.95)}
.principles>div:where(.nh, .nh *, .nh-home, .nh-home > body),.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body),.faq-list>details:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--white)}
.principle-mark:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue-tint)}
.case-section:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--canvas)}
.case-section .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;margin-bottom:32px}
.case-section .section-heading h2 br:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.case-section .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;max-width:none}
.case-section .section-heading>p br:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.product-toggle:where(.nh, .nh *, .nh-home, .nh-home > body),.product-tags>span:where(.nh, .nh *, .nh-home, .nh-home > body){background:white}
.product-accordion .product-card.is-open:where(.nh, .nh *, .nh-home, .nh-home > body){background:#e5eaff}
.product-accordion .card-nac.is-open:where(.nh, .nh *, .nh-home, .nh-home > body){background:#e1e8ff}
.product-accordion .card-gateway.is-open:where(.nh, .nh *, .nh-home, .nh-home > body){background:#e7edff}
.product-accordion .card-weaver.is-open:where(.nh, .nh *, .nh-home, .nh-home > body){background:#dee8ff}

/* A plot and its axis share the same physical horizontal endpoints. */
.training-steps:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1fr 1fr 1fr;margin-inline:4.736842%;align-items:center}
.training-steps>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){justify-self:start}
.training-steps>span:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){justify-self:center}
.training-steps>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){justify-self:end}

/* Scenario names form the navigation; the white cards slide on the gray canvas. */
.case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:760px;margin:0 auto 32px;text-align:center}
.case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){background:none;color:#8c929f;font-size:var(--fs-h3);font-weight:600;padding:16px 8px;min-height:48px;border-radius:var(--radius-s);transition:color .3s var(--ease)}
.case-tabs>button[aria-selected=true]:where(.nh, .nh *, .nh-home, .nh-home > body){background:none;color:var(--ink)}
.case-carousel:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}
.case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body){--case-inset:64px;position:relative;display:flex;align-items:stretch;gap:24px;padding-inline:var(--case-inset);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--case-inset);scrollbar-width:none;overscroll-behavior-x:contain;overflow-anchor:none}
.case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body)::-webkit-scrollbar{display:none}
.case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){flex:0 0 100%;min-width:0;scroll-snap-align:center;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);padding:40px;gap:40px;border-radius:var(--radius-l);opacity:.5;transition:opacity .35s var(--ease);outline-offset:-6px}
.case-viewport>.case-panel.is-active:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1}
.case-viewport>.case-panel>.case-copy:where(.nh, .nh *, .nh-home, .nh-home > body),.case-viewport>.case-panel>.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .25s var(--ease)}
.case-viewport>.case-panel:not(.is-active)>.case-copy:where(.nh, .nh *, .nh-home, .nh-home > body),.case-viewport>.case-panel:not(.is-active)>.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0}
.case-copy h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;margin-top:16px}
.case-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;min-height:0}
.case-context:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f6f7fb;padding:24px;border-radius:var(--radius-l)}
.case-chart-top:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:16px}
.case-chart-top>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:600}
.evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px;border-radius:var(--radius-m)}
.evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:none}
.evidence-row>div:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-bottom:8px}
.evidence-before:where(.nh, .nh *, .nh-home, .nh-home > body){color:#818b9c}
.evidence-before strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;color:#818b9c;font-weight:500}
.evidence-after:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px;background:#e9edff;color:var(--blue)}
.evidence-after strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.2;color:var(--blue);font-weight:600;letter-spacing:-1px}
.case-viewport .data-bar:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scaleX(1);transition:none}
.case-metrics:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;padding-top:0;gap:8px}
.case-metrics>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 16px;border-radius:var(--radius-m)}
.case-metrics strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);color:var(--blue);line-height:1.2}
.case-metrics>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);background:white;color:var(--primary);z-index:2;transition:color .2s var(--ease),background .2s var(--ease)}
.case-prev:where(.nh, .nh *, .nh-home, .nh-home > body){left:0}.case-next:where(.nh, .nh *, .nh-home, .nh-home > body){right:0}.case-prev .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(180deg)}
.case-arrow:disabled:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.3;cursor:default}
.case-pagination:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:center;font-size:var(--fs-note);color:var(--muted);margin-top:24px;font-variant-numeric:tabular-nums}
.release-card:where(.nh, .nh *, .nh-home, .nh-home > body){transition:background .3s var(--ease)}
.release-card:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline-offset:5px}
@media(hover:hover){.case-tabs>button:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}.case-arrow:not(:disabled):hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);color:white}.release-card:hover .release-top h3:where(.nh, .nh *, .nh-home, .nh-home > body),.release-card:hover .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}}
@media(max-width:1100px){
  .case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body){--case-inset:56px}
  .case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px;gap:24px}
  .case-copy h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}
  .case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}
}
@media(max-width:1023px){
  .case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:24px}
  .case-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){max-width:100%}
  .case-context:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px}
  .case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}
}
@media(max-width:767px){
  .case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){gap:4px;margin-bottom:24px}
  .case-section .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
  .case-section .section-heading h2 br:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}
  .case-section .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:290px}
  .case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);padding-inline:4px}
  .case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body){--case-inset:12px;gap:8px;margin-inline:-8px}
  .case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px;gap:24px;border-radius:var(--radius-l)}
  .case-copy h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);margin-top:16px}
  .case-copy>p:not(.eyebrow):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.8;margin-top:16px}
  .case-copy>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px}
  .case-chart-top:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px;margin-bottom:16px}
  .case-chart-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);letter-spacing:0}
  .evidence-row:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px}
  .evidence-before strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.27}
  .evidence-after strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.18}
  .evidence-row>div:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px}
  .case-metrics strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}
  .case-metrics>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px}
  .case-metrics>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
  .case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){top:auto;bottom:-64px;transform:none;width:40px;height:40px}
  .case-prev:where(.nh, .nh *, .nh-home, .nh-home > body){left:12px}.case-next:where(.nh, .nh *, .nh-home, .nh-home > body){right:12px}
  .case-pagination:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:40px;display:flex;align-items:center;justify-content:center}
  .release-top h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25}
}


/* Side-by-side evidence follows the supplied base-to-specialist comparison. */
.comparison-chart:where(.nh, .nh *, .nh-home, .nh-home > body){container-type:inline-size;padding:24px 0;background:transparent;border-radius:0}
.comparison-chart .case-chart-top:where(.nh, .nh *, .nh-home, .nh-home > body){color:#7f8da6;margin-bottom:32px}
.comparison-pair:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:minmax(0,1fr) 48px minmax(0,1fr);gap:16px;align-items:center}
.comparison-column:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;align-self:stretch;min-width:0;color:#8190a8}
.comparison-label:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;min-height:40px;font-size:var(--fs-aux);font-weight:600;line-height:1.43;margin-bottom:8px}
.comparison-value:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:baseline;gap:3px;height:72px;line-height:1.8;font-size:var(--fs-h2);font-weight:600;letter-spacing:-1.2px;white-space:nowrap;font-variant-numeric:tabular-nums}
.comparison-value small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:.33em;line-height:1;letter-spacing:0}
.comparison-after:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.comparison-after .comparison-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display)}
.comparison-chart .bar-track:where(.nh, .nh *, .nh-home, .nh-home > body){height:10px;border-radius:var(--radius-pill);background:#e5eaf3;margin-top:16px}
.comparison-chart .data-bar:where(.nh, .nh *, .nh-home, .nh-home > body){border-radius:inherit;background:#b5c0d1}
.comparison-chart .data-bar.after:where(.nh, .nh *, .nh-home, .nh-home > body){background:linear-gradient(90deg,#7790ff,#2950ff)}
.comparison-change:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:center;display:grid;place-items:center;margin-top:24px;width:48px;height:48px}
.comparison-change svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;height:100%}
.comparison-change-neutral:where(.nh, .nh *, .nh-home, .nh-home > body){color:#a8b8ff}
.comparison-change-neutral .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:32px;height:32px}
.comparison-footer:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:32px;color:#7f8da6;font-size:var(--fs-aux);line-height:1.85}
.comparison-footer p:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.comparison-footer span:where(.nh, .nh *, .nh-home, .nh-home > body){color:#7f8da6}
.comparison-footer i:where(.nh, .nh *, .nh-home, .nh-home > body){font-style:normal;margin-inline:2px}
.comparison-footer strong:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);font-size:var(--fs-body);font-weight:600}
.case-controls:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:center;gap:24px;margin-top:24px}
.case-controls .case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){position:static;inset:auto;transform:none;flex-shrink:0}
.case-controls .case-pagination:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;min-width:160px;min-height:44px;display:flex;align-items:center;justify-content:center}
@media(min-width:1024px){
  .case-section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
  .case-section .section-top:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:32px}
  .case-section .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:24px}
  .case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:24px}
  .case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px}
}
@media(max-width:1100px){
  .comparison-pair:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);gap:8px}
  .comparison-change:where(.nh, .nh *, .nh-home, .nh-home > body){width:32px;height:32px}
}
@media(max-width:1023px) and (min-width:768px){
  .comparison-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 0}
  .comparison-after .comparison-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display)}
  .comparison-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}
}
@media(max-width:767px){
  .comparison-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;background:transparent}
  .comparison-chart .case-chart-top:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:24px;font-size:var(--fs-note)}
  .comparison-pair:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px}
  .comparison-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.64;min-height:36px;margin-bottom:8px}
  .comparison-value:where(.nh, .nh *, .nh-home, .nh-home > body){height:48px;line-height:1.5;font-size:var(--fs-h2);letter-spacing:-.8px}
  .comparison-after .comparison-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display)}
  .comparison-change:where(.nh, .nh *, .nh-home, .nh-home > body){width:28px;height:28px;margin-top:24px}
  .comparison-chart .bar-track:where(.nh, .nh *, .nh-home, .nh-home > body){height:8px;margin-top:8px}
  .comparison-footer:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;font-size:var(--fs-note);gap:8px}
  .comparison-footer strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body)}
  .case-controls:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
  .case-controls .case-pagination:where(.nh, .nh *, .nh-home, .nh-home > body){min-width:150px;font-size:var(--fs-note)}
}


/* Side gutters keep carousel arrows separate from every card surface. */
.case-carousel:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:16px;align-items:center}
.case-carousel .case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body){--case-inset:0px;grid-column:2;grid-row:1;padding-inline:0;margin-inline:0}
.case-carousel .case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){position:static;inset:auto;transform:none;grid-row:1;align-self:center;justify-self:center}
.case-carousel .case-prev:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1}
.case-carousel .case-next:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:3}
.case-controls:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
.case-section .source-note:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:center}
@media(max-width:767px){
  .case-carousel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:32px minmax(0,1fr) 32px;gap:8px;margin-inline:-8px}
  .case-carousel .case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){width:32px;height:32px}
  .case-carousel .case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:16px}
}

/* 2026-10-27 content sync. Existing palette, type, corners and surfaces stay. */
.hero-actions:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:center;gap:24px;margin-top:24px}
.hero-actions .hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:0}
.hero-learn:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px}

.hero-retention:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:center;max-width:760px;margin:24px auto 0;color:var(--muted);font-size:var(--fs-aux);line-height:1.71}
.partners:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1;margin-top:-32px;padding:0 0 var(--space-module)}
.partner-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.partner-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.43;color:var(--muted);font-weight:500;letter-spacing:0}
.partner-heading>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;gap:8px}
.partner-heading button:where(.nh, .nh *, .nh-home, .nh-home > body){width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--white);transition:background .3s var(--ease),color .3s var(--ease)}
.partner-heading button:disabled:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.25;cursor:default}
.partner-prev .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(180deg)}
.partner-track:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-rows:repeat(2,64px);grid-auto-flow:column;grid-auto-columns:176px;gap:16px 24px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:8px 0}
.partner-track:where(.nh, .nh *, .nh-home, .nh-home > body)::-webkit-scrollbar{display:none}
.partner-mark:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:center;scroll-snap-align:start;padding:16px;min-width:0}
.partner-mark img:where(.nh, .nh *, .nh-home, .nh-home > body){max-height:40px;max-width:152px;width:auto;height:auto;object-fit:contain;filter:brightness(0);opacity:.52}
.partner-nextie:where(.nh, .nh *, .nh-home, .nh-home > body){flex-direction:column;color:#78818e;gap:0;line-height:1.2}.partner-nextie strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);font-weight:600}.partner-nextie span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}
.cost-layout:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:start}
.cost-intro:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:start}
.cost-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25}
.cost-intro p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:360px;font-size:var(--fs-body);line-height:1.75;color:var(--muted);margin-top:24px}
.cost-stack:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;gap:64px;padding-bottom:64px;isolation:isolate}
.cost-card:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-height:280px;background:var(--white);border-radius:var(--radius-l);padding:40px;transform-origin:50% 0;will-change:transform;overflow:hidden}
.cost-card:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){background:#eaf0ff}
.cost-card>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);color:var(--blue)}
.cost-card h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.2;margin-top:32px}
.cost-card p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.75;color:var(--muted);margin-top:24px}
.cost-quote:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:80px 1fr;gap:24px;max-width:900px;margin:32px auto 0;padding:32px;border-radius:var(--radius-l);background:var(--white)}
.cost-quote .eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--blue);padding-top:4px}
.cost-quote p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.56;color:var(--muted)}
.principles-heading:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;margin-top:48px}
.principles-heading+.principles:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
.intelligence-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.4}
.research .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:440px}
.release-excerpt:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;color:#7f8a9e;margin-bottom:16px}
.research-notes:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;gap:8px;font-size:var(--fs-note);line-height:1.67;color:#7f8a9e;margin-top:24px}
.product-role:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted);font-weight:500;margin-left:8px;white-space:nowrap}
.product-loop:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px;background:var(--white);border-radius:var(--radius-l);padding:24px 32px;display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px 24px}
.product-loop>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--blue);padding-top:3px}
.product-loop>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;color:var(--muted)}
.loop-steps:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:var(--fs-aux);line-height:1.71;color:var(--blue)}
.loop-steps i:where(.nh, .nh *, .nh-home, .nh-home > body){font-style:normal;color:#96a3c3}
/* 闭环迭代 · 方案①改「扁三角」（2026-10-29 设计样稿）
   三站放在一个横向扁的细线三角形三个角上，顺时针：Weaver（左下角）→ NorthGate（顶角）→ 小北 / NAC / 企业智能体（右下角）→ 沿底边回到 Weaver。
   方向由沿三条边匀速绕行的光点和它身后的短尾迹表达；光点一圈 8 秒，经过角点时那一站轻亮一下再淡回。
   尾迹是 16 个 2px 小点，跟光点走同一条 offset-path、依次晚 0.03 秒，所以拐角时尾迹也跟着拐；颜色是蓝色按 .75→.25 叠在卡片底色上的实色（不用半透明，免得重叠处出斑纹），越靠近光点越在上层。
   三角宽:高各断点都是 3:1，所以光点到三站的时刻（一圈的 0 / 27.3% / 54.6%）通用，节点的 animation-delay 由此算出；改比例要重算。
   prefers-reduced-motion 时静止：光点停在底边中间（回到 Weaver 的那条边），尾迹在它右侧指明方向。
   --w / --h 三角宽高，--p 是同一个三角的 offset-path（改尺寸要一起改）；--lw / --rw 是给左右站名留的位置；NorthGate 贴在顶角右上方，不额外占高度。
   桌面：说明在左、三角在右；平板：小标题叠在说明上方；手机：三角居中放在说明下面。 */
.product-loop.has-tri:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:80px minmax(0,1fr) auto;grid-template-rows:1fr auto 1fr;gap:0 24px;align-items:start}
.has-tri>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){grid-row:2}.has-tri>p:where(.nh, .nh *, .nh-home, .nh-home > body){grid-row:2;max-width:560px}
@media(min-width:1024px){.has-tri>p:where(.nh, .nh *, .nh-home, .nh-home > body){word-break:keep-all}}
.product-loop .loop-tri:where(.nh, .nh *, .nh-home, .nh-home > body){--w:168px;--h:56px;--p:path("M0 56L84 0L168 56Z");--lw:68px;--rw:168px;--gap:14px;grid-column:3;grid-row:1/4;align-self:center;display:block;position:relative;width:var(--w);height:var(--h);margin:12px var(--rw) 8px var(--lw);font-size:var(--fs-aux);line-height:20px;color:var(--blue)}
.loop-edge:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;fill:none;stroke:rgba(41,80,255,.22);stroke-width:1;stroke-linecap:round}
.loop-run:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0}
.loop-run>span:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;width:2px;height:2px;border-radius:50%;offset-path:var(--p);offset-rotate:0deg;animation:loop-run 8s linear infinite;animation-delay:calc(var(--k) * .03s - 8s)}
.loop-run>span:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){--k:0;width:7px;height:7px;background:var(--blue);box-shadow:0 0 0 4px rgba(41,80,255,.14)}
.loop-run>span:nth-child(16):where(.nh, .nh *, .nh-home, .nh-home > body){--k:1;background:#5c7afe}.loop-run>span:nth-child(15):where(.nh, .nh *, .nh-home, .nh-home > body){--k:2;background:#637ffd}.loop-run>span:nth-child(14):where(.nh, .nh *, .nh-home, .nh-home > body){--k:3;background:#6a85fd}.loop-run>span:nth-child(13):where(.nh, .nh *, .nh-home, .nh-home > body){--k:4;background:#708afd}.loop-run>span:nth-child(12):where(.nh, .nh *, .nh-home, .nh-home > body){--k:5;background:#7790fd}.loop-run>span:nth-child(11):where(.nh, .nh *, .nh-home, .nh-home > body){--k:6;background:#7e95fc}.loop-run>span:nth-child(10):where(.nh, .nh *, .nh-home, .nh-home > body){--k:7;background:#859bfc}.loop-run>span:nth-child(9):where(.nh, .nh *, .nh-home, .nh-home > body){--k:8;background:#8ca0fc}
.loop-run>span:nth-child(8):where(.nh, .nh *, .nh-home, .nh-home > body){--k:9;background:#92a6fc}.loop-run>span:nth-child(7):where(.nh, .nh *, .nh-home, .nh-home > body){--k:10;background:#99abfc}.loop-run>span:nth-child(6):where(.nh, .nh *, .nh-home, .nh-home > body){--k:11;background:#a0b1fc}.loop-run>span:nth-child(5):where(.nh, .nh *, .nh-home, .nh-home > body){--k:12;background:#a7b6fb}.loop-run>span:nth-child(4):where(.nh, .nh *, .nh-home, .nh-home > body){--k:13;background:#aebcfb}.loop-run>span:nth-child(3):where(.nh, .nh *, .nh-home, .nh-home > body){--k:14;background:#b4c1fb}.loop-run>span:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){--k:15;background:#bbc7fb}.loop-run>span:nth-child(1):where(.nh, .nh *, .nh-home, .nh-home > body){--k:16;background:#c2ccfa}
.loop-node:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;white-space:nowrap;transform:translateY(-50%)}
.loop-node:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:"";position:absolute;top:50%;width:7px;height:7px;margin-top:-3.5px;box-sizing:border-box;border-radius:50%;background:var(--card);border:1.5px solid var(--blue);animation:loop-node 8s linear infinite}
.loop-node.is-w:where(.nh, .nh *, .nh-home, .nh-home > body){right:calc(100% + var(--gap));top:100%}.loop-node.is-w:where(.nh, .nh *, .nh-home, .nh-home > body):before{right:calc(-3.5px - var(--gap))}
.loop-node.is-a:where(.nh, .nh *, .nh-home, .nh-home > body){left:calc(100% + var(--gap));top:100%}.loop-node.is-a:where(.nh, .nh *, .nh-home, .nh-home > body):before{left:calc(-3.5px - var(--gap))}
.loop-node.is-g:where(.nh, .nh *, .nh-home, .nh-home > body){left:calc(50% + var(--gap));top:-5px}.loop-node.is-g:where(.nh, .nh *, .nh-home, .nh-home > body):before{left:calc(-3.5px - var(--gap));top:calc(50% + 5px)}
.loop-node.is-g:where(.nh, .nh *, .nh-home, .nh-home > body):before{animation-delay:-5.817s}.loop-node.is-a:where(.nh, .nh *, .nh-home, .nh-home > body):before{animation-delay:-3.633s}
@keyframes loop-run{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes loop-node{0%{background:var(--blue);box-shadow:0 0 0 4px rgba(41,80,255,.14);animation-timing-function:ease-out}14%,100%{background:var(--card);box-shadow:0 0 0 0 rgba(41,80,255,0)}}
@media(max-width:1023px){.product-loop .loop-tri:where(.nh, .nh *, .nh-home, .nh-home > body){--w:108px;--h:36px;--p:path("M0 36L54 0L108 36Z");--lw:54px;--rw:142px;--gap:12px;font-size:var(--fs-note);line-height:18px}}
@media(max-width:1023px) and (min-width:768px){
 .product-loop.has-tri:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto auto 1fr}
 .has-tri>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body){grid-row:2;padding-top:0}.has-tri>p:where(.nh, .nh *, .nh-home, .nh-home > body){grid-row:3;margin-top:8px}
 .product-loop .loop-tri:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:1/5}
}
@media(max-width:767px){
 .product-loop.has-tri:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;padding:24px}
 .product-loop .loop-tri:where(.nh, .nh *, .nh-home, .nh-home > body){margin:22px auto 6px;left:calc((var(--lw) - var(--rw)) / 2)}
}
@media(prefers-reduced-motion:reduce){.loop-run>span:where(.nh, .nh *, .nh-home, .nh-home > body){animation:none;offset-distance:calc(78% - var(--k) * .375%)}.loop-node:where(.nh, .nh *, .nh-home, .nh-home > body):before{animation:none}}
@supports not (offset-path:path("M0 0")){.loop-run:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}}
.product-accordion:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
.product-card.is-open .product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){animation:product-panel-enter .6s var(--ease) both}
.product-accordion .product-card:where(.nh, .nh *, .nh-home, .nh-home > body){transition:background .3s var(--ease)}
.product-card:not(.is-open) .product-name:where(.nh, .nh *, .nh-home, .nh-home > body){transition:color .3s var(--ease)}
.case-carousel .case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 48px;perspective:1200px;scroll-padding-inline:48px;cursor:grab}
.case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.96);transform-origin:center;transition:transform .6s var(--ease),opacity .4s var(--ease)}
.case-viewport>.case-panel.is-before:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.96) rotateY(3deg)}
.case-viewport>.case-panel.is-after:where(.nh, .nh *, .nh-home, .nh-home > body){transform:scale(.96) rotateY(-3deg)}
.case-viewport>.case-panel.is-active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:none}
.case-viewport>.case-panel:not(.is-active)>.case-copy:where(.nh, .nh *, .nh-home, .nh-home > body),.case-viewport>.case-panel:not(.is-active)>.case-chart:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.6}
.case-viewport.is-dragging:where(.nh, .nh *, .nh-home, .nh-home > body){scroll-snap-type:none;cursor:grabbing;user-select:none;scroll-behavior:auto}
.case-viewport.is-dragging .case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){pointer-events:none}
.case-result:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;color:var(--blue);margin-top:24px;font-weight:600}
.case-section .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);color:var(--muted)}
.case-context:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:420px;font-size:var(--fs-note);line-height:2}
.case-section .source-note:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:900px;margin-inline:auto;line-height:2;font-size:var(--fs-note)}
.pilot .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:440px}
.dialog-body .detail-overview p:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.6;color:var(--ink);font-weight:600}
.dialog-body .detail-overview p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;color:var(--muted);margin-bottom:24px}
.detail-section:where(.nh, .nh *, .nh-home, .nh-home > body){border-radius:var(--radius-m);background:var(--canvas);margin-top:8px;overflow:hidden}
.detail-section summary:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:8px;list-style:none;cursor:pointer;padding:24px;font-size:var(--fs-body);line-height:1.5;font-weight:600}
.detail-section summary:where(.nh, .nh *, .nh-home, .nh-home > body)::-webkit-details-marker{display:none}
.detail-number:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);font-weight:500;color:var(--blue)}
.detail-expand:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);font-weight:400;transition:transform .3s var(--ease);color:var(--muted)}
.detail-section[open] .detail-expand:where(.nh, .nh *, .nh-home, .nh-home > body){transform:rotate(45deg)}
.detail-section-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0 24px 8px}
.dialog-body .detail-section-body p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.86;white-space:pre-line;margin-bottom:16px;color:var(--muted)}
.detail-section-body p:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:500}
.detail-table-scroll:where(.nh, .nh *, .nh-home, .nh-home > body){overflow-x:auto;margin-bottom:24px}
.detail-table:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;font-size:var(--fs-note);line-height:1.67;border-collapse:collapse;text-align:left}
.detail-table caption:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:left;margin-bottom:8px;font-size:var(--fs-aux)}
.detail-table th:where(.nh, .nh *, .nh-home, .nh-home > body),.detail-table td:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 8px;border-bottom:1px solid #dce2ec;white-space:nowrap}
.detail-table th:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.detail-related:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}
.detail-related button:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue-tint);color:var(--blue);font-size:var(--fs-note);padding:8px 16px;border-radius:var(--radius-s)}
@media(hover:hover){
  .hero-learn:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
  .partner-heading button:not(:disabled):hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--primary);color:var(--white)}
  .product-card:not(.is-open):hover .product-name:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
  .detail-section summary:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
}
@media(max-width:1100px){.cost-layout:where(.nh, .nh *, .nh-home, .nh-home > body){gap:48px}.cost-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.cost-card:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px}.product-role:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}}
@media(min-width:768px){.products .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:var(--space-head)}.products:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:var(--space-module)}.product-trigger:where(.nh, .nh *, .nh-home, .nh-home > body){height:64px}.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){height:236px}.product-panel .product-visual:where(.nh, .nh *, .nh-home, .nh-home > body){height:212px}}
@media(max-width:767px){
 .hero-actions:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px;flex-wrap:wrap;margin-top:24px}.hero-learn:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px}.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px;line-height:24px}.hero-description br:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}.hero-retention:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;max-width:none;margin:24px auto 0}
 .partners:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:0;padding-block:8px var(--space-module)}.partner-track:where(.nh, .nh *, .nh-home, .nh-home > body){grid-auto-columns:128px;grid-template-rows:repeat(2,48px);gap:8px}.partner-mark:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px}.partner-mark img:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:112px;max-height:32px}.partner-nextie strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}.partner-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:16px}
 .cost-layout:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}.cost-intro:where(.nh, .nh *, .nh-home, .nh-home > body){position:static}.cost-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25}.cost-intro p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71;max-width:none}.cost-stack:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px;gap:48px;padding-bottom:40px}.cost-card:where(.nh, .nh *, .nh-home, .nh-home > body){top:108px;min-height:256px;padding:24px;border-radius:var(--radius-l)}.cost-card:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){top:124px}.cost-card h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;margin-top:24px}.cost-card p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71;margin-top:16px}.cost-quote:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;padding:24px;margin-top:0}.cost-quote p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.75;margin-top:8px}
 .intelligence-copy h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.4}.principles-heading:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.56;margin-top:32px}.principles-heading+.principles:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}.research-notes:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.82}
 .product-loop:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px;display:block}.product-loop>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px;font-size:var(--fs-aux)}.loop-steps:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);gap:8px;margin-top:16px}.product-accordion:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
 .case-carousel .case-viewport:where(.nh, .nh *, .nh-home, .nh-home > body){padding:8px 0;perspective:none;scroll-padding-inline:0}.case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){transform:none!important}.case-copy h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}.case-context:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.82}.case-result:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;margin-top:16px}.case-section .source-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.82}.comparison-label:where(.nh, .nh *, .nh-home, .nh-home > body){overflow-wrap:anywhere}
 .pilot .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:none}
 .dialog-body .detail-overview p:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.56}.detail-section summary:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px;grid-template-columns:20px minmax(0,1fr) 16px;font-size:var(--fs-body)}.detail-section-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0 16px 4px}.dialog-body .detail-section-body p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.85}.dialog-body h2:where(.nh, .nh *, .nh-home, .nh-home > body){overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){
 .cost-card:where(.nh, .nh *, .nh-home, .nh-home > body){position:static;transform:none!important;opacity:1!important;will-change:auto}.case-viewport>.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body){transform:none!important;transition:none}.partner-track:where(.nh, .nh *, .nh-home, .nh-home > body){scroll-behavior:auto}.product-panel-inner:where(.nh, .nh *, .nh-home, .nh-home > body){animation:none!important}
}

.still-mode:where(.nh, .nh *, .nh-home, .nh-home > body){scroll-behavior:auto}.still-mode *:where(.nh, .nh *, .nh-home, .nh-home > body){animation:none!important;transition:none!important}

.detail-stats:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:24px 0 8px}.detail-stats>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--blue-tint);border-radius:var(--radius-m)}.detail-stats strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;color:var(--blue)}.detail-stats span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:var(--muted)}.dialog-body .detail-stat-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);color:#8190a8;margin-bottom:24px}@media(max-width:767px){.detail-stats:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}.detail-stats>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 8px}.detail-stats strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.56}.detail-stats span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}}

/* User reference layouts: flat light surfaces, original-color partners. */
.partner-marquee .partner-track:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;overflow:hidden;padding:8px 0;touch-action:pan-y;cursor:grab;scroll-snap-type:none}
.partner-marquee .partner-track.is-dragging:where(.nh, .nh *, .nh-home, .nh-home > body){cursor:grabbing}
.partner-belt:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;width:max-content;will-change:transform;user-select:none}
.partner-set:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex:none;gap:24px;padding-right:24px}
.partner-marquee .partner-mark:where(.nh, .nh *, .nh-home, .nh-home > body){width:176px;height:80px;flex:none;padding:16px}
.partner-marquee .partner-mark img:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:152px;max-height:48px;width:auto;height:auto;filter:none;opacity:1;pointer-events:none}
.partner-marquee .partner-nextie:where(.nh, .nh *, .nh-home, .nh-home > body){color:#222}
.reference-title:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.25;letter-spacing:-1.2px}
.reference-title>span:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.cost-columns:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:1.1fr 1fr;gap:96px;align-items:start;margin-top:var(--space-head)}
.cost-caption:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;color:var(--muted);font-weight:500;margin-bottom:32px}


.cost-row:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px;padding:0;border:0}
.cost-row+.cost-row:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:40px}
.cost-number:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:2.67;color:#87909d;font-weight:500}
.round-icon:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center;width:48px;height:48px;border-radius:var(--radius-pill);color:var(--blue);background:var(--white);border:1px solid #dce3ed;outline:1px solid #e5eaf2;outline-offset:4px}
.round-icon .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body),.round-icon>svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:24px;height:24px}
.round-icon>svg:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cost-row h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;margin-bottom:8px}
.cost-row p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.75;color:var(--muted)}
.cost-reference:where(.nh, .nh *, .nh-home, .nh-home > body){padding:40px;border-radius:var(--radius-l);background:var(--white)}
.cost-reference-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;color:var(--blue);font-weight:500}
.cost-reference blockquote:where(.nh, .nh *, .nh-home, .nh-home > body){margin:24px 0 0;padding:0;font-size:var(--fs-h3);line-height:1.67;font-weight:500;text-wrap:pretty}
/* ===== 研究屏 Nex 卡片 · 10-29 评审会清单第 1、2 条（韩震华 approve）=====
   1 三张预览图统一成白底发布页风格（韩震华：不要黑底，用原来 N2 / N2.5 的白底图）：N2、N2.5 用原图；
     N1 照 N2.5 原图版式补一张（Nex 字标 + Nex-N1 + 副标题原文作大标语 + 按钮行 + N1 发布页官方评测图），同为 1440×900；
   2 评测分数整块去掉（评测节选、两组数字、评测名、模型名、对比说明），数字增长动画脚本和本屏底部三行脚注随之去掉；
     卡片只留预览图、上方版本胶囊与生长线、开源状态、副标题、一句说明、「查看完整评测 ↗」，三张卡等高，错落与入场动效不变。
   本块在研究屏原有样式之前，同名属性用了更高的选择器权重。 */
.nex-deck>.nex-card .release-body>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:16px}
/* 卡片去掉分数后矮了约 110px，错落按原来「一级 ≈ 卡高 9.5%」的比例缩小（生长线和节点由脚本按卡片实际位置重算，自动跟上） */
#research .nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){--nex-step:40px}
@media(max-width:1279px){#research .nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){--nex-step:34px}}
.quote-clause:where(.nh, .nh *, .nh-home, .nh-home > body){white-space:nowrap}

.cost-promise:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:flex-start;gap:8px;max-width:1040px;margin-top:48px;font-size:var(--fs-body);line-height:1.75;font-weight:500}
.cost-promise>svg:where(.nh, .nh *, .nh-home, .nh-home > body){flex:none;width:20px;height:20px;margin-top:4px;stroke:var(--blue);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cost-promise strong:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);font-weight:600}
.ownership-intro:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:920px;margin-inline:auto;text-align:center}
.reference-title>.ownership-phrase:where(.nh, .nh *, .nh-home, .nh-home > body){color:inherit;white-space:nowrap}
.ownership-intro>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:760px;margin:24px auto 0;font-size:var(--fs-body);line-height:1.75;color:var(--muted)}
.ownership-caption:where(.nh, .nh *, .nh-home, .nh-home > body){margin:var(--space-head) 0 32px;text-align:center;font-size:var(--fs-aux);line-height:1.43;color:var(--muted);font-weight:500}
.ownership-cards:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:64px}
.ownership-cards>article:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;border:0;border-radius:0;background:transparent}
.ownership-number:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;font-size:var(--fs-note);line-height:1.67;color:#87909d;margin-bottom:24px}

.ownership-cards h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;margin-bottom:16px}
.ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.75;color:var(--muted)}
.release-timeline:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:24px;isolation:isolate}
.release-route:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:14px;top:30px;width:calc((100% + 24px)*2/3);height:96px;max-width:none;overflow:visible;z-index:-1}
.release-route path:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-dasharray:0 9;vector-effect:non-scaling-stroke}
.release-milestone:where(.nh, .nh *, .nh-home, .nh-home > body){min-width:0}
.release-milestone:nth-of-type(1):where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:96px}
.release-milestone:nth-of-type(2):where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:48px}
.release-node:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:12px;height:12px;border:3px solid var(--blue);border-radius:var(--radius-pill);background:var(--white);margin:0 0 8px 8px;outline:4px solid #e2e7ff}
.release-entry:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;outline-offset:8px;border-radius:var(--radius-l)}
.release-version:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;width:fit-content;padding:8px 16px;margin-bottom:16px;border-radius:var(--radius-pill);background:var(--white);font-size:var(--fs-body);line-height:1.56;letter-spacing:0;font-weight:600}
.release-version>span:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.release-version>i:where(.nh, .nh *, .nh-home, .nh-home > body){color:#9aa8bf;font-style:normal}
.release-version time:where(.nh, .nh *, .nh-home, .nh-home > body){white-space:nowrap}
.release-body:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--white);padding:32px 24px;border-radius:var(--radius-l);transition:background .3s var(--ease)}
.release-body h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;font-weight:600;margin:0 0 16px;text-wrap:balance}
.release-body>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;color:#59677b;margin-bottom:16px}
.release-body .open-status:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-note);line-height:1.67;color:var(--blue);padding:4px 16px;border-radius:var(--radius-pill);background:#eaf0ff;margin-bottom:24px}
.release-body .open-status:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'✓';font-size:var(--fs-aux);font-weight:600}
.release-body .release-excerpt:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;color:var(--blue);font-weight:600;margin-bottom:8px;font-size:var(--fs-note);line-height:1.67}
.release-body .release-scores:where(.nh, .nh *, .nh-home, .nh-home > body){gap:0;margin-bottom:24px}
.release-body .release-score:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:auto minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid #dce3ed}
.release-body .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.11}
.release-body .release-score b:where(.nh, .nh *, .nh-home, .nh-home > body),.release-body .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body),.release-body .release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.43}
.release-body .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.release-body .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body){border:0;color:var(--blue);font-size:var(--fs-aux);line-height:1.43;gap:8px;padding:0}
.release-body .release-cta>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:inherit}
.release-body .release-cta .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:16px;height:16px}
@media(hover:hover){.release-entry:hover .release-body:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f0f3ff}.release-entry:hover .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body){text-decoration:underline;text-underline-offset:4px}}
@media(max-width:1100px){
 .cost-columns:where(.nh, .nh *, .nh-home, .nh-home > body){gap:40px}.cost-reference:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}.cost-reference blockquote:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.8}
 .ownership-cards:where(.nh, .nh *, .nh-home, .nh-home > body){gap:40px}.ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71}
 .release-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}.release-body .release-score:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:auto minmax(0,1fr);gap:16px}.release-body .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.2}.release-version:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.5;gap:8px}
}
@media(max-width:900px){
 .cost-columns:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px}.cost-reference:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:none}.cost-reference blockquote:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.67}
 .ownership-cards:where(.nh, .nh *, .nh-home, .nh-home > body){gap:32px}
 .release-timeline:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px;padding-top:0}
 .release-route:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}.release-timeline:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;top:6px;bottom:0;left:13px;border-left:2px dotted #9aafff;z-index:-1}
 .release-milestone:nth-of-type(n):where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:0;position:relative;padding-left:40px}.release-node:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;top:14px;left:0}
 .release-version:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.56}.release-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:32px}.release-body .release-score:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:auto minmax(0,1fr)}.release-body .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.11}
}
@media(max-width:767px){
 .partner-set:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px;padding-right:16px}.partner-marquee .partner-mark:where(.nh, .nh *, .nh-home, .nh-home > body){width:144px;height:64px;padding:8px}.partner-marquee .partner-mark img:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:120px;max-height:40px}
 .reference-title:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.35;letter-spacing:-.8px}.cost-columns:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:var(--space-head)}.cost-row:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:20px minmax(0,1fr);gap:8px}.cost-row+.cost-row:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px}.cost-number:where(.nh, .nh *, .nh-home, .nh-home > body){line-height:28px}.round-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px}.round-icon .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body),.round-icon>svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:20px;height:20px}
 .cost-row h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4}.cost-row p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71}.cost-reference blockquote:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.8}.cost-promise:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.75;margin-top:32px;gap:8px}.cost-promise>svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:20px;height:20px}
 .ownership-intro:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:left}.ownership-intro>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71}.ownership-intro>p br:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}.ownership-caption:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:left;margin:var(--space-head) 0 24px}.ownership-cards:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:40px}.ownership-cards>article:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0}.ownership-number:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:8px}.ownership-cards h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;margin-bottom:8px}.ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71}
 .release-milestone:nth-of-type(n):where(.nh, .nh *, .nh-home, .nh-home > body){padding-left:32px}.release-version:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.5;padding:8px 16px}.release-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px}.release-body h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4}.release-body .release-score:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:auto minmax(0,1fr);gap:16px}.release-body .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.2}.release-body .release-score b:where(.nh, .nh *, .nh-home, .nh-home > body),.release-body .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body),.release-body .release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67}
}

/* Requested page palette: pure white canvas and F5F6F9 cards. */
.header:where(.nh, .nh *, .nh-home, .nh-home > body){background:rgba(255,255,255,.96)}
.cost-reference:where(.nh, .nh *, .nh-home, .nh-home > body),.release-body:where(.nh, .nh *, .nh-home, .nh-home > body),.release-version:where(.nh, .nh *, .nh-home, .nh-home > body),.case-panel:where(.nh, .nh *, .nh-home, .nh-home > body),.product-loop:where(.nh, .nh *, .nh-home, .nh-home > body),.pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button:nth-child(n):where(.nh, .nh *, .nh-home, .nh-home > body),.detail-section:where(.nh, .nh *, .nh-home, .nh-home > body),.detail-stats>div:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--card);box-shadow:none}
.product-accordion .product-card.is-open:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--card)}
.product-visual:where(.nh, .nh *, .nh-home, .nh-home > body),.runtime-visual:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--white);color:var(--ink)}
.runtime-visual .demo-top:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--ink)}
.runtime-visual .demo-mini:where(.nh, .nh *, .nh-home, .nh-home > body),.runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--muted)}
.runtime-icon:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.runtime-glow:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue-tint)}
.runtime-track>path:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#b5c0d1}.runtime-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue)}
.runtime-notes:where(.nh, .nh *, .nh-home, .nh-home > body){border-color:#e2e5ec}
.partner-heading button:where(.nh, .nh *, .nh-home, .nh-home > body),.case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--card)}
.solution-list>button:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:none}
@media(hover:hover){
 .release-entry:hover .release-body:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--card)}
 .solution-list>button:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--ink)}
 .solution-list>button:hover p:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--muted)}
 .solution-list>button:hover h3:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button:hover>.mono:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-list>button:hover>.ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
}

/* Industry accordion: expansion is a translated clipping aperture, so text
   and artwork retain their proportions while neighbouring panels move. */
.solution-gallery:where(.nh, .nh *, .nh-home, .nh-home > body){--panel-pad:24px;--panel-height:420px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative;isolation:isolate;overflow:hidden}
.solution-panel:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-width:0;min-height:var(--panel-height);overflow:hidden;isolation:isolate;background:var(--card);border-radius:var(--radius-l);text-align:left}
.solution-gallery.is-ready:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;height:var(--gallery-height)}
.solution-gallery.is-ready .solution-panel:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;width:var(--panel-width);height:var(--panel-height);min-height:0;transform:translate3d(var(--panel-x),var(--panel-y),0);clip-path:inset(0 var(--panel-clip-right) var(--panel-clip-bottom) 0 round 16px);transition:transform .6s var(--ease),clip-path .6s var(--ease);will-change:transform,clip-path}
.solution-art:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:24px;width:100%;height:calc(100% - 164px);pointer-events:none;mix-blend-mode:multiply;opacity:.62;transform:perspective(800px) translate3d(var(--art-shift,0px),0,0) rotateY(var(--art-tilt,0deg)) scale(1.06);transition:transform .6s var(--ease),opacity .4s var(--ease)}
.solution-art img:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:100%;height:100%;object-fit:contain;transform:translate3d(var(--pointer-x,0px),var(--pointer-y,0px),0);transition:transform .5s var(--ease);user-select:none;pointer-events:none}
.solution-panel.is-active .solution-art:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1;transform:perspective(800px) translate3d(var(--art-shift,0px),0,0) rotateY(0deg) scale(1)}
.solution-title:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:var(--panel-pad);bottom:24px;margin:0;font-size:var(--fs-h3);line-height:1.33;font-weight:600;letter-spacing:-.4px;white-space:nowrap;transform-origin:left center;transform:translate3d(0,var(--title-shift,0px),0) scale(.833333);transition:transform .6s var(--ease),color .3s var(--ease);z-index:2;pointer-events:none}
.solution-panel.is-active .solution-title:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translate3d(0,var(--title-shift,-88px),0) scale(1)}
.solution-panel-trigger:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:var(--radius-l);background:none;z-index:3;cursor:pointer;touch-action:pan-y}
.solution-panel-trigger:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline:0}
.solution-info:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:var(--panel-pad);right:var(--panel-pad);bottom:24px;height:72px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;z-index:4;pointer-events:none;opacity:0;transform:translateY(12px);transition:opacity .25s var(--ease),transform .5s var(--ease)}
.solution-panel.is-active .solution-info:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1;transform:translateY(0);transition-delay:.16s}
/* 窄屏（≤400）一句话折两行时，信息区按内容长高、和按钮留 12px，不再贴住 */
@media(max-width:400px){.solution-info:where(.nh, .nh *, .nh-home, .nh-home > body){height:auto;min-height:72px;gap:12px}.solution-info>p:where(.nh, .nh *, .nh-home, .nh-home > body){text-wrap:balance}}
.solution-info>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;color:var(--muted);margin:0}
.solution-entry:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:8px;padding:0;color:var(--blue);font-size:var(--fs-aux);line-height:1.71;font-weight:500;pointer-events:none;transition:color .3s var(--ease)}
.solution-info>.solution-entry:only-child:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:auto}
.solution-entry .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:20px;height:20px;transition:transform .5s var(--ease)}
.solution-panel.is-active .solution-entry:where(.nh, .nh *, .nh-home, .nh-home > body){pointer-events:auto}
.solution-entry:active:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateY(1px)}
.solution-focus-ring:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;width:var(--panel-visible-width,100%);height:var(--panel-visible-height,100%);border:2px solid var(--blue);border-radius:var(--radius-l);opacity:0;transition:opacity .3s var(--ease);pointer-events:none;z-index:5}
.solution-panel:has(:focus-visible) .solution-focus-ring:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1}
.solution-gallery.is-measuring .solution-panel:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-gallery.is-measuring .solution-art:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-gallery.is-measuring .solution-title:where(.nh, .nh *, .nh-home, .nh-home > body){transition:none}
@media(hover:hover){.solution-entry:hover .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateX(4px)}.solution-entry:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--ink)}}
@media(min-width:901px) and (max-width:1100px){
 .solution-gallery:where(.nh, .nh *, .nh-home, .nh-home > body){--panel-pad:16px}.solution-title:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translate3d(0,var(--title-shift,0px),0) scale(.75)}
}
@media(max-width:900px){
 .solution-gallery:where(.nh, .nh *, .nh-home, .nh-home > body){--panel-height:320px;--panel-pad:24px;grid-template-columns:1fr;gap:8px}
 .solution-panel:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:320px}.solution-art:where(.nh, .nh *, .nh-home, .nh-home > body){top:16px;opacity:0}
 .solution-title:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4;transform:translate3d(0,var(--title-shift,0px),0)}
 .solution-panel.is-active .solution-title:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translate3d(0,var(--title-shift,-88px),0)}
 .solution-info>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71}
}
@media(prefers-reduced-motion:reduce){
 .solution-gallery .solution-panel:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-gallery .solution-title:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-gallery .solution-art:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-gallery .solution-info:where(.nh, .nh *, .nh-home, .nh-home > body),.solution-gallery .solution-art img:where(.nh, .nh *, .nh-home, .nh-home > body){transition:none}
 .solution-art img:where(.nh, .nh *, .nh-home, .nh-home > body){transform:none!important}
}

/* Circular customer cases. The GL canvas is a progressive enhancement over
   three real, keyboard-accessible cards; full evidence stays live HTML/SVG. */
.case-tabs>button[aria-pressed=true]:where(.nh, .nh *, .nh-home, .nh-home > body){background:none;color:var(--ink)}
.circular-case-carousel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:44px minmax(0,1fr) 44px;gap:24px}
.circular-case-carousel .case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;z-index:2}
.circular-gallery:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;grid-column:2;grid-row:1;width:100%;height:var(--case-stage-height,540px);overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;isolation:isolate}
.circular-gallery[data-pointer]:where(.nh, .nh *, .nh-home, .nh-home > body){cursor:pointer}
.circular-gallery[data-dragging]:where(.nh, .nh *, .nh-home, .nh-home > body){cursor:grabbing}
.circular-gallery-canvas:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;display:none;width:100%;height:100%;pointer-events:none}
.is-webgl>.circular-gallery-canvas:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}
.circular-gallery-labels:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;pointer-events:none}
.circular-gallery-label:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;top:0;left:0;line-height:1.2;white-space:nowrap;will-change:transform,opacity}
.circular-gallery-caption:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.circular-gallery-list:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;gap:24px;overflow:auto;scroll-snap-type:x mandatory;list-style:none;margin:0;padding:64px 24px;scrollbar-width:none}
.circular-gallery-list>li:where(.nh, .nh *, .nh-home, .nh-home > body){flex:0 0 78%;max-width:420px;scroll-snap-align:center;min-width:0}
.circular-gallery-list button:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:100%;padding:0;background:none;text-align:center}
.circular-gallery-list img:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:100%;height:auto;border-radius:var(--radius-l)}
.circular-gallery-list button>span:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin-top:16px;font-size:var(--fs-h3);line-height:1.4;font-weight:600}
.is-webgl>.circular-gallery-list:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.case-controls:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:0}
.case-gallery-hint:where(.nh, .nh *, .nh-home, .nh-home > body){text-align:center;font-size:var(--fs-note);line-height:1.67;color:var(--muted);margin-top:8px}
.case-section .source-note:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
#case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start;background:none;padding:16px 32px 32px;border-radius:0;overflow:visible;opacity:1;transform:none;transition:none}
#case-expanded .case-full-panel[hidden]:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
#case-expanded .case-copy:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:16px}
#case-expanded .case-lead:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.75;color:var(--muted);max-width:none;min-height:0;margin:0 0 32px;text-wrap:pretty}
.case-facts:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;gap:24px;font-size:var(--fs-aux);line-height:1.71;margin:0}
.case-facts>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px}
.case-facts dt:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--muted)}
.case-facts dd:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;color:var(--ink);font-weight:500;overflow-wrap:anywhere}
.case-legend:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px;margin-top:32px;font-size:var(--fs-aux);line-height:1.71;color:var(--muted)}
.case-legend>span:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:8px;overflow-wrap:anywhere}
.case-legend i:where(.nh, .nh *, .nh-home, .nh-home > body){flex-shrink:0;width:10px;height:10px;border:2px solid #a8b3c3;border-radius:var(--radius-pill);background:var(--white)}
.case-legend .trained i:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue);border-color:var(--white);outline:1px solid #adbaff}
.case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--card);padding:32px;border-radius:var(--radius-l);min-width:0}
.case-metric-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}
.case-metric-heading h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;font-weight:500;color:var(--muted);margin:0}
.case-metric-tag:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-block;padding:4px 16px;background:#e9edff;color:var(--blue);border-radius:var(--radius-pill);font-size:var(--fs-note);line-height:1.67;font-weight:500;white-space:nowrap}
.case-accuracy:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:32px}
.case-accuracy>strong:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;font-size:var(--fs-display);line-height:1.11;font-weight:600;color:var(--blue);letter-spacing:-2px;font-variant-numeric:tabular-nums}
.case-accuracy>strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.2;margin-left:4px;letter-spacing:0}
.case-dumbbell+.case-dumbbell:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px}
.case-dumbbell-values:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:auto minmax(24px,1fr) auto;align-items:end;gap:16px}
.case-dumbbell-values>div:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px;color:#8190a8}
.case-dumbbell-values>.trained:where(.nh, .nh *, .nh-home, .nh-home > body){align-items:flex-end;color:var(--blue);text-align:right}
.case-dumbbell-values>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;color:var(--muted)}
.case-dumbbell-values strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;font-weight:500;letter-spacing:-.8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.11;font-weight:600}
.case-dumbbell-values strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;letter-spacing:0;margin-left:4px}
.case-dumbbell-trail:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;position:relative;height:40px;isolation:isolate}
.case-dumbbell-trail:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;left:4px;right:4px;top:50%;border-top:3px dotted #6782ff;z-index:-1}
.case-dumbbell-trail>i:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:8px;height:8px;border:2px solid #a8b3c3;background:var(--card);border-radius:var(--radius-pill)}
.case-dumbbell-trail>i:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue);border-color:var(--card);outline:1px solid #a6b6ff}
.case-chart-summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.6;font-weight:500;margin:0 0 16px;text-wrap:balance}
.case-chart-summary strong:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);font-weight:600}
.case-chart-summary .nb:where(.nh, .nh *, .nh-home, .nh-home > body),.case-lead .nb:where(.nh, .nh *, .nh-home, .nh-home > body){white-space:nowrap}
.case-marketing-chart:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:100%;height:auto;overflow:visible;font-family:inherit}
.chart-gridline:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#e0e4ec;stroke-width:1}
.chart-axis:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#a8b3c3;stroke-width:1;fill:none}
.chart-tick:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px;fill:var(--muted)}
.chart-reference:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#8190a8;stroke-width:1.5;stroke-dasharray:6 6}
.chart-reference-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px;fill:#66758c;font-weight:500}
.chart-score-trail:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:var(--blue);stroke-width:3;stroke-dasharray:0 8;stroke-linecap:round}
.chart-base-dot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--card);stroke:#a8b3c3;stroke-width:3}
.chart-trained-dot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);stroke:#dbe2ff;stroke-width:3}
.chart-base-value:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#8190a8;font-size:28px;font-weight:600}
.chart-trained-value:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);font-size:36px;font-weight:600}
.chart-trained-label:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);font-size:14px;font-weight:500}
.case-chart-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;color:var(--muted);margin:8px 0 0}
.case-chart-conclusion:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px}
.case-chart-conclusion>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;color:var(--muted)}
.case-chart-conclusion>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.56;margin-top:8px;font-weight:500;text-wrap:balance}
.case-original-link:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:8px;margin:16px 32px 32px;font-size:var(--fs-note);line-height:1.67;color:var(--blue)}
@media(hover:hover){.case-original-link:hover:where(.nh, .nh *, .nh-home, .nh-home > body){text-decoration:underline;text-underline-offset:4px}}
@media(max-width:1100px){
 .circular-case-carousel:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
 #case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){gap:32px}.case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px}
 .case-dumbbell-values:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}.case-dumbbell-values strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}.case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.2}
}
@media(max-width:767px){
 .case-tabs:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:8px}.case-tabs>button:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.71}
 .circular-case-carousel:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin:0}
 .circular-gallery:where(.nh, .nh *, .nh-home, .nh-home > body){height:var(--case-stage-height,380px)}
 .circular-case-carousel .case-arrow:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;top:50%;bottom:auto;transform:translateY(-50%);width:32px;height:32px;background:var(--card)}
 .circular-case-carousel .case-prev:where(.nh, .nh *, .nh-home, .nh-home > body){left:-16px}.circular-case-carousel .case-next:where(.nh, .nh *, .nh-home, .nh-home > body){right:-16px}
 .case-controls .case-pagination:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:24px;font-size:var(--fs-note)}
 .case-gallery-hint:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;max-width:280px;margin:8px auto 0}
 #case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:24px;padding:8px 24px 24px}
 #case-expanded .case-copy:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:0}#case-expanded .case-lead:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;margin-bottom:24px}
 .case-facts:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;gap:16px}.case-facts>div:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:32px minmax(0,1fr);gap:8px}
 .case-legend:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;font-size:var(--fs-note);line-height:1.67;gap:8px}
 .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px}.case-accuracy>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display);line-height:1.07}.case-accuracy>strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}
 .case-dumbbell-values:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px;grid-template-columns:auto minmax(12px,1fr) auto}
 .case-dumbbell-values strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}.case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.2}
 .case-dumbbell-values strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);margin-left:2px}.case-dumbbell-values>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67}
 .case-dumbbell-trail:where(.nh, .nh *, .nh-home, .nh-home > body){height:36px}.case-metric-heading:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}.case-metric-heading h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71}.case-metric-tag:where(.nh, .nh *, .nh-home, .nh-home > body){padding:4px 8px}
 .case-chart-summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.56}.case-chart-conclusion>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.5}
 .case-marketing-chart .chart-tick:where(.nh, .nh *, .nh-home, .nh-home > body),.case-marketing-chart .chart-reference-label:where(.nh, .nh *, .nh-home, .nh-home > body),.case-marketing-chart .chart-trained-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px}
 .case-original-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin:16px 16px 24px}
}
@media(max-width:359px){
 .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:16px}
 .case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.33}
}


/* 「为什么」与「智权」两段按普通文档流上下相接，滚多少走多少。 */
.intelligence-scenes:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}
.intelligence-scene-panel:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;display:grid;align-items:center;width:100%;background:var(--white)}
.scene-why:where(.nh, .nh *, .nh-home, .nh-home > body){z-index:1}.scene-ownership:where(.nh, .nh *, .nh-home, .nh-home > body){z-index:2}
.scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}

/* The selected gallery card becomes a live, readable surface in the same stage. */
.case-inline:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:50%;top:50%;z-index:3;transform-origin:center;background:var(--card);border-radius:var(--radius-l);opacity:0;visibility:hidden;will-change:transform,opacity;user-select:text;-webkit-user-select:text;cursor:pointer;overflow:hidden}
.case-inline-top:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 32px 0}
.case-inline-top h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33;font-weight:600;letter-spacing:0;margin:0}
.case-inline-close:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--white)}
.case-inline-close .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:20px;height:20px}
.case-inline-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 32px}
#case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;gap:40px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
#case-expanded .case-copy:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:0}
#case-expanded .case-lead:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:1.71;margin:0 0 24px}
#case-expanded .case-facts:where(.nh, .nh *, .nh-home, .nh-home > body){gap:16px}
#case-expanded .case-legend:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;gap:8px;font-size:var(--fs-note);line-height:1.67}
#case-expanded .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0;border-radius:0;background:none}
#case-expanded .case-accuracy:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:24px}
#case-expanded .case-accuracy>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.17}
#case-expanded .case-accuracy>strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}
#case-expanded .case-metric-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:8px}
#case-expanded .case-dumbbell+.case-dumbbell:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px}
#case-expanded .case-dumbbell-values>div:where(.nh, .nh *, .nh-home, .nh-home > body){gap:4px}
#case-expanded .case-dumbbell-values strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.33}
#case-expanded .case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.2}
#case-expanded .case-dumbbell-trail:where(.nh, .nh *, .nh-home, .nh-home > body){height:36px}
#case-expanded .case-marketing-chart:where(.nh, .nh *, .nh-home, .nh-home > body){max-height:320px}
#case-expanded .case-original-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin:24px 0 0}
.is-expanded:not(.is-webgl)>.circular-gallery-list:where(.nh, .nh *, .nh-home, .nh-home > body){visibility:hidden}
@media(hover:hover){.case-inline-close:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}}
@media(max-width:767px){
 .scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
 .case-inline-top:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px 0;gap:16px}
 .case-inline-top h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.4}
 .case-inline-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 24px}
 #case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px}
 #case-expanded .case-facts:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:1.67;gap:8px}
 #case-expanded .case-marketing-chart:where(.nh, .nh *, .nh-home, .nh-home > body){max-height:none}
 #case-expanded .case-chart-summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.56}
}

.case-section:where(.nh, .nh *, .nh-home, .nh-home > body){overflow-anchor:none}
@media(max-width:767px) and (min-height:800px){.scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}}

/* 规则层补充：与导航共用的那一行（≤359px）里的两处小字，按注脚取值。 */
@media(max-width:359px){.section-top>.eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body),.section-note:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note)}}

/* 收尾 + 页脚：方案 B「晨光海拔」的最后一屏——收尾标语区下渐变进同一座雪山的夜色版，
   路线细线画到峰顶，峰顶一点金色营地灯，下面是深色页脚。 */
.summit:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;padding:var(--space-module) 0 72px;text-align:center;color:#1C2433}
.summit .glow:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:50%;top:-24px;width:900px;max-width:100%;height:500px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(246,227,191,.62),rgba(246,227,191,.26) 52%,rgba(246,227,191,0));pointer-events:none}
.motion-enabled:not(.motion-paused) .summit .glow:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transition:opacity .8s ease-out}
.motion-enabled:not(.motion-paused) .summit.lit .glow:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1}
.summit-in:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:3}
.summit .tagline:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-display);line-height:1.2;letter-spacing:-.02em}
.summit .tagline span:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}
.summit p:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;font-size:var(--fs-body);line-height:1.75;color:#5B6475;text-wrap:balance}
.summit .acts:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:40px;display:flex;justify-content:center;align-items:center;gap:32px}
.summit .btn:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 32px;border-radius:var(--radius-m);background:#1C2433;color:#fff;font-size:var(--fs-body);font-weight:600;letter-spacing:.02em;white-space:nowrap;transition:background .2s ease-out}
.summit .tlink:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-block;padding-bottom:3px;font-size:var(--fs-body);font-weight:500;color:#1C2433;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:opacity .2s ease-out}
@media(hover:hover){.summit .btn:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:#2C3649}.summit .tlink:hover:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.62}}
.motion-enabled:not(.motion-paused) .summit .rv:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transform:translateY(12px);transition:opacity .56s var(--ease) var(--d,0ms),transform .56s var(--ease) var(--d,0ms)}
.motion-enabled:not(.motion-paused) .summit .rv.in:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1;transform:none}

/* 夜色实底从山图高度的 60% 处起铺（山图高 = 上内边距 + 宽度 × 724/2172），任何宽度下都接得上、不露白缝 */
.footer:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1;margin-top:-200px;background:linear-gradient(#0E1A2E,#0E1A2E) 0 100%/100% calc(100% - (24px + 33.333vw) * .6) no-repeat;color:rgba(255,255,255,.64)}
.night:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;overflow:hidden;padding-top:24px;pointer-events:none;background:linear-gradient(180deg,rgba(247,249,252,0) 0%,rgba(233,237,244,.75) 16%,#C3CCDB 30%,#7584A1 46%,#34445F 64%,#16233A 82%,#0E1A2E 100%)}
.night .mtn:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;width:100%;aspect-ratio:2172/724}
.night .mtn-img:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;width:100%;height:100%}
.night .mtn-fade:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;right:0;bottom:0;height:46%;background:linear-gradient(180deg,rgba(14,26,46,0),rgba(14,26,46,.8) 55%,#0E1A2E 92%)}
.night .route:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:3}
.night .route-plan:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:rgba(255,255,255,.16);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.night .camp:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;z-index:5;left:82.73%;top:29.28%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:var(--radius-pill);background:#F0C36E;box-shadow:0 0 8px 3px rgba(233,182,90,.75),0 0 44px 16px rgba(200,144,47,.24)}
.foot-main:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) auto;gap:24px;margin-top:-96px;padding:0 0 64px}
.foot-id:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;justify-content:space-between;gap:32px}
.foot-copy:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:20px;color:rgba(255,255,255,.5)}
.foot-brand:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:var(--fs-h3);line-height:1;font-weight:600;letter-spacing:.06em}
.foot-brand svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:22px;height:28px}
.foot-col h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-note);line-height:18px;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.4)}
.foot-col ul:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;display:grid;gap:8px}
.foot-col a:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-aux);line-height:22px;color:rgba(255,255,255,.86);transition:color .2s ease-out}
.to-top:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center;align-self:end;width:40px;height:40px;border-radius:var(--radius-pill);color:rgba(255,255,255,.86);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);transition:box-shadow .2s ease-out,color .2s ease-out}
.to-top svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover){.foot-col a:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:#fff}.to-top:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}}
@media(max-width:1023px){
 .foot-main:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:repeat(3,minmax(0,1fr))}
 .foot-id:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1/-1;margin-bottom:16px}
 .to-top:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;right:0;bottom:64px}
}
@media(max-width:767px){
 .summit p:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:16px}
 .summit .acts:where(.nh, .nh *, .nh-home, .nh-home > body){gap:24px}
 .footer:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:-96px;background-size:100% calc(100% - (16px + 86.667vw) * .6)}
 .night:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:16px}
 .night .mtn:where(.nh, .nh *, .nh-home, .nh-home > body){width:260%;left:-145.1%}
 .foot-main:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:-64px;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px;padding-bottom:48px}
 .to-top:where(.nh, .nh *, .nh-home, .nh-home > body){bottom:48px}
}


/* Primary navigation, matching the production site: 产品 / 解决方案 / 研究 are drop-down
   menus (hover on desktop, tap to expand in the phone menu); their entries and 关于我们 open
   the production pages in a new window. The bar itself keeps this page's type and spacing. */
.site-nav:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:32px;font-size:14px;--nav-chevron:url('/assets/home/855b8d2fa099.svg')}
.nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;cursor:pointer;list-style:none}
.nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body)::-webkit-details-marker{display:none}
.nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body):after{content:'';flex:none;background:currentColor;-webkit-mask:var(--nav-chevron) center/contain no-repeat;mask:var(--nav-chevron) center/contain no-repeat}
.nav-menu[open]>summary:where(.nh, .nh *, .nh-home, .nh-home > body):after{transform:rotate(180deg)}
.mega:where(.nh, .nh *, .nh-home, .nh-home > body){display:none;padding:24px 18px 18px;background:#fff;border:1px solid #e6ebf3;color:#172235;font-size:16px;font-weight:400;line-height:1.6}
.nav-menu[open]>.mega:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}
.mega-head:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 4px 12px;margin-bottom:8px}
.mega-head .eyebrow:where(.nh, .nh *, .nh-home, .nh-home > body),.mega-head p:where(.nh, .nh *, .nh-home, .nh-home > body),.mega-copy small:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.mega-head h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;font-weight:500;line-height:1.4;letter-spacing:-.2px;color:#697180}
.mega-overview:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:12px;padding:7px 13px;border:1px solid #dbe4f0;border-radius:30px;color:#273b55;line-height:1.5;white-space:nowrap;transition:background .18s,border-color .18s,color .18s}
.mega-grid:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.mega-item:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:11px;min-width:0;padding:12px 10px;border-radius:12px;transition:background .18s,color .18s}
.mega-item:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f0f5ff;color:var(--blue);outline:none}
.mega-overview:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){background:#edf3ff;border-color:#c6d6ff;color:var(--blue)}
.mega-icon:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:10px;background:#edf2ff;color:var(--blue)}
.mega-icon .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:22px;height:22px}
.mega-copy:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:3px;min-width:0}
.mega-copy strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;font-weight:600;line-height:1.35}
.mega-copy>span:where(.nh, .nh *, .nh-home, .nh-home > body){color:#697b92}
.nav-contact:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
@media(hover:hover){
  .site-nav>a:hover:where(.nh, .nh *, .nh-home, .nh-home > body),.nav-menu>summary:hover:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
  .mega-item:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f0f5ff;color:var(--blue)}
  .mega-overview:hover:where(.nh, .nh *, .nh-home, .nh-home > body){background:#edf3ff;border-color:#c6d6ff;color:var(--blue)}
}
@media(min-width:768px){
  .nav-wrap:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative}
  .site-nav:where(.nh, .nh *, .nh-home, .nh-home > body),.nav-menu:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:stretch}
  .site-nav>a:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:12px}
  .site-nav .is-current:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--accent)}
  .nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;height:100%}
  .nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body):after{position:absolute;right:-17px;top:calc(50% - 5px);width:10px;height:10px;opacity:0;transition:opacity .18s ease}
  .nav-menu[open]>summary:where(.nh, .nh *, .nh-home, .nh-home > body):after,.nav-menu>summary:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body):after{opacity:1}
  .mega:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;top:100%;left:var(--mega-left,24px);width:min(680px,calc(100vw - 48px));max-height:calc(100dvh - 90px);overflow:auto;border-radius:18px;box-shadow:0 16px 45px #263e671c}
  .mega-models:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:768px) and (max-width:1100px){.site-nav:where(.nh, .nh *, .nh-home, .nh-home > body){gap:24px}}
@media(max-width:767px){
  .site-nav:where(.nh, .nh *, .nh-home, .nh-home > body){display:none;position:fixed;top:76px;left:0;width:100%;height:calc(100dvh - 76px);flex-direction:column;align-items:stretch;gap:28px;padding:40px 24px;overflow:auto;overscroll-behavior:contain;background:white}
  .site-nav.is-open:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex}
  .site-nav>a:where(.nh, .nh *, .nh-home, .nh-home > body),.nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--display);font-size:30px;line-height:1.3}
  .site-nav>*:where(.nh, .nh *, .nh-home, .nh-home > body){animation:hero-appear .6s var(--ease) both;animation-delay:calc(var(--i,0)*60ms)}
  .site-nav>:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){--i:1}.site-nav>:nth-child(3):where(.nh, .nh *, .nh-home, .nh-home > body){--i:2}.site-nav>:nth-child(4):where(.nh, .nh *, .nh-home, .nh-home > body){--i:3}.site-nav>:nth-child(5):where(.nh, .nh *, .nh-home, .nh-home > body){--i:4}
  .site-nav>.nav-contact:where(.nh, .nh *, .nh-home, .nh-home > body){--i:5;display:flex;align-items:center;gap:8px;margin-top:12px;font-size:22px;color:var(--blue)}
  .nav-menu>summary:where(.nh, .nh *, .nh-home, .nh-home > body):after{width:16px;height:16px;margin-left:12px}
  .nav-menu[open]>summary:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
  .mega:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:15px;border-radius:16px}
  .mega-head:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;padding-bottom:16px}
  .mega-overview:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;padding:8px 13px}
  .mega-grid:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:3px}
  .mega-item:where(.nh, .nh *, .nh-home, .nh-home > body){gap:12px;padding:14px 4px}
  .mega-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;border-radius:11px}
  .mega-icon .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:23px;height:23px}
  .mega-copy strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px}
}


/* ===== 导航下拉 · 1029 设计反馈（司咏琪）=====
   1. 图标：面性双色图标（内联 SVG，品牌蓝渐变；主形实色、辅形 45% 透明），统一 24 网格、同一底托；
   2. 文字层级：标题常规中等字重、说明字号更小更浅，都不加粗；顶部小标题为安静的灰色小字；
   3. 浮窗：去掉边框，换成干净、轻、扩散的柔和投影（偏品牌蓝，不发灰）。 */
.mega-defs:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.mega:where(.nh, .nh *, .nh-home, .nh-home > body){border:0}
.mega-head:where(.nh, .nh *, .nh-home, .nh-home > body){padding-bottom:10px}
.mega-head h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:13px;font-weight:400;line-height:1.5;letter-spacing:.2px;color:#8d95a3}
.mega-item:where(.nh, .nh *, .nh-home, .nh-home > body){gap:14px}
.mega-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;border-radius:12px;background:#f3f6ff;transition:background .18s}
.mega-glyph:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:24px;height:24px;fill:url(#mega-glyph-ink)}
.mega-glyph .g-s:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:.45}
.mega-copy:where(.nh, .nh *, .nh-home, .nh-home > body){gap:2px}
.mega-copy strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;font-weight:500;line-height:1.4;letter-spacing:-.1px;color:#172235;transition:color .18s}
.mega-copy>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:13px;font-weight:400;line-height:1.5;color:#8a93a3;text-wrap:balance}
.mega-item:focus-visible strong:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
.mega-item:focus-visible .mega-icon:where(.nh, .nh *, .nh-home, .nh-home > body){background:#fff}
@media(hover:hover){
  .mega-item:hover strong:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
  .mega-item:hover .mega-icon:where(.nh, .nh *, .nh-home, .nh-home > body){background:#fff}
}
@media(min-width:768px){
  .mega:where(.nh, .nh *, .nh-home, .nh-home > body){box-shadow:0 2px 6px rgba(41,80,255,.04),0 12px 28px -6px rgba(36,58,120,.08),0 28px 64px -16px rgba(36,58,120,.12)}
}
@media(max-width:767px){
  .mega:where(.nh, .nh *, .nh-home, .nh-home > body){background:#f7f9fc;box-shadow:none}
  .mega-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:40px;height:40px;border-radius:12px;background:#fff}
  .mega-glyph:where(.nh, .nh *, .nh-home, .nh-home > body){width:24px;height:24px}
  .mega-copy strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:17px}
  .mega-copy>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px}
}

/* Approved 1028 dropdown-navigation page: full-width partners and quieter scenes. */
.partners.partner-marquee:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;max-width:none;margin-inline:0;padding-block:24px 64px}
.partner-marquee .partner-track:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%;padding-block:8px;overflow:hidden}
.partner-marquee .hero-retention:where(.nh, .nh *, .nh-home, .nh-home > body){width:min(900px,calc(100% - 96px));max-width:none;margin:32px auto 0;text-align:center}

/* The photo, route, and landmarks are resized together in their shared SVG space. */
.hero .ascent-ripple:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:var(--locator-accent);stroke-width:1;opacity:0;pointer-events:none}

/* ── 首屏攀登线 · 方向②「磨砂玻璃标签」（2026-10-29 样稿）──────────────────
   · 走过的路：白色衬底 + 品牌蓝细实线，底下垫一层很淡的蓝晕；没走的路：淡蓝点线。
   · 站点：空心小圆环，线走到时出现并扩一圈涟漪（只一次，不循环、不闪）。峰顶为金色圆环 + 金心。
   · 标注：HTML 小号磨砂玻璃胶囊「序号 | 站名」，胶囊与站点之间一根短引线；峰顶胶囊暖金描边。
   · 线宽、点距由脚本按屏幕像素换算（整张 SVG 随宽度缩放），这里只管颜色与层次。去掉了移动光点。 */
.hero .ascent-route:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke-linecap:round;stroke-linejoin:round}
.hero .ascent-route-future:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#4a72f2;opacity:.6}
.hero .ascent-route-halo:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:url(#ascent-walk-gradient);opacity:.09}
.hero .ascent-route-casing:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#fff;opacity:.9}
.hero .ascent-route-core:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:url(#ascent-walk-gradient)}
.hero .ascent-ring-shape:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#fff;stroke:#2950ff;stroke-width:1.5}
.hero .ascent-ring-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:#2950ff;stroke-width:1;opacity:0}
.hero .ascent-node.is-summit .ascent-ring-shape:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#c58e22;stroke-width:1.6}
.hero .ascent-node.is-summit .ascent-ring-pulse:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#c58e22}
.hero .ascent-ring-core:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#c58e22}
.hero .ascent-tags:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;pointer-events:none}
.hero .ascent-tag:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;width:0;height:0}
.hero .ascent-tag-stem:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:-.5px;bottom:6px;width:1px;height:10px;background:linear-gradient(180deg,rgba(41,80,255,.18),rgba(41,80,255,.6))}
.hero .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;bottom:16px;display:flex;align-items:center;gap:7px;height:24px;padding:0 10px 0 9px;border-radius:12px;white-space:nowrap;
  background:rgba(255,255,255,.56);-webkit-backdrop-filter:blur(12px) saturate(1.6);backdrop-filter:blur(12px) saturate(1.6);
  border:1px solid rgba(255,255,255,.92);
  box-shadow:0 0 0 .5px rgba(41,80,255,.12),0 6px 16px -6px rgba(24,45,110,.24),0 1px 2px rgba(24,45,110,.05);
  font:500 12px/1 var(--body);color:#26324f;letter-spacing:.02em}
.hero .ascent-tag-num:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:10px;font-weight:600;line-height:12px;color:#2950ff;font-variant-numeric:tabular-nums;letter-spacing:.08em;padding-right:7px;border-right:1px solid rgba(41,80,255,.2)}
/* 峰顶（第 6 站）取方案③的处理：一面小金旗（旗杆即引线）+「序号 站名」轻字重晨金标注，不再用胶囊；
   路线最后一段（验收标准 → 峰顶）由品牌蓝过渡到晨光金；峰顶一团很淡的暖金晨光，线到峰顶时淡入后静止。 */
.hero .ascent-flag-pole:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#bf8f36;stroke-width:1.2;stroke-linecap:round}
.hero .ascent-tag.is-summit .ascent-tag-stem:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.hero .ascent-tag.is-summit .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){bottom:37px;height:auto;gap:7px;padding:0;border:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;
  font:400 13px/1 var(--body);color:#5f430f;letter-spacing:.04em;text-shadow:0 0 6px rgba(255,255,255,.95),0 0 14px rgba(255,255,255,.75)}
.hero .ascent-tag.is-summit .ascent-tag-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:500}
.hero .ascent-tag.is-summit .ascent-tag-num:where(.nh, .nh *, .nh-home, .nh-home > body){color:#b5811d;font-size:10px;font-weight:600;letter-spacing:.1em;padding-right:0;border-right:0}
.hero .ascent-tag.is-summit[data-side=left] .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){left:auto;right:9px;bottom:auto;top:-31px}
.hero .ascent-tag[data-side=below] .ascent-tag-stem:where(.nh, .nh *, .nh-home, .nh-home > body){bottom:auto;top:6px;background:linear-gradient(0deg,rgba(41,80,255,.18),rgba(41,80,255,.6))}
.hero .ascent-tag[data-side=below] .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){bottom:auto;top:16px}
.hero .ascent-tag[data-side=left] .ascent-tag-stem:where(.nh, .nh *, .nh-home, .nh-home > body){left:auto;right:6px;bottom:-.5px;width:10px;height:1px;background:linear-gradient(90deg,rgba(197,142,34,.2),rgba(197,142,34,.7))}
.hero .ascent-tag[data-side=left] .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){left:auto;right:16px;bottom:auto;top:-12px}
.motion-enabled:not(.motion-paused) .hero-snowfield:not([data-playing=true]) .ascent-tags:where(.nh, .nh *, .nh-home, .nh-home > body){visibility:hidden}
@media(max-width:767px){
  .hero .ascent-tag-pill[data-short] .ascent-tag-name:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
  .hero .ascent-tag-pill[data-short]:where(.nh, .nh *, .nh-home, .nh-home > body)::after{content:attr(data-short)}
  .hero .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){height:22px;gap:6px;padding:0 9px 0 8px;border-radius:11px;font-size:11px}
  .hero .ascent-tag[data-side=left] .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){top:-11px}
  .hero .ascent-tag-num:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:9.5px;padding-right:6px}
  .hero .ascent-tag.is-summit .ascent-tag-pill:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px}
  .hero .ascent-tag.is-summit .ascent-tag-num:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:9.5px;padding-right:0}
}
.motion-enabled:not(.motion-paused) .hero-snowfield:not([data-playing=true]) .ascent-dawn:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0}

/* A separate, low-contrast mountain field supports the cost narrative. */
.scene-why:where(.nh, .nh *, .nh-home, .nh-home > body){isolation:isolate}
.why-mountain:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;user-select:none}
.why-mountain svg:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;bottom:-24px;right:-8%;width:116%;height:auto;max-width:none;opacity:.2;filter:saturate(.45);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 76%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 28%,#000 76%,transparent 100%)}
/* 整页自然滚动后这一段变矮，雪山底图在段落交界处被硬切：容器底部 200px 渐隐到页面底色 */
.why-mountain:where(.nh, .nh *, .nh-home, .nh-home > body){-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 200px),transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 200px),transparent 100%)}
/* 司咏琪 10-29 21:4x：山背景从右往左渐隐——左半边淡到消失，右侧主峰保留（与原来的底部渐隐取交集） */
/* 司咏琪 10-29 21:5x：主峰往左挪到约 76% 宽处；山图右侧镜像补 300 单位（扩图），挪完右边不露空。比例与原来相同（116% 宽对 2172 单位） */
@media(min-width:768px){.why-mountain svg:where(.nh, .nh *, .nh-home, .nh-home > body){left:-19.8%;right:auto;width:132.03%;transform:translateY(64px)}}
@media(max-width:767px){#why .why-mountain svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:216.2%;right:-66.2%}}
@media(min-width:768px){.why-mountain:where(.nh, .nh *, .nh-home, .nh-home > body){-webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 200px),transparent 100%),linear-gradient(90deg,transparent 0,transparent 8%,#000 62%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - 200px),transparent 100%),linear-gradient(90deg,transparent 0,transparent 8%,#000 62%);mask-composite:intersect}}
/* 司咏琪 10-29：背景遮挡太多 → 山整座保留、整体下移：屏底多留空间，山随屏底一起往下，峰顶约压住一行字（司咏琪 20:58 框的位置）；山随宽度变大，留白跟着加 */
@media(min-width:768px){#why .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-bottom:calc(var(--space-module) + clamp(100px, 150px + (100vw - 1440px) * .27, 330px))}}
.scene-why .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1;padding-top:64px;padding-bottom:96px}
.scene-why .cost-reference:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--card)}

/* Morning Altitude reference: centered statement and three centered columns. */
.scene-ownership .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:80px 96px}
.ownership-intro:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:860px;text-align:center;margin-inline:auto}
.ownership-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){line-height:1.25}
.ownership-intro>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin:24px auto 0}
.ownership-caption:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ownership-cards:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:96px}
.ownership-cards>article:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;padding:4px 40px;text-align:center}
.ownership-cards>article+article:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:1px;background:#e4e8ee}
.ownership-cards h3:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:12px;font-size:24px;line-height:32px}
.ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:300px;margin-inline:auto;font-size:16px;line-height:28px}

/* The cards themselves carry the scenario names; redundant navigation text is removed. */
.case-section .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:48px}
.case-section .source-note:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}

@media(max-width:1100px){
 .ownership-cards>article:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:24px}
 .ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px;line-height:24px}
}
@media(max-width:767px){
 .partners.partner-marquee:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:16px 48px}
 .partner-marquee .hero-retention:where(.nh, .nh *, .nh-home, .nh-home > body){width:calc(100% - 40px);margin-top:24px}
 .scene-why .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:40px;padding-bottom:80px}
 .why-mountain svg:where(.nh, .nh *, .nh-home, .nh-home > body){width:190%;right:-40%;bottom:0;opacity:.14}
 .scene-ownership .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:48px 80px}
 .ownership-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){line-height:1.35}
 .ownership-intro>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
 .ownership-cards:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;margin-top:48px;gap:32px}
 .ownership-cards>article:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0 16px}
 .ownership-cards>article+article:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:none}
 .ownership-cards h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px;line-height:28px;margin-bottom:12px}
 .ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:320px}
 .case-section .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:32px}
}

.ownership-sequence:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate;z-index:2}
.ownership-sequence>.research:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:3;background:var(--white)}
.scene-why .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:var(--space-module);padding-bottom:96px}
.scene-ownership .scene-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
.ownership-cards h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3)}
.ownership-cards p:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body)}
/* 研究：标题在上，三张 Nex 卡片并排、全部直接可见可点；脚注在本屏底部。 */
.nex-layout:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative}
.nex-intro:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-width:0}
.nex-intro .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0 0 var(--space-head)}
.nex-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2);line-height:1.3;letter-spacing:-.025em;text-wrap:balance}
.nex-intro .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:1.85;max-width:440px;margin:0 0 4px;color:var(--muted)}
.nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch;isolation:isolate}
.nex-card:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;display:flex;flex-direction:column;min-width:0;border-radius:24px;background:transparent;color:var(--ink);outline-offset:4px}
.nex-card[hidden]:where(.nh, .nh *, .nh-home, .nh-home > body){display:none!important}
.nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body){flex:1;display:flex;flex-direction:column;border-radius:inherit;background:white;overflow:hidden;box-shadow:0 10px 32px #23375b0d;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;flex:none;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;object-position:top center;background:#f5f6f9}
.nex-card[data-nex-card="0"] .nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){object-position:center center}
.nex-card-content:where(.nh, .nh *, .nh-home, .nh-home > body){flex:1;display:flex;flex-direction:column;padding:20px 24px 24px}
.nex-card-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;gap:16px;margin-bottom:16px}
.nex-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.03em;margin:0;color:var(--ink)}
.nex-card-heading time:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px;line-height:20px;color:var(--muted);margin-left:auto}
.nex-window-expand:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;line-height:28px;color:var(--blue)}
.nex-data:where(.nh, .nh *, .nh-home, .nh-home > body){flex:1;display:flex;flex-direction:column;padding:0;border-radius:0;background:transparent}
.nex-card .release-body:where(.nh, .nh *, .nh-home, .nh-home > body){flex:1;display:flex;flex-direction:column;padding:0;margin:0;background:transparent;border-radius:0}
.nex-card .release-body h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;line-height:24px;margin:0 0 4px;letter-spacing:-.01em}
.nex-card .release-body>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px;line-height:20px;margin:0;color:var(--muted);min-height:40px}
.nex-evidence-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0 12px}
.nex-card .release-excerpt:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-evidence-heading .open-status:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px;line-height:16px;margin:0;background:none;padding:0;color:var(--muted);border-radius:0}
.nex-evidence-heading .open-status:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:none}
.nex-card .release-scores:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 16px}
.nex-card .release-score:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:6px;min-width:0;border:0;background:transparent;padding:0;align-items:flex-start}
.nex-card .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-card .release-score:first-child>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:30px;line-height:36px;font-weight:600;letter-spacing:-.03em;color:var(--blue)}
.nex-card .release-score>div:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0}
.nex-card .release-score b:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-card .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;font-size:12px;line-height:18px;color:var(--ink)}
.nex-card .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-card .release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px;line-height:16px;color:var(--muted)}
.nex-card .release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin-top:2px}
.nex-card .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-card .release-cta>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px;line-height:20px;color:var(--ink)}
.nex-card .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:auto}
.nex-card .release-cta .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:14px;height:14px}
/* ===== 研究屏 Nex 卡片 · 设计师反馈第六轮（司咏琪标注）=====
   1 名称行右上的蓝色斜箭头已去掉（HTML 里删了），日期靠卡片右缘对齐；
   2 「模型权重开放使用 / 正式发布并开源 / 模型权重已开源」挪到日期正下方，同样右对齐（右侧两行：日期 / 状态，总高与名称行同为 32px，卡片高度不变）；
     「评测节选」那一行只留左边；
   3 评测名（τ2-Bench 等）加粗 600、深色，模型名和对比说明改回常规字重，拉开层级；
   4 六个大号数字等宽（tabular-nums），进入视口时由页尾脚本做一次生长动画，文字最终与原文一致；
   5 「查看完整评测」文字 + 小箭头整体左对齐，箭头紧跟文字。
   本块在后面的 @media 之前，凡后面 @media 里也设置的属性这里用了更高的选择器权重。 */
.nex-card .nex-card-heading:where(.nh, .nh *, .nh-home, .nh-home > body){align-items:flex-start}
.nex-card .nex-name:where(.nh, .nh *, .nh-home, .nh-home > body){min-width:0}
.nex-card .nex-meta:where(.nh, .nh *, .nh-home, .nh-home > body){flex:none;margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.nex-card .nex-meta time:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;font-size:12px;line-height:16px;color:var(--muted);font-variant-numeric:tabular-nums}
.nex-card .nex-meta .open-status:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin:0;padding:0;border-radius:0;background:none;font-size:11px;line-height:16px;color:var(--muted);white-space:nowrap}
.nex-card .nex-meta .open-status:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:none}
.nex-card .release-score b:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:600;color:var(--primary)}
.nex-card .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-card .release-score small:where(.nh, .nh *, .nh-home, .nh-home > body){font-weight:400}
.nex-card .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;white-space:nowrap}
.nex-card .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:flex-end;justify-content:flex-end;gap:6px}
.nex-card .release-cta .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){flex:0 0 14px}
@media(hover:hover){.nex-card:hover .nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateY(-3px);box-shadow:0 16px 40px rgba(33,55,91,.12)}}
.nex-card:focus-visible .nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body){outline:2px solid var(--blue);outline-offset:4px}
.nex-card:is(:hover,:focus-visible) .release-body:where(.nh, .nh *, .nh-home, .nh-home > body){background:transparent}
.nex-card:is(:hover,:focus-visible) .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body){text-decoration:underline;text-underline-offset:4px}
.research .research-notes:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:32px}
@media(max-width:1100px){.nex-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px}.nex-card-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:16px}.nex-data:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:0}}
@media(max-width:1023px){
 .nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:1fr;gap:32px}.nex-intro .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:560px}
 .nex-card .release-body>p:where(.nh, .nh *, .nh-home, .nh-home > body){min-height:0}
}
@media(max-width:767px){
 .nex-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h2)}.nex-intro .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin:24px 0 0}
 .nex-card-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding:20px}.nex-data:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0}
 .nex-name:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;line-height:32px}.nex-card-heading:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}
 .nex-card .release-body h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;line-height:24px}
 .nex-evidence-heading:where(.nh, .nh *, .nh-home, .nh-home > body){align-items:flex-start;gap:8px;margin-top:12px}
 .nex-evidence-heading .open-status:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:10px}
 .nex-card .release-score>strong:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-card .release-score:first-child>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:30px;line-height:36px}
 .nex-card .release-score b:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px}.nex-card .release-score span:where(.nh, .nh *, .nh-home, .nh-home > body){overflow-wrap:anywhere}
 .research .research-notes:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
}
@media(prefers-reduced-motion:reduce){.nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body){transition:none!important;transform:none!important}}
/* ===== 研究屏 Nex 卡片 · 设计师反馈第七轮「版本生长线」（司咏琪标注，参考图 1356）=====
   1 卡片上方一条淡灰点状生长线，从 N1 缓缓爬升到 N2.5、末端淡出；只有三个节点是蓝色圆环，节点对准各卡左上角；
     线和节点的坐标由页尾脚本按卡片实际排版算出，没有脚本时不显示（卡片照常可见）；
   2 名称与日期上提成节点下方的浅灰胶囊「Nex-N1 · 2025.11」，卡片里不再重复；状态小字挪到卡片正文顶部一行；
   3 三列并排时三张卡一级比一级高（--nex-step 一级），四张卡片外框等高；竖排时取消错落、隐藏生长线，胶囊左侧留一个蓝色节点；
   4 入场：IntersectionObserver 触发、只播一次。三张卡按 N1→N2→N2.5 依次自下而上淡入，线从左往右画出、节点依次点亮；
     初始隐藏态只在脚本给卡组加上 is-staged 类后才生效；减少动效时脚本不加，直接是最终态。
   第八轮（司咏琪标注）：生长线改品牌蓝（62% 不透明、仍是点状）；胶囊字号 14→17px、版本名 600、日期常规；状态小字做成淡蓝底小胶囊；
     「查看完整评测 ↗」整体靠卡片右下角；入场对齐参考「Animated Content」：上浮 32px、只淡入不缩放不模糊、错峰 120ms。 */
.nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){--nex-step:52px;--nex-node-gap:40px;padding-top:var(--nex-node-gap)}
.nex-deck>.nex-card:where(.nh, .nh *, .nh-home, .nh-home > body){z-index:1;margin-top:calc((2 - var(--nex-slot)) * var(--nex-step));margin-bottom:calc(var(--nex-slot) * var(--nex-step))}
.nex-tag:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:flex-start;display:inline-flex;align-items:center;gap:12px;margin:0 0 16px;padding:9px 20px;border-radius:999px;background:var(--card);font-size:17px;line-height:26px;font-weight:400;letter-spacing:0;white-space:nowrap;color:var(--ink)}
.nex-tag-name:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue);font-weight:600}
.nex-tag-sep:where(.nh, .nh *, .nh-home, .nh-home > body){flex:none;width:4px;height:4px;border-radius:50%;background:#a3abbb}
.nex-tag time:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--ink);font-weight:400;font-variant-numeric:tabular-nums}
.nex-card .release-body>.open-status:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin:0 0 12px;padding:3px 10px 3px 9px;border-radius:999px;background:#eaf0ff;font-size:12px;line-height:18px;font-weight:500;color:var(--blue);white-space:nowrap}
.nex-card .release-body>.open-status:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:block;content:'';flex:none;width:5px;height:5px;border-radius:50%;background:currentColor}
.nex-route:where(.nh, .nh *, .nh-home, .nh-home > body){display:none;position:absolute;inset:0;z-index:0;pointer-events:none}
.nex-deck.has-route>.nex-route:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}
.nex-route-line:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;overflow:visible}
.nex-node:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:0;top:0;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;box-sizing:border-box;border-radius:50%;background:#fff;border:3.5px solid var(--blue);box-shadow:0 0 0 5px rgba(41,80,255,.11)}
/* 入场初始态（只在脚本加了 is-staged 后生效） */
.nex-deck.is-staged>.nex-card:not(.is-in):where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transform:translate3d(0,32px,0)}
.nex-deck.is-staged>.nex-card.is-in:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .6s cubic-bezier(.33,1,.68,1) var(--nex-delay,0ms),transform .75s var(--ease) var(--nex-delay,0ms)}
.nex-deck.is-staged .nex-node:not(.is-in):where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transform:scale(.3)}
.nex-deck.is-staged .nex-node.is-in:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .35s ease-out var(--nex-delay,0ms),transform .55s cubic-bezier(.34,1.56,.64,1) var(--nex-delay,0ms)}
.nex-deck.is-staged>.nex-route:not(.is-in)>.nex-route-line:where(.nh, .nh *, .nh-home, .nh-home > body){clip-path:inset(0 100% 0 0)}
.nex-deck.is-staged>.nex-route.is-in>.nex-route-line:where(.nh, .nh *, .nh-home, .nh-home > body){clip-path:inset(0 0 0 0);transition:clip-path .8s cubic-bezier(.3,.7,.4,1)}
@media(max-width:1279px){.nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){--nex-step:44px}}
@media(max-width:1023px){
 .nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:0;gap:40px}
 .nex-deck>.nex-card:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0}
 .nex-deck>.nex-route:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-deck.has-route>.nex-route:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
 .nex-tag:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:14px;padding:8px 18px 8px 14px;font-size:16px;line-height:24px;gap:10px}
 .nex-tag:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';flex:none;box-sizing:border-box;width:11px;height:11px;border-radius:50%;background:#fff;border:2.5px solid var(--blue);box-shadow:0 0 0 3px rgba(41,80,255,.11)}
}
@media(prefers-reduced-motion:reduce){
 .nex-deck.is-staged>.nex-card:where(.nh, .nh *, .nh-home, .nh-home > body),.nex-deck.is-staged .nex-node:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1!important;transform:none!important;transition:none!important}
 .nex-deck.is-staged>.nex-route>.nex-route-line:where(.nh, .nh *, .nh-home, .nh-home > body){clip-path:none!important;transition:none!important}
}
/* ===== 研究屏 Nex 卡片 · 官网负责人反馈（韩震华标注：预览图下半部分、开源状态标签整块裁掉）=====
   1 三张卡的预览图只留上面一截：顶栏小字标 + 「Nex-N1 / N2 / N2.5」字标 + 大号标语 + 一行按钮，按钮行下面留一点自然留白；
     三张原图（1440×900）这一截的几何完全一致（按钮行都在 y≈340–389），所以三张统一用同一个宽高比 10:3（= 1440×432）从顶部裁，
     上沿对齐、高度相同；图片文件不改，下半部分（评测图 / 柱状图 / 三栏说明）只是不显示；
     裁切线 y=432 落在按钮行之后、N2.5 原图概览卡片上沿（y≈446）之前，不会露出半截边线；裁切底色是纯白，和卡片白底无缝衔接；
   2 「模型权重开放使用 / 正式发布并开源 / 模型权重已开源」三个淡蓝胶囊已从 HTML 里删除；
   生长线节点坐标由页尾脚本按卡片实际位置算（ResizeObserver 跟随尺寸变化），卡片变矮后不用改脚本。 */
.nex-deck .nex-card[data-nex-card] .nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){aspect-ratio:10/3;object-fit:cover;object-position:top center}
/* 崔晚笛 10-29：裁掉发布页截图顶部导航条（原图 0–70px），窗口取 70–420px：标题+按钮行，不切半行字 */
.nex-deck .nex-card[data-nex-card] .nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){aspect-ratio:144/35;object-position:50% 12.727%}
/* ===== 产品屏标题背后的弥散渐变 · 设计师反馈第七轮（参考图 1408）=====
   与研究屏标题背后那团晨光 / 天蓝弥散同一写法（伪元素 + 三层径向渐变 + 模糊）、同样浓淡，只铺在标题后面，不改标题对比度。 */
#products .section-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}
#products .section-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;z-index:-1;pointer-events:none;left:62%;top:55%;width:440px;height:300px;transform:translate(-50%,-50%) rotate(-12deg);background:radial-gradient(ellipse 35% 40% at 25% 40%,rgba(244,184,153,.18),transparent 80%),radial-gradient(ellipse 36% 45% at 74% 61%,rgba(125,166,220,.18),transparent 80%),radial-gradient(ellipse 24% 38% at 55% 30%,rgba(229,175,188,.12),transparent 80%);filter:blur(28px)}
@media(max-width:767px){#products .section-heading h2:where(.nh, .nh *, .nh-home, .nh-home > body):before{left:50%;width:min(300px,86%);height:200px;filter:blur(24px)}}

/* Morning Altitude's open three-step layout, with a dashed rising route. */
.pilot .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;margin-bottom:64px}
.pilot .section-heading>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:800px;margin:24px 0 0;font-size:var(--fs-body);line-height:28px}
.pilot-trail:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;height:48px;--trail-progress:1}
.pilot-trail svg:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pilot-trail path:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke-width:1.5;stroke-dasharray:4 8;stroke-linecap:round;vector-effect:non-scaling-stroke}
.pilot-trail-base path:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#d1d9e6}
.pilot-trail-ink:where(.nh, .nh *, .nh-home, .nh-home > body){clip-path:inset(-8px calc((1 - var(--trail-progress))*100%) -8px -8px)}
.pilot-trail-ink path:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:var(--blue)}
.pilot .pilot-steps:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0;padding:0;background:none;border:0;list-style:none}
.pilot .pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;position:relative;min-height:0;padding:40px 0 0;border:0;border-radius:0;background:none}
.pilot-step-node:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;left:-5px;top:calc(var(--node-y,44px) - 48px - 5px);width:10px;height:10px;border:2px solid var(--blue);border-radius:50%;background:var(--white);transition:background .3s var(--ease)}
.pilot-steps>.is-lit .pilot-step-node:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue)}
.pilot .pilot-steps h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:32px;margin:0}
.pilot .pilot-steps p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:28px;margin:12px 0 0;max-width:320px;color:var(--muted)}
@media(max-width:767px){
 .pilot .section-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:40px}
 .pilot-trail:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
 .pilot .pilot-steps:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;grid-template-columns:1fr;gap:32px;padding-left:28px}
 .pilot .pilot-steps:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;left:4px;top:8px;bottom:16px;border-left:1.5px dashed #9aafff}
 .pilot .pilot-steps>li:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0}
 .pilot-step-node:where(.nh, .nh *, .nh-home, .nh-home > body){left:-28px;top:8px}
 .pilot .pilot-steps h3:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:28px}
 .pilot .pilot-steps p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-body);line-height:24px}
}


/* Morning Altitude's actual hero and brand dimensions, on the current white canvas. */
.header .brand:where(.nh, .nh *, .nh-home, .nh-home > body){gap:10px;line-height:1;letter-spacing:.06em}
.header .brand>img:where(.nh, .nh *, .nh-home, .nh-home > body){width:22px;height:28px}
.header .brand>span:not(.brand-en):where(.nh, .nh *, .nh-home, .nh-home > body){font-size:22px;font-weight:600;line-height:1;letter-spacing:.06em}
.hero.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:clamp(32px,9svh,96px)}
.hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:auto;padding:0;margin:0 0 24px;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:14px;line-height:20px;font-weight:500;letter-spacing:.14em;color:var(--blue)}
.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:88px;line-height:96px;letter-spacing:-.02em;font-weight:600;color:#1c2433;margin-top:0}
.hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:28px;font-size:18px;line-height:30px;font-weight:400;color:#5b6475;text-wrap:balance}
.hero-actions:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:36px;gap:32px}
.hero-actions .hero-button:where(.nh, .nh *, .nh-home, .nh-home > body){height:48px;min-height:48px;margin:0;padding:0 28px;gap:0;border-radius:12px;background:#1c2433;font-size:16px;line-height:24px;font-weight:600}
.hero-actions .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){display:none}
.hero-learn:where(.nh, .nh *, .nh-home, .nh-home > body){padding:0 0 4px;border-bottom:1px solid currentColor;font-size:16px;line-height:24px;font-weight:500;color:#1c2433}
@media(max-width:1023px){.hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:64px;line-height:72px}}
@media(max-width:767px){
 .hero.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:40px}
 .hero-kicker:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:16px;font-size:14px;line-height:20px}
 .hero h1:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:44px;line-height:52px;letter-spacing:-.02em}
 .hero-description:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;font-size:15px;line-height:24px;padding-inline:4px}
 .hero-actions:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px;gap:24px}
}


/* Case evidence: quiet frame, white inset, and blue reserved for result figures. */
.case-section:where(.nh, .nh *, .nh-home, .nh-home > body){overflow-anchor:none}
#case-expanded .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){background:white;border:12px solid var(--card);padding:24px;border-radius:24px}
#case-expanded .case-accuracy>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:36px;line-height:40px;letter-spacing:-.04em}
#case-expanded .case-accuracy>strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px;line-height:24px}
#case-expanded .case-metric-heading h4:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px;line-height:20px;color:var(--muted)}
#case-expanded .case-metric-tag:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px;line-height:16px;padding:0;background:none;color:var(--muted)}
#case-expanded .case-dumbbell-values strong:where(.nh, .nh *, .nh-home, .nh-home > body),#case-expanded .case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;line-height:32px;letter-spacing:-.03em}
#case-expanded .case-dumbbell-values strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px;line-height:20px;color:var(--muted)}
#case-expanded .case-dumbbell-values>div>span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:11px;line-height:16px;color:var(--muted)}
#case-expanded .case-dumbbell-trail:where(.nh, .nh *, .nh-home, .nh-home > body):before{border-top-width:2px;border-top-color:#9aaaf4}
#case-expanded .case-dumbbell-trail>i:where(.nh, .nh *, .nh-home, .nh-home > body){background:white}
#case-expanded .case-dumbbell-trail>i:last-child:where(.nh, .nh *, .nh-home, .nh-home > body){background:var(--blue)}
#case-expanded .case-chart-summary:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;line-height:24px;font-weight:400}
#case-expanded .case-chart-summary strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;line-height:32px}
#case-expanded .chart-tick:where(.nh, .nh *, .nh-home, .nh-home > body),#case-expanded .chart-reference-label:where(.nh, .nh *, .nh-home, .nh-home > body),#case-expanded .chart-trained-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:14px;font-weight:400;fill:var(--muted)}
#case-expanded .chart-base-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;font-weight:500}
#case-expanded .chart-trained-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:30px;font-weight:600}
#case-expanded .chart-score-trail:where(.nh, .nh *, .nh-home, .nh-home > body){stroke:#6a83ff;stroke-width:2}
#case-expanded .case-chart-conclusion>p:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px;line-height:24px}
@media(max-width:767px){#case-expanded .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px;border-width:8px;border-radius:20px}}

/* October 28 review: consistent case frames, restrained title color and wider section spacing. */
:where(.nh-home, .nh){--space-module:120px}
.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
@media(max-width:1023px){:where(.nh-home, .nh){--space-module:96px}}
@media(max-width:767px){:where(.nh-home, .nh){--space-module:80px}}
/* All three panels occupy one grid cell. Hidden panels still set the shared
   intrinsic height, while visibility and aria-hidden keep them inaccessible. */
.case-inline-body:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:minmax(0,1fr)}
#case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-area:1 / 1;align-self:stretch}
#case-expanded .case-full-panel[hidden]:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid!important;visibility:hidden;pointer-events:none}
#case-expanded .case-full-panel>.case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:stretch;height:100%}
.case-inline-body>.case-original-link:where(.nh, .nh *, .nh-home, .nh-home > body){grid-area:2 / 1;justify-self:start}
.circular-gallery[data-dragging] .case-inline:where(.nh, .nh *, .nh-home, .nh-home > body){user-select:none;-webkit-user-select:none}
.ownership-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}
.ownership-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;z-index:-1;pointer-events:none;left:50%;top:50%;width:min(700px,100%);height:220px;transform:translate(-50%,-50%) rotate(-8deg);border-radius:42% 58% 64% 36% / 54% 38% 62% 46%;background:radial-gradient(ellipse 30% 44% at 24% 60%,rgba(244,184,153,.20),transparent 78%),radial-gradient(ellipse 28% 48% at 48% 36%,rgba(235,180,187,.12),transparent 78%),radial-gradient(ellipse 34% 44% at 70% 64%,rgba(125,166,220,.18),transparent 78%),radial-gradient(ellipse 25% 40% at 83% 30%,rgba(165,179,232,.12),transparent 80%);filter:blur(28px)}
@media(max-width:767px){.ownership-intro h2:where(.nh, .nh *, .nh-home, .nh-home > body):before{height:180px;filter:blur(24px)}}

/* Compact reading windows and deliberate, upward screen composition. */
.intelligence-scenes .intelligence-scene-panel:where(.nh, .nh *, .nh-home, .nh-home > body){align-items:start}
.scene-why .scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body),.scene-ownership .scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
.case-inline-top:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 24px 0;gap:16px}
.case-inline-top h2:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px;line-height:28px}
.case-inline-close:where(.nh, .nh *, .nh-home, .nh-home > body){width:28px;height:28px}
.case-inline-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 24px}
#case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){gap:32px}
#case-expanded .case-lead:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:16px;line-height:22px}
#case-expanded .case-facts:where(.nh, .nh *, .nh-home, .nh-home > body){gap:12px}
#case-expanded .case-legend:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px}
#case-expanded .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px;border-width:8px;border-radius:20px}
#case-expanded .case-accuracy:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:12px}
#case-expanded .case-accuracy>strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:30px;line-height:36px}
#case-expanded .case-accuracy>strong small:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:16px}
#case-expanded .case-metric-heading:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:4px}
#case-expanded .case-dumbbell+.case-dumbbell:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:8px}
#case-expanded .case-dumbbell-values strong:where(.nh, .nh *, .nh-home, .nh-home > body),#case-expanded .case-dumbbell-values>.trained strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px;line-height:28px}
#case-expanded .case-dumbbell-trail:where(.nh, .nh *, .nh-home, .nh-home > body){height:28px}
#case-expanded .case-chart-summary:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0 0 8px;font-size:14px;line-height:24px}
#case-expanded .case-chart-summary strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:24px;line-height:28px}
#case-expanded .case-marketing-chart:where(.nh, .nh *, .nh-home, .nh-home > body){max-height:216px}
#case-expanded .chart-tick:where(.nh, .nh *, .nh-home, .nh-home > body),#case-expanded .chart-reference-label:where(.nh, .nh *, .nh-home, .nh-home > body),#case-expanded .chart-trained-label:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:12px}
#case-expanded .chart-base-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:22px}
#case-expanded .chart-trained-value:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:26px}
#case-expanded .case-chart-note:where(.nh, .nh *, .nh-home, .nh-home > body){margin:8px 0 0;font-size:11px;line-height:18px}
#case-expanded .case-original-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin:12px 0 0}
#case-slide-travel .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;justify-content:space-between}
.circular-gallery>.circular-gallery-canvas:where(.nh, .nh *, .nh-home, .nh-home > body),.circular-gallery>.circular-gallery-labels:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .24s var(--ease)}
/* Keep the new diffuse color localized to the copy and the case gallery. */
.nex-intro:where(.nh, .nh *, .nh-home, .nh-home > body){isolation:isolate}
.nex-intro:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;z-index:-1;pointer-events:none;left:24%;top:55%;width:440px;height:320px;transform:translate(-50%,-50%) rotate(-12deg);background:radial-gradient(ellipse 35% 40% at 25% 40%,rgba(244,184,153,.18),transparent 80%),radial-gradient(ellipse 36% 45% at 74% 61%,rgba(125,166,220,.18),transparent 80%),radial-gradient(ellipse 24% 38% at 55% 30%,rgba(229,175,188,.12),transparent 80%);filter:blur(28px)}
/* 韩震华 10-29：卡片去掉与预览图重复的标题/规模两行，改为突出每一代的能力特色 */
.nex-card .release-body>p.nex-trait:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;gap:8px;min-height:0;margin:0 0 20px;font-size:inherit;color:inherit}
.nex-trait strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:var(--fs-h3);line-height:1.35;font-weight:600;letter-spacing:-.01em;color:#172235}
.nex-trait span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:15px;line-height:1.7;color:#4a5668}
/* 韩震华 10-29：卡片文字左右边线对齐到预览图里内容的边线（发布页正文左右各留原图宽度的约 11.6%） */
.nex-deck .nex-card[data-nex-card] .nex-card-content:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:11.6%}
/* 司咏琪 10-29 21:2x：预览图上边距和左右一致——图下移约原图 97px（6.74% 宽），顶边羽化接白底，不露分界线 */
/* 司咏琪 10-29 21:4x：卡片上半是「图」、下半是文字——图区铺一块弥散渐变（取标题后那组暖桃 + 雾蓝），
   预览截图先提亮成纯白再正片叠底压在渐变上，白底透出渐变、文字按钮不变；图区高 = 上留白 6.74% + 截图 24.31% + 下留白 5.5%（都按卡宽） */
.nex-deck .nex-card[data-nex-card] .nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}
.nex-deck .nex-card[data-nex-card] .nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;z-index:0;left:0;right:0;top:0;padding-top:36.55%;pointer-events:none;background:radial-gradient(ellipse 75% 95% at 0% 0%,rgba(125,166,220,.13),transparent 70%),radial-gradient(ellipse 60% 85% at 100% 100%,rgba(244,184,153,.13),transparent 72%),radial-gradient(ellipse 55% 70% at 92% 0%,rgba(160,190,235,.09),transparent 70%),#fafbfd}
.nex-deck .nex-card[data-nex-card] .nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1;margin:6.74% 0 5.5%;background:transparent;filter:brightness(1.045);mix-blend-mode:multiply}
.nex-deck .nex-card[data-nex-card] .nex-card-content:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1}
/* 司咏琪 10-29：引语卡去掉「参考」，换成蓝色引号 */
.cost-reference-mark:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:22px;height:17px;fill:var(--blue)}
/* 司咏琪 10-29 21:0x：引语 20px，引号缩小，间距按 8 的倍数 */
.cost-reference .cost-reference-mark+blockquote:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px;font-size:20px;line-height:1.8;font-weight:500}
/* 20px 下按语义断成三行：……两次—— / 一次是钱， / 一次是为了……专有知识。 */
@media(min-width:1100px){.cost-reference .quote-clause:where(.nh, .nh *, .nh-home, .nh-home > body){display:block}}
/* 司咏琪 10-29：弥散渐变往左挪，落在标题后面（原中心在 24%，蓝色团跑到标题右侧） */
@media(min-width:768px){.nex-intro:where(.nh, .nh *, .nh-home, .nh-home > body):before{left:14%}}
.case-section:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate}
.case-section>.wrap:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;z-index:1}
.case-diffusion:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:80px 4% 96px;z-index:0;overflow:hidden;pointer-events:none;--diffuse-x:0px;--diffuse-y:0px}
.case-diffusion>i:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;display:block;width:620px;max-width:70%;height:360px;border-radius:44% 56% 65% 35% / 58% 32% 68% 42%;filter:blur(36px);will-change:transform}
.case-diffusion>i:nth-child(1):where(.nh, .nh *, .nh-home, .nh-home > body){left:5%;top:26%;background:radial-gradient(ellipse,rgba(246,187,157,.20),transparent 72%);transform:translate3d(var(--diffuse-x),var(--diffuse-y),0) rotate(-14deg)}
.case-diffusion>i:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){left:43%;top:36%;background:radial-gradient(ellipse,rgba(129,169,226,.20),transparent 72%);transform:translate3d(calc(var(--diffuse-x)*-.7),calc(var(--diffuse-y)*.6),0) rotate(18deg)}
.case-diffusion>i:nth-child(3):where(.nh, .nh *, .nh-home, .nh-home > body){left:24%;top:6%;background:radial-gradient(ellipse,rgba(208,173,204,.12),transparent 74%);transform:translate3d(calc(var(--diffuse-x)*.4),calc(var(--diffuse-y)*-.8),0) rotate(-8deg)}
@media(max-width:767px){
 .scene-why .scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body),.scene-ownership .scene-content.section:where(.nh, .nh *, .nh-home, .nh-home > body){padding-block:var(--space-module)}
 .case-inline-top:where(.nh, .nh *, .nh-home, .nh-home > body){padding-inline:20px}.case-inline-body:where(.nh, .nh *, .nh-home, .nh-home > body){padding:16px 20px}
 #case-expanded .case-full-panel:where(.nh, .nh *, .nh-home, .nh-home > body){gap:24px}
 #case-expanded .case-facts:where(.nh, .nh *, .nh-home, .nh-home > body){gap:8px}
 #case-expanded .case-full-chart:where(.nh, .nh *, .nh-home, .nh-home > body){padding:12px}
 .nex-intro:where(.nh, .nh *, .nh-home, .nh-home > body):before{max-width:110%;top:120px;height:260px}
 .case-diffusion:where(.nh, .nh *, .nh-home, .nh-home > body){inset:64px 0}.case-diffusion>i:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:none;width:340px;height:300px}
 .case-diffusion>i:nth-child(1):where(.nh, .nh *, .nh-home, .nh-home > body){left:-28%}.case-diffusion>i:nth-child(2):where(.nh, .nh *, .nh-home, .nh-home > body){left:20%}
}
@media(prefers-reduced-motion:reduce){.circular-gallery>.circular-gallery-canvas:where(.nh, .nh *, .nh-home, .nh-home > body),.circular-gallery>.circular-gallery-labels:where(.nh, .nh *, .nh-home, .nh-home > body){transition:none}.case-diffusion>i:where(.nh, .nh *, .nh-home, .nh-home > body){will-change:auto}}

/* 产品版图（2026-10-29）：四个产品画在同一张图里，铺满右侧整块；选中产品的文字压在图的右边（窄屏在图下方）。
   镜头、每块里的动画和换产品时的过渡都由脚本按统一时钟画出来（见脚本里的「产品版图」）。 */
.product-tabs .product-stage:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr) clamp(280px,34%,340px);grid-template-rows:minmax(max(560px,var(--product-stage-h,0px)),auto);min-height:0;isolation:isolate}
.product-tabs .product-map:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;inset:0;z-index:0;overflow:hidden;cursor:default}
.product-tabs .product-stage>.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:2;grid-row:1;position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:32px 32px 32px 48px}
/* 文字底下的那层淡入色：图从左边一路铺到这里，渐渐被盖住；开场展开整张图时先撤掉 */
.product-tabs .product-stage>.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body)::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(245,246,249,0),rgba(245,246,249,.94) 28px,var(--card) 48px);transition:opacity .6s var(--ease)}
.product-tabs .product-stage>.product-panel.is-measuring:not([hidden]):where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;inset:auto;grid-column:2;grid-row:1}
.product-tabs .product-stage>.product-panel>.product-copy:where(.nh, .nh *, .nh-home, .nh-home > body){align-self:stretch}
.product-tabs .product-copy>.product-panel-tags:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:16px}
.product-tabs .product-copy>.product-panel-tags+a.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
/* 司咏琪 10-29：关键词行删掉后，按钮直接跟在描述下面，保留同样的 24px 间距 */
.product-tabs .product-copy>.product-description+a.text-link:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:24px}
.product-tabs .product-stage>.product-panel>*:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .6s var(--ease)}
.product-tabs .product-stage[data-map-intro=true]>.product-panel>*:where(.nh, .nh *, .nh-home, .nh-home > body),.product-tabs .product-stage[data-map-intro=true]>.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body)::before{opacity:0}
@media(max-width:1023px){
  .product-tabs .product-stage:where(.nh, .nh *, .nh-home, .nh-home > body){grid-template-columns:minmax(0,1fr);grid-template-rows:var(--pm-map-h,380px) minmax(var(--product-stage-h,0px),auto)}
  .product-tabs .product-map:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;inset:auto;grid-column:1;grid-row:1;border-bottom:1px solid #e6e8ee}
  .product-tabs .product-stage>.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body),.product-tabs .product-stage>.product-panel.is-measuring:not([hidden]):where(.nh, .nh *, .nh-home, .nh-home > body){grid-column:1;grid-row:2;padding:24px;justify-content:flex-start}
  .product-tabs .product-stage>.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body)::before{display:none}
}
@media(max-width:767px){
  .product-tabs .product-stage:where(.nh, .nh *, .nh-home, .nh-home > body){--pm-map-h:320px}
  .product-tabs .product-stage>.product-panel:where(.nh, .nh *, .nh-home, .nh-home > body),.product-tabs .product-stage>.product-panel.is-measuring:not([hidden]):where(.nh, .nh *, .nh-home, .nh-home > body){padding:20px}
}

.pm-svg:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;width:100%;height:100%}
.pm-svg text:where(.nh, .nh *, .nh-home, .nh-home > body){font-family:var(--body);font-size:var(--pm-fs,13px);font-weight:500;fill:#5d6474;dominant-baseline:central}
.pm-svg .pm-lbl:where(.nh, .nh *, .nh-home, .nh-home > body){text-anchor:middle}
.pm-svg .pm-cap:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--ink);font-weight:600;font-size:calc(var(--pm-fs,13px) * 1.15)}
.pm-svg .pm-cap .pm-role:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#8c929f;font-weight:500;font-size:var(--pm-fs,13px)}
.pm-svg .pm-sub:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:calc(var(--pm-fs,13px) * .85);fill:#9aa0ad}
.pm-svg .pm-prompt:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--ink)}
.pm-svg .pm-link-lbl:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:calc(var(--pm-fs,13px) * .9);fill:#9aa0ad}
.pm-svg .pm-link-lbl.is-hot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);opacity:0;transition:opacity .3s var(--ease)}
.pm-svg .pm-frame:where(.nh, .nh *, .nh-home, .nh-home > body){fill:rgba(255,255,255,.5);stroke:#dcdfe6;stroke-width:1}
.pm-svg .pm-frame-hot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:rgba(41,80,255,.025);stroke:rgba(41,80,255,.42);stroke-width:1;opacity:0}
.pm-svg .pm-box:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#fff;stroke:#d3d7df;stroke-width:1}
.pm-svg .pm-glow:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue-tint);stroke:var(--blue);stroke-width:1.2;opacity:0;transition:opacity .35s var(--ease)}
.pm-svg .pm-tint:where(.nh, .nh *, .nh-home, .nh-home > body){fill:rgba(23,23,28,.022);stroke:#e0e3e9;stroke-width:1}
.pm-svg .pm-slot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#fff;stroke:#dde0e7;stroke-width:1}
.pm-svg .pm-slot.is-busy:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#eceef2}
.pm-svg .pm-edge:where(.nh, .nh *, .nh-home, .nh-home > body),.pm-svg .pm-link:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:#c9ced8;stroke-width:1}
.pm-svg .pm-link-hot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:var(--blue);stroke-width:1.6;opacity:0;transition:opacity .3s var(--ease)}
.pm-svg .pm-span:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:#b9c6ff;stroke-width:4;stroke-linecap:round;stroke-dasharray:1 1}
.pm-svg .pm-curve:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-dasharray:1 1}
.pm-svg .pm-check:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:var(--blue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pm-svg .pm-badge:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0}
.pm-svg .pm-badge path:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue)}
.pm-svg .pm-badge text:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#fff;font-size:calc(var(--pm-fs,13px) * .78);text-anchor:middle}
.pm-svg .pm-dot:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transition:opacity .2s var(--ease);pointer-events:none}
.pm-svg .pm-halo:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);opacity:.16}
.pm-svg .pm-core:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue)}
.pm-svg .pm-route:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:none;visibility:hidden}
/* 产品版图 · Weaver 块：RL 训练 reward 随训练步数上升的曲线（10-29 评审会清单第 3 条，从 r12 的独立示意搬进版图）。
   横轴「训练步数」0–800、纵轴「Reward」0.2–0.8；淡色细线是每一步的原始值，蓝色粗线是平滑后的主曲线，终点一个小蓝点；曲线是示意，不是实验数据。
   和版图其它内容画在同一套坐标里（随镜头缩放），刻度字与「独立沙箱」「多方模型」这类小字同字号；画出来的节奏沿用版图时钟（PM_LOOPS 第 4 块的 curve）。 */
.pm-svg .pm-axis:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:calc(var(--pm-fs,13px) * .85);font-weight:400;fill:#9aa0ad;font-variant-numeric:tabular-nums}
.pm-svg .pm-axis-y:where(.nh, .nh *, .nh-home, .nh-home > body){text-anchor:end}
.pm-svg .pm-axis-x:where(.nh, .nh *, .nh-home, .nh-home > body){text-anchor:middle}
.pm-svg .pm-grid:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:#dbe2ef;stroke-width:1;stroke-dasharray:3 4}
.pm-svg .pm-axis-line:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:#c3ccdd;stroke-width:1}
.pm-svg .pm-reward-raw:where(.nh, .nh *, .nh-home, .nh-home > body),.pm-svg .pm-reward-smooth:where(.nh, .nh *, .nh-home, .nh-home > body){fill:none;stroke:var(--blue);stroke-linejoin:round;stroke-linecap:round}
.pm-svg .pm-reward-raw:where(.nh, .nh *, .nh-home, .nh-home > body){stroke-width:1.2;opacity:.3}
.pm-svg .pm-reward-smooth:where(.nh, .nh *, .nh-home, .nh-home > body){stroke-width:2.2}
.pm-svg .pm-reward-dot:where(.nh, .nh *, .nh-home, .nh-home > body){fill:var(--blue);stroke:#e4e9ff;stroke-width:3;paint-order:stroke}
/* 产品版图 · NorthInfra 块（10-30 新增第五个产品）：承载模型推理的一层，画在 NorthGate、Weaver 右侧一整列，是独立的一块。
   Weaver 训练出的新版模型（连线「部署推理」）和企业自部署的模型进来 → 模型、缓存、引擎、调度四层协同优化（四个小框依次亮起）→
   「算力」里两张卡由占用变空闲（更少的卡）→ 在线推理经「推理服务」交给 NorthGate 里的专属模型，输出一个个很快地出来（更快的响应）。
   和 NorthGate 之间只有这一条推理服务的连线（两个独立产品之间的调用关系），不画进网关里。节点、底色块、连线、卡位都沿用版图原有样式，
   新加的只有两样：输出的小方块（pm-tok，取执行记录那条淡蓝）和那两张会空出来的卡（pm-spare，静止时是空闲的）。 */
.pm-svg .pm-tok:where(.nh, .nh *, .nh-home, .nh-home > body){fill:#e4e9ff;stroke:#b9c6ff;stroke-width:1}
.pm-svg .pm-spare:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0}

/* ---- 模型模块（Nex + NorthCUA，组合版 4 + 10-30 定稿改动） ---- */
/* ===== 研究屏 · r25 组合版（司咏琪 10-30：方案 1 的左栏 + 方案 3 的右栏）=====
   只作用于 #research。左栏「联合发布」Nex 三张卡（内容原样，只改排列与形式）；右栏「自主发布」NorthCUA 深色夜色雪山面板。
   Nex 预览图：显示窗口从原图 y 70–420 收成 y 122–330（整宽、等比、object-fit 裁切，不变形），只露出 logo + 名称 + 大标题，
   下面那排「技术报告 / Hugging Face / GitHub」小按钮（原图 y 334 起）落在窗口外；标题左沿仍与卡片正文左沿对齐；
   图区（浅色渐变底）高度相应从卡宽的 36.55% 收到 26%，上下留白对称，不留空带。
   入场：进入视口时各块依次淡入上移，只播一次、不监听滚动 / 滚轮，不吸附；减少动效时直接给最终态。 */
#research.rlr .rlr-split:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-width:0}
#research.rlr .rlr-col:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;min-width:0}
#research.rlr .rlr-head:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;align-items:flex-start;min-width:0}
#research.rlr .rlr-badges:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#research.rlr .rlr-badge:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 10px;border-radius:var(--radius-pill);background:var(--blue-tint);color:var(--blue);font-size:13px;line-height:20px;font-weight:600;letter-spacing:.04em;white-space:nowrap}
#research.rlr .rlr-badge:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:currentColor}
#research.rlr .rlr-title:where(.nh, .nh *, .nh-home, .nh-home > body){margin:16px 0 0;font-size:32px;line-height:40px;font-weight:600;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
#research.rlr .rlr-head>p:where(.nh, .nh *, .nh-home, .nh-home > body){margin:12px 0 0;max-width:440px;font-size:var(--fs-body);line-height:1.75;color:var(--muted);word-break:keep-all;overflow-wrap:anywhere}
#research.rlr .nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){padding-top:0}
#research.rlr .nex-deck>.nex-card:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0}
@media(min-width:1024px){#research.rlr .nex-deck:where(.nh, .nh *, .nh-home, .nh-home > body){gap:24px;align-items:stretch}}
/* 预览图裁切窗口 */
#research.rlr .nex-deck .nex-card[data-nex-card] .nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body):before{padding-top:26%}
#research.rlr .nex-deck .nex-card[data-nex-card] .nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){aspect-ratio:1440/208;object-fit:cover;object-position:50% 17.63%;margin:6% 0 5.556%}
/* 1024–1279：卡片变窄，版本胶囊收小一号，保证不溢出卡片 */
@media(min-width:1024px) and (max-width:1279px){
 #research.rlr .nex-tag:where(.nh, .nh *, .nh-home, .nh-home > body){padding:7px 14px;font-size:15px;line-height:22px;gap:8px;margin-bottom:12px}
 #research.rlr .rlr-title:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:28px;line-height:36px}
}
/* 深色面板（取页脚夜色雪山） */
#research.rlr .cua-panel:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;isolation:isolate;overflow:hidden;border-radius:28px;color:#fff;background:radial-gradient(ellipse 70% 55% at 100% 0%,rgba(41,80,255,.30),transparent 70%),linear-gradient(180deg,#0b1424,#0E1A2E 60%,#13213a)}
#research.rlr .cua-mtn:where(.nh, .nh *, .nh-home, .nh-home > body){position:absolute;z-index:-1;max-width:none;pointer-events:none;user-select:none}
#research.rlr .cua-panel .rlr-badge:where(.nh, .nh *, .nh-home, .nh-home > body){background:rgba(255,255,255,.10);color:#cdd9ff}
#research.rlr .cua-panel .rlr-title:where(.nh, .nh *, .nh-home, .nh-home > body){color:#fff}
#research.rlr .cua-panel .rlr-head>p:where(.nh, .nh *, .nh-home, .nh-home > body){color:#aebbd1}
#research.rlr .cua-range-text:where(.nh, .nh *, .nh-home, .nh-home > body){margin:0;font-size:14px;line-height:22px;color:#8f9db6}
#research.rlr .cua-nw:where(.nh, .nh *, .nh-home, .nh-home > body){white-space:nowrap}
#research.rlr .cua-pill:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;gap:7px;padding:4px 12px 4px 10px;border-radius:var(--radius-pill);background:rgba(255,184,63,.14);color:#ffd48a;font-size:13px;line-height:20px;font-weight:600;white-space:nowrap}
#research.rlr .cua-pill:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:#ffb83f;box-shadow:0 0 0 3px rgba(255,184,63,.22)}
#research.rlr .cua-button:where(.nh, .nh *, .nh-home, .nh-home > body){display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 20px;border-radius:var(--radius-m);background:#fff;color:#0E1A2E;font-size:14px;line-height:22px;font-weight:600;text-decoration:none;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
#research.rlr .cua-button .ui-icon:where(.nh, .nh *, .nh-home, .nh-home > body){width:14px;height:14px;flex:0 0 14px}
#research.rlr .cua-button:focus-visible:where(.nh, .nh *, .nh-home, .nh-home > body){outline:2px solid #9fb6ff;outline-offset:3px}
@media(hover:hover){#research.rlr .cua-button:hover:where(.nh, .nh *, .nh-home, .nh-home > body){transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.28)}}
/* 入场 */
#research.rlr-staged [data-rlr-in]:not(.is-in):where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0;transform:translate3d(0,28px,0)}
#research.rlr-staged [data-rlr-in].is-in:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .6s var(--resolve) var(--rlr-delay,0ms),transform .75s var(--ease) var(--rlr-delay,0ms)}
@media(max-width:1023px){
 #research.rlr .rlr-nex>.rlr-head:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:32px}
}
@media(max-width:767px){
 #research.rlr .rlr-title:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:12px;font-size:26px;line-height:34px}
 #research.rlr .rlr-head>p:where(.nh, .nh *, .nh-home, .nh-home > body){max-width:none}
 #research.rlr .cua-panel:where(.nh, .nh *, .nh-home, .nh-home > body){border-radius:24px}
}
@media(prefers-reduced-motion:reduce){#research.rlr [data-rlr-in]:where(.nh, .nh *, .nh-home, .nh-home > body){opacity:1!important;transform:none!important;transition:none!important}}

/* 版本 4 · 两栏栏头对齐 + 面板只占卡片那一行：右栏的徽标 / 栏标题 / 介绍放在面板外、与 Nex 栏头齐平（同方案 1）；
   下面一枚「NorthCUA · 即将发布」胶囊与三枚版本胶囊同一行，深色面板与三张卡的卡面上下沿对齐；
   面板里雪山满铺，三档画成一条横向路线（与原 Nex 时间线同一套节点），Pro 标 397B，底部一整条白色按钮。左右约 3 : 1。 */
@media(min-width:1024px){
 #research.rlr-4 .rlr-split:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-template-columns:minmax(0,1fr) clamp(276px,24.5%,300px);grid-template-rows:auto auto;column-gap:56px;row-gap:36px}
 #research.rlr-4 .rlr-col:where(.nh, .nh *, .nh-home, .nh-home > body){display:grid;grid-row:span 2;grid-template-rows:subgrid}
 #research.rlr-4 .rlr-cua:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;left:-28px;top:2px;height:calc(100% - 2px);width:1px;background:linear-gradient(to bottom,var(--line) 0,var(--line) 22%,rgba(217,217,221,0) 42%)}
}
@media(min-width:1024px) and (max-width:1179px){#research.rlr-4 .rlr-split:where(.nh, .nh *, .nh-home, .nh-home > body){column-gap:40px}#research.rlr-4 .rlr-cua:where(.nh, .nh *, .nh-home, .nh-home > body):before{left:-20px}}
#research.rlr-4 .cua-stack:where(.nh, .nh *, .nh-home, .nh-home > body){display:flex;flex-direction:column;min-width:0}
#research.rlr-4 .cua-tag:where(.nh, .nh *, .nh-home, .nh-home > body){flex:none}
#research.rlr-4 .cua-tag .cua-status:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--ink);font-weight:400}
#research.rlr-4 .cua-panel:where(.nh, .nh *, .nh-home, .nh-home > body){flex:1 0 auto;display:flex;flex-direction:column;gap:20px;padding:24px;border-radius:24px}
#research.rlr-4 .cua-panel:where(.nh, .nh *, .nh-home, .nh-home > body):after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(11,20,36,.82) 0%,rgba(11,20,36,.25) 46%,rgba(11,20,36,.15) 70%,rgba(11,20,36,.6) 100%)}
#research.rlr-4 .cua-mtn:where(.nh, .nh *, .nh-home, .nh-home > body){left:66%;bottom:0;height:100%;width:auto;transform:translateX(-83%);opacity:1}
#research.rlr-4 .cua-range-text:where(.nh, .nh *, .nh-home, .nh-home > body){color:#b6c3da}
#research.rlr-4 .cua-route:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;list-style:none;margin:auto 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
#research.rlr-4 .cua-route:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;left:16.67%;right:16.67%;top:8px;height:3px;margin-top:-1.5px;background:radial-gradient(circle,rgba(159,182,255,.9) 1.2px,transparent 1.6px) 0 0/7.5px 3px repeat-x}
#research.rlr-4 .cua-route li:where(.nh, .nh *, .nh-home, .nh-home > body){position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;text-align:center}
#research.rlr-4 .cua-route i:where(.nh, .nh *, .nh-home, .nh-home > body){display:block;box-sizing:border-box;width:16px;height:16px;margin-bottom:8px;border-radius:50%;background:#0E1A2E;border:3.5px solid #9fb6ff;box-shadow:0 0 0 5px rgba(159,182,255,.14)}
#research.rlr-4 .cua-route li.is-top i:where(.nh, .nh *, .nh-home, .nh-home > body){background:#fff;border-color:#fff;box-shadow:0 0 0 5px rgba(159,182,255,.32)}
#research.rlr-4 .cua-route b:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px;line-height:26px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
#research.rlr-4 .cua-route span:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:13px;line-height:18px;font-weight:600;color:#9fb6ff;font-variant-numeric:tabular-nums}
#research.rlr-4 .cua-panel .cua-button:where(.nh, .nh *, .nh-home, .nh-home > body){width:100%}
@media(max-width:1023px){
 #research.rlr-4 .rlr-cua:where(.nh, .nh *, .nh-home, .nh-home > body){margin-top:56px;padding-top:48px}
 #research.rlr-4 .rlr-cua:where(.nh, .nh *, .nh-home, .nh-home > body):before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
 #research.rlr-4 .rlr-cua>.rlr-head:where(.nh, .nh *, .nh-home, .nh-home > body){margin-bottom:32px}
 #research.rlr-4 .cua-tag:where(.nh, .nh *, .nh-home, .nh-home > body):before{display:none}
 #research.rlr-4 .cua-tag:where(.nh, .nh *, .nh-home, .nh-home > body){padding-left:18px}
}
@media(max-width:767px){#research.rlr-4 .cua-panel:where(.nh, .nh *, .nh-home, .nh-home > body){padding:24px 20px 20px}}

/* 10-30 21:36 司咏琪定稿（组合版 4，右边深色 NorthCUA 面板保持原样）：
   1 Nex 三张卡关键词字号调小（24→20，手机 20→18）；
   2 卡片底部链接改成「了解 Nex-N1」等，文字和箭头整体用页面蓝；
   3 预览图区去掉右下角的暖黄渐变，只留冷蓝；
   4 左右之间的竖线更淡、2px 圆头，保留向下渐隐；手机端横线同样更淡、圆头。 */
#research.rlr .nex-trait strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:20px;line-height:28px}
@media(max-width:767px){#research.rlr .nex-trait strong:where(.nh, .nh *, .nh-home, .nh-home > body){font-size:18px;line-height:26px}}
#research.rlr .nex-card .release-cta:where(.nh, .nh *, .nh-home, .nh-home > body),#research.rlr .nex-card .release-cta>span:first-child:where(.nh, .nh *, .nh-home, .nh-home > body){color:var(--blue)}
#research.rlr .nex-deck .nex-card[data-nex-card] .nex-surface:where(.nh, .nh *, .nh-home, .nh-home > body):before{background:radial-gradient(ellipse 75% 95% at 0% 0%,rgba(125,166,220,.13),transparent 70%),radial-gradient(ellipse 55% 70% at 92% 0%,rgba(160,190,235,.09),transparent 70%),#fafbfd}
#research.rlr-4 .rlr-cua:where(.nh, .nh *, .nh-home, .nh-home > body):before{width:2px;margin-left:-.5px;border-radius:2px;background:linear-gradient(to bottom,#eef1f6 0,#eef1f6 22%,rgba(238,241,246,0) 42%)}
@media(max-width:1023px){#research.rlr-4 .rlr-cua:where(.nh, .nh *, .nh-home, .nh-home > body):before{width:auto;height:2px;margin-left:0;border-radius:2px;background:#eef1f6}}

#products .section-heading p .nb:where(.nh, .nh *, .nh-home, .nh-home > body){white-space:nowrap}

/* 10-31：预览图已预先裁成显示的那一条并去掉白底（透明），不再依赖混合模式——手机内置浏览器里 mix-blend-mode 不生效会露出白色矩形 */
#research.rlr .nex-deck .nex-card[data-nex-card] .nex-preview:where(.nh, .nh *, .nh-home, .nh-home > body){filter:none;mix-blend-mode:normal;object-position:50% 50%}

/* 10-31：手机上雪山等脚本按屏宽排好、拉高之后再淡入，不先闪一条细带 */
@media(max-width:767px){.hero-snowfield:where(.nh, .nh *, .nh-home, .nh-home > body){transition:opacity .35s var(--ease)}.hero-snowfield:not([data-laid]):where(.nh, .nh *, .nh-home, .nh-home > body){opacity:0}}
@media(max-width:767px) and (prefers-reduced-motion:reduce){.hero-snowfield:where(.nh, .nh *, .nh-home, .nh-home > body){transition:none}}
