/* 版式与字号统一 + 四个图形化演示（VDI 桌面 / 本地模型 / AI 自运维 / 中央 Agent 团队）。最后加载，覆盖前面各文件的零散字号。 */

/* ───────── 字号体系（桌面）：标题两档、正文 16、列表 14、最小 12 ───────── */
@media(min-width:901px){
  [data-page] .eyebrow{font-size:12px!important;letter-spacing:.16em!important;font-weight:700!important;margin-bottom:18px!important}
  :is(.always-on,.business-chapter,.control,.mobile-section,.security-section,.local-model-section,.faq-section,.journey-section) h2{font-size:clamp(36px,3.75vw,58px)!important;font-weight:700!important;line-height:1.2!important;letter-spacing:-.025em!important}
  :is(.workspace,.film-section,.private-assistant,.experience-section) h2{font-size:clamp(32px,3.1vw,48px)!important;font-weight:700!important;line-height:1.2!important;letter-spacing:-.022em!important}
  [data-page]:not(.manifesto):not(.closing) h2 em{font-family:var(--serif)!important;font-style:italic!important;font-weight:500!important}
  :is(.mobile-copy,.business-chapter-copy,.control-copy,.journey-heading,.private-heading,.experience-intro)>p:not(.eyebrow),.security-intro,.section-intro,.lm2-lead,.opc2-lead{font-size:16px!important;line-height:1.85!important;color:#5f6f86!important}
  .business-chapter-points li,.feature-copy li,.journey-step p,.feature-copy>p{font-size:14px!important}
  .mobile-points b,.experience-overview b{font-size:15px!important}
  .mobile-points small,.experience-overview small,.security-principles p,.private-layer p,.private-principle p{font-size:13px!important}
  .security-principles h3{font-size:16px!important}
  .mobile-points li>span,.security-principles article>span,.experience-overview li>span{font:italic 500 24px/1.2 var(--serif)!important}
  .business-chapter-number{font-size:14px!important;letter-spacing:.06em}
  .feature-tabs button{font-size:14px!important}
  .feature-tabs button span{font-size:12px!important}
  .feature-copy h3{font-size:25px!important;line-height:1.36!important}
  .workspace .feature-stage{height:clamp(380px,calc(100svh - 352px),700px)}
}
.demo-label,.report-item-state,.report-intro,.agenda-state,.agenda-resources span,.agenda-resource,.example-tag,.team-state,.approval-status,.audit-line span,.window-bar>span,.floating-note small,.scroll-cue span,.manifesto-top span,.private-layer-owner,.private-footer span,.private-footer p,.private-footer a,.private-layer-items span,.film-caption p,.film-caption a,.film-play,.inference-heading span,.local-boundary-label,.inference-card small,.feature-caption,.hero-meta,.mobile-scope{font-size:12px!important}
.report-kicker,.journey-kicker,.feature-kicker,.private-layer-index,.principle-index{display:none!important}

/* ───────── 版式变化 ───────── */
.lm2-lead,.opc2-lead{max-width:31em;margin:0 0 6px}
.lm2-stage,.opc2-stage,.ops2-visual{min-width:0}
@media(min-width:901px){
  /* 6 本地模型、11 一人公司：标题一行在上，通栏画面在下 */
  .lm2,.opc2{display:flex!important;flex-direction:column;justify-content:center;align-items:stretch!important;gap:clamp(16px,3.2svh,40px)!important}
  .lm2-head,.opc2-head{display:flex;justify-content:space-between;align-items:flex-end;gap:6%}
  .lm2-stage{height:clamp(270px,47svh,520px)}
  .opc2-stage{height:clamp(300px,51svh,560px)}
  /* 10 AI 自运维：画面在左，文字在右 */
  .ops2{grid-template-columns:1.2fr .8fr!important;gap:6.5%!important}
  .ops2-visual{height:clamp(340px,60svh,620px)}
  .ops2-visual .dm-in{font-size:clamp(9px,min(2.15cqw,2.7cqh),19px)}
  /* 8 私人助理、14 数据不出网：左右互换 */
  .business-personal{grid-template-columns:1fr .82fr!important}
  .business-personal .business-chapter-copy{order:2}
  .security-section{grid-template-columns:1.1fr .9fr!important}
  .security-section .security-copy{order:2}
}
@media(max-width:900px){
  .lm2-head,.opc2-head{display:block}
  .lm2-lead,.opc2-lead{margin-top:14px;font-size:14px;line-height:1.85;color:#5f6f86}
  .lm2-stage{height:300px;overflow-x:auto;margin-top:24px}
  .lm2-stage>.dm{position:relative;inset:auto;width:780px;height:100%}
  .opc2-stage{height:350px;overflow-x:auto;margin-top:24px}
  .opc2-stage>.dm{position:relative;inset:auto;width:740px;height:100%}
  .ops2 .business-chapter-copy{order:-1}
  .ops2-visual{aspect-ratio:1.02}
}

/* ───────── VDI 桌面 ───────── */
.dm-vdi{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;position:relative;border-radius:1.2em;overflow:hidden;background:radial-gradient(80% 90% at 85% 0%,#c9dcfb,transparent 65%),linear-gradient(160deg,#e9f1fc,#d3dff4);border:1px solid #fff;box-shadow:0 2.2em 5em -2em #1e487359}
.dm-vbar{display:flex;align-items:center;gap:.8em;padding:.6em 1em;background:#163475;color:#e8effa;font-size:.98em;white-space:nowrap}
.dm-vbar b{font-weight:650}
.dm-vnet{margin-left:auto;display:inline-flex;align-items:center;gap:.5em;opacity:.78;font-size:.92em}
.dm-vnet svg{width:1.25em;height:1.25em}
.dm-vdesk{position:relative;overflow:hidden}
.dm-vwin{position:absolute;left:3.5%;top:7%;width:59%;bottom:8%;display:flex;flex-direction:column;border-radius:.9em;background:#fff;box-shadow:0 1.6em 3.6em -1.4em #15243d80,0 0 0 1px #15243d14;overflow:hidden}
.dm-vsheet{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 40%;gap:1em;padding:1em}
.dm-vgrid{position:relative;display:grid;grid-template-columns:repeat(8,1fr);grid-auto-rows:1fr;gap:.35em}
.dm-vgrid i{border-radius:.3em;background:#eef2f8;min-height:1em}
.dm-vgrid i.h{background:#d6e1f3}
.dm-vsel{position:absolute;left:-.25em;top:-.25em;width:0;height:0;border:2px solid var(--b);background:#235aea17;border-radius:.4em;opacity:0;transition:width .95s cubic-bezier(.6,.05,.2,1),height .95s cubic-bezier(.6,.05,.2,1),opacity .2s}
.dm-vsel.on{width:calc(100% + .5em);height:calc(100% + .5em);opacity:1}
.dm-vchart{display:flex;align-items:stretch;gap:.7em;padding:.9em .8em .6em;border-radius:.8em;background:#f4f7fc}
.dm-vchart div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.4em;font-size:.9em;color:var(--m)}
.dm-vchart i{width:100%;height:calc(var(--v)*.8%);border-radius:.4em .4em 0 0;background:linear-gradient(#235aea,#8fb3ff);transform-origin:50% 100%;transform:scaleY(0);transition:transform .8s cubic-bezier(.2,1.2,.3,1)}
.dm-vchart div.on i{transform:none}
.dm-vai{position:absolute;right:0;top:0;bottom:0;width:33%;display:flex;flex-direction:column;background:#fffffff5;border-left:1px solid #fff;box-shadow:-1.2em 0 2.6em -1.6em #15243d73;transform:translateX(104%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
.dm-vai.open{transform:none}
.dm-vai .dm-inp{margin:0 .8em .8em}
.dm-vtask{display:flex;align-items:center;gap:.7em;padding:.5em 1em;background:#ffffffe0;border-top:1px solid #fff}
.dm-vstart{display:grid;place-items:center;width:2em;height:2em;border-radius:.55em;background:var(--b);color:#fff}
.dm-vstart svg{width:1.15em;height:1.15em}
.dm-vtask>i{width:2em;height:2em;border-radius:.55em;background:#dfe7f5}
.dm-vaibtn{margin-left:auto;display:inline-flex;align-items:center;gap:.45em;padding:.45em .95em;border-radius:.75em;background:#fff;border:1px solid var(--l);font-weight:650;font-size:.98em;white-space:nowrap;transition:background .3s,color .3s,box-shadow .3s}
.dm-vaibtn svg{width:1.15em;height:1.15em;color:var(--b);transition:color .3s}
.dm-vaibtn.on{background:var(--b);border-color:var(--b);color:#fff;box-shadow:0 0 0 .3em #235aea33}
.dm-vaibtn.on svg{color:#fff}
.dm-vtask time{font-size:.92em;color:var(--m);font-variant-numeric:tabular-nums}
.dm-cur{transition:transform .9s cubic-bezier(.6,.05,.2,1),opacity .3s}
.dm-cur.off{opacity:0}
.dm-me svg{fill:#163475;filter:drop-shadow(0 .3em .5em #16347580)}
.dm-me em{background:#163475}
.dm-me::after{border-color:#163475}

/* ───────── 本地模型（SVG） ───────── */
.dm-models{width:100%;height:100%}
.dm-models svg{width:100%;height:100%;font-family:var(--sans)}
.dm-models text{text-anchor:middle}
.dm-models .zone{fill:#fffdf7cc;stroke:var(--g);stroke-width:2;stroke-dasharray:8 7;animation:dm-march 1.4s linear infinite}
.dm-models .z{font-size:13px;font-weight:700;fill:#96690f;letter-spacing:.12em;text-anchor:start}
.dm-models .lock rect{fill:#fbf0d6}
.dm-models .lock text{fill:#96690f}
.dm-models .rack{fill:#fff;stroke:#dfe6f1;stroke-width:1.5}
.dm-models .gcard{fill:#f3f6fc;stroke:#dfe6f1}
.dm-models .fan circle{fill:#fff;stroke:#c9d5e8;stroke-width:1.5}
.dm-models .fan path{stroke:#9fb1cc;stroke-width:2;stroke-linecap:round}
.dm-models .fan.spin{animation:dm-spin 1.1s linear infinite}
@keyframes dm-spin{to{transform:rotate(360deg)}}
.dm-models .vr{fill:#dfe7f3;transition:fill .25s}
.dm-models .vr.on{fill:var(--b)}
.dm-models .mem{fill:#e8eef7}
.dm-models .memv{fill:#9db9f5;transition:width .3s}
.dm-models .pipe{fill:none;stroke:#c7d3e6;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:2 10}
.dm-models .pipe.on{stroke:var(--b);animation:dm-pipe .7s linear infinite}
@keyframes dm-pipe{to{stroke-dashoffset:-12}}
.dm-models .ringbg{fill:none;stroke:#e3eaf6;stroke-width:12}
.dm-models .ring{fill:none;stroke:var(--b);stroke-width:12;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0;transform:rotate(-90deg);transform-origin:500px 171px;transition:stroke-dashoffset .12s linear}
.dm-models .core{fill:#fff;stroke:#dfe6f1}
.dm-models .spark{fill:var(--b)}
.dm-models .pct{font-size:16px;font-weight:700;fill:var(--i);font-variant-numeric:tabular-nums}
.dm-models .kind rect{fill:#eef2f8;transition:fill .3s}
.dm-models .kind text{fill:#7b8aa2;transition:fill .3s}
.dm-models .kind.on rect{fill:#e4edff}
.dm-models .kind.on text{fill:#1f4fd0}
.dm-models .who>circle:first-child{fill:#eef2f8;stroke:#dfe6f1;stroke-width:2;transition:fill .3s,stroke .3s}
.dm-models .who .t2{fill:#9aa9bf;transition:fill .3s}
.dm-models .who .tick{fill:var(--ok);opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.3);transition:opacity .25s,transform .35s cubic-bezier(.2,1.6,.4,1)}
.dm-models .who .tickm{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .25s}
.dm-models .who.on>circle:first-child{fill:#e4edff;stroke:var(--b)}
.dm-models .who.on .t2{fill:#1f4fd0}
.dm-models .who.on .tick{opacity:1;transform:none}
.dm-models .who.on .tickm{opacity:1}
.dm-models .t1{font-size:19px;font-weight:700;fill:var(--i)}
.dm-models .t2{font-size:18px;font-weight:650}
.dm-models .t3{font-size:12px;font-weight:650;fill:#5d6e89}
.dm-models .t4{font-size:13px;fill:var(--m)}
.dm-models .ts{text-anchor:start}

/* ───────── AI 自运维 ───────── */
.dm-ops{display:flex;flex-direction:column;gap:1.1em;height:100%;padding:1.4em 1.5em;border-radius:1.5em;background:#0f1f3d;color:#e8effa;box-shadow:0 2.4em 5.5em -2.2em #0f1f3db3;position:relative;overflow:hidden}
.dm-ops::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 92% 0%,#27449a,transparent 70%);opacity:.75;pointer-events:none}
.dm-ops>*{position:relative}
.dm-obar{display:flex;align-items:center;gap:.7em;font-size:1.06em;white-space:nowrap}
.dm-obar b{font-weight:650}
.dm-obar>span:not([class]){opacity:.6}
.dm-oled{width:.6em;height:.6em;border-radius:50%;background:#35d39a;box-shadow:0 0 0 .3em #35d39a33}
.dm-oai{margin-left:auto;display:inline-flex;align-items:center;gap:.5em;padding:.4em .5em .4em .8em;border-radius:99px;background:#ffffff14;font-weight:650}
.dm-oai svg{width:1.2em;height:1.2em;color:#7fa8ff}
.dm-oai em{font-style:normal;font-weight:560;font-size:.88em;padding:.32em .75em;border-radius:99px;background:#235aea;color:#fff}
.dm-otiles{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:.9em}
.dm-otile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto 1fr;align-items:center;gap:.5em .7em;padding:1em;border-radius:1.1em;background:#ffffff0d;border:1px solid #ffffff1f;transition:opacity .4s,transform .5s cubic-bezier(.2,1.2,.3,1),border-color .3s,background .3s,box-shadow .3s}
.dm-otile.off{opacity:0;transform:translateY(1em) scale(.94)}
.dm-oico{display:grid;place-items:center;width:2.4em;height:2.4em;border-radius:.7em;background:#ffffff14;color:#9db9f5}
.dm-oico svg{width:1.4em;height:1.4em}
.dm-otile b{font-size:1.08em;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-otile>i{width:.65em;height:.65em;border-radius:50%;background:#35d39a;box-shadow:0 0 0 .28em #35d39a2e}
.dm-otile>svg{grid-column:1/-1;width:100%;height:2.2em;align-self:end}
.dm-otile>svg path{fill:none;stroke:#35d39a;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-dasharray:60 14;animation:dm-beat 1.6s linear infinite}
@keyframes dm-beat{to{stroke-dashoffset:-74}}
.dm-otile.scan{border-color:#7fa8ff;background:#235aea33;box-shadow:0 0 0 .25em #235aea40}
.dm-otile.bad{border-color:#ff6f7d;background:#ff6f7d1f;animation:dm-shake .4s 2}
.dm-otile.bad>i{background:#ff6f7d;box-shadow:0 0 0 .28em #ff6f7d33}
.dm-otile.bad>svg path{stroke:#ff6f7d;stroke-dasharray:3 6;animation-play-state:paused}
.dm-otile.fix{border-color:var(--g);background:#e9b5521f}
.dm-otile.fix>i{background:var(--g);animation:dm-blink .6s steps(2,jump-none) infinite}
.dm-otile.fix>svg path{stroke:var(--g)}
@keyframes dm-shake{25%{translate:-.25em 0}75%{translate:.25em 0}}
.dm-oline{display:flex;align-items:center;gap:.6em}
.dm-oline span{display:inline-flex;align-items:center;gap:.5em;font-size:1em;opacity:.38;transition:opacity .4s;white-space:nowrap}
.dm-oline span b{display:grid;place-items:center;width:2em;height:2em;border-radius:50%;background:#ffffff14;transition:background .4s}
.dm-oline span b svg{width:1.1em;height:1.1em}
.dm-oline span.on{opacity:1}
.dm-oline span.on b{background:#235aea}
.dm-oline u{flex:1;height:1px;min-width:.5em;background:#ffffff2e}
.dm-otoast{position:absolute;right:1.5em;bottom:4.7em;display:grid;gap:.3em;max-width:62%;padding:.8em 1.1em;border-radius:1em;background:#fff;color:#163475;box-shadow:0 1.4em 3em -1em #000a;opacity:0;transform:translateY(.8em);transition:opacity .35s,transform .45s cubic-bezier(.2,1.2,.3,1),background .3s}
.dm-otoast.show{opacity:1;transform:none}
.dm-otoast b{font-size:1.04em}
.dm-otoast span{font-size:.94em;color:var(--m)}
.dm-otoast.bad b{color:var(--bad)}
.dm-otoast.ok b::before{content:"✓ ";color:var(--ok)}
.dm-otoast.ask{background:#fdf6e3}
.dm-otoast em{font-style:normal;display:inline-block;padding:.35em .8em;border-radius:.6em;border:1px solid #ecc97f;background:#fff;color:#5b4208;transition:background .2s,transform .2s}
.dm-otoast em.hit{background:var(--g);border-color:var(--g);font-weight:700;transform:scale(.95)}

/* ───────── 中央 Agent 团队 ───────── */
.dm-team{position:relative;display:flex;flex-direction:column;justify-content:space-between;height:100%}
.dm-twires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.dm-twires .w{fill:none;stroke:#a89877;stroke-width:1.4;stroke-dasharray:3 6;opacity:.75}
.dm-twires .p{fill:none;stroke:var(--b);stroke-width:4;stroke-linecap:round;stroke-dasharray:7 100;stroke-dashoffset:8;opacity:0}
.dm-twires .p.go{opacity:1;animation:dm-go 1s cubic-bezier(.5,0,.3,1) forwards}
.dm-twires .p.back{opacity:1;stroke:var(--ok);animation:dm-back 1s cubic-bezier(.5,0,.3,1) forwards}
@keyframes dm-go{from{stroke-dashoffset:8}to{stroke-dashoffset:-100}}
@keyframes dm-back{from{stroke-dashoffset:-100}to{stroke-dashoffset:8}}
.dm-ttop,.dm-tbots{position:relative;z-index:1}
.dm-ttop{display:flex;align-items:center;justify-content:center;gap:1.2em}
.dm-tme{display:grid;place-items:center;flex:none;width:3.4em;height:3.4em;border-radius:50%;background:#163475;color:#fff}
.dm-tme svg{width:1.7em;height:1.7em}
.dm-tsay{padding:.75em 1.2em;border-radius:1.2em 1.2em 1.2em .3em;background:#fff;box-shadow:0 1em 2.4em -1.2em #1e487366;font-size:1.14em;min-width:15.5em;min-height:3em;display:flex;align-items:center}
.dm-thub{position:relative;display:grid;place-items:center;flex:none;width:7em;height:7em;margin-inline:.8em}
.dm-thub span{display:grid;place-items:center;width:5em;height:5em;border-radius:50%;background:var(--b);color:#fff;box-shadow:0 1.2em 2.6em -.8em #235aeab3;z-index:1}
.dm-thub span svg{width:2.4em;height:2.4em}
.dm-thub i{position:absolute;inset:0;border-radius:50%;border:2px solid #235aea66;opacity:0}
.dm-thub.live i{animation:dm-ripple 1.8s ease-out infinite}
.dm-thub.live i:nth-child(2){animation-delay:.9s}
@keyframes dm-ripple{from{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.45)}}
.dm-tstat{display:grid;gap:.3em;font-size:1em;min-width:9em}
.dm-tstat b{font-size:1.16em;font-weight:700}
.dm-tstat span{color:var(--m)}
.dm-tstat em{font-style:normal;font-weight:700;color:var(--i);font-variant-numeric:tabular-nums;margin-left:.3em}
.dm-tbots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.1em}
.dm-tbot{display:grid;gap:.8em;padding:.9em;background:#fff;border:1.5px solid #e6dfd0;border-radius:1.2em;transition:border-color .3s,box-shadow .4s,transform .4s cubic-bezier(.2,.8,.2,1)}
.dm-tbot.live{border-color:var(--b);box-shadow:0 1.4em 3em -1.4em #235aea99;transform:translateY(-.4em)}
.dm-tbot.wait{border-color:var(--g);box-shadow:0 0 0 .3em #e9b55240}
.dm-tbot.fin{border-color:#8fd4b5}
.dm-tscreen{height:5.4em;border-radius:.7em;background:#0f1f3d;padding:.8em;display:grid;gap:.45em;align-content:start;overflow:hidden}
.dm-tscreen i{height:.3em;border-radius:.2em;background:#ffffff33;width:var(--w)}
.dm-tbot.live .dm-tscreen i{background:#7fa8ff;animation:dm-scan 1.1s ease-in-out infinite alternate}
.dm-tbot.live .dm-tscreen i:nth-child(2){animation-delay:.2s}
.dm-tbot.live .dm-tscreen i:nth-child(3){animation-delay:.4s}
@keyframes dm-scan{from{width:18%}to{width:92%}}
.dm-tinfo{display:flex;align-items:center;gap:.7em;min-width:0}
.dm-tring{flex:none;display:grid;place-items:center;width:2.8em;height:2.8em;border-radius:50%;background:radial-gradient(#fff 56%,transparent 58%),conic-gradient(var(--b) calc(var(--p)*1%),#e6ebf3 0)}
.dm-tring em{display:grid;place-items:center;opacity:0;color:var(--ok);transition:opacity .3s}
.dm-tring em svg{width:1.2em;height:1.2em;stroke-width:2.6}
.dm-tbot.wait .dm-tring{background:radial-gradient(#fff 56%,transparent 58%),conic-gradient(var(--g) calc(var(--p)*1%),#e6ebf3 0)}
.dm-tbot.fin .dm-tring{background:radial-gradient(#fff 56%,transparent 58%),conic-gradient(var(--ok) 100%,#e6ebf3 0)}
.dm-tbot.fin .dm-tring em{opacity:1}
.dm-tinfo b{display:block;font-size:1.06em;font-weight:650;white-space:nowrap}
.dm-tinfo small{font-size:.92em;color:var(--m)}
.dm-tbot.live small{color:var(--b)}
.dm-tbot.wait small{color:#96690f}
.dm-tbot.fin small{color:#137a52}

@media(max-width:560px){
  .dm-vwin{left:4%;top:4%;width:92%;bottom:47%}
  .dm-vai{left:0;top:auto;width:auto;height:45%;border-left:0;border-top:1px solid #fff;transform:translateY(104%)}
  .dm-vnet{display:none}
}
