
/* ============================================================
   1. 主题变量（暗色 / 亮色）
   ============================================================ */
:root{
  color-scheme: dark;
  --bg:#070B14; --bg-2:#0A1120; --surface:#0A101C; --surface-2:#0D1626; --surface-3:#0A1020;
  --panel:rgba(255,255,255,.05); --panel-2:rgba(255,255,255,.032); --panel-3:rgba(255,255,255,.07);
  --panel-hover:rgba(255,255,255,.11);
  --line:rgba(255,255,255,.12); --line-soft:rgba(255,255,255,.075); --dot:rgba(255,255,255,.055);
  --t1:#F4F8FD; --t2:#C8D2E0; --t3:#9DACC0; --t4:#72829A;
  --cyan:#22D3EE; --cyan-l:#7DE9F7; --blue:#4F8DF7; --blue-l:#A8C4FF;
  --purple:#8B5CF6; --purple-l:#C4B5FD; --green:#34D399; --green-l:#6EE7B7;
  --amber:#FBBF24; --red:#F87171;
  --grad:linear-gradient(100deg,#22D3EE 0%,#4F8DF7 48%,#A78BFA 100%);
  --nav-bg:rgba(7,11,20,.62); --nav-bg-solid:rgba(7,11,20,.88);
  --foot-bg:rgba(7,11,20,.6);
  --float-bg:rgba(12,18,32,.78); --float-bg-solid:rgba(10,16,32,.97);
  --cta-bg:linear-gradient(180deg,rgba(18,26,45,.88),rgba(10,15,28,.96));
  --cta-line:rgba(255,255,255,.09); --sh:rgba(0,0,0,.45); --logo-ink:#E8F0FA;
  --sec-line:rgba(255,255,255,.06);
  --glow-1:rgba(34,211,238,.10); --glow-2:rgba(139,92,246,.10); --glow-3:rgba(79,141,247,.08);
  --ease:cubic-bezier(.22,.8,.28,1);
  --maxw:1160px; --nav-h:68px;
}
html[data-theme="light"]{
  color-scheme: light;
  --bg:#F4F7FB; --bg-2:#EAF0F8; --surface:#FFFFFF; --surface-2:#F8FAFC; --surface-3:#FFFFFF;
  --panel:rgba(15,32,58,.035); --panel-2:rgba(15,32,58,.022); --panel-3:rgba(15,32,58,.05);
  --panel-hover:rgba(15,32,58,.08);
  --line:rgba(15,32,58,.11); --line-soft:rgba(15,32,58,.06); --dot:rgba(15,32,58,.06);
  --t1:#0B1524; --t2:#3A4A60; --t3:#5A6B82; --t4:#8494A8;
  --cyan:#0E9BB8; --cyan-l:#0B7C93; --blue:#2563EB; --blue-l:#1D4ED8;
  --purple:#7C3AED; --purple-l:#6D28D9; --green:#059669; --green-l:#047857;
  --amber:#B45309; --red:#DC2626;
  --grad:linear-gradient(100deg,#0E9BB8 0%,#2563EB 48%,#7C3AED 100%);
  --nav-bg:rgba(246,249,253,.82); --nav-bg-solid:rgba(246,249,253,.96);
  --foot-bg:rgba(246,249,253,.7);
  --float-bg:rgba(255,255,255,.92); --float-bg-solid:rgba(255,255,255,.98);
  --cta-bg:linear-gradient(180deg,#FFFFFF,#F2F7FD); --cta-line:rgba(15,32,58,.08); --sh:rgba(15,32,58,.10);
  --logo-ink:#13203A; --sec-line:transparent;
  --glow-1:rgba(34,211,238,.14); --glow-2:rgba(139,92,246,.11); --glow-3:rgba(79,141,247,.10);
}

/* ============================================================
   2. 基础重置
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--t1);
  font-family:'Inter','Noto Sans SC',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background-color .38s var(--ease),color .38s var(--ease);
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(900px 620px at 10% -6%,var(--glow-1),transparent 62%),
    radial-gradient(900px 700px at 94% 6%,var(--glow-2),transparent 64%),
    radial-gradient(1100px 800px at 50% 108%,var(--glow-3),transparent 66%);
  transition:opacity .38s var(--ease);
}
#bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.28}
html[data-theme="light"] #bg{opacity:.16}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
svg{display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%;position:relative;z-index:2}

.skip-link{
  position:fixed;left:16px;top:-100px;z-index:999;
  padding:10px 16px;border-radius:8px;
  background:var(--grad);color:#fff;font-size:13px;font-weight:600;
  transition:top .22s var(--ease);
}
.skip-link:focus{top:12px}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:4px}

/* ============================================================
   3. 通用板块
   ============================================================ */
.sec{padding:64px 0;position:relative;overflow:hidden}
.sec.tint{background:
  radial-gradient(760px 300px at 82% 0%,rgba(79,141,247,.06),transparent 72%),
  linear-gradient(180deg,var(--panel-2),transparent 55%)}
.sec.tint::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(var(--dot) 1px,transparent 1px);
  background-size:26px 26px;
  mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.5) 30%,rgba(0,0,0,.5) 70%,transparent);
  -webkit-mask-image:linear-gradient(180deg,transparent,rgba(0,0,0,.5) 30%,rgba(0,0,0,.5) 70%,transparent)}
.sec + .sec{border-top:1px solid var(--sec-line)}
.sec-head{margin-bottom:26px;position:relative;z-index:1;text-align:left}
.sec-title{font-size:clamp(22px,2.5vw,29px);font-weight:700;line-height:1.34;letter-spacing:-.015em;text-wrap:balance}
.sec-desc{color:var(--t2);font-size:14px;line-height:1.78;margin-top:9px;text-wrap:pretty;overflow-wrap:break-word;word-break:normal}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 24px;border-radius:10px;font-size:14.5px;font-weight:500;
  transition:.26s var(--ease);white-space:nowrap;line-height:1}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 6px 22px rgba(79,141,247,.30)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(79,141,247,.45)}
.btn-ghost{background:var(--panel);border:1px solid var(--line);color:var(--t1)}
.btn-ghost:hover{background:var(--panel-hover);border-color:var(--line)}
.btn-sm{padding:9px 18px;font-size:13.5px;border-radius:9px}
.rv{
  transition:opacity .7s var(--ease),transform .7s var(--ease);
  transition-delay:var(--d,0s)}
.rv.reveal-pending{opacity:0;transform:translateY(18px)}
.rv.in{opacity:1;transform:none}

/* ============================================================
   4. 页面基础
   ============================================================ */
main{padding-top:var(--nav-h);min-height:100vh;display:flex;flex-direction:column}
.page{display:none;flex:1 0 auto;width:100%}
.page.active{display:block;animation:pageIn .42s var(--ease)}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ============================================================
   5. 顶部导航
   ============================================================ */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);
  display:flex;align-items:center;border-bottom:1px solid transparent;
  background:var(--nav-bg);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transition:height .3s var(--ease),background .3s,border-color .3s,backdrop-filter .3s}
.site-nav.scrolled{height:60px;background:var(--nav-bg-solid);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom-color:var(--line-soft)}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 24px;width:100%;
  display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-box{width:auto;height:34px;display:grid;place-items:center;background:none;border:none}
.brand-logo .lg-ink{fill:var(--logo-ink);transition:fill .35s var(--ease)}
.brand-logo .lg-rule{stroke:var(--logo-ink);opacity:.55;transition:stroke .35s var(--ease)}
.nav-menu{display:flex;gap:2px;margin-left:auto}
.nav-menu .nav-contact{display:none}
.nav-menu a{padding:9px 12px;border-radius:8px;font-size:13.5px;color:var(--t2);
  transition:.22s;position:relative;white-space:nowrap}
.nav-menu a:hover{color:var(--t1);background:var(--panel-3)}
.nav-menu a.active{color:var(--t1)}
.nav-menu a.active::after{content:'';position:absolute;left:12px;right:12px;bottom:1px;
  height:2px;border-radius:2px;background:var(--grad)}
.nav-inner > .btn{margin-left:10px;flex-shrink:0}
.theme-btn{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;
  background:var(--panel);border:1px solid var(--line-soft);color:var(--t2);
  transition:.25s var(--ease);flex-shrink:0;margin-left:6px}
.theme-btn:hover{background:var(--panel-hover);color:var(--t1);border-color:var(--line);transform:translateY(-1px)}
.theme-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[data-theme="dark"] .theme-btn .ic-sun{display:block}
html[data-theme="dark"] .theme-btn .ic-moon{display:none}
html[data-theme="light"] .theme-btn .ic-sun{display:none}
html[data-theme="light"] .theme-btn .ic-moon{display:block}
.nav-toggle{display:none;width:38px;height:38px;border-radius:10px;
  background:var(--panel);border:1px solid var(--line-soft);
  align-items:center;justify-content:center;flex-direction:column;gap:4px;
  flex-shrink:0;margin-left:auto}
.nav-toggle span{display:block;width:16px;height:1.6px;border-radius:2px;background:var(--t2);transition:.25s var(--ease)}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.6px) rotate(-45deg)}

/* ============================================================
   6. 页头（内页通用）
   ============================================================ */
.page-head{padding:56px 0 50px;position:relative;overflow:hidden;
  background:radial-gradient(820px 340px at 16% -10%,rgba(79,141,247,.13),transparent 70%)}
.page-head::after{content:'';position:absolute;left:50%;bottom:0;width:min(1100px,92%);height:1px;
  transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(79,141,247,.35),transparent)}
