/* ============================================================
   星使少年学者计划 — 学术期刊 × 前沿实验室
   Palette: warm white / academic navy / collegiate crimson / collegiate gold
   由原 index.html 内联样式迁移而来，视觉保持一致。
   ============================================================ */
:root{
  --paper:#FBFAF7;
  --paper-dim:#F1EEE8;
  --ink:#16243D;
  --ink-soft:rgba(22,36,61,.68);
  --ink-faint:rgba(22,36,61,.15);
  --navy:#16243D;
  --navy-2:#1E3050;
  --crimson:#9B2335;
  --gold:#C8A548;
  --gold-dim:rgba(200,165,72,.55);
  --ease-out:cubic-bezier(.165,.84,.44,1);
  --ease-expo:cubic-bezier(.19,1,.22,1);
  --serif:'Source Serif 4','Noto Serif SC','Songti SC','SimSun',serif;
  --body:'Lexend Deca','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --label:'Lexend Deca','Noto Sans SC','PingFang SC',sans-serif;
  --gutter:4vw;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--ink);color:var(--paper)}
a{color:inherit;text-decoration:none}
img,svg{display:block}
button{font-family:inherit;cursor:pointer}

/* ---------- custom cursor ---------- */
@media (hover:hover) and (pointer:fine){
  body{cursor:none}
  a,button,input,select,textarea,summary,[data-hover]{cursor:none}
}
.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;pointer-events:none;z-index:9999;
  border-radius:50%;transform:translate(-50%,-50%);
  mix-blend-mode:normal;
}
.cursor-dot{width:8px;height:8px;background:var(--ink)}
.cursor-ring{
  width:40px;height:40px;border:1px solid var(--ink);
  transition:width .3s var(--ease-out),height .3s var(--ease-out),background .3s,border-color .3s;
}
.cursor-ring.is-hover{width:64px;height:64px;background:rgba(22,36,61,.06)}
body.on-dark .cursor-dot{background:var(--gold)}
body.on-dark .cursor-ring{border-color:var(--gold-dim)}
body.on-dark .cursor-ring.is-hover{background:rgba(200,165,72,.08)}
@media (hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}

/* ---------- page frame ---------- */
.frame{
  border-left:1px solid var(--ink-faint);
  border-right:1px solid var(--ink-faint);
  max-width:1600px;margin:0 auto;position:relative;
}
.rule-top{border-top:1px solid var(--ink-faint)}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .4s var(--ease-out),backdrop-filter .4s;
}
.site-header.is-scrolled{
  background:rgba(251,250,247,.82);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.header-inner{
  max-width:1600px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 var(--gutter);height:76px;
  border-bottom:1px solid var(--ink-faint);
}
.brand{display:flex;align-items:baseline;gap:14px}
.brand-mark{
  font-family:var(--serif);font-weight:700;font-size:22px;letter-spacing:.02em;
  display:flex;align-items:center;gap:10px;
}
.brand-mark .star{
  width:12px;height:12px;background:var(--ink);
  clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);
  animation:spinStar 9s linear infinite;
}
@keyframes spinStar{to{transform:rotate(360deg)}}
.brand-en{font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.17em;color:var(--ink-soft)}
.site-nav{display:flex;gap:38px}
.site-nav a{
  font-family:var(--label);font-weight:500;font-size:12px;letter-spacing:.1em;
  position:relative;padding:6px 0;color:var(--ink-soft);
  transition:color .3s;
}
.site-nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--ink);transition:width .4s var(--ease-out);
}
.site-nav a:hover{color:var(--ink)}
.site-nav a:hover::after{width:100%}
.site-nav a .rn{color:var(--ink);opacity:.45;margin-right:6px;font-size:10px}
.header-cta{
  font-family:var(--label);font-weight:500;font-size:12px;letter-spacing:.11em;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  padding:12px 26px;transition:background .3s,color .3s;
}
.header-cta:hover{background:transparent;color:var(--ink)}
.menu-toggle{display:none;background:none;border:none;width:40px;height:40px;position:relative}
.menu-toggle span{
  position:absolute;left:8px;right:8px;height:1.5px;background:var(--ink);
  transition:transform .3s var(--ease-out),top .3s;
}
.menu-toggle span:nth-child(1){top:14px}
.menu-toggle span:nth-child(2){top:20px}
.menu-toggle span:nth-child(3){top:26px}
.menu-toggle.open span:nth-child(1){top:20px;transform:rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){top:20px;transform:rotate(-45deg)}

