.wf{margin:0}
.wf [hidden]:not([hidden="until-found"]){display:none!important}
.wf{--bg:#0a0f1c; --bg-2:#0d1424; --surface:#111a2e; --surface-2:#172139; --line:#222d48; --line-2:#33405f;
  --fg:#f0eadf; --fg-2:#cbc5ba; --muted:#8e97ac; --halo:#0d1424;
  --violet:#a78bfa; --teal:#2dd4bf; --amber:#f3b64c; --green:#4ade80; --blue:#64a7ff; --rose:#fb7185; --sand:#d9cdb8;
  --font-display:"Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  --font-body:"Newsreader", "Iowan Old Style", Georgia, serif;
  --font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --radius:14px;
  --grid: color-mix(in srgb, var(--line) 55%, transparent);
  color-scheme:dark;}
.wf *,.wf *::before,.wf *::after{box-sizing:border-box}
.wf{scroll-behavior:smooth; scroll-padding-top:calc(76px + env(safe-area-inset-top,0px))}
.wf{background:var(--bg); color:var(--fg); font-family:var(--font-body); font-size:18px; line-height:1.68; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden}
.wf a{color:inherit}
.wf :focus-visible{outline:2px solid var(--violet); outline-offset:3px; border-radius:6px}
.wf .wf-wrap{max-width:1240px; margin-inline:auto; padding-left:max(16px,env(safe-area-inset-left,0px)); padding-right:max(16px,env(safe-area-inset-right,0px))}
.wf .mono{font-family:var(--font-mono)}
.wf .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.wf .seg{display:inline-flex; border:1px solid var(--line-2); border-radius:999px; padding:3px; background:var(--surface)}
.wf .wf-hero{position:relative; border-bottom:1px solid var(--line); overflow:hidden}
.wf .tag{font:500 11.5px/1 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--fg-2); border:1px solid var(--line-2); border-radius:999px; padding:7px 10px; background:color-mix(in srgb,var(--surface) 70%,transparent)}
.wf .tag i{display:inline-block; width:6px; height:6px; border-radius:50%; margin-right:7px; vertical-align:1px; background:var(--c,var(--muted))}
.wf .subtitle{font-size:clamp(1.12rem,1.6vw,1.32rem); line-height:1.55; color:var(--fg-2); margin:0 0 28px; max-width:40em; text-wrap:pretty}
.wf .links{display:flex; flex-wrap:wrap; gap:10px}
.wf .link-btn{display:inline-flex; align-items:center; gap:9px; text-decoration:none; font:500 13px/1 var(--font-mono); color:var(--fg); border:1px solid var(--line-2); background:var(--surface); padding:10px 13px; border-radius:10px; transition:border-color .2s, transform .2s}
.wf .link-btn:hover{border-color:var(--violet); transform:translateY(-1px)}
.wf .link-btn span.k{color:var(--muted)}
.wf .link-btn svg{width:13px; height:13px; opacity:.7}
.wf .hero-art{position:relative; min-width:0}
.wf .hero-art svg{width:100%; height:auto; display:block; max-width:540px; margin-inline:auto; overflow:visible}
.wf .hero-art .ring-run{stroke-dasharray:60 1100; animation:ringrun 9s linear infinite}
@keyframes ringrun{to{stroke-dashoffset:-1160}}
.wf .hero-art .orbit-dot{animation:pulse 3.2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.55}50%{opacity:1}}
.wf .facts{display:flex; flex-wrap:wrap; gap:18px 28px; margin-top:30px; font-family:var(--font-display); font-size:14px; color:var(--muted)}
.wf .facts b{display:block; font:600 20px/1.1 var(--font-mono); color:var(--fg); margin-bottom:3px; font-variant-numeric:tabular-nums}
@media (max-width:960px){
.wf .hero-art svg{max-width:440px}
}
.wf .band{padding-block:72px 32px}
.wf .band-head{max-width:760px; margin:0 auto 28px; text-align:left}
.wf .kicker{font:500 12px/1 var(--font-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:10px; margin-bottom:14px}
.wf .kicker::before{content:""; width:22px; height:1px; background:var(--line-2)}
.wf .band-head h2{font-family:var(--font-display); font-weight:700; font-size:clamp(1.6rem,2.6vw,2.1rem); letter-spacing:-.02em; line-height:1.15; margin:0 0 10px; text-wrap:balance}
.wf .band-head p{color:var(--fg-2); margin:0; font-size:1.05rem}
.wf .layout{display:grid; grid-template-columns:232px minmax(0,1fr); gap:56px; padding-block:24px 96px}
.wf .toc{position:sticky; top:calc(82px + env(safe-area-inset-top,0px)); align-self:start; max-height:calc(100vh - 110px); overflow:auto; font-family:var(--font-display)}
.wf .toc summary{list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; font:600 14px var(--font-display); padding:13px 16px}
.wf .toc summary::-webkit-details-marker{display:none}
.wf .toc summary .chev{transition:transform .2s; color:var(--muted)}
.wf .toc details[open] summary .chev{transform:rotate(180deg)}
.wf .toc-title{font:500 11.5px/1 var(--font-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin:4px 0 14px}
.wf .toc ol{list-style:none; margin:0; padding:0; display:grid; gap:2px}
.wf .toc a{display:grid; grid-template-columns:26px 1fr; gap:6px; text-decoration:none; color:var(--muted); font-size:13.5px; line-height:1.35; padding:7px 8px; border-radius:8px; transition:color .15s, background .15s}
.wf .toc a .n{font:500 11px/1.6 var(--font-mono); color:color-mix(in srgb,var(--muted) 80%,transparent)}
.wf .toc a:hover{color:var(--fg); background:var(--surface)}
.wf .toc a.is-current{color:var(--fg); background:var(--surface)}
.wf .toc a.is-current .n{color:var(--violet)}
.wf .toc a.fig-link .n{color:var(--teal)}
.wf .toc-progress{margin-top:16px; font:500 11.5px var(--font-mono); color:var(--muted)}
@media (min-width:1101px){
.wf .toc summary{display:none}
}
@media (max-width:1100px){
.wf .layout{grid-template-columns:minmax(0,1fr); gap:24px; padding-top:8px}
.wf .toc{position:sticky; top:calc(58px + env(safe-area-inset-top,0px)); z-index:40; max-height:none; overflow:visible; margin-inline:calc(-1 * max(16px, env(safe-area-inset-left,0px)))}
.wf .toc details{background:color-mix(in srgb,var(--bg) 92%,transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid var(--line)}
.wf .toc .toc-body{padding:0 16px 14px; max-height:60vh; overflow:auto}
.wf .toc-title{display:none}
}
.wf main.article{min-width:0}
.wf .wf-prose{max-width:690px; margin-inline:auto}
.wf .wf-prose p{margin:0 0 1.15em; text-wrap:pretty}
.wf .lede{font-size:1.28rem; line-height:1.55; color:var(--fg-2); font-style:italic; margin:0 0 2em!important; padding-bottom:1.6em; border-bottom:1px solid var(--line)}
.wf .wf-prose .dropcap::first-letter{font-family:var(--font-display); font-weight:700; float:left; font-size:3.6em; line-height:.86; margin:.08em .12em 0 0; color:var(--violet)}
.wf .wf-sec{padding-top:40px}
.wf .wf-sec .wf-prose h3{font-family:var(--font-display); font-weight:700; font-size:clamp(1.45rem,2.3vw,1.85rem); line-height:1.2; letter-spacing:-.018em; margin:0 0 22px; text-wrap:balance; display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:baseline}
.wf .wf-sec .wf-prose h3 .num{font:500 13px/1 var(--font-mono); color:var(--muted); border:1px solid var(--line-2); border-radius:7px; padding:6px 7px; position:relative; top:-3px}
.wf .wf-sec.final .wf-prose h3{grid-template-columns:1fr}
.wf .tn{font-family:var(--font-mono); font-size:.8em; letter-spacing:-.01em; padding:.12em .42em; border-radius:6px; background:var(--surface-2); border:1px solid var(--line); color:var(--fg); white-space:nowrap}
.wf .wf-prose ul.groups{list-style:none; padding:0; margin:0 0 1.3em; display:grid; gap:12px}
.wf .wf-prose ul.groups li{display:grid; grid-template-columns:12px 1fr; gap:14px; align-items:baseline}
.wf .wf-prose ul.groups li::before{content:""; width:9px; height:9px; border-radius:3px; background:var(--c); transform:translateY(-1px)}
.wf .pull{margin:2em 0 2.1em; padding:0 0 0 1.4em; position:relative; font-family:var(--font-body); font-style:italic; font-size:1.42rem; line-height:1.45; color:var(--fg); text-wrap:balance}
.wf .pull::before{content:"\201C"; position:absolute; left:-.15em; top:-.32em; font-family:var(--font-display); font-style:normal; font-weight:800; font-size:3.4rem; color:var(--violet); line-height:1}
.wf .pull p{margin:0!important}
.wf .callout{margin:1.8em 0; padding:18px 20px 18px 20px; border:1px solid color-mix(in srgb,var(--c,var(--amber)) 40%,var(--line)); background:color-mix(in srgb,var(--c,var(--amber)) 7%,var(--surface)); border-radius:var(--radius)}
.wf .callout .ck{font:600 11px/1 var(--font-mono); letter-spacing:.12em; text-transform:uppercase; color:var(--c,var(--amber)); margin-bottom:10px; display:block}
.wf .callout p{margin:0!important; font-size:1.02rem}
.wf .steps{list-style:none; padding:0; margin:1.4em 0 1.6em; counter-reset:st; position:relative}
.wf .steps::before{content:""; position:absolute; left:15px; top:10px; bottom:10px; width:1px; background:linear-gradient(var(--blue),var(--sand),var(--teal),var(--violet),var(--amber),var(--blue))}
.wf .steps li{counter-increment:st; position:relative; display:grid; grid-template-columns:32px 1fr; gap:16px; padding:10px 0}
.wf .steps li::before{content:counter(st); width:31px; height:31px; border-radius:50%; display:grid; place-items:center; font:600 12px var(--font-mono); background:var(--bg); border:1px solid var(--c); color:var(--c); position:relative; z-index:1}
.wf .steps li p{margin:3px 0 0!important}
.wf .steps li b{font-family:var(--font-display); font-weight:600; color:var(--fg); margin-right:4px}
.wf .end-note{margin-top:48px; padding-top:22px; border-top:1px solid var(--line); font-family:var(--font-display); font-size:14.5px; color:var(--muted)}
.wf .end-note a{color:var(--fg)}
.wf .fig{margin:44px auto; max-width:1000px}
.wf .frame{position:relative; background:var(--bg-2); border:1px solid var(--line); border-radius:20px; padding:22px; overflow:hidden}
.wf .frame::before{content:""; position:absolute; inset:0; background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px); background-size:28px 28px; opacity:.35; pointer-events:none; -webkit-mask-image:linear-gradient(180deg,#000,transparent 85%); mask-image:linear-gradient(180deg,#000,transparent 85%)}
.wf .frame > *{position:relative}
.wf .fig-bar{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 18px; margin-bottom:18px}
.wf .fig-label{font:500 12px/1.3 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--fg-2); display:flex; align-items:center; gap:10px}
.wf .fig-label i{width:8px; height:8px; border-radius:50%; background:var(--c,var(--violet)); box-shadow:0 0 12px var(--c,var(--violet))}
.wf .fig figcaption{font-family:var(--font-display); font-size:14.5px; line-height:1.5; color:var(--muted); margin:14px 4px 0; max-width:720px}
.wf .fig figcaption b{color:var(--fg-2); font-weight:600}
.wf .legend{display:flex; flex-wrap:wrap; gap:6px 16px; font:500 12px/1.4 var(--font-mono); color:var(--muted)}
.wf .legend span{display:inline-flex; align-items:center; gap:7px}
.wf .legend s{display:inline-block; width:20px; height:0; border-top:2px solid var(--c); text-decoration:none}
.wf .legend s.d{border-top-style:dashed}
.wf .wf-btn{appearance:none; display:inline-flex; align-items:center; gap:8px; font:500 12.5px/1 var(--font-mono); color:var(--fg); background:var(--surface); border:1px solid var(--line-2); border-radius:9px; padding:9px 12px; cursor:pointer; transition:border-color .15s, background .15s}
.wf .wf-btn:hover{border-color:var(--c,var(--violet))}
.wf .wf-btn[aria-pressed="true"]{border-color:var(--c,var(--violet)); background:color-mix(in srgb,var(--c,var(--violet)) 14%,var(--surface))}
.wf .wf-btn svg{width:13px; height:13px}
.wf .chips{display:flex; flex-wrap:wrap; gap:6px}
.wf .chip{font:500 12px/1 var(--font-mono); color:var(--fg-2); border:1px solid var(--line-2); padding:6px 8px; border-radius:7px; background:var(--surface)}
.wf .diagram{position:relative}
.wf .diagram > svg.wires{position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; z-index:0}
.wf .node{position:relative; z-index:1; appearance:none; font:inherit; text-align:left; color:var(--fg); background:var(--surface); border:1px solid color-mix(in srgb,var(--tone,var(--line-2)) 38%,var(--line-2)); border-radius:var(--radius); padding:12px 14px; cursor:pointer; transition:opacity .25s, border-color .25s, box-shadow .25s, transform .25s; font-family:var(--font-display); min-width:0}
.wf .node:hover{border-color:var(--tone,var(--fg-2))}
.wf .node .k{display:flex; align-items:center; gap:7px; font:500 11px/1.2 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:6px}
.wf .node .k i{width:7px; height:7px; border-radius:50%; background:var(--tone,var(--muted)); flex:none}
.wf .node .t{display:block; font-weight:600; font-size:15px; line-height:1.25; letter-spacing:-.01em}
.wf .node .d{display:block; font-size:13px; line-height:1.4; color:var(--muted); margin-top:5px}
.wf .node.is-active{border-color:var(--tone,var(--fg)); box-shadow:0 0 0 1px var(--tone,var(--fg)), 0 0 34px -8px var(--tone,var(--fg));}
.wf .node.is-linked{border-color:color-mix(in srgb,var(--tone,var(--fg)) 70%,var(--line-2))}
.wf .diagram.has-focus .node:not(.is-active):not(.is-linked){opacity:.42}
.wf .t-violet{--tone:var(--violet)}
.wf .t-teal{--tone:var(--teal)}
.wf .t-amber{--tone:var(--amber)}
.wf .t-green{--tone:var(--green)}
.wf .t-blue{--tone:var(--blue)}
.wf .t-rose{--tone:var(--rose)}
.wf .t-sand{--tone:var(--sand)}
.wf .edge-g{--c:var(--muted); transition:opacity .25s}
.wf .edge-g[data-tone="violet"]{--c:var(--violet)}
.wf .edge-g[data-tone="teal"]{--c:var(--teal)}
.wf .edge-g[data-tone="amber"]{--c:var(--amber)}
.wf .edge-g[data-tone="green"]{--c:var(--green)}
.wf .edge-g[data-tone="blue"]{--c:var(--blue)}
.wf .edge-g[data-tone="rose"]{--c:var(--rose)}
.wf .edge-g[data-tone="sand"]{--c:var(--sand)}
.wf .edge{fill:none; stroke:var(--c); stroke-width:1.6; opacity:.55; stroke-linecap:round; transition:opacity .25s, stroke-width .25s}
.wf .edge-g.dashed .edge{stroke-dasharray:5 6}
.wf .edge-g.flow .edge{stroke-dasharray:3 9; animation:flow 1.1s linear infinite; opacity:.85}
@keyframes flow{to{stroke-dashoffset:-24}}
.wf .edge-g.is-active .edge{opacity:1; stroke-width:2.3}
.wf .diagram.has-focus .edge-g:not(.is-active){opacity:.22}
.wf .elabel{font:500 12px var(--font-mono); fill:var(--muted)}
.wf .elabel-bg{fill:var(--halo)}
.wf .edge-g.label-active .elabel-bg{opacity:0; transition:opacity .2s}
.wf .edge-g.label-active.is-active .elabel-bg{opacity:1}
.wf .edge-g.is-active .elabel{fill:var(--c)}
.wf .edge-g.label-active .elabel{opacity:0; transition:opacity .2s}
.wf .edge-g.label-active.is-active .elabel{opacity:1}
.wf .pulse-dot{fill:var(--c,var(--violet)); filter:drop-shadow(0 0 6px var(--c,var(--violet)))}
.wf .panel{border:1px solid var(--line); background:var(--surface); border-radius:var(--radius); padding:18px 20px; font-family:var(--font-display)}
.wf .panel h3{font-size:18px; margin:0 0 6px; letter-spacing:-.01em; display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.wf .panel h3 i{width:9px; height:9px; border-radius:50%; background:var(--tone,var(--violet))}
.wf .panel p{margin:0; color:var(--fg-2); font-size:15px; line-height:1.55}
.wf .panel .meta{margin-top:12px; display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:13px; color:var(--muted)}
.wf .panel a.more{font:500 12.5px var(--font-mono); color:var(--tone,var(--violet)); text-decoration:none; margin-left:auto}
.wf .panel a.more:hover{text-decoration:underline}
.wf .ov{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:30px; padding:52px 6px 112px}
.wf .ov .node{min-height:138px; display:flex; flex-direction:column}
.wf .ov .node .d{margin-top:auto; padding-top:10px}
.wf .ov.is-narrow{grid-template-columns:minmax(0,1fr); gap:34px; padding:6px 62px 6px 70px}
.wf .ov.is-narrow .node{min-height:0}
.wf .ov-panel{margin-top:6px}
.wf .infra{display:grid; grid-template-columns:minmax(0,230px) minmax(0,1fr); gap:130px; align-items:center; padding:8px 4px}
.wf .infra-clients{display:grid; gap:22px}
.wf .device{display:flex; gap:12px; align-items:flex-start}
.wf .device svg{width:30px; height:30px; flex:none; color:var(--tone); margin-top:2px}
.wf .device .status{display:inline-flex; align-items:center; gap:6px; font:500 11px var(--font-mono); color:var(--green); margin-top:6px}
.wf .device .status::before{content:""; width:6px; height:6px; border-radius:50%; background:currentColor}
.wf .infra.off .device{opacity:.4; filter:grayscale(1)}
.wf .infra.off .device .status{color:var(--muted)}
.wf .vps{position:relative; z-index:1; border:1px solid color-mix(in srgb,var(--teal) 45%,var(--line-2)); background:color-mix(in srgb,var(--teal) 5%,var(--surface)); border-radius:18px; padding:18px; box-shadow:0 0 50px -24px var(--teal)}
.wf .vps-head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:14px}
.wf .vps-head .t{font:600 16px/1.25 var(--font-display)}
.wf .vps-head .k{font:500 11px var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--teal); margin-bottom:4px; display:block}
.wf .live{display:inline-flex; align-items:center; gap:7px; font:500 11.5px var(--font-mono); color:var(--green); border:1px solid color-mix(in srgb,var(--green) 40%,var(--line-2)); border-radius:999px; padding:5px 9px}
.wf .live::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--green); animation:pulse 1.6s ease-in-out infinite}
.wf .vps-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px}
.wf .vps-item{border:1px solid var(--line); background:var(--bg-2); border-radius:11px; padding:10px 12px; font-family:var(--font-display)}
.wf .vps-item b{display:block; font-size:14px; font-weight:600}
.wf .vps-item span{display:block; font-size:12.5px; color:var(--muted); line-height:1.35; margin-top:3px}
.wf .vps-item.long{grid-column:span 2}
.wf .bar{height:6px; border-radius:99px; background:var(--line); margin-top:9px; overflow:hidden}
.wf .bar i{display:block; height:100%; width:0; background:linear-gradient(90deg,var(--teal),var(--violet)); border-radius:99px; transition:width .9s linear}
.wf .hours{font:500 11.5px var(--font-mono); color:var(--fg-2); margin-top:6px; font-variant-numeric:tabular-nums}
.wf .infra-note{margin-top:16px; display:grid; grid-template-columns:auto 1fr; gap:10px; font-family:var(--font-display); font-size:13.5px; color:var(--muted); border-top:1px dashed var(--line-2); padding-top:14px}
.wf .infra-note svg{width:16px; height:16px; color:var(--amber); margin-top:2px}
.wf .infra-msg{font-family:var(--font-display); font-size:14px; color:var(--fg-2); min-height:1.5em}
.wf .infra.is-narrow{grid-template-columns:minmax(0,1fr); gap:78px}
.wf .infra.is-narrow .infra-clients{grid-template-columns:1fr 1fr; gap:12px}
.wf .infra.is-narrow .vps-grid{grid-template-columns:1fr 1fr}
.wf .lipp{display:grid; grid-template-columns:minmax(0,176px) minmax(0,1fr) minmax(0,176px); gap:100px; align-items:center; padding:46px 4px 64px}
.wf .lipp-core{position:relative; z-index:1; border:1px solid var(--line-2); border-radius:20px; background:var(--surface); padding:18px}
.wf .lipp-head{display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; margin-bottom:14px; font-family:var(--font-display)}
.wf .lipp-head .t{font:700 20px/1.1 var(--font-display); letter-spacing:-.02em}
.wf .lipp-head .s{display:block; font-size:13px; color:var(--muted); margin-top:4px}
.wf .lipp-head a{font:500 12px var(--font-mono); color:var(--teal); text-decoration:none}
.wf .lipp-groups{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.wf .lgroup{appearance:none; text-align:left; font:inherit; color:var(--fg); cursor:pointer; border:1px solid color-mix(in srgb,var(--tone) 30%,var(--line)); background:var(--bg-2); border-radius:13px; padding:12px; transition:opacity .25s, border-color .25s, box-shadow .25s; font-family:var(--font-display); min-width:0}
.wf .lgroup:hover,.wf .lgroup.is-active{border-color:var(--tone)}
.wf .lgroup.is-active{box-shadow:0 0 0 1px var(--tone)}
.wf .lgroup .gh{display:flex; justify-content:space-between; gap:8px; align-items:center; margin-bottom:9px; flex-wrap:wrap}
.wf .lgroup .gh b{font-size:14.5px; font-weight:600}
.wf .badge{font:500 10.5px/1 var(--font-mono); letter-spacing:.04em; padding:5px 7px; border-radius:6px; border:1px solid currentColor; white-space:nowrap}
.wf .badge.port{color:var(--teal)}
.wf .badge.cc{color:var(--amber)}
.wf .lgroup ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:5px}
.wf .lgroup li{font:500 11.5px/1 var(--font-mono); color:var(--fg-2); background:var(--surface); border:1px solid var(--line); padding:5px 7px; border-radius:6px}
.wf .lipp-core[data-filter="portable"] .lgroup[data-kind="mod"],.wf .lipp-core[data-filter="cc"] .lgroup[data-kind="skill"]{opacity:.25}
.wf .lipp.is-narrow{grid-template-columns:minmax(0,1fr); gap:56px; padding:6px 52px 6px 4px}
.wf .lipp.is-narrow .lipp-groups{grid-template-columns:1fr}
.wf .lipp-panel{margin-top:4px}
.wf .orch{min-height:200px}
.wf .orch.radial .node{position:absolute; transform:translate(-50%,-50%)}
.wf .orch.radial .hub{left:50%; top:50%; width:260px}
.wf .orch .agent{width:180px}
.wf .orch .hub{background:color-mix(in srgb,var(--violet) 9%,var(--surface)); border-color:color-mix(in srgb,var(--violet) 60%,var(--line-2)); padding:16px 18px; box-shadow:0 0 60px -20px var(--violet)}
.wf .orch .hub .t{font-size:20px; font-weight:700; letter-spacing:-.02em}
.wf .orch .hub .resp{display:flex; flex-wrap:wrap; gap:5px; margin-top:10px}
.wf .orch .hub .resp span{font:500 11px/1 var(--font-mono); color:var(--fg-2); border:1px solid color-mix(in srgb,var(--violet) 35%,var(--line)); border-radius:6px; padding:5px 6px; background:var(--bg-2)}
.wf .orch:not(.radial){display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:0 0 0 46px}
.wf .orch:not(.radial) .hub{margin-left:-46px; margin-bottom:22px}
.wf .orch:not(.radial) .agent{width:auto}
.wf .orch-panel{margin-top:16px; display:grid; grid-template-columns:minmax(0,1.1fr) repeat(2,minmax(0,1fr)); gap:18px; align-items:start}
.wf .orch-panel .col h4{font:500 11px/1 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:0 0 8px}
.wf .orch-panel .col p{font-size:14.5px}
.wf .orch-panel .col.main p{font-size:15px}
@media (max-width:760px){
.wf .orch-panel{grid-template-columns:1fr}
}
.wf .player{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.wf .scen{display:flex; flex-wrap:wrap; gap:6px}
.wf .scen .wf-btn{--c:var(--violet)}
.wf .toggle{display:inline-flex; align-items:center; gap:8px; font:500 12.5px var(--font-mono); color:var(--fg-2); cursor:pointer; user-select:none}
.wf .toggle input{accent-color:var(--rose); width:15px; height:15px}
.wf .sub-head{display:flex; align-items:center; gap:12px; margin:30px 0 8px; font:500 12px/1.2 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--fg-2)}
.wf .sub-head::after{content:""; flex:1; height:1px; background:var(--line)}
.wf .pipe{display:grid; grid-template-columns:1fr 1fr 1.25fr .9fr 1.15fr; gap:34px; align-items:center; padding:46px 4px 112px}
.wf .pipe .node{min-height:96px}
.wf .qa-zone{position:relative; z-index:1; border:1px dashed color-mix(in srgb,var(--green) 55%,var(--line-2)); border-radius:18px; padding:9px; background:color-mix(in srgb,var(--green) 4%,transparent)}
.wf .qa-zone > .zl{display:block; margin:0 3px 8px; font:500 10.5px/1.2 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; color:var(--green)}
.wf .qa-zone .node{width:100%}
.wf .decision .t{display:flex; gap:6px; align-items:center}
.wf .decision .outs{display:grid; gap:4px; margin-top:8px; font:500 11.5px/1.3 var(--font-mono)}
.wf .decision .outs .ok{color:var(--green)}
.wf .decision .outs .no{color:var(--rose)}
.wf .pipe.is-narrow{grid-template-columns:minmax(0,1fr); gap:34px; padding:6px 74px 6px 4px}
.wf .caption-live{display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; margin-top:4px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:var(--surface); font-family:var(--font-display); font-size:14.5px; color:var(--fg-2); min-height:54px}
.wf .caption-live .stepn{font:600 12px var(--font-mono); color:var(--violet); white-space:nowrap; font-variant-numeric:tabular-nums}
.wf .dots{display:flex; gap:4px; margin-top:10px; flex-wrap:wrap}
.wf .dots i{width:18px; height:4px; border-radius:2px; background:var(--line-2); transition:background .2s}
.wf .dots i.on{background:var(--violet)}
.wf .dots i.done{background:color-mix(in srgb,var(--violet) 45%,var(--line-2))}
.wf .guard{margin-top:14px; display:flex; gap:10px; align-items:flex-start; font-family:var(--font-display); font-size:13.5px; color:var(--muted)}
.wf .guard svg{width:16px; height:16px; color:var(--green); flex:none; margin-top:2px}
.wf .mem{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:auto auto; gap:96px 100px; padding:30px 54px 34px 54px}
.wf .mem #m-work{grid-area:1/1}
.wf .mem #m-mem{grid-area:1/2}
.wf .mem #m-post{grid-area:1/3}
.wf .mem #m-chan{grid-area:2/3}
.wf .mem #m-fb{grid-area:2/2}
.wf .mem #m-disc{grid-area:2/1}
.wf .mem.is-narrow{grid-template-columns:minmax(0,1fr); grid-template-rows:none; gap:40px; padding:6px 6px 6px 66px}
.wf .mem.is-narrow .node{grid-area:auto!important}
.wf .mem .node{min-height:96px}
@media (max-width:640px){
.wf{font-size:17px}
.wf .frame{padding:16px 14px; border-radius:16px}
.wf .fig{margin:34px auto}
.wf .pull{font-size:1.24rem}
.wf .lede{font-size:1.15rem}
.wf .band{padding-block:52px 20px}
}
@media not all{
.wf{scroll-behavior:auto}
.wf *,.wf *::before,.wf *::after{animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important}
.wf .edge-g.flow .edge{stroke-dasharray:3 6}
}
.wf{--bg:#14111b; --bg-2:#18141f; --surface:#1d1826; --surface-2:#251f31; --line:#2e2740; --line-2:#3f3555;
  --fg:#f1ecf7; --fg-2:#cdc4da; --muted:#9488a8; --halo:#18141f; --shadow:#0a0810;
  --violet:#b48cff; --teal:#3fe0c5; --amber:#ffc857; --green:#6ee7a0; --blue:#72b4ff; --rose:#ff7d93; --sand:#e8d4ae;
  --font-display:"Pixelify Sans", "Silkscreen", ui-monospace, monospace;
  --font-hud:"Silkscreen", "Pixelify Sans", ui-monospace, monospace;
  --font-body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
  --radius:2px;
  --grid: color-mix(in srgb, var(--line) 45%, transparent);
  color-scheme:dark;}
