
:root{--bg0:#03141D;--bg1:#052230;--panel:#07293A;--aqua:#2FE0D2;--cyan:#41C7FF;--ice:#E9F7FA;--light:#F2FAFC;--ink:#0A2833;--mut:#5E7C88;--amber:#FFB454;--line:rgba(65,199,255,.18)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Noto Sans SC',sans-serif;background:var(--bg0);color:var(--ice);overflow-x:hidden;line-height:1.75}
::selection{background:var(--aqua);color:#04222B}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.disp{font-family:'Noto Serif SC',serif;font-weight:700;letter-spacing:.02em}
.rj{font-family:'Rajdhani',sans-serif}
section{scroll-margin-top:84px}
.wrap{max-width:1220px;margin:0 auto;padding:0 24px}
.sec{padding:110px 0 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:56px;flex-wrap:wrap}
.kicker{font-family:'Rajdhani';font-size:13px;letter-spacing:.34em;color:var(--aqua);text-transform:uppercase;margin-bottom:14px}
.kicker::before{content:'—';margin-right:10px;opacity:.6}
.sec-head h2{font-size:clamp(30px,4.4vw,52px);line-height:1.15}
.sec-note{max-width:330px;font-size:14px;color:rgba(233,247,250,.55);border-left:2px solid var(--line);padding-left:16px}
.light .sec-note{color:var(--mut);border-color:#CDE4EA}
.rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease var(--d,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.rv.in{opacity:1;transform:none}
.btn{display:inline-flex;align-items:center;gap:9px;padding:14px 30px;font-size:15px;font-weight:700;letter-spacing:.05em;transition:.3s;clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.btn-primary{background:var(--aqua);color:#04222B}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(47,224,210,.35);background:#63F0E4}
.btn-ghost{border:1px solid rgba(233,247,250,.35);color:var(--ice)}
.btn-ghost:hover{border-color:var(--aqua);color:var(--aqua);transform:translateY(-3px)}
.cham{clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px)}
.light{background:var(--light);color:var(--ink)}
.light .kicker{color:#0891B2}
/* 加载 */
#loader{position:fixed;inset:0;z-index:999;background:var(--bg0);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;transition:transform .7s cubic-bezier(.7,0,.3,1)}
#loader.done{transform:translateY(-101%)}
#loader .ring{width:74px;height:74px;border-radius:50%;border:2px solid rgba(65,199,255,.15);border-top-color:var(--aqua);animation:spin 1s linear infinite;position:relative}
#loader .ring::after{content:'';position:absolute;inset:12px;border-radius:50%;border:2px dashed rgba(47,224,210,.5);animation:spin 3s linear infinite reverse}
#loader p{font-family:'Rajdhani';letter-spacing:.4em;font-size:12px;color:var(--cyan)}
#loader .bar{width:180px;height:2px;background:rgba(255,255,255,.08)}
#loader .bar i{display:block;height:100%;width:0;background:var(--aqua);animation:load 1.1s ease forwards}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes load{to{width:100%}}
/* 导航 */
#prog{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--aqua),var(--cyan));z-index:400}
#nav{position:fixed;top:0;left:0;right:0;z-index:300;transition:.35s;padding:20px 0}
#nav.scrolled{background:rgba(4,20,29,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:11px 0}
.nav-in{max-width:1280px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:34px}
.logo{display:flex;align-items:center;gap:11px}
.logo-img{height:52px;width:auto;display:block}

#navLinks{display:flex;align-items:center;gap:28px;margin-left:auto}
#navLinks a{font-size:14.5px;color:rgba(233,247,250,.82);position:relative;padding:4px 0;transition:.25s}
#navLinks a::after{content:'';position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:var(--aqua);transform:scaleX(0);transform-origin:left;transition:.3s}
#navLinks a:hover,#navLinks a.on{color:var(--aqua)}
#navLinks a:hover::after,#navLinks a.on::after{transform:scaleX(1)}
.nav-cta{padding:9px 22px;font-size:13.5px}
#burger{display:none;flex-direction:column;gap:5px;margin-left:auto;padding:8px}
#burger span{width:24px;height:2px;background:var(--ice);transition:.3s}
#mMenu{position:fixed;top:64px;left:0;right:0;z-index:290;background:rgba(4,20,29,.98);border-bottom:1px solid var(--line);padding:10px 24px 22px;display:none;flex-direction:column}
#mMenu.open{display:flex}
#mMenu a{padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.06);font-size:15px}
/* HERO */
#hero{position:relative;min-height:100vh;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(1100px 620px at 72% 28%,#0A3A4E 0%,var(--bg0) 62%)}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;cursor:crosshair}
.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(3,20,29,.9) 0%,rgba(3,20,29,.4) 40%,rgba(3,20,29,.08) 60%,rgba(3,20,29,.5) 100%)}
.hero-inner{position:relative;z-index:2;max-width:1280px;margin:0 auto;padding:160px 24px 40px;width:100%;display:grid;grid-template-columns:1.12fr .88fr;gap:56px;align-items:center;flex:1}
.h-kicker{font-family:'Rajdhani';letter-spacing:.32em;font-size:13px;color:var(--cyan);display:flex;align-items:center;gap:12px;margin-bottom:24px}
.h-kicker::before{content:'';width:38px;height:1px;background:var(--cyan)}
#hero h1{font-size:clamp(42px,6.6vw,86px);line-height:1.12;margin-bottom:26px}
#hero h1 .hl{color:var(--aqua);position:relative}
#hero h1 .hl::after{content:'';position:absolute;left:0;bottom:6px;width:100%;height:10px;background:rgba(47,224,210,.18);z-index:-1}
.h-sub{max-width:520px;font-size:16.5px;color:rgba(233,247,250,.72);margin-bottom:38px}
.h-sub b{color:var(--amber);font-weight:700}
.h-ctas{display:flex;gap:16px;flex-wrap:wrap}
.h-chip{position:absolute;z-index:2;font-family:'Rajdhani';font-size:12.5px;letter-spacing:.12em;padding:8px 14px;background:rgba(6,32,44,.85);border:1px solid var(--line);color:var(--aqua);animation:floaty 5s ease-in-out infinite}
.h-chip b{color:var(--ice);font-size:15px;margin-right:6px}
.hc1{left:56%;top:24%}.hc2{left:63%;top:62%;animation-delay:-2.4s;color:var(--amber)}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hmi{background:rgba(5,26,37,.82);border:1px solid var(--line);backdrop-filter:blur(6px);padding:26px 26px 18px;position:relative}
.hmi::before{content:'';position:absolute;top:0;left:14px;right:14px;height:2px;background:linear-gradient(90deg,transparent,var(--aqua),transparent)}
.hmi-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;font-family:'Rajdhani';letter-spacing:.2em;font-size:12px;color:var(--cyan)}
.live{display:flex;align-items:center;gap:7px;color:#7CF5B2}
.live i{width:7px;height:7px;border-radius:50%;background:#34E39A;box-shadow:0 0 10px #34E39A;animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.25}}
.hmi-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 26px}
.hmi-item{border-left:2px solid rgba(65,199,255,.25);padding-left:14px}
.hmi-item .v{font-family:'Rajdhani';font-size:34px;font-weight:700;color:var(--aqua);line-height:1.05}
.hmi-item .v small{font-size:13px;color:rgba(233,247,250,.5);margin-left:4px;font-weight:500}
.hmi-item .k{font-size:12px;color:rgba(233,247,250,.55);letter-spacing:.14em;margin-top:4px}
.hmi-item:nth-child(4) .v{color:var(--amber)}
.hmi-note{margin-top:18px;padding-top:14px;border-top:1px dashed rgba(255,255,255,.12);font-size:11.5px;color:rgba(233,247,250,.42)}
.h-hint{position:absolute;z-index:2;left:26px;bottom:88px;font-size:12px;color:rgba(233,247,250,.5);display:flex;align-items:center;gap:9px;letter-spacing:.08em}
.h-hint i{width:22px;height:32px;border:1.5px solid rgba(233,247,250,.4);border-radius:12px;position:relative}
.h-hint i::after{content:'';position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--aqua);animation:wheel 1.6s infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(9px);opacity:0}100%{opacity:0}}
/* 跑马灯 */
.ticker{background:#041B26;border-block:1px solid var(--line);overflow:hidden;padding:15px 0}
.tk-track{display:flex;width:max-content;animation:tick 30s linear infinite}
.tk-track span{font-family:'Rajdhani';font-size:14px;letter-spacing:.22em;color:rgba(233,247,250,.75);padding:0 34px;white-space:nowrap}
.tk-track span::after{content:'◆';color:var(--aqua);margin-left:66px;font-size:9px;vertical-align:2px}
@keyframes tick{to{transform:translateX(-50%)}}
/* 产品 */
.prod-grid{display:grid;grid-template-columns:360px 1fr;gap:44px;align-items:start}
.psel{display:flex;flex-direction:column;gap:12px;position:sticky;top:100px}
.psel-item{text-align:left;background:#fff;border:1px solid #DCEBEF;padding:20px 22px;display:flex;gap:16px;align-items:center;transition:.3s;position:relative}
.psel-item .idx{font-family:'Rajdhani';font-size:13px;color:#9DB9C2;letter-spacing:.1em}
.psel-item .nm{font-weight:900;font-size:17px;display:block}
.psel-item .en{font-family:'Rajdhani';font-size:10.5px;letter-spacing:.24em;color:var(--mut)}
.psel-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--aqua);transform:scaleY(0);transition:.3s}
.psel-item:hover{transform:translateX(6px);border-color:#B9DCE4}
.psel-item.on{border-color:#0E7490;box-shadow:0 14px 34px rgba(10,60,80,.12)}
.psel-item.on::before{transform:scaleY(1)}
.pshow{background:#fff;border:1px solid #DCEBEF;box-shadow:0 24px 60px rgba(8,50,70,.08);padding:34px 38px 38px;min-height:520px}
.pshow.fade{animation:pIn .5s ease}
@keyframes pIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.pshow-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:8px}
.pshow h3{font-size:30px;font-weight:900}
.pshow .pen{font-family:'Rajdhani';letter-spacing:.3em;font-size:11px;color:#0891B2}
.pmodels{display:flex;gap:8px;flex-wrap:wrap}
.pmodels span{font-family:'Rajdhani';font-size:13px;letter-spacing:.08em;padding:5px 12px;background:#E6F6F8;border:1px solid #C5E8EE;color:#0B5C74}
.pvis{background:linear-gradient(180deg,#F4FBFD,#E8F4F8);border:1px dashed #C9E2E9;margin:18px 0 22px;padding:14px;position:relative;overflow:hidden}
.pvis::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(14,116,144,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(14,116,144,.06) 1px,transparent 1px);background-size:26px 26px}
.pvis svg{position:relative;margin:0 auto;max-width:460px}
.flowline{stroke-dasharray:7 7;animation:dash 1.1s linear infinite}
@keyframes dash{to{stroke-dashoffset:-14}}
.pdesc{color:#41616E;font-size:14.5px;margin-bottom:22px}
.specs{display:grid;grid-template-columns:1fr 1fr;gap:16px 34px;margin-bottom:24px}
.spec .row{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}
.spec .row b{color:#0B4A5E}
.spec .row .val{font-family:'Rajdhani';font-weight:700;font-size:15px;color:#0891B2}
.spec .track{height:6px;background:#E2EFF3;overflow:hidden}
.spec .fill{height:100%;width:0;background:linear-gradient(90deg,var(--aqua),var(--cyan));transition:width 1s cubic-bezier(.2,.7,.2,1)}
.papps{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:26px}
.papps span{font-size:12.5px;padding:6px 14px;border:1px solid #CFE3E9;color:#3E6270;background:#F6FBFC;transition:.25s}
.papps span:hover{background:#0E7490;color:#fff;border-color:#0E7490;transform:translateY(-2px)}
.plink{font-weight:700;color:#0891B2;display:inline-flex;align-items:center;gap:8px;border-bottom:2px solid transparent;transition:.25s}
.plink:hover{gap:14px;border-color:var(--aqua)}
/* AI 选型 */
#ai{background:var(--bg1);position:relative}
#ai::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(65,199,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(65,199,255,.045) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}
.ai-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:48px;position:relative}
.ai-form{background:var(--panel);border:1px solid var(--line);padding:34px 34px 38px}
.ai-badge{display:inline-flex;align-items:center;gap:8px;font-family:'Rajdhani';font-size:12px;letter-spacing:.26em;color:#04222B;background:var(--aqua);padding:5px 13px;margin-bottom:24px}
.ai-badge i{width:6px;height:6px;border-radius:50%;background:#04222B;animation:blink 1.2s infinite}
.f-label{font-size:13.5px;font-weight:700;color:rgba(233,247,250,.85);margin:22px 0 12px;display:flex;gap:10px;align-items:center}
.f-label .rj{color:var(--cyan);font-size:12px;letter-spacing:.2em}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips input{display:none}
.chips label{font-size:13.5px;padding:9px 18px;border:1px solid rgba(233,247,250,.22);color:rgba(233,247,250,.75);cursor:pointer;transition:.25s;user-select:none}
.chips label:hover{border-color:var(--aqua);color:var(--aqua);transform:translateY(-2px)}
.chips input:checked+label{background:var(--aqua);border-color:var(--aqua);color:#04222B;font-weight:700;box-shadow:0 8px 22px rgba(47,224,210,.3)}
.slider-row{display:flex;align-items:center;gap:18px}
input[type=range]{flex:1;-webkit-appearance:none;height:4px;background:linear-gradient(90deg,var(--aqua) var(--p,20%),rgba(255,255,255,.14) var(--p,20%));outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--aqua);border:4px solid #04222B;box-shadow:0 0 0 2px var(--aqua);cursor:grab;transform:rotate(45deg)}
#flowOut{font-family:'Rajdhani';font-size:22px;font-weight:700;color:var(--amber);min-width:96px;text-align:right}
#aiGo{width:100%;margin-top:30px;justify-content:center;font-size:16px;padding:17px}
#aiGo:disabled{opacity:.55;cursor:wait}
.console{background:#040F16;border:1px solid rgba(65,199,255,.28);box-shadow:0 30px 70px rgba(0,0,0,.4);display:flex;flex-direction:column;min-height:430px}
.con-head{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid rgba(65,199,255,.2);background:rgba(65,199,255,.05)}
.con-head i{width:11px;height:11px;border-radius:50%}
.con-head i:nth-child(1){background:#FF6B6B}.con-head i:nth-child(2){background:#FFD166}.con-head i:nth-child(3){background:#34E39A}
.con-head span{margin-left:10px;font-family:'Rajdhani';font-size:12px;letter-spacing:.24em;color:rgba(233,247,250,.6)}
.con-head .led{margin-left:auto;width:8px;height:8px;border-radius:50%;background:#274;transition:.3s}
.con-head .led.busy{background:#34E39A;box-shadow:0 0 12px #34E39A;animation:blink .7s infinite}
#aiOut{flex:1;padding:24px 24px 10px;font-family:'Rajdhani','Noto Sans SC',monospace;font-size:15px;line-height:2;color:#8FE8DC;min-height:250px;position:relative;overflow:hidden}
#aiOut::after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.022) 0 1px,transparent 1px 3px)}
#aiOut .ln{white-space:pre-wrap;word-break:break-all}
#aiOut .dim{color:rgba(233,247,250,.45)}
#aiOut .ok{color:#34E39A}
.cursor{display:inline-block;width:9px;height:17px;background:var(--aqua);vertical-align:-3px;animation:blink .8s infinite}
.ai-res{padding:0 24px 26px;display:none}
.ai-res.show{display:block;animation:pIn .55s ease}
.res-card{border:1px solid rgba(47,224,210,.4);background:rgba(47,224,210,.06);padding:22px 24px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.res-model{font-size:21px;font-weight:900;color:var(--ice)}
.res-model small{display:block;font-family:'Rajdhani';font-size:12px;letter-spacing:.24em;color:var(--aqua);margin-bottom:4px}
.res-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:rgba(233,247,250,.7)}
.res-meta b{color:var(--amber);font-family:'Rajdhani';font-size:16px;margin-right:4px}
.ring{position:relative;width:96px;height:96px}
.ring svg{transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}
.ring .bg{stroke:rgba(255,255,255,.1)}
.ring .fg{stroke:var(--aqua);stroke-linecap:round;stroke-dasharray:264;stroke-dashoffset:264;transition:stroke-dashoffset 1.4s cubic-bezier(.2,.7,.2,1)}
.ring .num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Rajdhani';font-weight:700;font-size:26px;color:var(--aqua);line-height:1}
.ring .num small{font-size:9px;letter-spacing:.2em;color:rgba(233,247,250,.5);margin-top:3px}
.res-route{margin-top:14px;font-size:12.5px;color:rgba(233,247,250,.55);border-top:1px dashed rgba(255,255,255,.14);padding-top:12px}
.res-route b{color:var(--cyan);font-weight:500}
.res-cta{margin-top:16px;display:flex;gap:12px}
.res-cta .btn{padding:11px 22px;font-size:13.5px}
/* 技术 */
.tech-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.layers{background:var(--bg1);border:1px solid var(--line);padding:30px;display:flex;flex-direction:column;gap:8px;min-height:460px;box-shadow:0 30px 70px rgba(8,50,70,.15)}
.layer{flex:1;padding:16px 20px;cursor:pointer;transition:flex .5s cubic-bezier(.2,.7,.2,1),background .3s;position:relative;overflow:hidden;border-left:3px solid transparent}
.layer .lt{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.layer h4{font-size:16.5px;font-weight:900;color:var(--ice)}
.layer .th{font-family:'Rajdhani';font-size:13px;color:var(--amber);letter-spacing:.1em;white-space:nowrap}
.layer p{font-size:13px;color:rgba(233,247,250,.65);max-height:0;opacity:0;transition:.45s;margin-top:0}
.layer:hover,.layer.on{flex:2.4;border-left-color:var(--aqua);background:rgba(47,224,210,.07)}
.layer:hover p,.layer.on p{max-height:90px;opacity:1;margin-top:10px}
.layer.hot{background:repeating-linear-gradient(45deg,rgba(47,224,210,.05) 0 8px,transparent 8px 16px)}
.layer .tag{position:absolute;top:10px;right:-1px;font-family:'Rajdhani';font-size:9px;letter-spacing:.3em;color:#04222B;background:var(--aqua);padding:2px 10px;display:none}
.layer.hot .tag{display:block}
.steps{display:flex;flex-direction:column;position:relative;padding-left:8px}
.steps::before{content:'';position:absolute;left:33px;top:20px;bottom:20px;width:1px;background:linear-gradient(180deg,var(--aqua),#CDE4EA)}
.step{display:flex;gap:24px;padding:18px 0;position:relative}
.step .no{font-family:'Rajdhani';font-size:15px;font-weight:700;width:50px;height:50px;flex:none;display:grid;place-items:center;background:#fff;border:1px solid #CDE4EA;color:#0891B2;position:relative;z-index:1;transition:.3s}
.step:hover .no{background:#0E7490;color:#fff;transform:rotate(45deg) scale(1.06)}
.step:hover .no span{transform:rotate(-45deg)}
.step .no span{transition:.3s;display:block}
.step h4{font-size:17px;font-weight:900;color:var(--ink)}
.step p{font-size:13.5px;color:var(--mut)}
.wetnote{margin-top:22px;background:#E6F6F8;border:1px solid #C5E8EE;padding:14px 18px;font-size:13px;color:#0B5C74;display:flex;gap:10px;align-items:center}
/* 数据带 */
.stats{background:var(--aqua);color:#04222B;padding:56px 0;margin-top:110px}
.stats-in{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{text-align:center;padding:8px 18px;border-left:1px solid rgba(4,34,43,.2)}
.stat:first-child{border:none}
.stat .n{font-family:'Rajdhani';font-size:clamp(40px,5vw,62px);font-weight:700;line-height:1}
.stat .n em{font-style:normal;font-size:.45em;vertical-align:8px;margin-left:2px}
.stat .k{font-size:13.5px;font-weight:700;letter-spacing:.14em;margin-top:8px;opacity:.75}
/* 应用 */
#apps{background:var(--bg1);position:relative}
#apps::before{content:'';position:absolute;inset:0;background:radial-gradient(800px 400px at 20% 0%,rgba(14,90,120,.35),transparent 60%);pointer-events:none}
.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
.app{border:1px solid var(--line);background:rgba(7,41,58,.6);padding:30px 28px 26px;position:relative;transition:.35s;overflow:hidden}
.app::after{content:'→';position:absolute;right:22px;bottom:18px;font-family:'Rajdhani';font-size:20px;color:var(--aqua);opacity:0;transform:translateX(-10px);transition:.35s}
.app:hover{transform:translateY(-6px);border-color:var(--aqua);background:rgba(10,52,72,.9);box-shadow:0 22px 46px rgba(0,0,0,.35)}
.app:hover::after{opacity:1;transform:none}
.app svg{width:42px;height:42px;stroke:var(--cyan);fill:none;stroke-width:1.6;margin-bottom:18px;transition:.35s}
.app:hover svg{stroke:var(--aqua);transform:scale(1.12) rotate(-4deg)}
.app h4{font-size:19px;font-weight:900;margin-bottom:6px}
.app p{font-size:13px;color:rgba(233,247,250,.55)}
.app.wide{grid-column:span 2;display:flex;align-items:center;gap:26px}
.app.wide svg{margin:0;flex:none}
.app.feat{background:linear-gradient(140deg,rgba(47,224,210,.14),rgba(65,199,255,.05));border-color:rgba(47,224,210,.45)}
.app.cta{display:grid;place-items:center;text-align:center;border-style:dashed}
.app.cta h4{font-size:17px}
.app.cta:hover{background:var(--aqua)}
.app.cta:hover h4,.app.cta:hover p{color:#04222B}
/* 关于 */
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:start}
.about-txt p{color:#41616E;font-size:15px;margin-bottom:18px}
.about-txt p b{color:var(--ink)}
.certs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}
.cert{background:#fff;border:1px solid #DCEBEF;padding:18px 12px;text-align:center;transition:.3s}
.cert:hover{transform:translateY(-5px);border-color:#0E7490;box-shadow:0 14px 30px rgba(10,60,80,.12)}
.cert svg{width:30px;height:30px;margin:0 auto 8px;stroke:#0891B2;fill:none;stroke-width:1.7}
.cert b{display:block;font-size:13.5px;color:var(--ink)}
.cert span{font-family:'Rajdhani';font-size:10px;letter-spacing:.16em;color:var(--mut)}
.timeline{display:flex;margin-top:70px;position:relative;flex-wrap:wrap;gap:26px 0}
.timeline::before{content:'';position:absolute;top:9px;left:0;right:0;height:1px;background:#CDE4EA}
.tl{flex:1;min-width:170px;position:relative;padding:26px 22px 0 0}
.tl::before{content:'';position:absolute;top:3px;left:0;width:13px;height:13px;background:var(--light);border:3px solid #0E7490;transform:rotate(45deg);transition:.3s}
.tl:hover::before{background:var(--aqua);transform:rotate(225deg)}
.tl .yr{font-family:'Rajdhani';font-size:26px;font-weight:700;color:#0891B2;line-height:1}
.tl p{font-size:13px;color:var(--mut);margin-top:6px}
/* CTA */
.cta-band{background:var(--aqua);color:#04222B;padding:96px 0;position:relative;overflow:hidden}
.cta-band::before{content:'';position:absolute;right:-120px;top:50%;transform:translateY(-50%);width:460px;height:460px;border:2px dashed rgba(4,34,43,.25);border-radius:50%;animation:spin 40s linear infinite}
.cta-band::after{content:'';position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:300px;height:300px;border:1px solid rgba(4,34,43,.2);border-radius:50%}
.cta-in{position:relative;z-index:1;max-width:640px}
.cta-in h2{font-size:clamp(34px,5vw,58px);line-height:1.2;margin-bottom:16px}
.cta-in p{font-size:16px;margin-bottom:34px;opacity:.8}
.btn-dark{background:#04222B;color:var(--aqua)}
.btn-dark:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(4,34,43,.35)}
.btn-dghost{border:1.5px solid #04222B;color:#04222B}
.btn-dghost:hover{background:#04222B;color:var(--aqua);transform:translateY(-3px)}
.cta-tel{margin-top:26px;font-family:'Rajdhani';font-size:15px;letter-spacing:.14em;font-weight:600}
/* 页脚 */
footer{background:#02101A;padding:70px 0 0;border-top:1px solid var(--line)}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:44px;padding-bottom:52px}
.f-grid h5{font-size:14px;letter-spacing:.2em;color:var(--cyan);margin-bottom:20px;font-family:'Rajdhani'}
.f-grid a,.f-grid p{display:block;font-size:13.5px;color:rgba(233,247,250,.55);margin-bottom:11px;transition:.25s}
.f-grid a:hover{color:var(--aqua);transform:translateX(5px)}
.f-brand p{max-width:280px}
.f-bot{border-top:1px solid rgba(255,255,255,.07);padding:20px 0;font-size:12px;color:rgba(233,247,250,.35);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
/* 膜博士 */
#docBtn{position:fixed;right:26px;bottom:26px;z-index:350;width:62px;height:62px;border-radius:50%;background:var(--aqua);color:#04222B;display:grid;place-items:center;box-shadow:0 14px 34px rgba(47,224,210,.4);transition:.3s}
#docBtn:hover{transform:scale(1.1) rotate(8deg)}
#docBtn::before{content:'';position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(47,224,210,.5);animation:pulse 2s infinite}
@keyframes pulse{0%{transform:scale(.85);opacity:1}100%{transform:scale(1.35);opacity:0}}
#docPanel{position:fixed;right:26px;bottom:102px;z-index:350;width:min(360px,calc(100vw - 40px));background:#06222F;border:1px solid var(--line);box-shadow:0 30px 70px rgba(0,0,0,.5);display:none;flex-direction:column;overflow:hidden}
#docPanel.open{display:flex;animation:pIn .35s ease}
.doc-head{background:rgba(47,224,210,.1);border-bottom:1px solid var(--line);padding:15px 18px;display:flex;align-items:center;gap:12px}
.doc-head .av{width:36px;height:36px;border-radius:50%;background:var(--aqua);color:#04222B;display:grid;place-items:center;font-weight:900}
.doc-head b{font-size:15px}
.doc-head span{display:block;font-family:'Rajdhani';font-size:10px;letter-spacing:.2em;color:#34E39A}
#docClose{margin-left:auto;font-size:20px;color:rgba(233,247,250,.5)}
#docMsgs{padding:18px;height:270px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;font-size:13.5px}
.msg{max-width:86%;padding:11px 14px;line-height:1.65;animation:pIn .3s ease}
.msg.bot{background:#0A3448;border-left:3px solid var(--aqua);align-self:flex-start;color:rgba(233,247,250,.88)}
.msg.user{background:var(--aqua);color:#04222B;font-weight:500;align-self:flex-end}
.doc-chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 12px}
.doc-chips button{font-size:12px;padding:6px 12px;border:1px solid rgba(65,199,255,.3);color:var(--cyan);transition:.25s}
.doc-chips button:hover{background:var(--cyan);color:#04222B}
.doc-input{display:flex;border-top:1px solid var(--line)}
.doc-input input{flex:1;background:none;border:none;outline:none;color:var(--ice);padding:15px 16px;font-size:13.5px;font-family:inherit}
.doc-input button{padding:0 20px;color:var(--aqua);font-weight:900;font-size:15px}
/* 响应式 */
@media(max-width:1024px){
  .hero-inner{grid-template-columns:1fr;padding-top:140px;gap:40px}
  .h-chip,.h-hint{display:none}
  .prod-grid,.ai-grid,.tech-grid,.about-grid{grid-template-columns:1fr}
  .psel{position:static;flex-direction:row;overflow-x:auto;padding-bottom:8px}
  .psel-item{min-width:230px}
  .app-grid{grid-template-columns:1fr 1fr}
  .app.wide{grid-column:span 2}
  .f-grid{grid-template-columns:1fr 1fr}
  .stats-in{grid-template-columns:1fr 1fr;gap:26px 0}
  .stat:nth-child(3){border:none}
}
@media(max-width:860px){
  #navLinks{display:none}
  #burger{display:flex}
  .app-grid{grid-template-columns:1fr}
  .app.wide{grid-column:span 1;flex-direction:column;align-items:flex-start}
  .specs{grid-template-columns:1fr}
  .certs{grid-template-columns:repeat(2,1fr)}
  .res-card{grid-template-columns:1fr}
  .ring{margin:0 auto}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
