/* ==========================================================================
   太空起源 AEROSPACE ORIGIN · 官网样式表
   --------------------------------------------------------------------------
   设计说明（2026-09-07 改版）：
   页面不再使用任何照片背景（版权风险，背景图已归档至项目根目录
   _archive-images/），视觉全部改为纯色/CSS 渐变/Canvas 星空绘制。
   配色与动效参照早期版本 ASO_Web 的深色体系：
     · 深蓝渐变卡：linear-gradient(160deg, #0d2140, #0a1830) + 1px 淡白边
     · hover 上浮 + 品牌蓝描边 + 蓝光晕 + 顶部 2px 蓝渐变高光线淡入
     · 装饰一律蓝系单色（品牌蓝 / 亮蓝），无暖色点缀
     · 动效：reveal 34px、导航下划线展开、滚动提示线 scaleY 翻转、呼吸圆点

   目录
     01  设计变量
     02  基础重置与排版
     03  通用布局：container / section / 栅格
     04  按钮 / 标签 / 徽标
     05  顶部导航
     06  首页 Hero（渐变天空 + 星空）
     07  卡片与内容模块
     08  火箭产品模块
     09  时间轴 / 流程条 / 数据条
     10  招聘岗位模块
     11  新闻模块
     12  联系模块
     13  页脚
     14  滚动入场动效
     15  响应式断点
   ========================================================================== */

/* ---------- 01 设计变量 ---------------------------------------------- */
:root {
  /* 品牌色取自公司 logo，勿随意更改 */
  --brand: #287dfc;
  --brand-lt: #5d9dfd;
  --brand-dk: #1560d8;

  /* 深空底色四档，从最深的页面底色到最浅的分割块 */
  --ink-0: #04091a;
  --ink-1: #070f22;
  --ink-2: #0b1730;
  --ink-3: #122446;

  /* 卡片/面板（2026-11-06 用户要求：改成首屏「关于我们」幽灵按钮的样式）*/
  --card-a: rgba(93, 157, 253, .06);
  --card-b: rgba(93, 157, 253, .06);
  --card-line: rgba(93, 157, 253, .40);
  --card-shadow: none;

  /* 普通面板底色与凹面 */
  --surface: #0c1425;
  --surface-2: #16223b;
  --sunken: #060c1c;

  --line: rgba(255, 255, 255, .10);
  --line-2: rgba(255, 255, 255, .19);

  --text: #e9f1ff;
  --text-2: #9db0cb;
  --text-3: #6e819e;

  --radius: 10px;
  /* 12px 与 ASO_Web 的卡片圆角一致（旧版 --radius: 12px） */
  --radius-lg: 12px;
  /* 卡片专用圆角：比通用面板再大一档 */
  --radius-card: 18px;

  --shadow: 0 24px 48px -32px rgba(0, 0, 0, .85);

  --nav-h: 92px;
  --container: 1240px;

  --ease: cubic-bezier(.22, .61, .36, 1);

  --font: "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans CN",
    "Noto Sans CJK SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  /* 拉丁文/数字用窄体，更接近航天工业风 */
  --font-en: "Bahnschrift", "DIN Alternate", "Oswald", "Barlow Condensed",
    "Helvetica Neue", Arial, sans-serif;
}

/* ---------- 02 基础重置与排版 ---------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  /* 锚点跳转时避开固定导航 */
  scroll-padding-top: var(--nav-h);
  -webkit-text-size-adjust: 100%;
  /* 去掉部分手机浏览器点击时的绿色/灰色高亮块 */
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.75;
  color: var(--text);
  background: var(--ink-0);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* 标题一律 500。600 在思源/鸿蒙这类多字重中文字体下已经偏浊，
   深底上字重越高越显块状，降一级才透气 */
h1, h2, h3, h4, h5 {
  margin: 0;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: .02em;
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a {
  color: inherit;
  text-decoration: none;
  transition: color .25s var(--ease);
}

img, svg { display: block; max-width: 100%; }
ul, ol { margin: 0; padding: 0; list-style: none; }

::selection {
  background: rgba(40, 125, 252, .35);
  color: #fff;
}

/* 全站滚动条 */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--ink-0); }
::-webkit-scrollbar-thumb {
  background: #1b2b4a;
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover { background: #263b60; }

/* 键盘可达性：仅键盘操作时显示焦点圈 */
:focus-visible {
  outline: 2px solid var(--brand-lt);
  outline-offset: 3px;
}

/* 屏幕阅读器专用文本 */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ---------- 03 通用布局 ---------------------------------------------- */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}

.section {
  position: relative;
  padding: 110px 0;
  background: #000;
}

/* 2026-11-06 试色：正常区块保持黑，交替区块由深蓝改为暖纸色（详见 13.2） */
.section.alt { background: #f2efe8; }

.section.tight { padding: 76px 0; }

/* 章节标题组：默认居中，让每个区块的起手式一致，版面才不显得散。
   两栏版面（如联系页）用 .sec-head.left 恢复左对齐。 */
.sec-head { margin: 0 auto 56px; max-width: 760px; text-align: center; }
.sec-head.left { margin-left: 0; text-align: left; }

.kicker {
  display: block;
  margin-bottom: 14px;
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--brand-lt);
}

.sec-head h2 {
  font-size: clamp(28px, 3.4vw, 40px);
  letter-spacing: .06em;
}

/* 标题下的短装饰线：品牌蓝 → 亮蓝（蓝系单色，无暖色点缀） */
.sec-head h2::after {
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  margin: 20px auto 0;
  background: linear-gradient(90deg, var(--brand), var(--brand-lt));
}
.sec-head.left h2::after { margin-left: 0; }

.sec-head .sub {
  margin: 20px 0 0;
  font-size: 16px;
  color: var(--text-2);
}

.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

.text-center { text-align: center; }
/* 单独一张卡片居中时用，避免它被拉成通栏 */
.narrow { max-width: 620px; margin: 0 auto; }
.mt-48 { margin-top: 48px; }
.mt-72 { margin-top: 72px; }

/* ---------- 04 按钮 / 标签 ------------------------------------------- */
.btn {
  --btn-bg: var(--brand);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 30px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .06em;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease),
    background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease);
}

/* 主按钮：扁平实底，色值直接取 logo 蓝（--brand），白字 + 蓝底正是 logo 的配色组合 */
.btn-primary {
  color: #fff;
  background: var(--brand);
}
.btn-primary:hover {
  transform: translateY(-2px);
  /* 反馈靠色相深浅，不靠光晕：hover 压暗一档，和扁平风格自洽 */
  background: var(--brand-dk);
}

