@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#07080B;--ground-2:#0A0C11;--panel:#0D0F15;--ink:#ECEEF3;--ink-2:#C3C7D2;--muted:#828896;--faint:#565C69;--line:rgba(150,165,200,.12);--line-2:rgba(150,165,200,.06);--accent:#9DB8EE;--accent-deep:#4B5B82;--paper:#F3F1EC;--serif: "Fraunces Variable", Georgia, "Times New Roman", serif;--sans: "Helvetica Neue", Helvetica, Arial, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", "Segoe UI Mono", Menlo, Consolas, monospace;--maxw:1240px;--pad:clamp(20px,5vw,72px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;letter-spacing:.005em}a{color:inherit;text-decoration:none}::selection{background:#9db8ee47}.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#scene{position:fixed;inset:0;z-index:0;pointer-events:none}.glow{position:fixed;z-index:0;pointer-events:none;top:-10%;right:-5%;width:70vw;height:70vw;max-width:900px;max-height:900px;background:radial-gradient(circle at 62% 42%,rgba(90,120,190,.16),rgba(60,80,140,.05) 42%,transparent 66%);filter:blur(10px)}.frame{position:fixed;inset:0;z-index:1;pointer-events:none}.frame:before,.frame:after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--line-2)}.frame:before{left:var(--pad)}.frame:after{right:var(--pad)}@media (max-width:720px){.frame{display:none}}header{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px var(--pad);transition:background .4s,padding .4s,border-color .4s;border-bottom:1px solid transparent}header.scrolled{background:#07080bb8;backdrop-filter:blur(12px);border-color:var(--line);padding:15px var(--pad)}.wm{display:flex;align-items:center;gap:12px}.wm .mark{width:20px;height:20px}.wm .name{font-family:var(--sans);font-weight:600;letter-spacing:.32em;font-size:13px;padding-left:1px}nav.main{display:flex;align-items:center;gap:34px}nav.main a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;transition:color .25s}nav.main a:hover{color:var(--ink)}.nav-cta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);border-radius:2px;padding:9px 16px;transition:border-color .25s,background .25s}.nav-cta:hover{border-color:var(--accent);background:#9db8ee0f}@media (max-width:860px){nav.main a:not(.nav-cta){display:none}}.container{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);position:relative;z-index:10}section{position:relative;z-index:10}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:12px}.eyebrow:before{content:"";width:26px;height:1px;background:var(--accent);opacity:.6}.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:120px;padding-bottom:64px}.hero .eyebrow{margin-bottom:34px;opacity:0;animation:fadeUp .9s .2s cubic-bezier(.2,.7,.2,1) forwards}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.9rem,8.2vw,7rem);line-height:.98;letter-spacing:-.015em;margin:0 0 30px;max-width:15ch;text-wrap:balance}.hero h1 em{font-style:italic;color:var(--ink)}.hero h1 .l{display:inline-block;opacity:0;transform:translateY(115%)}.lit .hero h1 .l{animation:lineIn 1s cubic-bezier(.16,1,.3,1) forwards}.hero .sub{font-size:clamp(1.05rem,1.6vw,1.28rem);color:var(--ink-2);max-width:46ch;margin:0 0 42px;opacity:0;animation:fadeUp 1s .7s cubic-bezier(.2,.7,.2,1) forwards}.hero .actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;opacity:0;animation:fadeUp 1s .85s cubic-bezier(.2,.7,.2,1) forwards}.btn{font-family:var(--sans);font-weight:500;font-size:15px;display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:2px;transition:transform .2s,box-shadow .3s,background .3s,border-color .3s;cursor:pointer;border:1px solid transparent}.btn-primary{background:var(--paper);color:#0b0c10;box-shadow:0 10px 40px -12px #f3f1ec59}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 48px -12px #f3f1ec80}.btn-ghost{color:var(--ink);border-color:var(--line)}.btn-ghost:hover{border-color:var(--accent);color:#fff}.btn .arrow{transition:transform .25s}.btn:hover .arrow{transform:translate(5px)}.hero .baseline{margin-top:auto;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:38px;border-top:1px solid var(--line);font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--faint);text-transform:uppercase;opacity:0;animation:fadeUp 1s 1.1s cubic-bezier(.2,.7,.2,1) forwards}.hero .baseline b{color:var(--muted);font-weight:400}.statement{padding:clamp(90px,16vh,190px) 0}.statement .grid{display:grid;grid-template-columns:1fr;gap:48px}@media (min-width:900px){.statement .grid{grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr);gap:80px}}.statement p.big{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.3vw,2.7rem);line-height:1.28;letter-spacing:-.01em;margin:22px 0 0;text-wrap:balance;color:var(--ink)}.statement p.big span{color:var(--muted)}.meta-list{border-top:1px solid var(--line)}.meta-list .row{display:flex;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--muted)}.meta-list .row b{color:var(--ink);font-weight:400}.caps{padding:clamp(70px,10vh,120px) 0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-bottom:38px;border-bottom:1px solid var(--line);margin-bottom:8px}.section-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4vw,3rem);letter-spacing:-.02em;margin:0}.section-head .count{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--faint);text-transform:uppercase}.cap{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;padding:34px 0;border-bottom:1px solid var(--line);cursor:default;position:relative;transition:padding-left .4s cubic-bezier(.2,.7,.2,1)}@media (min-width:820px){.cap{grid-template-columns:80px minmax(0,.9fr) minmax(0,1.1fr);gap:34px;align-items:center}}.cap:hover{padding-left:16px}.cap:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .4s cubic-bezier(.2,.7,.2,1)}.cap:hover:before{transform:scaleY(1)}.cap .idx{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.1em}.cap h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.01em;margin:0;transition:color .3s}.cap p{margin:0;color:var(--muted);font-size:1rem;max-width:46ch}.cap .tags{margin-top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}.approach{padding:clamp(80px,12vh,150px) 0}.phases{display:grid;grid-template-columns:1fr;gap:2px;margin-top:44px;background:var(--line);border:1px solid var(--line)}@media (min-width:820px){.phases{grid-template-columns:repeat(3,1fr)}}.phase{background:var(--ground);padding:40px 34px;position:relative;transition:background .4s}.phase:hover{background:var(--ground-2)}.phase .idx{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--accent);text-transform:uppercase}.phase h3{font-family:var(--serif);font-weight:400;font-size:1.55rem;margin:22px 0 12px;letter-spacing:-.01em}.phase p{margin:0;color:var(--muted);font-size:.98rem}.closer{padding:clamp(100px,18vh,220px) 0;text-align:center}.closer h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,6vw,4.6rem);line-height:1.02;letter-spacing:-.02em;margin:0 auto 44px;max-width:16ch;text-wrap:balance}.closer h2 em{font-style:italic}.closer .actions{display:flex;flex-direction:column;align-items:center;gap:22px}.closer .email{font-family:var(--mono);font-size:13px;letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:3px;transition:color .25s,border-color .25s}.closer .email:hover{color:var(--accent);border-color:var(--accent)}.contact{padding:clamp(80px,12vh,150px) 0}.contact .grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}@media (min-width:900px){.contact .grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px}}.contact h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.04;letter-spacing:-.02em;margin:14px 0 18px;text-wrap:balance}.contact h2 em{font-style:italic}.contact .lead{color:var(--muted);max-width:40ch;font-size:1.05rem}.contact .lead a{color:var(--ink-2);border-bottom:1px solid var(--line)}.contact .lead a:hover{color:var(--accent);border-color:var(--accent)}form.inquiry{display:grid;gap:18px}.field{display:grid;gap:8px}.field label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.field input,.field textarea{font-family:var(--sans);font-size:15px;color:var(--ink);background:#0d112480;border:1px solid var(--line);border-radius:3px;padding:14px 15px;width:100%;transition:border-color .25s,background .25s}.field textarea{resize:vertical;min-height:120px}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:#0d1124d9}.field input:focus-visible,.field textarea:focus-visible{outline:2px solid rgba(157,184,238,.5);outline-offset:1px}.two{display:grid;gap:18px}@media (min-width:560px){.two{grid-template-columns:1fr 1fr}}form.inquiry button{margin-top:6px;justify-self:start}form.inquiry button[disabled]{opacity:.55;cursor:progress}.form-status{font-family:var(--mono);font-size:12px;letter-spacing:.04em;min-height:18px}.form-status[data-state=error]{color:#f0b4b4}.form-status[data-state=ok]{color:var(--accent)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#c86b6b}.form-done{border:1px solid var(--line);border-radius:6px;padding:36px 30px;background:linear-gradient(180deg,#0d112499,#070a1666)}.form-done h3{font-family:var(--serif);font-weight:400;font-size:1.6rem;margin:0 0 10px}.form-done p{color:var(--muted);margin:0}[hidden]{display:none!important}footer{border-top:1px solid var(--line);padding:48px var(--pad) 40px;position:relative;z-index:10}footer .inner{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}footer .fine{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--faint);text-transform:uppercase}.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes lineIn{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal,.hero h1 .l{opacity:1;transform:none}.hero .eyebrow,.hero .sub,.hero .actions,.hero .baseline{opacity:1}}
