@font-face{font-family:Quicksand Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(../media/quicksand-vietnamese-wght-normal.2y06na1odll_3.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:Quicksand Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(../media/quicksand-latin-ext-wght-normal.1d0haiy165kuf.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:Quicksand Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(../media/quicksand-latin-wght-normal.2upmmugdnwsod.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ink:#123a5c;--ink-soft:#3f5c77;--ink-faint:#74889a;--ink-contrast:#fff;--bg:#f4f9fc;--panel:#fff;--band:#123a5c;--blue:#2563eb;--blue-soft:#e3f0fd;--teal:#14b8a6;--teal-soft:#d5f3ee;--teal-ink:#0b7d70;--foam:#e0f6f3;--border:#d8e4ec;--grid-line:#14b8a617;--mark:#b5ede4;--header-bg:#f4f9fcf0;--w-side:#14b8a6;--w-crest:#2563eb;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--radius:14px;--max-width:1120px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body{color:var(--ink);background:var(--bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:32px 32px;margin:0;padding:0;font-family:Quicksand Variable,Quicksand,Nunito,Segoe UI,sans-serif;font-size:17px;font-weight:500;line-height:1.65}body{flex-direction:column;min-height:100vh;display:flex}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.mono{font-family:var(--mono)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 2rem}.site-header{border-bottom:2px solid var(--ink);background:var(--header-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;position:sticky;top:0}.nav{justify-content:space-between;align-items:center;height:70px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:1.1rem;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-mark{flex-shrink:0;width:32px;height:24px}.brand-mark .w-side{stroke:var(--w-side)}.brand-mark .w-crest{stroke:var(--w-crest)}.nav-links{align-items:center;gap:1.9rem;font-size:.94rem;display:flex}.nav-links a{color:var(--ink-soft);font-weight:500}.nav-links a:hover{color:var(--ink);text-decoration:none}.nav-cta{background:var(--ink);border-radius:8px;padding:.55rem 1.15rem;font-weight:700;color:var(--ink-contrast)!important}.nav-cta:hover{background:var(--blue)}main{flex:1;padding:3rem 1.25rem 4rem}.hero{padding:0 0 4rem}.hero-grid{grid-template-columns:1.15fr 1fr;align-items:center;gap:4rem;display:grid}.annotation{font-family:var(--mono);color:var(--blue);margin-bottom:1.4rem;font-size:.78rem}.annotation:before{content:"¶ ";color:var(--teal)}.hero h1{letter-spacing:-.03em;margin:0;font-size:clamp(2.5rem,5.5vw,3.9rem);font-weight:700;line-height:1.06}.hero h1 mark,.hl{background:linear-gradient(transparent 62%, var(--mark) 62%);color:inherit}.hero p.lede{color:var(--ink-soft);max-width:560px;margin:1.6rem 0 2.4rem;font-size:1.22rem}.cta-row{flex-wrap:wrap;gap:1rem;display:flex}.btn{border-radius:10px;padding:.9rem 1.7rem;font-size:1rem;font-weight:700;display:inline-block}.btn-primary{background:var(--ink);color:var(--ink-contrast);box-shadow:4px 4px 0 var(--teal);transition:all .12s}.btn-primary:hover{box-shadow:2px 2px 0 var(--teal);text-decoration:none;transform:translate(2px,2px)}.btn-secondary{border:2px solid var(--ink);color:var(--ink);padding:.85rem 1.6rem}.btn-secondary:hover{background:var(--foam);text-decoration:none}.diagram{background:var(--panel);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:8px 8px 0 var(--foam);padding:1.75rem}.diagram .diagram-title{font-family:var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;margin-bottom:1.2rem;font-size:.72rem;display:flex}.diagram svg{width:100%;height:auto;display:block}.section{padding:4rem 0}.sec-head{align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.sec-num{font-family:var(--mono);color:var(--teal-ink);font-size:.9rem;font-weight:700}.section h2{letter-spacing:-.025em;margin:0 0 .4rem;font-size:2.1rem;font-weight:700}.section .section-sub{color:var(--ink-faint);max-width:620px;margin:.3rem 0 2.6rem}.sc-band{background:var(--band);color:#f4f9fc;border:2px solid #0000;border-radius:18px;padding:3.5rem 3rem}.sc-band .annotation{color:#7dd3fc}.sc-band h2{letter-spacing:-.02em;max-width:720px;margin:0;font-size:clamp(1.7rem,3.5vw,2.4rem);font-weight:700;line-height:1.15}.sc-band .sub{color:#b9d3e3;max-width:640px;margin:1.2rem 0 2.6rem;font-size:1.08rem}.sc-band .cta-row{margin-top:2.4rem}.sc-band .btn-primary{background:var(--teal);color:#0b2032;box-shadow:4px 4px #ffffff2e}.proof-grid{grid-template-columns:1fr 1fr;gap:1.4rem;display:grid}.proof{background:#ffffff0f;border:1px solid #ffffff24;border-radius:12px;padding:1.7rem}.proof .where{font-family:var(--mono);color:#2dd4bf;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.6rem;font-size:.75rem}.proof h3{color:#f4f9fc;margin:0 0 .5rem;font-size:1.12rem}.proof p{color:#b9d3e3;margin:0;font-size:.94rem}.workstreams{margin:1rem 0 0;padding:0;list-style:none}.workstreams li{color:#b9d3e3;padding:.35rem 0 .35rem 1.6rem;font-size:.95rem;position:relative}.workstreams li:before{content:"▸";color:#2dd4bf;position:absolute;left:0}.workstreams li strong{color:#f4f9fc}.prose .workstreams li,.light .workstreams li{color:var(--ink-soft)}.prose .workstreams li strong,.light .workstreams li strong{color:var(--ink)}.svc-grid,.card-grid{grid-template-columns:repeat(2,1fr);gap:1.4rem;display:grid}.svc,.card{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:1.9rem;transition:all .15s;position:relative}.svc:hover,.card:hover{border-color:var(--ink);box-shadow:6px 6px 0 var(--foam)}.svc .num{font-family:var(--mono);color:var(--ink-faint);font-size:.78rem;position:absolute;top:1.4rem;right:1.6rem}.svc h3,.card h3{margin:0 0 .55rem;font-size:1.18rem;font-weight:700}.svc p,.card p{color:var(--ink-soft);margin:0;font-size:.97rem}.svc.lead{border-color:var(--ink);background:var(--foam)}.svc.lead:before{content:"PRIMARY";font-family:var(--mono);letter-spacing:.12em;background:var(--teal);color:#0b2032;border-radius:100px;padding:.2rem .55rem;font-size:.62rem;position:absolute;top:-.7rem;left:1.5rem}.card .card-link,.svc .card-link{margin-top:.9rem;font-size:.92rem;font-weight:700;display:inline-block}.oss-grid{grid-template-columns:repeat(3,1fr);gap:1.4rem;display:grid}.repo{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:1.7rem;transition:all .15s;display:flex}.repo:hover{border-color:var(--ink);box-shadow:6px 6px 0 var(--foam)}.repo .name{font-family:var(--mono);font-size:1.02rem;font-weight:700}.badge{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:100px;align-self:flex-start;margin:.6rem 0 .8rem;padding:.18rem .6rem;font-size:.66rem;display:inline-block}.badge.live{background:var(--teal-soft);color:var(--teal-ink)}.badge.design{background:var(--blue-soft);color:var(--blue)}.repo p{color:var(--ink-soft);flex:1;margin:0;font-size:.94rem}.repo .repo-body{flex:1}.repo .lang{font-family:var(--mono);color:var(--ink-faint);margin-top:1.1rem;font-size:.76rem}.repo .lang i{border-radius:50%;width:9px;height:9px;margin-right:.4rem;display:inline-block}.oss-more{margin-top:1.8rem;font-weight:700}.post-list{margin:0;padding:0;list-style:none}.post-list li{background:var(--panel);border:2px solid var(--border);border-radius:12px;margin-bottom:.9rem;padding:1.3rem 1.6rem;transition:all .15s}.post-list li:hover{border-color:var(--ink)}.post-list h3{margin:0 0 .3rem;font-size:1.2rem}.post-list h3 a{color:var(--ink)}.post-list h3 a:hover{color:var(--blue);text-decoration:none}.post-meta{color:var(--ink-faint);font-size:.8rem;font-family:var(--mono);margin-bottom:.4rem}.post-excerpt{color:var(--ink-soft);margin:0}.article{max-width:720px}.article h1{letter-spacing:-.02em;margin:0 0 .4rem;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:700;line-height:1.15}.article h2{letter-spacing:-.015em;margin-top:2.2rem}.article pre{background:var(--band);border:1px solid var(--border);color:#e8f1f7;border-radius:10px;padding:1rem 1.2rem;font-size:.88rem;overflow-x:auto}.article code{font-family:var(--mono);font-size:.92em}.article p code,.article li code{background:var(--foam);border-radius:4px;padding:.12em .35em}.article blockquote{border-left:3px solid var(--teal);color:var(--ink-soft);margin-left:0;padding-left:1.1rem}.prose{max-width:760px}.prose h1{letter-spacing:-.025em;margin:0 0 1.2rem;font-size:clamp(2rem,4.5vw,2.9rem);font-weight:700;line-height:1.1}.prose h2{letter-spacing:-.015em;margin:2.6rem 0 .8rem;font-size:1.7rem;font-weight:700}.prose .section{padding:2.2rem 0}.prose .section h2{margin:0 0 .8rem;font-size:1.7rem}.prose>.section:last-child,.prose>:last-child{margin-bottom:0}.offer{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);margin-bottom:1.1rem;padding:1.8rem;transition:all .15s}.offer:hover{border-color:var(--ink);box-shadow:6px 6px 0 var(--foam)}.offer h3{margin:0 0 .45rem;font-size:1.15rem;font-weight:700}.offer p{color:var(--ink-soft);margin:0;font-size:.97rem}.offer .shape{font-family:var(--mono);color:var(--teal-ink);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.72rem}.tech-strip{flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;display:flex}.tech-strip span{font-family:var(--mono);border:1.5px solid var(--border);background:var(--panel);color:var(--ink-soft);border-radius:100px;padding:.25rem .7rem;font-size:.78rem}.partner-strip{background:var(--foam);border:2px solid var(--border);border-radius:var(--radius);margin-top:3rem;padding:1.8rem 2rem}.partner-strip h3{margin:0 0 .5rem;font-size:1.05rem}.partner-strip p{color:var(--ink-soft);margin:0;font-size:.95rem}.audience{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:2rem 1.9rem}.audience ul{color:var(--ink-soft);margin:.8rem 0 0;padding-left:1.2rem}.audience li{margin-bottom:.5rem}.cta-banner{background:var(--panel);border:2px solid var(--ink);color:var(--ink);text-align:center;box-shadow:10px 10px 0 var(--foam);border-radius:18px;margin-top:3rem;padding:3.2rem 2.5rem}.cta-banner h2{letter-spacing:-.02em;margin:0 0 .5rem;font-size:2rem;font-weight:700}.cta-banner p{color:var(--ink-soft);max-width:540px;margin:0 auto 1.8rem}.site-footer{border-top:2px solid var(--ink);color:var(--ink-faint);background:var(--panel);padding:2rem 0;font-size:.9rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;display:flex}.footer-brand{flex-wrap:wrap;align-items:center;gap:1.1rem;display:flex}.footer-logo{width:auto;height:30px;display:block}.footer-tagline{font-family:var(--mono);color:var(--ink-faint);flex-basis:100%;font-size:.78rem}.footer-links{gap:1.4rem;display:flex}.footer-links a{color:var(--ink-faint)}.footer-links a:hover{color:var(--ink)}@media (max-width:860px){.hero-grid,.proof-grid,.svc-grid,.card-grid,.oss-grid{grid-template-columns:1fr}.sc-band{padding:2.5rem 1.8rem}.nav-links{gap:.9rem}.nav-links a{font-size:.85rem}.nav-links a:not(.nav-cta):nth-child(-n+3){display:none}}.timeline{margin:2.5rem 0;padding-left:2rem;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:8px;bottom:8px;left:6px}.tl-entry{margin-bottom:2.2rem;position:relative}.tl-entry:before{content:"";border:2.5px solid var(--ink);background:var(--bg);border-radius:4px;width:14px;height:14px;position:absolute;top:6px;left:-2rem}.tl-entry.now:before{background:var(--teal)}.tl-date{font-family:var(--mono);color:var(--blue);margin-bottom:.4rem;font-size:.78rem}.tl-card{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:1.6rem 1.8rem;transition:all .15s}.tl-card:hover{border-color:var(--ink);box-shadow:6px 6px 0 var(--foam)}.tl-card h3{margin:0;font-size:1.2rem;font-weight:700}.tl-card .role{color:var(--ink-faint);margin:.15rem 0 .8rem;font-size:.92rem}.tl-card p{color:var(--ink-soft);margin:0 0 .6rem;font-size:.97rem}.tl-card p:last-child{margin-bottom:0}.tl-card .tags{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.tl-card .tags span{font-family:var(--mono);border:1.5px solid var(--border);color:var(--ink-soft);border-radius:100px;padding:.15rem .55rem;font-size:.72rem}.fun-grid{grid-template-columns:repeat(2,1fr);gap:1.4rem;display:grid}.fun{background:var(--panel);border:2px solid var(--border);border-radius:var(--radius);padding:1.7rem}.fun .emoji{margin-bottom:.6rem;font-size:1.6rem;display:block}.fun h3{margin:0 0 .4rem;font-size:1.08rem}.fun p{color:var(--ink-soft);margin:0;font-size:.94rem}@media (max-width:860px){.fun-grid{grid-template-columns:1fr}}.sc-band .workstreams li{color:#b9d3e3}.sc-band .workstreams li strong{color:#f4f9fc}@media (prefers-color-scheme:dark){:root{--ink:#f4f9fc;--ink-soft:#b9cbd9;--ink-faint:#7f96a8;--ink-contrast:#0b2032;--bg:#0b2032;--panel:#113450;--band:#0f2c46;--blue:#7dd3fc;--blue-soft:#143a5a;--teal:#2dd4bf;--teal-soft:#0e3f3a;--teal-ink:#6ee7d8;--foam:#12374e;--border:#29506e;--grid-line:#7dd3fc0d;--mark:#2dd4bf52;--header-bg:#0b2032eb;--w-side:#2dd4bf;--w-crest:#7dd3fc}.sc-band{border-color:var(--border)}.sc-band .btn-primary{color:#0b2032;box-shadow:4px 4px #ffffff1f}.badge.design{color:#7dd3fc}.diagram svg g[stroke=\#123a5c]{stroke:#f4f9fc}.diagram svg rect{fill:#113450}.diagram svg rect[fill=\#e0f6f3]{fill:#0e3f3a}.diagram svg g[fill=\#123a5c]{fill:#f4f9fc}.diagram svg text[fill=\#3f5c77]{fill:#b9cbd9}.diagram svg text[fill=\#74889a]{fill:#7f96a8}.diagram svg g[stroke=\#14b8a6],.diagram svg marker path{stroke:#2dd4bf}}main>:last-child{margin-bottom:0}main .section:last-child,.light>.section:last-child{padding-bottom:1rem}.cta-banner:last-child{margin-bottom:1rem}.projects{gap:1rem;margin-top:1.3rem;display:grid}.proj{border-left:3px solid var(--foam);padding:.15rem 0 .15rem 1rem}.proj .pname{color:var(--ink);font-size:.98rem;font-weight:700}.proj .pname .pstatus{font-family:var(--mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em;margin-left:.5rem;font-size:.68rem;font-weight:400}.proj p{color:var(--ink-soft);margin:.15rem 0 .45rem;font-size:.92rem}.proj .tags{flex-wrap:wrap;gap:.4rem;margin-top:0;display:flex}.proj .tags span{font-family:var(--mono);border:1.5px solid var(--border);color:var(--ink-soft);border-radius:100px;padding:.1rem .5rem;font-size:.7rem}.proof-grid.three{grid-template-columns:repeat(3,1fr)}.origins{background:var(--foam);border:2px solid var(--ink);box-shadow:10px 10px 0 var(--teal-soft);border-radius:18px;padding:2.8rem 2.6rem}.origins h2{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700;line-height:1.15}.origins p{color:var(--ink-soft);max-width:760px;margin:0 0 .9rem}.origins p:last-child{margin-bottom:0}@media (max-width:860px){.origins{padding:2rem 1.6rem}}.case{background:var(--panel);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:8px 8px 0 var(--foam);margin-bottom:1.6rem;padding:2.2rem 2.4rem}.case h3{letter-spacing:-.015em;margin:0 0 .7rem;font-size:1.45rem;font-weight:700}.case p{color:var(--ink-soft);max-width:720px;margin:0 0 .8rem;font-size:.99rem}.case .where,.card .where{font-family:var(--mono);color:var(--teal-ink);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem;font-size:.72rem}.case .facts{flex-wrap:wrap;gap:.6rem;margin:1.3rem 0 0;display:flex}.case .facts span{font-family:var(--mono);background:var(--teal-soft);color:var(--teal-ink);border-radius:100px;padding:.25rem .75rem;font-size:.74rem;font-weight:600}.case .tags,.card .tags{flex-wrap:wrap;gap:.45rem;margin-top:1rem;display:flex}.case .tags span,.card .tags span{font-family:var(--mono);border:1.5px solid var(--border);color:var(--ink-soft);border-radius:100px;padding:.15rem .55rem;font-size:.72rem}.case .card-link{margin-top:1.2rem;font-size:.92rem;font-weight:700;display:inline-block}.card h3 .badge{vertical-align:middle;margin:0 0 0 .5rem}.badge.sunset{border:1.5px solid var(--border);color:var(--ink-faint);background:0 0}@media (max-width:860px){.case{padding:1.7rem 1.5rem}}.only-dark{display:none}@media (prefers-color-scheme:dark){.only-light{display:none}.only-dark{display:block}}