/* ---------- hero ---------- */
.hero{
  min-height:100vh;position:relative;
  display:grid;grid-template-columns:1.15fr .85fr;
  padding:150px var(--gutter) 0;
  gap:60px;align-items:stretch;
}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding-bottom:80px}
.eyebrow{
  font-family:var(--label);font-weight:500;font-size:12px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-soft);
  display:flex;align-items:center;gap:14px;margin-bottom:34px;
}
.eyebrow::before{content:"";width:44px;height:1px;background:var(--ink)}
.hero h1{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(44px,6.2vw,96px);
  line-height:1.08;letter-spacing:-.01em;
}
.hero h1 .en{
  display:block;font-style:italic;font-weight:400;
  font-size:.42em;letter-spacing:.01em;color:var(--ink-soft);
  margin-top:18px;font-family:var(--serif);
}
.hero h1 em{
  font-style:normal;position:relative;white-space:nowrap;
}
.hero h1 em::after{
  content:"";position:absolute;left:-2%;bottom:.08em;width:104%;height:.28em;
  background:var(--gold);z-index:-1;opacity:.75;
  transform:scaleX(0);transform-origin:left;
  transition:transform 1.1s var(--ease-expo) .9s;
}
.hero.in-view h1 em::after{transform:scaleX(1)}
.hero-sub{
  max-width:520px;margin-top:36px;font-size:19px;color:var(--ink-soft);
}
.hero-sub strong{color:var(--ink);font-weight:600}
.hero-actions{display:flex;align-items:center;gap:34px;margin-top:48px;flex-wrap:wrap}
.btn-solid{
  font-family:var(--label);font-weight:500;font-size:13px;letter-spacing:.12em;
  background:var(--ink);color:var(--paper);border:1px solid var(--ink);
  padding:18px 40px;position:relative;overflow:hidden;
  transition:color .35s var(--ease-out);
}
.btn-solid::before{
  content:"";position:absolute;inset:0;background:var(--crimson);
  transform:translateY(101%);transition:transform .45s var(--ease-expo);
}
.btn-solid span{position:relative;z-index:1}
.btn-solid:hover::before{transform:translateY(0)}
.btn-arrow{
  font-family:var(--label);font-weight:500;font-size:13px;letter-spacing:.11em;
  display:inline-flex;align-items:center;gap:12px;color:var(--ink);
}
.btn-arrow .arr{
  display:inline-block;transition:transform .35s var(--ease-out);
}
.btn-arrow:hover .arr{transform:translateX(8px)}

/* hero visual — framed lab instrument panel */
.hero-visual{
  position:relative;margin-bottom:0;
  border-left:1px solid var(--ink-faint);
  padding-left:60px;padding-bottom:60px;
  display:flex;flex-direction:column;justify-content:flex-end;
}
.instrument{
  position:relative;flex:1;min-height:480px;
  border:1px solid var(--ink);
  /* 夜空：顶部最深，接近下缘有一层大气辉光 */
  background:
    radial-gradient(ellipse at 50% 16%,rgba(200,165,72,.10),transparent 46%),
    radial-gradient(ellipse at 50% 108%,rgba(72,104,150,.38),transparent 62%),
    linear-gradient(180deg,#0E1729 0%,#16243D 58%,#1C2E4C 100%);
  overflow:hidden;
}
.sky-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 38%;
}
/* CC BY 4.0 的署名要求：清晰、可见、不与图片分离 */
.sky-credit{
  position:absolute;left:14px;right:14px;bottom:11px;z-index:2;
  font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.05em;
  color:rgba(251,250,247,.74);text-shadow:0 1px 4px rgba(0,0,0,.8);
}
/* 极缓推移：一去一回，--sky-drift 是单程时长，整轮是它的两倍 */
@keyframes skyDrift{
  from{transform:scale(1.02) translate(0,0)}
  to  {transform:scale(1.16) translate(-1.5%,2.5%)}
}
.sky-photo{
  animation:skyDrift var(--sky-drift,16s) ease-in-out infinite alternate;
  transform-origin:52% 34%;will-change:transform;
}
@media (prefers-reduced-motion:reduce){.sky-photo{animation:none}}
/* 视频压在首帧图之上，播起来再淡入，避免加载期闪一下 */
.sky-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 38%;
  opacity:0;transition:opacity .9s var(--ease-out);
}
.sky-video.is-on{opacity:1}
/* 视频接管后底图不必再推移，否则淡入那 0.9 秒两层各动各的 */
.instrument.has-video .sky-photo{animation:none}
.corner-tick{position:absolute;width:14px;height:14px;z-index:2}
.corner-tick::before,.corner-tick::after{content:"";position:absolute;background:var(--gold)}
.corner-tick::before{width:14px;height:1px}
.corner-tick::after{width:1px;height:14px}
.ct-tl{top:-7px;left:-7px}.ct-tr{top:-7px;right:-7px;transform:scaleX(-1)}
.ct-bl{bottom:-7px;left:-7px;transform:scaleY(-1)}.ct-br{bottom:-7px;right:-7px;transform:scale(-1)}
/* ---------- I. why ---------- */
.hero-stats{
  grid-column:1/-1;
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--ink);
}
.stat{
  padding:30px 34px 38px;border-right:1px solid var(--ink-faint);
  position:relative;
}
.stat:last-child{border-right:none}
.stat .num{
  font-family:var(--serif);font-weight:600;font-size:clamp(38px,3.4vw,56px);line-height:1;
  display:flex;align-items:baseline;gap:4px;
}
.stat .num .suffix{font-size:.45em;color:var(--crimson);font-family:var(--label);font-weight:700}
.stat .lbl{font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.13em;color:var(--ink-soft);margin-top:12px}

