/* 主页「Key 不离开 9coding」区块(docs/开发包S-数据安全.md §4)。只在首页加载(i18n.json pages.index.css),地址带内容哈希。
   左:结论与要点;右:调用方 → 9 环 → 模型服务的图(静态 SVG 终态 + 有 JS 时盖上画布播一次)。配色守设计系统:白线、青色只表示状态 */
.obs-sec{--sc-c:var(--obs-glow,#75f6ff);--sc-ink:var(--obs-ink,#f4f6f8);--sc-s:var(--obs-ink-soft,#b8bdc6);--sc-u:var(--obs-ink-muted,#7c818d);--sc-l:var(--obs-line,rgba(255,255,255,.082));--sc-m:"Geist Mono",var(--font-mono,ui-monospace,monospace);border-bottom:1px solid var(--sc-l)}
.sc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:center}
.sc-copy h2{margin:0;color:var(--sc-ink);font-size:clamp(2rem,3.6vw,3.1rem);line-height:1.16;letter-spacing:-.03em;text-wrap:balance;word-break:keep-all}
/* 标题只在空格处换行:加载不到网络字体、回退字体更宽时,也不会把「不离开」拆成两行 */
.sc-lede{margin:16px 0 0;max-width:34em;color:var(--sc-s);font-size:1.02rem;line-height:1.7}
.sc-list{display:grid;gap:14px;margin:30px 0 0;padding:0;list-style:none}
.sc-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:start;color:var(--sc-s);font-size:.95rem;line-height:1.65}
.sc-i{width:18px;height:18px;margin-top:3px;fill:none;stroke:var(--sc-c);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.sc-stage{position:relative}
.sc-fig{position:relative;margin:0;aspect-ratio:560/300;border:1px solid var(--sc-l);border-radius:14px;background:radial-gradient(70% 80% at 50% 45%,rgba(117,246,255,.05),transparent 70%),rgba(255,255,255,.012)}
.sc-svg,.sc-cv{position:absolute;inset:0;width:100%;height:100%}
.sc-cv{display:none}
.obs-sec.is-js .sc-cv{display:block}
.obs-sec.is-js .sc-final{display:none}
/* 图形(构建期 SVG) */
.sc-path{fill:none;stroke:rgba(255,255,255,.14);stroke-width:1.1;stroke-dasharray:3 5}
.sc-back{stroke:rgba(255,255,255,.1)}
.sc-node{fill:#0c0e12;stroke:rgba(255,255,255,.16);stroke-width:1}
.sc-glyph,.sc-rose{fill:none;stroke:var(--sc-s);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.sc-ring{fill:#0b0d10;stroke:rgba(117,246,255,.34);stroke-width:1}
.sc-ring2{fill:none;stroke:rgba(117,246,255,.14);stroke-width:.8}
.sc-tick{fill:none;stroke:rgba(117,246,255,.32);stroke-width:1}
.sc-nine{fill:rgba(117,246,255,.09);stroke:var(--sc-c)}
.sc-dot{fill:#1ab0f3}
.sc-halo{fill:rgba(117,246,255,.1)}
.sc-card{fill:#0f1216;stroke:rgba(255,255,255,.13);stroke-width:1}
.sc-teth{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1}
.sc-t{font-family:var(--sc-m);font-size:10.5px;font-weight:500;fill:var(--sc-s)}
.sc-dim{fill:var(--sc-u)}
.sc-cred{fill:var(--sc-c)}
/* 节点标签(真实文字,随图缩放定位) */
.sc-lab{position:absolute;transform:translateX(-50%);font-family:var(--sc-m);font-size:12px;font-weight:500;letter-spacing:.02em;color:var(--sc-u);white-space:nowrap;pointer-events:none}
.sc-replay{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(10,10,12,.7);color:var(--sc-s);font:inherit;font-size:12.5px;cursor:pointer;transition:color .2s,border-color .2s}
.sc-replay:hover{color:var(--sc-ink);border-color:rgba(117,246,255,.45)}
.sc-replay:focus-visible{outline:2px solid var(--sc-c);outline-offset:2px}
.obs-sec [hidden]{display:none!important}
.sc-ri{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:899px){.sc-grid{grid-template-columns:minmax(0,1fr)}.sc-stage{order:2}}
@media(max-width:479px){.sc-lab{font-size:10.5px}.sc-list li{font-size:.92rem}}
@media(forced-colors:active){.sc-i,.sc-path,.sc-glyph,.sc-rose,.sc-ring,.sc-tick,.sc-nine,.sc-card,.sc-teth,.sc-node{stroke:CanvasText}.sc-node,.sc-ring,.sc-card{fill:Canvas}.sc-nine,.sc-halo,.sc-ring2{fill:none}.sc-t,.sc-cred,.sc-dim,.sc-dot{fill:CanvasText}.sc-cv,.sc-replay{display:none!important}.obs-sec.is-js .sc-final{display:inline}}
/* 加载后才打开「减弱动效」:同样回到 SVG 终态 */
@media(prefers-reduced-motion:reduce){.sc-cv,.sc-replay{display:none!important}.obs-sec.is-js .sc-final{display:inline}}
@media print{.sc-cv,.sc-replay{display:none!important}.obs-sec.is-js .sc-final{display:inline}}
