@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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}:root{--cobalt:#2433c9;--cobalt-deep:#1a259b;--cobalt-line:#f6f7fb2e;--on-cobalt:#f6f7fb;--on-cobalt-soft:#c9cff6;--paper:#f6f7fb;--tint:#eceff8;--ink:#121a3e;--ink-soft:#4a5378;--rule:#d6dbee;--accent:#2433c9;--live:#3ed08a;--idle:#9aa3cc;--amber:#f2b33d;--font:"Archivo Variable", "Archivo", system-ui, sans-serif;--wrap:72rem;--gutter:clamp(1rem, 4vw, 2.5rem);--section:clamp(4rem, 9vw, 7.5rem);color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#0e1330;--tint:#141a3d;--ink:#e9ecfb;--ink-soft:#a9b0d4;--rule:#262e5c;--accent:#9aa6ff;color-scheme:dark}}*,:before,:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:1.0625rem;font-stretch:100%;line-height:1.6}a{color:inherit}:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:2px}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.skip{z-index:10;background:var(--amber);color:#121a3e;padding:.5rem .9rem;font-weight:600;text-decoration:none;position:absolute;top:-3rem;left:1rem}.skip:focus{top:1rem}.hero-band{background:var(--cobalt);color:var(--on-cobalt)}.site-header{align-items:center;gap:1.5rem;padding-block:1.4rem;display:flex}.wordmark{letter-spacing:-.01em;margin-right:auto;font-size:1.5rem;font-stretch:125%;line-height:1;text-decoration:none}.wm-ward{font-weight:900}.wm-ware{font-weight:300}.site-nav{gap:1.75rem;font-weight:500;display:flex}.site-nav a,.lang a{text-underline-offset:.3em;text-decoration:none}.site-nav a:hover,.lang a:hover{text-decoration:underline}.lang{border:1px solid var(--cobalt-line);border-radius:999px;padding:.2rem;font-size:.875rem;font-weight:600;display:flex}.lang a{color:var(--on-cobalt-soft);border-radius:999px;padding:.2rem .65rem}.lang a[aria-current=true]{background:var(--on-cobalt);color:var(--cobalt)}.lang a[aria-current=true]:hover{text-decoration:none}.hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:end;gap:clamp(2.5rem,6vw,5rem);padding-top:clamp(3rem,8vw,6.5rem);padding-bottom:clamp(3.5rem,8vw,6rem);display:grid}.hero:focus{outline:none}.hero h1{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(2.4rem,5.6vw,4.6rem);font-weight:800;font-stretch:125%;line-height:.98}.lead{max-width:36em;margin-top:1.75rem;font-size:clamp(1.0625rem,1.4vw,1.2rem)}.hero .lead{color:var(--on-cobalt-soft)}.actions{flex-wrap:wrap;gap:.75rem;margin-top:2.25rem;display:flex}.btn{border-radius:999px;align-items:center;min-height:3rem;padding:.7rem 1.4rem;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.btn-light{background:var(--on-cobalt);color:var(--cobalt)}.btn-light:hover{background:#fff}.btn-ghost{border:1.5px solid var(--cobalt-line);color:var(--on-cobalt)}.btn-ghost:hover{border-color:var(--on-cobalt)}.server{background:var(--cobalt-deep);border-radius:1.25rem;padding:1.5rem 1.5rem 1.25rem}.server h2{margin-bottom:.75rem;font-size:1rem;font-weight:600;font-stretch:110%}.server ul{padding:0;list-style:none}.server li{border-top:1px solid var(--cobalt-line);grid-template-columns:.6rem 1fr auto;grid-template-areas:"dot name status"".what what";align-items:center;column-gap:.75rem;padding-block:.7rem;display:grid}.dot{background:var(--idle);border-radius:50%;grid-area:dot;width:.6rem;height:.6rem}.dot.live{background:var(--live);box-shadow:0 0 0 4px #3ed08a2e}.srv-name{grid-area:name;font-weight:600}.srv-what{color:var(--on-cobalt-soft);grid-area:what;font-size:.9rem;line-height:1.4}.srv-status{color:var(--on-cobalt-soft);grid-area:status;font-size:.85rem}.srv-note{color:var(--on-cobalt-soft);border-top:1px solid var(--cobalt-line);padding-top:.9rem;font-size:.85rem}@media (prefers-reduced-motion:no-preference){.server li{animation:.5s cubic-bezier(.2,.7,.2,1) both boot;animation-delay:calc(.25s + var(--i) * .14s)}.server li .dot.live{animation:.35s ease-out both power;animation-delay:calc(.6s + var(--i) * .14s)}}@keyframes boot{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes power{0%{background:var(--idle);box-shadow:0 0 #3ed08a00}}.section{padding-block:var(--section)}.section-tint{background:var(--tint)}.section-title{letter-spacing:-.02em;text-wrap:balance;max-width:20ch;font-size:clamp(1.9rem,3.6vw,2.75rem);font-weight:750;font-stretch:118%;line-height:1.05}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 3rem;display:flex}.section-intro{color:var(--ink-soft);max-width:30em}.minor-title{margin-bottom:1rem;font-size:1.05rem;font-weight:650;font-stretch:110%}.services{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem);margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}.service{border-top:3px solid var(--accent);padding-top:1.25rem}.service h3{text-wrap:balance;margin-bottom:.75rem;font-size:1.3rem;font-weight:700;font-stretch:108%;line-height:1.2}.service p{color:var(--ink-soft)}.projects{margin-top:clamp(2.5rem,5vw,3.5rem);padding:0;list-style:none}.project{border-top:1px solid var(--rule);grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:1rem clamp(2rem,5vw,4rem);padding-block:2rem;display:grid}.project:last-child{border-bottom:1px solid var(--rule)}.project h3{letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.25rem);font-weight:800;font-stretch:125%;line-height:1}.project-kind{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.75rem;font-size:.95rem;display:flex}.project-body p{max-width:38em}.pill{border:1px solid var(--rule);color:var(--ink);border-radius:999px;align-items:center;gap:.4rem;padding:.15rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.pill:before{content:"";background:var(--idle);border-radius:50%;width:.45rem;height:.45rem}.pill.live:before{background:var(--live)}.pill.building:before{background:var(--amber)}.stack{flex-wrap:wrap;gap:.4rem;margin-top:1rem;padding:0;list-style:none;display:flex}.stack li{background:var(--paper);color:var(--ink-soft);border-radius:.4rem;padding:.2rem .65rem;font-size:.85rem;font-weight:500}.stack-lg li{background:var(--paper);font-size:.95rem}.text-link{color:var(--accent);text-underline-offset:.25em;margin-top:1rem;font-weight:600;display:inline-block}.steps{counter-reset:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem);margin-top:clamp(2.5rem,5vw,3.5rem);padding:0;list-style:none;display:grid}.step-n{color:var(--accent);margin-bottom:1rem;font-size:3.25rem;font-weight:800;font-stretch:125%;line-height:1;display:block}.step h3{margin-bottom:.4rem;font-size:1.15rem;font-weight:700;font-stretch:108%}.step p{color:var(--ink-soft)}.about{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2.5rem,6vw,5rem);display:grid}.about-text>p{max-width:36em;margin-top:1.25rem}.about-text>p:first-of-type{margin-top:2rem}.about-text .minor-title{margin-top:2.5rem}.about-timeline{padding-top:.5rem}.timeline{border-left:2px solid var(--rule);padding:0;list-style:none}.timeline li{padding:0 0 1.75rem 1.5rem;display:grid;position:relative}.timeline li:before{content:"";background:var(--paper);border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:.45rem;left:-7px}.timeline li:first-child:before{background:var(--accent)}.tl-when{color:var(--ink-soft);font-size:.9rem}.tl-what{font-weight:650;line-height:1.35}.tl-where{color:var(--ink-soft)}.contact{background:var(--cobalt);color:var(--on-cobalt);padding-block:var(--section)}.contact h2{letter-spacing:-.025em;font-size:clamp(2.2rem,5vw,4rem);font-weight:800;font-stretch:125%;line-height:1}.contact .lead{color:var(--on-cobalt-soft)}.contact-mail{text-underline-offset:.2em;overflow-wrap:anywhere;margin-top:2rem;font-size:clamp(1.25rem,3.4vw,2.25rem);font-weight:700;font-stretch:112%;text-decoration:underline 2px;display:inline-block}.contact-mail:hover{text-decoration-thickness:4px}.contact-phone{margin-top:.75rem;font-size:1.15rem}.contact-elsewhere{color:var(--on-cobalt-soft);margin-top:2rem}.contact-elsewhere a{color:var(--on-cobalt);text-underline-offset:.25em;font-weight:600}.site-footer{background:var(--ink);color:var(--paper);font-size:.9rem}@media (prefers-color-scheme:dark){.site-footer{color:var(--ink-soft);background:#080b1f}}.footer-inner{flex-wrap:wrap;gap:.5rem 2rem;padding-block:1.5rem;display:flex}.footer-inner a{text-underline-offset:.25em;margin-left:auto}@media (width<=960px){.hero{grid-template-columns:1fr;align-items:start}.services{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.about{grid-template-columns:1fr}}@media (width<=720px){.hide-sm{display:none}.site-header{gap:1rem}.project{grid-template-columns:1fr}}@media (width<=420px){.steps{grid-template-columns:1fr}.wordmark{font-size:1.3rem}.footer-inner a{margin-left:0}}