.head-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:44px;align-items:center;position:relative;z-index:1}
.head-copy{min-width:0}
.head-visual{position:relative;display:grid;place-items:center;min-width:0}
.head-visual svg{width:100%;max-width:340px;height:auto;overflow:visible}
.page-head h1{font-size:clamp(26px,3.2vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.28;
  position:relative;text-wrap:balance}
.page-head p{color:var(--t2);font-size:14.5px;line-height:1.8;margin-top:12px;position:relative;
  max-width:620px;text-wrap:pretty}

/* ============================================================
   7. Hero
   ============================================================ */
.hero-sec{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center;padding:48px 0 68px;position:relative}
.hero-sec::after{content:'';position:absolute;left:50%;bottom:0;width:min(1100px,92%);height:1px;
  transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(79,141,247,.35),transparent)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero-copy > *{animation:up .8s var(--ease) both}
.hero-copy > *:nth-child(1){animation-delay:.05s}
.hero-copy > *:nth-child(2){animation-delay:.12s}
.hero-copy > *:nth-child(3){animation-delay:.19s}
.hero-copy > *:nth-child(4){animation-delay:.26s}
.hero-copy > *:nth-child(5){animation-delay:.33s}
.hero-copy > *:nth-child(6){animation-delay:.40s}
@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;
  background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.30);
  font-size:12.5px;color:var(--cyan-l);font-weight:500}
.badge i{width:6px;height:6px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 10px var(--cyan);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.hero-lead{font-size:clamp(21px,2.5vw,29px);font-weight:700;line-height:1.42;letter-spacing:-.015em;
  max-width:600px;margin-top:20px;text-wrap:balance}
.hero-lead .hl{color:var(--blue-l)}
.hero-desc{color:var(--t2);font-size:15px;line-height:1.85;margin-top:16px;max-width:540px;text-wrap:pretty}
.hero-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.value-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px;padding-top:22px;border-top:1px solid var(--line-soft)}
.value-strip li{font-size:12.5px;color:var(--t2);padding:6px 13px;border-radius:999px;
  background:var(--panel);border:1px solid var(--line-soft);
  display:flex;align-items:center;gap:6px}
