.pv-fig{--fig-paper: #ffffff;--fig-paper-2: var(--color-cream, #fdf8f4);--fig-ink: var(--color-ink-900, #1c1f2e);--fig-text: var(--color-charcoal-700, #4a4a43);--fig-label: var(--color-ink-300, #828598);--fig-line: var(--color-stroke-divider, #ececea);--fig-line-strong: var(--color-ink-100, #d4d5df);--fig-on-ink: #fafafa;--fig-on-ink-muted: #d4d2cc;--fig-chrome: var(--color-ink-900, #1c1f2e);--fig-chrome-line: var(--color-ink-700, #313449);--fig-chrome-hover: var(--color-ink-800, #282b3c);--fig-chrome-active: color-mix(in srgb, #ffffff 10%, var(--color-ink-900, #1c1f2e));--fig-accent: var(--color-sage-600, #3b5249);--fig-accent-soft: var(--color-sage-200, #b8cec4);--fig-accent-fill: color-mix(in srgb, var(--fig-accent) 12%, var(--fig-paper));--fig-highlight: var(--color-indigo-600, #4255f9);--fig-font-sans: var(--font-sans, "Plus Jakarta Sans", system-ui, sans-serif);--fig-font-mono: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);--fig-type-title: 14px;--fig-type-body: 12px;--fig-type-label: 11px;--fig-type-meta: 10px;--fig-tracking: .06em;--fig-duration: .22s;--fig-ease: cubic-bezier(.2, 0, 0, 1);--fig-radius: var(--radius-xl, 16px);--fig-tone: var(--fig-accent);--fig-tone-fill: color-mix(in srgb, var(--fig-tone) 12%, var(--fig-paper));position:relative;margin:2.5rem 0;border:1px solid var(--fig-line);border-radius:var(--fig-radius);background:var(--fig-paper);color:var(--fig-text);font-family:var(--fig-font-sans);overflow:hidden;container-type:inline-size}@media(min-width:900px){.prose-editorial>.pv-fig,.prose-editorial>figure>.pv-fig{margin-left:-75px;margin-right:-75px;width:calc(100% + 150px)}}.prose-editorial>figure:has(>.pv-fig){margin:2.5rem 0}.prose-editorial>figure:has(>.pv-fig)>.pv-fig{margin-top:0;margin-bottom:0}.prose-editorial>figure:has(>.pv-fig)>figcaption{margin-top:.875rem;font-family:var(--fig-font-sans);font-size:.8125rem;line-height:1.5;color:var(--fig-text);text-align:center}.pv-fig-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.pv-fig-stage{display:block;width:100%;height:auto;background:var(--fig-paper);pointer-events:none;user-select:none;padding:16px 16px 12px;box-sizing:border-box;font-synthesis:none}.pv-fig-stage *{pointer-events:none}.pv-fig[data-interactive] .pv-fig-stage,.pv-fig[data-interactive] .pv-fig-stage [data-interactive]{pointer-events:auto}.pv-fig[data-interactive] .pv-fig-stage [data-interactive]{cursor:pointer}.pv-fig[data-interactive] .pv-fig-stage [data-interactive]:focus-visible{outline:none}.pv-fig[data-interactive] .pv-fig-stage [data-interactive]:focus-visible .fig-node{stroke:var(--fig-highlight);stroke-width:1.75}.pv-fig [data-tone=accent]{--fig-tone: var(--fig-accent)}.pv-fig [data-tone=ink]{--fig-tone: var(--fig-ink)}.pv-fig [data-tone=neutral]{--fig-tone: var(--fig-label)}.pv-fig [data-tone=highlight]{--fig-tone: var(--fig-highlight)}.pv-fig .fig-node{fill:var(--fig-paper);stroke:var(--fig-line-strong);stroke-width:1;rx:8;transition:fill var(--fig-duration) var(--fig-ease),stroke var(--fig-duration) var(--fig-ease),stroke-width var(--fig-duration) var(--fig-ease),opacity var(--fig-duration) var(--fig-ease)}.pv-fig .fig-node[data-surface=cream],.pv-fig [data-surface=cream]>.fig-node{fill:var(--fig-paper-2);stroke:transparent}.pv-fig .fig-node[data-surface=ink],.pv-fig [data-surface=ink]>.fig-node{fill:var(--fig-ink);stroke:transparent}.pv-fig [data-surface=ink] .fig-node-title,.pv-fig [data-surface=ink] .fig-badge text{fill:var(--fig-on-ink)}.pv-fig [data-surface=ink] .fig-node-sub,.pv-fig [data-surface=ink] .fig-label{fill:var(--fig-on-ink-muted)}.pv-fig .fig-node-title{fill:var(--fig-ink);font-family:var(--fig-font-sans);font-size:var(--fig-type-title);font-weight:700;transition:fill var(--fig-duration) var(--fig-ease)}.pv-fig .fig-node-sub{fill:var(--fig-text);font-family:var(--fig-font-sans);font-size:var(--fig-type-body);font-weight:400;transition:fill var(--fig-duration) var(--fig-ease)}.pv-fig .fig-label{fill:var(--fig-label);font-family:var(--fig-font-mono);font-size:var(--fig-type-label);font-weight:700;letter-spacing:var(--fig-tracking);text-transform:uppercase;transition:fill var(--fig-duration) var(--fig-ease)}.pv-fig .fig-meta{fill:var(--fig-label);font-family:var(--fig-font-mono);font-size:var(--fig-type-meta);letter-spacing:.02em;transition:fill var(--fig-duration) var(--fig-ease)}.pv-fig .fig-counter{fill:var(--fig-ink);font-family:var(--fig-font-mono);font-size:var(--fig-type-label);font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums}.pv-fig .fig-edge{fill:none;stroke:var(--fig-line-strong);stroke-width:1;transition:stroke var(--fig-duration) var(--fig-ease),stroke-width var(--fig-duration) var(--fig-ease),opacity var(--fig-duration) var(--fig-ease)}.pv-fig .fig-edge[data-variant=lane],.pv-fig .fig-lane{fill:none;stroke:color-mix(in srgb,var(--fig-tone) 55%,var(--fig-paper));stroke-width:1;stroke-dasharray:3 5;stroke-linecap:round}.pv-fig .fig-edge-arrow{fill:var(--fig-line-strong);fill:context-stroke;stroke:none}.pv-fig .fig-rule{stroke:var(--fig-line);stroke-width:1}.pv-fig .fig-band{fill:color-mix(in srgb,var(--fig-ink) 3%,var(--fig-paper));stroke:none;rx:8}.pv-fig .fig-badge rect{fill:var(--fig-tone-fill);stroke:var(--fig-tone);stroke-width:1;rx:4}.pv-fig .fig-badge text{fill:var(--fig-ink);font-family:var(--fig-font-mono);font-size:var(--fig-type-meta);font-weight:700;letter-spacing:.02em;dominant-baseline:central;text-anchor:middle}.pv-fig .fig-packet rect,.pv-fig .fig-packet circle{fill:var(--fig-tone);stroke:none}.pv-fig .fig-packet text{fill:var(--fig-on-ink);font-family:var(--fig-font-mono);font-size:var(--fig-type-meta);font-weight:700;dominant-baseline:central;text-anchor:middle}.pv-fig .fig-status-dot{fill:var(--fig-tone);stroke:var(--fig-paper);stroke-width:1;transition:fill var(--fig-duration) var(--fig-ease)}.pv-fig .fig-progress-track{fill:var(--fig-line);rx:2}.pv-fig .fig-progress-fill{fill:var(--fig-tone);rx:2;transition:width .32s linear}.pv-fig [data-state=pending] .fig-node,.pv-fig .fig-node[data-state=pending]{stroke:var(--fig-line-strong);stroke-dasharray:3 3;fill:var(--fig-paper)}.pv-fig [data-state=pending] .fig-node-title,.pv-fig [data-state=pending] .fig-node-sub{fill:var(--fig-label)}.pv-fig [data-state=active] .fig-node,.pv-fig .fig-node[data-state=active]{fill:var(--fig-tone-fill);stroke:var(--fig-tone);stroke-width:1.5}.pv-fig [data-state=done] .fig-node,.pv-fig .fig-node[data-state=done]{fill:var(--fig-tone-fill);stroke:var(--fig-tone)}.pv-fig [data-state=off] .fig-node,.pv-fig .fig-node[data-state=off]{fill:var(--fig-paper);stroke:var(--fig-line-strong);stroke-dasharray:4 3}.pv-fig [data-state=off] .fig-node-title,.pv-fig [data-state=off] .fig-node-sub,.pv-fig [data-state=off] .fig-label{fill:var(--fig-label)}.pv-fig [data-state=off]{opacity:.7}.pv-fig [data-state=active] .fig-edge,.pv-fig .fig-edge[data-state=active]{stroke:var(--fig-tone);stroke-width:1.5}.pv-fig [data-state=done] .fig-edge{stroke:var(--fig-tone)}.pv-fig [data-state=hidden]{opacity:0}.pv-fig [data-state=hidden] *{transition:none}.pv-fig .fig-packet{opacity:0}.pv-fig .fig-packet[data-run]{opacity:1;animation:pv-fig-travel var(--fig-travel, 1.2s) linear infinite;animation-delay:var(--fig-delay, 0ms)}.pv-fig .fig-packet[data-along][data-run]{offset-rotate:0deg;animation-name:pv-fig-travel-path}@keyframes pv-fig-travel-path{0%{offset-distance:0%;opacity:0}8%{opacity:1}92%{opacity:1}to{offset-distance:100%;opacity:0}}@keyframes pv-fig-travel{0%{transform:translate(0);opacity:0}8%{opacity:1}92%{opacity:1}to{transform:translate(var(--fig-dx, 0),var(--fig-dy, 0));opacity:0}}.pv-fig[data-ambient] .pv-fig-stage{padding:16px}.pv-fig[data-ambient] .pv-fig-phases,.pv-fig[data-ambient] .pv-fig-transport{display:none}.pv-fig[data-playing=true] .fig-packet[data-live]{opacity:1;animation:pv-fig-travel var(--fig-travel, 1.2s) linear infinite;animation-delay:var(--fig-delay, 0ms)}.pv-fig[data-playing=true] .fig-packet[data-live][data-along]{offset-rotate:0deg;animation-name:pv-fig-travel-path}.pv-fig[data-playing=true] .fig-status-dot[data-live]{animation:pv-fig-pulse 1.8s ease-in-out infinite;animation-delay:var(--fig-delay, 0ms)}@keyframes pv-fig-pulse{0%,to{opacity:1}50%{opacity:.35}}.pv-fig-phases{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);background:var(--fig-chrome)}.pv-fig-phase{appearance:none;border:0;border-right:1px solid var(--fig-chrome-line);margin:0;padding:.625rem .5rem;background:transparent;color:var(--fig-on-ink-muted);font-family:var(--fig-font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;text-align:center;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--fig-duration) var(--fig-ease),color var(--fig-duration) var(--fig-ease)}.pv-fig-phase:last-child{border-right:0}.pv-fig-phase:hover{background:var(--fig-chrome-hover);color:var(--fig-on-ink)}.pv-fig-phase[data-active]{background:var(--fig-chrome-active);color:var(--fig-on-ink);font-weight:700;box-shadow:inset 0 -2px 0 0 var(--fig-accent-soft)}.pv-fig-phase:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--fig-accent-soft)}.pv-fig-transport{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem .75rem;border-top:1px solid var(--fig-chrome-line);background:var(--fig-chrome)}.pv-fig-btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:5.5rem;min-height:2rem;padding:0 .75rem;border:1px solid var(--fig-chrome-line);border-radius:6px;background:transparent;color:var(--fig-on-ink);font-family:var(--fig-font-sans);font-size:.75rem;font-weight:500;line-height:1;cursor:pointer;transition:background var(--fig-duration) var(--fig-ease),border-color var(--fig-duration) var(--fig-ease),color var(--fig-duration) var(--fig-ease)}.pv-fig-btn svg{width:12px;height:12px;display:block;flex-shrink:0}.pv-fig-btn:hover{border-color:var(--fig-on-ink-muted);background:var(--fig-chrome-hover)}.pv-fig-btn:active{background:var(--fig-chrome-active)}.pv-fig-btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--fig-chrome),0 0 0 4px var(--fig-accent-soft)}.pv-fig-btn[data-role=toggle]{min-width:6.5rem}.pv-fig-btn:disabled{opacity:.45;cursor:default}.pv-fig .pv-fig-note{margin:0;width:100%;max-width:none;box-sizing:border-box;padding:.75rem 1rem;border-top:0;background:var(--fig-paper-2);color:var(--fig-text);font-family:var(--fig-font-sans);font-size:.8125rem;line-height:1.5}.pv-fig .pv-fig-note code{font-family:var(--fig-font-mono);font-size:.95em;background:transparent;padding:0;border:0}.pv-fig-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem 1rem;padding:.75rem 1rem;border-bottom:1px solid var(--fig-line);background:var(--fig-paper-2)}.pv-fig-control{display:flex;flex-direction:column;gap:.375rem;min-width:0}.pv-fig-control-label{display:flex;justify-content:space-between;gap:.5rem;color:var(--fig-label);font-family:var(--fig-font-mono);font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.pv-fig-control-label strong{color:var(--fig-ink);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.pv-fig-control input[type=range]{width:100%;accent-color:var(--fig-accent)}.pv-fig-toggle{display:inline-flex;align-items:center;gap:.5rem;color:var(--fig-ink);font-size:.78rem;font-weight:500;cursor:pointer;user-select:none}.pv-fig-toggle input{accent-color:var(--fig-accent)}@container (max-width: 560px){.pv-fig-stage{min-width:640px}.pv-fig-phases{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.pv-fig-phase{border-bottom:1px solid var(--fig-chrome-line)}.pv-fig-phase:nth-child(2n){border-right:0}.pv-fig-btn[data-role=prev] span,.pv-fig-btn[data-role=next] span{display:none}.pv-fig-btn{min-width:0}}@media(prefers-reduced-motion:reduce){.pv-fig *,.pv-fig .fig-packet[data-run]{transition:none!important;animation:none!important}.pv-fig .fig-packet[data-run]{opacity:1;transform:translate(calc(var(--fig-dx, 0) / 2),calc(var(--fig-dy, 0) / 2))}.pv-fig .fig-packet[data-along][data-run]{transform:none;offset-distance:50%}.pv-fig .fig-packet[data-live]{opacity:1;transform:translate(calc(var(--fig-dx, 0) / 2),calc(var(--fig-dy, 0) / 2))}.pv-fig .fig-packet[data-live][data-along]{transform:none;offset-distance:50%}}
