@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.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{--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1.0625rem;--text-lg:clamp(1.125rem, 1rem + .4vw, 1.3125rem);--text-xl:clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem);--text-2xl:clamp(2.25rem, 1.2rem + 4vw, 4.5rem);--text-display:clamp(3rem, .6rem + 12vw, 10.5rem);--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-6:1.5rem;--s-8:2rem;--s-12:3rem;--s-16:4rem;--s-24:6rem;--section-y:clamp(6rem, 3rem + 10vw, 12rem);--max:76rem;--gutter:clamp(1.25rem, 4vw, 4rem);--rail:clamp(1.75rem, 6vw, 7.5rem);--header-h:4.5rem;--ease-out:cubic-bezier(.2, .7, .1, 1);--dur-fast:.18s;--dur:.6s}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0a0b;--surface:#121214;--fg:#ededea;--muted:#8f8f95;--line:#222226;--line-strong:#3a3a40;--accent:#ef4b4b}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fafaf8;--surface:#f1f1ee;--fg:#111112;--muted:#5e5e63;--line:#e3e3df;--line-strong:#c6c6c1;--accent:#d42a2a}*,:before,:after{box-sizing:border-box}*{margin:0}html:has(.menu[open]){overflow:hidden}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.65}h1,h2,h3{letter-spacing:-.035em;text-wrap:balance;font-weight:500;line-height:1.05}p{text-wrap:pretty}ul,ol{padding:0;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(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.skip-link{left:var(--gutter);z-index:100;padding:var(--s-2) var(--s-4);background:var(--fg);color:var(--bg);font-size:var(--text-sm);position:absolute;top:-100px}.skip-link:focus{top:var(--s-4)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto;position:relative}.rail{padding-left:var(--rail)}.label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:400;line-height:1.4}.muted{color:var(--muted)}.link{transition:color var(--dur-fast), background-size .4s var(--ease-out);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat}.link:hover{color:var(--accent);background-size:100% 1px}.arrow{transition:transform .3s var(--ease-out);display:inline-block}a:hover .arrow--up{transform:translate(2px,-2px)}a:hover .arrow--down{transform:translateY(3px)}.btn{align-items:center;gap:var(--s-3);height:3rem;padding-inline:var(--s-6);font-size:var(--text-sm);letter-spacing:-.005em;transition:background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);border-radius:999px;font-weight:500;display:inline-flex}.btn--primary{background:var(--fg);color:var(--bg)}.btn--primary:hover{background:color-mix(in oklab, var(--fg) 86%, var(--bg))}.btn--ghost{border:1px solid var(--line-strong)}.btn--ghost:hover{border-color:var(--fg)}.tags{gap:var(--s-2) var(--s-4);flex-wrap:wrap;display:flex}.icon{vertical-align:-.125em;width:1em;height:1em;-webkit-mask:var(--icon) center / contain no-repeat;mask:var(--icon) center / contain no-repeat;-webkit-mask:var(--icon) center / contain no-repeat;background-color:currentColor;flex:none;margin-right:.45em;display:inline-block}.btn .icon{margin-right:0}.header{z-index:50;height:var(--header-h);background:color-mix(in oklab, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(14px);position:fixed;inset:0 0 auto}.header__inner{justify-content:space-between;align-items:center;height:100%;display:flex}.header__name{letter-spacing:-.02em;font-weight:500}.header__right{align-items:center;gap:var(--s-8);display:flex}.nav{gap:var(--s-6);font-size:var(--text-sm);display:flex}.nav a{color:var(--muted);transition:color var(--dur-fast);position:relative}.nav a:hover,.nav a[aria-current]{color:var(--fg)}.nav a:before{content:"";background:var(--accent);opacity:0;width:4px;height:4px;transition:opacity var(--dur-fast), transform .3s var(--ease-out);border-radius:50%;margin-left:-2px;position:absolute;bottom:-10px;left:50%;transform:scale(0)}.nav a[aria-current]:before{opacity:1;transform:scale(1)}.icon-btn{width:2.5rem;height:2.5rem;color:var(--muted);transition:color var(--dur-fast);border-radius:50%;place-items:center;margin-right:-.5rem;display:grid}.icon-btn:hover{color:var(--fg)}.lang-toggle{margin-right:0}.theme-icon{transition:transform .5s var(--ease-out)}:root[data-theme=light] .theme-icon{transform:rotate(180deg)}.menu-btn{font-size:var(--text-sm);padding:var(--s-2) 0;font-weight:500;display:none}.menu{background:var(--bg);width:100%;max-width:none;height:100%;max-height:none;color:var(--fg);border:0;padding:0}.menu::backdrop{background:0 0}.menu__top{height:var(--header-h);justify-content:space-between;align-items:center;display:flex}.menu__links{gap:var(--s-2);margin-top:var(--s-12);display:grid}.menu__links a{align-items:baseline;gap:var(--s-4);font-size:var(--text-2xl);letter-spacing:-.035em;font-weight:500;line-height:1.2;display:flex}.menu__links a[aria-current] .label{color:var(--accent)}.menu__foot{gap:var(--s-6);margin-top:var(--s-16);font-size:var(--text-sm);display:flex}@media (prefers-reduced-motion:no-preference){.menu[open]{animation:fade-in .3s var(--ease-out)}}@media (width<=52rem){.nav,.header__right .theme-toggle{display:none}.menu-btn{display:block}}.structure{position:relative}.spine{pointer-events:none;position:absolute;inset:0}.spine .wrap{height:100%}.spine__track,.spine__fill{left:var(--gutter);top:var(--spine-top,0);width:1px;height:var(--spine-h,0);position:absolute}.spine__track{background:var(--line)}.spine__fill{background:var(--line-strong);transform-origin:top;transform:scaleY(var(--spine-progress,0))}.node{border:1px solid var(--line-strong);background:var(--bg);width:9px;height:9px;transition:background-color .3s, border-color .3s, transform .4s var(--ease-out);border-radius:50%;position:absolute;left:-4px}.node--small{width:6px;height:6px;left:-2.5px}.node.is-reached{background:var(--muted);border-color:var(--muted)}.node.is-current{background:var(--accent);border-color:var(--accent);transform:scale(1.25)}.section{padding-block:var(--section-y) 0}.section__head{margin-bottom:var(--s-12);position:relative}.section__head .node{top:.2rem}.section__index{gap:var(--s-3);margin-bottom:var(--s-6);display:flex}.section__title{max-width:16ch;font-size:var(--text-2xl);letter-spacing:-.04em;text-wrap:balance;margin-bottom:clamp(1rem,4vw,3rem);font-weight:500;line-height:1.02}.footer{padding-block:var(--s-12);margin-top:var(--section-y);border-top:1px solid var(--line);font-size:var(--text-sm);color:var(--muted)}.footer__inner{gap:var(--s-4) var(--s-8);flex-wrap:wrap;justify-content:space-between;display:flex}.footer__links{gap:var(--s-6);display:flex}@keyframes fade-in{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@media (prefers-reduced-motion:no-preference){.js [data-reveal]{transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transition-delay:var(--delay,0s)}.js [data-reveal]:not(.is-in){opacity:0;transform:translateY(20px)}::view-transition-old(root){animation-duration:.45s;animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:.45s;animation-timing-function:var(--ease-out)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.menu .menu-btn{display:block}.hero{min-height:100svh;padding-top:var(--header-h);flex-direction:column;display:flex}.hero__main{padding-block:var(--s-16);flex-direction:column;flex:1;justify-content:center;display:flex}.hero__role{margin-bottom:var(--s-6)}.hero__name{font-size:var(--text-display);letter-spacing:-.055em;margin-left:-.04em;font-weight:600;line-height:.9}.hero__body{max-width:34rem;margin-top:clamp(3rem,1rem + 6vw,6rem)}.hero__statement{font-size:var(--text-xl);letter-spacing:-.03em;font-weight:500;line-height:1.15}.hero__positioning{margin-top:var(--s-4);color:var(--muted);font-size:var(--text-lg)}.hero__ctas{align-items:center;gap:var(--s-4) var(--s-6);margin-top:var(--s-8);flex-wrap:wrap;display:flex}.hero__meta{justify-content:space-between;gap:var(--s-4);padding-block:var(--s-6);border-top:1px solid var(--line);display:flex}@media (width>=64rem){.hero__body{margin-left:50%}}@media (prefers-reduced-motion:no-preference){.hero [data-rise]{animation:rise 1.1s var(--ease-out) both;animation-delay:var(--delay,0s)}}.chapter{--chapter-y:clamp(2rem, 1rem + 3vw, 3.5rem);gap:var(--s-2) var(--s-8);padding-block:var(--chapter-y);grid-template-columns:minmax(9rem,14rem) minmax(0,36rem);display:grid;position:relative}.chapter:first-child{--chapter-y:0px;padding-top:0}.chapter .node{top:calc(var(--chapter-y) + .34rem)}.chapter__title{font-size:var(--text-xl);letter-spacing:-.03em;line-height:1.15}.chapter__body{margin-top:var(--s-3);color:var(--muted)}.metric{gap:var(--s-3);margin-top:var(--s-8);flex-direction:column;display:flex}.metric__value{letter-spacing:-.06em;font-variant-numeric:tabular-nums;font-size:clamp(4rem,1.5rem + 9vw,9rem);font-weight:500;line-height:.85}.metric__unit{color:var(--fg)}.chapter__image{width:auto;max-width:100%;height:clamp(7rem,5rem + 6vw,11rem);margin-top:var(--s-8);object-fit:contain;border-radius:.5rem;display:block}:root[data-theme=light] .only-dark,:root:not([data-theme=light]) .only-light{display:none}@media (width<=40rem){.chapter{grid-template-columns:1fr}}.role{justify-content:space-between;align-items:baseline;gap:var(--s-2) var(--s-8);padding-bottom:var(--s-8);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.role__company{font-size:var(--text-2xl)}.role__title{margin-top:var(--s-3);font-size:var(--text-lg);color:var(--muted)}.role__summary{max-width:40ch;margin-block:var(--s-12) var(--s-16);font-size:var(--text-xl);letter-spacing:-.02em;line-height:1.3}.highlights{gap:var(--s-12) var(--s-12);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.highlight__title{margin-block:var(--s-4) var(--s-3);font-size:var(--text-lg);letter-spacing:-.02em}.highlight p{color:var(--muted);font-size:.975rem}.role__stack{gap:var(--s-3) var(--s-8);margin-top:var(--s-16);padding-top:var(--s-6);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.role__stack .tags{font-size:var(--text-sm)}.projects{border-top:1px solid var(--line)}.project{gap:var(--s-4) var(--s-8);border-bottom:1px solid var(--line);grid-template-columns:3rem minmax(0,1fr) minmax(0,1fr);padding-block:clamp(2.5rem,1.5rem + 4vw,5rem);display:grid}.project__index{padding-top:.6em}.project__name{letter-spacing:-.04em;font-size:clamp(1.75rem,1rem + 2.6vw,3.25rem)}.project__name a{transition:color var(--dur-fast);gap:.2em;display:inline-flex}.project__name a:hover{color:var(--accent)}.project__description{font-size:var(--text-lg);line-height:1.5}.project__meta{gap:var(--s-2) var(--s-6);margin-top:var(--s-8);font-size:var(--text-sm);grid-template-columns:max-content 1fr;display:grid}.project__meta dt{padding-top:.15em}.work__more{margin-top:var(--s-8);font-size:var(--text-sm);display:inline-block}@media (width<=52rem){.project{grid-template-columns:1fr}.project__index{padding-top:0}}.stack{gap:var(--s-12) var(--s-8);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stack__group h3{margin-bottom:var(--s-4)}.stack__group li{line-height:2}.learning{align-items:baseline;gap:var(--s-3) var(--s-8);margin-top:var(--s-16);padding-top:var(--s-6);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.learning ul{gap:var(--s-2) var(--s-6);flex-wrap:wrap;display:flex}@media (width<=40rem){.stack{grid-template-columns:1fr 1fr}}.about p{max-width:34ch;font-size:var(--text-xl);letter-spacing:-.02em;line-height:1.3}.about p+p{margin-top:var(--s-8);color:var(--muted)}.beyond p:first-child{max-width:40ch;font-size:var(--text-lg)}.beyond p+p{margin-top:var(--s-4);color:var(--muted);font-size:var(--text-sm)}.contact .section__title{letter-spacing:-.05em;max-width:12ch;font-size:clamp(2.75rem,.8rem + 7vw,7rem);line-height:.95}.contact__lead{max-width:40ch;margin-bottom:var(--s-12);font-size:var(--text-lg);color:var(--muted)}.contact__links{border-top:1px solid var(--line);max-width:44rem}.contact__links a{justify-content:space-between;align-items:baseline;gap:var(--s-4);padding-block:var(--s-6);border-bottom:1px solid var(--line);transition:color var(--dur-fast);display:flex}.contact__links a:hover{color:var(--accent)}.contact__value{font-size:var(--text-lg);overflow-wrap:anywhere}
