/* 道天地科技官网原型 — 纯静态, 无框架, 系统字体 (国内访问不依赖外部字体 CDN) */
:root{
  --ink:#1f1f1f; --ink-2:#3d4a5f; --ink-3:#54657e;
  /* 品牌色取自 Logo 渐变: 蓝 #1C65FF → 青 #15ACE3 → 薄荷 #0EF4C6 */
  --brand:#1c65ff; --brand-2:#3f80ff; --brand-deep:#1450d6; --cyan:#15ace3; --mint:#0ef4c6; --mint-ink:#0a9f86;
  --bg:#f5f8ff; --bg-2:#eef3ff; --card:rgba(255,255,255,.72); --line:rgba(47,107,255,.14);
  --navy:#071434; --navy-2:#0d2156;
  --radius:20px; --shadow:0 20px 60px -24px rgba(24,64,200,.28), 0 2px 8px rgba(24,64,200,.06);
  --wrap:1200px;
  --font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --text:#212121; --primary:#1c65ff; --brand-strong:#1450d6;
  --surface:#fff; --surface-2:#f2f6fc; --chip:rgba(255,255,255,.7);
  --hd-bg:rgba(255,255,255,.86); --hd-bg-2:rgba(255,255,255,.96); --sec-alt:#eaf2fd; --btn-bg:#1c65ff;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--brand);color:#fff;padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}

/* ---------- header (对齐参考站: 66px 高, 16px 常规字重菜单, 悬停品牌色 + 2px 底线) ---------- */
.hd{position:sticky;top:0;z-index:50;background:var(--hd-bg);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);box-shadow:0 1px 4px rgba(0,0,0,.05);transition:background .3s}
.hd.scrolled{background:var(--hd-bg-2)}
.hd .wrap{display:flex;align-items:center;height:66px;gap:24px}
.logo{display:flex;align-items:center;gap:10px;font-weight:600;white-space:nowrap;margin-right:auto}
.logo svg{width:34px;height:34px}
.logo .brand-mark{width:44px;height:auto;display:block}
.logo small{display:block;font-size:10px;font-weight:400;letter-spacing:.12em;color:var(--ink-3);line-height:1}
.logo b{display:block;font-size:18px;line-height:1.3;font-weight:600;letter-spacing:.04em}
.hd nav{height:100%}
.nav{display:flex;height:100%}
.nav>li{list-style:none;position:relative;height:100%}
.nav>li>a{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:0 20px;font-size:16px;font-weight:400;color:var(--text);border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
/* 隐藏的加粗占位: 悬停变 500 字重时不挤动相邻菜单 */
.nav>li>a::after{content:attr(data-t);font-weight:500;height:0;overflow:hidden;visibility:hidden}
.nav>li>a:hover,.nav>li:hover>a,.nav>li>a[aria-current=page]{color:var(--primary);font-weight:500;border-bottom-color:var(--primary)}
.mega{position:absolute;left:50%;top:100%;padding-top:0;opacity:0;visibility:hidden;transform:translate(-50%,6px);transition:.2s}
.nav>li:hover .mega,.nav>li:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega-in{width:640px;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.mega a{display:flex;gap:12px;padding:10px 12px;border-radius:6px;transition:background .2s}
.mega a:hover{background:var(--surface-2)}
.mega a:hover b{color:var(--primary)}
.mega .ic{flex:none;width:36px;height:36px}
.mega b{font-size:15px;font-weight:500;display:block;color:var(--text)}
.mega span{font-size:12px;color:#54657e;display:block;line-height:1.5}
.mega a.base{grid-column:1/-1;background:var(--surface-2)}
.hd-act{display:flex;align-items:center;gap:20px}
.hd-act .btn{height:36px;padding:0 18px;font-size:14px;font-weight:500;border-radius:6px;background:var(--btn-bg);color:#fff;box-shadow:none}
.hd-act .btn:hover{filter:brightness(1.1);transform:none;box-shadow:none}
.lang{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text);transition:color .2s}
.lang svg{width:16px;height:16px}
.lang:hover{color:var(--primary)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:6px;font-size:15px;font-weight:500;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}
.btn-p{background:linear-gradient(135deg,var(--brand-2),var(--brand-deep));color:#fff;box-shadow:0 10px 24px -10px rgba(47,107,255,.7)}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 14px 30px -10px rgba(47,107,255,.8)}
.btn-g{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn-g:hover{border-color:var(--brand);color:var(--brand)}
.btn-lg{padding:14px 28px;font-size:16px}
.burger{display:none;width:40px;height:40px;border:0;background:none;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:var(--ink);margin:5px auto;border-radius:2px;transition:.3s}

/* ---------- hero ---------- */
.hero{position:relative;padding:72px 0 40px;text-align:center;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:-20% -10% auto;height:120%;z-index:-1;
  background:radial-gradient(50% 40% at 50% 18%,rgba(91,140,255,.28),transparent 70%),radial-gradient(30% 30% at 12% 40%,rgba(63,200,255,.18),transparent 70%),radial-gradient(30% 30% at 88% 40%,rgba(120,110,255,.16),transparent 70%)}
.hero .grid-bg{position:absolute;inset:0;z-index:-1;opacity:.5;background-image:linear-gradient(rgba(47,107,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(47,107,255,.06) 1px,transparent 1px);background-size:56px 56px;mask-image:radial-gradient(60% 50% at 50% 30%,#000,transparent)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--chip);border:1px solid var(--line);font-size:13px;color:var(--brand-strong);font-weight:600;letter-spacing:.04em}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px rgba(47,107,255,.18)}
.hero h1{font-size:clamp(32px,4.8vw,56px);line-height:1.25;letter-spacing:.02em;margin:22px auto 18px;font-weight:600;max-width:15em}
.grad{background:linear-gradient(100deg,#1c65ff 0%,#15ace3 58%,#0bc6a6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:clamp(16px,1.6vw,19px);color:var(--ink-2);max-width:760px;margin:0 auto}
.hero .cta{display:flex;justify-content:center;gap:14px;margin-top:32px;flex-wrap:wrap}

/* ---------- sections ---------- */
section.sec{padding:110px 0}
.sec-hd{text-align:center;max-width:780px;margin:0 auto 56px}
.kicker{font-size:13px;font-weight:700;letter-spacing:.2em;color:var(--brand);text-transform:uppercase}
.sec-hd h2{font-size:clamp(28px,3.2vw,40px);line-height:1.4;margin:10px 0 14px;font-weight:600;letter-spacing:.02em}
.sec-hd p{color:var(--ink-2);font-size:17px}

.dark{background:radial-gradient(60% 60% at 80% 0%,rgba(63,200,255,.18),transparent 60%),radial-gradient(50% 60% at 0% 100%,rgba(91,140,255,.25),transparent 60%),linear-gradient(180deg,var(--navy),var(--navy-2));color:#e8eeff;position:relative;overflow:hidden}
.dark .sec-hd p,.dark p{color:#a9b8de}
.dark .kicker{color:var(--cyan)}
.os-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.os-item{padding:26px;border-radius:var(--radius);background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);transition:border-color .3s,transform .3s}
.os-item:hover{border-color:rgba(63,200,255,.5);transform:translateY(-4px)}
.os-item svg{width:30px;height:30px;color:var(--cyan);margin-bottom:14px}
.os-item h3{font-size:18px;color:#fff;margin-bottom:6px}
.os-item h3 small{display:block;font-size:12px;font-weight:500;color:#7f93c6;letter-spacing:.06em}
.os-item p{font-size:14.5px;line-height:1.7}
.principle{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;margin-bottom:80px}
.principle h2{font-size:clamp(28px,3.2vw,40px);line-height:1.4;font-weight:600;color:#fff;margin:10px 0 18px}
.principle ul{list-style:none;display:grid;gap:14px}
.principle li{display:flex;gap:14px;padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.principle li b{color:#fff;display:block;margin-bottom:2px}
.principle li p{font-size:14.5px}
.principle li i{flex:none;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--cyan),var(--brand));display:grid;place-items:center;font-style:normal;font-weight:600;font-size:13px;color:#fff}
.infra-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:36px}
.infra-bar span{padding:8px 18px;border-radius:999px;border:1px dashed rgba(169,184,222,.4);font-size:14px;color:#c9d5f5}

.matrix{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.mcard{position:relative;display:flex;flex-direction:column;padding:26px 24px 22px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:transform .3s,box-shadow .3s,border-color .3s;overflow:hidden}
.mcard::after{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(closest-side,rgba(91,140,255,.16),transparent);transition:transform .5s}
.mcard:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(47,107,255,.35)}
.mcard:hover::after{transform:scale(1.6)}
.mcard .ic{width:44px;height:44px;margin-bottom:16px}
.mcard h3{font-size:20px;line-height:1.4;font-weight:600}
.mcard h3 small{font-size:13px;font-weight:600;color:var(--brand);margin-left:8px;letter-spacing:.02em}
.mcard p{font-size:14.5px;color:var(--ink-2);margin:8px 0 16px;flex:1}
.mcard .more{font-size:14px;font-weight:600;color:var(--brand);display:flex;align-items:center;gap:6px}
.mcard .more::after{content:"";width:7px;height:7px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);transition:transform .2s}
.mcard:hover .more::after{transform:translateX(3px) rotate(45deg)}
.mcard.wide{background:linear-gradient(150deg,var(--surface-2),var(--surface) 60%);border-color:rgba(47,107,255,.35)}

.chain{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.chain a{padding:26px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:flex-start;transition:background .25s}
.chain a:nth-child(3n){border-right:0}
.chain a:nth-last-child(-n+3){border-bottom:0}
.chain a:hover{background:var(--bg-2)}
.chain .ic{flex:none;width:40px;height:40px}
.chain b{font-size:17px}
.chain p{font-size:14px;color:var(--ink-3)}
.chain .role{font-size:22px;font-weight:600;color:var(--brand-strong);display:block;margin-top:2px}
.slogan{text-align:center;margin-top:56px}
.slogan strong{display:block;font-size:clamp(24px,3vw,36px);font-weight:600;letter-spacing:.01em}
.slogan span{color:var(--ink-2);font-size:18px;letter-spacing:.2em}

.deploy{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dcard{padding:28px 24px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}
.dcard svg{width:34px;height:34px;color:var(--brand);margin-bottom:14px}
.dcard h3{font-size:18px;margin-bottom:6px}
.dcard p{font-size:14.5px;color:var(--ink-2)}

.cta-band{margin:0 auto;padding:64px 48px;border-radius:32px;text-align:center;color:#fff;position:relative;overflow:hidden;background:radial-gradient(60% 120% at 100% 0%,rgba(63,200,255,.55),transparent 60%),linear-gradient(120deg,var(--brand-deep),var(--brand-2))}
.cta-band h2{font-size:clamp(26px,3.2vw,38px);line-height:1.4;font-weight:600}
.cta-band p{color:#dfe8ff;margin:10px 0 28px;font-size:17px}
.cta-band .btn-g{border:0;background:var(--surface);color:#0a1b3f}
.cta-band .btn-o{border:1px solid rgba(255,255,255,.6);color:#fff}
.cta-band .btn-o:hover{background:rgba(255,255,255,.12)}

/* ---------- product page ---------- */
.crumb{font-size:13px;color:var(--ink-3);padding-top:28px}
.crumb ol{list-style:none;display:flex;gap:8px;flex-wrap:wrap}
.crumb li+li::before{content:"/";margin-right:8px;opacity:.5}
.crumb a:hover{color:var(--brand)}
.phero{position:relative;padding:40px 0 90px;overflow:hidden;isolation:isolate}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(45% 60% at 85% 30%,rgba(91,140,255,.3),transparent 70%),radial-gradient(30% 40% at 5% 80%,rgba(63,200,255,.18),transparent 70%)}
.phero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.phero h1{font-size:clamp(34px,4.4vw,52px);line-height:1.2;font-weight:600;letter-spacing:.02em;margin:18px 0 8px}
.phero h1 small{display:block;font-size:.42em;color:var(--brand-strong);letter-spacing:.06em;font-weight:700;margin-top:6px}
.phero .tag{font-size:clamp(18px,2vw,24px);font-weight:600;color:var(--ink-2);margin-bottom:16px}
.phero .lead{color:var(--ink-2);font-size:17px;max-width:640px}
.phero .cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.emblem{position:relative;aspect-ratio:1;max-width:380px;justify-self:center;width:100%;display:grid;place-items:center}
.emblem::before,.emblem::after{content:"";position:absolute;inset:6%;border-radius:50%;border:1px solid rgba(47,107,255,.2)}
.emblem::after{inset:20%;border-style:dashed;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.emblem .orb{width:58%;aspect-ratio:1;border-radius:36%;background:linear-gradient(150deg,var(--surface),var(--surface-2));box-shadow:var(--shadow),inset 0 -12px 30px rgba(47,107,255,.15);display:grid;place-items:center;animation:float 6s ease-in-out infinite}
.emblem .orb .ic{width:46%;height:46%}
.emblem .sat{position:absolute;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:12.5px;color:var(--ink-2);box-shadow:0 8px 20px -12px rgba(24,64,200,.5);white-space:nowrap}
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.cap{padding:28px 26px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);transition:transform .3s,box-shadow .3s}
.cap:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.cap .n{font-size:13px;font-weight:600;color:var(--brand);letter-spacing:.1em}
.cap h3{font-size:19px;margin:8px 0 8px}
.cap p{font-size:14.5px;color:var(--ink-2)}
.scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.scene{padding:30px 28px;border-radius:var(--radius);background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1)}
.scene h3{color:#fff;font-size:19px;margin-bottom:8px}
.scene p{font-size:14.5px}
.pos{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.pos h2{font-size:clamp(26px,3vw,36px);line-height:1.4;font-weight:600;margin:10px 0 14px}
.pos p{color:var(--ink-2)}
.stack{display:grid;gap:10px}
.stack .row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.stack .row a,.stack .row span{padding:6px 12px;border-radius:10px;font-size:13.5px;background:var(--bg-2);color:var(--ink-2)}
.stack .row a:hover{color:var(--brand)}
.stack .row .on{background:linear-gradient(135deg,var(--brand-2),var(--brand-deep));color:#fff;font-weight:600}
.stack .row.os{background:var(--surface-2);font-weight:700;color:var(--brand-strong);font-size:15px}
.stack .lbl{font-size:12px;color:var(--ink-3);text-align:center;letter-spacing:.1em}
.faq{max-width:860px;margin:0 auto;display:grid;gap:12px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px 24px;transition:box-shadow .3s}
.faq details[open]{box-shadow:var(--shadow)}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:600;font-size:16.5px;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;line-height:1;color:var(--brand);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 20px;color:var(--ink-2);font-size:15px}
.related{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.contact{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dcard-wx img{display:block;width:156px;height:156px;margin-top:14px;border-radius:12px;background:#fff;padding:6px;border:1px solid var(--line)}
@media (max-width:1180px){.contact{grid-template-columns:repeat(2,1fr)}}

/* ---------- footer ---------- */
.ft{background:var(--navy);color:#9fb0d8;padding:72px 0 28px;font-size:14px}
.ft .cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}
.ft h3{color:#fff;font-size:15px;margin-bottom:16px}
.ft ul{list-style:none;display:grid;gap:10px}
.ft a:hover{color:#fff}
.ft .logo b{color:#fff}
.ft .logo small{color:#7f93c6}
.ft .brand p{margin-top:16px;max-width:320px;line-height:1.8}
.ft .bottom{margin-top:56px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#6f82b3}

/* ---------- reveal (仅在 JS 可用时生效, 无 JS / 爬虫均可见全部内容) ---------- */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}}


/* ---------- 暗黑模式: 跟随系统, 或由 data-theme 强制 ---------- */
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --ink:#e8eefc; --ink-2:#b3c0dd; --ink-3:#8696ba; --text:#e8eefc; --primary:#5b8eff; --brand-strong:#8fb4ff;
  --bg:#060c1d; --bg-2:#0b1530; --surface:#0d1833; --surface-2:#13214a; --chip:rgba(19,33,74,.7); --card:rgba(13,24,51,.72);
  --line:rgba(120,160,255,.16); --hd-bg:rgba(6,12,29,.82); --hd-bg-2:rgba(6,12,29,.94); --sec-alt:#0a1430; --btn-bg:#1c65ff;
  --shadow:0 20px 60px -24px rgba(0,0,0,.7),0 2px 8px rgba(0,0,0,.3); color-scheme:dark}}
:root[data-theme=dark]{
  --ink:#e8eefc; --ink-2:#b3c0dd; --ink-3:#8696ba; --text:#e8eefc; --primary:#5b8eff; --brand-strong:#8fb4ff;
  --bg:#060c1d; --bg-2:#0b1530; --surface:#0d1833; --surface-2:#13214a; --chip:rgba(19,33,74,.7); --card:rgba(13,24,51,.72);
  --line:rgba(120,160,255,.16); --hd-bg:rgba(6,12,29,.82); --hd-bg-2:rgba(6,12,29,.94); --sec-alt:#0a1430; --btn-bg:#1c65ff;
  --shadow:0 20px 60px -24px rgba(0,0,0,.7),0 2px 8px rgba(0,0,0,.3); color-scheme:dark}
:root[data-theme=light]{color-scheme:light}
body{transition:background-color .3s,color .3s}
.theme{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);display:grid;place-items:center;cursor:pointer;transition:color .2s,border-color .2s}
.theme:hover{color:var(--primary);border-color:var(--primary)}
.theme svg{width:18px;height:18px;grid-area:1/1}
.theme svg{display:none}
:root[data-theme-mode=dark] .theme .i-moon,:root:not([data-theme-mode]) .theme .i-moon{display:block}
:root[data-theme-mode=light] .theme .i-sun{display:block}
:root[data-theme-mode=auto] .theme .i-auto{display:block}

/* ---------- 2D 分层产品体系图 ---------- */
.layers{display:grid;gap:14px;margin-top:40px;text-align:left}
.ly{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:stretch}
.ly-lbl{display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--surface-2);color:var(--ink-3);font-size:13px;font-weight:500;letter-spacing:.1em;text-align:center;padding:8px}
.ly-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:12px}
.ly-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 8px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-align:center;transition:transform .25s,box-shadow .25s,border-color .25s}
.ly-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--primary)}
.ly-card .ic{width:40px;height:40px;margin-bottom:6px}
.ly-card b{font-size:17px;font-weight:600}
.ly-card em{font-style:normal;font-size:12px;color:var(--ink-3)}
.ly-bar{display:grid;grid-template-columns:auto 220px 1fr;align-items:center;gap:20px;padding:20px 24px;border-radius:16px;border:1px solid var(--line);transition:box-shadow .25s,border-color .25s}
.ly-bar:hover{box-shadow:var(--shadow);border-color:var(--primary)}
.ly-bar .ly-ic{width:52px;height:52px}
.ly-name h3{font-size:22px;font-weight:600;line-height:1.3}
.ly-name em{font-style:normal;font-size:13px;color:var(--ink-3)}
.ly-bar ul{list-style:none;display:grid;gap:8px}
.ly-bar.core{background:linear-gradient(120deg,var(--surface),var(--surface-2))}
.ly-bar.core ul{grid-template-columns:repeat(6,1fr)}
.ly-bar.core li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13.5px;color:var(--ink-2)}
.ly-bar.core li svg{width:24px;height:24px;color:var(--primary)}
.ly-bar.base{background:linear-gradient(120deg,#0b1f5c,#1840c8);color:#fff;border-color:transparent}
.ly-bar.base .ly-name em{color:#b9caf5}
.ly-bar.base ul{grid-template-columns:repeat(4,1fr)}
.ly-bar.base li{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:13.5px;color:#dce6ff}
.ly-bar.base li svg{width:18px;height:18px;color:#7fd8ff;flex:none}
.ly-infra{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;border-radius:16px;border:1px dashed var(--line)}
.ly-ig{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;padding:14px 16px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.ly-ig>svg{width:30px;height:30px;padding:6px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#1c65ff,#15ace3)}
.ly-ig b{font-size:14.5px;font-weight:600}
.ly-ig ul{grid-column:1/-1;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.ly-ig li{font-size:12.5px;color:var(--ink-2);padding:4px 10px;border-radius:999px;background:var(--surface-2)}

/* ---------- 3D 数字孪生沙盘: 颜色全部走 --s-* 变量, 跟随深 / 浅主题 ---------- */
:root{
  --s-bg:#f3f7fc; --s-bg2:#ffffff; --s-fade:243,247,252;
  --s-text:#0a1b3f; --s-text2:#3d4f78; --s-text3:#6b7ca3; --s-accent:#1c65ff; --s-accent2:#15ace3;
  --s-glass:rgba(255,255,255,.7); --s-glass2:rgba(255,255,255,.86); --s-border:rgba(47,107,255,.16); --s-border2:rgba(47,107,255,.32);
  --s-hover:rgba(47,107,255,.06); --s-sel:linear-gradient(135deg,#1c65ff,#15ace3); --s-sel-text:#fff;
  --s-run:rgba(14,244,198,.1); --s-ok:#0bb894; --s-shadow:0 24px 50px -28px rgba(24,64,200,.35);
  --s-grad:linear-gradient(100deg,#1c65ff 0%,#15ace3 58%,#0bc6a6 100%);
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --s-bg:#040a1c; --s-bg2:#0c1d4d; --s-fade:4,10,28;
  --s-text:#ffffff; --s-text2:#a9b8de; --s-text3:#7186b5; --s-accent:#4fb8ff; --s-accent2:#2ff5d0;
  --s-glass:rgba(6,14,38,.6); --s-glass2:rgba(7,16,42,.92); --s-border:rgba(140,180,255,.16); --s-border2:rgba(120,200,255,.5);
  --s-hover:rgba(255,255,255,.05); --s-sel:linear-gradient(135deg,rgba(47,107,255,.6),rgba(63,200,255,.28)); --s-sel-text:#fff;
  --s-run:rgba(255,200,87,.09); --s-ok:#43e39b; --s-shadow:0 30px 60px -30px rgba(0,0,0,.8);
  --s-grad:linear-gradient(100deg,#7fa8ff 0%,#3fc8ef 55%,#2ff5d0 100%)}}
:root[data-theme=dark]{
  --s-bg:#040a1c; --s-bg2:#0c1d4d; --s-fade:4,10,28;
  --s-text:#ffffff; --s-text2:#a9b8de; --s-text3:#7186b5; --s-accent:#4fb8ff; --s-accent2:#2ff5d0;
  --s-glass:rgba(6,14,38,.6); --s-glass2:rgba(7,16,42,.92); --s-border:rgba(140,180,255,.16); --s-border2:rgba(120,200,255,.5);
  --s-hover:rgba(255,255,255,.05); --s-sel:linear-gradient(135deg,rgba(47,107,255,.6),rgba(63,200,255,.28)); --s-sel-text:#fff;
  --s-run:rgba(255,200,87,.09); --s-ok:#43e39b; --s-shadow:0 30px 60px -30px rgba(0,0,0,.8);
  --s-grad:linear-gradient(100deg,#7fa8ff 0%,#3fc8ef 55%,#2ff5d0 100%)}

.s3d{position:relative;color:var(--s-text);overflow:hidden;background:var(--s-bg);transition:background-color .4s}
.s3d-view{position:relative;overflow:hidden;background:radial-gradient(60% 70% at 58% 55%,var(--s-bg2),var(--s-bg) 72%)}
.s3d-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;display:block}
.s3d-tags{position:absolute;inset:0;z-index:4;pointer-events:none}
.s3d-tag{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;border-radius:999px;background:var(--s-glass);border:1px solid var(--s-border);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--s-text);white-space:nowrap;pointer-events:auto;box-shadow:0 6px 18px -10px rgba(0,0,0,.35);
  transition:border-color .2s,background .2s,box-shadow .2s,opacity .25s;will-change:transform}
.s3d-tag .ic{width:24px;height:24px}
.s3d-tag b{font-size:13.5px;font-weight:600}
.s3d-tag em{font-style:normal;font-size:11.5px;color:var(--s-text3);margin-left:0;max-width:0;overflow:hidden;display:inline-block;vertical-align:bottom;transition:max-width .25s,margin .25s}
.s3d-tag.major em,.s3d-tag.hot em,.s3d-tag:hover em{max-width:140px;margin-left:6px}
.s3d-tag.major{padding:6px 14px 6px 6px;border-color:var(--s-border2)}
.s3d-tag.major b{font-size:15px}
.s3d-tag.hot,.s3d-tag:hover{background:linear-gradient(135deg,#2f6bff,#1f55e6);border-color:transparent;color:#fff;box-shadow:0 10px 26px -8px rgba(47,107,255,.7)}
.s3d-tag.hot em,.s3d-tag:hover em{color:#d5e4ff}
.s3d-card{position:absolute;left:0;top:0;z-index:8;width:268px;padding:18px 20px 20px;border-radius:14px;background:var(--s-glass2);border:1px solid var(--s-border2);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--s-shadow);opacity:0;visibility:hidden;transform-origin:left top;transition:opacity .2s,visibility .2s}
.s3d-card.show{opacity:1;visibility:visible}
.s3d-card b{display:block;font-size:19px;color:var(--s-text);font-weight:600}
.s3d-card em{font-style:normal;font-size:11.5px;color:var(--s-accent);letter-spacing:.12em;text-transform:uppercase}
.s3d-card .t{display:block;font-size:13.5px;color:var(--s-text);margin-top:10px;font-weight:500}
.s3d-card p{font-size:13px;color:var(--s-text2);line-height:1.7;margin:6px 0 16px}
.s3d-card .btn{height:34px;padding:0 16px;font-size:13.5px;border-radius:8px}
.s3d-card .x{position:absolute;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:6px;background:none;color:var(--s-text3);font-size:20px;line-height:1;cursor:pointer}
.s3d-card .x:hover{background:var(--s-hover);color:var(--s-text)}
.s3d-tabs{display:flex;gap:2px}
.s3d-tab{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:var(--s-text2);font:inherit;font-size:14.5px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,box-shadow .25s}
.s3d-tab svg{width:18px;height:18px}
.s3d-tab .n{font-size:11px;color:var(--s-text3);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.s3d-tab:hover{color:var(--s-text);background:var(--s-hover)}
.s3d-tab[aria-selected=true]{color:var(--s-sel-text);background:var(--s-sel);box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 20px -10px rgba(47,107,255,.7)}
.s3d-tab[aria-selected=true] .n{color:rgba(255,255,255,.75)}
.s3d-ctrl{display:flex;align-items:center;gap:8px;flex:none}
.s3d-ctrl button{white-space:nowrap;flex:none}
@media (max-width:1320px){.hero3d .s3d-hud{display:none}.hero3d .story-nav{width:min(720px,54vw)}}
.s3d-ctrl button{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--s-border);background:var(--s-glass);backdrop-filter:blur(12px);color:var(--s-text2);font:inherit;font-size:12.5px;cursor:pointer;transition:.2s}
.s3d-ctrl button:hover{color:var(--s-text);border-color:var(--s-border2)}
.s3d-ctrl button[aria-pressed=true]{color:var(--s-accent);border-color:var(--s-border2)}
.s3d-hud{font-size:12px;color:var(--s-text3);letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap;margin-right:10px}
.s3d-hud b{color:var(--s-text);font-weight:600}
.s3d-hud .pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--s-ok);margin-right:8px;vertical-align:1px;animation:pl 2s infinite}
@keyframes pl{0%{box-shadow:0 0 0 0 rgba(67,227,155,.55)}70%{box-shadow:0 0 0 8px rgba(67,227,155,0)}100%{box-shadow:0 0 0 0 rgba(67,227,155,0)}}
.s3d-hint{position:absolute;z-index:6;font-size:11.5px;color:var(--s-text3);letter-spacing:.06em;pointer-events:none}
.s3d-nogl{display:none}
.s3d-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:3;pointer-events:none;transition:opacity .6s}
.s3d-loading i{width:46px;height:46px;border-radius:50%;border:2px solid var(--s-border);border-top-color:var(--s-accent);animation:spin 1s linear infinite}
.s3d.ready .s3d-loading,.s3d.no3d .s3d-loading,html:not(.js) .s3d-loading{opacity:0}
.s3d:not(.ready) .s3d-tags{display:grid;grid-template-columns:repeat(3,1fr);align-content:center;gap:12px;padding:80px 40px 60px}
.s3d:not(.ready) .s3d-tag{position:static;transform:none!important;justify-content:flex-start}
.js .s3d:not(.ready):not(.no3d) .s3d-tags{opacity:0}
.s3d:not(.ready) .s3d-ctrl button,.s3d:not(.ready) .s3d-hint,.s3d:not(.ready) .s3d-card{display:none}
.s3d.no3d .s3d-nogl{display:block;position:absolute;z-index:6;font-size:12.5px;color:var(--s-text3)}
.s3d-panel{display:flex;flex-direction:column;padding:22px 22px 18px;border-radius:20px;background:var(--s-glass);border:1px solid var(--s-border);
  backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:var(--s-shadow),inset 0 1px 0 rgba(255,255,255,.06)}
.s3d-scene{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--s-border2) transparent;padding-right:4px}
.s3d-mlbl{font-size:11px;font-weight:600;letter-spacing:.2em;color:var(--s-accent);text-transform:uppercase}
.s3d-scene h3{font-size:20px;font-weight:600;color:var(--s-text);margin:8px 0 2px;line-height:1.4}
.s3d-scene .org{font-size:12.5px;color:var(--s-text3)}
.s3d-scene .goal{font-size:13.5px;color:var(--s-text);margin:14px 0 14px;padding:11px 13px;border-radius:10px;background:var(--s-hover);border:1px solid var(--s-border)}
.s3d-scene .goal b{display:block;font-size:11px;color:var(--s-accent);font-weight:600;letter-spacing:.14em;margin-bottom:3px}
.s3d-scene ol{list-style:none;display:grid;gap:2px;position:relative}
.s3d-scene li{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;padding:9px 8px;border-radius:10px;opacity:.5;transition:background .35s,opacity .35s}
.s3d-scene li:not(:last-child)::before{content:"";position:absolute;left:18px;top:31px;bottom:-11px;width:1px;background:var(--s-border)}
.s3d-scene li.done:not(:last-child)::before{background:var(--s-ok);opacity:.5}
.s3d-scene li .st{position:relative;width:20px;height:20px;margin-top:2px;border-radius:50%;border:1.5px solid var(--s-border2);background:var(--s-bg)}
.s3d-scene li .who{display:block;font-size:11.5px;color:var(--s-accent);letter-spacing:.03em;margin-bottom:1px}
.s3d-scene li p{font-size:13.5px;color:var(--s-text);line-height:1.6}
.s3d-scene li.run{opacity:1;background:var(--s-run)}
.s3d-scene li.run .st{border-color:#ffb020;border-top-color:transparent;animation:spin .9s linear infinite}
.s3d-scene li.done{opacity:.92}
.s3d-scene li.done .st{border-color:var(--s-ok);background:var(--s-ok)}
.s3d-scene li.done .st::after{content:"";position:absolute;left:6px;top:2.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
html:not(.js) .s3d-scene li{opacity:1}
.s3d-bar{flex:none;height:3px;border-radius:3px;background:var(--s-border);margin-top:14px;overflow:hidden}
.s3d-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--s-accent),var(--s-ok));transition:width .6s var(--ease,ease)}
.s3d-done{font-size:13px;color:var(--s-ok);margin-top:10px;opacity:0;transform:translateY(4px);transition:.4s}
.s3d-done.show{opacity:1;transform:none}
.s3d-demo{font-size:11.5px;color:var(--s-text3);margin-top:6px;opacity:.8}

@media (max-width:1080px){.ly-grid{grid-template-columns:repeat(4,1fr)}.ly-bar{grid-template-columns:auto 1fr}.ly-bar ul{grid-column:1/-1}}
@media (max-width:860px){
  .ly{grid-template-columns:1fr;gap:8px}.ly-lbl{justify-content:flex-start;background:none;padding:0 4px}.ly-infra{grid-template-columns:1fr}
  .ly-grid{grid-template-columns:repeat(2,1fr)}.ly-bar.core ul{grid-template-columns:repeat(3,1fr)}.ly-bar.base ul{grid-template-columns:1fr 1fr}
  .s3d-tab{flex:none}.s3d-tag em{display:none}.s3d-tag b{font-size:12px}.s3d-tag .ic{width:20px;height:20px}
  .s3d.ready .s3d-tag:not(.major):not(.hot){padding:3px}.s3d.ready .s3d-tag:not(.major):not(.hot) b{display:none}
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .matrix{grid-template-columns:repeat(2,1fr)}
  .os-grid,.cap-grid{grid-template-columns:repeat(2,1fr)}
  .deploy,.related{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:860px){
  .nav,.hd-act .btn{display:none}
  .hd nav{height:auto}
  .burger{display:block}
  .hd.open .nav>li,.hd.open .nav>li>a{height:auto}
  .hd.open .nav>li>a{align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line)}
  .hd.open .nav{display:flex;flex-direction:column;height:auto;position:absolute;left:0;right:0;top:66px;background:var(--surface);padding:12px 16px 20px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .hd.open .mega{position:static;opacity:1;visibility:visible;transform:none;padding:0}
  .hd.open .nav>li>a::after{display:none}
  .hd.open .mega-in{width:auto;grid-template-columns:1fr;box-shadow:none;border:0;padding:0 0 0 8px}
  .hd.open .mega span{display:none}
  .hd.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .hd.open .burger span:nth-child(2){opacity:0}
  .hd.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .wrap{padding:0 16px}
  section.sec{padding:76px 0}
  .principle,.pos,.phero .wrap{grid-template-columns:1fr}
  .chain,.os-grid,.cap-grid,.scenes,.about-grid,.contact{grid-template-columns:1fr}
  .chain a{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .chain a:last-child{border-bottom:0!important}
  .matrix,.deploy,.related{grid-template-columns:1fr}
  .emblem{max-width:280px}
  .ft .cols{grid-template-columns:1fr 1fr}
  .ft .brand{grid-column:1/-1}
  .cta-band{padding:44px 22px;border-radius:24px}
}


/* =====================================================================
   V2 高端版式层: 编辑式排版 / 全屏 3D 首屏 / Bento 产品矩阵 / 细节交互
   ===================================================================== */
:root{--wrap:1240px;--ease:cubic-bezier(.2,.8,.2,1);--gutter:max(24px,calc((100vw - 1240px) / 2 + 24px))}
::selection{background:rgba(47,107,255,.22)}
:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:6px}
section.sec{padding:136px 0}
.btn{transition:transform .25s var(--ease),box-shadow .25s,background .25s,color .25s,border-color .25s}
.btn-p{background:linear-gradient(120deg,#1c65ff,#1a8bf0);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 24px -12px rgba(28,101,255,.75)}
.btn-p:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 16px 30px -12px rgba(28,101,255,.85)}
.btn-ghost-d{background:rgba(255,255,255,.04);color:#fff;border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(8px)}
.btn-ghost-d:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.45)}
.btn-w{background:#fff;color:#0a1b3f}
.btn-w:hover{background:#eaf0ff;transform:translateY(-1px)}

/* ---------- 导航: 覆盖在首屏之上时透明, 文字颜色随沙盘主题 ---------- */
.hd{transition:background .35s var(--ease),box-shadow .35s,backdrop-filter .35s}
.hd.over{background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.hd.over .logo b,.hd.over .nav>li>a,.hd.over .lang,.hd.over .theme{color:var(--s-text)}
.hd.over .logo small{color:var(--s-text3)}
.hd.over .nav>li>a:hover,.hd.over .nav>li:hover>a,.hd.over .nav>li>a[aria-current=page]{color:var(--s-text);border-bottom-color:var(--s-accent)}
.hd.over .theme{border-color:var(--s-border2)}
.hd.over .burger span{background:var(--s-text)}

/* ---------- 编辑式区块标题 ---------- */
.sh{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:end;margin-bottom:64px}
.sh-idx{display:inline-flex;align-items:center;font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--primary)}
.sh-idx i{font-style:normal;margin-right:14px;padding-right:14px;border-right:1px solid var(--line);font-variant-numeric:tabular-nums}
.sh h2{font-size:clamp(32px,3.7vw,52px);font-weight:600;line-height:1.2;letter-spacing:-.005em;margin-top:16px}
.sh p{font-size:17px;line-height:1.85;color:var(--ink-2);max-width:34em;padding-bottom:6px}
.sh-dark .sh-idx{color:#5fd0ff}
.sh-dark h2{color:#fff}

/* ---------- 数据带 ---------- */
.stats-band{background:var(--surface);border-bottom:1px solid var(--line)}
.stats{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:46px 32px 42px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font-size:clamp(46px,5vw,72px);font-weight:600;line-height:1;letter-spacing:-.02em;margin-bottom:12px}
.stat span{font-size:14.5px;color:var(--ink-2)}

/* ---------- Bento 产品矩阵 ---------- */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:248px;gap:16px}
.bt{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:26px 26px 24px;border-radius:22px;background:var(--surface);border:1px solid var(--line);overflow:hidden;isolation:isolate;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s}
.bt:hover{transform:translateY(-5px);box-shadow:0 30px 60px -30px rgba(24,64,200,.35);border-color:rgba(47,107,255,.45)}
.bt-top{display:flex;justify-content:space-between;align-items:flex-start}
.bt .ic{width:46px;height:46px}
.bt-go{flex:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink-2);transition:background .3s,border-color .3s,color .3s}
.bt-go::before{content:"";width:9px;height:9px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);margin-left:-3px;transition:transform .35s var(--ease)}
.bt-go.up::before{transform:rotate(-45deg);margin:3px 0 0}
.bt:hover .bt-go{background:var(--primary);color:#fff;border-color:transparent}
.bt:hover .bt-go::before{transform:translateX(2px) rotate(45deg)}
.bt:hover .bt-go.up::before{transform:translateY(-2px) rotate(-45deg)}
.bt-wm{position:absolute;right:-34px;bottom:-34px;width:180px;height:180px;color:var(--primary);opacity:.06;z-index:-1;stroke-width:1;transition:opacity .5s,transform .8s var(--ease)}
.bt:hover .bt-wm{opacity:.13;transform:scale(1.08) rotate(-8deg)}
.bt-brand{display:block;font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.bt h3{font-size:26px;font-weight:600;line-height:1.25;margin:6px 0 4px}
.bt-tag{font-size:14px;color:var(--ink-2);line-height:1.6}
.bt-main{grid-column:span 2;grid-row:span 2;color:#fff;border-color:transparent;padding:34px;
  background:radial-gradient(70% 60% at 88% 8%,rgba(63,200,255,.32),transparent 60%),radial-gradient(60% 60% at 0% 100%,rgba(47,107,255,.35),transparent 60%),linear-gradient(155deg,#0d2365,#060f2e 75%)}
.bt-main::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.35;background-image:linear-gradient(rgba(120,170,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,255,.12) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(70% 70% at 80% 20%,#000,transparent)}
.bt-main:hover{box-shadow:0 40px 80px -36px rgba(24,64,200,.7)}
.bt-logo{width:68px;height:68px;filter:drop-shadow(0 16px 30px rgba(47,107,255,.55))}
.bt-main .bt-brand{color:#7fd8ff}
.bt-main h3{font-size:46px;margin:10px 0 6px;letter-spacing:-.01em}
.bt-main .bt-tag{font-size:18px;color:#dce6ff}
.bt-desc{font-size:15px;color:#a9b8de;line-height:1.75;margin:10px 0 24px;max-width:32em}
.bt-caps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bt-caps li{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#cfdbf7;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.bt-caps svg{width:18px;height:18px;color:#7fd8ff;flex:none}
.bt-main .bt-go{border-color:rgba(255,255,255,.25);color:#fff}
.bt-more{background:linear-gradient(150deg,var(--surface-2),var(--surface));border-style:dashed}
.bt-ic{width:40px;height:40px;color:var(--primary)}

/* ---------- EASEOS 编号清单 ---------- */
.os2-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;align-items:start}
.os2-intro{position:sticky;top:120px}
.os2 .sh{grid-template-columns:1fr;margin-bottom:22px}
.os2-p{font-size:16.5px;line-height:1.9;color:#a9b8de}
.os2-pr{list-style:none;margin:30px 0 34px;display:grid;gap:18px;border-left:1px solid rgba(140,180,255,.22);padding-left:22px}
.os2-pr b{color:#fff;font-weight:500;font-size:15.5px}
.os2-pr p{font-size:14px;color:#8a9cc6;margin-top:2px}
.rt-list{list-style:none;border-top:1px solid rgba(140,180,255,.14)}
.rt-list li{display:grid;grid-template-columns:44px 34px minmax(0,1fr);gap:14px;align-items:start;padding:24px 12px 24px 4px;border-bottom:1px solid rgba(140,180,255,.14);transition:background .35s}
.rt-list li:hover{background:linear-gradient(90deg,rgba(63,200,255,.07),transparent 70%)}
.rt-n{font-size:12.5px;color:#5f74a8;font-variant-numeric:tabular-nums;letter-spacing:.1em;padding-top:5px}
.rt-ic{width:26px;height:26px;color:#5fd0ff;margin-top:1px}
.rt-list h3{font-size:17.5px;color:#fff;font-weight:500;line-height:1.5}
.rt-list h3 small{font-size:12px;color:#6f84b8;margin-left:10px;font-weight:400;letter-spacing:.04em}
.rt-list p{font-size:14px;color:#8a9cc6;margin-top:3px}
.os2 .infra-bar{justify-content:flex-start;margin-top:28px}

/* ---------- 宣言 ---------- */
.statement{background:linear-gradient(180deg,var(--bg),var(--sec-alt))}
.stmt{font-size:clamp(24px,2.7vw,38px);line-height:1.75;font-weight:500;color:var(--ink-3);letter-spacing:.01em}
.stmt a{color:var(--ink);background-image:linear-gradient(90deg,var(--primary),#3fc8ff);background-size:0 2px;background-position:0 96%;background-repeat:no-repeat;transition:background-size .5s var(--ease),color .3s}
.stmt a:hover{color:var(--primary);background-size:100% 2px}
.slogan-xl{margin-top:80px;padding-top:40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap}
.slogan-xl span{font-size:clamp(26px,3.1vw,44px);font-weight:600;letter-spacing:-.01em}
.slogan-xl small{font-size:15px;color:var(--ink-3);letter-spacing:.24em}

/* ---------- 部署 ---------- */
.deploy2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.dp{position:relative;padding:34px 28px 6px;border-left:1px solid var(--line)}
.dp:first-child{border-left:0;padding-left:0}
.dp-n{position:absolute;right:28px;top:34px;font-size:12px;color:var(--ink-3);letter-spacing:.1em;font-variant-numeric:tabular-nums}
.dp svg{width:30px;height:30px;color:var(--primary);margin-bottom:22px}
.dp h3{font-size:19px;font-weight:600;margin-bottom:8px}
.dp p{font-size:14.5px;color:var(--ink-2);line-height:1.8}

/* ---------- 收尾 CTA ---------- */
.cta-xl{position:relative;overflow:hidden;padding:150px 0 140px;text-align:center;color:#fff;isolation:isolate;
  background:radial-gradient(50% 90% at 50% 125%,rgba(47,107,255,.6),transparent 70%),radial-gradient(35% 50% at 88% 0%,rgba(63,200,255,.2),transparent 70%),#050b1e}
.cta-xl::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;background-image:linear-gradient(rgba(120,170,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,255,.08) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(60% 60% at 50% 100%,#000,transparent)}
.cta-xl h2{font-size:clamp(34px,4.3vw,60px);font-weight:600;line-height:1.2;letter-spacing:-.01em}
.cta-xl p{font-size:18px;color:#a9b8de;margin-top:16px}
.cta-xl .cta{display:flex;justify-content:center;gap:12px;margin-top:40px;flex-wrap:wrap}

/* ---------- 页脚巨幅标语 ---------- */
.ft{padding-top:96px}
.ft-slogan{font-size:clamp(38px,6.6vw,100px);font-weight:600;line-height:1.04;letter-spacing:-.025em;padding-bottom:64px;margin-bottom:64px;border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(90deg,#fff 0%,#9fc0ff 45%,rgba(95,208,255,.25) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- 产品页 / 通用标题同步升级 ---------- */
.sec-hd h2{font-size:clamp(30px,3.4vw,46px);letter-spacing:-.005em}
.phero h1{letter-spacing:-.01em}
.cap,.dcard,.mcard{border-radius:20px}
.cap:hover{border-color:rgba(47,107,255,.4)}

@media (max-width:1180px){
  .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .os2-grid{grid-template-columns:1fr;gap:40px}.os2-intro{position:static}
  .deploy2{grid-template-columns:repeat(2,minmax(0,1fr))}.dp:nth-child(3){border-left:0;padding-left:0}
}
@media (max-width:860px){
  section.sec{padding:88px 0}
  .sh{grid-template-columns:1fr;gap:16px;margin-bottom:40px}
  .stats{grid-template-columns:1fr 1fr}.stat{padding:30px 16px;border-left:0;border-top:1px solid var(--line)}.stat:nth-child(-n+2){border-top:0}.stat:nth-child(2n){border-left:1px solid var(--line)}.stat:first-child{padding-left:16px}
  .bento{grid-template-columns:1fr;grid-auto-rows:auto}.bt{min-height:200px}.bt-main{grid-column:auto;grid-row:auto;padding:26px}.bt-main h3{font-size:34px}.bt-caps{grid-template-columns:1fr 1fr}
  .deploy2{grid-template-columns:1fr}.dp{border-left:0!important;padding:28px 0 6px!important;border-top:1px solid var(--line)}.dp:first-child{border-top:0}.dp-n{right:0}
  .slogan-xl{margin-top:48px}
  .cta-xl{padding:96px 0}
}
.os2 .sh h2{font-size:clamp(28px,2.7vw,40px)}
.stmt{color:#a2afc9}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .stmt{color:#56668c}}
:root[data-theme=dark] .stmt{color:#56668c}

/* ---------- 全屏 3D 首屏: 钉住 + 五章滚动叙事 ---------- */
.hero3d{margin-top:-66px;padding:0;isolation:isolate}
.hero3d.story{height:520vh;min-height:0;max-height:none;overflow:visible}
.s3d-pin{position:sticky;top:0;height:100vh;min-height:700px;overflow:hidden}
.hero3d .s3d-view{position:absolute;inset:0}
.hero3d .s3d-view::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(var(--s-fade),.96) 0%,rgba(var(--s-fade),.74) 26%,rgba(var(--s-fade),0) 50%),
             linear-gradient(0deg,rgba(var(--s-fade),.96) 0%,rgba(var(--s-fade),0) 26%),
             linear-gradient(180deg,rgba(var(--s-fade),.8) 0%,rgba(var(--s-fade),0) 16%)}
.hero3d-copy{position:absolute;z-index:5;left:var(--gutter);top:50%;transform:translateY(-52%);width:min(620px,46vw);height:560px;color:var(--s-text)}
.story-ch{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0;transform:translateY(22px);pointer-events:none;
  transition:opacity .6s var(--ease),transform .7s var(--ease)}
.story-ch.is-on{opacity:1;transform:none;pointer-events:auto;transition-delay:.12s}
.ribbon{display:inline-flex;align-items:center;align-self:flex-start;height:28px;padding:0 12px 0 10px;border-radius:4px;font-size:12.5px;font-weight:500;letter-spacing:.06em;color:var(--s-ribbon);background:color-mix(in srgb,var(--s-ribbon) 10%,transparent);border:1px solid color-mix(in srgb,var(--s-ribbon) 30%,transparent)}
.ribbon i{font-style:normal;font-variant-numeric:tabular-nums;margin-right:10px;padding-right:10px;border-right:1px solid color-mix(in srgb,var(--s-ribbon) 35%,transparent)}
.hero3d-copy h1{font-size:clamp(40px,4.4vw,66px);font-weight:600;line-height:1.14;letter-spacing:-.01em;margin:26px 0 22px;color:var(--s-text)}
.hero3d-copy .grad{background:var(--s-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.story-h{font-size:clamp(40px,4.4vw,64px);font-weight:600;line-height:1.08;letter-spacing:.02em;margin:24px 0 22px;color:var(--s-text)}
.story-h span,.story-h em{display:block;font-style:normal}
.story-h em{color:var(--s-ribbon)}
.hero3d-copy .lead{font-size:17.5px;line-height:1.8;color:var(--s-text2);max-width:29em}
.hero3d-copy .cta{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
.hero3d-copy .btn-ghost{background:var(--s-glass);color:var(--s-text);border:1px solid var(--s-border2)}
.hero3d-copy .btn-ghost:hover{border-color:var(--s-accent);color:var(--s-accent)}
.story-scroll{display:flex;align-items:center;gap:12px;margin-top:40px;font-size:12.5px;letter-spacing:.08em;color:var(--s-text3)}
.story-scroll i{width:34px;height:1px;background:var(--s-text3);position:relative;overflow:hidden}
.story-scroll i::after{content:"";position:absolute;inset:0;background:var(--s-accent);transform:translateX(-100%);animation:sline 2.2s var(--ease) infinite}
@keyframes sline{60%{transform:none}100%{transform:translateX(100%)}}
.story-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.story-chips li{font-size:13px;padding:7px 12px;border-radius:4px;border:1px solid var(--s-border);color:var(--s-text2);background:var(--s-glass)}
.story-prod{margin-top:14px;font-size:12.5px;color:var(--s-text3);letter-spacing:.04em}
.story-prod::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--s-ribbon);margin-right:8px;vertical-align:1px}
/* 右侧任务面板: 场景 chips + 步骤清单 */
.hero3d .s3d-panel{position:absolute;z-index:5;right:var(--gutter);top:96px;bottom:118px;width:340px}
.s3d-panel .s3d-tabs{flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;background:none;border:0}
.s3d-panel .s3d-tab{height:30px;padding:0 10px;font-size:12.5px;border-radius:999px;border:1px solid var(--s-border);gap:6px}
.s3d-panel .s3d-tab svg{width:14px;height:14px}
.s3d-panel .s3d-tab[aria-selected=true]{box-shadow:none}
/* 底部: 章节导航 + 控制 */
.hero3d-dock{position:absolute;z-index:6;left:var(--gutter);right:var(--gutter);bottom:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.story-nav{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:6px 6px 14px;border-radius:14px;background:var(--s-glass);border:1px solid var(--s-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);width:min(720px,58vw)}
.story-nav::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:2px;background:var(--s-border)}
.story-nav button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 8px;border:0;border-radius:9px;background:transparent;color:var(--s-text3);font:inherit;font-size:13.5px;cursor:pointer;white-space:nowrap;transition:color .25s,background .25s}
.story-nav button .n{font-size:11px;letter-spacing:.06em;font-variant-numeric:tabular-nums;opacity:.65;transition:opacity .25s}
.story-nav button:hover{color:var(--s-text);background:var(--s-hover)}
.story-nav button[aria-current=step]{color:var(--s-text);font-weight:600;background:color-mix(in srgb,var(--s-ribbon) 12%,transparent)}
.story-nav button[aria-current=step] .n{opacity:1;color:var(--s-ribbon)}
.story-nav button.done{color:var(--s-text2)}
.story-nav button.done .n{color:var(--s-ribbon)}
.story-nav i{position:absolute;left:14px;bottom:6px;z-index:1;height:2px;width:0;border-radius:2px;background:linear-gradient(90deg,var(--s-accent),var(--s-ribbon));transition:width .15s linear;max-width:calc(100% - 28px);box-shadow:0 0 8px color-mix(in srgb,var(--s-ribbon) 60%,transparent)}
.hero3d .s3d-hint{right:var(--gutter);bottom:96px}
.hero3d .s3d-demo{position:absolute;z-index:6;right:var(--gutter);bottom:78px;font-size:11.5px;color:var(--s-text3)}
.s3d-hud b{margin:0 14px 0 6px}
.s3d-hud b:last-child{margin-right:0}
/* 跟随主角的状态气泡 */
.hero-bubble{position:absolute;left:0;top:0;z-index:5;display:flex;align-items:center;gap:8px;max-width:320px;padding:8px 12px 8px 10px;border-radius:10px 10px 10px 2px;background:var(--s-glass2);border:1px solid var(--s-border2);color:var(--s-text);font-size:13px;line-height:1.4;box-shadow:var(--s-shadow);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .25s;pointer-events:none;white-space:nowrap}
.hero-bubble.show{opacity:1}
.hero-bubble i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--s-ribbon);box-shadow:0 0 0 3px color-mix(in srgb,var(--s-ribbon) 25%,transparent)}
.s3d:not(.ready) .hero-bubble{display:none}
.hero3d .s3d-nogl{left:var(--gutter);bottom:86px}
.hero3d:not(.ready) .s3d-tags{padding:120px var(--gutter) 140px calc(var(--gutter) + 46vw);grid-template-columns:repeat(2,1fr)}
:root{--s-ribbon:#1c65ff}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--s-ribbon:#7fb2ff}}
:root[data-theme=dark]{--s-ribbon:#7fb2ff}

/* ---------- 数字员工岗位花名册 ---------- */
.roster-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:stretch}
.roster-list{list-style:none;display:grid;gap:4px;padding:8px;border-radius:22px;background:var(--surface);border:1px solid var(--line);align-content:start}
.roster-list button{display:grid;grid-template-columns:34px 10px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:13px 14px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.roster-list button:hover{background:var(--surface-2)}
.roster-list button[aria-selected=true]{background:var(--surface-2);border-color:var(--line);box-shadow:inset 3px 0 0 var(--c)}
.roster-list .r-id{font-size:11.5px;letter-spacing:.1em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.roster-list .r-dot{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent)}
.roster-list b{font-size:15px;font-weight:600}
.roster-list .r-prod{font-size:12px;color:var(--ink-3);white-space:nowrap}
.roster-stage{display:grid;grid-template-columns:minmax(0,1fr) 340px;border-radius:24px;overflow:hidden;background:var(--surface);border:1px solid var(--line);min-height:520px}
.roster-view{position:relative;background:radial-gradient(60% 55% at 50% 60%,var(--surface-2),var(--surface) 80%);overflow:hidden}
.roster-view canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.roster-bg{position:absolute;inset:0;background:radial-gradient(40% 36% at 50% 62%,color-mix(in srgb,var(--c,#5b8cff) 28%,transparent),transparent 70%);transition:background .5s}
.roster-bg::after{content:"";position:absolute;inset:0;opacity:.5;background-image:linear-gradient(rgba(120,160,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,255,.1) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(60% 60% at 50% 55%,#000,transparent)}
.roster:not(.ready) .roster-view::before{content:"";position:absolute;left:50%;top:50%;width:160px;height:160px;transform:translate(-50%,-50%);border-radius:36%;background:linear-gradient(150deg,var(--surface),var(--surface-2));border:1px solid var(--line)}
.roster-details{padding:30px 30px 26px;border-left:1px solid var(--line)}
.ro-detail .r-count{font-size:12px;color:var(--ink-3);letter-spacing:.1em;font-variant-numeric:tabular-nums}
.ro-detail .r-count b{color:var(--c);font-weight:600}
.ro-detail h3{font-size:30px;font-weight:600;line-height:1.2;margin:10px 0 10px;letter-spacing:-.01em}
.ro-detail>p{font-size:15px;color:var(--ink-2);line-height:1.8}
.ro-detail dl{margin:22px 0 0;display:grid;grid-template-columns:auto 1fr;gap:10px 16px;align-items:center;font-size:13.5px}
.ro-detail dt{color:var(--ink-3);letter-spacing:.06em}
.ro-detail dd{color:var(--ink)}
.r-prods{display:flex;flex-wrap:wrap;gap:6px}
.r-prods a{display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:13px;transition:border-color .2s,color .2s}
.r-prods a:hover{border-color:var(--primary);color:var(--primary)}
.r-prods .ic{width:22px;height:22px}
.r-lbl{display:block;margin-top:24px;font-size:11.5px;letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase}
.r-caps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.r-caps li{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border-radius:4px;border:1px solid var(--line);color:var(--ink-3);opacity:.55}
.r-caps li.on{opacity:1;color:var(--ink);border-color:color-mix(in srgb,var(--c) 55%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent)}

/* ---------- EASEOS 四层架构图 ---------- */
.ltabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:22px}
.ltabs button{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(140,180,255,.2);background:rgba(255,255,255,.03);color:#a9b8de;font:inherit;font-size:14px;cursor:pointer;transition:.25s}
.ltabs .n{font-size:11px;letter-spacing:.1em;color:#5fd0ff;font-variant-numeric:tabular-nums}
.ltabs button:hover{color:#fff;border-color:rgba(140,200,255,.5)}
.ltabs button[aria-selected=true]{color:#fff;background:linear-gradient(135deg,rgba(47,107,255,.55),rgba(63,200,255,.25));border-color:rgba(120,210,255,.6)}
.lpanel{border-radius:24px;border:1px solid rgba(140,180,255,.16);background:linear-gradient(180deg,rgba(12,26,62,.6),rgba(6,14,36,.7));padding:26px 26px 30px}
.ldesc{font-size:15px;color:#a9b8de;margin-bottom:18px;display:flex;gap:14px;align-items:center}
.ldesc b{font-size:11.5px;letter-spacing:.12em;color:#5fd0ff;padding:4px 10px;border-radius:4px;border:1px solid rgba(95,208,255,.35)}
.ldiag{position:relative;aspect-ratio:900/420}
.lwires{position:absolute;inset:0;width:100%;height:100%}
.lwires path{fill:none;stroke-linejoin:round;stroke-linecap:round}
.lw-base path{stroke:rgba(140,180,255,.22);stroke-width:1.5}
.lw-flow path{stroke:#5fd0ff;stroke-width:2;stroke-dasharray:8 160;animation:lflow 3.2s linear infinite;filter:drop-shadow(0 0 6px rgba(95,208,255,.9))}
.lw-flow path:nth-child(2n){animation-delay:-1.1s}.lw-flow path:nth-child(3n){animation-delay:-2.2s}
@keyframes lflow{to{stroke-dashoffset:-168}}
.ln{position:absolute;left:calc(var(--x) / 900 * 100%);top:calc(var(--y) / 420 * 100%);transform:translate(-50%,-50%);width:170px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;
  background:rgba(8,18,46,.85);border:1px solid rgba(140,180,255,.22);color:#dbe5fb;font-size:13px;letter-spacing:.02em;transition:border-color .25s,transform .25s}
.ln svg{width:22px;height:22px;color:#7fd8ff;flex:none}
.ln:hover{border-color:rgba(140,220,255,.7);transform:translate(-50%,-50%) translateY(-2px)}
.ln-c{width:200px;padding:14px;background:linear-gradient(135deg,rgba(47,107,255,.55),rgba(63,200,255,.3));border-color:rgba(140,220,255,.7);color:#fff;font-weight:600;box-shadow:0 0 40px -8px rgba(63,200,255,.6)}
.ln-c svg{width:26px;height:26px;color:#fff}
.os2-foot{margin-top:44px;gap:48px;align-items:start}
.os2-foot .os2-pr{margin:0}

@media (max-width:1180px){
  .hero3d.story{height:auto}
  .s3d-pin{position:relative;height:auto;min-height:0;display:flex;flex-direction:column;padding-top:66px}
  .hero3d-copy{position:relative;left:auto;top:auto;transform:none;width:auto;height:auto;padding:48px 24px 8px;order:1;min-height:420px}
  .story-ch{position:relative;inset:auto;display:none}
  .story-ch.is-on{display:flex}
  .hero3d .s3d-view{position:relative;inset:auto;height:60vh;min-height:420px;order:2}
  .hero3d .s3d-view::before{background:linear-gradient(180deg,rgb(var(--s-fade)) 0%,rgba(var(--s-fade),0) 18%),linear-gradient(0deg,rgb(var(--s-fade)) 0%,rgba(var(--s-fade),0) 16%)}
  .hero3d-dock{position:relative;left:auto;right:auto;bottom:auto;order:3;padding:0 24px;margin-top:-8px;flex-wrap:wrap}
  .story-nav{width:100%;max-width:100%}
  .story-nav button{font-size:12.5px;padding:0 4px}
  .hero3d .s3d-panel{position:relative;right:auto;top:auto;bottom:auto;width:auto;order:4;margin:16px 24px 48px;max-height:none}
  .hero3d .s3d-hint,.hero3d .s3d-hud,.hero3d [data-act=skip]{display:none}
  .hero3d:not(.ready) .s3d-tags{padding:40px 24px;grid-template-columns:repeat(3,1fr)}
  .roster-grid{grid-template-columns:1fr}
  .roster-list{grid-template-columns:repeat(3,1fr)}
  .roster-stage{grid-template-columns:1fr}.roster-view{min-height:380px}.roster-details{border-left:0;border-top:1px solid var(--line)}
  .ln{width:140px;font-size:12px;padding:8px 10px}.ln-c{width:170px}
  .os2-foot{grid-template-columns:1fr}
}
@media (max-width:860px){
  .hero3d-copy{padding:36px 16px 0;min-height:0}.hero3d-copy h1{font-size:34px}.story-h{font-size:40px}.hero3d-copy .lead{font-size:16px}
  .hero3d .s3d-view{height:440px;min-height:0}
  .hero-bubble{max-width:78vw;white-space:normal;font-size:12.5px}
  .hero3d-dock{padding:0 16px}.hero3d .s3d-ctrl{display:none}
  .story-nav{grid-template-columns:repeat(5,auto);justify-content:space-between;overflow-x:auto;scrollbar-width:none}
  .story-nav button span:last-child{display:none}
  .story-nav button .n{font-size:12px;opacity:1}
  .hero3d .s3d-panel{margin:14px 16px 40px}
  .hero3d:not(.ready) .s3d-tags{grid-template-columns:1fr 1fr;padding:24px 16px}
  .roster-list{grid-template-columns:1fr 1fr}.roster-list .r-prod{display:none}
  .ldiag{aspect-ratio:auto;height:auto}.lwires{display:none}
  .ldiag{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ln,.ln-c{position:static;transform:none;width:auto}.ln-c{grid-column:1/-1}
}

@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .grad{background-image:linear-gradient(100deg,#7fa8ff 0%,#3fc8ef 58%,#2ff5d0 100%)}}
:root[data-theme=dark] .grad{background-image:linear-gradient(100deg,#7fa8ff 0%,#3fc8ef 58%,#2ff5d0 100%)}

/* ---------- 央国企智能体: 定义 / 特征 / 对比 ---------- */
.soe-def{position:relative;padding:36px 40px 36px 44px;border-radius:22px;background:var(--surface);border:1px solid var(--line);overflow:hidden;margin-bottom:18px}
.soe-def::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#1c65ff,#15ace3 55%,#0ef4c6)}
.soe-def::after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(closest-side,rgba(14,244,198,.14),transparent);pointer-events:none}
.soe-lbl{display:inline-block;font-size:12px;letter-spacing:.16em;color:var(--primary);font-weight:600;margin-bottom:12px}
.soe-def p{font-size:clamp(20px,2.1vw,28px);line-height:1.7;font-weight:500;color:var(--ink);max-width:40em}
.soe-def dfn{font-style:normal}
.soe-for{position:relative;display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;margin-top:22px;padding-top:20px;border-top:1px dashed var(--line)}
.soe-for span{font-size:12px;letter-spacing:.16em;color:var(--ink-3);font-weight:600}
.soe-for ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.soe-for li{font-size:13.5px;padding:5px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}
.soe-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.sp{position:relative;display:flex;flex-direction:column;padding:28px 26px 26px;border-radius:20px;background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s,border-color .4s}
.sp:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--primary) 45%,transparent)}
.sp-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}
.sp-hd svg{width:44px;height:44px;padding:10px;border-radius:12px;color:#fff;background:linear-gradient(135deg,#1c65ff,#15ace3);box-shadow:0 10px 22px -12px rgba(28,101,255,.8)}
.sp:nth-child(2) .sp-hd svg{background:linear-gradient(135deg,#1a7ff5,#15ace3)}
.sp:nth-child(3) .sp-hd svg{background:linear-gradient(135deg,#15ace3,#11cdd0)}
.sp:nth-child(4) .sp-hd svg{background:linear-gradient(135deg,#11c4c8,#0bd9b8)}
.sp-n{font-size:12px;letter-spacing:.1em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.sp h3{font-size:clamp(30px,2.6vw,38px);font-weight:600;line-height:1.1;letter-spacing:.02em}
.sp-sub{font-size:15px;font-weight:500;color:var(--primary);margin:8px 0 16px}
.sp ul{list-style:none;display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.sp li{position:relative;padding-left:16px;font-size:14px;line-height:1.75;color:var(--ink-2)}
.sp li::before{content:"";position:absolute;left:0;top:.72em;width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#15ace3,#0ef4c6)}
.sp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,#1c65ff,#15ace3,#0ef4c6);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.sp:hover::after{transform:none}
.soe-cmp{margin-top:56px}
.soe-cmp h3{font-size:22px;font-weight:600;margin-bottom:18px}
.soe-tw{border-radius:20px;border:1px solid var(--line);overflow:hidden;background:var(--surface)}
.soe-cmp table{width:100%;border-collapse:collapse;font-size:15px}
.soe-cmp th,.soe-cmp td{padding:16px 22px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.65}
.soe-cmp tbody tr:last-child th,.soe-cmp tbody tr:last-child td{border-bottom:0}
.soe-cmp thead th{font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--ink-3);background:var(--surface-2)}
.soe-cmp thead th:last-child{color:#fff;background:linear-gradient(120deg,#1c65ff,#15ace3)}
.soe-cmp tbody th{font-weight:600;color:var(--ink);width:16%;white-space:nowrap}
.soe-cmp td:nth-child(2){color:var(--ink-3);width:34%}
.soe-cmp td:last-child{color:var(--ink);font-weight:500;background:color-mix(in srgb,var(--primary) 5%,transparent);position:relative;padding-left:44px}
.soe-cmp td:last-child::before{content:"";position:absolute;left:22px;top:24px;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#15ace3,#0ef4c6)}
@media (max-width:1180px){.soe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sp-sub{color:#4fb8ff}}
:root[data-theme=dark] .sp-sub{color:#4fb8ff}
@media (max-width:860px){
  .soe-def{padding:26px 22px 26px 28px}.soe-grid{grid-template-columns:1fr}
  .soe-cmp table,.soe-cmp tbody,.soe-cmp tr,.soe-cmp th,.soe-cmp td{display:block;width:auto!important}
  .soe-cmp thead{display:none}
  .soe-cmp tbody tr{padding:14px 18px;border-bottom:1px solid var(--line)}
  .soe-cmp tbody tr:last-child{border-bottom:0}
  .soe-cmp tbody th,.soe-cmp td{border:0;padding:4px 0}
  .soe-cmp td:nth-child(2)::before{content:attr(data-l) "：";color:var(--ink-3)}
  .soe-cmp td:last-child{background:none;padding-left:18px}.soe-cmp td:last-child::before{left:2px;top:12px}
}

/* ---------- EASEOS 运行时蓝图 ---------- */
.bp-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}
.bp-fact{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:baseline;padding:18px 22px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(140,180,255,.14)}
.bp-fact b{font-size:34px;font-weight:600;line-height:1;background-image:linear-gradient(100deg,#7fa8ff,#3fc8ef 58%,#2ff5d0)}
.bp-fact span{font-size:14px;color:#fff;font-weight:500}
.bp-fact small{grid-column:1/-1;font-size:12.5px;color:#8a9cc6}
.bp-wrap{display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:16px;align-items:stretch}
.bp-board-wrap{position:relative;display:flex;flex-direction:column;padding:22px 22px 44px;border-radius:24px;border:1px solid rgba(140,180,255,.16);
  background:radial-gradient(70% 60% at 50% 0%,rgba(28,101,255,.16),transparent 60%),linear-gradient(180deg,rgba(10,22,52,.75),rgba(5,12,32,.9))}
.bp-board-wrap::before{content:"";position:absolute;inset:0;border-radius:24px;pointer-events:none;opacity:.35;background-image:linear-gradient(rgba(120,170,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,255,.08) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(180deg,#000,transparent 90%)}
.bp-lane{position:relative;grid-row:var(--r);grid-column:1;display:flex;flex-direction:column;justify-content:center;padding:0 10px 0 14px;border-left:2px solid rgba(140,180,255,.25)}
.bp-lane b{font-size:13.5px;color:#fff;font-weight:600;letter-spacing:.02em}
.bp-lane span{font-size:11.5px;color:#7f93c0;line-height:1.5;margin-top:2px}
.bp-lane:nth-child(1){border-color:#7fa8ff}.bp-lane:nth-child(2){border-color:#4f8bff}.bp-lane:nth-child(3){border-color:#3fc8ef}.bp-lane:nth-child(4){border-color:#2ad9d6}.bp-lane:nth-child(5){border-color:#2ff5d0}
.bp-board{position:relative;flex:1;display:grid;grid-template-columns:140px repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));align-items:center;gap:40px 16px}
.bp-wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.bp-hot .seg{fill:none;stroke:rgba(79,184,255,.45);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}
.bp-hot .seg.lit{stroke:#2ff5d0;filter:drop-shadow(0 0 6px rgba(47,245,208,.6))}
.bp-hot .bead{fill:#fff;filter:drop-shadow(0 0 6px #2ff5d0)}
.bp-node{position:relative;z-index:2;grid-row:var(--r);grid-column:var(--c);display:flex;align-items:center;gap:9px;height:66px;padding:8px 10px;border-radius:12px;text-align:left;cursor:pointer;
  background:rgba(8,18,46,.92);border:1px solid rgba(140,180,255,.22);color:#dbe5fb;font:inherit;transition:border-color .3s,transform .3s,opacity .4s,box-shadow .3s}
.bp-node>svg{flex:none;width:28px;height:28px;padding:6px;border-radius:8px;color:#7fd8ff;background:rgba(79,139,255,.14)}
.bp-n-t{display:flex;flex-direction:column;min-width:0}
.bp-n-t b{font-size:13px;font-weight:600;color:#fff;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bp-n-t small{font-size:11px;color:#7f93c0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.bp-badge{position:absolute;right:10px;top:-9px;font-style:normal;font-size:11px;padding:1px 7px;border-radius:999px;background:#0a1430;border:1px solid rgba(47,245,208,.5);color:#2ff5d0}
.bp-node.on{border-color:rgba(79,184,255,.55)}
.bp-node.on::after{content:attr(data-step);position:absolute;left:-9px;top:-9px;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#1c65ff,#15ace3);color:#fff;font-size:11px;display:grid;place-items:center;box-shadow:0 0 0 3px rgba(5,12,32,.95)}
.bp-node.dim{opacity:.42}
.bp-node.now{border-color:#2ff5d0;box-shadow:0 0 0 1px rgba(47,245,208,.5),0 0 28px -6px rgba(47,245,208,.7)}
.bp-node.now>svg{background:linear-gradient(135deg,#15ace3,#0ef4c6);color:#04261a}
.bp-node:hover,.bp-node:focus-visible{opacity:1;transform:translateY(-2px);border-color:#7fd8ff}
.bp-hint{position:absolute;right:22px;bottom:16px;font-size:11.5px;color:#61739f;letter-spacing:.06em}
.bp-side{display:flex;flex-direction:column;gap:14px;padding:20px;border-radius:24px;border:1px solid rgba(140,180,255,.16);background:linear-gradient(180deg,rgba(12,26,62,.7),rgba(6,14,36,.85))}
.bp-side-hd{display:flex;justify-content:space-between;align-items:center}
.bp-side-lbl,.bp-side-hd>span{font-size:11px;font-weight:600;letter-spacing:.18em;color:#5fd0ff;text-transform:uppercase}
.bp-side-hd button,.bp-detail button{height:30px;padding:0 12px;border-radius:8px;border:1px solid rgba(140,180,255,.3);background:transparent;color:#b8c7ea;font:inherit;font-size:12px;cursor:pointer}
.bp-side-hd button[aria-pressed=true]{color:#2ff5d0;border-color:rgba(47,245,208,.5)}
.bp-traces{display:grid;gap:6px}
.bp-trace{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:rgba(255,255,255,.03);color:#b8c7ea;font:inherit;text-align:left;cursor:pointer;transition:.25s}
.bp-trace svg{flex:none;width:18px;height:18px}
.bp-trace b{display:block;font-size:14px;font-weight:600;color:#fff}
.bp-trace small{font-size:11.5px;color:#7f93c0}
.bp-trace:hover{border-color:rgba(140,180,255,.3)}
.bp-trace[aria-selected=true]{background:linear-gradient(135deg,rgba(28,101,255,.45),rgba(21,172,227,.25));border-color:rgba(79,184,255,.5)}
.bp-path{min-height:0;display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid rgba(140,180,255,.14)}
.bp-path-title b{display:block;font-size:16px;color:#fff;font-weight:600}
.bp-path-title span{font-size:12px;color:#7f93c0}
.bp-steps{list-style:none;display:grid;gap:2px;overflow:auto;max-height:236px;align-content:start;scrollbar-width:thin;scrollbar-color:rgba(140,180,255,.25) transparent}
.bp-steps li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;opacity:.5;transition:.3s}
.bp-steps li i{flex:none;width:20px;height:20px;border-radius:50%;border:1px solid rgba(140,180,255,.35);display:grid;place-items:center;font-size:11px;font-style:normal;color:#9fb6e6}
.bp-steps li b{display:block;font-size:13px;color:#fff;font-weight:500}
.bp-steps li span{font-size:11px;color:#7f93c0}
.bp-steps li.done{opacity:.85}.bp-steps li.done i{border-color:#2ff5d0;color:#2ff5d0}
.bp-steps li.now{opacity:1;background:rgba(47,245,208,.08)}.bp-steps li.now i{background:#2ff5d0;color:#04261a;border-color:#2ff5d0}
.bp-detail{flex:1;padding-top:14px;border-top:1px solid rgba(140,180,255,.14)}
.bp-d-lane{font-size:11px;letter-spacing:.14em;color:#5fd0ff}
.bp-detail h4{font-size:20px;color:#fff;font-weight:600;margin:6px 0 2px}
.bp-d-sub{font-size:12.5px;color:#7fd8ff;margin-bottom:10px}
.bp-detail p{font-size:14px;color:#dbe5fb;line-height:1.75}
.bp-detail button{margin-top:14px}
.bp-chain{padding-top:14px;border-top:1px solid rgba(140,180,255,.14)}
.bp-chain ol{list-style:none;display:flex;align-items:center;gap:4px;margin-top:8px;flex-wrap:wrap}
.bp-chain li{font-size:12px;color:#dbe5fb;padding:4px 9px;border-radius:6px;background:rgba(255,255,255,.05);border:1px solid rgba(140,180,255,.18)}
.bp-chain li:not(:last-child)::after{content:"";display:inline-block;width:10px;height:1px;background:rgba(140,180,255,.4);margin-left:8px;vertical-align:middle}
.bp-chain li:last-child{color:#2ff5d0;border-color:rgba(47,245,208,.4)}
.bp-static{list-style:none;margin-top:16px;color:#a9b8de;font-size:14px;display:grid;gap:6px}
@media (max-width:1180px){
  .bp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bp-wrap{grid-template-columns:1fr}
  .bp-steps{max-height:none}
  .bp-board-wrap{grid-template-columns:1fr;padding:18px 16px 40px}
  .bp-lane{display:none}
  .bp-board{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(5,auto);gap:30px 12px}
  .bp-node{grid-column:calc(var(--c) - 1)}
  .bp-n-t small{display:none}
}
@media (max-width:860px){
  .bp-board{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto;gap:12px 10px}
  .bp-node{grid-row:auto;grid-column:auto;height:auto;min-height:54px}
  .bp-wires{display:none}
  .bp-node.dim{opacity:.6}
  .bp-hint{display:none}
}
