/* ==========================================================================
   梦创科技 · 官网视觉层 v2（在 style.css 之后加载）
   --------------------------------------------------------------------------
   · 这里重定义 :root token —— style.css 里的老组件（下载中心、工具卡、客服窗…）
     跟着一起换装，不用逐条改；
   · 新版页面组件都带前缀：.nx-*（导航/页脚）、.ph-*（内页头图）、.hx-*（首页）、
     .pc-*（产品卡）、.nw-*（新闻）、.ab-*（关于）、.ct-*（联系）、.prose（正文）；
   · 深色 "墨" 色面（首屏、技术带、页脚、内页头图）两套主题都保持深色，
     只有普通内容区跟随浅/深主题。
   ========================================================================== */

:root {
  --c-bg:#eef2f7; --c-surface:#e5eaf1; --c-card:#ffffff; --c-elevated:#f8fafc;
  --c-text:#0b1220; --c-text-2:#334155; --c-text-3:#566276;
  --c-border:rgba(15,23,42,.10); --c-border-h:rgba(37,99,235,.45);
  --c-soft-btn:#e8edf4; --c-soft-btn-hover:#dde4ee;
  --c-accent:#2563eb; --c-accent-2:#0891b2; --c-accent-text:#1d4ed8;
  --c-accent-gradient:linear-gradient(120deg,#2563eb 0%,#06b6d4 100%);
  --c-accent-glow:rgba(37,99,235,.16);
  --c-ink:#060a13; --c-ink-2:#0b1221; --c-ink-3:#111a2c;
  --c-ink-line:rgba(148,163,184,.14); --c-ink-text:#e7edf6; --c-ink-text-2:#aab6c8; --c-ink-text-3:#7f8ca1;
  --c-cyan:#22d3ee; --c-hot:#ff6a2b;
  --shadow-1:0 1px 2px rgba(15,23,42,.05),0 8px 24px rgba(15,23,42,.06);
  --shadow-2:0 2px 6px rgba(15,23,42,.06),0 24px 60px rgba(15,23,42,.12);
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:20px;
  --nav-h:72px; --max-w:1600px;
}
html[data-theme="dark-gray"] {
  --c-bg:#0a0f18; --c-surface:#0f1622; --c-card:#131c2b; --c-elevated:#182235;
  --c-text:#eaf0f8; --c-text-2:#b8c4d4; --c-text-3:#8d9aae;
  --c-border:rgba(148,163,184,.14); --c-border-h:rgba(110,168,255,.5);
  --c-soft-btn:rgba(255,255,255,.06); --c-soft-btn-hover:rgba(255,255,255,.1);
  --c-accent:#5b9bff; --c-accent-2:#22d3ee; --c-accent-text:#8ab8ff;
  --c-accent-gradient:linear-gradient(120deg,#5b9bff 0%,#22d3ee 100%);
  --c-accent-glow:rgba(91,155,255,.2);
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.25);
  --shadow-2:0 2px 6px rgba(0,0,0,.3),0 24px 60px rgba(0,0,0,.45);
}
body { background:var(--c-bg); }
[hidden] { display:none !important; }
html[data-theme="dark-gray"] body { background:var(--c-bg); }
::selection { background:rgba(37,99,235,.22); }
.container { max-width:var(--max-w); padding-left:clamp(20px,4vw,64px); padding-right:clamp(20px,4vw,64px); }
@media (max-width:640px) { .container { padding:0 16px; } }

/* ── 通用小件 ───────────────────────────────────────── */
.eyebrow { display:inline-flex; align-items:center; gap:10px; font-family:var(--f-mono); font-size:11.5px; font-weight:700;
  letter-spacing:2.4px; text-transform:uppercase; color:var(--c-accent-text); }
.eyebrow::before { content:''; width:22px; height:2px; border-radius:2px; background:var(--c-accent-gradient); }
.eyebrow.on-ink { color:var(--c-cyan); }
.grad-text { background:var(--c-accent-gradient); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.btn { border-radius:999px; padding:13px 26px; }
.btn-sm { padding:9px 18px; }
.btn-blue { background:var(--c-accent-gradient); border:0; }
.btn-glass { background:rgba(255,255,255,.08); color:#fff; border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(10px); }
.btn-glass:hover { background:rgba(255,255,255,.16); border-color:rgba(255,255,255,.4); transform:translateY(-2px); }
.btn-white { background:#fff; color:#0b1220; }
.btn-white:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(0,0,0,.25); }
.btn .arr { transition:transform .25s var(--ease); }
.btn:hover .arr { transform:translateX(3px); }
.link-arrow { display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--c-accent-text); }
.link-arrow::after { content:'→'; transition:transform .25s var(--ease); }
.link-arrow:hover::after { transform:translateX(4px); }
.chip { display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:999px; font-size:12px; font-weight:600;
  color:var(--c-accent-text); background:rgba(37,99,235,.08); border:1px solid rgba(37,99,235,.14); white-space:nowrap; }
.empty-block { text-align:center; padding:90px 20px; color:var(--c-text-3); }
.empty-block .ico { font-size:56px; opacity:.35; margin-bottom:14px; }
.empty-block p { font-size:15px; }
.flash-message { top:calc(var(--nav-h) + 14px); border-radius:12px; backdrop-filter:blur(12px); }

/* ── 导航栏 ─────────────────────────────────────────── */
.navbar { background:rgba(248,250,252,.78); backdrop-filter:blur(18px) saturate(1.6); -webkit-backdrop-filter:blur(18px) saturate(1.6);
  border-bottom:1px solid rgba(15,23,42,.07); transition:background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease); }
.navbar.scrolled { background:rgba(248,250,252,.92); box-shadow:0 6px 24px rgba(15,23,42,.08); }
html[data-theme="dark-gray"] .navbar { background:rgba(10,15,24,.72); border-bottom-color:rgba(148,163,184,.1); }
html[data-theme="dark-gray"] .navbar.scrolled { background:rgba(10,15,24,.9); box-shadow:0 6px 24px rgba(0,0,0,.35); }
.navbar .container { max-width:none; padding:0 clamp(20px,3vw,48px); gap:14px; }
.nav-brand { flex-shrink:0; }
.nav-menu { gap:2px; flex-wrap:nowrap; margin-left:auto; }
.nav-link { padding:8px 13px; font-size:14px; color:var(--c-text-2); border-radius:999px; white-space:nowrap; }
.nav-link .caret { margin-left:3px; font-size:10px; opacity:.6; }
.theme-toggle { flex-shrink:0; margin-left:6px; }
.navbar .nav-cta { white-space:nowrap; flex-shrink:0; }
/* 账号：头像 + 用户名，操作收进下拉 */
.nav-account { position:relative; flex-shrink:0; }
.nav-account-btn { display:flex; align-items:center; gap:8px; height:38px; padding:0 10px 0 4px; border-radius:999px; border:1px solid var(--c-border);
  background:var(--c-soft-btn); color:var(--c-text-2); font-size:13px; font-weight:600; cursor:pointer; transition:background .2s, border-color .2s; }
.nav-account-btn:hover, .nav-account.open .nav-account-btn { border-color:var(--c-border-h); }
.nav-avatar { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:var(--c-accent-gradient); color:#fff; font-size:13px; font-weight:800; }
.nav-account .nav-user-name { max-width:96px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:inherit; font-size:13px; }
.nav-account .caret { font-size:10px; opacity:.6; transition:transform .2s; }
.nav-account.open .caret { transform:rotate(180deg); }
.nav-account-menu { position:absolute; right:0; top:calc(100% + 10px); min-width:190px; padding:8px; border-radius:14px; background:var(--c-card);
  border:1px solid var(--c-border); box-shadow:0 18px 50px rgba(15,23,42,.18); opacity:0; visibility:hidden; transform:translateY(-6px);
  transition:opacity .2s, transform .2s, visibility .2s; z-index:1001; }
.nav-account.open .nav-account-menu { opacity:1; visibility:visible; transform:none; }
.nav-account-head { padding:8px 12px 10px; margin-bottom:4px; border-bottom:1px solid var(--c-border); font-size:12px; color:var(--c-text-3); }
.nav-account-head strong { display:block; margin-top:2px; font-size:14px; color:var(--c-text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav-account-menu a { display:block; padding:9px 12px; border-radius:8px; font-size:14px; color:var(--c-text-2); white-space:nowrap; }
.nav-account-menu a:hover { background:var(--c-soft-btn); color:var(--c-text); }
.nav-account-menu a.danger:hover { color:#dc2626; }
.nav-link:hover { background:rgba(37,99,235,.07); }
.nav-link.active { color:var(--c-accent-text); }
.nav-link.active::after { bottom:1px; width:14px; background:var(--c-accent-gradient); }
.nav-link-cta { margin-left:6px; background:var(--c-text); color:var(--c-bg) !important; padding:8px 16px; }
.nav-link-cta:hover { background:var(--c-accent); color:#fff !important; }
.nav-link-cta.active::after { display:none; }
html[data-theme="dark-gray"] .nav-link-cta { background:#eaf0f8; color:#0a0f18 !important; }
.nav-submenu { border-radius:14px; padding:8px; box-shadow:0 18px 50px rgba(15,23,42,.16); min-width:210px; }
.nav-submenu a { border-radius:8px; padding:9px 14px; }
.nav-sub-toggle { display:none; }
.nav-cta { background:var(--c-accent-gradient); border:0; }
.nav-drawer-foot { display:none; }
/* 首页：导航压在深色首屏上时透明 + 白字，滚动后恢复玻璃态 */
body:is(.page-home,.page-ink) .navbar:not(.scrolled) { background:linear-gradient(180deg,rgba(6,10,19,.55),rgba(6,10,19,0)); border-bottom-color:transparent; box-shadow:none; backdrop-filter:none; -webkit-backdrop-filter:none; }
body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-link { color:rgba(255,255,255,.82); }
body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-link:hover, body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-link.active { color:#fff; background:rgba(255,255,255,.08); }
body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-link-cta { background:#fff; color:#0b1220 !important; }
body:is(.page-home,.page-ink) .navbar:not(.scrolled) .brand-logo { filter:brightness(0) invert(1); }
body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-toggle { color:#fff; background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.2); }
body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-account-btn { color:#fff; background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.22); }

/* 桌面窄一点时收紧间距；再窄（≤1200）就改成抽屉，永远不让菜单项换行 */
@media (max-width:1440px) and (min-width:1201px) {
  .nav-link { padding:8px 10px; font-size:13.5px; }
  .nav-link .caret { display:none; }
  .nav-account .nav-user-name { display:none; }
  .nav-account-btn { padding:0 8px 0 4px; }
}
@media (max-width:768px) {
  :root { --nav-h:64px; }
  .navbar .container { padding:0 14px; }
  .nav-brand .brand-logo { height:26px; width:auto; }
}
/* 平板 / 手机：右侧抽屉，子菜单可展开 */
@media (max-width:1200px) {
  .navbar .nav-cta, .nav-account { display:none; }
  .nav-toggle { display:grid; place-items:center; width:40px; height:40px; margin-left:8px; border-radius:12px; background:var(--c-surface); border:1px solid var(--c-border); color:var(--c-text); }
  .nav-link.active::after { display:none; }
  /* backdrop-filter 会让导航栏成为 position:fixed 子元素的包含块 ——
     抽屉和遮罩就只有导航栏那么高。手机上改用不透明底色，不用模糊。 */
  .navbar, .navbar.scrolled, html[data-theme="dark-gray"] .navbar { backdrop-filter:none; -webkit-backdrop-filter:none; }
  .navbar { background:rgba(248,250,252,.97); }
  html[data-theme="dark-gray"] .navbar { background:rgba(10,15,24,.97); }
  .theme-toggle { margin-left:auto; }
  .nav-toggle { font-size:20px; border-radius:12px; }
  .nav-menu {
    position:fixed; top:0; right:0; bottom:0; left:auto; width:min(86vw,360px); height:100dvh; max-height:none;
    padding:calc(var(--nav-h) + 10px) 14px 24px; gap:2px; overflow-y:auto; overscroll-behavior:contain;
    border-radius:0; border:0; border-left:1px solid var(--c-border);
    background:var(--c-card); box-shadow:-24px 0 60px rgba(6,10,19,.28);
    opacity:1; visibility:hidden; transform:translateX(104%); transition:transform .32s var(--ease), visibility .32s;
    flex-direction:column; align-items:stretch; z-index:998;
  }
  .nav-menu.active { visibility:visible; transform:translateX(0); }
  .nav-backdrop { position:fixed; inset:0; background:rgba(6,10,19,.45); backdrop-filter:blur(2px); opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; z-index:997; }
  .nav-backdrop.show { opacity:1; visibility:visible; }
  .navbar .nav-brand, .navbar .theme-toggle, .navbar .nav-toggle { position:relative; z-index:999; }
  body.nav-open { overflow:hidden; }
  body:is(.page-home,.page-ink).nav-open .navbar:not(.scrolled) .nav-toggle { color:var(--c-text); background:var(--c-soft-btn); }
  body:is(.page-home,.page-ink).nav-open .navbar:not(.scrolled) .brand-logo { filter:none; }
  .nav-menu .nav-link, body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-menu .nav-link {
    display:flex; align-items:center; justify-content:space-between; padding:14px 14px; font-size:16px; font-weight:600;
    color:var(--c-text); border-radius:12px; background:transparent; }
  .nav-menu .nav-link.active { color:var(--c-accent-text); background:rgba(37,99,235,.07); }
  .nav-menu .nav-link .caret { display:none; }
  .nav-item { display:block; position:relative; }
  .nav-sub-toggle { display:grid; place-items:center; position:absolute; right:4px; top:6px; width:40px; height:40px; border:0; border-radius:10px;
    background:transparent; color:var(--c-text-3); font-size:14px; transition:transform .25s var(--ease), background .2s; }
  .nav-sub-toggle:active { background:var(--c-soft-btn); }
  .nav-item.open > .nav-sub-toggle { transform:rotate(180deg); color:var(--c-accent); }
  .nav-item > .nav-submenu, .nav-item:hover > .nav-submenu {
    position:static; transform:none; opacity:1; visibility:visible; display:none; min-width:0; margin:0 0 6px 10px; padding:4px 0 4px 10px;
    border:0; border-left:2px solid var(--c-border); border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; }
  .nav-item.open > .nav-submenu { display:block; }
  .nav-submenu a { padding:10px 12px; font-size:14.5px; }
  .nav-link-cta, body:is(.page-home,.page-ink) .navbar:not(.scrolled) .nav-menu .nav-link-cta { justify-content:center; margin:12px 0 0; background:var(--c-accent-gradient); color:#fff !important; }
  .nav-drawer-foot { display:flex; flex-direction:column; gap:10px; margin-top:auto; padding-top:18px; border-top:1px solid var(--c-border); }
  .nav-drawer-foot .nav-drawer-user { font-size:13px; color:var(--c-text-3); }
  .nav-drawer-foot .nav-drawer-actions { display:flex; gap:8px; flex-wrap:wrap; }
  .nav-drawer-foot a { flex:1; text-align:center; padding:11px 12px; border-radius:12px; border:1px solid var(--c-border); font-size:14px; font-weight:600; color:var(--c-text-2); }
  .nav-drawer-foot a.primary { background:var(--c-text); color:var(--c-bg); border-color:transparent; }
  .nav-drawer-foot .nav-drawer-contact { font-size:13px; color:var(--c-text-3); line-height:1.8; }
  .nav-drawer-foot .nav-drawer-contact a { display:inline; border:0; padding:0; color:var(--c-accent-text); }
}

/* ── 内页头图 ───────────────────────────────────────── */
.ph { position:relative; overflow:hidden; background:var(--c-ink); color:var(--c-ink-text);
  padding:calc(var(--nav-h) + clamp(36px,6vw,72px)) 0 clamp(36px,5vw,64px); isolation:isolate; }
.ph::before { content:''; position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(60% 90% at 85% 0%, rgba(37,99,235,.35), transparent 60%),
    radial-gradient(40% 70% at 0% 100%, rgba(6,182,212,.22), transparent 60%),
    linear-gradient(180deg,var(--c-ink-2),var(--c-ink)); }
.ph::after { content:''; position:absolute; inset:0; z-index:-1; opacity:.55;
  background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);
  background-size:48px 48px; mask-image:linear-gradient(180deg,#000 20%,transparent 100%); -webkit-mask-image:linear-gradient(180deg,#000 20%,transparent 100%); }
.ph-crumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:18px; font-size:13px; color:var(--c-ink-text-3); }
.ph-crumb a { color:var(--c-ink-text-2); }
.ph-crumb a:hover { color:#fff; }
.ph-crumb span[aria-hidden] { opacity:.5; }
.ph h1 { font-size:clamp(30px,4.6vw,52px); line-height:1.12; font-weight:900; letter-spacing:-1px; color:#fff; margin:14px 0 12px; max-width:880px; }
.ph p.ph-desc { font-size:clamp(14.5px,1.4vw,17px); color:var(--c-ink-text-2); max-width:680px; line-height:1.8; }
.ph-meta { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:18px; font-size:13px; color:var(--c-ink-text-3); }
.ph-meta b { color:#fff; font-family:var(--f-mono); font-weight:700; }
.ph.is-compact { padding-bottom:clamp(28px,4vw,44px); }

/* 内页内容区：头图下方的第一块 */
.page-body { padding:clamp(28px,4vw,56px) 0 clamp(56px,8vw,110px); }

/* 横向可滚动的筛选条 */
.filter-bar { display:flex; align-items:center; gap:12px; margin-bottom:28px; flex-wrap:wrap; }
.filter-chips { display:flex; gap:8px; flex-wrap:wrap; }
.filter-chips a, .filter-chips button { display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 16px; border-radius:999px;
  border:1px solid var(--c-border); background:var(--c-card); color:var(--c-text-2); font-size:14px; font-weight:600; white-space:nowrap;
  transition:all .2s var(--ease); cursor:pointer; }
.filter-chips a:hover, .filter-chips button:hover { border-color:var(--c-border-h); color:var(--c-accent-text); }
.filter-chips a.active, .filter-chips button.active { background:var(--c-text); color:var(--c-bg); border-color:transparent; }
html[data-theme="dark-gray"] .filter-chips a.active { background:#eaf0f8; color:#0a0f18; }
.filter-chips i { font-style:normal; font-size:12px; opacity:.6; font-family:var(--f-mono); }
.filter-search { margin-left:auto; display:flex; align-items:center; gap:8px; height:40px; padding:0 14px; min-width:240px;
  border-radius:999px; background:var(--c-card); border:1px solid var(--c-border); }
.filter-search:focus-within { border-color:var(--c-border-h); box-shadow:0 0 0 4px var(--c-accent-glow); }
.filter-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--c-text); font:500 14px var(--f-body); }
.filter-search span { color:var(--c-text-3); }
@media (max-width:768px) {
  .filter-bar { display:block; margin-bottom:18px; }
  .filter-chips { flex-wrap:nowrap; overflow-x:auto; width:calc(100% + 32px); margin:0 -16px; padding:2px 16px; scrollbar-width:none; }
  .filter-chips + .filter-search { margin-top:10px; }
  .filter-chips::-webkit-scrollbar { display:none; }
  .filter-chips a { height:34px; padding:0 13px; font-size:13px; }
  .filter-search { margin-left:0; min-width:0; }
}

/* ── 区块标题 ───────────────────────────────────────── */
.sec { padding:clamp(64px,9vw,120px) 0; position:relative; }
.sec-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:clamp(28px,4vw,48px); }
.sec-head h2 { font-size:clamp(28px,3.6vw,44px); line-height:1.15; font-weight:900; letter-spacing:-1px; color:var(--c-text); margin:12px 0 10px; }
.sec-head p { color:var(--c-text-3); font-size:15.5px; max-width:560px; line-height:1.8; }
.sec-head.center { flex-direction:column; align-items:center; text-align:center; }
.sec-head .sec-num { font-family:var(--f-mono); font-size:12px; color:var(--c-text-3); letter-spacing:1px; }
.sec.on-ink { background:var(--c-ink); color:var(--c-ink-text); }
.sec.on-ink .sec-head h2 { color:#fff; }
.sec.on-ink .sec-head p { color:var(--c-ink-text-2); }
@media (max-width:640px) { .sec-head { flex-direction:column; align-items:flex-start; gap:6px; } }

/* ── 首页：首屏 ─────────────────────────────────────── */
.hx-hero { position:relative; min-height:max(640px,100svh); display:flex; align-items:center; overflow:hidden; background:var(--c-ink); color:#fff; isolation:isolate; }
.hx-slides { position:absolute; inset:0; z-index:-3; }
.hx-slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transform:scale(1.08);
  transition:opacity 1.2s var(--ease), transform 7s linear; }
.hx-slide.active { opacity:1; transform:scale(1); }
.hx-slide.is-fallback { background:
    radial-gradient(50% 60% at 78% 40%, rgba(37,99,235,.55), transparent 70%),
    radial-gradient(40% 50% at 20% 80%, rgba(6,182,212,.28), transparent 70%),
    linear-gradient(160deg,#0b1221,#060a13); }
.hx-hero::before { content:''; position:absolute; inset:0; z-index:-2;
  background:linear-gradient(90deg,rgba(6,10,19,.9) 0%,rgba(6,10,19,.62) 42%,rgba(6,10,19,.15) 100%),
             linear-gradient(0deg,rgba(6,10,19,.85) 0%,rgba(6,10,19,0) 38%); }
.hx-hero::after { content:''; position:absolute; inset:0; z-index:-1; opacity:.5; pointer-events:none;
  background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);
  background-size:64px 64px; mask-image:radial-gradient(70% 70% at 30% 50%,#000,transparent); -webkit-mask-image:radial-gradient(70% 70% at 30% 50%,#000,transparent); }
.hx-inner { width:100%; padding-top:calc(var(--nav-h) + 30px); padding-bottom:150px; }
.hx-badge { display:inline-flex; align-items:center; gap:10px; padding:7px 14px 7px 8px; border-radius:999px; font-size:13px; font-weight:600;
  color:#dbeafe; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); backdrop-filter:blur(8px); animation:fadeInUp .8s var(--ease) both; }
.hx-badge i { width:8px; height:8px; margin-left:6px; border-radius:50%; background:var(--c-cyan); box-shadow:0 0 0 4px rgba(34,211,238,.18); animation:hxPulse 2s ease infinite; }
@keyframes hxPulse { 50% { box-shadow:0 0 0 8px rgba(34,211,238,0); } }
.hx-title { font-size:clamp(40px,6.6vw,88px); line-height:1.04; font-weight:900; letter-spacing:-2.5px; margin:22px 0 22px; max-width:900px;
  animation:fadeInUp .9s var(--ease) .1s both; }
.hx-title .grad-text { background:linear-gradient(100deg,#60a5fa 0%,#22d3ee 60%,#a5f3fc 100%); -webkit-background-clip:text; background-clip:text; }
.hx-desc { max-width:600px; font-size:clamp(15px,1.4vw,18px); line-height:1.85; color:rgba(226,232,240,.82); animation:fadeInUp .9s var(--ease) .2s both; }
.hx-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; animation:fadeInUp .9s var(--ease) .3s both; }
.hx-actions .btn { padding:15px 28px; font-size:15px; }
.hx-caption { position:absolute; right:clamp(16px,4vw,48px); bottom:150px; width:min(340px,40vw); padding:16px 18px; border-radius:16px;
  background:rgba(6,10,19,.45); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  transition:opacity .5s var(--ease), transform .5s var(--ease); }
.hx-caption.swap { opacity:0; transform:translateY(8px); }
.hx-caption small { display:block; font-family:var(--f-mono); font-size:11px; letter-spacing:2px; color:var(--c-cyan); margin-bottom:6px; }
.hx-caption strong { display:block; font-size:16px; line-height:1.4; }
.hx-caption span { display:block; margin-top:4px; font-size:13px; color:rgba(226,232,240,.72); }
.hx-caption a { display:inline-flex; margin-top:10px; font-size:13px; font-weight:600; color:#fff; }
.hx-caption a::after { content:' →'; }
.hx-progress { position:absolute; left:0; right:0; bottom:112px; }
.hx-progress .container { display:flex; align-items:center; gap:16px; }
.hx-count { font-family:var(--f-mono); font-size:13px; color:rgba(226,232,240,.75); letter-spacing:1px; min-width:64px; }
.hx-count b { color:#fff; font-size:18px; }
.hx-bars { display:flex; gap:8px; }
.hx-bar { position:relative; width:56px; height:3px; padding:0; border:0; border-radius:3px; background:rgba(255,255,255,.22); overflow:hidden; cursor:pointer; }
.hx-bar::before { content:''; position:absolute; inset:-10px 0; }
.hx-bar i { position:absolute; inset:0; width:0; background:#fff; border-radius:3px; }
.hx-bar.active i { animation:hxFill var(--hx-dur,6s) linear forwards; }
.hx-hero.paused .hx-bar.active i { animation-play-state:paused; }
@keyframes hxFill { to { width:100%; } }
.hx-scroll { position:absolute; left:50%; bottom:26px; transform:translateX(-50%); width:24px; height:38px; border-radius:14px; border:1.5px solid rgba(255,255,255,.35); }
.hx-scroll::after { content:''; position:absolute; left:50%; top:8px; width:3px; height:8px; margin-left:-1.5px; border-radius:2px; background:#fff; animation:hxScroll 1.8s ease infinite; }
@keyframes hxScroll { 0%{opacity:0;transform:translateY(0)} 30%{opacity:1} 100%{opacity:0;transform:translateY(12px)} }

/* 数据条：压在首屏底边上的玻璃卡 */
.hx-stats { position:relative; z-index:5; margin-top:-78px; }
.hx-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); border-radius:20px; overflow:hidden;
  background:rgba(255,255,255,.82); border:1px solid rgba(255,255,255,.7); box-shadow:var(--shadow-2); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
html[data-theme="dark-gray"] .hx-stats-grid { background:rgba(19,28,43,.86); border-color:var(--c-border); }
.hx-stat { padding:26px 28px; position:relative; }
.hx-stat + .hx-stat::before { content:''; position:absolute; left:0; top:24px; bottom:24px; width:1px; background:var(--c-border); }
.hx-stat .value { font-family:var(--f-mono); font-size:clamp(28px,3.4vw,42px); font-weight:700; line-height:1; color:var(--c-text); letter-spacing:-1px; }
.hx-stat .value .accent { color:var(--c-accent); margin-left:2px; }
.hx-stat .label { margin-top:10px; font-size:13.5px; color:var(--c-text-3); }

/* 首页产品：第一个大卡 + 其余网格 */
.hx-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.hx-feature { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); border-radius:24px; overflow:hidden;
  background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:box-shadow .4s var(--ease), transform .4s var(--ease); }
.hx-feature:hover { box-shadow:var(--shadow-2); transform:translateY(-3px); }
.hx-feature-media { position:relative; min-height:380px; background:radial-gradient(70% 70% at 50% 45%,#ffffff,#e9eef5); display:grid; place-items:center; overflow:hidden; }
html[data-theme="dark-gray"] .hx-feature-media { background:radial-gradient(70% 70% at 50% 45%,#1d2940,#111a2a); }
.hx-feature-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:28px; transition:transform .8s var(--ease); }
.hx-feature:hover .hx-feature-media img { transform:scale(1.04); }
.hx-feature-body { padding:clamp(24px,3.4vw,48px); display:flex; flex-direction:column; justify-content:center; }
.hx-feature-body .chip { width:fit-content; }
.hx-feature-body h3 { margin:14px 0 8px; font-size:clamp(24px,2.6vw,34px); line-height:1.25; font-weight:900; letter-spacing:-.5px; color:var(--c-text); }
.hx-feature-body .slogan { font-size:15px; font-weight:600; color:var(--c-accent-text); margin-bottom:12px; }
.hx-feature-body p.desc { font-size:14.5px; line-height:1.9; color:var(--c-text-2); display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.hx-feature-specs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 26px; }
.hx-feature-specs div { padding:12px 14px; border-radius:12px; background:var(--c-bg); border:1px solid var(--c-border); min-width:0; }
.hx-feature-specs strong { display:block; font-weight:800; font-size:15px; color:var(--c-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hx-feature-specs span { font-size:12px; color:var(--c-text-3); }
.hx-feature-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }

/* 产品卡（首页网格 + 产品中心共用） */
.pc-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.pc { position:relative; display:flex; flex-direction:column; border-radius:20px; overflow:hidden; background:var(--c-card);
  border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s; }
.pc:hover { transform:translateY(-6px); box-shadow:var(--shadow-2); border-color:var(--c-border-h); }
.pc-media { position:relative; aspect-ratio:4/3; background:radial-gradient(80% 80% at 50% 40%,#ffffff,#eaeff6); overflow:hidden; }
html[data-theme="dark-gray"] .pc-media { background:radial-gradient(80% 80% at 50% 40%,#1c2739,#121a28); }
.pc-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:18px; transition:transform .7s var(--ease); }
.pc:hover .pc-media img { transform:scale(1.06); }
.pc-media .ph-ico { position:absolute; inset:0; display:grid; place-items:center; font-size:48px; font-weight:900; color:var(--c-border); }
.pc-flag { position:absolute; top:12px; left:12px; z-index:1; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; color:#fff; background:linear-gradient(90deg,#ff8a00,#ff4d2e); }
.pc-body { flex:1; display:flex; flex-direction:column; padding:18px 20px 20px; }
.pc-cat { font-size:12px; font-weight:700; color:var(--c-accent-text); letter-spacing:.3px; }
.pc-body h3 { margin:6px 0 6px; font-size:17px; line-height:1.4; font-weight:800; color:var(--c-text); transition:color .25s; }
.pc:hover .pc-body h3 { color:var(--c-accent-text); }
.pc-body p { font-size:13.5px; line-height:1.7; color:var(--c-text-3); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pc-specs { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.pc-specs span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:3px 9px; border-radius:6px; font-size:12px; color:var(--c-text-2); background:var(--c-bg); border:1px solid var(--c-border); }
.pc-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding-top:16px; }
.pc-price { font-weight:800; color:var(--c-hot); font-size:18px; font-family:var(--f-mono); }
.pc-price small { font-size:12px; }
.pc-price.is-quote { font-family:var(--f-body); font-size:14px; color:var(--c-text-2); }
.pc-go { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--c-bg); color:var(--c-text-2); font-size:15px; transition:all .3s var(--ease); }
.pc:hover .pc-go { background:var(--c-accent); color:#fff; transform:rotate(-45deg); }
@media (min-width:1500px) { .pc-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:1024px) { .pc-grid, .hx-products { grid-template-columns:repeat(2,minmax(0,1fr)); } .hx-feature { grid-template-columns:1fr; } .hx-feature-media { min-height:300px; } }
@media (max-width:640px) {
  .pc-grid, .hx-products { gap:12px; }
  .pc { border-radius:16px; }
  .pc-body { padding:12px 12px 14px; }
  .pc-body h3 { font-size:14.5px; -webkit-line-clamp:2; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; }
  .pc-body p, .pc-specs { display:none; }
  .pc-cat { font-size:11px; }
  .pc-price { font-size:15px; }
  .pc-go { width:28px; height:28px; font-size:13px; }
  .pc-media img { padding:10px; }
  .hx-feature { border-radius:18px; }
  .hx-feature-media { min-height:240px; }
  .hx-feature-body { padding:20px; }
}

/* 核心技术：深色带 */
.hx-tech-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.hx-tech { position:relative; padding:28px 24px 26px; border-radius:20px; background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--c-ink-line); overflow:hidden; transition:border-color .4s var(--ease), transform .4s var(--ease); }
.hx-tech::before { content:''; position:absolute; width:220px; height:220px; right:-80px; top:-80px; border-radius:50%;
  background:radial-gradient(circle,rgba(37,99,235,.35),transparent 70%); opacity:.0; transition:opacity .5s var(--ease); }
.hx-tech:hover { border-color:rgba(34,211,238,.4); transform:translateY(-4px); }
.hx-tech:hover::before { opacity:1; }
.hx-tech-ico { width:52px; height:52px; display:grid; place-items:center; border-radius:14px; font-size:24px;
  background:linear-gradient(135deg,rgba(37,99,235,.28),rgba(6,182,212,.18)); border:1px solid rgba(148,163,184,.18); }
.hx-tech-label { margin-top:22px; font-family:var(--f-mono); font-size:11px; letter-spacing:2px; color:var(--c-cyan); }
.hx-tech h3 { margin:8px 0 8px; font-size:19px; font-weight:800; color:#fff; }
.hx-tech p { font-size:13.5px; line-height:1.8; color:var(--c-ink-text-2); }
.hx-tech-no { position:absolute; right:20px; top:22px; font-family:var(--f-mono); font-size:12px; color:var(--c-ink-text-3); }
.sec.on-ink.hx-tech-sec::before { content:''; position:absolute; inset:0; pointer-events:none; opacity:.6;
  background:radial-gradient(40% 60% at 15% 0%,rgba(37,99,235,.25),transparent 70%),radial-gradient(40% 60% at 90% 100%,rgba(6,182,212,.18),transparent 70%); }
@media (max-width:1024px) { .hx-tech-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .hx-tech-grid { grid-template-columns:1fr; } .hx-tech { padding:22px 20px; } }

/* 应用场景 */
.hx-scenes { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.hx-scene { position:relative; aspect-ratio:3/4; border-radius:20px; overflow:hidden; color:#fff; isolation:isolate;
  background:linear-gradient(160deg,#1e3a8a,#0b1221); }
.hx-scene:nth-child(4n+2) { background:linear-gradient(160deg,#0e7490,#0b1221); }
.hx-scene:nth-child(4n+3) { background:linear-gradient(160deg,#4338ca,#0b1221); }
.hx-scene:nth-child(4n+4) { background:linear-gradient(160deg,#0f766e,#0b1221); }
.hx-scene img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform .8s var(--ease); }
.hx-scene:hover img { transform:scale(1.06); }
.hx-scene::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(6,10,19,.88) 0%,rgba(6,10,19,.1) 60%); }
.hx-scene-no { position:absolute; top:18px; left:20px; font-family:var(--f-mono); font-size:13px; color:rgba(255,255,255,.7); }
.hx-scene-body { position:absolute; left:20px; right:20px; bottom:20px; }
.hx-scene-body h3 { font-size:20px; font-weight:800; }
.hx-scene-body p { margin-top:6px; font-size:13px; line-height:1.7; color:rgba(226,232,240,.8); }
@media (max-width:1024px) { .hx-scenes { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .hx-scenes { gap:10px; } .hx-scene { aspect-ratio:4/5; border-radius:16px; } .hx-scene-body { left:14px; right:14px; bottom:14px; } .hx-scene-body h3 { font-size:16px; } .hx-scene-body p { font-size:12px; } }

/* 新闻 */
.nw-home { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:20px; }
.nw-big { display:flex; flex-direction:column; border-radius:20px; overflow:hidden; background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:box-shadow .4s, transform .4s var(--ease); }
.nw-big:hover { box-shadow:var(--shadow-2); transform:translateY(-4px); }
.nw-big-media { aspect-ratio:16/9; background:var(--c-surface); overflow:hidden; }
.nw-big-media img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.nw-big:hover .nw-big-media img { transform:scale(1.04); }
.nw-big-body { padding:22px 24px 26px; }
.nw-meta { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-size:12.5px; color:var(--c-text-3); font-family:var(--f-mono); }
.nw-meta .chip { font-family:var(--f-body); height:22px; font-size:11.5px; }
.nw-pin { color:var(--c-hot); font-family:var(--f-body); font-weight:700; }
.nw-big h3 { margin:12px 0 8px; font-size:clamp(19px,2vw,24px); line-height:1.4; font-weight:800; color:var(--c-text); }
.nw-big:hover h3, .nw-row:hover h4 { color:var(--c-accent-text); }
.nw-big p { font-size:14px; line-height:1.8; color:var(--c-text-3); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nw-list { display:flex; flex-direction:column; gap:14px; }
.nw-row { display:grid; grid-template-columns:132px minmax(0,1fr); gap:16px; align-items:center; padding:12px; border-radius:16px; background:var(--c-card); border:1px solid var(--c-border); transition:border-color .3s, transform .3s var(--ease); }
.nw-row:hover { border-color:var(--c-border-h); transform:translateX(3px); }
.nw-row-media { aspect-ratio:4/3; border-radius:10px; overflow:hidden; background:var(--c-surface); }
.nw-row-media img { width:100%; height:100%; object-fit:cover; }
.nw-row h4 { margin:6px 0 0; font-size:15.5px; line-height:1.5; font-weight:700; color:var(--c-text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; transition:color .25s; }
.nw-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.nw-card { display:flex; flex-direction:column; border-radius:18px; overflow:hidden; background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:transform .4s var(--ease), box-shadow .4s, border-color .4s; }
.nw-card:hover { transform:translateY(-5px); box-shadow:var(--shadow-2); border-color:var(--c-border-h); }
.nw-card-media { aspect-ratio:16/10; background:linear-gradient(135deg,var(--c-surface),var(--c-bg)); overflow:hidden; position:relative; }
.nw-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.nw-card:hover .nw-card-media img { transform:scale(1.05); }
.nw-card-media .ph-ico { position:absolute; inset:0; display:grid; place-items:center; font-size:40px; opacity:.3; }
.nw-card-body { flex:1; display:flex; flex-direction:column; padding:18px 20px 20px; }
.nw-card h3 { margin:10px 0 8px; font-size:17px; line-height:1.5; font-weight:800; color:var(--c-text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; transition:color .25s; }
.nw-card:hover h3 { color:var(--c-accent-text); }
.nw-card p { font-size:13.5px; line-height:1.75; color:var(--c-text-3); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nw-card-foot { margin-top:auto; padding-top:14px; display:flex; justify-content:space-between; font-size:12.5px; color:var(--c-text-3); }
.nw-feature { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); margin-bottom:24px; border-radius:22px; overflow:hidden; background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:box-shadow .4s; }
.nw-feature:hover { box-shadow:var(--shadow-2); }
.nw-feature .nw-card-media { aspect-ratio:auto; min-height:320px; }
.nw-feature-body { padding:clamp(22px,3vw,40px); display:flex; flex-direction:column; justify-content:center; }
.nw-feature-body h2 { margin:14px 0 10px; font-size:clamp(22px,2.4vw,30px); line-height:1.35; font-weight:900; color:var(--c-text); }
.nw-feature-body p { font-size:15px; line-height:1.85; color:var(--c-text-3); margin-bottom:20px; }
@media (max-width:1024px) { .nw-home { grid-template-columns:1fr; } .nw-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .nw-feature { grid-template-columns:1fr; } .nw-feature .nw-card-media { min-height:220px; aspect-ratio:16/9; } }
@media (max-width:640px) {
  .nw-grid { grid-template-columns:1fr; gap:14px; }
  .nw-row { grid-template-columns:104px minmax(0,1fr); gap:12px; padding:10px; }
  .nw-row h4 { font-size:14.5px; }
  .nw-card-body { padding:16px; }
}

/* 底部号召 */
.cta-band { position:relative; overflow:hidden; border-radius:28px; padding:clamp(32px,5vw,64px); color:#fff; isolation:isolate;
  background:linear-gradient(120deg,#1d4ed8 0%,#0e7490 100%); box-shadow:0 30px 80px rgba(29,78,216,.28); }
.cta-band::before { content:''; position:absolute; inset:0; z-index:-1; opacity:.35;
  background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);
  background-size:40px 40px; mask-image:linear-gradient(90deg,transparent,#000 60%); -webkit-mask-image:linear-gradient(90deg,transparent,#000 60%); }
.cta-band::after { content:''; position:absolute; right:-120px; top:-120px; width:380px; height:380px; border-radius:50%; z-index:-1; background:radial-gradient(circle,rgba(165,243,252,.45),transparent 70%); }
.cta-band-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-band h2 { font-size:clamp(24px,3vw,38px); font-weight:900; letter-spacing:-.5px; line-height:1.25; }
.cta-band p { margin-top:10px; font-size:15.5px; color:rgba(255,255,255,.82); max-width:560px; }
.cta-band-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.cta-band-phone { font-family:var(--f-mono); font-size:15px; color:#fff; opacity:.9; }
@media (max-width:640px) { .cta-band { border-radius:20px; } .cta-band-actions { width:100%; } .cta-band-actions .btn { flex:1; } }

/* ── 页脚 ───────────────────────────────────────────── */
.nx-footer { position:relative; background:var(--c-ink); color:var(--c-ink-text-2); padding:clamp(56px,7vw,88px) 0 28px; overflow:hidden; isolation:isolate; }
.nx-footer::before { content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(50% 60% at 100% 0%,rgba(37,99,235,.18),transparent 70%); }
.nx-foot-top { display:grid; grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); gap:40px; padding-bottom:44px; border-bottom:1px solid var(--c-ink-line); }
.nx-foot-brand img { height:30px; width:auto; filter:brightness(0) invert(1); opacity:.95; }
.nx-foot-brand p { margin:16px 0 20px; font-size:14px; line-height:1.9; color:var(--c-ink-text-2); max-width:380px; }
.nx-foot-contact { display:flex; flex-direction:column; gap:10px; font-size:14px; }
.nx-foot-contact a, .nx-foot-contact span { display:inline-flex; align-items:center; gap:10px; color:var(--c-ink-text); }
.nx-foot-contact a:hover { color:var(--c-cyan); }
.nx-foot-contact i { width:28px; height:28px; display:grid; place-items:center; flex:0 0 28px; border-radius:8px; font-style:normal; font-size:13px; background:rgba(255,255,255,.06); border:1px solid var(--c-ink-line); }
.nx-foot-col h4 { font-size:13px; font-weight:700; letter-spacing:1.5px; color:#fff; margin-bottom:16px; }
.nx-foot-col ul { display:flex; flex-direction:column; gap:11px; }
.nx-foot-col a { font-size:14px; color:var(--c-ink-text-2); transition:color .2s; }
.nx-foot-col a:hover { color:#fff; }
.nx-qr-row { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; padding:34px 0; border-bottom:1px solid var(--c-ink-line); }
.nx-qr { display:flex; align-items:center; gap:12px; padding:12px; border-radius:16px; background:rgba(255,255,255,.035); border:1px solid var(--c-ink-line); transition:border-color .3s, background .3s; }
.nx-qr:hover { border-color:rgba(34,211,238,.35); background:rgba(255,255,255,.06); }
.nx-qr-img { flex:0 0 76px; width:76px; height:76px; padding:5px; border-radius:10px; background:#fff; transition:transform .35s var(--ease); transform-origin:left bottom; }
.nx-qr-img img { width:100%; height:100%; object-fit:contain; }
.nx-qr:hover .nx-qr-img { transform:scale(1.9); box-shadow:0 20px 50px rgba(0,0,0,.45); position:relative; z-index:3; }
.nx-qr strong { display:block; font-size:14px; color:#fff; line-height:1.4; }
.nx-qr span { display:block; margin-top:3px; font-size:12px; line-height:1.5; color:var(--c-ink-text-3); }
.nx-foot-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 24px; padding-top:24px; font-size:12.5px; color:var(--c-ink-text-3); }
.nx-foot-bottom a:hover { color:#fff; }
.nx-foot-bottom .beian { display:flex; flex-wrap:wrap; gap:6px 18px; }
@media (max-width:1024px) { .nx-foot-top { grid-template-columns:1fr 1fr 1fr; } .nx-foot-brand { grid-column:1 / -1; } }
@media (max-width:640px) {
  .nx-foot-top { grid-template-columns:1fr 1fr; gap:28px 20px; padding-bottom:30px; }
  .nx-foot-top .nx-foot-col:last-child { grid-column:1 / -1; }
  .nx-qr-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:24px 0; }
  .nx-qr { flex-direction:column; text-align:center; gap:8px; padding:12px 8px; }
  .nx-qr-img { width:100px; height:100px; flex-basis:100px; }
  .nx-qr:hover .nx-qr-img { transform:none; box-shadow:none; }
  .nx-foot-bottom { flex-direction:column; align-items:center; text-align:center; }
  .nx-foot-bottom .beian { justify-content:center; }
}
/* 客服浮钮与新配色统一 */
.mc-customer-toggle { background:var(--c-accent-gradient); border:0; box-shadow:0 14px 36px rgba(37,99,235,.35); }
.mc-customer-panel { background:var(--c-card); border-radius:18px; }
html[data-theme="dark-gray"] .mc-customer-panel { background:var(--c-card); }

/* ── 文章正文（新闻 / 教程） ─────────────────────────── */
.article { max-width:820px; margin:0 auto; }
.article-card { background:var(--c-card); border:1px solid var(--c-border); border-radius:24px; padding:clamp(22px,4vw,52px); box-shadow:var(--shadow-1); }
.article-cover { margin:0 0 28px; border-radius:16px; overflow:hidden; background:var(--c-surface); }
.article-cover img { width:100%; }
.article-video { position:relative; aspect-ratio:16/9; margin-bottom:28px; border-radius:16px; overflow:hidden; background:#000; }
.article-video iframe, .article-video video { position:absolute; inset:0; width:100%; height:100%; border:0; }
.article-lead { font-size:17px; line-height:1.9; color:var(--c-text); padding:16px 20px; margin-bottom:26px; border-left:3px solid var(--c-accent); background:var(--c-bg); border-radius:0 12px 12px 0; }
.prose { font-size:16px; line-height:1.95; color:var(--c-text-2); word-break:break-word; }
.prose > * + * { margin-top:1.05em; }
.prose h1, .prose h2 { font-size:24px; line-height:1.4; font-weight:800; color:var(--c-text); margin-top:1.8em; padding-left:12px; border-left:4px solid var(--c-accent); }
.prose h3 { font-size:19px; font-weight:800; color:var(--c-text); margin-top:1.6em; }
.prose h4 { font-size:16px; font-weight:800; color:var(--c-text); }
.prose a { color:var(--c-accent-text); text-decoration:underline; text-underline-offset:3px; }
.prose img { border-radius:12px; margin:1.4em auto; }
.prose figure figcaption { text-align:center; font-size:13px; color:var(--c-text-3); margin-top:-.6em; }
.prose ul, .prose ol { padding-left:1.4em; list-style:revert; }
.prose li + li { margin-top:.4em; }
.prose blockquote { padding:12px 18px; border-left:3px solid var(--c-accent); background:var(--c-bg); border-radius:0 10px 10px 0; color:var(--c-text); }
.prose code { font-family:var(--f-mono); font-size:.9em; padding:2px 6px; border-radius:6px; background:var(--c-bg); border:1px solid var(--c-border); }
.prose pre { overflow-x:auto; padding:16px; border-radius:12px; background:#0b1221; color:#e2e8f0; font-size:13.5px; line-height:1.7; }
.prose pre code { background:none; border:0; padding:0; color:inherit; }
.prose table { width:100%; border-collapse:collapse; font-size:14px; display:block; overflow-x:auto; }
.prose th, .prose td { padding:10px 12px; border:1px solid var(--c-border); text-align:left; }
.prose th { background:var(--c-bg); color:var(--c-text); }
.prose hr { border:0; height:1px; background:var(--c-border); margin:2em 0; }
.article-foot { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-top:36px; padding-top:22px; border-top:1px solid var(--c-border); }
.article-share { display:flex; gap:8px; }
.article-share button { height:36px; padding:0 14px; border-radius:999px; border:1px solid var(--c-border); background:var(--c-bg); color:var(--c-text-2); font-size:13px; font-weight:600; }
.article-share button:hover { border-color:var(--c-border-h); color:var(--c-accent-text); }
.article-nav { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; }
.article-nav a { display:block; padding:16px 18px; border-radius:16px; background:var(--c-card); border:1px solid var(--c-border); transition:border-color .25s; min-width:0; }
.article-nav a:hover { border-color:var(--c-border-h); }
.article-nav small { display:block; font-size:12px; color:var(--c-text-3); margin-bottom:4px; }
.article-nav strong { display:block; font-size:14.5px; color:var(--c-text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.article-nav .next { text-align:right; }
.article-attach { display:flex; align-items:center; gap:14px; margin-top:30px; padding:16px 18px; border-radius:16px; border:1px dashed var(--c-border-h); background:var(--c-bg); }
.article-attach .ico { width:44px; height:44px; flex:0 0 44px; display:grid; place-items:center; border-radius:10px; background:#e5484d; color:#fff; font-size:11px; font-weight:800; }
.related-title { margin:56px 0 18px; font-size:20px; font-weight:800; color:var(--c-text); }
@media (max-width:640px) {
  .article-card { border-radius:18px; padding:20px 16px; }
  .prose { font-size:15.5px; }
  .article-nav { grid-template-columns:1fr; }
  .article-nav .next { text-align:left; }
}

/* ── 关于我们 ───────────────────────────────────────── */
.ab-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,64px); align-items:center; }
.ab-media { position:relative; aspect-ratio:4/3; border-radius:24px; overflow:hidden; background:linear-gradient(145deg,#1e3a8a,#0b1221); box-shadow:var(--shadow-2); }
.ab-media img { width:100%; height:100%; object-fit:cover; }
.ab-media .ab-media-ph { position:absolute; inset:0; display:grid; place-items:center; }
.ab-media .ab-media-ph img { width:46%; height:auto; filter:brightness(0) invert(1); opacity:.9; object-fit:contain; }
.ab-media::after { content:''; position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px); background-size:36px 36px; }
.ab-text h2 { font-size:clamp(26px,3.2vw,40px); line-height:1.25; font-weight:900; letter-spacing:-.5px; color:var(--c-text); margin:12px 0 18px; }
.ab-text .prose { font-size:15.5px; }
.ab-values { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.ab-value { padding:28px 26px; border-radius:20px; background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:transform .4s var(--ease), border-color .4s; }
.ab-value:hover { transform:translateY(-5px); border-color:var(--c-border-h); }
.ab-value .ico { width:52px; height:52px; display:grid; place-items:center; border-radius:14px; font-size:24px; background:linear-gradient(135deg,rgba(37,99,235,.14),rgba(6,182,212,.1)); }
.ab-value h3 { margin:18px 0 8px; font-size:18px; font-weight:800; color:var(--c-text); }
.ab-value p { font-size:14px; line-height:1.8; color:var(--c-text-3); }
.ab-timeline { position:relative; display:flex; flex-direction:column; gap:26px; padding-left:28px; max-width:820px; }
.ab-timeline::before { content:''; position:absolute; left:6px; top:6px; bottom:6px; width:2px; background:linear-gradient(180deg,var(--c-accent),rgba(6,182,212,.2)); }
.ab-mile { position:relative; }
.ab-mile::before { content:''; position:absolute; left:-28px; top:5px; width:14px; height:14px; border-radius:50%; background:var(--c-card); border:3px solid var(--c-accent); }
.ab-mile time { font-family:var(--f-mono); font-size:14px; font-weight:700; color:var(--c-accent-text); }
.ab-mile h3 { margin:4px 0 4px; font-size:17px; font-weight:800; color:var(--c-text); }
.ab-mile p { font-size:14px; color:var(--c-text-3); line-height:1.75; }
@media (max-width:860px) { .ab-intro { grid-template-columns:1fr; } }

/* ── 联系我们 ───────────────────────────────────────── */
.ct-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px; align-items:start; }
.ct-cards { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ct-card { display:flex; flex-direction:column; gap:8px; padding:20px; border-radius:18px; background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); transition:border-color .3s, transform .3s var(--ease); min-width:0; }
a.ct-card:hover { border-color:var(--c-border-h); transform:translateY(-3px); }
.ct-card .ico { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; font-size:18px; background:linear-gradient(135deg,rgba(37,99,235,.14),rgba(6,182,212,.1)); }
.ct-card small { font-size:12.5px; color:var(--c-text-3); }
.ct-card strong { font-size:15.5px; color:var(--c-text); word-break:break-all; }
.ct-card.wide { grid-column:1 / -1; }
.ct-qr { display:flex; align-items:center; gap:16px; margin-top:14px; padding:18px; border-radius:18px; background:var(--c-ink); color:var(--c-ink-text-2); }
.ct-qr img { width:96px; height:96px; padding:5px; border-radius:10px; background:#fff; flex:0 0 96px; }
.ct-qr strong { display:block; color:#fff; font-size:15px; margin-bottom:4px; }
.ct-form { padding:clamp(20px,3vw,36px); border-radius:24px; background:var(--c-card); border:1px solid var(--c-border); box-shadow:var(--shadow-1); }
.ct-form h2 { font-size:22px; font-weight:900; color:var(--c-text); }
.ct-form > p { margin:6px 0 20px; font-size:14px; color:var(--c-text-3); }
.ct-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ct-form .form-group label b { color:var(--c-danger); }
.ct-form .form-control { background:var(--c-bg); border-radius:12px; }
.ct-topics { display:flex; flex-wrap:wrap; gap:8px; }
.ct-topics label { margin:0 !important; }
.ct-topics input { position:absolute; opacity:0; pointer-events:none; }
.ct-topics span { display:inline-flex; align-items:center; height:34px; padding:0 14px; border-radius:999px; border:1px solid var(--c-border); background:var(--c-bg); font-size:13px; font-weight:600; color:var(--c-text-2); cursor:pointer; transition:all .2s; }
.ct-topics input:checked + span { background:var(--c-text); color:var(--c-bg); border-color:transparent; }
.ct-topics input:focus-visible + span { outline:2px solid var(--c-accent); outline-offset:2px; }
.ct-hint { font-size:12.5px; color:var(--c-text-3); margin:-6px 0 14px; }
.ct-inline-msg { display:none; margin-bottom:14px; padding:10px 14px; border-radius:10px; font-size:13.5px; background:rgba(220,38,38,.08); color:var(--c-danger); border:1px solid rgba(220,38,38,.2); }
.ct-inline-msg.show { display:block; }
@media (max-width:900px) { .ct-grid { grid-template-columns:1fr; } }
@media (max-width:560px) { .ct-cards { gap:10px; } .ct-card { padding:14px; border-radius:14px; } .ct-card strong { font-size:14px; } .ct-row { grid-template-columns:1fr; gap:0; } }

/* ── 分页 ───────────────────────────────────────────── */
.pagination { flex-wrap:wrap; gap:6px; }
.pagination a, .pagination span { border-radius:12px; }
.pagination span.gap { background:transparent; border:0; color:var(--c-text-3); }

/* ── 错误页 ─────────────────────────────────────────── */
.err { min-height:calc(100svh - var(--nav-h)); display:grid; place-items:center; padding:calc(var(--nav-h) + 40px) 16px 60px; text-align:center; background:var(--c-ink); color:var(--c-ink-text-2); position:relative; overflow:hidden; isolation:isolate; }
.err::before { content:''; position:absolute; inset:0; z-index:-1; background:radial-gradient(40% 50% at 50% 30%,rgba(37,99,235,.35),transparent 70%); }
.err-code { font-family:var(--f-mono); font-size:clamp(88px,18vw,180px); font-weight:700; line-height:1; letter-spacing:-6px; background:linear-gradient(180deg,#fff,rgba(255,255,255,.25)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.err h1 { margin:10px 0 8px; font-size:24px; color:#fff; }
.err p { margin-bottom:28px; }
.err-actions { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }

/* ── 旧组件跟随新视觉 ───────────────────────────────── */
.page-header { background:var(--c-ink); }
.page-header h1 { color:#fff; }
.page-header p, .page-header .breadcrumb { color:var(--c-ink-text-2); }
.dl-overview, .dl-platform-col, .dl-installer-panel, .tool-card, .tut-card { border-radius:20px; box-shadow:var(--shadow-1); }
.dl-file-row { border-radius:12px; background:var(--c-bg); }
.dl-download-btn { border-radius:999px; }
.tut-card:hover, .tool-card:hover { box-shadow:var(--shadow-2); }
.tut-filters a.active { background:var(--c-text); color:var(--c-bg); box-shadow:none; }
@media (max-width:640px) {
  .tools-grid { grid-template-columns:1fr !important; gap:14px !important; }
  .tut-grid { grid-template-columns:1fr !important; gap:14px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hx-slide { transition:opacity .3s; transform:none !important; }
  .hx-bar.active i { animation:none; width:100%; }
  .hx-badge, .hx-title, .hx-desc, .hx-actions { animation:none; }
  .hx-scroll::after, .hx-badge i { animation:none; }
  .pc, .nw-card, .nw-big, .hx-feature, .hx-tech, .ab-value { transition:none; }
}
