:root{--fig-key:#7c3aed;--fig-msg:#b45309;--fig-ok:#047857;--fig-err:#dc2626;--fig-info:#0369a1}html.dark{--fig-key:#a78bfa;--fig-msg:#fbbf24;--fig-ok:#34d399;--fig-err:#f87171;--fig-info:#38bdf8}.fig-frame{margin:2.25rem 0;border:1px solid var(--border);border-radius:14px;background:var(--bg);overflow:hidden}.fig-head{display:flex;align-items:baseline;gap:.75rem;padding:.65rem 1rem;border-bottom:1px solid var(--border);font-family:var(--font-jetbrains),ui-monospace,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.fig-no{color:var(--accent);font-weight:600;white-space:nowrap}.fig-stage{padding:.9rem .6rem;background:radial-gradient(120% 120% at 50% -10%,var(--accent-subtle),transparent 60%)}.fig-frame svg{display:block;width:100%;height:auto}.fig-cap{padding:.15rem 1.1rem .95rem;font-size:.85rem;line-height:1.55;color:var(--muted)}.fig-cap b{color:var(--fg);font-weight:600}.fig-frame svg text{font-family:var(--font-jetbrains),ui-monospace,monospace}.fig-title{fill:var(--fg);font-size:13px;font-weight:600}.fig-lbl{fill:var(--fg);font-size:11px}.fig-sub{fill:var(--muted);font-size:10.5px}.fig-note{fill:var(--muted);font-size:10px}.fig-tiny{fill:var(--muted);font-size:9px;letter-spacing:.05em}.fig-t-key{fill:var(--fig-key)}.fig-t-msg{fill:var(--fig-msg)}.fig-t-ok{fill:var(--fig-ok)}.fig-t-err{fill:var(--fig-err)}.fig-t-info{fill:var(--fig-info)}.fig-box rect{fill:var(--bg);stroke:var(--border);stroke-width:1.5}.fig-box.tone-key rect{stroke:var(--fig-key);fill:color-mix(in srgb,var(--fig-key) 7%,var(--bg))}.fig-box.tone-msg rect{stroke:var(--fig-msg);fill:color-mix(in srgb,var(--fig-msg) 7%,var(--bg))}.fig-box.tone-ok rect{stroke:var(--fig-ok);fill:color-mix(in srgb,var(--fig-ok) 7%,var(--bg))}.fig-box.tone-err rect{stroke:var(--fig-err);fill:color-mix(in srgb,var(--fig-err) 6%,var(--bg))}.fig-box.tone-info rect{stroke:var(--fig-info);fill:color-mix(in srgb,var(--fig-info) 7%,var(--bg))}.fig-box.ghost rect{stroke-dasharray:5 4;fill:transparent}.fig-box.ghost text{fill:var(--muted)}.fig-wire{fill:none;stroke:var(--border);stroke-width:1.5}.fig-wire.dashed{stroke-dasharray:5 4}.fig-edge{fill:none;stroke-width:1.8}.fig-edge.key{stroke:var(--fig-key)}.fig-edge.msg{stroke:var(--fig-msg)}.fig-edge.ok{stroke:var(--fig-ok)}.fig-edge.err{stroke:var(--fig-err)}.fig-edge.info{stroke:var(--fig-info)}.fig-edge.thin{stroke-width:1.3;opacity:.75}.fig-edge.dashed{stroke-dasharray:5 4}.fig-flow{stroke-dasharray:4 7;opacity:.75;animation:fig-march 1.3s linear infinite}@keyframes fig-march{to{stroke-dashoffset:-22}}.fig-runner{animation:fig-run 3.2s linear infinite}@keyframes fig-run{0%{offset-distance:0;opacity:0}10%{opacity:1}88%{opacity:1}to{offset-distance:100%;opacity:0}}.fig-fill-key{fill:var(--fig-key)}.fig-fill-msg{fill:var(--fig-msg)}.fig-fill-ok{fill:var(--fig-ok)}.fig-fill-err{fill:var(--fig-err)}.fig-fill-info{fill:var(--fig-info)}.fig-num text{fill:var(--bg);font-size:11px;font-weight:700}.fig-chip rect{stroke-width:1.3}.fig-chip text{fill:var(--bg);font-size:9.5px;font-weight:600}@media (prefers-reduced-motion:reduce){.fig-flow,.fig-runner{animation:none!important}.fig-runner{opacity:0}}