@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p,ul,ol,dl,dd{margin:0}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}}@layer base{:root{color-scheme:light;--paper:#f7f4ee;--ink:#172d3a;--petrol:#216a70;--petrol-dark:#175157;--muted:#51616b;--line:#cbd2d1;--wash:#e9eff0;--sand:#d6b67b;--content-width:90rem;--page-gutter:clamp(40px, 5vw, 80px);--editorial-columns:minmax(0, 1fr) minmax(0, 2.6fr);--editorial-gap:clamp(32px, 4vw, 56px);--header-height:96px;--footer-contact-height:64px;--footer-links-height:80px;--footer-height:calc(var(--footer-contact-height) + var(--footer-links-height));font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}html{scroll-behavior:smooth;scroll-padding-top:2rem;overflow-y:scroll}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:1.0625rem;line-height:1.75}::selection{color:var(--ink);background:#cce2df}a{color:var(--petrol);text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid var(--petrol);outline-offset:5px;border-radius:2px}h1,h2,h3{text-wrap:balance;overflow-wrap:anywhere;hyphens:auto;line-height:1.16}h1{letter-spacing:-.045em;font-size:clamp(2.6rem,5vw,4.75rem);font-weight:650}h2{letter-spacing:-.035em;font-size:clamp(1.9rem,2.3vw,2.5rem);font-weight:550}h3{letter-spacing:-.02em;font-size:1.4rem;font-weight:600}p{max-width:none}[id]{scroll-margin-top:2rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:50;background:var(--ink);color:#fff;padding:.7rem 1rem;position:fixed;top:12px;left:20px;transform:translateY(-170%)}.skip-link:focus{transform:translateY(0)}}@layer layout{.container{width:min(var(--content-width), calc(100% - var(--page-gutter) * 2));margin-inline:auto}.section{padding-block:clamp(64px,5vw,88px)}.editorial-grid,.approach-step,.cv-layout,.contact-band-inner{grid-template-columns:var(--editorial-columns);gap:var(--editorial-gap);align-items:start;display:grid}.editorial-grid>*,.approach-step>*{min-width:0}.section-heading{justify-content:space-between;align-items:end;gap:32px;margin-bottom:44px;display:flex}.section-heading>.text-link{flex-shrink:0;margin-bottom:5px}.page-intro{padding-block:clamp(48px,4vw,64px) clamp(36px,3vw,48px)}.page-intro h1{max-width:none;font-size:clamp(2.5rem,3.5vw,3.25rem)}.intro-grid{margin-top:32px}.intro-copy{grid-column:2;min-width:0}.page-intro .lead{margin-top:0}.prose p,.lead{width:100%;max-width:none}.prose p+p{margin-top:1.2em}.prose>.text-link{margin-top:25px}.prose{color:var(--muted)}.prose h2,.prose h3{color:var(--ink)}.lead{color:var(--muted);font-size:1.2rem;line-height:1.75}}@layer components{.eyebrow{color:var(--petrol);letter-spacing:.12em;text-transform:uppercase;margin-bottom:19px;font-size:.76rem;font-weight:650;line-height:1.6}.site-header{background:var(--paper)}.header-inner{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:36px;min-height:96px;padding-block:22px;display:flex}.brand{letter-spacing:-.035em;color:var(--ink);align-items:center;gap:11px;font-size:1.48rem;font-weight:650;text-decoration:none;display:inline-flex}.brand-mark{background:var(--petrol);width:34px;height:34px;color:var(--paper);letter-spacing:-.07em;border-radius:50%;place-items:center;padding-bottom:4px;font-family:Georgia,serif;font-size:1.45rem;font-weight:400;display:grid}.main-nav{align-items:center;gap:clamp(28px,2.5vw,40px);padding:0;list-style:none;display:flex}.main-nav a{color:var(--ink);border-bottom:2px solid #0000;padding-block:10px;font-size:1rem;text-decoration:none;display:block}.main-nav a:hover{color:var(--petrol)}.main-nav a[aria-current]{border-color:var(--petrol);color:var(--petrol)}.hero{grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr);align-items:center;gap:clamp(40px,4vw,64px);padding-block:clamp(56px,4.2vw,72px);display:grid}.hero h1{letter-spacing:-.055em;max-width:none;font-size:clamp(3.2rem,4.5vw,4.75rem);line-height:1.04}.hero h1 span{white-space:nowrap;display:block}.hero-statement{letter-spacing:-.03em;max-width:none;margin-top:22px;font-size:clamp(1.65rem,2.2vw,2.25rem);font-weight:350;line-height:1.3}.hero-copy{margin-top:26px}.hero-copy>p{color:var(--muted);max-width:none;font-size:1.1rem;line-height:1.8}.hero-aside{aspect-ratio:1;background:var(--wash);border-top:3px solid var(--petrol);flex-direction:column;justify-content:center;place-self:center end;align-items:center;width:100%;max-width:400px;padding:36px 24px;display:flex;position:relative;overflow:hidden}.monogram{letter-spacing:-.075em;color:var(--petrol);padding-right:.075em;font:400 clamp(10rem,10vw,14rem)/.9 Georgia,serif}.hero-aside-caption{color:var(--petrol-dark);letter-spacing:.08em;white-space:nowrap;margin:0;font-size:.76rem;position:absolute;bottom:28px}.actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:30px;display:flex}.button{border:1px solid var(--petrol);min-height:52px;color:var(--paper);background:var(--petrol);border-radius:3px;justify-content:center;align-items:center;gap:20px;padding:12px 22px;font-size:.95rem;font-weight:600;line-height:1.4;text-decoration:none;transition:background-color .18s,border-color .18s;display:inline-flex}.button:hover{background:var(--petrol-dark);border-color:var(--petrol-dark)}.button-outline{color:var(--petrol);background:0 0}.button-outline:hover{color:var(--paper)}.button-light{background:var(--paper);border-color:var(--paper);color:var(--ink)}.button-light:hover{color:var(--ink);background:#e3e8e3;border-color:#e3e8e3}.text-link{align-items:center;gap:12px;min-height:44px;font-size:.95rem;font-weight:600;line-height:1.5;text-decoration:none;display:inline-flex}.text-link:hover{text-decoration:underline}.arrow-icon{flex:none}.expertise-section{border-top:1px solid var(--line);padding-top:49px}.expertise-grid{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.expertise-item{border-left:1px solid var(--line);flex-direction:column;padding-inline:clamp(28px,3vw,40px);display:flex}.expertise-item:first-child{border:0;padding-left:0}.expertise-item:last-child{padding-right:0}.expertise-item h3{min-height:2.5em;margin-bottom:16px;font-size:clamp(1.4rem,1.4vw,1.5rem)}.expertise-item h3 a{color:var(--ink);text-decoration:none}.expertise-item h3 a:hover{color:var(--petrol);text-decoration:underline}.expertise-item>p{color:var(--muted);margin-bottom:22px;font-size:1rem;line-height:1.75}.expertise-item>.text-link{align-self:start;margin-top:auto}.project-feature{background:var(--wash);padding-block:clamp(64px,5vw,80px)}.project-feature h2{max-width:15ch}.editorial-grid>h2,.editorial-grid>:first-child h2{overflow-wrap:anywhere;hyphens:auto;max-width:none}.contact-band{background:var(--ink);color:var(--paper);padding-block:24px}.contact-band-inner{align-items:center}.contact-band h2{margin:0;font-size:1.5rem}.contact-band-copy{align-items:center;gap:24px;min-width:0;display:flex}.contact-band-copy p{color:#d3dee1;flex:1;min-width:0;font-size:.95rem;line-height:1.6}.contact-band .button{flex-shrink:0;margin:0}.contact-band a:focus-visible{outline-color:var(--sand)}.site-footer{background:var(--paper)}.footer-grid{grid-template-columns:var(--editorial-columns);gap:var(--editorial-gap);align-items:center;padding-block:8px;display:grid}.footer-name{color:var(--ink);font-size:.95rem;font-weight:650;text-decoration:none}.footer-identity p{color:var(--muted);margin-top:4px;font-size:.8rem}.footer-links{justify-content:space-between;align-items:center;gap:24px;min-width:0;display:flex}.footer-nav{grid-template-columns:repeat(3,max-content);gap:0 clamp(20px,2.3vw,36px);padding:0;list-style:none;display:grid}.footer-nav a{min-height:32px;color:var(--muted);align-items:center;font-size:.8rem;text-decoration:none;display:inline-flex}.footer-nav a:hover{color:var(--petrol);text-decoration:underline}.footer-linkedin{flex-shrink:0;min-height:44px;font-size:.85rem}.fact-box{background:var(--wash);border-top:3px solid var(--petrol);align-self:start;min-width:0;padding:28px}.fact-box .eyebrow{margin-bottom:20px;font-size:.7rem}.fact-box dl>div+div{margin-top:20px}.fact-box dt{color:var(--muted);margin-bottom:4px;font-size:.8rem}.fact-box dd{color:var(--ink);font-size:1rem;font-weight:550;line-height:1.5}.fact-box>.text-link{margin-top:24px;font-size:.85rem}.approach-step .section-facts h2,.competence-section .section-facts h2{overflow-wrap:anywhere;hyphens:auto;font-size:clamp(1.3rem,1.65vw,1.7rem)}.fact-box .technology-list{margin-top:20px}.cv-layout{grid-template-areas:"summary content";padding-bottom:80px}.cv-content{grid-area:content;min-width:0}.cv-summary{grid-area:summary}.print-note{color:var(--muted);border-top:1px solid var(--line);margin-top:23px;padding-top:19px;font-size:.78rem;line-height:1.6}.cv-body{min-width:0;margin-top:28px}.cv-opening{font-size:1.0625rem}.cv-section{border-top:1px solid var(--line);margin-top:40px;padding-top:35px}.cv-section h2{margin-bottom:20px;font-size:1.7rem}.cv-section .eyebrow{margin-bottom:10px}.education-list{border-left:1px solid var(--line);margin-left:6px;padding:0;list-style:none}.education-list li{padding-left:27px;position:relative}.education-list li+li{margin-top:31px}.education-list li:before{content:"";background:var(--petrol);border-radius:50%;width:9px;height:9px;position:absolute;top:7px;left:-5px}.education-period{color:var(--petrol);margin-bottom:8px;font-size:.79rem}.education-list h3{margin-bottom:5px;font-size:1.18rem;line-height:1.4}.education-list p+p{margin-top:7px}.education-note{font-size:.9rem}.section-nav{flex-wrap:wrap;gap:6px 28px;margin-top:30px;display:flex}.section-nav a{align-items:center;min-height:44px;font-size:.89rem;font-weight:600;display:inline-flex}.competence-list{padding-bottom:33px}.competence-section{border-top:1px solid var(--line);padding-block:38px 44px}.competence-section h2{font-size:clamp(1.8rem,2.7vw,2.1rem)}.technology-list{flex-wrap:wrap;gap:8px 13px;margin-top:16px;padding:0;list-style:none;display:flex}.technology-list li{color:var(--petrol);border-bottom:1px solid #adc5c5;padding-bottom:3px;font-size:.77rem}.approach-list{padding-bottom:63px}.approach-step{border-top:1px solid var(--line);padding-block:43px}.approach-step h2{font-size:1.9rem}.contact-detail{padding-bottom:80px}.contact-copy{min-width:0}.contact-layout>.fact-box .button{gap:12px;width:100%;margin-top:24px;padding-inline:16px}.contact-explore{border-top:1px solid var(--line);margin-top:34px;padding-top:34px}.contact-explore h2{margin-bottom:22px;font-size:1.9rem}.contact-explore .actions{gap:25px;margin-top:17px}.error-page{padding-block:90px 110px}.error-page h1{max-width:18ch}.error-page .lead{margin-block:26px 32px}.footer-external{flex-direction:column;flex-shrink:0;align-items:flex-start;display:flex}.footer-external .footer-linkedin{min-height:32px}.footer-utility{align-items:center;gap:12px;display:flex}.footer-utility a,.footer-cookie-choice{min-height:32px;color:var(--muted);align-items:center;font-size:.75rem;line-height:1.4;display:inline-flex}.footer-cookie-choice{cursor:pointer;text-underline-offset:.22em;background:0 0;border:0;padding:0;text-decoration:underline}.consent-card[hidden],[data-open-cookie-consent][hidden],.consent-status[hidden]{display:none}.consent-card{right:max(20px, calc((100vw - var(--content-width)) / 2));bottom:calc(var(--footer-height) + 16px);z-index:40;width:min(430px,100% - 40px);max-height:calc(100dvh - var(--header-height) - var(--footer-height) - 32px);border:1px solid var(--line);border-top:3px solid var(--petrol);background:var(--paper);color:var(--ink);padding:20px;position:fixed;overflow-y:auto;box-shadow:0 8px 30px #172d3a20}.consent-card h2{letter-spacing:-.02em;margin-bottom:10px;padding-right:28px;font-size:1.1rem;line-height:1.3}.consent-card p{font-size:.85rem;line-height:1.5}.consent-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:1.5rem;line-height:1;position:absolute;top:8px;right:8px}.consent-actions{gap:10px;margin-top:16px;display:flex}.consent-actions button{border:1px solid var(--petrol);background:var(--paper);min-height:44px;color:var(--petrol-dark);cursor:pointer;border-radius:3px;flex:1;padding:8px 10px;font-size:.82rem;font-weight:600;line-height:1.3}.consent-actions button:hover{background:var(--wash)}.consent-information{align-items:center;min-height:32px;margin-top:6px;font-size:.78rem;display:inline-flex}.consent-card .consent-status{margin-top:10px}.privacy-layout{padding-bottom:64px}.privacy-copy section{margin-top:32px}.privacy-copy h2{margin-bottom:14px;font-size:1.7rem}.privacy-copy ul{margin-block:16px;padding-left:22px}.privacy-copy li+li{margin-top:8px}.privacy-cookie-button{margin-top:20px}}@layer responsive{@media (width>=761px){html{scroll-padding-top:calc(var(--header-height) + 16px);scroll-padding-bottom:calc(var(--footer-height) + 16px)}body{padding-top:var(--header-height);padding-bottom:var(--footer-height)}main{min-height:calc(100dvh - var(--header-height) - var(--footer-height))}.site-header{z-index:20;height:var(--header-height);position:fixed;inset:0 0 auto}.header-inner{height:var(--header-height)}.site-footer{z-index:20;height:var(--footer-height);position:fixed;inset:auto 0 0}.site-footer .contact-band{height:var(--footer-contact-height);padding-block:8px}.contact-band-inner{height:100%}.contact-band h2{font-size:1.25rem}.contact-band-copy p{font-size:.9rem;line-height:1.4}.contact-band .button{min-height:44px;padding:8px 16px}.footer-grid{height:var(--footer-links-height)}a,button,[tabindex]{scroll-margin-block:16px}}@media (width>=761px) and (width<=1000px){:root{--header-height:136px}.footer-nav{column-gap:18px}.footer-links{gap:18px}.footer-identity p{font-size:.75rem}}@media (width<=1000px){.editorial-grid,.approach-step,.cv-layout{grid-template-columns:minmax(0,1fr);gap:25px}.intro-grid>.intro-copy{order:-1;grid-column:1}.cv-layout{grid-template-areas:"intro""summary"}.cv-content{display:contents}.cv-content>.lead{grid-area:intro}.cv-body{grid-row:3;margin-top:0}.contact-copy{display:contents}.contact-copy>.lead{grid-row:1}.contact-layout>.fact-box{grid-row:2}.contact-explore{grid-row:3;margin-top:0}.container{width:calc(100% - 80px)}.header-inner{flex-direction:column;align-items:stretch;gap:12px;padding-block:20px 12px}.brand{align-self:start}.main-nav{flex-wrap:wrap;justify-content:space-between;gap:12px}.hero{display:block}.hero h1 span{display:inline}.hero-aside{display:none}.expertise-item{padding-inline:22px}.expertise-item h3{font-size:1.24rem}.fact-box{padding:23px}}@media (width<=760px){.container{width:calc(100% - 40px)}.main-nav a{padding-block:10px;font-size:.87rem}.hero{padding-block:45px}.hero h1{max-width:13ch;font-size:clamp(2.9rem,8.5vw,4.2rem)}.hero-statement{max-width:23ch;margin-top:23px;font-size:clamp(1.7rem,5vw,2.2rem)}.hero-copy{margin-top:25px}.hero-copy>p{font-size:1.03rem}.section{padding-block:55px}.expertise-section{padding-top:35px}.section-heading{flex-direction:column;align-items:start;gap:12px;margin-bottom:25px}.expertise-grid{grid-template-columns:minmax(0,1fr)}.expertise-item,.expertise-item:first-child,.expertise-item:last-child{border-left:0;border-top:1px solid var(--line);padding:27px 0}.expertise-item:first-child{border-top:0;padding-top:8px}.expertise-item:last-child{padding-bottom:0}.expertise-item h3{min-height:auto;margin-bottom:12px;font-size:1.4rem}.expertise-item>p{margin-bottom:12px}.editorial-grid,.approach-step,.cv-layout{grid-template-columns:minmax(0,1fr);gap:25px}.project-feature{padding-block:48px}.contact-band{padding-block:24px}.contact-band-inner{grid-template-columns:minmax(0,1fr);gap:16px}.contact-band-copy{flex-direction:column;align-items:start;gap:16px}.footer-grid{grid-template-columns:minmax(0,1fr);gap:14px;padding-block:20px}.footer-links{align-items:start;gap:20px}.footer-nav{grid-template-columns:repeat(2,max-content);column-gap:28px}.footer-nav a,.footer-linkedin{min-height:36px}.intro-grid{margin-top:26px}.intro-grid>.intro-copy{order:-1;grid-column:1}.contact-copy{display:contents}.contact-copy>.lead{grid-row:1}.contact-layout>.fact-box{grid-row:2}.contact-explore{grid-row:3;margin-top:0}.page-intro{padding-block:45px 38px}.page-intro h1{font-size:clamp(2.5rem,8vw,3.25rem)}.lead,.page-intro .lead{margin-top:0;font-size:1.08rem}.cv-layout{grid-template-areas:"intro""summary";gap:30px;padding-bottom:55px}.cv-content{display:contents}.cv-content>.lead{grid-area:intro}.cv-body{grid-row:3;margin-top:0}.fact-box{padding:25px}.fact-box dl{grid-template-columns:1fr 1fr;gap:20px;display:grid}.fact-box dl>div+div{margin:0}.cv-section{margin-top:30px;padding-top:28px}.competence-section{padding-block:32px 42px}.technology-list{max-width:none;margin-top:20px}.section-nav{gap:4px 22px;margin-top:22px}.approach-list{padding-bottom:26px}.approach-step{gap:18px;padding-block:30px}.approach-step h2{font-size:1.65rem}.contact-detail{padding-bottom:50px}.contact-explore{padding-top:28px}.error-page{padding-block:55px 75px}}@media (width<=600px){.main-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 18px;display:grid}.main-nav a{width:fit-content}}@media (width<=420px){.main-nav{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.hero .actions{flex-direction:column;align-items:stretch;gap:12px}.hero .button{width:100%}.hero h1{font-size:2.85rem}.eyebrow{letter-spacing:.09em;font-size:.69rem}.fact-box dl{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@media (width<=760px){.footer-utility{flex-direction:column;align-items:flex-start;gap:0}.consent-card{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:16px;bottom:12px;right:12px}.privacy-layout{padding-bottom:48px}}}@layer print{@media print{@page{margin:18mm}:root{font-size:10pt}body{color:#000;background:#fff;padding:0;font-size:10pt;line-height:1.6}.container{width:100%}main{min-height:0}.intro-grid{display:block}.fact-box{break-inside:avoid;background:0 0;border-top:1pt solid #777;margin-bottom:16pt;padding:12pt 0}.site-header,.site-footer,.contact-band,.skip-link,.print-note,.section-nav,.hero-aside{display:none}.page-intro{padding-block:0 20pt;display:block}.page-intro h1{max-width:none;font-size:28pt}.page-intro .lead{margin-top:12pt;font-size:11pt}.eyebrow,.prose,.lead,.cv-summary dt,.education-period{color:#222}h2{font-size:18pt}h3{font-size:13pt}h2,h3{break-after:avoid}p{orphans:3;widows:3}a{color:#000;text-decoration:none}a[href^="https://www.linkedin.com/"]:after{content:" (" attr(href) ")";font-size:8pt;font-weight:400}.arrow-icon{display:none}.cv-layout{padding:0;display:block}.cv-content{display:block}.cv-summary{break-inside:avoid;background:0 0;border-top:1pt solid #777;border-bottom:1pt solid #777;margin-bottom:20pt;padding:12pt 0}.cv-summary dl{justify-content:space-between;gap:15pt;display:flex}.fact-box dl>div+div{margin:0}.cv-summary .eyebrow{margin-bottom:12pt}.cv-summary>.text-link{min-height:0;margin-top:12pt}.cv-opening{font-size:11pt}.cv-section{margin-top:18pt;padding-top:14pt}.cv-section h2{margin-bottom:10pt;font-size:16pt}.education-list li{break-inside:avoid}.section,.project-feature{background:0 0;padding-block:20pt}.editorial-grid,.expertise-grid,.approach-step{display:block}.expertise-item{border:0;padding:10pt 0}.competence-section{padding-block:20pt}.button{color:#000;background:0 0;border:1pt solid #888}.consent-card,[data-open-cookie-consent]{display:none!important}}}