/* ---------- marquee ---------- */
.marquee{
  background:var(--navy);color:var(--paper);
  overflow:hidden;padding:20px 0;position:relative;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
}
.marquee-track{
  display:flex;width:max-content;
  animation:marquee 28s linear infinite;
}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{
  font-family:var(--label);font-weight:500;font-size:14px;letter-spacing:.16em;
  white-space:nowrap;padding:0 28px;display:flex;align-items:center;gap:28px;
}
.marquee-track .dia{color:var(--gold);font-size:10px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- section scaffolding ---------- */
.section{padding:120px var(--gutter);position:relative}
.sec-head{
  display:grid;grid-template-columns:220px 1fr;gap:40px;
  margin-bottom:80px;align-items:start;
}
.sec-rn{
  font-family:var(--label);font-weight:500;font-size:12px;letter-spacing:.15em;color:var(--ink-soft);
  border-top:1px solid var(--ink);padding-top:16px;
}
.sec-rn b{display:block;font-family:var(--serif);font-size:44px;font-weight:500;color:var(--ink);letter-spacing:0;margin-top:8px;line-height:1}
.sec-title{
  font-family:var(--serif);font-weight:600;
  font-size:clamp(34px,4.2vw,62px);line-height:1.15;letter-spacing:-.01em;
  max-width:820px;
}
.sec-title .accent{color:var(--crimson)}
.sec-kicker{
  font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:20px;display:block;
}
.sec-desc{max-width:560px;margin-top:24px;color:var(--ink-soft);font-size:18px}

/* reveal choreography */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}
.reveal-d3{transition-delay:.24s}.reveal-d4{transition-delay:.32s}
.reveal-d5{transition-delay:.4s}.reveal-d6{transition-delay:.48s}

