/* ============================================================
   SOLITORCH · 智慧抄表机器人  |  Apple-like light tech style
   ============================================================ */
:root{
  --ink:#1d1d1f;
  --ink2:#515154;
  --ink3:#86868b;
  --blue:#0071e3;
  --blue2:#0a84ff;
  --cyan:#0aa2c0;
  --bg:#ffffff;
  --soft:#f5f5f7;
  --soft2:#fafafc;
  --line:#e6e6eb;
  --line2:#d2d2d7;
  --shadow:0 18px 50px rgba(0,0,0,.07),0 3px 12px rgba(0,0,0,.035);
  --shadow-lg:0 32px 80px rgba(0,0,0,.11),0 8px 24px rgba(0,0,0,.05);
  --r:22px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3,h4,p,figure,dl,dd{margin:0}
ul{margin:0;padding:0;list-style:none}
.wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}
.section{padding:130px 0;position:relative}
.soft-bg{background:var(--soft)}
.desktop-only{display:inline}

/* ---------- shared type ---------- */
.kicker{font-size:13px;font-weight:600;letter-spacing:.16em;color:var(--blue);text-transform:uppercase;margin-bottom:20px}
.sec-head{max-width:820px;margin-bottom:64px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(38px,5vw,64px);line-height:1.12;letter-spacing:-.035em;font-weight:650;margin-bottom:22px}
.sec-head .lead{font-size:19px;line-height:1.75;color:var(--ink2);max-width:760px}
.sec-head.center .lead{margin:0 auto}
.sec-head strong{font-weight:650;color:var(--ink)}
.grad{background:linear-gradient(100deg,#0071e3 0%,#0aa2c0 52%,#34c0b0 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 26px;border-radius:100px;font-size:15px;font-weight:550;transition:transform .25s,box-shadow .25s,background .25s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 24px rgba(0,113,227,.22)}
.btn-primary:hover{background:#0077ed;box-shadow:0 12px 30px rgba(0,113,227,.3)}
.btn-plain{color:var(--blue);border:1px solid rgba(0,113,227,.28);background:rgba(255,255,255,.7)}
.btn-plain:hover{background:#fff}
.btn.big{height:56px;padding:0 32px;font-size:16px}
.arrow{font-size:18px;transition:transform .25s}
.btn:hover .arrow{transform:translateX(4px)}
.play{width:0;height:0;border-left:8px solid var(--blue);border-top:5px solid transparent;border-bottom:5px solid transparent}
.masked{color:var(--ink3);letter-spacing:.02em}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;height:66px;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.06);transition:box-shadow .3s}
.nav.scrolled{box-shadow:0 4px 20px rgba(0,0,0,.06)}
.nav-inner{width:min(1240px,calc(100% - 40px));height:100%;margin:0 auto;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:11px;flex:none}
.brand img{height:34px;width:auto;object-fit:contain;object-position:left}
.brand-text{display:flex;flex-direction:column;justify-content:center;line-height:1.25;white-space:nowrap}
.brand-text b{font-size:15px;font-weight:650;letter-spacing:-.01em;color:var(--ink)}
.brand-text small{font-size:10.5px;font-weight:400;color:var(--ink3);margin-top:2px}
.nav-links{display:flex;align-items:center;gap:18px;margin-left:auto;font-size:12.5px;color:var(--ink2)}
.nav-links a{transition:color .2s;white-space:nowrap}
.nav-links a:hover,.nav-links a.active{color:var(--blue)}
.nav-links .mobile-only{display:none}
.nav-actions{display:flex;align-items:center;gap:8px;flex:none}
.nav-cta{background:var(--ink);color:#fff;font-size:12.5px;padding:8px 16px;border-radius:100px;white-space:nowrap;transition:background .2s}
.nav-cta:hover{background:var(--blue)}
.nav-login{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:550;color:var(--blue);border:1px solid rgba(0,113,227,.3);padding:7px 14px;border-radius:100px;white-space:nowrap;background:rgba(255,255,255,.6);transition:all .2s}
.nav-login span{font-size:12px}
.nav-login:hover{background:var(--blue);color:#fff;border-color:var(--blue)}
.nav-toggle{display:none;width:36px;height:36px;flex-direction:column;justify-content:center;gap:5px}
.nav-toggle span{display:block;height:1.5px;background:var(--ink);width:20px;margin:0 auto;transition:transform .3s}
.nav.open .nav-toggle span:first-child{transform:translateY(3px) rotate(45deg)}
.nav.open .nav-toggle span:last-child{transform:translateY(-3px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100vh;padding:150px 0 90px;display:flex;align-items:center;overflow:hidden;background:linear-gradient(175deg,#fff 0%,#f7fbff 45%,#eef7ff 100%)}
.hero-glow{position:absolute;width:980px;height:980px;right:-260px;top:-320px;border-radius:50%;background:radial-gradient(circle,rgba(0,145,234,.16),rgba(120,220,235,.09) 42%,transparent 70%);filter:blur(10px);pointer-events:none}
.hero-inner{width:min(1240px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;position:relative;z-index:2}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--blue);margin-bottom:26px}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px rgba(0,113,227,.12)}
.hero h1{font-size:clamp(52px,6.4vw,88px);line-height:1.06;letter-spacing:-.055em;font-weight:680;margin-bottom:26px}
.hero-sub{font-size:19px;line-height:1.8;color:var(--ink2);margin-bottom:38px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:64px}
.hero-metrics{display:flex;gap:0;border-top:1px solid var(--line);padding-top:26px;max-width:560px}
.hero-metrics>div{flex:1;padding-right:18px;border-right:1px solid var(--line)}
.hero-metrics>div+div{padding-left:22px}
.hero-metrics>div:last-child{border:0}
.hero-metrics b{display:block;font-size:26px;font-weight:650;letter-spacing:-.02em;margin-bottom:4px}
.hero-metrics span{font-size:12px;color:var(--ink3);line-height:1.5;display:block}
.hero-visual{position:relative;height:620px;display:flex;align-items:center;justify-content:center}
.hero-ring{position:absolute;border-radius:50%;border:1px solid rgba(0,113,227,.13)}
.ring-a{width:530px;height:530px;animation:spin 60s linear infinite}
.ring-b{width:410px;height:410px;border-style:dashed;border-color:rgba(10,162,192,.22);animation:spin 90s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-visual::after{content:"";position:absolute;bottom:70px;left:50%;transform:translateX(-50%);width:250px;height:22px;border-radius:50%;background:rgba(20,60,90,.08);filter:blur(16px);z-index:1}
.hero-product{width:min(450px,90%);height:auto;position:relative;z-index:3;filter:drop-shadow(0 24px 30px rgba(20,60,90,.16));animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(-1deg)}}
.float-card{position:absolute;z-index:5;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow);border-radius:18px;padding:16px 20px;animation:float2 6s ease-in-out infinite}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.fc-reading{top:16%;right:-2%;min-width:174px}
.fc-label{display:block;font-size:11px;color:var(--ink3);letter-spacing:.08em}
.fc-reading strong{font-size:32px;font-weight:650;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.fc-reading .decimal{color:var(--blue)}
.fc-unit{font-size:12px;color:var(--ink3);margin-left:6px}
.fc-ok{display:block;margin-top:6px;font-size:11px;color:#0a9b63;font-weight:600}
.fc-edge{left:-4%;bottom:20%;display:flex;align-items:center;gap:12px;animation-delay:-2.4s}
.fc-edge .pulse{width:10px;height:10px;border-radius:50%;background:#0a9b63;box-shadow:0 0 0 0 rgba(10,155,99,.4);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 12px rgba(10,155,99,0)}100%{box-shadow:0 0 0 0 rgba(10,155,99,0)}}
.fc-edge b{display:block;font-size:13px}
.fc-edge small{font-size:11px;color:var(--ink3)}
.scroll-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.14em;color:var(--ink3);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:3}
.scroll-hint span{width:1px;height:34px;background:linear-gradient(var(--line2),transparent);animation:hint 2s ease-in-out infinite}
@keyframes hint{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}

/* ---------- vision ---------- */
.pain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pain-card{background:var(--soft);border-radius:var(--r);padding:34px 30px 30px;transition:transform .35s,box-shadow .35s}
.pain-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pain-num{font-size:12px;font-weight:650;color:var(--blue);letter-spacing:.14em;margin-bottom:22px}
.pain-card h3{font-size:22px;font-weight:620;letter-spacing:-.02em;margin-bottom:8px}
.pain-lead{color:var(--ink3);font-size:14px;margin-bottom:22px}
.pain-card ul li{position:relative;padding-left:18px;font-size:14px;color:var(--ink2);line-height:1.6;margin-bottom:11px}
.pain-card ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:#c7c7cc}
.vision-answer{margin-top:64px;background:linear-gradient(115deg,#f0f8ff,#f7fffe);border:1px solid #e3f0fb;border-radius:28px;padding:52px 48px;display:grid;grid-template-columns:1fr 1.25fr;gap:50px;align-items:center}
.va-left h3{font-size:30px;line-height:1.3;letter-spacing:-.03em;font-weight:650;margin-bottom:16px}
.va-left p{font-size:15px;color:var(--ink2);line-height:1.8}
.va-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.flow-step{background:#fff;border:1px solid #e2ecf5;border-radius:16px;padding:16px 12px;text-align:center;min-width:82px;box-shadow:0 6px 18px rgba(0,80,150,.05)}
.flow-step.hl{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 12px 26px rgba(0,113,227,.25)}
.flow-ico{display:block;font-size:19px;margin-bottom:8px;opacity:.85}
.flow-step b{display:block;font-size:13px;margin-bottom:3px}
.flow-step small{display:block;font-size:10px;opacity:.75;white-space:nowrap}
.flow-line{flex:1;min-width:10px;height:1px;background:linear-gradient(90deg,#b9d8ef,#cfe9e7);position:relative}
.flow-line::after{content:"›";position:absolute;right:-3px;top:-11px;color:#9ec6df;font-size:14px}

/* ---------- architecture ---------- */
.arch-section{background:linear-gradient(180deg,#fff 0%,#f6fbff 38%,#fff 100%)}
.arch-compare{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:56px}
.cmp{border-radius:26px;padding:34px 32px;border:1px solid var(--line)}
.cmp-old{background:var(--soft)}
.cmp-new{background:linear-gradient(140deg,#f0f8ff,#f4fffd);border-color:#d8ecfa;box-shadow:0 18px 46px rgba(0,113,227,.07)}
.cmp-tag{display:inline-block;font-size:12px;font-weight:650;letter-spacing:.06em;padding:6px 14px;border-radius:100px;background:#e6e6eb;color:var(--ink2);margin-bottom:26px}
.tag-blue{background:var(--blue);color:#fff}
.cmp-chain{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.cmp-node{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 12px;font-size:12px;text-align:center;flex:1;min-width:70px;color:var(--ink2)}
.cmp-old .cloud{background:#ececee;color:var(--ink3);text-decoration:line-through;text-decoration-color:#ff6b6b}
.cmp-new .onchip{background:var(--blue);border-color:var(--blue);color:#fff;flex:1.7;padding:10px 10px}
.cmp-new .onchip b{display:block;font-size:13px;margin-bottom:2px}
.cmp-new .onchip small{display:block;font-size:9px;opacity:.85;line-height:1.35}
.cmp-arrow{color:var(--ink3);font-size:13px}
.cmp-list li{display:flex;gap:10px;font-size:13.5px;color:var(--ink2);padding:9px 0;border-top:1px solid rgba(0,0,0,.055);line-height:1.55}
.cmp-list li:first-child{border-top:0}
.cmp-list li span{font-weight:700;flex:none;width:16px}
.cmp-old .cmp-list li span{color:#e05a5a}
.cmp-new .cmp-list li span{color:#0a9b63}

.chip-diagram{background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:40px}
.cd-head{display:flex;align-items:center;gap:20px;padding:28px 36px;border-bottom:1px solid var(--line)}
.cd-badge{font-size:12px;font-weight:700;letter-spacing:.08em;color:#fff;background:var(--ink);padding:8px 14px;border-radius:8px;flex:none}
.cd-head h3{font-size:21px;font-weight:620;letter-spacing:-.02em;margin-bottom:3px}
.cd-head p{font-size:13px;color:var(--ink3)}
.cd-body{display:flex;align-items:center;gap:0;padding:46px 36px 38px;background:radial-gradient(circle at 50% 40%,#f6fbff,#fff 70%)}
.cd-input{flex:none;width:120px;text-align:center}
.cd-lens{width:96px;height:96px;margin:0 auto 12px;border-radius:50%;background:radial-gradient(circle at 38% 32%,#5b6c7d,#222d38 65%);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 26px rgba(20,40,60,.18),inset 0 0 0 6px #cfd8e0}
.lens-ring{width:52px;height:52px;border-radius:50%;border:4px solid rgba(255,255,255,.14)}
.lens-core{position:absolute;width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#8f7bff,#1b3a7a 70%);box-shadow:0 0 14px rgba(90,120,255,.6)}
.cd-input>span{font-size:12px;color:var(--ink3)}
.cd-wire{flex:1;min-width:36px;height:2px;background:linear-gradient(90deg,#c9dff0,#0071e3);position:relative}
.cd-wire.out{background:linear-gradient(90deg,#0071e3,#9edccf)}
.flow-dot{position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(0,113,227,.12);animation:travel 2.6s linear infinite}
.flow-dot.d2{animation-delay:.85s}.flow-dot.d3{animation-delay:1.7s}
@keyframes travel{from{left:0;opacity:0}15%{opacity:1}85%{opacity:1}to{left:100%;opacity:0}}
.cd-chip{flex:none;width:min(470px,44%);background:#fbfdff;border:2px solid #cfe4f6;border-radius:20px;padding:20px;box-shadow:inset 0 0 0 6px #fff,0 12px 30px rgba(0,90,160,.08);position:relative}
.cd-chip::before,.cd-chip::after{content:"";position:absolute;left:16px;right:16px;height:5px;background:repeating-linear-gradient(90deg,#c7d7e4 0 5px,transparent 5px 11px)}
.cd-chip::before{top:-7px}.cd-chip::after{bottom:-7px}
.cd-chip-title{text-align:center;font-size:12px;font-weight:650;color:var(--blue);letter-spacing:.04em;margin-bottom:14px}
.cd-blocks{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.cd-block{background:#fff;border:1px solid #e4ecf4;border-radius:11px;padding:11px 12px}
.cd-block b{display:block;font-size:12.5px;font-weight:620;margin-bottom:3px}
.cd-block small{display:block;font-size:10px;color:var(--ink3);line-height:1.4}
.cd-block.core{grid-column:span 2;background:linear-gradient(100deg,#0071e3,#0aa2c0);border-color:transparent;color:#fff;position:relative;overflow:hidden}
.cd-block.core::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.24) 50%,transparent 70%);animation:shine 3.4s linear infinite}
@keyframes shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.cd-block.core small{color:rgba(255,255,255,.85)}
.cd-chip-foot{text-align:center;font-size:10px;color:var(--ink3);margin-top:12px}
.cd-output{flex:none;width:158px;text-align:center}
.cd-result{background:#0f1c28;color:#fff;border-radius:14px;padding:16px 10px;box-shadow:0 14px 30px rgba(15,28,40,.18)}
.cr-label{font-size:9px;letter-spacing:.18em;color:#7f96a8;display:block;margin-bottom:8px}
.cr-digits{font-size:19px;font-weight:650;letter-spacing:.12em;font-variant-numeric:tabular-nums;white-space:nowrap}
.cr-digits em{font-style:normal;color:#4fd2b6}
.cr-unit{font-size:10px;color:#8ea4b5;margin-left:4px}
.cd-out-note{display:block;font-size:11px;color:var(--ink2);line-height:1.6;margin-top:12px}
.cd-out-note small{color:var(--ink3);font-size:10px}
.cd-caption{display:flex;gap:14px;align-items:center;padding:20px 36px;background:var(--soft);border-top:1px solid var(--line);font-size:13px;color:var(--ink2)}
.cd-cross{width:26px;height:26px;border-radius:50%;background:#fee2e2;color:#d94a4a;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.cd-caption b{color:var(--ink)}

.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.benefit{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 24px;transition:transform .3s,box-shadow .3s}
.benefit:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.bf-ico{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:13px;background:#eef6ff;color:var(--blue);font-size:20px;font-weight:600;margin-bottom:18px}
.benefit h4{font-size:17px;font-weight:620;margin-bottom:8px}
.benefit p{font-size:13px;color:var(--ink2);line-height:1.7}

/* ---------- products ladder ---------- */
.ladder{display:flex;flex-direction:column}
.ladder-item{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:12px 0}
.ladder-item.reverse .ladder-media{order:2}
.ladder-media{background:var(--soft);border-radius:28px;min-height:400px;display:flex;align-items:center;justify-content:center;gap:12px;padding:36px;position:relative;overflow:hidden}
.light-blue{background:linear-gradient(140deg,#eff7ff,#f6fffe)}
.ladder-media img{max-height:270px;width:auto;object-fit:contain;mix-blend-mode:multiply}
.ladder-media img.ladder-sub{max-height:200px;opacity:.92}
.product-media{background:linear-gradient(150deg,#fff,#eef6ff)}
.product-media img{max-height:400px;filter:drop-shadow(0 18px 24px rgba(20,60,90,.13))}
.ladder-info .step{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--blue);background:#eaf4ff;padding:6px 12px;border-radius:100px;margin-bottom:20px}
.ladder-info h3{font-size:34px;letter-spacing:-.035em;font-weight:650;line-height:1.25;margin-bottom:16px}
.ladder-info h3 small{font-size:15px;color:var(--ink3);font-weight:500;letter-spacing:0}
.ladder-info>p{font-size:15px;color:var(--ink2);line-height:1.85;margin-bottom:26px}
.spec{border-top:1px solid var(--line)}
.spec>div{display:flex;gap:16px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px}
.spec dt{width:96px;flex:none;color:var(--ink3)}
.spec dd{color:var(--ink);font-weight:520}
.ladder-link{display:flex;align-items:center;justify-content:center;gap:14px;margin:14px 0;color:var(--ink3);font-size:12px;letter-spacing:.05em}
.ladder-link span{width:1px;height:34px;background:linear-gradient(var(--line2),transparent)}
.ladder-link span:last-child{background:linear-gradient(transparent,var(--line2))}
.ladder-link b{font-weight:500;padding:0 4px}

.gallery-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:96px 0 30px}
.gallery-head h3{font-size:30px;letter-spacing:-.03em;font-weight:650}
.gallery-head>p{font-size:13px;color:var(--ink3);max-width:330px;text-align:right;line-height:1.7}
.product-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.pg-item{background:var(--soft);border-radius:18px;overflow:hidden;position:relative;height:250px;margin:0}
.pg-item.pg-wide{grid-column:span 2}
.pg-item img{width:100%;height:100%;object-fit:contain;background:#fff;transition:transform .5s}
.pg-item:hover img{transform:scale(1.045)}
.pg-item figcaption{position:absolute;left:14px;bottom:12px;font-size:11px;color:var(--ink2);background:rgba(255,255,255,.85);backdrop-filter:blur(8px);padding:5px 10px;border-radius:100px}

/* ---------- advantages ---------- */
.adv-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.adv-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 22px;min-height:220px;transition:transform .3s,box-shadow .3s}
.adv-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.adv-card>span{font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.1em}
.adv-card h3{font-size:20px;font-weight:620;margin:26px 0 10px}
.adv-card p{font-size:13px;color:var(--ink2);line-height:1.75}

/* ---------- manufacture ---------- */
.photo-wall{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:14px}
.ph{margin:0;position:relative;overflow:hidden;border-radius:16px;background:var(--soft)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.ph:hover img{transform:scale(1.06)}
.ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 11px;font-size:11.5px;color:#fff;background:linear-gradient(transparent,rgba(10,25,40,.72))}
.ph-tall{grid-row:span 2}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin:100px 0 54px}
.tc-media{border-radius:26px;overflow:hidden;height:400px;background:var(--soft)}
.tc-media img{width:100%;height:100%;object-fit:cover}
.tc-copy h3{font-size:36px;line-height:1.25;letter-spacing:-.035em;font-weight:650;margin-bottom:18px}
.tc-copy>p:not(.kicker){font-size:15px;color:var(--ink2);line-height:1.85;margin-bottom:28px}
.steps>div{display:flex;align-items:baseline;gap:14px;padding:13px 0;border-top:1px solid var(--line)}
.steps b{font-size:12px;color:var(--blue);font-weight:700}
.steps span{font-size:15px;font-weight:600;min-width:90px}
.steps small{font-size:12px;color:var(--ink3)}
.case-wall{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}
.case-wall figure{margin:0;position:relative;border-radius:14px;overflow:hidden;height:210px;background:var(--soft)}
.case-wall img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.case-wall figure:hover img{transform:scale(1.07)}
.case-wall figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 9px 9px;color:#fff;font-size:11px;background:linear-gradient(transparent,rgba(10,25,40,.7))}
.wall-note{font-size:12px;color:var(--ink3);margin-top:16px}

/* ---------- platform demo ---------- */
.demo-tabs{display:flex;align-items:center;gap:8px;justify-content:center;margin-bottom:28px;position:relative}
.dtab{padding:11px 24px;border-radius:100px;font-size:14px;font-weight:550;color:var(--ink2);background:#fff;border:1px solid var(--line);transition:all .25s}
.dtab:hover{color:var(--blue)}
.dtab.active{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 8px 22px rgba(0,113,227,.24)}
.demo-progress{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:180px;height:2px;background:var(--line2);border-radius:2px;overflow:hidden;opacity:0}
.demo-progress i{display:block;height:100%;width:0;background:var(--blue)}
.browser{background:#fff;border:1px solid #dfe3e9;border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden}
.browser-bar{height:46px;background:#f7f8fa;border-bottom:1px solid #e6e8ed;display:flex;align-items:center;padding:0 16px;gap:16px}
.dots{display:flex;gap:7px}
.dots i{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.url{flex:1;max-width:460px;margin:0 auto;background:#fff;border:1px solid #e6e8ed;border-radius:7px;height:26px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11.5px;color:var(--ink2)}
.url .lock{font-size:9px}.url-path{color:var(--ink3)}
.bar-right{display:flex;align-items:center;gap:7px;font-size:10.5px;color:var(--ink3)}
.avatar{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#cfe0f2,#a7c8ea)}
.browser-body{display:grid;grid-template-columns:176px 1fr;min-height:520px}
.side{background:#fbfcfe;border-right:1px solid #edf0f4;padding:20px 12px;display:flex;flex-direction:column}
.side-logo{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:650;padding:0 10px 24px}
.s-mark{width:20px;height:20px;border-radius:6px;background:linear-gradient(135deg,#0071e3,#0aa2c0)}
.side-group{margin-bottom:20px}
.side-group p{font-size:10px;color:#a2a7ae;letter-spacing:.08em;padding:0 10px;margin-bottom:7px}
.side-group a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;font-size:12px;color:#5c626b;margin-bottom:2px;transition:all .2s}
.side-group a i{font-style:normal;font-size:13px;width:16px;text-align:center;color:#9aa4af}
.side-group a:hover{background:#eef4fb}
.side-group a.on{background:#e8f2ff;color:var(--blue);font-weight:600}
.side-group a.on i{color:var(--blue)}
.side-foot{margin-top:auto;font-size:10.5px;color:#8b929b;display:flex;align-items:center;gap:7px;padding:0 10px}
.side-foot span{width:6px;height:6px;border-radius:50%;background:#28c840}
.stage{position:relative;background:#f7f9fc;overflow:hidden}
.panel{position:absolute;inset:0;padding:24px 26px;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .45s,transform .45s,visibility .45s;overflow:auto}
.panel.active{opacity:1;visibility:visible;transform:none;position:relative}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}
.panel-head h4{font-size:17px;font-weight:640;margin-bottom:3px}
.panel-head p{font-size:11px;color:var(--ink3)}
.live{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#0a9b63;background:#e8f8f0;padding:5px 11px;border-radius:100px}
.live i{width:6px;height:6px;border-radius:50%;background:#0a9b63;animation:pulse2 1.8s infinite}
@keyframes pulse2{50%{opacity:.35}}
.seg{display:flex;background:#eceff3;border-radius:8px;padding:3px;font-size:11px}
.seg b{padding:5px 11px;border-radius:6px;color:var(--ink3);font-weight:500}
.seg b.on{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid #eaedf2;border-radius:12px;padding:14px 15px}
.kpi>span{display:block;font-size:10.5px;color:var(--ink3);margin-bottom:6px}
.kpi>b{display:block;font-size:24px;font-weight:650;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi>b small{font-size:11px;font-weight:500;color:var(--ink2);margin-left:3px}
.kpi>b.warn{color:#e08a2b}
.kpi>small{display:block;font-size:10px;color:#a0a5ad;margin-top:5px}
.read-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:14px}
.dial-card,.result-card,.mini-table,.chart-card{background:#fff;border:1px solid #eaedf2;border-radius:14px;overflow:hidden}
.dial-title{display:flex;justify-content:space-between;padding:12px 14px;font-size:11px;color:var(--ink2);border-bottom:1px solid #f0f2f5}
.dial-title .masked{font-size:10px}
.dial-photo{height:190px;background:linear-gradient(160deg,#c9ccd0,#9aa2aa 55%,#7d868e);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.dial-window{display:flex;align-items:center;gap:2px;background:linear-gradient(#f6f6f3,#deded8);border:5px solid #6e767d;border-radius:7px;padding:7px 9px;box-shadow:inset 0 3px 8px rgba(0,0,0,.25);position:relative;z-index:2}
.dial-window span,.dial-window em{font-style:normal;font-family:"SF Mono",ui-monospace,Menlo,Consolas,monospace;font-size:21px;font-weight:700;color:#1b1b1b;background:#f8f8f5;width:22px;height:29px;display:flex;align-items:center;justify-content:center;border-radius:2px;box-shadow:inset 0 -3px 5px rgba(0,0,0,.12)}
.dial-window em{color:#c4341f;background:#fdf6f2}
.dial-window .m3{font-size:9px;width:auto;background:none;box-shadow:none;color:#444;margin-left:3px}
.dial-window.sm span,.dial-window.sm em{font-size:16px;width:17px;height:23px}
.roi{position:absolute;width:64%;height:54px;border:1.5px dashed rgba(0,225,190,.95);border-radius:3px;z-index:3;box-shadow:0 0 0 2000px rgba(10,20,30,.18)}
.roi i{position:absolute;width:9px;height:9px;border:2px solid #00e1be;background:rgba(0,225,190,.15)}
.roi i:nth-child(1){left:-5px;top:-5px;border-right:0;border-bottom:0}
.roi i:nth-child(2){right:-5px;top:-5px;border-left:0;border-bottom:0}
.roi i:nth-child(3){left:-5px;bottom:-5px;border-right:0;border-top:0}
.roi i:nth-child(4){right:-5px;bottom:-5px;border-left:0;border-top:0}
.roi .scan{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#00e1be,transparent);box-shadow:0 0 10px #00e1be;animation:scan 2.4s linear infinite}
@keyframes scan{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}
.roi-label{position:absolute;top:8px;left:14px;z-index:4;font-size:9px;color:#00e1be;background:rgba(0,0,0,.4);padding:3px 7px;border-radius:4px}
.dial-foot{display:flex;justify-content:space-between;padding:11px 14px;font-size:10.5px;color:var(--ink3)}
.dial-foot b{color:var(--ink2);font-weight:500}
.read-side{display:flex;flex-direction:column;gap:14px}
.result-card{padding:18px 18px 16px}
.rc-label{font-size:10.5px;color:var(--blue);font-weight:600;letter-spacing:.06em}
.rc-value{display:flex;align-items:baseline;gap:8px;margin:6px 0 14px}
.rc-value strong{font-size:37px;font-weight:650;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.rc-value span{font-size:12px;color:var(--ink3)}
.rc-conf{display:flex;align-items:center;gap:9px;font-size:10.5px;color:var(--ink3);margin-bottom:14px}
.rc-conf .bar{flex:1;height:5px;border-radius:5px;background:#eef1f4;overflow:hidden}
.rc-conf .bar i{display:block;height:100%;background:linear-gradient(90deg,#0071e3,#0aa2c0);border-radius:5px}
.rc-conf b{font-size:11px;color:#0a9b63}
.rc-tags{display:flex;flex-wrap:wrap;gap:6px}
.rc-tags span{font-size:10px;color:#0a9b63;background:#eaf8f1;padding:4px 9px;border-radius:100px}
.mini-table{font-size:10.5px;flex:1}
.mt-head,.mt-row{display:grid;grid-template-columns:1.6fr .8fr .6fr;gap:6px;padding:9px 14px;align-items:center}
.mt-head{background:#fafbfd;color:var(--ink3);border-bottom:1px solid #f0f2f5}
.mt-row{border-bottom:1px solid #f4f6f8;color:var(--ink2)}
.mt-row:last-child{border:0}
.mt-row b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.mt-row em{font-style:normal;font-size:10px;text-align:right}
.mt-row em.ok{color:#0a9b63}.mt-row em.alert{color:#e08a2b}
.chart-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-bottom:14px}
.chart-card{padding:16px 18px}
.cc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.cc-head b{font-size:12.5px;font-weight:620}
.cc-head span{font-size:10.5px;color:var(--ink3)}
.bars{height:186px;display:flex;align-items:flex-end;gap:10px;padding-top:10px;border-bottom:1px solid #edf0f3;position:relative}
.bars::before,.bars::after{content:"";position:absolute;left:0;right:0;height:1px;background:#f2f4f7}
.bars::before{top:33%}.bars::after{top:66%}
.bar-col{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;z-index:2}
.bar-col i{display:block;width:70%;max-width:38px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#69b6f5,#0071e3);height:var(--h);animation:barGrow .9s cubic-bezier(.2,.8,.25,1) both}
.bar-col.hi i{background:linear-gradient(180deg,#45d6cf,#0aa2c0)}
.panel.active .bar-col i{animation:barGrow .9s cubic-bezier(.2,.8,.25,1) both}
@keyframes barGrow{from{height:0}to{height:var(--h)}}
.bar-col span{font-size:9.5px;color:var(--ink3);margin-top:7px;position:absolute;bottom:-20px}
.bar-col em{position:absolute;bottom:calc(var(--h) + 6px);font-style:normal;font-size:9px;color:var(--ink2);opacity:0;transition:opacity .3s}
.bar-col:hover em{opacity:1}
.bars{margin-bottom:26px}
.donut-wrap{display:flex;align-items:center;gap:16px;height:186px;justify-content:center}
.donut{width:130px;height:130px;border-radius:50%;background:conic-gradient(#0071e3 0 38%,#0aa2c0 38% 65%,#7ed3c1 65% 86%,#e4e9ef 86% 100%);position:relative;flex:none}
.donut::after{content:"";position:absolute;inset:31px;background:#fff;border-radius:50%}
.legend{font-size:10.5px;color:var(--ink2)}
.legend li{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.legend i{width:8px;height:8px;border-radius:3px;display:block}
.legend .c1{background:#0071e3}.legend .c2{background:#0aa2c0}.legend .c3{background:#7ed3c1}.legend .c4{background:#e4e9ef}
.legend b{margin-left:auto;color:var(--ink);font-weight:600}
.chart-line svg{width:100%;height:100px;display:block}
.line-svg{width:100%;height:130px;display:block;overflow:visible}
.line-svg.small{height:150px}
.line-path{fill:none;stroke:#0071e3;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:1400}
.panel.active .line-path{animation:draw 1.8s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.line-path.alt{stroke:#0aa2c0}
.line-path.thin{stroke:#c9d4de;stroke-width:2;stroke-dasharray:6 6;stroke-dashoffset:0}
.panel.active .line-path.thin{animation:none}
.grid-line{fill:none;stroke:#eef1f5;stroke-width:1}
.line-fill{opacity:0}
.panel.active .line-fill{animation:fadeIn 1.2s .5s forwards}
@keyframes fadeIn{to{opacity:1}}
.line-axis{display:flex;justify-content:space-between;font-size:9.5px;color:var(--ink3);margin-top:4px}
.chart-legend{display:flex;gap:16px;font-size:10px;color:var(--ink3);margin-top:10px}
.chart-legend i{display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:5px}
.chart-legend .l1{background:#0aa2c0}.chart-legend .l2{background:#c9d4de}
.leak-layout{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:14px}
.gauge{position:relative;width:200px;margin:0 auto}
.gauge svg{width:100%;display:block}
.g-track{fill:none;stroke:#edf1f5;stroke-width:15;stroke-linecap:round}
.g-value{fill:none;stroke:url(#lg);stroke:#0aa2c0;stroke-width:15;stroke-linecap:round;stroke-dasharray:78 100}
.panel.active .g-value{animation:gauge 1.5s ease both}
@keyframes gauge{from{stroke-dasharray:0 100}to{stroke-dasharray:78 100}}
.gauge-num{position:absolute;left:0;right:0;bottom:6px;text-align:center}
.gauge-num strong{font-size:34px;font-weight:650;letter-spacing:-.03em}
.gauge-num span{font-size:13px;color:var(--ink3)}
.gauge-note{text-align:center;font-size:10.5px;color:var(--ink3);margin-top:6px}
.zone-list{background:#fff;border:1px solid #eaedf2;border-radius:14px;padding:6px 14px;display:flex;flex-direction:column}
.zone{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #f2f4f7}
.zone b{font-size:12px;font-weight:600;display:block}
.zone small{font-size:9.5px;color:var(--ink3)}
.zp{font-size:13px;font-weight:650}
.zp.ok{color:#0a9b63}.zp.alert{color:#e08a2b}
.zone-note{font-size:10px;color:#e08a2b;margin:auto 0 8px;line-height:1.5}
.demo-note{text-align:center;font-size:11.5px;color:var(--ink3);margin-top:20px}

/* ---------- mini program ---------- */
.mp-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.mp-copy h2{font-size:clamp(38px,4.6vw,58px);line-height:1.15;letter-spacing:-.04em;font-weight:650;margin-bottom:20px}
.mp-copy .lead{font-size:16px;color:var(--ink2);line-height:1.85;margin-bottom:36px}
.mp-steps{display:flex;flex-direction:column;gap:8px;max-width:430px}
.ms{display:flex;align-items:center;gap:16px;text-align:left;padding:14px 18px;border-radius:14px;border:1px solid var(--line);background:#fff;transition:all .25s}
.ms b{font-size:12px;color:var(--ink3);font-weight:700}
.ms span{font-size:15px;font-weight:600;min-width:96px}
.ms small{font-size:11.5px;color:var(--ink3);margin-left:auto}
.ms:hover{border-color:#b9d9f5}
.ms.active{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 10px 26px rgba(0,113,227,.22)}
.ms.active b,.ms.active small{color:rgba(255,255,255,.8)}
.mp-hint{font-size:12px;color:var(--ink3);margin-top:18px}
.cursor-blink{animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.mp-stage{position:relative;display:flex;justify-content:center;padding:20px 0 40px;background:radial-gradient(circle at 50% 55%,#eaf5ff 0%,rgba(255,255,255,0) 68%)}
.phone{width:310px;height:650px;border-radius:46px;background:#101820;padding:10px;box-shadow:0 34px 70px rgba(20,40,65,.22),inset 0 0 0 2px #3a4550;position:relative;z-index:2}
.phone-notch{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:104px;height:22px;background:#101820;border-radius:0 0 14px 14px;z-index:6}
.phone-screen{width:100%;height:100%;border-radius:37px;background:#f4f6f9;overflow:hidden;position:relative}
.phone-home{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);width:100px;height:4px;border-radius:4px;background:rgba(255,255,255,.5);z-index:6}
.phone-shadow{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);width:240px;height:24px;border-radius:50%;background:rgba(20,50,80,.13);filter:blur(16px);z-index:1}
.status-bar{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:10.5px;font-weight:600;color:#0d1b26;position:relative;z-index:5}
.sb-right{font-size:9px;letter-spacing:1px}
.mp-page{position:absolute;top:30px;left:0;right:0;bottom:0;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .4s,transform .4s,visibility .4s;overflow:hidden}
.mp-page.active{opacity:1;visibility:visible;transform:none}
.mp-header{background:linear-gradient(135deg,#0f5f88,#0d7e9c);color:#fff;padding:11px 18px 16px;display:flex;justify-content:space-between;align-items:center}
.mp-header.solid{background:linear-gradient(135deg,#0e6c92,#0aa2c0)}
.mp-header small{display:block;font-size:9.5px;opacity:.8;margin-bottom:3px}
.mp-header>b{display:block;font-size:19px;font-weight:650;letter-spacing:-.02em}
.mp-avatar{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:12px}
.mp-header .back{font-size:24px;line-height:1;opacity:.8}
.mp-hero-card{margin:12px 14px;padding:15px 16px;border-radius:16px;background:linear-gradient(135deg,#0f6f9c,#12a0b6);color:#fff;box-shadow:0 10px 24px rgba(12,110,150,.2)}
.mp-hero-card.alt{background:linear-gradient(135deg,#0b7b8f,#14b39a)}
.mp-hero-card>span{font-size:10px;opacity:.85}
.mp-hero-card strong{display:block;font-size:32px;font-weight:650;line-height:1.2;letter-spacing:-.03em;margin:2px 0 8px}
.mp-hero-card strong small{font-size:12px;opacity:.85;font-weight:500}
.mh-bars{display:flex;align-items:flex-end;gap:6px;height:34px}
.mh-bars i{flex:1;background:rgba(255,255,255,.55);border-radius:3px 3px 0 0;height:var(--w)}
.mh-bars i:nth-child(7){background:#fff}
.mh-foot{display:flex;justify-content:space-between;font-size:9.5px;opacity:.85;margin-top:9px}
.mp-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 14px 12px}
.mp-quick>div{background:#fff;border-radius:12px;padding:11px 4px;text-align:center;font-size:10px;color:#4a5560;box-shadow:0 2px 8px rgba(20,40,60,.04)}
.mp-quick i{display:block;font-style:normal;font-size:16px;margin-bottom:4px;color:#0e88ae}
.mp-quick .q2{color:#0071e3}.mp-quick .q3{color:#0aa2c0}.mp-quick .q4{color:#e0952f}.mp-quick .q5{color:#7a6be0}.mp-quick .q6{color:#0a9b63}
.mp-block{background:#fff;border-radius:12px;margin:0 14px 10px;padding:11px 12px;box-shadow:0 2px 8px rgba(20,40,60,.04)}
.mb-head{display:flex;justify-content:space-between;font-size:11px;font-weight:650;margin-bottom:8px}
.mb-head span{font-size:9.5px;color:#a3aab2;font-weight:400}
.mb-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid #f2f4f7}
.mb-row .dot-r,.mb-row .dot-y{width:6px;height:6px;border-radius:50%;background:#e8695b;flex:none}
.mb-row .dot-y{background:#e5a838}
.mb-row div{flex:1;min-width:0}
.mb-row b{display:block;font-size:10px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mb-row small{font-size:9px;color:#a3aab2}
.mb-row em{font-style:normal;font-size:9px;color:#e0952f;background:#fff5e8;padding:2px 6px;border-radius:100px}
.mp-rank{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:9.5px;color:#8a939c}
.mp-rank>span{width:14px;height:14px;border-radius:4px;background:#eef4fa;color:#0e88ae;text-align:center;line-height:14px;font-weight:700}
.rk-bar{height:6px;border-radius:6px;background:linear-gradient(90deg,#0071e3,#7ed3c1);width:var(--w)}
.mp-rank small{margin-left:auto;color:#8a939c}
.mp-tabbar{position:absolute;bottom:0;left:0;right:0;height:52px;background:#fff;border-top:1px solid #eef0f3;display:flex;align-items:center;justify-content:space-around;font-size:17px;color:#a5acb4}
.mp-tabbar span{display:flex;flex-direction:column;align-items:center;gap:1px}
.mp-tabbar small{font-size:8.5px}
.mp-tabbar .on{color:#0e88ae}
.mp-stepper{display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 0 6px;font-size:10px;color:#a3aab2}
.mp-stepper i{width:18px;height:1px;background:#d7dde3}
.mp-stepper .done{color:#0a9b63}.mp-stepper .now{color:#0e88ae;font-weight:650}
.mp-photo{height:128px;margin:0 14px;border-radius:12px;background:linear-gradient(150deg,#b7bec5,#8f989f 60%,#767f87);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.roi.sm{width:72%;height:42px}
.mp-photo-tag{position:absolute;bottom:10px;left:10px;font-size:9px;color:#9ff5e2;background:rgba(0,0,0,.42);padding:4px 8px;border-radius:5px;z-index:4}
.mp-read-result{margin:8px 14px;padding:9px 14px;border-radius:12px;background:#fff;text-align:center}
.mp-read-result>span{font-size:10px;color:#8a939c}
.mp-read-result strong{display:block;font-size:28px;font-weight:650;letter-spacing:-.03em;margin:2px 0 10px}
.mp-read-result strong small{font-size:11px;color:#8a939c;font-weight:500}
.mrr-meta{display:flex;justify-content:space-around;font-size:9.5px;color:#8a939c;border-top:1px solid #f2f4f7;padding-top:9px}
.mrr-meta b{color:#0e88ae;font-weight:600}
.mp-info-list{margin:0 14px;background:#fff;border-radius:12px;padding:3px 12px}
.mp-info-list>div{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #f3f5f8;font-size:10px}
.mp-info-list>div:last-child{border:0}
.mp-info-list span{color:#9aa2aa}
.mp-info-list b{font-weight:550;color:#3b4650}
.mp-info-list b.ok{color:#0a9b63}
.mp-primary{display:block;width:calc(100% - 28px);margin:6px 14px;height:34px;border-radius:9px;background:linear-gradient(135deg,#0e88ae,#0aa2c0);color:#fff;font-size:12px;font-weight:600}
.mp-seg{display:flex;margin:0 14px 10px;background:#e9edf2;border-radius:8px;padding:3px;font-size:10px}
.mp-seg b{flex:1;text-align:center;padding:6px 0;border-radius:6px;color:#8a939c;font-weight:500}
.mp-seg b.on{background:#fff;color:#0e88ae;box-shadow:0 1px 4px rgba(0,0,0,.07)}
.mp-chart{margin:0 14px 10px;background:#fff;border-radius:12px;padding:12px}
.mp-chart svg{width:100%;height:92px;display:block}
.mp-chart .line-path{stroke-dasharray:600;stroke-dashoffset:600}
.mp-page.active .mp-chart .line-path{animation:draw 1.4s ease forwards}
.mp-zones{margin:0 14px;background:#fff;border-radius:12px;padding:4px 12px}
.mp-zone{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #f3f5f8;font-size:11px}
.mp-zone:last-child{border:0}
.mp-zone b{font-weight:600;display:block;font-size:10.5px}
.mp-zone small{font-size:9px;color:#9aa2aa}
.mp-zone>span{font-weight:650;color:#0a9b63;font-size:12px}
.mp-zone.alert>span{color:#e08a2b}
.mp-zone.alert small{color:#e08a2b}

/* ---------- company ---------- */
.company-split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.cs-media{position:relative;border-radius:26px;overflow:hidden;height:400px;background:var(--soft)}
.cs-media img{width:100%;height:100%;object-fit:cover}
.cs-badge{position:absolute;left:22px;bottom:22px;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-radius:14px;padding:12px 18px;box-shadow:var(--shadow)}
.cs-badge b{display:block;font-size:24px;font-weight:650;letter-spacing:-.02em}
.cs-badge span{font-size:11px;color:var(--ink3)}
.cs-copy>p{font-size:15px;color:var(--ink2);line-height:1.9;margin-bottom:16px}
.cs-copy strong{color:var(--ink);font-weight:620}
.cs-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.cs-stats b{display:block;font-size:28px;font-weight:650;letter-spacing:-.03em;color:var(--blue)}
.cs-stats span{font-size:11.5px;color:var(--ink3)}
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:80px 0 96px;position:relative}
.timeline::before{content:"";position:absolute;top:9px;left:6%;right:6%;height:1px;background:linear-gradient(90deg,#cfe4f6,#8fd3d0)}
.tl{text-align:center;padding:0 10px;position:relative}
.tl::before{content:"";width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid var(--blue);margin:4px auto 20px;display:block;position:relative;z-index:2}
.tl b{display:block;font-size:19px;font-weight:650;letter-spacing:-.02em;margin-bottom:7px}
.tl span{font-size:11.5px;color:var(--ink3);line-height:1.6}
.qual-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:26px}
.qual-head h3{font-size:30px;letter-spacing:-.03em;font-weight:650}
.qual-head>p{font-size:13px;color:var(--ink3);max-width:360px;text-align:right;line-height:1.7}
.qual-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.qtab{padding:9px 18px;border-radius:100px;font-size:13px;background:#fff;border:1px solid var(--line);color:var(--ink2)}
.qtab em{font-style:normal;font-size:10px;color:var(--ink3);margin-left:5px}
.qtab.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.qtab.active em{color:rgba(255,255,255,.7)}
.qual-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.qual-grid figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;display:none;flex-direction:column;align-items:center;cursor:zoom-in;transition:transform .25s,box-shadow .25s}
.qual-grid figure.show{display:flex;animation:qIn .4s ease both}
@keyframes qIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.qual-grid figure:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.qual-grid img{width:100%;height:130px;object-fit:contain}
.qual-grid figcaption{font-size:10.5px;color:var(--ink3);text-align:center;margin-top:10px;line-height:1.4}

/* ---------- contact / footer ---------- */
.contact{background:linear-gradient(150deg,#eef7ff,#f6fffe);border-top:1px solid #e3f0fb}
.contact-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center}
.contact h2{font-size:clamp(36px,4.6vw,58px);line-height:1.14;letter-spacing:-.045em;font-weight:650;margin-bottom:20px}
.contact-inner>div>p:not(.kicker){font-size:15px;color:var(--ink2);line-height:1.85;margin-bottom:32px;max-width:520px}
.contact-info{background:rgba(255,255,255,.75);border:1px solid #fff;border-radius:24px;padding:14px 28px;box-shadow:var(--shadow)}
.contact-info>div{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}
.contact-info>div:last-child{border:0}
.contact-info span{color:var(--ink3);font-size:12px}
.contact-info b{font-weight:560;line-height:1.65}
.footer{background:#fff;border-top:1px solid var(--line);padding:40px 0}
.footer-inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.footer img{height:26px}
.footer p{font-size:12px;color:var(--ink2)}
.footer span{font-size:11px;color:var(--ink3);margin-left:auto}
.footer-legal{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);text-align:center;font-size:11.5px;color:var(--ink3)}
.footer-legal a{color:var(--ink3);text-decoration:none;transition:color .2s}
.footer-legal a:hover{color:var(--blue)}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(20,28,36,.9);backdrop-filter:blur(14px);display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:40px}
.lightbox.open{display:flex;animation:fadeIn .25s}
.lightbox img{max-width:min(760px,90vw);max-height:78vh;object-fit:contain;background:#fff;border-radius:10px}
.lightbox p{color:#fff;font-size:13px;opacity:.85}
.lb-close{position:absolute;top:24px;right:28px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:15px}
.lb-close:hover{background:rgba(255,255,255,.3)}

/* ---------- WeCom QR modal ---------- */
.qr-modal{position:fixed;inset:0;z-index:310;background:rgba(20,28,36,.58);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:24px}
.qr-modal.open{display:flex}
.qr-card{background:#fff;border-radius:26px;box-shadow:var(--shadow-lg);width:min(400px,100%);padding:34px 32px 26px;text-align:center;position:relative;animation:qIn .35s ease both}
.qr-card .kicker{margin-bottom:12px}
.qr-card h3{font-size:24px;font-weight:650;letter-spacing:-.03em;margin-bottom:8px}
.qr-desc{font-size:13px;color:var(--ink2);line-height:1.7;margin-bottom:20px}
.qr-frame{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;display:inline-block;box-shadow:0 8px 24px rgba(0,0,0,.06)}
.qr-frame img{width:210px;height:210px;object-fit:contain}
.qr-tip{font-size:12px;color:var(--ink3);margin-top:14px}
.qr-foot{font-size:12px;color:var(--ink3);margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.qr-foot a{color:var(--blue)}
.qr-close{position:absolute;top:14px;right:16px;width:30px;height:30px;border-radius:50%;background:var(--soft);color:var(--ink2);font-size:13px}
.qr-close:hover{background:#e6e6eb}
.contact-alt{font-size:12.5px;color:var(--ink3);margin-top:16px}
.contact-alt a{color:var(--blue)}

/* ---------- 48-point leak sampling note ---------- */
.leak-note{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:28px;padding:44px 46px;margin-bottom:48px;box-shadow:var(--shadow)}
.ln-copy h3{font-size:30px;line-height:1.3;letter-spacing:-.035em;font-weight:650;margin-bottom:14px}
.ln-copy>p:not(.kicker){font-size:14px;color:var(--ink2);line-height:1.85}
.ln-points{display:flex;gap:0;margin-top:26px;border-top:1px solid var(--line);padding-top:20px}
.ln-points>div{flex:1;padding-right:14px;border-right:1px solid var(--line)}
.ln-points>div+div{padding-left:18px}
.ln-points>div:last-child{border:0}
.ln-points b{display:block;font-size:28px;font-weight:650;letter-spacing:-.03em;color:var(--blue);line-height:1.1}
.ln-points span{font-size:11px;color:var(--ink3)}
.ln-visual{background:linear-gradient(150deg,#f4faff,#f7fffe);border:1px solid #e3f0fb;border-radius:20px;padding:22px}
.ln-visual-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:11px;color:var(--ink3)}
.ln-visual-head b{color:var(--blue);font-weight:600}
.ln-grid{display:grid;grid-template-columns:repeat(24,1fr);gap:4px}
.ln-grid i{display:block;height:20px;border-radius:3px;background:linear-gradient(150deg,#69b6f5,#0071e3);opacity:.5;animation:lnPulse 3.2s ease-in-out infinite;animation-delay:var(--d)}
@keyframes lnPulse{0%,100%{opacity:.48;transform:scaleY(.86)}50%{opacity:1;transform:scaleY(1)}}
.ln-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--ink3);margin-top:10px}
.ln-caption{font-size:10.5px;color:var(--ink3);text-align:center;margin-top:14px}

/* ---------- campus / production photo ---------- */
.factory-hero{margin:0 0 16px;border-radius:22px;overflow:hidden;position:relative;height:390px;background:var(--soft)}
.factory-hero img{width:100%;height:100%;object-fit:cover;object-position:center 45%}
.factory-hero figcaption{position:absolute;left:0;right:0;bottom:0;padding:48px 26px 20px;color:#fff;font-size:14px;font-weight:550;background:linear-gradient(transparent,rgba(10,25,40,.72))}
/* compact campus locator — sits next to the address at the very end of the page */
.contact-locator{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
  margin-top:62px;padding-top:46px;border-top:1px solid rgba(0,113,227,.11)}
.cl-copy h3{font-size:26px;font-weight:650;letter-spacing:-.03em;margin:6px 0 16px}
.cl-copy>p:not(.kicker){font-size:14px;color:var(--ink2);line-height:1.85}
.campus-card{margin:0;min-width:0}
.campus-single{position:relative;border-radius:16px;overflow:hidden;background:var(--soft);box-shadow:var(--shadow);line-height:0}
.campus-single>img{display:block;width:100%;height:auto}
.cm-box{position:absolute;left:65%;top:34%;width:34.7%;height:32.2%;z-index:2;pointer-events:none;
  border:1.5px solid rgba(255,255,255,.96);border-radius:8px;
  background:linear-gradient(140deg,rgba(0,113,227,.14),rgba(10,162,192,.05));
  box-shadow:0 0 0 9999px rgba(240,246,252,.20),0 8px 28px rgba(0,90,190,.22),inset 0 0 22px rgba(255,255,255,.14)}
.cm-box::before{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;border-radius:50%;
  transform:translateX(-50%);background:#fff;border:2px solid var(--blue);animation:cmPulse 2.6s ease-out infinite}
@keyframes cmPulse{0%{box-shadow:0 0 0 0 rgba(0,113,227,.45)}70%,100%{box-shadow:0 0 0 16px rgba(0,113,227,0)}}
.cm-c{position:absolute;width:14px;height:14px;border:2.5px solid var(--blue);filter:drop-shadow(0 1px 2px rgba(255,255,255,.9))}
.cm-c.cm-tl{left:1px;top:1px;border-right:0;border-bottom:0;border-radius:5px 0 0 0}
.cm-c.cm-tr{right:1px;top:1px;border-left:0;border-bottom:0;border-radius:0 5px 0 0}
.cm-c.cm-bl{left:1px;bottom:1px;border-right:0;border-top:0;border-radius:0 0 0 5px}
.cm-c.cm-br{right:1px;bottom:1px;border-left:0;border-top:0;border-radius:0 0 5px 0}
.campus-card figcaption{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:11.5px;color:var(--ink3);line-height:1.5}
.cc-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(0,113,227,.16)}

/* ---------- national standards sub-tab ---------- */
.qual-grid.hidden{display:none}
.std-panel{display:none}
.std-panel.show{display:grid;grid-template-columns:1fr 1fr;gap:18px;animation:qIn .4s ease both}
.std-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px 28px}
.std-num{display:inline-block;font-size:11px;font-weight:650;letter-spacing:.08em;color:var(--blue);background:#eaf4ff;padding:6px 12px;border-radius:100px;margin-bottom:18px}
.std-card h4{font-size:18px;line-height:1.5;font-weight:620;letter-spacing:-.02em;margin-bottom:8px}
.std-card .std-en{font-size:11.5px;color:var(--ink3);line-height:1.6;margin-bottom:16px}
.std-card p{font-size:12.5px;color:var(--ink2);line-height:1.75}
.std-note{grid-column:span 2;background:linear-gradient(110deg,#f0f8ff,#f6fffe);border:1px solid #dcecf9;border-radius:16px;padding:18px 22px;font-size:12.5px;color:var(--ink2);line-height:1.75}

/* ---------- investors ---------- */
.investor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.inv-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 24px;min-height:252px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.inv-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.inv-card.primary{background:linear-gradient(145deg,#0071e3,#0aa2c0);border-color:transparent;color:#fff}
.inv-tag{display:inline-block;align-self:flex-start;font-size:10px;font-weight:600;letter-spacing:.04em;background:rgba(255,255,255,.2);color:#fff;padding:5px 11px;border-radius:100px}
.inv-num{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--blue)}
.inv-card h3{font-size:22px;font-weight:650;letter-spacing:-.025em;margin:20px 0 10px}
.inv-card p{font-size:12.5px;color:var(--ink2);line-height:1.8}
.inv-card.primary p{color:rgba(255,255,255,.9)}
.inv-kind{margin-top:auto;padding-top:18px;font-size:11px;color:var(--ink3)}
.inv-stock{margin-top:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:rgba(255,255,255,.16);border-radius:12px;padding:10px 12px;font-size:11px}
.inv-stock b{font-size:13px;font-weight:650}
.inv-stock span{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.06em}
.inv-stock em{font-style:normal;opacity:.82;margin-left:auto;font-size:10px}
.invest-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:36px;padding:36px 40px;border-radius:24px;background:var(--soft)}
.invest-cta h3{font-size:24px;font-weight:650;letter-spacing:-.03em;margin-bottom:8px}
.invest-cta p{font-size:13px;color:var(--ink2);line-height:1.7}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.25,1),transform .8s cubic-bezier(.2,.7,.25,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .nav-links{gap:15px;font-size:12px}
  .benefit-grid{grid-template-columns:repeat(2,1fr)}
  .adv-grid{grid-template-columns:repeat(3,1fr)}
  .qual-grid{grid-template-columns:repeat(5,1fr)}
  .case-wall{grid-template-columns:repeat(4,1fr)}
  .case-wall figure:last-child{display:none}
  .browser-body{grid-template-columns:150px 1fr}
  .leak-layout{grid-template-columns:1fr 1fr}
  .zone-list{grid-column:span 2}
  .investor-grid{grid-template-columns:repeat(2,1fr)}
  .leak-note{gap:28px;padding:34px}
}
@media(max-width:900px){
  .section{padding:88px 0}
  .nav-links{display:none;position:absolute;top:66px;left:0;right:0;background:rgba(255,255,255,.97);backdrop-filter:blur(20px);flex-direction:column;align-items:stretch;gap:0;padding:12px 24px 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .nav.open .nav-links{display:flex}
  .nav-links a{padding:12px 4px;border-bottom:1px solid var(--line);font-size:14px}
  .nav-links .mobile-only{display:block;color:var(--blue)}
  .nav-actions{margin-left:auto}
  .nav-actions .nav-login{display:none}
  .nav-toggle{display:flex}
  .hero{padding:120px 0 70px;min-height:auto}
  .hero-inner{grid-template-columns:1fr;gap:10px}
  .hero-visual{height:460px}
  .hero-product{width:min(320px,78%)}
  .ring-a{width:400px;height:400px}.ring-b{width:300px;height:300px}
  .fc-reading{right:0;top:8%}.fc-edge{left:0;bottom:12%}
  .hero-metrics{margin-bottom:0}
  .pain-grid,.arch-compare,.company-split,.two-col,.mp-grid,.contact-inner,.vision-answer{grid-template-columns:1fr}
  .ladder-item,.ladder-item.reverse{grid-template-columns:1fr;gap:26px}
  .ladder-item.reverse .ladder-media{order:0}
  .ladder-media{min-height:300px}
  .product-gallery{grid-template-columns:repeat(2,1fr)}
  .pg-item.pg-wide{grid-column:span 2}
  .photo-wall{grid-template-columns:repeat(3,1fr)}
  .two-col{gap:30px;margin:70px 0 40px}
  .tc-media{height:300px}
  .mp-grid{gap:40px}
  .mp-stage{order:-1}
  .timeline{grid-template-columns:repeat(3,1fr);gap:26px 0}
  .timeline::before{display:none}
  .qual-head{flex-direction:column;align-items:flex-start}
  .qual-head>p{text-align:left}
  .qual-grid{grid-template-columns:repeat(4,1fr)}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:10px}
  .footer span{margin-left:0}
  .cd-body{flex-wrap:wrap;gap:18px;justify-content:center}
  .cd-wire{width:60px;flex:none}
  .cd-chip{width:100%;max-width:470px}
  .cd-output,.cd-input{width:44%}
  .gallery-head{flex-direction:column;align-items:flex-start;gap:10px}
  .gallery-head>p{text-align:left}
  .leak-note{grid-template-columns:1fr;padding:32px}
  .contact-locator{grid-template-columns:1fr;gap:26px;margin-top:48px;padding-top:38px}
  .std-panel{grid-template-columns:1fr}
  .std-note{grid-column:span 1}
  .factory-hero{height:280px}
  .invest-cta{flex-direction:column;align-items:flex-start;gap:20px;padding:28px}
}
@media(max-width:640px){
  .wrap,.nav-inner,.hero-inner{width:calc(100% - 32px)}
  .nav-inner{gap:10px}
  .brand img{height:28px}
  .brand-text b{font-size:12px}
  .brand-text small{font-size:9px}
  .nav-cta{padding:7px 12px;font-size:11.5px}
  .section{padding:72px 0}
  .hero h1{font-size:46px}
  .hero-sub{font-size:16px}
  .hero-metrics{gap:0;max-width:none}
  .hero-metrics>div{border-right:1px solid var(--line);padding:0 8px}
  .hero-metrics>div:last-child{border:0}
  .hero-metrics>div+div{padding-left:10px}
  .hero-metrics b{font-size:19px}
  .hero-metrics span{font-size:10px}
  .hero-visual{height:320px}
  .ring-a{width:320px;height:320px}.ring-b{width:240px;height:240px}
  .float-card{transform:scale(.72)}
  .hero-product{width:min(270px,72%)}
  .fc-reading{right:-12px;top:4%}.fc-edge{left:-12px;bottom:8%}
  .sec-head h2{font-size:36px}
  .sec-head .lead{font-size:16px}
  .vision-answer{padding:34px 24px;gap:26px}
  .va-flow{gap:5px}
  .flow-step{min-width:66px;padding:12px 7px}
  .flow-line{display:none}
  .cmp{padding:26px 20px}
  .cd-head,.cd-body,.cd-caption{padding-left:20px;padding-right:20px}
  .cd-output,.cd-input{width:100%}
  .cd-wire{width:100%;height:2px;transform:rotate(90deg);margin:14px 0}
  .benefit-grid,.adv-grid,.chart-layout,.read-layout,.leak-layout{grid-template-columns:1fr}
  .kpi-row{grid-template-columns:repeat(2,1fr)}
  .zone-list{grid-column:span 1}
  .leak-layout{gap:12px}
  .product-gallery,.photo-wall,.case-wall{grid-template-columns:repeat(2,1fr)}
  .case-wall figure:last-child{display:block}
  .photo-wall{grid-auto-rows:150px}
  .ph-tall{grid-row:span 2}
  .case-wall figure{height:160px}
  .browser-body{grid-template-columns:1fr}
  .side{display:none}
  .panel{padding:16px}
  .demo-tabs{flex-wrap:wrap}
  .dtab{padding:9px 15px;font-size:12px}
  .mp-steps{max-width:none}
  .ms small{display:none}
  .timeline{grid-template-columns:repeat(2,1fr)}
  .qual-grid{grid-template-columns:repeat(2,1fr)}
  .contact-info{padding:10px 18px}
  .desktop-only{display:none}
  .investor-grid{grid-template-columns:1fr}
  .leak-note{padding:24px 20px}
  .ln-grid{gap:2px}
  .ln-grid i{height:14px}
  .contact-locator{margin-top:38px;padding-top:30px;gap:20px}
  .cl-copy h3{font-size:22px}
  .cl-copy>p:not(.kicker){font-size:13px}
  .campus-single{border-radius:12px}
  .cm-box{border-width:1px;border-radius:6px}
  .cm-box::before{width:6px;height:6px;top:-3px;border-width:1.5px}
  .cm-c{width:10px;height:10px;border-width:2px}
  .campus-card figcaption{font-size:10.5px;margin-top:10px}
  .footer-legal{margin-top:18px;padding-top:14px}
  .factory-hero{height:220px}
  .qr-card{padding:28px 20px 22px}
  .qr-frame img{width:180px;height:180px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}
