:root{--bg:#0a0e15;--panel:#121924;--panel-2:#0e141d;--line:#233045;--text:#e8edf5;--muted:#8b98ab;--accent:#4f8cff;--ok:#3ddc84;--bad:#ff5f6d;--warn:#ffb648;--gpu:#9b7bff;--chip-bg:#1b2740;--chip-line:#2c3f63;--chip-text:#cfe0ff;--endpoint-bg:#0d1626;--endpoint-line:#1f2f4d;--endpoint-text:#9fbaf0;--meter-bg:#1b2434;--mapping-bg:#0b1220;--bar-idle:#2a2447;--dim-line:#3a4557;--dim-text:#5c6a7e;--dim-text-2:#7a8798;--packet-bg:#1b2a47;--packet-bad-bg:#3a1a20;--packet-routed-bg:#261f4a;--caption-bg:#0c1119;--boundary:#2b3a52;--glow-accent:#4f8cff40;--glow-gpu:#9b7bff33;--glow-ok:#3ddc8414}html[data-theme=light]{--bg:#f3f5f9;--panel:#fff;--panel-2:#f4f6fa;--line:#d8dfe9;--text:#131a26;--muted:#5b6a7f;--accent:#2563eb;--ok:#15803d;--bad:#dc2626;--warn:#b45309;--gpu:#6d4fd6;--chip-bg:#e7eefc;--chip-line:#b9cdf5;--chip-text:#1e3a8a;--endpoint-bg:#eef3fc;--endpoint-line:#c4d4f2;--endpoint-text:#2b4fa8;--meter-bg:#e3e8f0;--mapping-bg:#fff;--bar-idle:#e6e2f6;--dim-line:#c3cbd7;--dim-text:#7b8797;--dim-text-2:#66738a;--packet-bg:#e7eefc;--packet-bad-bg:#fde2e4;--packet-routed-bg:#ece6ff;--caption-bg:#fff;--boundary:#b7c3d4;--glow-accent:#2563eb2e;--glow-gpu:#6d4fd629;--glow-ok:#15803d14}html[data-theme=light] .packet{box-shadow:0 2px 10px #2563eb2e}html[data-page=explainer],html[data-page=explainer] body{background:var(--bg);height:100%;color:var(--text);margin:0;font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Inter,sans-serif;overflow:hidden}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.viewport{justify-content:center;align-items:center;display:flex;position:absolute;inset:44px 0 72px}.stage{transform-origin:50%;flex:none;width:1200px;height:600px;position:relative}svg.wires{pointer-events:none;width:1200px;height:600px;position:absolute;inset:0;overflow:visible}svg.wires path{fill:none;stroke:var(--line);stroke-width:2px}svg.wires path.cloud{stroke:var(--warn);opacity:.5}svg.wires path.store{stroke:var(--accent);opacity:.35;stroke-dasharray:4 4}.boundary{border:2px dashed var(--boundary);border-radius:18px;width:785px;height:486px;transition:all .5s;position:absolute;top:8px;left:405px}.boundary .lbl{background:var(--bg);color:var(--muted);letter-spacing:.8px;text-transform:uppercase;padding:2px 10px;font-size:11px;position:absolute;top:-11px;left:18px}.boundary.glow{border-color:var(--ok);box-shadow:0 0 0 4px var(--glow-ok), inset 0 0 40px var(--glow-ok)}.boundary.glow .lbl{color:var(--ok)}.client{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:250px;height:72px;padding:9px 12px;transition:border-color .3s,box-shadow .3s;position:absolute}.client .app{justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.client .key{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:112px;font-size:9.5px;overflow:hidden}.client .alias{background:var(--chip-bg);border:1px solid var(--chip-line);color:var(--chip-text);opacity:0;border-radius:999px;margin-top:5px;padding:2px 9px;font-size:11px;display:inline-block;transform:scale(.6)}.client .alias.in{opacity:1;transition:all .35s cubic-bezier(.2,.9,.3,1.3);transform:scale(1)}.client.sending{border-color:var(--accent)}.client.receiving{border-color:var(--ok);box-shadow:0 0 18px #3ddc8433}.client.denied{border-color:var(--bad)}.client .typing{align-items:flex-end;gap:3px;height:10px;display:flex;position:absolute;bottom:10px;right:12px}.client .typing i{background:var(--ok);opacity:0;border-radius:2px;width:14px;height:3px}.client .badge{background:var(--bad);color:#fff;opacity:0;border-radius:6px;padding:2px 7px;font-size:10px;transition:all .3s;position:absolute;top:9px;right:10px}.client .badge.in{opacity:1}.gateway{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:330px;height:444px;transition:all .4s;position:absolute;top:30px;left:430px}.gateway.glow{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow-accent), 0 0 40px var(--glow-accent)}.gw-head{justify-content:space-between;align-items:baseline;padding:12px 16px 0;display:flex}.gw-head b{font-size:15px}.gw-head span{color:var(--muted);font-size:11px}.endpoint{color:var(--endpoint-text);background:var(--endpoint-bg);border:1px solid var(--endpoint-line);border-radius:6px;margin:6px 16px 0;padding:2px 8px;font-size:11px;display:inline-block}.row{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;align-items:center;gap:10px;height:52px;padding:0 12px;transition:all .3s;display:flex;position:absolute;left:14px;right:14px}.row .n{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.row .txt{flex:1;line-height:1.25}.row .txt b{font-size:13px;display:block}.row .txt span{color:var(--muted);font-size:11px}.row .chk{text-align:center;width:20px;font-weight:700}.row.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--glow-accent), 0 0 18px var(--glow-accent)}.row.active .n{border-color:var(--accent);color:var(--accent)}.row.done{border-color:#3ddc8480}.row.done .n{border-color:var(--ok);color:var(--ok)}.row.done .chk:after{content:"✓";color:var(--ok)}.row.bad{border-color:var(--bad)}.row.bad .chk:after{content:"✕";color:var(--bad)}.row .meter{background:var(--meter-bg);border-radius:3px;width:110px;height:5px;margin-top:3px;display:none;overflow:hidden}.row .meter i{background:var(--accent);width:0;height:100%;transition:width .8s;display:block}.row.show-meter .meter{display:block}.row .counters{color:var(--muted);gap:10px;font-size:11px;display:flex}.row .counters b{color:var(--text);font-variant-numeric:tabular-nums}.gw-foot{color:var(--muted);text-align:center;font-size:10.5px;position:absolute;bottom:12px;left:16px;right:16px}.mapping{background:var(--mapping-bg);border:1px solid var(--gpu);opacity:0;z-index:6;border-radius:10px;width:300px;padding:8px 12px;font-size:11px;transition:all .35s;position:absolute;top:180px;left:445px;transform:translateY(6px)}.mapping.in{opacity:1;transform:none}.roles{background:var(--mapping-bg);border:1px solid var(--accent);opacity:0;z-index:6;border-radius:10px;width:314px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9.5px;transition:all .35s;position:absolute;top:252px;left:440px;transform:translateY(6px)}.roles.in{opacity:1;transform:none}.roles .r-row{color:var(--chip-text);border-radius:4px;gap:6px;padding:1.5px 0;display:flex}.roles .r-row.head{color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:3px;padding-bottom:4px}.roles .r-row .team{flex:0 0 80px}.roles .r-row .models{color:var(--gpu);flex:0 0 96px}.roles .r-row.head .models{color:var(--muted)}.roles .r-row .data{text-align:right;color:var(--muted);flex:1}.roles .r-row.on{background:var(--glow-accent);box-shadow:0 0 0 3px var(--glow-accent)}.roles .r-row.on .team,.roles .r-row.on .data{color:var(--accent)}.audit{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:250px;height:92px;padding:7px 12px;transition:all .35s;position:absolute;top:400px;left:920px;overflow:hidden}.audit.wrote{border-color:var(--accent);box-shadow:0 0 0 2px var(--glow-accent)}.audit .a-head{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.audit .a-head b{font-size:11.5px}.audit .a-head span{color:var(--muted);font-size:9px}.audit .a-rows{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.audit .a-row{opacity:0;transition:all .3s;transform:translate(-5px)}.audit .a-row.in{opacity:1;transform:none}.audit .a-row .top{color:var(--chip-text);justify-content:space-between;gap:8px;font-size:9.5px;line-height:12px;display:flex}.audit .a-row .meta{color:var(--muted);font-size:8.5px;line-height:11px}.audit .a-row .f{color:var(--muted);gap:6px;font-size:8.5px;line-height:11px;display:flex}.audit .a-row .f b{color:var(--dim-text-2);flex:0 0 30px;font-weight:400}.audit .a-row .f span{color:var(--chip-text);flex:1}.audit .a-row .res{color:var(--ok)}.audit .a-row.bad .res{color:var(--bad)}.audit .a-empty{color:var(--muted);padding-top:2px;font-size:10px}.mapping div{color:var(--chip-text);justify-content:space-between;padding:2px 0;display:flex}.mapping div span:last-child{color:var(--gpu)}.mapping div span.ext{color:var(--warn)}.dgx{background:var(--panel);border:1px solid var(--line);border-radius:16px;width:250px;height:264px;padding:14px 16px;transition:all .4s;position:absolute;top:110px;left:920px}.dgx.active{border-color:var(--gpu);box-shadow:0 0 0 3px var(--glow-gpu), 0 0 40px var(--glow-gpu)}.dgx b{font-size:15px}.dgx .sub{color:var(--muted);margin-bottom:12px;font-size:11px}.bars{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;align-items:flex-end;gap:5px;height:84px;padding:8px;display:flex}.bars i{background:var(--bar-idle);border-radius:2px;flex:1;height:8%;transition:height .25s}.dgx.active .bars i{background:var(--gpu)}.dgx .read{color:var(--muted);justify-content:space-between;margin-top:12px;font-size:12px;display:flex}.dgx .read b{color:var(--text);font-variant-numeric:tabular-nums}.cloud{border:1px solid var(--dim-line);width:250px;height:88px;color:var(--dim-text);border-radius:16px;padding:12px 16px;transition:all .3s;position:absolute;top:506px;left:920px}.cloud b{font-size:14px;display:block}.cloud span{font-size:11px}.cloud .route{border:1px solid var(--warn);color:var(--warn);border-radius:6px;padding:2px 8px;font-size:10px;position:absolute;top:12px;right:12px}.cloud.pulse{border-color:var(--warn);color:var(--text)}.packet{offset-rotate:0deg;background:var(--packet-bg);border:1px solid var(--accent);color:var(--chip-text);white-space:nowrap;z-index:5;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font:600 12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;transition:background .3s,border-color .3s;display:flex;position:absolute;top:0;left:0;box-shadow:0 0 14px #4f8cff59}.packet .kb{background:var(--ok);color:#fff;letter-spacing:.3px;border-radius:6px;padding:1px 6px;font-size:9.5px;display:none}.packet.authed .kb{display:inline}.packet.bad{border-color:var(--bad);background:var(--packet-bad-bg);box-shadow:0 0 14px #ff5f6d66}.packet.routed{border-color:var(--gpu);background:var(--packet-routed-bg);box-shadow:0 0 14px #9b7bff66}.packet.ext{border-color:var(--warn);box-shadow:0 0 14px #ffb64859}.packet.ext .t{color:var(--warn)}.token{background:var(--ok);width:9px;height:9px;box-shadow:0 0 8px var(--ok);offset-rotate:0deg;z-index:4;border-radius:50%;position:absolute;top:0;left:0}.caption{border-top:1px solid var(--line);background:var(--caption-bg);justify-content:flex-end;align-items:center;height:72px;padding:0 40px;display:flex;position:absolute;bottom:0;left:0;right:0}.controls{align-items:center;gap:8px;display:flex}.controls button{background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;min-width:40px;padding:8px 12px;font-size:13px}.controls button:hover{border-color:var(--accent)}.controls select{background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:8px;padding:8px;font-size:13px}.controls .kbd{color:var(--muted);margin-left:6px;font-size:10.5px}.topbar{height:44px;color:var(--muted);z-index:30;justify-content:space-between;align-items:center;padding:0 24px;font-size:12px;display:flex;position:absolute;top:0;left:0;right:0}.topbar b{color:var(--text);font-size:13px}.topbar .right{align-items:center;gap:10px;display:flex}.topbar button,.topbar a.tbtn{background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;font:inherit;border-radius:8px;padding:6px 12px;font-size:12px;line-height:1.2;text-decoration:none;transition:all .15s;display:inline-block}.topbar button:hover{border-color:var(--accent);color:var(--accent)}.topbar a.tbtn{background:var(--chip-bg);border-color:var(--chip-line);color:var(--chip-text);font-weight:600}.topbar a.tbtn:hover{border-color:var(--accent);background:var(--accent);color:#fff}@font-face{font-family:Plus Jakarta Sans;src:url(/fonts/plus-jakarta-sans.woff2)format("woff2");font-weight:200 800;font-display:swap}*{box-sizing:border-box}body{margin:0}button,a{font:inherit}.landing{--bg:#fff;--text:#020816;--muted:#6b7281;--line:#d2d5db;--accent:#0755e9;--accent-deep:#10347e;text-align:center;background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;padding:32px;font:400 16px/1.5 Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}html[data-theme=dark] .landing{--bg:#020816;--text:#fff;--muted:#9ca3af;--line:#1b232e}.landing h1{letter-spacing:-.02em;margin:0;font-size:clamp(34px,6vw,60px);font-weight:700;line-height:1.1}.landing h1 .ai{color:var(--accent)}.landing .actions{margin-top:40px}.landing .action{background:var(--accent);color:#fff;border-radius:8px;padding:14px 30px;font-weight:500;text-decoration:none;transition:background .25s;display:inline-block}.landing .action:hover{background:var(--accent-deep)}.landing .status{color:var(--muted);margin-top:28px;font-size:13px}.landing .dot{background:var(--muted);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.landing .dot.ok{background:var(--accent)}.landing .dot.bad{background:#dc3545}.landing .themeBtn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:8px 14px;font-size:13px;position:fixed;top:20px;right:22px}.landing .themeBtn:hover{border-color:var(--accent);color:var(--accent)}
