/* ============================================================
   深表学堂 · 骨架层（STRUCTURE ONLY）
   ------------------------------------------------------------
   本文件只负责“形”：盒模型、长宽高、间距、栅格、断点、字号行高、
   圆角与边框粗细、动效时长与关键帧，以及下面这份「皮肤令牌」的默认值。
   一切颜色 / 质感 / 光影 / 氛围都不在这里，由后加载的皮肤文件提供：

     /static/css/aischool-light.css    浅色暖调皮肤（米白 + 深潭绿 + 珊瑚橙）
     /static/css/aischool-neon.css     AI 感皮肤（深空 + 霓虹 + 网格，全量动效）
     /static/css/aischool-aurora.css   AI 感日间皮肤（亮底 + 全量动效，配色收敛）

   换肤 = 只改 index.html 里的那一行 <link>，本文件永不改动。
   新写一个皮肤 = 覆写下面 :root 里的令牌即可，装饰层可按类名自行追加。
   例外：--radius / --card-lift / --dur / --font-display / --title-tracking
   属于“气质参数”，皮肤可以微调；栅格、断点、尺寸请在骨架层统一维护。
   ============================================================ */

:root {
  /* ---------- 结构令牌（皮肤不要改） ---------- */
  --nav-h: 56px;
  --max-w: 1100px;
  --radius: 12px;
  --radius-s: 8px;
  --radius-pill: 999px;
  /* 资历小标签的圆角：形状统一走这一个旋钮，皮肤不必自己写 px */
  --chip-radius: var(--radius-pill);
  --card-border-w: 1px;
  --card-gap: 20px;
  --card-lift: -4px;
  --dur-fast: .2s;
  --dur: .3s;
  --dur-slow: .6s;
  --ease: cubic-bezier(.32,.72,.28,1);
  --font-body: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-display: var(--font-body);
  --title-tracking: 0;
  /* 统一过渡清单：卡片交互与滚动渐入共用一份，避免两条 transition 互相覆盖 */
  --trans-all: opacity var(--dur-slow) ease, translate var(--dur-slow) var(--ease),
               filter var(--dur-slow) ease, transform var(--dur) var(--ease),
               border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
               background-color var(--dur) var(--ease);

  /* ---------- 皮肤令牌（默认＝中性浅色，皮肤覆写） ---------- */
  /* 底色 */
  --bg-body: #ffffff;
  --bg-card: #ffffff;
  --bg-section: #f4f2ee;
  --bg-nav: rgba(255,255,255,.9);
  --bg-nav-panel: rgba(255,255,255,.97);
  --nav-blur: 16px;
  /* 文字 */
  --text-primary: #1b1f24;
  --text-secondary: #5b6470;
  --text-muted: #8d96a3;
  --text-on-brand: #ffffff;
  /* 品牌色 */
  --accent-1: #14594c;
  --accent-2: #e0653f;
  --accent-3: #a8792f;
  --grad-brand: linear-gradient(135deg, var(--accent-1), var(--accent-3));
  --grad-brand-size: 100% 100%;
  --grad-brand-anim: none;
  --grad-text: linear-gradient(135deg, var(--accent-1), var(--accent-3));
  --grad-text-size: 100% 100%;
  --grad-hero: linear-gradient(135deg, var(--text-primary) 0%, var(--accent-1) 55%, var(--accent-3) 100%);
  --grad-hero-size: 100% 100%;
  --grad-hero-anim: none;
  /* 描边 */
  --border-1: rgba(27,31,36,.08);
  --border-2: rgba(27,31,36,.16);
  --border-brand: rgba(20,89,76,.28);
  --border-brand-strong: rgba(224,101,63,.28);
  /* 光影 */
  --shadow-1: 0 1px 3px rgba(0,0,0,.04), 0 1px 2px rgba(0,0,0,.05);
  --shadow-2: 0 10px 25px rgba(0,0,0,.06), 0 4px 10px rgba(0,0,0,.04);
  --shadow-nav: 0 6px 20px rgba(0,0,0,.06);
  --shadow-cta: 0 2px 8px rgba(20,89,76,.18);
  --shadow-cta-hover: 0 8px 22px rgba(20,89,76,.24);
  --glow-idle: 0 0 10px rgba(20,89,76,.15);
  --glow-peak: 0 0 18px rgba(20,89,76,.3);
  --card-hover-bd: rgba(20,89,76,.28);
  /* 导航态 */
  --nav-hover-bg: rgba(20,89,76,.06);
  --nav-active-bg: rgba(20,89,76,.1);
  /* 品牌淡彩（标签、价格、徽标底） */
  --tint-1-bg: rgba(20,89,76,.07);
  --tint-1-bd: rgba(20,89,76,.2);
  --tint-2-bg: rgba(224,101,63,.07);
  --tint-2-bd: rgba(224,101,63,.18);
  --tint-3-bg: rgba(168,121,47,.1);
  --tint-neutral-bg: rgba(27,31,36,.04);
  --tint-neutral-bd: rgba(27,31,36,.14);
  /* 重点卡（推荐 / 核心 / 重头戏） */
  --highlight-bg: linear-gradient(135deg, rgba(224,101,63,.05), rgba(20,89,76,.04));
  --highlight-bd: rgba(224,101,63,.26);
  /* 小节顶部强调线（皮肤自定义粗细与颜色，默认不画） */
  --rule-top: none;
  /* 氛围层 */
  --hero-aura: radial-gradient(ellipse 80% 60% at 50% 40%, rgba(20,89,76,.06) 0%, transparent 60%),
               radial-gradient(ellipse 60% 50% at 70% 60%, rgba(224,101,63,.04) 0%, transparent 60%);
  --cta-aura: linear-gradient(180deg, transparent 0%, rgba(20,89,76,.03) 100%);
  --ambient: none;
  --ambient-opacity: 1;
  --ambient-anim: none;

  /* 粒子网络背景（canvas 由 aischool.js 驱动）：
     皮肤只负责颜色与浓淡；--particle-count: 0 可整站关掉。单位均为 CSS 像素。
     指针静止一段时间（没人操作）时，粒子迅速飞到位拼成 --particle-form-text 的字并轻微呼吸；
     指针一动（或滚动）就退回原来的飘移效果——全程只画粒子，不会变成字库里的字；
     皮肤写 --particle-form: 0 就退回「只漂移不聚字」的旧效果 */
  --particle-rgb: 20, 89, 76;
  --particle-count: 620;   /* 常态背景粒子数 */
  --particle-link: 50;     /* 两粒子多远才连线（池子变大，距离同步收一档，线的总量照旧） */
  --particle-link-max: 6;  /* 单个粒子最多牵几条线（粒子挤成一团时卡住线量，也卡住每帧开销） */
  --particle-alpha: .3;    /* 粒子本体不透明度上限 */
  --particle-line: .15;    /* 连线最大不透明度 */
  --particle-force: .01;   /* 鼠标 / 触摸吸引强度 */
  /* 聚字：DRIFT（纠缠）→ GATHER（聚拢）→ HOLD（拼好的字，呼吸）→ RELEASE（退回） */
  --particle-form: 1;              /* 0 = 关掉聚字，只留漂移 */
  --particle-form-text: "深表";     /* 要拼成哪个字（串，JS 会剥掉整对引号） */
  --particle-form-font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --particle-form-weight: 800;     /* 偏粗的黑体轮廓比细字更适合粒子取样 */
  --particle-form-count: 1050;     /* 聚字专用总粒子数；多出来的点在常态下隐藏，不会加密背景 */
  --particle-form-idle: 2.6;       /* 指针静止多久开始聚（秒） */
  --particle-form-move: 6;         /* 位移超过几像素算“指针在动”（防手抖） */
  --particle-form-gather: 1.1;     /* 聚拢用时（秒） */
  --particle-form-release: .4;     /* 退回飘移态（秒）；HOLD 没时长，呼吸直到指针再动 */
  --particle-form-stiff: .12;      /* 朝目标点的弹簧强度（越大落得越干脆、越不回头抖） */
  --particle-form-alpha: .28;      /* 拼好后保持可辨但明显退到背景层，避免压住前景标题与说明文字 */
  --particle-form-breath: .015;    /* HOLD 时整字缩放幅度：1.5%，只呼吸、不乱抖 */
  --particle-form-breath-period: 4.2; /* 一次呼吸周期（秒） */
  --particle-form-dot: .72;        /* 点径 = 实际点距 × 此系数，“清晰 vs 颗粒感”的主旋钮：
                                      目标点是方形网格，四邻中点最远的空隙在 0.707×点距处，
                                      所以 .71 是“笔画里不再有黑洞”的临界值；取 .72 刚好铺满，
                                      而边缘仍是一颗颗鼓包（粒子拼的字，不是印刷字）；
                                      调小到 .5 以下会露缝发虚，调大到 .9 以上就融成实心块 */
  --particle-form-gap: 2;          /* 字形取样间隔（CSS 像素），越小目标点越贴笔画 */
}

