/* =========================================================
   ty189 网络 · 现代化官网样式
   风格：深色科技蓝渐变 / 玻璃拟态 / 滚动动效
   ========================================================= */

:root{
  --bg:            #060a18;
  --bg-2:          #0a1024;
  --surface:       rgba(255,255,255,.045);
  --surface-2:     rgba(255,255,255,.07);
  --border:        rgba(255,255,255,.10);
  --border-strong: rgba(255,255,255,.18);

  --text:          #eef2ff;
  --text-2:        #a9b6d4;
  --text-3:        #6f7d9c;

  --blue:          #4f8cff;
  --blue-2:        #2f6bff;
  --cyan:          #22d3ee;
  --violet:        #a06bff;
  --pink:          #ff6ba8;

  --grad:          linear-gradient(120deg, #4f8cff 0%, #7b6bff 45%, #a06bff 100%);
  --grad-soft:     linear-gradient(120deg, rgba(79,140,255,.16), rgba(160,107,255,.16));

  --radius-sm: 12px;
  --radius:    18px;
  --radius-lg: 26px;

  --shadow-sm: 0 4px 18px rgba(0,0,0,.28);
  --shadow:    0 18px 50px rgba(0,0,0,.42);
  --shadow-glow: 0 18px 60px rgba(79,140,255,.28);

  --header-h: 72px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); }

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Inter","HarmonyOS Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
button{ font:inherit; color:inherit; }
[hidden]{ display:none !important; }

::selection{ background:rgba(79,140,255,.32); }