/* ---------- I. why research ---------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.why-item{
  padding:44px 38px 54px;border-right:1px solid var(--ink-faint);
  position:relative;transition:background .4s var(--ease-out);
}
.why-item:last-child{border-right:none}
.why-item:hover{background:var(--paper-dim)}
.why-item .idx{
  font-family:var(--serif);font-size:60px;font-weight:400;line-height:1;
  color:transparent;-webkit-text-stroke:1px var(--ink);
  transition:color .4s;
}
.why-item:hover .idx{color:var(--crimson);-webkit-text-stroke:1px var(--crimson)}
.why-item h3{font-family:var(--serif);font-size:24px;font-weight:600;margin:26px 0 14px;line-height:1.3}
.why-item p{color:var(--ink-soft);font-size:16px}
.why-note{
  margin-top:70px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
  border:1px solid var(--ink);padding:56px;
  background:linear-gradient(120deg,var(--paper) 60%,var(--paper-dim));
  position:relative;
}
.why-note::before{
  content:attr(data-kicker);position:absolute;top:-11px;left:40px;
  background:var(--ink);color:var(--paper);
  font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.16em;padding:5px 14px;
}
.why-note blockquote{
  font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);line-height:1.5;font-weight:500;
}
.why-note blockquote .hl{background:linear-gradient(transparent 62%,rgba(200,165,72,.6) 62%)}
.why-note .note-body{color:var(--ink-soft);font-size:16px}
.why-note .note-body p+p{margin-top:14px}

/* ---------- II. mentors ---------- */
.mentor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--ink)}
.mentor{
  border-right:1px solid var(--ink);padding:36px 30px 42px;position:relative;
  background:var(--paper);transition:background .4s var(--ease-out);
  overflow:hidden;
}
.mentor:last-child{border-right:none}
.mentor:hover{background:var(--navy);color:var(--paper)}
.mentor:hover .mentor-field,.mentor:hover .mentor-bio{color:rgba(251,250,247,.65)}
.mentor:hover .mentor-motif{opacity:.9;transform:translate(0,0) scale(1)}
.mentor-motif{
  position:absolute;top:-30px;right:-30px;width:130px;height:130px;opacity:.5;
  transition:transform .6s var(--ease-expo),opacity .4s;
  transform:translate(6px,-6px) scale(.94);
}
/* 导师照片（后台媒体配置：mentor.image 有值时替换默认 SVG 图案） */
.mentor-photo{
  position:absolute;top:-30px;right:-30px;width:130px;height:130px;
  object-fit:cover;opacity:.5;
  transition:transform .6s var(--ease-expo),opacity .4s;
  transform:translate(6px,-6px) scale(.94);
}
.mentor:hover .mentor-photo{opacity:.9;transform:translate(0,0) scale(1)}
.mentor-uni{
  font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.15em;
  display:inline-block;border:1px solid currentColor;padding:5px 12px;margin-bottom:52px;
}
.mentor-name{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1.2}
.mentor-role{font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.1em;margin-top:8px;opacity:.75}
.mentor-field{font-size:15px;color:var(--ink-soft);margin-top:22px;transition:color .4s}
.mentor-bio{font-size:14px;color:var(--ink-soft);margin-top:12px;line-height:1.7;transition:color .4s}
.mentor-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.mentor-tags i{
  font-style:normal;font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.08em;
  border:1px solid currentColor;opacity:.6;padding:3px 9px;
}
.mentor-strip{
  margin-top:60px;display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:20px;
}
.mentor-strip .mono-note{font-family:var(--label);font-weight:500;font-size:12px;letter-spacing:.13em;color:var(--ink-soft)}

/* ---------- III. topics bento ---------- */
.topics{background:var(--navy);color:var(--paper)}
.topics .sec-rn{border-color:var(--gold);color:rgba(251,250,247,.55)}
.topics .sec-rn b{color:var(--paper)}
.topics .sec-kicker{color:var(--gold)}
.topics .sec-desc{color:rgba(251,250,247,.6)}
.bento{
  display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:215px;gap:18px;
}
.bento-tile{position:relative;overflow:hidden;border:1px solid rgba(251,250,247,.16)}
.tile-text{
  background:var(--navy-2);padding:34px 32px;display:flex;flex-direction:column;
  transition:border-color .4s;
}
.tile-text:hover{border-color:var(--gold)}
.tile-text .t-num{
  font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.13em;color:var(--gold);
}
.tile-text h3{
  font-family:var(--serif);font-size:clamp(21px,1.8vw,27px);font-weight:600;
  margin:14px 0 10px;line-height:1.3;
}
.tile-text p{font-size:14.5px;color:rgba(251,250,247,.58);line-height:1.7;flex:1}
.tile-text .t-meta{
  display:flex;justify-content:space-between;align-items:center;margin-top:18px;
  font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.11em;color:rgba(251,250,247,.45);
}
.tile-text .t-meta .go{
  width:34px;height:34px;border:1px solid rgba(251,250,247,.35);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--paper);
  transition:background .35s,transform .35s var(--ease-out);
}
.tile-text:hover .t-meta .go{background:var(--gold);color:var(--navy);transform:rotate(45deg)}
.tile-pattern{display:flex;align-items:center;justify-content:center}
.tile-pattern svg{width:100%;height:100%}
.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}
.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-3{grid-column:span 3}
.row-2{grid-row:span 2}
.topics-foot{
  margin-top:60px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  font-family:var(--label);font-weight:500;font-size:12px;letter-spacing:.12em;color:rgba(251,250,247,.5);
}