/* ============================================================
   Global Reset
   ============================================================ */
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  background: var(--bg-body);
  color: var(--text-primary);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
/* 全站氛围层：皮肤只通过 --ambient 往这里灌背景，骨架不关心内容 */
body::before {
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image: var(--ambient);
  opacity: var(--ambient-opacity);
  animation: var(--ambient-anim);
}
/* 粒子网络背景：骨架只给定位与层级，颜色仍由 JS 读 --particle-rgb。
   z-index:-1 与氛围层同层但树序在后，所以粒子会画在网格 / 雾之上、
   所有实底卡片之下，不会穿过文字 */
#particle-canvas {
  position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
  z-index: -1; pointer-events: none;
}
a { color: var(--accent-1); text-decoration: none; }
img { background: var(--bg-section); }
:focus-visible { outline: 2px solid var(--accent-1); outline-offset: 2px; }

/* ============================================================
   卡片基元：所有卡片的“形”只在这里定义一次
   ============================================================ */
.phil-card, .wl-card, .course-card, .project-tier, .project-cases, .project-rule,
.instructor-card, .team-card, .track-card, .aspire-card, .stage-card, .eval-card,
.path-card, .curriculum-card, .fp-item, .future-goal, .future-cta, .fit-col,
.fit-stop, .faq-item, .partner-item, .contact-card, .tuition-wrap, .tuition-card,
.versus-col, .versus-extra, .versus-worst, .versus-line, .project-case {
  background: var(--bg-card);
  border: var(--card-border-w) solid var(--border-1);
  border-radius: var(--radius);
  box-shadow: var(--shadow-1);
  transition: var(--trans-all);
}
/* 可悬停浮起的一组（用 transform，与 .reveal 的 translate 互不打架） */
.phil-card:hover, .wl-card:hover, .course-card:hover, .curriculum-card:hover,
.track-card:hover, .aspire-card:hover, .path-card:hover, .team-card:hover,
.project-tier:hover, .project-case:hover {
  transform: translateY(var(--card-lift));
  border-color: var(--card-hover-bd);
  box-shadow: var(--shadow-2);
}
/* 渐变文字的统一实现：皮肤给 --grad-text / --grad-hero 即可 */
.nav-logo, .section-label, .phil-order, .curriculum-order, .stage-step,
.future-goal-num, .tuition-amount, .hero-sub-new {
  background: var(--grad-text);
  background-size: var(--grad-text-size);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: var(--grad-brand-anim);
}
/* 品牌渐变填充的统一实现（按钮、徽标、字母块…） */
.nav-cta, .btn-primary, .logo-ai-badge, .aspire-letter, .team-avatar, .versus-vs,
.track-flag, .course-card.featured::after, .curriculum-card.curriculum-highlight::after {
  background-image: var(--grad-brand);
  background-size: var(--grad-brand-size);
  color: var(--text-on-brand);
  -webkit-text-fill-color: var(--text-on-brand);
  animation: var(--grad-brand-anim);
}
@keyframes brand-flow { 0%,100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes ambient-hue { to { filter: hue-rotate(360deg); } }
@keyframes badge-pulse { 0%,100% { box-shadow: var(--glow-idle); } 50% { box-shadow: var(--glow-peak); } }

/* ============================================================
   Nav
   ============================================================ */
.nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  background: var(--bg-nav); backdrop-filter: blur(var(--nav-blur));
  border-bottom: 1px solid var(--border-1);
  padding: 0 24px; height: var(--nav-h);
  display:flex; align-items:center; justify-content:space-between;
}
.nav.scrolled { box-shadow: var(--shadow-nav); }
.nav-logo {
  font-size: 20px; font-weight:800; letter-spacing: 1px;
  display:flex; align-items:center; gap:4px; position:relative; cursor:pointer;
  transition: filter var(--dur-fast);
}
.nav-logo:hover { filter: brightness(1.2); }
.nav-logo::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0; height:2px;
  border-radius:1px; background: var(--grad-brand);
  transform: scaleX(0); transition: transform var(--dur) ease;
}
.nav-logo:hover::after { transform: scaleX(1); }
.logo-ai-badge {
  display:inline-flex; align-items:center; justify-content:center;
  font-size: 15px; font-weight:800; padding: 2px 10px;
  border-radius: var(--radius-s); letter-spacing: .5px; position:relative; top:-1px;
  box-shadow: var(--glow-idle);
  animation: badge-pulse 3s ease-in-out infinite, var(--grad-brand-anim);
}
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-links a {
  position:relative; display:block; padding:9px 12px; border-radius:9px; line-height:1.2;
  color: var(--text-secondary); font-size:14px; font-weight:500;
  letter-spacing:.3px; white-space:nowrap;
  transition: color .22s ease, background-color .22s ease;
}
/* 悬停 / 当前分区：底部从左向右擦出一条品牌线 */
.nav-links a::after {
  content:''; position:absolute; left:12px; right:12px; bottom:5px; height:2px;
  border-radius:1px; background: var(--grad-brand);
  transform: scaleX(0); transform-origin:left center;
  transition: transform .3s var(--ease);
}
.nav-links a:hover { color: var(--text-primary); background: var(--nav-hover-bg); }
.nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); }
.nav-links a.active { color: var(--accent-1); background: var(--nav-active-bg); }
.nav-cta {
  padding: 8px 20px; border-radius: var(--radius-pill); font-size:13px; font-weight:600;
  border:none; cursor:pointer; white-space:nowrap; flex:0 0 auto;
  box-shadow: var(--shadow-cta);
  transition: transform .2s ease, filter .2s ease, box-shadow .25s ease;
}
.nav-cta:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: var(--shadow-cta-hover); }