.value-strip li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 6px var(--cyan)}
.hero-visual{display:grid;place-items:center;position:relative}
.hero-visual::before{content:'';position:absolute;width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(79,141,247,.20),transparent 68%);filter:blur(24px)}
.orbit{width:100%;max-width:470px;height:auto;position:relative;overflow:visible}
.rot{transform-origin:260px 260px;animation:spin 40s linear infinite}
.rot-r{transform-origin:260px 260px;animation:spin 30s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.orbit text{font-family:inherit}

/* ============================================================
   8. 产品体系
   ============================================================ */
.plat-flow{display:grid;grid-template-columns:minmax(0,1fr) 46px minmax(0,1fr) 46px minmax(0,1fr);
  align-items:stretch;gap:0;position:relative;z-index:1}
.pf-step{position:relative;padding:26px 24px 26px;border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--line-soft);transition:.34s var(--ease)}
.pf-step.p1{--pc:var(--cyan);--pc-rgb:34,211,238}
.pf-step.p2{--pc:var(--blue);--pc-rgb:79,141,247}
.pf-step.p3{--pc:var(--purple-l);--pc-rgb:167,139,250}
.pf-step::before{content:'';position:absolute;top:0;left:0;right:0;height:2px}
.pf-step.p1::before{background:linear-gradient(90deg,#22D3EE,#4F8DF7)}
.pf-step.p2::before{background:linear-gradient(90deg,#4F8DF7,#A78BFA)}
.pf-step.p3::before{background:linear-gradient(90deg,#8B5CF6,#34D399)}
.pf-step:hover{transform:translateY(-4px);border-color:rgba(var(--pc-rgb),.42);
  background:linear-gradient(180deg,rgba(var(--pc-rgb),.10),var(--panel-2))}
.pf-top{display:flex;align-items:baseline;gap:11px;margin-bottom:16px;padding-bottom:14px;
  border-bottom:1px solid rgba(var(--pc-rgb),.20);position:relative;z-index:1}
.pf-top h3{font-size:19px;font-weight:700;letter-spacing:-.01em;transition:.3s var(--ease);text-wrap:balance}
.pf-step:hover .pf-top h3{color:var(--pc)}
.pf-list{display:flex;flex-direction:column;gap:12px;position:relative;z-index:1}
.pf-list li{display:grid;grid-template-columns:19px minmax(0,1fr);gap:10px;align-items:start;
  font-size:12.5px;line-height:1.72;color:var(--t2);transition:.28s var(--ease);
  text-wrap:pretty;overflow-wrap:break-word;word-break:normal;hyphens:none;line-break:strict}
.pf-list li > span:last-child{min-width:0}
.pf-list .n{width:19px;height:19px;border-radius:6px;display:grid;place-items:center;
  font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;
  color:var(--pc);background:rgba(var(--pc-rgb),.10);
  border:1px solid rgba(var(--pc-rgb),.26);margin-top:2px;transition:.28s var(--ease)}
.pf-step:hover .pf-list li{color:var(--t1)}
.pf-step:hover .pf-list .n{background:rgba(var(--pc-rgb),.20);border-color:rgba(var(--pc-rgb),.52);box-shadow:0 0 10px rgba(var(--pc-rgb),.28)}
.pf-arrow{display:grid;place-items:center;position:relative}
.pf-arrow::before{content:'';width:1px;height:36px;background:linear-gradient(180deg,transparent,rgba(79,141,247,.4),transparent)}
.pf-arrow::after{content:'';position:absolute;width:6px;height:6px;border-top:1.5px solid rgba(125,233,247,.7);
  border-right:1.5px solid rgba(125,233,247,.7);transform:rotate(45deg);right:calc(50% - 3px)}

/* ============================================================
   9. 产品架构
   ============================================================ */
#sec-arch .sec-desc{font-size:13px;line-height:1.7}
.iso-stage{display:grid;grid-template-columns:400px minmax(0,1fr);gap:32px;align-items:start;margin-top:10px}
.iso-canvas-wrap{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;
  height:clamp(520px, calc(100vh - 170px), 800px);overflow:hidden}
.iso-canvas{display:block;width:100%;height:100%}
.iso-canvas .iso-layer{opacity:0;transform:translateY(var(--fly,26px)) scale(var(--sc,.9));
  transform-box:fill-box;transform-origin:center;
  transition:opacity .75s var(--ease),transform .95s var(--ease),filter .5s var(--ease)}
.iso-canvas .iso-layer[data-layer="base"]{--fly:52px;--sc:.86}
.iso-canvas .iso-layer[data-layer="cap"]{--fly:0px;--sc:.72}
.iso-canvas .iso-layer[data-layer="ind"]{--fly:-52px;--sc:.86}
.iso-canvas.in-view .iso-layer{opacity:1;transform:none}
.iso-canvas.in-view .iso-layer[data-layer="base"]{transition-delay:.05s}
.iso-canvas.in-view .iso-layer[data-layer="cap"]{transition-delay:.18s}
.iso-canvas.in-view .iso-layer[data-layer="ind"]{transition-delay:.32s}
.iso-canvas .iso-part{cursor:pointer;opacity:0;transform:translateY(14px) scale(.88);
  transform-box:fill-box;transform-origin:center;
  transition:opacity .55s var(--ease),transform .6s var(--ease),filter .3s var(--ease)}
.iso-canvas.in-view .iso-part{opacity:1;transform:none}
.iso-canvas.in-view .iso-layer[data-layer="base"] .iso-part:nth-of-type(1){transition-delay:.40s}
.iso-canvas.in-view .iso-layer[data-layer="base"] .iso-part:nth-of-type(2){transition-delay:.48s}
.iso-canvas.in-view .iso-layer[data-layer="base"] .iso-part:nth-of-type(3){transition-delay:.56s}
.iso-canvas.in-view .iso-layer[data-layer="cap"] .iso-part:nth-of-type(1){transition-delay:.52s}
.iso-canvas.in-view .iso-layer[data-layer="cap"] .iso-part:nth-of-type(2){transition-delay:.58s}
.iso-canvas.in-view .iso-layer[data-layer="cap"] .iso-part:nth-of-type(3){transition-delay:.64s}
.iso-canvas.in-view .iso-layer[data-layer="cap"] .iso-part:nth-of-type(4){transition-delay:.70s}
.iso-canvas.in-view .iso-layer[data-layer="cap"] .iso-part:nth-of-type(5){transition-delay:.76s}
.iso-canvas.in-view .iso-layer[data-layer="cap"] .iso-part:nth-of-type(6){transition-delay:.82s}
.iso-canvas.in-view .iso-layer[data-layer="ind"] .iso-part:nth-of-type(1){transition-delay:.84s}
.iso-canvas.in-view .iso-layer[data-layer="ind"] .iso-part:nth-of-type(2){transition-delay:.90s}
.iso-canvas.in-view .iso-layer[data-layer="ind"] .iso-part:nth-of-type(3){transition-delay:.96s}
.iso-canvas .iso-part:hover,.iso-canvas .iso-part:focus-visible{transition-delay:0s;filter:drop-shadow(0 0 20px rgba(125,233,247,1))}
.iso-canvas .iso-part:hover polygon,.iso-canvas .iso-part:focus-visible polygon{fill:rgba(125,233,247,.28) !important;stroke:#7DE9F7 !important;stroke-width:2 !important}
.iso-canvas .iso-part:hover .iso-name,.iso-canvas .iso-part:focus-visible .iso-name{fill:#FFFFFF !important;font-weight:700}
.iso-canvas .iso-part:focus-visible{outline:none}
.iso-canvas .iso-part.is-on{filter:drop-shadow(0 0 16px rgba(125,233,247,.95))}
.iso-canvas.in-view .iso-part.is-off{opacity:.26;transition-delay:.05s}
.iso-canvas .iso-name{font-size:12.5px;font-weight:600;text-anchor:middle;pointer-events:none;
  fill:#E4EEF9;paint-order:stroke;stroke:rgba(6,10,18,.55);stroke-width:2px;stroke-linejoin:round}
.iso-canvas .iso-badge{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  pointer-events:none;paint-order:stroke;stroke:rgba(6,10,18,.6);stroke-width:2px;stroke-linejoin:round}
html[data-theme="light"] .iso-canvas .iso-name{fill:#0C1626;stroke:rgba(255,255,255,.85)}
html[data-theme="light"] .iso-canvas .iso-badge{stroke:rgba(255,255,255,.9)}
html[data-theme="light"] .iso-canvas .iso-part:hover polygon,
html[data-theme="light"] .iso-canvas .iso-part:focus-visible polygon{fill:rgba(14,155,184,.18) !important;stroke:#0E9BB8 !important}
html[data-theme="light"] .iso-canvas .iso-part:hover .iso-name,
html[data-theme="light"] .iso-canvas .iso-part:focus-visible .iso-name{fill:#0B1524 !important}
.iso-canvas.in-view .iso-layer.is-up{transform:translateY(-16px)}
.iso-canvas.in-view .iso-layer.is-down{opacity:.38;transform:translateY(12px) scale(.96)}
.iso-panel{align-self:start;position:sticky;top:88px;padding:24px 26px 26px;border-radius:16px;
  border:1px solid rgba(79,141,247,.28);
  background:radial-gradient(420px 200px at 0% 0%,rgba(79,141,247,.12),transparent 70%),
    linear-gradient(180deg,var(--panel),var(--panel-2));
  box-shadow:0 18px 46px var(--sh);max-height:calc(100vh - 180px);overflow:auto}
.ip-title{font-size:22px;font-weight:700;letter-spacing:-.015em;line-height:1.35}
.ip-intro{font-size:13.5px;line-height:1.8;color:var(--t2);margin:12px 0 15px;text-wrap:pretty;overflow-wrap:break-word}
.ip-points{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.ip-points li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;
  font-size:13px;line-height:1.7;color:var(--t2);text-wrap:pretty;overflow-wrap:break-word;word-break:normal}
.ip-points .n{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;
  font-size:11px;font-weight:800;line-height:1;margin-top:1px;color:var(--cyan-l);
  background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.26)}
.ip-tags{display:flex;flex-wrap:wrap;gap:8px;padding-top:15px;border-top:1px solid var(--line-soft)}
.ip-tags span{font-size:11.5px;line-height:1.5;padding:4px 10px;border-radius:6px;
  color:var(--t3);background:var(--panel);border:1px solid var(--line-soft)}
.ip-back{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:8px 14px;border-radius:9px;
  font-size:12.5px;color:var(--t2);background:var(--panel);border:1px solid var(--line-soft);transition:.22s var(--ease)}
.ip-back:hover{color:var(--t1);background:var(--panel-hover);border-color:var(--line)}
.ip-back svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@keyframes ipIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.iso-panel.swap > *{animation:ipIn .4s var(--ease) both;animation-delay:calc(var(--ai,0) * 45ms)}
.ip-overview{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.ip-ov-item{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:10px;
  background:var(--panel);border:1px solid var(--line-soft);transition:.3s var(--ease)}
.ip-ov-item:hover{background:rgba(79,141,247,.10);border-color:rgba(79,141,247,.30);transform:translateX(3px)}
.ip-ov-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:7px}
.ip-ov-item b{display:block;font-size:13px;font-weight:600;margin-bottom:3px}
.ip-ov-item p{font-size:12px;line-height:1.65;color:var(--t3);overflow-wrap:break-word}

/* ============================================================
   10. 通用产品
   ============================================================ */
.mods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-soft);
  border:1px solid var(--line-soft);border-radius:14px;overflow:hidden;position:relative;z-index:1}
.mod{background:var(--surface);padding:24px 24px 26px;position:relative;overflow:hidden;transition:.32s var(--ease)}
.mod::before{content:attr(data-no);position:absolute;right:14px;top:8px;font-size:46px;font-weight:800;
  line-height:1;letter-spacing:-.05em;color:var(--dot);transition:.35s var(--ease);pointer-events:none}
.mod::after{content:'';position:absolute;left:0;top:0;height:2px;width:0;background:var(--grad);transition:width .5s var(--ease);pointer-events:none}
.mod:hover{background:var(--surface-2);transform:translateY(-2px)}
.mod:hover::before{color:rgba(125,233,247,.14)}
.mod:hover::after{width:100%}
.mod-phase{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.14em;
  color:var(--cyan-l);text-transform:uppercase;margin-bottom:6px}
.mod h3{font-size:16.5px;font-weight:600;letter-spacing:-.01em;margin-bottom:14px;position:relative}
.mod-list li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:8px;font-size:13px;line-height:1.7;
  color:var(--t2);padding:4px 0;align-items:start;text-wrap:pretty;overflow-wrap:break-word}
.mod-list .num{font-size:11.5px;font-weight:700;color:var(--cyan-l);line-height:1.9;font-variant-numeric:tabular-nums}
.mod:nth-child(1){--mc:rgba(34,211,238,.9)}
.mod:nth-child(2){--mc:rgba(79,141,247,.9)}
.mod:nth-child(3){--mc:rgba(139,92,246,.9)}
.mod:nth-child(4){--mc:rgba(52,211,153,.9)}
.mod:nth-child(5){--mc:rgba(251,191,36,.9)}
.mod:nth-child(6){--mc:rgba(125,233,247,.9)}
.mod:hover .mod-phase{color:var(--mc)}

/* ============================================================
   11. 推演预测
   ============================================================ */
.flow3{display:grid;grid-template-columns:1fr 44px 1fr 44px 1fr;align-items:center;margin-bottom:24px;position:relative;z-index:1}
.flow-step{display:flex;gap:11px;align-items:flex-start;padding:6px 0}
.flow-step .fn{font-size:11.5px;font-weight:800;letter-spacing:.1em;color:var(--cyan-l);padding-top:3px;font-variant-numeric:tabular-nums}
.flow-step b{display:block;font-size:14px;font-weight:600;margin-bottom:3px}
.flow-step p{font-size:12px;line-height:1.65;color:var(--t2)}
.flow-line{height:1px;background:linear-gradient(90deg,rgba(79,141,247,.08),rgba(79,141,247,.55));position:relative;margin:0 6px}
.flow-line::after{content:'';position:absolute;right:0;top:-3.5px;width:7px;height:7px;
  border-right:1.5px solid var(--cyan);border-top:1.5px solid var(--cyan);transform:rotate(45deg);opacity:.8}
.sim{border-radius:18px;border:1px solid var(--line);
  background:radial-gradient(520px 240px at 0% 0%,rgba(139,92,246,.13),transparent 68%),
    linear-gradient(160deg,rgba(139,92,246,.06),var(--panel-2) 46%);
  padding:22px;display:grid;grid-template-columns:210px minmax(0,1fr) 220px;gap:18px;align-items:stretch;position:relative;z-index:1}
.sim-col-title{font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--t3);margin-bottom:13px;text-transform:uppercase}
.sim-controls{display:flex;flex-direction:column}
.sfield{margin-bottom:16px}
.sfield .row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.sfield .row span{font-size:12.5px;color:var(--t2)}
.sfield .row b{font-size:12.5px;font-weight:600;color:var(--cyan-l);font-variant-numeric:tabular-nums;
  background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.28);padding:2px 9px;border-radius:6px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:3px;background:var(--line);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;cursor:pointer;
  background:linear-gradient(135deg,#22D3EE,#8B5CF6);box-shadow:0 0 12px rgba(79,141,247,.8);transition:.2s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border:none;border-radius:50%;cursor:pointer;
  background:linear-gradient(135deg,#22D3EE,#8B5CF6);box-shadow:0 0 12px rgba(79,141,247,.8)}
.switch{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:10px;
  font-size:12.5px;color:var(--t2);background:var(--panel);border:1px solid var(--line-soft);cursor:pointer;transition:.25s;user-select:none}
.switch:hover{border-color:var(--line)}
.switch.on{border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.10);color:var(--green-l)}
.track{width:32px;height:18px;border-radius:999px;background:var(--line);position:relative;transition:.3s;flex-shrink:0}
.track::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--t4);transition:.3s var(--ease)}
.switch.on .track{background:rgba(52,211,153,.45)}
.switch.on .track::after{left:16px;background:var(--green);box-shadow:0 0 10px var(--green)}
.sim-scene{margin-top:14px;font-size:11.5px;line-height:1.6;color:var(--cyan-l);padding:9px 11px;border-radius:9px;
  text-align:center;background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.24);transition:.3s var(--ease)}
.sim-stage{border-radius:13px;border:1px solid var(--line-soft);
  background:radial-gradient(600px 300px at 50% 0%,rgba(79,141,247,.10),transparent 70%),var(--panel-2);
  padding:10px 10px 6px;display:flex;flex-direction:column;gap:2px;position:relative;overflow:hidden}
.sim-stage svg{width:100%;height:auto;display:block}
.sim-legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end;padding:2px 8px 6px;position:relative;z-index:2}
.sim-legend li{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--t3)}
.sim-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}
.sim-legend .h{background:var(--red)}
.sim-legend .m{background:var(--amber)}
.sim-legend .l{background:var(--t3)}
.sim-legend .b{background:rgba(148,163,184,.55);border:1px dashed rgba(148,163,184,.9)}
.sim-edge{stroke:rgba(148,163,184,.55);stroke-width:2;fill:none;stroke-linecap:round;opacity:.28;transition:opacity .4s var(--ease),stroke .35s var(--ease)}
.sim-edge.lit{opacity:1;stroke:#F87171}
.sim-edge.lit.soft{stroke:#FBBF24}
.sim-edge.style-flow{stroke-dasharray:6 7}
.sim-edge.style-flow.lit{animation:edgeFlow var(--flowDur,1.1s) linear infinite}
@keyframes edgeFlow{from{stroke-dashoffset:26}to{stroke-dashoffset:0}}
.sim-node{transform-box:fill-box;transform-origin:center;animation:nodeIn .45s var(--ease) both}
@keyframes nodeIn{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
.sim-node circle{fill:var(--surface-3);stroke:var(--line);stroke-width:1.6;transition:fill .4s var(--ease),stroke .4s var(--ease),filter .4s var(--ease)}
.sim-node text{font-size:11px;fill:var(--t2);text-anchor:middle;font-family:inherit;transition:fill .35s}
.sim-node.src circle{fill:rgba(139,92,246,.22);stroke:#A78BFA;stroke-width:2}
.sim-node.src text{fill:var(--purple-l)}
.sim-node.l1 circle{fill:rgba(248,113,113,.16);stroke:#F87171;stroke-width:2;filter:drop-shadow(0 0 8px rgba(248,113,113,.5))}
.sim-node.l1 text{fill:#FCA5A5}
.sim-node.l2 circle{fill:rgba(251,191,36,.14);stroke:#FBBF24;stroke-width:1.8}
.sim-node.l2 text{fill:#FCD34D}
.sim-node.l3 circle{fill:rgba(148,163,184,.13);stroke:#94A3B8;stroke-width:1.6}
.sim-node.l3 text{fill:var(--t2)}
html[data-theme="light"] .sim-node.src text{fill:#6D28D9}
html[data-theme="light"] .sim-node.l1 text{fill:#B91C1C}
html[data-theme="light"] .sim-node.l2 text{fill:#92400E}
.sim-results{display:flex;flex-direction:column}
.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.metric{padding:11px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--line-soft);transition:.3s var(--ease)}
.metric:hover{border-color:rgba(79,141,247,.35);background:rgba(79,141,247,.08)}
.metric b{display:block;font-size:17px;font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums;color:var(--t1)}
.metric b.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.metric span{font-size:11px;color:var(--t3);display:block;margin-top:2px}
.path-title{font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--t3);margin-bottom:8px;text-transform:uppercase}
.path-list{display:flex;flex-direction:column;gap:6px}
.path-item{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;line-height:1.55;color:var(--t2);
  padding:8px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--line-soft);
  opacity:0;transform:translateY(6px);transition:.45s var(--ease)}
.path-item.show{opacity:1;transform:none}
.path-item i{width:6px;height:6px;border-radius:50%;background:var(--red);margin-top:5px;flex-shrink:0;box-shadow:0 0 8px rgba(248,113,113,.8)}
.path-item.warn i{background:var(--amber);box-shadow:0 0 8px rgba(251,191,36,.8)}
.path-item.safe i{background:var(--green);box-shadow:0 0 8px rgba(52,211,153,.8)}

/* ============================================================
   12. 双栏流程
   ============================================================ */
.split-flow{display:grid;grid-template-columns:1fr 1fr;gap:24px;position:relative;z-index:1}
.flow-box{padding:32px;border-radius:16px;background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--line-soft);transition:.35s var(--ease);position:relative;overflow:hidden}
.flow-box::before{content:'';position:absolute;left:0;top:0;height:2px;width:0;background:var(--grad);transition:width .5s var(--ease)}
.flow-box:hover{border-color:rgba(79,141,247,.30);background:linear-gradient(180deg,rgba(79,141,247,.07),var(--panel-2))}
.flow-box:hover::before{width:100%}
.flow-box h3{font-size:20px;font-weight:700;margin-bottom:6px;color:var(--t1)}
.flow-box .sub{font-size:13px;color:var(--t3);margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--line-soft);line-height:1.7}
.step-list{display:flex;flex-direction:column;gap:16px;position:relative}
.step-list::before{content:'';position:absolute;left:16px;top:10px;bottom:10px;width:1px;background:var(--line-soft)}
.step-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:16px;align-items:start;position:relative}
.step-num{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;
  background:var(--surface-3);border:1px solid var(--line);color:var(--t3);position:relative;z-index:1;transition:.3s}
.step-item:hover .step-num{background:rgba(79,141,247,.15);border-color:rgba(79,141,247,.5);color:var(--blue);box-shadow:0 0 14px rgba(79,141,247,.30)}
.step-content b{display:block;font-size:14.5px;font-weight:600;color:var(--t1);margin-bottom:4px}
.step-content p{font-size:12.5px;line-height:1.6;color:var(--t2)}

/* ============================================================
   13. 语义工程
   ============================================================ */
.steps4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;position:relative;z-index:1;border-top:1px solid var(--line-soft);margin-top:6px}
.step4{position:relative;padding:28px 26px 10px 0;transition:.35s var(--ease)}
.step4::before{content:'';position:absolute;left:0;top:-1px;width:0;height:2px;background:var(--grad);transition:width .5s var(--ease)}
.step4::after{content:'';position:absolute;left:0;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan);opacity:.45;transition:.35s var(--ease)}
.step4:hover::before{width:calc(100% - 26px)}
.step4:hover::after{opacity:1;transform:scale(1.35)}
.step4 .s4-no{display:block;font-size:11.5px;font-weight:800;letter-spacing:.16em;color:var(--t4);font-variant-numeric:tabular-nums;margin-bottom:10px;transition:.3s}
.step4:hover .s4-no{color:var(--cyan-l)}
.step4 h4{font-size:16px;font-weight:600;margin-bottom:8px;letter-spacing:-.01em;transition:.3s}
.step4:hover h4{color:var(--blue-l)}
.step4 p{font-size:12.5px;line-height:1.72;color:var(--t2)}

/* ============================================================
   14. 平台能力
   ============================================================ */
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.cap-card{padding:24px;border-radius:14px;background:var(--panel-2);border:1px solid var(--line-soft);transition:.3s var(--ease);position:relative;overflow:hidden}
.cap-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#22D3EE,#8B5CF6);transform:scaleY(0);transform-origin:top;transition:.42s var(--ease)}
.cap-card:hover{border-color:rgba(79,141,247,.32);background:rgba(79,141,247,.06);transform:translateY(-2px)}
.cap-card:hover::before{transform:scaleY(1)}
.cap-card h4{font-size:15px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.cap-card h4::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 8px var(--blue);transition:.3s;flex-shrink:0}
.cap-card:hover h4::before{background:var(--cyan);box-shadow:0 0 12px var(--cyan);transform:scale(1.25)}
.cap-card p{font-size:12.5px;line-height:1.7;color:var(--t2)}

/* ============================================================
   15. 部署
   ============================================================ */
.deploy-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.dep-row{display:flex;flex-direction:column;gap:16px;padding:24px;border-radius:14px;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft);transition:.35s var(--ease)}
.dep-row::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(79,141,247,.16),transparent 62%);opacity:0;transition:.35s var(--ease);pointer-events:none}
.dep-row:hover{transform:translateY(-4px);border-color:rgba(79,141,247,.42)}
.dep-row:hover::before{opacity:1}
.dep-ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:rgba(79,141,247,.12);border:1px solid rgba(79,141,247,.28);position:relative;z-index:1;transition:.35s var(--ease)}
.dep-ico svg{width:21px;height:21px;stroke:var(--blue);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:.35s}
.dep-row:hover .dep-ico{background:rgba(79,141,247,.24);box-shadow:0 0 20px rgba(79,141,247,.35)}
.dep-row:hover .dep-ico svg{stroke:var(--cyan-l)}
.dep-txt{position:relative;z-index:1}
.dep-txt h4{font-size:15.5px;font-weight:600;margin-bottom:6px;letter-spacing:-.01em}
.dep-txt p{font-size:12.5px;line-height:1.72;color:var(--t2)}

/* ============================================================
   16. 上线之后
   ============================================================ */
.upgrade-body{position:relative;z-index:1}
.upgrade-tags{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.up-tag{display:inline-flex;align-items:center;padding:8px 16px;border-radius:99px;font-size:13px;font-weight:500;color:var(--blue-l);background:rgba(79,141,247,.10);border:1px solid rgba(79,141,247,.26);transition:.3s var(--ease)}
.up-tag:hover{background:rgba(79,141,247,.18);border-color:rgba(79,141,247,.5);transform:translateY(-1px)}
.up-tag svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;margin-right:6px}
.up-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.up-card{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:14px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft);transition:.35s var(--ease);position:relative;overflow:hidden}
.up-card::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#22D3EE,#8B5CF6);opacity:0;transition:.35s var(--ease);border-radius:3px 0 0 3px}
.up-card:hover{border-color:rgba(79,141,247,.35);background:linear-gradient(180deg,rgba(79,141,247,.07),var(--panel-2));transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15)}
.up-card:hover::after{opacity:1}
.up-no{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;font-size:12.5px;font-weight:800;color:var(--cyan-l);background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.26);flex-shrink:0;transition:.3s var(--ease);font-variant-numeric:tabular-nums}
.up-card:hover .up-no{background:rgba(34,211,238,.2);border-color:rgba(34,211,238,.55);box-shadow:0 0 12px rgba(34,211,238,.3);color:#fff}
.up-name{font-size:14px;font-weight:600;color:var(--t1);letter-spacing:-.01em}
@media(max-width:980px){.up-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.up-grid{grid-template-columns:1fr}}

/* ============================================================
   17. CTA 横幅
   ============================================================ */
.cta-banner-wrap{padding:24px 0 64px;position:relative;z-index:1}
.cta-banner{position:relative;overflow:hidden;border-radius:24px;padding:52px 48px;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center;
  background:radial-gradient(700px 300px at 6% 0%,rgba(79,141,247,.16),transparent 70%),var(--cta-bg);
  border:1px solid var(--cta-line);box-shadow:0 24px 48px var(--sh)}
.cta-banner::before{content:'';position:absolute;right:-70px;top:-90px;width:340px;height:340px;
  border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.18),transparent 68%);pointer-events:none}
