@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1123fb89de588a48-s.1nzccunaoxsdm.woff2)format("woff2");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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/d0f4d39c08066a29-s.1wuo3gtslpr33.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7015758c94fe7945-s.p.0ggqn9ig56u4s.woff2)format("woff2");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:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.gJ_uYq_className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.gJ_uYq_variable{--font-serif:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/46a9e2f250689b4a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/76b70a1dbe058eb5-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2fb76073e23fd9e4-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6131cbbf5549afa2-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/45462fd7b7c12654-s.0k62hbripvv8p.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ba63f6a0e436df8e-s.3-6t-g6q0vh0a.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07c7676b89ed2778-s.p.2bn3s6zvc0dyp.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.-KQRRa_className{font-family:Inter,Inter Fallback;font-style:normal}.-KQRRa_variable{--font-sans:"Inter", "Inter Fallback"}
:root{--paper:#faf9f6;--ink:#1c1b19;--muted:#6b6862;--faint:#76716a;--line:#e7e4dd;--accent:#a84c26;--accent-soft:#a84c2614;--font-serif-stack:var(--font-serif,"Iowan Old Style"), Georgia, "Times New Roman", serif;--font-sans-stack:var(--font-sans,-apple-system), BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--wrap:1120px;--read:640px;--gutter:24px;--header-h:56px;--ease:.15s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--paper:#141413;--ink:#eceae4;--muted:#9a968d;--faint:#85817a;--line:#2a2926;--accent:#e08a5f;--accent-soft:#e08a5f1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#141413;--ink:#eceae4;--muted:#9a968d;--faint:#85817a;--line:#2a2926;--accent:#e08a5f;--accent-soft:#e08a5f1f}}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans-stack);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-wrap:break-word;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4{margin:0;font-weight:400}p{margin:0}.serif{font-family:var(--font-serif-stack);font-optical-sizing:auto;letter-spacing:-.015em}.tabular{font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.wrap{max-width:var(--wrap);padding:0 var(--gutter);margin:0 auto}.wrap--read{max-width:calc(var(--read) + 2 * var(--gutter))}body{flex-direction:column;min-height:100dvh;display:flex}.site-main{flex:1}.site-header{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:saturate(140%)blur(10px);backdrop-filter:saturate(140%)blur(10px);position:sticky;top:0}.site-header__inner{height:var(--header-h);justify-content:space-between;align-items:center;gap:16px;display:flex}.wordmark{letter-spacing:-.01em;align-items:center;gap:10px;font-size:19px;font-weight:500;display:inline-flex}.wordmark:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.site-header__meta{color:var(--muted);font-size:13px}.site-header__end{align-items:center;gap:16px;display:flex}.site-nav{color:var(--muted);align-items:center;gap:20px;font-size:14px;display:flex}.site-nav a{transition:color var(--ease)}.site-nav a:hover{color:var(--accent)}.theme-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;visibility:hidden;transition:color var(--ease), border-color var(--ease), background-color var(--ease);background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;margin-right:-8px;padding:0;display:inline-flex}:root[data-js] .theme-toggle{visibility:visible}.theme-toggle:hover{color:var(--accent);border-color:var(--line)}.theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle__sun{display:block}:root[data-theme=dark] .theme-toggle__moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle__sun{display:block}:root:not([data-theme=light]) .theme-toggle__moon{display:none}}@media (max-width:560px){.site-header__meta{display:none}.wordmark{white-space:nowrap;gap:8px;font-size:16px}}@media (max-width:359px){.wordmark{font-size:14px}}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:96px;padding:32px 0 48px;font-size:13px}.site-footer p{max-width:560px}.site-footer p+p{margin-top:8px}.site-footer a{text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:3px;transition:color var(--ease), text-decoration-color var(--ease)}.site-footer a:hover{color:var(--accent);text-decoration-color:currentColor}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.skip-link{z-index:100;background:var(--ink);color:var(--paper);transition:transform var(--ease);border-radius:8px;padding:8px 14px;font-size:14px;position:absolute;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{transform:none}.site-main:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:560px){.site-nav{gap:14px;font-size:13px}.site-header__end{gap:10px}}.site-footer__links{flex-wrap:wrap;gap:6px 18px;display:flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:500}.actions{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.button{border:1px solid var(--line);min-height:40px;transition:color var(--ease), border-color var(--ease), background-color var(--ease);border-radius:999px;align-items:center;padding:8px 16px;font-size:14px;font-weight:500;line-height:1.2;display:inline-flex}.button:hover{border-color:var(--accent);color:var(--accent)}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--paper)}.button--primary:hover{color:var(--accent);background:0 0}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:12px}.prose{font-size:17px;line-height:1.7}.prose p+p{margin-top:1em}.prose a,.contact__text a,.page__lede a,.resume__contact a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:3px}.section{padding-top:72px}.section__title{margin-bottom:28px;font-size:clamp(24px,3vw,30px);line-height:1.2}.section__more{color:var(--accent);margin-top:24px;font-size:15px;font-weight:500}.section__more a:hover{text-underline-offset:3px;text-decoration:underline}.hero{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:40px;padding-top:80px;display:grid}.hero__name{letter-spacing:-.025em;margin-top:14px;font-size:clamp(44px,7vw,72px);line-height:1.02}.hero__title{margin-top:14px;font-size:clamp(18px,2.2vw,21px);font-weight:500}.hero__lede{max-width:720px;color:var(--muted);text-wrap:pretty;margin-top:20px;font-size:clamp(21px,2.6vw,27px);line-height:1.35}.hero__meta{color:var(--muted);margin-top:20px;font-size:14px}.hero .actions{margin-top:28px}.hero__photo{border:1px solid var(--line);object-fit:cover;border-radius:50%;width:144px;height:144px;margin-top:36px}@media (max-width:760px){.hero{grid-template-columns:1fr;gap:0;padding-top:48px}.hero__photo{grid-row:1;width:88px;height:88px;margin:0 0 20px}}.metrics{margin:0;display:grid}.metrics__item{flex-direction:column-reverse;justify-content:flex-end;display:flex}.metrics__value{color:var(--ink);margin:0;line-height:1.1}.metrics__label{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.4}.metrics--home{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr))}.metrics--home .metrics__item{padding:24px 20px 24px 0}.metrics--home .metrics__item+.metrics__item{border-left:1px solid var(--line);padding-left:20px}.metrics--home .metrics__value{color:var(--accent);font-size:clamp(30px,4vw,40px)}@media (max-width:760px){.metrics--home{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics--home .metrics__item:nth-child(odd){border-left:0;padding-left:0}.metrics--home .metrics__item:nth-child(n+3){border-top:1px solid var(--line)}}.metrics--card{grid-auto-columns:minmax(0,max-content);grid-auto-flow:column;gap:28px;margin:20px 0}.metrics--card .metrics__value{font-size:24px}.metrics--card .metrics__label{max-width:16ch;font-size:12px}.about .prose{max-width:none}.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none;display:grid}.steps__item{border-top:2px solid var(--accent);padding-top:16px}.steps__num{color:var(--accent);font-size:13px;font-weight:500}.steps__title{margin-top:8px;font-size:17px;font-weight:600}.steps__text{color:var(--muted);margin-top:8px;font-size:15px}@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.steps{grid-template-columns:1fr}}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.cards>.card:first-child:nth-last-child(odd){grid-column:1/-1}.card{border:1px solid var(--line);border-radius:14px;flex-direction:column;padding:28px;display:flex;position:relative}.card__client{letter-spacing:.04em;text-transform:uppercase;color:var(--faint);font-size:12px}.card__title{text-wrap:balance;margin-top:10px;font-size:23px;line-height:1.2}.card__summary{color:var(--muted);margin-top:12px;font-size:15px}.card .tags{margin-top:auto}@media (max-width:760px){.cards{grid-template-columns:1fr}.card{padding:22px}}.timeline{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.timeline__item{border-bottom:1px solid var(--line);grid-template-columns:140px minmax(0,1fr);gap:20px;padding:18px 0;display:grid}.timeline__years{color:var(--muted);font-size:14px}.timeline__role{font-size:16px;font-weight:600}.timeline__company{font-weight:400}.timeline__line{color:var(--muted);margin-top:4px;font-size:15px}@media (max-width:560px){.timeline__item{grid-template-columns:1fr;gap:4px}}.skills{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;margin:0;display:grid}.skills__name{font-size:13px;font-weight:600}.skills__items{color:var(--muted);margin:6px 0 0;font-size:15px}@media (max-width:900px){.skills{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.skills{grid-template-columns:1fr}}.contact__text{max-width:none;margin-bottom:24px;font-size:17px}.page{padding-top:56px}.page__header{border-bottom:1px solid var(--line);padding-bottom:32px}.page__title{letter-spacing:-.02em;text-wrap:balance;font-size:clamp(32px,5vw,46px);line-height:1.1}.page__lede{color:var(--muted);text-wrap:pretty;margin-top:16px;font-size:19px;line-height:1.5}.resume__list{margin:0;padding-left:1.1em;font-size:16px;line-height:1.65}.resume__list li+li{margin-top:8px}.resume__list li::marker{color:var(--accent)}.projects{margin:0;padding:0;list-style:none}.project{border-bottom:1px solid var(--line);padding:36px 0}.project__title{font-size:24px;line-height:1.2}.project__summary{color:var(--muted);margin:10px 0 16px;font-size:17px}.project .tags{margin-top:18px}.project__links{color:var(--accent);margin-top:14px;font-size:15px;font-weight:500}.resume__title{margin-top:8px;font-size:19px;font-weight:500}.resume__contact{color:var(--muted);margin-top:8px;font-size:15px}.resume__pdf{margin-top:20px}.resume__section{padding-top:40px}.resume__h2{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;font-size:13px;font-weight:600}.resume__role+.resume__role{margin-top:28px}.resume__role-title{font-size:17px;font-weight:600}.resume__role-meta{color:var(--muted);margin:2px 0 10px;font-size:14px}.skills--resume{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:520px){.skills--resume{grid-template-columns:1fr}}.resume__edu{margin:0;padding:0;font-size:16px;list-style:none}.resume__edu li+li{margin-top:8px}.certs__title{margin-top:32px;font-size:13px;font-weight:600}.certs{color:var(--muted);flex-wrap:wrap;gap:6px 24px;margin:6px 0 0;padding:0;font-size:15px;list-style:none;display:flex}.print-only{display:none}@page{size:Letter;margin:.5in .6in}@media print{:root,:root[data-theme=dark]{--paper:#fff;--ink:#1c1b19;--muted:#4f4c47;--faint:#6b6862;--line:#dedad2;--accent:#a84c26;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.site-header,.site-footer,.resume__pdf,.skip-link,.screen-only{display:none!important}.print-only{display:inline}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9.5pt;line-height:1.4}.wrap,.wrap--read{max-width:none;padding:0}.page{padding-top:0}.resume .page__header{padding-bottom:8pt}.resume .page__title{font-size:22pt}.resume__title{margin-top:2pt;font-size:11.5pt}.resume__contact{margin-top:3pt;font-size:9pt}.resume__contact a{color:inherit;text-decoration:none}.resume__section{padding-top:11pt}.resume__h2{margin-bottom:5pt;font-size:9pt}.resume .prose{font-size:9.5pt;line-height:1.45}.resume .prose p+p{margin-top:4pt}.resume__role{break-inside:avoid}.resume__role+.resume__role{margin-top:8pt}.resume__role-title{font-size:10pt}.resume__role-meta{margin:0 0 3pt;font-size:8.5pt}.resume .resume__list{font-size:9.5pt;line-height:1.4}.resume .resume__list li+li{margin-top:2pt}.skills--resume{grid-template-columns:repeat(3,minmax(0,1fr));gap:6pt 16pt}.skills__name{font-size:9pt}.skills__items{margin-top:1pt;font-size:9pt}.resume__edu{font-size:9.5pt}.resume__edu li+li{margin-top:2pt}.resume__role,.skills__group,.resume__section:not([aria-labelledby=r-experience]){break-inside:avoid}.resume__h2{break-after:avoid}}
