/* =====================================================================
   Cybergeo 首页 · 深色测试版（2026-10-28）
   ---------------------------------------------------------------------
   只服务 index-dark.html 一个页面：在 style.css 之后加载，所有规则收在
   .theme-dark 作用域内（<body class="home-v4 theme-dark">），不影响浅色站。

   色阶（黑 / 深灰为主）
     底       #0A0B0E   页面底色
     卡       #13151B   内容卡、新闻卡、产品卡
     抬升     #1B1E26   媒体占位、图标砖、内嵌块
     分隔线   rgba(255,255,255,.10)
     正文     #F5F7FB   次要 #B3BAC8   弱化 #8A91A0
     蓝（文字）#93ADFF   蓝（按钮底）#3364FF 保持品牌原色
   ===================================================================== */

html.theme-dark { color-scheme: dark; }

.theme-dark,
/* 子页里可能嵌着一层 .home-v4 容器，它自己会重新声明浅色变量，
   必须同样把深色值压回去，否则那一块会整片变白（stories 页踩过） */
.theme-dark .home-v4 {
  /* —— 首页调色板 —— */
  --h-bg:      #0A0B0E;
  --h-surface: #13151B;
  --h-ink:     #F5F7FB;
  --h-ink-2:   #B3BAC8;
  --h-ink-3:   #8A91A0;
  --h-line:    rgba(255, 255, 255, .10);
  --h-ph:      #1B1E26;
  --h-brand:   #3364FF;          /* 实心按钮底，白字对比 4.76:1 */
  --h-brand-d: #2A55E8;
  --h-brand-t: #93ADFF;          /* 深底上的蓝色文字，对比 8.5:1 */
  --h-ring:    rgba(96, 132, 255, .40);

  /* 中性噪点（SVG feTurbulence 去饱和），专门用来打散深底光晕的色阶条纹 */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.16'/%3E%3C/svg%3E");

  /* —— 全局变量（顶栏 / 页脚 / 抽屉共用）—— */
  --ink:       #F5F7FB;
  --ink-2:     #C9CFDA;
  --surface:   #13151B;
  --surface-2: #0E1015;
  --surface-3: #1B1E26;
  --line:      rgba(255, 255, 255, .10);
  --line-2:    rgba(255, 255, 255, .07);
  --brand:     #3364FF;

  /* —— style.css :root 里内页沿用的老变量 —— 深色版做整体反转 ——
     浅色：--paper 是底、--g-900 是黑；深色：底变黑、刻度全部翻转。
     内页大量直接引用这些变量，翻转一次就能带出大部分区块。 */
  --paper:     #0A0B0E;
  --paper-2:   #13151B;
  --paper-3:   #1B1E26;
  --g-100:     #14161D;
  --g-200:     #1E222B;
  --g-300:     #343A47;
  --g-400:     #8A93A2;
  --g-500:     #A7B0BF;
  --g-600:     #C2C9D6;
  --g-700:     #DDE2EB;
  --g-800:     #14161D;
  --g-900:     #06070A;

  background: var(--h-bg);
  color: var(--h-ink);
}

.theme-dark ::selection { background: #F5F7FB; color: #0A0B0E; }

/* ===================== 顶部导航 ===================== */
.theme-dark .topbar,
.theme-dark .topbar.is-scrolled {
  background: linear-gradient(180deg, rgba(20, 23, 30, .82) 0%, rgba(14, 16, 21, .72) 100%);
  color: var(--h-ink);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, .08),
    0 1px 2px rgba(0, 0, 0, .5),
    0 14px 40px rgba(0, 0, 0, .45),
    inset 0 1px 0 rgba(255, 255, 255, .10);
}
.theme-dark .topbar.is-scrolled {
  background: linear-gradient(180deg, rgba(22, 25, 33, .94) 0%, rgba(15, 17, 23, .90) 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, .10),
    0 2px 8px rgba(0, 0, 0, .55),
    0 18px 48px rgba(0, 0, 0, .55),
    inset 0 1px 0 rgba(255, 255, 255, .08);
}
/* 顶栏 logo 原图是白色，浅色版被 invert 成黑 —— 深色版还原白色 */
.theme-dark .topbar .brand-logo { filter: none; }
.theme-dark .nav a:hover,
.theme-dark .nav a.is-current,
.theme-dark .nav a.is-active { background: rgba(255, 255, 255, .09); }
.theme-dark .nav a.is-active { color: var(--h-brand-t); }
.theme-dark .lang-btn { color: var(--h-ink); }
.theme-dark .lang-btn:hover { background: rgba(255, 255, 255, .09); }

