/* ============================================================
   我们的团队 · about/team.html 专用样式
   接在 aw.css 之后，只用 aw.css 里已有的 token（--pad / --sec-gap /
   --r-card / --accent / --violet …），不另起一套色板。
   ============================================================ */

/* ------------------------------------------------------------
   幕一 · 标题区
   左边巨标、右边导语，中间一条竖分割线；下面接通栏合影
   ------------------------------------------------------------ */
.team-hero { margin-top: 52px; }

.team-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.62fr);
  gap: 0 clamp(28px, 5vw, 88px);
  align-items: start;
}

.team-hero__aside {
  padding-left: clamp(20px, 3vw, 52px);
  border-left: 0.5px solid var(--line);
  padding-top: 10px;
}
.team-hero__lede {
  font-size: clamp(17px, 1.5vw, 22px);
  font-weight: 400;
  line-height: 1.62;
  max-width: 22ch;
}
.team-hero__lede b { font-weight: 600; }

/* 三格事实：数字由 aw.js 的 [data-count] 滚出来 */
.team-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 14px clamp(22px, 2.6vw, 40px);
  margin-top: 26px;
  padding-top: 22px;
  border-top: 0.5px solid var(--line);
}
.team-facts > div { display: flex; flex-direction: column; gap: 6px; }
.team-facts dt {
  font-size: clamp(26px, 2.4vw, 34px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}
.team-facts dt i {
  font-style: normal;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--mut);
  margin-left: 5px;
}
.team-facts dd { font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.04em; color: var(--mut-2); }

/* 「预约项目讨论会 ↗」——参考站是绿色文字 + 圆形箭头，这里换成本站的墨色 + 青柠圆钮 */
.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
  font-size: 15px;
  font-weight: 500;
}
.arrow-link i {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--accent);
  display: grid;
  place-items: center;
  flex: none;
  transition: transform 0.35s var(--ease);
}
.arrow-link svg { width: 11px; height: 11px; }
.arrow-link span { border-bottom: 1px solid var(--line); padding-bottom: 2px; }
.arrow-link:hover i { transform: translate(3px, -3px) rotate(45deg); }

/* ------------------------------------------------------------
   合影带
   不再整屏铺开：高度只占约 1/3 屏。首屏里是一张带圆角的内嵌卡（clip-path 内缩 --pad），
   往下滚半屏内 --g 从 0 走到 1、卡片长满视口宽；照片同时从 1.16 缩回 1.08 并做 ±4% 的视差。
   照片始终是原片彩色（不做黑白/上色处理）。
   --g / --py 由 team.js 随滚动写入；无 JS 或减少动效时直接给通栏成品。
   ------------------------------------------------------------ */
.team-band {
  --g: 0;
  --py: 0px;
  position: relative;
  height: clamp(240px, 34vw, 520px);
  margin-top: clamp(40px, 6vw, 92px);
  margin-inline: calc(-1 * var(--pad));
  overflow: hidden;
  background: var(--grey);
  clip-path: inset(0 calc(var(--pad) * (1 - var(--g))) round calc(14px * (1 - var(--g))));
}
.team-band__media {
  position: absolute;
  inset: 0;
  transform: translate3d(0, var(--py), 0) scale(calc(1.16 - 0.08 * var(--g)));
  transform-origin: 50% 50%;
  will-change: transform;
}
.team-band__media picture,
.team-band__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
/* 58%：把金拱门的上半截裁出画面，留下人、举起的手和一线城市天际 */
.team-band__media img { object-fit: cover; object-position: 50% 58%; }
.team-band__tag {
  position: absolute;
  left: calc(var(--pad) + 18px * (1 - var(--g)));
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(1.4) blur(4px);
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink);
  white-space: nowrap;
}
/* 青柠圆点每 2.8s 一圈涟漪——不 hover 也在动的那一处 */
.team-band__tag i { position: relative; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.team-band__tag i::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 1.5px solid var(--accent);
  animation: bandPing 2.8s cubic-bezier(0.2, 0.6, 0.3, 1) infinite;
}
@keyframes bandPing {
  0%        { transform: scale(0.6); opacity: 0.9; }
  70%, 100% { transform: scale(2.6); opacity: 0; }
}

.no-js .team-band { --g: 1; }
@media (prefers-reduced-motion: reduce) {
  .team-band { --g: 1; }
  .team-band__media { transform: none; }
  .team-band__tag i::before { animation: none; }
}
@media (max-width: 760px) {
  .team-band { height: 62vw; margin-top: 34px; }
  .team-band__tag { bottom: 12px; font-size: 11px; }
}

