*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--color-primary:23 97 220;--on-primary:#fff;--background:#f6f5f1;--surface:#fff;--ink:#15202e;--muted:#526071;--line:#cbd0d4;--control-line:#818b96;--soft:#e9ebeb;--header:hsla(48,22%,95%,.93);color-scheme:light}:root.dark{--color-primary:118 172 255;--on-primary:#0d1521;--background:#0d1521;--surface:#192333;--ink:#edf0f4;--muted:#a9b8ca;--line:#354458;--control-line:#687b94;--soft:#172232;--header:rgba(13,21,33,.94);color-scheme:dark}html{scroll-behavior:smooth;scroll-padding-top:94px}body{background:var(--background);color:var(--ink);font-family:Manrope,sans-serif;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Space Grotesk,Manrope,sans-serif;font-weight:500;line-height:1.08;letter-spacing:-.045em}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}:where(a,button):focus-visible{outline:2px solid rgb(var(--color-primary));outline-offset:5px}[hidden]{display:none!important}.theme-changing *,.theme-changing :after,.theme-changing :before{transition:none!important}::-moz-selection{background:rgb(var(--color-primary)/.2);color:var(--ink)}::selection{background:rgb(var(--color-primary)/.2);color:var(--ink)}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.container{width:min(100%,1320px);margin-inline:auto;padding-inline:48px}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:22px;line-height:1;display:inline-block;width:1em;height:1em;overflow:hidden;flex-shrink:0;white-space:nowrap;letter-spacing:normal;text-transform:none;direction:ltr;font-feature-settings:"liga";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle;-webkit-font-smoothing:antialiased}.skip-link{position:fixed;top:8px;left:20px;z-index:100;padding:10px 16px;background:var(--surface);color:var(--ink);transform:translateY(-160%)}.skip-link:focus{transform:none}.site-header{position:sticky;top:0;z-index:50;background:var(--header);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.header-row{height:78px;display:flex;align-items:center;gap:26px}.brand{display:block;width:182px;flex:0 0 auto}.brand svg{width:100%;height:auto;max-height:none;max-width:none}.desktop-nav{display:flex;align-items:center;gap:16px;margin-left:auto;white-space:nowrap}.desktop-nav a{position:relative;padding:14px 2px;font-size:14px;font-weight:600;color:var(--muted);transition:color .16s}.desktop-nav a:hover,.desktop-nav a[aria-current]{color:rgb(var(--color-primary));background:var(--background)}.desktop-nav a:after{content:"";position:absolute;height:2px;inset:auto 2px 6px;background:rgb(var(--color-primary));transform:scaleX(0);transform-origin:left;transition:transform .18s}.desktop-nav a:hover:after,.desktop-nav a[aria-current]:after{transform:scaleX(1)}.site-header :where(a,button):focus-visible{box-shadow:0 0 0 6px var(--background)}.header-controls{display:flex;align-items:center;gap:3px;flex-shrink:0}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);border-radius:3px;transition:color .16s,background .16s}.icon-button:hover{background:var(--soft);color:var(--ink)}.lang-code{font-size:11px;font-weight:800;letter-spacing:.06em}.header-cv{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 12px;margin-right:4px;border:1px solid var(--control-line);border-radius:3px;background:var(--soft);color:var(--ink);font-size:12px;font-weight:700;white-space:nowrap}.header-cv .material-symbols-outlined{font-size:18px;color:rgb(var(--color-primary))}.header-cv:hover{color:rgb(var(--color-primary));border-color:rgb(var(--color-primary));background:var(--background)}.menu-button{display:none}.mobile-panel{border-top:1px solid var(--line);background:var(--background);animation:menu-in .18s ease-out}.mobile-panel nav{display:flex;flex-direction:column;padding-block:12px 20px}.mobile-panel a{padding:11px 12px;color:var(--muted);font-weight:600}.mobile-panel a[aria-current]{color:rgb(var(--color-primary));box-shadow:inset 2px 0 rgb(var(--color-primary))}.mobile-panel a:hover{background:var(--soft)}.mobile-panel .mobile-cv{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);margin-top:8px;padding-top:18px}.folio{display:flex;align-items:center;gap:14px;font-family:Manrope,sans-serif;color:var(--muted);font-size:10px;line-height:1.6;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.page-index{color:rgb(var(--color-primary));line-height:1.4;white-space:nowrap}.page-index,.section-index{font-family:Space Grotesk,sans-serif;font-size:14px;font-weight:500;letter-spacing:.025em}.section-index{color:var(--muted);min-width:22px}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:13px 20px;border-radius:3px;font-size:13px;line-height:1.4;font-weight:700;transition:border-color .16s,transform .16s}.button-primary{background:rgb(var(--color-primary));color:var(--on-primary);border:1px solid rgb(var(--color-primary))}.button-secondary{background:transparent;color:var(--ink);border:1px solid var(--control-line)}.button:hover{text-decoration:underline;text-underline-offset:4px}.button .material-symbols-outlined{font-size:19px;transition:transform .18s}.button-primary:hover .material-symbols-outlined{transform:translateX(3px)}.button-secondary:hover{border-color:rgb(var(--color-primary))}.button:active{transform:translateY(1px)}.button:disabled{cursor:wait;opacity:.7;transform:none}.text-link{min-height:44px;display:inline-flex;align-items:center;gap:12px;font-size:14px;color:rgb(var(--color-primary));font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.text-link .material-symbols-outlined{font-size:19px;transition:transform .18s}.text-link:hover .material-symbols-outlined{transform:translateX(3px)}.home-hero{--hero-size:clamp(72px,7.1vw,100px);width:min(100%,1120px);margin-inline:auto;display:grid;grid-template-rows:auto min-content minmax(0,1fr);grid-template-columns:minmax(0,1fr) clamp(260px,26vw,320px);-moz-column-gap:32px;column-gap:32px;row-gap:22px;padding-block:54px 56px}.hero-folio{grid-column:1/-1;justify-content:space-between;padding-bottom:19px;border-bottom:1px solid var(--line)}.hero-folio>span:first-child{display:inline-flex;gap:14px}.hero-name{grid-column:1;grid-row:2;font-size:var(--hero-size);line-height:1.03;letter-spacing:-.065em;padding-block:4px 12px}.hero-name>span{display:block}.name-family{padding-left:5%;white-space:nowrap}.name-family>span:first-child,.name-family>span:nth-child(2){display:inline}.name-period{color:rgb(var(--color-primary))}.hero-copy{grid-column:1;grid-row:3;display:flex;flex-direction:column;gap:22px;align-self:start}.hero-intro{max-width:56ch;font-family:Space Grotesk,sans-serif;font-size:22px;line-height:1.55;letter-spacing:-.025em}.hero-detail{max-width:67ch;color:var(--muted);font-size:16px;line-height:1.8}.hero-actions{margin-top:4px;display:flex;gap:28px;align-items:center;flex-wrap:wrap}.cv-link{color:var(--ink)}.portrait{grid-column:2;grid-row:2/4;align-self:start;width:100%;max-width:320px;margin-top:4px;justify-self:start}.portrait-frame{padding:7px;border:1px solid var(--line);position:relative}.portrait-frame:before{content:"";width:32px;height:2px;background:rgb(var(--color-primary));position:absolute;top:-1px;left:-1px}.portrait img{display:block;width:100%;height:auto;aspect-ratio:3/4}.portrait figcaption{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;margin-top:12px}.portrait figcaption .material-symbols-outlined{font-size:15px}.origin-section{width:min(100%,1120px);margin-inline:auto;padding-block:48px 64px;border-top:1px solid var(--ink)}.origin-label h2{font-size:52px;max-width:none;margin-top:24px}.origin-copy{max-width:80ch;padding-top:30px}.origin-copy p{margin-bottom:23px;color:var(--muted);font-size:16px;line-height:1.85}.origin-copy p:nth-child(2),.origin-copy p:nth-child(4){margin-bottom:0}.origin-copy strong{color:var(--ink);font-weight:700}.origin-copy .story-opening,.origin-copy p[data-i18n=story_6]{color:var(--ink);font-size:22px;line-height:1.55;font-family:Space Grotesk,sans-serif;letter-spacing:-.025em}.interior-container{padding-block:54px 60px}.page-heading{display:grid;grid-template-columns:7fr 4fr;-moz-column-gap:8%;column-gap:8%;padding-bottom:44px;margin-bottom:44px;border-bottom:1px solid var(--ink)}.page-heading>.folio{grid-column:1/-1;padding-bottom:33px}.page-heading h1{font-size:clamp(46px,5.2vw,68px);max-width:17ch}.page-intro{color:var(--muted);font-size:15px;line-height:1.85;align-self:end;max-width:45ch}.page-exp .page-heading{border-bottom:0}.page-skills .page-heading{display:block}.page-skills .page-heading h1{max-width:none}.page-skills .page-intro{margin-top:20px;max-width:none}.timeline{position:relative;list-style:none}.timeline:before{content:"";position:absolute;top:1px;bottom:25px;left:156px;width:1px;background:var(--line)}.timeline-item{display:grid;grid-template-columns:136px minmax(0,1fr);gap:42px;position:relative}.timeline-item:before{content:"";width:7px;height:7px;border:1px solid var(--muted);background:var(--background);position:absolute;left:153px;top:40px}.current-job:before{background:rgb(var(--color-primary));border-color:rgb(var(--color-primary))}.job-period{color:var(--muted);font-size:12.5px;line-height:1.75;font-weight:600;padding-top:34px}.job{display:grid;grid-template-columns:1fr 1.15fr;gap:40px;padding-block:33px 38px;border-top:1px solid var(--line)}.current-job .job{border-top:2px solid rgb(var(--color-primary))}.job-company{display:flex;align-items:center;gap:12px;margin-bottom:21px}.job-company img{width:32px;height:32px;-o-object-fit:contain;object-fit:contain;background:#fff;border:1px solid #e2e8f0;padding:2px}.job-company p{color:var(--muted);font-size:13px;font-weight:700}.job h2{font-size:27px;line-height:1.18;max-width:20ch}.current-job .job h2{font-size:33px}.job-body{max-width:56ch;font-size:16px;line-height:1.8;color:var(--muted)}.job-body ul{list-style:disc;padding-left:17px;text-align:left}.job-body li+li{margin-top:10px}.job-body li::marker{color:rgb(var(--color-primary));font-size:9px}.job-body strong{color:var(--ink);font-weight:700}.job-tags{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:23px}.job-tags .tag{white-space:nowrap}.tag{font-size:12px;font-weight:600;line-height:1.7;color:var(--muted)}.tag+.tag:before{content:"·";padding-right:10px;color:var(--muted)}.contact-invite{flex-wrap:wrap;gap:0 8px;padding-top:28px;margin-top:23px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.contact-invite,.section-title{display:flex;align-items:baseline}.section-title{gap:20px;font-size:27px}.stack-list{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:40px;padding-block:33px 50px}.stack-group{border-left:1px solid var(--line);padding-left:28px}.stack-group:first-child{border:0;padding-left:0}.stack-heading{display:flex;gap:12px;align-items:center;margin-bottom:22px}.stack-heading .material-symbols-outlined{color:rgb(var(--color-primary));font-size:24px}.stack-heading h3{font-family:Manrope,sans-serif;font-size:13px;font-weight:700;letter-spacing:-.01em;line-height:1.5}.stack-group li{color:var(--muted);font-size:14px;line-height:1.7;padding-block:5px}.stack-group:first-child li:nth-child(-n+2){font-family:Space Grotesk,sans-serif;color:rgb(var(--color-primary));font-size:30px;line-height:1.25;letter-spacing:-.04em;padding-block:4px}.stack-group:first-child li:nth-child(2){margin-bottom:14px}.projects-section{margin-top:44px;padding-top:32px;border-top:1px solid var(--ink)}.projects-heading{display:flex;justify-content:space-between;align-items:baseline;gap:32px;margin-bottom:30px}.projects-heading p{color:var(--muted);font-size:14px;max-width:44ch}.projects-grid{border-top:1px solid var(--line)}.project{display:grid;grid-template-columns:3.5fr 6.5fr 2fr;gap:32px;padding-block:29px;border-bottom:1px solid var(--line)}.project-name{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px 12px;align-items:center}.project-icon{color:rgb(var(--color-primary));align-self:start;padding-top:5px}.project-icon svg{width:23px;height:23px}.project h3{font-size:33px}.project-type{grid-column:2;color:var(--muted);font-size:12px;align-self:start}.project-description{color:var(--muted);font-size:16px;line-height:1.8;max-width:52ch}.project-details{align-self:center;justify-self:end}.project-link{font-size:14px;margin-top:9px}.certifications{display:grid;grid-template-columns:3fr 8fr;gap:7%;margin-top:0;padding-top:32px;border-top:1px solid var(--ink)}.cert-list{border-top:1px solid var(--line)}.cert-list li{display:flex;gap:16px;border-bottom:1px solid var(--line);padding-block:16px}.cert-list .material-symbols-outlined{font-size:19px;color:rgb(var(--color-primary));margin-top:2px}.cert-list li>div{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;align-items:baseline;width:100%}.cert-list h3{font-family:Manrope,sans-serif;font-size:14px;letter-spacing:-.01em;line-height:1.6;font-weight:700}.cert-list p{color:var(--muted);font-size:13px}body[data-page=contact]{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}body[data-page=contact]>.site-footer,body[data-page=contact]>.site-header{flex-shrink:0}body[data-page=contact]>main{display:flex;flex:1}.page-contact .contact-sheet{display:flex;flex-direction:column;padding-block:54px 48px}.page-contact .contact-heading{display:grid;grid-template-columns:7fr 4fr;gap:8%;align-items:center;margin-block:38px 42px}.page-contact .contact-heading h1{font-size:clamp(70px,8.4vw,116px);letter-spacing:-.075em}.page-contact .contact-lead{font-size:16px;line-height:1.75}.page-contact .contact-description{font-size:15px;color:var(--muted);line-height:1.85;margin-top:17px}.page-contact .contact-location{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14px;margin-top:22px}.page-contact .contact-location .material-symbols-outlined{font-size:17px}.page-contact .contact-body{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:8%;border-top:1px solid var(--ink);padding-top:28px;margin-top:auto;margin-bottom:42px;position:relative}.page-contact .contact-body:before{content:"";position:absolute;top:-2px;left:0;width:64px;height:3px;background:rgb(var(--color-primary))}.page-contact .email-address{display:flex;align-items:center;flex-wrap:wrap;font-family:Space Grotesk,sans-serif;font-size:clamp(40px,4.3vw,56px);line-height:1.15;font-weight:500;color:rgb(var(--color-primary));letter-spacing:-.065em;margin-block:26px;padding-block:7px}.page-contact .email-address:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:9px}.page-contact .email-arrow{font-size:28px;margin-left:auto;transform:rotate(-45deg);transition:transform .2s}.page-contact .email-address:hover .email-arrow{transform:translate(2px,-2px) rotate(-45deg)}.page-contact .email-actions{display:flex;gap:10px;flex-wrap:wrap}.page-contact .email-actions .button{font-size:13px;padding-inline:16px;gap:10px}.page-contact .copy-feedback{min-height:1.75em;color:var(--muted);font-size:13px;margin-top:12px}.page-contact .copy-feedback[data-state=error]{color:var(--ink)}.page-contact .contact-elsewhere{padding-left:28px;border-left:1px solid var(--line)}.page-contact .contact-destinations{margin-top:8px}.page-contact .contact-destinations li+li{border-top:1px solid var(--line)}.page-contact .destination-link{display:grid;grid-template-columns:28px minmax(0,1fr) 20px;gap:14px;align-items:start;padding-block:21px;min-height:44px}.page-contact .destination-mark{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:2px}.page-contact .destination-mark svg{width:26px;height:26px}.page-contact .linkedin-monogram{background:#fff;border-radius:2px}.page-contact .linkedin-monogram svg{width:21px;height:21px}.page-contact .destination-copy{display:flex;flex-direction:column;align-items:flex-start}.page-contact .destination-copy strong{font-family:Space Grotesk,sans-serif;font-size:28px;line-height:1.15;font-weight:500;letter-spacing:-.035em}.page-contact .destination-description{font-size:14px;line-height:1.6;color:var(--muted);margin-top:9px}.page-contact .destination-action{font-size:13px;font-weight:700;color:rgb(var(--color-primary));margin-top:10px;text-decoration:underline;text-underline-offset:4px}.page-contact .destination-link>.material-symbols-outlined{font-size:20px;color:rgb(var(--color-primary));margin-top:5px;transition:transform .2s}.page-contact .destination-link:hover strong{color:rgb(var(--color-primary))}.page-contact .destination-link:hover>.material-symbols-outlined{transform:translate(2px,-2px)}.page-contact .contact-closing{margin-top:auto;border-top:1px solid var(--line);padding-top:30px}.page-contact .contact-closing p{font-family:Space Grotesk,sans-serif;font-size:clamp(24px,2.2vw,30px);line-height:1.45;letter-spacing:-.035em;max-width:48ch}.page-contact .contact-closing strong{font-weight:500;color:rgb(var(--color-primary))}.site-footer{color:var(--muted)}.site-footer .container{border-top:1px solid var(--line)}.site-footer p{padding-block:25px;font-size:10px}.scroll-top{position:fixed;bottom:18px;right:18px;width:44px;height:44px;border:1px solid var(--line);background:var(--background);border-radius:3px;color:rgb(var(--color-primary));display:flex;align-items:center;justify-content:center;z-index:40}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.hidden{display:none}.h-6{height:1.5rem}.h-auto{height:auto}.max-h-10{max-height:2.5rem}.w-6{width:1.5rem}.w-full{width:100%}.max-w-\[50vw\]{max-width:50vw}.fill-current{fill:currentColor}.fill-slate-600{fill:#475569}.fill-slate-900{fill:#0f172a}.text-\[\#0077b5\]{--tw-text-opacity:1;color:rgb(0 119 181/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url(../assets/fonts/manrope-latin-v20.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(../assets/fonts/material-symbols-outlined-32-v375.woff2) format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/montserrat-latin-v31.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/montserrat-latin-v31.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:900;font-display:swap;src:url(../assets/fonts/montserrat-latin-v31.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(../assets/fonts/space-grotesk-latin-v22.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@keyframes menu-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@media (min-width:1024px){#mobile-menu{display:none!important}.origin-copy{max-width:min(920px,calc(100% - 48px))}}@media (max-width:1199px){.container{padding-inline:36px}.header-row{gap:18px}.brand{width:166px}.desktop-nav{gap:10px}.desktop-nav a{font-size:13.5px}.header-cv{padding-inline:9px;margin-right:2px}.home-hero{-moz-column-gap:32px;column-gap:32px}.project{gap:24px}.project h3{font-size:29px}.job{gap:30px}.certifications{grid-template-columns:3fr 7fr;gap:6%}}@media (max-width:1023px){.desktop-nav,.header-cv{display:none}.menu-button{display:inline-flex}.header-row{height:72px;justify-content:space-between}.brand{width:180px}.home-hero{--hero-size:clamp(56px,8.2vw,80px);grid-template-columns:minmax(0,1fr) clamp(180px,23vw,224px);-moz-column-gap:24px;column-gap:24px;padding-block:40px 44px}.name-family{padding-left:6%;white-space:normal}.name-family>span:first-child{display:block}.name-family>span:nth-child(2){display:inline-block;margin-left:9%}.hero-copy{grid-column:1/-1}.hero-intro{font-size:20px;max-width:56ch}.hero-detail{max-width:67ch}.portrait{grid-column:2;grid-row:2;width:100%;margin-top:0;align-self:center}.portrait figcaption{font-size:11px}.origin-label h2{font-size:42px}.timeline:before{left:112px}.timeline-item{grid-template-columns:96px minmax(0,1fr);gap:37px}.timeline-item:before{left:109px}.job{grid-template-columns:1fr;gap:24px}.job h2{max-width:none}.job-tags{margin-top:16px}.job-body{max-width:64ch;font-size:16px}.stack-list{gap:22px}.stack-group{padding-left:21px}.stack-group:first-child li:nth-child(-n+2){font-size:25px}.projects-heading{display:block}.projects-heading p{margin-top:12px}.project{grid-template-columns:3fr 5fr}.project-details{grid-column:2;justify-self:start}.project-name{grid-row:1/3;grid-template-columns:24px minmax(0,1fr);align-content:start}.project h3,.project-type{grid-column:2}.certifications{grid-template-columns:1fr;gap:24px}.page-contact .contact-heading{gap:6%}.page-contact .contact-heading h1{font-size:8.3vw}}@media (max-width:899px){.origin-copy .story-opening,.origin-copy p[data-i18n=story_6]{font-size:20px}.stack-heading{display:block}.stack-heading h3{margin-top:12px}.stack-group li{font-size:14px}.cert-list li>div{gap:20px}}@media (max-width:767px){.job-tags{display:none}}@media (max-width:599px){.container{padding-inline:22px}.header-row{height:68px;gap:8px}.brand{width:clamp(120px,39vw,153px)}.header-controls{gap:1px}.home-hero{--hero-size:clamp(43px,13vw,73px);grid-template-columns:minmax(0,1fr) clamp(120px,35vw,156px);-moz-column-gap:18px;column-gap:18px;row-gap:23px;padding-block:29px 36px}.hero-folio{padding-bottom:17px;font-size:9px}.hero-folio>span:first-child{gap:9px}.hero-name{grid-column:1/-1;padding-block:0 2px}.name-family{font-size:clamp(36px,10.5vw,52px);padding-left:6px}.name-family>span:first-child{display:block}.name-family>span:nth-child(2){display:inline-block;margin-left:18px}.portrait{grid-column:2;grid-row:2;max-width:156px;margin-top:calc(var(--hero-size)*1.03 + 12px);align-self:start}.portrait-frame{padding:4px}.portrait figcaption{font-size:11px;gap:4px;margin-top:8px;flex-wrap:wrap}.hero-intro{font-size:19px;max-width:none}.hero-detail{font-size:16px;max-width:none}.hero-actions{gap:22px}.button{font-size:12.5px;padding-inline:15px;gap:12px}.text-link{font-size:14px}.folio{font-size:9px;gap:11px}.origin-section{padding-block:31px 44px}.origin-label{position:relative}.origin-label h2{font-size:39px;margin-top:23px}.origin-copy{padding-top:25px}.origin-copy p{font-size:16px}.origin-copy .story-opening,.origin-copy p[data-i18n=story_6]{font-size:19px}.interior-container{padding-block:29px 38px}.page-heading{grid-template-columns:1fr;gap:22px;padding-bottom:30px;margin-bottom:29px}.page-heading>.folio{padding-bottom:0}.page-heading h1{font-size:clamp(36px,10vw,52px)}.page-intro{font-size:15px;line-height:1.85;max-width:none}.page-skills .page-heading>.folio{padding-bottom:22px}.timeline:before{left:3px;top:7px;bottom:30px}.timeline-item{grid-template-columns:1fr;gap:0;padding-left:24px}.timeline-item:before{left:0;top:7px}.job-period{padding-top:0;font-size:12px;padding-bottom:15px}.job{padding-block:19px 30px;gap:22px}.job h2{font-size:26px;max-width:19ch}.current-job .job h2{font-size:30px}.job-company{gap:10px;margin-bottom:18px}.job-company img{width:29px;height:29px}.job-company p{font-size:12.5px}.job-body{font-size:15px;line-height:1.8}.tag{font-size:11.5px}.contact-invite{font-size:14px;line-height:1.9}.section-title{font-size:24px;gap:16px}.stack-list{grid-template-columns:1fr 1fr;gap:25px 18px;padding-block:25px 33px}.stack-group{padding-left:16px}.stack-group:first-child{grid-column:1/-1;padding-bottom:26px;border-bottom:1px solid var(--line)}.stack-group:nth-child(2){border:0;padding-left:0}.stack-heading{display:flex;gap:7px}.stack-heading .material-symbols-outlined{font-size:19px}.stack-heading h3{margin:0;font-size:12px}.stack-group:first-child ul{display:block}.stack-group:first-child li:nth-child(-n+2){font-size:30px;margin-bottom:0}.stack-group:first-child li:nth-child(2){margin-bottom:14px}.stack-group:first-child li:nth-child(n+3){grid-column:1/-1}.stack-group li{font-size:13.5px}.projects-section{padding-top:28px}.projects-heading{margin-bottom:23px}.projects-heading p{font-size:14px}.project{grid-template-columns:1fr;gap:18px;padding-block:25px}.project-name{grid-column:1;grid-row:auto;grid-template-columns:24px minmax(0,1fr);gap:7px 12px}.project h3{font-size:35px}.project-description{padding-left:36px;font-size:15px}.project-details{grid-column:1;padding-left:36px}.project-link{margin-top:7px}.certifications{margin-top:0;padding-top:26px}.cert-list li>div{grid-template-columns:1fr;gap:5px}.cert-list h3{font-size:13.5px}.cert-list p{font-size:12.5px}.page-contact .contact-sheet{padding-block:29px 36px}.page-contact .contact-heading{grid-template-columns:1fr;gap:24px;margin-block:28px 32px}.page-contact .contact-heading h1{font-size:clamp(52px,14vw,79px)}.page-contact .contact-lead{font-size:15px;max-width:36ch}.page-contact .contact-description{font-size:15px;margin-top:14px;max-width:42ch}.page-contact .contact-location{margin-top:18px}.page-contact .contact-body{grid-template-columns:1fr;gap:26px;padding-top:21px;margin-bottom:30px}.page-contact .email-address{font-size:clamp(37px,11.3vw,52px);position:relative;margin-block:22px 24px;line-height:1.06;padding-right:32px;letter-spacing:-.055em}.page-contact .email-domain{flex-basis:100%}.page-contact .email-arrow{position:absolute;top:12px;right:0;font-size:26px}.page-contact .email-actions .button{flex:1 1 145px;font-size:12.5px;padding-inline:12px;gap:8px}.page-contact .copy-feedback{margin-top:10px}.page-contact .contact-elsewhere{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:21px}.page-contact .contact-destinations{display:block;margin-top:4px}.page-contact .destination-link{padding-block:18px;gap:12px}.page-contact .destination-copy strong{font-size:25px}.page-contact .destination-action,.page-contact .destination-description{margin-top:7px}.page-contact .contact-closing{padding-top:24px}.page-contact .contact-closing p{font-size:23px;line-height:1.45}.site-footer p{font-size:9px;padding-block:21px}.scroll-top{right:12px;bottom:12px}}@media (max-width:359px){.container{padding-inline:18px}.hero-actions{gap:16px}.hero-actions .button{padding-inline:12px}.hero-actions .text-link{font-size:13px;gap:7px}.origin-label h2{font-size:35px}.stack-group:first-child li:nth-child(-n+2){font-size:28px}.stack-heading{display:block}.stack-heading h3{margin-top:9px}}@media (min-width:600px) and (max-width:899px){.page-contact .contact-heading{grid-template-columns:1fr;gap:25px;align-items:start}.page-contact .contact-heading h1{font-size:clamp(64px,10vw,88px)}.page-contact .contact-copy{max-width:58ch}.page-contact .contact-body{grid-template-columns:1fr;gap:30px}.page-contact .contact-elsewhere{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:24px}.page-contact .contact-destinations{display:grid;grid-template-columns:1fr 1fr;gap:28px}.page-contact .contact-destinations li+li{border-top:0;border-left:1px solid var(--line);padding-left:28px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}}.dark\:fill-slate-400:is(.dark *){fill:#94a3b8}.dark\:fill-white:is(.dark *){fill:#fff}@media (min-width:768px){.md\:h-10{height:2.5rem}.md\:w-auto{width:auto}.md\:max-w-none{max-width:none}}