
:root{
  --bg-main:#FFFFFF;
  --bg-white:#FFFFFF;
  --bg-dark:#0D0F0E;
  --text-primary:#000000;
  --text-muted:#767676;
  --brand-green:#18C968;
  --brand-green-hover:#13B95E;
  /* 强调色的 RGB 分量：所有半透明用法跟着主色走，换色只改这里 */
  --accent-rgb:24,201,104;
  --accent-deep:#116B3B;
  /* 强调色"深底档"。亮绿在深底上本来就够亮，所以当前与主色同值＝不生效。
     将来若换成深色主色（朱砂/墨绿/靛蓝），只需把这两行改亮一档，
     所有深色区域会自动切换，不用逐个组件改。 */
  --accent-lift:#18C968;
  --accent-lift-rgb:24,201,104;
  --border-light:#E7E7E3;
  --accent-warm:#F3B51B;
  --bg:var(--bg-main);
  --ink:var(--text-primary);
  --ink-soft:var(--text-primary);
  --grey:var(--text-muted);
  --line:var(--border-light);
  --dark:var(--bg-dark);
  --dark-2:#151816;
  --light-on-dark:#FFFFFF;
  --grey-on-dark:rgba(255,255,255,.62);
  --accent:var(--brand-green);
  --accent-ink:#111111;
  --accent-on:#fff;
  --radius:28px;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-exp:cubic-bezier(.76,0,.24,1);
  --circle-arrow-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M4.5%2012H19.5M13.5%206L19.5%2012L13.5%2018'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  --font-body:'Manrope','Noto Sans SC',sans-serif;
  --font-en:var(--font-body);
  --font-cn:var(--font-body);
  --font-display:var(--font-body);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
html,body{overscroll-behavior:none}
body{
  background:var(--bg);color:var(--ink);font-family:var(--font-body);font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
::selection{background:var(--accent);color:var(--accent-on)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;border-radius:10px}
.logo img,.loader-word img,.f-logo img,.beian-link img{border-radius:0}
button,input,select,textarea{font-family:inherit}
button{background:none;border:none;color:inherit;cursor:pointer}
ul,ol{list-style:none}

/* ---------- grain / progress / cursor (frozen) ---------- */
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:2000;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 8s steps(10) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}10%{transform:translate(-5%,-8%)}30%{transform:translate(3%,-12%)}50%{transform:translate(8%,4%)}70%{transform:translate(-8%,8%)}90%{transform:translate(4%,3%)}}
.progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:2500;transform-origin:left;transform:scaleX(0);
  background:var(--accent)}
.footer-in-view .progress{opacity:0}
.cursor{display:none!important}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- preloader (frozen) ---------- */
.loader{position:fixed;inset:0;z-index:5000;background:var(--dark);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;
  transition:transform 1s var(--ease-exp)}
.loader.is-disabled{display:none}
.loader.done{transform:translateY(-101%)}
.loader-word{color:var(--light-on-dark);font-family:var(--font-en);font-weight:600;font-size:clamp(28px,5vw,64px);letter-spacing:.04em;overflow:hidden}
.loader-word span{display:inline-block;animation:riseUp 1s var(--ease-out) both}
.loader-word img{display:block;width:min(124px,32vw);height:auto;filter:brightness(0) invert(1)}
@keyframes riseUp{from{transform:translateY(110%)}to{transform:translateY(0)}}
.loader-bar{width:180px;height:2px;background:rgba(255,255,255,.15);overflow:hidden;border-radius:2px}
.loader-bar i{display:block;height:100%;width:0;background:var(--accent);transition:width .3s}

/* ---------- buttons (frozen) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;font-weight:600;cursor:pointer;
  position:relative;overflow:hidden;isolation:isolate;transition:color .35s}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;border-radius:999px;transform:translateY(101%);transition:transform .45s var(--ease-exp)}
.btn:hover::before{transform:translateY(0)}
.btn-dark{background:var(--accent);color:#fff;padding:13px 26px;font-size:14px}
.btn-dark::before{background:var(--brand-green-hover)}
.btn-dark:hover{color:var(--accent-on)}
.btn-light{background:var(--accent);color:var(--accent-on);padding:16px 34px;font-size:15px}
.btn-light::before{background:#fff}
.btn-light:hover{color:var(--ink)}
.btn-ghost{background:transparent;color:inherit;padding:16px 34px;font-size:15px;box-shadow:inset 0 0 0 1.5px currentColor}
.btn-ghost::before{background:var(--light-on-dark)}
.btn-ghost:hover{color:var(--dark)}

.btn:has(>.button-arrow){padding-inline:3em;line-height:1.5}
.btn>.button-arrow{position:absolute;right:1.1em;top:50%;width:1em;text-align:center;line-height:1;transform:translateY(-50%)}

/* ---------- header ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:1300;display:flex;align-items:center;justify-content:space-between;
  padding:14px 40px;border-bottom:1px solid transparent;
  transition:background .4s,backdrop-filter .4s,padding .4s,border-color .4s,transform .5s var(--ease-exp)}
.nav.scrolled{background:rgba(255,255,255,.9);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  border-color:var(--line);padding:12px 40px}
.nav.hide{transform:translateY(-110%)}
.nav.on-dark:not(.scrolled){color:#fff}
.logo{display:flex;align-items:center;gap:4px;position:relative;z-index:1301;transition:background .3s,padding .3s}
.logo-mark{display:block;width:48px;height:48px;object-fit:contain;
  transition:transform .3s var(--ease-out)}
.logo-word-art{position:relative;display:block;width:93px;height:31px}
.logo-word-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .3s}
.logo-word-light{opacity:0}
.nav.on-dark:not(.scrolled) .logo-word-dark{opacity:0}
.nav.on-dark:not(.scrolled) .logo-word-light{opacity:1}
.nav-links{display:flex;gap:6px;align-items:center}
.nav-link{position:relative;font-size:16px;font-weight:500;opacity:.85;padding:10px 14px;border-radius:10px;
  display:inline-flex;align-items:center;gap:6px;transition:opacity .3s,background .3s}
.nav-link:hover{opacity:1;color:var(--accent);background:transparent}
.nav-link .chev{width:10px;height:10px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .35s var(--ease-out)}
.nav-item.open .nav-link .chev{transform:rotate(225deg) translateY(-1px)}
.nav-item.open .nav-link{opacity:1;color:var(--accent);background:transparent}
.nav-cta{margin-left:14px;font-size:14px;font-weight:500;min-height:45px;padding:10px 24px}
.hamburger{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:6px;z-index:1301}
.hamburger i{display:block;width:22px;height:2px;background:currentColor;transition:transform .4s var(--ease-out),opacity .3s}
.hamburger.open i:nth-child(1){transform:translateY(8px) rotate(45deg)}
.hamburger.open i:nth-child(2){opacity:0}
.hamburger.open i:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* mega menu */
.nav-item{position:relative}
.mega{position:absolute;left:0;top:100%;z-index:1250;width:300px;padding:12px 26px 18px 14px;
  background:linear-gradient(145deg,rgba(24,201,104,.09),transparent 65%),#fff;border:0;border-radius:18px;box-shadow:0 12px 36px rgba(0,0,0,.1),inset 0 0 0 1px rgba(24,201,104,.18);color:var(--ink);visibility:hidden;opacity:0}
.mega.open{opacity:1;visibility:visible;animation:nav-dropdown-in .28s ease-out}
@keyframes nav-dropdown-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.mega.open{animation:none}}
.mega .mega-service-link{min-height:56px;font-size:16px;font-weight:500;border-radius:10px;transition:color .2s,background .2s,box-shadow .2s}
.mega .mega-service-link::after{color:var(--accent)}
.mega .mega-service-link:is(:hover,:focus-visible){background:rgba(24,201,104,.1);box-shadow:0 0 0 8px rgba(24,201,104,.1)}
.mega .mega-service-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mega .mega-service-link:hover::after{color:var(--accent);transform:none}
.mega-inner{max-width:1280px;margin:0 auto}
.mega-foot{max-width:1280px;margin:18px auto 0;padding-top:16px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.mega-foot p{font-size:14px;color:var(--grey)}
.mega-foot .link-arrow{font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px;color:var(--ink)}
.mega-foot .link-arrow:hover{color:var(--accent)}
.mega-directory-panel{max-height:100svh;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(118deg,rgba(var(--accent-rgb),.13) 0 7%,transparent 7% 89%,rgba(var(--accent-rgb),.1) 89%),radial-gradient(circle at 92% 24%,rgba(var(--accent-rgb),.16),transparent 19%),rgba(255,255,255,.96)}
.mega-directory-panel::before{content:'';position:absolute;right:3.5vw;top:98px;width:176px;height:176px;border:14px solid rgba(var(--accent-rgb),.16);border-radius:50%;box-shadow:0 0 0 2px rgba(var(--accent-rgb),.32),0 0 0 34px rgba(var(--accent-rgb),.055);pointer-events:none}
.mega-directory-panel::after{content:'';position:absolute;left:2.5vw;bottom:22px;width:138px;height:92px;background:radial-gradient(circle,rgba(var(--accent-rgb),.55) 1.8px,transparent 2px) 0 0/13px 13px;opacity:.7;pointer-events:none}
.mega-directory-panel .mega-inner,.mega-directory-panel .mega-foot{position:relative;z-index:1}
.mega-service-layout{position:relative;display:block}
.mega-service-layout::before{content:attr(data-word);position:absolute;z-index:0;left:50%;top:48%;transform:translate(-50%,-50%);color:rgba(var(--accent-rgb),.045);font:800 clamp(76px,8vw,122px)/1 var(--font-en);letter-spacing:.18em;white-space:nowrap;pointer-events:none}
.mega-service-layout::after{content:'+';position:absolute;z-index:0;left:-54px;top:-58px;color:rgba(var(--accent-rgb),.34);font:200 90px/1 Arial,sans-serif;pointer-events:none}
.mega-service-directory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(34px,4vw,58px)}
.mega-directory-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mega-directory-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mega-service-group{position:relative;z-index:1;background:linear-gradient(180deg,rgba(var(--accent-rgb),.07),transparent 58%)}
.mega-service-group::before{position:absolute;right:0;top:-18px;color:rgba(var(--accent-rgb),.09);font:800 48px/1 var(--font-en);pointer-events:none}
.mega-service-group:nth-child(1)::before{content:'01'}
.mega-service-group:nth-child(2)::before{content:'02'}
.mega-service-group:nth-child(3)::before{content:'03'}
.mega-service-group:nth-child(4)::before{content:'04'}
.mega-service-group h5{position:relative;margin:0;padding:0 0 18px;border-bottom:1px solid var(--line);color:var(--accent);font-size:17px;font-weight:650;letter-spacing:.01em}
.mega-service-group h5::after{content:'';position:absolute;left:0;bottom:-1px;width:32px;height:2px;background:var(--accent)}
.mega-service-list{padding-top:10px}
.mega-service-link{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:52px;color:var(--ink);font-size:17px;font-weight:500;line-height:1.35;transition:color .25s}
.mega-service-link::after{content:'';flex:none;width:18px;height:18px;color:#c7cbc7;background:currentColor;-webkit-mask:var(--circle-arrow-mask) center/contain no-repeat;mask:var(--circle-arrow-mask) center/contain no-repeat;transition:color .25s,transform .25s var(--ease-out)}
.mega-service-link:hover,.mega-service-link:focus-visible{color:var(--accent);outline:none}
.mega-service-link:hover::after,.mega-service-link:focus-visible::after{color:var(--accent);transform:translateX(4px)}
.mega-directory-panel .mega-foot{justify-content:flex-end;margin-top:12px;padding-top:8px;border-top:0}
.mega-directory-panel .mega-foot p{display:none}
.mega-directory-panel .mega-foot .link-arrow{color:var(--accent)}
.mega-prod{justify-content:flex-start;gap:14px}
.mega-prod img{width:44px;height:44px;border-radius:10px;object-fit:cover;box-shadow:0 4px 14px rgba(17,17,17,.12)}
.mega-prod::after{margin-left:auto}
.mega-prod .pi b{display:block;font-size:inherit;font-weight:500}
.mega-article-copy{display:block}
.mega-article-copy small{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--accent)}
.mega-article-copy b{display:block;margin-top:4px;font-size:15px;line-height:1.45}
.mega-blurb{font-size:13.5px;line-height:1.9;color:var(--ink-soft);max-width:34em}

