@font-face{font-family:Figtree;src:url(/assets/fonts/figtree-variable.ttf)format("truetype");font-style:normal;font-weight:400 600;font-display:swap}:root{font-synthesis:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#eeefeb;--row-hover:#dfe4d9;--ink:#242722;--muted:#5c6259;--line:#d1d5cc;--accent:#3b5541;--focus:#355741;color:var(--ink);background:var(--page);-webkit-font-smoothing:antialiased;font-family:Figtree,Arial,sans-serif;font-size:17px;line-height:1.55}*{box-sizing:border-box}body{min-width:280px;margin:0}html{scrollbar-color:#a7aea3 var(--page);scroll-padding-top:24px}::selection{background:var(--accent);color:var(--page)}[hidden]{display:none!important}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--focus);outline-offset:5px}p,h1,h2,h3{margin:0}:where(h1,h2,h3,p,dd,li,a){overflow-wrap:anywhere}img{max-width:100%;height:auto;display:block}h1,h2,h3{text-wrap:balance;font-weight:600}h1{letter-spacing:-.025em;font-size:30px;line-height:1.2}h2{letter-spacing:-.015em;font-size:20px;line-height:1.35}h3{font-size:18px;line-height:1.4}.page{width:min(100% - 48px,800px);margin:78px auto 30px}.identity-link{text-decoration:none}.profile-header--portrait{--portrait-size:164px;grid-template-columns:minmax(0, 1fr) var(--portrait-size);align-items:start;gap:14px 32px;display:grid}.profile-header--portrait .profile-links{grid-column:1/-1;margin-top:0}.profile-header--portrait .about-me{grid-area:2/1;margin-top:2px}.profile-header--portrait .profile-portrait{grid-area:1/2/span 2}.profile-portrait{width:var(--portrait-size);object-fit:cover;object-position:center;border-radius:50%;height:176px}.close-button{width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:0;flex:0 0 36px;place-items:center;padding:0;display:inline-grid}.close-button:hover,.close-button:focus-visible{background:var(--row-hover)}.identity-link:hover{text-decoration:underline}.profile-intro p{line-height:1.3}.introduction{max-width:61ch;color:var(--muted);margin-top:2px}.location{margin-top:0;font-size:15px}.experience-summary{color:var(--muted);margin-top:0;font-size:15px}.about-me{color:#42483f;max-width:65ch;margin-top:16px;font-size:16px}.profile-links,.project-links{flex-wrap:wrap;gap:4px 24px;font-size:15px;display:flex}.profile-links{margin-top:14px;gap:6px 4px;margin-inline:-10px}.profile-links a,.project-links a{padding-block:5px}.text-button{color:inherit;font:inherit;line-height:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;border-radius:0;padding:5px 0;text-decoration:underline;text-decoration-thickness:1px}.text-button:hover{text-decoration-thickness:2px}.profile-links>.text-button,.profile-links>a,.profile-links>.email-menu>.text-button{padding:8px 10px;text-decoration:none}.profile-links>.text-button:hover,.profile-links>a:hover,.profile-links>.email-menu>.text-button:hover,.profile-links>.text-button:focus-visible,.profile-links>a:focus-visible,.profile-links>.email-menu>.text-button:focus-visible{background:var(--accent);color:var(--page);text-decoration:none}.email-menu{display:inline-flex}.email-address{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font:inherit;caret-color:var(--accent);background:0 0;border-radius:0;margin-top:0;padding:8px 0;font-size:15px;display:block}.email-actions{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px;font-size:14px;display:flex}.action-button{border:1px solid var(--ink);background:var(--ink);min-height:38px;color:var(--page);font:inherit;cursor:pointer;border-radius:0;padding:8px 13px}.action-button:hover{background:var(--accent);border-color:var(--accent)}.action-button:disabled{cursor:wait;opacity:.65}.portfolio-tabs{border-bottom:1px solid var(--line);gap:28px;margin-top:40px;display:flex}.portfolio-tabs a{white-space:nowrap;color:var(--muted);padding:11px 0 13px;font-size:16px;text-decoration:none;display:inline-grid;position:relative}.portfolio-tabs a:before{content:attr(data-label);visibility:hidden;grid-area:1/1;font-weight:600}.portfolio-tabs a>span{grid-area:1/1}.portfolio-tabs a[aria-selected=true]{color:var(--ink);font-weight:600}.portfolio-tabs a[aria-selected=true]:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:-1px;left:0;right:0}.portfolio-tabs a:hover{color:var(--ink)}.portfolio-tabs a:focus-visible{outline-offset:3px}.project-list{padding-top:28px}.project-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:38px;min-height:216px;margin-inline:-12px;padding:28px 12px;text-decoration:none;display:grid}.project-row--text{grid-template-columns:1fr;min-height:auto}.project-title{align-items:center;gap:12px;display:flex}.project-logo{object-fit:contain;flex:0 0 24px;width:24px;height:24px}.project-row:focus-visible{outline-offset:5px;background:var(--row-hover)}@media (hover:hover){.project-row:hover{background:var(--row-hover)}}.project-summary{color:var(--muted);margin-top:8px;font-size:16px}.recognition{color:var(--accent);margin-top:7px;font-size:14px;font-weight:500;line-height:1.5}.project-thumbnail{aspect-ratio:16/9;object-fit:cover;object-position:left top;width:250px;height:140.625px;display:block}.project-detail{padding-top:24px}.back-link{align-items:center;gap:7px;margin-bottom:24px;padding-block:4px;font-size:15px;display:inline-flex}.project-detail>h1{letter-spacing:-.025em;font-size:28px;line-height:1.2}.project-detail>h1:focus{outline:none}.detail-meta{color:var(--muted);margin-top:8px;font-size:15px}.project-detail .detail-meta{line-height:1.3}.project-detail .detail-meta+.detail-meta{margin-top:0}.detail-overview{max-width:70ch;margin-top:21px}.project-links{gap:10px;margin-top:16px}.project-links .action-button{align-items:center;padding:8px 13px;text-decoration:none;display:inline-flex}.project-links .action-button:hover{text-decoration:none}.project-figure{margin:28px 0 0}.project-figure img{aspect-ratio:16/9;object-fit:cover;object-position:left top;width:100%;height:auto}.project-figure figcaption{color:var(--muted);margin-top:9px;font-size:13px}.story-section{max-width:70ch;margin-top:36px}.story-section>h2{letter-spacing:0;margin-bottom:10px;font-size:18px;line-height:1.4}.affiliation-section{padding-top:28px}.affiliation-row{grid-template-columns:24px minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;display:grid}.organization-logo{object-fit:contain;align-self:center;width:24px;height:24px}.affiliation-name{letter-spacing:0;text-wrap:initial;font-size:16px;font-weight:500;line-height:1.5}.affiliation-note{color:var(--muted);font-size:14px;font-weight:400}.affiliation-period{white-space:nowrap}.experience-entry{padding-block:10px}.date{color:var(--muted);font-variant-numeric:lining-nums tabular-nums;font-size:14px}.entry-location{color:var(--muted);margin-top:3px;font-size:14px}.experience-description{max-width:70ch;color:var(--muted);margin-top:11px;font-size:16px}.experience-details{margin:1px 0 0 36px;font-size:15px}.experience-details summary{cursor:pointer;width:fit-content;color:var(--muted);text-underline-offset:4px;padding-block:4px;font-size:14px;line-height:1.5;text-decoration:underline;text-decoration-thickness:1px}.experience-details summary:hover{text-decoration-thickness:2px}.experience-details summary::marker{color:var(--muted);font-size:12px}.experience-details ul{max-width:70ch;color:var(--muted);margin:9px 0 0;padding-left:19px}.experience-details li+li{margin-top:7px}.education-entry{padding-block:10px}.education-entry+.education-entry{margin-top:4px}.entry-facts{flex-wrap:wrap;gap:5px 24px;margin:8px 0 4px 36px;font-size:14px;display:flex}.entry-facts>div{flex-wrap:wrap;gap:4px 8px;display:flex}.entry-facts dt{color:var(--muted)}.entry-facts dd{margin:0;font-weight:500}.education-entry .entry-facts{margin-bottom:0}.education-entry .education-details{margin-top:8px}.education-details .entry-section:first-of-type{margin-top:12px}.entry-section{max-width:70ch;color:var(--muted);margin-top:20px}.entry-section h4{color:var(--ink);margin:0 0 6px;font-size:15px;font-weight:500}.empty-state{color:var(--muted);padding-block:28px}.resume-view{padding-top:26px}.resume-loading{color:var(--muted);padding:24px;font-size:15px}.viewer-dialog{border:1px solid var(--muted);background:var(--page);width:min(1080px,100% - 32px);max-height:calc(100dvh - 32px);color:var(--ink);font:inherit;border-radius:0;margin:auto;padding:0;overflow:auto}.viewer-dialog::backdrop{background:#2427226b}.viewer-dialog:has(.browser-message){width:min(620px,100% - 32px)}.viewer-heading{z-index:2;border-bottom:1px solid var(--line);background:var(--page);justify-content:space-between;align-items:center;gap:24px;padding:16px 24px;display:flex;position:sticky;top:0}.viewer-heading h2{font-size:22px}.viewer-content{padding:20px 24px 24px}.viewer-dialog .resume-view{padding-top:0}.browser-toolbar{justify-content:space-between;align-items:center;gap:12px 20px;margin-top:12px;font-size:14px;display:flex}.browser-toolbar .action-button{flex-shrink:0}.browser-location{text-align:right;overflow-wrap:anywhere;min-width:0;color:var(--muted);align-self:flex-start;margin:0;padding-top:2px;font-size:13px}.browser-frame{border:1px solid var(--line);background:var(--page);touch-action:none;width:100%;height:min(62vh,650px);min-height:160px;max-height:calc(100dvh - 240px);position:relative;overflow:hidden}.browser-frame img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.browser-frame--unavailable{display:none}.browser-loading{background:var(--page);color:var(--muted);place-items:center;font-size:15px;display:grid;position:absolute;inset:0}.browser-message{padding:20px 0;font-size:15px}.browser-message .text-button{margin-top:8px}.browser-notice{color:var(--ink);margin-top:12px;font-size:13px}.skip-link{z-index:1;background:var(--page);padding:8px 12px;position:absolute;top:10px;left:24px;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}main:focus{outline:none}@media (width<=600px){.profile-header--portrait .about-me{grid-area:auto/1/auto/-1}.profile-header--portrait .profile-portrait{grid-row:1}.profile-header--portrait{--portrait-size:110px;column-gap:20px}.profile-portrait{height:118px}.viewer-heading{padding:12px 16px}.viewer-content{padding:16px}.browser-frame{height:min(60vh,580px)}.page{margin-top:38px}.introduction{max-width:45ch}.portfolio-tabs{margin-top:29px}.project-row{grid-template-columns:1fr;gap:20px;min-height:0;padding-block:26px}.project-thumbnail{width:100%;height:auto}.project-title{font-size:20px}.project-detail>h1{font-size:26px}.story-section{margin-top:29px}.project-figure{margin-top:24px}}@media (width<=520px){.affiliation-row{grid-template-columns:24px minmax(0,1fr)}.affiliation-period{grid-column:2}.organization-logo{align-self:start;margin-top:2px}.experience-details{margin-top:3px}}@media (width<=360px){.profile-header--portrait{--portrait-size:92px;column-gap:16px}.profile-portrait{height:98px}h1{font-size:26px}.page{width:calc(100% - 36px)}.profile-links{column-gap:4px}.portfolio-tabs{gap:16px}}@media print{:root{color:#111;background:#fff;font-size:11pt}.page{width:100%;margin:0}.skip-link,.portfolio-tabs,.back-link,.email-popover{display:none}.profile-header{margin-bottom:24px}.project-row,.experience-entry,.story-section{break-inside:avoid}.project-row{min-height:0;margin-inline:0;padding:18px 0}.experience-details:not([open]){display:none}}.work-row{padding-block:22px}.work-row-heading{justify-content:space-between;align-items:baseline;gap:12px 24px;display:flex}.work-row-heading h3{font-size:20px;line-height:1.3}.work-row-heading .date{flex-shrink:0}.work-role{margin-top:8px;font-size:15px}.story-bullets{margin:0;padding-left:22px}.story-section>p+.story-bullets{margin-top:12px}.story-bullets li+li{margin-top:9px}@media (width<=600px){.work-row-heading{flex-direction:column;align-items:flex-start;gap:5px}.work-row-heading .date{margin-left:36px}.portfolio-tabs{gap:18px}.portfolio-tabs a{font-size:15px}}@media (width<=360px){.portfolio-tabs{gap:12px}.portfolio-tabs a{font-size:14px}}.resume-pdf-viewer{width:100%;height:min(78dvh,900px);min-height:300px}.viewer-dialog:has(.resume-pdf-viewer) .viewer-content{padding:0}.viewer-dialog:has(.resume-pdf-viewer) .viewer-heading{padding-block:12px}@media (width<=600px){.resume-pdf-viewer{height:calc(100dvh - 110px);min-height:250px}}.page--detail{margin-top:32px}.page--detail .project-detail{padding-top:0}@media (width<=600px){.page--detail{margin-top:24px}}.viewer-dialog:has(.email-options){width:min(460px,100% - 32px)}.email-options{font-size:16px}.email-options .email-feedback:not(:empty){color:var(--muted);margin-top:14px;font-size:14px}.email-address:focus{outline:none}.email-address:focus-visible{border-bottom-color:var(--accent)}.back-link svg{flex:0 0 16px}.gallery-stage{position:relative}.detail-gallery-rail{scroll-snap-type:x mandatory;scrollbar-width:none;display:flex;overflow-x:auto}.detail-gallery-rail::-webkit-scrollbar{display:none}.detail-gallery-slide{aspect-ratio:16/9;scroll-snap-align:start;background:var(--row-hover);flex:0 0 100%;min-width:0;position:relative;overflow:hidden}.detail-gallery .detail-gallery-slide>img{aspect-ratio:auto;object-fit:cover;object-position:left top;width:100%;height:100%;display:block;position:absolute;inset:0}.gallery-arrow{border:1px solid var(--line);background:var(--page);width:44px;height:44px;color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;place-items:center;padding:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-arrow--previous{left:12px}.gallery-arrow--next{right:12px}.gallery-stage:hover .gallery-arrow,.gallery-stage:focus-within .gallery-arrow{opacity:1;pointer-events:auto}.gallery-stage:hover .gallery-arrow:disabled,.gallery-stage:focus-within .gallery-arrow:disabled{opacity:.35;cursor:default}.gallery-arrow:hover:not(:disabled){background:var(--accent);color:var(--page);border-color:var(--accent)}.gallery-footer{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.gallery-position{font-variant-numeric:tabular-nums;flex-shrink:0}@media (width<=600px),(hover:none),(pointer:coarse){.gallery-arrow{opacity:1;pointer-events:auto}.gallery-arrow:disabled{opacity:.35;cursor:default}}.viewer-dialog:has(.linkedin-card){width:min(420px,100% - 32px)}.linkedin-card-frame{border:0;width:100%;height:40px;display:block;overflow:hidden}.viewer-dialog:has(.linkedin-card){overflow:hidden}.linkedin-card-footer{justify-content:flex-end}.memory-index-row{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:20px;min-height:0}.memory-index-row .project-copy{grid-area:1/2}.memory-index-image{aspect-ratio:1;object-fit:cover;object-position:center;grid-area:1/1;width:96px;height:96px;display:block}@media (width<=600px){.memory-index-row{grid-template-columns:72px minmax(0,1fr);gap:14px}.memory-index-image{width:72px;height:72px}}.work-team{margin-top:36px}.work-team+.work-team{border-top:1px solid var(--line);padding-top:32px}.work-team>h2{margin-bottom:6px;font-size:22px}.work-team .story-section>h3{letter-spacing:0;margin-bottom:10px;font-size:18px;line-height:1.4}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.resume-pdf-viewer{background:#dfe3db;flex-direction:column;display:flex}.pdf-document-viewport{flex:1;min-height:0}.pdf-toolbar{background:var(--page);border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.pdf-tool-group{align-items:center;gap:2px;display:flex}.pdf-tool-button{min-width:36px;height:36px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:8px;font-size:14px;display:inline-flex}.pdf-tool-button svg{flex:none}.pdf-tool-button:hover:not(:disabled){background:var(--row-hover)}.pdf-tool-button:disabled{opacity:.4;cursor:default}.pdf-tool-button:focus-visible,.pdf-toolbar input:focus-visible,.pdf-toolbar select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.pdf-print-button{border:1px solid var(--ink);margin-left:auto;padding-inline:12px}.pdf-zoom-label{align-items:center;display:flex;position:relative}.pdf-zoom-label select{border:1px solid var(--line);width:100px;height:34px;font:inherit;background:var(--page);color:var(--ink);appearance:none;cursor:pointer;border-radius:0;padding:4px 28px 4px 8px;font-size:14px}.pdf-zoom-label>svg{pointer-events:none;width:14px;height:14px;position:absolute;right:7px}.pdf-control-error{background:var(--page);margin:0;padding:8px 16px;font-size:14px}@media (width<=600px){.pdf-toolbar{gap:8px;padding:8px}.pdf-tool-button{min-width:36px}.pdf-print-button span{display:none}.pdf-print-button{padding-inline:8px}}