/* ---------- IV. journey (dark lab) ---------- */
.journey{background:var(--navy);color:var(--paper);position:relative;overflow:hidden}
.journey canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.journey .section{position:relative;z-index:2}
.journey .sec-rn{border-color:var(--gold);color:rgba(251,250,247,.55)}
.journey .sec-rn b{color:var(--paper)}
.journey .sec-kicker{color:var(--gold)}
.journey .sec-desc{color:rgba(251,250,247,.6)}
.timeline{margin-top:20px;position:relative}
.timeline::before{
  content:"";position:absolute;left:0;right:0;top:23px;height:1px;
  background:rgba(251,250,247,.18);
}
.timeline-line{
  position:absolute;left:0;top:23px;height:1px;background:var(--gold);width:0;
  transition:width 2.2s var(--ease-expo) .3s;
}
.timeline.in .timeline-line{width:100%}
.t-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:34px}
.t-step{position:relative;padding-top:66px}
.t-step .node{
  position:absolute;top:14px;left:0;width:19px;height:19px;border-radius:50%;
  border:1px solid var(--gold);background:var(--navy);
  transition:background .4s,box-shadow .4s;
}
.t-step:hover .node{background:var(--gold);box-shadow:0 0 22px var(--gold-dim)}
.t-step .t-stage{
  font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.16em;color:var(--gold);
}
.t-step h3{font-family:var(--serif);font-size:23px;font-weight:600;margin:14px 0 10px;line-height:1.3}
.t-step p{font-size:14.5px;color:rgba(251,250,247,.58);line-height:1.7}
.t-step .t-dur{
  display:inline-block;margin-top:16px;font-family:var(--label);font-weight:500;font-size:10px;
  letter-spacing:.11em;border:1px solid rgba(251,250,247,.3);padding:4px 12px;
  color:rgba(251,250,247,.6);
}
.t-step:nth-child(1){transition-delay:.1s}.t-step:nth-child(2){transition-delay:.35s}
.t-step:nth-child(3){transition-delay:.6s}.t-step:nth-child(4){transition-delay:.85s}
.t-step:nth-child(5){transition-delay:1.1s}