/* mobile drawer */
.drawer{position:fixed;inset:0;z-index:1280;background:var(--dark);color:var(--light-on-dark);
  padding:100px 28px 40px;overflow-y:auto;transform:translateX(102%);transition:transform .55s var(--ease-exp)}
.drawer.open{transform:translateX(0)}
.drawer-acc{border-bottom:1px solid rgba(245,247,249,.14)}
.drawer-acc>button{width:100%;display:flex;align-items:center;justify-content:space-between;
  font-size:19px;font-weight:700;padding:20px 0;text-align:left}
.drawer-acc>button .chev{width:11px;height:11px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);transition:transform .35s var(--ease-out)}
.drawer-acc.open>button .chev{transform:rotate(225deg)}
.drawer-sub{max-height:0;overflow:hidden;transition:max-height .5s var(--ease-exp)}
.drawer-sub .grp{margin-bottom:18px}
.drawer-sub .grp b{display:block;font-size:12px;letter-spacing:.14em;color:var(--grey-on-dark);text-transform:uppercase;margin-bottom:8px;font-family:var(--font-en)}
.drawer-sub a{display:block;font-size:14.5px;color:rgba(245,247,249,.75);padding:6px 0}
.drawer-sub a:active{color:var(--accent)}
.drawer-direct{display:block;font-size:19px;font-weight:700;padding:20px 0;border-bottom:1px solid rgba(245,247,249,.14)}
.drawer-cta{margin-top:30px;width:100%;justify-content:center}
@media(max-width:1060px){
  .nav-links,.nav-cta{display:none}
  .hamburger{display:flex}
  .mega{display:none}
  .nav{padding:16px 20px}
  .nav.scrolled{padding:12px 20px}
}

/* ---------- hero (frozen layout) ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:0;background:var(--dark);will-change:transform}
.hero-media video,.hero-media canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-media::after{content:'';position:absolute;inset:0;
  background:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3)),
    linear-gradient(180deg,rgba(13,15,14,.36) 0%,rgba(13,15,14,.12) 40%,rgba(13,15,14,.76) 100%)}
.hero-inner{position:relative;z-index:2;padding:80px clamp(40px,8vw,160px) 40px;width:100%;text-align:center;
  display:flex;flex-direction:column;align-items:center;will-change:transform}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.hero h1{font-family:var(--font-cn);font-size:clamp(36px,3.8vw,56px);font-weight:600;line-height:1.12;letter-spacing:-.01em;max-width:none;white-space:nowrap}
.hero h1 .row{display:block;overflow:hidden}
.hero h1 .row>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease-out)}
.hero h1 .accent{color:#fff}
.hero.in h1 .row>span{transform:translateY(0)}
.hero-bottom{display:flex;flex-direction:column;align-items:center;margin-top:22px}
.hero-sub{position:relative;isolation:isolate;max-width:760px;font-size:19px;line-height:1.8;letter-spacing:.14em;color:rgba(255,255,255,.9)}
.hero-sub > span{display:inline-block;position:relative;transition:color .45s ease}
.hero-sub > span.is-active{color:#fff}
.hero-sub::before{content:'';position:absolute;z-index:-1;left:0;top:0;width:var(--step-width,0px);height:var(--step-height,0px);transform:translate(var(--step-x,0px),var(--step-y,0px));border-radius:999px;background:var(--accent);transition:transform .45s ease-in-out,width .45s ease-in-out,height .45s ease-in-out,opacity .2s ease;pointer-events:none}
.hero-sub.is-fading::before{opacity:0}
.hero-sub.is-resetting::before{transition:none}
@media(prefers-reduced-motion:reduce){.hero-sub::before{display:none}.hero-sub > span{transition:none}}

.hero-actions{display:flex;justify-content:center;margin-top:20px}
.hero-actions .btn{padding:12px 26px;font-size:14px}
.hero-actions .btn-ghost{background:var(--accent);color:#fff;box-shadow:none}
.hero-actions .btn-ghost::before{background:var(--brand-green-hover)}
.hero-actions .btn-ghost:hover{color:#fff}
@media(max-width:900px){.hero-inner{padding:72px 20px 32px}}

/* ---------- marquee (frozen) ---------- */
.marquee{background:var(--ink);color:var(--bg);overflow:hidden;padding:22px 0;border-top:1px solid var(--ink)}
.marquee-track{display:flex;width:max-content;will-change:transform}
.marquee-track span{font-family:var(--font-en);font-weight:700;font-size:clamp(18px,2.4vw,30px);letter-spacing:.02em;
  white-space:nowrap;padding:0 26px;display:flex;align-items:center;gap:26px}
.marquee-track span::after{content:'✦';font-size:.7em;opacity:.5}