/* 下拉面板 */
.theme-dark .nav .dropdown,
.theme-dark .nav .dropdown-mega {
  background: #14161D;
  border: 1px solid rgba(255, 255, 255, .09);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .62), inset 0 1px 0 rgba(255, 255, 255, .06);
}
.theme-dark .nav .dropdown a:hover { background: rgba(255, 255, 255, .07); }
.theme-dark .nav .dropdown a,
.theme-dark .nav .drop-col,
.theme-dark .nav .drop-all { color: var(--h-ink); }
.theme-dark .nav .dropdown-mega .drop-group h6 { color: var(--h-ink-3); }
/* 导航小图标是深色线稿，深底上反白 */
.theme-dark .di--img { filter: brightness(0) invert(1); opacity: .82; }

/* ===================== 移动抽屉 ===================== */
.theme-dark .drawer {
  background: #0E1015;
  color: var(--h-ink);
  box-shadow: -20px 0 60px rgba(0, 0, 0, .6);
}
.theme-dark .drawer .brand-logo { filter: none; }
.theme-dark .drawer ul a { border-bottom-color: rgba(255, 255, 255, .08); }
/* 抽屉里的产品线稿原本是深灰描边（--g-600），深底上几乎看不见。
   原规则 .drawer li.drawer-sub a .di--img 权重 (0,3,2)，这里必须写到同等路径，
   只写 .theme-dark .drawer .di 会被盖掉（曾踩过）。 */