@media (max-width: 900px) {
  .team-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .team-hero__aside { padding-left: 0; border-left: 0; border-top: 0.5px solid var(--line); padding-top: 22px; }
  .team-hero__lede { max-width: none; }
}

/* ------------------------------------------------------------
   幕二 · 创始人入口卡
   ------------------------------------------------------------ */
.founder {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr) minmax(0, 0.86fr);
  gap: 0;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--card);
  box-shadow: inset 0 0 0 0.5px var(--line);
}
/* 人像：参考素材/jimzhang .JPG → tools/founder-photo.py；原片彩色直出，不做黑白处理 */
.founder__photo {
  position: relative;
  margin: 0;
  min-height: clamp(360px, 30vw, 560px);
  background: var(--grey);
  overflow: hidden;
}
.founder__photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 50% 28%;
}

.founder__body { padding: clamp(28px, 3.4vw, 52px); display: flex; flex-direction: column; }
.founder__tag {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--mut-2);
}
.founder__name {
  margin-top: 14px;
  font-size: clamp(38px, 5.4vw, 76px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
}
.founder__name em { font-style: normal; color: var(--mut-2); }
.founder__role {
  margin-top: 12px;
  font-size: 15px;
  font-weight: 400;
  color: var(--mut);
}
.founder__quote {
  margin-top: 26px;
  font-size: clamp(18px, 1.7vw, 24px);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: -0.015em;
  max-width: 24ch;
  padding-left: 18px;
  border-left: 2px solid var(--accent);
}
.founder__body .arrow-link { margin-top: auto; padding-top: 34px; }

/* 履历链：西门子 → SAP → 腾讯 → 英特费斯 */
.founder__path {
  background: var(--grey-2);
  padding: clamp(28px, 3.4vw, 52px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}
.path-step {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: baseline;
  gap: 0 16px;
  padding: 16px 0;
  border-top: 0.5px solid var(--line);
  position: relative;
}
.path-step:first-child { border-top: 0; }
.path-step__yr { font-family: var(--mono); font-size: 12px; color: var(--mut-2); }
.path-step__co { font-size: clamp(20px, 2vw, 28px); font-weight: 600; letter-spacing: -0.02em; }
.path-step__co small {
  display: block;
  font-size: 13px;
  font-weight: 300;
  letter-spacing: normal;
  color: var(--mut);
  margin-top: 2px;
}
.path-step--now .path-step__co { color: var(--violet); }
.path-step--now .path-step__yr { color: var(--violet); }

@media (max-width: 1100px) {
  .founder { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .founder__photo { min-height: clamp(380px, 44vw, 460px); }
  .founder__path { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .founder { grid-template-columns: minmax(0, 1fr); }
  .founder__photo { min-height: 0; aspect-ratio: 4 / 5; }
  .founder__path { grid-column: auto; }
  .founder__body .arrow-link { padding-top: 28px; }
}

/* ------------------------------------------------------------
   幕三 · 拯救 HMI 全能战队
   部门 → 大字部门名 + 介绍 → 头像条 → 点开某个人
   ------------------------------------------------------------ */
.squad__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: clamp(28px, 3vw, 44px);
}
.dept-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: 42px;
  padding: 0 18px;
  border-radius: var(--r-ui);
  background: var(--grey);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  transition: background 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease);
}
.dept-pill b { font-weight: 500; }
.dept-pill em {
  font-style: normal;
  font-family: var(--mono);
  font-size: 11px;
  color: var(--mut-2);
  transition: color 0.25s var(--ease);
}
.dept-pill:hover { transform: translateY(-2px); }
.dept-pill[aria-selected="true"] { background: var(--ink); color: #fff; }
.dept-pill[aria-selected="true"] em { color: rgba(255, 255, 255, 0.6); }

/* --- 舞台：左边部门文案，右边被点开的那个人 --- */
.squad__stage:focus { outline: none; }
.squad__stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.78fr);
  gap: 0;
  border-radius: var(--r-card);
  overflow: hidden;
  box-shadow: inset 0 0 0 0.5px var(--line);
  background: var(--card);
  min-height: 420px;
}

