@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,d09GMgABAAAAAAjYABQAAAAAD0wAAAhrAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbchwuP0hWQVKBCT9NVkFSOQZgP1NUQVSBHgBsL2wRCAqFDIQVCxoAMId0ATYCJAMuBCAFhVIHdgwHG1UNUdQsyukusq8SOCcq7Il9U8YYyc4hBYUZskZi+WMmWcM83sEXLlRE1Nrz9uwBfn4fKADMKopImEh2xMakYuOJfPo5fckYZWSJ1IhUAShEvz8D1/MjoYDsVM9nP4+b+V4CCc0nqFX8XOFUWx9M1MjSWXuu0noq4g3wvx8YUbx0A4Dxufr+L8Suffx+ru62IVU87zAJEVKllHvt3uYNUZlo+6Gyila6iWSaJQ95CSpbukVaRwJB/OuyMewc71QwA4qISgSjXRykOu4mWcR2H4iG7d+jBrbV8D+I3MoTA/MIolb0olescxzYxVaigGWIAv6uSWtxu9mt4H4VWlSDB9iDeFC2wtQ2uVAbGvNmS7RmwammcTTYG9th3bYr5O2eHIt369EoyE9jy9ptrmcaWXgg//rn4AKOcgYBvVjUkiiAYBZsynvMSNTlWObVDOX5SQCcep06VyDmL5K9dChe/VkvX4BrZasJfavjPtQfZxrgdQBlWfkKYCuDiF6wMGCT8qAoUYbFSlvYxQFOkNemuMVAKtcBJ9S+j2qyG1S+JW1egPJxfFWXXzChLxcph/SEsdrKc6qeA5Ta2hYquf5+7SKw0nKVYomtHO0D/sPWXwZNOgFT/UUodAVcYp7wl1klYMhmwXJFLAz6GXDDEPIC9KNPSiq4tcb3o7XhlkmbhxQ6+KWsZ4UMw/hXQkaqrSBTPQ8e+R81mME6TPgI4GewCQtQlP9Fh1I8+4jUdV+tWa9n0nlk6sQAXvEOH6Akn5KPuThlTDyfRJKTSCKhCUWSSUIil8RRHM0l/Jr67JKLrL1J0m4HkjUXnpDkOBJLkACJJzGJXBwHHHIxn+YoXrnzqF16fLfd5rcNu3uXUFhv53BL+qj88sO4et8tLvXKCQu3/vL95yTt6d2D4F+zw0CAiyGgXLIC/GdvkrTjp8t+884TXzyJ8aU+i2v3QPqIwrrC4oDsx9nAMZd+l1/yDVx+3E9MQdjC+aA6/94571s73J944j2fXdj3Ms+F9z7Y1OezvvF9P8N70G/W95vkTLVP06m7dFHrppFVk52gOqbf3uJdlueRYiUPsBfpw+7dJblT8mLzplAx5+2Xzr/kdjN55zoccz9n3DcbwUaO135Huii/+co9/dfvZlVNn95U41C/7Bti6/LFn2/E/3xlgjYyfKz2vZYu9m3c6jHTU7+b1XnxP67ShYz3uxwtw9IS4348OFENke/GAD02+whcdNVL5qxTFAjco+yAoDPmTPy9wbTypBeMlFd2/fUeF2EQBXuYwT6Y7OYQJ/lFSJelWcO4+zuRHDe4xgi9GU/LojxwjBTgJaRhTMFsndiE+eSM8fortjPrxQO+ErKFFDkhkJNjE5XVjCemUuaJ9RaFwdj5EVGQ37kDQUGiWBqYEGYAKEQKq7KRAQwdi2y8pkyLMGX9twFEMizztFCrlSRNUKVYw8w3erlA9uMWhu1oeZTe0NJhCmqqLamAekHE0lJB06Sg0Sjo7MHpNCoDAjpamTv2V+RNTpGpaCxNHBUd7YF/4V/8LH4UXIOTcBljvzakIXax5KSYsUMG//zTZ8mTaZvP3wK3A4Kf8Ii9euk+eAFfvxZ0r9MhPV1qZFleLcxTXZOULvYa4mD2+tFME/vqOSHZ2QZdfm2B1bS9MiHPHtfRRNb5PKOisa66hehKpcx8KBP8gAJWVmoeQAENBsGwENhsWllnZ2N9YyMQ7lumtYmk7FjO0CZEr/ej4N/dsM3xrc7nXxARJ/eMtirJ1Cnjh/YMM6lV06eN7g++idili0BpUvDxY8EwDzx48Ky4rQ1omVhp4LriZw/EtQf5iH4wCG9qpsGNq4X1hH8OkAoAI5uUZq2CZYmZYdr76YF4u92mlQHdVJyvNpi0TEdLXa3Mm/vocUN987n6+or8dLin3JKy8g6dubxIKqAqoU0QHI3lxRW1rFotSTZbZWW7xhYU2RXW7RIZERGoZf9y0gxHZPVlsZRCqXZqtaKqLD/9OW/w7MWrV3k1rSkjGUVHeTY0Z5SVdZ5WW2V5/PpSE81au/ZMf5FTQzMKU1R/6j584rQ+fYb/TsWDBg7GhwrnWXm9lNV3UN9QSgMuYSRiJ7Jqi0mj6d69tdVqtTRJD07sg7QnbtzIaqRoe7mstYbSmm22JEq202h0johhsxLIM3GG291VLwecGVCCcj7axOdVirSsoUF2TrxSO4twRglTRg4IgZB78PMWl6W6kYL2AHWRlFspqkJDFYitFEW1IjKmUDF1nerM7CCXBmpys4OCbQSKi4oo3+oMFHZenlpVVyQCIAAgwL1eRvZN9bB6BU0XAQBkhq82AQDkuKLpztiOBySSltAFaBUQvuy26bEU1Y0gCPaeyiYs5s2ipqkuw2r5MzlL+VM+AZTTEeb/K2Ewl6Ox7DLTNRkqLl3px7tHPeA19LkYY87DYmlOwMpe2cXaBv9g4xBfYmuDd3RLHeCebClmN2CldwXWFk7BxugoRdumLV25sP2wt9x2OOhtwtFK490nI46h6RlQXbtHET0XTJrhdWgBTye/QwqGLQ5dEieJJLSsv1lSJD27DBU8ChVOWsvIgT3FtWWAkA2mrk1IS2QaX/1OhCjsTDeSMgy8ESroHDyR0+sSovxmICWkmd6Xs7c97HXIf6gbCShTahu7hog9HEzlvqS8vL5CuMDy03uWmryCw/YD3/zz+F4yWR6Qkbdw9rGXlu1tq5kZzuP6YHcWwqR41wzKjubMl8EcX3DOTnNHaJBTl3L0hVzLpM+olK9llt6oq8LurL/Oq5Ai/x/E3GjGdn4Imyq1Kk3adOkztEf3/yjDY84x5EhidJQ1sV4RT4S9zPs/jEVGJRZ6A4fyv1tDhkhYJN5rwAns7MD0XAA=)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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-cyrillic-wght-normal.DXI_y_WF.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-ext-wght-normal.CnNj8hVb.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:Onest Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/onest-latin-wght-normal.CUIqqgP9.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-ext-wght-normal.DdQaqQDo.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:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/outfit-latin-wght-normal.Bc-8i84L.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");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{--paper:#fafaf8;--white:#fff;--ink:#0a0a0a;--graphite:#666663;--soft:#e7e7e2;--rule-strong:#0a0a0a29;--scrim:#0a0a0ab8;--chapter-about:#efefe9;--chapter-testimonial:#fff;--chapter-skills:#f5f2ec;--chapter-work:#f4f5f5;--chapter-contact:#e9e9e3;--font-heading:"Outfit Variable", "Outfit", sans-serif;--font-body:"Onest Variable", sans-serif;--font-mono:"IBM Plex Mono", monospace;--type-display:clamp(3rem, 5.4vw, 5.5rem);--type-hero-statement:clamp(2.5rem, 3.35vw, 3.5rem);--type-page:clamp(4.25rem, 7vw, 6rem);--type-section:clamp(2.5rem, 2rem + 2.5vw, 3.5rem);--type-lead:2.375rem;--type-title:clamp(1.35rem, 1.1rem + .4vw, 1.5rem);--type-body:clamp(1rem, .25vw + .96rem, 1.16rem);--type-ui:.875rem;--type-small:.8125rem;--type-caption:.75rem;--weight-regular:400;--weight-medium:520;--weight-semibold:560;--weight-bold:650;--space-xs:.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--gutter:clamp(1.25rem, 4vw, 4.5rem);--content:92rem;--section-padding:clamp(7.5rem, 10vh, 9rem);--split-gap:clamp(3rem, 5vw, 5.5rem);--chapter-rail-safe:clamp(14.5rem, 16vw, 16rem);--site-header-height:4.8125rem;--ease:cubic-bezier(.16, 1, .3, 1);--duration-fast:.18s;--duration-base:.35s;--duration-slow:.7s}@media (width>=961px) and (height<=860px){:root{--type-display:clamp(3rem, 4.6vw, 4.2rem);--type-hero-statement:clamp(2.35rem, 3.2vw, 3rem);--split-gap:4rem}}@media (width<=960px){:root{--split-gap:4rem}}@media (width<=640px){:root{--gutter:1.15rem;--type-page:clamp(2.8rem, 12.5vw, 4rem)}}:root{font-family:var(--font-body);color:var(--ink);background:var(--paper);scroll-behavior:smooth}*{box-sizing:border-box}html{background:var(--paper);overflow-x:clip}body{background:var(--paper);color:var(--ink);font-size:var(--type-body);font-weight:var(--weight-regular);margin:0;line-height:1.55;overflow-x:clip}button,input,textarea,select{font:inherit}button{color:inherit}h1,h2,h3{font-family:var(--font-heading)}a{color:inherit;text-underline-offset:.35em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.skip-link{z-index:100;background:var(--ink);color:var(--white);transition:transform var(--duration-fast);padding:.7rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.wordmark{font-family:var(--font-body);font-size:1.42rem;font-weight:var(--weight-bold);letter-spacing:-.025em;line-height:1;text-decoration:none}.text-link{color:inherit;white-space:nowrap;align-items:center;gap:.55rem;text-decoration:none;display:inline-flex}.text-link[hidden]{display:none}.text-link--rule{font-weight:var(--weight-bold);border-bottom:1px solid;padding-bottom:.15rem}.text-link--plain{font-size:var(--type-ui);font-weight:var(--weight-medium)}.text-link--sm.text-link--rule{font-size:var(--type-caption)}.text-link--md{font-size:var(--type-ui)}.text-link-arrow{font-size:1.184em;font-weight:var(--weight-regular);transition:transform var(--duration-base) var(--ease)}.text-link--plain:is(:hover,:focus-visible) .text-link-label{text-underline-offset:.35em;text-decoration:underline}:is(.text-link,.text-link-trigger):is(:hover,:focus-visible) .text-link-arrow[data-arrow=up-right]{transform:translate(.18rem,-.18rem)}:is(.text-link,.text-link-trigger):is(:hover,:focus-visible) .text-link-arrow[data-arrow=right]{transform:translate(.25rem)}:is(.text-link,.text-link-trigger):is(:hover,:focus-visible) .text-link-arrow[data-arrow=left]{transform:translate(-.25rem)}:is(.text-link,.text-link-trigger):is(:hover,:focus-visible) .text-link-arrow[data-arrow=down]{transform:translateY(.2rem)}:is(.text-link,.text-link-trigger):is(:hover,:focus-visible) .text-link-arrow[data-arrow=up]{transform:translateY(-.2rem)}.social-links{flex-wrap:wrap;gap:1rem;margin:0;padding:0;list-style:none;display:flex}.social-links a{width:2.75rem;height:2.75rem;color:var(--ink);place-items:center;text-decoration:none;display:inline-grid}.social-links img{width:1.45rem;height:1.45rem;transition:transform var(--duration-base) var(--ease);display:block}.social-links a:hover img,.social-links a:focus-visible img{transform:translateY(-.2rem)}.social-links span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-footer{z-index:2;width:min(100%, calc(var(--content) + var(--gutter) * 2));padding:2rem var(--gutter);border-top:1px solid var(--soft);color:var(--graphite);font-size:var(--type-caption);grid-template-columns:1fr auto;align-items:center;gap:clamp(1.5rem,4vw,4rem);margin:auto;display:grid;position:relative}.site-footer p{margin:0}.site-footer-lead{flex-wrap:wrap;justify-self:start;align-items:center;gap:1rem 2rem;display:flex}.site-footer-lead .text-link{color:var(--ink)}.site-footer-socials{margin:0}.site-footer-meta{justify-content:flex-end;align-items:center;gap:2rem;display:flex}@media (width<=640px){.site-footer{grid-template-columns:1fr;gap:1.25rem}.site-footer-meta{justify-content:flex-start}}.eyebrow{color:var(--graphite);text-transform:uppercase;margin:0}.eyebrow--kicker{font-family:var(--font-mono);font-size:var(--type-caption);letter-spacing:.08em}.eyebrow--meta{font-family:var(--font-body);font-size:var(--type-ui);letter-spacing:.03em}
