.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-border-default: 1px solid #bbb;--xy-node-border-selected-default: 1px solid #555;--xy-handle-background-color-default: #333;--xy-selection-background-color-default: rgba(150, 150, 180, .1);--xy-selection-border-default: 1px dotted rgba(155, 155, 155, .8);--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--xy-node-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default))}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border:var(--xy-node-border, var(--xy-node-border-default));color:var(--xy-node-color, var(--xy-node-color-default))}.react-flow__node-input.selected,.react-flow__node-input:focus,.react-flow__node-input:focus-visible,.react-flow__node-default.selected,.react-flow__node-default:focus,.react-flow__node-default:focus-visible,.react-flow__node-output.selected,.react-flow__node-output:focus,.react-flow__node-output:focus-visible,.react-flow__node-group.selected,.react-flow__node-group:focus,.react-flow__node-group:focus-visible{outline:none;border:var(--xy-node-border-selected, var(--xy-node-border-selected-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--bg: #0d1420;--sur: #131c2c;--sur-2: #182339;--bd: #22314a;--bd-2: #2e405e;--fg: #e6ecf5;--fg-2: #95a5bd;--fg-3: #7d8dab;--fg-3-hi: #93a3c0;--acc: #3987e5;--acc-text: #6aa6ec;--on-acc: #0d1420;--c1: #3987e5;--c2: #d95926;--c3: #199e70;--c4: #c98500;--c5: #d55181;--sans: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "Martian Mono", ui-monospace, "SFMono-Regular", "Consolas", monospace;--gut: clamp(1.15rem, 3.5vw, 3rem);--t-label: 11px;--t-small: 13px;--t-body: 15px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:68px;-webkit-text-size-adjust:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}body{margin:0;background:var(--bg);color:var(--fg);font:400 var(--t-body) / 1.62 var(--sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}a{color:var(--acc-text)}:focus-visible{outline:2px solid var(--acc);outline-offset:2px}h1,h2,h3,h4{letter-spacing:-.025em;font-weight:600}img{max-width:100%;height:auto}.shell{max-width:1240px;margin:0 auto;padding-inline:var(--gut)}.lbl{font:400 var(--t-label) / 1.35 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--fg-3)}.u-muted{color:var(--fg-3)}.u-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.scroll-x{overflow-x:auto;overscroll-behavior-x:contain;max-width:100%}.bar{position:sticky;top:0;z-index:30;background:#0e1114ed;backdrop-filter:blur(10px);border-bottom:1px solid var(--bd)}.bar__in{display:flex;align-items:center;gap:18px;min-height:52px}.bar__id{font-weight:600;font-size:var(--t-small);color:var(--fg);text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;min-height:24px}.bar__state{display:flex;align-items:center;gap:7px}.bar__dot{width:6px;height:6px;border-radius:50%;display:block;background:var(--acc)}.bar__dot--offline{background:transparent;border:1px solid var(--fg-3)}.bar__dot--unknown{background:var(--bd-2)}.bar__nav{margin-left:auto;display:flex;gap:20px}.bar__nav a{font:400 var(--t-label) / 1 var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--fg-2);text-decoration:none;transition:color .16s;white-space:nowrap;display:inline-flex;align-items:center;min-height:24px}.bar__nav a:hover,.bar__nav a[aria-current=page]{color:var(--fg)}@media(max-width:900px){.bar__in{flex-wrap:wrap;padding-block:10px;gap:10px 16px}.bar__nav{margin-left:0;width:100%;flex-wrap:wrap;gap:10px 16px}}.lede{display:grid;grid-template-columns:1.5fr .85fr;gap:clamp(24px,5vw,64px);padding:clamp(44px,7vw,96px) 0 clamp(28px,4vw,52px);align-items:start}h1{margin:14px 0 0;font-size:clamp(2.15rem,5.4vw,3.7rem);line-height:1.04;letter-spacing:-.034em}h1 span{display:block;color:var(--fg-2);font-weight:400;font-size:clamp(1rem,1.9vw,1.4rem);letter-spacing:-.013em;margin-top:14px}.lede__note{margin:28px 0 0;max-width:62ch;color:var(--fg-2);font-size:clamp(.98rem,1.3vw,1.09rem);line-height:1.64}.facts{margin:0;border:1px solid var(--bd);background:var(--sur)}.facts__row{padding:13px 16px;border-bottom:1px solid var(--bd)}.facts__row:last-child{border-bottom:none}.facts__row dd{margin:7px 0 0;font-size:var(--t-small);font-weight:500;color:var(--fg)}.facts__live{font-family:var(--mono);color:var(--acc-text)!important}@media(max-width:900px){.lede{grid-template-columns:1fr}}.sec{padding:clamp(44px,6vw,88px) 0 0}.sec__hd{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--bd-2);padding-bottom:12px}.sec__hd h2{margin:0;font-size:clamp(1.28rem,2.4vw,1.7rem)}.sec__meta{margin-left:auto}.tbl{width:100%;border-collapse:collapse;font-size:var(--t-small)}.tbl th,.tbl td{text-align:left;vertical-align:top;border-bottom:1px solid var(--bd)}.tbl thead th{font:400 var(--t-label) / 1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);padding:14px 16px 14px 0;white-space:nowrap}.tbl tbody th,.tbl tbody td{padding:15px 16px 15px 0;color:var(--fg-2);line-height:1.58}.tbl tbody tr{transition:background-color .16s}.tbl tbody tr:hover{background:var(--sur)}.tbl__key{color:var(--fg)!important;font-weight:600;font-size:var(--t-body);letter-spacing:-.011em;white-space:nowrap}.tbl__right{text-align:right!important;padding-right:22px!important}.tbl__fig{font-family:var(--mono);font-size:var(--t-small);color:var(--fg)!important;white-space:nowrap}.tbl__mono{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.05em;color:var(--fg-3)!important;white-space:nowrap}.tbl__delta--up{color:var(--fg-2)!important}.tbl__delta--down{color:var(--acc-text)!important}.tbl__trend{width:1%;color:var(--fg-3);padding-right:0!important}.tbl__desc{min-width:22ch}.tbl__total th,.tbl__total td{border-bottom:none;border-top:1px solid var(--bd-2)}.tbl__out{color:var(--fg);text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:color .16s}.tbl__out:after{content:"↗";font-size:.78em;color:var(--fg-3)}.tbl__out:hover,.tbl__out:hover:after{color:var(--acc-text)}.spark{display:block;overflow:visible}.state{display:inline-flex;align-items:center;gap:7px;font:400 var(--t-label) / 1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2);white-space:nowrap}.state__dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--bd-2)}.state--online .state__dot{background:var(--acc)}.state--starting .state__dot{background:var(--fg-2)}.state--offline .state__dot{background:transparent;box-shadow:inset 0 0 0 1px var(--fg-3)}.state--offline,.state--unknown{color:var(--fg-3)}.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border:1px solid var(--bd);border-bottom:none;background:var(--sur);margin:26px 0 0}.strip__cell{padding:15px 17px;border-bottom:1px solid var(--bd);border-right:1px solid var(--bd)}.strip__cell:last-child{border-right:none}.strip__cell dd{margin:8px 0 0;font-family:var(--mono);font-size:1.02rem;color:var(--fg)}.ctl{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 4px}.ctl__btn{appearance:none;background:transparent;border:1px solid var(--bd-2);color:var(--fg-2);font:400 var(--t-label) / 1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:9px 13px;cursor:pointer;transition:color .16s,border-color .16s,background-color .16s}.ctl__btn:hover{color:var(--fg);border-color:var(--fg-3)}.ctl__btn[aria-pressed=true]{color:var(--fg);border-color:var(--acc);background:var(--sur-2)}.notice{margin:22px 0 0;border:1px solid var(--bd);border-left:1px solid var(--acc);background:var(--sur);padding:14px 17px;font-size:var(--t-small);color:var(--fg-2);max-width:78ch}.notice code{font-family:var(--mono);font-size:.88em;color:var(--fg)}.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1px;background:var(--bd);border:1px solid var(--bd);margin-top:22px}.panel{margin:0;padding:17px 18px 15px;background:var(--sur);color:var(--fg-2);display:flex;flex-direction:column;gap:12px}.panel__hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.panel__now{font-family:var(--mono);font-size:1.05rem;color:var(--fg)}.panel__plot{width:100%;height:74px;display:block;color:var(--fg-3)}.panel__foot,.panel__empty{margin:0;display:flex;flex-direction:column;gap:4px}.panel__range{font:400 var(--t-label) / 1.5 var(--mono);letter-spacing:.05em;color:var(--fg-3)}.panel__empty{font-size:var(--t-small);color:var(--fg-3)}.dgm{margin:26px 0 0}.dgm__caption{font-size:var(--t-small);color:var(--fg-2);max-width:74ch;margin-bottom:12px}.dgm__hint{margin:12px 0 22px;font:400 var(--t-label) / 1.6 var(--mono);letter-spacing:.06em;color:var(--fg-3)}.dgm__via{color:var(--fg-3)}.dgm-canvas{border:1px solid var(--bd);background:var(--sur);width:100%}.dgm-canvas .react-flow__node{cursor:default}.dgm-node{border:1px solid var(--bd-2);background:var(--sur-2);padding:8px 12px;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;gap:2px;overflow:hidden}.dgm-node--accent{border-color:var(--acc)}.dgm-node--group{background:var(--sur);border-style:dashed}.dgm-node__name{display:flex;flex-direction:column;font:500 12px / 1.32 var(--mono);letter-spacing:-.01em;color:var(--fg);word-break:break-word}.dgm-node__meta{font:400 11px / 1.4 var(--mono);letter-spacing:.05em;color:var(--fg-3-hi);text-transform:uppercase}.dgm-node__state{font:400 11px / 1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3-hi)}.dgm-node__state--online{color:var(--acc-text)}.dgm-canvas .react-flow__handle{width:5px;height:5px;min-width:0;min-height:0;border:none;background:var(--bd-2)}.dgm-canvas .react-flow__node.selected .dgm-node,.dgm-canvas .react-flow__node:focus-visible .dgm-node{border-color:var(--acc)}.dgm-canvas .react-flow__node:focus{outline:none}.dgm-canvas .react-flow__node:focus-visible{outline:2px solid var(--acc);outline-offset:2px}.flow-edge .react-flow__edge-path{stroke:#78848f;stroke-width:1.6}.flow-edge--vpn .react-flow__edge-path{stroke:var(--acc);stroke-width:2}.flow-edge--aux .react-flow__edge-path,.flow-edge--metric .react-flow__edge-path{stroke:#6f7a86;stroke-dasharray:5 4}.flow-edge--link .react-flow__edge-path{stroke:#616c78;stroke-dasharray:8 5}.flow-edge--contains .react-flow__edge-path{stroke:#4a545f;stroke-width:1.2;stroke-dasharray:3 5}.dgm-canvas .react-flow__edge-text{font-family:var(--mono);font-size:9px;fill:var(--fg-3)}.dgm-canvas .react-flow__edge-textbg{fill:var(--sur)}.dgm-canvas .react-flow__controls{box-shadow:none;border:1px solid var(--bd);background:var(--sur-2)}.dgm-canvas .react-flow__controls-button{background:var(--sur-2);border-bottom:1px solid var(--bd);fill:var(--fg-2);width:26px;height:26px;transition:background-color .16s}.dgm-canvas .react-flow__controls-button:hover{background:var(--bd);fill:var(--fg)}.tbl--dgm .tbl__key{white-space:normal;min-width:14ch}.doc-head{padding:clamp(38px,6vw,76px) 0 clamp(20px,3vw,34px);border-bottom:1px solid var(--bd-2)}.doc-head h1{font-size:clamp(1.9rem,4.4vw,3rem)}.doc{display:grid;grid-template-columns:232px minmax(0,1fr);gap:clamp(26px,4vw,58px);align-items:start;padding-top:clamp(26px,4vw,44px)}.doc__toc{position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto;border-left:1px solid var(--bd);padding-left:16px}.doc__toc-hd{display:block;margin-bottom:12px}.doc__toc ul{list-style:none;margin:0;padding:0}.doc__toc li{margin-bottom:8px}.doc__toc-sub{padding-left:13px}.doc__toc a{color:var(--fg-2);text-decoration:none;font-size:var(--t-small);line-height:1.42;display:block;transition:color .16s}.doc__toc a:hover{color:var(--fg)}.doc__toc a[aria-current=true]{color:var(--acc-text)}.doc__body{min-width:0;max-width:92ch;padding-bottom:40px}.doc__body>:first-child{margin-top:0}.doc__body h1{font-size:clamp(1.5rem,3vw,2rem);margin:0 0 18px}.doc__body h2{font-size:clamp(1.2rem,2.2vw,1.5rem);margin:54px 0 16px;padding-bottom:10px;border-bottom:1px solid var(--bd-2)}.doc__body h3{font-size:1.05rem;margin:38px 0 12px}.doc__body h4{font-size:.94rem;margin:26px 0 10px;color:var(--fg-2)}.doc__body p,.doc__body li{color:var(--fg-2);max-width:76ch}.doc__body p{margin:0 0 16px}.doc__body ul,.doc__body ol{margin:0 0 18px;padding-left:20px}.doc__body li{margin-bottom:7px}.doc__body strong{color:var(--fg);font-weight:600}.doc__body hr{border:none;border-top:1px solid var(--bd);margin:40px 0}.doc__body blockquote{margin:0 0 22px;padding:14px 18px;border:1px solid var(--bd);border-left:1px solid var(--acc);background:var(--sur)}.doc__body blockquote p:last-child{margin-bottom:0}.doc__body code{font-family:var(--mono);font-size:.82em;color:var(--fg);background:var(--sur-2);border:1px solid var(--bd);padding:1px 5px;overflow-wrap:anywhere}.doc__body pre{margin:0 0 22px;padding:15px 17px;background:var(--sur);border:1px solid var(--bd);overflow-x:auto}.doc__body pre code{background:none;border:none;padding:0;font-size:12px;line-height:1.6;color:var(--fg-2);overflow-wrap:normal}.tbl--doc{margin-bottom:22px}.tbl--doc td,.tbl--doc th{overflow-wrap:anywhere}.tbl--doc tbody th{color:var(--fg)!important;font-weight:600}.unrendered{border:1px solid var(--bd);background:var(--sur);padding:15px 17px;margin:0 0 22px}.unrendered__note{margin:0 0 12px!important;font-size:var(--t-small)}.unrendered__note .lbl{display:block;margin-bottom:6px}.unrendered__src{margin:0!important;background:var(--bg)!important}@media(max-width:860px){.doc{grid-template-columns:1fr}.doc__toc{position:static;max-height:none;border-left:none;border-bottom:1px solid var(--bd);padding-left:0;padding-bottom:20px}}.close{margin-top:clamp(48px,6vw,92px);border:1px solid var(--bd);background:var(--sur);padding:clamp(24px,4vw,42px);display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap}.close h2{margin:10px 0 0;font-size:clamp(1.3rem,2.5vw,1.85rem)}.close p{margin:10px 0 0;color:var(--fg-2);max-width:48ch;font-size:var(--t-small)}.close__cta{border:1px solid var(--acc);color:var(--acc-text);padding:13px 22px;text-decoration:none;font-weight:500;font-size:var(--t-small);white-space:nowrap;transition:background-color .16s,color .16s}.close__cta:hover{background:var(--acc);color:var(--on-acc)}.foot{border-top:1px solid var(--bd);margin-top:clamp(44px,6vw,78px)}.foot__in{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:20px 0 60px}.foot__link{color:var(--fg-3);text-decoration:none;transition:color .16s;display:inline-flex;align-items:center;min-height:24px}.foot__link:hover{color:var(--acc-text)}:root{--sig-green: #35c05a;--sig-amber: #e0a020;--sig-red: #d0342c;--sig-dark: #454e56;--ochre: #c26a2c;--ochre-text: #dc8c46;--panel: #10192a;--panel-2: #172136}.topology__lede{margin:0 0 18px;max-width:62ch;color:var(--fg-2);font-size:var(--t-small)}.topology__canvas{height:clamp(460px,62vh,680px);border:1px solid var(--bd-2);background:radial-gradient(120% 90% at 50% 0%,#16233a 0%,var(--panel) 60%);position:relative;overflow:hidden}.topology__canvas .react-flow__attribution{display:none}.panelgrid{color:#22314a}.topology__canvas--stacked{height:auto}.topology__canvas--stacked .react-flow,.topology__canvas--stacked .react-flow__renderer,.topology__canvas--stacked .react-flow__pane{touch-action:pan-y pinch-zoom;cursor:default}.topology__canvas--stacked .berth,.topology__canvas--stacked .layerhead{width:var(--berth-w, 208px)}.topology__canvas--stacked .legend{left:8px;right:8px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 12px}.berth{width:208px;height:64px;display:grid;grid-template-columns:16px 1fr auto;align-items:center;gap:10px;padding:0 11px;background:var(--panel-2);border:1px solid var(--bd-2);border-left:3px solid var(--sig-dark);transition:opacity .18s ease,border-color .18s ease,background .18s ease}.berth--clear{border-left-color:var(--sig-green)}.berth--caution{border-left-color:var(--sig-amber)}.berth--danger{border-left-color:var(--sig-red)}.berth--vpn{background:#2a1e13;border-color:#4f3a1e}.berth--dim{opacity:.22}.berth__signal{display:flex;flex-direction:column;gap:3px;align-items:center}.berth__lamp{width:7px;height:7px;border-radius:50%;background:#26334a;display:block}.berth--danger .berth__lamp--r{background:var(--sig-red)}.berth--caution .berth__lamp--a{background:var(--sig-amber)}.berth--clear .berth__lamp--g{background:var(--sig-green)}.berth__body{min-width:0}.berth__label{display:block;font-family:var(--sans);font-weight:600;font-size:13px;color:var(--fg);letter-spacing:-.01em}.berth__note{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3-hi);margin-top:3px}.berth__reading{font-family:var(--mono);font-size:9px;font-weight:400;letter-spacing:.06em;color:var(--ochre-text);margin-left:6px;white-space:nowrap}.berth__aspect{font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3-hi);writing-mode:vertical-rl;text-orientation:mixed}.berth .react-flow__handle{width:5px;height:5px;min-width:0;min-height:0;background:var(--bd-2);border:none}.layerhead{width:208px;display:flex;align-items:baseline;gap:8px;padding-bottom:7px;border-bottom:1px solid var(--ochre)}.layerhead__idx{font-family:var(--mono);font-size:10px;color:var(--ochre);letter-spacing:.1em}.layerhead__name{font-family:var(--sans);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--fg)}.layerhead__count{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--fg-3-hi)}.route .react-flow__edge-path{stroke-width:1.4}.route--data .react-flow__edge-path{stroke:#6f83a6}.route--vpn .react-flow__edge-path{stroke:var(--ochre);stroke-width:1.8}.route--metric .react-flow__edge-path{stroke:#3c4c68;stroke-dasharray:3 4}.route--dim .react-flow__edge-path{opacity:.12}.route--dim{pointer-events:none}.react-flow__arrowhead polyline,.react-flow__arrowhead path{fill:#6f83a6;stroke:none}.legend{background:#0d1420eb;border:1px solid var(--bd-2);padding:10px 12px;display:flex;flex-direction:column;gap:5px;font-family:var(--mono);font-size:10px;color:var(--fg-2);letter-spacing:.05em}.legend__title{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ochre);margin-bottom:2px}.legend__row{display:flex;align-items:center;gap:7px}.legend__row b{color:var(--fg);margin-left:auto;font-weight:600}.legend__lamp{width:7px;height:7px;border-radius:50%;flex:none}.legend__lamp--g{background:var(--sig-green)}.legend__lamp--a{background:var(--sig-amber)}.legend__lamp--r{background:var(--sig-red)}.legend__lamp--d{background:var(--sig-dark)}.legend__line{width:16px;height:0;border-top:2px solid #6f83a6;flex:none}.legend__line--vpn{border-top-color:var(--ochre)}.legend__line--metric{border-top-style:dashed;border-top-color:#3c4c68}.legend__hint{margin-top:4px;padding-top:6px;border-top:1px solid var(--bd);color:var(--fg-3-hi);font-size:9px}@media(max-width:700px){.legend--routes{display:none}}.topology__table{margin-top:14px}.topology__table summary{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);cursor:pointer;padding:9px 0}.topology__table summary:hover{color:var(--fg)}.topology__table>div{overflow-x:auto;margin-top:8px}.topology__table table{width:100%;min-width:460px;border-collapse:collapse}.topology__table caption{text-align:left;color:var(--fg-3-hi);font-size:var(--t-label);padding-bottom:8px}.topology__table th,.topology__table td{text-align:left;padding:9px 12px 9px 0;border-bottom:1px solid var(--bd);font-size:var(--t-small);color:var(--fg-2);vertical-align:top}.topology__table thead th{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3-hi);font-weight:400}.topology__table tbody th{color:var(--fg);font-weight:600}.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(132px,auto);gap:10px}.bento__cell{border:1px solid var(--bd-2);background:var(--panel-2);padding:14px 15px 0;display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:border-color .16s ease}.bento__cell:hover{border-color:color-mix(in srgb,var(--series) 55%,var(--bd-2))}.bento__cell--hero{grid-column:span 2;grid-row:span 2}.bento__head{display:flex;align-items:baseline;gap:10px}.bento__label{margin:0;display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.13em;text-transform:uppercase;color:var(--fg-3-hi)}.bento__swatch{width:8px;height:8px;background:var(--series);flex:none}.bento__delta{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--sig-green)}.bento__delta--down{color:var(--sig-amber)}.bento__value{margin:12px 0 0;font-family:var(--sans);font-weight:600;font-size:1.5rem;line-height:1;letter-spacing:-.03em;color:var(--fg);font-variant-numeric:tabular-nums}.bento__cell--hero .bento__value{font-size:2.6rem}.bento__sub{display:block;margin-top:7px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--fg-3-hi);font-weight:400}.bento__note{margin:8px 0 14px;font-family:var(--mono);font-size:9px;color:var(--fg-3-hi)}.bento__plot{display:block;width:calc(100% + 30px);margin:auto -15px 0;height:68px}.bento__cell--hero .bento__plot{height:150px}.bento__area{fill:var(--series);opacity:.14}.bento__line{fill:none;stroke:var(--series);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.bento__end{fill:var(--series)}.bento__crosshair{stroke:var(--fg-3-hi);stroke-width:1;stroke-dasharray:2 3}@media(max-width:1000px){.bento{grid-template-columns:repeat(2,1fr)}.bento__cell--hero{grid-row:span 1}}@media(max-width:560px){.bento{grid-template-columns:1fr}.bento__cell--hero{grid-column:span 1}.bento__cell--hero .bento__value{font-size:2rem}.bento__cell--hero .bento__plot{height:90px}}.tbl__key{display:flex;align-items:center;gap:9px}.tbl__dot{width:8px;height:8px;flex:none;display:block}.tbl__total .tbl__key{padding-left:17px}.tbl__trend .spark{stroke-width:1.5}.tbl__delta--up{color:var(--sig-green)}.tbl__delta--down{color:var(--sig-amber)}.strip__cell:nth-child(1) dd{color:var(--c1)}.strip__cell:nth-child(2) dd{color:var(--c2)}.strip__cell:nth-child(3) dd{color:var(--c3)}.strip__cell:nth-child(4) dd{color:var(--c4)}