/* 移动端抽屉 */
.mobile-menu-btn { display:none; background:none; border:none; color:var(--text-primary); font-size:22px; cursor:pointer; }
.nav-links.nav-open {
  display:flex !important;
  position:absolute; top:var(--nav-h); left:0; right:0;
  flex-direction:column; align-items:stretch;
  background: var(--bg-nav-panel); backdrop-filter: blur(var(--nav-blur));
  padding: 12px 20px 16px;
  max-height: calc(100vh - var(--nav-h)); overflow-y:auto;
  border-bottom: 1px solid var(--border-1); gap: 2px;
}
.nav-links.nav-open a { padding:11px 12px; border-radius:var(--radius-s); }
/* 面板里胶囊整行宽，下划线收短为文字下方一小段（left 与面板内边距 12px 对齐） */
.nav-links.nav-open a::after { left:12px; right:auto; width:26px; transform-origin:left center; }

/* ============================================================
   Section
   ============================================================ */
.section { padding: 80px 24px; max-width: var(--max-w); margin: 0 auto; }
.section-label {
  display: inline-block; font-size: 13px; font-weight:600; letter-spacing:2px;
  text-transform:uppercase; margin-bottom:12px;
}
.section-title {
  font-family: var(--font-display); letter-spacing: var(--title-tracking);
  font-size: 36px; font-weight:700; margin-bottom:16px; line-height:1.3;
  color: var(--text-primary);
  /* 皮肤若要给标题加下划线装饰，用 --title-underline-gap 腾出位置 */
  position: relative; padding-bottom: var(--title-underline-gap, 0);
}
.section-desc { color: var(--text-secondary); font-size:16px; max-width:680px; margin-bottom:48px; }

/* ============================================================
   Hero
   ============================================================ */
.hero {
  min-height: 100vh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding: 120px 24px 80px; position:relative; overflow:hidden;
}
.hero::before { content:''; position:absolute; inset:0; background: var(--hero-aura); }
.hero-content { position:relative; z-index:1; max-width:900px; }
.hero h1 {
  font-family: var(--font-display); letter-spacing: var(--title-tracking);
  font-size: clamp(40px, 7vw, 64px); font-weight:800; line-height:1.15; margin-bottom:20px;
  background: var(--grad-hero); background-size: var(--grad-hero-size);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: var(--grad-hero-anim);
}
.hero-badge {
  display: inline-block; padding: 4px 16px; border-radius: var(--radius-pill);
  font-size:13px; font-weight:500; margin-bottom:24px;
  border: 1px solid var(--border-brand); color: var(--accent-1);
}
.hero-sub { font-size: clamp(16px, 2.5vw, 20px); color: var(--text-secondary); margin-bottom:36px; }
.hero-sub-new {
  font-size: clamp(18px, 2.8vw, 24px); font-weight:600; margin-bottom:16px;
}
.hero-philosophy {
  display:flex; align-items:center; justify-content:center; gap:16px;
  max-width:520px; margin:0 auto 40px;
  font-size: clamp(15px, 1.6vw, 17px); font-weight:500; letter-spacing:3px;
  color: var(--text-secondary);
}
.hero-philosophy::before, .hero-philosophy::after {
  content:''; flex:1; min-width:24px; height:1px; background: var(--border-2);
}
.hero-buttons { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   Buttons
   ============================================================ */
.btn-primary {
  padding: 14px 36px; border-radius: var(--radius-pill); font-size:16px; font-weight:600;
  cursor:pointer; border:none;
  transition: transform .2s, box-shadow .2s, filter .2s;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-cta-hover); filter: brightness(1.05); }
