*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;background:#070b14;color:#e8ecf7;line-height:1.7;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font-family:inherit;cursor:pointer}
::selection{background:#5b6cff;color:#fff}
.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 24px}
h1,h2,h3{line-height:1.25;font-weight:800}
.grad-text{background:linear-gradient(92deg,#5b6cff 0%,#00d4ff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#00d4ff}
.sect{padding:84px 0}
.sect-alt{background:#0b1120}
.sect-head{text-align:center;max-width:720px;margin:0 auto 52px}
.sect-tag{display:inline-block;padding:6px 16px;border:1px solid rgba(91,108,255,.45);border-radius:999px;color:#8fa2ff;font-size:13px;margin-bottom:16px;background:rgba(91,108,255,.08)}
.sect-head h2{font-size:clamp(26px,3.6vw,40px);margin-bottom:12px}
.sect-head p{color:#9aa5c0;font-size:15px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:14px 30px;font-weight:700;font-size:16px;transition:transform .25s,box-shadow .25s,background .25s;border:0;min-height:48px}
.btn:active{transform:scale(.97)}
.btn-solid{background:linear-gradient(92deg,#5b6cff,#00d4ff);color:#fff;box-shadow:0 8px 24px rgba(91,108,255,.35)}
.btn-solid:hover{box-shadow:0 12px 34px rgba(91,108,255,.55);transform:translateY(-2px)}
.btn-ghost{border:1.5px solid rgba(143,162,255,.55);color:#cdd6f4;background:rgba(91,108,255,.06)}
.btn-ghost:hover{border-color:#00d4ff;color:#fff;transform:translateY(-2px)}
.btn-sm{padding:10px 20px;font-size:14px;min-height:40px}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:12px;top:12px;background:#5b6cff;color:#fff;padding:10px 18px;border-radius:8px;z-index:999}
nav{position:fixed;top:0;left:0;right:0;z-index:900;background:rgba(7,11,20,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(91,108,255,.14);transition:background .3s}
nav.scrolled{background:rgba(7,11,20,.94)}
.nav-in{display:flex;align-items:center;height:68px;gap:28px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px}
.logo img{width:34px;height:34px;border-radius:8px}
.nav-menu{display:flex;align-items:center;gap:6px;flex:1}
.nav-menu>li,.nav-group details{position:relative}
.nav-menu>li>a,.nav-menu summary{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:10px;color:#cdd6f4;font-size:15px;font-weight:600;background:none;border:0;cursor:pointer;transition:color .2s,background .2s;list-style:none}
.nav-menu>li>a:hover,.nav-menu summary:hover{color:#fff;background:rgba(91,108,255,.12)}
.nav-menu summary::-webkit-details-marker{display:none}
.nav-menu .caret{font-size:11px;transition:transform .3s;display:inline-block}
.nav-group:hover .caret,.nav-group details[open] .caret{transform:rotate(180deg)}
.drop{position:absolute;top:calc(100% + 10px);left:0;min-width:200px;background:#101828;border:1px solid rgba(91,108,255,.25);border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,.55);padding:8px;opacity:0;visibility:hidden;transform:translateY(10px);transition:all .25s;z-index:910}
.nav-group:hover .drop,.nav-group details[open] .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{display:block;padding:10px 14px;border-radius:10px;color:#9aa5c0;font-size:14px;transition:all .2s}
.drop a:hover{color:#fff;background:rgba(91,108,255,.14);transform:translateX(3px)}
.nav-cta{margin-left:auto}
.nav-chk{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.nav-toggle{display:none}
.nav-toggle .bar{display:block;width:26px;height:2px;background:#e8ecf7;margin:6px 0;border-radius:2px;transition:all .3s;cursor:pointer}
.nav-chk:checked~.nav-toggle .bar:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-chk:checked~.nav-toggle .bar:nth-child(2){opacity:0}
.nav-chk:checked~.nav-toggle .bar:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.hero{position:relative;padding:150px 0 90px;background:radial-gradient(900px 480px at 78% -10%,rgba(91,108,255,.28),transparent 60%),radial-gradient(700px 420px at 8% 20%,rgba(0,212,255,.14),transparent 60%)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(34px,4.6vw,56px);margin:18px 0 20px;letter-spacing:.5px}
.hero .sub{color:#9aa5c0;font-size:17px;max-width:540px;margin-bottom:30px}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:34px}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap}
.hero-stats b{display:block;font-size:26px;background:linear-gradient(92deg,#8fa2ff,#00d4ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-stats span{color:#9aa5c0;font-size:13px}
.stats-band{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.stat-card{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;padding:28px 22px;text-align:center;transition:transform .25s,box-shadow .25s,border-color .25s}
.stat-card:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.5);box-shadow:0 16px 36px rgba(0,0,0,.4)}
.stat-card .ic{font-size:30px;margin-bottom:10px}
.stat-card b{display:block;font-size:34px;margin-bottom:4px;color:#fff}
.stat-card span{color:#9aa5c0;font-size:13px}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feat{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;padding:28px 24px;transition:transform .25s,box-shadow .25s,border-color .25s}
.feat:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.5);box-shadow:0 16px 36px rgba(0,0,0,.4)}
.feat .ic{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,rgba(91,108,255,.3),rgba(0,212,255,.22));display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:16px}
.feat h3{font-size:18px;margin-bottom:10px}
.feat p{color:#9aa5c0;font-size:14px}
.nodes-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.node-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.node-item{background:#0d1322;border:1px solid rgba(91,108,255,.18);border-radius:14px;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;transition:all .25s}
.node-item:hover{border-color:rgba(0,212,255,.5);transform:translateX(4px)}
.node-item .nm{font-weight:700;font-size:15px}
.node-item .nm em{display:block;font-style:normal;color:#9aa5c0;font-size:12px;font-weight:400}
.node-item .ping{color:#3ee6a8;font-weight:700;font-size:14px}
.node-panel{border-radius:20px;border:1px solid rgba(91,108,255,.3);padding:26px;background:linear-gradient(160deg,#0d1322,#101a30);box-shadow:0 0 44px rgba(91,108,255,.14)}
.node-panel h3{font-size:19px;margin-bottom:6px}
.node-panel .bars{display:flex;align-items:flex-end;gap:8px;height:120px;margin:18px 0 8px}
.node-panel .bars i{flex:1;background:linear-gradient(180deg,#00d4ff,#5b6cff);border-radius:6px 6px 2px 2px;opacity:.85;transition:height .3s}
.node-panel .bars i:hover{opacity:1}
.node-panel .cap{color:#9aa5c0;font-size:12px;text-align:center}
.scens{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.scen{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;padding:26px 22px;transition:all .25s}
.scen:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.5);box-shadow:0 16px 36px rgba(0,0,0,.4)}
.scen .ic{font-size:32px;margin-bottom:12px}
.scen h3{font-size:17px;margin-bottom:8px}
.scen p{color:#9aa5c0;font-size:14px}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:step}
.step{position:relative;background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;padding:30px 24px 26px;transition:all .25s}
.step:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.5)}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);position:absolute;top:-18px;left:22px;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#5b6cff,#00d4ff);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(91,108,255,.4)}
.step h3{font-size:17px;margin-bottom:8px}
.step p{color:#9aa5c0;font-size:14px}
.pricing{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.plan{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:20px;padding:32px 26px;display:flex;flex-direction:column;transition:all .25s;position:relative}
.plan:hover{transform:translateY(-6px)}
.plan.pop{border:2px solid #5b6cff;background:linear-gradient(180deg,#131a33,#0d1322);box-shadow:0 0 40px rgba(91,108,255,.28)}
.plan .tag{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:linear-gradient(92deg,#5b6cff,#00d4ff);color:#fff;font-size:12px;font-weight:700;padding:5px 16px;border-radius:999px;white-space:nowrap}
.plan .pn{font-size:18px;font-weight:800;margin-bottom:4px}
.plan .pd{color:#9aa5c0;font-size:13px;margin-bottom:18px}
.plan .pp{font-size:38px;font-weight:800}
.plan .pp small{font-size:14px;color:#9aa5c0;font-weight:400}
.plan ul{flex:1;margin:20px 0 26px}
.plan ul li{padding:9px 0 9px 30px;position:relative;color:#cdd6f4;font-size:14px;border-bottom:1px dashed rgba(143,162,255,.15)}
.plan ul li::before{content:"✓";position:absolute;left:0;color:#3ee6a8;font-weight:700}
.plan .btn{width:100%}
.faqs{max-width:820px;margin:0 auto}
.faq{border:1px solid rgba(91,108,255,.22);border-radius:14px;margin-bottom:14px;background:#0d1322;overflow:hidden;transition:border-color .25s}
.faq:hover{border-color:rgba(0,212,255,.45)}
.faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:700;font-size:16px;display:flex;justify-content:space-between;align-items:center;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:26px;height:26px;border-radius:8px;background:rgba(91,108,255,.16);display:flex;align-items:center;justify-content:center;transition:transform .3s;color:#8fa2ff;font-weight:700}
.faq[open] summary .pm{transform:rotate(45deg);background:rgba(0,212,255,.2);color:#00d4ff}
.faq .ans{padding:0 22px 20px;color:#9aa5c0;font-size:14.5px}
.faq .ans ol{margin:10px 0 0;list-style:none;counter-reset:fa}
.faq .ans ol li{counter-increment:fa;padding:5px 0 5px 32px;position:relative}
.faq .ans ol li::before{content:counter(fa);position:absolute;left:0;top:9px;width:20px;height:20px;border-radius:50%;background:rgba(91,108,255,.2);color:#8fa2ff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.testis{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.testi{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;padding:24px;transition:all .25s}
.testi:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.5)}
.testi .stars{color:#ffc53d;font-size:14px;margin-bottom:10px;letter-spacing:2px}
.testi p{color:#cdd6f4;font-size:14px;margin-bottom:16px}
.testi .who{display:flex;align-items:center;gap:12px}
.testi .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#5b6cff,#00d4ff);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}
.testi .who b{display:block;font-size:14px}
.testi .who span{color:#9aa5c0;font-size:12px}
.news-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.news-card{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;overflow:hidden;transition:all .25s;display:flex;flex-direction:column}
.news-card:hover{transform:translateY(-6px);border-color:rgba(0,212,255,.5);box-shadow:0 16px 36px rgba(0,0,0,.4)}
.news-card img{aspect-ratio:16/9;object-fit:cover;width:100%}
.news-card .body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.news-card .dt{color:#8fa2ff;font-size:12px;margin-bottom:8px}
.news-card h3{font-size:16px;margin-bottom:8px;line-height:1.45}
.news-card h3 a{transition:color .2s}
.news-card h3 a:hover{color:#00d4ff}
.news-card .ex{color:#9aa5c0;font-size:13px;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-card .more{margin-top:12px;color:#8fa2ff;font-size:13px;font-weight:600}
.cta-band{text-align:center;background:radial-gradient(700px 300px at 50% 0%,rgba(91,108,255,.3),transparent 70%);border:1px solid rgba(91,108,255,.3);border-radius:24px;padding:64px 30px;box-shadow:0 0 60px rgba(91,108,255,.12)}
.cta-band h2{font-size:clamp(24px,3.2vw,36px);margin-bottom:14px}
.cta-band p{color:#9aa5c0;margin-bottom:28px}
footer{border-top:1px solid rgba(91,108,255,.14);padding:60px 0 30px;background:#060910}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;margin-bottom:40px}
.foot-brand p{color:#9aa5c0;font-size:13px;margin:14px 0;max-width:300px}
.foot-col h4{font-size:15px;margin-bottom:16px;color:#fff}
.foot-col a{display:block;color:#9aa5c0;font-size:13.5px;padding:6px 0;transition:color .2s,transform .2s}
.foot-col a:hover{color:#00d4ff;transform:translateX(3px)}
.foot-bottom{border-top:1px solid rgba(91,108,255,.12);padding-top:24px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;color:#7c86a3;font-size:13px}
.foot-bottom .links{display:flex;gap:20px}
.foot-bottom a:hover{color:#00d4ff}
.totop{position:fixed;right:22px;bottom:22px;width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#5b6cff,#00d4ff);color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;z-index:800;box-shadow:0 10px 26px rgba(91,108,255,.4);transition:transform .25s,opacity .25s}
.totop:hover{transform:translateY(-4px)}
html:not(.js) .totop{display:none}
.demo{position:relative;border-radius:22px;background:linear-gradient(165deg,#101a30,#0a0f1e);border:1px solid rgba(91,108,255,.4);box-shadow:0 0 60px rgba(91,108,255,.22);padding:20px;max-width:480px}
.demo-switch{position:absolute;opacity:0;pointer-events:none}
.demo-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.demo-brand{display:flex;align-items:center;gap:10px;font-weight:800}
.demo-brand img{width:30px;height:30px;border-radius:8px}
.demo-status{display:flex;align-items:center;gap:8px;font-size:13px;color:#9aa5c0}
.demo-status i{width:9px;height:9px;border-radius:50%;background:#5a6278;transition:all .3s}
.demo-status .st-on{display:none;color:#3ee6a8}
.demo-switch:checked~.demo-window .demo-status .st-off{display:none}
.demo-switch:checked~.demo-window .demo-status .st-on{display:inline}
.demo-switch:checked~.demo-window .demo-status i{background:#3ee6a8;box-shadow:0 0 12px #3ee6a8;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
.demo-gauge{text-align:center;padding:8px 0 14px;position:relative}
.demo-gauge svg{width:230px;height:auto;max-width:100%}
.needle{transform-origin:150px 130px;transition:transform .6s cubic-bezier(.3,1.4,.5,1)}
.demo-switch:checked~.demo-window .needle{transform:rotate(74deg);animation:swing 3.4s ease-in-out infinite}
@keyframes swing{0%,100%{transform:rotate(74deg)}50%{transform:rotate(96deg)}}
.gauge-val{position:absolute;left:0;right:0;top:88px;font-size:30px;font-weight:800}
.gauge-val small{font-size:13px;color:#9aa5c0;font-weight:400}
.gauge-val .g-on{display:none;color:#fff}
.demo-switch:checked~.demo-window .gauge-val .g-off{display:none}
.demo-switch:checked~.demo-window .gauge-val .g-on{display:block}
.demo-meta{display:flex;justify-content:center;gap:26px;margin:6px 0 16px;font-size:13px;color:#9aa5c0}
.demo-meta b{display:block;color:#fff;font-size:17px}
.demo-meta .v-on{display:none}
.demo-switch:checked~.demo-window .v-off{display:none}
.demo-switch:checked~.demo-window .v-on{display:inline}
.demo-nodes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.demo-nodes label{position:relative;display:block;text-align:center;cursor:pointer}
.demo-nodes input{position:absolute;opacity:0}
.demo-nodes label span{display:block;padding:10px 4px;border:1px solid rgba(143,162,255,.3);border-radius:10px;font-size:13px;color:#9aa5c0;transition:all .2s}
.demo-nodes input:checked+span{border-color:#00d4ff;background:rgba(0,212,255,.12);color:#fff}
.demo-nodes label:hover span{border-color:rgba(0,212,255,.7)}
.demo-toggles{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.demo-toggles label{position:relative;cursor:pointer}
.demo-toggles input{position:absolute;opacity:0}
.demo-toggles label span{display:inline-flex;align-items:center;padding:8px 14px;border:1px solid rgba(143,162,255,.3);border-radius:999px;font-size:12.5px;color:#9aa5c0;transition:all .2s}
.demo-toggles input:checked+span{border-color:#3ee6a8;color:#3ee6a8;background:rgba(62,230,168,.08)}
.demo-btn{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;padding:15px;border-radius:14px;background:linear-gradient(92deg,#5b6cff,#00d4ff);color:#fff;font-weight:800;font-size:16px;cursor:pointer;border:0;box-shadow:0 8px 26px rgba(91,108,255,.4);transition:transform .2s,box-shadow .2s}
.demo-btn:active{transform:scale(.98)}
.demo-btn .tx-on{display:none}
.demo-switch:checked~.demo-window .demo-btn{background:#12203a;border:1px solid rgba(62,230,168,.6);color:#3ee6a8;box-shadow:none}
.demo-switch:checked~.demo-window .demo-btn .tx-off{display:none}
.demo-switch:checked~.demo-window .demo-btn .tx-on{display:inline}
.dl-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.dl-hero h1{font-size:clamp(28px,3.4vw,42px);margin:18px 0 16px}
.dl-hero .sub{color:#9aa5c0;margin-bottom:26px}
.dl-data{display:flex;gap:26px;flex-wrap:wrap;margin-top:30px}
.dl-data div{border-left:2px solid #5b6cff;padding-left:14px}
.dl-data b{display:block;font-size:17px}
.dl-data span{color:#9aa5c0;font-size:12px}
.vers{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.ver{background:#0d1322;border:1px solid rgba(91,108,255,.22);border-radius:16px;padding:24px;display:flex;gap:18px;align-items:flex-start;transition:all .25s}
.ver:hover{transform:translateY(-5px);border-color:rgba(0,212,255,.5)}
.ver .os{flex:none;width:54px;height:54px;border-radius:14px;background:linear-gradient(135deg,rgba(91,108,255,.3),rgba(0,212,255,.2));display:flex;align-items:center;justify-content:center;font-size:26px}
.ver h3{font-size:17px;margin-bottom:4px}
.ver .vmeta{color:#9aa5c0;font-size:12.5px;margin-bottom:10px}
.ver ul li{padding:3px 0 3px 22px;position:relative;color:#cdd6f4;font-size:13.5px}
.ver ul li::before{content:"✓";position:absolute;left:0;color:#3ee6a8}
.ver .btn{margin-top:14px}
.reqs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.req{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:14px;padding:18px 20px;transition:all .25s}
.req:hover{border-color:rgba(0,212,255,.5);transform:translateY(-4px)}
.req .ic{font-size:22px;margin-bottom:8px}
.req b{display:block;font-size:15px;margin-bottom:4px}
.req span{color:#9aa5c0;font-size:13px}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13.5px;color:#9aa5c0;margin:20px 0 0}
.breadcrumb a:hover{color:#00d4ff}
.breadcrumb .sep{color:#5a6278}
.page-hero{padding:130px 0 50px;background:radial-gradient(800px 400px at 50% -20%,rgba(91,108,255,.25),transparent 65%)}
.page-hero h1{font-size:clamp(26px,3.4vw,40px);margin-bottom:12px}
.page-hero p{color:#9aa5c0;max-width:680px}
.article-wrap{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:start}
.article{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:18px;padding:34px;min-width:0}
.article h1{font-size:clamp(22px,2.6vw,30px);margin:14px 0 12px}
.article-meta{display:flex;flex-wrap:wrap;gap:14px;color:#9aa5c0;font-size:13px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid rgba(143,162,255,.15)}
.article .cover{margin-bottom:22px;border-radius:12px;overflow:hidden}
.article .cover img{width:100%}
.article .lead{font-size:16.5px;color:#cdd6f4;margin-bottom:18px;padding:16px 18px;background:rgba(91,108,255,.08);border-left:3px solid #5b6cff;border-radius:0 12px 12px 0}
.article h2{font-size:21px;margin:30px 0 14px;padding-left:14px;border-left:4px solid #00d4ff}
.article p{margin-bottom:14px;color:#b9c2dd;font-size:15px;text-align:justify}
.article .inimg{margin:20px 0;border-radius:12px;overflow:hidden}
.article .inimg img{width:100%}
.article .inimg figcaption{color:#7c86a3;font-size:12px;text-align:center;padding:8px 0 0}
.article blockquote{margin:20px 0;padding:16px 20px;border-radius:12px;background:rgba(0,212,255,.07);border:1px solid rgba(0,212,255,.25);color:#aef;font-size:14.5px}
.article blockquote b{color:#fff}
.article .end{padding:20px;border-radius:14px;background:rgba(91,108,255,.1);border:1px solid rgba(91,108,255,.3);margin-top:26px;text-align:center}
.article .end .btn{margin-top:14px}
.pager{display:flex;justify-content:space-between;gap:14px;margin:24px 0;flex-wrap:wrap}
.pager a{flex:1;min-width:200px;border:1px solid rgba(91,108,255,.25);border-radius:12px;padding:14px 18px;background:#0d1322;transition:all .25s;font-size:14px}
.pager a:hover{border-color:#00d4ff;transform:translateY(-3px)}
.pager a span{display:block;color:#7c86a3;font-size:12px;margin-bottom:4px}
.pager .next{text-align:right}
.comments{margin-top:26px}
.comments h3{font-size:18px;margin-bottom:16px;padding-left:12px;border-left:4px solid #5b6cff}
.cmt{display:flex;gap:14px;padding:16px 0;border-bottom:1px dashed rgba(143,162,255,.14)}
.cmt .av{flex:none;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#5b6cff,#00d4ff);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}
.cmt b{font-size:14px}
.cmt .cd{color:#7c86a3;font-size:12px;margin-left:8px}
.cmt p{font-size:13.5px;color:#b9c2dd;margin-top:4px}
.side{position:sticky;top:88px;display:flex;flex-direction:column;gap:18px}
.side-card{background:#0d1322;border:1px solid rgba(91,108,255,.22);border-radius:14px;padding:20px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.side-card h4{font-size:15px;margin-bottom:14px;padding-left:10px;border-left:3px solid #5b6cff}
.toc{position:relative;padding-left:18px}
.toc::before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:2px;background:rgba(91,108,255,.3)}
.toc a{display:block;position:relative;padding:7px 0;color:#9aa5c0;font-size:13.5px;transition:all .2s}
.toc a::before{content:"";position:absolute;left:-19px;top:14px;width:8px;height:8px;border-radius:50%;background:#2a3452;transition:all .2s}
.toc a:hover{color:#cdd6f4}
.toc a.act{color:#00d4ff;font-weight:700}
.toc a.act::before{background:#00d4ff;box-shadow:0 0 10px #00d4ff}
.hot{list-style:none;counter-reset:rk}
.hot li{counter-increment:rk;display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px dashed rgba(143,162,255,.12)}
.hot li:last-child{border-bottom:0}
.hot .rk{flex:none;width:22px;height:22px;border-radius:6px;background:#2a3452;color:#9aa5c0;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:transform .2s}
.hot li:nth-child(1) .rk{background:linear-gradient(135deg,#5b6cff,#00d4ff);color:#fff}
.hot li:nth-child(2) .rk{background:linear-gradient(135deg,#ff9a3d,#ff6a3d);color:#fff}
.hot li:nth-child(3) .rk{background:linear-gradient(135deg,#ffd23d,#ffb02d);color:#5a3d00}
.hot li:hover .rk{transform:scale(1.2)}
.hot a{font-size:13.5px;color:#b9c2dd;transition:color .2s;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hot a:hover{color:#00d4ff}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags a{padding:6px 13px;border:1px solid rgba(143,162,255,.3);border-radius:999px;font-size:12.5px;color:#9aa5c0;transition:all .2s}
.tags a:hover{color:#00d4ff;border-color:#00d4ff}
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
.related .news-card h3{font-size:14px}
.err-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.err-page .code{font-size:110px;font-weight:800;line-height:1;background:linear-gradient(120deg,#5b6cff,#00d4ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.err-page p{color:#9aa5c0;margin:14px 0 26px}
.smap{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.smap-card{background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:16px;padding:24px}
.smap-card h3{font-size:16px;margin-bottom:12px;padding-left:10px;border-left:3px solid #5b6cff}
.smap-card a{display:block;padding:7px 0;color:#9aa5c0;font-size:14px;transition:all .2s}
.smap-card a:hover{color:#00d4ff;transform:translateX(3px)}
.doc{max-width:820px;margin:0 auto;background:#0d1322;border:1px solid rgba(91,108,255,.2);border-radius:18px;padding:36px}
.doc h2{font-size:20px;margin:26px 0 12px;padding-left:12px;border-left:4px solid #00d4ff}
.doc h2:first-of-type{margin-top:0}
.doc p{margin-bottom:12px;color:#b9c2dd;font-size:14.5px}
.doc .demo-note{border:1px dashed rgba(255,193,61,.5);background:rgba(255,193,61,.06);color:#ffd98a;padding:12px 16px;border-radius:10px;font-size:13px;margin-bottom:18px}
html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
html.js .reveal.visible{opacity:1;transform:none}
html:not(.js) .reveal{opacity:1;transform:none}
@media (max-width:992px){
.nav-toggle{display:block;margin-left:auto}
.nav-cta{display:none}
.nav-menu{position:fixed;top:68px;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;background:#0a0f1e;padding:14px 20px 22px;border-bottom:1px solid rgba(91,108,255,.2);display:none;max-height:calc(100vh - 68px);overflow-y:auto}
.nav-chk:checked~.nav-menu{display:flex}
.drop{position:static;opacity:1;visibility:visible;transform:none;display:none;box-shadow:none;background:rgba(91,108,255,.06);border:1px solid rgba(91,108,255,.15);margin:4px 0 8px}
.nav-group details[open] .drop{display:block}
.nav-group:hover .caret{transform:none}
.nav-group details[open] .caret{transform:rotate(180deg)}
.hero-grid,.dl-hero,.nodes-grid{grid-template-columns:1fr;gap:40px}
.feats,.scens,.steps,.pricing,.testis,.news-cards,.reqs,.smap{grid-template-columns:repeat(2,1fr)}
.stats-band{grid-template-columns:repeat(2,1fr)}
.article-wrap{grid-template-columns:1fr}
.side{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.vers{grid-template-columns:1fr}
.foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
.sect{padding:60px 0}
.feats,.scens,.steps,.pricing,.testis,.news-cards,.reqs,.smap,.related{grid-template-columns:1fr}
.side{grid-template-columns:1fr}
.node-list{grid-template-columns:1fr}
.article{padding:22px}
.doc{padding:24px}
.hero{padding:120px 0 64px}
}
@media (max-width:480px){
.wrap{padding:0 16px}
.hero-stats{gap:20px}
.btn{width:100%;justify-content:center}
.hero-ctas{flex-direction:column}
.hero-ctas .btn{width:100%}
.foot-grid{grid-template-columns:1fr}
.demo-nodes{grid-template-columns:repeat(2,1fr)}
.foot-bottom{flex-direction:column;text-align:center}
}
