@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-vietnamese-standard-normal-Br4FGdAc.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;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-latin-ext-standard-normal-qp-RdZgh.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;font-stretch:75% 100%;src:url(/assets/bricolage-grotesque-latin-standard-normal-C5Lc8Qmc.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(/assets/fraunces-vietnamese-full-italic-BHALq22K.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(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.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(/assets/fraunces-latin-full-italic-D2JnYqd-.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{--bg:#f3f1ec;--bg-2:#e8e5de;--fg:#14161b;--fg-2:#4e525c;--fg-3:#686c76;--rule:#14161b1f;--rule-2:#14161b42;--accent:#1e45d2;--hi:#d5defc;--surface:#ffffff73;--photo-filter:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0c0e13;--bg-2:#151821;--fg:#ecedf0;--fg-2:#a9adb8;--fg-3:#858a96;--rule:#ecedf01a;--rule-2:#ecedf038;--accent:#8ea8ff;--hi:#23305a;--surface:#ffffff06;--photo-filter:brightness(.94) contrast(1.03);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0c0e13;--bg-2:#151821;--fg:#ecedf0;--fg-2:#a9adb8;--fg-3:#858a96;--rule:#ecedf01a;--rule-2:#ecedf038;--accent:#8ea8ff;--hi:#23305a;--surface:#ffffff06;--photo-filter:brightness(.94) contrast(1.03);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}:root{--sans:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--emph:"Fraunces Variable", "Fraunces", Georgia, serif;--screen:100svh;--margin:clamp(18px, 3vw, 48px);--gutter:clamp(12px, 1.6vw, 24px);--t-small:14px;--t-body:clamp(16px, .5vw + 11px, 18px);--t-lead:clamp(19px, .9vw + 10px, 25px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:var(--t-body);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.55;transition:background-color .35s,color .35s;overflow-x:clip}img,svg,canvas{max-width:100%;display:block}h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{background:var(--hi);color:var(--fg)}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{left:var(--margin);z-index:50;background:var(--fg);color:var(--bg);font-size:var(--t-small);padding:8px 12px;position:absolute;top:-60px}.skip:focus{top:12px}.em{font-family:var(--emph);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.01em;color:var(--accent);padding-right:.06em;font-style:italic;font-weight:380}.lang{letter-spacing:.04em;font-size:13px;font-weight:560;display:inline-flex}.lang button{color:var(--fg-3);padding:6px 7px;transition:color .2s;position:relative}.lang button+button:before{content:"/";color:var(--rule-2);position:absolute;left:-3px}.lang button[aria-pressed=true]{color:var(--fg)}.lang button:hover,.lang button:active{color:var(--accent)}.lang button:active,.theme:active{transition-duration:0s}.theme{width:32px;height:32px;color:var(--fg);border-radius:50%;place-items:center;transition:color .2s;display:inline-grid}.theme svg{width:18px;height:18px;transition:transform .5s cubic-bezier(.6,0,.2,1)}.theme circle{fill:none;stroke:currentColor;stroke-width:1.5px}.theme path{fill:currentColor}:root[data-theme=dark] .theme svg{transform:rotate(180deg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme svg{transform:rotate(180deg)}}.theme:hover,.theme:active{color:var(--accent)}.link{--brand:var(--fg)}.link-email{--brand:#ea4335}.link-linkedin{--brand:#0a66c2}.link-instagram{--brand:#ff0069}.link-facebook{--brand:#0866ff}.link-phone{--brand:var(--accent)}.icon{fill:currentColor;flex:none;width:22px;height:22px;transition:color .2s}.link:hover .icon,.link:focus-visible .icon,.link:active .icon{color:var(--brand)}.link:active .icon{transition-duration:0s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}.hero{column-gap:var(--gutter);padding-inline:var(--margin);min-height:max(var(--screen), 700px);grid-template-rows:76px 1fr auto 76px;grid-template-columns:repeat(12,minmax(0,1fr));max-height:1200px;display:grid;position:relative}.hero-photo{margin-left:calc(var(--margin) * -1);grid-area:1/1/-1/span 6;position:relative}.hero-clip{--sweep:125%;--sweep-mask:linear-gradient(to right, #000 calc(var(--sweep) - 25%), transparent var(--sweep));--fade-mask:linear-gradient(to right, #000 52%, transparent 100%), linear-gradient(to bottom, #000 80%, transparent 100%);-webkit-mask-image:var(--sweep-mask), var(--fade-mask);-webkit-mask-image:var(--sweep-mask), var(--fade-mask);mask-image:var(--sweep-mask), var(--fade-mask);-webkit-mask-composite:source-in;position:absolute;inset:0;overflow:hidden;-webkit-mask-composite:source-in;mask-composite:intersect}.hero-clip img{object-fit:cover;object-position:var(--focus,47% 40%);-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;max-width:none;height:108%;filter:var(--photo-filter);will-change:transform;position:absolute;top:-8%;left:0}.hero-bar{grid-area:1/7/auto/-1;justify-content:space-between;align-self:center;align-items:center;gap:16px;display:flex}.hero-role{letter-spacing:.04em;color:var(--fg-2);font-size:13px;font-weight:560}.hero-controls{align-items:center;gap:6px;margin-right:-6px;display:flex}.hero-text{grid-area:2/7/span 2/-1;align-self:center;padding-block:24px}.hero-name{flex-direction:column;align-items:flex-start;display:flex}.family{font-family:var(--emph);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.015em;color:var(--accent);margin-bottom:.04em;margin-left:.04em;font-size:clamp(30px,3.1vw,54px);font-style:italic;font-weight:340;line-height:1}.given{--w:760;--d:84;letter-spacing:-.012em;white-space:nowrap;margin-left:-.045em;padding-top:.1em;font-size:clamp(64px,8.9vw,156px);font-weight:760;line-height:.92;display:block}.ch{font-variation-settings:"wght" var(--w), "opsz" 96, "wdth" var(--d);display:inline-block}.ch.sp{width:.2em}.hero-intro{max-width:27em;font-size:var(--t-lead);font-variation-settings:"opsz" 24;letter-spacing:-.006em;text-wrap:pretty;margin-top:clamp(22px,2.6vw,40px);font-weight:400;line-height:1.38}.hero-intro .em{font-size:1.08em;line-height:1}.hero-links{max-width:640px;margin-top:clamp(28px,3.4vw,52px)}.hero-links-label{letter-spacing:.04em;color:var(--fg-3);margin-bottom:6px;font-size:13px;font-weight:560}.hero-links ul{grid-template-columns:1fr 1fr;column-gap:clamp(16px,2vw,36px);display:grid}.hero-links .link{border-top:1px solid var(--rule);grid-template-rows:auto auto;grid-template-columns:22px 1fr;align-items:center;column-gap:14px;padding:12px 0;transition:border-color .5s;display:grid}.hero-links .link:active{border-top-color:var(--fg);transition-duration:0s}.hero-links li:nth-last-child(-n+2) .link{border-bottom:1px solid var(--rule)}.hero-links .icon{grid-row:1/span 2}.link-name{letter-spacing:.03em;color:var(--fg-3);font-size:12.5px;font-weight:520;line-height:1.3}@property --hw{syntax:"<number>";inherits:false;initial-value:520}@property --hd{syntax:"<number>";inherits:false;initial-value:100}.link-handle{--hw:520;--hd:100;font-variation-settings:"opsz" 18, "wght" var(--hw), "wdth" var(--hd);overflow-wrap:anywhere;justify-self:start;font-size:16.5px;font-weight:520;line-height:1.3;transition:--hw .7s cubic-bezier(.2,.7,.3,1),--hd .7s cubic-bezier(.2,.7,.3,1),color .2s}.link:hover .link-handle,.link:focus-visible .link-handle{--hw:660;--hd:94;transition-duration:60ms}.hero-next{color:var(--fg-2);grid-area:4/7/auto/-1;place-self:center start;gap:10px;font-size:14px;font-weight:520;transition:color .2s;display:inline-flex}.hero-next:hover{color:var(--accent)}@media (width<=999px){.hero{min-height:var(--screen);flex-direction:column;max-height:none;padding-bottom:20px;display:flex}.hero-bar{z-index:2;top:max(12px, env(safe-area-inset-top));right:var(--margin);position:absolute}.hero-role:empty{display:none}.hero-controls{background:color-mix(in srgb, var(--bg) 58%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.5);backdrop-filter:blur(16px)saturate(1.5);height:40px;box-shadow:inset 0 0 0 1px var(--rule), 0 6px 20px -10px #00000073;border-radius:999px;gap:2px;margin-right:0;padding:4px}.hero-controls:after{content:"";background:var(--rule-2);order:1;width:1px;height:16px;margin-inline:4px}.hero-controls .theme{order:2}.hero-controls .lang{isolation:isolate;position:relative}.hero-controls .lang:before{content:"";z-index:-1;background:color-mix(in srgb, var(--fg) 11%, transparent);border-radius:999px;transition:transform .45s cubic-bezier(.6,0,.2,1);position:absolute;inset:0 50% 0 0}.hero-controls .lang:has(button:last-child[aria-pressed=true]):before{transform:translate(100%)}.hero-controls .lang button{width:36px;height:32px;color:var(--fg-2);padding:0}.hero-controls .lang button[aria-pressed=true]{color:var(--fg)}.hero-controls .lang button+button:before{content:none}.hero-clip{--sweep-mask:linear-gradient(to bottom, #000 calc(var(--sweep) - 25%), transparent var(--sweep));--fade-mask:linear-gradient(to bottom, #000 62%, transparent 100%)}.hero-photo{margin-inline:calc(var(--margin) * -1);height:calc(clamp(220px, var(--screen) * .44, 560px) + 56px);--focus:50% 22%;flex:none;order:1}.hero-text{order:2;align-self:stretch;margin-top:28px;padding:0}.family{font-size:clamp(26px,6.6vw,44px)}.given{font-size:clamp(54px,16.4vw,130px)}.hero-intro{margin-top:16px;font-size:clamp(16px,2.4vw + 7px,22px)}.hero-links{max-width:none;margin-top:22px}.hero-next{order:3;align-self:flex-start;margin-top:auto;padding-top:24px}}@media (width>=700px) and (width<=999px){.hero-links ul{grid-template-columns:repeat(3,1fr)}.hero-links li:nth-last-child(-n+3) .link{border-bottom:1px solid var(--rule)}}@media (width<=699px){.hero-links ul{grid-template-columns:repeat(3,1fr);column-gap:10px}.hero-links .link{grid-template-columns:20px 1fr;column-gap:9px;padding:11px 0}.hero-links li:nth-last-child(-n+3) .link{border-bottom:1px solid var(--rule)}.hero-links .icon{grid-row:1;width:20px;height:20px}.hero-links .link-name{letter-spacing:0;color:var(--fg);font-size:14px}.hero-links .link-handle,.hero-links-label{display:none}.short .hero-photo{height:calc(clamp(150px, var(--screen) * .33, 260px) + 48px)}.short .hero-text{margin-top:20px}.short .given{font-size:clamp(48px,15vw,80px)}.short .family{font-size:24px}.short .hero-intro{margin-top:10px;font-size:15.5px;line-height:1.4}.short .hero-links{margin-top:14px}.short .hero-links .link{padding:9px 0}}.section{padding-inline:var(--margin);position:relative}.made{padding-top:clamp(96px,12vw,200px)}.section-title{letter-spacing:-.015em;max-width:12em;margin-bottom:clamp(40px,6vw,96px);font-size:clamp(48px,7.4vw,128px);font-weight:780;line-height:.95}.section-title .em{letter-spacing:-.02em;font-weight:360}.works{border-top:1px solid var(--fg)}.work{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;padding-block:clamp(32px,4vw,64px);display:grid;position:relative}.work-rule{background:var(--rule-2);transform-origin:0;height:1px;position:absolute;bottom:0;left:0;right:0}.work-text{grid-column:1/span 5}.work-name{font-variation-settings:"opsz" 72, "wght" var(--w,720), "wdth" var(--d,85);letter-spacing:-.028em;text-wrap:balance;font-size:clamp(30px,3.4vw,54px);font-weight:720;line-height:1}.work-name a{background:linear-gradient(var(--accent), var(--accent)) left 100% / 0 3px no-repeat;transition:background-size .4s cubic-bezier(.3,.7,.2,1),color .2s}.work-name a:hover{color:var(--accent);background-size:100% 3px}.work-line{color:var(--fg-2);text-wrap:pretty;max-width:30em;margin-top:18px}.work-link{color:var(--accent);gap:6px;margin-top:18px;font-size:14px;font-weight:560;display:inline-flex}.work-link span{transition:transform .25s cubic-bezier(.3,.7,.2,1)}.work-link:hover span{transform:translate(2px,-2px)}.work-fig{background:var(--surface);border:1px solid var(--rule);border-radius:4px;grid-column:7/-1}@media (width<=999px){.work-text{grid-column:1/span 6}.work-fig{grid-column:7/-1}}@media (width<=760px){.work{display:block}.work-fig{margin-top:24px}.fig-num{font-size:14px}}.fig{width:100%;height:auto;font-family:var(--sans);overflow:visible}.fig-num{fill:var(--fg-2);font-size:11px;font-weight:520}.fig-num.red{fill:var(--accent)}.fig-phrase{font-family:var(--emph);font-variation-settings:"SOFT" 100, "WONK" 1, "wght" var(--w,380);fill:var(--fg);font-size:44px;font-style:italic;font-weight:380}.fig-query{font-family:var(--emph);font-variation-settings:"SOFT" 100, "WONK" 1, "wght" var(--w,400);fill:var(--fg);font-size:22px;font-style:italic;font-weight:400}.fig .axis,.fig .tick{stroke:var(--fg);stroke-width:1px}.fig .axis.faint{stroke:var(--rule-2);stroke-dasharray:2 4}.ground line{stroke:var(--fg);stroke-opacity:.08}.face-t,.face-l,.face-r{stroke:var(--fg);stroke-width:1px;stroke-linejoin:round}.face-t{fill:var(--bg)}.face-l{fill:url(#hatch)}.face-r{fill:var(--bg-2)}.walk-ghost{fill:none;stroke:var(--fg);stroke-opacity:.25;stroke-dasharray:3 4}.walk{fill:none;stroke:var(--accent);stroke-width:1.8px}.walker{fill:var(--accent);opacity:0}.pin line{stroke:var(--accent);stroke-width:1.4px}.pin rect,.mk-meant polygon{fill:var(--accent)}.best path{fill:none;stroke:var(--accent);stroke-width:2px}.mk-lit polygon{fill:var(--fg)}.flip{fill:none;stroke:var(--accent);stroke-width:1.2px}.turn.you rect{fill:var(--fg)}.turn.bot rect,.dot{fill:var(--hi);stroke:var(--fg);stroke-width:1px}.frame{fill:var(--bg);stroke:var(--fg);stroke-width:1px}.scene line,.scene path,.scene circle,.scene rect{fill:none;stroke:var(--fg);stroke-width:1px}.scene .cam{fill:var(--fg)}.bar{fill:var(--fg);fill-opacity:.2;transition:fill .5s,fill-opacity .5s}.fig[data-found] .bar{fill-opacity:.12}.fig[data-found] .bar.hit{fill:var(--accent);fill-opacity:1}.scan{stroke:var(--accent);stroke-width:1px;opacity:0}.reach{padding-top:clamp(120px,15vw,240px)}.reach-title{letter-spacing:-.018em;text-wrap:balance;max-width:11em;font-size:clamp(52px,9vw,168px);font-weight:780;line-height:.93}.reach-title .em{letter-spacing:-.02em;font-weight:360}.reach-lede{color:var(--fg-2);font-size:var(--t-lead);margin-top:clamp(20px,2.4vw,36px)}.reach-email{font-variation-settings:"opsz" 96, "wdth" 86;letter-spacing:-.02em;text-align:left;background:linear-gradient(var(--accent), var(--accent)) left 100% / 0 .06em no-repeat;transform-origin:0;margin-top:clamp(28px,4vw,56px);padding-bottom:.08em;font-size:clamp(30px,5.8vw,104px);font-weight:640;line-height:1.05;transition:background-size .5s cubic-bezier(.3,.7,.2,1);display:inline-flex;overflow:hidden}.reach-email-in{--w:640;--d:86;flex-wrap:wrap;display:inline-flex}.reach-user,.reach-domain{white-space:nowrap}.reach-email:hover,.reach-email:focus-visible,.reach-email.is-copied{background-size:100% .06em}.reach-status{min-height:1.5em;color:var(--accent);margin-top:10px;font-weight:560}.reach-links{flex-wrap:wrap;gap:14px clamp(20px,3vw,48px);margin-top:clamp(36px,5vw,72px);display:flex}.reach-links .link{grid-template-rows:auto auto;grid-template-columns:22px auto;align-items:center;column-gap:12px;display:grid}.reach-links .icon{grid-row:1/span 2}.signature{border-bottom:1px solid var(--rule-2);margin-top:clamp(96px,12vw,200px);overflow:hidden}.signature p{--w:800;--d:82;white-space:nowrap;font-variation-settings:"wght" var(--w), "opsz" 96, "wdth" var(--d);letter-spacing:-.02em;width:max-content;color:var(--fg);margin-bottom:-.035em;padding-top:.12em;line-height:.8}.colophon{color:var(--fg-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;padding-block:18px 26px;font-size:14px;display:flex}.colophon-controls{align-items:center;gap:14px;display:flex}.to-top{font-weight:520;transition:color .2s}.to-top:hover{color:var(--accent)}@media (width<=699px){.reach-links{grid-template-columns:1fr 1fr;gap:18px 14px;display:grid}.reach-links .link-handle{font-size:15px}}.section-title .em,.reach-title .em{white-space:nowrap}@media (width>=700px) and (width<=999px){.hero-photo{height:calc(clamp(240px, var(--screen) * .36, 440px) + 56px)}.given{font-size:clamp(64px,11.5vw,112px)}.hero-text{margin-top:32px}.hero-photo{--focus:50% 16%}}.link-email .link-handle{--hd:88;letter-spacing:-.008em}.link-email:hover .link-handle,.link-email:focus-visible .link-handle{--hd:84}@media (width<=1279px){.hero-links .link-email .link-handle{font-size:15.5px}}.ink{font-variation-settings:"wght" var(--w,780), "opsz" 96, "wdth" var(--d,84)}