/* 滚动条 */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:#070b1a; }
::-webkit-scrollbar-thumb{ background:linear-gradient(#2b3a66,#1a2340); border-radius:10px; border:2px solid #070b1a; }
::-webkit-scrollbar-thumb:hover{ background:linear-gradient(#3d5292,#243059); }

.container{ width:min(1200px, calc(100% - 48px)); margin-inline:auto; }

/* ============ 背景光晕 ============ */
.bg-orbs{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.orb{ position:absolute; border-radius:50%; filter:blur(90px); opacity:.5; }
.orb-1{ width:620px; height:620px; top:-240px; left:-160px; background:radial-gradient(circle,rgba(79,140,255,.55),transparent 68%); animation:drift1 22s ease-in-out infinite; }
.orb-2{ width:560px; height:560px; top:14%; right:-200px; background:radial-gradient(circle,rgba(160,107,255,.45),transparent 68%); animation:drift2 26s ease-in-out infinite; }
.orb-3{ width:520px; height:520px; bottom:-220px; left:32%; background:radial-gradient(circle,rgba(34,211,238,.32),transparent 68%); animation:drift3 30s ease-in-out infinite; }
.grid-mask{
  position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 20%, transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 20%, transparent 78%);
}
@keyframes drift1{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(70px,50px)} }
@keyframes drift2{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(-60px,70px)} }
@keyframes drift3{ 0%,100%{transform:translate(0,0)} 50%{transform:translate(50px,-50px)} }

main, header, section, footer{ position:relative; z-index:1; }
body > *{ position:relative; z-index:1; }
.bg-orbs{ z-index:0; }

/* ============ 按钮 ============ */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:13px 26px; border-radius:999px; border:1px solid transparent;
  font-weight:600; font-size:15px; letter-spacing:.2px;
  cursor:pointer; transition:all .32s var(--ease); white-space:nowrap;
}
.btn svg{ transition:transform .32s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }
.btn-primary{
  background:var(--grad); color:#fff;
  box-shadow:0 10px 30px rgba(79,140,255,.36);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 16px 42px rgba(79,140,255,.5); }
.btn-ghost{
  background:rgba(255,255,255,.05); border-color:var(--border-strong); color:var(--text);
  backdrop-filter:blur(12px);
}
.btn-ghost:hover{ background:rgba(255,255,255,.1); border-color:rgba(79,140,255,.65); transform:translateY(-3px); }
.btn-light{ background:#fff; color:#12203f; box-shadow:0 10px 28px rgba(0,0,0,.2); }
.btn-light:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(0,0,0,.32); }
.btn-sm{ padding:10px 20px; font-size:14px; }

/* ============ 头部 ============ */
.site-header{
  position:fixed; top:0; left:0; right:0; height:var(--header-h); z-index:60;
  transition:background .35s var(--ease), backdrop-filter .35s, border-color .35s, box-shadow .35s;
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(6,10,24,.82);
  backdrop-filter:blur(18px) saturate(160%);
  border-bottom-color:var(--border);
  box-shadow:0 8px 30px rgba(0,0,0,.35);
}
.header-inner{ display:flex; align-items:center; gap:28px; height:100%; }

.logo{ display:flex; align-items:center; gap:11px; flex-shrink:0; }
.logo-mark{ display:grid; place-items:center; filter:drop-shadow(0 0 10px rgba(203,213,255,.28)); }
.logo-mark img{ display:block; }
.logo-text{ display:flex; flex-direction:column; line-height:1.05; }
.logo-text strong{ font-size:19px; font-weight:800; letter-spacing:.4px; }
.logo-text em{ font-size:10.5px; font-style:normal; letter-spacing:3.2px; color:var(--text-3); text-transform:uppercase; }

.nav{ display:flex; align-items:center; gap:4px; margin-left:auto; }
.nav-link{
  position:relative; padding:9px 15px; border-radius:10px; font-size:15px; color:var(--text-2);
  transition:color .25s, background .25s; display:inline-flex; align-items:center; gap:6px;
}
.nav-link:hover{ color:var(--text); background:rgba(255,255,255,.05); }
.nav-link.active{ color:var(--text); }
.nav-link.active::after{
  content:""; position:absolute; left:15px; right:15px; bottom:2px; height:2px;
  background:var(--grad); border-radius:2px;
}
.nav-tool{ color:#9fb6ff; }
.nav-tool:hover{ color:#fff; background:rgba(79,140,255,.14); }

.header-cta{ flex-shrink:0; }

.menu-toggle{
  display:none; width:42px; height:42px; border-radius:12px; border:1px solid var(--border);
  background:rgba(255,255,255,.05); cursor:pointer; padding:11px 10px;
  flex-direction:column; justify-content:space-between; align-items:stretch; margin-left:auto;
}
.menu-toggle span{ display:block; width:100%; height:2px; background:var(--text); border-radius:2px; transition:transform .3s var(--ease), opacity .25s; }
.menu-toggle.open span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
.menu-toggle.open span:nth-child(2){ opacity:0; }
.menu-toggle.open span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }

/* ============ Hero ============ */
.hero{ padding:calc(var(--header-h) + 84px) 0 0; }
.hero-inner{
  display:grid; grid-template-columns:1.08fr .92fr; gap:64px; align-items:center;
}
.hero-copy .pill{
  display:inline-flex; align-items:center; gap:9px;
  padding:7px 16px; border-radius:999px; font-size:13.5px; color:var(--text-2);
  background:var(--surface); border:1px solid var(--border); backdrop-filter:blur(12px);
}
.pill .dot{
  width:7px; height:7px; border-radius:50%; background:#3ddc97;
  box-shadow:0 0 0 0 rgba(61,220,151,.65); animation:pulse 2.2s infinite;
}
@keyframes pulse{ 70%{ box-shadow:0 0 0 9px rgba(61,220,151,0); } 100%{ box-shadow:0 0 0 0 rgba(61,220,151,0); } }

.hero h1{
  margin:22px 0 20px; font-size:clamp(42px,5.6vw,72px); line-height:1.08;
  font-weight:800; letter-spacing:-1.4px;
}
.grad-text{
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  background-size:200% auto; animation:shine 6s linear infinite;
}
@keyframes shine{ to{ background-position:200% center; } }

.hero-sub{ font-size:17px; color:var(--text-2); max-width:560px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }

.hero-stats{
  display:grid; grid-template-columns:repeat(4,auto); gap:34px;
  margin-top:52px; padding-top:32px; border-top:1px solid var(--border);
}
.hero-stats b{
  display:block; font-size:34px; font-weight:800; letter-spacing:-.8px;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-stats span{ font-size:13px; color:var(--text-3); }

/* Hero 视觉：海报轮播 */
.hero-visual{ position:relative; }
.glass{
  background:linear-gradient(160deg, rgba(255,255,255,.075), rgba(255,255,255,.028));
  border:1px solid var(--border);
  backdrop-filter:blur(20px) saturate(150%);
  box-shadow:var(--shadow);
}

.hero-carousel{
  border-radius:var(--radius-lg); padding:12px; position:relative; overflow:hidden;
}
.hero-carousel::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background:linear-gradient(140deg, rgba(79,140,255,.55), transparent 42%, rgba(160,107,255,.45));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.hc-track{
  position:relative; aspect-ratio:16/10; border-radius:calc(var(--radius-lg) - 6px);
  overflow:hidden; background:#0a1024;
}
.hc-slide{
  position:absolute; inset:0; margin:0;
  opacity:0; transform:scale(1.04);
  transition:opacity .8s var(--ease), transform 1.1s var(--ease);
}
.hc-slide.active{ opacity:1; transform:scale(1); z-index:1; }
.hc-slide img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.hc-dots{
  position:absolute; left:0; right:0; bottom:12px; z-index:2;
  display:flex; justify-content:center; gap:8px; padding:14px 0 10px;
  background:linear-gradient(180deg, transparent, rgba(4,7,16,.55));
  pointer-events:none;
}
.hc-dot{
  width:9px; height:9px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(255,255,255,.38); padding:0; pointer-events:auto;
  transition:background .3s, transform .3s;
}
.hc-dot:hover{ background:rgba(255,255,255,.7); }
.hc-dot.active{ background:#fff; transform:scale(1.25); box-shadow:0 0 10px rgba(79,140,255,.9); }
.hc-badge{
  position:absolute; top:22px; left:22px; z-index:2;
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 14px; border-radius:999px; font-size:12.5px; font-weight:600; letter-spacing:.5px;
  color:#dbe4ff; background:rgba(6,10,24,.66); border:1px solid var(--border-strong);
  backdrop-filter:blur(10px);
}
.hc-badge i{
  width:8px; height:8px; border-radius:50%; background:#3ddc97;
  box-shadow:0 0 0 0 rgba(61,220,151,.6); animation:pulse 2.2s infinite;
}

.float-badge{
  position:absolute; border-radius:16px; padding:12px 16px; display:flex; flex-direction:column;
  gap:1px; animation:floaty 5.5s ease-in-out infinite;
}
.float-badge b{ font-size:20px; font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.float-badge span{ font-size:11.5px; color:var(--text-3); }
.fb-1{ bottom:24%; left:-38px; animation-delay:.4s; }
.fb-2{ bottom:8%; right:-28px; animation-delay:1.6s; }
@keyframes floaty{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-13px) } }

/* 跑马灯 */
.marquee-wrap{ margin-top:78px; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:rgba(255,255,255,.018); overflow:hidden; }
.marquee{ overflow:hidden; padding:20px 0; }
.marquee-track{ display:flex; align-items:center; gap:32px; width:max-content; animation:marquee 34s linear infinite; }
.marquee-track span{ font-size:17px; font-weight:700; letter-spacing:1.5px; color:rgba(169,182,212,.45); transition:color .3s; white-space:nowrap; }
.marquee-track span:not(.sep):hover{ color:#fff; }
.marquee-track .sep{ color:rgba(79,140,255,.5); font-size:12px; }
@keyframes marquee{ to{ transform:translateX(-50%); } }

/* ============ 通用 section ============ */
.section{ padding:104px 0; }
.section-alt{ background:linear-gradient(180deg, rgba(255,255,255,.014), transparent 60%); }

.section-head{ max-width:760px; margin:0 auto 58px; text-align:center; }
.eyebrow{
  display:inline-block; font-size:12px; font-weight:700; letter-spacing:3.4px;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  margin-bottom:14px; text-transform:uppercase;
}
.section-head h2{ font-size:clamp(28px,3.4vw,40px); font-weight:800; letter-spacing:-.7px; margin-bottom:16px; }
.section-head p{ color:var(--text-2); font-size:16px; }

/* ============ 服务卡片 ============ */
.service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.s-card{
  position:relative; padding:32px 28px 30px; border-radius:var(--radius-lg);
  background:linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.022));
  border:1px solid var(--border); overflow:hidden;
  transition:transform .38s var(--ease), border-color .38s, box-shadow .38s;
}
.s-card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; opacity:0;
  background:var(--grad-soft); transition:opacity .38s;
}
.s-card:hover{ transform:translateY(-8px); border-color:rgba(79,140,255,.42); box-shadow:var(--shadow-glow); }
.s-card:hover::after{ opacity:1; }
.s-card > *{ position:relative; z-index:1; }

.s-icon{
  width:54px; height:54px; border-radius:16px; display:grid; place-items:center;
  background:linear-gradient(140deg, rgba(79,140,255,.2), rgba(160,107,255,.2));
  border:1px solid rgba(79,140,255,.3); color:#9fbcff; margin-bottom:22px;
  transition:transform .38s var(--ease);
}
.s-icon svg{ width:25px; height:25px; }
.s-card:hover .s-icon{ transform:scale(1.08) rotate(-4deg); color:#cfdcff; }
.s-card h3{ font-size:19.5px; font-weight:700; margin-bottom:11px; }
.s-card p{ font-size:14.5px; color:var(--text-2); line-height:1.75; }
.s-index{
  position:absolute; top:26px; right:26px; font-size:13px; font-weight:800; letter-spacing:1px;
  color:rgba(255,255,255,.10); z-index:1;
}

/* ============ 产品卡片 ============ */
.product-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.p-card{
  border-radius:var(--radius-lg); overflow:hidden; background:rgba(255,255,255,.032);
  border:1px solid var(--border); transition:transform .38s var(--ease), border-color .38s, box-shadow .38s;
}
.p-card:hover{ transform:translateY(-8px); border-color:rgba(79,140,255,.42); box-shadow:var(--shadow-glow); }

.p-media{ position:relative; }
.p-img{
  aspect-ratio:4/3; display:grid; place-items:center; position:relative; overflow:hidden;
  background:#fff; padding:20px;
}
.p-img img{
  width:100%; height:100%; object-fit:contain; display:block;
  transition:transform .55s var(--ease);
}
.p-card:hover .p-img img{ transform:scale(1.06); }
.p-tag{
  position:absolute; top:14px; left:14px; z-index:2;
  padding:5px 13px; border-radius:999px; font-size:12px; font-weight:700;
  background:rgba(6,10,24,.68); border:1px solid var(--border-strong); backdrop-filter:blur(10px);
  color:#cddaff;
}
.p-body{ padding:24px 24px 26px; }
.p-body h3{ font-size:19px; font-weight:700; margin-bottom:10px; }
.p-body > p{ font-size:14.5px; color:var(--text-2); line-height:1.72; }
.p-specs{ display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 20px; }
.p-specs li{
  padding:5px 12px; border-radius:8px; font-size:12.5px; color:#9fbcff;
  background:rgba(79,140,255,.11); border:1px solid rgba(79,140,255,.22);
}
.p-link{
  display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:700;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  transition:gap .3s var(--ease);
}
.p-link svg{ color:#7ba7ff; }
.p-link:hover{ gap:12px; }

/* ============ WiFi 工具 Band ============ */
.tool-band{ padding:96px 0; }
.tool-band-inner{
  border-radius:32px; padding:56px; display:grid; grid-template-columns:1.25fr .75fr;
  gap:52px; align-items:center; position:relative; overflow:hidden;
}
.tool-band-inner::before{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1px;
  background:linear-gradient(120deg, rgba(79,140,255,.5), transparent 45%, rgba(160,107,255,.5));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.tb-left h2{ font-size:clamp(26px,3vw,36px); font-weight:800; margin:12px 0 16px; letter-spacing:-.6px; }
.tb-left > p{ color:var(--text-2); max-width:520px; }
.tb-points{ margin:26px 0 32px; display:grid; gap:12px; }
.tb-points li{ display:flex; align-items:center; gap:11px; font-size:14.5px; color:var(--text-2); }
.ic-check{
  width:20px; height:20px; flex:0 0 20px; border-radius:50%; display:inline-block;
  background:linear-gradient(135deg,#4f8cff,#a06bff);
  -webkit-mask:none; position:relative;
}
.ic-check::after{
  content:""; position:absolute; left:6px; top:4px; width:5px; height:9px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(42deg);
}
.tb-right{ display:grid; place-items:center; position:relative; }
.qr-demo{ position:relative; }
.qr-demo-frame{
  width:210px; height:210px; padding:14px; border-radius:24px; background:#fff;
  box-shadow:0 24px 60px rgba(0,0,0,.45), 0 0 0 10px rgba(255,255,255,.05);
  animation:floaty 6s ease-in-out infinite;
}
.qr-demo-glow{
  position:absolute; inset:-28px; border-radius:50%; z-index:-1;
  background:radial-gradient(circle, rgba(79,140,255,.5), transparent 66%); filter:blur(28px);
}

/* ============ 伙伴 ============ */
.partner-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.partner-grid li{
  display:grid; place-items:center; padding:20px 26px;
  border-radius:var(--radius); background:#fff;
  border:1px solid rgba(255,255,255,.14);
  transition:transform .35s var(--ease), box-shadow .35s;
}
.partner-grid li:hover{ transform:translateY(-6px); box-shadow:0 16px 44px rgba(79,140,255,.24); }
.partner-grid img{
  max-height:52px; width:auto; max-width:100%; object-fit:contain; display:block;
}

/* ============ 联系 ============ */
.contact-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ct-card{
  padding:34px 24px 30px; border-radius:var(--radius-lg); text-align:center;
  background:linear-gradient(160deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  border:1px solid var(--border); cursor:pointer;
  transition:transform .36s var(--ease), border-color .36s, box-shadow .36s;
}
.ct-card:hover{ transform:translateY(-8px); border-color:rgba(79,140,255,.45); box-shadow:var(--shadow-glow); }
.ct-icon{
  width:56px; height:56px; margin:0 auto 18px; border-radius:18px; display:grid; place-items:center;
  background:linear-gradient(140deg, rgba(79,140,255,.2), rgba(160,107,255,.2));
  border:1px solid rgba(79,140,255,.3); color:#a8c2ff;
  transition:transform .36s var(--ease);
}
.ct-card:hover .ct-icon{ transform:translateY(-3px) scale(1.06); }
.ct-icon svg{ width:26px; height:26px; }
.ct-card h3{ font-size:15.5px; font-weight:600; color:var(--text-2); margin-bottom:7px; }
.ct-card p{ font-size:17.5px; font-weight:700; letter-spacing:.4px; }
#wechatCard{ position:relative; }
#wechatCard::after{
  content:"点击复制"; position:absolute; left:50%; bottom:-30px; transform:translateX(-50%);
  font-size:12px; color:var(--text-3); opacity:0; transition:opacity .3s;
}
#wechatCard:hover::after{ opacity:1; }

/* ============ CTA 条 ============ */
.cta-band{ background:var(--grad); position:relative; overflow:hidden; }
.cta-band::before{
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.09) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.09) 1px, transparent 1px);
  background-size:48px 48px; opacity:.5;
}
.cta-inner{
  position:relative; display:flex; align-items:center; justify-content:space-between;
  gap:28px; padding:42px 0; flex-wrap:wrap;
}
.cta-inner p{ font-size:clamp(18px,2.2vw,24px); font-weight:700; letter-spacing:.2px; max-width:720px; }

/* ============ 页脚 ============ */
.site-footer{ background:#04070f; border-top:1px solid var(--border); padding-top:70px; }
.footer-grid{ display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:44px; padding-bottom:52px; }
.f-col h2{ font-size:15px; font-weight:700; margin-bottom:18px; letter-spacing:.4px; }
.f-col-about h2{ margin-top:22px; }
.f-col p{ font-size:14px; color:var(--text-3); line-height:1.85; }
.f-col ul{ display:grid; gap:11px; }
.f-col ul a{ font-size:14px; color:var(--text-3); transition:color .25s, padding-left .25s; }
.f-col ul a:hover{ color:#fff; padding-left:5px; }

.footer-bottom{ border-top:1px solid var(--border); padding:22px 0; }
.fb-inner{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.fb-inner span, .fb-inner a{ font-size:13px; color:var(--text-3); }
.fb-inner a:hover{ color:#9fbcff; }

/* ============ 返回顶部 ============ */
.back-top{
  position:fixed; right:26px; bottom:-80px; z-index:50;
  width:48px; height:48px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  background:var(--grad); border:none; color:#fff;
  box-shadow:0 12px 32px rgba(79,140,255,.45);
  transition:bottom .4s var(--ease), transform .3s var(--ease);
}
.back-top.show{ bottom:26px; }
.back-top:hover{ transform:translateY(-4px) scale(1.06); }

/* ============ 滚动动效 ============ */
.reveal{ opacity:0; transform:translateY(34px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible{ opacity:1; transform:none; }

/* ============ 响应式 ============ */
@media (max-width:1080px){
  .hero-inner{ grid-template-columns:1fr; gap:52px; }
  .hero-visual{ max-width:560px; }
  .fb-1{ left:-14px; } .fb-2{ right:-10px; }
  .service-grid, .product-grid{ grid-template-columns:repeat(2,1fr); }
  .contact-grid{ grid-template-columns:repeat(2,1fr); }
  .partner-grid{ grid-template-columns:repeat(3,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .tool-band-inner{ grid-template-columns:1fr; padding:44px; gap:44px; }
}

@media (max-width:820px){
  :root{ --header-h:64px; }
  .header-cta{ display:none; }
  .menu-toggle{ display:flex; }
  .nav{
    position:fixed; top:var(--header-h); left:0; right:0;
    flex-direction:column; align-items:stretch; gap:4px; margin:0; padding:16px 24px 26px;
    background:rgba(6,10,24,.97); backdrop-filter:blur(20px);
    border-bottom:1px solid var(--border);
    transform:translateY(-140%); opacity:0; pointer-events:none;
    transition:transform .4s var(--ease), opacity .3s;
  }
  .nav.open{ transform:none; opacity:1; pointer-events:auto; }
  .nav-link{ padding:14px 16px; font-size:16px; }
  .nav-link.active::after{ display:none; }
  .nav-link.active{ background:rgba(79,140,255,.14); }

  .section{ padding:76px 0; }
  .hero{ padding-top:calc(var(--header-h) + 52px); }
  .hero-stats{ grid-template-columns:repeat(2,1fr); gap:26px 18px; }
  .service-grid, .product-grid{ grid-template-columns:1fr; }
  .partner-grid{ grid-template-columns:repeat(2,1fr); }
  .contact-grid{ grid-template-columns:repeat(2,1fr); }
  .container{ width:calc(100% - 36px); }
  .tool-band-inner{ padding:32px 24px; border-radius:24px; }
  .cta-inner{ padding:34px 0; }
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
  .fb-inner{ flex-direction:column; align-items:flex-start; gap:8px; }
  .back-top{ right:16px; } .back-top.show{ bottom:16px; }
}

@media (max-width:420px){
  .hero-actions .btn{ width:100%; justify-content:center; }
  .contact-grid{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.01ms !important; }
  .reveal{ opacity:1; transform:none; }
}