.cta-banner h2{font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.025em;margin-bottom:12px;position:relative;line-height:1.32;text-wrap:balance}
.cta-banner p{font-size:14px;line-height:1.8;color:var(--t2);max-width:640px;position:relative;text-wrap:pretty}
.cta-actions{position:relative;flex-shrink:0;display:flex;gap:14px;flex-wrap:wrap}
.cta-btn-primary{background:var(--grad);color:#fff;padding:14px 34px;font-size:15px;font-weight:500;
  border-radius:99px;display:inline-flex;align-items:center;gap:8px;box-shadow:0 8px 24px rgba(79,141,247,.3);transition:all .3s var(--ease);text-decoration:none;white-space:nowrap}
.cta-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(79,141,247,.45)}
.cta-btn-primary svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .3s}
.cta-btn-primary:hover svg{transform:translateX(4px)}

/* ============================================================
   18. 页脚 & 悬浮栏
   ============================================================ */
.site-footer{position:relative;z-index:2;width:100%;border-top:1px solid var(--line-soft);padding:40px 0 20px;background:var(--foot-bg);margin-top:auto}
.foot-inner{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:36px;padding-bottom:28px;border-bottom:1px solid var(--line-soft)}
.foot-brand .fb{display:flex;align-items:center;gap:9px;margin-bottom:14px}
.foot-brand .logo-box{width:auto;height:28px;background:none;border:none}
.foot-brand .foot-tagline{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:8px;letter-spacing:-.01em;line-height:1.5}
.foot-brand .foot-desc{font-size:12px;line-height:1.75;color:var(--t3);max-width:300px;text-wrap:pretty;overflow-wrap:break-word}
.foot-col h4{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:14px;letter-spacing:.05em;text-transform:uppercase;opacity:.85}
.foot-col ul{display:flex;flex-direction:column;gap:9px;list-style:none;margin:0;padding:0}
.foot-col li,.foot-col a{font-size:12.5px;color:var(--t3);line-height:1.65;transition:color .22s var(--ease)}
.foot-col a:hover{color:var(--cyan-l)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 20px;padding-top:20px;font-size:11.5px;color:var(--t4)}
.foot-bottom .legal{display:flex;gap:18px;flex-wrap:wrap}
.foot-bottom a{color:var(--t4);transition:color .22s var(--ease)}
.foot-bottom a:hover{color:var(--cyan-l)}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr;gap:28px 24px}.foot-brand{grid-column:1/-1}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr;gap:24px}.foot-bottom{flex-direction:column;align-items:flex-start;gap:8px}}
.dock{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:95;display:flex;flex-direction:column;gap:10px}
.dock-btn{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--float-bg);
  border:1px solid var(--line);color:var(--t2);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:.25s var(--ease);position:relative}
