@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,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfbfa;--ink:#16181d;--muted:#565c68;--line:#e2e3e7;--accent:#0b6e4f;--mark-past:#868c97;--chip:#f0f1f2}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1113;--ink:#ecedee;--muted:#a0a5ae;--line:#272a30;--accent:#4cc38a;--mark-past:#737a86;--chip:#1a1d21}:root{--sans:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--gutter:clamp(20px, 4vw, 32px);--header-h:64px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px);-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,p,ul,dl,dd{margin:0;padding:0}ul{list-style:none}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.container{max-width:1120px;padding-inline:var(--gutter);margin:0 auto}.section{border-top:1px solid var(--line);grid-template-columns:180px minmax(0,1fr);gap:48px;padding-block:72px;display:grid}.section-label{top:calc(var(--header-h) + 24px);align-self:start;font-size:15px;font-weight:500;line-height:1.4;position:sticky}.meta{font-family:var(--mono);color:var(--muted);font-size:13px;line-height:1.5}.btn{border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:15px;font-weight:500;text-decoration:none;transition:border-color .15s,background-color .15s;display:inline-flex}.btn:hover{border-color:var(--ink)}.btn-primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--accent);border-color:var(--accent)}[data-theme=dark] .btn-primary:hover{color:#0f1113}.print-only{display:none}@media (width<=800px){.section{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:48px}.section-label{position:static}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media print{:root,[data-theme=dark]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--ink:#000;--muted:#444;--line:#ccc;--accent:#000}@page{margin:14mm 16mm}body{font-size:10pt;line-height:1.4}.no-print{display:none!important}.print-only{display:revert}.container{max-width:none;padding:0}.section{padding-block:8pt;display:block}.section-label{margin-bottom:6pt;font-size:11pt;font-weight:600;position:static}.meta{font-size:8.5pt}a{text-decoration:none}}.header[data-v-6c2bf618]{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.bar[data-v-6c2bf618]{min-height:var(--header-h);align-items:center;gap:32px;display:flex}.wordmark[data-v-6c2bf618]{letter-spacing:-.01em;white-space:nowrap;font-weight:600;text-decoration:none}.nav[data-v-6c2bf618]{gap:24px;margin-left:auto;font-size:14px;display:flex}.nav a[data-v-6c2bf618]{color:var(--muted);white-space:nowrap;text-decoration:none;transition:color .15s}.nav a[data-v-6c2bf618]:hover,.nav a.active[data-v-6c2bf618]{color:var(--ink)}.controls[data-v-6c2bf618]{align-items:center;gap:8px;display:flex}.locales[data-v-6c2bf618]{font-family:var(--mono);font-size:12px;display:flex}.locales button[data-v-6c2bf618]{min-width:30px;min-height:36px;color:var(--muted);border-radius:4px;padding:0 4px}.locales button[data-v-6c2bf618]:hover{color:var(--ink)}.locales button[aria-pressed=true][data-v-6c2bf618]{color:var(--ink);background:var(--chip);font-weight:600}.theme[data-v-6c2bf618]{width:36px;height:36px;color:var(--muted);border-radius:4px;place-items:center;display:grid}.theme[data-v-6c2bf618]:hover{color:var(--ink)}@media (width<=900px){.bar[data-v-6c2bf618]{flex-wrap:wrap;justify-content:space-between;gap:0 16px;padding-block:8px 0}.nav[data-v-6c2bf618]{scrollbar-width:none;order:3;width:100%;margin:0;padding-block:8px 12px;overflow-x:auto}html{scroll-padding-top:120px}}.hero[data-v-5fb73e65]{grid-template-columns:minmax(0,1fr) 260px;gap:56px 64px;padding-block:88px 64px;animation:.5s ease-out both rise-5fb73e65;display:grid}@keyframes rise-5fb73e65{0%{opacity:0;transform:translateY(8px)}}.identity[data-v-5fb73e65]{flex-wrap:wrap;gap:0 12px;margin-bottom:24px;font-size:15px;font-weight:600;display:flex}.role[data-v-5fb73e65]{color:var(--muted);font-weight:400}.statement[data-v-5fb73e65]{letter-spacing:-.03em;text-wrap:balance;max-width:19em;font-size:clamp(34px,5.2vw,56px);font-weight:500;line-height:1.08}.based[data-v-5fb73e65]{max-width:34em;color:var(--muted);margin-top:24px;font-size:18px}.actions[data-v-5fb73e65]{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.current[data-v-5fb73e65]{border-left:2px solid var(--accent);align-self:end;padding-left:24px}.current h2[data-v-5fb73e65]{margin-bottom:12px;font-weight:400}.current li+li[data-v-5fb73e65]{margin-top:12px}.company[data-v-5fb73e65],.job-role[data-v-5fb73e65],.commitment[data-v-5fb73e65]{line-height:1.35;display:block}.company[data-v-5fb73e65]{font-weight:500}.job-role[data-v-5fb73e65]{color:var(--muted);font-size:14px}.commitment[data-v-5fb73e65]{font-size:12px}.stats[data-v-5fb73e65]{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-top:24px;display:grid}.stats>div[data-v-5fb73e65]{flex-direction:column;display:flex}.value[data-v-5fb73e65]{letter-spacing:-.02em;font-variant-numeric:tabular-nums;order:-1;font-size:32px;font-weight:500;line-height:1.2}@media (width<=800px){.hero[data-v-5fb73e65]{grid-template-columns:minmax(0,1fr);gap:40px;padding-block:48px 40px}.stats[data-v-5fb73e65]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.hero[data-v-5fb73e65]{padding-block:0 10pt;animation:none;display:block}.identity[data-v-5fb73e65]{margin-bottom:4pt;font-size:20pt;line-height:1.2;display:block}.role[data-v-5fb73e65]{font-size:12pt;display:block}.based[data-v-5fb73e65]{max-width:none;margin-top:2pt;font-size:10pt}.print-contact[data-v-5fb73e65]{margin-top:6pt}}.body[data-v-910c82ef]{grid-template-columns:minmax(0,1fr) 200px;gap:48px;display:grid}.bio[data-v-910c82ef]{max-width:62ch;font-size:18px;line-height:1.6}.languages h3[data-v-910c82ef]{margin-bottom:12px;font-weight:400}.languages li[data-v-910c82ef]{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;padding-block:8px;display:flex}@media (width<=800px){.body[data-v-910c82ef]{grid-template-columns:minmax(0,1fr);gap:32px}}@media print{.body[data-v-910c82ef]{display:block}.bio[data-v-910c82ef]{max-width:none;font-size:10pt;line-height:1.4}.languages[data-v-910c82ef]{margin-top:6pt}.languages h3[data-v-910c82ef]{margin:0 6pt 0 0;display:inline}.languages ul[data-v-910c82ef],.languages li[data-v-910c82ef]{border:0;padding:0;display:inline}.languages li span+span[data-v-910c82ef]{margin-left:3pt}.languages li+li[data-v-910c82ef]:before{content:" · "}}.project[data-v-c2070293]{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding-block:32px;display:grid}.project[data-v-c2070293]:first-child{border-top:0;padding-top:0}.project[data-v-c2070293]:last-child{padding-bottom:0}.name[data-v-c2070293]{letter-spacing:-.02em;font-size:24px;font-weight:500;line-height:1.2}.name a[data-v-c2070293]{-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.16em}.name a[data-v-c2070293]:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.kind[data-v-c2070293]{margin-top:6px}.summary[data-v-c2070293]{margin-top:14px}.stack>div[data-v-c2070293]{border-top:1px solid var(--line);grid-template-columns:112px minmax(0,1fr);align-items:baseline;gap:12px;padding-block:7px;display:grid}.stack>div[data-v-c2070293]:first-child{border-top:0;padding-top:2px}.stack dd[data-v-c2070293]{font-size:14px;line-height:1.45}@media (width<=960px){.project[data-v-c2070293]{grid-template-columns:minmax(0,1fr);gap:20px}}.timeline[data-v-cc6dabef]{--label-w:170px;margin:0 0 40px}.head[data-v-cc6dabef]{flex-wrap:wrap;justify-content:space-between;gap:4px 24px;margin-bottom:12px;display:flex}.legend[data-v-cc6dabef]{gap:16px;display:flex}.legend span[data-v-cc6dabef]{align-items:center;gap:6px;display:inline-flex}.swatch[data-v-cc6dabef]{background:var(--mark-past);border-radius:4px;width:14px;height:8px}.swatch.is-full[data-v-cc6dabef]{background:var(--accent)}.swatch.is-part[data-v-cc6dabef],.bar.is-part[data-v-cc6dabef]{border:1.5px solid var(--accent);background:0 0}.plot[data-v-cc6dabef]{padding-bottom:26px;position:relative}.grid[data-v-cc6dabef]{inset:0 0 0 var(--label-w);pointer-events:none;position:absolute}.tick[data-v-cc6dabef]{border-left:1px solid var(--line);position:absolute;top:0;bottom:22px}.tick-label[data-v-cc6dabef]{margin-top:4px;font-size:12px;position:absolute;top:100%;left:0;transform:translate(-50%)}.tick:first-child .tick-label[data-v-cc6dabef]{transform:none}.row[data-v-cc6dabef]{grid-template-columns:var(--label-w) minmax(0, 1fr);align-items:center;min-height:30px;text-decoration:none;display:grid;position:relative}.label[data-v-cc6dabef]{white-space:nowrap;text-overflow:ellipsis;padding-right:12px;font-size:14px;overflow:hidden}.track[data-v-cc6dabef]{height:30px;position:relative}.bar[data-v-cc6dabef]{background:var(--mark-past);border-radius:4px;min-width:6px;height:10px;transition:opacity .15s;position:absolute;top:10px}.bar.is-full[data-v-cc6dabef]{background:var(--accent)}.tip[data-v-cc6dabef]{z-index:2;background:var(--ink);color:var(--bg);white-space:nowrap;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.4;display:none;position:absolute;bottom:calc(100% - 6px)}@media (hover:hover){.row:hover .tip[data-v-cc6dabef]{display:block}.plot:hover .row:not(:hover) .bar[data-v-cc6dabef]{opacity:.45}}.row:focus-visible .tip[data-v-cc6dabef]{display:block}@media (width<=560px){.timeline[data-v-cc6dabef]{--label-w:104px}.label[data-v-cc6dabef]{font-size:12px}}.jobs[data-v-cb396e0d]{margin:0;padding:0;list-style:none}.job[data-v-cb396e0d]{border-top:1px solid var(--line);grid-template-columns:160px minmax(0,1fr);gap:24px;padding-block:28px;display:grid}.job[data-v-cb396e0d]:last-child{padding-bottom:0}.when span[data-v-cb396e0d]{display:block}.title[data-v-cb396e0d]{letter-spacing:-.01em;font-size:18px;font-weight:500;line-height:1.35}.at[data-v-cb396e0d]{color:var(--muted);font-weight:400}.bullets[data-v-cb396e0d]{max-width:68ch;margin-top:10px}.bullets li[data-v-cb396e0d]{padding-left:16px;font-size:15px;line-height:1.55;position:relative}.bullets li+li[data-v-cb396e0d]{margin-top:6px}.bullets li[data-v-cb396e0d]:before{content:"";background:var(--muted);width:6px;height:1px;position:absolute;top:.72em;left:0}@media (width<=640px){.job[data-v-cb396e0d]{grid-template-columns:minmax(0,1fr);gap:8px}}@media print{.job[data-v-cb396e0d]{break-inside:avoid;border-top:0;grid-template-columns:minmax(0,1fr);gap:0;padding-block:5pt}.job[data-v-cb396e0d]:first-child{padding-top:0}.detail[data-v-cb396e0d]{display:contents}.when[data-v-cb396e0d]{order:1}.when span[data-v-cb396e0d]{display:inline}.when span+span[data-v-cb396e0d]:before{content:" · "}.title[data-v-cb396e0d]{letter-spacing:0;font-size:10.5pt;font-weight:600}.bullets[data-v-cb396e0d]{order:2;max-width:none;margin-top:3pt}.bullets li[data-v-cb396e0d]{padding-left:10pt;font-size:9pt;line-height:1.3}.bullets li+li[data-v-cb396e0d]{margin-top:.5pt}.bullets li[data-v-cb396e0d]:before{content:"–";background:0 0;width:auto;height:auto;top:0}}.group[data-v-a869e483]{border-top:1px solid var(--line);grid-template-columns:160px minmax(0,1fr);gap:24px;padding-block:20px;display:grid}.group[data-v-a869e483]:first-child{border-top:0;padding-top:0}.chips[data-v-a869e483]{flex-wrap:wrap;gap:6px;display:flex}.chips li[data-v-a869e483]{background:var(--chip);border-radius:6px;padding:3px 10px;font-size:14px;line-height:1.5}@media (width<=640px){.group[data-v-a869e483]{grid-template-columns:minmax(0,1fr);gap:10px}}@media print{.group[data-v-a869e483]{break-inside:avoid;border-top:0;grid-template-columns:110pt minmax(0,1fr);gap:8pt;padding-block:3pt}.chips[data-v-a869e483]{display:block}.chips li[data-v-a869e483]{background:0 0;padding:0;font-size:9.5pt;display:inline}.chips li+li[data-v-a869e483]:before{content:" · "}}.text[data-v-6d95d1b5]{max-width:58ch;font-size:18px}.email[data-v-6d95d1b5]{letter-spacing:-.03em;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.14em;margin-top:24px;font-size:clamp(30px,5.4vw,52px);font-weight:500;line-height:1.15;text-decoration-thickness:2px;transition:text-decoration-color .15s;display:inline-block}.email[data-v-6d95d1b5]:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.actions[data-v-6d95d1b5]{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.footer[data-v-332b7927]{border-top:1px solid var(--line)}.row[data-v-332b7927]{flex-wrap:wrap;justify-content:space-between;gap:4px 24px;padding-block:24px;display:flex}.skip-link[data-v-56e255e0]{z-index:20;background:var(--ink);color:var(--bg);border-radius:6px;padding:8px 14px;position:absolute;top:-60px;left:16px}.skip-link[data-v-56e255e0]:focus{top:12px}
