@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2)format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff)format("woff")}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-opsz-normal.Czevyj-6.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-opsz-normal.CJcjJNj7.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-opsz-normal.DihXLNYH.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-opsz-italic.DxWqP7Ku.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-opsz-italic.CGbN9UgK.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-opsz-italic.lSdLDfvT.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{color-scheme:light;--paper:#f7f7f6;--ink:#16181d;--ink-muted:#454a53;--ink-soft:#6b6f78;--signal:#c92e3e;--line:#16181d29;--line-strong:#16181d57}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:400 16px/1.6 Inter,system-ui,-apple-system,Segoe UI,sans-serif;overflow-x:hidden}body:after{content:"";pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}a:hover{color:var(--signal)}a:focus-visible,button:focus-visible{outline:2px solid var(--signal);outline-offset:4px}em{font-family:Fraunces Variable,Fraunces,Georgia,serif;font-weight:400}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.05}ul{margin:0;padding:0;list-style:none}.container{width:min(1100px,100% - 3rem);margin:0 auto}.page-shell{flex-direction:column;min-height:100vh;display:flex}.skip{z-index:100;color:var(--ink);border:1px solid var(--line-strong);background:#fff;padding:10px 16px;font-size:.85rem;font-weight:600;transition:top .15s;position:absolute;top:-100px;left:12px}.skip:focus{top:12px}.site-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);z-index:50;background:#f7f7f6f0;position:sticky;top:0}.header-content{justify-content:space-between;align-items:center;gap:1.5rem;height:74px;display:flex}.wordmark{letter-spacing:-.06em;color:var(--ink);align-items:center;font-size:1.55rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.wordmark:hover{opacity:.85;color:var(--ink)}.dot,.period{color:var(--signal)}.wordmark-caption{letter-spacing:0;color:var(--ink-soft);margin-left:.15rem;font-size:.85rem;font-weight:500}nav{align-items:center;gap:1.75rem;font-size:.82rem;font-weight:500;display:flex}nav a{min-height:44px;color:var(--ink-muted);align-items:center;gap:.25rem;padding:.25rem 0;transition:color .15s;display:inline-flex}nav a:hover{color:var(--signal)}nav .nav-current{color:var(--ink);border-bottom:1.5px solid var(--ink);font-weight:600}.arrow{font-size:.75rem;line-height:1;transition:transform .15s;display:inline-block}nav a:hover .arrow,.project-actions a:hover .arrow,.footer-portfolio-link:hover .arrow{transform:translate(1px,-1px)}.hero{padding:clamp(3.5rem,8vw,7.5rem) 0 clamp(3rem,7vw,6.5rem)}.eyebrow{letter-spacing:.105em;text-transform:uppercase;color:var(--ink-soft);align-items:center;gap:.65rem;font-size:.7rem;font-weight:600;display:flex}.mark{background:var(--signal);flex-shrink:0;width:8px;height:8px;display:inline-block}.hero h1{letter-spacing:-.075em;overflow-wrap:break-word;word-break:break-word;margin:1.5rem 0 2.5rem;font-size:clamp(3.8rem,12vw,10.5rem);font-weight:500;line-height:.98}.hero h1 em{letter-spacing:-.05em}.hero-bottom{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:3rem;display:grid}.lede{color:var(--ink-muted);max-width:580px;font-size:clamp(1.02rem,1.8vw,1.3rem);line-height:1.6}.counter{border-left:1px solid var(--line);align-items:center;gap:1.1rem;padding-left:1.6rem;display:flex}.counter strong{letter-spacing:-.1em;color:var(--ink);font-size:clamp(3.2rem,6vw,3.9rem);font-weight:400;line-height:1}.counter span{letter-spacing:.105em;text-transform:uppercase;color:var(--ink-soft);font-size:.7rem;font-weight:600;line-height:1.7}.projects{border-top:1px solid var(--line);padding:3rem 0 5.5rem}.section-heading{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2.2rem;display:flex}.section-heading h2{letter-spacing:-.05em;margin-top:.6rem;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:500;line-height:1.05}.micro{letter-spacing:.105em;text-transform:uppercase;color:var(--ink-soft);font-size:.7rem;font-weight:600}.project-row{border-top:1px solid var(--line);grid-template-columns:52px 1fr auto;gap:1.5rem;padding:2.2rem 0;display:grid}.project-row:last-child{border-bottom:1px solid var(--line)}.project-index{letter-spacing:.105em;color:var(--signal);padding-top:.5rem;font-size:.75rem;font-weight:600}.project-content{max-width:700px}.project-heading{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.project-heading h3{letter-spacing:-.04em;font-size:clamp(1.6rem,3.5vw,2.1rem);font-weight:500}.status{border:1px solid var(--line-strong);letter-spacing:.04em;white-space:nowrap;border-radius:999px;padding:.25rem .6rem;font-size:.68rem;font-weight:500;line-height:1.2}.status.live{color:#195e3c;background:#195e3c0d;border-color:#8fbea2}.status.on-demand{color:var(--ink-muted);border-color:var(--line-strong)}.status.in-development{color:var(--ink-soft);border-color:var(--line);background:#16181d05}.project-category{letter-spacing:.105em;text-transform:uppercase;color:var(--ink-soft);margin-top:.75rem;font-size:.7rem;font-weight:600}.project-summary{max-width:620px;color:var(--ink-muted);margin-top:.75rem;font-size:.95rem;line-height:1.6}.stack{flex-wrap:wrap;gap:.5rem;margin-top:1.4rem;display:flex}.stack li{border:1px solid var(--line);color:var(--ink-muted);background:#ffffff80;border-radius:2px;padding:.2rem .55rem;font-size:.74rem;font-weight:500}.project-actions{flex-direction:column;justify-content:center;align-items:flex-end;gap:.75rem;min-width:120px;font-size:.82rem;font-weight:500;display:flex}.project-actions a{border-bottom:1px solid var(--line-strong);align-items:center;gap:.25rem;min-height:38px;padding-bottom:.15rem;transition:color .15s,border-color .15s;display:inline-flex}.project-actions a:hover{color:var(--signal);border-color:var(--signal)}.action-primary{color:var(--signal);font-weight:600}.availability-note{color:var(--ink-soft);font-size:.75rem}.empty-state{border-top:1px solid var(--line);color:var(--ink-muted);padding:2rem 0}.approach{border-top:1px solid var(--line);grid-template-columns:1.2fr 1fr;align-items:end;gap:3.5rem;padding:3rem 0 5.5rem;display:grid}.approach h2{letter-spacing:-.045em;margin-top:1.2rem;font-size:clamp(2rem,4.5vw,3.6rem);font-weight:500;line-height:1.05}.approach-description{max-width:440px;color:var(--ink-muted);font-size:.95rem;line-height:1.6}.approach-description .micro{margin-top:2rem;display:block}.site-footer{border-top:1px solid var(--line);margin-top:auto;padding:1.5rem 0}.footer-content{color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;font-size:.76rem;display:flex}.footer-portfolio-link{color:var(--ink-muted);align-items:center;gap:.25rem;min-height:44px;padding:.25rem 0;font-weight:500;transition:color .15s;display:inline-flex}.footer-portfolio-link:hover{color:var(--signal)}@media (width<=720px){.header-content{height:64px}.container{width:min(1100px,100% - 2rem)}nav{gap:1.25rem;font-size:.78rem}.hero h1{letter-spacing:-.06em;margin:1.25rem 0 2rem;font-size:clamp(3.2rem,13vw,5.5rem)}.hero-bottom{grid-template-columns:1fr;gap:2rem}.counter{border-left:none;border-top:1px solid var(--line);justify-content:flex-start;padding:1.25rem 0 0}.section-heading{flex-direction:column;align-items:flex-start;gap:.5rem}.project-row{grid-template-columns:28px minmax(0,1fr);gap:1rem;padding:1.8rem 0}.project-actions{flex-flow:wrap;grid-column:2;justify-content:flex-start;align-items:flex-start;gap:1.25rem;margin-top:.4rem}.approach{grid-template-columns:1fr;gap:2rem;padding:2.5rem 0 4.5rem}}@media (width<=480px){.hero h1{letter-spacing:-.05em;font-size:clamp(2.6rem,12vw,3.8rem)}.footer-content{flex-direction:column;align-items:flex-start;gap:.6rem}.footer-portfolio-link{border-bottom:1px solid var(--line);min-height:40px;padding-bottom:.2rem}}@media (width<=420px){nav{gap:.85rem;font-size:.75rem}.wordmark-caption{display:none}.project-heading{gap:.6rem}}@media (width<=360px){.container{width:calc(100% - 1.5rem)}nav{gap:.65rem;font-size:.72rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.arrow{transition:none}}
