.lf{--hot:0;border:1px solid var(--line);color:var(--ink);--lf-g1:#4f46e521;--lf-g2:#c2410c1a;--lf-g3:#0e7c8617;--lf-dim:.55;--lf-shadow:0 1px 2px #1d23300f, 0 8px 24px #1d23300d;background:radial-gradient(50% 40% at 15% 0%, var(--lf-g1), transparent 70%), radial-gradient(45% 40% at 85% 100%, var(--lf-g2), transparent 70%), radial-gradient(40% 35% at 50% 50%, var(--lf-g3), transparent 70%), var(--surface);box-shadow:var(--lf-shadow);border-radius:18px;margin:2rem 0 0;padding:clamp(1rem,3vw,2rem)}.lf *{box-sizing:border-box}.lf figcaption{color:var(--ink-2);max-width:60rem;margin-top:1.25rem;font-size:.9rem}.lf ul{margin:0;padding:0;list-style:none}.lf p{margin:0}.lf code{color:inherit;background:0 0;padding:0;font-weight:600}.lf .it{--c:var(--ink);--hot:0;transition:opacity .25s,box-shadow .25s,border-color .25s}.lf .c-minerva{--c:var(--minerva)}.lf .c-caelus{--c:var(--caelus)}.lf .c-mercury{--c:var(--mercury)}.lf .c2-caelus{--c2:var(--caelus)}.lf .c2-mercury{--c2:var(--mercury)}.lf .node{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid color-mix(in srgb, var(--line), var(--c) calc(var(--hot) * 50%));box-shadow:0 0 calc(var(--hot) * 22px) color-mix(in srgb, var(--c) calc(var(--hot) * 32%), transparent);border-radius:10px;outline:none;align-content:start;gap:.15rem;padding:.6rem .75rem;display:grid;position:relative}.lf .node strong,.lf .node code{font-size:.92rem;line-height:1.25}.lf .node small{color:var(--ink-2);font-size:.8rem;line-height:1.4}.lf .node:is(:hover,:focus-visible){--hot:2}.lf .node:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.lf .node.planned{border-style:dashed}.lf .tag{font:600 .66rem/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);color:var(--ink-2);border-radius:999px;justify-self:start;margin-top:.25rem;padding:.22rem .45rem;font-style:normal}.lf .tag.warn{color:var(--ink);border-color:var(--ink-2)}.lf .nodes{grid-template-columns:repeat(auto-fill,minmax(min(100%,9.5rem),1fr));gap:.6rem;display:grid}.lf .label{font:600 .74rem/1.2 var(--font-head);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.5rem;display:block}.lf .lane{height:2.8rem;opacity:calc(.75 + var(--hot) * .25);justify-content:space-around;display:flex;position:relative}.lf .ln{--dur:1.5s;width:2px;height:100%;position:relative}.lf .ln:before{content:"";background:linear-gradient(to bottom, var(--c), var(--c2,var(--c)));animation:lf-dash-y calc(.9s / (1 + var(--hot) * .8)) linear infinite;position:absolute;inset:0;-webkit-mask-image:repeating-linear-gradient(#000 0 7px,#0000 7px 13px);mask-image:repeating-linear-gradient(#000 0 7px,#0000 7px 13px);-webkit-mask-size:100% 13px;mask-size:100% 13px}.lf .ln i{background:var(--c2,var(--c));width:7px;height:7px;box-shadow:0 0 8px 2px color-mix(in srgb, var(--c2,var(--c)) 65%, transparent);animation:lf-dot-y calc(var(--dur) / (1 + var(--hot) * .8)) linear infinite;border-radius:50%;margin-top:-3.5px;position:absolute;top:50%;left:-2.5px}.lf .ln i+i{animation-delay:calc(var(--dur) / -2)}.lf .ln.back:before,.lf .ln.back i{animation-direction:reverse}.lf .ln.slow{--dur:2.4s}.lf .ln.static:before{animation:none}.lf .ln.static i{display:none}.lf .ln.h{width:100%;height:2px}.lf .ln.h:before{background:linear-gradient(to right, var(--c), var(--c2,var(--c)));animation-name:lf-dash-x;-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 7px,#0000 7px 13px);mask-image:repeating-linear-gradient(90deg,#000 0 7px,#0000 7px 13px);-webkit-mask-size:13px 100%;mask-size:13px 100%}.lf .ln.h i{margin:0 0 0 -3.5px;animation-name:lf-dot-x;top:-2.5px;left:50%}@media (width>=880px){.lf .lane.rh{flex-direction:column;justify-content:center;align-self:center;gap:12px;height:auto;min-height:2rem}.lf .lane.rh .ln{width:100%;height:2px}.lf .lane.rh .ln:before{background:linear-gradient(to right, var(--c), var(--c2,var(--c)));animation-name:lf-dash-x;-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 7px,#0000 7px 13px);mask-image:repeating-linear-gradient(90deg,#000 0 7px,#0000 7px 13px);-webkit-mask-size:13px 100%;mask-size:13px 100%}.lf .lane.rh .ln.static:before{animation:none}.lf .lane.rh .ln i{margin:0 0 0 -3.5px;animation-name:lf-dot-x;top:-2.5px;left:50%}}@keyframes lf-dash-y{to{-webkit-mask-position:0 13px;mask-position:0 13px}}@keyframes lf-dash-x{to{-webkit-mask-position:13px 0;mask-position:13px 0}}@keyframes lf-dot-y{0%{opacity:0;top:0}15%,85%{opacity:1}to{opacity:0;top:100%}}@keyframes lf-dot-x{0%{opacity:0;left:0}15%,85%{opacity:1}to{opacity:0;left:100%}}@media (prefers-reduced-motion:reduce){.lf .ln:before,.lf .ln i{animation:none!important}.lf .it{transition:none}}:where(.lf:has(.n-people:is(:hover,:focus-visible))) .it:not(.r-people){opacity:var(--lf-dim)}:where(.lf:has(.n-people:is(:hover,:focus-visible))) .it.r-people{--hot:1}:where(.lf:has(.n-web:is(:hover,:focus-visible))) .it:not(.r-web){opacity:var(--lf-dim)}:where(.lf:has(.n-web:is(:hover,:focus-visible))) .it.r-web{--hot:1}:where(.lf:has(.n-api:is(:hover,:focus-visible))) .it:not(.r-api){opacity:var(--lf-dim)}:where(.lf:has(.n-api:is(:hover,:focus-visible))) .it.r-api{--hot:1}:where(.lf:has(.n-collab:is(:hover,:focus-visible))) .it:not(.r-collab){opacity:var(--lf-dim)}:where(.lf:has(.n-collab:is(:hover,:focus-visible))) .it.r-collab{--hot:1}:where(.lf:has(.n-realtime:is(:hover,:focus-visible))) .it:not(.r-realtime){opacity:var(--lf-dim)}:where(.lf:has(.n-realtime:is(:hover,:focus-visible))) .it.r-realtime{--hot:1}:where(.lf:has(.n-worker-jobs:is(:hover,:focus-visible))) .it:not(.r-worker-jobs){opacity:var(--lf-dim)}:where(.lf:has(.n-worker-jobs:is(:hover,:focus-visible))) .it.r-worker-jobs{--hot:1}:where(.lf:has(.n-worker-sla:is(:hover,:focus-visible))) .it:not(.r-worker-sla){opacity:var(--lf-dim)}:where(.lf:has(.n-worker-sla:is(:hover,:focus-visible))) .it.r-worker-sla{--hot:1}:where(.lf:has(.n-indexer:is(:hover,:focus-visible))) .it:not(.r-indexer){opacity:var(--lf-dim)}:where(.lf:has(.n-indexer:is(:hover,:focus-visible))) .it.r-indexer{--hot:1}:where(.lf:has(.n-preview:is(:hover,:focus-visible))) .it:not(.r-preview){opacity:var(--lf-dim)}:where(.lf:has(.n-preview:is(:hover,:focus-visible))) .it.r-preview{--hot:1}:where(.lf:has(.n-mail-in:is(:hover,:focus-visible))) .it:not(.r-mail-in){opacity:var(--lf-dim)}:where(.lf:has(.n-mail-in:is(:hover,:focus-visible))) .it.r-mail-in{--hot:1}:where(.lf:has(.n-mail-out:is(:hover,:focus-visible))) .it:not(.r-mail-out){opacity:var(--lf-dim)}:where(.lf:has(.n-mail-out:is(:hover,:focus-visible))) .it.r-mail-out{--hot:1}:where(.lf:has(.n-idp-sync:is(:hover,:focus-visible))) .it:not(.r-idp-sync){opacity:var(--lf-dim)}:where(.lf:has(.n-idp-sync:is(:hover,:focus-visible))) .it.r-idp-sync{--hot:1}:where(.lf:has(.n-postgres:is(:hover,:focus-visible))) .it:not(.r-postgres){opacity:var(--lf-dim)}:where(.lf:has(.n-postgres:is(:hover,:focus-visible))) .it.r-postgres{--hot:1}:where(.lf:has(.n-events:is(:hover,:focus-visible))) .it:not(.r-events){opacity:var(--lf-dim)}:where(.lf:has(.n-events:is(:hover,:focus-visible))) .it.r-events{--hot:1}:where(.lf:has(.n-valkey:is(:hover,:focus-visible))) .it:not(.r-valkey){opacity:var(--lf-dim)}:where(.lf:has(.n-valkey:is(:hover,:focus-visible))) .it.r-valkey{--hot:1}:where(.lf:has(.n-objects:is(:hover,:focus-visible))) .it:not(.r-objects){opacity:var(--lf-dim)}:where(.lf:has(.n-objects:is(:hover,:focus-visible))) .it.r-objects{--hot:1}:where(.lf:has(.n-search:is(:hover,:focus-visible))) .it:not(.r-search){opacity:var(--lf-dim)}:where(.lf:has(.n-search:is(:hover,:focus-visible))) .it.r-search{--hot:1}:where(.lf:has(.n-idp:is(:hover,:focus-visible))) .it:not(.r-idp){opacity:var(--lf-dim)}:where(.lf:has(.n-idp:is(:hover,:focus-visible))) .it.r-idp{--hot:1}:where(.lf:has(.n-mail:is(:hover,:focus-visible))) .it:not(.r-mail){opacity:var(--lf-dim)}:where(.lf:has(.n-mail:is(:hover,:focus-visible))) .it.r-mail{--hot:1}:where(.lf:has(.n-otel:is(:hover,:focus-visible))) .it:not(.r-otel){opacity:var(--lf-dim)}:where(.lf:has(.n-otel:is(:hover,:focus-visible))) .it.r-otel{--hot:1}:where(.lf:has(.n-minerva:is(:hover,:focus-visible))) .it:not(.r-minerva){opacity:var(--lf-dim)}:where(.lf:has(.n-minerva:is(:hover,:focus-visible))) .it.r-minerva{--hot:1}:where(.lf:has(.n-caelus:is(:hover,:focus-visible))) .it:not(.r-caelus){opacity:var(--lf-dim)}:where(.lf:has(.n-caelus:is(:hover,:focus-visible))) .it.r-caelus{--hot:1}:where(.lf:has(.n-mercury:is(:hover,:focus-visible))) .it:not(.r-mercury){opacity:var(--lf-dim)}:where(.lf:has(.n-mercury:is(:hover,:focus-visible))) .it.r-mercury{--hot:1}:where(.lf:has(.n-signin:is(:hover,:focus-visible))) .it:not(.r-signin){opacity:var(--lf-dim)}:where(.lf:has(.n-signin:is(:hover,:focus-visible))) .it.r-signin{--hot:1}:where(.lf:has(.n-audit:is(:hover,:focus-visible))) .it:not(.r-audit){opacity:var(--lf-dim)}:where(.lf:has(.n-audit:is(:hover,:focus-visible))) .it.r-audit{--hot:1}:where(.lf:has(.n-groups:is(:hover,:focus-visible))) .it:not(.r-groups){opacity:var(--lf-dim)}:where(.lf:has(.n-groups:is(:hover,:focus-visible))) .it.r-groups{--hot:1}:where(.lf:has(.n-links:is(:hover,:focus-visible))) .it:not(.r-links){opacity:var(--lf-dim)}:where(.lf:has(.n-links:is(:hover,:focus-visible))) .it.r-links{--hot:1}:where(.lf:has(.n-pidp:is(:hover,:focus-visible))) .it:not(.r-pidp){opacity:var(--lf-dim)}:where(.lf:has(.n-pidp:is(:hover,:focus-visible))) .it.r-pidp{--hot:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .lf{--lf-g1:#4f46e538;--lf-g2:#c2410c29;--lf-g3:#0e7c861a;--lf-dim:.28;--lf-shadow:none;background-color:var(--bg)}}:root[data-theme=dark] .lf{--lf-g1:#4f46e538;--lf-g2:#c2410c29;--lf-g3:#0e7c861a;--lf-dim:.28;--lf-shadow:none;background-color:var(--bg)}:where(.lf:has(.n-s1:is(:hover,:focus-visible))) .it:not(.r-s1){opacity:var(--lf-dim)}:where(.lf:has(.n-s1:is(:hover,:focus-visible))) .it.r-s1{--hot:1}:where(.lf:has(.n-s2:is(:hover,:focus-visible))) .it:not(.r-s2){opacity:var(--lf-dim)}:where(.lf:has(.n-s2:is(:hover,:focus-visible))) .it.r-s2{--hot:1}:where(.lf:has(.n-s3:is(:hover,:focus-visible))) .it:not(.r-s3){opacity:var(--lf-dim)}:where(.lf:has(.n-s3:is(:hover,:focus-visible))) .it.r-s3{--hot:1}:where(.lf:has(.n-s4:is(:hover,:focus-visible))) .it:not(.r-s4){opacity:var(--lf-dim)}:where(.lf:has(.n-s4:is(:hover,:focus-visible))) .it.r-s4{--hot:1}:where(.lf:has(.n-s5:is(:hover,:focus-visible))) .it:not(.r-s5){opacity:var(--lf-dim)}:where(.lf:has(.n-s5:is(:hover,:focus-visible))) .it.r-s5{--hot:1}:where(.lf:has(.n-s6:is(:hover,:focus-visible))) .it:not(.r-s6){opacity:var(--lf-dim)}:where(.lf:has(.n-s6:is(:hover,:focus-visible))) .it.r-s6{--hot:1}:where(.lf:has(.n-s7:is(:hover,:focus-visible))) .it:not(.r-s7){opacity:var(--lf-dim)}:where(.lf:has(.n-s7:is(:hover,:focus-visible))) .it.r-s7{--hot:1}:where(.lf:has(.n-s8:is(:hover,:focus-visible))) .it:not(.r-s8){opacity:var(--lf-dim)}:where(.lf:has(.n-s8:is(:hover,:focus-visible))) .it.r-s8{--hot:1}