/* ---------- V. 科研自动化工作流 ---------- */
.wflow-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px}
.wflow-card{
  background:var(--paper);border:1px solid var(--ink);padding:14px 14px 30px;
  position:relative;
  transition:box-shadow .4s var(--ease-out),transform .4s var(--ease-out);
}
.wflow-card:hover{box-shadow:10px 10px 0 var(--ink);transform:translate(-4px,-4px)}
.wflow-video{
  position:relative;background:var(--navy);aspect-ratio:16/9;overflow:hidden;
  border:1px solid var(--ink);
}
.wflow-video video{width:100%;height:100%;object-fit:contain;background:#000}
/* 原生全屏时自定义光标在全屏层之下不可见，需恢复系统光标以免“找不到鼠标” */
.wflow-video video:fullscreen,
.wflow-video video:-webkit-full-screen{cursor:auto!important}
.wflow-empty{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:16px;
  font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.14em;color:var(--gold-dim);
}
.wflow-empty::before{
  content:attr(data-badge);position:absolute;top:14px;left:16px;
  font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.13em;color:var(--gold-dim);
}
.wflow-play{
  width:64px;height:64px;border:1px solid var(--gold-dim);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;color:var(--gold);padding-left:5px;
  transition:background .3s var(--ease-out),border-color .3s,color .3s;
}
.wflow-card:hover .wflow-play{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.wflow-card h3{font-family:var(--serif);font-size:22px;font-weight:600;margin:22px 16px 8px}
.wflow-card p{font-size:14.5px;color:var(--ink-soft);margin:0 16px;line-height:1.7}

/* ---------- VI. apply ---------- */
.apply{background:var(--paper-dim)}
.apply-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.apply-steps{counter-reset:step}
.a-step{
  display:grid;grid-template-columns:70px 1fr;gap:26px;padding:30px 0;
  border-bottom:1px solid var(--ink-faint);
}
.a-step .a-no{
  font-family:var(--serif);font-size:34px;font-weight:500;color:transparent;
  -webkit-text-stroke:1px var(--ink);line-height:1.1;
}
.a-step h4{font-family:var(--serif);font-size:20px;font-weight:600;margin-bottom:8px}
.a-step p{font-size:15px;color:var(--ink-soft)}
/* wechat 咨询群卡片 */
.apply-wechat{
  background:var(--paper);border:1px solid var(--ink);padding:52px 48px;
  position:relative;box-shadow:10px 10px 0 var(--ink);text-align:center;
}
.apply-wechat::before{
  content:attr(data-badge);position:absolute;top:-11px;right:40px;
  background:var(--crimson);color:var(--paper);
  font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.16em;padding:5px 14px;
}
.apply-wechat h3{font-family:var(--serif);font-size:28px;font-weight:600;margin-bottom:20px}
.wechat-name{
  display:inline-block;font-family:var(--serif);font-size:19px;font-weight:600;
  border:1px solid var(--ink);padding:8px 22px;margin-bottom:28px;
}
.wechat-qr{
  background:#fff;border:1px solid var(--ink);padding:16px;
  width:min(260px,100%);margin:0 auto 26px;
  display:flex;align-items:center;justify-content:center;
}
.wechat-qr img{width:100%;height:auto;display:block}
.wechat-qr-empty{font-family:var(--label);font-weight:500;font-size:11px;letter-spacing:.09em;color:var(--ink-soft);line-height:1.9;padding:36px 10px}
.wechat-hint{font-size:14.5px;color:var(--ink-soft);margin-bottom:10px}
.wechat-note{font-family:var(--label);font-weight:500;font-size:10px;letter-spacing:.08em;color:var(--ink-soft)}

/* faq */
.faq{margin-top:100px;border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--ink-faint)}
.faq summary{
  list-style:none;display:flex;justify-content:space-between;align-items:center;
  padding:26px 4px;font-family:var(--serif);font-size:20px;font-weight:500;
  transition:color .3s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary .plus{
  font-family:var(--label);font-weight:500;font-size:18px;color:var(--crimson);
  transition:transform .4s var(--ease-out);
}
.faq details[open] .plus{transform:rotate(45deg)}
.faq summary:hover{color:var(--crimson)}
.faq .faq-body{padding:0 4px 30px;color:var(--ink-soft);font-size:16px;max-width:760px}

/* ---------- footer ---------- */
.site-footer{background:var(--navy);color:var(--paper);padding:90px var(--gutter) 40px}
.footer-grid{
  max-width:1600px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:60px;
  padding-bottom:70px;border-bottom:1px solid rgba(251,250,247,.14);
}
.footer-brand .fb-mark{font-family:var(--serif);font-size:30px;font-weight:600}
.footer-brand p{color:rgba(251,250,247,.5);font-size:14.5px;margin-top:18px;max-width:300px}
.f-col h5{
  font-family:var(--label);font-size:10.5px;letter-spacing:.17em;color:var(--gold);
  margin-bottom:24px;font-weight:400;
}
.f-col a{display:block;color:rgba(251,250,247,.65);font-size:15px;padding:7px 0;transition:color .3s,padding-left .3s}
.f-col a:hover{color:var(--paper);padding-left:8px}
.footer-bottom{
  max-width:1600px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;
  padding-top:34px;font-family:var(--label);font-weight:500;font-size:10.5px;letter-spacing:.12em;
  color:rgba(251,250,247,.4);flex-wrap:wrap;gap:14px;
}
.footer-word{
  max-width:1600px;margin:60px auto 0;font-family:var(--serif);font-weight:700;
  font-size:clamp(60px,10vw,170px);line-height:.95;letter-spacing:.01em;
  color:transparent;-webkit-text-stroke:1px rgba(251,250,247,.28);
  user-select:none;white-space:nowrap;overflow:hidden;text-align:center;
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .hero{grid-template-columns:1fr;padding-top:130px}
  .hero-visual{border-left:none;padding-left:0}
  .instrument{min-height:380px}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:none}
  .stat{border-bottom:1px solid var(--ink-faint)}
  .stat:nth-last-child(-n+2){border-bottom:none}
  .mentor-grid{grid-template-columns:repeat(2,1fr)}
  .mentor:nth-child(2){border-right:none}
  .mentor:nth-child(-n+2){border-bottom:1px solid var(--ink)}
  .wflow-grid,.apply-grid,.why-note{grid-template-columns:1fr}
  .bento{grid-auto-rows:minmax(150px,auto)}
  .span-3,.span-4,.span-5{grid-column:span 6}
  .span-6,.span-7,.span-8{grid-column:span 12}
  .t-steps{grid-template-columns:repeat(2,1fr);gap:44px}
  .timeline::before,.timeline-line{display:none}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:980px){
  .site-nav{
    position:fixed;inset:76px 0 auto 0;background:var(--paper);
    flex-direction:column;gap:0;border-bottom:1px solid var(--ink);
    transform:translateY(-120%);transition:transform .5s var(--ease-expo);
    padding:20px var(--gutter) 34px;
  }
  .site-nav.open{transform:translateY(0)}
  .site-nav a{font-size:15px;padding:16px 0;border-bottom:1px solid var(--ink-faint)}
  .menu-toggle{display:block}
  .header-cta{display:none}
  .section{padding:100px var(--gutter)}
  .sec-head{margin-bottom:64px}
}
@media (max-width:720px){
  .section{padding:80px var(--gutter)}
  .sec-head{grid-template-columns:1fr;gap:24px;margin-bottom:56px}
  .hero{padding-top:122px}
  .hero h1{font-size:clamp(38px,11vw,54px)}
  .why-grid{grid-template-columns:1fr}
  .why-item{border-right:none;border-bottom:1px solid var(--ink-faint)}
  .why-item:last-child{border-bottom:none}
  .why-note{padding:40px 28px}
  .mentor-grid{grid-template-columns:1fr}
  .mentor{border-right:none;border-bottom:1px solid var(--ink)}
  .mentor:last-child{border-bottom:none}
  .bento{grid-template-columns:1fr}
  .span-3,.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 1}
  .tile-pattern{min-height:170px}
  .t-steps{grid-template-columns:1fr}
  .sec-rn b{font-size:38px}
  .apply-grid{gap:56px}
  .apply-wechat{padding:40px 26px;box-shadow:6px 6px 0 var(--ink)}
  .footer-grid{grid-template-columns:1fr;gap:40px}
  .footer-word{font-size:clamp(34px,11.5vw,110px)}
}

