:root{--color-paper:#fcfcfa;--color-paper-2:#f3f2ee;--color-ink:#1a2028;--color-ink-2:#3d4653;--color-accent:#174284;--color-accent-ink:#fcfcfa;--color-focus:#1b4f9e;--font-display:"Manrope", Arial, sans-serif;--font-body:"Manrope", Arial, sans-serif;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:40px;--cv-body-size:13px;--cv-small-size:11px;--cv-heading-size:17px;--cv-title-size:20px;--cv-name-size:38px}@supports (color:lab(0% 0 0)){:root{--color-paper:lab(98.8505% -.00655651 .761843);--color-paper-2:lab(95.386% -.0118315 1.90759);--color-ink:lab(11.7665% -.677303 -6.54054);--color-ink-2:lab(29.1428% -1.02773 -9.11638);--color-accent:lab(28.1927% 5.31246 -41.8606);--color-accent-ink:lab(98.8505% -.00655651 .761843);--color-focus:lab(33.7848% 6.75082 -48.8011)}}.cv-document{background:var(--color-paper);width:100%;min-height:100%;color:var(--color-ink);font-family:var(--font-body);font-size:var(--cv-body-size);font-synthesis:none;text-align:left;-webkit-print-color-adjust:exact;print-color-adjust:exact;line-height:1.45;position:relative}.cv-document *,.cv-document :before,.cv-document :after{box-sizing:border-box}.cv-document a{color:inherit;text-decoration:none}.cv-document a:hover{color:var(--color-accent);text-underline-offset:.2em;text-decoration:underline}.cv-document :is(a,button):focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.cv-document ::selection{background:var(--color-accent);color:var(--color-accent-ink)}.cv-document p,.cv-document li,.cv-document dd{text-wrap:pretty}.cv-document h1,.cv-document h2,.cv-document h3{overflow-wrap:break-word;text-wrap:balance;min-width:0}.cv-web-actions,.cv-paper{width:min(100%,820px);margin:0 auto}.cv-web-actions{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-lg) var(--space-2xl) var(--space-md);display:flex}.cv-explore{min-height:44px;padding:var(--space-xs) var(--space-md);background:var(--color-ink);color:var(--color-accent-ink);font:500 13px/1.3 var(--font-body);white-space:nowrap;cursor:pointer;border:0;border-radius:0}.cv-explore:hover{background:var(--color-accent)}.cv-explore:active{background:var(--color-ink-2)}.cv-explore:disabled{opacity:.55;cursor:not-allowed}.cv-download{white-space:nowrap;align-items:center;min-height:44px;font-size:13px;font-weight:500;display:inline-flex}.cv-paper{padding:var(--space-lg) var(--space-2xl) var(--space-2xl)}.cv-identity{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 112px;align-items:start;margin:0;display:grid}.cv-identity-copy{min-width:0}.cv-document h1{color:var(--color-ink);font-family:var(--font-display);font-size:var(--cv-name-size);letter-spacing:-.04em;margin:0 0 var(--space-xs);font-weight:700;line-height:1.08}.cv-document .cv-title{color:var(--color-accent);font-size:var(--cv-title-size);letter-spacing:-.025em;margin:0 0 var(--space-xs);font-weight:500;line-height:1.25}.cv-subtitle{font-size:var(--cv-small-size);margin:0;line-height:1.5}.cv-portrait{background:var(--color-paper-2);width:112px;height:136px;position:relative;overflow:hidden}.cv-portrait img{object-fit:cover;object-position:50% 30%;transform-origin:50% 30%;transform:scale(1.65)}.cv-contact-details{column-gap:var(--space-md);row-gap:var(--space-3xs);margin-top:var(--space-sm);font-size:var(--cv-small-size);grid-template-columns:max-content minmax(0,1fr);line-height:1.5;display:grid}.cv-contact-details a,.cv-contact-details span{overflow-wrap:break-word;min-width:0}.cv-introduction{margin:var(--space-lg) 0 0;font-size:var(--cv-body-size);line-height:1.55}.cv-navigation{gap:var(--space-sm) var(--space-lg);margin:var(--space-md) 0 0;font-size:var(--cv-small-size);color:var(--color-ink-2);flex-wrap:wrap;display:flex}.cv-navigation a{align-items:center;min-height:36px;display:inline-flex}.cv-columns{gap:var(--space-xl);margin-top:var(--space-lg);grid-template-columns:minmax(0,2.05fr) minmax(0,1fr);display:grid}.cv-record,.cv-reference{min-width:0}.cv-section{scroll-margin-top:var(--space-lg);margin:0}.cv-section+.cv-section{margin-top:var(--space-lg)}.cv-document h2{font-family:var(--font-display);font-size:var(--cv-heading-size);letter-spacing:-.025em;margin:0 0 var(--space-md);font-weight:700;line-height:1.25}.cv-document h3{font-size:var(--cv-body-size);color:var(--color-accent);margin:0;font-weight:700;line-height:1.4}.cv-experience+.cv-experience,.cv-project+.cv-project{margin-top:var(--space-md)}.cv-experience-meta{gap:var(--space-3xs);font-size:var(--cv-small-size);margin:var(--space-2xs) 0 var(--space-xs);line-height:1.4;display:grid}.cv-experience-meta>:last-child{color:var(--color-ink-2);font-variant-numeric:tabular-nums}.cv-bullets{margin:var(--space-xs) 0 0;padding-left:var(--space-sm)}.cv-bullets li{padding-left:var(--space-2xs)}.cv-bullets li+li{margin-top:var(--space-xs)}.cv-project-category{font-size:var(--cv-small-size);margin:var(--space-2xs) 0 0;color:var(--color-ink-2)}.cv-technical-list{margin:0}.cv-technical-list>div+div{margin-top:var(--space-sm)}.cv-technical-list dt{margin-bottom:var(--space-2xs);font-weight:700}.cv-technical-list dd{margin:0}.cv-certification{align-items:center;gap:var(--space-sm);display:flex}.cv-certification+.cv-certification{margin-top:var(--space-sm)}.cv-certification img{object-fit:contain;flex:0 0 64px;width:64px;height:64px}.cv-certification>span{min-width:0}.cv-certification strong,.cv-certification span span{display:block}.cv-certification span span{margin-top:var(--space-2xs);font-size:var(--cv-small-size);color:var(--color-ink-2)}.cv-training p{margin:0}.cv-training p+p{margin-top:var(--space-sm)}.cv-training strong,.cv-training span{display:block}.cv-training strong{margin-bottom:var(--space-2xs);font-weight:700}.cv-languages{margin-top:var(--space-md)}.cv-languages p{margin:0 0 var(--space-2xs)}.cv-languages strong{font-weight:700}.cv-recommendations{margin-top:var(--space-2xl)}.cv-recommendations-heading{justify-content:space-between;align-items:baseline;gap:var(--space-sm);padding-bottom:var(--space-md);flex-wrap:wrap;display:flex}.cv-recommendations-heading h2{margin-bottom:var(--space-2xs)}.cv-recommendations-heading p{color:var(--color-ink-2);font-size:var(--cv-small-size);margin:0}.cv-recommendations-heading>a{align-items:center;gap:var(--space-xs);min-height:44px;color:var(--color-accent);display:inline-flex}.cv-recommendations-download{align-items:center;gap:var(--space-xs);min-height:44px;margin-bottom:var(--space-sm);color:var(--color-accent);display:inline-flex}.cv-recommendation{gap:var(--space-xl);padding-block:var(--space-xl);border-top:1px solid color-mix(in srgb, var(--color-ink) 18%, transparent);grid-template-columns:minmax(0,175px) minmax(0,1fr);display:grid}.cv-recommendation-portrait{object-fit:cover;width:80px;height:80px;margin-bottom:var(--space-sm);outline:1px solid color-mix(in srgb, var(--color-ink) 12%, transparent);outline-offset:-1px;border-radius:50%;display:block}.cv-recommendation-author h3{color:var(--color-ink);font-size:15px}.cv-recommendation-role{margin:var(--space-xs) 0 0;color:var(--color-ink-2);font-size:12px;line-height:1.5}.cv-recommendation-context{margin:var(--space-md) 0 0;color:var(--color-ink-2);font-size:11px;line-height:1.5}.cv-recommendation-context span{margin-top:var(--space-2xs);display:block}.cv-recommendation blockquote{min-width:0;margin:0;font-size:14px;line-height:1.65}.cv-recommendation blockquote p{text-wrap:wrap;margin:0}.cv-recommendation blockquote p+p{margin-top:1em}@media screen and (max-width:600px){.cv-recommendation{gap:var(--space-lg);grid-template-columns:minmax(0,1fr)}.cv-recommendation-author{column-gap:var(--space-sm);grid-template-columns:64px minmax(0,1fr);display:grid}.cv-recommendation-portrait{grid-row:1/4;width:64px;height:64px}.cv-recommendation-author h3,.cv-recommendation-role,.cv-recommendation-context{grid-column:2}.cv-recommendation blockquote{font-size:15px}.cv-document{--cv-body-size:15px;--cv-small-size:12px;--cv-heading-size:21px;--cv-title-size:19px;--cv-name-size:32px}.cv-web-actions{padding:var(--space-md) var(--space-lg) var(--space-xs);gap:var(--space-sm)}.cv-explore{padding-inline:var(--space-sm);font-size:12px}.cv-download{font-size:12px}.cv-paper{padding:var(--space-lg)}.cv-identity{gap:var(--space-md);grid-template-columns:minmax(0,1fr) 82px}.cv-portrait{width:82px;height:105px}.cv-document h1{max-width:9ch}.cv-contact-details{gap:var(--space-2xs);margin-top:var(--space-md);grid-template-columns:minmax(0,1fr)}.cv-subtitle{max-width:25ch}.cv-introduction{line-height:1.6}.cv-navigation{gap:0 var(--space-md);font-size:12px}.cv-navigation a{min-height:44px}.cv-columns{gap:var(--space-xl);grid-template-columns:minmax(0,1fr)}.cv-section+.cv-section{margin-top:var(--space-xl)}.cv-experience+.cv-experience,.cv-project+.cv-project{margin-top:var(--space-lg)}.cv-bullets{line-height:1.55}}@page{size:A4;margin:12mm}@media print{:root{--color-paper:#fff}html,body{background:var(--color-paper);overflow:visible}.cv-document{--cv-body-size:10pt;--cv-small-size:8.5pt;--cv-heading-size:12.5pt;--cv-title-size:16pt;--cv-name-size:27pt;background:var(--color-paper);min-height:0;line-height:1.22}.cv-web-actions,.cv-navigation,.cv-web-only{display:none}.cv-paper{width:100%;max-width:none;margin:0;padding:0}.cv-identity{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) 29mm}.cv-portrait{width:29mm;height:35mm}.cv-contact-details{column-gap:var(--space-md);margin-top:var(--space-xs);line-height:1.3}.cv-introduction{margin-top:var(--space-sm);line-height:1.25}.cv-columns{columns:2;column-gap:var(--space-lg);margin-top:var(--space-md);display:block}.cv-record,.cv-reference{display:contents}.cv-reference>.cv-section:first-child{margin-top:var(--space-sm)}.cv-document h2{margin-bottom:var(--space-xs)}.cv-section+.cv-section{margin-top:var(--space-sm)}.cv-experience+.cv-experience,.cv-project+.cv-project{margin-top:var(--space-xs)}.cv-bullets li+li{margin-top:var(--space-2xs)}.cv-technical-list>div+div{margin-top:var(--space-xs)}.cv-technical-list dt,.cv-technical-list dd{display:inline}.cv-technical-list dt:after{content:": "}.cv-certification{break-inside:avoid}.cv-certification img{flex-basis:36px;width:36px;height:36px}.cv-training strong,.cv-training span{display:inline}.cv-training strong:after{content:" — "}.cv-training p+p,.cv-languages{margin-top:var(--space-xs)}.cv-languages{gap:var(--space-sm);display:flex}.cv-experience-meta{margin-bottom:var(--space-2xs);line-height:1.3;display:block}.cv-experience-meta>span:first-child:after{content:" | ";white-space:pre}.cv-project h3,.cv-project-category{display:inline}.cv-project-category:before{content:" | ";white-space:pre}.cv-bullets{margin-top:var(--space-2xs);padding-left:var(--space-md)}.cv-experience,.cv-project,.cv-training p,.cv-technical-list>div{break-inside:avoid}.cv-document h2,.cv-document h3{break-after:avoid}.cv-document a{color:inherit;text-decoration:none}}html,body{overflow-x:clip}body:has(.cv-document-route){background:var(--color-paper)}