.dock-btn svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.dock-btn:hover{background:rgba(79,141,247,.22);border-color:rgba(79,141,247,.55);color:var(--t1);transform:translateX(-3px)}
.dock-btn.active{background:rgba(79,141,247,.25);border-color:rgba(79,141,247,.7);color:var(--t1);box-shadow:0 0 15px rgba(79,141,247,.3)}
.dock-tip{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(6px);
  white-space:nowrap;font-size:12px;padding:6px 11px;border-radius:7px;background:var(--float-bg-solid);
  border:1px solid var(--line);color:var(--t1);opacity:0;pointer-events:none;transition:.22s var(--ease)}
.dock-btn:hover .dock-tip{opacity:1;transform:translateY(-50%) translateX(0)}
.dock-pop{position:fixed;right:78px;z-index:96;width:210px;padding:16px 18px;border-radius:14px;
  background:var(--float-bg-solid);border:1px solid var(--line);box-shadow:0 18px 48px var(--sh);
  backdrop-filter:blur(18px);visibility:hidden;opacity:0;pointer-events:none;transform:translateX(8px);transition:.26s var(--ease)}
.dock-pop.show{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.dock-pop .pt{font-size:11px;letter-spacing:.12em;color:var(--t3);text-transform:uppercase;margin-bottom:8px}
.dock-pop a.tel{display:block;font-size:19px;font-weight:700;color:var(--cyan-l);font-variant-numeric:tabular-nums;letter-spacing:.01em}
.dock-pop a.tel:hover{text-decoration:underline}
.dock-pop p{font-size:11.5px;color:var(--t3);margin-top:8px;line-height:1.6}
#qrPop{padding:16px;text-align:center;width:196px}
#qrPop .qr-box{width:150px;height:150px;margin:0 auto 12px;border-radius:10px;overflow:hidden;background:#fff;padding:6px;display:grid;place-items:center}
#qrPop .qr-box svg{width:100%;height:100%}
#qrPop b{display:block;font-size:13.5px;margin-bottom:3px}
#qrPop span{font-size:11.5px;color:var(--t3);line-height:1.6}
.chat-win{position:fixed;right:78px;bottom:80px;z-index:96;width:328px;height:430px;border-radius:16px;
  background:var(--float-bg-solid);border:1px solid var(--line);box-shadow:0 24px 60px var(--sh);
  backdrop-filter:blur(20px);display:flex;flex-direction:column;overflow:hidden;
  visibility:hidden;opacity:0;pointer-events:none;transform:translateY(14px) scale(.98);transition:.3s var(--ease)}
.chat-win.show{visibility:visible;opacity:1;pointer-events:auto;transform:none}
.chat-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line-soft);background:rgba(79,141,247,.10)}
.chat-head .dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green);flex-shrink:0}
.chat-head b{font-size:13.5px;font-weight:600;display:block;line-height:1.3}
.chat-head span{font-size:11px;color:var(--t3);display:block}
.chat-close{margin-left:auto;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--t3);font-size:17px;transition:.2s}
.chat-close:hover{background:var(--panel-hover);color:var(--t1)}
.chat-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.chat-body::-webkit-scrollbar{width:4px}
.chat-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
.msg{max-width:84%;padding:9px 13px;border-radius:11px;font-size:12.5px;line-height:1.65}
.msg.bot{background:var(--panel-3);border:1px solid var(--line-soft);color:var(--t2);border-bottom-left-radius:3px;align-self:flex-start}
.msg.me{background:linear-gradient(120deg,rgba(34,211,238,.24),rgba(139,92,246,.24));border:1px solid rgba(79,141,247,.4);color:var(--t1);border-bottom-right-radius:3px;align-self:flex-end}
.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line-soft)}
.chat-input input{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 12px;color:var(--t1);font-size:12.5px;outline:none;font-family:inherit;transition:.22s;min-width:0}
.chat-input input:focus{border-color:rgba(79,141,247,.6);background:rgba(79,141,247,.08)}
.chat-input button{padding:8px 15px;border-radius:9px;font-size:12.5px;font-weight:500;background:var(--grad);color:#fff;transition:.22s;flex-shrink:0}
.chat-input button:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(79,141,247,.4)}
#top-btn{position:fixed;right:18px;bottom:24px;width:46px;height:46px;border-radius:13px;background:var(--float-bg);border:1px solid var(--line);color:var(--t2);display:grid;place-items:center;font-size:16px;z-index:94;opacity:0;pointer-events:none;transition:.3s var(--ease);backdrop-filter:blur(12px)}
#top-btn.show{opacity:1;pointer-events:auto}
#top-btn:hover{background:rgba(79,141,247,.25);border-color:rgba(79,141,247,.55);color:var(--t1);transform:translateY(-2px)}

/* ============================================================
   19. 响应式断点
   ============================================================ */
