.shell:where(.astro-o6d2emc7){max-width:var(--width-container);margin:0 auto;padding-left:var(--space-6);padding-right:var(--space-6)}.feat-hero:where(.astro-o6d2emc7){max-width:var(--width-container);padding:clamp(2.5rem,5vw,4.5rem) 0 var(--space-6);position:relative;z-index:1}.feat-title:where(.astro-o6d2emc7){font-size:clamp(2.25rem,4.2vw,3.25rem);font-weight:800;letter-spacing:-.03em;line-height:1.07;margin:0 0 var(--space-4);max-width:18ch;text-wrap:balance}.feat-lede:where(.astro-o6d2emc7){font-size:clamp(1.1rem,1.5vw,1.3rem);color:var(--sl-color-gray-3);margin:0;max-width:62ch;text-wrap:pretty}.feat-visual:where(.astro-o6d2emc7){max-width:var(--width-container);margin:var(--space-8) auto var(--space-4);padding:0 var(--space-6);position:relative;z-index:1}.diagram-window:where(.astro-o6d2emc7){padding:var(--space-4)}.diagram-scroll:where(.astro-o6d2emc7){overflow-x:auto;-webkit-overflow-scrolling:touch}.diagram-scroll:where(.astro-o6d2emc7) svg:where(.astro-o6d2emc7){display:block;width:100%;min-width:720px;height:auto}.figure-full:where(.astro-o6d2emc7) .diagram-scroll:where(.astro-o6d2emc7) svg:where(.astro-o6d2emc7){min-width:680px}.t-title:where(.astro-o6d2emc7){font-family:var(--font);font-weight:700;font-size:19px;fill:var(--sl-color-gray-1)}.t-title-lg:where(.astro-o6d2emc7){font-family:var(--font);font-weight:800;font-size:21px;fill:var(--sl-color-white)}.t-sub:where(.astro-o6d2emc7){font-family:var(--font-mono);font-weight:400;font-size:12.5px;fill:var(--sl-color-gray-4)}.t-chip:where(.astro-o6d2emc7){font-family:var(--font-mono);font-weight:500;font-size:13px;fill:var(--sl-color-gray-2)}.t-label:where(.astro-o6d2emc7){font-family:var(--font-mono);font-weight:500;font-size:12.5px}.t-legend:where(.astro-o6d2emc7){font-family:var(--font-mono);font-weight:400;font-size:12px;fill:var(--sl-color-gray-3)}.t-tag:where(.astro-o6d2emc7){font-family:var(--font-mono);font-weight:600;font-size:10.5px;letter-spacing:.12em}.t-foot:where(.astro-o6d2emc7){font-family:var(--font-mono);font-weight:400;font-style:italic;font-size:11.5px;fill:var(--sl-color-gray-4)}.lbl-blue:where(.astro-o6d2emc7){fill:#93c5fd}.lbl-teal:where(.astro-o6d2emc7){fill:#5eead4}.lbl-gray:where(.astro-o6d2emc7){fill:var(--sl-color-gray-4)}.surface:where(.astro-o6d2emc7){fill:var(--shield-primary-light);stroke:var(--color-border);stroke-width:1}.surface-dashed:where(.astro-o6d2emc7){fill:var(--shield-primary-light);stroke:var(--sl-color-gray-5);stroke-width:1.4;stroke-dasharray:6 5}.chip:where(.astro-o6d2emc7){fill:#0b1220;stroke:var(--color-border);stroke-width:1}.flow-dhcp:where(.astro-o6d2emc7){stroke:var(--shield-accent);stroke-width:2.6;fill:none}.flow-accept:where(.astro-o6d2emc7){stroke:var(--shield-success);stroke-width:2.6;fill:none}.flow-admin:where(.astro-o6d2emc7){stroke:var(--sl-color-gray-5);stroke-width:2;fill:none}.flow-opt:where(.astro-o6d2emc7){stroke:var(--sl-color-gray-5);stroke-width:1.8;fill:none;stroke-dasharray:6 5}.feat-grid:where(.astro-o6d2emc7){margin:var(--space-8) auto var(--space-4)}.grid-note:where(.astro-o6d2emc7){max-width:760px;margin:var(--space-6) auto 0;padding:0 var(--space-6);color:var(--color-text-secondary)}.prose:where(.astro-o6d2emc7) h2:where(.astro-o6d2emc7){font-size:var(--text-2xl);letter-spacing:-.02em;margin:var(--space-12) 0 var(--space-4)}.prose:where(.astro-o6d2emc7) p:where(.astro-o6d2emc7),.prose:where(.astro-o6d2emc7) li:where(.astro-o6d2emc7),.prose:where(.astro-o6d2emc7) td:where(.astro-o6d2emc7),.prose:where(.astro-o6d2emc7) th:where(.astro-o6d2emc7){color:var(--color-text-secondary)}.prose:where(.astro-o6d2emc7) p:where(.astro-o6d2emc7){margin:0 0 var(--space-4)}.prose:where(.astro-o6d2emc7) table:where(.astro-o6d2emc7){width:100%;border-collapse:collapse;margin:0 0 var(--space-4);font-size:var(--text-sm)}.prose:where(.astro-o6d2emc7) th:where(.astro-o6d2emc7),.prose:where(.astro-o6d2emc7) td:where(.astro-o6d2emc7){text-align:left;padding:var(--space-3);border-bottom:1px solid var(--color-border, rgba(255,255,255,.08));vertical-align:top}.prose:where(.astro-o6d2emc7) th:where(.astro-o6d2emc7){color:var(--sl-color-gray-3);font-weight:600}.prose:where(.astro-o6d2emc7) .section-kicker:where(.astro-o6d2emc7){margin-top:var(--space-12)}.feat-cta:where(.astro-o6d2emc7){max-width:var(--width-container);margin:var(--space-16) auto;padding:0 var(--space-6)}.eco-section:where(.astro-o6d2emc7){margin:var(--space-12) auto}.eco-figure:where(.astro-o6d2emc7){max-width:var(--width-container);margin:0 auto;padding:0 var(--space-6)}.eco-figure:where(.astro-o6d2emc7) .diagram-scroll:where(.astro-o6d2emc7) svg:where(.astro-o6d2emc7){min-width:960px}.eco-diagram:where(.astro-o6d2emc7) .t-title:where(.astro-o6d2emc7){font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;font-weight:800;font-size:23px;fill:#e8eef9}.eco-diagram:where(.astro-o6d2emc7) .t-card:where(.astro-o6d2emc7){font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;font-weight:700;font-size:13.5px;fill:#e8eef9}.eco-diagram:where(.astro-o6d2emc7) .t-card2:where(.astro-o6d2emc7){font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;font-weight:700;font-size:12.5px;fill:#e8eef9}.eco-diagram:where(.astro-o6d2emc7) .chiptxt:where(.astro-o6d2emc7){font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,sans-serif;font-weight:600;font-size:13px;fill:#e8eef9}.eco-diagram:where(.astro-o6d2emc7) .sub:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400;font-size:12px;fill:#94a3b8}.eco-diagram:where(.astro-o6d2emc7) .sub-teal:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400;font-size:10.5px;fill:#5eead4}.eco-diagram:where(.astro-o6d2emc7) .tile:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:500;font-size:11px;fill:#cbd5e1}.eco-diagram:where(.astro-o6d2emc7) .tag:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;font-size:10.5px;letter-spacing:.12em}.eco-diagram:where(.astro-o6d2emc7) .lane:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;font-size:10.5px;letter-spacing:.1em;fill:#5eead4}.eco-diagram:where(.astro-o6d2emc7) .cap:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400;font-size:11px;fill:#8a98ad}.eco-diagram:where(.astro-o6d2emc7) .legend:where(.astro-o6d2emc7){font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400;font-size:12px;fill:#aebbcd}.eco-diagram:where(.astro-o6d2emc7) .teal-l:where(.astro-o6d2emc7){fill:#5eead4}.eco-diagram:where(.astro-o6d2emc7) .blue-l:where(.astro-o6d2emc7){fill:#93c5fd}.eco-diagram:where(.astro-o6d2emc7) .gray-l:where(.astro-o6d2emc7){fill:#94a3b8}.eco-diagram:where(.astro-o6d2emc7) .appliance:where(.astro-o6d2emc7){fill:#16243b;stroke:#3b82f6;stroke-width:2}.eco-diagram:where(.astro-o6d2emc7) .surface:where(.astro-o6d2emc7){fill:#16243b;stroke:#2a3a55;stroke-width:1}.eco-diagram:where(.astro-o6d2emc7) .surface-dim:where(.astro-o6d2emc7){fill:#14213873;stroke:#233149;stroke-width:1}.eco-diagram:where(.astro-o6d2emc7) .solidbox:where(.astro-o6d2emc7){fill:#14213866;stroke:#2a3a55;stroke-width:1.2}.eco-diagram:where(.astro-o6d2emc7) .group-box:where(.astro-o6d2emc7){fill:#0c16288c;stroke:#2a3a55;stroke-width:1.2}.eco-diagram:where(.astro-o6d2emc7) .chip:where(.astro-o6d2emc7){fill:#0b1220;stroke:#2a3a55;stroke-width:1}.eco-diagram:where(.astro-o6d2emc7) .vmodule:where(.astro-o6d2emc7){fill:#10302c;stroke:#0d9488;stroke-width:1.7}.eco-diagram:where(.astro-o6d2emc7) .tilebox:where(.astro-o6d2emc7){fill:#0b1220;stroke:#2a3a55;stroke-width:1}.eco-diagram:where(.astro-o6d2emc7) .dashed:where(.astro-o6d2emc7){fill:#1421384d;stroke:#64748b;stroke-width:1.4;stroke-dasharray:6 5}.eco-diagram:where(.astro-o6d2emc7) .dashpill:where(.astro-o6d2emc7){fill:#1421384d;stroke:#64748b;stroke-width:1.1;stroke-dasharray:5 4}.eco-diagram:where(.astro-o6d2emc7) .e-blue:where(.astro-o6d2emc7){stroke:#3b82f6;stroke-width:2.4;fill:none}.eco-diagram:where(.astro-o6d2emc7) .e-teal:where(.astro-o6d2emc7){stroke:#0d9488;stroke-width:2;fill:none}.eco-diagram:where(.astro-o6d2emc7) .e-teal-bold:where(.astro-o6d2emc7){stroke:#0d9488;stroke-width:2.4;fill:none}.eco-diagram:where(.astro-o6d2emc7) .e-gray:where(.astro-o6d2emc7){stroke:#64748b;stroke-width:2;fill:none}
