:root{
  --ink:#0b1b3f;
  --void:#f4f7ff;
  --void-2:#ffffff;
  --rim:#d9e3f7;
  --ink-dim:#4f5f86;
  --disk:#1e5eff;
  --disk-hot:#0b44d9;
  --lens:#00a8e8;
  --ok:#12b886;
  --on-disk:#ffffff;
  --hero-ground:#ffffff;
  --f-display:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB",sans-serif;
  --f-body:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB",sans-serif;
  --f-mono:"Microsoft YaHei","微软雅黑","PingFang SC","Hiragino Sans GB",sans-serif;
  color-scheme:light
}
footer{
  --void:#061335;
  --void-2:#0b1f52;
  --rim:#1c3775;
  --ink:#eef3ff;
  --ink-dim:#a3b4dd;
  --disk:#3b7bff;
  --disk-hot:#a9c6ff;
  --lens:#2ad1f5;
  color-scheme:dark;
  background:var(--void);
  color:var(--ink)
}
*{
  box-sizing:border-box
}
html,body{
  margin:0
}
img{
  max-width:100%
}
[hidden]{
  display:none!important
}
body{
  background:var(--void);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased
}
body:before{
  content:"";
  position:fixed;
  inset:0 0 auto;
  height:env(safe-area-inset-top,0px);
  z-index:10;
  background:var(--void)
}
a{
  color:inherit
}
:focus-visible{
  outline:2px solid var(--disk);
  outline-offset:3px;
  border-radius:4px
}
.wrap{
  max-width:1160px;
  margin:0 auto;
  padding-left:max(16px,env(safe-area-inset-left,0px));
  padding-right:max(16px,env(safe-area-inset-right,0px))
}
h1,h2,h3{
  text-wrap:balance;
  margin:0
}
h2{
  font-family:var(--f-display);
  font-weight:900;
  font-size:clamp(28px,4.2vw,44px);
  line-height:1.25;
  letter-spacing:.01em
}
.eyebrow{
  font-family:var(--f-mono);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--disk)
}
.lead{
  color:var(--ink-dim);
  max-width:62ch;
  margin:14px 0 0
}
section{
  padding-block:96px
}
.sec-head{
  display:grid;
  gap:10px;
  margin-bottom:44px
}
header.top{
  position:sticky;
  top:env(safe-area-inset-top,0px);
  z-index:20;
  background:color-mix(in oklab,var(--void) 78%,transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--rim)
}
header.top .wrap{
  display:flex;
  align-items:center;
  gap:24px;
  height:64px
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--f-display);
  font-weight:900;
  font-size:20px;
  text-decoration:none
}
.logo i{
  width:22px;
  height:22px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,#000 38%,var(--disk) 42%,transparent 70%);
  box-shadow:0 0 14px var(--disk)
}
nav.main{
  display:flex;
  gap:22px;
  margin-left:auto;
  font-size:14px;
  color:var(--ink-dim)
}
nav.main a{
  text-decoration:none
}
nav.main a:hover{
  color:var(--ink)
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:0;
  border-radius:999px;
  padding:11px 22px;
  font:500 15px/1 var(--f-body);
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap
}
.btn-hot{
  background:var(--disk);
  color:var(--on-disk);
  box-shadow:0 6px 20px color-mix(in oklab,var(--disk) 35%,transparent)
}
.btn-hot:hover{
  filter:brightness(1.1)
}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--rim)
}
.btn-ghost:hover{
  border-color:var(--ink-dim)
}
@media(max-width:860px){
  nav.main{
    display:none
  }
  header.top .btn{
    margin-left:auto
  }
}
.hero{
  position:relative;
  overflow:hidden;
  padding-block:88px 72px
}
#field{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block
}
.hero .wrap{
  position:relative;
  display:grid;
  gap:22px;
  max-width:980px;
  text-align:left
}
.hero .kicker{
  font-family:var(--f-mono);
  font-size:13px;
  color:var(--ink-dim)
}
.hero .kicker s{
  color:var(--ink-dim);
  text-decoration-color:var(--disk)
}
.hero h1{
  font-family:var(--f-display);
  font-weight:900;
  font-size:clamp(40px,7.4vw,88px);
  line-height:1.08;
  letter-spacing:-.01em
}
.hero h1 em{
  font-style:normal;
  background:linear-gradient(100deg,var(--disk-hot),var(--disk) 45%,var(--lens));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent
}
.hero p.def{
  max-width:56ch;
  color:var(--ink-dim);
  font-size:17px;
  margin:0
}
.check{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:8px;
  padding:8px;
  border:1px solid var(--rim);
  border-radius:18px;
  background:color-mix(in oklab,var(--void-2) 86%,transparent);
  max-width:640px
}
.check input{
  flex:1 1 220px;
  min-width:0;
  background:transparent;
  border:0;
  color:var(--ink);
  font:16px var(--f-body);
  padding:10px 12px
}
.check input::placeholder{
  color:var(--ink-dim)
}
.check input:focus{
  outline:none
}
.check:focus-within{
  border-color:var(--disk)
}
.engines{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  font-family:var(--f-mono);
  font-size:12px;
  color:var(--ink-dim);
  margin-top:6px
}
.engines span:before{
  content:"● ";
  color:var(--ok)
}
.hero{
  background:radial-gradient(ellipse 60% 70% at 78% 45%,color-mix(in oklab,var(--disk) 12%,transparent),transparent 70%),radial-gradient(ellipse 50% 60% at 0% 0%,color-mix(in oklab,var(--lens) 10%,transparent),transparent 70%),var(--hero-ground)
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(color-mix(in oklab,var(--disk) 18%,transparent) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);
  mask-image:linear-gradient(180deg,#000,transparent 85%);
  pointer-events:none
}
.hero .kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  justify-self:start;
  padding:6px 14px;
  border-radius:999px;
  background:color-mix(in oklab,var(--disk) 8%,var(--void-2));
  border:1px solid color-mix(in oklab,var(--disk) 22%,transparent);
  color:var(--disk-hot)
}
.hero .kicker:before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--disk);
  box-shadow:0 0 0 4px color-mix(in oklab,var(--disk) 20%,transparent)
}
.hero .kicker s{
  color:var(--ink-dim)
}
.hero h1{
  color:var(--ink)
}
.hero h1 em{
  background-image:linear-gradient(100deg,var(--disk-hot),var(--disk) 50%,var(--lens))
}
.hero .check{
  background:var(--void-2);
  box-shadow:0 18px 50px -18px color-mix(in oklab,var(--disk) 45%,transparent)
}
.hero .engines span{
  padding:4px 10px;
  border-radius:999px;
  background:var(--void-2);
  border:1px solid var(--rim)
}
.hero .engines span:before{
  color:var(--disk)
}
.chips{
  position:absolute;
  inset:0;
  pointer-events:none
}
.chip{
  position:absolute;
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  border-radius:12px;
  background:var(--void-2);
  border:1px solid var(--rim);
  box-shadow:0 12px 30px -14px color-mix(in oklab,var(--ink) 35%,transparent);
  font-size:13px;
  color:var(--ink);
  white-space:nowrap;
  animation:float 6s ease-in-out infinite
}
.chip b{
  font-family:var(--f-mono);
  font-weight:600;
  color:var(--disk)
}
.chip i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--ok)
}
.chip:nth-child(1){
  right:6%;
  top:16%
}
.chip:nth-child(2){
  right:20%;
  top:68%;
  animation-delay:-2s
}
.chip:nth-child(3){
  right:4%;
  bottom:14%;
  animation-delay:-4s
}
@keyframes float{
  50%{
    transform:translateY(-8px)
  }
}
@media(max-width:1080px){
  .chips{
    display:none
  }
}
:root[data-scheme=dark]{
  --void:#040a1c;
  --void-2:#0a1534;
  --rim:#1a2b5a;
  --ink:#e8eeff;
  --ink-dim:#97a8d2;
  --disk:#3b7bff;
  --disk-hot:#9cc0ff;
  --lens:#2ad1f5;
  --hero-ground:#02050f;
  color-scheme:dark
}
:root[data-scheme=dark] .hero:before{
  opacity:.35
}
.scheme{
  display:inline-flex;
  gap:2px;
  padding:3px;
  border:1px solid var(--rim);
  border-radius:999px;
  background:var(--void-2)
}
.scheme button{
  display:grid;
  place-items:center;
  width:30px;
  height:28px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--ink-dim);
  cursor:pointer
}
.scheme button svg{
  width:16px;
  height:16px
}
.scheme button:hover{
  color:var(--ink)
}
.scheme button[aria-pressed=true]{
  background:var(--disk);
  color:var(--on-disk)
}
.logo{
  white-space:nowrap
}
@media(max-width:860px){
  .hero{
    padding-bottom:230px
  }
}
@media(max-width:480px){
  header.top .wrap{
    gap:10px
  }
  header.top .btn{
    padding:9px 14px;
    font-size:14px
  }
  .scheme button{
    width:26px
  }
}
html.scheme-anim,html.scheme-anim *{
  transition:background-color .5s ease,border-color .5s ease,color .5s ease!important
}
.why{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.why article{
  background:var(--void-2);
  border:1px solid var(--rim);
  border-radius:20px;
  padding:26px;
  display:grid;
  gap:10px;
  align-content:start
}
.why-k{
  justify-self:start;
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.14em;
  color:var(--disk);
  background:color-mix(in oklab,var(--disk) 9%,transparent);
  padding:3px 10px;
  border-radius:999px
}
.why h3{
  font-size:19px
}
.why p{
  margin:0;
  color:var(--ink-dim);
  font-size:15px
}
.gain{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  border:1px solid var(--rim);
  border-radius:20px;
  overflow:hidden;
  background:var(--void-2)
}
.gain article{
  padding:26px;
  display:grid;
  gap:8px;
  align-content:start
}
.gain article+article{
  border-left:1px solid var(--rim)
}
.gain b{
  font-family:var(--f-display);
  font-weight:900;
  font-size:24px;
  color:var(--disk-hot)
}
.gain p{
  margin:0;
  color:var(--ink-dim);
  font-size:14px
}
.loop-wrap{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center
}
.loop{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  position:relative
}
.loop li{
  background:var(--void-2);
  border:1px solid var(--rim);
  border-radius:18px;
  padding:20px;
  display:grid;
  gap:4px;
  position:relative
}
.loop li b{
  color:var(--ink)
}
.loop li span{
  color:var(--ink-dim);
  font-size:14px
}
.loop li:after{
  position:absolute;
  color:var(--disk);
  font-size:18px;
  font-weight:700
}
.loop li:nth-child(1):after{
  content:"→";
  right:-14px;
  top:50%;
  transform:translateY(-50%)
}
.loop li:nth-child(2):after{
  content:"↓";
  bottom:-15px;
  left:50%;
  transform:translate(-50%)
}
.loop li:nth-child(4):after{
  content:"↑";
  top:-15px;
  left:50%;
  transform:translate(-50%)
}
.loop li:nth-child(3):after{
  content:"←";
  left:-14px;
  top:50%;
  transform:translateY(-50%)
}
.loop li:nth-child(3){
  order:4
}
.loop li:nth-child(4){
  order:3
}
@media(max-width:860px){
  .why,.loop-wrap{
    grid-template-columns:1fr
  }
  .gain{
    grid-template-columns:1fr 1fr
  }
  .gain article:nth-child(3){
    border-left:0
  }
  .gain article:nth-child(n+3){
    border-top:1px solid var(--rim)
  }
}
@media(max-width:480px){
  .gain{
    grid-template-columns:1fr
  }
  .gain article+article{
    border-left:0;
    border-top:1px solid var(--rim)
  }
}
.report{
  margin-top:6px;
  max-width:640px;
  border:1px solid var(--rim);
  border-radius:18px;
  background:var(--void-2);
  padding:18px 20px;
  display:grid;
  gap:12px
}
.report h3{
  font-size:15px;
  font-weight:500
}
.report .note{
  font-size:12px;
  color:var(--ink-dim);
  font-family:var(--f-mono)
}
.bar{
  display:grid;
  grid-template-columns:76px 1fr 44px;
  gap:12px;
  align-items:center;
  font-size:13px
}
.bar .track{
  height:6px;
  border-radius:6px;
  background:var(--rim);
  overflow:hidden
}
.bar .fill{
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--lens),var(--disk));
  transition:width .9s cubic-bezier(.2,.8,.2,1)
}
.bar b{
  font-family:var(--f-mono);
  font-weight:600;
  text-align:right;
  font-variant-numeric:tabular-nums
}
.demo{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:48px;
  align-items:center
}
@media(max-width:860px){
  .demo{
    grid-template-columns:1fr
  }
}
.chat{
  border:1px solid var(--rim);
  border-radius:22px;
  background:var(--void-2);
  padding:22px;
  display:grid;
  gap:14px;
  min-width:0
}
.chat .bar-top{
  display:flex;
  gap:8px;
  align-items:center;
  font-family:var(--f-mono);
  font-size:12px;
  color:var(--ink-dim)
}
.chat .bar-top i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--rim)
}
.msg{
  padding:12px 16px;
  border-radius:14px;
  font-size:15px;
  max-width:92%
}
.msg.q{
  justify-self:end;
  background:var(--rim)
}
.msg.a{
  background:transparent;
  border:1px solid var(--rim);
  min-height:120px
}
.msg.a mark{
  background:color-mix(in oklab,var(--disk) 22%,transparent);
  color:var(--disk-hot);
  padding:0 3px;
  border-radius:3px
}
.msg.a sup{
  font-family:var(--f-mono);
  color:var(--lens);
  font-size:11px
}
.caret{
  display:inline-block;
  width:8px;
  height:1em;
  vertical-align:-2px;
  background:var(--disk);
  animation:blink 1s steps(1) infinite
}
@keyframes blink{
  50%{
    opacity:0
  }
}
.vs{
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--rim);
  border-radius:22px;
  overflow:hidden
}
.vs>div{
  padding:30px;
  display:grid;
  gap:14px;
  align-content:start
}
.vs>div+div{
  border-left:1px solid var(--rim);
  background:linear-gradient(160deg,color-mix(in oklab,var(--disk) 9%,var(--void-2)),var(--void-2) 60%)
}
.vs h3{
  font-size:20px
}
.vs ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
  color:var(--ink-dim)
}
.vs ul li{
  padding-left:22px;
  position:relative
}
.vs .old li:before{
  content:"–";
  position:absolute;
  left:0
}
.vs .new li{
  color:var(--ink)
}
.vs .new li:before{
  content:"→";
  position:absolute;
  left:0;
  color:var(--disk)
}
@media(max-width:760px){
  .vs{
    grid-template-columns:1fr
  }
  .vs>div+div{
    border-left:0;
    border-top:1px solid var(--rim)
  }
}
.steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
  counter-reset:s;
  position:relative
}
.steps:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:19px;
  height:1px;
  background:linear-gradient(90deg,var(--lens),var(--disk))
}
.step{
  position:relative;
  padding-right:24px;
  display:grid;
  gap:10px;
  min-width:0
}
.step .n{
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--void);
  border:1px solid var(--disk);
  font-family:var(--f-mono);
  font-size:13px;
  color:var(--disk);
  position:relative
}
.step h3{
  font-size:18px;
  margin-top:8px
}
.step p{
  margin:0;
  color:var(--ink-dim);
  font-size:14px
}
@media(max-width:860px){
  .steps{
    grid-template-columns:1fr 1fr;
    row-gap:36px
  }
  .steps:before{
    display:none
  }
}
@media(max-width:480px){
  .steps{
    grid-template-columns:1fr
  }
}
.tech{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--rim);
  border:1px solid var(--rim);
  border-radius:22px;
  overflow:hidden
}
.tech article{
  background:var(--void);
  padding:26px;
  display:grid;
  gap:8px;
  align-content:start;
  transition:background .2s
}
.tech article:hover{
  background:var(--void-2)
}
.tech .code{
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.12em;
  color:var(--lens);
  text-transform:uppercase
}
.tech h3{
  font-size:17px
}
.tech p{
  margin:0;
  color:var(--ink-dim);
  font-size:14px
}
@media(max-width:860px){
  .tech{
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:520px){
  .tech{
    grid-template-columns:1fr
  }
}
.ind{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.ind article{
  border:1px solid var(--rim);
  border-radius:18px;
  padding:22px;
  display:grid;
  gap:10px;
  align-content:start
}
.ind h3{
  font-size:18px
}
.ind .tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px
}
.ind .tags span{
  font-size:12px;
  padding:3px 10px;
  border-radius:999px;
  border:1px solid var(--rim);
  color:var(--ink-dim)
}
.ind q{
  color:var(--ink);
  font-size:14px;
  quotes:"“" "”"
}
.ind q:before{
  color:var(--disk)
}
@media(max-width:860px){
  .ind{
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:520px){
  .ind{
    grid-template-columns:1fr
  }
}
.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  padding-block:44px
}
.stats div{
  display:grid;
  gap:4px
}
.stats b{
  font-family:var(--f-display);
  font-weight:900;
  font-size:clamp(34px,5vw,52px);
  line-height:1;
  color:var(--disk-hot);
  font-variant-numeric:tabular-nums
}
.stats span{
  color:var(--ink-dim);
  font-size:14px
}
.stats .todo b{
  color:var(--ink-dim)
}
@media(max-width:760px){
  .stats{
    grid-template-columns:1fr 1fr
  }
}
.faq{
  display:grid;
  gap:10px;
  max-width:860px
}
.faq details{
  border:1px solid var(--rim);
  border-radius:14px;
  padding:4px 20px;
  background:var(--void-2)
}
.faq summary{
  cursor:pointer;
  padding:14px 0;
  font-weight:500;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:16px
}
.faq summary:after{
  content:"+";
  color:var(--disk);
  font-family:var(--f-mono)
}
.faq details[open] summary:after{
  content:"–"
}
.faq p{
  margin:0 0 16px;
  color:var(--ink-dim)
}
.cta{
  text-align:center;
  display:grid;
  gap:20px;
  justify-items:center
}
.cta h2{
  max-width:26ch
}
footer{
  border-top:1px solid var(--rim);
  padding-block:48px;
  color:var(--ink-dim);
  font-size:14px
}
footer .wrap{
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:32px
}
footer h4{
  color:var(--ink);
  font-size:14px;
  margin:0 0 10px
}
footer p{
  margin:0 0 6px
}
footer .sel{
  user-select:all;
  font-family:var(--f-mono);
  color:var(--ink)
}
@media(max-width:760px){
  footer .wrap{
    grid-template-columns:1fr
  }
}
.proto-flag{
  font-family:var(--f-mono);
  font-size:11px;
  color:var(--ink-dim);
  border:1px dashed var(--rim);
  border-radius:6px;
  padding:2px 8px
}
@media(prefers-reduced-motion:reduce){
  *{
    animation:none!important;
    transition:none!important
  }
}
.page-hero{
  padding-block:72px 40px;
  border-bottom:1px solid var(--rim);
  background:radial-gradient(ellipse at 85% 0%,color-mix(in oklab,var(--disk) 14%,transparent),transparent 55%)
}
.page-hero h1{
  font-family:var(--f-display);
  font-weight:900;
  font-size:clamp(32px,5vw,56px);
  line-height:1.15;
  margin-top:12px
}
.page-hero .lead{
  font-size:17px
}
.crumbs{
  font-size:13px;
  color:var(--ink-dim);
  display:flex;
  flex-wrap:wrap;
  gap:6px
}
.crumbs a{
  text-decoration:none
}
.crumbs a:hover{
  color:var(--ink)
}
.crumbs span[aria-hidden]{
  opacity:.5
}
.prose{
  max-width:72ch;
  padding-block:56px
}
.prose h2{
  font-size:clamp(22px,3vw,30px);
  margin:44px 0 14px
}
.prose h3{
  font-size:19px;
  margin:28px 0 10px
}
.prose p,.prose li{
  color:var(--ink-dim)
}
.prose strong{
  color:var(--ink)
}
.prose a{
  color:var(--disk-hot)
}
.prose table{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
  display:block;
  overflow-x:auto
}
.prose th,.prose td{
  border:1px solid var(--rim);
  padding:10px 12px;
  text-align:left;
  vertical-align:top
}
.prose th{
  color:var(--ink);
  background:var(--void-2)
}
.meta{
  font-family:var(--f-mono);
  font-size:12px;
  color:var(--ink-dim);
  margin-top:14px
}
.cards{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:16px
}
.cards a{
  display:grid;
  gap:8px;
  align-content:start;
  border:1px solid var(--rim);
  border-radius:18px;
  padding:22px;
  text-decoration:none;
  transition:border-color .2s,background .2s
}
.cards a:hover{
  border-color:var(--disk);
  background:var(--void-2)
}
.cards h3{
  font-size:18px
}
.cards p{
  margin:0;
  color:var(--ink-dim);
  font-size:14px
}
.tech a{
  color:inherit;
  text-decoration:none
}
.plans{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.plans article{
  border:1px solid var(--rim);
  border-radius:22px;
  padding:28px;
  display:grid;
  gap:14px;
  align-content:start
}
.plans article.hot{
  border-color:var(--disk);
  background:linear-gradient(170deg,color-mix(in oklab,var(--disk) 10%,var(--void-2)),var(--void-2) 60%)
}
.plans .price{
  font-family:var(--f-display);
  font-weight:900;
  font-size:30px
}
.plans ul{
  margin:0;
  padding-left:18px;
  color:var(--ink-dim);
  display:grid;
  gap:6px
}
@media(max-width:860px){
  .plans{
    grid-template-columns:1fr
  }
}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap
}
.hero h1+p{
  margin:0
}
.prose pre{
  background:var(--void-2);
  border:1px solid var(--rim);
  border-radius:12px;
  padding:16px;
  overflow-x:auto;
  font-family:var(--f-mono);
  font-size:13px;
  color:var(--ink)
}
.prose code{
  font-family:var(--f-mono);
  font-size:.92em
}
.sr-only:focus{
  position:fixed;
  left:16px;
  top:16px;
  width:auto;
  height:auto;
  clip:auto;
  z-index:30;
  background:var(--disk);
  color:var(--on-disk);
  padding:8px 14px;
  border-radius:8px
}
nav.main a[aria-current]{
  color:var(--ink)
}
.src{
  font-size:12px;
  color:var(--ink-dim);
  margin:10px 0 0
}
.tbl{
  overflow-x:auto;
  border:1px solid var(--rim);
  border-radius:16px;
  background:var(--void-2)
}
.tbl table{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
  min-width:520px
}
.tbl th,.tbl td{
  padding:13px 16px;
  text-align:left;
  border-bottom:1px solid var(--rim);
  vertical-align:top
}
.tbl tr:last-child th,.tbl tr:last-child td{
  border-bottom:0
}
.tbl thead th{
  font-size:13px;
  color:var(--ink-dim);
  font-weight:500;
  background:color-mix(in oklab,var(--disk) 5%,transparent)
}
.tbl tbody th{
  color:var(--ink);
  font-weight:600;
  white-space:nowrap
}
.tbl td{
  color:var(--ink-dim)
}
.mtable td b{
  color:var(--disk-hot)
}
.mtable .lift{
  color:var(--disk);
  font-weight:700;
  white-space:nowrap
}
.two{
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:48px;
  align-items:center
}
.two .sec-head{
  margin-bottom:0
}
@media(max-width:960px){
  .two{
    grid-template-columns:1fr;
    gap:28px
  }
}
.mind{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.mind article{
  border:1px solid var(--rim);
  border-radius:20px;
  padding:24px;
  background:var(--void-2);
  display:grid;
  gap:12px;
  align-content:start
}
.mind-h{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:18px;
  flex-wrap:wrap
}
.mind-h s{
  color:var(--ink-dim);
  text-decoration-color:color-mix(in oklab,var(--ink-dim) 60%,transparent)
}
.mind-h span{
  color:var(--disk)
}
.mind-h b{
  color:var(--ink)
}
.mind p{
  margin:0;
  color:var(--ink-dim);
  font-size:15px
}
.pyramid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
  justify-items:center
}
.pyramid li{
  width:var(--w);
  max-width:100%;
  display:grid;
  gap:4px;
  padding:14px 18px;
  border-radius:14px;
  text-align:center;
  background:linear-gradient(180deg,color-mix(in oklab,var(--disk) 14%,var(--void-2)),var(--void-2));
  border:1px solid color-mix(in oklab,var(--disk) 26%,var(--rim))
}
.pyramid li:first-child{
  background:linear-gradient(180deg,var(--disk),color-mix(in oklab,var(--disk) 70%,var(--lens)));
  border-color:transparent
}
.pyramid li:first-child b,.pyramid li:first-child span,.pyramid li:first-child em{
  color:var(--on-disk)
}
.pyramid b{
  font-size:16px;
  color:var(--ink)
}
.pyramid span{
  font-size:13px;
  color:var(--ink-dim)
}
.pyramid em{
  font-style:normal;
  font-size:11px;
  letter-spacing:.06em;
  color:var(--disk)
}
@media(max-width:560px){
  .pyramid li{
    width:100%
  }
}
.eng{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px
}
.eng article{
  border:1px solid var(--rim);
  border-radius:20px;
  padding:24px;
  background:var(--void-2);
  display:grid;
  gap:8px;
  align-content:start
}
.eng-k{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:var(--disk);
  letter-spacing:.12em
}
.eng-k span{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border-radius:8px;
  background:var(--disk);
  color:var(--on-disk);
  letter-spacing:0;
  font-weight:700
}
.eng h3{
  font-size:20px
}
.eng-t{
  margin:0;
  color:var(--ink);
  font-size:14px
}
.eng ul{
  list-style:none;
  margin:6px 0 0;
  padding:12px 0 0;
  display:grid;
  gap:10px;
  border-top:1px solid var(--rim)
}
.eng li{
  font-size:13px;
  color:var(--ink-dim);
  display:grid;
  gap:2px
}
.eng li b{
  color:var(--ink);
  font-size:14px
}
@media(max-width:1000px){
  .eng{
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:560px){
  .eng{
    grid-template-columns:1fr
  }
}
.rings{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  counter-reset:r
}
.rings li{
  position:relative;
  border:1px solid var(--rim);
  border-radius:18px;
  padding:20px;
  background:var(--void-2);
  display:grid;
  gap:6px;
  align-content:start
}
.rings .n{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  border:1.5px solid var(--disk);
  color:var(--disk);
  font-weight:700;
  font-size:14px
}
.rings b{
  font-size:17px;
  color:var(--ink)
}
.rings p{
  margin:0;
  font-size:13px;
  color:var(--ink-dim)
}
.rings em{
  font-style:normal;
  font-size:12px;
  color:var(--disk);
  margin-top:4px
}
.rings li:not(:nth-child(4n)):after{
  content:"→";
  position:absolute;
  right:-12px;
  top:30px;
  color:var(--disk);
  font-weight:700
}
@media(max-width:900px){
  .rings{
    grid-template-columns:1fr 1fr
  }
  .rings li:after{
    display:none
  }
}
@media(max-width:480px){
  .rings{
    grid-template-columns:1fr
  }
}
.bcga{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
  counter-reset:b
}
.bcga li{
  counter-increment:b;
  display:grid;
  grid-template-columns:40px 1fr;
  column-gap:14px;
  row-gap:2px;
  align-items:baseline;
  border:1px solid var(--rim);
  border-radius:16px;
  padding:16px 18px;
  background:var(--void-2)
}
.bcga li:before{
  content:counter(b,decimal-leading-zero);
  grid-row:span 3;
  font-weight:700;
  font-size:18px;
  color:var(--disk)
}
.bcga b{
  color:var(--ink);
  font-size:16px
}
.bcga em{
  font-style:normal;
  font-size:12px;
  color:var(--ink-dim);
  letter-spacing:.04em
}
.bcga span{
  font-size:14px;
  color:var(--ink-dim)
}
.why.four{
  grid-template-columns:repeat(4,1fr)
}
@media(max-width:1000px){
  .why.four{
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:560px){
  .why.four{
    grid-template-columns:1fr
  }
}
.fly{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:0;
  border:1px solid var(--rim);
  border-radius:20px;
  overflow:hidden;
  background:var(--void-2)
}
.fly li{
  padding:22px 18px;
  display:grid;
  gap:6px;
  align-content:start;
  position:relative
}
.fly li+li{
  border-left:1px solid var(--rim)
}
.fly span{
  font-size:12px;
  color:var(--disk);
  font-weight:700
}
.fly b{
  font-size:18px;
  color:var(--ink)
}
.fly p{
  margin:0;
  font-size:13px;
  color:var(--ink-dim)
}
.fly li:last-child:after{
  content:"↺ 回到监测";
  position:absolute;
  right:14px;
  top:20px;
  font-size:11px;
  color:var(--disk)
}
@media(max-width:960px){
  .fly{
    grid-template-columns:repeat(3,1fr)
  }
  .fly li:nth-child(4){
    border-left:0
  }
  .fly li:nth-child(n+4){
    border-top:1px solid var(--rim)
  }
}
@media(max-width:520px){
  .fly{
    grid-template-columns:1fr 1fr
  }
  .fly li{
    border-left:0!important;
    border-top:1px solid var(--rim)
  }
  .fly li:nth-child(-n+2){
    border-top:0
  }
  .fly li:nth-child(2n){
    border-left:1px solid var(--rim)!important
  }
}
.hole{
  background:radial-gradient(ellipse 70% 80% at 50% 0%,color-mix(in oklab,var(--disk) 16%,transparent),transparent 70%),linear-gradient(180deg,transparent,color-mix(in oklab,var(--disk) 6%,transparent));
  border-block:1px solid var(--rim)
}
.laws{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.laws li{
  border:1px solid var(--rim);
  border-radius:20px;
  padding:26px;
  background:var(--void-2);
  display:grid;
  gap:8px;
  align-content:start
}
.laws span{
  font-size:12px;
  letter-spacing:.14em;
  color:var(--disk)
}
.laws h3{
  font-size:22px
}
.laws em{
  font-style:normal;
  color:var(--ink);
  font-size:14px
}
.laws p{
  margin:0;
  color:var(--ink-dim);
  font-size:14px
}
@media(max-width:860px){
  .mind,.laws{
    grid-template-columns:1fr
  }
}
.stats span{
  font-size:13px
}
.cards.plain article{
  display:grid;
  gap:8px;
  align-content:start;
  border:1px solid var(--rim);
  border-radius:18px;
  padding:22px;
  background:var(--void-2)
}
.cards.plain h3{
  font-size:18px
}
.cards.plain q{
  color:var(--ink);
  font-size:14px;
  quotes:"“" "”"
}
.cards.plain p{
  margin:0;
  color:var(--ink-dim);
  font-size:14px
}
.logo img{
  display:block;
  object-fit:contain;
  flex-shrink:0
}
.logo{
  gap:9px
}
header.top .wrap{
  gap:18px
}
nav.main{
  gap:18px;
  font-size:13px
}
.main a[aria-current=page]{
  color:var(--disk-hot);
  font-weight:600
}
.site-footer{
  padding:58px 0 24px
}
.site-footer .footer-grid{
  grid-template-columns:1.55fr .8fr 1.1fr 1fr;
  gap:35px
}
.site-footer .footer-brand p{
  font-size:13px;
  line-height:1.9;
  margin-top:15px;
  max-width:340px
}
.site-footer .logo{
  color:#fff;
  font-size:25px
}
.site-footer .footer-grid>div>a:not(.logo){
  display:block;
  font-size:13px;
  text-decoration:none;
  line-height:1.8;
  margin:9px 0;
  color:var(--ink-dim)
}
.site-footer .footer-grid>div>a:hover{
  color:#fff
}
.site-footer h4{
  font-size:14px;
  margin-bottom:20px
}
.footer-company{
  font-size:12px;
  margin-top:18px
}
.site-footer .footer-legal{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px 22px;
  font-size:11px;
  border-top:1px solid #ffffff12;
  margin-top:42px;
  padding-top:23px;
  color:#8fa3c8
}
.footer-legal a{
  text-decoration:none
}
.legal-pending{
  opacity:.7
}
.pricing-section{
  padding-top:42px
}
.pricing-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px
}
.pricing-card{
  position:relative;
  background:var(--void-2);
  border:1px solid var(--rim);
  border-radius:18px;
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  box-shadow:0 8px 30px #15397704
}
.pricing-card.featured{
  border-color:var(--disk);
  box-shadow:0 14px 40px #1e5eff12
}
.plan-tag{
  position:absolute;
  right:18px;
  top:-13px;
  background:var(--disk);
  color:var(--on-disk);
  border-radius:20px;
  padding:4px 13px;
  font-size:11px
}
.pricing-card h2{
  font-size:24px;
  line-height:1.4
}
.pricing-card>p{
  font-size:13px;
  color:var(--ink-dim);
  margin:10px 0 22px
}
.plan-price{
  font-size:42px;
  font-weight:700;
  letter-spacing:-1.5px;
  color:var(--ink);
  line-height:1.3
}
.plan-price>small{
  font-size:21px;
  margin-right:4px
}
.plan-price>span{
  font-size:13px;
  font-weight:400;
  letter-spacing:0;
  color:var(--ink-dim);
  margin-left:8px
}
.plan-coins{
  margin-top:12px;
  font-size:13px;
  color:var(--disk-hot);
  background:color-mix(in oklab,var(--disk) 6%,var(--void-2));
  border-radius:6px;
  padding:10px 12px
}
.managed-plan-title{
  font-size:36px;
  font-weight:700;
  letter-spacing:-0.5px;
  color:var(--ink);
  line-height:1.3;
  /* margin-top:16px;
  margin-bottom:20px */
}
.pricing-card ul{
  list-style:none;
  padding:0;
  margin:24px 0 30px;
  display:grid;
  gap:13px;
  font-size:13px;
  color:var(--ink-dim);
  flex:1
}
.pricing-card li{
  display:flex;
  align-items:flex-start;
  gap:9px
}
.pricing-card li>span{
  color:var(--disk);
  font-size:12px
}
.pricing-card>.btn{
  justify-content:center;
  border-radius:8px
}
.pricing-footnote{
  font-size:12px;
  line-height:1.9;
  color:var(--ink-dim);
  margin-top:22px
}
.pricing-section-heading{
  margin:72px 0 27px
}
.pricing-section-heading h2{
  font-size:29px;
  margin-top:10px
}
.pricing-section-heading p{
  font-size:13px;
  color:var(--ink-dim)
}
.pricing-table-wrap{
  overflow:auto;
  border:1px solid var(--rim);
  border-radius:12px;
  background:var(--void-2)
}
.pricing-table{
  width:100%;
  border-collapse:collapse;
  font-size:12px;
  min-width:740px;
  line-height:1.9
}
.pricing-table th{
  font-size:14px;
  background:color-mix(in oklab,var(--disk) 5%,var(--void-2));
  color:var(--ink);
  text-align:left;
  padding:18px
}
.pricing-table th:first-child{
  width:25%
}
.pricing-table td{
  padding:14px 18px;
  border-top:1px solid var(--rim);
  vertical-align:top;
  color:var(--ink-dim);
  width:25%
}
.pricing-table td:first-child{
  color:var(--ink)
}
.pricing-table .table-group td{
  background:color-mix(in oklab,var(--disk) 3%,var(--void-2));
  font-weight:600;
  color:var(--disk-hot);
  padding:11px 18px
}
.usage-table td{
  width:auto
}
.usage-table th:first-child{
  width:17%
}
.usage-table th:nth-child(2){
  width:59%
}
.billing-rules{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px
}
.billing-rules article{
  padding:24px;
  background:var(--void-2);
  border-radius:12px;
  border:1px solid var(--rim)
}
.billing-rules h3{
  font-size:16px
}
.billing-rules p{
  font-size:12px;
  color:var(--ink-dim);
  line-height:1.9;
  margin:11px 0 0
}
.pricing-contact{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin-top:42px;
  padding:30px;
  background:color-mix(in oklab,var(--disk) 5%,var(--void-2));
  border-radius:12px
}
.pricing-contact h3{
  font-size:19px
}
.pricing-contact p{
  font-size:13px;
  color:var(--ink-dim);
  margin:8px 0 0
}
.news-section{
  padding-top:36px
}
.news-category{
  display:flex;
  gap:24px;
  color:var(--ink-dim);
  font-size:13px;
  margin-bottom:28px
}
.news-category .active{
  color:var(--disk-hot);
  font-weight:600
}
.news-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:27px
}
.news-card{
  border:1px solid var(--rim);
  background:var(--void-2);
  border-radius:14px;
  overflow:hidden;
  text-decoration:none;
  transition:transform .2s,box-shadow .2s
}
.news-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 30px #15397712
}
.news-cover{
  height:190px;
  position:relative;
  padding:26px 28px;
  background:linear-gradient(125deg,#e9f3ff,#d3e6fa);
  color:#214c79;
  overflow:hidden
}
.news-cover>img{
  position:absolute;
  width:100px;
  height:103px;
  object-fit:contain;
  right:18px;
  bottom:-16px;
  opacity:.2
}
.news-cover>span{
  display:block;
  font-size:10px;
  letter-spacing:1px;
  color:#7398bc;
  margin-bottom:22px
}
.news-cover>b{
  font-size:23px;
  line-height:1.7;
  max-width:85%;
  display:block
}
.news-cover-1{
  background:linear-gradient(125deg,#eaf5f6,#d9ecee)
}
.news-cover-2{
  background:linear-gradient(125deg,#f0f2ff,#dfe4fa)
}
.news-copy{
  padding:24px 27px
}
.news-copy>span{
  font-size:11px;
  color:var(--ink-dim)
}
.news-copy h2{
  font-size:20px;
  margin:12px 0;
  line-height:1.6;
  font-weight:600
}
.news-copy p{
  font-size:13px;
  color:var(--ink-dim);
  line-height:1.9
}
.news-copy strong{
  font-size:12px;
  color:var(--disk-hot);
  font-weight:500;
  display:block;
  margin-top:20px
}
.download-page{
  background:#f5f8ff
}
.download-page iframe{
  display:block;
  width:100%;
  height:1900px;
  border:0
}
.download-page iframe.client-dialog-open{
  position:fixed;
  inset:0;
  z-index:1000;
  width:100vw;
  height:100dvh!important;
  background:#fff
}
.client-dialog-visible{
  overflow:hidden
}
@media(max-width:1180px){
  header.top .wrap{
    gap:12px
  }
  nav.main{
    gap:12px;
    font-size:12px
  }
  header.top .btn{
    padding:10px 14px;
    font-size:12px
  }
  .scheme button{
    width:25px!important;
    height:25px!important
  }
}
@media(max-width:1020px){
  header.top .scheme{
    display:none
  }
}
@media(max-width:860px){
  nav.main{
    display:flex;
    margin-left:auto;
    overflow:auto;
    gap:16px;
    scrollbar-width:none;
    max-width:calc(100vw - 230px);
    white-space:nowrap
  }
  header.top .btn{
    display:none
  }
  .logo{
    font-size:18px
  }
  .logo img{
    width:30px;
    height:31px
  }
  .pricing-cards{
    gap:13px
  }
  .pricing-card{
    padding:25px 20px
  }
  .plan-price{
    font-size:34px
  }
  .site-footer .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:30px
  }
  .billing-rules{
    grid-template-columns:repeat(2,1fr)
  }
}
@media(max-width:620px){
  .pricing-cards{
    grid-template-columns:1fr;
    gap:25px
  }
  .pricing-card{
    padding:28px
  }
  .pricing-section-heading h2{
    font-size:24px
  }
  .billing-rules{
    grid-template-columns:1fr
  }
  .pricing-contact{
    align-items:flex-start;
    flex-direction:column
  }
  .news-cards{
    grid-template-columns:1fr
  }
  .news-cover{
    height:170px
  }
  .news-cover>b{
    font-size:21px
  }
  .site-footer .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:28px 20px
  }
  .site-footer .footer-brand{
    grid-column:1/-1
  }
  .site-footer .footer-grid>div>a:not(.logo){
    font-size:12px
  }
  .site-footer .footer-legal{
    justify-content:flex-start;
    font-size:10px;
    gap:8px 15px
  }
  .pricing-table td{
    padding:12px
  }
  .pricing-table th{
    padding:15px 12px
  }
}
.download-experience{
  --blue:#087ec5;
  --muted:#7e8ea3;
  --line:#e5ecf4;
  background:#f5f8ff;
  color:var(--ink);
  font-family:Microsoft YaHei,PingFang SC,sans-serif;
  font-size:14px;
  line-height:1.65
}
.download-experience button{
  font-family:inherit
}
.download-experience .wrap{
  max-width:1160px
}
.pricing-hero-copy .lead{
  max-width:none;
  white-space:nowrap
}
.pricing-card[role=radio]{
  cursor:pointer;
  transition:border-color .2s,box-shadow .2s,transform .2s
}
.pricing-card.featured:not(.selected){
  border-color:var(--rim);
  box-shadow:0 8px 30px #15397704
}
.pricing-card.selected{
  border-color:var(--disk);
  box-shadow:0 12px 30px color-mix(in oklab,var(--disk) 13%,transparent);
  transform:translateY(-3px)
}
.pricing-card:not(.selected)>.btn-hot{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--rim);
  box-shadow:none
}
.pricing-card.selected>.btn{
  background:var(--disk);
  color:var(--on-disk);
  border-color:var(--disk);
  box-shadow:0 6px 18px color-mix(in oklab,var(--disk) 20%,transparent)
}
.plan-selection-status{
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:25px;
  padding:16px 20px;
  background:var(--void-2);
  border-radius:9px;
  border:1px solid var(--rim);
  font-size:12px;
  color:var(--ink-dim)
}
.plan-selection-status b{
  font-size:14px;
  color:var(--disk-hot)
}
.plan-selection-status a{
  margin-left:auto;
  color:var(--disk-hot);
  text-decoration:none
}
#planComparison{
  scroll-margin-top:90px
}
#planComparison[data-selected-plan="0"] tr:not(.table-group)>:nth-child(2),#planComparison[data-selected-plan="1"] tr:not(.table-group)>:nth-child(3),#planComparison[data-selected-plan="2"] tr:not(.table-group)>:nth-child(4){
  background:color-mix(in oklab,var(--disk) 6%,var(--void-2));
  color:var(--ink)
}
.download-experience{
  color:var(--ink);
  background:var(--void);
  font-family:var(--f-body)
}
.about-banner{
  position:relative;
  overflow:hidden;
  text-align:center;
  padding:90px 0 88px;
  background:linear-gradient(115deg,#102445,#173b67);
  color:#fff
}
.about-banner .wrap{
  position:relative;
  z-index:1
}
.about-banner .eyebrow{
  color:#93b7eb;
  letter-spacing:.2em
}
.about-banner h1{
  font-size:clamp(32px,4vw,48px);
  line-height:1.4;
  font-weight:800;
  margin-top:19px
}
.about-banner p{
  font-size:15px;
  color:#b5c9e5;
  margin:19px 0 0
}
.about-mobile-break{
  display:none
}
.about-banner-art{
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 75% 25%,#3f7cb040,transparent 60%)
}
.about-banner-art>i{
  position:absolute;
  display:block;
  border:1px solid #bddaff16;
  border-radius:50%;
  height:600px;
  width:600px;
  right:-80px;
  top:-260px;
  transform:rotate(-25deg);
  box-shadow:0 0 0 65px #bddaff05,0 0 0 130px #bddaff03
}
.about-banner-art>i:nth-child(2){
  left:-210px;
  top:65px;
  width:480px;
  height:480px
}
.about-banner-art>i:nth-child(3){
  right:25%;
  top:-370px;
  width:500px;
  height:500px;
  border-color:#bddaff0c;
  box-shadow:none
}
.about-introduction{
  padding:66px 0 45px;
  background:var(--void-2)
}
.about-section-title{
  text-align:center;
  margin-bottom:34px
}
.about-section-title>span{
  font-size:10px;
  letter-spacing:.2em;
  color:var(--ink-dim)
}
.about-section-title h2{
  font-size:29px;
  margin:10px 0 0;
  font-weight:700
}
.about-section-title h2 em{
  font-style:normal;
  color:var(--disk)
}
.about-section-title>p{
  font-size:13px;
  color:var(--ink-dim);
  margin:14px 0 0
}
.about-intro-copy{
  max-width:960px;
  margin:0 auto;
  font-size:14px;
  line-height:2.15;
  color:var(--ink-dim)
}
.about-intro-copy p{
  margin:0 0 14px
}
.about-platforms{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:12px 22px;
  margin-top:29px;
  padding-top:25px;
  border-top:1px solid var(--rim);
  font-size:12px
}
.about-platforms>span{
  color:var(--ink-dim)
}
.about-platforms>b{
  font-size:12px;
  font-weight:500;
  color:var(--ink)
}
.about-capabilities{
  padding:55px 0 68px;
  background:var(--void-2)
}
.about-capability-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px
}
.about-capability-grid article{
  background:var(--void);
  border:1px solid var(--rim);
  border-bottom:3px solid var(--disk);
  padding:27px 24px;
  min-height:278px;
  display:flex;
  flex-direction:column
}
.about-capability-index{
  font-size:20px;
  color:var(--disk);
  margin-bottom:18px
}
.about-capability-grid h3{
  font-size:19px;
  font-weight:600
}
.about-capability-grid p{
  font-size:12px;
  color:var(--ink-dim);
  margin:7px 0 19px
}
.about-capability-grid ul{
  font-size:14px;
  color:var(--ink-dim);
  line-height:2;
  margin:0 0 22px;
  background:var(--void-2);
  border-radius:8px;
  padding:14px 20px;
  list-style-position:inside
}
.about-capability-grid li{
  margin-bottom:7px
}
.about-capability-grid a{
  font-size:14px;
  color:var(--disk-hot);
  margin-top:auto;
  text-decoration:none
}
.about-contact-section{
  padding:20px 0 60px;
  background:var(--void-2)
}
.about-contact{
  display:grid;
  grid-template-columns:240px 1fr;
  max-width:1000px;
  margin:0 auto;
  border:1px solid var(--rim);
  border-radius:8px;
  overflow:hidden
}
.about-contact-brand{
  padding:28px;
  display:flex;
  align-items:center;
  flex-direction:column;
  background:var(--void-2);
  border-right:1px solid var(--rim)
}
.about-contact-brand img{
  object-fit:contain
}
.about-contact-brand b{
  font-size:20px;
  margin-top:12px
}
.about-contact-brand span{
  font-size:11px;
  color:var(--ink-dim);
  margin-top:5px
}
.about-contact-brand a{
  font-size:12px;
  color:var(--disk-hot);
  text-decoration:none;
  margin-top:13px
}
.about-contact-details{
  padding:28px 35px;
  background:var(--void);
  display:flex;
  align-items:center
}
.about-contact-details dl{
  margin:0;
  width:100%;
  font-size:13px;
  color:var(--ink-dim)
}
.about-contact-details dl>div{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:8px;
  padding:9px 0
}
.about-contact-details dd{
  margin:0;
  color:var(--ink)
}
.about-contact-details a{
  text-decoration:none
}
.about-callout{
  max-width:1000px;
  margin:40px auto 0;
  padding:29px 36px;
  border-radius:10px;
  background:linear-gradient(110deg,var(--disk),color-mix(in oklab,var(--disk) 65%,var(--lens)));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  color:#fff
}
.about-callout h3{
  font-size:21px
}
.about-callout p{
  font-size:12px;
  margin:8px 0 0;
  color:#e4edff
}
.about-callout .btn{
  background:#fff;
  color:#225be8;
  box-shadow:none
}
@media(max-width:1050px){
  .pricing-hero-copy .lead{
    white-space:normal
  }
  .about-capability-grid{
    gap:16px
  }
  .about-capability-grid article{
    padding:24px 20px
  }
}
@media(max-width:800px){
  .about-capability-grid{
    grid-template-columns:1fr 1fr
  }
  .about-banner{
    padding:65px 0
  }
  .about-banner p{
    font-size:13px
  }
  .about-contact{
    grid-template-columns:210px 1fr
  }
  .about-contact-brand{
    border-right:1px solid var(--rim);
    border-bottom:0
  }
  .about-contact-details{
    padding:23px
  }
  .about-section-title h2{
    font-size:25px
  }
}
@media(max-width:520px){
  .plan-selection-status{
    flex-wrap:wrap;
    gap:8px 11px;
    font-size:11px
  }
  .plan-selection-status a{
    margin-left:0
  }
  #selectedPlanHint{
    flex-basis:100%
  }
  .about-mobile-break{
    display:block
  }
  .about-banner h1{
    font-size:29px
  }
  .about-banner p{
    font-size:12px
  }
  .about-introduction{
    padding:45px 0 25px
  }
  .about-capabilities{
    padding:35px 0 45px
  }
  .about-capability-grid{
    grid-template-columns:1fr;
    gap:16px
  }
  .about-capability-grid article{
    min-height:0
  }
  .about-contact{
    grid-template-columns:1fr
  }
  .about-contact-brand{
    padding:23px;
    border-right:0;
    border-bottom:1px solid var(--rim)
  }
  .about-contact-details dl{
    font-size:12px
  }
  .about-callout{
    padding:25px;
    flex-direction:column;
    align-items:flex-start
  }
  .about-callout h3{
    font-size:18px
  }
  .about-callout .btn,.about-intro-copy{
    font-size:13px
  }
  .about-section-title h2{
    font-size:23px
  }
}
.about-callout{
  background:color-mix(in oklab,var(--disk) 5%,var(--void-2));
  border:1px solid var(--rim);
  color:var(--ink);
  border-radius:12px;
  box-shadow:none
}
.about-callout p{
  color:var(--ink-dim)
}
.about-callout .btn{
  background:var(--disk);
  color:var(--on-disk);
  box-shadow:none
}
.stats{
  text-align:center
}
.stats div{
  justify-items:center
}
.stats-source{
  text-align:center;
  line-height:1.9
}
.stats-source a{
  color:var(--disk-hot);
  text-underline-offset:3px
}
#faq .sec-head{
  text-align:center;
  justify-items:center
}
#faq .sec-head h2{
  max-width:30ch
}
.faq{
  margin-left:auto;
  margin-right:auto
}
.faq summary{
  position:relative;
  justify-content:center;
  text-align:center;
  padding-left:25px;
  padding-right:25px
}
.faq summary:after{
  position:absolute;
  right:0
}
.faq p{
  text-align:center;
  line-height:1.95;
  max-width:74ch;
  margin-left:auto;
  margin-right:auto
}
.page-hero:has(h1)~.wrap:has(.faq){
  margin-left:auto;
  margin-right:auto
}
:root[data-scheme=dark] .download-experience{
  color:var(--ink);
  background:var(--void)
}
:root[data-scheme=dark] .download-experience .hero-art:before{
  background:radial-gradient(ellipse,#2d6eb32b,transparent 70%)
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-backplate{
  background:linear-gradient(135deg,#111f3c,#15294c);
  border:1px solid #263c5e;
  box-shadow:none
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-window{
  background:#0e1b32;
  border:5px solid #23334f;
  box-shadow:0 22px 45px #0004
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-top{
  background:#17253d;
  border-color:#243854
}
:root[data-scheme=dark] .download-experience .ep-top b{
  color:#dbe8f7
}
:root[data-scheme=dark] .download-experience .ep-top>span{
  background:#1e324b;
  color:#9cbdce;
  border-color:#29435b
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-main{
  background:linear-gradient(145deg,#101d32,#0d182c)
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-article{
  background:#18263c;
  border-color:#263953;
  box-shadow:none
}
:root[data-scheme=dark] .download-experience .ep-section-label{
  color:#9ab0c9
}
:root[data-scheme=dark] .download-experience .ep-section-label>span{
  color:#a3bdd4;
  background:#22364e;
  border-color:#30455d
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-cover{
  background:linear-gradient(125deg,#23445e,#1b344f);
  border-color:#36516b
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-cover>b{
  color:#e3effb;
  text-shadow:none
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-cover>span{
  color:#9abbd3
}
:root[data-scheme=dark] .download-experience .ep-article h3,:root[data-scheme=dark] .download-experience .ep-title>b{
  color:#d7e6f6
}
:root[data-scheme=dark] .download-experience .ep-article p,:root[data-scheme=dark] .download-experience .ep-article-foot{
  color:#8da5bd
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-lines i{
  background:#30435b
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-content-meta{
  background:#203249;
  color:#9ab0c8
}
:root[data-scheme=dark] .download-experience .ep-content-meta b{
  color:#79bdab
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-title>span,:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-mode{
  background:#192b43;
  border-color:#263b54;
  color:#9ab3cb
}
:root[data-scheme=dark] .download-experience .ep-mode b{
  color:#b4c9df
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-destination{
  background:#1a2a41;
  border-color:#2b415a;
  box-shadow:none
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-destination:has(.ep-pending){
  background:#1d3350;
  border-color:#355777
}
:root[data-scheme=dark] .download-experience .ep-destination b{
  color:#d1e3f2
}
:root[data-scheme=dark] .download-experience .ep-destination b em{
  color:#92abc4
}
:root[data-scheme=dark] .download-experience .ep-destination small{
  color:#80b8a9
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-status{
  color:#a4bfd7
}
:root[data-scheme=dark] .download-experience .dimensional-publisher .ep-progress{
  background:#263e59
}
:root[data-scheme=dark] .download-experience .ep-live-badge{
  background:linear-gradient(125deg,#20334b,#182a41);
  border-color:#314b63;
  box-shadow:0 9px 23px #0003
}
:root[data-scheme=dark] .download-experience .ep-live-badge b{
  color:#d3e5f5
}
:root[data-scheme=dark] .download-experience .ep-live-badge small{
  color:#92acc3
}
:root[data-scheme=dark] .download-experience .ep-live-badge>span{
  background:#204137;
  color:#8bd0b9
}
.download-experience .installer-window,.download-experience .download-tray,.download-experience dialog{
  --ink:#162d49;
  --muted:#7e8ea3;
  --line:#e5ecf4;
  color:#162d49;
  color-scheme:light
}
.faq-page-hero .page-hero{
  text-align:center
}
.faq-page-hero .crumbs{
  justify-content:center
}
.faq-page-hero .lead{
  margin-left:auto;
  margin-right:auto
}
.download-experience .faq summary{
  justify-content:center!important;
  text-align:center!important;
  padding-left:25px!important;
  padding-right:25px!important;
  position:relative
}
.download-experience .faq summary:after{
  position:absolute;
  right:0
}
.download-experience .faq details p{
  text-align:center!important
}
.faq details>p{
  width:100%;
  max-width:74ch;
  margin:0 auto 19px!important;
  text-align:center;
  line-height:1.95;
  padding:0 16px;
  box-sizing:border-box
}
.download-experience .faq details>p{
  width:100%!important;
  max-width:74ch!important;
  margin:0 auto 20px!important;
  text-align:center!important;
  padding:0 16px!important;
  box-sizing:border-box!important
}
.about-banner{
  background:radial-gradient(ellipse at 85% 0%,color-mix(in oklab,var(--disk) 11%,transparent),transparent 60%),var(--void);
  color:var(--ink);
  border-bottom:1px solid var(--rim)
}
.about-banner .eyebrow{
  color:var(--disk)
}
.about-banner h1{
  color:var(--ink)
}
.about-banner p{
  color:var(--ink-dim)
}
.about-banner-art{
  background:radial-gradient(ellipse at 75% 25%,color-mix(in oklab,var(--disk) 5%,transparent),transparent 65%)
}
.about-banner-art>i{
  border-color:color-mix(in oklab,var(--disk) 8%,transparent);
  box-shadow:0 0 0 65px color-mix(in oklab,var(--disk) 2%,transparent),0 0 0 130px color-mix(in oklab,var(--disk) 1%,transparent)
}
.about-banner-art>i:nth-child(3){
  border-color:color-mix(in oklab,var(--disk) 5%,transparent)
}
html{
  scroll-behavior:smooth
}
#gravity-model,#industry,#geo-knowledge{
  scroll-margin-top:90px
}
nav.main a[aria-current=location]{
  color:var(--disk-hot);
  font-weight:600
}
.knowledge-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:25px
}
.knowledge-heading h2{
  margin-top:10px
}
.knowledge-heading .lead{
  font-size:14px
}
.knowledge-cards{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.knowledge-cards a{
  background:var(--void-2);
  padding:27px
}
.knowledge-cards a>span{
  font-size:10px;
  letter-spacing:.1em;
  color:var(--disk)
}
.knowledge-cards h3{
  margin-top:6px;
  line-height:1.6
}
.knowledge-cards p{
  line-height:1.9
}
.knowledge-cards strong{
  font-size:12px;
  color:var(--disk-hot);
  font-weight:500;
  margin-top:18px
}
.about-home-banner{
  background:radial-gradient(ellipse 60% 70% at 78% 45%,color-mix(in oklab,var(--disk) 12%,transparent),transparent 70%),radial-gradient(ellipse 50% 60% at 0% 0%,color-mix(in oklab,var(--lens) 10%,transparent),transparent 70%),var(--hero-ground);
  padding:90px 0;
  min-height:340px
}
.about-home-banner:before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(color-mix(in oklab,var(--disk) 18%,transparent) 1px,transparent 1px);
  background-size:26px 26px;
  mask-image:linear-gradient(180deg,#000,transparent 85%);
  pointer-events:none
}
.about-home-banner #field{
  opacity:.65
}
.about-home-banner .wrap{
  position:relative;
  z-index:1
}
.about-home-banner h1{
  color:var(--ink)
}
.two>*{
  min-width:0
}
.tbl{
  overflow:visible
}
.tbl table{
  min-width:0;
  width:100%;
  table-layout:fixed
}
.tbl th,.tbl td{
  overflow-wrap:anywhere;
  white-space:normal
}
.tbl tbody th,.mtable .lift{
  white-space:normal
}
.tbl:not(:has(.mtable)) th:first-child{
  width:18%
}
.tbl:not(:has(.mtable)) th:nth-child(2),.tbl:not(:has(.mtable)) th:nth-child(3){
  width:41%
}
@media(max-width:800px){
  .knowledge-cards{
    grid-template-columns:1fr
  }
  .knowledge-heading{
    align-items:flex-start;
    flex-direction:column
  }
  .about-home-banner{
    padding:65px 0;
    min-height:290px
  }
  .tbl th,.tbl td{
    padding:11px 10px;
    font-size:13px
  }
  .tbl thead th{
    font-size:12px
  }
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
}
.footer-mini{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:22px
}
.footer-mini-image{
  width:86px;
  height:86px;
  border-radius:10px;
  background:#fff;
  display:grid;
  place-items:center
}
.footer-mini-image img{
  object-fit:contain
}
.footer-mini strong{
  display:block;
  font-size:14px;
  color:#fff;
  font-weight:600
}
.footer-mini span{
  display:block;
  font-size:12px;
  margin-top:8px;
  color:#a4b7d7
}
.footer-mini small{
  display:block;
  font-size:11px;
  color:#8297ba;
  margin-top:5px
}
.site-footer .footer-grid{
  grid-template-columns:1.6fr .9fr 1.2fr .8fr;
  gap:46px
}
.site-footer .footer-mini-code{
  display:flex;
  align-items:center;
  flex-direction:column;
  padding-top:3px
}
.footer-mini-frame{
  background:#fff;
  padding:5px;
  border-radius:3px;
  width:150px;
  height:150px
}
.footer-mini-frame img{
  display:block;
  width:140px;
  height:140px
}
.footer-mini-code strong{
  font-size:13px;
  color:#c4d3ec;
  font-weight:400;
  margin-top:18px
}
.footer-mini-code>span{
  font-size:11px;
  color:#8195b7;
  margin-top:7px
}
.site-footer .footer-friends{
  display:flex;
  align-items:baseline;
  gap:20px;
  margin-top:32px;
  font-size:12px;
  color:#8195b7
}
.footer-friends>span{
  white-space:nowrap
}
.footer-friends>div{
  display:flex;
  flex-wrap:wrap;
  gap:10px 0
}
.footer-friends a{
  color:#91a5c8;
  text-decoration:none;
  line-height:1.6;
  padding:0 16px;
  border-right:1px solid #ffffff20
}
.footer-friends a:first-child{
  padding-left:0
}
.footer-friends a:last-child{
  border:0
}
.footer-friends a:hover{
  color:#fff
}
.site-footer .footer-legal{
  margin-top:28px
}
.about-home-banner:before{
  background-image:radial-gradient(circle at 20px 30px,#5793ff66 1px,transparent 1.5px),radial-gradient(circle at 90px 70px,#7aaaff44 .7px,transparent 1.4px),radial-gradient(circle at 145px 25px,#77a8ff55 1px,transparent 1.5px);
  background-size:180px 110px,230px 150px,310px 190px;
  mask-image:linear-gradient(180deg,#000,transparent 95%)
}
@media(max-width:860px){
  .site-footer .footer-grid{
    grid-template-columns:1.3fr 1fr;
    gap:30px
  }
  .site-footer .footer-mini-code{
    align-items:flex-start
  }
  .site-footer .footer-friends{
    gap:12px
  }
  .footer-friends a{
    padding:0 10px
  }
}
@media(max-width:520px){
  .site-footer .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:28px 20px
  }
  .site-footer .footer-friends{
    flex-direction:column;
    gap:13px
  }
  .footer-mini-frame{
    width:130px;
    height:130px
  }
  .footer-mini-frame img{
    width:120px;
    height:120px
  }
}
.footer-mini-frame{
  display:grid;
  place-items:center
}
.footer-mini-frame img{
  width:110px;
  height:110px;
  object-fit:contain
}
.site-footer .footer-developer{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 24px;
  margin-top:25px;
  font-size:12px;
  color:#91a5c8
}
.site-footer .footer-legal{
  margin-top:27px
}
@media(max-width:620px){
  .site-footer .footer-developer{
    font-size:11px;
    gap:8px 15px
  }
}

/* 与首页 index.html 导航保持一致：字号 16px、间距 32px、与右侧按钮留出 40px。 */
nav.main {
  align-items: center;
  gap: 32px;
  font-size: 16px;
}
nav.main a[aria-current="location"] {
  color: var(--disk-hot);
  font-weight: 700;
}
@media (max-width: 1180px) {
  nav.main {
    gap: 20px;
    font-size: 14px;
  }
}
@media (min-width: 861px) {
  nav.main {
    margin-right: 40px;
  }
}
/* 窄屏与 index.html 一致：隐藏横向导航，保留右侧“免费检测”。 */
@media (max-width: 860px) {
  nav.main {
    display: none;
  }
  header.top .btn {
    display: inline-flex;
    margin-left: auto;
  }
}