/* 次要按钮：半透底 + 细边，不带背景模糊（无照片可透，纯色下模糊无意义） */
.btn-ghost {
  color: var(--text);
  background: rgba(255, 255, 255, .05);
  border-color: var(--line-2);
}
.btn-ghost:hover {
  transform: translateY(-2px);
  color: #fff;
  background: rgba(40, 125, 252, .16);
  border-color: var(--brand);
}

.btn-sm { padding: 11px 22px; font-size: 14px; }

/* 箭头在 hover 时向右滑动 */
.btn .arw { transition: transform .3s var(--ease); }
.btn:hover .arw { transform: translateX(4px); }

/* 文字型「了解更多」 */
.more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--brand-lt);
}
/* hover 不用纯白，沿品牌蓝把原色提亮（brand-lt 混白 35%） */
.more:hover { color: #96bffe; }
.more .arw { transition: transform .3s var(--ease); }
.more:hover .arw { transform: translateX(5px); }

/* 胶囊标签 */
.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 16px;
  border: 1px solid rgba(40, 125, 252, .35);
  border-radius: 999px;
  background: rgba(40, 125, 252, .1);
  font-size: 13px;
  letter-spacing: .1em;
  color: var(--brand-lt);
}

/* 呼吸小圆点（蓝系，参照 ASO_Web） */
.dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--brand-lt);
  box-shadow: 0 0 0 0 rgba(93, 157, 253, .7);
  animation: pulse 2.4s infinite;
}
@keyframes pulse {
  70% { box-shadow: 0 0 0 9px rgba(93, 157, 253, 0); }
  100% { box-shadow: 0 0 0 0 rgba(93, 157, 253, 0); }
}

/* ---------- 05 顶部导航 --------------------------------------------- */
.nav {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: var(--nav-h);
  transition: background .35s var(--ease), border-color .35s var(--ease),
    height .35s var(--ease);
  border-bottom: 1px solid transparent;
}

/* 顶部渐隐遮罩，保证透明状态下文字也清晰 */
.nav::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(2, 6, 18, .78), transparent);
  transition: opacity .35s var(--ease);
}

/* 滚动后换玻璃底，同时收短 14px。这个值跟 --nav-h 是一对，要改一起改 */
.nav.solid {
  height: 78px;
  background: rgba(4, 9, 20, .58);
  border-bottom-color: rgba(255, 255, 255, .08);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
}
.nav.solid::before { opacity: 0; }

.nav-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  height: 100%;
}

/* logo：直接用公司 PNG，仅控制高度，绝不拉伸变形。
   高度跟着顶栏走：顶栏 92px 时用 48px，上下各留 22px */
.logo { display: flex; align-items: center; flex-shrink: 0; }
.logo img {
  width: auto;
  height: 48px;
  transition: height .35s var(--ease);
}
.nav.solid .logo img { height: 40px; }

.nav-menu {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}

.nav-menu > li { position: relative; }

.nav-menu a {
  display: block;
  padding: 10px 17px;
  border-radius: var(--radius);
  font-size: 15.5px;
  color: var(--text-2);
}
.nav-menu a:hover { color: #fff; background: rgba(255, 255, 255, .07); }

/* 当前栏目 + hover：下划线从 0 展开到 60%（参照 ASO_Web 的导航动效） */
.nav-menu a::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  border-radius: 1px;
  background: var(--brand);
  transition: width .25s var(--ease);
}
.nav-menu a.active { color: #fff; font-weight: 500; }
.nav-menu a:hover::after,
.nav-menu a.active::after { width: 60%; }

/* 移动端汉堡按钮 */
.nav-toggle {
  display: none;
  width: 44px; height: 44px;
  padding: 0;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .05);
  cursor: pointer;
}
.nav-toggle span {
  display: block;
  width: 20px; height: 1.6px;
  margin: 4px auto;
  border-radius: 2px;
  background: var(--text);
  transition: transform .3s var(--ease), opacity .25s var(--ease);
}
.nav-toggle.on span:nth-child(1) { transform: translateY(5.6px) rotate(45deg); }
.nav-toggle.on span:nth-child(2) { opacity: 0; }
.nav-toggle.on span:nth-child(3) { transform: translateY(-5.6px) rotate(-45deg); }

/* ---------- 06 首页 Hero -------------------------------------------- */
.hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  /* 满屏首屏，但在超高显示器上封顶，避免拉出大片空白、
     也让访客一眼能看到下方还有内容 */
  min-height: min(100svh, 1020px);
  /* 底部留出 96px 给绝对定位的滚动提示 */
  padding: calc(var(--nav-h) + 40px) 0 96px;
  overflow: hidden;
  background: var(--ink-0);
}

/* ---- 首屏背景 ----
   纯 CSS 渐变天空（参照 ASO_Web）：深空底 + 顶部一团品牌蓝薄雾 +
   右下角一抹淡蓝余光，上面再叠 canvas 星空让星星缓慢上飘。
   不再使用照片背景（原 hero-earth.jpg 已归档 _archive-images/）。 */
.hero-sky {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(ellipse 80% 60% at 50% -10%, rgba(26, 110, 201, .40), transparent 60%),
    radial-gradient(ellipse 50% 40% at 85% 90%, rgba(42, 127, 252, .14), transparent 60%),
    #050b16;
}

/* 星空画布（JS 绘制）。首屏和内页页头各一块，共用这组定位。
   z-index 要高于背景层，星星才能浮在渐变之上 */
.starfield {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%; height: 100%;
}

/* 首屏那块：纯色天空下星星可以直接铺满，无需偏置与遮罩。
   （照片时代的 mask / opacity .5 已随图片背景一并去除；
     索引页 canvas 的 data-bias 属性也已移除） */
.hero-sky .starfield {
  opacity: .85;
}

.hero-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 940px;
  margin: 0 auto;
}

.hero h1 {
  margin: 22px 0 0;
  font-size: clamp(38px, 6vw, 74px);
  font-weight: 600;
  line-height: 1.14;
  letter-spacing: .06em;
  /* 从白到品牌蓝的纵向渐变，比纯白更有重量（参照 ASO_Web 的渐变强调字）。
     纯色天空上无需暗影，暗影也不必叠 （文字渐变时 text-shadow 会投到
     背景框上，只用 drop-shadow；此处背景足够深，直接去掉） */
  background: linear-gradient(180deg, #fff 18%, #b9d5ff 62%, #5d9dfd 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-desc {
  max-width: 620px;
  margin: 26px auto 0;
  font-size: 16.5px;
  color: var(--text-2);
}
/* 标语里需要强调的短句提一级亮度 */
.hero-desc strong { font-weight: 600; color: var(--text); }

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  margin-top: 44px;
}

/* 首屏幽灵按钮：深底 + 蓝描边（参照 ASO_Web 深色系里的深底按钮） */
.hero .btn-ghost {
  color: var(--brand-lt);
  background: rgba(93, 157, 253, .06);
  border-color: rgba(93, 157, 253, .40);
}
.hero .btn-ghost:hover {
  color: #fff;
  background: rgba(40, 125, 252, .20);
  border-color: var(--brand);
}