/* ---------- sections (frozen) ---------- */
.section{padding:110px 40px}
.section-dark{background:var(--dark);color:var(--light-on-dark);padding:72px 40px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:54px;flex-wrap:wrap}
.sec-title{font-family:var(--font-display);font-size:clamp(38px,4.3vw,54px);font-weight:600;line-height:1.2;letter-spacing:-.012em}
.sec-desc{max-width:420px;font-size:15px;line-height:1.9;opacity:.65}
@media(max-width:900px){.section{padding:72px 20px}.section-dark{padding:56px 20px}}
.rv{opacity:0;transform:translateY(46px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.rv.in{opacity:1;transform:none}
[data-reveal-group] [data-reveal-item]{
  opacity:0;translate:0 38px;scale:.975;
  transition:opacity .78s var(--ease-out),translate .9s var(--ease-out),scale .9s var(--ease-out);
  transition-delay:calc(var(--reveal-index,0) * 80ms + 100ms)
}
[data-reveal-group].in [data-reveal-item]{opacity:1;translate:0 0;scale:1}
.sec-title .ch-w{display:inline-block;overflow:hidden;vertical-align:top}
.sec-title .ch{display:inline-block;transform:translateY(115%) rotate(4deg);transition:transform .9s var(--ease-out)}
.sec-title.in .ch{transform:translateY(0) rotate(0)}

/* ---------- services (frozen motion) ---------- */
.svc-list{border-top:0}
.svc{display:grid;grid-template-columns:80px 1.1fr 1fr 60px;align-items:center;gap:30px;
  padding:44px 0;border-bottom:0;position:relative;cursor:pointer;isolation:isolate;
  opacity:0;transform:translateX(-60px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}
.svc-list.in .svc{opacity:1;transform:none}
.svc-list.in .svc:nth-child(1){transition-delay:.05s}
.svc-list.in .svc:nth-child(2){transition-delay:.12s}
.svc-list.in .svc:nth-child(3){transition-delay:.19s}
.svc-list.in .svc:nth-child(4){transition-delay:.26s}
.svc-list.in .svc:nth-child(5){transition-delay:.33s}
.svc::before{content:'';position:absolute;inset:0 -40px;z-index:0;background:var(--accent);
  transform:scaleX(0);transform-origin:left center;transition:transform .45s var(--ease-exp)}
.svc:hover::before,.svc:focus-visible::before{transform:scaleX(1)}
.svc>*{position:relative;z-index:1}
.svc *{transition:color .32s,opacity .32s,border-color .32s,background .32s,transform .32s var(--ease-out)}
.svc:hover *,.svc:focus-visible *{color:var(--accent-on)}
.svc-num{font-family:var(--font-en);font-weight:700;font-size:15px;opacity:.45}
.svc-name{font-family:var(--font-cn);font-size:clamp(26px,3vw,36px);font-weight:600;letter-spacing:-.02em}
.svc-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.svc-tags i{font-style:normal;font-size:11.5px;font-weight:600;padding:5px 12px;border-radius:999px;
  border:1px solid rgba(245,247,249,.25);opacity:.75;transition:inherit}
.svc:hover .svc-tags i,.svc:focus-visible .svc-tags i{border-color:rgba(255,255,255,.35)}
.svc-desc{font-size:14.5px;line-height:1.8;opacity:.6;max-width:420px}
.svc:hover .svc-desc,.svc:focus-visible .svc-desc{opacity:.85}
.svc-arrow{position:relative;width:52px;height:52px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;
  font-size:19px;justify-self:end;transform:rotate(-45deg)}
.svc:hover .svc-arrow,.svc:focus-visible .svc-arrow{transform:rotate(0);background:var(--accent-ink);color:#fff!important;border-color:var(--accent-ink)}
@media(max-width:900px){
  .svc{grid-template-columns:1fr 52px;grid-template-rows:auto auto;gap:8px}
  .svc::before{inset:0 -20px}
  .svc-num{display:none}.svc-desc{grid-column:1/-1}.svc-arrow{grid-row:1;grid-column:2}
}

/* ---------- stats (frozen) ---------- */
/* 数据条：等宽四栏改为不等宽，首尾两项加大字号，制造尺度对比 */
.stats{display:grid;grid-template-columns:1.4fr .92fr .92fr 1.56fr}
.stat{padding:56px 34px}
.stat b{font-family:var(--font-en);font-size:clamp(38px,4.2vw,62px);font-weight:600;display:inline-block;letter-spacing:-.02em;line-height:1}
.stat:nth-child(1) b,.stat:nth-child(4) b{font-size:clamp(48px,5.8vw,92px);letter-spacing:-.04em}
.stat b sup{font-size:.45em;font-weight:600;opacity:.6}
.stat>span{display:block;margin-top:14px;font-size:13.5px;opacity:.55;line-height:1.7}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.stat{padding:34px 20px}}

/* ---------- cases + client voices ---------- */
.case-voices{padding:72px 40px 200px;overflow:clip}
.case-voices .sec-head{justify-content:flex-start;max-width:1580px;margin:0 auto 48px;text-align:left}
.case-voices .sec-title{font-size:calc(clamp(38px,4.3vw,54px) * .88)}
.review-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:stretch;gap:42px;max-width:1580px;margin:0 auto}
.review-media{position:relative;min-width:0;aspect-ratio:1405/1119;align-self:start;margin:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fafaf8}
.review-media>video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.review-carousel{min-width:0}
.review-viewport{position:relative}
.review-track{display:grid;grid-auto-rows:1fr;gap:36px}
.review-card{min-width:0;box-sizing:border-box}
.review-project{display:flex;align-items:center;gap:12px}
.review-person .review-project>span{flex:none;color:var(--accent);font-size:12px;font-weight:600;line-height:1.5}
.review-quote-mark{display:block;height:52px;color:var(--accent);font:400 88px/1 Georgia,serif}
.review-feedback>p{font:400 18px/1.9 var(--font-body)}
.review-feedback{margin:0;padding:0}
.review-company{display:flex;align-items:baseline;gap:24px}
.review-feedback>p{margin:0;color:#444}
.review-person{display:flex;align-items:center;gap:10px;margin-top:20px}
.review-person>img{width:40px;height:40px;object-fit:cover;border-radius:9px;flex:none}
.review-person>div{min-width:0;line-height:1.6}
.review-person strong{display:block;font-size:12px;font-weight:600;color:var(--ink)}
.review-company>span{display:block;font-size:11px;color:var(--grey)}
.review-carousel:focus-visible,.review-carousel a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.review-carousel.is-enhanced .review-viewport{overflow:hidden;height:var(--review-height)}
.case-center-link{display:flex;justify-content:center;margin-top:56px}
.case-center-link .showcase-all{margin:0}
@media(max-width:1100px){
  .review-layout{gap:24px;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
}
@media(max-width:900px){
  .case-voices{padding:48px 24px}
  .case-voices .sec-title{font-size:32px}
  .review-layout{grid-template-columns:1fr}
}

/* ---------- ecosystem coverage ---------- */
.ecosystem{padding:130px 0 140px;background:var(--bg-white);color:var(--ink);overflow:hidden}
.ecosystem-inner{position:relative;width:min(1680px,100%);min-height:630px;margin:0 auto;isolation:isolate}
.ecosystem-core{position:absolute;top:42%;left:50%;z-index:2;width:min(1120px,86vw);text-align:center;transform:translate(-50%,-50%)}
.ecosystem h2{color:var(--accent);font-family:var(--font-display);font-size:clamp(36px,3.9vw,60px);font-weight:600;line-height:1.12;letter-spacing:-.045em;white-space:nowrap}
.ecosystem-title-sep{display:inline-block;margin:0 .08em;font-family:var(--font-body);font-size:.78em;font-weight:900;line-height:1;vertical-align:.08em}
.ecosystem-word{position:absolute;z-index:1;white-space:nowrap;color:#0a0a09;font-family:var(--font-body);font-weight:500;line-height:.9;transform:rotate(var(--rotate,0deg));transform-origin:center;opacity:var(--opacity,1);filter:blur(var(--blur,0));user-select:none}
.ecosystem-word.cn{font-family:var(--font-display);font-weight:500}
.ecosystem-word.sans{font-family:var(--font-en);font-weight:500}
.ecosystem-word.green{color:#22a843;font-family:var(--font-en);font-size:16px;font-weight:600;line-height:1;letter-spacing:.01em}
.ecosystem-word:is(.ai,.node,.design,.react,.website,.system,.web,.mini,.seo,.geo,.crm,.app){color:#222220}
.ecosystem-word.ai{top:0;left:4%;font-size:172px;--rotate:-5deg;--blur:.8px}
.ecosystem-word.node{top:5%;left:31%;font-size:48px;--rotate:3deg}
.ecosystem-word.design{top:7%;left:61%;font-size:67px;--rotate:-6deg}
.ecosystem-word.content{top:1%;left:84%;font-size:47px;--rotate:-7deg;--opacity:.42;--blur:2px}
.ecosystem-word.react{top:30%;left:3%;font-size:43px;--rotate:4deg}
.ecosystem-word.indie{top:30%;left:20%;font-size:31px;--rotate:-2deg;--opacity:.6}
.ecosystem-word.astro{top:22%;left:38%;font-size:29px;--rotate:5deg;--opacity:.5;--blur:1px}
.ecosystem-word.website{top:23%;left:51%;font-size:47px;--rotate:1deg}
.ecosystem-word.nginx{top:25%;left:69%;font-size:28px;--rotate:4deg;--opacity:.45;--blur:1.4px}
.ecosystem-word.system{top:22%;left:76%;font-size:69px;--rotate:-4deg}
.ecosystem-word.web{top:50%;left:-1%;font-size:156px;--rotate:5deg;--blur:.8px}
.ecosystem-word.mini{top:57%;left:26%;font-size:30px;--rotate:1deg}
.ecosystem-word.erp{top:49%;left:86%;font-size:45px;--rotate:2deg;--opacity:.48;--blur:1px}
.ecosystem-word.seo{top:73%;left:27%;font-size:57px;--rotate:-4deg}
.ecosystem-word.geo{top:71%;left:60%;font-size:63px;--rotate:3deg}
.ecosystem-word.crm{top:64%;left:88%;font-size:56px;--rotate:1deg}
.ecosystem-word.docker{top:88%;left:4%;font-size:47px;--rotate:-12deg;--opacity:.34;--blur:3px}
.ecosystem-word.app{top:76%;left:75%;font-size:144px;--rotate:9deg;--blur:1.8px}
.ecosystem-word.intelligence{top:22%;left:24%;--rotate:11deg}
.ecosystem-word.growth{top:14%;left:82%;--rotate:-7deg}
.ecosystem-word.build{top:47%;left:15%;--rotate:3deg}
.ecosystem-word.automation{top:65%;left:72%;--rotate:-3deg}
.ecosystem-word.data{top:80%;left:43%;--rotate:1deg}
.ecosystem-word.visual{top:59%;left:39%;font-size:31px;--rotate:-4deg;--opacity:.34;--blur:.35px}
.ecosystem-word.branding{top:63%;left:51%;font-size:35px;--rotate:3deg;--opacity:.28;--blur:.65px}
@media(min-width:901px) and (prefers-reduced-motion:no-preference){
  .motion-ready .ecosystem:not(.ecosystem-active) .ecosystem-word{
    opacity:0;
    transform:translate3d(var(--entry-x,0),var(--entry-y,0),0) rotate(calc(var(--rotate,0deg) + var(--entry-rotate,0deg))) scale(.82)
  }
  .ecosystem.ecosystem-active .ecosystem-word{
    will-change:transform,opacity;
    backface-visibility:hidden;
    animation:
      ecosystem-word-enter 1.35s var(--ease-out) var(--entry-delay,0ms) both,
      ecosystem-word-float var(--float-duration,5.8s) ease-in-out calc(var(--entry-delay,0ms) + 1.35s) infinite alternate
  }
  .ecosystem-word:nth-child(2n){--float-x:-7px;--float-y:9px;--float-rotate:-.55deg;--float-duration:6.6s}
  .ecosystem-word:nth-child(3n){--float-x:6px;--float-y:-11px;--float-rotate:.65deg;--float-duration:7.2s}
  .ecosystem-word:nth-child(5n){--float-x:-5px;--float-y:-8px;--float-rotate:-.45deg;--float-duration:5.4s}
  .ecosystem-word.ai{--entry-x:-55vw;--entry-y:-10vh;--entry-rotate:-14deg;--entry-delay:0ms}
  .ecosystem-word.node{--entry-y:-44vh;--entry-rotate:10deg;--entry-delay:120ms}
  .ecosystem-word.design{--entry-x:12vw;--entry-y:-44vh;--entry-rotate:-12deg;--entry-delay:60ms}
  .ecosystem-word.content{--entry-x:44vw;--entry-y:-25vh;--entry-rotate:12deg;--entry-delay:180ms}
  .ecosystem-word.react{--entry-x:-45vw;--entry-y:-4vh;--entry-rotate:-10deg;--entry-delay:140ms}
  .ecosystem-word.indie{--entry-x:-40vw;--entry-y:-14vh;--entry-rotate:8deg;--entry-delay:280ms}
  .ecosystem-word.astro{--entry-x:-8vw;--entry-y:-38vh;--entry-rotate:-9deg;--entry-delay:220ms}
  .ecosystem-word.website{--entry-y:-42vh;--entry-rotate:9deg;--entry-delay:320ms}
  .ecosystem-word.nginx{--entry-x:30vw;--entry-y:-25vh;--entry-rotate:9deg;--entry-delay:160ms}
  .ecosystem-word.system{--entry-x:50vw;--entry-y:-8vh;--entry-rotate:12deg;--entry-delay:120ms}
  .ecosystem-word.web{--entry-x:-60vw;--entry-y:8vh;--entry-rotate:-12deg;--entry-delay:40ms}
  .ecosystem-word.mini{--entry-x:-45vw;--entry-y:10vh;--entry-rotate:10deg;--entry-delay:380ms}
  .ecosystem-word.erp{--entry-x:55vw;--entry-y:2vh;--entry-rotate:-10deg;--entry-delay:260ms}
  .ecosystem-word.seo{--entry-x:-25vw;--entry-y:45vh;--entry-rotate:11deg;--entry-delay:300ms}
  .ecosystem-word.geo{--entry-x:15vw;--entry-y:48vh;--entry-rotate:-10deg;--entry-delay:360ms}
  .ecosystem-word.crm{--entry-x:55vw;--entry-y:8vh;--entry-rotate:10deg;--entry-delay:320ms}
  .ecosystem-word.docker{--entry-x:-50vw;--entry-y:30vh;--entry-rotate:14deg;--entry-delay:420ms}
  .ecosystem-word.app{--entry-x:55vw;--entry-y:35vh;--entry-rotate:-14deg;--entry-delay:80ms}
  .ecosystem-word.intelligence{--entry-x:-35vw;--entry-y:-30vh;--entry-rotate:-10deg;--entry-delay:260ms}
  .ecosystem-word.growth{--entry-x:35vw;--entry-y:-35vh;--entry-rotate:10deg;--entry-delay:260ms}
  .ecosystem-word.build{--entry-x:-45vw;--entry-y:4vh;--entry-rotate:-9deg;--entry-delay:480ms}
  .ecosystem-word.automation{--entry-x:45vw;--entry-y:15vh;--entry-rotate:9deg;--entry-delay:440ms}
  .ecosystem-word.data{--entry-y:45vh;--entry-rotate:-8deg;--entry-delay:520ms}
  .ecosystem-word.visual{--entry-x:-30vw;--entry-y:22vh;--entry-rotate:9deg;--entry-delay:460ms}
  .ecosystem-word.branding{--entry-x:28vw;--entry-y:24vh;--entry-rotate:-9deg;--entry-delay:500ms}
}
@keyframes ecosystem-word-enter{
  0%{opacity:0;transform:translate3d(var(--entry-x,0),var(--entry-y,0),0) rotate(calc(var(--rotate,0deg) + var(--entry-rotate,0deg))) scale(.82)}
  72%{opacity:var(--opacity,1)}
  100%{opacity:var(--opacity,1);transform:translate3d(0,0,0) rotate(var(--rotate,0deg)) scale(1)}
}
@keyframes ecosystem-word-float{
  0%{transform:translate3d(0,0,0) rotate(var(--rotate,0deg))}
  100%{transform:translate3d(var(--float-x,6px),var(--float-y,-10px),0) rotate(calc(var(--rotate,0deg) + var(--float-rotate,.55deg)))}
}
@media(prefers-reduced-motion:reduce){
  .ecosystem-word{animation:none!important;opacity:var(--opacity,1)!important;transform:rotate(var(--rotate,0deg))!important}
}

/* ---------- team + delivery ---------- */
.team-delivery{margin:56px 0;border-radius:clamp(48px,6vw,96px);overflow:hidden}
.team-delivery .sec-head{margin-bottom:38px}
.team-delivery .sec-title{font-size:clamp(42px,5vw,72px)}
@media(min-width:901px){
  .team-delivery .sec-head{justify-content:center;text-align:center;margin-bottom:44px}
  .team-delivery .sec-head>div{width:100%}
}
.team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:18px}
.team-card{aspect-ratio:1/1;position:relative;overflow:hidden;border-radius:10px;cursor:pointer;
  transform-style:preserve-3d;transition:box-shadow .5s;will-change:transform}
.team-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.team-card:nth-child(1) img{object-position:center 52%}
.team-card:nth-child(2) img{object-position:center 46%}
.team-card:nth-child(3) img{object-position:center 48%}
.team-card:nth-child(4) img{object-position:center 50%}
.team-card:hover img{transform:scale(1.055)}
.delivery-block{margin-top:18px}
.trust-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:18px;margin-bottom:58px}
.trust-photos figure{aspect-ratio:1/1;position:relative;border-radius:10px;overflow:hidden}
.trust-photos img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.trust-photos figure:hover img{transform:scale(1.07)}
.trust-photos figcaption{position:absolute;left:14px;bottom:12px;z-index:2;color:#fff;font-size:12.5px;font-weight:600;
  background:rgba(13,15,14,.54);backdrop-filter:blur(8px);padding:6px 14px;border-radius:999px}
.team-more{display:none}
.team-more a{display:inline-flex;align-items:center;gap:8px;background:none;border:none;box-shadow:none;color:#fff;font-size:16px;font-weight:500;line-height:1.5;text-decoration:none;cursor:pointer;padding:8px 0;transition:color .25s ease}
.team-more a::before{display:none}
.team-more a:is(:hover,:focus-visible){color:var(--brand-green,#18c968)}
.trust-row{display:block}
.trust-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,auto);grid-auto-flow:column;column-gap:60px}
.trust-points li{display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 16px;text-align:center;font-size:15px;line-height:1.7}
.trust-points li::before{content:'✓';flex:none;width:28px;height:28px;border-radius:50%;background:var(--accent);
  color:var(--accent-on);display:grid;place-items:center;font-weight:600;font-size:14px}
@media(min-width:901px){
  .team-delivery .trust-row{margin-top:24px}
  .team-delivery .trust-points{width:min(calc(100% - 40px),1280px);margin-inline:auto;row-gap:6px;transform:translateX(20px)}
  .delivery-block{margin-top:40px}
  .trust-photos{margin-bottom:0}
  .team-more{display:flex;justify-content:center;padding:62px 0 18px}
  .trust-points li{justify-content:flex-start;text-align:left}
  .team-delivery .trust-points li:nth-child(-n+2){transform:translateX(clamp(100px,8vw,180px))}
  .team-delivery{
    margin-bottom:0;
    padding-bottom:calc(72px + clamp(48px,6vw,96px));
    border-radius:clamp(48px,6vw,96px) clamp(48px,6vw,96px) 0 0;
  }
  .team-delivery + .product-lab-section{
    position:relative;z-index:1;
    margin-top:clamp(-96px,-6vw,-48px);
    border-radius:clamp(48px,6vw,96px) clamp(48px,6vw,96px) 0 0;
    overflow:hidden;
  }
}
@media(max-width:900px){
  .team-delivery{margin:36px 0;border-radius:48px}
  .team-grid,.trust-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .trust-row{grid-template-columns:1fr;gap:34px}
}
@media(max-width:560px){
  .team-delivery{margin:24px 0;border-radius:34px}
  .team-grid,.trust-photos{grid-template-columns:1fr;gap:14px}
  .delivery-block{margin-top:14px}
}

/* ---------- product gallery ---------- */
.product-lab-section{padding-top:clamp(112px,11vw,168px);padding-bottom:clamp(88px,9vw,136px);background:var(--bg-white)}
.product-lab-section .sec-head{max-width:1120px;margin:0 auto 48px;align-items:center;text-align:left}
.product-lab-section .sec-title{font-size:clamp(32px,3vw,44px)}
.product-lab-section .showcase-all{margin:0;padding:10px 0;color:var(--accent)}
.product-lab-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(210px,23vw,270px);gap:12px;max-width:1120px;margin:0 auto}
.product-lab-card{position:relative;grid-column:span 4;min-width:0;border-radius:12px;overflow:hidden;background:#eef6f9;text-decoration:none;color:var(--ink)}
.product-lab-card:first-child{grid-column:span 6}
.product-lab-card:nth-child(2),.product-lab-card:nth-child(3){grid-column:span 3}
.product-lab-card>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
.product-lab-card h3{position:absolute;z-index:1;top:20px;left:22px;right:16px;display:flex;align-items:center;gap:10px;margin:0;font:400 clamp(22px,2vw,28px)/1.25 var(--font-body)}
.product-lab-card .showcase-arrow{width:.7em;height:.7em;color:var(--accent)}
.product-lab-card:hover>img{transform:scale(1.035)}
.product-lab-card:hover h3{color:var(--accent)}
.product-lab-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media(max-width:900px){
  .product-lab-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:220px}
  .product-lab-card,.product-lab-card:nth-child(2),.product-lab-card:nth-child(3){grid-column:span 1}
  .product-lab-card:first-child{grid-column:span 2}
  .product-lab-card h3{top:18px;left:20px;font-size:24px}
}
@media(max-width:540px){
  .product-lab-section .sec-head{gap:12px;margin-bottom:36px}
  .product-lab-section .sec-title{font-size:32px}
  .product-lab-section .showcase-all{font-size:16px}
  .product-lab-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:14px}
  .product-lab-card,.product-lab-card:first-child,.product-lab-card:nth-child(2),.product-lab-card:nth-child(3){grid-column:auto;aspect-ratio:1.32}
  .product-lab-card:first-child{aspect-ratio:1.6}
  .product-lab-card h3{font-size:24px}
}
@media(prefers-reduced-motion:reduce){.product-lab-card>img{transition:none}.product-lab-card:hover>img{transform:none}}

/* ---------- insights ---------- */
/* ---------- insights：编辑式列表 ----------
   三张等宽卡片改为全宽横排条目：分类 / 标题 / 摘要 / 圆形箭头，
   标题拉大、摘要收窄，读起来像一份专栏目录而不是一排卡片。 */
.insights-grid{display:block;border-top:1px solid var(--line)}
.insight{position:relative;isolation:isolate;display:grid;
  grid-template-columns:minmax(0,146px) minmax(0,1.18fr) minmax(0,1.02fr) 56px;
  gap:clamp(16px,2.6vw,46px);align-items:center;
  padding:clamp(28px,3vw,44px) 0;
  border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
.insight::before{content:'';position:absolute;z-index:-1;inset:0;
  background:linear-gradient(90deg,rgba(var(--accent-rgb),.055),rgba(var(--accent-rgb),.018) 55%,transparent 88%);
  opacity:0;transition:opacity .5s var(--ease-out)}
.insight::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1.5px;
  background:var(--accent);transform:scaleX(0);transform-origin:left center;
  transition:transform .62s var(--ease-out)}
.insight:is(:hover,:focus-visible)::before{opacity:1}
.insight:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.insight small{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent);font-family:var(--font-en);
  transition:transform .52s var(--ease-out)}
.insight h3{font-family:var(--font-display);font-size:clamp(20px,2.15vw,31px);font-weight:600;line-height:1.34;letter-spacing:-.004em;
  transition:color .4s var(--ease-out),transform .56s var(--ease-out)}
.insight p{font-size:14px;line-height:1.9;color:var(--ink-soft);
  transition:color .4s var(--ease-out),transform .6s var(--ease-out)}
.insight:is(:hover,:focus-visible) small,
.insight:is(:hover,:focus-visible) h3,
.insight:is(:hover,:focus-visible) p{transform:translate3d(10px,0,0)}
.insight:is(:hover,:focus-visible) h3{color:var(--brand-green)}
/* "阅读全文"文字保留在 DOM 里供读屏器使用，视觉上换成圆形箭头 */
.insight .link-arrow{position:relative;justify-self:end;width:52px;height:52px;border-radius:50%;
  border:1px solid var(--line);display:grid;place-items:center;font-size:0;
  transition:color .38s var(--ease-out),background .45s var(--ease-out),border-color .45s var(--ease-out),
    box-shadow .5s var(--ease-out),transform .5s var(--ease-out)}
.insight .link-arrow::before{content:'→';font-size:17px;line-height:1;
  transition:transform .5s var(--ease-out)}
.insight:is(:hover,:focus-visible) .link-arrow{background:var(--accent);border-color:var(--accent);
  color:var(--accent-on);box-shadow:0 12px 28px -14px rgba(var(--accent-rgb),.72);
  transform:translate3d(-5px,0,0) scale(1.06)}
.insight:is(:hover,:focus-visible) .link-arrow::before{transform:rotate(-45deg)}

/* 圆形按钮箭头：用统一的圆角粗线图形取代字体字形，避免基线偏移和设备间粗细不一。 */
@supports ((-webkit-mask-image:url("")) or (mask-image:url(""))){
  .svc-arrow,.float-top{font-size:0}
  .svc-arrow::before,
  .insight .link-arrow::before,
  .float-top::before{
    content:'';display:block;position:absolute;inset:0;margin:auto;width:20px;height:20px;background:currentColor;
    -webkit-mask:var(--circle-arrow-mask) center/contain no-repeat;
    mask:var(--circle-arrow-mask) center/contain no-repeat
  }
  .insight .link-arrow::before{position:absolute;inset:0;margin:auto;width:19px;height:19px}
  .float-top::before{width:18px;height:18px;transform:rotate(-90deg)}
}
@media(max-width:900px){
  .insight{grid-template-columns:1fr 56px;gap:10px 16px;padding:26px 0}
  .insight small{grid-column:1}
  .insight h3{grid-column:1}
  .insight p{grid-column:1}
  .insight .link-arrow{grid-column:2;grid-row:1/4;align-self:center;width:46px;height:46px}
}

/* ---------- timeline ---------- */
.story-sticky{position:relative}
.story-overview{
  width:min(1580px,100%);margin:0 auto 26px;overflow:visible;background:transparent;
  --story-hero-spread:0px;--story-hero-width:100%;--story-hero-radius:20px
}
.story-overview.rv{transform:translateY(30px)}
.story-overview.rv.in{transform:none}
.story-hero{
  position:relative;z-index:1;height:clamp(260px,34vh,340px);overflow:visible;
  border-radius:var(--story-hero-radius) var(--story-hero-radius) 0 0;background:#0b4d7e
}
.story-hero>img{
  position:absolute;top:0;bottom:0;left:calc(0px - var(--story-hero-spread));
  width:var(--story-hero-width);max-width:none;height:100%;
  border-radius:var(--story-hero-radius) var(--story-hero-radius) 0 0;
  object-fit:cover;object-position:center top;will-change:left,width,border-radius
}
.story-profile{
  position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  width:min(720px,52%);height:100%;padding:clamp(26px,3vw,50px) clamp(28px,4.2vw,70px);
  color:#fff;opacity:0;transform:translateY(18px);
  transition:opacity .7s .04s var(--ease-out),transform .8s .04s var(--ease-out)
}
.story-overview.in .story-profile{opacity:1;transform:none}
.story-profile h2{font-family:var(--font-display);font-size:clamp(42px,4.2vw,68px);font-weight:600;line-height:1.05;letter-spacing:-.015em}
.story-profile p{max-width:48em;margin-top:clamp(12px,1.6vh,18px);font-size:clamp(15px,1.1vw,17px);font-weight:600;line-height:1.5;color:rgba(255,255,255,.9)}
.story-profile a{display:inline-flex;align-items:center;gap:9px;margin-top:clamp(20px,2.2vh,28px);font-size:13px;font-weight:700;color:var(--accent)}
.story-profile a span{transition:transform .35s var(--ease-out)}

.story-facts{
  position:relative;left:calc(0px - var(--story-hero-spread));z-index:2;
  width:var(--story-hero-width);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:112px;
  overflow:hidden;margin-top:0;border:1px solid var(--line);border-top:0;
  border-radius:0 0 var(--story-hero-radius) var(--story-hero-radius);
  background:#fff;color:var(--ink);will-change:left,width
}
.story-fact{
  position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:22px clamp(24px,3.2vw,52px);background:#fff;opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--ease-out),transform .7s var(--ease-out)
}
.story-fact:nth-child(1){transition-delay:.08s}.story-fact:nth-child(2){transition-delay:.14s}
.story-fact:nth-child(3){transition-delay:.2s}.story-fact:nth-child(4){transition-delay:.26s}
.story-overview.in .story-fact{opacity:1;transform:none}
.story-fact:not(:last-child)::after{content:'';position:absolute;top:20px;right:0;bottom:20px;width:1px;background:var(--line)}
.story-fact:not(:last-child)::before{content:'';position:absolute;top:20px;right:0;width:1px;height:10px;background:var(--accent);z-index:1}
.story-fact strong{display:flex;align-items:baseline;justify-content:center;gap:5px;font-family:var(--font-en);font-size:clamp(34px,2.7vw,48px);font-weight:600;line-height:1;color:var(--ink);white-space:nowrap;transition:color .3s}
.story-fact:hover strong{color:var(--accent)}
.story-fact strong span{font-family:var(--font-cn);font-size:13px;letter-spacing:0}
.story-fact p{margin-top:10px;font-size:12px;line-height:1.45;color:var(--grey);white-space:nowrap}
.story-timeline-hint{display:none}
.story-timeline-viewport{overflow:hidden}
.story-progress{display:none}
.story-scroll-hint{display:none}
.tl{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding-bottom:20px;scrollbar-width:none}
.tl::-webkit-scrollbar{display:none}
.tl-item{flex:0 0 290px;width:290px;height:230px;padding:28px 30px 34px;border-left:1px solid rgba(245,247,249,.16);position:relative;transition:background .4s}
.tl-item:hover{background:rgba(255,255,255,.04)}
.tl-item::before{content:'';position:absolute;left:-6px;top:0;width:11px;height:11px;border-radius:50%;
  background:var(--light-on-dark);transition:background .3s,transform .3s}
.tl-item:hover::before{background:var(--accent);transform:scale(1.35)}
.tl-year{font-family:var(--font-en);font-size:44px;font-weight:600;letter-spacing:-.02em;opacity:.9}
.tl-content{overflow:hidden}
.tl-item h4{margin:16px 0 10px;font-size:16.5px;font-weight:700}
.tl-item p{font-size:13px;line-height:1.85;opacity:.55}
@media(min-width:901px){
  #story .story-overview{--story-hero-radius:clamp(48px,3.2vw,64px)}
  #story.story-scroll-ready{position:relative;padding:0;overflow:clip;--story-progress:0}
  #story.story-scroll-ready .story-sticky{
    position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:flex-start;
    overflow:hidden;padding:clamp(28px,4vh,46px) 40px clamp(24px,3vh,38px)
  }
  #story.story-scroll-ready .story-overview{flex:none;margin-bottom:clamp(34px,4.5vh,48px)}
  #story.story-scroll-ready .story-timeline-viewport{width:100%;flex:none;overflow:visible}
  #story.story-scroll-ready .tl{
    width:max-content;overflow:visible;padding:8px calc(50vw - 185px) 18px;
    will-change:transform;transform:translate3d(0,0,0)
  }
  #story.story-scroll-ready .tl-item{opacity:.4;transition:opacity .5s var(--ease-out),background .4s}
  #story.story-scroll-ready .tl-content{
    max-height:0;opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(16px);
    transition:max-height .72s var(--ease-out),opacity .5s var(--ease-out),clip-path .72s var(--ease-out),transform .72s var(--ease-out)
  }
  #story.story-scroll-ready .tl-item.is-current{opacity:1}
  #story.story-scroll-ready .tl-item.is-current::before{background:var(--accent);transform:scale(1.35)}
  #story.story-scroll-ready .tl-item.is-current .tl-year{color:var(--accent)}
  #story.story-scroll-ready .tl-item.is-current .tl-content{max-height:150px;opacity:1;clip-path:inset(0);transform:none}
  #story.story-scroll-ready .story-progress{
    display:grid;grid-template-columns:auto minmax(180px,320px) auto;align-items:center;gap:14px;
    width:min(460px,42vw);margin-top:auto;color:var(--ink);font-family:var(--font-en);font-size:11px;font-weight:700;letter-spacing:.08em
  }
  #story.story-scroll-ready .story-progress>i{height:2px;overflow:hidden;background:var(--line)}
  #story.story-scroll-ready .story-progress>i>b{
    display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(var(--story-progress));transform-origin:left center
  }
  #story.story-scroll-ready .story-scroll-hint{display:inline}
  #story.story-scroll-ready .story-drag-hint{display:none}
}
@media(min-width:901px) and (max-height:820px){
  #story.story-scroll-ready .story-sticky{padding-top:18px;padding-bottom:20px}
  #story.story-scroll-ready .story-overview{margin-bottom:28px}
  .story-hero{height:320px}
  .story-profile{padding-block:18px}
  .story-profile h2{font-size:48px}
  .story-profile p{margin-top:10px;font-size:14px;line-height:1.5}.story-profile a{margin-top:9px;font-size:11.5px}
  .story-facts{min-height:82px}
  .story-fact{padding:13px 28px}.story-fact strong{font-size:34px}.story-fact p{margin-top:6px;font-size:10.5px}
  .story-fact:not(:last-child)::after{top:13px;bottom:13px}.story-fact:not(:last-child)::before{top:13px}
  .tl-item{height:204px;padding-top:22px}
  .tl-year{font-size:39px}
}
@media(max-width:900px){
  .story-overview{margin-bottom:20px;border-color:rgba(255,255,255,.14)}
  .story-hero{height:470px}
  .story-hero>img{object-position:58% top}
  .story-profile{width:100%;padding:28px 22px;justify-content:flex-end}
  .story-profile h2{font-size:44px}
  .story-profile p{margin-top:14px;font-size:15px;line-height:1.55}.story-profile a{margin-top:14px;font-size:12px}
  .story-facts{grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}
  .story-fact{min-height:112px;padding:20px 18px}
  .story-fact:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .story-fact:not(:last-child)::after,.story-fact:not(:last-child)::before{display:none}
  .story-fact:nth-child(odd)::after{content:'';display:block;position:absolute;top:18px;right:0;bottom:18px;width:1px;background:var(--line)}
  .story-fact:nth-child(odd)::before{content:'';display:block;position:absolute;top:18px;right:0;width:1px;height:10px;background:var(--accent);z-index:1}
  .story-fact strong{font-size:31px;color:var(--ink)}.story-fact p{font-size:11px;color:var(--grey)}
  .story-timeline-hint{display:block;margin:0 0 20px;text-align:right;font-size:12px;color:rgba(255,255,255,.58)}
  .tl{padding:10px calc(50vw - 145px) 20px;scroll-snap-type:x mandatory}
  .tl-item{height:244px;scroll-snap-align:center;opacity:.42}
  .tl-content{max-height:0;opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(14px);transition:max-height .68s var(--ease-out),opacity .45s,clip-path .68s var(--ease-out),transform .68s var(--ease-out)}
  .tl-item.is-current{opacity:1}.tl-item.is-current::before{background:var(--accent);transform:scale(1.3)}
  .tl-item.is-current .tl-year{color:var(--accent)}
  .tl-item.is-current .tl-content{max-height:160px;opacity:1;clip-path:inset(0);transform:none}
}
@media(max-width:520px){
  .story-hero{height:445px}
  .story-profile{padding:24px 18px}
  .story-profile h2{font-size:40px}
  .story-fact{min-height:104px;padding:17px 14px}
  .story-fact strong{font-size:28px;gap:5px}.story-fact strong span{font-size:11px}
  .story-fact p{font-size:10.5px}
}

