:root{--canvas:#050505;--sunken:#0a0a0a;--surface:#121212;--surface-2:#0f0f0f;--raised:#1a1a1a;--raised-2:#1f1f1f;--border:#262626;--border-hi:#404040;--hairline:#131313;--text-1:#fafafa;--text-2:#a3a3a3;--text-3:#737373;--text-4:#525252;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-700:#b45309;--amber-ink:#1c1301;--grad-primary:linear-gradient(180deg, #fbbf24, #f59e0b);--amber-06:#fbbf240f;--amber-08:#fbbf2414;--amber-12:#fbbf241f;--amber-16:#fbbf2429;--amber-30:#fbbf244d;--amber-34:#fbbf2457;--amber-glow:0 0 24px #f59e0b4d;--amber-glow-lg:0 0 10px 2px #fbbf24a6;--success:#4ade80;--success-bg:#4ade801f;--warning:#fb923c;--warning-bg:#fb923c1f;--error:#f87171;--error-bg:#f871711f;--info:#60a5fa;--info-bg:#60a5fa1f;--note:#a78bfa;--note-bg:#a78bfa1f;--font-head:"Outfit", "SF Pro Display", -apple-system, BlinkMacSystemFont, sans-serif;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-data:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-display:700 44px/1.08 var(--font-head);--text-h1:700 32px/1.15 var(--font-head);--text-h2:600 26px/1.2 var(--font-head);--text-h3:600 18px/1.35 var(--font-head);--text-body-lg:400 16px/1.6 var(--font-ui);--text-body:400 14px/1.55 var(--font-ui);--text-body-sm:400 13px/1.5 var(--font-ui);--text-label:600 13px/1.3 var(--font-ui);--text-caption:600 10px/1.2 var(--font-ui);--text-data:500 14px/1.4 var(--font-data);--track-display:-.035em;--track-head:-.02em;--track-caps:.12em;--r-badge:6px;--r-input:9px;--r-btn:10px;--r-card:14px;--r-panel:16px;--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--shadow-card:0 14px 32px #00000080;--shadow-modal:0 26px 64px #000000bf;--transition-fast:.12s cubic-bezier(.4, 0, .2, 1);--transition-base:.18s cubic-bezier(.4, 0, .2, 1);--transition-slow:.32s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--text-1);font:var(--text-body);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:2px solid var(--amber-500);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-pill);border:2px solid var(--canvas)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.caps{font:var(--text-caption);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-3)}.mono{font-family:var(--font-data)}.stage{background:radial-gradient(1200px 600px at 50% 0%, #fbbf2408, transparent 70%), var(--canvas);min-width:0;position:relative;overflow:hidden}.stage-canvas{padding:var(--s-7);position:absolute;inset:0}.stage-controls{top:var(--s-4);right:var(--s-4);gap:var(--s-2);display:flex;position:absolute}.chip{font:500 12px/14px var(--font-ui);color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-input);transition:background var(--transition-fast), color var(--transition-fast);align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.chip:hover{background:var(--raised);color:var(--text-1)}.chip-on{color:var(--amber-300);background:var(--amber-12);border-color:var(--amber-34)}.stage-error{inset:auto var(--s-6) var(--s-6);background:var(--surface-2);border:1px solid #f8717157;border-left:2px solid var(--error);border-radius:var(--r-card);padding:var(--s-4);box-shadow:var(--shadow-card);position:absolute}.stage-error .caps{color:var(--error)}.stage-error p{margin:var(--s-2) 0 0;font:var(--text-body-sm);color:var(--text-2);font-family:var(--font-data)}.ns-stage-svg{display:block}.ns-stage-svg .node,.ns-stage-svg path.flowchart-link,.ns-stage-svg .edgeLabel{transition:opacity var(--transition-base), filter var(--transition-base)}.ns-stage-svg .node{cursor:pointer}.ns-stage-svg .node rect,.ns-stage-svg .node circle,.ns-stage-svg .node ellipse,.ns-stage-svg .node polygon,.ns-stage-svg .node path{transition:stroke var(--transition-base), stroke-width var(--transition-base), fill var(--transition-base)}.ns-stage-svg .node.ns-active rect,.ns-stage-svg .node.ns-active circle,.ns-stage-svg .node.ns-active ellipse,.ns-stage-svg .node.ns-active polygon,.ns-stage-svg .node.ns-active path{stroke:var(--amber-400)!important;stroke-width:2px!important;fill:#1a1403!important}.ns-stage-svg .node.ns-active{filter:drop-shadow(0 0 14px #f59e0b73)}.ns-stage-svg .node.ns-active foreignObject div,.ns-stage-svg .node.ns-active span,.ns-stage-svg .node.ns-active p{color:var(--text-1)!important}.ns-stage-svg .node.ns-past{opacity:1}.ns-stage-svg .node.ns-past rect,.ns-stage-svg .node.ns-past circle,.ns-stage-svg .node.ns-past ellipse,.ns-stage-svg .node.ns-past polygon,.ns-stage-svg .node.ns-past path{stroke:var(--border-hi)!important;fill:var(--surface)!important}.ns-stage-svg .node.ns-candidate rect,.ns-stage-svg .node.ns-candidate circle,.ns-stage-svg .node.ns-candidate ellipse,.ns-stage-svg .node.ns-candidate polygon,.ns-stage-svg .node.ns-candidate path{stroke:var(--amber-34)!important;stroke-width:1.5px!important;fill:var(--surface)!important}.ns-stage-svg .node.ns-dimmed{opacity:.26;filter:saturate(.4)}.ns-stage-svg path.ns-edge-taken{opacity:.85;stroke:var(--amber-500)!important;stroke-width:2px!important}.ns-stage-svg path.ns-edge-offered{opacity:1;stroke-dasharray:6 4;animation:.7s linear infinite ns-flow;stroke:var(--amber-400)!important;stroke-width:2px!important}@keyframes ns-flow{to{stroke-dashoffset:-20px}}.ns-stage-svg path.ns-edge-dimmed{opacity:.2}.ns-stage-svg .ns-edge-offered foreignObject div,.ns-stage-svg .ns-edge-offered span,.ns-stage-svg .ns-edge-offered p{color:var(--amber-300)!important}.ns-stage-svg .ns-edge-dimmed{opacity:.25}.ns-stage-svg .edgeLabel,.ns-stage-svg .edgeLabel p,.ns-stage-svg .labelBkg{background:0 0!important}.ns-stage-svg .edgeLabel foreignObject div{color:var(--text-3);font:600 12px/1.4 var(--font-ui)!important}.ns-stage-svg .cluster rect{fill:var(--sunken)!important;stroke:var(--border)!important}.ns-stage-svg .cluster span,.ns-stage-svg .cluster div{text-transform:uppercase;color:var(--text-3)!important;font:var(--text-caption)!important;letter-spacing:var(--track-caps)!important}@media (prefers-reduced-motion:reduce){.ns-stage-svg path.ns-edge-offered{stroke-dasharray:none;animation:none}}
