:root{--resume-paper:#f1eee6;--resume-surface:#fbfaf6;--resume-ink:#172019;--resume-text:#465148;--resume-muted:#636f64;--resume-green:#1f5b47;--resume-green-light:#b8d7ca;--resume-clay:#c64f2b;--resume-line:rgba(23,32,25,.24);--resume-serif:"Newsreader",Georgia,serif;--resume-sans:"Manrope",Arial,sans-serif;--resume-mono:"DM Mono",monospace}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--resume-paper);color:var(--resume-ink);font-family:var(--resume-sans);line-height:1.65;text-rendering:optimizeLegibility}::selection{background:var(--resume-green-light);color:var(--resume-ink)}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}img{display:block;max-width:100%}.resume-skip-link{position:fixed;top:.75rem;left:.75rem;z-index:20;padding:.7rem 1rem;background:var(--resume-ink);color:var(--resume-surface);font:500 .75rem var(--resume-mono);transform:translateY(-180%)}.resume-skip-link:focus{transform:translateY(0)}.resume-page{padding:3.5rem 2rem}.resume-shell{width:min(100%,70rem);margin:0 auto;padding:2rem 3.5rem 2.5rem;border:1px solid var(--resume-ink);background:var(--resume-surface);box-shadow:14px 14px 0 var(--resume-green)}.resume-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.75rem}.resume-language{display:flex;gap:.55rem;color:var(--resume-muted);font:500 .72rem var(--resume-mono);letter-spacing:.08em;text-transform:uppercase}.resume-language a{text-decoration:none}.resume-language a[aria-current=page]{color:var(--resume-clay)}.resume-actions{display:flex;flex-wrap:wrap;gap:.55rem}.resume-action{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.5rem;padding:.6rem .9rem;border:1px solid var(--resume-ink);border-radius:0;background:transparent;color:var(--resume-ink);cursor:pointer;font:500 .72rem var(--resume-mono);letter-spacing:.05em;text-decoration:none;text-transform:uppercase}.resume-action:hover{background:var(--resume-green-light)}.resume-action--primary{border-color:var(--resume-clay);background:var(--resume-clay);color:var(--resume-surface)}.resume-action--primary:hover{border-color:var(--resume-ink);background:var(--resume-ink)}.resume-header{border-top:1px solid var(--resume-ink);border-bottom:1px solid var(--resume-ink)}.resume-header__utility{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.85rem 0;border-bottom:1px solid var(--resume-line)}.resume-date,.resume-eyebrow,.resume-section__index{color:var(--resume-green);font:500 .72rem/1.4 var(--resume-mono);letter-spacing:.08em;text-transform:uppercase}.resume-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:1rem;font:500 .72rem var(--resume-mono)}.resume-links a{text-decoration:none}.resume-links a:after{content:" ↗";color:var(--resume-clay)}.resume-links a[href^="mailto:"]:after{content:" →"}.resume-header__body{display:grid;grid-template-columns:minmax(0,1fr) 13.5rem;align-items:end;grid-gap:3.5rem;gap:3.5rem;padding:3.75rem 0 3.25rem}.resume-header h1{max-width:48rem;margin:0;font:500 clamp(4rem,8vw,6.8rem) /.82 var(--resume-serif);letter-spacing:-.065em}.resume-header__role{max-width:43rem;margin:2rem 0 0;font:500 clamp(1.8rem,3.6vw,3rem) /1.02 var(--resume-serif);letter-spacing:-.025em}.resume-header__summary{max-width:42rem;margin:1.25rem 0 0;color:var(--resume-text);font-size:1rem}.resume-header__portrait{position:relative;align-self:end}.resume-header__portrait:before{position:absolute;inset:.65rem -.65rem -.65rem .65rem;z-index:0;border:1px solid var(--resume-ink);background:var(--resume-green-light);content:""}.resume-header__portrait img{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:4/5;border:1px solid var(--resume-ink);filter:saturate(.8) contrast(1.03);object-fit:cover;object-position:50% 28%}.resume-section{margin-top:6.5rem}.resume-section__heading{display:grid;grid-template-columns:11rem minmax(0,1fr);grid-gap:0 2rem;gap:0 2rem;align-items:start;margin-bottom:2.5rem}.resume-section__index{grid-row:1/span 2;padding-top:.55rem}.resume-section__heading h2{margin:0;font:500 clamp(2.8rem,5vw,4.5rem) /.95 var(--resume-serif);letter-spacing:-.045em}.resume-section__heading p{max-width:42rem;margin:.8rem 0 0;color:var(--resume-text)}.resume-impact__list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;border-top:1px solid var(--resume-ink);border-bottom:1px solid var(--resume-ink);list-style:none}.resume-impact__item{min-width:0;padding:1.5rem 1.15rem 1.4rem;border-right:1px solid var(--resume-line)}.resume-impact__item:first-child{padding-left:0}.resume-impact__item:last-child{padding-right:0;border-right:0}.resume-impact__item strong{display:block;font:500 clamp(1.7rem,3vw,2.5rem) /1 var(--resume-serif);letter-spacing:-.045em}.resume-impact__item>span{display:block;min-height:2.2rem;margin-top:.55rem;color:var(--resume-clay);font:500 .66rem/1.35 var(--resume-mono);letter-spacing:.06em;text-transform:uppercase}.resume-impact__item p{margin:.75rem 0 0;color:var(--resume-text);font-size:.78rem;line-height:1.5}.resume-work__list{border-top:1px solid var(--resume-ink)}.resume-company-wrapper{display:grid;grid-template-columns:13.5rem minmax(0,1fr);grid-gap:3rem;gap:3rem;padding:2.75rem 0;border-bottom:1px solid var(--resume-ink)}.resume-company-card{position:-webkit-sticky;position:sticky;top:1.5rem;display:flex;flex-direction:column;align-items:flex-start}.resume-company-card__name{margin:0 0 .6rem;font:500 1.75rem/1 var(--resume-serif);letter-spacing:-.025em}.resume-company-card__position{margin-top:.8rem;font-size:.84rem;line-height:1.35}.resume-company-card__description{margin:.75rem 0 0;color:var(--resume-muted);font-size:.78rem;line-height:1.55}.resume-projects{display:grid;grid-gap:2.3rem;gap:2.3rem}.resume-project{min-width:0}.resume-project+.resume-project{padding-top:2.3rem;border-top:1px solid var(--resume-line)}.resume-project__title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.resume-other__item h3,.resume-project__title h3,.resume-scope__group h3,.resume-scope__technologies h3{margin:0;font:500 1.7rem/1.05 var(--resume-serif);letter-spacing:-.025em}.resume-other__item h3 a,.resume-project__title h3 a{color:var(--resume-green);text-decoration:none}.resume-other__item h3 a:hover,.resume-project__title h3 a:hover{color:var(--resume-clay)}.resume-project__links{display:flex;gap:.75rem;font:500 .65rem var(--resume-mono);text-transform:uppercase}.resume-other__item>.resume-date,.resume-project>.resume-date{display:block;margin-top:.45rem}.resume-other__item>p,.resume-project__description{margin:.75rem 0 0;color:var(--resume-text);font-size:.88rem}.resume-bullets{display:grid;grid-gap:.55rem;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none}.resume-bullets li{position:relative;padding-left:1.15rem;color:var(--resume-text);font-size:.88rem}.resume-bullets li:before{position:absolute;top:.65em;left:0;width:.35rem;height:.35rem;background:var(--resume-clay);content:""}.resume-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.resume-tag{padding:.25rem .45rem;border:1px solid var(--resume-line);color:var(--resume-muted);font:500 .62rem var(--resume-mono);letter-spacing:.02em}.resume-scope__groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--resume-ink);border-left:1px solid var(--resume-ink)}.resume-scope__group{min-width:0;padding:1.75rem;border-right:1px solid var(--resume-ink);border-bottom:1px solid var(--resume-ink)}.resume-scope__group h3,.resume-scope__technologies h3{color:var(--resume-green)}.resume-scope__group ul{display:grid;grid-gap:.45rem;gap:.45rem;margin:1rem 0 0;padding:0;list-style:none}.resume-scope__group li{color:var(--resume-text);font-size:.84rem}.resume-scope__technologies{display:grid;grid-template-columns:11rem minmax(0,1fr);grid-gap:2rem;gap:2rem;align-items:start;margin-top:2rem}.resume-scope__technologies .resume-tags{margin-top:0}.resume-other__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:0 2.5rem;gap:0 2.5rem;border-top:1px solid var(--resume-ink)}.resume-other__item{min-width:0;padding:2rem 0;border-bottom:1px solid var(--resume-line)}.resume-other__position{display:block;margin-top:.65rem;font-size:.82rem}.resume-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:6rem;padding-top:1rem;border-top:1px solid var(--resume-ink);color:var(--resume-muted);font:500 .68rem var(--resume-mono)}:focus-visible{outline:3px solid var(--resume-clay);outline-offset:4px}@media (max-width:800px){.resume-page{padding:1.25rem}.resume-shell{padding:1.5rem;box-shadow:8px 8px 0 var(--resume-green)}.resume-header__utility{align-items:flex-start;flex-direction:column;gap:.75rem}.resume-links{justify-content:flex-start}.resume-header__body{grid-template-columns:minmax(0,1fr) 9rem;gap:1.5rem;padding:2.5rem 0}.resume-header h1{font-size:clamp(3.4rem,14vw,5.6rem)}.resume-header__role{font-size:clamp(1.6rem,7vw,2.4rem)}.resume-section{margin-top:4.5rem}.resume-section__heading{grid-template-columns:1fr}.resume-section__index{grid-row:auto;margin-bottom:.75rem}.resume-impact__list{grid-template-columns:repeat(2,minmax(0,1fr))}.resume-impact__item,.resume-impact__item:first-child,.resume-impact__item:last-child{padding:1.25rem;border-right:1px solid var(--resume-line)}.resume-impact__item:nth-child(2n){border-right:0}.resume-impact__item:nth-child(-n+2){border-bottom:1px solid var(--resume-line)}.resume-company-wrapper{grid-template-columns:1fr;gap:1.75rem}.resume-company-card{position:static}.resume-other__list,.resume-scope__groups{grid-template-columns:1fr}.resume-scope__technologies{grid-template-columns:1fr;gap:1rem}}@media (max-width:520px){.resume-page{padding:0}.resume-shell{padding:1.1rem;border-right:0;border-left:0;box-shadow:none}.resume-tools{align-items:stretch;flex-direction:column}.resume-actions{display:grid;width:100%;grid-template-columns:1fr}.resume-header__body{grid-template-columns:minmax(0,1fr) 6.5rem;gap:1rem}.resume-header__summary{grid-column:1/-1}.resume-header__portrait:before{inset:.35rem -.35rem -.35rem .35rem}.resume-section__heading h2{font-size:2.75rem}.resume-impact__list{grid-template-columns:1fr}.resume-impact__item,.resume-impact__item:first-child,.resume-impact__item:last-child,.resume-impact__item:nth-child(2n){padding:1rem 0;border-right:0;border-bottom:1px solid var(--resume-line)}.resume-impact__item:last-child{border-bottom:0}.resume-footer,.resume-project__title{align-items:flex-start;flex-direction:column}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{@page{size:A4;margin:10mm 11mm}:root{--resume-paper:#fff;--resume-surface:#fff}body,html{background:#fff;font-size:9pt}.no-print{display:none!important}.resume-page,.resume-shell{width:100%;margin:0;padding:0;border:0;box-shadow:none}.resume-header__utility{padding:0 0 2mm}.resume-header__body{grid-template-columns:minmax(0,1fr) 24mm;gap:6mm;padding:5mm 0}.resume-header h1{font-size:25pt}.resume-header__role{margin-top:2.5mm;font-size:13.5pt}.resume-header__summary{margin-top:2mm;font-size:8.5pt;line-height:1.35}.resume-header__portrait:before{display:none}.resume-header__portrait img{aspect-ratio:4/5}.resume-links{font-size:7.25pt}.resume-section{margin-top:6mm}.resume-section__heading{grid-template-columns:28mm minmax(0,1fr);gap:4mm;margin-bottom:3mm;break-after:avoid;break-inside:avoid;page-break-after:avoid;page-break-inside:avoid}.resume-section__heading h2{font-size:15pt}.resume-section__heading p{margin-top:1mm;font-size:8pt}.resume-date,.resume-eyebrow,.resume-section__index{font-size:7.25pt}.resume-impact__item,.resume-impact__item:first-child,.resume-impact__item:last-child{padding:2.25mm 2mm}.resume-impact__item strong{font-size:12.5pt}.resume-impact__item>span{min-height:0;margin-top:1mm;font-size:7.25pt}.resume-impact__item p{display:none}.resume-company-wrapper{display:block;padding:3.5mm 0;page-break-inside:avoid;break-inside:avoid}html[lang=fr] .resume-company-wrapper{padding-block:3mm}.resume-company-card{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.75mm 4mm;gap:.75mm 4mm;align-items:baseline;margin-bottom:1.75mm}.resume-company-card__name{grid-column:1;grid-row:1;margin:0;font-size:11pt}.resume-company-card>.resume-date{grid-column:2;grid-row:1;justify-self:end}.resume-bullets li,.resume-company-card__description,.resume-company-card__position,.resume-other__item>p,.resume-scope__group li{font-size:8pt}.resume-company-card__position{grid-column:1;grid-row:2;margin-top:0}.resume-company-card__description{grid-column:2;grid-row:2;margin:0;text-align:right}.resume-other__item,.resume-project,.resume-scope__group{page-break-inside:avoid;break-inside:avoid}.resume-projects{display:block}.resume-project+.resume-project{margin-top:2.5mm;padding-top:2.5mm}.resume-other__item h3,.resume-project__title h3,.resume-scope__group h3,.resume-scope__technologies h3{font-size:10.25pt}.resume-project>.resume-date,.resume-project__description,.resume-project__title span[aria-hidden=true]{display:none}.resume-project__links{font-size:7.25pt}.resume-bullets{display:block;gap:.75mm;margin-top:1.25mm;padding-left:3.5mm;list-style:square}.resume-bullets li+li{margin-top:.75mm}.resume-bullets li{position:static;padding-left:0;line-height:1.3}.resume-bullets li:before{display:none}.resume-bullets li::marker{color:var(--resume-clay)}.resume-tags{gap:1mm;margin-top:2mm}.resume-tag{padding:.5mm 1mm;font-size:7.25pt}.resume-scope__group{padding:2mm}.resume-scope__groups{grid-template-columns:repeat(4,minmax(0,1fr));break-inside:avoid;page-break-inside:avoid}.resume-scope__group ul{gap:.75mm;margin-top:1.5mm}.resume-scope__group h3,.resume-scope__technologies h3{font-size:8.75pt}.resume-scope__group li{font-size:8pt;line-height:1.25}.resume-scope__technologies{grid-template-columns:28mm minmax(0,1fr);gap:4mm;margin-top:2mm}.resume-other,.resume-scope{margin-top:5mm}.resume-other .resume-section__heading,.resume-scope .resume-section__heading{margin-bottom:2mm}.resume-other .resume-section__heading h2,.resume-scope .resume-section__heading h2{font-size:13.5pt}.resume-other .resume-tags,.resume-work .resume-tags{display:none}.resume-other__list{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 4mm}.resume-other__item{padding:2.5mm 0}.resume-other__item h3{font-size:9.25pt}.resume-other__position{margin-top:1mm;font-size:8pt}.resume-other__item .resume-bullets li,.resume-other__item>p{font-size:8pt;line-height:1.3}.resume-other__item>p{margin-top:1.25mm}.resume-footer{display:none}}