.diagram{--dg-stroke:color-mix(in srgb, currentColor 28%, transparent);--dg-stroke-soft:color-mix(in srgb, currentColor 14%, transparent);--dg-fill:color-mix(in srgb, currentColor 5%, transparent);--dg-accent:var(--accent);margin:2.5rem 0}.diagram svg{width:100%;height:auto;display:block;overflow:visible}.diagram figcaption{text-align:center;opacity:.55;margin-top:.875rem;font-size:.8125rem;line-height:1.5}.dg-node{fill:var(--dg-fill);stroke:var(--dg-stroke);stroke-width:1px}.dg-node-accent{stroke:color-mix(in srgb, var(--dg-accent) 55%, transparent)}.dg-label{fill:currentColor;text-anchor:middle;dominant-baseline:middle;font-family:ui-sans-serif,system-ui,sans-serif;font-size:13px}.dg-label.dg-label-start{text-anchor:start}.dg-label.dg-label-end{text-anchor:end}.dg-label-sm{letter-spacing:.08em;text-transform:uppercase;opacity:.5;font-size:10.5px}.dg-edge{fill:none;stroke:var(--dg-stroke);stroke-width:1.25px;stroke-linecap:round}.dg-edge-soft{stroke:var(--dg-stroke-soft)}.dg-edge-dashed{stroke-dasharray:4 6}.dg-arrow{fill:var(--dg-stroke);stroke:none}.dg-dot{fill:var(--dg-accent);transform-box:view-box;transform-origin:0 0}.dg-flow{stroke-dasharray:5 5;animation:1.4s linear infinite dg-dash}.dg-travel-right{animation:1.4s linear infinite dg-travel-right}.dg-drift{animation:2.6s ease-in-out infinite dg-drift}.dg-pulse{animation:2.6s ease-in-out infinite dg-pulse}.dg-request{animation:3.2s ease-in-out infinite dg-request}.dg-grant{animation:3.2s ease-in-out infinite dg-grant}.dg-delay-1{animation-delay:.35s}.dg-delay-2{animation-delay:.7s}.dg-delay-3{animation-delay:1.05s}.dg-delay-4{animation-delay:1.4s}@keyframes dg-dash{to{stroke-dashoffset:-10px}}@keyframes dg-travel-right{0%{opacity:0;transform:translate(0)}15%,85%{opacity:1}to{opacity:0;transform:translate(36px)}}@keyframes dg-drift{0%{opacity:0;transform:translate(0)}12%{opacity:1}72%{opacity:1}to{transform:translate(var(--dg-dx,0), var(--dg-dy,0));opacity:0}}@keyframes dg-request{0%{opacity:0;transform:translate(0)}8%,38%{opacity:1}46%,to{transform:translate(var(--dg-dx,0), var(--dg-dy,0));opacity:0}}@keyframes dg-grant{0%,54%{opacity:0;transform:translate(0)}62%,92%{opacity:1}to{transform:translate(var(--dg-dx,0), var(--dg-dy,0));opacity:0}}@keyframes dg-pulse{0%,to{stroke:var(--dg-stroke)}50%{stroke:color-mix(in srgb, var(--dg-accent) 55%, transparent)}}@media (prefers-reduced-motion:reduce){.diagram *{animation:none}.dg-dot{opacity:1}}
