@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-vietnamese-wght-normal-CtlIRbEm.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-ext-wght-normal-MQgHevqp.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/public-sans-latin-wght-normal-DdeTHZLK.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}:root{--paper:#f4f1e8;--paper-2:#ebe7da;--paper-3:#e0dbca;--ink:#15191c;--ink-2:#454c50;--ink-3:#6b7175;--rule:#cdc7b5;--signal:#a4461c;--signal-soft:#a4461c26;--node:#fbf9f3;--slab:#15191c;--slab-ink:#f4f1e8;--slab-ink-2:#c7c3b6;--ok:#2c6e49;--bad:#a3271f;--warn:#8a5a00;--display:"Bricolage Grotesque Variable", "Segoe UI", system-ui, sans-serif;--body:"Public Sans Variable", "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--gutter:clamp(16px, 4vw, 48px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#12161a;--paper-2:#1a1f24;--paper-3:#252b31;--ink:#ece8dc;--ink-2:#b6b5ab;--ink-3:#8d8f89;--rule:#333a40;--signal:#e88f5f;--signal-soft:#e88f5f2b;--node:#1a1f24;--slab:#ece8dc;--slab-ink:#12161a;--slab-ink-2:#454c50;--ok:#6fc192;--bad:#f0857d;--warn:#dfb35c}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--body);margin:0;font-size:17px;line-height:1.55;overflow-x:hidden}a{color:inherit}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}.skip{background:var(--ink);color:var(--paper);z-index:10;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.site{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.site-head{padding:18px var(--gutter);border-bottom:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.wordmark{font-family:var(--display);letter-spacing:-.01em;align-items:center;gap:10px;font-size:19px;font-weight:650;text-decoration:none;display:inline-flex}.wordmark-glyph{fill:none;stroke:var(--signal);stroke-width:2px;stroke-linecap:round}.site-nav{gap:20px;font-size:15px;display:flex}.site-nav a{color:var(--ink-2);border-bottom:2px solid #0000;padding:4px 0;text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a.active{color:var(--ink);border-bottom-color:var(--signal)}.site-nav .nav-quiet{color:var(--ink-3)}.kicker{font-family:var(--mono);letter-spacing:.04em;color:var(--signal);margin:0 0 14px;font-size:13px}.hero{padding:clamp(40px, 8vw, 88px) var(--gutter) clamp(20px, 3vw, 32px);max-width:980px}h1{font-family:var(--display);letter-spacing:-.025em;text-wrap:balance;margin:0 0 20px;font-size:clamp(38px,7vw,74px);font-weight:680;line-height:1.04}.lead{color:var(--ink-2);max-width:46rem;margin:0;font-size:clamp(18px,2.2vw,22px);line-height:1.45}.eco-section{padding:8px var(--gutter) clamp(32px, 6vw, 64px)}.eco-stage{grid-template-columns:minmax(0,1fr);gap:24px;max-width:1560px;display:grid}.eco-figure{min-width:0;margin:0}.eco-figure figcaption{color:var(--ink-3);margin-top:8px;font-size:14px}@media (min-width:1200px){.eco-stage{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:36px}}.eco{width:100%;height:auto;display:block;overflow:visible}.eco-narrow{display:none}@media (max-width:760px){.eco-wide{display:none}.eco-narrow{max-width:460px;display:block}.eco-panel{display:none}}.eco-tier{font-family:var(--mono);fill:var(--ink-3);letter-spacing:.03em;paint-order:stroke;stroke:var(--paper);stroke-width:6px;stroke-linejoin:round;font-size:12px}.eco-wide .eco-tier{font-size:16px}.eco-tier[data-tier=solutions]{stroke:none}.eco-group{fill:var(--paper-2);stroke:var(--rule);stroke-width:1.5px}.eco-edge-label{font-family:var(--body);fill:var(--signal);font-size:16px;font-weight:600}.eco-narrow .eco-edge-label{font-size:13px}.eco-edge{fill:none;stroke:var(--rule);stroke-width:2px}.eco-pulse{fill:none;stroke:var(--signal);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:5 95;animation:5.5s linear infinite eco-flow}.eco-edges g:nth-child(2) .eco-pulse{animation-delay:-1.1s}.eco-edges g:nth-child(3) .eco-pulse{animation-delay:-2.3s}.eco-edges g:nth-child(4) .eco-pulse{animation-delay:-3.4s}.eco-edges g:nth-child(5) .eco-pulse{animation-delay:-.6s}.eco-edges g:nth-child(6) .eco-pulse{animation-delay:-4.2s}@keyframes eco-flow{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.eco-node{cursor:pointer;text-decoration:none;transition:opacity .14s}.eco-has-active .eco-node:not(.eco-active){opacity:.6}.eco-edge{transition:stroke .14s}.eco-lit .eco-edge{stroke:var(--signal);stroke-width:3px}.eco-node.eco-active rect{stroke:var(--signal);fill:var(--paper-2);stroke-width:3px}.eco-node-platform.eco-active rect{fill:var(--slab)}.eco-node rect{fill:var(--node);stroke:var(--ink);stroke-width:1.5px;transition:fill .12s,stroke .12s}.eco-node-solutions rect{stroke-width:2px}.eco-node:hover rect,.eco-node:focus-visible rect{stroke:var(--signal);fill:var(--paper-2)}.eco-node:focus-visible{outline:none}.eco-node:focus-visible rect{stroke-width:3px}.eco-name{font-family:var(--display);fill:var(--ink);letter-spacing:-.015em;font-weight:650}.eco-short{font-family:var(--body);fill:var(--ink-2)}.eco-node-platform rect{fill:var(--slab);stroke:var(--slab)}.eco-node-platform:hover rect,.eco-node-platform:focus-visible rect{fill:var(--slab);stroke:var(--signal)}.eco-node-platform .eco-name{fill:var(--slab-ink)}.eco-node-platform .eco-short{fill:var(--slab-ink-2)}.eco-slab-rule{stroke:var(--signal);stroke-width:1.5px}.eco-panel{border:1px solid var(--rule);background:var(--node);border-radius:12px;min-height:320px;padding:20px 22px;font-size:15px;line-height:1.5}.eco-panel .kicker{margin-bottom:8px;font-size:12px}.eco-panel h2{font-family:var(--display);letter-spacing:-.015em;margin:0 0 10px;font-size:26px;font-weight:650;line-height:1.12}.eco-panel h3{font-family:var(--mono);letter-spacing:.03em;color:var(--signal);margin:14px 0 4px;font-size:12px;font-weight:400}.eco-panel p{color:var(--ink-2);margin:0}.eco-panel .eco-panel-lead{color:var(--ink);font-size:16px}.eco-panel .notice{margin-top:12px;font-size:13px}.eco-panel-body{animation:.16s eco-panel-in}@keyframes eco-panel-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.eco-panel-points{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.eco-panel-points li{color:var(--ink-2);padding-left:14px;position:relative}.eco-panel-points li:before{content:"";background:var(--signal);width:6px;height:1.5px;position:absolute;top:.62em;left:0}.eco-panel-tiers{gap:10px;margin:14px 0 0;display:grid}.eco-panel-tiers dt{color:var(--ink);font-weight:600}.eco-panel-tiers dd{color:var(--ink-2);margin:0}.eco-panel .eco-panel-hint{color:var(--ink-3);margin-top:14px;font-size:13px}.eco-panel .eco-panel-actions{border-top:1px solid var(--rule);color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-top:16px;padding-top:12px;display:flex}.eco-panel-back{font:inherit;color:var(--ink-3);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.eco-panel-back:hover{color:var(--signal)}.tier-list{padding:0 var(--gutter) clamp(40px, 8vw, 88px)}.tier{border-top:1px solid var(--rule);grid-template-columns:1fr;gap:16px;padding:28px 0;display:grid}.tier h2{font-family:var(--mono);letter-spacing:.03em;color:var(--signal);margin:0 0 4px;font-size:13px;font-weight:400}.tier header p{color:var(--ink-3);margin:0;font-size:15px}.tier ul{gap:24px;margin:0;padding:0;list-style:none;display:grid}.tier li a{text-decoration:none;display:block}.tier h3{font-family:var(--display);letter-spacing:-.015em;margin:0 0 6px;font-size:26px;font-weight:650}.tier li a:hover h3{color:var(--signal)}.tier li p{color:var(--ink-2);margin:0}@media (min-width:760px){.tier{grid-template-columns:220px 1fr;gap:32px}.tier-solutions ul{grid-template-columns:repeat(3,1fr);gap:40px}}.notice{color:var(--ink-2);border-left:2px solid var(--signal);margin:10px 0 0;padding-left:10px;font-size:14px}.notice-strong{color:var(--ink);margin:20px 0 0;font-size:16px}.product{padding:clamp(40px, 7vw, 80px) var(--gutter);max-width:820px}.product h1{font-size:clamp(38px,6vw,62px)}.prose{margin:28px 0}.prose p{margin:0 0 16px}.product-section{border-top:1px solid var(--rule);margin-top:40px;padding-top:22px}.product-section h2{font-family:var(--mono);color:var(--signal);letter-spacing:.03em;margin:0 0 14px;font-size:13px;font-weight:400}.product-section p{margin:0 0 14px}.product-section p:last-child{margin-bottom:0}.capabilities{gap:20px;margin:0;display:grid}.capabilities dt{font-family:var(--display);letter-spacing:-.01em;margin-bottom:2px;font-size:20px;font-weight:650}.capabilities dd{color:var(--ink-2);margin:0}@media (min-width:680px){.capabilities{grid-template-columns:1fr 1fr;gap:26px 36px}}.product-out{margin:36px 0 0}.out{-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal);text-underline-offset:4px;overflow-wrap:anywhere;font-weight:600}.connected-to{border-top:1px solid var(--rule);margin-top:40px;padding-top:22px}.connected-to h2{font-family:var(--mono);color:var(--signal);letter-spacing:.03em;margin:0 0 14px;font-size:13px;font-weight:400}.connected-to ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.connected-to li{gap:2px;display:grid}.connected-to li a{font-family:var(--display);-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:4px;width:-moz-fit-content;width:fit-content;font-size:20px;font-weight:650}.connected-to li span{color:var(--ink-2);font-size:15px}.site-foot{color:var(--ink-2);padding:28px var(--gutter);border-top:1px solid var(--rule);background:var(--paper-2);grid-template-columns:1fr;gap:16px;font-size:14px;display:grid}.site-foot strong{color:var(--ink);display:block}.site-foot ul{flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;list-style:none;display:flex}.site-foot a{text-underline-offset:3px}.foot-note{color:var(--ink-3);margin:0}.hub-loading{padding:40px var(--gutter)}@media (min-width:760px){.site-foot{grid-template-columns:auto 1fr;align-items:start;column-gap:48px}.foot-note{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.eco-pulse{stroke-dasharray:none;stroke:var(--signal-soft);animation:none}.eco-panel-body{animation:none}.eco-node,.eco-node rect,.eco-edge{transition:none}*{scroll-behavior:auto}}