.dept-panel { padding: clamp(28px, 3.4vw, 52px); display: flex; flex-direction: column; }
.dept-panel__en {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--mut-2);
}
.dept-panel__name {
  margin-top: 12px;
  font-size: clamp(34px, 4.6vw, 66px);
  font-weight: 600;
  line-height: 1.06;
  letter-spacing: -0.035em;
}
.dept-panel__desc {
  margin-top: 20px;
  font-size: 15px;
  font-weight: 300;
  line-height: 28px;
  color: var(--mut);
  max-width: 34ch;
}
.dept-panel__meta {
  margin-top: auto;
  padding-top: 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.dept-panel__meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--grey-2);
  font-size: 12.5px;
  color: var(--mut);
}
.dept-panel__meta i { width: 5px; height: 5px; border-radius: 1px; background: var(--accent); }
.dept-panel__meta span:nth-child(2) i { background: var(--violet); }

/* 切换部门时整块轻微淡入 */
.dept-panel > *, .member-card > * { transition: opacity 0.32s var(--ease), transform 0.32s var(--ease); }
.squad__stage.is-swap .squad__rail,
.squad__stage.is-swap .squad__ctl { opacity: 0; }
.squad__stage.is-swap .dept-panel > *,
.squad__stage.is-swap .member-card > * { opacity: 0; transform: translateY(8px); }

