:root{--ink:#071525;--deep:#0e2c3e;--paper:#f4f1eb;--lime:#c9ff4a;--aqua:#68ead7;--teal:#067a86;--muted:#526170;--line:rgba(7,21,37,.15)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px}.cv-nav{height:82px;padding:0 clamp(22px,7vw,116px);display:flex;align-items:center;justify-content:space-between;background:rgba(7,21,37,.96);color:#fff}.brand{display:inline-flex;align-items:center;gap:5px;color:#fff;text-decoration:none;font-size:14px;font-weight:800;letter-spacing:1.7px;white-space:nowrap}.brand img{width:24px;height:24px;border-radius:7px}.brand strong{font-size:25px;letter-spacing:-1px}.brand i{width:5px;height:5px;margin:0 1px 8px;border-radius:50%;background:var(--lime)}.cv-nav-actions{display:flex;align-items:center;gap:22px}.cv-nav-actions>a{color:#d4e4e8;text-decoration:none;font-size:13px;font-weight:700}.print-button{border:1px solid rgba(255,255,255,.27);border-radius:999px;padding:10px 15px;background:transparent;color:#fff;font:700 12px Manrope,Arial,sans-serif;cursor:pointer}.print-button span{color:var(--lime);font-size:16px;margin-left:7px}.cv-hero{min-height:620px;padding:clamp(72px,10vw,144px) clamp(22px,7vw,116px) 88px;position:relative;overflow:hidden;background:var(--ink);color:#fff}.cv-hero-copy{position:relative;z-index:2;max-width:800px}.eyebrow,.section-label{margin:0;color:var(--teal);font:500 12px "DM Mono",monospace;letter-spacing:1.3px;text-transform:uppercase}.eyebrow{color:var(--aqua)}.eyebrow span{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 12px 1px 0;background:var(--lime)}h1{margin:28px 0 22px;font-size:clamp(64px,10vw,148px);line-height:.78;letter-spacing:-.095em}h1 span{color:var(--lime)}.cv-role{margin:0;font-size:clamp(20px,2.2vw,31px);line-height:1.2;font-weight:600}.cv-role em,h2 em{font-family:Georgia,serif;font-weight:400;color:var(--lime)}.cv-intro{max-width:530px;margin:38px 0 0;color:#c0cdd5;line-height:1.75}.cv-links{display:flex;gap:24px;align-items:center;margin-top:31px}.button{display:inline-flex;align-items:center;gap:20px;padding:15px 19px;background:var(--lime);color:var(--ink);text-decoration:none;font-size:13px;font-weight:800}.button span{font-size:19px}.text-link{color:inherit;font-size:13px;font-weight:800;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}.identity-toggle{position:absolute;z-index:3;right:clamp(40px,12vw,220px);bottom:78px;width:230px;border:0;background:none;color:#c4d4db;text-align:center;font:500 11px/1.5 "DM Mono",monospace;letter-spacing:.2px;cursor:pointer}.identity-card{display:block;position:relative;width:202px;height:250px;margin:0 auto 15px;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.identity-toggle.is-logo .identity-card{transform:rotateY(180deg)}.identity-face{position:absolute;inset:0;overflow:hidden;display:grid;place-items:center;backface-visibility:hidden;background:#23475b}.identity-photo img{width:100%;height:100%;object-fit:cover;object-position:center 27%}.identity-logo{transform:rotateY(180deg);background:linear-gradient(145deg,#0d3448,#071525);box-shadow:inset 0 0 0 1px rgba(104,234,215,.35)}.identity-logo img{width:68px;height:68px}.identity-logo b{margin-top:-28px;font-size:44px;letter-spacing:-.08em;color:#fff}.identity-logo small{margin-top:-48px;color:var(--lime);font:700 11px "DM Mono",monospace;letter-spacing:1.5px}.identity-hint b{color:var(--lime);font-size:19px}.cv-orbits i{position:absolute;border:1px solid rgba(104,234,215,.22);border-radius:50%;transform:rotate(-17deg)}.cv-orbits i:first-child{width:870px;height:250px;right:-150px;bottom:18px}.cv-orbits i:last-child{width:820px;height:340px;right:-95px;bottom:-28px;border-color:rgba(201,255,74,.18);transform:rotate(15deg)}.cv-section{padding:clamp(70px,10vw,130px) clamp(22px,7vw,116px);border-bottom:1px solid var(--line)}.section-main{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);gap:clamp(38px,8vw,140px);margin-top:34px}.section-main h2,.cv-cta h2{margin:0;font-size:clamp(45px,5vw,77px);line-height:.88;letter-spacing:-.075em}.cv-section h2 em{color:var(--teal)}.rich-copy{max-width:650px}.rich-copy p{margin:0 0 18px;line-height:1.85;color:var(--muted)}.impact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;max-width:920px;margin:70px 0 0 auto;padding:0;list-style:none;background:var(--line)}.impact-grid li{min-height:132px;padding:23px;background:var(--paper)}.impact-grid b{display:block;font-size:47px;line-height:1;letter-spacing:-.08em}.impact-grid span{display:block;margin-top:11px;color:var(--muted);font-size:13px;line-height:1.5}.cv-expertise{background:#eaf0ee}.expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#bbc9c8}.expertise-grid article{min-height:210px;padding:28px;background:var(--paper);transition:background .25s,color .25s,transform .25s}.expertise-grid article:hover{background:var(--deep);color:#fff;transform:translateY(-5px)}.expertise-grid span{font:500 11px "DM Mono",monospace;color:var(--teal)}.expertise-grid article:hover span{color:var(--lime)}.expertise-grid h3{margin:35px 0 12px;font-size:22px;letter-spacing:-.05em}.expertise-grid p{margin:0;color:var(--muted);font-size:13px;line-height:1.7}.expertise-grid article:hover p{color:#d1dfe3}.timeline{border-top:1px solid var(--line)}.timeline-item{border-bottom:1px solid var(--line)}.timeline-item summary{display:grid;grid-template-columns:130px minmax(0,1fr) 32px;gap:24px;padding:29px 0;list-style:none;cursor:pointer}.timeline-item summary::-webkit-details-marker{display:none}.timeline-item time{font:500 11px "DM Mono",monospace;color:var(--teal);letter-spacing:.3px}.company{margin:0 0 9px;color:var(--teal);font:600 11px "DM Mono",monospace;letter-spacing:.5px;text-transform:uppercase}.timeline-item h3{margin:0;font-size:22px;letter-spacing:-.05em}.summary-text{margin:11px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.toggle{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;font-size:22px;transition:transform .25s,background .25s}.timeline-item[open] .toggle{transform:rotate(45deg);background:var(--lime);border-color:var(--lime)}.timeline-details{padding:0 56px 30px 154px;color:var(--muted);font-size:14px;line-height:1.75}.timeline-details p{margin:0}.timeline-details ul{margin:0;padding-left:19px}.timeline-details li+li{margin-top:8px}.credential-grid{display:grid;gap:14px}.education,.credential{min-height:150px;padding:22px;display:grid;grid-template-columns:130px minmax(0,1fr);gap:22px;align-items:center;border-left:3px solid var(--aqua);background:#e5e1d8}.education img{max-width:120px;max-height:74px}.credential{color:var(--ink);text-decoration:none;background:var(--ink);border-color:var(--lime)}.credential img{width:105px;height:105px;object-fit:contain}.credential b{color:var(--lime)}.education b,.credential b{font:500 11px "DM Mono",monospace;letter-spacing:.5px}.education h3,.credential h3{margin:9px 0 7px;font-size:20px;line-height:1.1;letter-spacing:-.045em}.education p,.credential p{margin:0;color:var(--muted);font-size:13px}.credential h3{color:#fff}.credential p{color:var(--aqua)}.cv-cta{padding:clamp(75px,10vw,140px) clamp(22px,7vw,116px);background:var(--ink);color:#fff}.cv-cta h2{max-width:850px;margin:28px 0 40px}.cv-cta h2 em{color:var(--lime)}.cv-cta>div{display:flex;align-items:center;gap:26px}.cv-cta .text-link{color:var(--aqua)}footer{display:flex;align-items:center;gap:30px;padding:31px clamp(22px,7vw,116px);background:#06111e;color:#8da1ad;font-size:11px}footer p{margin:0}footer>a:last-child{margin-left:auto;color:var(--aqua);font-weight:700;text-decoration:none}
@media(max-width:820px){.identity-toggle{position:relative;right:auto;bottom:auto;margin:55px auto 0}.cv-hero{padding-bottom:56px}.section-main{grid-template-columns:1fr;gap:32px}.impact-grid{margin:45px 0 0}.timeline-item summary{grid-template-columns:100px minmax(0,1fr) 30px;gap:15px}.timeline-details{padding-left:115px}.credential-grid{grid-template-columns:1fr}.cv-orbits i:first-child{right:-410px}}
@media(max-width:600px){.cv-nav{height:66px;padding:0 20px}.cv-nav .brand{font-size:10px;letter-spacing:1px}.cv-nav .brand strong{font-size:20px}.cv-nav .brand img{width:20px;height:20px}.cv-nav-actions>a{display:none}.print-button{padding:8px 11px;font-size:10px}.cv-hero{min-height:0;padding:78px 22px 48px}.cv-intro{font-size:14px}.cv-links{gap:17px}.identity-card{width:188px;height:228px}.impact-grid{grid-template-columns:1fr}.impact-grid li{min-height:0;padding:19px}.expertise-grid{grid-template-columns:1fr}.expertise-grid article{min-height:0}.timeline-item summary{grid-template-columns:1fr 30px;gap:9px}.timeline-item time{grid-column:1/-1}.timeline-item h3{font-size:19px}.timeline-details{padding:0 0 27px;font-size:13px}.education,.credential{grid-template-columns:96px minmax(0,1fr);gap:15px}.education img{max-width:92px}.cv-cta>div{align-items:flex-start;flex-direction:column;gap:18px}footer{flex-wrap:wrap;gap:15px;padding:28px 22px}footer p{order:3;flex-basis:100%}footer>a:last-child{margin-left:0}}
@media print{@page{size:A4;margin:13mm}*{print-color-adjust:exact;-webkit-print-color-adjust:exact}body{font-size:10pt;background:#fff}.cv-nav{height:auto;padding:0 0 8mm;background:#fff;color:var(--ink);border-bottom:1px solid #aab4b8}.cv-nav .brand{color:var(--ink)}.cv-nav-actions,.identity-hint{display:none}.cv-hero{min-height:0;padding:11mm 0 9mm;background:#fff;color:var(--ink);overflow:visible}.cv-hero h1{font-size:48pt}.eyebrow{color:var(--teal)}.cv-role{font-size:16pt}.cv-role em{color:var(--teal)}.cv-intro{margin-top:6mm;color:#33454f;font-size:10pt;max-width:130mm}.cv-links{display:none}.identity-toggle{position:absolute;right:0;bottom:8mm;width:34mm}.identity-card{width:31mm;height:39mm;margin:0}.cv-orbits{display:none}.cv-section{padding:8mm 0;border-bottom:1px solid #bbc5c8;break-inside:avoid}.section-main{gap:8mm;margin-top:5mm;grid-template-columns:55mm 1fr}.section-main h2,.cv-cta h2{font-size:25pt}.impact-grid{margin:6mm 0 0 63mm;max-width:none}.impact-grid li{min-height:0;padding:4mm}.impact-grid b{font-size:22pt}.impact-grid span{font-size:8pt;margin-top:2mm}.cv-expertise{background:#fff}.expertise-grid{grid-template-columns:repeat(2,1fr)}.expertise-grid article{min-height:0;padding:5mm;background:#fff;border:1px solid #ccd5d7}.expertise-grid h3{margin:5mm 0 2mm;font-size:13pt}.timeline-item summary{padding:5mm 0;grid-template-columns:33mm 1fr}.timeline-item .toggle{display:none}.timeline-details{display:block!important;padding:0 0 5mm 33mm}.timeline-details p,.timeline-details ul{font-size:9pt}.credential-grid{gap:4mm}.education,.credential{min-height:0;padding:4mm}.cv-cta{padding:10mm 0;background:#fff;color:var(--ink)}.cv-cta h2 em{color:var(--teal)}.cv-cta .section-label{color:var(--teal)}.cv-cta>div{display:none}footer{padding:7mm 0 0;background:#fff;color:#526170}.brand img{width:18px;height:18px}.brand strong{font-size:18pt}footer>a:last-child{color:#526170}.credential{background:#fff;color:var(--ink);border:1px solid #bcc7ca}.credential h3{color:var(--ink)}.credential p{color:var(--teal)}}
/* Variantes demandées pour la présentation du CV. */
@media(min-width:761px){html{scroll-snap-type:y mandatory;scroll-behavior:smooth}.cv-hero,.cv-section,.cv-cta{scroll-snap-align:start;scroll-snap-stop:always}}
.button{border:0;cursor:pointer;font-family:Manrope,Arial,sans-serif}.identity-toggle{bottom:98px}.identity-card{width:224px;height:224px;padding:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.36),0 18px 40px rgba(0,0,0,.22)}.identity-face{border-radius:50%}.identity-photo{background:#fff}.identity-photo img{object-position:center 23%}.identity-logo{background:#0e2c3e}.identity-logo img{width:92px;height:92px}.identity-logo b,.identity-logo small,.identity-hint{display:none}.mission-notes{margin-top:23px;padding:18px 20px;border-left:3px solid var(--aqua);background:rgba(104,234,215,.09)}.mission-notes>p{margin:0 0 10px;color:var(--teal);font:600 11px "DM Mono",monospace;letter-spacing:.6px;text-transform:uppercase}.mission-notes ul{padding-left:18px}.mission-notes b{color:var(--ink)}
@media(max-width:820px){.identity-toggle{bottom:auto}.identity-card{width:208px;height:208px}}
@media(max-width:600px){.identity-card{width:188px;height:188px}.identity-logo img{width:78px;height:78px}}
@media print{html{scroll-snap-type:none}.identity-card{width:35mm;height:35mm;padding:1.5mm}.identity-logo img{width:18mm;height:18mm}.mission-notes{background:#fff;padding:3mm}.print-hero{display:none}}

/* Portrait du CV : fond blanc, cadrage circulaire plus affirmé. */
@media(min-width:821px){.identity-card{width:286px;height:286px;padding:9px}.identity-logo img{width:152px;height:152px}.identity-toggle{right:clamp(38px,9vw,180px);bottom:68px}}
@media(min-width:601px) and (max-width:820px){.identity-card{width:252px;height:252px}.identity-logo img{width:130px;height:130px}}
@media(max-width:600px){.identity-card{width:212px;height:212px;padding:7px}.identity-logo img{width:108px;height:108px}}
@media print{.identity-card{width:39mm;height:39mm}.identity-logo img{width:24mm;height:24mm}}

/* Le portrait respire davantage dans son médaillon blanc. */
.identity-photo img{width:84%;height:84%;object-fit:contain;object-position:center center}

/* Face sans photo : logo atome plein cadre sur fond blanc. */
.identity-logo{background:#fff}.identity-logo img{width:190px;height:190px}
@media(max-width:820px){.identity-logo img{width:162px;height:162px}}
@media(max-width:600px){.identity-logo img{width:138px;height:138px}}
@media print{.identity-logo{background:#fff}.identity-logo img{width:28mm;height:28mm}}

/* Le choix d’impression reste visuellement attaché à l’identité affichée. */
.identity-panel{position:absolute;z-index:3;right:clamp(38px,9vw,180px);bottom:52px;width:286px;text-align:center}.identity-panel .identity-toggle{position:relative;right:auto;bottom:auto;width:100%;margin:0}.identity-print-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:16px;padding:12px;border:1px solid var(--lime);background:var(--lime);color:var(--ink);font:800 12px Manrope,Arial,sans-serif;cursor:pointer}.identity-print-button span{font-size:16px}.identity-panel~.cv-orbits{z-index:1}
@media(min-width:601px) and (max-width:820px){.identity-panel{position:relative;right:auto;bottom:auto;width:252px;margin:55px auto 0}.identity-panel .identity-toggle{margin:0}}
@media(max-width:600px){.identity-panel{position:relative;right:auto;bottom:auto;width:212px;margin:55px auto 0}.identity-panel .identity-toggle{margin:0}.identity-print-button{font-size:10px;padding:10px}}
@media print{.identity-print-button{display:none}.identity-panel{right:0;bottom:8mm;width:39mm}.identity-panel .identity-toggle{width:39mm}}

/* Les liens PDF conservent le dessin des boutons, sans déclencher la boîte d’impression. */
.print-button,.identity-print-button{text-decoration:none}.print-button{display:inline-flex;align-items:center}.identity-print-button{display:flex}

/* Navigation CV : retour explicite et toujours accessible. */
.cv-nav-actions .home-button{display:inline-flex;align-items:center;padding:10px 14px;border:1px solid rgba(104,234,215,.48);color:#fff;font-size:12px}
@media(max-width:600px){.cv-nav-actions .home-button{display:inline-flex;padding:8px 10px;font-size:10px}.cv-nav-actions .print-button{display:none}}

/* Navigation CV persistante malgré le défilement par rubriques. */
.cv-nav{position:sticky;top:0;z-index:100}
@media(min-width:761px){.cv-hero,.cv-section,.cv-cta{scroll-margin-top:82px}}
@media(max-width:760px){.cv-hero,.cv-section,.cv-cta{scroll-margin-top:66px}}
