.zstage{--ease:cubic-bezier(.45, .05, .2, 1);--z-bg:#f4f4f2;--z-card:#fafaf8;--z-soft:#ececea;--z-line:#8c8d90;--z-ink:#1f2124;--z-muted:#5a5f68;--z-icon:#3a3e45;--z-acc:#3d5a80;--z-accbg:#e8eef7;--z-grid:#15171a0d;--core:#e8eef7;--core-b:#3d5a80;--cap:#d2e5d7;--cap-b:#335e43;--app:#ececea;--app-b:#5a5f68;--infra:#e4e4e1;--infra-b:#5a5f68;--gov:#fbede3;--gov-b:#9b371f;--amber:#efe7d4;--amber-b:#5e5038;--tag:#15171a;--tag-f:#ececea;transform-origin:0 0;background:var(--z-bg);width:1600px;height:900px;color:var(--z-ink);font-family:var(--font-geist-sans), system-ui, sans-serif;background-image:radial-gradient(var(--z-grid) 1.2px, transparent 1.2px);background-size:22px 22px;position:relative;overflow:hidden}.zstage .cap{z-index:20;pointer-events:none;background:linear-gradient(to bottom, var(--z-bg) 0, var(--z-bg) 84%, transparent);padding:16px 28px 22px;position:absolute;top:0;left:0;right:0}.zstage .kick{font:400 12.5px/1 var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--z-muted)}.zstage .kick .n{width:20px;height:20px;color:var(--z-card);letter-spacing:0;vertical-align:-5px;background:var(--z-ink);border-radius:4px;justify-content:center;align-items:center;margin-right:8px;font-size:11px;display:inline-flex}.zstage .ttl{font:500 24px/1.2 var(--font-geist-sans), system-ui, sans-serif;letter-spacing:-.01em;margin:7px 0 0}.zstage .sub{max-width:1480px;font:400 15.5px/1.4 var(--font-geist-sans), system-ui, sans-serif;color:var(--z-muted);margin:4px 0 0}.zstage .part{pointer-events:none;transition:opacity .6s;position:absolute;inset:0}.zstage .part *{pointer-events:auto}.zstage .part.off{opacity:0}.zstage .part.off *{pointer-events:none}.zstage .part.dim{opacity:.35}.zstage .house{border:2px solid var(--cap-b);background:color-mix(in srgb, var(--z-card) 88%, transparent);border-radius:14px;width:1000px;height:420px;position:absolute;top:140px;left:300px}.zstage .tab{border:1.5px solid var(--z-line);background:var(--z-card);height:26px;font:600 12px var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--z-ink);border-radius:14px;align-items:center;gap:8px;padding:0 12px 0 4px;display:flex;position:absolute}.zstage .tab .n{border:1.5px solid var(--z-ink);letter-spacing:0;border-radius:50%;justify-content:center;align-items:center;width:19px;height:19px;font-size:11px;display:inline-flex}.zstage .house>.tab{border-color:var(--cap-b);top:-14px;left:18px}.zstage .grpbox{border:1.5px solid var(--z-line);background:var(--z-soft);border-radius:10px;position:absolute}.zstage .grpbox>.tab{top:-13px;left:10px}.zstage .grpbox.guard{border-color:var(--gov-b);background:color-mix(in srgb, var(--gov) 35%, transparent);border-style:dashed}.zstage .grpbox.guard>.tab{border-color:var(--gov-b);color:var(--gov-b)}.zstage .col{flex-direction:column;gap:18px;display:flex;position:absolute}.zstage .row{align-items:stretch;gap:14px;display:flex;position:absolute}.zstage .card{background:var(--z-card);border:1.5px solid var(--z-line);border-top:3px solid var(--c-b);transition:box-shadow .35s, opacity .35s, transform .35s var(--ease);border-radius:8px;align-items:flex-start;gap:9px;padding:8px 9px;display:flex;position:relative}.zstage .card .ic,.zstage .node .ic{background:var(--c);border-radius:6px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.zstage .ic svg{fill:none;width:17px;height:17px;stroke:var(--z-icon);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.zstage .card b{font:650 14px/1.2 var(--font-geist-sans), system-ui, sans-serif;display:block}.zstage .card.gc i{font-size:11.5px}.zstage .card i{font:400 12px/1.3 var(--font-geist-sans), system-ui, sans-serif;color:var(--z-muted);margin-top:2px;font-style:normal;display:block}.zstage .card .bk{border:1.5px solid var(--z-ink);background:var(--z-card);width:21px;height:21px;font:600 11px/18px var(--font-geist-mono), ui-monospace, monospace;text-align:center;border-radius:50%;position:absolute;top:-11px;right:-8px}.zstage .card .zl{font:500 11px var(--font-geist-mono), ui-monospace, monospace;color:var(--z-acc);border:1px solid var(--z-acc);border-radius:4px;margin-top:5px;padding:1px 6px;text-decoration:none;display:inline-block}.zstage .card.lit,.zstage .node.lit{box-shadow:0 0 0 2px var(--c-b), 0 6px 18px #00000021;transform:translateY(-2px)}.zstage .card.fade,.zstage .node.fade{opacity:.18}.zstage .cat-cap{--c:var(--cap);--c-b:var(--cap-b)}.zstage .cat-app{--c:var(--app);--c-b:var(--app-b)}.zstage .cat-gov{--c:var(--gov);--c-b:var(--gov-b)}.zstage .cat-amber{--c:var(--amber);--c-b:var(--amber-b)}.zstage .cat-infra{--c:var(--infra);--c-b:var(--infra-b)}.zstage .cat-core{--c:var(--core);--c-b:var(--core-b)}.zstage .cat-tag{--c:var(--tag-f);--c-b:var(--tag)}.zstage .node{background:var(--z-card);border:2px solid var(--c-b);text-align:center;width:120px;height:76px;transition:box-shadow .35s, opacity .35s, transform .35s var(--ease);border-radius:10px;padding-top:9px;position:absolute}.zstage .node .ic{margin:0 auto 5px}.zstage .node b{font:700 15px var(--font-geist-sans), system-ui, sans-serif}.zstage .bus{border:1.5px solid var(--infra-b);background:var(--infra);width:952px;height:40px;font:400 13px var(--font-geist-sans), system-ui, sans-serif;color:var(--z-ink);border-radius:8px;align-items:center;gap:12px;padding:0 14px;display:flex;position:absolute;top:506px;left:324px}.zstage .bus .tg{font:600 11.5px var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--infra-b);white-space:nowrap}.zstage .bus b{white-space:nowrap}.zstage .bus span:last-child{color:var(--z-muted)}.zstage .bracket{background:var(--z-bg);font:600 11.5px var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--z-muted);border-top:1.5px solid var(--z-line);text-align:center;padding-top:4px;position:absolute}.zstage svg.wires{z-index:4;pointer-events:none;width:1600px;height:900px;position:absolute;inset:0;overflow:visible}.zstage .wires path{fill:none;stroke:var(--z-muted);stroke-width:1.6px;transition:opacity .6s}.zstage .wires .trace{stroke-width:2.2px}.zstage .wires .ring{stroke:var(--cap-b);stroke-width:2px;stroke-dasharray:6 6;animation:1.2s linear infinite zrun}.zstage .wires .ring.back{stroke:var(--gov-b)}@keyframes zrun{to{stroke-dashoffset:-12px}}.zstage .wires text{font:500 12px var(--font-geist-mono), ui-monospace, monospace;fill:var(--z-muted)}.zstage .wires circle.pt{fill:var(--z-card);stroke:var(--z-ink);stroke-width:2.5px}.zstage .cfg{background:var(--z-card);border:2px solid var(--cap-b);z-index:8;border-radius:12px;width:660px;padding:18px 22px;position:absolute;top:150px;left:150px}.zstage .cfg .yb{font:500 13px var(--font-geist-mono), ui-monospace, monospace;border:1.5px solid var(--z-ink);background:var(--z-card);color:var(--z-ink);border-radius:5px;padding:5px 10px;position:absolute;top:16px;right:16px}.zstage .cfg h2{font:700 26px/1.15 var(--font-geist-sans), system-ui, sans-serif;margin:0 0 10px}.zstage .cfg h2 span{color:var(--z-muted);font-weight:400}.zstage .cl{border-top:1px solid var(--z-line);font:400 14.5px/1.3 var(--font-geist-sans), system-ui, sans-serif;grid-template-columns:12px 150px 1fr;align-items:baseline;gap:10px;padding:6px 0;display:grid}.zstage .cl .d{background:var(--c-b);border-radius:3px;align-self:center;width:10px;height:10px}.zstage .cl b{font:600 13px var(--font-geist-mono), ui-monospace, monospace}.zstage .cfg .ft{font:700 15.5px var(--font-geist-sans), system-ui, sans-serif;margin-top:10px}.zstage .vars{z-index:8;width:600px;position:absolute;top:150px;left:850px}.zstage .vc{background:var(--z-card);border:1.5px solid var(--z-line);border-top:3px solid var(--cap-b);border-radius:10px;margin-bottom:12px;padding:11px 15px}.zstage .vc h3{font:700 17px var(--font-geist-sans), system-ui, sans-serif;margin:0 0 5px}.zstage .vc div{font:400 13.5px/1.35 var(--font-geist-sans), system-ui, sans-serif;padding:2px 0}.zstage .vc div b{font:600 12.5px var(--font-geist-mono), ui-monospace, monospace;margin-right:8px}.zstage .intro{flex-direction:column;gap:14px;width:480px;display:flex;position:absolute;top:250px;left:560px}@media (prefers-reduced-motion:reduce){.zstage *{transition:none!important;animation:none!important}}
