/* ============================================================
   智盈网格 · 科技金融风样式（手机优先）
   ============================================================ */
:root{
  --bg:#04070e;
  --bg2:#070c17;
  --panel:rgba(11,19,34,.72);
  --panel2:rgba(8,14,26,.86);
  --line:rgba(0,229,255,.14);
  --line2:rgba(0,229,255,.28);
  --txt:#d7e6f5;
  --muted:#6f86a3;
  --dim:#4a5b73;
  --cyan:#00e5ff;
  --cyan-d:#00b3cc;
  --up:#00ffa3;
  --down:#ff3b5c;
  --gold:#ffc44d;
  --blue:#4a9eff;
  --glow:0 0 34px rgba(0,229,255,.18);
  --mono:ui-monospace,"JetBrains Mono","SF Mono",Consolas,"Courier New",monospace;
  --radius:4px;              /* 锐利几何，不用大圆角 */
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
html,body{margin:0; padding:0;}
body{
  background:var(--bg); color:var(--txt);
  font-family:"Microsoft YaHei","PingFang SC",system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:1.6; overflow-x:hidden;
  -webkit-text-size-adjust:100%;
}
/* ---- 背景：径向光 + 网格线 ---- */
body::before{
  content:''; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(1100px 560px at 76% -12%, rgba(0,229,255,.11), transparent 62%),
    radial-gradient(820px 460px at 6% 8%, rgba(74,158,255,.09), transparent 58%),
    radial-gradient(700px 500px at 50% 108%, rgba(255,196,77,.05), transparent 60%);
}
body::after{
  content:''; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-image:
    linear-gradient(rgba(0,229,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,229,255,.05) 1px, transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(circle at 50% 0%, #000 0%, transparent 70%);
  mask-image:radial-gradient(circle at 50% 0%, #000 0%, transparent 70%);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 20px;}
.center{text-align:center;}
.muted{color:var(--muted);} .dim{color:var(--dim);}
.cyan{color:var(--cyan);} .up{color:var(--up);} .down{color:var(--down);} .gold{color:var(--gold);}
.green{color:var(--up);} .red{color:var(--down);}   /* 兼容别名 */
.num{font-family:var(--mono); font-variant-numeric:tabular-nums;}

/* ==================== 顶栏 ==================== */
.topbar{
  position:sticky; top:0; z-index:60;
  background:rgba(4,7,14,.82); backdrop-filter:blur(14px) saturate(160%);
  border-bottom:1px solid var(--line);
  padding:calc(11px + env(safe-area-inset-top)) 0 11px;
}
.topbar .inner{display:flex; align-items:center; justify-content:space-between; gap:16px;}
.logo{display:flex; align-items:center; gap:11px; font-size:18px; font-weight:800; letter-spacing:1.5px;}
.logo .mark{
  width:34px; height:34px; flex:0 0 auto; position:relative;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg, rgba(0,229,255,.22), rgba(0,229,255,.04));
  border:1px solid var(--line2);
  box-shadow:0 0 22px rgba(0,229,255,.22), inset 0 0 18px rgba(0,229,255,.12);
}
.logo .mark svg{width:19px; height:19px;}
.logo .mark::after{
  content:''; position:absolute; inset:-4px; border:1px solid rgba(0,229,255,.16);
}
.nav{display:flex; align-items:center; gap:24px; font-size:14.5px; color:var(--muted); letter-spacing:.4px;}
.nav a:hover{color:var(--cyan);}
.nav .cta{color:var(--cyan); font-weight:700;}
@media(max-width:820px){ .nav .hideSm{display:none;} }

/* ==================== 行情条 ==================== */
.ticker{
  border-bottom:1px solid var(--line);
  background:rgba(6,11,21,.7);
  overflow:hidden; white-space:nowrap; position:relative;
  height:38px; display:flex; align-items:center;
}
.ticker .track{display:inline-flex; gap:38px; padding-left:20px; animation:scroll 42s linear infinite;}
.ticker:hover .track{animation-play-state:paused;}
@keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
.tk{font-family:var(--mono); font-size:12.5px; letter-spacing:.5px; color:var(--muted);}
.tk b{color:var(--txt); font-weight:600; margin-right:7px;}

/* ==================== 按钮 ==================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:inherit; font-size:15px; font-weight:700; letter-spacing:.6px;
  min-height:48px; padding:0 26px; border-radius:var(--radius);
  border:1px solid var(--line2); background:rgba(0,229,255,.07); color:var(--cyan);
  cursor:pointer; position:relative; overflow:hidden;
  transition:background .18s, box-shadow .18s, transform .08s;
}
.btn::after{ /* 切角装饰 */
  content:''; position:absolute; top:-1px; right:-1px;
  border-width:0 10px 10px 0; border-style:solid;
  border-color:transparent var(--bg) transparent transparent;
}
.btn:hover{background:rgba(0,229,255,.14); box-shadow:var(--glow);}
.btn:active{transform:scale(.98);}
.btn.primary{
  background:linear-gradient(135deg, rgba(0,229,255,.95), rgba(0,150,190,.95));
  color:#03151c; border-color:transparent; font-weight:800;
  box-shadow:0 0 30px rgba(0,229,255,.32);
}
.btn.primary:hover{filter:brightness(1.08); box-shadow:0 0 44px rgba(0,229,255,.5);}
.btn.ghost{background:transparent; color:var(--txt); border-color:rgba(255,255,255,.14);}
.btn.ghost:hover{border-color:var(--line2); background:rgba(0,229,255,.05);}
.btn.sm{min-height:38px; padding:0 16px; font-size:13.5px;}
.btn.block{width:100%;}

/* ==================== 区块 ==================== */
section{padding:78px 0;}
section.tight{padding:54px 0;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:11.5px; font-weight:600;
  letter-spacing:2.4px; text-transform:uppercase;
  color:var(--cyan); margin-bottom:20px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--cyan); box-shadow:0 0 8px var(--cyan);}
h1{font-size:clamp(29px,6.4vw,54px); line-height:1.16; margin:0 0 20px; font-weight:800; letter-spacing:-.5px;}
h2{font-size:clamp(23px,4.6vw,38px); line-height:1.25; margin:0 0 14px; font-weight:800; letter-spacing:-.3px;}
h3{font-size:18px; margin:0 0 10px; font-weight:700; letter-spacing:.3px;}
p.lead{font-size:clamp(15px,2.6vw,18px); color:var(--muted); margin:0 0 32px; max-width:660px;}
.sec-head{text-align:center; max-width:700px; margin:0 auto 50px;}
.sec-head p{color:var(--muted); margin:0;}
.glow-txt{color:var(--cyan); text-shadow:0 0 26px rgba(0,229,255,.55);}

/* ==================== Hero ==================== */
.hero{padding:70px 0 50px;}
.hero-grid{display:grid; grid-template-columns:1.06fr .94fr; gap:56px; align-items:center;}
@media(max-width:920px){ .hero-grid{grid-template-columns:1fr; gap:44px;} }
.hero .actions{display:flex; flex-wrap:wrap; gap:13px; margin-bottom:18px;}
.hero .note{font-family:var(--mono); font-size:12.5px; color:var(--dim); letter-spacing:.6px;}
.hero-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:36px;
  background:var(--line); border:1px solid var(--line);}
.hero-stats .s{background:rgba(6,11,21,.7); padding:16px 14px;}
.hero-stats .s b{display:block; font-family:var(--mono); font-size:21px; font-weight:800; color:var(--cyan);}
.hero-stats .s span{font-size:12.5px; color:var(--muted); letter-spacing:.5px;}

/* ==================== 手机 HUD 预览 ==================== */
.phone-wrap{display:flex; flex-direction:column; align-items:center; gap:22px;}
.phone-stage{position:relative; display:flex; justify-content:center; padding:16px 10px;}
.phone-stage::before{ /* 背后光环 */
  content:''; position:absolute; inset:4% 0; border-radius:50%; z-index:0;
  background:radial-gradient(circle, rgba(0,229,255,.22), transparent 68%);
  filter:blur(48px);
}

/* ---------- 机身 ---------- */
.phone{
  position:relative; z-index:2; width:306px; padding:12px; border-radius:46px;
  background:linear-gradient(148deg,#3a4c69 0%,#1a2436 14%,#0a1020 48%,#1a2436 84%,#3a4c69 100%);
  box-shadow:
    0 46px 100px rgba(0,0,0,.8),
    0 0 0 1px rgba(0,229,255,.26),
    0 0 80px rgba(0,229,255,.16),
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -2px 6px rgba(0,0,0,.7);
}
.phone::before{ /* 内层金属圈 */
  content:''; position:absolute; inset:5px; border-radius:41px; pointer-events:none;
  border:1px solid rgba(255,255,255,.09);
}
.phone::after{ /* 屏幕凹槽阴影 */
  content:''; position:absolute; inset:11px; border-radius:35px; pointer-events:none;
  box-shadow:inset 0 0 24px rgba(0,0,0,.95);
}
/* 侧键 */
.side{position:absolute; z-index:1; background:linear-gradient(180deg,#43587a,#1c2638);}
.side.pw {right:-4px; top:196px; width:4px; height:72px; border-radius:0 3px 3px 0; box-shadow:1px 0 4px rgba(0,0,0,.7);}
.side.v1 {left:-4px;  top:138px; width:4px; height:34px; border-radius:3px 0 0 3px;}
.side.v2 {left:-4px;  top:182px; width:4px; height:34px; border-radius:3px 0 0 3px;}
.side.mt {left:-4px;  top:96px;  width:4px; height:22px; border-radius:3px 0 0 3px;}

/* ---------- 刘海 ---------- */
.notch{position:relative; z-index:5; width:112px; height:25px; margin:0 auto 5px;
  border-radius:0 0 17px 17px; background:#03060c;}
.notch .spk{position:absolute; left:50%; top:7px; transform:translateX(-50%) translateX(-17px);
  width:28px; height:3px; border-radius:2px; background:#101827;}
.notch .cam{position:absolute; left:50%; top:7px; transform:translateX(-50%) translateX(15px);
  width:7px; height:7px; border-radius:50%; background:#0d1626;
  box-shadow:inset 0 0 4px rgba(0,229,255,.6);}

/* ---------- 屏幕 ---------- */
.screen{position:relative; z-index:2; overflow:hidden; border-radius:34px;
  display:flex; flex-direction:column; padding:0 13px 10px; min-height:512px;
  background:linear-gradient(180deg,#070c16,#080e1a 58%,#05090f);}
.gloss{position:absolute; inset:12px; border-radius:34px; z-index:6; pointer-events:none;
  background:linear-gradient(140deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.025) 20%, transparent 42%);
  mix-blend-mode:screen;}

/* ---------- 状态栏 ---------- */
.statusbar{display:flex; align-items:center; justify-content:space-between;
  padding:9px 5px 10px; font-family:var(--mono); font-size:10.5px; color:var(--muted); letter-spacing:.5px;}
.statusbar .ic{display:flex; align-items:center; gap:5px;}
.statusbar svg{width:13px; height:12px; stroke:var(--muted); fill:none; stroke-width:1.6; stroke-linecap:round;}
.batt{position:relative; width:21px; height:10px; border:1px solid var(--muted); border-radius:2.5px; padding:1.5px;}
.batt i{display:block; height:100%; width:74%; border-radius:1px;
  background:var(--up); box-shadow:0 0 7px rgba(0,255,163,.65);}
.batt::after{content:''; position:absolute; right:-3px; top:3px; width:2px; height:4px;
  border-radius:0 1px 1px 0; background:var(--muted);}

/* ---------- 账户切换（数量不定 → 横向滚动） ---------- */
.acct-tabs{display:flex; gap:5px; margin-bottom:11px; overflow-x:auto; scrollbar-width:none;
  scroll-snap-type:x proximity; padding-bottom:1px;}
.acct-tabs::-webkit-scrollbar{display:none;}
.acct-tabs.scroll{mask-image:linear-gradient(90deg,#000 0,#000 86%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,#000 0,#000 86%,transparent 100%);}
.acct-tabs button{
  flex:0 0 auto; cursor:pointer; transition:.2s; scroll-snap-align:start; white-space:nowrap;
  border:1px solid var(--line); background:rgba(0,229,255,.05); color:var(--muted);
  font-family:var(--mono); font-size:10.5px; letter-spacing:.4px; padding:6px 11px;
}
.acct-tabs button.on{border-color:var(--cyan); color:var(--cyan);
  background:rgba(0,229,255,.13); box-shadow:0 0 16px rgba(0,229,255,.3);}

/* ---------- 数据卡片 ---------- */
.pv-card{position:relative; padding:12px; margin-bottom:9px; overflow:hidden;
  background:rgba(11,19,34,.92); border:1px solid var(--line);}
.pv-card::before{content:''; position:absolute; top:0; left:0; width:24px; height:1px; background:var(--cyan);}
.pv-card::after{content:''; position:absolute; bottom:0; right:0; width:12px; height:12px;
  border-bottom:1px solid rgba(0,229,255,.35); border-right:1px solid rgba(0,229,255,.35);}
.pv-card .k{display:flex; align-items:center; justify-content:space-between; gap:8px;
  font-family:var(--mono); font-size:10px; letter-spacing:1.1px; color:var(--muted); margin-bottom:3px;}
.pv-card .badge{flex:0 0 auto; font-size:9px; letter-spacing:.5px; padding:2px 6px;
  border:1px solid rgba(0,255,163,.4); color:var(--up); background:rgba(0,255,163,.08);}
.pv-card .badge.warn{border-color:rgba(255,159,67,.45); color:#ff9f43; background:rgba(255,159,67,.08);}
.pv-card .v{font-family:var(--mono); font-size:23px; font-weight:800; letter-spacing:-.6px; line-height:1.2;}
.pv-card .v.sm{font-size:18px; letter-spacing:-.3px;}
.pv-row{display:flex; justify-content:space-between; gap:8px;
  font-family:var(--mono); font-size:10.5px; color:var(--muted); margin-top:5px;}
.pv-row span:last-child{text-align:right;}
.pv-row.tiny{font-size:9.5px; color:var(--dim); margin-top:4px;}
.pv-btn{height:38px; display:flex; align-items:center; justify-content:center; cursor:pointer;
  font-size:12.5px; font-weight:700; letter-spacing:.6px; margin-top:8px; border:1px solid;}
.pv-btn.g{background:rgba(0,255,163,.1); color:var(--up); border-color:rgba(0,255,163,.4);}
.pv-btn.r{background:rgba(255,59,92,.1); color:var(--down); border-color:rgba(255,59,92,.4);}

/* ---------- 可滑动内容区（左右滑动切换账户） ---------- */
.pv-body{flex:0 0 auto; touch-action:pan-y; user-select:none; -webkit-user-select:none; will-change:transform,opacity;}
.pv-body.sl-r{animation:pvInR .26s cubic-bezier(.22,.8,.3,1);}
.pv-body.sl-l{animation:pvInL .26s cubic-bezier(.22,.8,.3,1);}
@keyframes pvInR{ from{opacity:0; transform:translateX(30px);}  to{opacity:1; transform:none;} }
@keyframes pvInL{ from{opacity:0; transform:translateX(-30px);} to{opacity:1; transform:none;} }

/* ---------- 净值曲线（真实数据 → 0~100 坐标，绝不溢出） ---------- */.pv-chart{position:relative; width:100%; height:56px; margin-top:6px; overflow:hidden;}
.pv-chart svg{display:block; width:100%; height:100%;}
.pv-line{fill:none; stroke:var(--cyan); stroke-width:1.7; stroke-linejoin:round; stroke-linecap:round;
  vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 5px rgba(0,229,255,.45));}
.pv-base{stroke:rgba(255,255,255,.16); stroke-width:1; stroke-dasharray:3 4;
  vector-effect:non-scaling-stroke;}
.pv-dot{position:absolute; width:7px; height:7px; border-radius:50%; background:var(--cyan);
  transform:translate(-50%,-50%); transition:left .45s ease, top .45s ease; pointer-events:none;}
.pv-chart::after{content:''; position:absolute; top:0; bottom:0; width:36px; pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(0,229,255,.10),transparent);
  animation:pvSweep 4.6s linear infinite;}
@keyframes pvSweep{ from{ left:-40px; } to{ left:100%; } }

/* ---------- 云端状态条 ---------- */
.pv-foot{display:flex; justify-content:space-between; gap:6px; padding:8px 2px 0;
  font-family:var(--mono); font-size:9.5px; letter-spacing:.3px; color:var(--dim);}
.pv-foot b{color:var(--muted); font-weight:600;}
.pv-foot .live{color:var(--up);}
.pv-foot .live i{width:5px; height:5px; border-radius:50%; background:var(--up);
  box-shadow:0 0 8px var(--up); animation:blink 1.8s ease-in-out infinite;}

.homebar{width:104px; height:4px; border-radius:2px; margin:auto auto 0;
  background:rgba(255,255,255,.2);}

/* ---------- 手机下方提示 ---------- */
.phone-note{text-align:center; font-family:var(--mono); letter-spacing:.4px;
  font-size:12.5px; color:var(--muted); line-height:2;}
.phone-note .live{justify-content:center;}
.phone-note .dim{color:var(--dim); font-size:11.5px;}

/* ==================== 卡片 ==================== */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px;}
.card{
  position:relative; padding:28px 24px;
  background:linear-gradient(160deg, rgba(13,22,38,.86), rgba(6,11,21,.86));
  border:1px solid var(--line);
  backdrop-filter:blur(8px);
  transition:border-color .2s, box-shadow .2s, transform .2s;
}
.card::before{content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(0,229,255,.5), transparent);}
.card::after{content:''; position:absolute; top:-1px; left:-1px;
  width:13px; height:13px; border-top:1px solid var(--cyan); border-left:1px solid var(--cyan); opacity:.7;}
.card:hover{border-color:var(--line2); box-shadow:var(--glow); transform:translateY(-3px);}
.card .ico{
  width:46px; height:46px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center; font-size:20px;
  background:rgba(0,229,255,.07); border:1px solid var(--line2);
  box-shadow:inset 0 0 18px rgba(0,229,255,.1);
}
.card p{margin:0; color:var(--muted); font-size:14.5px;}
.card .meta{margin-top:16px; font-family:var(--mono); font-size:11.5px; color:var(--dim); letter-spacing:.6px;}

/* ==================== 步骤 ==================== */
.steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px;}
.step{position:relative; padding:34px 24px 24px; background:linear-gradient(160deg, rgba(13,22,38,.8), rgba(6,11,21,.8));
  border:1px solid var(--line);}
.step .no{position:absolute; top:-1px; left:-1px; padding:6px 13px;
  font-family:var(--mono); font-size:12px; font-weight:700; letter-spacing:1px;
  background:rgba(0,229,255,.14); border-right:1px solid var(--line2); border-bottom:1px solid var(--line2); color:var(--cyan);}
.step p{margin:0; color:var(--muted); font-size:14.5px;}

/* ==================== 定价 ==================== */
.plans{display:grid; grid-template-columns:repeat(auto-fit,minmax(258px,1fr)); gap:16px; align-items:stretch;}
.plan{position:relative; padding:30px 24px; display:flex; flex-direction:column;
  background:linear-gradient(160deg, rgba(13,22,38,.86), rgba(6,11,21,.86)); border:1px solid var(--line);}
.plan.hot{border-color:var(--line2); box-shadow:0 0 48px rgba(0,229,255,.14);}
.plan.hot::before{content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg, transparent, var(--cyan), transparent);}
.plan .tagtop{position:absolute; top:-11px; left:50%; transform:translateX(-50%);
  font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:1.6px;
  padding:4px 13px; background:var(--cyan); color:#03151c; white-space:nowrap;}
.plan h3{margin-bottom:4px;}
.plan .desc{font-size:13px; color:var(--muted); margin-bottom:20px;}
.price{display:flex; align-items:baseline; gap:7px; margin-bottom:22px; flex-wrap:wrap;}
.price b{font-family:var(--mono); font-size:44px; font-weight:800; letter-spacing:-2px; color:var(--cyan);
  text-shadow:0 0 30px rgba(0,229,255,.4); line-height:1;}
.price span{color:var(--muted); font-size:13px;}
.plan ul{list-style:none; padding:0; margin:0 0 24px; flex:1;}
.plan li{padding:9px 0 9px 24px; position:relative; color:var(--muted); font-size:14px;
  border-bottom:1px dashed rgba(0,229,255,.1);}
.plan li:last-child{border-bottom:none;}
.plan li::before{content:'▸'; position:absolute; left:0; top:9px; color:var(--cyan); font-size:12px;}
.plan li b{color:var(--txt); font-family:var(--mono);}

/* ==================== FAQ ==================== */
.faq{max-width:790px; margin:0 auto;}
.faq details{background:rgba(8,14,26,.7); border:1px solid var(--line); margin-bottom:10px; backdrop-filter:blur(6px);}
.faq summary{list-style:none; cursor:pointer; padding:18px 20px; font-weight:700; font-size:15.5px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'+'; color:var(--cyan); font-family:var(--mono); font-size:19px; font-weight:400;}
.faq details[open] summary::after{content:'−';}
.faq details[open]{border-color:var(--line2);}
.faq details[open] summary{border-bottom:1px solid var(--line);}
.faq .ans{padding:16px 20px 20px; color:var(--muted); font-size:14.5px;}
.faq .ans b{color:var(--txt);}

/* ==================== 风险提示 ==================== */
.risk{
  position:relative; padding:24px 26px; font-size:13.8px; color:#ffcf9a;
  background:linear-gradient(135deg, rgba(255,159,67,.09), rgba(255,159,67,.02));
  border:1px solid rgba(255,159,67,.3);
}
.risk::before{content:'⚠'; position:absolute; top:-11px; left:20px;
  width:24px; height:24px; display:flex; align-items:center; justify-content:center;
  background:#ff9f43; color:#1a0f02; font-size:14px; font-weight:800;}
.risk b{color:#ff9f43;}

/* ==================== 页脚 ==================== */
footer{border-top:1px solid var(--line); padding:40px 0 calc(40px + env(safe-area-inset-bottom));
  color:var(--muted); font-size:13.5px; background:rgba(4,7,14,.6);}
.foot-grid{display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:flex-start;}
.foot-links{display:flex; flex-wrap:wrap; gap:20px; font-family:var(--mono); font-size:12.5px; letter-spacing:.6px;}
.foot-links a:hover{color:var(--cyan);}

/* ==================== 登录 / 注册 ==================== */
.auth-wrap{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:26px 20px 50px;}
.auth-card{width:100%; max-width:410px; padding:32px 28px; position:relative;
  background:linear-gradient(160deg, rgba(13,22,38,.9), rgba(6,11,21,.92));
  border:1px solid var(--line2); box-shadow:0 0 70px rgba(0,229,255,.13); backdrop-filter:blur(10px);}
.auth-card::before{content:''; position:absolute; top:-1px; left:-1px; width:20px; height:20px;
  border-top:1px solid var(--cyan); border-left:1px solid var(--cyan);}
.auth-card::after{content:''; position:absolute; bottom:-1px; right:-1px; width:20px; height:20px;
  border-bottom:1px solid var(--cyan); border-right:1px solid var(--cyan);}
.auth-card h1{font-size:23px; margin-bottom:6px;}
.auth-card .sub{color:var(--muted); font-size:13.5px; margin:0 0 24px;}
.field{margin-bottom:15px;}
.field label{display:block; font-family:var(--mono); font-size:11px; letter-spacing:1.4px;
  color:var(--muted); margin-bottom:7px; text-transform:uppercase;}
.field input{
  width:100%; height:50px; padding:0 14px; font-family:var(--mono); font-size:15px;
  background:rgba(4,8,16,.9); border:1px solid var(--line); color:var(--txt);
  border-radius:var(--radius); transition:border-color .18s, box-shadow .18s;
}
.field input:focus{outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(0,229,255,.1);}
.tabs{display:flex; gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:24px;}
.tabs button{flex:1; height:44px; border:none; background:rgba(8,14,26,.9);
  color:var(--muted); font-family:inherit; font-size:14.5px; font-weight:700;
  letter-spacing:1px; cursor:pointer; transition:.18s;}
.tabs button.on{background:rgba(0,229,255,.14); color:var(--cyan); box-shadow:inset 0 -2px 0 var(--cyan);}
.msg{font-family:var(--mono); font-size:12.5px; margin-top:13px; min-height:19px; letter-spacing:.3px;}
.msg.err{color:var(--down);} .msg.ok{color:var(--up);}
.agree{display:flex; gap:9px; align-items:flex-start; font-size:12.8px; color:var(--muted); margin:16px 0 18px;}
.agree input{width:auto; height:auto; margin-top:3px;}
.agree a{color:var(--cyan);}

@media(max-width:540px){
  section{padding:56px 0;}
  .hero{padding:44px 0 32px;}
  .phone{width:auto; max-width:290px;}
  .hero-stats .s b{font-size:18px;}
}

/* ============================================================
   动态效果层
   ============================================================ */

/* ---------- Canvas 粒子网络 ---------- */
#bg-canvas{
  position:fixed; inset:0; z-index:-3;
  width:100%; height:100%;
  pointer-events:none; opacity:.9;
}

/* ---------- 扫描线 ---------- */
.scan{
  position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.45;
  background:repeating-linear-gradient(to bottom,
    rgba(0,229,255,.03) 0px, rgba(0,229,255,.03) 1px,
    transparent 1px, transparent 3px);
  mix-blend-mode:screen;
}
/* 掠光 */
.scanline{
  position:fixed; left:0; right:0; height:200px; z-index:-1; pointer-events:none;
  background:linear-gradient(to bottom, transparent, rgba(0,229,255,.055), transparent);
  animation:sweep 8s linear infinite;
}
@keyframes sweep{ from{ top:-220px; } to{ top:100%; } }

/* ---------- 滚动淡入 ---------- */
.reveal{
  opacity:0; transform:translateY(28px);
  transition:opacity .78s cubic-bezier(.2,.7,.3,1), transform .78s cubic-bezier(.2,.7,.3,1);
  will-change:opacity, transform;
}
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;}
.reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}

/* ---------- 卡片聚光（跟随鼠标） ---------- */
.card, .plan, .step{ --mx:-500px; --my:-500px; }
.card.spot{
  background-image:
    radial-gradient(230px circle at var(--mx) var(--my), rgba(0,229,255,.13), transparent 64%),
    linear-gradient(160deg, rgba(13,22,38,.86), rgba(6,11,21,.86));
}
.plan.spot{
  background-image:
    radial-gradient(230px circle at var(--mx) var(--my), rgba(0,229,255,.13), transparent 64%),
    linear-gradient(160deg, rgba(13,22,38,.86), rgba(6,11,21,.86));
}
.step.spot{
  background-image:
    radial-gradient(230px circle at var(--mx) var(--my), rgba(0,229,255,.13), transparent 64%),
    linear-gradient(160deg, rgba(13,22,38,.8), rgba(6,11,21,.8));
}

/* ---------- 按钮掠光 ---------- */
.btn.primary{ position:relative; overflow:hidden; }
.btn.primary::before{
  content:''; position:absolute; top:0; bottom:0; width:36%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.6), transparent);
  transform:translateX(-180%);
  animation:shine 3.4s ease-in-out infinite;
}
@keyframes shine{
  0%, 58%   { transform:translateX(-180%); }
  80%, 100% { transform:translateX(340%); }
}

/* ---------- 标题流光 ---------- */
.glow-txt{
  background:linear-gradient(90deg,#00e5ff,#8df6ff,#00b3cc,#00e5ff);
  background-size:240% 100%;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  animation:flow 5s linear infinite;
  filter:drop-shadow(0 0 24px rgba(0,229,255,.5));
}
@keyframes flow{ from{background-position:0% 50%;} to{background-position:240% 50%;} }

/* ---------- 呼吸圆点 ---------- */
.live{display:inline-flex; align-items:center; gap:7px;}
.live i{
  width:7px; height:7px; border-radius:50%; background:var(--up);
  box-shadow:0 0 10px var(--up); animation:blink 1.7s ease-in-out infinite;
}
@keyframes blink{ 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.3;transform:scale(.75);} }

/* ---------- 手机预览：雷达脉冲 ---------- */
.phone-wrap .radar{
  position:absolute; left:50%; top:50%; width:74%; aspect-ratio:1;
  transform:translate(-50%,-50%); border-radius:50%;
  border:1px solid rgba(0,229,255,.22); pointer-events:none;
  animation:radar 4.6s ease-out infinite;
}
.phone-wrap .radar.r2{ animation-delay:1.55s; }
.phone-wrap .radar.r3{ animation-delay:3.1s; }
@keyframes radar{
  0%  { transform:translate(-50%,-50%) scale(.62); opacity:0; }
  16% { opacity:.85; }
  100%{ transform:translate(-50%,-50%) scale(1.16); opacity:0; }
}

/* ---------- 数字跳动 ---------- */
.pv-card .v.up{ animation:numGlow 2.4s ease-in-out infinite; }
@keyframes numGlow{
  0%,100%{ text-shadow:0 0 0 rgba(0,255,163,0); }
  50%    { text-shadow:0 0 18px rgba(0,255,163,.55); }
}

/* ---------- 区块标题下的光条 ---------- */
.sec-head .eyebrow{ position:relative; }
.sec-head .eyebrow::after{
  content:''; position:absolute; left:50%; bottom:-9px; width:0; height:1px;
  background:var(--cyan); box-shadow:0 0 10px var(--cyan);
  animation:barGrow 2.8s ease-in-out infinite;
}
@keyframes barGrow{
  0%,100%{ width:0; opacity:0; }
  50%    { width:52px; opacity:1; margin-left:-26px; }
}

/* ---------- 减少动效偏好 ---------- */
@media(prefers-reduced-motion:reduce){
  .scanline, .btn.primary::before, .glow-txt, .phone-wrap .radar,
  .sec-head .eyebrow::after, .pv-card .v.up, .ticker .track, .pv-chart::after,
  .pv-body.sl-r, .pv-body.sl-l{
    animation:none !important;
  }
  .reveal{ opacity:1 !important; transform:none !important; }
  #bg-canvas, .scan{ display:none; }
  .glow-txt{ -webkit-text-fill-color:var(--cyan); color:var(--cyan); }
}