/* ---------- faq (frozen) ---------- */
#faq .sec-head{max-width:980px;margin-left:auto;margin-right:auto;justify-content:center;text-align:center}
#faq .sec-head>div{width:100%}
#faq .faq{width:min(980px,100%);margin-left:auto;margin-right:auto}
.faq{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:32px 0;font-size:clamp(17px,2vw,22px);font-weight:700;color:var(--ink)}
.faq-q .ic{width:44px;height:44px;flex:none;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;
  font-size:20px;font-weight:400;transition:transform .45s var(--ease-exp),background .3s,border-color .3s,color .3s}
.faq-item.open .faq-q .ic{transform:rotate(45deg);background:var(--accent);border-color:var(--accent);color:var(--accent-on)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .55s var(--ease-exp)}
.faq-a p{padding:0 0 32px;max-width:62em;font-size:15px;line-height:2;color:var(--ink-soft)}

/* ---------- landscape footer ---------- */
.footer-site{position:relative;display:flex;flex-direction:column;height:100svh;min-height:680px;overflow:hidden;color:#000;background:#f2f2f2}
@media(min-width:1001px){
  .footer-site{--footer-transition-height:clamp(160px,13vw,220px);height:calc(100svh + var(--footer-transition-height));padding-top:var(--footer-transition-height);background:linear-gradient(180deg,#fff 0%,#fdfdfd 22%,#fafafa 48%,#f6f6f6 74%,#f2f2f2 100%) top/100% var(--footer-transition-height) no-repeat,#f2f2f2}
}
.footer-shell{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;width:auto;height:48%;margin:0;padding:42px 10.38% 18px 10.72%}
.footer-main{display:grid;grid-template-columns:minmax(210px,1.65fr) minmax(140px,1fr) minmax(90px,.85fr) minmax(90px,.85fr) minmax(190px,1.4fr);gap:clamp(20px,2vw,36px);padding:0;text-align:left}
.footer-main>div:last-child{justify-self:start}
.footer-main h6{margin-bottom:20px;color:#000;font-family:var(--font-cn);font-size:14px;font-weight:600}
.footer-main li a{display:block;padding:6px 0;color:#000;font-size:14px;line-height:1.6;transition:opacity .2s}
.footer-main li a:hover{color:#000;opacity:.62}
.footer-brand-block{display:flex;flex-direction:column;align-items:center;width:max-content;padding:0}
.footer-brand-logo{display:flex;align-items:center;gap:10px;width:max-content;height:24px}
.footer-brand-logo .footer-logo-mark{width:60px;height:auto;object-fit:contain}
.footer-brand-name{font-size:26px;line-height:24px;font-weight:750;letter-spacing:.04em;white-space:nowrap}
.footer-brand-tagline{margin:32px 0 0;text-align:center;font-size:26px;font-weight:600;line-height:1.7;letter-spacing:.08em}
.footer-brand-logo:focus-visible{outline:2px solid #0866eb;outline-offset:5px}
.footer-socials{display:flex;align-items:center;align-self:flex-start;flex-wrap:wrap;gap:0 20px;margin-top:12px}
.footer-wechat{position:relative;z-index:3;color:inherit}
.footer-wechat summary{display:flex;align-items:center;gap:7px;min-height:44px;cursor:pointer;list-style:none;font-size:14px;line-height:1.6;white-space:nowrap;transition:color .2s}
.footer-wechat summary::-webkit-details-marker{display:none}
.footer-wechat summary img{display:none}
.footer-wechat summary::before{content:'';flex-shrink:0;width:23px;height:23px;background:currentColor;mask:url('/assets/img/footer/wechat-icon.svg') center/contain no-repeat;-webkit-mask:url('/assets/img/footer/wechat-icon.svg') center/contain no-repeat}
.footer-wechat-contact summary::before{width:20px;height:20px;mask-image:url('/assets/img/footer/wecom-icon.svg');-webkit-mask-image:url('/assets/img/footer/wecom-icon.svg')}
.footer-wechat summary:hover,.footer-wechat[open] summary{color:#0866eb}
.footer-wechat summary:focus-visible{outline:2px solid #0866eb;outline-offset:3px}
.footer-wechat-panel{position:fixed;inset:auto;margin:0;padding:0 0 14px;width:240px;max-width:calc(100vw - 24px);border:0;overflow:visible;background:transparent;color:#171d19}
.footer-wechat-card{position:relative;padding:22px 16px 16px;background:#fff;border-radius:16px;box-shadow:0 12px 48px rgba(0,0,0,.12);text-align:center}
.footer-wechat-card::after{content:'';position:absolute;left:var(--pointer-x,50%);bottom:-9px;width:18px;height:18px;background:#fff;transform:translateX(-50%) rotate(45deg)}
.footer-wechat-panel.below{padding:14px 0 0}
.footer-wechat-panel.below .footer-wechat-card::after{top:-9px;bottom:auto}
.footer-wechat-card img{width:208px;height:208px;object-fit:cover;object-position:left;border-radius:0}
.footer-wechat-contact .footer-wechat-card img{object-fit:contain;object-position:center;padding:8px}
.footer-wechat-card strong{display:block;margin-bottom:16px;font-size:17px;font-weight:500}
.footer-wechat-card a{display:block}
.f-contact li{padding:6px 0;color:#000;font-size:14px;line-height:1.6;white-space:normal}
.footer-main .f-contact a{display:inline;padding:0;white-space:nowrap}
.f-contact a:hover{color:#000}
.footer-bottom{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;flex-shrink:0;margin-top:auto;padding:48px 10.38% calc(20px + env(safe-area-inset-bottom)) 10.72%;color:#fff;font-size:13px;line-height:1.8;background:linear-gradient(180deg,transparent,rgba(5,24,15,.8) 40%,rgba(5,24,15,.88))}
.footer-records{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.footer-bottom a{display:inline-flex;align-items:center;min-height:24px;color:inherit}
.footer-bottom a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-bottom a:focus-visible{outline:2px solid #fff;outline-offset:4px}
.footer-landscape{position:absolute;z-index:1;right:0;bottom:-80px;left:0;height:56.274vw;overflow:hidden;background:url("/assets/img/footer/footer-landscape-user.png") center/100% 100% no-repeat;-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.06) 10%,rgba(0,0,0,.5) 25%,#000 40%);mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.06) 10%,rgba(0,0,0,.5) 25%,#000 40%)}
.beian-link{display:inline-flex!important;align-items:center;gap:6px}
.beian-link img{width:18px;height:20px;object-fit:contain;flex:none}
@media(min-width:701px) and (max-width:1150px){
  .footer-main{grid-template-columns:1.4fr 1fr 1fr;gap:32px}
  .footer-brand-block{grid-row:span 2}
  .footer-contact-block{grid-column:3;grid-row:2}
  .footer-shell{height:auto;gap:48px}
}
@media(max-width:700px){
  .footer-site{height:auto;min-height:100svh}
  .footer-shell{width:calc(100% - 40px);padding-top:50px}
  .footer-main{grid-template-columns:1fr 1fr;gap:34px 24px;padding:40px 0 36px}
  .footer-brand-block{grid-column:1/-1;padding-right:0}
  .footer-bottom{align-items:flex-start;flex-direction:column;padding-inline:20px;overflow-wrap:anywhere}
  .footer-bottom .f-legal{gap:10px 18px}
}

/* ---------- floating actions ---------- */
.float-talk{position:fixed;right:26px;bottom:26px;z-index:1150;display:inline-flex;align-items:center;
  background:var(--accent);color:var(--accent-on);font-weight:700;font-size:14.5px;padding:16px 26px;border-radius:999px;
  box-shadow:0 18px 40px -12px rgba(var(--accent-rgb),.38);opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(14px);transition:box-shadow .4s,opacity .4s var(--ease-out),transform .4s var(--ease-out),visibility 0s .4s}
.float-talk.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.float-talk:hover{box-shadow:0 22px 46px -12px rgba(var(--accent-rgb),.48)}
.float-top{position:fixed;right:32px;bottom:96px;z-index:1150;width:48px;height:48px;border-radius:50%;
  background:var(--ink);color:#fff;display:grid;place-items:center;font-size:17px;
  opacity:0;visibility:hidden;transform:translateY(14px);transition:all .45s var(--ease-out)}
.float-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.float-top:hover{background:var(--accent);color:var(--accent-on)}
@supports ((-webkit-mask-image:url("")) or (mask-image:url(""))){.float-top{font-size:0}}
@media(max-width:640px){.float-talk{right:16px;bottom:16px;padding:14px 20px}.float-top{right:20px;bottom:84px}}

/* ---------- lead assistant ---------- */
.lead-overlay{position:fixed;inset:0;z-index:4000;background:rgba(13,15,14,.58);
  opacity:0;visibility:hidden;transition:opacity .45s var(--ease-out),visibility 0s .45s}
.lead-overlay.open{opacity:1;visibility:visible;transition:opacity .45s var(--ease-out),visibility 0s}
.lead-panel{position:absolute;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--bg);color:var(--ink);
  display:flex;flex-direction:column;transform:translate3d(60px,0,0);opacity:0;transition:transform .5s var(--ease-out),opacity .5s var(--ease-out)}
.lead-overlay.open .lead-panel{transform:translate3d(0,0,0);opacity:1}
@media(min-width:641px){
  .lead-panel{border-radius:var(--radius) 0 0 var(--radius);overflow:hidden}
}
.lead-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:34px 36px 22px}
.lead-head h3{font-size:22px;font-weight:600;line-height:1.4}
.lead-head p{display:none}
.lead-close{width:44px;height:44px;flex:none;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;
  font-size:17px;transition:background .3s,color .3s,transform .4s var(--ease-out)}
.lead-close:hover{background:var(--ink);color:var(--bg);transform:rotate(90deg)}
.lead-progress{display:flex;gap:6px;padding:0 36px 20px}
.lead-progress i{flex:1;height:3px;border-radius:3px;background:var(--line);overflow:hidden;position:relative}
.lead-progress i::after{content:'';position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.lead-progress i.done::after{transform:scaleX(1)}
.lead-body{flex:1;overflow-y:auto;padding:6px 36px 20px}
.lead-step{display:none;border:0;margin:0;padding:0;min-inline-size:0;animation:stepIn .5s var(--ease-out)}
.lead-step.active{display:block}
@keyframes stepIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.lead-step h4{font-size:17px;font-weight:600;margin-bottom:6px}
.lead-step .hint{display:none}
.opt-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.opt-grid.one{grid-template-columns:1fr}
.opt{border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;font-size:14.5px;font-weight:600;text-align:left;
  transition:border-color .3s,background .3s,transform .3s var(--ease-out);min-height:52px;display:flex;align-items:center;gap:10px}
.opt:hover{border-color:var(--ink)}
.opt.sel{border-color:var(--accent);background:rgba(var(--accent-rgb),.1);color:var(--ink)}
.opt.sel::before{content:'✓';font-weight:600;color:var(--accent)}
.lead-field{margin-bottom:16px}
.lead-field label{display:block;font-size:12.5px;font-weight:700;margin-bottom:8px;color:var(--ink-soft)}
.lead-field label i{font-style:normal;color:var(--grey);font-weight:400}
.lead-field input,.lead-field textarea{width:100%;border:1.5px solid var(--line);border-radius:14px;background:#fff;
  padding:14px 16px;font-size:15px;font-family:inherit;color:var(--ink);transition:border-color .3s;outline:none}
.lead-field input:focus,.lead-field textarea:focus{border-color:var(--accent)}
.lead-field textarea{min-height:90px;resize:vertical}
.lead-err{display:none;font-size:12.5px;color:#d42626;margin:4px 0 14px}
.lead-err.show{display:block;animation:stepIn .3s var(--ease-out)}
.lead-privacy{font-size:12px;line-height:1.8;color:var(--grey);background:rgba(17,17,17,.04);border-radius:12px;padding:12px 16px;margin-top:8px}
.lead-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 36px 30px;border-top:1px solid var(--line)}
.lead-back{font-size:14px;font-weight:600;color:var(--grey);padding:12px 8px;transition:color .3s}
.lead-back:hover{color:var(--ink)}
.lead-back:disabled{opacity:.3;pointer-events:none}
.lead-skip{font-size:13px;color:var(--grey);text-decoration:underline;padding:12px 8px}
.lead-skip:hover{color:var(--ink)}
.lead-next{margin-left:auto}
.lead-next:disabled{opacity:.58;cursor:wait;pointer-events:none}
.lead-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.lead-success{text-align:center;padding:24px 10px}
.lead-success .ok{width:56px;height:56px;margin:0 auto 18px;border-radius:50%;background:var(--accent);color:var(--accent-on);
  display:grid;place-items:center;font-size:38px;font-weight:600;animation:popIn .6s var(--ease-out)}
@keyframes popIn{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.lead-success h4{font-size:24px;font-weight:600;margin-bottom:12px}
.lead-success p{font-size:14.5px;color:var(--ink-soft);line-height:1.9;max-width:26em;margin:0 auto 30px}
.lead-success .lead-wechat{margin:0 auto 24px}
.lead-wechat strong{display:block;font-size:16px;line-height:1.6}
.lead-wechat img{display:block;width:208px;max-width:100%;height:auto;margin:12px auto;background:#fff;padding:8px;border-radius:12px}
.lead-success .lead-wechat p{font-size:13px;margin:0 auto 8px}
.lead-wechat a{font-size:13px;text-decoration:underline;text-underline-offset:4px}
.lead-success .acts{display:flex;flex-direction:column;gap:12px;align-items:center}
.lead-success .acts .btn-light,.lead-success .acts .btn-ghost{padding:14px 30px;font-size:14px}
.lead-success .acts .btn-light{color:var(--accent-on)}
.lead-success .acts .btn-light:hover{color:var(--ink)}
.lead-success .acts .btn-ghost{color:var(--accent-ink)}
.lead-success .acts .btn-ghost{color:var(--ink)}
@media(max-width:640px){
  .lead-panel{top:auto;left:0;right:0;bottom:0;width:100%;max-height:94svh;border-radius:24px 24px 0 0;transform:translate3d(0,60px,0)}
  .lead-overlay.open .lead-panel{transform:translate3d(0,0,0)}
  .lead-head{padding:26px 22px 16px}
  .lead-progress{padding:0 22px 16px}
  .lead-body{padding:6px 22px 16px}
  .lead-foot{padding:16px 22px 24px}
  .opt-grid{grid-template-columns:1fr}
  .opt{min-height:48px}
}

/* ---------- light section theme ---------- */
.loader{background:#fff}
.loader-word{color:var(--ink)}
.loader-bar{background:var(--line)}
.drawer{background:#fff;color:var(--ink)}
.drawer-acc,.drawer-direct{border-color:var(--line)}
.drawer-sub a{color:var(--ink-soft)}
.hamburger.open i{background:var(--ink)}
.marquee{background:var(--accent);color:#fff;border-color:var(--accent);padding:42px 0}
.marquee-track span{font-size:clamp(15px,1.55vw,21px)}
/* 暗场：恢复首页的明暗节奏。带 .section-dark 的四个板块（服务 / 团队 / 信任 / 历程）
   重新使用深色底，与浅色板块交替，页面才有段落感。 */
/* 深色区域统一切到"亮一档"强调色。因为是 CSS 变量，所有子元素自动继承，
   不需要为每个组件再写一遍深色版本。 */
/* 跑马灯是大面积实底色带，用深档 + 白字更稳；亮档留给点状强调（勾选/序号/小按钮）。 */
.section-dark,.hero{
  --accent:var(--accent-lift);
  --accent-rgb:var(--accent-lift-rgb);
  --accent-on:#fff;
}
.section-dark{background:var(--dark);color:var(--light-on-dark)}
.section-dark .svc-list,
.section-dark .stats{border-color:rgba(255,255,255,.13)}
.section-dark .svc,
.section-dark .stat,
.section-dark .trust-points li,
.section-dark .tl-item{border-color:rgba(255,255,255,.13)}
.section-dark .svc-tags i{border-color:rgba(255,255,255,.22)}
.section-dark .svc::before{background:var(--accent)}
.section-dark .svc:hover *,
.section-dark .svc:focus-visible *{color:var(--accent-on)}
.section-dark .svc:hover .svc-arrow,
.section-dark .svc:focus-visible .svc-arrow{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff!important}
.section-dark .tl-item:hover{background:rgba(255,255,255,.05)}
.section-dark .tl-item::before{background:var(--light-on-dark)}
/* V3 typography hierarchy */
h1,h2,h3,h4,h5,h6,.btn,.link-big,.faq-q{font-weight:600}
.loader-word,.stat b,
.trust-points li::before,.testi-q::before,.insight h3,.tl-year,
.footer-main h6,.lead-head h3,.lead-step h4,.opt.sel::before,
.lead-success .ok,.lead-success h4{font-weight:600}
.nav-cta{font-weight:500}
.sec-desc,.svc-desc,.insight p,.faq-a p{color:var(--ink);opacity:1}
.section-dark .sec-desc,.section-dark .svc-desc,.section-dark .tl-item p{color:var(--light-on-dark);opacity:.66}
@media(min-width:901px){
  #story{
    --accent:var(--brand-green);
    --accent-rgb:24,201,104;
    background:var(--bg-white);
    color:var(--ink);
  }
  #story .sec-desc,#story .tl-item p{color:var(--ink);opacity:.62}
  #story .tl-item{border-color:var(--line)}
  #story .tl-item::before{background:var(--ink)}
  #story .tl-item:hover{background:rgba(13,15,14,.035)}
}

@media(max-width:640px){
  .sec-title{font-size:clamp(32px,9vw,42px)}
}

/* 手机端：沉浸首屏、纵向项目展示，沿用本站字体与素材。 */
.hero-scroll{display:none}
.drawer:not(.open){visibility:hidden}
body:has(.drawer.open),body.lead-open{overflow:hidden}
body:has(.drawer.open) .nav{background:#fff;color:var(--ink);transform:none}
.drawer{z-index:1190;overscroll-behavior:contain}
@media(max-width:900px){
  html{scroll-padding-top:80px}
  .grain{display:none}
  .nav,.nav.scrolled{padding:12px 20px}
  .nav.hide{transform:none}
  .logo{gap:3px}.logo-mark{width:40px;height:40px}.logo-word-art{width:82px;height:28px}
  .hero{min-height:100svh}
  .hero-media{background:#0d0f0e url('/assets/hero-poster.jpg?v=20260903-restored') center/cover no-repeat;transform:none!important}
  .hero-media canvas{display:none!important}
  .hero-inner{padding:100px 24px 144px;transform:none!important}
  .hero h1{max-width:100%;font-size:clamp(30px,10vw,52px);line-height:1.5;letter-spacing:0;white-space:normal;transform:none!important}
  .hero-line{display:block;white-space:nowrap}.hero-comma{display:none}
  .hero-bottom{margin-top:30px}.hero-actions{margin-top:0}
  .hero-actions .btn{min-height:52px;padding:14px 30px;font-size:15px;color:#0d0f0e}
  .hero-scroll{position:absolute;z-index:2;bottom:max(32px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;min-width:88px;min-height:52px;font-size:12px;letter-spacing:.12em}
  .hero-scroll::after{content:'';width:20px;height:20px;background:currentColor;-webkit-mask:var(--circle-arrow-mask) center/contain no-repeat;mask:var(--circle-arrow-mask) center/contain no-repeat;rotate:90deg}
  .marquee{padding:18px 0}.marquee-track span{font-size:13px;padding:0 18px;gap:18px}
  .section,.section-dark{padding:64px 20px}
  .sec-head{margin-bottom:28px;gap:18px}
  .sec-title,.team-delivery .sec-title{font-size:clamp(28px,7.6vw,40px);line-height:1.35;text-wrap:balance}
  .team-grid.rv,.trust-photos.rv,.product-lab-grid.rv,.insights-grid.rv{opacity:1;transform:none}
  [data-reveal-group] [data-reveal-item]{opacity:1;translate:none;scale:1;transition-delay:0s}
  .case-link{font-size:14px;min-height:44px;margin-top:8px;color:var(--accent-deep)}
  .story-hero{height:360px}.story-profile h2{font-size:32px}
  .story-fact p{font-size:12px}
  .ecosystem{padding:72px 20px}.ecosystem-inner{min-height:360px}
  .ecosystem-core{width:100%;top:50%}.ecosystem h2{font-size:clamp(26px,7vw,38px);line-height:1.6;white-space:normal}
  .ecosystem-title-sep{display:block;font-size:18px;line-height:1}
  .ecosystem-word{opacity:.12;filter:none}.ecosystem-word.ai{font-size:100px}.ecosystem-word.web,.ecosystem-word.app{font-size:80px}
  .team-delivery{margin:0;border-radius:32px}
  .trust-points{grid-template-columns:1fr;grid-template-rows:auto;grid-auto-flow:row;gap:10px}
  .trust-points li{justify-content:flex-start;text-align:left;padding:4px 0;font-size:14px;gap:12px}
  .team-grid,.trust-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}
  .team-grid .team-card,.trust-photos figure{aspect-ratio:4/3}
  .trust-photos{margin-bottom:0}.trust-photos figcaption{left:8px;bottom:8px;padding:5px 9px;font-size:11px}
  .team-more{display:flex;justify-content:center;margin-top:28px}
  .insight{grid-template-columns:minmax(0,1fr) 44px;gap:10px 12px}
  .insight .link-arrow{width:44px;height:44px}.insight h3{font-size:21px}.insight p{font-size:14px}
  .faq-q{font-size:16px;line-height:1.65;padding:22px 0;gap:16px}
  .faq-a p{font-size:14px;line-height:1.85}
  .footer-main li a{min-height:40px;display:flex;align-items:center}
  .footer-shell{height:auto;padding-bottom:180px}
  .float-talk{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));min-height:48px;padding:12px 20px;color:#0d0f0e}
  .float-top{right:18px;bottom:calc(80px + env(safe-area-inset-bottom))}
  .drawer{padding:88px 24px calc(32px + env(safe-area-inset-bottom))}
  .drawer-acc>button,.drawer-direct{font-size:24px;font-family:var(--font-display);padding:18px 0}
  .drawer-sub .grp{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-bottom:20px}
  .drawer-sub .grp b{grid-column:1/-1;color:#626762;letter-spacing:.04em;margin:12px 0 6px}
  .drawer-sub a{min-height:44px;display:flex;align-items:center;font-size:14px}
  .lead-panel{max-height:94dvh}.lead-body{overscroll-behavior:contain}
  .lead-field input,.lead-field textarea{font-size:16px}
  .lead-foot{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
  :focus-visible{outline:2px solid var(--accent);outline-offset:4px}
}
/* reduce motion respect */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