.btn-outline {
  padding: 14px 36px; border-radius: var(--radius-pill); font-size:16px; font-weight:600; cursor:pointer;
  background: transparent; color: var(--accent-1); border:1px solid var(--border-brand);
  transition: all .2s;
}
.btn-outline:hover { background: var(--tint-1-bg); border-color: var(--accent-1); }

/* ============================================================
   Track Picker（双轨入口）
   ============================================================ */
.track-intro { max-width:780px; margin:0 auto 28px; color:var(--text-secondary); font-size:15px; line-height:1.8; text-align:center; }
.track-grid { display:grid; grid-template-columns:1fr 1fr; gap: var(--card-gap); }
.track-card { display:block; padding: 32px 28px; color: var(--text-primary); }
.track-card.track-primary { border-color: var(--highlight-bd); background: var(--highlight-bg); }
.track-flag {
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:1px;
  padding:4px 14px; border-radius:14px; margin-bottom:14px;
}
.track-flag.track-flag-soft {
  background-image: none; background: var(--tint-1-bg); color: var(--accent-1);
  -webkit-text-fill-color: var(--accent-1); border:1px solid var(--tint-1-bd);
}
.track-card h3 { font-size:22px; margin-bottom:10px; }
.track-card p { color: var(--text-secondary); font-size:14px; margin-bottom:14px; }
.track-link { color: var(--accent-1); font-size:14px; font-weight:600; }
.audience-lead {
  display:grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  align-items:center; gap:clamp(28px, 5vw, 80px);
  min-height:440px; padding:clamp(30px, 5vw, 68px);
  margin:0 0 68px; border:1px solid var(--highlight-bd);
  border-radius:var(--radius); background:var(--highlight-bg);
}
.audience-lead .section-title { font-size:clamp(31px, 3.4vw, 46px); line-height:1.24; }
.audience-lead-sub {
  color:var(--accent-1); font-size:clamp(19px, 2vw, 25px);
  font-weight:700; line-height:1.5; letter-spacing:.3px;
}
.audience-lead-side { border-left:2px solid var(--highlight-bd); padding-left:28px; }
.audience-lead-side p { color:var(--text-secondary); font-size:15px; line-height:1.85; margin:0 0 14px; }
.audience-lead-side .section-inline-link { margin-top:5px; }
.audience-fit { scroll-margin-top:100px; }
.audience-fit-title { font-size:25px; line-height:1.4; margin-bottom:20px; color:var(--text-primary); }
.audience-fit-note { margin-top:18px; color:var(--text-secondary); font-size:14px; line-height:1.8; }
.audience-fit-note a { display:inline-block; margin-left:8px; color:var(--accent-1); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.audience-reasons-title {
  color:var(--text-primary); font-family:var(--font-display);
  font-size:25px; line-height:1.35; margin-bottom:14px;
}
.audience-note {
  max-width:900px; margin:25px 0 14px; padding:14px 18px;
  border-left:3px solid var(--accent-1); border-radius:var(--radius-s);
  background:var(--tint-1-bg); color:var(--text-secondary);
  font-size:14px; line-height:1.8;
}
.section-inline-link {
  display:inline-block; margin-top:10px;
  color:var(--accent-1); font-size:14px; font-weight:700;
  text-decoration:underline; text-underline-offset:4px;
}

/* ============================================================
   Philosophy（三大差异）
   ============================================================ */
.philosophy-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--card-gap); }
.phil-card { padding: 32px 28px; }
.phil-icon { font-size: 32px; margin-bottom: 16px; }
.phil-order { font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; margin-bottom:8px; }
.phil-card h3 { font-size: 20px; margin-bottom: 10px; }
.phil-card p { color: var(--text-secondary); font-size: 14px; }
/* 差异点内的“传统 vs 深表”对照行 */
.phil-contrast { display:flex; flex-direction:column; gap:10px; margin-top:6px; }
.phil-old, .phil-new { font-size: 13px; line-height: 1.7; padding: 8px 12px; border-radius: var(--radius-s); }
.phil-old { color: var(--text-muted); background: var(--bg-section); border-left: 2px solid var(--border-2); }
.phil-new { color: var(--text-secondary); background: var(--bg-section); border-left: 2px solid var(--accent-1); }
.phil-old strong, .phil-new strong { font-weight: 600; }

/* ============================================================
   ASPIRE 课程
   ============================================================ */
.aspire-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--card-gap); }
.aspire-card { display:flex; gap:18px; align-items:flex-start; padding: 28px 24px; }
.aspire-card.aspire-highlight { border-color: var(--highlight-bd); background: var(--highlight-bg); }
.aspire-letter {
  flex-shrink:0; width:52px; height:52px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-size:28px; font-weight:800;
  box-shadow: var(--glow-idle);
}
.aspire-body h3 { font-size:19px; margin-bottom:4px; }
.aspire-tag { font-size:12px; color: var(--accent-1); font-style:italic; margin-bottom:10px; }
.aspire-body p:not(.aspire-tag) { font-size:14px; color: var(--text-secondary); line-height:1.7; }
/* 英文眉题（AI Engineering & Creation …）。
   必须写在上面那条之后且用 p.aspire-en 形式：两者权重相同，只靠源序赢；
   只写 .aspire-en 会被 .aspire-body p:not(.aspire-tag) 盖掉。
   颜色用 --text-secondary 不用 --text-muted：本仓约定小字在有色底上 muted 读不清（light 皮上只有 2.6:1）。 */
.aspire-body p.aspire-en {
  font-size:11px; letter-spacing:1.1px; text-transform:uppercase;
  color: var(--text-secondary); margin: 0 0 5px; line-height:1.4;
}

/* ============================================================
   学习路径 / 评估
   ============================================================ */
.stage-grid { display:grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap:16px; align-items:stretch; }
.stage-card { padding: 28px 24px; }
.stage-step { font-size:12px; font-weight:600; letter-spacing:1px; margin-bottom:10px; }
.stage-card h3 { font-size:20px; margin-bottom:10px; }
.stage-card p { font-size:14px; color: var(--text-secondary); line-height:1.7; }
.stage-arrow { display:flex; align-items:center; justify-content:center; font-size:26px; color: var(--accent-1); }
.eval-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap:16px; margin-top:24px; }
.eval-card { text-align:center; padding: 24px 18px; }
.eval-icon { font-size:28px; display:block; margin-bottom:8px; }
.eval-card h4 { font-size:16px; margin-bottom:6px; }
.eval-card p { font-size:13px; color: var(--text-secondary); }