.theme-dark .drawer li.drawer-sub a .di,
.theme-dark .drawer li.drawer-sub a .di--img,
.theme-dark .drawer .di {
  filter: brightness(0) invert(1);
  opacity: .70;
}
.theme-dark .drawer .drawer-group { color: #98A0AF; }
.theme-dark .drawer .sub a { color: var(--h-brand-t); }
.theme-dark .burger span { background: var(--h-ink); }

/* ===================== 首屏 ===================== */
.theme-dark .hero-fallback { background: #0A0B0E; }
.theme-dark .scroll-cue { color: rgba(255, 255, 255, .72); }

/* ===================== 区块通用 ===================== */
.theme-dark .hv-eyebrow { color: var(--h-brand-t); }
.theme-dark .hv-head-desc { color: var(--h-ink-2); }
.theme-dark .hv-tag {
  background: rgba(90, 125, 255, .16);
  color: var(--h-brand-t);
}
.theme-dark .hv-tag--muted { background: rgba(255, 255, 255, .07); color: var(--h-ink-3); }

/* ===================== 2 · 核心能力 ===================== */
.theme-dark .hv-cap-item {
  border-left-color: rgba(255, 255, 255, .10);
}
.theme-dark .hv-cap-item-ico {
  color: #A9C0FF;
  background:
    radial-gradient(130% 130% at 32% 0%, rgba(102, 138, 255, .34) 0%, rgba(102, 138, 255, .16) 62%, rgba(102, 138, 255, .10) 100%);
  box-shadow: inset 0 0 0 1px rgba(120, 152, 255, .28);
}
.theme-dark .hv-cap-item:hover .hv-cap-item-ico {
  box-shadow: inset 0 0 0 1px rgba(140, 170, 255, .5), 0 10px 22px -14px rgba(80, 120, 255, .9);
}
.theme-dark .hv-cap-item-copy p { color: var(--h-ink-2); }

.theme-dark .hv-cap-film {
  background: #06070A;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, .08),
    0 26px 56px -28px rgba(0, 0, 0, .9);
}
.theme-dark .hv-cap-film-ctl { color: rgba(255, 255, 255, .92); }

/* ===================== 3 · Kosmo / AI 两张宽幅卡 ===================== */
/* 2026-10-29 二轮：三块信息卡（Kosmo / AI / AR）的底色改为与顶栏同材质 ——
   直接沿用顶栏滚动态那道玻璃渐变，并配同一组 1px 白边 + 顶部内高光，
   使卡片与顶栏读作同一种表面；产品图背光不再由卡片底色承担，
   交给 .hv-kosmo-media::before 的椭圆柔光，避免底色发蓝。
   噪点保留（overlay 混合），压住大面积深色渐变的色阶条纹。 */
.theme-dark .hv-kosmo,
.theme-dark .hv-aimodel {
  border-color: rgba(255, 255, 255, .10);
  background:
    var(--grain) center / 128px 128px repeat,
    linear-gradient(180deg, rgba(22, 25, 33, .94) 0%, rgba(15, 17, 23, .90) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .08),
    0 1px 2px rgba(0, 0, 0, .5),
    0 18px 44px rgba(0, 0, 0, .38);
}
.theme-dark .hv-kosmo-eyebrow { color: var(--h-brand-t); }
.theme-dark .hv-kosmo-lead { color: var(--h-ink-2); }
.theme-dark .hv-kosmo-flow { border-left-color: rgba(255, 255, 255, .10); }
.theme-dark .hv-kosmo-flow-k { color: var(--h-brand-t); }
.theme-dark .hv-kosmo-stats { border-top-color: rgba(255, 255, 255, .10); }
.theme-dark .hv-kosmo-stat span { color: var(--h-ink-3); }

/* 噪点用 overlay 混合，只在原有明暗上做微扰；直接叠加会把深底刷成灰色（首轮踩过） */
.theme-dark .hv-kosmo,
.theme-dark .hv-aimodel {
  background-blend-mode: overlay, normal;
}

/* 产品图背光（2026-10-29）：
   设备本身就贴着画布左右边缘，style.css 用三层 drop-shadow 画的蓝背光会在
   图片边界处被直接裁断，形成一条竖直硬边 —— 这就是「光晕断层」。
   ① 给图片留内边距，让贴边那圈光有扩散空间；
   ② 大范围柔光改由伪元素画椭圆 + blur，跟图片边界彻底解耦；
   ③ 图片只留一层极淡的贴边光 + 深色落影。 */
.theme-dark .hv-kosmo-media {
  position: relative;
  isolation: isolate;
}
.theme-dark .hv-kosmo-media::before {
  content: '';
  position: absolute;
  inset: 2% -20%;
  z-index: 0;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(closest-side,
    rgba(72, 108, 255, .15) 0%,
    rgba(72, 108, 255, .108) 28%,
    rgba(72, 108, 255, .064) 48%,
    rgba(72, 108, 255, .028) 66%,
    rgba(72, 108, 255, .009) 84%,
    rgba(72, 108, 255, 0) 100%);
  filter: blur(22px);
}
.theme-dark .hv-kosmo-media img {
  position: relative;
  z-index: 1;
  padding: clamp(6px, 0.9vw, 12px);
  filter:
    drop-shadow(0 22px 34px rgba(0, 0, 0, .42))
    drop-shadow(0 0 3px rgba(51, 100, 255, .10));
}
/* 2026-10-29：hover 整张产品图即触发（不再依赖 alpha 命中），
   放大沿用 style.css 的 scale(1.022)；这里只把轮廓光调到「能看出有一圈蓝，
   但不发光」的程度：贴边 3px 亮环 + 12px 很淡的外扩。 */
.theme-dark .hv-kosmo-media img.is-hot,
.theme-dark .hv-kosmo-media:hover img {
  filter:
    drop-shadow(0 24px 38px rgba(0, 0, 0, .46))
    drop-shadow(0 0 3px rgba(72, 108, 255, .30))
    drop-shadow(0 0 12px rgba(72, 108, 255, .12));
}
.theme-dark .hv-aimodel .hv-kosmo-lead,
.theme-dark .hv-clip-media { color: var(--h-ink-2); }
.theme-dark .hv-clip-media { background: #06070A; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07); }

/* ===================== 4 · 产品类型四卡 ===================== */
.theme-dark .hv-plat {
  background: #13151B;
  border-color: rgba(255, 255, 255, .09);
}
.theme-dark .hv-plat:hover {
  border-color: rgba(120, 152, 255, .45);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .55);
}
.theme-dark .hv-plat-media { background: #1B1E26; }
.theme-dark .hv-plat-body h3 { color: var(--h-ink); }
.theme-dark .hv-plat-go {
  color: var(--h-ink);
  background: rgba(255, 255, 255, .08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .10);
}
.theme-dark .hv-plat:hover .hv-plat-go {
  background: var(--h-brand);
  color: #fff;
  box-shadow: none;
}

/* ===================== 5 · 行业卡 ===================== */
.theme-dark .hv-ind {
  background: #1B1E26;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}

/* ===================== 6 · 项目轮播 ===================== */
.theme-dark .hv-slide {
  background: #06070A;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .07);
}
.theme-dark .hv-slide-nav {
  background: rgba(18, 21, 28, .86);
  color: #fff;
  border-color: rgba(255, 255, 255, .16);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.theme-dark .hv-slide-nav:hover { background: rgba(38, 44, 58, .95); }
.theme-dark .hv-slide-nav[disabled] { opacity: .3; }
/* 轮播图上的小标签：原样式只描边不铺底，压在亮照片上白字对比只有 2.8:1，
   深色版补一层半透明黑底 + 轻微模糊，任何照片上都稳在 8:1 以上。
   选择器写下位面板的完整路径（.hv-slide--live 那条 0,3,0，权重比 .theme-dark
   .hv-slide-tag 高），否则会被原规则盖掉。 */
.theme-dark .hv-slide-tag,
.theme-dark .hv-slide--live .hv-slide-tag {
  background: rgba(8, 10, 14, .62);
  border-color: rgba(255, 255, 255, .30);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.theme-dark .hv-dot { background: rgba(255, 255, 255, .26); }
.theme-dark .hv-dot.is-active { background: #F5F7FB; }
.theme-dark .hv-slide-open {
  color: #fff;
  border-color: rgba(255, 255, 255, .34);
}
.theme-dark .hv-slide-link { color: var(--h-brand-t); }

/* ===================== 7 · 合作伙伴 ===================== */
.theme-dark .hv-logo img {
  filter: brightness(0) invert(1);
  opacity: .62;
  transition: opacity var(--d-3) var(--ease);
}
.theme-dark .hv-logo:hover img { opacity: .92; }

/* ===================== 8 · 新闻 ===================== */
.theme-dark .hv-news-card {
  background: #13151B;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 0 0 1px rgba(255, 255, 255, .06);
}
.theme-dark .hv-news-card:hover {
  box-shadow: 0 18px 40px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255, 255, 255, .12);
}
.theme-dark .hv-news-img { background: #1B1E26; }
.theme-dark .hv-news-body p { color: var(--h-ink-2); }
.theme-dark .hv-news-body h3 { color: var(--h-ink); }

/* ===================== 9 · 联系与社媒 ===================== */
.theme-dark .hv-contact {
  background: #0E1015;
  border-top-color: rgba(255, 255, 255, .08);
}
.theme-dark .hv-contact-desc { color: var(--h-ink-2); }
.theme-dark .hv-sub-form {
  background: #14161D;
  border-color: rgba(255, 255, 255, .12);
}
.theme-dark .hv-sub-form:focus-within {
  border-color: rgba(120, 152, 255, .65);
  box-shadow: 0 0 0 4px rgba(51, 100, 255, .18);
}
.theme-dark .hv-sub-form input {
  color: var(--h-ink);
  background: transparent;
}
.theme-dark .hv-sub-form input::placeholder { color: #7B8291; }
.theme-dark .hv-sub-note { color: var(--h-ink-3); }
.theme-dark .hv-social { color: var(--h-ink-2); }
.theme-dark .hv-social:hover { color: var(--h-ink); }

/* 统计数字的「+」原本用品牌蓝 #3364FF，深底上只有 4.13:1，换成浅一档的蓝 */
.theme-dark .hv-stat-v .unit { color: var(--h-brand-t); }

/* ===================== 药丸按钮 ===================== */
.theme-dark .hv-pill { color: #fff; }
.theme-dark .hv-pill--ghost {
  color: var(--h-ink);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22);
}
.theme-dark .hv-pill--ghost:hover {
  background: var(--h-ink);
  color: #0A0B0E;
  box-shadow: none;
}

/* ===================== Footer ===================== */
.theme-dark .footer {
  background: #08090C;
  color: var(--h-ink);
  border-top: 1px solid rgba(255, 255, 255, .08);
}
.theme-dark .footer .brand-logo { filter: none; }
.theme-dark .footer h5 { opacity: .55; }
.theme-dark .footer ul li a { opacity: .78; }
.theme-dark .footer ul li a:hover { opacity: 1; color: var(--h-brand-t); }
.theme-dark .footer-bottom { border-top-color: rgba(255, 255, 255, .08); }
.theme-dark .footer-bottom .beian { opacity: .55; }

/* ===================== 浮动联系按钮 ===================== */
.theme-dark .float-btn {
  background: #181B22;
  color: var(--h-ink);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(255, 255, 255, .08);
}
.theme-dark .float-btn:hover { background: #20242D; }

/* ===================== 10 · 内页通用组件（2026-10-28） =====================
   子页把 :root 的 --paper / --g-* 整体翻转后，大部分区块自动跟着变深；
   这里补齐仍写死 #fff / #F4F4F4 的卡面与容器。
   ======================================================================= */

/* 粘性子导航（产品页 / 方案页） */
.theme-dark .pd-subnav {
  background: rgba(16, 18, 24, .92);
  border-color: rgba(255, 255, 255, .08);
}
.theme-dark .pd-subnav-tabs a { color: var(--h-ink-2); }
.theme-dark .pd-subnav-tabs a.is-active { color: #fff; }

/* 白底卡面族：数据条、同族产品卡、产品卡、行业卡、规格图框 */
.theme-dark .pd-stat,
.theme-dark .pd-rel,
.theme-dark .pr-card,
.theme-dark .ind-card,
.theme-dark .ind-outcome,
.theme-dark .ind-flow-item,
.theme-dark .plan-body,
.theme-dark .pd-specs-media {
  background: #13151B;
  border-color: rgba(255, 255, 255, .08);
  box-shadow: none;
}
.theme-dark .pd-rel:hover,
.theme-dark .pr-card:hover,
.theme-dark .ind-card:hover {
  box-shadow: 0 18px 40px rgba(0, 0, 0, .55);
}
/* 套餐卡头部原本是「浅色 accent → 白」的渐变。
   2026-10-29：深色版里这层蓝渐变 + Enterprise 的整块品牌蓝，和下面的深色卡身接不上，
   看着像一排银灰色的贴片 —— 统一压成比卡身略亮一档的深色，只靠 1px 描边分界。 */
.theme-dark .plan-head,
.theme-dark .plan-card--dark .plan-head {
  background: #1B1E26;
  color: var(--h-ink);
  border-bottom-color: rgba(255, 255, 255, .09);
}

/* 卡内次要文字 */
.theme-dark .pd-rel-desc,
.theme-dark .pd-rel-name,
.theme-dark .pd-stat span,
.theme-dark .plan-note,
.theme-dark .pr-card-desc { color: var(--h-ink-2); }
.theme-dark .pd-rel-cat { color: var(--h-brand-t); }

/* hero 背景区（原来写死 #fff） */
.theme-dark .pd-hero--bg { background: #0A0B0E; }

/* 产品卡图框 */
.theme-dark .pr-card-media {
  background: #1B1E26;
  border-bottom-color: rgba(255, 255, 255, .08);
}

/* 浅色胶囊按钮（预览 / 套餐 CTA） */
.theme-dark .pd-preview-cta {
  background: rgba(255, 255, 255, .10);
  color: var(--h-ink);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}
.theme-dark .pd-preview-cta:hover { background: rgba(255, 255, 255, .18); }
.theme-dark .plan-cta {
  background: #13151B;
  color: var(--h-ink);
  border-color: rgba(255, 255, 255, .18);
}
.theme-dark .plan-cta:hover {
  background: var(--h-brand);
  border-color: var(--h-brand);
  color: #fff;
}

/* 实心按钮原本用 --ink 当底，反转后会变成白底白字 */
.theme-dark .pr-btn--solid {
  background: #F5F7FB;
  border-color: #F5F7FB;
  color: #0A0B0E;
}

/* 子页里复用的首页能力卡（solutions 页引用 .hv-cap） */
.theme-dark .home-v4 .hv-cap {
  background: #13151B;
  border-color: rgba(255, 255, 255, .08);
  box-shadow: none;
}
.theme-dark .home-v4 .hv-cap-media { background: #1B1E26; }

/* 套餐卡里最"深"的那张，原规则有 5 层选择器写死 #fff，这里要压到 6 层。
   2026-10-29：Enterprise 头部原来是品牌蓝渐变，和旁边四张深色头并排像贴错色，
   统一改成同一档深色 #1B1E26（强调感交给卡身的蓝边框）。 */
.theme-dark .pd-plans .sd-plans .pricing-grid .plan-card--dark .plan-head {
  background: #1B1E26;
  color: var(--h-ink);
}

/* 产品页的能力标签胶囊（原来白底灰字） */
.theme-dark .pr-tags span {
  background: rgba(255, 255, 255, .08);
  color: var(--h-ink-2);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .10);
}

/* ===================== 11 · 「深底白字」区块的前景修正 =====================
   style.css 里有一批 hero / section--dark 用 `color: var(--paper)` 取白字
   （浅色版里 --paper 是白）。变量一翻转，--paper 变成深底，这些区块就成了
   深底深字。这里按区块把前景统一压回浅色。
   ======================================================================= */
.theme-dark .hero,
.theme-dark .ind-hero,
.theme-dark .post-hero,
.theme-dark .pd-hero,
.theme-dark .section--dark {
  color: #F5F7FB;
}
.theme-dark .hero-slogan,
.theme-dark .ind-hero .ind-title,
.theme-dark .ind-hero .section-lede,
.theme-dark .section--dark .section-lede,
.theme-dark .post-hero .ind-title {
  color: #F5F7FB;
}

/* 小标签（蓝色小字）在深底上对比只有 3.8，换成浅一档的蓝 */
.theme-dark .pd-eyebrow,
.theme-dark .pr-eyebrow,
.theme-dark .pr-card-eyebrow,
.theme-dark .plans-entry-tag,
.theme-dark .pd-row-num {
  color: var(--h-brand-t);
}

/* 方案页 hero 的遮罩原本右侧只压到 38%，深色版整幅压暗，
   让背景图退到后面、不与深底打架 */
/* 2026-10-29：遮罩压得太狠，视频几乎看不出内容；整体提亮一档，
   只在左侧文字区保留足够的压暗保证可读性 */
.theme-dark .ind-hero-veil {
  background:
    linear-gradient(100deg, rgba(10, 11, 14, .74) 0%, rgba(10, 11, 14, .50) 46%, rgba(10, 11, 14, .16) 100%),
    linear-gradient(0deg, rgba(10, 11, 14, .58) 0%, rgba(10, 11, 14, 0) 66%);
}

/* ===================== 12 · 浮层（2026-10-28 复核） =====================
   style.css 有一套毛玻璃浮层规则，把 .nav .dropdown / .lang-menu 设成
   rgba(255,255,255,.82)，深色版里就成了「白面板 + 白字」。
   下拉已被第 1 节的规则挡住，语言菜单漏了，这里补上。
   ======================================================================= */
.theme-dark .lang-menu {
  background: rgba(20, 22, 29, .94);
  border-color: rgba(255, 255, 255, .10);
  box-shadow: 0 2px 8px rgba(0, 0, 0, .40), 0 18px 50px rgba(0, 0, 0, .60);
}
.theme-dark .lang-menu button { color: var(--h-ink); }
.theme-dark .lang-menu button:hover { background: rgba(255, 255, 255, .10); }
.theme-dark .lang-menu button[aria-current="true"] { color: #fff; }
.theme-dark .lang-btn:hover { background: rgba(255, 255, 255, .09); }

/* ===== 2026-10-29 · Kosmo 新增段落 ===== */
/* 品牌蓝在深底上做文字偏暗，换成浅一档的蓝 */
.theme-dark .kz-stat-head b,
.theme-dark .kz-stat-head i,
.theme-dark .kz-step-no {
  color: #8FA8FF;
}
.theme-dark .kz-bar-track { background: #232833; }
.theme-dark .kz-bar--other .kz-bar-track i { background: #454C5C; }
.theme-dark .kz-legend i { background: #8FA8FF; }
.theme-dark .kz-legend--other i { background: #454C5C; }
/* 硬件图背后加一层很淡的蓝，和产品页其他卡片的背光一致 */
.theme-dark .kz-flow-media--device {
  background:
    radial-gradient(72% 64% at 50% 56%, rgba(72, 108, 255, .11) 0%, rgba(72, 108, 255, 0) 72%),
    var(--paper-2);
}

/* 2026-10-29：规格区产品视频改回原始白底素材（不再抠像合成），
   容器底色跟着从深色改成与白底一致的浅灰，否则白视频坐在深色卡里会有一圈深边。 */
.theme-dark .pd-specs-media {
  background: #F1F2F4;
  border-color: rgba(255, 255, 255, .12);
}

/* 2026-10-29：AR 演示里那条「Drag it →」拖动提示，原样式是白底 + color: var(--ink)。
   深色主题下 --ink 变成近白 #F5F7FB —— 白底白字，整条只剩一个白色小方块。
   改为深底浅字，并补一圈描边 + 轻微模糊，与轮播翻页按钮同一套玻璃材质。 */
.theme-dark .ar-hint {
  background: rgba(18, 21, 28, .88);
  color: #F5F7FB;
  box-shadow:
    0 8px 22px rgba(0, 0, 0, .55),
    inset 0 0 0 1px rgba(255, 255, 255, .14);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

/* 2026-10-29：深色页里的原生表单控件（select 下拉、日期选择器等）默认跟系统走浅色，
   about 页「Interested in」一展开就是白底白字。color-scheme 让浏览器整体走深色配色，
   option 再显式给一层，避免个别浏览器只认其中一种。 */
.theme-dark { color-scheme: dark; }
/* 只给下拉列表（option）上色，select 关闭态沿用原有的「透明底 + 下划线」样式，
   否则整个输入区会变成一块实心深色方块。 */
.theme-dark select option {
  background-color: #1B1E26;
  color: #F5F7FB;
}
.theme-dark select option:checked {
  background-color: #2A3040;
  color: #fff;
}

/* 2026-11-02：规格区「无框」照片卡，深色下同样不描边、不铺底色 */
.theme-dark .pd-specs-media.pd-specs-media--bare {
  background: transparent;
  border-color: transparent;
}
