@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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:#09090b;--surface:#111114;--surface-2:#17171c;--red:#ff4b45;--white:#f3f1ef;--muted:#aaa9b2;--line:#29292f;--heading:"Space Grotesk Variable", sans-serif;--body:"Inter Variable", sans-serif;color-scheme:dark;font-family:var(--body);background:var(--bg);color:var(--white);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img,video{max-width:100%;display:block}svg{flex-shrink:0}::selection{background:var(--red);color:var(--bg)}:focus-visible{outline:2px solid var(--red);outline-offset:6px}h1,h2,h3,p,ul,figure{margin:0}h1,h2,h3{font-family:var(--heading);font-weight:600}p{line-height:1.75}ul{padding:0;list-style:none}[hidden]{display:none!important}.container{width:min(1280px,100% - 112px);margin-inline:auto}.skip-link{z-index:100;background:var(--red);color:var(--bg);padding:12px 20px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.site-header{border-bottom:1px solid var(--line);background:var(--bg);height:104px}.header-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.brand{align-items:center;gap:17px;display:flex}.brand-mark{font-family:var(--heading);letter-spacing:-7px;padding-right:6px;font-size:52px;font-weight:700;line-height:1}.brand-mark span{color:var(--red)}.brand-name{letter-spacing:.02em;font-size:12px;font-weight:600;line-height:1.45}.site-header nav{gap:36px;font-size:13px;display:flex}.site-header nav a{padding-block:10px}.nav-dot{color:var(--red);opacity:0;transition:opacity .2s}.site-header nav a:hover .nav-dot{opacity:1}.header-github{color:var(--muted);align-items:center;gap:9px;font-size:12px;display:flex}.header-github:hover{color:var(--white)}.eyebrow,.hero-index,.scroll-cue,.work-count,.project-number{font-family:var(--heading);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:500}.eyebrow{color:var(--muted);align-items:center;gap:10px;display:flex}.tiny-square{background:var(--red);flex-shrink:0;width:6px;height:6px;display:inline-block}.hero{padding-top:46px}.hero-top{justify-content:space-between;align-items:center;display:flex}.hero-index{color:#777680}.hero-main{grid-template-columns:1.1fr 1fr;align-items:center;gap:70px;padding:58px 0 65px;display:grid}.hero h1{letter-spacing:-.075em;font-size:clamp(76px,8.8vw,130px);font-weight:600;line-height:1.02}.hero h1 span{color:var(--red)}.hero-rule{background:var(--red);width:54px;height:2px;margin-top:34px}.hero-intro{max-width:448px;margin-left:auto}.intro-lead{font-family:var(--heading);letter-spacing:-.035em;margin-bottom:21px;font-size:clamp(24px,2.3vw,31px);font-weight:500;line-height:1.3}.intro-lead span,.section-intro span{display:block}.hero-intro>p:not(.intro-lead){color:var(--muted);font-size:14px;line-height:1.8}.hero-previous{margin-top:17px}.hero-previous strong{color:var(--white);font-weight:500}.hero-actions{align-items:center;gap:28px;margin-top:31px;display:flex}.button{border:1px solid #0000;justify-content:center;align-items:center;gap:24px;padding:15px 21px;font-size:12px;font-weight:600;transition:background .2s,color .2s,transform .2s;display:inline-flex}.button-primary{background:var(--red);color:#09090b}.button-primary:hover{background:#ff736e;transform:translateY(-2px)}.text-link{align-items:center;gap:12px;font-size:12px;font-weight:500;display:inline-flex}.text-link svg{transition:transform .2s}.text-link:hover{color:var(--red)}.text-link:hover svg{transform:translate(3px)}.hero-bottom{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:23px 0;display:flex}.discipline-list{font-family:var(--heading);text-transform:uppercase;letter-spacing:.09em;gap:31px;font-size:10px;font-weight:500;display:flex}.discipline-list span:not(:first-child):before{content:"+";color:var(--red);margin-right:31px}.scroll-cue{color:var(--muted);align-items:center;gap:17px;font-size:9px;display:flex}.scroll-cue svg{color:var(--red)}.work-section{padding-top:96px;padding-bottom:90px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:36px;display:flex}.section-heading h2{letter-spacing:-.055em;margin-top:13px;font-size:48px;line-height:1.1}.section-heading h2 span{color:var(--red)}.section-intro{color:var(--muted);padding-bottom:4px;font-size:13px;line-height:1.7}.work-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:31px;padding-bottom:18px;display:flex}.project-filters{flex-wrap:wrap;gap:6px;display:flex}.filter-button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:3px;padding:9px 13px;font-size:11px;transition:all .2s}.filter-button:hover{color:var(--white);background:var(--surface)}.filter-button.active{color:var(--white);background:#1b1b20;border-color:#4b4a52}.filter-button.active:before{content:"";background:var(--red);vertical-align:middle;width:4px;height:4px;margin-right:8px;display:inline-block}.work-count{color:#91909a;font-size:9px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;display:grid}.project-card{min-width:0}.project-image{aspect-ratio:900/620;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}.project-image img,.project-image video{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.1,1)}.project-image-link:hover img,.project-image-link:hover video{transform:scale(1.04)}.project-number{color:#bbb9c1;letter-spacing:.02em;font-size:10px;position:absolute;top:16px;left:17px}.image-link-icon{background:#111114d9;border:1px solid #5c5658;place-items:center;width:35px;height:35px;transition:background .2s,color .2s;display:grid;position:absolute;bottom:14px;right:14px}.project-image-link:hover .image-link-icon{background:var(--red);border-color:var(--red);color:var(--bg)}.project-meta{font-family:var(--heading);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;margin-top:24px;font-size:9px;display:flex}.project-meta span:first-child{color:var(--red)}.project-card h3{letter-spacing:-.04em;min-height:56px;margin-top:13px;font-size:23px;line-height:1.2}.project-card h3 a:hover{color:var(--red)}.project-description{color:var(--muted);min-height:65px;margin-top:10px;font-size:12px;line-height:1.8}.tags{flex-wrap:wrap;gap:6px;display:flex}.tags li{color:#bbb9c2;border:1px solid #313039;border-radius:2px;padding:5px 8px;font-size:9px;line-height:1.2}.project-card .tags{align-content:start;min-height:42px;margin-top:20px}.project-read{margin-top:23px;font-size:11px}.project-read svg{color:var(--red)}.work-note{color:#93919d;max-width:600px;margin-top:35px;font-size:10px;line-height:1.6}.about-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#101013;padding:91px 0 86px}.about-grid{grid-template-columns:1fr 1.15fr;gap:100px;display:grid}.about-heading h2{letter-spacing:-.055em;margin-top:25px;font-size:47px;line-height:1.15}.about-heading h2 span{color:var(--red)}.about-location{color:var(--muted);align-items:center;gap:9px;margin-top:26px;font-size:12px;display:flex}.location-dot{background:var(--red);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.about-heading .text-link{margin-top:30px}.about-lead{font-family:var(--heading);letter-spacing:-.02em;color:var(--white)!important;font-size:21px!important;line-height:1.6!important}.about-content>p{color:var(--muted);font-size:13px;line-height:1.9}.about-content>p+p{margin-top:18px}.experience-list{margin-top:34px}.experience-row{border-top:1px solid #303037;grid-template-columns:124px 1fr;gap:18px;padding:24px 0;display:grid}.experience-date{font-family:var(--heading);color:#9c9ba6;padding-top:3px;font-size:10px}.experience-row h3{letter-spacing:-.02em;font-size:15px;font-weight:500}.experience-row p{color:var(--muted);margin-top:7px;font-size:11px;line-height:1.8}.experience-row p span{color:#90909b}.toolbox{border-top:1px solid #303037;padding-top:25px}.toolbox .eyebrow{font-size:9px}.toolbox p{color:#d4d2d9;margin-top:11px;font-size:11px;line-height:2}.toolbox p span{color:var(--red);padding:0 6px}.contact-section{padding-top:86px;padding-bottom:77px}.contact-top{justify-content:space-between;align-items:center;display:flex}.contact-availability{color:var(--muted);align-items:center;gap:8px;font-size:10px;display:flex}.contact-main{justify-content:space-between;align-items:center;margin-top:35px;display:flex}.contact-main h2{letter-spacing:-.06em;font-size:clamp(42px,5.8vw,79px);line-height:1.15}.contact-main h2 span{color:var(--red)}.contact-arrow{border:1px solid #414047;border-radius:50%;place-items:center;width:102px;height:102px;transition:background .2s,color .2s,border-color .2s;display:grid}.contact-arrow:hover{background:var(--red);color:var(--bg);border-color:var(--red)}.contact-bottom{justify-content:space-between;align-items:end;gap:25px;margin-top:33px;display:flex}.contact-bottom p{color:var(--muted);font-size:12px;line-height:1.8}.email-link{border-bottom:1px solid var(--red);overflow-wrap:anywhere;align-items:center;gap:15px;padding-bottom:7px;font-size:13px;display:flex}.email-link:hover{color:var(--red)}.site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:20px;padding-top:27px;padding-bottom:28px;font-size:10px;display:flex}.footer-name{font-family:var(--heading);color:var(--white);font-size:12px;font-weight:500}.footer-name span{color:var(--red)}.site-footer>a:last-child{align-items:center;gap:6px;display:flex}.site-footer a:hover{color:var(--red)}.reveal.will-reveal{opacity:0;transition:opacity .65s,transform .65s;transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:none}.project-page{padding-top:44px}.back-link{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:inline-flex}.back-link:hover{color:var(--red)}.back-link span{font-size:20px}.project-page-heading{max-width:920px;padding:53px 0 37px}.project-page-heading h1{letter-spacing:-.06em;margin-top:19px;font-size:clamp(43px,5.8vw,76px);line-height:1.08}.project-page-heading h1 span{color:var(--red)}.project-page-description{color:var(--muted);max-width:700px;margin-top:22px;font-size:17px;line-height:1.7}.project-status{color:#c3c1c9;align-items:center;gap:9px;margin-top:23px;font-size:10px;display:flex}.project-banner{border:1px solid var(--line);max-width:100%;overflow:hidden}.project-banner img{object-fit:contain;background:#101014;width:100%;height:390px}.project-banner figcaption{color:var(--muted);border-top:1px solid var(--line);background:var(--surface);padding:13px 20px;font-size:10px}.project-body{grid-template-columns:240px minmax(0,1fr);gap:90px;padding:65px 0 80px;display:grid}.project-facts{flex-direction:column;align-self:start;gap:25px;display:flex;position:sticky;top:30px}.project-facts h2{color:#a5a3ae;text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;font-size:9px;font-weight:500}.project-facts p{font-size:12px;line-height:1.8}.project-facts .tags{margin-top:8px}.prose{color:#bbb9c3;max-width:730px;font-size:14px;line-height:1.9}.prose h2{color:var(--white);letter-spacing:-.035em;margin:42px 0 16px;font-size:29px;line-height:1.3}.prose h2:first-child{margin-top:0}.prose p+p{margin-top:15px}.prose ul{padding-left:20px;list-style:outside}.prose ul li{margin:10px 0;padding-left:5px}.prose ul li::marker{color:var(--red)}.prose a{color:var(--white);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:4px}.next-project{border-top:1px solid var(--line);padding:29px 0 70px}.next-project a{font-family:var(--heading);letter-spacing:-.035em;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;font-size:28px;font-weight:500;display:flex}.next-project a:hover{color:var(--red)}.not-found{min-height:70vh;padding-block:130px}.not-found h1{letter-spacing:-.06em;margin-top:25px;font-size:clamp(50px,8vw,90px)}.not-found h1 span{color:var(--red)}.not-found p:not(.eyebrow){color:var(--muted);max-width:500px;margin-top:20px;font-size:15px}.not-found .button{margin-top:30px}@media (width>=1600px){.container{max-width:1360px}.hero-main{padding-top:70px;padding-bottom:85px}.hero h1{font-size:148px}.hero-intro{max-width:465px}.hero-intro>p:not(.intro-lead){font-size:15px}.project-card h3{font-size:26px}.project-description{font-size:13px}}@media (width<=1100px){.container{width:calc(100% - 72px)}.hero-main{gap:42px}.hero h1{font-size:100px}.hero-intro>p:not(.intro-lead){font-size:13px}.intro-lead{font-size:26px}.hero-actions{gap:20px}.button{gap:15px;padding:14px 17px}.hero-actions .text-link{font-size:11px}.project-grid{gap:23px}.project-card h3{min-height:54px;font-size:21px}.project-description{min-height:86px}.about-grid{gap:60px}.about-heading h2{font-size:40px}.experience-row{grid-template-columns:105px 1fr;gap:12px}.discipline-list{gap:18px}.discipline-list span:not(:first-child):before{margin-right:18px}.project-body{grid-template-columns:210px minmax(0,1fr);gap:50px}}@media (width<=820px){.container{width:calc(100% - 48px)}.site-header{height:85px}.site-header nav{gap:22px}.hero{padding-top:30px}.hero-main{grid-template-columns:1fr 1fr;gap:32px;padding:45px 0}.hero h1{font-size:clamp(65px,11vw,91px)}.hero-rule{margin-top:25px}.intro-lead{margin-bottom:16px;font-size:23px}.hero-intro>p:not(.intro-lead){font-size:12px}.hero-actions{flex-wrap:wrap;gap:20px;margin-top:24px}.hero-bottom{padding-block:20px}.scroll-cue{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 25px}.project-card h3{min-height:0}.project-description{min-height:64px}.work-section{padding-block:65px}.section-heading h2{font-size:40px}.about-grid{grid-template-columns:1fr;gap:40px}.about-heading h2 br{display:none}.about-heading h2 span{display:block}.about-heading .text-link{margin-top:20px}.about-content{max-width:620px}.about-section{padding-block:65px}.about-location{margin-top:20px}.contact-section{padding-block:65px}.contact-arrow{width:80px;height:80px}.contact-arrow svg{width:40px}.contact-bottom{flex-direction:column;align-items:start;gap:22px}.contact-main h2{font-size:54px}.project-body{grid-template-columns:170px minmax(0,1fr);gap:35px}.project-banner img{height:320px}.project-page-description{font-size:15px}.prose{font-size:13px}.prose h2,.next-project a{font-size:25px}}@media (width<=540px){.container{width:calc(100% - 36px)}.site-header{height:77px}.brand{gap:12px}.brand-mark{font-size:43px}.brand-name{font-size:10px}.site-header nav{gap:17px;font-size:11px}.header-github{display:none}.hero-top .eyebrow{letter-spacing:.08em;font-size:9px}.hero-index{letter-spacing:.08em;font-size:8px}.hero-main{padding:39px 0 35px;display:block}.hero h1{letter-spacing:-.07em;font-size:clamp(68px,22.5vw,90px)}.hero-rule{width:38px;margin-top:24px}.hero-intro{max-width:100%;margin:31px 0 0}.intro-lead{font-size:24px;line-height:1.35}.intro-lead span{display:inline}.hero-intro>p:not(.intro-lead){font-size:13px;line-height:1.85}.hero-previous{margin-top:14px}.hero-actions{gap:25px;margin-top:25px}.hero-actions .text-link{font-size:12px}.button{padding:15px 18px;font-size:12px}.hero-bottom{padding-block:18px}.discipline-list{letter-spacing:.02em;justify-content:space-between;gap:10px;width:100%;font-size:8px}.discipline-list span:not(:first-child):before{margin-right:10px}.section-heading{margin-bottom:27px;display:block}.section-heading h2{margin-top:13px;font-size:39px}.eyebrow{font-size:10px}.section-intro{margin-top:16px;font-size:12px}.section-intro span{display:inline}.work-toolbar{align-items:end;gap:10px;margin-bottom:25px;padding-bottom:16px}.project-filters{gap:2px}.filter-button{padding:8px;font-size:10px}.filter-button.active:before{margin-right:5px}.work-count{display:none}.project-grid{grid-template-columns:1fr;gap:42px}.project-meta{margin-top:19px;font-size:9px}.project-card h3{min-height:0;margin-top:11px;font-size:26px}.project-description{min-height:0;margin-top:12px;font-size:13px}.project-card .tags{min-height:0;margin-top:18px}.tags li{font-size:10px}.project-read{margin-top:22px;font-size:12px}.work-note{margin-top:30px;font-size:10px}.about-heading h2{margin-top:20px;font-size:39px}.about-lead{font-size:20px!important}.about-content>p{font-size:13px}.experience-row{grid-template-columns:95px 1fr;gap:13px;padding-block:22px}.experience-date{font-size:9px}.experience-row h3{font-size:15px}.experience-row p,.toolbox p{font-size:11px}.toolbox p span{padding-inline:3px}.contact-top{align-items:start;gap:20px}.contact-availability{gap:6px;max-width:150px;font-size:9px;line-height:1.5}.contact-main{align-items:end;gap:12px;margin-top:29px}.contact-main h2{font-size:43px}.contact-arrow{flex-shrink:0;width:47px;height:47px;margin-bottom:5px}.contact-arrow svg{width:26px;height:26px}.contact-bottom{margin-top:24px}.contact-bottom p{font-size:12px}.email-link{gap:8px;font-size:11px}.site-footer{flex-wrap:wrap;gap:17px;padding-block:24px;font-size:9px}.footer-name{font-size:11px}.site-footer p{font-size:9px}.site-footer>a:last-child{width:100%;font-size:9px}.project-page{padding-top:25px}.project-page-heading{padding-top:35px}.project-page-heading h1{font-size:44px}.project-page-description{font-size:14px}.project-banner img{aspect-ratio:900/620;height:auto}.project-banner figcaption{padding:12px;font-size:9px;line-height:1.6}.project-body{grid-template-columns:1fr;gap:35px;padding-top:33px;padding-bottom:45px}.project-facts{grid-template-columns:1fr 1fr;gap:23px;display:grid;position:static}.project-facts>div:last-of-type{grid-column:1/-1}.project-facts p{font-size:11px}.project-facts .tags li{font-size:9px}.prose{font-size:14px}.prose h2{margin-top:31px;font-size:27px}.next-project a{font-size:24px}.next-project{padding-bottom:45px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reveal.will-reveal{opacity:1;transform:none}}