@media(max-width:1100px){
  .sim{grid-template-columns:minmax(0,1fr);gap:14px}
  .sim-controls{flex-direction:row;flex-wrap:wrap;gap:14px;align-items:flex-end}
  .sfield{flex:1;min-width:150px;margin-bottom:0}
  .switch{flex:1;min-width:170px}
  .sim-scene{flex:1 0 100%;margin-top:0}
  .sim-results{flex-direction:row;gap:16px;flex-wrap:wrap}
  .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));flex:1;min-width:260px;margin-bottom:0}
  .path-wrap{flex:1;min-width:220px}
}
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .hero-visual{order:2;max-width:430px;margin:0 auto}
  .plat-flow{grid-template-columns:1fr;gap:12px}
  .pf-arrow{display:none}
  .mods{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow3{grid-template-columns:1fr;gap:14px}
  .flow-line{display:none}
  .steps4{grid-template-columns:1fr 1fr}
  .step4{padding:24px 20px 8px 0}
  .split-flow{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr}
  .iso-stage{grid-template-columns:1fr;gap:24px}
  .iso-panel{position:static;max-height:none;order:2}
  .iso-canvas-wrap{height:auto;max-height:62vh}
  .iso-canvas{max-height:62vh}
  .cta-banner{grid-template-columns:1fr;padding:40px 28px;gap:24px}
  .head-grid{grid-template-columns:1fr;gap:24px}
  .head-visual{order:2;max-width:300px;margin:0 auto}
  .deploy-list{grid-template-columns:1fr}
  .svc-grid{grid-template-columns:1fr}
  .about-stats-grid{grid-template-columns:repeat(2,1fr)}
  .contact-wrap{grid-template-columns:1fr;gap:28px;padding:28px 24px}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-2{grid-template-columns:1fr}
  .ind-item{grid-template-columns:1fr;gap:16px;padding:30px 0 30px 22px}
  .ind-item:hover .ind-left{transform:translateX(8px)}
  .ind-item:hover .ind-right{transform:translateX(10px)}
  .case-grid{grid-template-columns:1fr}
  .coop-list{grid-template-columns:1fr}
  .path-rail{grid-template-columns:1fr;gap:26px;padding-top:0}
  .path-rail::before{left:23px;right:auto;top:8px;bottom:8px;width:1px;height:auto;background:linear-gradient(180deg,rgba(34,211,238,.55),rgba(139,92,246,.55))}
  .path-node{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;text-align:left;padding:0}
  .path-node .pn{margin:0}
  .path-node p{max-width:none;margin:0}
  .serve-grid{grid-template-columns:1fr}
  .news-detail{padding:0}
  .news-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:20px 0}
  .news-row::before{display:none}
  .news-date{grid-column:1 / -1;padding-top:0}
  .news-body{grid-column:1;grid-row:2}
  .news-cat{grid-column:2;grid-row:2;justify-self:end;align-self:start;margin-top:1px}
}
@media(max-width:860px){
  .nav-toggle{display:flex}
  /* 顶栏的毛玻璃效果会约束固定定位子元素，抽屉高度需显式使用视口高度。 */
  .nav-menu{position:fixed;top:var(--nav-h);right:0;bottom:auto;width:min(280px,86vw);
    height:calc(100vh - var(--nav-h));height:calc(100dvh - var(--nav-h));
    background:var(--nav-bg-solid);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border-left:1px solid var(--line-soft);flex-direction:column;align-items:stretch;gap:2px;
    padding:16px 14px;margin-left:0;visibility:hidden;transform:translateX(100%);opacity:0;pointer-events:none;
    transition:transform .28s var(--ease),opacity .28s var(--ease);overflow-y:auto}
  .nav-menu.open{visibility:visible;transform:none;opacity:1;pointer-events:auto}
  .site-nav.scrolled .nav-menu{top:60px;height:calc(100vh - 60px);height:calc(100dvh - 60px)}
  .nav-menu .nav-contact{display:block}
  .nav-menu a{padding:12px 14px;font-size:14px;border-radius:9px}
  .nav-menu a.active::after{display:none}
  .nav-menu a.active{background:var(--panel-3)}
  .dock{right:12px;gap:8px}
  .dock-btn{width:42px;height:42px;border-radius:12px}
  .dock-pop{right:64px}
  .chat-win{right:12px;width:calc(100vw - 24px);max-width:328px;bottom:70px;height:min(430px,70vh)}
  #top-btn{right:12px;width:42px;height:42px}
}
@media(max-width:620px){
  .sec{padding:48px 0}
  .hero-sec{padding:32px 0 52px}
  .mods{grid-template-columns:1fr}
  .steps4{grid-template-columns:1fr}
  .pf-top h3{font-size:18px}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}
  .sim-controls,.sim-results,.path-wrap{min-width:0}
  .foot-inner{flex-direction:column;text-align:center}
  .nav-inner > .btn{display:none}
  .cta-actions{width:100%}
  .cta-btn-primary{width:100%;justify-content:center}
  .sim-legend{justify-content:flex-start}
  .page-head .head-visual{display:none}
  .page-head{padding:44px 0 40px}
  .head-grid{grid-template-columns:1fr}
  .up-grid{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .sec-grid{grid-template-columns:1fr}
  .nd-title{font-size:24px}
  .coop-row{padding:22px 20px 24px}
  .coop-no{font-size:28px}
  .about-stats-grid{grid-template-columns:1fr}
  .about-stat b{font-size:28px}
  .dock{display:none}
  #top-btn{right:12px;bottom:18px}
  .chat-win{right:12px;bottom:18px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ============================================================
   20. 行业方案列表
   ============================================================ */
.ind-list{display:flex;flex-direction:column;gap:0;position:relative;z-index:1}
.ind-item{
  position:relative;
  padding:34px 0 34px 24px;
  border-bottom:1px solid var(--line-soft);
  transition:.3s var(--ease);
  isolation:isolate;
}
.ind-item:last-child{border-bottom:none}
.ind-item::before{
  content:'';position:absolute;left:0;top:34px;bottom:34px;width:3px;border-radius:2px;
  background:linear-gradient(180deg,#22D3EE,#8B5CF6);
  opacity:0;
  transform:scaleY(.4);
  transform-origin:center;
  transition:opacity .4s var(--ease),transform .5s var(--ease);
  z-index:0;
}
.ind-item:hover::before{opacity:1;transform:scaleY(1)}
.ind-item::after{
  content:'';position:absolute;inset:0;border-radius:14px;
  background:radial-gradient(900px 260px at 0% 50%,rgba(79,141,247,.10),transparent 72%);
  opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease);
  z-index:-1;
}
html[data-theme="light"] .ind-item::after{
  background:radial-gradient(900px 260px at 0% 50%,rgba(37,99,235,.09),transparent 72%);
}
.ind-item:hover::after{opacity:1}
.ind-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin-bottom:10px;row-gap:10px}
.ind-head .ind-no{
  margin:0;display:inline-flex;align-items:center;font-size:13px;line-height:1.3;
  font-weight:800;letter-spacing:.14em;color:var(--cyan-l);font-variant-numeric:tabular-nums;
  transition:color .3s var(--ease),text-shadow .35s var(--ease);
}
.ind-head .ind-tags{margin-top:0;align-items:center;display:flex;flex-wrap:wrap;gap:8px}
.ind-head .ind-tags span{line-height:1.5}
.ind-head h2{
  font-size:20px;font-weight:700;letter-spacing:-.015em;text-wrap:balance;margin:0;line-height:1.3;
  transition:color .3s var(--ease);
}
.ind-no{font-size:12px;font-weight:800;letter-spacing:.16em;color:var(--cyan-l);font-variant-numeric:tabular-nums}
.ind-tags span{
  font-size:11.5px;padding:4px 10px;border-radius:6px;
  color:var(--t3);background:var(--panel);border:1px solid var(--line-soft);
  transition:color .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease);
}
.ind-subtitle{
  font-size:13.5px;line-height:1.78;color:var(--t2);margin-bottom:24px;
  text-wrap:pretty;overflow-wrap:break-word;max-width:900px;
  transition:color .3s var(--ease);
}
.ind-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;align-items:stretch}
.ind-pain{
  margin-top:0;padding:16px 18px;border-radius:12px;
  background:rgba(248,113,113,.04);
  border:1px solid rgba(248,113,113,.15);
  height:100%;
  transition:border-color .35s var(--ease),background .35s var(--ease),
             transform .4s var(--ease),box-shadow .4s var(--ease);
}
.ind-pain b{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;color:#FCA5A5;text-transform:uppercase;margin-bottom:8px}
html[data-theme="light"] .ind-pain b{color:#B91C1C}
.ind-pain p{font-size:13px;line-height:1.75;color:var(--t2);margin:0}
.ind-solution{
  padding:16px 18px;border-radius:12px;
  background:rgba(79,141,247,.05);
  border:1px solid rgba(79,141,247,.20);
  height:100%;
  transition:border-color .35s var(--ease),background .35s var(--ease),
             transform .4s var(--ease),box-shadow .4s var(--ease);
}
html[data-theme="light"] .ind-solution{background:rgba(37,99,235,.04);border-color:rgba(37,99,235,.16)}
.ind-solution b{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--blue-l);text-transform:uppercase;margin-bottom:10px}
html[data-theme="light"] .ind-solution b{color:#1D4ED8}
.ind-solution ol{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}
.ind-solution li{
  display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;
  font-size:13px;line-height:1.7;color:var(--t2);
  text-wrap:pretty;overflow-wrap:break-word;
  transition:transform .4s var(--ease),color .3s var(--ease);
}
.ind-solution .sn{
  width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  font-size:10.5px;font-weight:800;color:var(--blue-l);
  background:rgba(79,141,247,.14);border:1px solid rgba(79,141,247,.32);
  margin-top:1px;flex-shrink:0;
  transition:.3s var(--ease);
}
.ind-item:hover .ind-head h2{color:var(--blue-l)}
.ind-item:hover .ind-head .ind-no{
  color:var(--cyan);
  text-shadow:0 0 12px rgba(34,211,238,.55);
}
.ind-item:hover .ind-tags span{
  border-color:rgba(79,141,247,.42);
  background:rgba(79,141,247,.09);
  color:var(--t1);
}
.ind-item:hover .ind-subtitle{color:var(--t1)}
.ind-item:hover .ind-pain{
  border-color:rgba(248,113,113,.35);
  background:rgba(248,113,113,.07);
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(248,113,113,.10);
}
.ind-item:hover .ind-solution{
  border-color:rgba(79,141,247,.42);
  background:rgba(79,141,247,.10);
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(79,141,247,.14);
}
html[data-theme="light"] .ind-item:hover .ind-solution{
  background:rgba(37,99,235,.09);
  border-color:rgba(37,99,235,.34);
}
.ind-item:hover .ind-solution li:nth-child(1){transform:translateX(3px)}
.ind-item:hover .ind-solution li:nth-child(2){transform:translateX(6px)}
.ind-item:hover .ind-solution li:nth-child(3){transform:translateX(9px)}
.ind-item:hover .ind-solution .sn{
  background:rgba(79,141,247,.22);
  border-color:rgba(79,141,247,.55);
  box-shadow:0 0 10px rgba(79,141,247,.35);
}
@media(max-width:860px){
  .ind-bottom{grid-template-columns:1fr;gap:20px}
  .ind-head{gap:8px 10px}
  .ind-head h2{font-size:18px}
  .ind-item:hover .ind-pain,
  .ind-item:hover .ind-solution{transform:none}
}

/* ============================================================
   21. 四宫格卡片
   ============================================================ */
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.g-card{padding:24px;border-radius:14px;background:var(--panel-2);border:1px solid var(--line-soft);transition:.3s var(--ease);position:relative;overflow:hidden}
.g-card:hover{transform:translateY(-3px);border-color:rgba(79,141,247,.35);background:rgba(79,141,247,.06)}
.g-card .gn{font-size:32px;font-weight:800;line-height:1;letter-spacing:-.04em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:12px}
.g-card h4{font-size:15px;font-weight:600;margin-bottom:8px}
.g-card p{font-size:12.5px;line-height:1.7;color:var(--t2);text-wrap:pretty;overflow-wrap:break-word}

/* ============================================================
   22. 客户案例
   ============================================================ */
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:16px;overflow:hidden;position:relative;z-index:1}
.case-card{position:relative;background:var(--surface);padding:30px 28px 32px;transition:transform .35s var(--ease),background .35s var(--ease);display:flex;flex-direction:column;min-width:0}
.case-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#22D3EE,#8B5CF6);opacity:0;transition:opacity .35s var(--ease);border-radius:2px}
.case-card:hover{background:var(--surface-2);transform:translateY(-3px)}
.case-card:hover::before{opacity:1}
.case-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.cn{font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--t4);font-variant-numeric:tabular-nums}
.case-tag{font-size:11px;padding:4px 10px;border-radius:6px;color:var(--cyan-l);background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.26);transition:.32s var(--ease)}
.case-card:hover .case-tag{border-color:rgba(79,141,247,.4);color:var(--blue-l)}
.case-card h3{font-size:18px;font-weight:700;margin-bottom:8px;letter-spacing:-.01em;transition:color .3s var(--ease);text-wrap:balance}
.case-card:hover h3{color:var(--blue-l)}
.case-summary{font-size:13px;line-height:1.75;color:var(--t2);margin-bottom:16px;text-wrap:pretty;overflow-wrap:break-word}
.case-card ul{display:flex;flex-direction:column;gap:8px;margin-top:auto}
.case-card ul li{font-size:12.5px;line-height:1.7;color:var(--t3);padding-left:16px;position:relative;transition:transform .32s var(--ease),color .32s var(--ease);text-wrap:pretty;overflow-wrap:break-word}
.case-card ul li::before{content:'';position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--blue);box-shadow:0 0 6px var(--blue)}
.case-card:hover ul li{color:var(--t1)}
.case-card:hover ul li:nth-child(2){transform:translateX(5px)}
.case-card:hover ul li:nth-child(3){transform:translateX(10px)}