/* ============================================================
   发展出口 / 学费
   ============================================================ */
.path-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--card-gap); }
.path-card { padding: 28px 24px; }
.path-card.path-card-core { border-color: var(--highlight-bd); background: var(--highlight-bg); }
.path-tag {
  display:inline-block; font-size:12px; font-weight:600; margin-bottom:12px;
  padding:3px 12px; border-radius:var(--radius-pill);
  background: var(--tint-1-bg); color: var(--accent-1); border:1px solid var(--tint-1-bd);
}
.path-card.path-card-core .path-tag { background-image: var(--grad-brand); color: var(--text-on-brand); border:none; }
.path-card h3 { font-size:20px; margin-bottom:8px; }
.path-node { font-size:13px; color: var(--accent-2); margin-bottom:10px; }
.path-card p { font-size:14px; color: var(--text-secondary); line-height:1.7; }

.tuition-wrap { margin-top:48px; padding: 36px 28px; scroll-margin-top:100px; }
.tuition-title { text-align:center; font-size:22px; font-weight:700; margin-bottom:24px; }
.tuition-grid { display:grid; grid-template-columns:1fr 1fr; gap: var(--card-gap); max-width:640px; margin:0 auto; }
.tuition-card { text-align:center; padding: 28px 20px; background: var(--bg-section); }
.tuition-card.tuition-card-featured { border-color: var(--border-brand-strong); }
.tuition-type { font-size:15px; color: var(--text-secondary); margin-bottom:8px; }
.tuition-amount { font-size:34px; font-weight:800; }
.tuition-amount span { font-size:15px; font-weight:600; }
.tuition-note { font-size:13px; color: var(--text-muted); margin-top:8px; }
.tuition-foot { text-align:center; color: var(--text-secondary); font-size:14px; margin-top:24px; }

.future-cta { text-align:center; margin-top:48px; padding:32px; }
.future-cta-text { font-size:17px; color:var(--text-primary); margin-bottom:6px; }
.future-cta-sub { font-size:13px; color:var(--text-muted); margin-bottom:16px; }

/* ============================================================
   Versus：三年对七年
   ============================================================ */
.versus-grid { display:grid; grid-template-columns: 1fr auto 1fr; gap:20px; align-items:stretch; }
.versus-col { padding: 28px; display:flex; flex-direction:column; }
.versus-old { background: var(--bg-section); border-style:dashed; }
.versus-head { margin-bottom:18px; }
.versus-years { display:block; font-size:22px; font-weight:700; color: var(--text-primary); margin-bottom:8px; }
.versus-cost { display:block; font-size:13px; color: var(--text-muted); }
.versus-list { list-style:none; margin:0 0 20px; padding:0; flex:1; display:flex; flex-direction:column; gap:12px; }
.versus-list li { font-size:14px; line-height:1.8; color: var(--text-secondary); padding-left:18px; position:relative; }
.versus-list li::before {
  content:''; position:absolute; left:0; top:6px; width:7px; height:7px;
  border-radius:50%; background: var(--text-muted);
}
.versus-year { display:block; font-size:12px; font-weight:700; letter-spacing:1px; line-height:1.5; margin-bottom:3px; color: var(--accent-1); }
.versus-score { border-top:1px solid var(--border-1); padding-top:16px; display:flex; flex-direction:column; gap:8px; }
.versus-score p { font-size:14px; line-height:1.7; color: var(--text-secondary); }
.versus-score strong { color: var(--text-primary); }
.versus-vs {
  align-self:center; justify-self:center; width:56px; height:56px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:15px;
}
.versus-extra { margin-top:20px; padding:28px; text-align:center; border-style:dashed; }
.versus-extra-tag { display:inline-block; font-size:13px; font-weight:600; letter-spacing:1px; color: var(--text-muted); margin-bottom:10px; }
.versus-extra-main { font-size:26px; font-weight:800; line-height:1.35; color: var(--text-primary); margin-bottom:12px; }
.versus-extra-sub { font-size:14px; line-height:1.9; color: var(--text-secondary); max-width:760px; margin:0 auto; }
.versus-punch { text-align:center; font-size:19px; line-height:1.75; margin-top:36px; color: var(--text-primary); }
.versus-punch strong { font-size:24px; color: var(--accent-2); }
.versus-cta { display:flex; gap:14px; justify-content:center; margin-top:24px; flex-wrap:wrap; }

/* ============================================================
   AI 短训课程卡
   ============================================================ */
.courses-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--card-gap); }
.course-card { padding: 32px 28px; position:relative; overflow:hidden; }
.course-card.featured { border-color: var(--border-brand); }
.course-card.featured::after {
  content: '推荐'; position:absolute; top:14px; right:14px;
  font-size:11px; padding:2px 10px; border-radius:10px; font-weight:600;
}
.course-tagline { font-size: 14px; color: var(--accent-1); margin-bottom:8px; font-style:italic; }
.course-card h2, .course-card h3 { font-size: 22px; margin-bottom: 8px; }
.course-card .course-sub { font-size: 14px; color: var(--text-secondary); margin-bottom: 20px; }
.course-meta { display:flex; flex-direction:column; gap:6px; }
.course-meta span { font-size: 13px; color: var(--text-muted); }
.course-meta strong { color: var(--text-primary); }

/* ============================================================
   项目库
   ============================================================ */
