/* =============================================================
   velu.cc 首页 · 腾讯级设计语言 (velu-home.css)
   学 tencent.com: 浅色超大标题 hero + fadeUp + 三大 reveal 分栏 + 圆角卡
   配色: 保留青草绿; 中性芯片替代彩虹渐变
   复用 site.js 的 .rv 滚动进场 (IntersectionObserver -> .in)
   ============================================================= */
:root{
  --vh-brand:#3ba55d;
  --vh-brand-d:#1f6b3a;
  --vh-ink:#0b1b33;
  --vh-ink2:#46586f;
  --vh-ink3:#7b8ba1;
  --vh-bg:#ffffff;
  --vh-soft:#f4f7fb;
  --vh-line:#e5eaf2;
  --vh-sh-2:0 2px 6px rgba(11,27,51,.06), 12px 12px 50px rgba(11,27,51,.14);
  --vh-r:18px;
  --vh-max:100%; /* 不限制内容宽度: 随视口铺满, 仅靠两侧 padding 留白 */
}

/* ---------- hero (浅色 fadeUp) ---------- */
.vh-hero{position:relative;padding:88px 0 44px;overflow:hidden;background:
  radial-gradient(900px 520px at 80% 6%, rgba(59,165,93,.10), transparent 60%),
  radial-gradient(700px 520px at 10% 94%, rgba(95,191,122,.09), transparent 55%),
  var(--vh-bg);}
.vh-hero::before{content:"";position:absolute;inset:0;background-image:
  linear-gradient(rgba(11,27,51,.025) 1px,transparent 1px),
  linear-gradient(90deg,rgba(11,27,51,.025) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(720px 520px at 72% 18%,#000,transparent 75%);
  mask-image:radial-gradient(720px 520px at 72% 18%,#000,transparent 75%);pointer-events:none;}
.vh-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;
  align-items:center;max-width:var(--vh-max);margin:0 auto;padding:0 24px;}
.vh-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;
  background:rgba(59,165,93,.09);color:var(--vh-brand-d);font-size:13px;font-weight:600;
  border:1px solid rgba(59,165,93,.20);}
.vh-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--vh-brand);
  box-shadow:0 0 0 4px rgba(59,165,93,.18);}
.vh-h1{margin:20px 0 0;font-size:54px;line-height:1.12;font-weight:700;letter-spacing:-.02em;color:var(--vh-ink);}
.vh-h1 em{font-style:normal;color:var(--vh-brand);position:relative;}
.vh-h1 em::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:10px;z-index:-1;
  background:rgba(59,165,93,.16);border-radius:4px;}