/* ============================================================
   23. 服务保障
   ============================================================ */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.svc-card{padding:26px 26px 28px;border-radius:16px;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft);transition:.35s var(--ease)}
.svc-card::before{content:attr(data-k);position:absolute;right:16px;top:6px;font-size:54px;font-weight:800;line-height:1;letter-spacing:-.05em;color:var(--dot);pointer-events:none;transition:.35s}
.svc-card:hover{transform:translateY(-4px);border-color:rgba(79,141,247,.4);background:linear-gradient(180deg,rgba(79,141,247,.09),var(--panel-2))}
.svc-card:hover::before{color:rgba(125,233,247,.14)}
.svc-title{display:flex;align-items:center;gap:12px;margin-bottom:14px;position:relative;z-index:1}
.svc-title .ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(79,141,247,.13);border:1px solid rgba(79,141,247,.3);flex-shrink:0;transition:.35s}
.svc-title .ico svg{width:19px;height:19px;stroke:var(--blue);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:.35s}
.svc-card:hover .ico{background:rgba(34,211,238,.18);border-color:rgba(34,211,238,.5)}
.svc-card:hover .ico svg{stroke:var(--cyan-l)}
.svc-title h3{font-size:16.5px;font-weight:600;letter-spacing:-.01em}
.svc-points{display:flex;flex-direction:column;gap:9px;position:relative;z-index:1}
.svc-points li{font-size:12.5px;line-height:1.7;color:var(--t2);padding-left:16px;position:relative;text-wrap:pretty;overflow-wrap:break-word}
.svc-points li::before{content:'';position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 6px var(--cyan)}

/* ============================================================
   24. 最新动态
   ============================================================ */
.news-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;position:relative;z-index:1}
.news-filter{padding:8px 16px;border-radius:999px;font-size:12.5px;color:var(--t2);background:var(--panel);border:1px solid var(--line-soft);transition:.25s var(--ease)}
.news-filter:hover{background:var(--panel-hover);color:var(--t1)}
.news-filter.on{background:rgba(34,211,238,.13);border-color:rgba(34,211,238,.4);color:var(--cyan-l)}
.news-list{display:flex;flex-direction:column;position:relative;z-index:1}
a.news-row{color:inherit;text-decoration:none}
.news-row{display:grid;grid-template-columns:108px minmax(0,1fr) auto;gap:24px;padding:24px 12px 24px 0;border-top:1px solid var(--line-soft);align-items:start;cursor:pointer;transition:.3s var(--ease);position:relative}
.news-row:last-child{border-bottom:1px solid var(--line-soft)}
.news-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--grad);opacity:0;transition:.3s var(--ease)}
.news-row:hover{padding-left:16px;background:linear-gradient(90deg,rgba(79,141,247,.07),transparent 70%)}
.news-row:hover::before{opacity:1}
.news-date{font-size:12.5px;color:var(--t3);font-variant-numeric:tabular-nums;padding-top:3px}
.news-body{flex:1}
.news-body h3{font-size:16px;font-weight:600;line-height:1.5;margin-bottom:5px;transition:.25s;text-wrap:pretty;overflow-wrap:break-word}
.news-row:hover .news-body h3{color:var(--blue-l)}
.news-body p{font-size:12.5px;color:var(--t2);line-height:1.72;text-wrap:pretty;overflow-wrap:break-word}
.news-cat{justify-self:end;align-self:start;margin-top:2px;font-size:11.5px;padding:5px 12px;border-radius:8px;line-height:1.4;color:var(--cyan-l);background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.28);white-space:nowrap;transition:.28s var(--ease)}
.news-row:hover .news-cat{border-color:rgba(34,211,238,.55);background:rgba(34,211,238,.16)}
.news-cat.solution{color:var(--purple-l);background:rgba(139,92,246,.12);border-color:rgba(139,92,246,.30)}
.news-cat.event{color:var(--green-l);background:rgba(52,211,153,.10);border-color:rgba(52,211,153,.26)}
.news-empty{font-size:13.5px;color:var(--t3);padding:40px 0;text-align:center}
.news-detail{max-width:var(--maxw);margin:0 auto;position:relative;z-index:1;padding:0 24px}
.nd-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--t2);padding:7px 14px;border-radius:9px;background:var(--panel);border:1px solid var(--line-soft);transition:.24s var(--ease)}
.nd-back:hover{color:var(--t1);background:var(--panel-hover);border-color:var(--line)}
.nd-meta{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.nd-date{font-size:12.5px;color:var(--t3);font-variant-numeric:tabular-nums}
.nd-title{font-size:clamp(26px,3.4vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.3;margin-bottom:14px;text-wrap:balance}
.nd-lead{font-size:15px;line-height:1.85;color:var(--t2);padding-bottom:24px;margin-bottom:26px;border-bottom:1px solid var(--line-soft);text-wrap:pretty}
.nd-body{font-size:14.5px;line-height:2;color:var(--t2)}
.nd-body p{margin-bottom:18px;text-wrap:pretty}

/* 分页器 */
.pager{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:28px;position:relative;z-index:1}
.pager-btn{min-width:38px;height:38px;padding:0 13px;border-radius:9px;font-size:13px;color:var(--t2);
  background:var(--panel);border:1px solid var(--line-soft);display:inline-flex;align-items:center;justify-content:center;
  transition:.24s var(--ease);font-variant-numeric:tabular-nums}
.pager-btn:hover:not([disabled]){background:var(--panel-hover);color:var(--t1);border-color:var(--line)}
.pager-btn.on{background:rgba(34,211,238,.14);border-color:rgba(34,211,238,.42);color:var(--cyan-l);font-weight:600}
.pager-btn[disabled]{opacity:.35;cursor:not-allowed}
.pager-info{width:100%;text-align:center;font-size:12px;color:var(--t4);margin-top:4px}

/* ============================================================
   25. 关于我们
   ============================================================ */
.about-intro-wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center;position:relative;z-index:1}
.about-lead{font-size:14.5px;line-height:1.85;color:var(--t1);font-weight:500;margin-bottom:28px;
  padding:12px 16px;border-radius:0 8px 8px 0;
  border-left:3px solid var(--blue);
  background:linear-gradient(90deg,rgba(79,141,247,.08),transparent 80%)}
.about-feature-list{display:flex;flex-direction:column;gap:20px}
.about-feature-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:16px;align-items:start}
.afi-icon{width:38px;height:38px;border-radius:10px;background:rgba(79,141,247,.10);border:1px solid rgba(79,141,247,.25);display:grid;place-items:center;color:var(--blue-l);flex-shrink:0}
.afi-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.afi-text h4{font-size:14.5px;font-weight:600;color:var(--t1);margin-bottom:4px}
.afi-text p{font-size:13px;line-height:1.7;color:var(--t3);text-wrap:pretty}
.about-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.about-stat{padding:22px 20px;border-radius:14px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft);transition:.35s var(--ease);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.about-stat::before{content:'';position:absolute;bottom:-20px;right:-20px;width:80px;height:80px;background:radial-gradient(circle,rgba(79,141,247,.15),transparent 70%);border-radius:50%;pointer-events:none;transition:.4s var(--ease)}
.about-stat:hover{transform:translateY(-3px);border-color:rgba(79,141,247,.35);box-shadow:0 10px 30px rgba(0,0,0,.2)}
.about-stat:hover::before{transform:scale(1.4);background:radial-gradient(circle,rgba(34,211,238,.22),transparent 70%)}
.about-stat b{font-size:32px;font-weight:800;line-height:1;letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:8px;font-variant-numeric:tabular-nums}
.about-stat b span{font-size:22px;margin-left:2px}
.about-stat b.as-text-grad{font-size:24px;letter-spacing:0}
.about-stat .as-title{font-size:13.5px;font-weight:600;color:var(--t1);margin-bottom:4px;line-height:1.4}
.about-stat .as-desc{font-size:11.5px;color:var(--t3);line-height:1.5}
.serve-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.serve-card{padding:24px;border-radius:14px;background:var(--panel-2);border:1px solid var(--line-soft);transition:.3s var(--ease);position:relative;overflow:hidden}
.serve-card:hover{transform:translateY(-3px);border-color:rgba(79,141,247,.35);background:rgba(79,141,247,.06)}
.serve-ico{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(79,141,247,.13);border:1px solid rgba(79,141,247,.3);margin-bottom:14px;color:var(--blue-l);flex-shrink:0}
.serve-ico svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.serve-card h4{font-size:15px;font-weight:600;margin-bottom:8px}
.serve-card p{font-size:12.5px;line-height:1.7;color:var(--t2)}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;position:relative;z-index:1}

/* ============================================================
   26. 联系表单 & 合作模式 & 落地路径
   ============================================================ */