/* 首屏主按钮：品牌蓝渐变 + 光晕投影 + 上沿高光，在满屏深空里更有存在感。
   全站主按钮 .btn-primary 是扁平实底（见 04 节），首页这枚单独用渐变 */
.hero .btn-glow {
  color: #fff;
  background: linear-gradient(120deg, var(--brand), var(--brand-dk));
  box-shadow: 0 8px 22px -14px rgba(40, 125, 252, .9),
    inset 0 1px 0 rgba(255, 255, 255, .18);
}
.hero .btn-glow:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px -16px rgba(40, 125, 252, 1),
    inset 0 1px 0 rgba(255, 255, 255, .22);
}

/* 向下滚动提示。线条动画采用 ASO_Web 的 scrollLine：从顶往下长出、
   再从底往上收，一笔往复 */
.scroll-cue {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: .3em;
  color: var(--text-3);
  text-align: center;
  pointer-events: none;
}
.scroll-cue i {
  display: block;
  width: 1px; height: 34px;
  margin: 10px auto 0;
  background: linear-gradient(180deg, var(--brand-lt), transparent);
  animation: cue 2s var(--ease) infinite;
}
@keyframes cue {
  0% { transform: scaleY(0); transform-origin: top; opacity: 1; }
  50% { transform: scaleY(1); transform-origin: top; opacity: 1; }
  51% { transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* ---------- 07 卡片与内容模块 --------------------------------------- */
/* 关于区块的两栏：左侧成段文字，右侧三条横排卡片 */
.about-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 64px;
  align-items: center;
}
.about-text { max-width: 440px; }
.about-text p + p { margin-top: 20px; }
.about-text strong { font-weight: 600; color: var(--text); }

/* 正文里的文字链，比按钮轻，用在段落末尾 */
.text-link {
  display: inline-block;
  margin-top: 20px;
  font-size: 15px;
  color: var(--brand-lt);
  transition: color .25s var(--ease);
}
.text-link:hover { color: #96bffe; }

.about-values { display: grid; gap: 20px; }

/* 横排卡片：图标在左，标题与标语在右。使命/愿景/价值观各占一条。
   卡片体参照 ASO_Web 深蓝渐变公式（渐变底 + 淡白边 + 蓝光晕 + 顶线） */
.value-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 22px 26px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
/* 顶部 2px 蓝渐变高光线，hover 时淡入（ASO_Web 卡片签名动效） */
.value-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--brand-lt), transparent);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.value-card > * { position: relative; }
.value-card:hover {
  transform: translateY(-6px);
  border-color: rgba(42, 127, 252, .45);
  box-shadow: 0 14px 36px rgba(10, 24, 48, .3), 0 0 26px rgba(42, 127, 252, .18);
}
.value-card:hover::before { opacity: 1; }
.value-card .icon { flex-shrink: 0; margin-bottom: 0; }
.value-card h3 { font-size: 18px; }
.value-card p {
  margin-top: 4px;
  font-size: 15px;
  color: var(--text-2);
}

/* 通用卡片：深蓝渐变 + 淡白边 + 光晕 + 顶线淡入（ASO_Web 标准卡） */
.card {
  position: relative;
  padding: 34px 30px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  overflow: hidden;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--brand-lt), transparent);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.card:hover {
  transform: translateY(-6px);
  border-color: rgba(42, 127, 252, .45);
  box-shadow: 0 14px 36px rgba(10, 24, 48, .3), 0 0 26px rgba(42, 127, 252, .18);
}
.card:hover::before { opacity: 1; }

.card > * { position: relative; }

.card h3 {
  margin-bottom: 12px;
  font-size: 20px;
  letter-spacing: .04em;
}
.card p {
  font-size: 14.5px;
  color: var(--text-2);
}
.card .more { margin-top: 18px; }

/* 卡片图标。蓝底方片 + 亮蓝线稿（ASO_Web 的 .icon 规格）*/
.card .icon {
  display: grid;
  place-items: center;
  width: 52px; height: 52px;
  margin-bottom: 20px;
  border: 1px solid rgba(42, 127, 252, .35);
  border-radius: 12px;
  background: rgba(42, 127, 252, .14);
  color: var(--brand-lt);
}
.card .icon svg { width: 26px; height: 26px; stroke: currentColor; fill: none; }

/* 带序号的卡片（如企业文化） */
.card .no {
  font-family: var(--font-en);
  font-size: 44px;
  font-weight: 600;
  line-height: 1;
  color: rgba(93, 157, 253, .28);
}

/* 图文左右分栏 */
.split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 60px;
  align-items: center;
}
.split .body h2 {
  font-size: clamp(26px, 3vw, 36px);
  letter-spacing: .05em;
}
.split .body p {
  margin-top: 22px;
  color: var(--text-2);
}

/* 右侧配图去掉后只剩文字的两栏版面：收成单栏，并按正文阅读宽度收口。
   820px 跟新闻正文 .article 一个口径。 */
.split.solo {
  grid-template-columns: minmax(0, 1fr);
  max-width: 820px;
  /* 只写左右，不用 margin 简写：careers 那块是 .split.solo.mt-72，
     而 .mt-72 在本文件更靠前，简写会把它的 margin-top 一起清掉 */
  margin-left: auto;
  margin-right: auto;
}

/* 要点清单 */
.ticks { margin-top: 26px; display: grid; gap: 14px; }
.ticks li {
  display: flex;
  gap: 13px;
  font-size: 15px;
  color: var(--text-2);
}
.ticks li svg {
  flex-shrink: 0;
  width: 20px; height: 20px;
  margin-top: 4px;
  /* 菱形标记用品牌蓝实心，全站要点清单统一 */
  fill: var(--brand);
  stroke: none;
}

/* 页面内页头（非首页顶部）
   内容左对齐；背景为深空蓝雾渐变（顶部品牌蓝雾 + 向下渐深收起，与首屏 hero 同族）；
   页头按内容自适应高度（无固定下限，紧凑不空腔）；无格网底纹、无照片 */
