/* ===== base (extracted) ===== */
:root{
  --ink:#0E1726; --ink-2:#3D4A60; --ink-3:#6E7A8F; --ink-4:#97A2B5;
  --line:#E4E9F1; --line-s:#EFF3F8;
  --bg:#FFFFFF; --bg-2:#F7F9FC; --bg-3:#EDF2F8; --bg-4:#E8EEF6;
  --brand:#0B4F9E; --brand-d:#083C78; --brand-dd:#062A55; --brand-l:#E9F0FB;
  --accent:#0E9F8E; --accent-d:#0A7D70; --accent-l:#E4F4F1;
  --gold:#B7791F; --gold-l:#FBF3E2;
  --r-s:8px; --r:12px; --r-l:16px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:"SF Mono","JetBrains Mono",Consolas,Menlo,monospace;
  --sh:0 1px 2px rgba(14,23,38,.04), 0 8px 24px -12px rgba(14,23,38,.10);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink-2);background:var(--bg);line-height:1.75;-webkit-font-smoothing:antialiased;font-size:15px}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{color:var(--ink);font-weight:700;letter-spacing:-.01em;line-height:1.28}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:88px 0}
.section.alt{background:var(--bg-2);border-top:1px solid var(--line-s);border-bottom:1px solid var(--line-s)}
.section.deep{background:var(--bg-3);border-top:1px solid var(--line-s);border-bottom:1px solid var(--line-s)}