.project-ladder { display:flex; flex-direction:column; gap:18px; }
.project-tier { padding: 26px 28px; }
.project-tier-head {
  display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap;
  padding-bottom:16px; margin-bottom:16px; border-bottom:1px dashed var(--border-2);
}
.project-tier-no { font-size:26px; font-weight:800; line-height:1.2; letter-spacing:1px; color: var(--text-muted); }
.project-tier-title { flex:1 1 220px; }
.project-tier-title h3 { font-size:20px; margin-bottom:4px; }
.project-tier-note { font-size:13.5px; line-height:1.7; color: var(--text-muted); }
.project-tier-mode {
  align-self:flex-start; margin-left:auto; white-space:nowrap;
  font-size:12px; font-weight:600; letter-spacing:1px; padding:5px 14px; border-radius:14px;
  background: var(--tint-1-bg); border:1px solid var(--tint-1-bd); color: var(--accent-1);
}
.project-items { display:grid; grid-template-columns:repeat(auto-fit, minmax(420px, 1fr)); gap:14px 32px; list-style:none; }
.project-items li { position:relative; padding-left:16px; font-size:13.5px; line-height:1.75; color: var(--text-muted); }
.project-items li::before {
  content:''; position:absolute; left:0; top:9px; width:6px; height:6px;
  border-radius:50%; background: var(--border-brand);
}
.project-items b { display:block; font-size:14.5px; font-weight:600; color: var(--text-primary); }
.project-price {
  display:block; width:-moz-fit-content; width:fit-content; margin-top:6px;
  padding:1px 9px; border-radius:10px; font-size:12px; font-weight:600;
  background: var(--tint-3-bg); color: var(--accent-3);
}
.project-cases { margin-top:22px; padding:26px 28px; }
.project-cases-head { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:18px; }
.project-cases-head h3 { font-size:20px; }
.project-cases-head span { font-size:12px; color: var(--text-muted); }
.project-case-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px; }
.project-case { padding:16px 18px; background: var(--bg-section); border-left:2px solid var(--accent-1); }
.project-case-num { display:block; font-size:22px; font-weight:800; line-height:1.2; margin-bottom:7px; color: var(--accent-2); }
.project-case p { font-size:12.5px; line-height:1.75; color: var(--text-secondary); }
.project-reverse {
  margin-top:16px; padding:14px 18px; border:1px dashed var(--border-2);
  border-radius: var(--radius); font-size:13px; line-height:1.85; color: var(--text-muted);
}
.project-reverse strong { color: var(--text-primary); }
.project-rules { display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:14px; margin-top:22px; }
/* 顶部强调线：骨架只留插槽，皮肤用 --rule-top 填「粗细 + 颜色」（不填则无） */
.project-rule { padding:18px 20px; border-top: var(--rule-top, none); }
.project-rule h4 { font-size:14.5px; margin-bottom:6px; }
.project-rule p { font-size:12.5px; line-height:1.75; color: var(--text-muted); }
.project-foot { margin-top:20px; font-size:13px; line-height:1.9; color: var(--text-muted); }
.project-foot strong { color: var(--text-secondary); }

/* ============================================================
   师资 / 联创团队
   ============================================================ */
.instructor-card { padding: 40px; display:flex; gap:32px; align-items:center; flex-wrap:wrap; }
.instructor-avatar {
  width: 120px; height: 120px; border-radius:50%; object-fit: cover; flex-shrink:0;
  border: 3px solid var(--border-brand); background: var(--bg-section);
}
.instructor-info h3 { font-size: 24px; margin-bottom: 8px; }
.instructor-info .title-line { color: var(--accent-1); font-size: 14px; margin-bottom: 12px; }
.instructor-info .tags, .team-body .tags { display:flex; flex-wrap:wrap; gap:8px; }
.instructor-info .tags span {
  padding: 3px 12px; border-radius:var(--chip-radius); font-size:12px;
  background: var(--tint-2-bg); color: var(--accent-2); border: 1px solid var(--tint-2-bd);
}
.korean-vp-photo { height:auto; width:100%; max-width:380px; border-radius: var(--radius); border:1px solid var(--border-1); margin-top:16px; }
.instructor-extras { display:flex; gap:24px; flex-wrap:wrap; margin-top:20px; align-items:flex-start; }
.advisors { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.advisor-tag {
  padding: 6px 16px; border-radius: var(--chip-radius); font-size:13px;
  background: var(--bg-section); border: 1px solid var(--border-1); color: var(--text-secondary);
}
.team-heading {
  font-size: 20px; font-weight: 700; color: var(--text-primary);
  margin: 44px 0 18px; padding-left: 14px; border-left: 3px solid var(--accent-1);
}
.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 22px; }
/* 单张卡时防止 auto-fit 把它拉伸到整行宽 */
.team-grid-solo { max-width: 560px; }
.team-card { padding: 28px; display:flex; gap: 20px; align-items:flex-start; }
.team-avatar {
  width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0;
  display:flex; align-items:center; justify-content:center;
  font-size: 24px; font-weight: 700;
}
.team-body { flex: 1; min-width: 0; }
.team-body h4 { font-size: 20px; margin-bottom: 6px; color: var(--text-primary); }
.team-role { color: var(--accent-1); font-size: 13px; margin-bottom: 10px; }
.team-bio { font-size: 14px; color: var(--text-secondary); line-height: 1.75; margin-bottom: 14px; }
.team-body .tags span {
  padding: 3px 12px; border-radius: var(--chip-radius); font-size: 12px;
  background: var(--tint-1-bg); color: var(--accent-1); border: 1px solid var(--tint-1-bd);
}

/* ============================================================
   适合谁 / 不适合谁
   ============================================================ */