/* --- 被点开的那个人 --- */
.member-card {
  position: relative;
  padding: clamp(24px, 3vw, 40px);
  background: linear-gradient(158deg, #eef2ff 0%, #f6f1ff 44%, #fdf3f7 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}
.member-card::before {          /* 背后的大号首字母，别抢戏 */
  content: attr(data-initial);
  position: absolute;
  right: -0.06em;
  top: -0.22em;
  font-size: clamp(160px, 20vw, 300px);
  font-weight: 600;
  line-height: 1;
  color: rgba(34, 34, 34, 0.05);
  pointer-events: none;
}
.member-card__shot {
  position: relative;
  height: clamp(200px, 27vw, 380px);
  margin-bottom: 20px;
  display: flex;
  align-items: flex-end;
}
/* 没照片的同事：大卡里放首字母圆章，跟头像条那颗同一套语言 */
.member-card__ini {
  display: grid;
  place-items: center;
  width: clamp(140px, 17vw, 220px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--card);
  color: var(--mut);
  font-size: clamp(54px, 6.5vw, 88px);
  font-weight: 600;
  letter-spacing: -0.04em;
  box-shadow: 0 16px 30px rgba(24, 26, 32, 0.14);
  animation: memberPop 0.5s var(--ease) both;
}
.member-card__shot img {
  height: 100%;
  width: auto;
  object-fit: contain;
  object-position: bottom left;
  filter: drop-shadow(0 18px 26px rgba(24, 26, 32, 0.16));
  animation: memberPop 0.5s var(--ease) both;
}
@keyframes memberPop {
  from { opacity: 0; transform: translateY(16px) scale(0.965); }
  to   { opacity: 1; transform: none; }
}
.member-card__name {
  position: relative;
  font-size: clamp(22px, 2.2vw, 30px);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.member-card__role {
  position: relative;
  margin-top: 4px;
  font-family: var(--mono);
  font-size: 12px;
  color: var(--mut);
}
.member-card__quote {
  position: relative;
  margin-top: 16px;
  font-size: clamp(18px, 1.75vw, 24px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.022em;
  text-wrap: pretty;
}
.member-card__quote::before { content: "「"; margin-left: -0.5em; }
.member-card__quote::after  { content: "」"; }
/* 马克笔从左划过。整句必须留在**一个**文字节点里——拆成逐字 span 会让
   i18n 的整句键全部落空、英文站漏译，所以只包一层 <em> 做背景，不拆字。
   box-decoration-break:clone 让每一行都各划一道，而不是整块糊一条。 */
.member-card__quote em {
  font-style: normal;
  background-image: linear-gradient(transparent 62%, rgba(217, 242, 79, 0.9) 62%);
  background-repeat: no-repeat;
  background-size: 0% 100%;
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
  animation: quoteMark 0.72s var(--ease) 0.22s both;
}
@keyframes quoteMark { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
@media (prefers-reduced-motion: reduce) {
  .member-card__quote em { animation: none; background-size: 100% 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .member-card__shot img { animation: none; }
  .dept-panel > *, .member-card > * { transition: none; }
}

/* --- 头像条：横向滑动选人 --- */
/* 贴纸的脑袋探出色块约 65px。overflow-x:auto 会把纵向一起裁掉，所以探头的空间
   必须留在滚动容器「里面」（viewport 的 padding-top），不能靠外面的 margin —— 
   这是把原来的网格改成滑轨时最容易砍掉半个脑袋的地方。 */
.squad__rail {
  --poke: 62px;
  --card-w: 168px;
  position: relative;
  margin-top: 26px;
}
.squad__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  /* +30 而不是 +14：探头实测 74px，还要给 hover 抬起的 5px 和落影留地方，否则削头顶 */
  padding: calc(var(--poke) + 30px) 0 8px;
  scroll-snap-type: x proximity;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.squad__viewport::-webkit-scrollbar { width: 0; height: 0; display: none; }
.squad__viewport.is-drag { cursor: grabbing; scroll-snap-type: none; }
.squad__track { display: flex; gap: 12px; width: max-content; min-width: 100%; }

/* 两端的渐隐，暗示「还能往那边滑」。用叠在上面的伪元素而不是 mask：
   mask 会连探出去的脑袋一起吃掉。到头时 JS 把对应一侧关掉。 */
.squad__rail::before,
.squad__rail::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 8px;
  width: 34px;
  z-index: 2;
  pointer-events: none;
  transition: opacity 0.3s var(--ease);
}
.squad__rail::before { left: 0; background: linear-gradient(to right, var(--card), rgba(255, 255, 255, 0)); }
.squad__rail::after { right: 0; background: linear-gradient(to left, var(--card), rgba(255, 255, 255, 0)); }
.squad__rail[data-at~="start"]::before,
.squad__rail[data-at~="end"]::after { opacity: 0; }

/* 滑动控件：进度条 + 左右按钮。滑不动时整行藏起来，不摆无效控件 */
.squad__ctl { display: flex; align-items: center; gap: 16px; margin-top: 18px; }
.squad__ctl[hidden] { display: none; }
/* 进度条不通栏：铺满一整行会读成一道黑色分隔线，而不是"还能滑多少" */
.squad__bar {
  position: relative;
  flex: none;
  width: clamp(88px, 22%, 168px);
  height: 2px;
  border-radius: 999px;
  background: var(--grey);
  overflow: hidden;
}
.squad__bar i {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: var(--w, 30%);
  border-radius: 999px;
  background: var(--ink);
  transform: translateX(var(--x, 0));
  transition: transform 0.18s linear, width 0.25s var(--ease);
}
.squad__nav { display: flex; gap: 8px; flex: none; margin-left: auto; }
.squad__arrow {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--grey);
  color: var(--ink);
  transition: background 0.25s var(--ease), transform 0.25s var(--ease), opacity 0.25s var(--ease);
}
.squad__arrow:hover { background: var(--accent); transform: translateY(-2px); }
.squad__arrow:disabled { opacity: 0.3; pointer-events: none; }
.squad__arrow:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

.sticker {
  position: relative;
  flex: 0 0 var(--card-w);
  scroll-snap-align: start;
  padding: 112px 8px 12px;      /* 上边留白让脑袋探出来 */
  border-radius: var(--r-ui);
  background: var(--grey);
  text-align: center;
  transition: background 0.25s var(--ease), transform 0.3s var(--ease),
              box-shadow 0.3s var(--ease);
}
.sticker__img {
  position: absolute;
  left: 50%;
  bottom: 50px;
  height: 172px;
  width: auto;
  max-width: none;             /* 抵消 aw.css 的 img{max-width:100%}，否则贴纸会被压扁 */
  /* 胸像的下沿是平口，直接压在名字上很硬——让它在色块里淡出去 */
  -webkit-mask-image: linear-gradient(to bottom, #000 74%, transparent 97%);
          mask-image: linear-gradient(to bottom, #000 74%, transparent 97%);
  transform: translateX(-50%);
  transform-origin: bottom center;
  transition: transform 0.35s var(--ease);
  pointer-events: none;
  filter: drop-shadow(0 6px 10px rgba(24, 26, 32, 0.14));
}

/* 还没入镜的同事：首字母色块，不拿别人的脸凑数 */
.sticker--ini { background: var(--vb-b, var(--grey-2)); }
.sticker__ini {
  position: absolute;
  left: 50%;
  bottom: 52px;
  transform: translateX(-50%);
  transform-origin: bottom center;
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  background: var(--card);
  color: var(--vb-f, var(--mut));
  font-size: 38px;
  font-weight: 600;
  letter-spacing: -0.03em;
  box-shadow: 0 6px 14px rgba(24, 26, 32, 0.12);
  transition: transform 0.35s var(--ease);
  pointer-events: none;
}
.sticker--ini:hover .sticker__ini,
.sticker--ini[aria-pressed="true"] .sticker__ini { transform: translateX(-50%) scale(1.06); }

/* 结尾那格：说清楚「还有多少人没入镜」，并且给条出路，不做成假的可点头像 */
.sticker--join {
  display: grid;
  place-content: center;
  gap: 4px;
  flex: 0 0 152px;
  scroll-snap-align: end;
  padding: 0 14px;
  min-height: 157px;
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--mut-2);
  font-size: 12.5px;
  line-height: 18px;
  text-align: center;
}
.sticker--join b { display: block; font-size: 15px; font-weight: 600; color: var(--ink); }
.sticker--join em { font-style: normal; display: inline-flex; align-items: center; gap: 5px; color: var(--violet); }
.sticker--join:hover { background: var(--grey-2); box-shadow: inset 0 0 0 1px transparent; transform: translateY(-4px); }

.sticker__name {
  position: relative;
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 18px;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticker__role {
  position: relative;
  display: block;
  font-family: var(--mono);
  font-size: 10.5px;
  line-height: 15px;
  color: var(--mut-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticker:hover { transform: translateY(-5px); }
.sticker:hover .sticker__img { transform: translateX(-50%) scale(1.07); }
.sticker[aria-pressed="true"] {
  background: var(--accent);
  box-shadow: inset 0 0 0 1px rgba(34, 34, 34, 0.5);
}
.sticker[aria-pressed="true"] .sticker__img { transform: translateX(-50%) scale(1.05); }
.sticker[aria-pressed="true"] .sticker__role { color: rgba(34, 34, 34, 0.62); }
.sticker--ini[aria-pressed="true"] { background: var(--accent); }

/* 头像条换部门时逐个弹进来 */
.sticker { animation: stickIn 0.42s var(--ease) both; animation-delay: calc(var(--i, 0) * 0.035s); }
@keyframes stickIn {
  from { opacity: 0; transform: translateY(12px) scale(0.94); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .sticker { animation: none; }
  .squad__viewport { scroll-behavior: auto; }
}

.squad__hint {
  margin-top: 14px;
  font-size: 13px;
  color: var(--mut-2);
  display: flex;
  align-items: center;
  gap: 8px;
}
.squad__hint i { width: 5px; height: 5px; border-radius: 1px; background: var(--violet); }

@media (max-width: 900px) {
  .squad__stage { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .member-card { order: -1; }
  .squad__rail { --poke: 48px; --card-w: 138px; }
  .sticker { padding-top: 94px; }
  .sticker__img { height: 146px; bottom: 46px; }
  .sticker__ini { width: 86px; height: 86px; bottom: 46px; font-size: 32px; }
  .sticker--join { flex-basis: 132px; min-height: 137px; }
}

/* ------------------------------------------------------------
   幕四 · 使命
   ------------------------------------------------------------ */
.mission { text-align: center; }
.mission__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; color: var(--mut-2); }
.mission__line {
  margin-top: 22px;
  font-size: clamp(34px, 7vw, 108px);
  font-weight: 600;
  line-height: 1.06;
  letter-spacing: -0.04em;
  text-wrap: balance;
}
.mission__line em { font-style: normal; color: var(--violet); }
.mission__sub {
  margin: 26px auto 0;
  max-width: 46ch;
  font-size: 15px;
  font-weight: 300;
  line-height: 28px;
  color: var(--mut);
}
.mission__rule {
  width: 46px;
  height: 4px;
  border-radius: 2px;
  background: var(--accent);
  margin: 34px auto 0;
}

/* 大字随滚动逐字点亮（aw.js 的 [data-words]）：未点亮 13% 墨、点亮后墨色、data-hl 里的字走紫罗兰 */
.mission__line .w { color: rgba(34, 34, 34, 0.13); transition: color 0.5s var(--ease); }
.mission__line .w.on { color: var(--ink); }
.mission__line .w.on.w--hl { color: var(--violet); }
.no-js .mission__line .w,
.mission__line .lede--static .w { color: var(--ink); }
.no-js .mission__line .w--hl,
.mission__line .lede--static .w--hl { color: var(--violet); }

/* ---------- 视觉化改造（2026-09-05）----------
   创始人职业路径的四段编号换成 emoji 圆章 + 数字（圆章本体在 vibe.css）。 */
/* 圆章走 .vb-e 的 ::before，位移与色板都在 vibe.css，这里不用再写 */
