
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--surface);color:var(--text);font:16px/1.65 var(--font-body),sans-serif}a{color:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-title),sans-serif;line-height:1.12;letter-spacing:-.045em}a{text-decoration:none}.container{max-width:1240px;width:calc(100% - 112px);margin:0 auto}.header{height:100px;max-width:1400px;width:calc(100% - 112px);margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.wordmark{font:800 32px/1 var(--font-title),sans-serif;letter-spacing:-3px}.wordmark span{color:var(--orange)}nav{display:flex;gap:34px}nav a{font-size:14px;font-weight:600}nav a:hover,.email-link:hover{color:var(--blue)}.contact-top{font-size:14px;border:1px solid var(--line);padding:10px 19px;border-radius:6px;font-weight:600}.contact-top:hover{background:var(--paper)}.hero{display:grid;grid-template-columns:1.18fr 1fr;align-items:center;gap:75px;padding-top:75px;padding-bottom:85px}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:700;line-height:1.6}.hero .eyebrow{font-size:11px;letter-spacing:.09em}.tiny-line{display:inline-block;width:25px;height:2px;background:var(--orange);vertical-align:middle;margin-right:9px}h1{font-size:clamp(70px,7.3vw,106px);font-weight:800;letter-spacing:-.065em;margin:24px 0 28px;line-height:1.02}h1 span{color:var(--blue)}.intro{font-size:24px;line-height:1.4;font-weight:500;letter-spacing:-.03em}.hero-description{color:var(--muted);max-width:480px;margin-top:20px;font-size:16px}.actions{display:flex;gap:12px;margin-top:31px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border-radius:6px;font-size:14px;font-weight:600;line-height:1.4;min-height:49px;transition:transform .18s,background .18s}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);color:var(--on-dark)}.primary:hover{background:var(--blue-dark)}.secondary{border:1px solid var(--line)}.secondary:hover{background:var(--paper)}.file-tag{font-size:10px;letter-spacing:.04em;background:var(--paper);padding:3px 5px}.hero-note{font-size:12px;color:var(--muted);margin-top:26px}.hero-note span{padding:0 7px;color:var(--faint-2)}.world-card{position:relative;background:var(--navy);color:var(--on-dark);border-radius:12px;overflow:hidden;isolation:isolate}.world-bottom{padding:32px 30px 35px}.world-bottom .eyebrow{color:var(--dk-7);font-size:10px}.world-bottom h2{font-size:31px;margin:13px 0 26px;font-weight:500;letter-spacing:-.035em}.country-list{display:flex;gap:8px;flex-wrap:wrap}.country-list span{font-size:11px;border:1px solid var(--ol-2);border-radius:4px;padding:5px 8px}.card-number{position:absolute;right:26px;top:22px;background:var(--surface);color:var(--navy);border-radius:5px;padding:5px 12px;font-size:27px;font-weight:600;line-height:1.25}.card-number span{font-size:9px;letter-spacing:.08em;display:block}.skills-band{background:var(--paper);border-block:1px solid var(--line)}.band-inner{display:flex;justify-content:space-between;gap:24px;padding:25px 0;font-size:14px;font-weight:500}.band-inner span:before{content:'+';font-size:18px;color:var(--blue);margin-right:15px}.section{padding-top:96px;padding-bottom:96px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:45px;margin-bottom:44px}.blue{color:var(--blue)}.section-heading h2,.strength-intro h2{font-size:44px;font-weight:600;margin-top:17px}.section-heading>p{color:var(--muted);max-width:350px;padding-bottom:3px}.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.education-card{border:1px solid var(--line);border-radius:9px;padding:31px}.card-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.pill{font-size:10px;letter-spacing:.06em;background:var(--paper);padding:6px 8px;font-weight:600}.date{font-size:12px;color:var(--muted)}.education-card h3{font-size:31px;font-weight:600;margin-top:35px}.degree{font-weight:600;font-size:15px;margin-top:20px}.education-card>p:last-child{color:var(--muted);font-size:15px;margin-top:12px}.experience-section{background:var(--navy);color:var(--on-dark)}.experience-section .eyebrow{color:var(--dk-5)}.experience-section .section-heading>p{color:var(--dk-6)}.experience{display:grid;grid-template-columns:155px 1fr 35px;gap:36px;padding:34px 0;border-top:1px solid var(--ol-1)}.experience:last-child{padding-bottom:0}.experience-meta>span{font:500 32px/1.2 var(--font-title)}.experience-meta p{font-size:10px;line-height:1.9;letter-spacing:.08em;color:var(--dk-3);margin-top:15px}.experience h3{font-size:26px;letter-spacing:-.025em;font-weight:600}.role{font-size:14px;color:var(--dk-4);margin-top:8px}.experience-body>p:not(.role){font-size:15px;max-width:710px;color:var(--dk-1);margin-top:17px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.tags span{font-size:11px;padding:4px 10px;border-radius:4px;border:1px solid var(--ol-1);color:var(--dk-2)}.experience-index{font-size:12px;color:var(--dk-8);padding-top:5px}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.project{border-radius:10px;padding:31px;align-self:start}.project-blue{background:var(--blue);color:var(--on-dark)}.project-light{background:var(--paper);border:1px solid var(--line)}.project-top{display:flex;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:.07em;font-weight:600}.project-monogram{font:600 70px/1 var(--font-title),sans-serif;letter-spacing:-.06em;padding:38px 0 30px;display:flex;align-items:center;gap:24px}.project-monogram span{font-size:18px;letter-spacing:.02em;font-weight:500;padding:9px 12px;border:1px solid currentColor;border-radius:50%}.project h3{font-size:27px;font-weight:600;max-width:400px}.project>p{margin-top:15px;font-size:16px;min-height:53px}.project-blue>p{color:var(--bl-1)}.project-light>p{color:var(--muted)}details{margin-top:26px;border-top:1px solid var(--ol-4)}.project-light details{border-color:var(--line)}summary{cursor:pointer;display:flex;justify-content:space-between;font-size:14px;list-style:none;padding-top:17px;font-weight:600}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:20px;line-height:1}details[open] summary:after{content:'−'}.details-content{padding-top:18px;font-size:15px;line-height:1.7}.strength-section{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding-top:0;padding-bottom:100px}.strength-intro h2{font-size:37px}.strength-intro>p{color:var(--muted);font-size:16px;margin-top:23px}.strength{display:flex;gap:20px;padding:24px 0;border-top:1px solid var(--line)}.strength>span{font-size:12px;color:var(--blue);padding-top:4px}.strength h3{font-size:19px;letter-spacing:-.02em;font-weight:600}.strength p{font-size:14px;color:var(--muted);margin-top:10px}.contact-section{background:var(--blue);color:var(--on-dark)}.contact-content{padding-top:67px;padding-bottom:72px;display:flex;align-items:center;justify-content:space-between;gap:50px}.contact-content .eyebrow{color:var(--bl-3)}.contact-content h2{font-size:56px;font-weight:600;margin-top:18px}.contact-content p{font-size:16px;max-width:390px;color:var(--bl-2);margin-top:21px}.contact-actions{display:flex;align-items:flex-start;flex-direction:column;gap:19px}.white{background:var(--surface);color:var(--blue);padding-inline:25px}.email-link{font-size:17px}.email-link:hover{color:var(--on-dark);text-decoration:underline}.cv-link{font-size:13px;color:var(--bl-2);text-decoration:underline;text-underline-offset:5px}.footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:30px}.footer>span{font-size:12px;color:var(--muted)}.photo-credit{max-width:270px;text-align:right}.photo-credit a{text-decoration:underline}.skip{position:absolute;top:-100px;left:20px;background:var(--surface);z-index:5;padding:10px}.skip:focus{top:10px}@media(min-width:1450px){.hero{padding-block:95px}}@media(max-width:1050px){.container,.header{width:calc(100% - 64px)}.hero{gap:36px}.intro{font-size:21px}.actions{gap:10px}.button{padding:13px 15px}.hero-note{line-height:1.8}.world-bottom{padding:26px 23px}.world-bottom h2{font-size:27px}.section-heading h2{font-size:39px}.card-top{flex-wrap:wrap;gap:9px}.strength-section{gap:45px}.band-inner{gap:20px;font-size:12px}.band-inner span:before{margin-right:8px}}@media(max-width:760px){html{scroll-padding-top:24px}.container,.header{width:calc(100% - 40px)}.header{height:79px;gap:20px}.wordmark{font-size:29px}nav{gap:17px}nav a{font-size:12px}.contact-top{display:none}.hero{grid-template-columns:1fr;padding-top:43px;padding-bottom:45px;gap:39px}.hero .eyebrow{font-size:10px}h1{font-size:clamp(68px,15vw,96px);margin:20px 0 25px}.intro{font-size:24px}.hero-description{max-width:560px}.hero-note{font-size:11px}.hero .actions{gap:10px}.world-card{max-width:560px;width:100%}.world-bottom h2{font-size:29px;margin-bottom:21px}.country-list span{font-size:11px}.band-inner{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding-block:21px;font-size:12px}.section{padding-block:59px}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:37px}.section-heading>p{margin-top:22px;max-width:100%;font-size:15px}.education-grid,.projects-grid{grid-template-columns:1fr;gap:17px}.education-card{padding:25px}.education-card h3{margin-top:26px;font-size:29px}.education-card .card-top{justify-content:space-between}.experience{grid-template-columns:1fr;gap:14px;padding-block:28px}.experience-meta{display:flex;align-items:center;justify-content:space-between}.experience-meta>span{font-size:23px}.experience-meta p{margin:0;text-align:right;font-size:9px}.experience h3{font-size:25px}.experience-index{display:none}.project{padding:27px}.project-monogram{padding:32px 0 25px}.project>p{min-height:0}.strength-section{grid-template-columns:1fr;gap:30px;padding-bottom:50px}.strength-intro h2{font-size:34px}.contact-content{display:block;padding-block:48px}.contact-content h2{font-size:47px}.contact-actions{margin-top:30px;gap:17px}.email-link{font-size:16px;overflow-wrap:anywhere}.footer{flex-wrap:wrap;gap:15px;padding-block:25px}.footer .photo-credit{max-width:none;width:100%;text-align:left}.footer>span{font-size:11px}.eyebrow{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

.project-documents{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.project-documents a{flex:1 1 180px;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:13px 16px;min-height:68px;border:1px solid var(--ol-6);border-radius:6px;font-size:14px;font-weight:600;line-height:1.5}.project-documents a:hover{background:var(--ol-7)}.project-documents .document-meta{font-size:12px;font-weight:400;color:var(--bl-1)}

.project-light .project-documents a{border-color:var(--line)}.project-light .project-documents a:hover{background:var(--paper-hover)}.project-light .project-documents .document-meta{color:var(--muted)}
.experience-work{max-width:710px;margin-top:22px;border-color:var(--ol-2)}.experience-work>summary{align-items:center;min-height:48px;padding:14px 0;font-size:15px}.work-content{padding:8px 0 4px}.work-content h4{font-size:16px;margin:0 0 8px;line-height:1.5}.work-content p{font-size:15px;color:var(--dk-1);line-height:1.7}.work-links{display:grid;gap:0;margin-top:16px}.work-links a{padding:13px 0;display:flex;flex-direction:column;border-bottom:1px solid var(--ol-1);gap:3px}.work-links a span{font-size:16px;font-weight:600}.work-links a small{font-size:14px;color:var(--dk-2)}.work-links a:hover span,.reference-link:hover{text-decoration:underline;text-underline-offset:4px}.work-content .work-note{font-size:13px;color:var(--dk-2);margin-top:12px}.work-sustainability{margin-top:24px}.reference-link{display:inline-block;margin-top:13px;font-size:14px;text-decoration:underline;text-underline-offset:4px}.linkedin-contact{font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:5px}

.portrait-frame{padding:20px;background:var(--surface)}.profile-portrait{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:50%}.portrait-card{border:1px solid var(--line)}.portrait-card .card-number{top:auto;bottom:28px;right:24px;font-size:23px}.portrait-card .world-bottom{padding:25px 26px 29px}.portrait-card .world-bottom h2{font-size:27px;margin:12px 0 20px}.portrait-card .country-list{padding-right:58px}@media(max-width:760px){.portrait-card{max-width:440px;justify-self:center}.portrait-frame{padding:14px}.portrait-card .world-bottom{padding:24px}.portrait-card .world-bottom h2{font-size:26px}}

.hero{gap:56px;padding-top:52px;padding-bottom:58px;grid-template-columns:1.25fr 1fr}.hero h1{font-size:clamp(64px,6.4vw,90px);margin:18px 0 24px}.career-intro{font-size:23px;line-height:1.5;max-width:620px;font-weight:600}.career-intro>span{color:var(--faint);font-weight:400}.hero-description{max-width:610px;margin-top:17px}.career-focus{margin-top:22px}.focus-tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.focus-tags li{font-size:14px;line-height:1.5;color:var(--tag-ink);background:var(--tag-bg);border:1px solid var(--tag-line);border-radius:5px;padding:6px 10px;font-weight:500}.sector-interests{font-size:14px;line-height:1.8;color:var(--muted);margin-top:14px;max-width:560px}.mobility-line{font-size:15px;font-weight:600;line-height:1.6;margin-top:16px}.mobility-line span{color:var(--faint);padding:0 6px}.career-detail{font-size:14px;line-height:1.7;color:var(--muted);margin-top:3px}.hero .actions{margin-top:23px}.hero .hero-note{margin-top:17px}.portrait-card{width:100%;max-width:460px;justify-self:end}@media(max-width:1050px){.hero{gap:30px;grid-template-columns:1.2fr 1fr}.career-intro{font-size:21px}}@media(max-width:760px){.hero{grid-template-columns:1fr;gap:32px;padding-top:36px;padding-bottom:44px}.hero h1{font-size:clamp(64px,15vw,86px)}.career-intro{font-size:21px}.hero .eyebrow{font-size:12px;letter-spacing:.05em}.portrait-card{justify-self:center;max-width:420px}.focus-tags li{font-size:14px}.mobility-line span{padding:0 3px}}

.case-study .case-subtitle{min-height:0;font-size:20px;font-weight:500;line-height:1.4;margin-top:10px}.case-study .case-role{min-height:0;font-size:14px;line-height:1.7;color:var(--bl-1);margin-top:14px}.case-blocks{margin-top:26px;display:grid;gap:20px}.case-blocks section{border-top:1px solid var(--ol-3);padding-top:18px}.case-blocks h4{font-size:12px;letter-spacing:.1em;text-transform:uppercase;line-height:1.5;margin:0 0 8px;color:var(--bl-2)}.case-blocks p{font-size:16px;line-height:1.65}.contribution-list{padding-left:20px;margin:18px 0}.contribution-list li{margin-bottom:14px}.case-recommendation{margin-top:20px}.case-skills{margin-top:20px;font-size:14px;line-height:1.8;color:var(--bl-1)}.project-top{flex-wrap:wrap}

.thesis-study .case-role,.thesis-study .case-skills{color:var(--muted)}.thesis-study .case-blocks section{border-color:var(--line)}.thesis-study .case-blocks h4{color:var(--blue)}.research-limit{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}

.case-study .project-monogram{font-size:52px;padding:25px 0 22px}.case-study .project-monogram span{font-size:15px}.case-study .case-subtitle{font-size:17px;line-height:1.5}.project-expand{margin-top:22px}.project-expand>summary{min-height:48px;align-items:center;padding:12px 0;font-size:15px}.project-expand>summary:after{font-size:24px;flex-shrink:0;margin-left:16px}.project-expanded-content{padding-top:5px}.project-expanded-content .case-role{margin-top:0}.expanded-research{margin-top:24px;border-top:1px solid var(--ol-3)}.project-light .expanded-research{border-color:var(--line)}

.language-switch{display:flex;align-items:center;gap:3px;padding:3px;border:1px solid var(--line);border-radius:7px;flex-shrink:0;margin-left:auto}.language-switch a{display:flex;align-items:center;justify-content:center;min-width:42px;min-height:38px;font-size:14px;font-weight:600;border-radius:4px}.language-switch a[aria-current="page"]{background:var(--navy);color:var(--on-dark)}.language-switch a:not([aria-current]):hover{background:var(--paper)}.header nav{margin-left:auto}.header .contact-top{white-space:nowrap}@media(max-width:760px){.header{height:auto;min-height:86px;flex-wrap:wrap;gap:12px;padding-block:15px}.header nav{order:3;flex-basis:100%;justify-content:center;gap:28px}.header nav a{font-size:14px}.language-switch{margin-left:auto}.language-switch a{min-height:40px}.hero{padding-top:30px}}

.contact-options{width:100%;max-width:440px;margin-top:0;border:1px solid var(--ol-5);border-radius:8px;padding:0 18px;scroll-margin-top:30px}.contact-options>summary{padding:16px 0;min-height:54px;align-items:center;font-size:16px}.contact-panel{padding:4px 0 18px}.contact-panel label{display:block;font-size:14px;margin-bottom:7px}.contact-panel input{display:block;width:100%;min-width:0;padding:12px;border:1px solid var(--ol-5);border-radius:5px;background:var(--surface);color:var(--navy);font:inherit;font-size:16px}.contact-tools{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px}.contact-tools button{font-family:inherit;cursor:pointer;border:0}.mail-app{font-size:14px;text-decoration:underline;text-underline-offset:4px}.contact-panel .contact-help,.contact-panel .copy-status{font-size:14px;line-height:1.5;margin-top:13px;max-width:100%}.contact-panel .copy-status:empty{display:none}.contact-actions{max-width:100%;width:440px}.contact-panel button:focus-visible,.contact-panel input:focus-visible{outline:3px solid var(--orange);outline-offset:4px}@media(max-width:760px){.contact-actions{width:100%}}

.certifications{margin-top:32px;padding-top:25px;border-top:1px solid var(--line)}.certifications>h3{font-size:20px;letter-spacing:-.02em;margin-bottom:16px}.certification-list{display:grid;grid-template-columns:1fr 1fr;gap:24px}.certification-list article{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:18px 20px;background:var(--paper);border-radius:7px}.certification-list h4{font-size:16px;margin:0 0 5px;line-height:1.4}.certification-list p{font-size:14px;color:var(--muted)}.certification-list small{display:block;font-size:13px;color:var(--muted);margin-top:6px}.certification-list a{font-size:14px;font-weight:600;color:var(--blue);text-decoration:underline;text-underline-offset:4px}@media(max-width:760px){.certification-list{grid-template-columns:1fr;gap:12px}}

.case-scope{font-size:14px;line-height:1.6;opacity:.85;margin-top:14px}.case-blocks .contribution-list{margin:0;padding-left:20px;font-size:16px}.case-blocks .contribution-list li{margin-bottom:8px}.work-figure{margin:20px 0;max-width:360px}.work-figure img{display:block;width:100%;height:auto;border-radius:6px}.work-figure figcaption{font-size:13px;color:var(--dk-2);margin-top:8px}.hero .career-focus{margin-top:14px}.hero .mobility-line{font-size:14px}#sf-report{scroll-margin-top:30px}

.apizza-project{margin-top:24px;padding-top:22px;border-top:1px solid var(--ol-1)}.apizza-project h4{margin-bottom:10px}

.passion-section{gap:48px;align-items:start;grid-template-columns:1.1fr 1fr}.passion-highlights{margin-top:22px}.passion-highlights span{font-size:14px}.passion-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:7px}.passion-gallery img{display:block;width:100%;height:380px;object-fit:cover;border-radius:8px;object-position:50% 55%}.passion-gallery img+img{margin-top:35px;object-position:50% 65%}.passion-details{margin-top:25px}.passion-details summary{font-size:16px}.passion-details .work-content h3{font-size:18px;letter-spacing:-.02em;margin-top:24px}.passion-details .work-content h3:first-child{margin-top:0}.passion-details .work-content p{font-size:16px;line-height:1.7;margin-top:12px}@media(max-width:1050px){.passion-section{gap:30px}.passion-gallery img{height:330px}}@media(max-width:760px){.passion-section{grid-template-columns:1fr;gap:28px}.passion-gallery{grid-row:2;max-width:540px;width:100%;margin:0}.passion-gallery img{height:300px}.passion-gallery img+img{margin-top:20px}.passion-highlights{gap:8px}}@media(max-width:380px){.passion-gallery img{height:250px}}

/* ---- Ajouts propres au modèle (modules optionnels) ---- */
.passion-section.pt{padding-top:96px}
.passion-section.solo{grid-template-columns:1fr}
.section.stack{padding-top:0}
.certifications.languages .focus-tags li{font-size:14px}
.contact-phone{margin-top:18px}
.reference-list article small{font-style:italic}
@media(max-width:760px){.passion-section.pt{padding-top:59px}}

/* Pastilles de la section passion : lisibles sur fond clair (même style que .focus-tags) */
.passion-highlights span{color:var(--tag-ink);background:var(--tag-bg);border-color:var(--tag-line)}

/* Mentions légales : lien discret dans le pied de page, panneau simple */
.legal-link{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:6px 0}.legal-link:hover{color:var(--text)}
.legal-dialog{width:min(520px,calc(100% - 40px));max-height:calc(100svh - 48px);margin:auto;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text)}.legal-dialog::backdrop{background:rgba(0,0,0,.5)}.legal-inner{padding:26px 24px 24px}.legal-dialog h2{font-size:30px;font-weight:600;margin-bottom:12px}.legal-dialog h3{font-family:var(--font-body),sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-top:16px;line-height:1.5}.legal-dialog p{font-size:15px;line-height:1.6;margin-top:2px}.legal-dialog a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.legal-dialog .button{margin-top:22px;background:transparent;color:inherit;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
@media(max-width:760px){.footer .legal-link{font-size:11px}}