.page-hero {
  position: relative;
  padding: calc(var(--nav-h) + 56px) 0 88px;
  overflow: hidden;
  background:
    radial-gradient(ellipse 70% 70% at 50% -30%, rgba(26, 110, 201, .45), transparent 65%),
    linear-gradient(180deg, #071226, #050b16);
}

/* 内页页头的星空。纯色天空下星点可以直接铺满（无需照片时代的渐隐遮罩） */
.page-hero .starfield {
  opacity: .9;
}

.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 {
  font-size: clamp(30px, 4.4vw, 50px);
  letter-spacing: .07em;
}

/* 面包屑 */
.crumb {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
  font-size: 13px;
  color: var(--text-3);
}
.crumb a:hover { color: var(--brand-lt); }

/* ---------- 07b 内页区块微调 ----------------------------------------- */
/* 关于页「企业简介」：区高锁定（2026-09-04 用户要求页面大小别动）；
   标题组居中、正文段落拉回左对齐保持阅读节奏；
   标题装饰条与 .sec-head h2::after 同规格（蓝→亮蓝） */
#intro {
  min-height: 640px;
}
#intro .split .body {
  text-align: center;
}
#intro .split .body p {
  text-align: left;
}
#intro .split .body h2::after {
  content: "";
  display: block;
  width: 44px;
  height: 2px;
  margin: 20px auto 0;
  background: linear-gradient(90deg, var(--brand), var(--brand-lt));
}

/* 产品页「技术路线」：标题组上移一档（-70px 会顶进上方蓝星一号区，
   收敛到 -40px），保留纯色作为两区间的视觉分隔 */
#roadmap .sec-head {
  margin-top: -40px;
}

/* ---------- 08 火箭产品模块 ------------------------------------------ */
/* 一屏一款火箭：左侧矢量箭体，右侧参数表。
   卡片体在 .rocket-body 上（深蓝渐变卡，见 .card 同款公式），
   箭体直接立在区块纯色背景上 */
.rocket {
  display: grid;
  grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
  gap: 56px;
  align-items: center;
}

.rocket-body {
  padding: 40px 44px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  overflow: hidden;
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.rocket-body::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--brand-lt), transparent);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.rocket-body:hover {
  transform: translateY(-6px);
  border-color: rgba(42, 127, 252, .45);
  box-shadow: 0 14px 36px rgba(10, 24, 48, .3), 0 0 26px rgba(42, 127, 252, .18);
}
.rocket-body:hover::before { opacity: 1; }
.rocket-body > * { position: relative; }
.rocket + .rocket { margin-top: 32px; }

.rocket-art {
  position: relative;
  display: grid;
  place-items: center;
  align-self: stretch;
  min-height: 560px;
}
/* 真实模型图是 1:5 的细长比例，按高度撑满、宽度自适应 */
.rocket-art img {
  position: relative;
  z-index: 1;
  width: auto;
  max-width: 100%;
  height: 100%;
  max-height: 620px;
  object-fit: contain;
  /* 箭体本身是浅色的，给一点投影让它从深背景里"立"起来。
     第二道是一圈很淡的冷蓝轮廓光，把箭体边缘和深底分开 */
  filter: drop-shadow(0 18px 46px rgba(0, 0, 0, .55))
          drop-shadow(0 0 26px rgba(90, 160, 255, .22));
}

/* 首页那块只做摘要，版式调整一档：两栏收窄并居中，箭体在左、文字参数在右 */
.rocket.compact {
  grid-template-columns: repeat(2, minmax(0, 480px));
  justify-content: center;
  gap: 28px;
}

/* 首页箭体左栏内 48px 内边距把细箭体重心推向中间 */
.rocket.compact .rocket-art {
  min-height: 480px;
  padding-left: 48px;
}
.rocket.compact .rocket-art img { max-height: 520px; }

/* 去掉面板后，箭体上那道 26px 的蓝轮廓光会在火箭周围晕出一片
   比页面底色偏蓝的光斑。首页这里只留暗投影 */
.rocket.compact .rocket-art img {
  filter: drop-shadow(0 18px 46px rgba(0, 0, 0, .55));
}

/* 首页火箭卡：参数表与正文玻璃规格不再有单独面板，
   .rocket-body 自身就是卡（见上）*/
.rocket.compact .specs { margin: 36px 0 0; }

.rocket-body .name {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 16px;
}
/* 首页里这块在 h2 章节标题下面，所以用 h3；产品页是独立标题，用 h2 */
.rocket-body .name h2,
.rocket-body .name h3 {
  font-size: clamp(28px, 3.2vw, 40px);
  letter-spacing: .08em;
}
.rocket-body .tagline {
  margin-top: 18px;
  font-size: 16px;
  color: var(--text-2);
}
/* 只首页那块有这个链接（产品页就在本页，不需要往外跳） */
.rocket-body .more { margin-top: 26px; }

/* 参数表：行式细线表格。每行一条 1px 底边线，
   标签固定 170px 列、数值右起列首左对齐。
   后面要往里填大量技术参数时直接复制 .sp 行即可 */
.specs {
  display: grid;
  margin: 32px 0 0;
}
.specs .sp {
  display: grid;
  grid-template-columns: minmax(0, 170px) 1fr;
  align-items: center;
  gap: 24px;
  padding: 13px 8px;
  border-bottom: 1px solid var(--line);
}
.specs .sp:last-child { border-bottom: none; }
.specs dt {
  font-size: 14px;
  letter-spacing: .1em;
  color: var(--text-3);
}
.specs dd {
  margin: 0;
  text-align: left;
  font-family: var(--font-en);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.15;
  color: #fff;
}
.specs dd .u {
  margin-left: 4px;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 400;
  color: var(--text-2);
}

/* 研制状态标记 */
.status {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 6px 15px;
  border-radius: 999px;
  font-size: 13px;
  letter-spacing: .08em;
}
.status.dev {
  border: 1px solid rgba(42, 127, 252, .45);
  background: rgba(42, 127, 252, .10);
  color: var(--brand-lt);
}
.status.plan {
  border: 1px solid var(--line-2);
  background: rgba(255, 255, 255, .05);
  color: var(--text-2);
}

/* ---------- 09 时间轴 / 流程条 / 数据条 ------------------------------ */
/* 发展历程：左侧竖线 + 节点 */
.timeline { position: relative; padding-left: 34px; }
.timeline::before {
  content: "";
  position: absolute;
  top: 6px; bottom: 6px; left: 5px;
  width: 1px;
  /* 品牌蓝起、末端淡出消失（蓝系单色） */
  background: linear-gradient(180deg, var(--brand), rgba(93, 157, 253, .35) 55%, transparent);
}
.timeline li { position: relative; padding-bottom: 44px; }
.timeline li:last-child { padding-bottom: 0; }
.timeline li::before {
  content: "";
  position: absolute;
  top: 8px; left: -34px;
  width: 11px; height: 11px;
  border: 2px solid var(--brand);
  border-radius: 50%;
  background: var(--ink-0);
}
.timeline .when {
  font-family: var(--font-en);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .16em;
  color: var(--brand-lt);
}
.timeline h4 { margin: 8px 0 8px; font-size: 18px; }
.timeline p { font-size: 14.5px; color: var(--text-2); }

/* 步骤条：招聘流程（蓝色序号徽标在卡内）与技术路线（.when 文字序号）
   共用网格。列数按内容自适应，5 步、6 步都正好占满一行 */
.steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 14px;
  counter-reset: step;
}
.steps li {
  position: relative;
  padding: 28px 16px 24px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  text-align: center;
  font-size: 14.5px;
  transition: border-color .35s ease, transform .35s ease;
}
.steps li:hover {
  transform: translateY(-5px);
  border-color: rgba(42, 127, 252, .45);
}
/* 招聘流程卡：蓝色序号徽标放在卡片内、文字前面 */
.steps-badge li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 16px;
  text-align: left;
}
.steps-badge li::before {
  counter-increment: step;
  content: counter(step, decimal-leading-zero);
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 30px; height: 26px;
  border-radius: var(--radius);
  background: linear-gradient(120deg, var(--brand), var(--brand-dk));
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}
/* 步骤之间的连接箭头 */
.steps li:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%; right: -11px;
  width: 8px; height: 8px;
  border-top: 1px solid var(--line-2);
  border-right: 1px solid var(--line-2);
  transform: translateY(-50%) rotate(45deg);
}

/* 数据条（通用规则，当前页面暂无宿主，恢复时直接放回） */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.stat {
  padding: 32px 24px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  text-align: center;
}
.stat .n {
  font-family: var(--font-en);
  font-size: clamp(34px, 4vw, 50px);
  font-weight: 600;
  line-height: 1;
  color: #fff;
}
.stat .n .u { font-size: .48em; color: var(--brand-lt); margin-left: 2px; }
.stat .t { margin-top: 12px; font-size: 14px; color: var(--text-3); letter-spacing: .06em; }

/* ---------- 10 招聘岗位模块 ------------------------------------------ */
/* 岗位方向分组 */
.job-group + .job-group { margin-top: 44px; }
.job-group > h3 {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
  font-size: 19px;
  letter-spacing: .06em;
}
.job-group > h3::before {
  content: "";
  width: 3px; height: 18px;
  background: linear-gradient(180deg, var(--brand), var(--brand-lt));
}

/* 岗位卡：每个部门一组一张深蓝渐变卡（大卡含组名 + 岗位网格） */
.job-group {
  padding: 26px 24px 20px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
}
.job-group .jobs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 14px;
}
.job {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  padding: 13px 12px;
  border-radius: var(--radius);
  background: transparent;
  transition: background .3s var(--ease);
}
.job:hover {
  background: rgba(40, 125, 252, .10);
}
.job .jn { font-size: 15px; line-height: 1.5; }

/* 福利待遇卡片 */
.benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* 招聘对象清单：2×2 两列、整块水平居中（四条变两行，圆点标记保留）；
   列宽按内容自适应（max-content），长句不折行 */
#jobs .ticks {
  margin: 32px auto 56px;
  grid-template-columns: max-content max-content;
  justify-content: center;
  gap: 14px 48px;
}

/* 投递提醒条。用品牌蓝而不是亮蓝：蓝是全站主色，拿它做提醒更醒目 */
.notice {
  display: flex;
  gap: 18px;
  padding: 26px 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: linear-gradient(100deg,
    rgba(40, 125, 252, .13),
    rgba(93, 157, 253, .05) 58%,
    transparent 90%);
}
.notice svg { flex-shrink: 0; width: 24px; height: 24px; margin-top: 3px; stroke: var(--brand-lt); fill: none; }
.notice h4 { margin-bottom: 8px; font-size: 16px; color: var(--brand-lt); }
/* 提示并入 CTA 卡后只留文字：去掉自身卡片底，
   盾牌与标题仍同行紧贴。整体在 CTA 卡内水平居中 */
.cta .notice {
  border: none;
  background: none;
  padding: 0;
  justify-content: center;
}
.cta .notice > div { text-align: left; }
.notice ol { display: grid; gap: 8px; font-size: 14.5px; color: var(--text-2); }
.notice ol li { display: flex; gap: 10px; }
.notice ol li::before { content: "·"; color: var(--brand-lt); }
.notice ol li .k {
  flex-shrink: 0;
  width: 7em;
}

/* ---------- 11 新闻模块 --------------------------------------------- */
.news-list { display: grid; gap: 18px; }

/* 新闻卡：ASO_Web 深蓝渐变小卡 + hover 右滑 */
.news-item {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr) auto;
  gap: 30px;
  align-items: center;
  padding: 24px 26px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}
.news-item:hover {
  transform: translateX(6px);
  border-color: rgba(42, 127, 252, .45);
  box-shadow: 0 10px 30px rgba(10, 24, 48, .3), 0 0 22px rgba(42, 127, 252, .15);
}

/* 左侧日期：只保留文字，不再用蓝底小方片 */
.news-item .date {
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  font-family: var(--font-en);
}
.news-item .date .d {
  font-size: 26px;
  font-weight: 700;
  line-height: 1.1;
  color: #7db4ff;
}
.news-item .date .ym {
  margin-top: 6px;
  font-size: 12px;
  letter-spacing: .12em;
  color: var(--text-2);
}

.news-item .tag {
  display: inline-block;
  margin-bottom: 10px;
  padding: 3px 11px;
  border-radius: 5px;
  background: rgba(40, 125, 252, .18);
  font-size: 12px;
  letter-spacing: .08em;
  color: var(--brand-lt);
}
.news-item h3 { font-size: 18.5px; line-height: 1.5; }
.news-item:hover h3 { color: #fff; }
.news-item .ex {
  margin-top: 10px;
  font-size: 14.5px;
  color: var(--text-2);
  /* 摘要最多两行 */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-item .go {
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  color: var(--text-2);
  transition: all .35s var(--ease);
}
.news-item:hover .go {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
}
.news-item .go svg { width: 17px; height: 17px; stroke: currentColor; fill: none; }

/* 新闻分类筛选 */
.filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 34px; }
.filters button {
  padding: 9px 20px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  color: var(--text-2);
  cursor: pointer;
  transition: all .3s var(--ease);
}
.filters button:hover { color: #fff; border-color: var(--line-2); }
.filters button.on {
  border-color: var(--brand);
  background: rgba(40, 125, 252, .16);
  color: #fff;
}

/* 空状态 */
.empty {
  padding: 70px 20px;
  border: 1px dashed var(--line-2);
  border-radius: var(--radius-lg);
  text-align: center;
  color: var(--text-3);
}

/* 新闻正文排版 */
.article { max-width: 820px; margin: 0 auto; }
.article .meta {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding-bottom: 28px;
  margin-bottom: 36px;
  border-bottom: 1px solid var(--line);
  font-size: 13.5px;
  color: var(--text-3);
}
.article h1 { font-size: clamp(26px, 3.4vw, 38px); line-height: 1.35; margin-bottom: 24px; }
.article-body { font-size: 16.5px; color: var(--text-2); }
.article-body h2 {
  margin: 44px 0 18px;
  font-size: 22px;
  color: var(--text);
}
.article-body p { margin-bottom: 1.4em; }

/* ---------- 12 联系模块 --------------------------------------------- */
/* 左联系方式 + 右公司位置两栏并列。右栏略宽，地图在窄栏里不被压成细带子；
   窄屏（≤1100px）两栏自动堆叠回单列 */
.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 56px;
  align-items: start;
}
.contact-grid .sec-head { margin-bottom: 32px; }

.info-list { display: grid; gap: 14px; max-width: 760px; margin: 0 auto; }
.info {
  display: flex;
  gap: 18px;
  padding: 22px 24px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  transition: border-color .3s ease;
}
.info:hover { border-color: rgba(42, 127, 252, .45); }
.info .icon {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 42px; height: 42px;
  border-radius: var(--radius);
  background: rgba(42, 127, 252, .12);
  color: var(--brand-lt);
}
.info .icon svg { width: 21px; height: 21px; stroke: currentColor; fill: none; }
.info .k { font-size: 12.5px; letter-spacing: .12em; color: var(--text-3); }
.info .v { margin-top: 5px; font-size: 16px; word-break: break-all; }
.info .v a:hover { color: var(--brand-lt); }

/* 地图容器。右栏里用 16:9：栏宽只有一半，21:9 会扁成一条细带子，
   而且 16:9 的高度正好把右栏补到和左栏信息卡大致平齐 */
.map {
  position: relative;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--card-line);
  border-radius: var(--radius-lg);
  background: var(--card-b);
  overflow: hidden;
}
.map iframe { width: 100%; height: 100%; border: 0; }