/* type helpers */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--brand);text-transform:uppercase}
.eyebrow::before{content:"";width:16px;height:2px;background:var(--brand);border-radius:2px}
.h2{font-size:34px;margin:14px 0 0}
.lede{font-size:17px;color:var(--ink-2);max-width:760px;margin-top:14px}
.sec-head{max-width:800px;margin-bottom:44px}
.mono{font-family:var(--mono)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;border-radius:var(--r-s);font-size:15px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.18s;white-space:nowrap}
.btn-p{background:var(--brand);color:#fff}
.btn-p:hover{background:var(--brand-d)}
.btn-o{background:#fff;color:var(--brand);border-color:#C9D7EC}
.btn-o:hover{border-color:var(--brand);background:var(--brand-l)}
.btn-g{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-g:hover{background:rgba(255,255,255,.1)}
.btn-s{height:38px;padding:0 16px;font-size:14px}
.btn .ar{font-family:var(--mono);font-size:14px}

/* topbar + nav */
.topbar{background:var(--brand-dd);color:#C6D6EC;font-size:12.5px}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;height:34px;gap:16px}
.topbar a:hover{color:#fff}
.topbar .rt{display:flex;gap:18px}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;height:68px;gap:28px}
.logo{display:flex;align-items:center;gap:10px;flex:none}
.logo .mark{width:32px;height:32px;border-radius:7px;background:var(--brand);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;font-family:var(--mono)}
.logo .nm{font-size:16.5px;font-weight:700;color:var(--ink);letter-spacing:.01em;line-height:1.2}
.logo .nm span{display:block;font-size:10.5px;font-weight:600;letter-spacing:.14em;color:var(--ink-4)}
.menu{display:flex;gap:2px;margin-left:auto}
.menu a{font-size:14.5px;color:var(--ink-2);padding:8px 12px;border-radius:6px;transition:.15s}
.menu a:hover{color:var(--brand);background:var(--brand-l)}
.nav-act{display:flex;gap:10px;flex:none}

/* hero */
.hero{padding:72px 0 84px;background:linear-gradient(180deg,#fff 0%,#F8FAFD 100%)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:48px;line-height:1.16;margin:18px 0 0;letter-spacing:-.025em}
.hero h1 em{font-style:normal;color:var(--brand);position:relative}
.hero .lead{font-size:17.5px;margin-top:20px;max-width:540px}
.hero-act{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.hero-note{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:18px;font-size:13.5px;color:var(--ink-3)}
.hero-note b{color:var(--accent-d);font-weight:600}

/* diagnostic card */
.diag{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--sh);padding:26px;position:relative;overflow:hidden}
.diag::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent)}
.diag h3{font-size:18px;display:flex;align-items:center;gap:9px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.diag>p{font-size:13.5px;color:var(--ink-3);margin-top:6px}
.diag-row{display:flex;gap:10px;margin-top:16px}
.diag input{flex:1;min-width:0;height:46px;padding:0 14px;border:1px solid #CFDBEC;border-radius:var(--r-s);font-size:15px;font-family:var(--font);color:var(--ink);background:#fff}
.diag input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.diag-row .btn{flex:none}
.diag-out{margin-top:18px;border:1px solid var(--line-s);border-radius:var(--r);background:var(--bg-2);padding:16px}
.diag-out .hd{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--ink-4);text-transform:uppercase;margin-bottom:12px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.kv div{background:#fff;border:1px solid var(--line-s);border-radius:var(--r-s);padding:10px 12px}
.kv .k{font-size:11.5px;color:var(--ink-4);font-weight:600}
.kv .v{font-size:21px;font-weight:700;color:var(--ink);font-family:var(--mono);line-height:1.3;margin-top:2px}
.kv .v.g{color:var(--accent-d)}
.kv .v.r{color:#C0392B}
.diag-flags{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}
.flag{font-size:12px;padding:3px 9px;border-radius:20px;background:var(--gold-l);color:#8A5D12;border:1px solid #F0DFBC}
.diag-foot{font-size:12px;color:var(--ink-4);margin-top:12px;text-align:center}

/* trust bar */
.trust{border-top:1px solid var(--line-s);border-bottom:1px solid var(--line-s);background:#fff}
.trust .wrap{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;padding-top:26px;padding-bottom:26px}
.plat-label{font-size:12.5px;font-weight:700;color:var(--ink-4);letter-spacing:.06em}
.platforms{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.platforms span{font-size:13.5px;font-weight:600;color:var(--ink-2);border:1px solid var(--line);background:var(--bg-2);padding:5px 13px;border-radius:6px}
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;border-left:1px solid var(--line-s);padding-left:40px}
.metric .n{font-family:var(--mono);font-size:26px;font-weight:700;color:var(--brand);line-height:1.2}
.metric .t{font-size:12.5px;color:var(--ink-3);margin-top:2px}

/* paradigm */
.shift{display:grid;grid-template-columns:1fr 44px 1fr;gap:0;align-items:start}
.serp,.aimock{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--sh)}
.card-cap{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-s)}
.card-cap .badge{font-size:11px;font-weight:700;letter-spacing:.06em;padding:2px 8px;border-radius:20px}
.badge.old{background:var(--bg-3);color:var(--ink-3)}
.badge.new{background:var(--accent-l);color:var(--accent-d)}
.r{display:block;padding:9px 0;border-bottom:1px dashed var(--line-s)}
.r:last-child{border-bottom:none}
.r .u{font-size:11.5px;color:var(--accent-d);font-family:var(--mono)}
.r .t{font-size:13.5px;color:var(--brand);font-weight:600}
.r .d{font-size:12.5px;color:var(--ink-3)}
.r.dim{opacity:.42}
.answer{font-size:14px;line-height:1.85;color:var(--ink-2)}
.answer mark{background:var(--accent-l);color:var(--accent-d);font-weight:600;padding:1px 4px;border-radius:3px}
.answer .miss{background:#FBEDEC;color:#A93226;border-radius:3px;padding:1px 4px;font-weight:600}
.shift-note{font-size:12.5px;color:var(--ink-3);margin-top:12px;padding-top:12px;border-top:1px solid var(--line-s)}
.shift-mid{display:flex;align-items:center;justify-content:center;padding-top:80px;color:var(--ink-4);font-family:var(--mono);font-size:20px}

/* V-C-R */
.vcr{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.vcr-c{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:28px 26px;position:relative;box-shadow:var(--sh)}
.vcr-c .lv{font-family:var(--mono);font-size:38px;font-weight:700;color:var(--brand-l);line-height:1}
.vcr-c h3{font-size:19px;margin-top:14px}
.vcr-c .en{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin-top:4px}
.vcr-c p{font-size:14px;margin-top:12px;color:var(--ink-2)}
.vcr-c ul{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-s);list-style:none}
.vcr-c li{font-size:13.5px;color:var(--ink-3);padding-left:16px;position:relative;margin:6px 0}
.vcr-c li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:2px;background:var(--accent)}

/* capability grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:.2s}
.card:hover{border-color:#C9D7EC;box-shadow:var(--sh);transform:translateY(-2px)}
.card .ic{width:38px;height:38px;border-radius:9px;background:var(--brand-l);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.card h3{font-size:17px}
.card p{font-size:14px;margin-top:8px;color:var(--ink-3)}
.card .more{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:600;color:var(--brand)}
.card .more:hover{color:var(--brand-d)}

/* platform */
.plat-wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center}
.steps{list-style:none;margin-top:24px}
.steps li{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--line-s);font-size:14.5px}
.steps li:last-child{border-bottom:none}
.steps .n{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--brand);background:var(--brand-l);border-radius:5px;width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center}
.steps b{display:block;color:var(--ink);font-size:15px}
.steps span{color:var(--ink-3);font-size:13.5px}
.mock{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh)}
.mock-bar{height:36px;background:var(--bg-3);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 14px;gap:6px}
.mock-bar i{width:9px;height:9px;border-radius:50%;background:#CBD5E5;display:block}
.mock-bar em{font-style:normal;font-size:11.5px;color:var(--ink-4);font-family:var(--mono);margin-left:10px}
.mock-body{display:grid;grid-template-columns:132px 1fr}
.mock-nav{background:var(--bg-2);border-right:1px solid var(--line-s);padding:12px 10px}
.mock-nav span{display:block;font-size:12.5px;color:var(--ink-3);padding:7px 10px;border-radius:6px;margin-bottom:2px}
.mock-nav span.on{background:var(--brand-l);color:var(--brand);font-weight:600}
.mock-main{padding:16px}
.mock-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mock-kpis div{border:1px solid var(--line-s);border-radius:var(--r-s);padding:10px 12px;background:var(--bg-2)}
.mock-kpis .k{font-size:11px;color:var(--ink-4)}
.mock-kpis .v{font-family:var(--mono);font-size:19px;font-weight:700;color:var(--ink);line-height:1.35}
.mock-kpis .v.up{color:var(--accent-d)}
.mock-chart{margin-top:12px;border:1px solid var(--line-s);border-radius:var(--r-s);padding:12px;background:#fff}
.mock-chart .ct{font-size:11.5px;color:var(--ink-4);margin-bottom:6px;display:flex;justify-content:space-between}
.mock-rows{margin-top:12px}
.mock-rows div{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--ink-2);padding:7px 0;border-bottom:1px dashed var(--line-s)}
.mock-rows div:last-child{border-bottom:none}
.tagline{font-size:11px;padding:2px 8px;border-radius:20px;font-weight:600}
.tagline.g{background:var(--accent-l);color:var(--accent-d)}
.tagline.r{background:#FBEEEC;color:#A93226}

/* media network */
.bars{display:grid;gap:16px;margin-top:8px}
.bar-row .lb{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.bar-row .lb b{color:var(--brand);font-family:var(--mono)}
.bar-track{height:12px;background:var(--bg-3);border-radius:20px;overflow:hidden}
.bar-fill{height:100%;border-radius:20px;background:var(--accent)}
.bar-fill.b2{background:var(--brand)}
.bar-fill.b3{background:var(--gold)}
.media-sub{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px;padding-top:24px;border-top:1px solid var(--line-s)}
.media-sub div .n{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--ink)}
.media-sub div .t{font-size:12.5px;color:var(--ink-3)}
.mech{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.mech div{padding:20px;border-right:1px solid var(--line-s)}
.mech div:last-child{border-right:none}
.mech h4{font-size:15px}
.mech p{font-size:13px;margin-top:6px;color:var(--ink-3)}

/* cases */
.case{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:26px;box-shadow:var(--sh)}
.case .ind{font-size:12px;font-weight:700;color:var(--brand);letter-spacing:.06em}
.case h3{font-size:18px;margin-top:8px}
.case .desc{font-size:14px;margin-top:10px;color:var(--ink-3)}
.case .cmp{margin-top:20px;display:grid;gap:12px}
.cmp-row .lb{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-3);margin-bottom:5px}
.cmp-row .lb b{font-family:var(--mono);color:var(--ink)}
.cmp-track{height:22px;background:var(--bg-3);border-radius:5px;overflow:hidden}
.cmp-fill{height:100%;border-radius:5px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;color:#fff;font-size:11.5px;font-weight:700;font-family:var(--mono)}
.cmp-fill.before{background:#C3CCD9}
.cmp-fill.after{background:var(--accent)}
.case .foot{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-s);font-size:12.5px;color:var(--ink-4)}

/* solutions */
.sol{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sol a{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:#fff;transition:.2s}
.sol a:hover{border-color:var(--brand);background:var(--brand-l)}
.sol h4{font-size:16px}
.sol p{font-size:13.5px;margin-top:6px;color:var(--ink-3)}

/* knowledge */
.know{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:start}
.report{background:var(--brand-dd);color:#fff;border-radius:var(--r-l);padding:30px 28px}
.report .tag{font-size:11.5px;font-weight:700;letter-spacing:.1em;color:#8FB6E8}
.report h3{color:#fff;font-size:23px;margin-top:12px;line-height:1.35}
.report p{color:#C6D8EF;font-size:14px;margin-top:12px}
.report .meta{display:flex;gap:20px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16)}
.report .meta div .n{font-family:var(--mono);font-size:20px;font-weight:700;color:#fff}
.report .meta div .t{font-size:11.5px;color:#8FB6E8}
.report .btn{margin-top:22px}
.terms{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.terms .hd{padding:14px 18px;background:var(--bg-2);border-bottom:1px solid var(--line-s);font-size:13px;font-weight:700;color:var(--ink)}
.terms a{display:block;padding:16px 18px;border-bottom:1px solid var(--line-s)}
.terms a:last-child{border-bottom:none}
.terms a:hover{background:var(--bg-2)}
.terms h4{font-size:15.5px}
.terms p{font-size:13.5px;margin-top:5px;color:var(--ink-3)}
.terms .tm{margin-top:8px;font-size:11.5px;color:var(--ink-4);font-family:var(--mono)}

/* dual track */
.tracks{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.track{background:#fff;border:1px solid var(--line);border-radius:var(--r-l);padding:34px 30px;position:relative;box-shadow:var(--sh)}
.track.t-b{border-top:3px solid var(--brand)}
.track.t-a{border-top:3px solid var(--accent)}
.track .who{font-size:12.5px;font-weight:700;letter-spacing:.06em}
.track.t-b .who{color:var(--brand)}
.track.t-a .who{color:var(--accent-d)}
.track h3{font-size:24px;margin-top:10px}
.track>p{font-size:14.5px;margin-top:12px;color:var(--ink-3)}
.track ul{list-style:none;margin-top:20px}
.track li{display:flex;gap:12px;padding:14px 0;border-top:1px solid var(--line-s);font-size:14px}
.track li .n{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--brand);background:var(--brand-l);border-radius:5px;padding:2px 8px;height:fit-content;flex:none}
.track.t-a li .n{color:var(--accent-d);background:var(--accent-l)}
.track li b{display:block;color:var(--ink)}
.track li span{color:var(--ink-3);font-size:13px}
.track-act{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}

/* final cta */
.cta{background:var(--brand-dd);color:#fff}
.cta .wrap{padding-top:72px;padding-bottom:72px;text-align:center}
.cta h2{color:#fff;font-size:34px;margin-top:12px}
.cta p{color:#BED2EC;font-size:17px;max-width:620px;margin:14px auto 0}
.form{display:flex;gap:10px;max-width:560px;margin:28px auto 0;flex-wrap:wrap;justify-content:center}
.form input{flex:1;min-width:220px;height:50px;padding:0 16px;border-radius:var(--r-s);border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.08);color:#fff;font-size:15px;font-family:var(--font)}
.form input::placeholder{color:#8BA6CC}
.form input:focus{outline:none;border-color:#6F9BE0;background:rgba(255,255,255,.12)}
.form .btn{height:50px;background:#fff;color:var(--brand-dd)}
.cta-note{margin-top:16px;font-size:13px;color:#8BA6CC}

/* footer */
footer{background:#0A1526;color:#8E9EB8;font-size:13.5px;padding:56px 0 28px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1.2fr;gap:32px}
.f-grid h5{color:#fff;font-size:13.5px;font-weight:700;margin-bottom:14px;letter-spacing:.02em}
.f-grid ul{list-style:none}
.f-grid li{margin:8px 0}
.f-grid a:hover{color:#fff}
.f-brand .nm{color:#fff;font-size:16px;font-weight:700}
.f-brand p{margin-top:12px;color:#8E9EB8;line-height:1.8}
.f-bottom{margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px;color:#6C7E99}
.machine{margin-top:14px;display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:#6C7E99}
.machine a{color:#7FA3D6;border-bottom:1px dotted #3D5474}

/* knowledge hub sub labels */
.kh-lab{display:flex;align-items:baseline;gap:14px;margin:40px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.kh-lab:first-of-type{margin-top:6px}
.kh-n{font-family:var(--mono);font-size:12px;font-weight:700;color:#fff;background:var(--brand);border-radius:5px;padding:2px 8px;flex:none}
.kh-t{font-size:16px;font-weight:700;color:var(--ink);flex:none}
.kh-d{font-size:13px;color:var(--ink-3)}

/* faq · answer-first blocks */
dl.faq{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.faq-i{border-bottom:1px solid var(--line-s)}
.faq-i:last-child{border-bottom:none}
.faq-i dt{padding:18px 24px 0}
.faq-i dt h3{font-size:16px}
.faq-i dd{padding:8px 24px 20px}
.faq-i dd p{font-size:14.5px;color:var(--ink-2);max-width:860px}
.faq-i dd strong{color:var(--ink);font-weight:600}

/* archive · history data */
.arch-stat{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:34px}
.arch-stat>div{background:#fff;padding:20px 24px}
.arch-stat .an{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--brand);line-height:1.1}
.arch-stat .al{font-size:12.5px;color:var(--ink-3);margin-top:6px}
.arch-map{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.am-hd,.am-row{display:grid;grid-template-columns:1.05fr .45fr 1.3fr 1.5fr;gap:14px;padding:13px 20px;align-items:center}
.am-hd{background:var(--bg-3);font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:.02em}
.am-row{border-top:1px solid var(--line-s);transition:.15s}
.am-row:hover{background:var(--bg-2)}
.am-c b{display:block;font-family:var(--mono);font-size:14px;color:var(--ink)}
.am-c i{font-style:normal;font-size:12px;color:var(--ink-4)}
.am-n{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--accent-d)}
.am-t{font-size:13.5px;color:var(--ink-2)}
.am-u{font-family:var(--mono);font-size:12px;color:var(--brand);background:var(--brand-l);border-radius:5px;padding:4px 9px;justify-self:start}
.am-row-x{background:var(--bg-2)}
.am-row-x .am-n{color:var(--ink-3)}
.arch-split{display:grid;grid-template-columns:1.55fr .8fr;gap:28px;margin-top:34px;align-items:start}
.arch-hd{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:6px}
ol.arch-fix{list-style:none;counter-reset:s}
.arch-fix li{counter-increment:s;position:relative;padding:14px 0 14px 40px;border-bottom:1px solid var(--line-s);font-size:14px}
.arch-fix li:last-child{border-bottom:none}
.arch-fix li::before{content:counter(s);position:absolute;left:0;top:15px;width:24px;height:24px;border-radius:6px;background:var(--brand-l);color:var(--brand);font-family:var(--mono);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.arch-fix b{color:var(--ink)}
.arch-side{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.as-hd{padding:13px 18px;background:var(--bg-2);border-bottom:1px solid var(--line-s);font-size:12.5px;font-weight:700;color:var(--ink)}
.as-row{display:flex;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line-s);font-size:13px;align-items:baseline}
.as-row>span:first-child{font-size:11.5px;color:var(--ink-4);width:26px;flex:none}
.as-row .mono{color:var(--brand);font-size:12px;word-break:break-all}
.as-note{padding:12px 18px 0;font-size:12.5px;color:var(--ink-3);line-height:1.7}

/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* responsive */
@media (max-width:1080px){
  .hero .wrap{grid-template-columns:1fr;gap:40px}
  .hero h1{font-size:38px}
  .trust .wrap{grid-template-columns:1fr;gap:26px}
  .metrics{border-left:none;padding-left:0;border-top:1px solid var(--line-s);padding-top:22px}
  .plat-wrap{grid-template-columns:1fr;gap:36px}
  .know{grid-template-columns:1fr;gap:28px}
  .arch-split,.kh-lab{flex-wrap:wrap;gap:8px}
  .f-grid{grid-template-columns:1fr 1fr 1fr}
  .nav .wrap{height:auto;padding:12px 0 10px;flex-wrap:wrap;gap:12px 20px}
  .menu{margin-left:0;order:3;width:100%;overflow-x:auto;white-space:nowrap;border-top:1px solid var(--line-s);padding-top:8px;-webkit-overflow-scrolling:touch}
  .nav-act{margin-left:auto}
}
@media (max-width:840px){
  .wrap{padding:0 18px}
  .section{padding:60px 0}
  .h2,.cta h2{font-size:26px}
  .hero{padding:48px 0 56px}
  .hero h1{font-size:31px}
  .grid-3,.grid-2,.vcr,.sol,.tracks{grid-template-columns:1fr}
  .shift{grid-template-columns:1fr;gap:18px}
  .shift-mid{padding-top:0;transform:rotate(90deg)}
  .mech{grid-template-columns:1fr 1fr}
  .mech div:nth-child(2){border-right:none}
  .metrics{grid-template-columns:1fr 1fr}
  .media-sub{grid-template-columns:1fr 1fr}
  .f-grid{grid-template-columns:1fr 1fr}
  .mock-body{grid-template-columns:1fr}
  .mock-nav{display:flex;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line-s);white-space:nowrap}
  .topbar .wrap{font-size:11.5px;height:auto;padding:6px 0;flex-wrap:wrap}
  .arch-stat{grid-template-columns:1fr 1fr}
  .arch-split{grid-template-columns:1fr}
  .am-hd{display:none}
  .am-row{grid-template-columns:auto 1fr;gap:4px 12px}
  .am-c{grid-column:1/-1}
  .am-u{grid-column:1/-1}
  .kh-t{flex:none;width:100%}
  .faq-i dt{padding:16px 18px 0}
  .faq-i dd{padding:8px 18px 18px}
  .arch-stat .an{font-size:26px}
}

/* =========================================================
   Tech upgrades · 多页面共用增强层
   ========================================================= */

/* ---------- 通用：网格底纹 / 扫描线 ---------- */
.tgrid{position:relative;isolation:isolate}
.tgrid::before{content:"";position:absolute;inset:0;z-index:-1;
  background-image:linear-gradient(rgba(11,79,158,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(11,79,158,.055) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 0%,transparent 78%);
          mask-image:radial-gradient(120% 90% at 50% 0%,#000 0%,transparent 78%)}
.scan{position:relative;overflow:hidden}
.scan::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(14,159,142,.55),transparent);
  animation:scanline 4.6s linear infinite;opacity:.75}
@keyframes scanline{0%{transform:translateY(0)}100%{transform:translateY(340px)}}

/* ---------- 状态点 ---------- */
.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block;position:relative;flex:none}
.dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);
  animation:pulse 1.9s ease-out infinite}
@keyframes pulse{0%{transform:scale(1);opacity:.65}70%{transform:scale(2.8);opacity:0}100%{opacity:0}}
.live{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;color:var(--accent-d);background:var(--accent-l);
  border:1px solid #C6E7E0;border-radius:99px;padding:3px 10px}

/* ---------- 数字与刻度 ---------- */
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ---------- 子页 hero ---------- */
.phero{padding:52px 0 44px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#F8FAFD)}
.phero .crumb{font-size:12.5px;color:var(--ink-4);font-family:var(--mono);margin-bottom:14px}
.phero .crumb a:hover{color:var(--brand)}
.phero h1{font-size:40px;letter-spacing:-.025em;margin-top:6px}
.phero .sub{font-size:17px;color:var(--ink-2);max-width:760px;margin-top:14px}
.pmeta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px;font-family:var(--mono);font-size:12.5px;color:var(--ink-3)}
.pmeta b{color:var(--brand);font-weight:700}

/* ---------- 数据带 ---------- */
.band{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.band>div{padding:20px 22px;border-right:1px solid var(--line-s)}
.band>div:last-child{border-right:none}
.band .bn{font-family:var(--mono);font-size:27px;font-weight:700;color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums}
.band .bl{font-size:12.5px;color:var(--ink-3);margin-top:5px}
.band .bt{font-size:11.5px;font-family:var(--mono);margin-top:8px}
.band .up{color:var(--accent-d)}
.band .dn{color:#B42318}

/* ---------- 实时看板 ---------- */
.dash{border:1px solid var(--line);border-radius:var(--r-l);background:#fff;box-shadow:var(--sh);overflow:hidden}
.dash-hd{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-s);background:var(--bg-2)}
.dash-hd b{font-size:13.5px;color:var(--ink)}
.dash-hd .sp{flex:1}
.dash-hd .ut{font-family:var(--mono);font-size:11px;color:var(--ink-4)}
.dash-body{padding:18px}
.dash-row{display:grid;grid-template-columns:118px 1fr 92px;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line-s)}
.dash-row:last-child{border-bottom:none}
.dash-row .pf{font-size:13.5px;color:var(--ink);display:flex;align-items:center;gap:8px}
.dash-row .bar{height:7px;border-radius:99px;background:var(--bg-3);overflow:hidden;position:relative}
.dash-row .bar i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,var(--brand),var(--accent));width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.dash-row .vl{text-align:right;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.spark{width:100%;height:132px;display:block}
.spark .ln{fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.spark .ar{fill:url(#sparkGrad)}
.spark .gl{fill:url(#sparkGrad);opacity:.14}
.spark .gr{stroke:var(--line-s);stroke-width:1}

/* ---------- 终端日志流 ---------- */
.term{background:#0B1626;border-radius:var(--r);padding:16px 18px;font-family:var(--mono);font-size:12.5px;color:#7FA3D6;overflow:hidden}
.term .l{display:flex;gap:10px;padding:3px 0;white-space:nowrap}
.term .l .ts{color:#4E6A8F;flex:none}
.term .l .ok{color:#3FD0A8}
.term .l b{color:#CFE0F5;font-weight:500}
.term .cur{display:inline-block;width:7px;height:14px;background:#3FD0A8;vertical-align:-2px;animation:blink 1.1s steps(2) infinite}
@keyframes blink{0%{opacity:1}50%{opacity:0}100%{opacity:1}}

/* ---------- 规格/参数表 ---------- */
.spec{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.spec-t{display:grid;grid-template-columns:200px 1fr;gap:0;border-bottom:1px solid var(--line-s)}
.spec-t:last-child{border-bottom:none}
.spec-t>div{padding:14px 20px;font-size:14px}
.spec-t>div:first-child{background:var(--bg-2);color:var(--ink);font-weight:600;font-size:13.5px;border-right:1px solid var(--line-s)}
.spec-t>div:last-child{color:var(--ink-2)}
.spec-t .mono{font-family:var(--mono);font-size:13px}

/* ---------- 流程/时间线 ---------- */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.flow>div{padding:20px;border-right:1px solid var(--line-s);position:relative}
.flow>div:last-child{border-right:none}
.flow>div .stp{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--brand);background:var(--brand-l);border-radius:5px;padding:2px 8px;display:inline-block}
.flow>div h4{font-size:15.5px;margin-top:10px}
.flow>div p{font-size:13.5px;color:var(--ink-3);margin-top:6px}
.flow>div::after{content:"";position:absolute;right:-1px;top:50%;width:9px;height:9px;border-top:1px solid var(--line);border-right:1px solid var(--line);transform:translateY(-50%) rotate(45deg);background:#fff}

/* ---------- 卡片（科技描边版） ---------- */
.tcard{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:24px;transition:.2s;position:relative;overflow:hidden}
.tcard::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--brand),var(--accent));opacity:0;transition:.2s}
.tcard:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:#CFDCEE}
.tcard:hover::before{opacity:1}
.tcard .tag-m{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--brand);margin-bottom:10px;display:block}
.tcard h3{font-size:17px}
.tcard p{font-size:14px;color:var(--ink-3);margin-top:8px}
.tcard ul{list-style:none;margin-top:12px}
.tcard li{font-size:13.5px;color:var(--ink-2);padding:5px 0 5px 16px;position:relative}
.tcard li::before{content:"";position:absolute;left:2px;top:13px;width:5px;height:5px;border-radius:50%;background:var(--accent)}

/* ---------- 归档页：筛选 + 列表 ---------- */
.arch-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:#fff;margin-bottom:20px}
.arch-tools .chips{display:flex;flex-wrap:wrap;gap:8px;flex:1}
.chip{font-size:13px;padding:6px 13px;border-radius:99px;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;transition:.15s;font-family:inherit}
.chip:hover{border-color:var(--brand);color:var(--brand)}
.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}
.chip em{font-style:normal;font-family:var(--mono);font-size:11.5px;opacity:.7;margin-left:5px}
.arch-tools .fi{flex:1;min-width:200px;position:relative}
.arch-tools input{width:100%;height:38px;border:1px solid var(--line);border-radius:7px;padding:0 12px 0 32px;font-size:14px;font-family:var(--font);color:var(--ink)}
.arch-tools input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
.arch-tools .src{position:absolute;left:11px;top:11px;color:var(--ink-4)}
.alist{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.alist-hd,.arow{display:grid;grid-template-columns:58px 1fr 108px 76px;gap:14px;padding:12px 18px;align-items:center}
.alist-hd{background:var(--bg-2);font-size:12px;font-weight:700;color:var(--ink-3);letter-spacing:.02em;border-bottom:1px solid var(--line-s)}
.arow{border-bottom:1px solid var(--line-s);transition:.14s;text-decoration:none}
.arow:hover{background:var(--bg-2)}
.arow:hover .at{color:var(--brand)}
.arow .no{font-family:var(--mono);font-size:12px;color:var(--ink-4)}
.arow .at{font-size:14.5px;color:var(--ink);font-weight:600;line-height:1.5}
.arow .meta{display:flex;gap:8px;margin-top:5px;font-family:var(--mono);font-size:11px;color:var(--ink-4)}
.arow .meta .cg{color:var(--accent-d);background:var(--accent-l);border-radius:4px;padding:1px 6px}
.arow .dp,.arow .vw{font-family:var(--mono);font-size:12.5px;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}
.alist-empty{padding:44px 20px;text-align:center;color:var(--ink-4);font-size:14px}
.pgn{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:20px}
.pgn button{height:34px;min-width:34px;padding:0 11px;border:1px solid var(--line);background:#fff;border-radius:7px;font-size:13px;color:var(--ink-2);cursor:pointer;font-family:var(--font)}
.pgn button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}
.pgn button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pgn button:disabled{opacity:.45;cursor:not-allowed}
.pgn .dots{color:var(--ink-4);padding:0 4px}

/* ---------- 明细页导航（上一页/下一页） ---------- */
.pnext{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:36px}
.pnext a{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;background:#fff;transition:.18s}
.pnext a:hover{border-color:var(--brand);box-shadow:var(--sh)}
.pnext .lb{font-family:var(--mono);font-size:11.5px;color:var(--ink-4)}
.pnext .tt{font-size:15px;color:var(--ink);font-weight:600;margin-top:6px}
.pnext .nx{text-align:right}

/* ---------- 代码块 ---------- */
pre.code{background:#0B1626;color:#C6D8EF;border-radius:var(--r);padding:18px 20px;overflow-x:auto;
  font-family:var(--mono);font-size:12.5px;line-height:1.8}
pre.code .c{color:#5A7CA5}
pre.code .k{color:#6FD3FF}
pre.code .s{color:#8FE3C4}

/* ---------- 引用块 ---------- */
.quote{border-left:3px solid var(--accent);background:var(--accent-l);border-radius:0 var(--r-s) var(--r-s) 0;padding:16px 20px;font-size:15px;color:var(--ink-2)}
.quote b{color:var(--ink)}

/* ---------- 数据表（静态版） ---------- */
.dtable{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:14px}
.dtable th,.dtable td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line-s)}
.dtable th{background:var(--bg-2);font-size:12.5px;color:var(--ink-2);font-weight:700}
.dtable tr:last-child td{border-bottom:none}
.dtable td.n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
.dtable tbody tr:hover{background:var(--bg-2)}

/* ---------- 二级导航（页内） ---------- */
.subnav{position:sticky;top:68px;z-index:40;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.subnav .wrap{display:flex;gap:4px;overflow-x:auto;white-space:nowrap;padding:10px 24px}
.subnav a{font-size:13.5px;color:var(--ink-2);padding:6px 12px;border-radius:6px}
.subnav a:hover{background:var(--brand-l);color:var(--brand)}
.subnav a.on{color:var(--brand);font-weight:600;box-shadow:inset 0 -2px 0 var(--brand)}

/* ---------- 响应式补充 ---------- */
@media (max-width:1080px){
  .band{grid-template-columns:1fr 1fr}
  .flow{grid-template-columns:1fr 1fr}
  .flow>div:nth-child(2){border-right:none}
}
@media (max-width:840px){
  .phero{padding:36px 0 30px}
  .phero h1{font-size:28px}
  .band{grid-template-columns:1fr 1fr}
  .flow{grid-template-columns:1fr}
  .flow>div{border-right:none;border-bottom:1px solid var(--line-s)}
  .spec-t{grid-template-columns:1fr}
  .spec-t>div:first-child{border-right:none;border-bottom:1px solid var(--line-s)}
  .dash-row{grid-template-columns:96px 1fr 62px;gap:10px}
  .alist-hd{display:none}
  .arow{grid-template-columns:1fr auto;gap:4px 12px}
  .arow .no{display:none}
  .arow .at{grid-column:1/-1}
  .arow .meta{grid-column:1/-1;margin-top:2px}
  .pnext{grid-template-columns:1fr}
  .pnext .nx{text-align:left}
  .subnav{position:static}
}

/* ---------- 导航当前页 ---------- */
.menu a.on{color:var(--brand);background:var(--brand-l);font-weight:600}

/* ================= 文章页 / 索引页 ================= */
.geo-mark{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.art-hero{padding:40px 0 30px;background:linear-gradient(180deg,#F7F9FC,#FFFFFF);border-bottom:1px solid var(--line-s)}
.art-hero h1{font-size:32px;margin:12px 0 0;max-width:900px}
.crumb{font-size:12.5px;color:var(--ink-3);margin-bottom:14px}
.crumb a{color:var(--ink-3)}
.crumb a:hover{color:var(--brand)}
.art{max-width:860px}
.aibrief{background:var(--brand-l);border:1px solid #D3E2F7;border-left:3px solid var(--brand);border-radius:var(--r);padding:20px 22px;margin-bottom:28px}
.ab-h{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--brand);text-transform:uppercase;margin-bottom:8px}
.aibrief p{font-size:15.5px;color:var(--ink);line-height:1.8}
.aibrief ul{margin:12px 0 0 18px;display:grid;gap:6px}
.aibrief li{font-size:14.5px;color:var(--ink-2)}
.prose h2{font-size:21px;margin:34px 0 12px;padding-top:6px}
.prose h2:first-child{margin-top:0}
.prose p{font-size:15.5px;color:var(--ink-2);margin-bottom:12px;line-height:1.85}
.prose ul{margin:0 0 14px 20px;display:grid;gap:6px}
.prose li{font-size:15px;color:var(--ink-2)}
.dtable{width:100%;border-collapse:collapse;margin:14px 0 26px;font-size:14px}
.dtable th,.dtable td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.dtable thead th{background:var(--bg-2);color:var(--ink);font-weight:700}
.dtable tbody th{background:var(--bg-2);color:var(--ink);font-weight:600;white-space:nowrap}
.faq{margin-top:8px;border-top:1px solid var(--line)}
.faq-i{border-bottom:1px solid var(--line);padding:16px 0}
.faq-i dt h3{font-size:16px;margin-bottom:6px}
.faq-i dd p{font-size:15px;color:var(--ink-2)}
.citebox{margin:30px 0 10px;padding:18px 20px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r)}
.citebox .ch{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;margin-bottom:8px}
.citebox p{font-size:14px;color:var(--ink-2);word-break:break-all}
.citebox ul{margin:0 0 0 18px;display:grid;gap:5px}
.citebox li{font-size:13.5px;color:var(--ink-2)}
.relgrid{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.rel-h{font-size:13px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.rel{display:block;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-s);margin-bottom:8px;font-size:14.5px;color:var(--ink);transition:.15s}
.rel:hover{border-color:var(--brand);background:var(--brand-l);color:var(--brand-d)}
.idx-cat{margin-bottom:34px}
.idx-cat h2{font-size:19px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.idx-cat h2 em{font-style:normal;font-size:13px;color:var(--ink-3);font-weight:600;margin-left:8px}
.idx-list{list-style:none;display:grid;gap:2px}
.idx-list li{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line-s);font-size:14px}
.idx-list li a{color:var(--ink);flex:1}
.idx-list li a:hover{color:var(--brand)}
.idx-list li span{font-family:var(--mono);font-size:12px;color:var(--ink-4);flex:none}
@media(max-width:720px){
  .art-hero h1{font-size:24px}
  .dtable{font-size:13px}
  .dtable th,.dtable td{padding:8px 9px}
}

/* ============================================================
   移动端适配层（Mobile Layer）
   原则：移动优先可用性 + 保留桌面视觉效果
   结构：抽屉菜单 / 底部标签栏 / 表格横滑 / 触控目标 / 安全区
   ============================================================ */

/* 防止 iOS 横屏时字体被自动放大 */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

/* 长串英文/URL 在窄屏不撑破容器 */
body{overflow-x:hidden}

/* 触屏设备不要“粘住” hover 态 */
@media (hover:none){
  .menu a:hover,.rel:hover,.btn:hover,.nav-act .btn:hover{background:none;color:inherit}
  .rel:active{background:var(--brand-l);border-color:var(--brand)}
}

/* 键盘可达性：明确的焦点环 */
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;border-radius:4px
}

/* ---------- 表格横向滚动容器（JS 包裹，此处只给样式） ---------- */
.dtw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:14px 0 22px;
     border:1px solid var(--line);border-radius:var(--r);background:#fff}
.dtw .dtable{margin:0;border:none;border-radius:0;min-width:100%;width:auto;white-space:normal}
.dtw-hint{display:none}

/* ================= 断点 1：≤ 900px（平板竖屏 / 大屏手机） ================= */
@media (max-width:900px){
  /* 顶部联系条收进抽屉，释放首屏空间 */
  .topbar{display:none}

  .nav .wrap{height:56px;padding:0 16px;gap:0;justify-content:space-between}
  .logo .nm{font-size:15.5px}
  .logo .nm span{font-size:9.5px}

  /* 原横向滚动菜单改为抽屉，桌面按钮收起 */
  .menu,.nav-act{display:none}

  .wrap{padding:0 16px}

  /* 汉堡按钮 */
  .mburg{display:flex;flex-direction:column;justify-content:center;gap:5px;
         width:44px;height:44px;margin-right:-10px;background:none;border:0;cursor:pointer;padding:0}
  .mburg i{display:block;width:20px;height:2px;background:var(--ink);border-radius:2px;
           transition:transform .22s ease,opacity .18s ease}
  body.mopen .mburg i:nth-child(1){transform:translateY(7px) rotate(45deg)}
  body.mopen .mburg i:nth-child(2){opacity:0}
  body.mopen .mburg i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* 抽屉 */
  .mdraw{position:fixed;top:0;right:0;bottom:0;width:min(86vw,340px);z-index:120;
         background:#fff;box-shadow:-8px 0 32px -12px rgba(14,23,38,.28);
         transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);
         overflow-y:auto;-webkit-overflow-scrolling:touch;
         padding:14px 16px calc(18px + env(safe-area-inset-bottom));
         display:flex;flex-direction:column}
  body.mopen .mdraw{transform:translateX(0)}
  .mscrim{position:fixed;inset:0;background:rgba(14,23,38,.42);z-index:110;
          opacity:0;pointer-events:none;transition:opacity .24s}
  body.mopen .mscrim{opacity:1;pointer-events:auto}
  body.mopen{overflow:hidden}

  .md-hd{display:flex;align-items:center;justify-content:space-between;
         height:46px;margin-bottom:6px;border-bottom:1px solid var(--line-s)}
  .md-hd b{font-size:15px;color:var(--ink)}
  .md-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;
            background:none;border:0;cursor:pointer;position:relative}
  .md-close::before,.md-close::after{content:"";position:absolute;width:17px;height:1.8px;
            background:var(--ink);border-radius:2px}
  .md-close::before{transform:rotate(45deg)}
  .md-close::after{transform:rotate(-45deg)}

  /* 抽屉菜单项：≥48px 触控区 */
  .md-nav{display:flex;flex-direction:column;padding:6px 0}
  .md-nav a{display:flex;align-items:center;justify-content:space-between;
            min-height:48px;padding:0 10px;font-size:15.5px;color:var(--ink);
            border-radius:8px;transition:background .15s}
  .md-nav a:active{background:var(--bg-2)}
  .md-nav a.on{color:var(--brand);background:var(--brand-l);font-weight:600}
  .md-nav a em{font-style:normal;color:var(--ink-4);font-size:16px;font-family:var(--mono)}

  .md-act{display:grid;gap:10px;margin-top:14px;padding-top:16px;border-top:1px solid var(--line-s)}
  .md-act .btn{width:100%;height:46px}

  .md-ct{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-s);
         display:grid;gap:9px}
  .md-ct a{font-size:13.5px;color:var(--ink-2);min-height:34px;display:flex;align-items:center}
  .md-ct a:active{color:var(--brand)}

  /* 底部标签栏 */
  .mtab{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;
        background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(12px);
        border-top:1px solid var(--line);
        padding-bottom:env(safe-area-inset-bottom)}
  .mtab a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
          gap:3px;height:54px;font-size:11px;color:var(--ink-3);
          padding:0 2px;min-width:0}
  .mtab a svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.6}
  /* 标签文字不折行；DravenAI 后的“平台”为可省略后缀 */
  .mtab a span{display:block;max-width:100%;white-space:nowrap;overflow:hidden;
               text-overflow:ellipsis;letter-spacing:.1px}
  .mtab a i{font-style:normal;opacity:.8}
  .mtab a.on{color:var(--brand)}
  .mtab a:active{background:var(--bg-2)}
  body{padding-bottom:calc(54px + env(safe-area-inset-bottom))}

  /* 回到顶部 */
  .mtop{position:fixed;right:14px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:95;
        width:44px;height:44px;border-radius:50%;background:#fff;color:var(--brand);
        border:1px solid var(--line);display:flex;align-items:center;justify-content:center;
        opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;transform:translateY(8px)}
  .mtop.show{opacity:1;pointer-events:auto;transform:translateY(0)}
  .mtop:active{background:var(--brand-l)}

  /* 内容适配 */
  .hero{padding:36px 0 40px}
  .hero h1{font-size:clamp(25px,7.4vw,32px)}
  .hero .lead{font-size:15.5px;margin-top:14px}
  .hero-act{margin-top:22px}
  .hero-act .btn{flex:1 1 100%;height:48px;justify-content:center}
  .section{padding:52px 0}
  .h2{font-size:clamp(21px,6vw,26px)}
  .lede{font-size:15.5px}
  .diag{padding:18px}
  .diag-row{flex-direction:column;gap:8px}
  .diag-row .btn{width:100%;height:46px}
  .kv{grid-template-columns:1fr;gap:8px}
  .metrics{grid-template-columns:1fr 1fr;gap:14px}
  .f-grid{grid-template-columns:1fr;gap:22px}
  .dtable th,.dtable td{padding:9px 10px;font-size:13.5px}
  .prose p,.prose li{font-size:16px;line-height:1.78}
  .prose h2{font-size:19px;margin:28px 0 10px}
  .art-hero h1{font-size:clamp(21px,6.2vw,25px)}
  .art-hero{padding:26px 0 20px}
  .aibrief{padding:15px 16px}
  .rel{padding:13px 14px;min-height:46px;display:flex;align-items:center}
  .subnav .wrap{padding:8px 16px}
  .search-row,.arch-tools{flex-direction:column;align-items:stretch}
  .search-row input,.arch-tools input,.arch-tools select{height:46px}
  .cta .form{grid-template-columns:1fr;gap:10px}
  .cta .form .btn{width:100%;height:48px}
}

/* ================= 断点 2：≤ 600px（主流手机） ================= */
@media (max-width:600px){
  .wrap{padding:0 14px}
  .hero h1{font-size:clamp(23px,7.6vw,28px)}
  .hero .lead{font-size:15px}
  .metrics{grid-template-columns:1fr 1fr;gap:12px}
  .metric .n{font-size:22px}
  .trust .wrap{padding-top:20px;padding-bottom:20px}
  .platforms span{font-size:12.5px;padding:4px 10px}
  /* 表格超过 3 列时提示可横滑 */
  .dtw-hint{display:block;font-size:11.5px;color:var(--ink-4);
            padding:6px 12px;background:var(--bg-2);border-bottom:1px solid var(--line-s)}
  .citebox{padding:14px 15px}
  .citebox p{word-break:break-all;font-size:13px}
  .prose ul{margin-left:16px}
  .idx-list li{font-size:14.5px;padding:9px 0;min-height:44px;align-items:center}
  .faq-i dt{padding:15px 0 0}
  .faq-i dt h3{font-size:16.5px}
  .card,.spec-t,.spec-t>div>div{padding-left:0;padding-right:0}
}

/* ================= 断点 3：≤ 380px（小屏手机） ================= */
@media (max-width:380px){
  .wrap{padding:0 12px}
  .hero h1{font-size:22px}
  .nav .wrap{height:52px}
  .logo .mark{width:28px;height:28px;font-size:12.5px}
  .logo .nm{font-size:14.5px}
  .btn{height:44px;padding:0 16px;font-size:14.5px}
  .mtab a{font-size:10.5px}
  .dtable th,.dtable td{padding:8px;font-size:13px}
}

/* ================= 断点 4：≤ 340px（超小屏手机） =================
   此时单个标签宽度不足，「DravenAI 平台」放不下，只保留主词 DravenAI */
@media (max-width:340px){
  .mtab a i{display:none}
}

/* ================= 系统偏好：暗色模式（轻度适配） ================= */
@media (prefers-color-scheme:dark) and (max-width:900px){
  .mdraw{background:#101725}
  .mdraw .md-hd b,.md-nav a,.md-ct a{color:#DCE5F2}
  .mdraw .md-hd,.md-act,.md-ct{border-color:rgba(255,255,255,.12)}
  .md-close::before,.md-close::after{background:#DCE5F2}
  .mtab{background:rgba(16,23,37,.94);border-color:rgba(255,255,255,.12)}
  .mtop{background:#1B2432;border-color:rgba(255,255,255,.14);color:#8FB6E8}
}

/* ================= 系统偏好：减弱动效 ================= */
@media (prefers-reduced-motion:reduce){
  .mdraw{transition:none}
  .mtop{transition:none}
  .mscrim{transition:none}
}

/* ================= 打印：移动端组件不出现 ================= */
@media print{
  .mtab,.mtop,.mdraw,.mscrim,.mburg{display:none!important}
}