.fit-grid { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:16px; }
.fit-col { padding: 24px 26px; }
.fit-no { background: var(--bg-section); border-style:dashed; }
.fit-col-head {
  display:inline-block; margin-bottom:16px; padding:4px 14px;
  border-radius:14px; border:1px solid var(--border-1);
  font-size:13px; font-weight:600; letter-spacing:2px; color: var(--text-secondary);
}
.fit-yes .fit-col-head { background: var(--tint-1-bg); border-color: var(--tint-1-bd); color: var(--accent-1); }
.fit-no .fit-col-head { background: var(--tint-neutral-bg); border-color: var(--tint-neutral-bd); }
.fit-list { list-style:none; display:flex; flex-direction:column; gap:11px; }
.fit-list li { position:relative; padding-left:24px; font-size:14px; line-height:1.8; color: var(--text-secondary); }
.fit-list li::before { position:absolute; left:0; top:0; font-size:13px; line-height:1.8; font-weight:700; }
.fit-yes .fit-list li::before { content:'✓'; color: var(--accent-1); }
.fit-no .fit-list li::before { content:'✕'; color: var(--text-muted); }
.fit-stop { margin-top:18px; padding: 26px 28px; }
.fit-stop-head {
  display:flex; align-items:baseline; gap:12px; flex-wrap:wrap;
  padding-bottom:16px; margin-bottom:16px; border-bottom:1px dashed var(--border-2);
}
.fit-stop-head h3 { font-size:17px; }
.fit-stop-head span { margin-left:auto; font-size:12.5px; color: var(--text-muted); }
.fit-stop-lines { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:14px; }
.fit-stop-line { display:flex; flex-direction:column; gap:4px; padding:14px 16px; border-radius: var(--radius-s); background: var(--bg-section); border-left:2px solid var(--tint-1-bd); }
.fit-stop-line em { font-style:normal; font-size:12px; font-weight:600; letter-spacing:1px; color: var(--accent-1); }
.fit-stop-line b { font-size:16px; font-weight:700; color: var(--text-primary); }
.fit-stop-line span { font-size:12.5px; line-height:1.7; color: var(--text-secondary); }
.fit-stop-foot { margin-top:16px; font-size:13px; line-height:1.9; color: var(--text-secondary); }

/* ============================================================
   FAQ
   ============================================================ */
.faq-list { display:flex; flex-direction:column; gap:12px; }
.faq-item { overflow:hidden; }
.faq-q {
  width:100%; border:0; background:none; color:var(--text-primary); text-align:left; font-family:inherit;
  padding: 20px 28px; cursor:pointer; display:flex; justify-content:space-between; align-items:center;
  font-weight:600; font-size:16px; transition: color .2s;
}
.faq-q:hover { color: var(--accent-1); }
.faq-q:focus-visible { outline:2px solid var(--accent-1); outline-offset:-3px; }
.faq-q::after { content:'+'; font-size:20px; color: var(--text-muted); transition: transform .3s; }
.faq-item.open .faq-q::after { content:'\2212'; transform: rotate(180deg); }
.faq-a { max-height:0; overflow:hidden; transition: max-height .3s ease, padding .3s ease; }
.faq-item.open .faq-a { max-height:480px; }
.faq-a p { padding:0 28px 20px; color: var(--text-secondary); font-size:14px; }

/* ============================================================
   合作伙伴 / 联系 / 页脚
   ============================================================ */
.partners-row { display:flex; gap:24px; flex-wrap:wrap; justify-content:center; }
.partner-item { padding: 20px 32px; font-size: 16px; font-weight:600; color: var(--text-secondary); }
.partner-item:hover { border-color: var(--card-hover-bd); }
.contact-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap:24px; }
.contact-card { padding: 32px 28px; text-align:center; }
.contact-card h3, .contact-card h4 { font-size: 18px; margin-bottom: 14px; }
.contact-card p { color: var(--text-secondary); font-size: 14px; }
/* 两张码都不是正方（微信 762×766、视频号 782×748），写死 160×160 会拉伸；contain 保持原比例 */
.qr-img { width: 160px; height: 160px; object-fit: contain; border-radius: var(--radius-s); margin-top: 12px; border: 1px solid var(--border-1); }
.address-highlight {
  display: inline-block; padding: 6px 16px; border-radius: var(--radius-pill);
  background: var(--tint-1-bg); color: var(--accent-1); font-size: 14px; margin-top:8px;
}
.footer {
  padding:32px 24px; text-align:center; border-top:1px solid var(--border-1);
  color: var(--text-muted); font-size:13px;
}

/* ============================================================
   滚动渐入（动效结构，皮肤可覆写 .reveal 的起始态）
   ============================================================ */
.reveal {
  opacity: 0;
  translate: 0 var(--rv-y, 30px);
  filter: var(--rv-f, none);
  transition: var(--trans-all);
}
.reveal.visible { opacity: 1; translate: 0 0; filter: var(--rv-f-visible, none); }

/* ============================================================
   LEGACY：当前 index.html 未使用的历史类，保留兼容
   ============================================================ */
