*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",Roboto,Arial,sans-serif;color:#0f172a;background:#f8fafc;line-height:1.65;overflow-x:hidden}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}ul,ol{list-style:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.container{max-width:1200px;margin:0 auto;padding:0 24px}.grad-text{background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 30px;border-radius:14px;font-size:16px;font-weight:600;transition:all .3s ease;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;box-shadow:0 8px 24px rgba(79,70,229,.35)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(79,70,229,.45)}.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(8px)}.btn-ghost:hover{background:rgba(255,255,255,.22)}.btn-light{background:#fff;color:#4f46e5;box-shadow:0 8px 24px rgba(15,23,42,.12)}.btn-light:hover{transform:translateY(-3px)}
.navbar{position:fixed;top:0;left:0;right:0;z-index:999;padding:16px 0;transition:all .35s ease;background:transparent}.navbar.scrolled{background:rgba(10,15,35,.92);backdrop-filter:blur(14px);padding:10px 0;box-shadow:0 6px 24px rgba(0,0,0,.18)}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.nav-logo{display:flex;align-items:center;gap:10px;color:#fff;font-size:22px;font-weight:800;letter-spacing:.5px}.nav-logo img{width:38px;height:38px;border-radius:10px}.nav-menu{display:flex;align-items:center;gap:6px}.nav-item{position:relative}.nav-item>a,.nav-item>.nav-trigger{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.88);font-size:15px;font-weight:500;padding:10px 14px;border-radius:10px;transition:all .25s}.nav-item>a:hover,.nav-item>.nav-trigger:hover{color:#fff;background:rgba(255,255,255,.1)}.nav-item .caret{display:inline-block;font-size:10px;transition:transform .3s}.nav-item:hover .caret{transform:rotate(180deg)}.dropdown{position:absolute;top:calc(100% + 10px);left:0;min-width:190px;background:#fff;border-radius:14px;box-shadow:0 18px 44px rgba(15,23,42,.18);padding:8px;opacity:0;visibility:hidden;transform:translateY(12px);transition:all .3s ease}.nav-item:hover .dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown a{display:block;padding:10px 16px;border-radius:10px;color:#334155;font-size:14px;transition:all .2s}.dropdown a:hover{background:#eef2ff;color:#4f46e5}.nav-cta{display:flex;align-items:center;gap:14px}.nav-cta .btn{padding:11px 24px;font-size:15px}.hamburger{display:none;flex-direction:column;gap:5px;padding:8px;z-index:1001}.hamburger span{display:block;width:26px;height:3px;background:#fff;border-radius:3px;transition:all .3s}.hamburger.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.hero{position:relative;background:radial-gradient(1100px 600px at 80% -10%,rgba(14,165,233,.35),transparent 60%),radial-gradient(900px 520px at 10% 110%,rgba(79,70,229,.45),transparent 60%),linear-gradient(160deg,#0b1026 0%,#131a3d 55%,#0b1026 100%);color:#fff;padding:150px 0 90px;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='0.05'%3E%3Cpath d='M0 60h120M60 0v120'/%3E%3Ccircle cx='60' cy='60' r='30'/%3E%3C/g%3E%3C/svg%3E")}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;position:relative}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:8px 18px;border-radius:99px;font-size:13px;margin-bottom:22px}.hero-badge .dot{width:8px;height:8px;border-radius:50%;background:#22d3ee;box-shadow:0 0 10px #22d3ee;animation:pulse 1.8s infinite}.hero h1{font-size:52px;line-height:1.18;font-weight:800;margin-bottom:18px;letter-spacing:.5px}.hero-sub{font-size:18px;color:rgba(255,255,255,.78);max-width:540px;margin-bottom:34px}.hero-btns{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:44px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:520px}.hero-stat .num{font-size:32px;font-weight:800;background:linear-gradient(135deg,#22d3ee,#818cf8);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-stat .lbl{font-size:13px;color:rgba(255,255,255,.6);margin-top:2px}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}@keyframes spin{to{transform:rotate(360deg)}}
.demo-wrap{perspective:1200px}.demo-card{background:linear-gradient(165deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.14);border-radius:24px;padding:26px;backdrop-filter:blur(14px);box-shadow:0 30px 70px rgba(0,0,0,.35);transform:rotateY(-4deg) rotateX(2deg);transition:transform .4s}.demo-card:hover{transform:rotateY(0) rotateX(0)}.demo-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.demo-status{display:flex;align-items:center;gap:8px;font-size:14px;color:rgba(255,255,255,.85)}.demo-status .st-dot{width:9px;height:9px;border-radius:50%;background:#64748b}.demo-status.on .st-dot{background:#22d3ee;box-shadow:0 0 12px #22d3ee}.demo-node-select{position:relative}.demo-node-select select{appearance:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;padding:9px 34px 9px 14px;border-radius:10px;font-size:13px;cursor:pointer}.demo-node-select select option{color:#0f172a}.demo-node-select::after{content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;pointer-events:none}.demo-gauge{display:flex;align-items:center;gap:26px;padding:14px 0 22px}.gauge-ring{position:relative;width:170px;height:170px;flex:none}.gauge-ring svg{transform:rotate(-90deg)}.gauge-ring .track{stroke:rgba(255,255,255,.12)}.gauge-ring .bar{stroke:url(style.v3.css?v=1);stroke-linecap:round;transition:stroke-dashoffset 1.1s ease}.gauge-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.gauge-center .speed{font-size:34px;font-weight:800;color:#fff}.gauge-center .unit{font-size:12px;color:rgba(255,255,255,.6)}.gauge-metrics{flex:1;display:flex;flex-direction:column;gap:14px}.metric-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:rgba(255,255,255,.65)}.metric-row b{color:#fff;font-size:14px;font-variant-numeric:tabular-nums}.demo-switches{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}.sw{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:12px 10px;text-align:center;color:rgba(255,255,255,.75);font-size:12px;transition:all .25s;cursor:pointer}.sw .sw-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#64748b;margin-bottom:6px;transition:all .25s}.sw.active{border-color:#22d3ee;background:rgba(34,211,238,.12);color:#fff}.sw.active .sw-dot{background:#22d3ee;box-shadow:0 0 8px #22d3ee}.demo-connect{width:100%;padding:16px;border-radius:14px;font-size:17px;font-weight:700;color:#fff;background:linear-gradient(135deg,#4f46e5,#0ea5e9);transition:all .3s;box-shadow:0 10px 28px rgba(79,70,229,.4)}.demo-connect:hover{filter:brightness(1.1)}.demo-connect.connected{background:linear-gradient(135deg,#e11d48,#f43f5e)}
.section{padding:96px 0}.sec-head{text-align:center;max-width:720px;margin:0 auto 56px}.sec-head .tag{display:inline-block;font-size:13px;font-weight:700;color:#4f46e5;background:#eef2ff;padding:6px 16px;border-radius:99px;margin-bottom:14px}.sec-head h2{font-size:36px;font-weight:800;margin-bottom:14px;line-height:1.3}.sec-head p{color:#64748b;font-size:16px}.dark-sec{background:linear-gradient(165deg,#0b1026,#131a3d);color:#fff}.dark-sec .sec-head p{color:rgba(255,255,255,.65)}.dark-sec .sec-head .tag{background:rgba(99,102,241,.18);color:#a5b4fc}
.node-strip{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:44px}.node-chip{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e2e8f0;border-radius:99px;padding:10px 20px;font-size:14px;font-weight:600;color:#334155;cursor:pointer;transition:all .25s}.node-chip .flag{width:20px;height:14px;border-radius:3px;overflow:hidden;display:inline-block}.node-chip:hover,.node-chip.active{border-color:#4f46e5;color:#4f46e5;box-shadow:0 6px 18px rgba(79,70,229,.18);transform:translateY(-2px)}.node-chip .lat{font-size:11px;color:#94a3b8;font-weight:400}.node-panel{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:30px;box-shadow:0 20px 50px rgba(15,23,42,.08);display:none;animation:fadeUp .4s}.node-panel.active{display:block}.node-panel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.node-mini{background:#f8fafc;border-radius:14px;padding:18px;border:1px solid #eef2f7}.node-mini .nm-name{font-weight:700;margin-bottom:8px;display:flex;justify-content:space-between}.node-mini .nm-lat{color:#0ea5e9;font-size:13px}.node-mini .bar{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-top:8px}.node-mini .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#4f46e5,#0ea5e9)}
.speed-data{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:50px}.sd-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:26px;text-align:center;transition:all .3s}.sd-card:hover{transform:translateY(-6px);border-color:rgba(34,211,238,.5)}.sd-card .sd-num{font-size:36px;font-weight:800;background:linear-gradient(135deg,#22d3ee,#818cf8);-webkit-background-clip:text;background-clip:text;color:transparent}.sd-card .sd-lbl{font-size:13px;color:rgba(255,255,255,.6);margin-top:6px}.speed-bar{background:rgba(255,255,255,.07);border-radius:16px;padding:30px}.speed-bar h3{font-size:18px;margin-bottom:22px}.bar-line{margin-bottom:18px}.bar-line .bl-top{display:flex;justify-content:space-between;font-size:13px;color:rgba(255,255,255,.7);margin-bottom:8px}.bar-line .bl-track{height:10px;background:rgba(255,255,255,.1);border-radius:99px;overflow:hidden}.bar-line .bl-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#4f46e5,#0ea5e9);width:0;transition:width 1.2s ease}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.f-card{background:#fff;border:1px solid #eef2f7;border-radius:20px;padding:28px 24px;transition:all .35s;position:relative;overflow:hidden}.f-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#4f46e5,#0ea5e9);transform:scaleX(0);transform-origin:left;transition:transform .35s}.f-card:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(15,23,42,.12)}.f-card:hover::before{transform:scaleX(1)}.f-icon{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#eef2ff,#e0f2fe);display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:18px}.f-card h3{font-size:17px;margin-bottom:10px}.f-card p{font-size:14px;color:#64748b}
.proto-sec{background:#fff}.proto-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.p-card{border:1px solid #eef2f7;border-radius:20px;padding:30px;transition:all .3s;position:relative}.p-card:hover{border-color:#4f46e5;box-shadow:0 18px 44px rgba(79,70,229,.14)}.p-card .p-badge{position:absolute;top:22px;right:22px;font-size:11px;font-weight:700;background:#eef2ff;color:#4f46e5;padding:4px 12px;border-radius:99px}.p-card h3{font-size:18px;margin-bottom:10px}.p-card p{font-size:14px;color:#64748b}
.scenario-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.s-card{background:#fff;border-radius:20px;padding:30px;border:1px solid #eef2f7;transition:all .35s;cursor:pointer}.s-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(15,23,42,.1)}.s-card .s-emoji{font-size:34px;margin-bottom:16px;display:block}.s-card h3{font-size:17px;margin-bottom:10px}.s-card p{font-size:14px;color:#64748b}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step}.step-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:32px 26px;position:relative;transition:all .3s}.step-card:hover{transform:translateY(-6px);border-color:rgba(34,211,238,.5)}.step-card .step-num{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:18px}.step-card h3{font-size:18px;margin-bottom:10px}.step-card p{font-size:14px;color:rgba(255,255,255,.65)}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}.price-card{background:#fff;border:1px solid #eef2f7;border-radius:24px;padding:36px 30px;display:flex;flex-direction:column;transition:all .35s;position:relative}.price-card:hover{transform:translateY(-8px);box-shadow:0 26px 54px rgba(15,23,42,.12)}.price-card.hot{background:linear-gradient(165deg,#0b1026,#1e2a5e);color:#fff;border:none;transform:scale(1.04);box-shadow:0 30px 64px rgba(79,70,229,.35)}.price-card.hot:hover{transform:scale(1.04) translateY(-6px)}.hot-flag{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;font-size:12px;font-weight:700;padding:6px 18px;border-radius:99px;white-space:nowrap}.price-name{font-size:17px;font-weight:700;margin-bottom:6px;color:#4f46e5}.price-card.hot .price-name{color:#a5b4fc}.price-desc{font-size:13px;color:#64748b;margin-bottom:20px}.price-card.hot .price-desc{color:rgba(255,255,255,.65)}.price-amount{display:flex;align-items:baseline;gap:6px;margin-bottom:24px}.price-amount .cur{font-size:22px;font-weight:700}.price-amount .val{font-size:48px;font-weight:800;line-height:1}.price-amount .per{font-size:13px;color:#94a3b8}.price-card.hot .per{color:rgba(255,255,255,.5)}.price-list{flex:1;margin-bottom:26px}.price-list li{display:flex;align-items:center;gap:10px;font-size:14px;padding:8px 0;color:#475569}.price-card.hot .price-list li{color:rgba(255,255,255,.85)}.price-list li::before{content:"✓";width:20px;height:20px;flex:none;border-radius:50%;background:#dcfce7;color:#16a34a;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.price-card.hot .price-list li::before{background:rgba(34,211,238,.2);color:#22d3ee}
.faq-list{max-width:820px;margin:0 auto}.faq-item{background:#fff;border:1px solid #eef2f7;border-radius:16px;margin-bottom:14px;overflow:hidden;transition:all .3s}.faq-item.open{border-color:#4f46e5;box-shadow:0 12px 30px rgba(79,70,229,.12)}.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;font-size:16px;font-weight:600;text-align:left;color:#0f172a}.faq-q .faq-icon{flex:none;width:26px;height:26px;border-radius:50%;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center;font-size:14px;transition:transform .3s}.faq-item.open .faq-icon{transform:rotate(45deg);background:#4f46e5;color:#fff}.faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}.faq-a-in{padding:0 24px 22px;color:#64748b;font-size:14px}.faq-a ol{padding-left:20px;list-style:decimal;display:flex;flex-direction:column;gap:6px}.faq-a li{line-height:1.7}
.reviews{font-size:0}.rv-card{display:inline-block;vertical-align:top;width:31.6%;margin:0 1.2% 24px 0;background:#fff;border:1px solid #eef2f7;border-radius:20px;padding:28px;transition:all .3s}.rv-card:nth-child(3n){margin-right:0}.rv-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(15,23,42,.1)}.rv-stars{color:#f59e0b;font-size:15px;letter-spacing:2px;margin-bottom:14px}.rv-text{font-size:14px;color:#475569;margin-bottom:20px}.rv-user{display:flex;align-items:center;gap:12px}.rv-ava{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px}.rv-name{font-weight:700;font-size:14px}.rv-role{font-size:12px;color:#94a3b8}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.news-card{background:#fff;border-radius:20px;overflow:hidden;border:1px solid #eef2f7;transition:all .35s;display:flex;flex-direction:column}.news-card:hover{transform:translateY(-8px);box-shadow:0 24px 50px rgba(15,23,42,.12)}.news-card .nc-img{aspect-ratio:16/9;overflow:hidden}.news-card .nc-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.news-card:hover .nc-img img{transform:scale(1.08)}.nc-body{padding:22px;display:flex;flex-direction:column;flex:1}.nc-meta{display:flex;gap:14px;font-size:12px;color:#94a3b8;margin-bottom:10px}.nc-title{font-size:16px;font-weight:700;line-height:1.5;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nc-title a:hover{color:#4f46e5}.nc-desc{font-size:13px;color:#64748b;flex:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cta-sec{position:relative;background:radial-gradient(800px 400px at 70% 0%,rgba(14,165,233,.3),transparent),linear-gradient(160deg,#0b1026,#131a3d);color:#fff;text-align:center;padding:110px 0;overflow:hidden}.cta-sec h2{font-size:40px;font-weight:800;margin-bottom:16px}.cta-sec p{color:rgba(255,255,255,.7);font-size:17px;margin-bottom:36px;max-width:560px;margin-left:auto;margin-right:auto}.cta-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.footer{background:#0b1026;color:rgba(255,255,255,.65);padding:70px 0 30px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:50px}.footer h4{color:#fff;font-size:16px;margin-bottom:18px}.footer a{display:block;font-size:14px;padding:6px 0;transition:color .2s}.footer a:hover{color:#22d3ee}.footer-brand p{font-size:14px;margin-top:16px;max-width:300px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px}
.page-hero{background:radial-gradient(900px 500px at 85% -10%,rgba(14,165,233,.3),transparent),linear-gradient(160deg,#0b1026,#131a3d);color:#fff;padding:150px 0 70px;text-align:center}.page-hero h1{font-size:42px;font-weight:800;margin-bottom:14px}.page-hero p{color:rgba(255,255,255,.7);font-size:16px;max-width:640px;margin:0 auto}
.dl-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:40px 0 10px}.dl-info h1{font-size:44px;line-height:1.2;font-weight:800;margin-bottom:16px}.dl-info .dl-sub{color:rgba(255,255,255,.75);font-size:17px;margin-bottom:30px}.dl-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px}.dl-meta div{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:14px;text-align:center}.dl-meta b{display:block;font-size:17px}.dl-meta span{font-size:12px;color:rgba(255,255,255,.6)}
.version-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.ver-card{background:#fff;border:1px solid #eef2f7;border-radius:20px;padding:30px;display:flex;flex-direction:column;transition:all .3s}.ver-card:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(15,23,42,.1)}.ver-card h3{font-size:18px;margin-bottom:4px}.ver-card .ver-ver{font-size:13px;color:#4f46e5;font-weight:700;margin-bottom:14px}.ver-card .ver-size{font-size:13px;color:#94a3b8;margin-bottom:18px}.ver-card ul{flex:1;margin-bottom:22px}.ver-card li{font-size:13px;color:#475569;padding:5px 0;padding-left:18px;position:relative}.ver-card li::before{content:"✓";position:absolute;left:0;color:#16a34a;font-weight:700}
.sys-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.sys-item{background:#fff;border:1px solid #eef2f7;border-radius:16px;padding:22px;display:flex;gap:14px;align-items:flex-start}.sys-item .si-ico{width:44px;height:44px;flex:none;border-radius:12px;background:linear-gradient(135deg,#eef2ff,#e0f2fe);display:flex;align-items:center;justify-content:center;font-size:20px}.sys-item b{display:block;font-size:15px;margin-bottom:4px}.sys-item span{font-size:13px;color:#64748b}
.install-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.is-card{background:#fff;border:1px solid #eef2f7;border-radius:20px;padding:28px 22px;text-align:center;position:relative;transition:all .3s}.is-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(15,23,42,.1)}.is-num{width:46px;height:46px;margin:0 auto 16px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;font-weight:800;font-size:19px;display:flex;align-items:center;justify-content:center}.is-card h3{font-size:16px;margin-bottom:8px}.is-card p{font-size:13px;color:#64748b}
.breadcrumb{display:flex;align-items:center;gap:8px;font-size:13px;color:#94a3b8;padding:16px 0;flex-wrap:wrap}.breadcrumb a:hover{color:#4f46e5}.breadcrumb .sep{color:#cbd5e1}
.news-layout{display:grid;grid-template-columns:1fr 330px;gap:40px;align-items:start}.article-main{background:#fff;border:1px solid #eef2f7;border-radius:20px;padding:40px;min-width:0}.article-main h1{font-size:30px;line-height:1.4;margin-bottom:18px}.article-meta{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:#94a3b8;padding-bottom:20px;border-bottom:1px solid #eef2f7;margin-bottom:24px}.article-cover{border-radius:16px;overflow:hidden;margin-bottom:26px;aspect-ratio:16/9}.article-cover img{width:100%;height:100%;object-fit:cover}.article-body p{font-size:15.5px;color:#334155;margin-bottom:18px;line-height:1.85}.article-body h2{font-size:22px;margin:34px 0 16px;padding-left:14px;border-left:4px solid #4f46e5;line-height:1.4}.article-body img{border-radius:14px;margin:22px 0}.article-body .data-box{background:#f1f5f9;border-radius:14px;padding:20px 24px;margin:22px 0;font-size:14px;color:#334155;border-left:4px solid #0ea5e9}.article-body .quote{border-left:4px solid #f59e0b;background:#fffbeb;padding:16px 20px;border-radius:0 12px 12px 0;margin:20px 0;font-size:15px;color:#78350f}.article-nav{display:flex;justify-content:space-between;gap:14px;margin-top:36px;padding-top:24px;border-top:1px solid #eef2f7;flex-wrap:wrap}.article-nav a{font-size:14px;color:#4f46e5;background:#eef2ff;padding:12px 18px;border-radius:12px;transition:all .2s}.article-nav a:hover{background:#4f46e5;color:#fff}
.sidebar{position:sticky;top:96px;display:flex;flex-direction:column;gap:22px}.side-card{background:#fff;border:1px solid #eef2f7;border-radius:18px;padding:22px;box-shadow:0 10px 30px rgba(15,23,42,.06)}.side-card h3{font-size:16px;margin-bottom:16px;padding-left:12px;border-left:4px solid #4f46e5;line-height:1.3}.toc-list{position:relative;padding-left:18px}.toc-list::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:#e2e8f0}.toc-list li{position:relative;margin-bottom:12px}.toc-list li::before{content:"";position:absolute;left:-17px;top:7px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid #cbd5e1;transition:all .25s}.toc-list a{font-size:13.5px;color:#64748b;line-height:1.5;transition:all .25s;display:block}.toc-list li.active::before{background:#4f46e5;border-color:#4f46e5;box-shadow:0 0 0 3px rgba(79,70,229,.2)}.toc-list li.active a{color:#4f46e5;font-weight:700}.rank-list li{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dashed #eef2f7}.rank-list li:last-child{border-bottom:none}.rank-badge{width:26px;height:26px;flex:none;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;background:#cbd5e1;transition:all .25s}.rank-list li:nth-child(1) .rank-badge{background:linear-gradient(135deg,#4f46e5,#0ea5e9)}.rank-list li:nth-child(2) .rank-badge{background:linear-gradient(135deg,#f97316,#f59e0b)}.rank-list li:nth-child(3) .rank-badge{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.rank-list a{font-size:13px;color:#475569;line-height:1.5;transition:color .2s}.rank-list li:hover .rank-badge{transform:scale(1.15)}.rank-list li:hover a{color:#4f46e5}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.tag-cloud a{font-size:12.5px;color:#64748b;background:#f1f5f9;padding:6px 14px;border-radius:99px;border:1px solid transparent;transition:all .2s}.tag-cloud a:hover{color:#4f46e5;border-color:#4f46e5;background:#eef2ff}
.comments{margin-top:36px;padding-top:28px;border-top:1px solid #eef2f7}.comments h3{font-size:18px;margin-bottom:20px;padding-left:12px;border-left:4px solid #4f46e5}.cmt{display:flex;gap:14px;padding:16px 0;border-bottom:1px dashed #eef2f7}.cmt:last-child{border-bottom:none}.cmt-ava{width:42px;height:42px;flex:none;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}.cmt-head{display:flex;align-items:center;gap:10px;margin-bottom:5px}.cmt-head b{font-size:14px}.cmt-head span{font-size:12px;color:#94a3b8}.cmt p{font-size:14px;color:#475569;line-height:1.7}
.news-list-layout{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.news-item-row{background:#fff;border:1px solid #eef2f7;border-radius:20px;overflow:hidden;transition:all .3s;display:flex;flex-direction:column}.news-item-row:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(15,23,42,.1)}
.sitemap-sec .sm-group{margin-bottom:34px}.sm-group h3{font-size:18px;margin-bottom:16px;padding-left:12px;border-left:4px solid #4f46e5}.sm-group ul{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.sm-group a{display:block;background:#fff;border:1px solid #eef2f7;border-radius:12px;padding:14px 18px;font-size:14px;color:#475569;transition:all .2s}.sm-group a:hover{border-color:#4f46e5;color:#4f46e5;transform:translateX(4px)}
.err-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(800px 500px at 50% -10%,rgba(14,165,233,.25),transparent),linear-gradient(160deg,#0b1026,#131a3d);color:#fff;text-align:center;padding:24px}.err-wrap h1{font-size:110px;font-weight:800;background:linear-gradient(135deg,#4f46e5,#0ea5e9);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}.err-wrap p{font-size:18px;color:rgba(255,255,255,.7);margin:20px 0 30px}.err-wrap .count{color:#22d3ee;font-weight:800}
.to-top{position:fixed;right:26px;bottom:26px;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#4f46e5,#0ea5e9);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s;z-index:900;box-shadow:0 10px 26px rgba(79,70,229,.4)}.to-top.show{opacity:1;visibility:visible}
@keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}.reveal.in{opacity:1;transform:translateY(0)}
@media(max-width:992px){.container{padding:0 20px}.nav-menu{position:fixed;top:0;right:-320px;width:300px;height:100vh;background:#0b1026;flex-direction:column;align-items:stretch;padding:90px 22px 30px;gap:4px;transition:right .35s ease;overflow-y:auto;box-shadow:-16px 0 40px rgba(0,0,0,.3)}.nav-menu.open{right:0}.nav-item{position:static}.nav-item>a,.nav-item>.nav-trigger{color:rgba(255,255,255,.9);padding:13px 14px;justify-content:space-between;font-size:16px}.nav-item>a:hover{color:#fff}.dropdown{position:static;background:rgba(255,255,255,.06);box-shadow:none;border-radius:12px;min-width:0;padding:6px;opacity:1;visibility:visible;transform:none;display:none}.dropdown.open{display:block}.dropdown a{color:rgba(255,255,255,.75)}.dropdown a:hover{background:rgba(255,255,255,.1);color:#fff}.nav-cta .btn-desktop{display:none}.hamburger{display:flex}.hero{padding:130px 0 70px}.hero-grid,.dl-hero-grid{grid-template-columns:1fr;gap:44px}.hero h1{font-size:40px}.dl-info h1{font-size:36px}.feature-grid{grid-template-columns:repeat(2,1fr)}.news-grid{grid-template-columns:repeat(2,1fr)}.speed-data{grid-template-columns:repeat(2,1fr)}.scenario-grid,.steps,.pricing-grid,.version-grid,.sys-grid{grid-template-columns:repeat(2,1fr)}.rv-card{width:48%;margin:0 2% 24px 0}.rv-card:nth-child(3n){margin-right:2%}.rv-card:nth-child(2n){margin-right:0}.proto-grid{grid-template-columns:1fr}.install-steps{grid-template-columns:repeat(2,1fr)}.price-card.hot{transform:none}.price-card.hot:hover{transform:translateY(-6px)}.news-layout{grid-template-columns:1fr}.sidebar{position:static}.news-list-layout{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.node-panel-grid{grid-template-columns:repeat(2,1fr)}.node-mini{text-align:left}}
@media(max-width:768px){.hero h1{font-size:32px}.dl-info h1{font-size:30px}.hero-sub{font-size:16px}.sec-head h2{font-size:28px}.section{padding:70px 0}.feature-grid,.scenario-grid,.pricing-grid,.version-grid,.sys-grid,.steps,.speed-data,.install-steps,.node-panel-grid{grid-template-columns:1fr}.rv-card{width:48.5%;margin:0 1.5% 18px 0}.rv-card:nth-child(3n){margin-right:1.5%}.rv-card:nth-child(2n){margin-right:0}.news-grid{grid-template-columns:1fr}.article-main{padding:26px 20px}.article-main h1{font-size:24px}.demo-gauge{flex-direction:column;text-align:center}.demo-switches{grid-template-columns:1fr;grid-auto-flow:column}.demo-switches .sw{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px}.hero-stats{grid-template-columns:repeat(3,1fr);gap:12px}.hero-stat .num{font-size:24px}.cta-sec h2{font-size:30px}.footer-grid{grid-template-columns:1fr}.sm-group ul{grid-template-columns:1fr}.btn{padding:13px 24px}.dl-meta{grid-template-columns:repeat(3,1fr);gap:10px}}
@media(max-width:480px){.hero h1{font-size:27px}.dl-info h1{font-size:25px}.hero-btns{flex-direction:column}.hero-btns .btn{width:100%}.hero-stats{grid-template-columns:1fr;gap:10px}.hero-stat{text-align:center}.gauge-ring{width:150px;height:150px}.page-hero h1{font-size:28px}.page-hero{padding:130px 0 50px}.demo-card{padding:18px}.article-body p{font-size:14.5px}.breadcrumb{font-size:12px}.navbar{padding:12px 0}.navbar.scrolled{padding:8px 0}.nav-logo{font-size:19px}.nav-logo img{width:32px;height:32px}.rv-card{width:48.5%;margin:0 1.5% 14px 0;padding:16px}.rv-card:nth-child(3n){margin-right:1.5%}.rv-card:nth-child(2n){margin-right:0}.rv-text{font-size:12.5px}.rv-ava{width:36px;height:36px;font-size:15px}}


/* geo-2026 additions */
.news-group-title{font-size:22px;font-weight:800;margin:40px 0 18px;padding-left:14px;border-left:4px solid #4f46e5;line-height:1.4;color:#0f172a}
.news-group-title:first-child{margin-top:0}
.answer-lede{max-width:860px;margin:0 auto 46px;text-align:center;font-size:16.5px;color:#475569;line-height:1.9}

/* fix: progressive enhancement -- scroll-reveal only applies when JS is available.
   Without this, .reveal{opacity:0} hides all body content if main.v2.js fails to load.
   Rollback: delete this block. */
html:not(.js) .reveal{opacity:1 !important;transform:none !important}
html.js .reveal{opacity:0;transform:translateY(30px)}
html.js .reveal.in{opacity:1;transform:translateY(0)}
html:not(.js) .bl-fill{width:auto !important}

/* fix: news group heading must span the full row inside the 2-column news grid,
   otherwise the heading occupies one grid cell and all cards shift out of place.
   Rollback: delete this block. */
.news-list-layout>.news-group-title{grid-column:1/-1}
.news-list-layout>.news-group-title:first-child{margin-top:0}
@media(max-width:992px){.news-list-layout>.news-group-title{grid-column:auto}}
.news-list-layout>.news-item-row{min-width:0}
.news-list-layout>.news-item-row .nc-img img{display:block}

/* theme: privacy (graphite teal, generous whitespace) - appended block, delete to roll back */
.container{max-width:1180px}
.btn-primary{background:linear-gradient(135deg,#0f766e,#1d4ed8);box-shadow:0 8px 24px rgba(15,118,110,.32)}
.btn-primary:hover{box-shadow:0 14px 32px rgba(15,118,110,.42)}
.tag{color:#0f766e;background:#e6f4f1}
.grad-text{background:linear-gradient(135deg,#0f766e,#1d4ed8);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero{background:radial-gradient(1000px 560px at 72% -8%,rgba(29,78,216,.28),transparent 62%),radial-gradient(880px 500px at 12% 108%,rgba(15,118,110,.4),transparent 62%),linear-gradient(170deg,#07100f,#0c1a24)}
.f-card,.p-card,.news-card,.news-item-row,.price-card,.side-card,.article-main{border-radius:12px}
.f-card:hover,.p-card:hover{border-color:#0f766e;box-shadow:0 18px 44px rgba(15,118,110,.13)}
.price-card.hot{border-color:#0f766e}
.navbar.scrolled{background:rgba(7,16,20,.95)}
.footer{background:#07100f}
.cta-sec{padding:120px 0}
@media(min-width:993px){
  .section{padding:110px 0}
  .hero-grid{grid-template-columns:1.1fr .9fr;gap:60px}
  .hero h1{font-size:48px;line-height:1.24}
  .feature-grid{grid-template-columns:repeat(4,1fr);gap:26px}
  .sec-head{max-width:680px;margin-bottom:64px}
}
/* layout: privacy - centered airy hero, borderless row-style feature and protocol lists, protocol timeline, single-column reviews, delete this block to roll back */
main{display:flex;flex-direction:column}
main > *{width:100%}
@media(min-width:993px){
  .hero-grid{grid-template-columns:1fr;max-width:840px;margin:0 auto;text-align:center;gap:38px}
  .hero-sub{margin-left:auto;margin-right:auto}
  .hero-btns{justify-content:center}
  .hero-stats{margin-left:auto;margin-right:auto}
  .demo-wrap{max-width:560px;margin:0 auto}
  .feature-grid{grid-template-columns:1fr;gap:0;max-width:880px;margin:0 auto}
  .f-card{display:flex;gap:22px;align-items:flex-start;border:0;border-bottom:1px solid rgba(15,23,42,.09);border-radius:0;padding:26px 6px;background:transparent}
  .f-card::before{display:none}
  .f-card:hover{transform:none;box-shadow:none;background:rgba(15,23,42,.02)}
  .f-icon{margin-bottom:0;flex:none}
  .proto-grid{grid-template-columns:1fr;gap:0;max-width:880px;margin:0 auto;position:relative;padding-left:38px}
  .proto-grid::before{content:"";position:absolute;left:10px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,rgba(30,64,175,.5),rgba(30,64,175,.05))}
  .p-card{display:flex;gap:20px;align-items:flex-start;border:0;border-bottom:1px solid rgba(15,23,42,.09);border-radius:0;padding:24px 6px;background:transparent}
  .p-card:hover{box-shadow:none;background:rgba(15,23,42,.02)}
  .p-card .p-badge{position:static;flex:none}
  .scenario-grid{grid-template-columns:repeat(2,1fr);max-width:880px;margin:0 auto}
  .steps{display:grid;grid-template-columns:repeat(3,1fr)}
  .pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1040px;margin:0 auto}
  .reviews{display:grid;grid-template-columns:1fr;max-width:840px;margin:0 auto}
  .news-grid{display:grid;grid-template-columns:1fr;max-width:840px;margin:0 auto}
  .faq-list{max-width:840px}
  .sys-grid{display:grid;grid-template-columns:repeat(2,1fr);max-width:880px;margin:0 auto}
  #what{order:1}
  #protocol{order:2}
  #features{order:3}
  #nodes + .dark-sec{order:4}
  #nodes{order:5}
  #scenario{order:6}
  #testimonials{order:7}
  #pricing{order:8}
  #scenario + .dark-sec{order:9}
  #faq{order:10}
  #guide{order:11}
  #news{order:12}
  .cta-sec{order:13}
}
@media(max-width:992px){
  main > section, main > .cta-sec, main > header{order:0!important}
  .hero-grid{grid-template-columns:1fr!important;text-align:center;gap:28px;max-width:100%!important}
  .hero-sub,.hero-stats{margin-left:auto;margin-right:auto}
  .hero-btns{justify-content:center}
  .feature-grid,.proto-grid,.scenario-grid,.pricing-grid,.reviews,.news-grid,.sys-grid,.node-panel-grid,.speed-data{display:grid!important;grid-template-columns:1fr!important;overflow:visible!important}
  .steps{display:grid!important;grid-template-columns:1fr!important}
  .f-card,.p-card{display:block!important;border:1px solid #eef2f7!important;border-radius:16px!important;padding:24px!important;background:#fff!important}
  .f-card::before{display:none!important}
  .proto-grid{padding-left:0!important}
  .proto-grid::before{display:none!important}
  .rv-card,.news-card,.s-card{min-width:0!important}
  .s-card:first-child{grid-column:auto!important}
  .f-card:first-child{grid-column:auto!important}
  .price-card.hot{transform:none!important}
  .faq-list{display:block!important;max-width:100%!important}
  .faq-item{margin-bottom:14px!important}
}
