@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/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(/_astro/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(/_astro/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:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-sans-latin-ext-400-normal.Q_nF8v4l.woff2)format("woff2"),url(/_astro/instrument-sans-latin-ext-400-normal.r32jotim.woff)format("woff");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:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-sans-latin-400-normal.DRC__1Mx.woff2)format("woff2"),url(/_astro/instrument-sans-latin-400-normal.D1W7dsQl.woff)format("woff");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:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/instrument-sans-latin-ext-500-normal.CTEe1bJa.woff2)format("woff2"),url(/_astro/instrument-sans-latin-ext-500-normal.CAxz3nsc.woff)format("woff");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:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/instrument-sans-latin-500-normal.Dk9ku72i.woff2)format("woff2"),url(/_astro/instrument-sans-latin-500-normal.Z6ESRlEs.woff)format("woff");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:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/instrument-sans-latin-ext-600-normal.BsaQcF38.woff2)format("woff2"),url(/_astro/instrument-sans-latin-ext-600-normal.DMks36a2.woff)format("woff");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:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/instrument-sans-latin-600-normal.B7fBEWYG.woff2)format("woff2"),url(/_astro/instrument-sans-latin-600-normal.B9e8oLYv.woff)format("woff");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{--accent:#da7447;--accent-ink:#a8481e;--ink:#2b1a11;--ink-2:#4a3326;--muted:#7a5a47;--bg:#f6eee4;--surface:#fcf8f2;--line:#e6d7c6;--display:"Bricolage Grotesque Variable", "Helvetica Neue", Arial, sans-serif;--body:"Instrument Sans", "Helvetica Neue", Arial, sans-serif;--ease:cubic-bezier(.2, .7, .2, 1);--pad-x:clamp(20px, 5vw, 48px);color-scheme:light}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}img{max-width:100%;height:auto;display:block}a{color:var(--accent-ink);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--ink)}a:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}h1,h2,h3,p{margin:0}.wrap{max-width:1200px;padding-inline:var(--pad-x);margin:0 auto}.display{font-family:var(--display);letter-spacing:-.03em;font-weight:800;line-height:1}.h-section{font-size:clamp(2.2rem,4.5vw,3.6rem)}.muted{color:var(--muted)}.soft{color:var(--ink-2)}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block:28px;display:flex}.logo{font-family:var(--display);letter-spacing:-.03em;color:var(--ink);font-size:1.5rem;font-weight:800;text-decoration:none}.logo span{color:var(--accent)}.site-nav{flex-wrap:wrap;align-items:center;gap:8px 28px;font-weight:500;display:flex}.navlink{color:var(--ink);transition:background-size .35s var(--ease);background:linear-gradient(currentColor,currentColor) 0 calc(100% - 6px)/0 1.5px no-repeat;padding:10px 0;text-decoration:none}.navlink:hover{color:var(--ink);background-size:100% 1.5px}.btn{border-radius:999px;align-items:center;min-height:52px;padding:0 26px;font-weight:600;text-decoration:none;transition:transform .25s,background-color .25s,color .25s,box-shadow .25s;display:inline-flex}.btn:hover{transform:translateY(-2px);box-shadow:0 12px 24px -14px #2b1a1199}.btn-solid{background:var(--ink);color:#fbf6ef}.btn-solid:hover{background:var(--accent);color:var(--ink)}.btn-ghost{border:1.5px solid var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:#fbf6ef}.hero{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));align-items:center;gap:clamp(40px,6vw,80px);padding-top:clamp(16px,4vw,48px);padding-bottom:clamp(56px,7vw,88px);display:grid}.hero-copy{flex-direction:column;gap:28px;display:flex}.hero h1{letter-spacing:-.035em;font-size:clamp(2.6rem,5.6vw,4.8rem);line-height:.98}.hero-lead{max-width:33em;color:var(--ink-2);font-size:1.15rem}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:4px;display:flex}.portrait{aspect-ratio:1;justify-self:center;width:min(100%,460px);position:relative}.disc{animation:1.1s cubic-bezier(.2,.8,.2,1) .15s both discIn;position:absolute;inset:0}.disc-inner{background:var(--accent);width:100%;height:100%;transition:transform .7s var(--ease);border-radius:50%}.photo{animation:rise 1s var(--ease) .45s both;position:relative}.photo img{width:100%;transition:transform .7s var(--ease)}.portrait:hover .disc-inner,.portrait:hover .photo img{transform:scale(1.05)}.marquee{border-block:1px solid var(--line);padding:22px 0;overflow:hidden}.marquee-track{width:max-content;animation:45s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{white-space:nowrap;font-family:var(--display);letter-spacing:-.02em;align-items:center;gap:28px;padding-right:28px;font-size:clamp(1.4rem,2.4vw,2rem);font-weight:600;display:inline-flex}.marquee-item:after{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px}.pillars{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:40px 56px;padding-block:clamp(56px,7vw,96px);display:grid}.pillar{flex-direction:column;gap:12px;display:flex}.pillar h2{font-size:clamp(2rem,3.4vw,2.8rem)}.tech{color:var(--accent-ink);font-size:.95rem;font-weight:500}.band{background:var(--surface);border-block:1px solid var(--line)}.section{flex-direction:column;gap:48px;padding-block:clamp(64px,8vw,112px);display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 48px;display:flex}.section-head p{max-width:28em;color:var(--ink-2)}.row{border-top:1px solid var(--line);transition:background-color .35s, padding .35s var(--ease);border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));align-items:baseline;gap:8px 40px;padding:32px 0;display:grid}.row:hover{background:var(--bg);padding-inline:20px}.row-sector{color:var(--accent-ink);font-weight:600}.row-body{flex-direction:column;grid-column:span 2;gap:8px;display:flex}.row h3{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:600;line-height:1.15;transition:color .3s}.row:hover h3{color:var(--accent-ink)}.row-body p{color:var(--ink-2);max-width:36em}.row-tech{color:var(--muted);font-size:.95rem}.approach{background:var(--accent)}.approach h2{max-width:14em}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;display:grid}.card-wrap{display:flex}.card{background:var(--bg);transition:transform .45s var(--ease), box-shadow .45s;border-radius:24px;flex-direction:column;flex:1;gap:10px;padding:28px;display:flex}.card:hover{transform:translateY(-8px)rotate(-1deg);box-shadow:0 26px 40px -26px #2b1a1199}.card h3{font-family:var(--display);letter-spacing:-.015em;font-size:1.4rem;font-weight:600;line-height:1.2}.card p{color:var(--ink-2)}.split{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;gap:40px 72px;padding-block:clamp(64px,8vw,104px);display:grid}.split-intro{flex-direction:column;gap:16px;display:flex}.split-intro p{max-width:26em;color:var(--ink-2)}.certs{margin:0;padding:0;list-style:none}.cert{border-bottom:1px solid var(--line);transition:padding .35s var(--ease), color .3s;flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding:18px 0;display:flex}.cert:hover{color:var(--accent-ink);padding-left:12px}.cert strong{font-weight:600}.side{border-top:1px solid var(--line)}.side-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:28px 48px;padding-block:clamp(48px,6vw,72px);display:grid}.side-grid h2{font-family:var(--display);letter-spacing:-.02em;grid-column:1/-1;font-size:1.6rem;font-weight:600}.side-item{flex-direction:column;gap:6px;display:flex}.side-item h3{font-size:1.1rem;font-weight:600}.side-item p{color:var(--ink-2)}.side-item a{color:var(--accent-ink);align-self:flex-start;padding:6px 0;font-weight:600}.contact{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));align-items:end;gap:40px 72px;padding-block:clamp(64px,8vw,112px);display:grid}.contact h2{letter-spacing:-.04em;font-size:clamp(3rem,8vw,6.5rem);line-height:.95}.contact-intro{flex-direction:column;gap:20px;display:flex}.contact-intro p{max-width:30em;color:var(--ink-2);font-size:1.1rem}.contact-links{flex-direction:column;gap:12px;display:flex}.contact-link{background:var(--bg);border:1px solid var(--line);min-height:64px;color:var(--ink);transition:background-color .3s, border-color .3s, transform .35s var(--ease);border-radius:20px;justify-content:space-between;align-items:center;gap:16px;padding:0 24px;font-weight:600;text-decoration:none;display:flex}.contact-link span{color:var(--muted);font-weight:400}.contact-link:hover{background:var(--accent);border-color:var(--accent);color:var(--ink);transform:translate(8px)}.contact-link:hover span{color:var(--ink)}.site-footer{border-top:1px solid var(--line)}.site-footer .wrap{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:28px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes discIn{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:none}}@keyframes reveal{0%{opacity:0;transform:translateY(48px)}to{opacity:1;transform:none}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.rise{animation:rise .9s var(--ease) both}.d1{animation-delay:50ms}.d2{animation-delay:.15s}.d3{animation-delay:.3s}.d4{animation-delay:.45s}.d5{animation-delay:.7s}.progress{background:var(--accent);transform-origin:0;z-index:20;height:3px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}@supports (animation-timeline:view()){.reveal{animation:linear both reveal view();animation-range:entry 5% cover 28%}.progress{animation:linear both grow scroll(root)}}.io .reveal{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);transform:translateY(48px)}.io .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.progress{display:none}}
