@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(../media/dm-sans-latin-ext-wght-normal.0x9ccydb91kkt.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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(../media/dm-sans-latin-wght-normal.0fpdy-lufm69d.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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/public-sans-vietnamese-wght-normal.351w3rsy0o7m9.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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/public-sans-latin-ext-wght-normal.3ft8rvcvbxo5j.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:Public Sans Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/public-sans-latin-wght-normal.297-5ju1rzndw.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(../media/caveat-cyrillic-ext-wght-normal.1a5omd23h2g7u.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(../media/caveat-cyrillic-wght-normal.3pz26h3t80slv.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(../media/caveat-latin-ext-wght-normal.1v8q5_f-rvjb_.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:Caveat Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(../media/caveat-latin-wght-normal.0v9iznkhjktil.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#fff;--ink:#2b302b;--muted:#73776e;--line:#e8eae5;--green:#435b42;--underline:#b9c0b4;--focus:#627e57;--selection:#e0ead9;--selection-ink:#263426;--intro-copy:#707070;--emphasis:#000;--handwritten:#242424;--link-border:#d6dad2;--secondary:#697162;--arrow:#838b7d;--copy:#626b5c;--achievement-copy:#697064;--bullet:#899b80;--achievement-title:#424b3e;--contact-copy:#747c6c;--footer:#9b9f96;--nav-muted:#777b73;--nav-active:#272d26;--control-ink:#535c4e;--control-border:#d5d7ce;--control-surface:#f3f4ef;--key-ink:#343e31;--key-border:#e6e8e0;--portrait-underline:#70707059}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#080808;--ink:#e7e7e4;--muted:#a0a398;--line:#2a2d28;--green:#b6cfa8;--underline:#67715f;--focus:#b6cfa8;--selection:#34412d;--selection-ink:#f0f5ea;--intro-copy:#b4b4b0;--emphasis:#f5f5f2;--handwritten:#e7e7e4;--link-border:#48503f;--secondary:#b0b7a8;--arrow:#aeb6a6;--copy:#b7bfb0;--achievement-copy:#b0b7a8;--bullet:#9bac90;--achievement-title:#d5dece;--contact-copy:#b0b7a8;--footer:#969d8e;--nav-muted:#a3a79d;--nav-active:#f0f1ed;--control-ink:#c5cebc;--control-border:#454c3e;--control-surface:#1b2017;--key-ink:#dbe5d2;--key-border:#39422f;--portrait-underline:#b4b4b080}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:48px}body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:15px/1.75 DM Sans Variable,Arial,sans-serif}a{color:inherit;text-underline-offset:4px;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);transition:color .16s,text-decoration-color .16s}a:hover{color:var(--green);-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--focus);outline-offset:5px}::selection{background:var(--selection);color:var(--selection-ink)}.portfolio-shell{grid-template-columns:132px minmax(0,1fr);gap:44px;width:min(1200px,100%);margin:0 auto;padding:72px 24px 0;display:grid}.portfolio-body{min-width:0}@media (max-width:760px){.portfolio-shell{padding:48px 0 0;display:block}}.portfolio-content{width:min(612px,100% - 48px);margin:77px auto 0}.intro{padding-bottom:58px}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-1.15px;font-size:31px;font-weight:500;line-height:1.25}.intro-kicker{color:var(--muted);letter-spacing:.05px;margin:0 0 13px;font-size:11px}.intro h1{font-family:Public Sans Variable,Arial,sans-serif}.intro-copy{max-width:490px;color:var(--intro-copy);margin-top:23px;font:500 15px/1.65 Public Sans Variable,Arial,sans-serif}.intro-copy strong{color:var(--emphasis);font-weight:600}.intro-copy .intro-handwritten{color:var(--handwritten);font:700 22px/1 Caveat Variable,cursive}.intro-copy p+p{margin-top:15px}.intro-copy a{color:var(--ink)}.inline-links{flex-wrap:wrap;gap:19px;margin-top:23px;font-size:12px;display:flex}.inline-links a{border-bottom:1px solid var(--link-border);text-decoration:none}.text-section{border-top:1px solid var(--line);padding:37px 0 42px;scroll-margin-top:30px}.section-heading{align-items:center;gap:11px;margin-bottom:28px;font-size:13px;font-weight:500;display:flex}.section-heading span{font-variant-numeric:tabular-nums;color:var(--secondary);font-size:10px;font-weight:400}.project-list,.experience-list{gap:30px;display:grid}.project-entry,.experience-entry{margin:0}.venture-list{gap:36px;display:grid}.venture-entry+.venture-entry{border-top:1px solid var(--line);padding-top:32px}.venture-products{border-left:1px solid var(--line);margin-top:25px;padding-left:20px}.products-label{color:var(--muted);margin-bottom:20px;font-size:11px}.venture-category{color:var(--muted);margin-top:3px;font-size:12px}.entry-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 16px;display:flex}.entry-heading h3,.entry-heading h4,h3.entry-heading{letter-spacing:-.2px;font-size:15px;font-weight:500}.venture-heading h3{letter-spacing:-.4px;font-size:19px}.entry-heading a{text-decoration:none}.entry-heading a span{color:var(--arrow);margin-left:2px;font-size:12px}.entry-meta{color:var(--secondary);font-size:12px}.entry-copy{color:var(--copy);margin-top:7px;font-size:14px;line-height:1.85}.entry-copy+.entry-meta{margin-top:8px}.experience-entry .entry-meta{margin-top:2px}.achievement-list{color:var(--achievement-copy);gap:17px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.achievement-list li{padding-left:15px;position:relative}.achievement-list li:before{content:"·";color:var(--bullet);position:absolute;left:0}.achievement-list strong{color:var(--achievement-title);font-weight:500}.achievement-list h3{color:var(--achievement-title);font-size:14px;font-weight:500}.contact-section{border-top:1px solid var(--line);padding:35px 0 28px}.contact-section h2{letter-spacing:-.6px;margin-bottom:9px;font-size:23px;font-weight:500}.contact-section p{color:var(--contact-copy);font-size:13px}.site-footer{color:var(--footer);justify-content:space-between;gap:20px;padding:33px 0 32px;font-size:10px;display:flex}.site-footer a{text-decoration:none}.skip-content{background:var(--page);border:1px solid var(--focus);z-index:100;border-radius:4px;padding:9px 14px;position:fixed;top:10px;left:12px;transform:translateY(-160%)}.skip-content:focus{transform:translateY(0)}.message-page{max-width:600px;margin:auto;padding:20vh 24px}.message-page p{color:var(--muted);margin:20px 0}.message-page button{margin-right:20px}@media (max-width:640px){.portfolio-content{margin-top:62px}h1{font-size:28px}.intro{padding-bottom:44px}.text-section{padding:31px 0 35px}.entry-heading{display:block}.entry-meta{margin-top:2px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:0s!important}}html[data-theme-transition=active]::view-transition{pointer-events:none}html[data-theme-transition=active]::view-transition-group(root){animation:none}html[data-theme-transition=active]::view-transition-image-pair(root){isolation:isolate}html[data-theme-transition=active]::view-transition-old(root){mix-blend-mode:normal;animation:none}html[data-theme-transition=active]::view-transition-new(root){mix-blend-mode:normal;animation:none}html[data-theme-transition=active]::view-transition-old(root){z-index:1}html[data-theme-transition=active]::view-transition-new(root){z-index:2;animation:.7s cubic-bezier(.76,0,.24,1) both theme-reveal}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--theme-x) var(--theme-y))}to{clip-path:circle(var(--theme-radius) at var(--theme-x) var(--theme-y))}}@media (prefers-reduced-motion:reduce){html[data-theme-transition=active]::view-transition-new(root){animation:none}}