.vh-lead{margin:20px 0 0;max-width:560px;font-size:18px;line-height:1.8;color:var(--vh-ink2);}
.vh-lead strong{color:var(--vh-ink);font-weight:700;}
.vh-cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.vh-stats{display:flex;gap:38px;margin-top:40px;flex-wrap:wrap;}
.vh-stats b{display:block;font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--vh-ink);line-height:1;}
.vh-stats span{font-size:13px;color:var(--vh-ink3);margin-top:6px;display:block;}
/* right visual orb */
.vh-orb{position:relative;aspect-ratio:1/.92;border-radius:28px;overflow:hidden;
  background:linear-gradient(150deg,#0f2a1c 0%,#1f6b3a 46%,#3ba55d 100%);
  box-shadow:var(--vh-sh-2);}
.vh-orb::before{content:"";position:absolute;inset:0;background:
  radial-gradient(360px 360px at 72% 22%, rgba(255,255,255,.20), transparent 58%),
  radial-gradient(300px 300px at 22% 84%, rgba(95,191,122,.40), transparent 60%);}
.vh-orb .ring{position:absolute;width:120%;height:120%;left:-10%;top:-14%;border-radius:50%;border:1px solid rgba(255,255,255,.14);}
.vh-orb .ring.r2{width:84%;height:84%;left:8%;top:8%;border-color:rgba(255,255,255,.10);}
.vh-orb .lab{position:absolute;left:26px;top:24px;color:rgba(255,255,255,.92);font-weight:700;font-size:15px;letter-spacing:.04em;}
.vh-orb .lab small{display:block;font-weight:500;font-size:12px;opacity:.72;margin-top:3px;letter-spacing:0;}
.vh-chip{position:absolute;background:rgba(255,255,255,.95);border-radius:14px;padding:11px 14px;
  display:flex;align-items:center;gap:10px;box-shadow:0 14px 34px rgba(0,0,0,.22);}
.vh-chip .g{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:15px;
  background:rgba(59,165,93,.14);color:var(--vh-brand-d);flex:none;}
.vh-chip .n{font-size:13px;font-weight:700;color:var(--vh-ink);line-height:1.2;}
.vh-chip .d{font-size:11px;color:var(--vh-ink3);margin-top:1px;}
.vh-chip.c1{right:22px;top:30%;transform:translateY(-50%);}
.vh-chip.c2{left:-20px;bottom:15%;}
/* fadeUp entrance (loads once, keyframes) */
.vh-hero .fu{opacity:0;transform:translateY(26px);animation:vh-fu .8s cubic-bezier(.2,.7,.2,1) forwards;}
.vh-hero .fu.d1{animation-delay:.05s}
.vh-hero .fu.d2{animation-delay:.18s}
.vh-hero .fu.d3{animation-delay:.32s}
.vh-hero .fu.d4{animation-delay:.46s}
.vh-hero .fu.d5{animation-delay:.58s}
@keyframes vh-fu{to{opacity:1;transform:none}}

/* ---------- lanes (面向创作者/企业/未来) ---------- */
.vh-lanes{padding:72px 0;background:var(--vh-bg);}
.vh-lanes-in{max-width:var(--vh-max);margin:0 auto;padding:0 24px;display:grid;
  grid-template-columns:repeat(3,1fr);border-top:1px solid var(--vh-line);}
.vh-lane{padding:40px 34px 8px;border-bottom:1px solid var(--vh-line);position:relative;}
.vh-lane:nth-child(1){border-right:1px solid var(--vh-line);padding-left:0;}
.vh-lane:nth-child(3){border-left:1px solid var(--vh-line);padding-right:0;}
.vh-lane .no{font-size:13px;font-weight:700;letter-spacing:.18em;color:var(--vh-brand);}
.vh-lane h3{font-size:26px;font-weight:700;color:var(--vh-ink);margin:12px 0 0;letter-spacing:-.01em;}
.vh-lane p{font-size:15px;line-height:1.85;color:var(--vh-ink2);margin:14px 0 0;}
.vh-lane .lnk{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:14px;font-weight:600;color:var(--vh-brand-d);}
.vh-lane .lnk::after{content:"→";transition:transform .2s}
.vh-lane .lnk:hover::after{transform:translateX(4px)}
/* stagger via .rv (site.js adds .in) */
.vh-lanes .vh-lane.rv:nth-child(2){transition-delay:.12s}
.vh-lanes .vh-lane.rv:nth-child(3){transition-delay:.24s}

/* ---------- brand matrix (neutral chips) ---------- */
.vh-brands{padding:64px 0;background:var(--vh-soft);}
.vh-sec-head{max-width:var(--vh-max);margin:0 auto 34px;padding:0 24px;}
.vh-sec-head .en{font-size:12px;font-weight:700;letter-spacing:.24em;color:var(--vh-brand);text-transform:uppercase;}
.vh-sec-head h2{font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--vh-ink);margin:10px 0 0;line-height:1.2;}
.vh-sec-head p{font-size:15px;color:var(--vh-ink2);margin:12px 0 0;max-width:640px;line-height:1.8;}
.vh-grid{max-width:var(--vh-max);margin:0 auto;padding:0 24px;display:grid;
  grid-template-columns:repeat(3,1fr);gap:20px;}
.vh-bcard{background:#fff;border:1px solid var(--vh-line);border-radius:var(--vh-r);padding:26px;
  position:relative;transition:transform .25s,box-shadow .25s,border-color .25s;display:block;color:inherit;}