/* 地图下方的地址说明 */
.map-addr {
  margin: 14px 0 0;
  font-size: 13.5px;
  text-align: center;
  color: var(--text-3);
}

/* 公司位置右栏的交通方式（地铁 / 自驾 / 来访须知）。
   三张压成一行，右栏总高才和左栏信息卡大致平齐 */
.trip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}
.trip li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 18px 16px;
  border: 1px solid var(--card-line);
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  transition: border-color .3s ease;
}
.trip li:hover { border-color: rgba(42, 127, 252, .45); }
/* 图标与标题的同行头 */
.trip .hd { display: flex; align-items: center; gap: 10px; }
.trip .icon {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: var(--radius);
  background: rgba(42, 127, 252, .12);
  color: var(--brand-lt);
}
.trip .icon svg { width: 18px; height: 18px; stroke: currentColor; fill: none; }
.trip h4 { font-size: 15px; }
.trip p { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--text-2); }

/* ---------- 13 页脚 ------------------------------------------------- */
/* 纯黑色扁色底（2026-09-07 用户要求），无顶边线/渐变线 */
.footer {
  position: relative;
  padding: 64px 0 0;
  background: #000;
  color: #c6d4e4;
}

.footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr));
  gap: 48px;
  padding-bottom: 48px;
}
.footer .brand .logo img { height: 44px; }
.footer .brand p {
  max-width: 330px;
  margin-top: 22px;
  font-size: 14px;
  color: #8ba0b8;
}
.footer .slogan {
  margin-top: 20px;
  font-size: 14px;
  letter-spacing: .1em;
  color: #7db4ff;
}