/* ---------- responsive: 手机（<480）---------- */
@media (max-width:480px){
  .hero{padding-top:108px}
  .hero h1{font-size:clamp(36px,11.5vw,50px)}
  .hero-sub{margin-top:24px;font-size:17px}
  .hero-actions{margin-top:32px;gap:20px}
  .btn-solid{padding:16px 28px}
  .eyebrow{font-size:11px;letter-spacing:.14em;margin-bottom:24px}
  .stat{padding:22px 14px 28px}
  .stat .num{font-size:clamp(30px,10vw,44px)}
  .stat .lbl{font-size:10px;letter-spacing:.09em;margin-top:10px}
  .instrument{min-height:300px}
  .section{padding:64px var(--gutter)}
  .sec-head{gap:18px;margin-bottom:40px}
  .sec-rn b{font-size:36px}
  .sec-title{font-size:clamp(28px,8.6vw,40px)}
  .sec-kicker{font-size:10px;margin-bottom:16px}
  .sec-desc{font-size:16px;margin-top:18px}
  .why-item{padding:34px 22px 44px}
  .why-note{padding:34px 20px}
  .why-note blockquote{font-size:20px;line-height:1.55}
  .why-note .note-body{font-size:15px}
  .mentor{padding:30px 22px 36px}
  .mentor-name{font-size:23px}
  .tile-text{padding:26px 22px}
  .tile-text h3{font-size:22px}
  .wflow-grid{gap:34px}
  .wflow-card h3{font-size:20px}
  .t-step{padding-top:54px}
  .t-step h3{font-size:21px}
  .a-step{grid-template-columns:52px 1fr;gap:16px;padding:22px 0}
  .a-no{font-size:28px}
  .a-step h4{font-size:18px}
  .a-step p,.wechat-hint,.faq .faq-body{font-size:15px}
  .apply-grid{gap:40px}
  .apply-wechat{padding:34px 18px;box-shadow:4px 4px 0 var(--ink)}
  .apply-wechat h3{font-size:24px;margin-bottom:16px}
  .wechat-name{font-size:16px;padding:7px 14px;margin-bottom:22px}
  .faq{margin-top:56px}
  .faq summary{font-size:17.5px;padding:20px 2px}
  .site-footer{padding:64px var(--gutter) 30px}
  .footer-grid{padding-bottom:48px;gap:34px}
  .footer-brand .fb-mark{font-size:26px}
  .footer-word{margin:36px auto 0}
}
