@font-face{font-family:Geist Variable;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2")}:root{color-scheme:light;--surface:#eeeff0;--headline:#000;--ink:#000;--muted:var(--ink);--link:var(--ink);--line:#ced0d3;--portrait:#dbdde0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:36px}body{background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Geist Variable,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.7}::selection{background:var(--line);color:var(--ink)}a{color:inherit;text-underline-offset:3px;text-decoration:none}a:focus-visible{outline:2px solid var(--ink);outline-offset:6px}a:hover,a:active{text-decoration:underline}h1,h2,h3,p,figure{margin:0}.name,h1,h2,h3{font-weight:600}.name,h1{color:var(--headline)}.page-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:96px;width:min(1000px,100% - 96px);margin-inline:auto;padding-block:72px;display:grid}.profile{will-change:transform;flex-direction:column;align-items:flex-start;display:flex;position:sticky;top:72px}.name{letter-spacing:-.025em;margin-top:24px;font-size:24px;line-height:32px}.portrait{aspect-ratio:4/5;background:var(--portrait);width:100%;overflow:hidden}.portrait img{object-fit:cover;object-position:53% center;width:100%;height:100%;display:block}.bio{color:var(--muted);margin-top:12px;font-size:14px;line-height:19px}.section-nav{flex-direction:column;align-items:flex-start;gap:0;margin-top:24px;line-height:20px;display:flex}.profile a{font-weight:500}.profile a.name{font-weight:600}.section-nav a[aria-current=location]{font-weight:700}.contact-links{flex-direction:column;align-items:flex-start;gap:0;margin-top:24px;display:flex}.contact-link{color:var(--link);font-size:14px;line-height:20px}.page-footer{flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:96px;font-size:12px;line-height:18px;display:flex}.local-time{white-space:nowrap;font-variant-numeric:tabular-nums}.main-content{min-width:0}.mobile-header{display:none}h1,#projects-heading{letter-spacing:-.035em;font-size:40px;line-height:1.12}h2{letter-spacing:-.04em;font-size:30px;line-height:36px}.experience-list{margin:48px 0 0;padding:0;list-style:none}.experience-row{border-top:1px solid var(--line);padding:25px 0 29px}h3,.company-name{letter-spacing:-.025em;font-size:24px;line-height:32px}.role,.description,.years{color:var(--muted)}.role{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-top:6px;font-size:14px;line-height:22px;display:flex}.description{margin-top:14px;font-size:14px;line-height:24px}.experience .description{font-size:17px}.years{white-space:nowrap;margin-left:auto}.projects,.about{margin-top:72px}.about-copy{margin-top:24px;font-size:17px;line-height:24px}.about-copy p+p{margin-top:20px}.projects-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-top:40px;font-size:14px;line-height:22px}.project-name-column{width:20%}.project-started-column{width:64px}.project-status-column{width:76px}.projects-table th:nth-child(3),.projects-table td.project-started{text-align:right;font-variant-numeric:tabular-nums}.projects-table th,.projects-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:break-word;padding:16px 12px 16px 0}.projects-table th{font-weight:600}.projects-table th:last-child,.projects-table td:last-child{text-align:right;padding-right:0}.project-description-text{display:block}.projects-table.is-enhanced .project-description-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.projects-table.is-enhanced .is-expanded .project-description-text{white-space:normal;overflow:visible}.project-description-toggle{width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.projects-table .is-expandable{cursor:pointer}.project-description-toggle:hover{text-underline-offset:3px;text-decoration:underline}.project-description-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.project-link:hover{text-underline-offset:5px;text-decoration:underline}.sr-only,.skip-link:not(:focus){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{background:var(--surface);color:var(--ink);padding:16px 32px;display:block}@media (width>=768px) and (width<=1023px){.page-layout{grid-template-columns:208px minmax(0,1fr);gap:40px;width:calc(100% - 64px);padding-block:48px}.profile{top:48px}h1,#projects-heading{font-size:36px}}@media (width<=767px){html{scroll-padding-top:88px}.mobile-header{z-index:10;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 20px;min-height:64px;padding:8px 20px;display:flex;position:sticky;top:0}.mobile-name{letter-spacing:-.025em;align-items:center;min-height:44px;font-size:18px;font-weight:600;display:inline-flex}.mobile-menu-toggle{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:10px;display:none}.mobile-menu-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.menu-lines{flex-direction:column;gap:5px;width:22px;display:flex}.menu-lines span{background:currentColor;width:100%;height:1px}.mobile-menu{align-items:center;gap:28px;display:flex}.mobile-section-links,.mobile-contact-links{align-items:center;gap:16px;display:flex}.mobile-menu a{white-space:nowrap;align-items:center;min-height:44px;font-weight:500;display:inline-flex}.mobile-section-links a[aria-current=location]{font-weight:700}.profile .name,.profile .section-nav,.profile .contact-links{display:none}.page-layout{grid-template-columns:minmax(0,1fr);gap:40px;width:calc(100% - 40px);padding-block:24px 32px}.profile{will-change:auto;position:static}.portrait{aspect-ratio:1.4;width:100%;max-width:480px}.name{margin-top:20px}.bio{font-size:16px;line-height:22px}.section-nav,.contact-links{flex-flow:wrap;gap:0 24px}.section-nav{margin-top:16px}.contact-links{margin-top:4px}.profile a{align-items:center;min-height:44px;display:inline-flex}h1,#projects-heading{font-size:clamp(30px,8.2vw,36px);line-height:1.15}.experience-list{margin-top:28px}.experience-row{padding-block:20px 24px}.role{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.years{text-align:right}.projects,.about{margin-top:56px}.projects-table{margin-top:28px;display:block}.projects-table colgroup{display:none}.projects-table thead{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.projects-table tbody{display:block}.projects-table tbody tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;gap:8px 16px;padding-block:18px;display:grid}.projects-table tbody tr:first-child{border-top:1px solid var(--line)}.projects-table tbody th,.projects-table tbody td{border:0;min-width:0;padding:0}.projects-table tbody th{grid-area:1/1;font-size:16px;line-height:24px}.projects-table .project-started{grid-area:1/2;line-height:24px}.projects-table tbody td:last-child{grid-area:1/3;line-height:24px}.projects-table .project-description{grid-area:2/1/auto/-1;font-size:16px;line-height:24px}.about-copy{margin-top:20px;line-height:26px}.page-footer{flex-direction:column;align-items:flex-start;gap:8px;margin-top:64px}}@media (width<=639px){.mobile-menu{flex-direction:column;align-items:flex-start;gap:8px;width:100%;padding-block:8px 12px}.mobile-section-links{flex-direction:column;align-items:stretch;gap:0;width:100%}.mobile-section-links a{letter-spacing:-.025em;min-height:56px;font-size:24px;line-height:32px}.mobile-contact-links{gap:24px;margin-top:16px}.mobile-header.is-enhanced .mobile-menu-toggle{display:inline-flex}.mobile-header.is-enhanced .mobile-menu{background:var(--surface);border-bottom:1px solid var(--line);max-height:calc(100dvh - 64px);padding:12px 20px 20px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.mobile-header.is-open .mobile-menu{display:flex}}@media (width>=768px) and (height<=760px){.profile{will-change:auto;position:static}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important}}
