.fl{--ink: #0f1020;--muted: #62667f;--line: rgba(15, 16, 32, .1);--line2: rgba(15, 16, 32, .18);--cy: #00b4d8;--bad: #ef4444;--panel: #0d0f24}.fl .lg{flex:none;fill:currentColor;color:var(--lg-l, currentColor)}.fl .lg--tile{--lg-s: 22px;display:inline-grid;place-items:center;width:var(--lg-s);height:var(--lg-s);border-radius:28%;background:#0f10200f;box-shadow:inset 0 0 0 1px #0f102024;font:700 calc(var(--lg-s) * .5) / 1 var(--font-heading);color:#3a3d55}.fl .sg-ok{flex:none;border-radius:50%;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.fl{margin:0 0 clamp(3rem,6vw,4.5rem)}.fl__canvas{position:relative;aspect-ratio:1200 / 560}.fl__svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.fl__lines path{fill:none;stroke:#d5d8e6;stroke-width:1.5;vector-effect:non-scaling-stroke}.fl__lines .fl__line-bot{stroke:#ef44448c;stroke-dasharray:4 5}.fl__dots circle{fill:var(--cy);filter:drop-shadow(0 0 4px rgba(0,180,216,.9));opacity:0}.fl__dots .is-bot{fill:var(--bad);filter:drop-shadow(0 0 4px rgba(239,68,68,.9))}.fl__src,.fl__out{margin:0;padding:0;list-style:none}.fl__node{position:absolute;box-sizing:border-box;display:flex;align-items:center;gap:.65rem;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 10px 30px -18px #0f102066;font:600 .93rem/1.2 var(--font-heading);color:var(--ink)}.fl__src .fl__node{left:0}.fl__out .fl__node{right:0}.fl__node--out b{display:block;font-size:.92rem}.fl__node--out small{display:block;margin-top:2px;font:500 .78rem/1.3 var(--font-body);color:var(--muted)}.fl .fl__check{width:24px;height:24px;padding:5px;background:#00b4d81f;stroke:#0891b2}.fl__core{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:18px 20px;border-radius:22px;background:radial-gradient(18rem 12rem at 50% 0%,rgba(233,69,96,.35),transparent 70%),var(--panel);box-shadow:0 40px 90px -36px #e94560b3,inset 0 0 0 1px #ffffff1a}.fl__brand{display:flex;align-items:center;gap:.6rem;margin:0 0 1rem;font:700 1.02rem/1.2 var(--font-heading);color:#fff}.fl__brand img{width:26px;height:auto}.fl__stages{display:grid;gap:.7rem;margin:0;padding:0;list-style:none;counter-reset:st}.fl__stages li{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:.6rem;counter-increment:st}.fl__stages li:before{content:counter(st);grid-row:span 2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffffff1f;font:700 .7rem/1 var(--font-heading);color:#fff}.fl__stages b{font:600 .9rem/1.3 var(--font-heading);color:#fff}.fl__stages span{font-size:.77rem;line-height:1.35;color:#a9acc8}.fl__bin{position:absolute;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:0 16px;border:1px dashed rgba(239,68,68,.55);border-radius:14px;background:#fff6f6;text-align:center}.fl__bin b{font:700 .88rem/1.3 var(--font-heading);color:#b91c1c}.fl__bin span{font-size:.77rem;line-height:1.35;color:#7a3b3b}.fl__cap{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem 1rem;margin-top:1.25rem;font-size:.82rem;color:var(--muted)}.fl__key{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--ink)}.fl__key:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--cy)}.fl__key--b:before{background:var(--bad)}@media(prefers-reduced-motion:reduce){.fl__dots{display:none}}@media(max-width:1059px){.fl__canvas{display:grid;gap:.9rem;aspect-ratio:auto}.fl__svg{display:none}.fl__node,.fl__core,.fl__bin{position:relative;inset:auto!important;width:auto!important;height:auto!important}.fl__src{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.fl__src .fl__node{padding:12px 14px;font-size:.88rem}.fl__core{width:100%!important;max-width:26rem;margin:0 auto;padding:1.4rem 1.4rem 1.5rem}.fl__core:before,.fl__bin:before{content:"";position:absolute;left:50%;bottom:100%;width:2px;height:.9rem;background:linear-gradient(var(--line2),var(--cy))}.fl__bin{width:100%!important;max-width:26rem;margin:0 auto;padding:14px 16px}.fl__bin:before{background:#ef444480}.fl__out{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.fl__out .fl__node{padding:14px 16px}}@media(max-width:560px){.fl__out{grid-template-columns:1fr}}