.cta-section { text-align:center; padding:80px 24px; background: var(--cta-aura); }
.cta-section .section-title { font-size: 32px; }
.hero-badge-future {
  padding: 6px 20px; border-radius: var(--radius-pill); font-size:14px; font-weight:600;
  border: 1px solid var(--border-brand-strong); background: var(--highlight-bg);
  color: var(--accent-2); margin-bottom:24px;
}
.wild-learner-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap:16px; margin-top:48px; }
.wl-card { padding: 24px 20px; text-align:center; }
.wl-emoji { font-size: 28px; margin-bottom: 10px; }
.wl-en { font-size: 11px; color: var(--accent-1); text-transform: uppercase; letter-spacing:1px; margin-bottom:4px; }
.wl-title { font-size: 18px; font-weight:700; margin-bottom: 6px; }
.wl-subtitle { font-size: 12px; color: var(--accent-2); margin-bottom: 8px; }
.wl-desc { font-size: 13px; color: var(--text-secondary); line-height:1.6; }
.wl-tagline { font-size: 12px; color: var(--text-muted); margin-top:8px; font-style:italic; }
.wl-section-header { text-align:center; margin-bottom: 24px; }
.wl-section-header h3 { font-size: 24px; margin-bottom: 6px; }
.wl-section-header p { color: var(--text-secondary); font-size: 14px; }
.curriculum-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--card-gap); }
.curriculum-card { padding: 32px 28px; position:relative; }
.curriculum-card.curriculum-highlight { border-color: var(--highlight-bd); background: var(--highlight-bg); }
.curriculum-card.curriculum-highlight::after {
  content: '重头戏'; position:absolute; top:14px; right:14px;
  font-size:11px; padding:2px 10px; border-radius:10px; font-weight:600;
}
.curriculum-icon { font-size: 32px; margin-bottom: 12px; }
.curriculum-order { font-size: 11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; margin-bottom:4px; }
.curriculum-card h3 { font-size: 20px; margin-bottom: 6px; }
.curriculum-tagline { font-size: 13px; color: var(--accent-1); margin-bottom:12px; font-style:italic; }
.curriculum-card p { font-size:14px; color: var(--text-secondary); line-height:1.7; }
.future-status-bar { text-align:center; margin-bottom:32px; }
.future-status-badge {
  display: inline-block; padding: 8px 24px; border-radius: var(--radius-pill);
  font-size:15px; font-weight:600; letter-spacing:1px;
  background: var(--highlight-bg); border: 1px solid var(--highlight-bd); color: var(--accent-2);
}
.future-intro { text-align:center; margin-bottom:48px; }
.future-intro p { font-size:18px; color: var(--text-secondary); margin-bottom:24px; }
.future-goals { display:flex; gap:24px; justify-content:center; flex-wrap:wrap; }
.future-goal { display:flex; align-items:baseline; gap:4px; padding: 20px 32px; }
.future-goal-num { font-size: 36px; font-weight:800; }
.future-goal-unit { font-size:16px; color: var(--accent-1); font-weight:600; margin-right:8px; }
.future-goal-desc { font-size:14px; color: var(--text-secondary); }
.future-philosophy { margin-top:48px; display:flex; gap:20px; flex-wrap:wrap; justify-content:center; }
.fp-item { display:flex; gap:16px; align-items:flex-start; padding: 24px 28px; max-width:480px; flex:1; }
.fp-icon { font-size:28px; flex-shrink:0; margin-top:2px; }
.fp-item strong { display:block; font-size:16px; margin-bottom:4px; color: var(--text-primary); }
.fp-item p { font-size:13px; color: var(--text-secondary); line-height:1.6; margin:0; }
.versus-bottom { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px; }
.versus-worst, .versus-line { padding: 24px; }
.versus-worst-label { font-size:12px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color: var(--accent-3); margin-bottom:10px; }
.versus-worst p, .versus-line-txt { font-size:14px; line-height:1.85; color: var(--text-secondary); }
.versus-line { display:flex; gap:18px; align-items:flex-start; }
.versus-line-num { font-size:30px; font-weight:800; line-height:1.2; color: var(--accent-2); flex-shrink:0; min-width:64px; text-align:center; }

/* ============================================================
   Responsive：断点全部留在骨架层
   ============================================================ */
/* 10 个导航项实测宽度 671px：≥1281 宽松，1281→1081 收紧，≤1080 换汉堡菜单 */
@media (max-width: 1280px) {
  .nav { padding: 0 18px; }
  .nav-links a { padding:9px 9px; font-size:13.5px; letter-spacing:.2px; }
  .nav-links a::after { left:9px; right:9px; }
}
@media (max-width: 1080px) {
  .nav-links { display:none; }
  .nav-links.nav-open { display:flex !important; }
  .mobile-menu-btn { display:block; margin-left:14px; }
  /* 导航项收起后把 CTA 拉回右侧，与汉堡按钮对齐 */
  .nav-cta { margin-left:auto; }
}
@media (max-width: 768px) {
  .section-title { font-size: 28px; }
  .audience-lead { grid-template-columns:1fr; min-height:0; gap:24px; margin-bottom:54px; }
  .audience-lead-side { border-left:0; border-top:2px solid var(--highlight-bd); padding:22px 0 0; }
  .instructor-card { padding:24px; }
  .hero h1 { font-size: 36px; }
  .hero-philosophy { letter-spacing:2px; gap:12px; margin-bottom:32px; }
  .curriculum-grid { grid-template-columns: 1fr; }
  .future-goal { width:100%; justify-content:center; }
  .fp-item { max-width:100%; }
  .track-grid { grid-template-columns: 1fr; }
  .stage-grid { grid-template-columns: 1fr; }
  .stage-arrow { transform: rotate(90deg); padding:4px 0; }
  .tuition-grid { grid-template-columns: 1fr; }
  .versus-grid { grid-template-columns: 1fr; }
  .versus-vs { width:44px; height:44px; font-size:13px; }
  .versus-bottom { grid-template-columns: 1fr; }
  .versus-extra { padding:22px; }
  .versus-extra-main { font-size:20px; }
  .versus-punch { font-size:17px; }
  .versus-line { flex-direction:column; gap:10px; }
  .versus-line-num { text-align:left; }
  .team-card { padding: 22px; gap: 16px; }
  .team-body h4 { font-size: 18px; }
  .project-tier, .project-cases { padding:20px 18px; }
  .project-tier-mode { margin-left:0; }
  .project-items, .project-case-grid, .project-rules { grid-template-columns: 1fr; }
  .fit-grid, .fit-stop-lines { grid-template-columns: 1fr; }
  .fit-col, .fit-stop { padding:20px 18px; }
  .fit-stop-head span { margin-left:0; }
}
@media (max-width: 480px) {
  .hero { padding: 100px 16px 60px; }
  .hero h1 { font-size:clamp(31px, 8vw, 36px); }
  .audience-lead { padding:28px 22px; }
  .audience-lead .section-title { font-size:29px; }
  .audience-reasons-title { font-size:22px; }
  .section { padding: 60px 16px; }
  .btn-primary, .btn-outline { padding: 12px 24px; font-size:14px; }
  .future-goal { padding: 16px 20px; }
  .future-goal-num { font-size:28px; }
  .curriculum-card { padding: 24px 20px; }
  /* 避免 minmax 的最小轨道宽度撑破窄屏（与 .project-items 同理） */
  .courses-grid, .team-grid, .contact-grid, .aspire-grid { grid-template-columns: 1fr; }
  /* flex 子项默认 min-width:auto，长拉丁词会把卡片撑宽；窄屏下放开收缩 */
  .aspire-card { padding:20px 16px; gap:14px; min-width:0; }
  .aspire-body { min-width:0; overflow-wrap:break-word; }
  .team-card { flex-direction: column; align-items: flex-start; }
}

/* 无障碍：尊重系统的减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity:1; translate:none; filter:none; }
  .logo-ai-badge { animation:none; }
  /* 粒子背景靠 JS 驱动，CSS 先藏掉；js 也会自检该媒体条件后直接不启动 */
  #particle-canvas { display:none; }
}