.contact-wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:40px 36px;border-radius:20px;position:relative;z-index:1;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft)}
.contact-points{display:flex;flex-direction:column;gap:10px;margin:18px 0 24px}
.contact-point{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-size:13px;line-height:1.7;color:var(--t2)}
.contact-point .n{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:800;color:var(--cyan-l);background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.26)}
.sec-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sec-item{padding:14px 16px;border-radius:10px;background:var(--panel);border:1px solid var(--line-soft);transition:.3s var(--ease)}
.sec-item:hover{background:rgba(79,141,247,.08);border-color:rgba(79,141,247,.28)}
.sec-item b{display:block;font-size:13px;font-weight:600;margin-bottom:4px}
.sec-item p{font-size:11.5px;line-height:1.65;color:var(--t3)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--t3);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 13px;color:var(--t1);font-size:13px;font-family:inherit;outline:none;transition:.22s;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(79,141,247,.6);background:rgba(79,141,247,.08)}
.field select option{background:var(--surface-2);color:var(--t1)}
.field input::placeholder,.field textarea::placeholder{color:var(--t4)}
.form-ok{display:none;text-align:center;padding:40px 20px}
.form-ok.show{display:block;animation:ipIn .4s var(--ease)}
.form-ok .ic{width:54px;height:54px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;font-size:26px;color:var(--green);background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.4)}
.form-ok h3{font-size:18px;font-weight:700;margin-bottom:8px}
.form-ok p{font-size:13px;line-height:1.75;color:var(--t2)}
.form-note{font-size:12px;line-height:1.7;color:var(--t3);margin-bottom:12px}
.form-ok .btn{margin-top:20px}
.coop-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;position:relative;z-index:1}
.coop-row{display:flex;flex-direction:column;gap:14px;align-items:flex-start;padding:26px 24px 28px;border-radius:16px;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft);transition:.35s var(--ease);min-width:0}
.coop-row::before{content:'';position:absolute;left:0;top:0;height:2px;width:0;background:var(--grad);transition:width .5s var(--ease)}
.coop-row::after{content:'';position:absolute;right:-40px;bottom:-40px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(79,141,247,.16),transparent 68%);opacity:0;transition:opacity .45s var(--ease);pointer-events:none}
.coop-row:hover{transform:translateY(-5px);border-color:rgba(79,141,247,.42);background:linear-gradient(180deg,rgba(79,141,247,.10),var(--panel-2))}
.coop-row:hover::before{width:100%}
.coop-row:hover::after{opacity:1}
.coop-no{font-size:34px;font-weight:800;line-height:1;letter-spacing:-.04em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums;transition:.35s var(--ease);position:relative;z-index:1}
.coop-row:hover .coop-no{filter:brightness(1.18)}
.coop-txt{position:relative;z-index:1}
.coop-txt h4{font-size:16.5px;font-weight:600;margin-bottom:7px;letter-spacing:-.01em;text-wrap:balance}
.coop-txt p{font-size:12.5px;line-height:1.75;color:var(--t2);text-wrap:pretty;overflow-wrap:break-word}
.path-rail{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:22px;padding-top:6px}
.path-rail::before{content:'';position:absolute;left:9%;right:9%;top:28px;height:1px;background:linear-gradient(90deg,rgba(34,211,238,.55),rgba(139,92,246,.55))}
.path-node{position:relative;padding:0 24px;text-align:center;min-width:0}
.path-node .pn{width:46px;height:46px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;font-size:15px;font-weight:800;background:var(--surface-3);border:1px solid rgba(34,211,238,.45);color:var(--cyan-l);position:relative;z-index:1;transition:.35s var(--ease);font-variant-numeric:tabular-nums}
.path-node:hover .pn{background:rgba(34,211,238,.16);border-color:rgba(34,211,238,.85);box-shadow:0 0 22px rgba(34,211,238,.35);transform:scale(1.08)}
.path-node h4{font-size:15.5px;font-weight:600;margin-bottom:7px;letter-spacing:-.01em}
.path-node p{font-size:12.5px;line-height:1.72;color:var(--t2);max-width:260px;margin:0 auto;text-wrap:pretty;overflow-wrap:break-word}
@media(max-width:980px){
  .about-intro-wrap{grid-template-columns:minmax(0,1fr);gap:32px}
  .svc-grid{grid-template-columns:1fr}
  .contact-wrap{grid-template-columns:1fr;gap:28px;padding:28px 24px}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-2{grid-template-columns:1fr}
  .case-grid{grid-template-columns:1fr}
  .coop-list{grid-template-columns:1fr}
  .path-rail{grid-template-columns:1fr;gap:26px;padding-top:0}
  .path-rail::before{left:23px;right:auto;top:8px;bottom:8px;width:1px;height:auto;background:linear-gradient(180deg,rgba(34,211,238,.55),rgba(139,92,246,.55))}
  .path-node{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;text-align:left;padding:0}
  .path-node .pn{margin:0}
  .path-node p{max-width:none;margin:0}
  .serve-grid{grid-template-columns:1fr}
  .news-detail{padding:0}
  .news-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:20px 0}
  .news-row::before{display:none}
  .news-date{grid-column:1 / -1;padding-top:0}
  .news-body{grid-column:1;grid-row:2}
  .news-cat{grid-column:2;grid-row:2;justify-self:end;align-self:start;margin-top:1px}
}
@media(max-width:620px){
  .grid-4{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .sec-grid{grid-template-columns:1fr}
  .nd-title{font-size:24px}
  .coop-row{padding:22px 20px 24px}
  .coop-no{font-size:28px}
  .about-stats-grid{grid-template-columns:1fr}
  .about-stat b{font-size:28px}
}

/* 政策页 */
.policy-page{padding:56px 0 72px}
.policy-content{max-width:860px;margin:0 auto}
.sitemap-section{margin-top:28px}
.sitemap-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin-top:16px}
.sitemap-links a{display:block;padding:8px 0;color:var(--blue-l);font-size:14px;line-height:1.7}
.sitemap-links a:hover{text-decoration:underline}
@media(max-width:620px){.sitemap-links{grid-template-columns:1fr}}
.policy-content h1{font-size:clamp(24px,3vw,32px);font-weight:800;letter-spacing:-.03em;margin-bottom:12px}
.policy-content .policy-date{font-size:12.5px;color:var(--t3);margin-bottom:28px}
.policy-content h2{font-size:17px;font-weight:700;margin:28px 0 10px;color:var(--t1)}
.policy-content p{font-size:14px;line-height:1.9;color:var(--t2);margin-bottom:14px}
.policy-content ul{margin:0 0 16px 20px;list-style:disc}
.policy-content li{font-size:14px;line-height:1.9;color:var(--t2);margin-bottom:6px}

/* ============================================================
   27. 页头 SVG 动效
   ============================================================ */
@keyframes hvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes hvFloatSlow{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes hvPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.72;transform:scale(1.05)}}
@keyframes hvDash{to{stroke-dashoffset:-60}}
@keyframes hvGlow{0%,100%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 10px rgba(125,233,247,.55))}}
.hv-float{animation:hvFloat 4.8s ease-in-out infinite;animation-delay:calc(var(--i,0) * .55s);transform-box:fill-box;transform-origin:center}
.hv-float-slow{animation:hvFloatSlow 6.4s ease-in-out infinite;animation-delay:calc(var(--i,0) * .7s);transform-box:fill-box;transform-origin:center}
.hv-pulse{animation:hvPulse 3.8s ease-in-out infinite;animation-delay:calc(var(--i,0) * .4s);transform-box:fill-box;transform-origin:center}
.hv-dash{animation:hvDash 3.2s linear infinite}
.hv-glow{animation:hvGlow 3.4s ease-in-out infinite}
.head-visual::after{content:'';position:absolute;left:50%;top:50%;width:80%;height:80%;transform:translate(-50%,-50%);
  background:radial-gradient(circle,rgba(79,141,247,.10),transparent 70%);filter:blur(24px);pointer-events:none;z-index:0;animation:hvPulse 5s ease-in-out infinite}
.head-visual > svg{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){
  .hv-float,.hv-float-slow,.hv-pulse,.hv-dash,.hv-glow,.head-visual::after{animation:none !important}
}

/* 映射表 */
.mapping-wrap{margin-top:34px;padding:24px;border-radius:16px;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--line-soft);position:relative;z-index:1;overflow-x:auto}
.mapping-head{margin-bottom:14px}
.mapping-head h3{font-size:16px;font-weight:600;margin-bottom:5px}
.mapping-head p{font-size:12.5px;color:var(--t3);line-height:1.7}
.mapping-table{display:grid;grid-template-columns:minmax(150px,1.4fr) repeat(6,minmax(76px,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:12px;overflow:hidden;min-width:720px}
.map-row{display:contents}
.map-row > span{background:var(--surface);padding:11px 10px;font-size:12px;line-height:1.5;display:flex;align-items:center;justify-content:center;text-align:center;transition:.2s var(--ease)}
.map-row.map-head > span{background:var(--surface-2);font-weight:600;color:var(--t2);font-size:11.5px}
.map-row:not(.map-head) > span:first-child{justify-content:flex-start;text-align:left;font-weight:600;color:var(--t1)}
.map-row:not(.map-head):hover > span{background:rgba(79,141,247,.06)}
.map-row .yes{color:var(--cyan-l);font-size:15px;font-weight:700}
.map-row .no{color:var(--t4);font-size:12px}
html[data-theme="light"] .map-row .yes{color:#0E9BB8}

/* ============================================================
   28. 企业资质（图片模块 · 一行五张 · 无大图）
   ============================================================ */
.cert-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:16px;
  position:relative;
  z-index:1;
}
.cert-card{
  position:relative;
  margin:0;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(180deg,var(--panel),var(--panel-2));
  border:1px solid var(--line-soft);
  transition:transform .38s var(--ease),border-color .3s var(--ease),
             box-shadow .38s var(--ease),background .3s var(--ease);
}
.cert-card:hover{
  transform:translateY(-4px);
  border-color:rgba(79,141,247,.42);
  background:linear-gradient(180deg,rgba(79,141,247,.08),var(--panel-2));
  box-shadow:0 14px 32px rgba(0,0,0,.28);
}
html[data-theme="light"] .cert-card:hover{
  box-shadow:0 14px 32px rgba(15,32,58,.14);
}
.cert-card::after{
  content:'';position:absolute;left:0;top:0;right:0;height:2px;
  background:var(--grad);
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);
  pointer-events:none;
}
.cert-card:hover::after{transform:scaleX(1)}

.cert-thumb{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:var(--surface-3);
  border-bottom:1px solid var(--line-soft);
}
.cert-thumb svg,.cert-thumb img{
  width:100%;height:100%;display:block;object-fit:cover;
  transition:transform .5s var(--ease);
}
.cert-card:hover .cert-thumb svg,
.cert-card:hover .cert-thumb img{transform:scale(1.045)}

.cert-meta{padding:14px 14px 16px}
.cert-meta h4{
  font-size:13px;font-weight:600;line-height:1.5;color:var(--t1);
  text-wrap:pretty;overflow-wrap:break-word;
  transition:color .3s var(--ease);
}
.cert-card:hover .cert-meta h4{color:var(--blue-l)}

@media(max-width:980px){
  .cert-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .cert-meta h4{font-size:12.5px}
}
@media(max-width:620px){
  .cert-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .cert-card,.cert-card::after,.cert-thumb svg,.cert-thumb img{
    transition:none !important;
  }
  .cert-card:hover{transform:none}
  .cert-card:hover .cert-thumb svg,
  .cert-card:hover .cert-thumb img{transform:none}
}
