/* 暗调蓝光 · 数字孪生工厂控制台 */
:root{
  --bg:#070d18;--panel:#0d1626;--panel2:#111c30;--line:#1e3a5f;--ink:#e8f2ff;--mute:#8aa0bd;
  --cyan:#3de7ff;--blue:#2a7dff;--steel:#163a66;--ok:#3dffb5;--warn:#ffb347;
  --font:"Trebuchet MS","Segoe UI",sans-serif;--display:"Segoe UI",Tahoma,sans-serif;--mono:Consolas,"Lucida Console",monospace;
  --glow:0 0 24px rgba(61,231,255,.22);--radius:6px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:
  radial-gradient(ellipse 80% 50% at 20% -10%,rgba(42,125,255,.18),transparent 55%),
  radial-gradient(ellipse 60% 40% at 90% 10%,rgba(61,231,255,.08),transparent 50%),
  linear-gradient(180deg,#050a12 0%,var(--bg) 40%,#09101c 100%);line-height:1.6}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.04;background-image:linear-gradient(rgba(61,231,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(61,231,255,.5) 1px,transparent 1px);background-size:48px 48px;z-index:0}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.wrap{width:min(1140px,92%);margin:0 auto;position:relative;z-index:1}

/* 顶栏：孪生控制台 */
.twin-bar{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);background:rgba(7,13,24,.88);border-bottom:1px solid var(--line);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.twin-bar-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.72rem 0}
.twin-brand{display:flex;align-items:center;gap:.7rem}
.twin-mark{width:36px;height:36px;border-radius:4px;background:linear-gradient(145deg,var(--steel),#0a1f3d);border:1px solid var(--cyan);color:var(--cyan);display:grid;place-items:center;font-weight:800;font-family:var(--mono);font-size:.85rem;box-shadow:var(--glow)}
.twin-name{font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:.04em}
.twin-sub{display:block;font-family:var(--mono);font-size:.62rem;color:var(--cyan);letter-spacing:.12em;margin-top:.1rem}
.twin-nav{display:flex;flex-wrap:wrap;gap:.2rem;font-size:.88rem;color:var(--mute)}
.twin-nav a{padding:.4rem .7rem;border:1px solid transparent;border-radius:4px}
.twin-nav a:hover,.twin-nav a[aria-current="page"]{color:var(--cyan);border-color:var(--line);background:rgba(61,231,255,.06)}
.twin-status{display:flex;align-items:center;gap:.45rem;font-family:var(--mono);font-size:.68rem;color:var(--ok);letter-spacing:.08em}
.twin-status i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok);display:block;animation:pulse 2s ease infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* 首屏：工厂控制舱 */
.control-hero{padding:1.5rem 0 2rem}
.control-shell{display:grid;grid-template-columns:72px 1.05fr .95fr;gap:.75rem;align-items:stretch}
.telemetry{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.7rem .45rem;display:flex;flex-direction:column;align-items:center;gap:.85rem}
.telemetry span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;color:var(--cyan)}
.telemetry b{font-family:var(--mono);font-size:.7rem;color:var(--mute);text-align:center;line-height:1.3}
.console-panel{background:linear-gradient(165deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.35rem;box-shadow:inset 0 0 40px rgba(61,231,255,.04),0 16px 40px rgba(0,0,0,.35);position:relative;overflow:hidden}
.console-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(61,231,255,.03) 50%,transparent 100%);pointer-events:none;animation:scan 6s linear infinite}
@keyframes scan{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}
.console-kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--cyan);margin-bottom:.55rem;text-transform:uppercase}
.console-title{font-family:var(--display);font-size:clamp(1.85rem,3.8vw,2.85rem);line-height:1.12;margin:0 0 .75rem;letter-spacing:.02em;text-shadow:0 0 28px rgba(61,231,255,.25)}
.console-lead{margin:0 0 1.15rem;color:var(--mute);max-width:36rem}
.console-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:148px;padding:.78rem 1.1rem;border-radius:4px;border:1px solid transparent;font-weight:700;white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;font-size:.92rem}
.btn-cyan{background:linear-gradient(135deg,var(--cyan),#1ab8d4);color:#041018;box-shadow:var(--glow)}
.btn-cyan:hover{filter:brightness(1.08)}
.btn-blue{background:linear-gradient(135deg,var(--blue),#1558c4);color:#fff}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--cyan)}
.btn-ghost:hover{border-color:var(--cyan);background:rgba(61,231,255,.08)}
.btn-ink{background:#061022;border-color:var(--line);color:var(--ink)}
.req-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.req-cell{background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:4px;padding:.55rem .6rem}
.req-cell strong{display:block;font-family:var(--mono);font-size:.68rem;color:var(--cyan);letter-spacing:.08em;margin-bottom:.2rem}
.req-cell span{font-size:.8rem;color:var(--mute)}
.viewport{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.viewport-label{padding:.55rem .85rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--cyan);border-bottom:1px solid var(--line);background:rgba(61,231,255,.04);display:flex;justify-content:space-between}
.viewport .hero-media{flex:1;display:flex;align-items:center;justify-content:center;padding:0;margin:0;background:#0a1220;align-self:center}
.viewport .hero-media img{width:100%;height:auto;object-fit:contain;object-position:center}

/* 分区头 */
.bay-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--line)}
.bay-head h2{font-family:var(--display);font-size:clamp(1.3rem,2.3vw,1.75rem);margin:0;letter-spacing:.03em}
.bay-head h2 em{font-style:normal;color:var(--cyan);font-family:var(--mono);font-size:.75rem;margin-right:.55rem;letter-spacing:.1em}
.bay-head p{margin:0;color:var(--mute);font-size:.9rem;max-width:26rem;text-align:right}
.section{padding:2.2rem 0}

/* 下载：机位卡 */
.bay-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
.bay-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.5rem;position:relative;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.bay-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.7}
.bay-card:hover{border-color:var(--cyan);box-shadow:var(--glow)}
.bay-id{font-family:var(--mono);font-size:.7rem;color:var(--cyan);letter-spacing:.1em}
.bay-card h3{margin:0;font-size:1.1rem}
.bay-meta{margin:0;padding:0;list-style:none;font-size:.84rem;color:var(--mute)}
.bay-meta li{display:flex;justify-content:space-between;gap:.4rem;padding:.3rem 0;border-bottom:1px dashed rgba(30,58,95,.8)}
.bay-meta li:last-child{border-bottom:0}
.bay-meta strong{color:var(--ink);font-family:var(--mono);font-size:.8rem}
.bay-card .btn{width:100%;margin-top:auto}

/* 功能：传感器节点 */
.node-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.65rem}
.node{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);padding:1rem .85rem;text-align:center;transition:transform .2s ease,border-color .2s ease}
.node:hover{transform:translateY(-3px);border-color:rgba(61,231,255,.45)}
.node-ico{width:42px;height:42px;margin:0 auto .6rem;border-radius:50%;border:1px solid var(--cyan);background:rgba(61,231,255,.08);display:grid;place-items:center;color:var(--cyan);box-shadow:0 0 16px rgba(61,231,255,.15)}
.node-ico svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.node h3{margin:0 0 .3rem;font-size:.95rem}
.node p{margin:0;font-size:.8rem;color:var(--mute)}

/* 方案：孪生模型区 */
.twin-split{display:grid;grid-template-columns:1fr 1.05fr;gap:1.1rem;align-items:center}
.twin-copy{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.25rem}
.twin-copy h2{font-family:var(--display);font-size:clamp(1.25rem,2.3vw,1.7rem);margin:0 0 .7rem}
.twin-copy p{margin:0 0 .85rem;color:var(--mute)}
.twin-points{margin:0 0 1rem;padding:0;list-style:none}
.twin-points li{display:grid;grid-template-columns:88px 1fr;gap:.5rem;padding:.5rem 0;border-bottom:1px solid rgba(30,58,95,.7);font-size:.9rem}
.twin-points li:last-child{border-bottom:0}
.twin-points b{font-family:var(--mono);font-size:.7rem;color:var(--cyan);letter-spacing:.06em;padding-top:.15rem}
.twin-gallery{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:auto auto;gap:.55rem}
.twin-gallery .g1{grid-row:1/3}
.twin-gallery figure{margin:0;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#0a1220}
.twin-gallery img{width:100%;height:100%;object-fit:cover}

/* 信任 */
.trust-deck{padding:2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(22,58,102,.25),transparent)}
.trust-board{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem 1.2rem;box-shadow:var(--glow)}
.trust-stat{font-family:var(--display);font-size:clamp(1.5rem,3vw,2.2rem);margin:0 0 .35rem;color:var(--cyan);text-shadow:0 0 20px rgba(61,231,255,.35)}
.trust-desc{margin:0 0 1rem;color:var(--mute)}
.trust-brands{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}
.trust-brands span{padding:.45rem .85rem;border:1px solid var(--line);border-radius:4px;background:rgba(61,231,255,.04);font-size:.86rem;font-weight:700;color:var(--mute)}

/* 资讯帮助 */
.split-console{display:grid;grid-template-columns:1.15fr .85fr;gap:.75rem}
.board{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem}
.board h2{font-family:var(--display);font-size:1.2rem;margin:0 0 .85rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.news-list{display:flex;flex-direction:column;gap:.55rem}
.news-item{display:grid;grid-template-columns:96px 1fr;gap:.75rem;align-items:center;padding:.5rem;border:1px solid transparent;border-radius:4px}
.news-item:hover{border-color:var(--line);background:rgba(61,231,255,.04)}
.news-item img{width:96px;height:68px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
.news-item h3{margin:0 0 .2rem;font-size:.92rem}
.news-item p{margin:0;font-size:.8rem;color:var(--mute)}
.help-mini{margin:0;padding:0;list-style:none}
.help-mini li{border-bottom:1px dashed rgba(30,58,95,.8)}
.help-mini li:last-child{border-bottom:0}
.help-mini a{display:block;padding:.65rem 0;font-size:.9rem;color:var(--mute)}
.help-mini a:hover{color:var(--cyan)}
.help-mini strong{display:block;color:var(--ink);margin-bottom:.15rem;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em}

/* CTA */
.cta-command{padding:2.2rem 0 2.5rem}
.cta-panel{display:grid;grid-template-columns:1.15fr .85fr;gap:0;border:1px solid var(--cyan);border-radius:var(--radius);overflow:hidden;box-shadow:var(--glow);background:linear-gradient(120deg,#0a1a33,#0d223f)}
.cta-main{padding:1.5rem 1.35rem}
.cta-main h2{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.85rem);margin:0 0 .5rem}
.cta-main p{margin:0 0 1rem;color:var(--mute)}
.cta-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.cta-side{background:rgba(61,231,255,.06);border-left:1px solid var(--line);padding:1.35rem 1.15rem}
.cta-side ul{margin:0;padding:0;list-style:none}
.cta-side li{padding:.5rem .6rem;margin-bottom:.4rem;border:1px solid var(--line);border-radius:4px;font-size:.88rem;background:rgba(0,0,0,.2)}
.cta-side li:last-child{margin-bottom:0}

.site-footer{border-top:1px solid var(--line);padding:1.4rem 0 2rem;color:var(--mute);font-size:.86rem;background:#050a12}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1.2rem;margin-bottom:1rem}
.site-footer h3{margin:0 0 .5rem;color:var(--cyan);font-size:.92rem;font-family:var(--mono);letter-spacing:.08em}
.site-footer ul{margin:0;padding:0;list-style:none}
.site-footer li{margin:.28rem 0}
.site-footer a:hover{color:var(--cyan)}
.copyright{padding-top:.8rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.72rem}

/* 内页 */
.page-hero{padding:1.5rem 0 1rem;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(42,125,255,.1),transparent)}
.page-hero h1{font-family:var(--display);font-size:clamp(1.5rem,3vw,2.15rem);margin:0 0 .4rem}
.page-hero p{margin:0;color:var(--mute);max-width:42rem}
.dl-layout{display:grid;grid-template-columns:210px 1fr;gap:.75rem;padding:1.2rem 0 2.4rem;align-items:start}
.dl-side{position:sticky;top:68px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.55rem}
.dl-side a{display:block;padding:.55rem .65rem;border-radius:4px;font-size:.88rem;color:var(--mute);font-family:var(--mono);font-size:.78rem;letter-spacing:.04em}
.dl-side a:hover,.dl-side a.is-active{background:rgba(61,231,255,.1);color:var(--cyan)}
.dl-main{display:flex;flex-direction:column;gap:.7rem}
.dl-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem;scroll-margin-top:80px}
.dl-block h2{margin:0 0 .7rem;font-size:1.15rem}
.dl-row{display:grid;grid-template-columns:140px 1fr auto;gap:1rem;align-items:center}
.dl-row img{width:140px;border-radius:4px;border:1px solid var(--line)}
.dl-row h3{margin:0 0 .25rem;font-size:1.02rem}
.dl-row p{margin:0;font-size:.86rem;color:var(--mute)}

.help-layout{display:grid;grid-template-columns:220px 1fr;gap:.75rem;padding:1.2rem 0 2.4rem;align-items:start}
.help-toc{position:sticky;top:68px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:.55rem}
.help-toc a{display:block;padding:.5rem .65rem;border-radius:4px;font-size:.86rem;color:var(--mute)}
.help-toc a:hover{background:rgba(61,231,255,.1);color:var(--cyan)}
.help-content{display:flex;flex-direction:column;gap:.7rem}
.help-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.15rem;scroll-margin-top:80px}
.help-block h2{margin:0 0 .5rem;font-size:1.12rem;color:var(--cyan)}
.help-block p,.help-block li{color:var(--mute);font-size:.9rem}
.help-block ul{margin:.4rem 0 0;padding-left:1.1rem}
.help-visual{margin-top:.85rem;border-radius:4px;overflow:hidden;border:1px solid var(--line);max-width:420px}

@media (max-width:980px){
  .control-shell{grid-template-columns:1fr}
  .telemetry{flex-direction:row;justify-content:space-between;writing-mode:horizontal-tb}
  .telemetry span{writing-mode:horizontal-tb;transform:none}
  .twin-split,.split-console,.cta-panel,.dl-layout,.help-layout,.footer-grid{grid-template-columns:1fr}
  .bay-grid{grid-template-columns:repeat(2,1fr)}
  .node-grid{grid-template-columns:repeat(2,1fr)}
  .node:last-child{grid-column:1/-1}
  .cta-side{border-left:0;border-top:1px solid var(--line)}
  .dl-side,.help-toc{position:static}
  .dl-row{grid-template-columns:1fr}
  .bay-head{flex-direction:column;align-items:start}
  .bay-head p{text-align:left}
  .twin-status,.twin-nav{display:none}
}
@media (max-width:600px){
  .bay-grid,.node-grid,.req-rail,.twin-gallery{grid-template-columns:1fr}
  .twin-gallery .g1{grid-row:auto}
  .news-item{grid-template-columns:1fr}
  .console-actions,.cta-actions{flex-direction:column}
  .console-actions .btn,.cta-actions .btn{width:100%}
}

/* Hero 强制规则 */
.hero-media,.viewport .hero-media{align-self:center;height:auto;padding:0;margin:0;overflow:visible}
.hero-media img,.viewport .hero-media img{
  display:block;width:100%;height:auto;object-fit:contain;object-position:center;
  min-height:0;max-height:none;margin:0;padding:0;clip-path:none;transform:none;
}
.control-shell{align-items:center}
.btn,.bay-card .btn,.cta-actions .btn,.dl-row .btn{
  white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;
  display:inline-flex;align-items:center;justify-content:center;
}