.wf{font-size:17.5px; line-height:1.72}
.wf :focus-visible{outline:2px dashed var(--amber); outline-offset:3px; border-radius:0}
.wf .frame{border:2px solid var(--line-2); box-shadow:6px 6px 0 var(--shadow)}
.wf .frame::before{background-image:radial-gradient(var(--grid) 1px,transparent 1.2px); background-size:16px 16px; opacity:.55}
.wf .node,.wf .panel,.wf .lipp-core,.wf .vps,.wf .caption-live{box-shadow:4px 4px 0 var(--shadow)}
.wf .node{border-width:2px}
.wf .node.is-active{box-shadow:0 0 0 2px var(--tone,var(--fg)), 5px 5px 0 color-mix(in srgb,var(--tone,var(--fg)) 45%,var(--shadow)); transform:translate(-1px,-1px)}
.wf .orch.radial .node.is-active{transform:translate(calc(-50% - 1px),calc(-50% - 1px))}
.wf .orch .hub{box-shadow:0 0 0 2px color-mix(in srgb,var(--violet) 40%,transparent), 6px 6px 0 var(--shadow)}
.wf .wf-btn,.wf .link-btn{border-width:2px; box-shadow:3px 3px 0 var(--shadow); transition:transform .12s, box-shadow .12s, border-color .12s}
.wf .wf-btn:hover,.wf .link-btn:hover{transform:translate(-1px,-1px); box-shadow:4px 4px 0 var(--shadow)}
.wf .wf-btn:active,.wf .link-btn:active{transform:translate(2px,2px); box-shadow:1px 1px 0 var(--shadow)}
.wf .seg{border-width:2px; padding:2px}
.wf .kicker,.wf .fig-label,.wf .node .k,.wf .tag,.wf .toc-title,.wf .sub-head,.wf .callout .ck,.wf .badge,.wf .vps-head .k,.wf .qa-zone>.zl,.wf .orch-panel .col h4,.wf .panel .io b,.wf .toc-progress,.wf .facts span>span,.wf .live,.wf .device .status,.wf .legend,.wf .stepn{font-family:var(--font-hud)!important; letter-spacing:.03em!important}
.wf .kicker{font-size:13px; color:var(--teal)}
.wf .kicker::before{content:"▸"; width:auto; height:auto; background:none; color:var(--teal)}
.wf .fig-label{font-size:13px; color:var(--fg)}
.wf .fig-label i{border-radius:0; box-shadow:none; width:8px; height:8px}
.wf .node .k{font-size:11.5px}
.wf .node .k i,.wf .panel h3 i,.wf .tag i{border-radius:0}
.wf .tag{font-size:11.5px; border-width:2px; background:var(--surface)}
.wf .sub-head{font-size:13px}
.wf .sub-head::after{height:2px; background:repeating-linear-gradient(90deg,var(--line-2) 0 6px,transparent 6px 10px)}
.wf .legend s{border-top-width:3px}
.wf .band-head h2,.wf .wf-sec .wf-prose h3,.wf .panel h3,.wf .lipp-head .t,.wf .vps-head .t{font-family:var(--font-display); letter-spacing:0}
.wf .wf-sec .wf-prose h3{font-weight:600; font-size:clamp(1.5rem,2.4vw,1.95rem)}
.wf .wf-sec .wf-prose h3 .num{font-family:var(--font-hud); font-size:12px; color:var(--amber); border:2px solid color-mix(in srgb,var(--amber) 55%,var(--line-2)); background:var(--surface); top:-4px}
.wf .wf-sec .wf-prose h3 .num::before{content:"Q"; opacity:.7}
.wf .node .t,.wf .lgroup .gh b{font-family:var(--font-display); font-weight:600; letter-spacing:.01em}
.wf .orch .hub .t{font-family:var(--font-display)}
.wf .node .d,.wf .panel p,.wf .panel .io,.wf .panel ul.resp,.wf .vps-item span,.wf .fig figcaption,.wf .guard,.wf .infra-note,.wf .infra-msg,.wf .caption-live{font-family:var(--font-body)}
.wf .lede{font-style:normal; font-weight:300; color:var(--fg-2); border-bottom:2px dashed var(--line-2)}
.wf .wf-prose .dropcap::first-letter{font-family:var(--font-display); color:var(--amber); font-size:3.4em; line-height:.9}
.wf .pull{font-family:var(--font-display); font-style:normal; font-weight:500; font-size:1.45rem; line-height:1.4; padding-left:1.3em; border-left:4px solid var(--violet); padding-block:.15em}
.wf .pull::before{content:none}
.wf .callout{border-width:2px; box-shadow:4px 4px 0 var(--shadow)}
.wf .tn{font-size:.82em; border-width:1px; background:color-mix(in srgb,var(--violet) 10%,var(--surface))}
.wf .steps::before{width:2px; background:repeating-linear-gradient(180deg,var(--line-2) 0 6px,transparent 6px 10px)}
.wf .steps li::before{border-radius:0; border-width:2px; font-family:var(--font-hud); font-size:12px; box-shadow:2px 2px 0 var(--shadow)}
.wf .wf-prose ul.groups li::before{border-radius:0}
.wf .wf-prose a{color:var(--teal); text-decoration-thickness:2px; text-underline-offset:3px}
.wf .wf-hero{border-bottom:2px solid var(--line)}
.wf .hero-art text{font-family:var(--font-display)}
.wf .hero-art text[font-family^="JetBrains"]{font-family:var(--font-hud)}
.wf .facts b{font-family:var(--font-display); font-size:22px; color:var(--amber)}
.wf .link-btn{font-family:var(--font-hud); font-size:12px}
.wf .link-btn span.k{color:var(--amber)}
.wf .toc{font-family:var(--font-body)}
.wf .toc a{font-size:14px}
.wf .toc a .n{font-family:var(--font-hud); font-size:11px}
.wf .toc a.is-current{background:var(--surface); box-shadow:inset 3px 0 0 var(--amber)}
.wf .toc a.is-current .n{color:var(--amber)}
.wf .toc a.fig-link .n{color:var(--teal)}
@media (max-width:1100px){
.wf .toc summary{font-family:var(--font-hud); font-weight:400; font-size:12.5px}
}
.wf .elabel{font-family:var(--font-mono)}
.wf .badge{font-size:10.5px}
.wf .end-note{border-top:2px dashed var(--line)}
.wf .stack{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:12px; align-items:start}
.wf .lane{display:grid; gap:10px; transition:opacity .25s}
.wf .lane-head{font:400 12.5px/1.25 var(--font-hud); letter-spacing:.03em; color:var(--fg); padding:10px 10px 9px; border:2px solid color-mix(in srgb,var(--tone) 55%,var(--line-2)); background:color-mix(in srgb,var(--tone) 12%,var(--surface)); display:grid; grid-template-columns:auto 1fr; gap:3px 8px; align-items:center; border-radius:2px}
.wf .lane-head i{width:8px; height:8px; background:var(--tone)}
.wf .stack[data-tf] .lane[data-phase="code"]{opacity:1}
.wf .lane-head small{grid-column:1/-1; font:400 12.5px/1.3 var(--font-body); letter-spacing:0; color:var(--muted)}
.wf .tool{appearance:none; position:relative; text-align:left; font:inherit; color:var(--fg); cursor:pointer; background:var(--surface); border:2px solid var(--line-2); border-radius:2px; padding:12px; display:grid; gap:4px; box-shadow:4px 4px 0 var(--shadow); transition:transform .12s, box-shadow .12s, border-color .2s, opacity .25s; min-width:0}
.wf .tool:hover{border-color:var(--tone); transform:translate(-1px,-1px); box-shadow:5px 5px 0 var(--shadow)}
.wf .tool b{font:600 16px/1.2 var(--font-display); letter-spacing:.01em}
.wf .tool b small{font:400 12px var(--font-body); color:var(--muted)}
.wf .tool > span{font:400 13.5px/1.4 var(--font-body); color:var(--fg-2)}
.wf .tool .tool-sub{color:var(--muted); font-size:13px}
.wf .tool.is-active{border-color:var(--tone); box-shadow:0 0 0 2px var(--tone), 5px 5px 0 color-mix(in srgb,var(--tone) 45%,var(--shadow)); transform:translate(-1px,-1px)}
.wf .stack.has-focus .tool:not(.is-active){opacity:.45}
.wf .chip-local{justify-self:start; margin-top:4px; font:400 10.5px/1 var(--font-hud); font-style:normal; color:var(--green); border:1px solid currentColor; padding:3px 5px}
.wf .vps-pips{display:flex!important; align-items:center; gap:4px; margin-top:6px}
.wf .vps-pips i{width:10px; height:10px; background:var(--teal); box-shadow:2px 2px 0 var(--shadow)}
.wf .vps-pips small{font:400 11px var(--font-hud); color:var(--teal); margin-left:4px}
.wf .stack[data-tf="before"] .lane[data-phase="after"],.wf .stack[data-tf="after"] .lane[data-phase="before"]{opacity:.22}
.wf .code-rail{display:grid; grid-template-columns:1fr auto 1fr; gap:12px; align-items:center; margin:18px 0 4px; font:400 12px/1.3 var(--font-hud); color:var(--muted)}
.wf .code-rail > span:last-child,.wf .code-rail > span:nth-last-child(2){text-align:right}
.wf .code-rail b{font:500 12.5px var(--font-mono); color:var(--amber); padding:7px 12px; border:2px dashed color-mix(in srgb,var(--amber) 50%,var(--line-2)); white-space:nowrap}
.wf .tools-bottom{display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:18px; margin-top:16px; align-items:stretch}
.wf .venn-box{border:2px solid var(--line-2); background:var(--surface); padding:14px; box-shadow:4px 4px 0 var(--shadow); border-radius:2px}
.wf .venn-title{font:400 12.5px var(--font-hud); color:var(--fg); margin-bottom:6px}
.wf .venn{width:100%; max-width:380px; height:auto; display:block; margin-inline:auto}
.wf .venn rect{transition:opacity .25s, stroke-width .25s}
.wf .venn.f-ai #vn-ob,.wf .venn.f-ob #vn-ai{opacity:.3}
.wf .venn.f-ai #vn-ai,.wf .venn.f-ob #vn-ob{stroke-width:3}
@media (max-width:1040px){
.wf .stack{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
.wf .tools-bottom{grid-template-columns:1fr}
}
@media (max-width:620px){
.wf .stack{grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.wf .code-rail{grid-template-columns:1fr}
.wf .code-rail > span{display:none}
.wf .code-rail b{white-space:normal; text-align:center}
.wf .tool b{font-size:15px}
}
@media (max-width:380px){
.wf .stack{grid-template-columns:1fr}
}
.wf .part{max-width:760px; margin:88px auto 8px; padding:26px 0 0; border-top:2px dashed var(--line-2); position:relative}
.wf .part-k{display:inline-block; font:400 12.5px/1 var(--font-hud); letter-spacing:.06em; color:var(--bg); background:var(--amber); padding:6px 9px; box-shadow:3px 3px 0 var(--shadow); text-transform:uppercase}
.wf .part-t{font:700 clamp(1.9rem,3.4vw,2.6rem)/1.08 var(--font-display); margin:16px 0 10px; letter-spacing:0; text-wrap:balance}
.wf .part p{margin:0; color:var(--fg-2); font-size:1.08rem; max-width:40em}
.wf .part + .wf-sec{padding-top:28px}
.wf .toc .toc-part{font:400 11px/1.3 var(--font-hud); letter-spacing:.04em; color:var(--amber); text-transform:uppercase; padding:14px 8px 4px}
.wf .toc .toc-part:first-of-type{padding-top:10px}
.wf .mbadge{width:30px; height:30px; display:grid; place-items:center; margin-bottom:6px; flex:none}
.wf .mbadge img{width:30px; height:30px; object-fit:contain; border-radius:6px; image-rendering:auto}
.wf .tools-bottom{grid-template-columns:1fr}
.wf .venn-wrap{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; align-items:center}
.wf .venn-wrap .venn{max-width:360px}
.wf .venn-keys{display:grid; gap:12px}
.wf .vk{border:2px solid color-mix(in srgb,var(--tone) 45%,var(--line-2)); background:var(--surface); padding:12px 14px; box-shadow:4px 4px 0 var(--shadow); display:grid; gap:4px}
.wf .vk b{font:600 16px/1.2 var(--font-display)}
.wf .vk b small{font:400 12px var(--font-body); color:var(--muted)}
.wf .vk > span:last-child{font:400 14px/1.5 var(--font-body); color:var(--fg-2)}
@media (max-width:700px){
.wf .venn-wrap{grid-template-columns:1fr}
}
.wf .node.device{cursor:default}
.wf .node.device:hover{border-color:color-mix(in srgb,var(--tone,var(--line-2)) 38%,var(--line-2))}
.wf .pipe .node{cursor:default}
.wf .panel ul.resp{margin:6px 0 0; padding-left:18px; color:var(--fg-2); font-size:14.5px; line-height:1.55; columns:2; column-gap:28px}
@media (max-width:640px){
.wf .panel ul.resp{columns:1}
}
.wf .panel .io{display:grid; grid-template-columns:auto 1fr; gap:4px 10px; margin-top:12px; font-size:14px; color:var(--fg-2)}
.wf .panel .io b{font:500 11px/1.9 var(--font-mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:500}

/* ── inside the site's post page: the site's column, fonts and nav; figures break out of the column ── */
.wf{--font-display:var(--display); --font-hud:var(--mono); --font-body:var(--sans); --font-mono:var(--mono);
  --amber:#ffc85c; --teal:#5fd4c4; --fig:min(1000px, 100vw - 2 * var(--gutter));
  background:none; overflow:visible; scroll-behavior:auto; color:var(--ink-2); font-size:1.0625rem; line-height:1.7}
.wf p,.wf h3,.wf h4,.wf ul,.wf ol,.wf figure,.wf blockquote{margin:0}
.wf .wf-prose{max-width:none}
.wf .wf-prose p{margin:0 0 1.15em}
.wf .wf-prose strong,.wf .wf-prose b{color:var(--ink); font-weight:500}
.wf .wf-prose a{color:var(--ink); text-decoration:underline; text-decoration-color:var(--ink-4); text-underline-offset:3px}
.wf .wf-prose a:hover{color:var(--acc); text-decoration-color:var(--acc)}
.wf .lede{color:var(--ink-2)}
.wf .wf-sec .wf-prose h3{color:var(--ink)}

.wf .wf-top .subtitle{font-size:1.15rem; color:var(--ink-2); margin:0 0 22px}
.wf .wf-top .facts{margin-top:24px}
.wf .wf-art{margin:40px 0 8px}
.wf .wf-art .hero-art svg{max-width:520px}

/* the table of contents: a bar under the site's nav that follows the reading */
.wf .toc{position:sticky; top:var(--nav-h); z-index:40; margin:32px 0 0; max-height:none; overflow:visible; font-family:var(--font-body)}
.wf .toc details{background:color-mix(in srgb,var(--bg) 94%,transparent); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:2px solid var(--line-2); box-shadow:4px 4px 0 var(--shadow); position:relative; overflow:hidden}
.wf .toc details::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:100%; transform-origin:0 50%; transform:scaleX(var(--read,0)); background:repeating-linear-gradient(90deg,var(--violet) 0 8px,var(--teal) 8px 16px)}
.wf .toc summary{display:flex; font:400 12.5px/1.3 var(--font-hud); padding:11px 14px}
.wf .toc summary > span{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.wf .toc .toc-body{padding:0 12px 12px; max-height:60vh; overflow:auto}
.wf .toc-title{display:none}
.wf .toc a{text-decoration:none}

/* figures and part breaks use the width the column leaves around it */
.wf .fig,.wf .fig[style]{width:var(--fig); max-width:none!important; margin:44px 0 44px calc(50% - var(--fig) / 2)}
.wf #fig-tools{--fig:min(1120px, 100vw - 2 * var(--gutter))}
.wf #fig-venn{--fig:min(820px, 100vw - 2 * var(--gutter))}
.wf .part{max-width:none; margin:88px 0 8px}
.wf-main{padding-bottom:24px}
html:has(.wf){scroll-padding-top:calc(var(--nav-h) + 72px)}
@media (max-width:640px){
  .wf{font-size:1rem}
  .wf .fig,.wf .fig[style]{margin-block:34px}
}

/* the figures' segmented filters (their button rules went out with the old page header) */
.wf .seg{border-radius:var(--radius); padding:2px; gap:2px}
.wf .seg button{appearance:none; border:0; background:transparent; color:var(--muted); font:400 12px/1 var(--font-hud); letter-spacing:.02em; padding:7px 10px; border-radius:var(--radius); cursor:pointer; white-space:nowrap; transition:color .15s, background .15s}
.wf .seg button:hover{color:var(--fg)}
.wf .seg button[aria-pressed="true"]{background:var(--violet); color:var(--bg)}

/* the provider's logo before each model's name (Claude, OpenAI/Codex, Gemini, DeepSeek) */
.wf .node .t .prov{display:inline-block; width:18px; height:18px; margin:0 7px 0 0; vertical-align:-3px; border-radius:4px; object-fit:contain}
.wf .orch .hub .t .prov{width:22px; height:22px; vertical-align:-4px}