.vh-bcard:hover{transform:translateY(-6px);box-shadow:var(--vh-sh-2);border-color:transparent;}
.vh-bcard .hd{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.vh-bcard .chip{width:52px;height:52px;border-radius:15px;flex:none;display:grid;place-items:center;
  font-size:22px;font-weight:700;background:rgba(59,165,93,.10);color:var(--vh-brand-d);}
.vh-bcard h3{font-size:19px;font-weight:700;color:var(--vh-ink);margin:0;line-height:1.2;}
.vh-bcard .tg{font-size:12px;color:var(--vh-ink3);margin-top:3px;font-weight:500;}
.vh-bcard p{font-size:14px;line-height:1.75;color:var(--vh-ink2);margin:0;}
.vh-bcard .go{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:13px;font-weight:600;color:var(--vh-brand-d);}
.vh-bcard .go::after{content:"→";transition:transform .2s}
.vh-bcard:hover .go::after{transform:translateX(4px)}
/* stagger */
.vh-brands .vh-bcard.rv:nth-child(2){transition-delay:.06s}
.vh-brands .vh-bcard.rv:nth-child(3){transition-delay:.12s}
.vh-brands .vh-bcard.rv:nth-child(n+4){transition-delay:.18s}

/* ---------- news image cards ---------- */
.vh-news{padding:64px 0;background:var(--vh-bg);}
.vh-news-grid{max-width:var(--vh-max);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.vh-ncard{display:block;background:#fff;border:1px solid var(--vh-line);border-radius:var(--vh-r);overflow:hidden;
  transition:transform .25s,box-shadow .25s;}
.vh-ncard:hover{transform:translateY(-5px);box-shadow:var(--vh-sh-2);}
.vh-nimg{height:150px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#12361f,#1f6b3a 55%,#3ba55d);display:grid;place-items:center;}
.vh-nimg .mk{font-size:30px;font-weight:700;color:rgba(255,255,255,.92);letter-spacing:.04em;}
.vh-nimg .tag{position:absolute;left:14px;bottom:12px;font-size:11px;font-weight:700;color:#fff;
  background:rgba(0,0,0,.28);padding:4px 10px;border-radius:999px;}
.vh-nbody{padding:20px;}
.vh-nbody time{font-size:12px;color:var(--vh-ink3);letter-spacing:.04em;}
.vh-nbody h3{font-size:17px;font-weight:700;color:var(--vh-ink);margin:9px 0 0;line-height:1.4;}
.vh-nbody p{font-size:13.5px;line-height:1.7;color:var(--vh-ink2);margin:10px 0 0;}
.vh-news .vh-ncard.rv:nth-child(2){transition-delay:.1s}
.vh-news .vh-ncard.rv:nth-child(3){transition-delay:.2s}

/* ---------- CTA band ---------- */
.vh-band{padding:56px 0;background:linear-gradient(120deg,#0f2a1c,#1f6b3a 55%,#3ba55d);color:#fff;}
.vh-band-in{max-width:var(--vh-max);margin:0 auto;padding:0 24px;display:flex;align-items:center;
  justify-content:space-between;gap:28px;flex-wrap:wrap;}
.vh-band h2{font-size:30px;font-weight:700;margin:0;letter-spacing:-.01em;}
.vh-band p{margin:10px 0 0;font-size:15px;opacity:.86;max-width:560px;line-height:1.75;}
.vh-band .acts{display:flex;gap:12px;flex-wrap:wrap;}
.vh-band .b-w{padding:13px 22px;border-radius:11px;background:#fff;color:var(--vh-ink);font-weight:700;font-size:14px;transition:transform .2s}
.vh-band .b-o{padding:13px 22px;border-radius:11px;border:1px solid rgba(255,255,255,.55);color:#fff;font-weight:600;font-size:14px;transition:transform .2s}
.vh-band a:hover{transform:translateY(-2px)}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .vh-hero-in{grid-template-columns:1fr;gap:34px}
  .vh-orb{max-width:520px}
  .vh-h1{font-size:40px}
  .vh-lanes-in{grid-template-columns:1fr;border-top:none}
  .vh-lane{border-bottom:1px solid var(--vh-line);padding:30px 0}
  .vh-lane:nth-child(1){border-right:none;padding-left:0}
  .vh-lane:nth-child(3){border-left:none}
  .vh-grid,.vh-news-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .vh-h1{font-size:32px}
  .vh-stats{gap:24px}
  .vh-grid,.vh-news-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .vh-hero .fu{animation:none;opacity:1;transform:none}
}