.footer h5 {
  margin-bottom: 20px;
  font-size: 15px;
  letter-spacing: .1em;
  color: #fff;
}
.footer-links { display: grid; gap: 12px; font-size: 14px; }
.footer-links a { color: #9fb3c8; }
.footer-links a:hover { color: #7db4ff; }

.footer .fc { display: grid; gap: 13px; font-size: 14px; color: #9fb3c8; }
.footer .fc li { display: flex; gap: 11px; }
.footer .fc svg { flex-shrink: 0; width: 17px; height: 17px; margin-top: 4px; stroke: #7db4ff; fill: none; }
.footer .fc a:hover { color: #7db4ff; }

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 14px;
  /* 2026-11-06 用户要求：版权/备案行上移，底部留出呼吸空间 */
  padding: 26px 0 30px;
  border-top: 1px solid rgba(255, 255, 255, .08);
  font-size: 13px;
  color: #6c8298;
}
.footer-bottom a { color: #6c8298; }
.footer-bottom a:hover { color: #7db4ff; }

/* 返回顶部按钮 */
.to-top {
  position: fixed;
  right: 26px; bottom: 26px;
  z-index: 90;
  display: grid;
  place-items: center;
  width: 44px; height: 44px;
  border: 1px solid var(--line-2);
  border-radius: var(--radius);
  background: var(--ink-2);
  color: var(--text-2);
  cursor: pointer;
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
  transition: all .35s var(--ease);
}
.to-top.on { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { border-color: var(--brand); background: var(--brand); color: #fff; }
.to-top svg { width: 19px; height: 19px; stroke: currentColor; fill: none; }

/* CTA 通栏：深蓝渐变面板（与 ASO_Web 同——纯 135deg 渐变、无描边、无顶部蓝晕） */
.cta {
  position: relative;
  padding: 72px 40px;
  border: none;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--card-a), var(--card-b));
  box-shadow: var(--card-shadow);
  text-align: center;
  overflow: hidden;
}
.cta::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--brand-lt), transparent);
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none;
}
.cta:hover::before { opacity: 1; }
.cta > * { position: relative; }
.cta h2 {
  margin: 18px 0 14px;
  font-size: clamp(26px, 3.2vw, 36px);
  letter-spacing: .06em;
}

/* 首页招聘 CTA 标题：两句四字短语的间隔用 flex gap 拉开。
   HTML 里连续空格会被浏览器折叠成单个，这类"字间空档"统一交给 CSS 控制 */
.cta h2.split-title {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .9em;
}
.cta p {
  max-width: 580px;
  margin: 0 auto 34px;
  color: var(--text-2);
}
/* 简历卡「邮件标题按…尽快与你联系」要一行居中：放宽限宽让它自然成一行 */
.cta p.single { max-width: 720px; }
.cta .hero-actions { justify-content: center; margin-top: 0; }

/* ---------- 13.1 卡片 C-03：统一深蓝纯色卡 -------------------------- */
.value-card,
.card,
.rocket-body,
.steps li,
.stat,
.job-group,
.news-item,
.info,
.trip li,
.cta {
  position: relative;
  background: var(--card-a);
  border: 1px solid var(--card-line);
  border-radius: var(--radius-card);
  box-shadow: var(--card-shadow);
}

/* 2026-11-06 用户要求：取消卡片顶部亮线（含原有 hover 才出现的那条） */
.value-card::before,
.card::before,
.rocket-body::before,
.steps li::before,
.stat::before,
.job-group::before,
.news-item::before,
.info::before,
.trip li::before,
.cta::before {
  content: none;
}

/* 幽灵卡 hover：和「关于我们」按钮一致——蓝底淡入、描边提到品牌蓝 */
.value-card:hover,
.card:hover,
.rocket-body:hover,
.news-item:hover,
.info:hover,
.trip li:hover {
  transform: translateY(-3px);
  background: rgba(40, 125, 252, .16);
  border-color: var(--brand);
  box-shadow: none;
}

/* ---------- 13.2 深蓝区块改纸色（2026-11-06 试色） -------------------
   原来的 .section.alt（深蓝）改成暖纸色；.section 黑色恢复纯黑；页脚不动 */
.section.alt {
  background: #f2efe8;
  color: #0b0b0c;
}
.section.alt .kicker { color: var(--brand); }
.section.alt .sec-head h2 { color: #0b0b0c; }
.section.alt .sec-head .sub { color: #5d6675; }
.section.alt .sec-head .sub strong { color: #0b0b0c !important; }
.section.alt .lead { color: #5d6675; }
.section.alt h2,
.section.alt h3,
.section.alt h4 { color: #0b0b0c; }
.section.alt p { color: #5d6675; }

/* 纸色区卡片：白底深字 */
.section.alt .value-card,
.section.alt .card,
.section.alt .rocket-body,
.section.alt .steps li,
.section.alt .stat,
.section.alt .job-group,
.section.alt .news-item,
.section.alt .info,
.section.alt .trip li,
.section.alt .cta {
  background: #fff;
  border-color: rgba(11, 11, 12, .10);
  box-shadow: 0 10px 24px rgba(16, 24, 40, .06);
}
.section.alt .value-card h3,
.section.alt .card h3,
.section.alt .rocket-body h2,
.section.alt .rocket-body h3,
.section.alt .steps li,
.section.alt .job-group h3,
.section.alt .news-item h3,
.section.alt .info .v,
.section.alt .trip h4,
.section.alt .cta h2 { color: #0b0b0c; }

.section.alt .card p[style] { color: #0b0b0c !important; }
.section.alt .card .no { color: rgba(40, 125, 252, .35); }

/* 首页产品：按需求去掉火箭后面的深色底块，让火箭直接落在纸面上 */
.section.alt .rocket-body .tagline { color: #5d6675; }
.section.alt .rocket-body .status { color: #5d6675; }
.section.alt .status.dev {
  border-color: rgba(40, 125, 252, .28);
  background: rgba(40, 125, 252, .08);
  color: var(--brand);
}
.section.alt .status.dev .dot { background: var(--brand); }
.section.alt .rocket-body .more { color: var(--brand); }
.section.alt .specs .sp { border-bottom-color: rgba(11, 11, 12, .10); }
.section.alt .specs dt { color: #6b7686; }
.section.alt .specs dd { color: #0b0b0c; }
.section.alt .specs dd .u { color: #6b7686; }

/* 时间轴（关于页发展历程 / 产品页技术路线） */
.section.alt .timeline .when { color: var(--brand); }
.section.alt .timeline h4 { color: #0b0b0c; }
.section.alt .timeline p { color: #5d6675; }
.section.alt .timeline li::before { background: #f2efe8; }

/* 招聘岗位 */
.section.alt .ticks li { color: #5d6675; }
.section.alt .job-group > h3 { color: #0b0b0c; }
.section.alt .job .jn { color: #3a3a38; }
.section.alt .job:hover { background: rgba(40, 125, 252, .08); }

/* CTA / 幽灵按钮反相 */
.section.alt .cta { background: #fff; }
.section.alt .btn-ghost {
  color: #0b0b0c;
  background: #fff;
  border-color: rgba(11, 11, 12, .18);
}
.section.alt .btn-ghost:hover {
  color: #fff;
  background: var(--brand);
  border-color: var(--brand);
}

/* hover 用中性投影，不用深蓝发光 */
.section.alt .value-card:hover,
.section.alt .card:hover,
.section.alt .rocket-body:hover,
.section.alt .news-item:hover,
.section.alt .info:hover,
.section.alt .trip li:hover {
  background: #fff;
  border-color: rgba(40, 125, 252, .35);
  box-shadow: 0 16px 32px rgba(16, 24, 40, .12);
}
.section.alt .news-item:hover h3 { color: var(--brand); }

/* 纸色区里的 CTA 保持深色卡，作为纸面中的重色锚点 */
.section.alt .cta {
  background: var(--ink-0);
  border-color: rgba(93, 157, 253, .18);
}
.section.alt .cta .kicker { color: var(--brand-lt); }
.section.alt .cta h2 { color: #fff; }
.section.alt .cta p { color: var(--text-2); }
.section.alt .cta .btn-ghost {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, .4);
}
.section.alt .cta .btn-ghost:hover {
  color: #0b0b0c;
  background: #fff;
  border-color: #fff;
}

/* ---------- 13.3 暖纸色区块 → 黑色卡片（覆盖 13.2） -----------------
   黑色区块保持原来的幽灵卡；纸色区块用黑卡，形成悬浮感 */

/* B. 暖纸色区块里的卡片：黑色 */
.section.alt .value-card,
.section.alt .card,
.section.alt .rocket-body,
.section.alt .steps li,
.section.alt .stat,
.section.alt .job-group,
.section.alt .news-item,
.section.alt .info,
.section.alt .trip li,
.section.alt .cta,
.section.alt .apply {
  background: #000;
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 14px 30px rgba(0, 0, 0, .32);
  color: #f5f2ec;
}
.section.alt .value-card h3,
.section.alt .card h3,
.section.alt .rocket-body h2,
.section.alt .rocket-body h3,
.section.alt .steps li,
.section.alt .job-group h3,
.section.alt .news-item h3,
.section.alt .info .v,
.section.alt .trip h4,
.section.alt .cta h2,
.section.alt .apply h2 { color: #fff; }
.section.alt .value-card p,
.section.alt .card p,
.section.alt .rocket-body .tagline,
.section.alt .news-item .ex,
.section.alt .trip p,
.section.alt .cta p,
.section.alt .apply p,
.section.alt .info .k { color: rgba(255, 255, 255, .62); }
.section.alt .card p[style] { color: #f5f2ec !important; }
.section.alt .card .no { color: rgba(93, 157, 253, .45); }

/* 纸色区块 · 火箭卡 */
.section.alt .rocket-body .status { color: rgba(255, 255, 255, .55); }
.section.alt .status.dev {
  border-color: rgba(93, 157, 253, .35);
  background: rgba(93, 157, 253, .12);
  color: var(--brand-lt);
}
.section.alt .status.dev .dot { background: var(--brand-lt); }
.section.alt .rocket-body .more { color: var(--brand-lt); }
.section.alt .specs .sp { border-bottom-color: rgba(255, 255, 255, .14); }
.section.alt .specs dt { color: rgba(255, 255, 255, .5); }
.section.alt .specs dd { color: #fff; }
.section.alt .specs dd .u { color: rgba(255, 255, 255, .55); }

/* 纸色区块 · 岗位卡 */
.section.alt .job .jn { color: rgba(255, 255, 255, .72); }
.section.alt .job:hover { background: rgba(255, 255, 255, .06); }

/* 纸色区块 · CTA */
.section.alt .cta .kicker { color: var(--brand-lt); }
.section.alt .cta .btn-ghost {
  color: #fff;
  background: transparent;
  border-color: rgba(255, 255, 255, .4);
}
.section.alt .cta .btn-ghost:hover {
  background: #fff;
  color: #0b0b0c;
  border-color: #fff;
}

/* hover */
.section.alt .value-card:hover,
.section.alt .card:hover,
.section.alt .rocket-body:hover,
.section.alt .news-item:hover,
.section.alt .info:hover,
.section.alt .trip li:hover {
  background: #000;
  border-color: rgba(93, 157, 253, .4);
  box-shadow: 0 18px 34px rgba(0, 0, 0, .4);
}
.section.alt .news-item:hover h3 { color: var(--brand-lt); }

/* 黑色区块里的卡片：描边色统一成「查看全部新闻」幽灵按钮的边框色 */
.section .value-card,
.section .card,
.section .rocket-body,
.section .steps li,
.section .stat,
.section .job-group,
.section .news-item,
.section .info,
.section .trip li,
.section .cta {
  border-color: var(--line-2);
}

/* 首页纸色区块：火箭与右侧参数合并成一张大卡，白箭体落在黑底上边缘才干净 */
.section.alt .rocket {
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
  grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  gap: 36px;
  background: #000;
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: var(--radius-card);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .28);
  padding: 32px 36px;
  overflow: hidden;
}
.section.alt .rocket .rocket-art { padding-left: 0; }
.section.alt .rocket .rocket-art {
  background: transparent;
  border-radius: 0;
}
.section.alt .rocket .rocket-body {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
/* ---------- 14 滚动入场动效 ----------------------------------------- */
.reveal {
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal.in { opacity: 1; transform: none; }
/* data-delay 做出错落感（参照 ASO_Web 的延迟档位） */
.reveal[data-delay="1"] { transition-delay: .12s; }
.reveal[data-delay="2"] { transition-delay: .24s; }
.reveal[data-delay="3"] { transition-delay: .36s; }
.reveal[data-delay="4"] { transition-delay: .48s; }
.reveal[data-delay="5"] { transition-delay: .6s; }

/* 尊重系统「减少动态效果」设置 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}

/* ---------- 15 响应式断点 ------------------------------------------- */
@media (max-width: 1100px) {
  .section.alt .rocket { padding: 28px; grid-template-columns: 1fr; gap: 28px; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 40px; }
  /* 两栏摆不下了，文字在上卡片在下 */
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .rocket,
  .rocket.compact { grid-template-columns: 1fr; gap: 36px; }
  .rocket-art,
  .rocket.compact .rocket-art { min-height: 420px; padding-left: 0; }
  .rocket-art img,
  .rocket.compact .rocket-art img { max-height: 460px; }
  .steps { grid-template-columns: repeat(3, 1fr); gap: 22px 14px; }
  /* 换行后横向箭头会指错方向，直接隐藏 */
  .steps li::after { display: none; }
  .contact-grid { grid-template-columns: 1fr; }
  /* 竖向堆叠后首屏很高，滚动提示意义不大，直接隐藏 */
  .scroll-cue { display: none; }
  .hero { padding-bottom: 56px; }
}

@media (max-width: 900px) {
  :root { --nav-h: 72px; }
  /* 移动端页头恢复按内容自适应，避免 540px 下限造成大片留白 */
  .page-hero { min-height: auto; }

  /* 移动端导航抽屉 */
  .nav-toggle { display: block; }
  .nav-menu {
    position: fixed;
    top: var(--nav-h); left: 0; right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    max-height: calc(100vh - var(--nav-h));
    padding: 14px 20px 26px;
    margin: 0;
    background: var(--ink-1);
    border-bottom: 1px solid var(--line);
    overflow-y: auto;
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    transition: all .32s var(--ease);
  }
  .nav-menu.open { transform: none; opacity: 1; visibility: visible; }
  .nav-menu a { padding: 15px 12px; font-size: 16px; border-radius: var(--radius); }
  .nav-menu a.active { background: rgba(40, 125, 252, .14); }
  .nav-menu a::after { display: none; }

  .section { padding: 76px 0; }
  .container { padding: 0 22px; }
  .sec-head { margin-bottom: 40px; }

  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; gap: 36px; }
  /* 招聘对象清单在窄屏下恢复单列，避免 max-content 两列溢出 */
  #jobs .ticks {
    grid-template-columns: 1fr;
    margin: 24px auto 44px;
  }
  .stats { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .benefits { grid-template-columns: 1fr; }
  .article-body { font-size: 16px; }

  /* 新闻卡片改为上下堆叠 */
  .news-item {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 24px 22px;
  }
  .news-item:hover { transform: none; }
  /* 手机也保持日期纯文字，不再加小胶囊边框 */
  .news-item .date {
    display: flex;
    align-items: baseline;
    gap: 10px;
    width: fit-content;
    padding: 0;
    border: 0;
    background: none;
    text-align: left;
  }
  .news-item .date .d { font-size: 24px; }
  .news-item .date .ym { margin-top: 0; }
  .news-item .go { display: none; }

  /* 手机上强制保证“查看全部新闻”可读：浅底深字 */
  #news .btn-ghost {
    color: #0b0b0c;
    background: #f2efe8;
    border-color: #f2efe8;
  }
}

@media (max-width: 560px) {
  .section.alt .rocket { padding: 22px 18px; }
  .hero { min-height: auto; padding-bottom: 60px; }
  .hero-actions .btn { flex: 1 1 100%; justify-content: center; }
  /* 窄屏下横排卡片改为图标在上、文字在下 */
  .value-card { flex-direction: column; align-items: flex-start; gap: 14px; padding: 22px 20px; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr; gap: 34px; }
  .cta { padding: 52px 24px; }
  .trip { grid-template-columns: 1fr; }
  .timeline { padding-left: 26px; }
  .timeline li::before { left: -26px; }
  .to-top { right: 16px; bottom: 16px; }
}

/* 打印时去掉深色背景，节省油墨 */
@media print {
  .nav, .to-top, .scroll-cue, .starfield { display: none !important; }
  body { background: #fff; color: #111; }
  .card, .section.alt, .rocket-body, .job-group, .news-item, .trip li, .info,
  .steps li, .cta, .stat, .footer { background: #fff !important; }
}
