: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}}

/* Sur une faible hauteur d’écran, le hero dépasse la fenêtre : le défilement doit rester libre pour atteindre le téléchargement. */
@media(min-width:761px) and (max-height:900px){html{scroll-snap-type:none}.cv-hero,.cv-section,.cv-cta{scroll-snap-align:none;scroll-snap-stop:normal}}
.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:0;border:0;color:#fff;font-size:12px}
@media(max-width:600px){.cv-nav-actions .home-button{display:inline-flex;padding:0;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}}

/* Choix de la version PDF : explicite, compact et attaché au portrait. */
.pdf-choice{margin-top:17px;text-align:left}.pdf-choice label{display:block;margin:0 0 8px;color:var(--aqua);font:500 10px "DM Mono",monospace;letter-spacing:1px;text-transform:uppercase}.pdf-choice select{width:100%;appearance:none;padding:12px 38px 12px 14px;border:1px solid rgba(104,234,215,.55);border-radius:0;background:linear-gradient(45deg,transparent 50%,var(--lime) 50%) calc(100% - 17px) 50%/6px 6px no-repeat,#0a2032;color:#fff;font:700 12px Manrope,Arial,sans-serif;cursor:pointer}.pdf-choice select:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.pdf-choice option{background:#0a2032;color:#fff}.pdf-choice p{margin:8px 0 0;color:#b7c7d1;font-size:10px;line-height:1.45}.identity-download-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:14px;padding:13px;border:1px solid var(--lime);background:var(--lime);color:var(--ink);font:800 12px Manrope,Arial,sans-serif;text-decoration:none}.identity-download-button span{font-size:16px}.identity-download-button:hover{background:#dcff82}.identity-download-button:focus-visible{outline:2px solid #fff;outline-offset:3px}@media(max-width:600px){.pdf-choice label{font-size:9px}.pdf-choice select,.identity-download-button{font-size:11px}.pdf-choice p{font-size:9px}}@media print{.pdf-choice,.identity-download-button{display:none}}

/* Sélecteurs radio : deux choix nets, sans perdre le rythme graphique du CV. */
.pdf-choice{display:grid;gap:15px}.pdf-choice-group{min-width:0;margin:0;padding:0;border:0}.pdf-choice-group legend{margin:0 0 8px;padding:0;color:var(--aqua);font:500 13px "DM Mono",monospace;letter-spacing:1px;text-transform:uppercase}.pdf-radio-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.pdf-radio-group label{position:relative;display:block;margin:0!important;color:#b7c7d1!important;font:700 13px Manrope,Arial,sans-serif!important;letter-spacing:0!important;text-align:center;text-transform:none!important;cursor:pointer}.pdf-radio-group input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.pdf-radio-group span{display:grid;min-height:44px;place-items:center;padding:10px 8px;border:1px solid rgba(104,234,215,.42);background:#0a2032;transition:background .2s,color .2s,border-color .2s,transform .2s}.pdf-radio-group input:checked+span{border-color:var(--lime);background:var(--lime);color:var(--ink)}.pdf-radio-group input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}.pdf-radio-group label:hover span{transform:translateY(-2px);border-color:var(--aqua)}.pdf-choice p{margin:-5px 0 0;font-size:13px;line-height:1.5}.identity-download-button{margin-top:17px}@media(max-width:600px){.pdf-choice-group legend{font-size:12px}.pdf-radio-group label{font-size:12px!important}.pdf-radio-group span{min-height:44px;padding:10px 6px}.pdf-choice p{font-size:12px}}

/* Téléchargements du CV : même pilule transparente que l’action « Échanger ». */
.cv-download-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;border:1px solid rgba(255,255,255,.35);border-radius:100px;background:transparent;color:#fff;font:800 12px Manrope,Arial,sans-serif;text-decoration:none;white-space:nowrap;transition:border-color .2s,background .2s,color .2s}.cv-download-button span{color:var(--lime);font-size:16px;line-height:1}.cv-download-button:hover{border-color:var(--lime);background:rgba(255,255,255,.07)}.cv-download-button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.identity-download-button{width:fit-content;margin:17px auto 0!important;padding:10px 15px!important;border-color:rgba(255,255,255,.35)!important;border-radius:100px!important;background:transparent!important;color:#fff!important}.identity-download-button:hover{background:rgba(255,255,255,.07)!important}.nav-download-button{margin-left:2px}@media(max-width:600px){.cv-nav-actions .nav-download-button{display:none}.identity-download-button{font-size:11px}}

/* Le téléchargement principal sous les sélecteurs devient le repère d’action. */
.nav-download-button{margin-left:2px;transform:none;padding:10px 15px;font-size:12px}.nav-download-button span{font-size:16px}.identity-download-button{margin-top:28px!important;transform:none;padding:15px 23px!important;font-size:18px}.identity-download-button span{font-size:22px}@media(max-width:600px){.cv-nav-actions .nav-download-button{display:none}.identity-download-button{margin-top:24px!important;padding:12px 17px!important;font-size:14px}.identity-download-button span{font-size:18px}}

/* Matrice unique : quatre radios natifs, rendus comme de légères puces à cocher. */
.pdf-choice{display:block}.pdf-matrix{display:grid;grid-template-columns:90px repeat(2,minmax(0,1fr));gap:7px;align-items:stretch}.pdf-matrix-head,.pdf-matrix-row{display:grid;place-items:center;color:#d6e3e8;font:700 15px Manrope,Arial,sans-serif}.pdf-matrix-row{display:flex;align-items:center;justify-content:center;color:#fff;letter-spacing:.2px;text-align:center}.pdf-matrix-choice{position:relative;display:block;min-width:0;margin:0!important;cursor:pointer}.pdf-matrix-choice input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.pdf-matrix-choice span{position:relative;display:grid;min-height:44px;place-items:center;background:transparent;color:transparent;font-size:0}.pdf-matrix-choice span:before{content:"";width:18px;height:18px;border:2px solid rgba(104,234,215,.7);border-radius:50%;background:#0a2032;transition:background .2s,border-color .2s,box-shadow .2s}.pdf-matrix-choice span:after{display:none}.pdf-matrix-choice input:checked+span:before{border-color:var(--lime);background:var(--lime);box-shadow:0 0 12px 4px rgba(201,255,74,.72),0 0 28px 9px rgba(201,255,74,.28)}.pdf-matrix-choice input:focus-visible+span:before{outline:2px solid #fff;outline-offset:3px}.pdf-matrix-choice:hover span:before{border-color:var(--aqua);transform:scale(1.12)}@media(max-width:600px){.pdf-matrix{grid-template-columns:70px repeat(2,minmax(0,1fr));gap:6px}.pdf-matrix-head,.pdf-matrix-row{font-size:13px}.pdf-matrix-choice span{min-height:44px}}

/* Lecture plus douce de la matrice et action principale à nouveau pleinement lime. */
.pdf-matrix-choice span{border:1px solid rgba(104,234,215,.16);background:rgba(104,234,215,.035)}.pdf-matrix-choice input:checked+span:before{box-shadow:0 0 10px 2px rgba(201,255,74,.48),0 0 20px 4px rgba(201,255,74,.16)}.identity-download-button{width:100%;margin-top:28px!important;border-color:var(--lime)!important;border-radius:0!important;background:var(--lime)!important;color:var(--ink)!important}.identity-download-button span{color:var(--ink)!important}.identity-download-button:hover{background:#dcff82!important}

/* Chaque zone de choix porte sa puce exactement en son centre. */
.pdf-matrix-choice{display:flex!important;align-items:stretch}.pdf-matrix-choice span{display:flex!important;inline-size:100%;min-height:44px;padding:0;align-items:center;justify-content:center}

/* Panneau de téléchargement : un contrôle photo, une langue, une action. */
.identity-toggle{width:100%;color:#c4d4db}.identity-card{transform:none!important;transition:none!important}.identity-face{backface-visibility:visible!important;transform:none!important;opacity:1;transition:opacity .28s ease}.identity-logo{background:#fff!important;box-shadow:none!important;opacity:0}.identity-toggle.is-logo .identity-photo{opacity:0}.identity-toggle.is-logo .identity-logo{opacity:1}.identity-status{display:block;margin:14px auto 0;color:#d9e5ea;font:500 13px/1.45 Manrope,Arial,sans-serif;text-align:center}.identity-status b{color:var(--aqua);font-weight:700}.pdf-language-choice{min-width:0;margin:20px 0 0;padding:0;border:0;text-align:left}.pdf-language-choice legend{margin:0 0 8px;padding:0;color:var(--aqua);font:500 11px "DM Mono",monospace;letter-spacing:1px;text-transform:uppercase}.pdf-language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.pdf-language-options label{position:relative;display:block;cursor:pointer}.pdf-language-options input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.pdf-language-options span{display:grid;min-height:44px;place-items:center;border:1px solid rgba(104,234,215,.42);background:#0a2032;color:#fff;font:700 13px Manrope,Arial,sans-serif;transition:background .2s,color .2s,border-color .2s}.pdf-language-options input:checked+span{border-color:var(--lime);background:var(--lime);color:var(--ink)}.pdf-language-options input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}.pdf-language-options label:hover span{border-color:var(--aqua)}.identity-download-button{margin-top:20px!important}.identity-toggle:focus-visible{outline:2px solid var(--lime);outline-offset:5px}@media(prefers-reduced-motion:reduce){.identity-face{transition:none!important}}@media(max-width:600px){.pdf-language-choice{margin-top:17px}.identity-status{font-size:12px}.pdf-language-options span{min-height:44px}.identity-download-button{margin-top:18px!important}}@media print{.identity-status,.pdf-language-choice{display:none}}

/* Langue : radio natif minimal FR | EN, sans cellule. */
.pdf-language-choice{margin-top:17px;text-align:center}.pdf-language-options{display:inline-flex;align-items:center;justify-content:center;gap:0}.pdf-language-options label{display:inline-flex;align-items:center;min-height:44px;padding:0 10px;color:#fff;font:700 13px Manrope,Arial,sans-serif}.pdf-language-options label+label:before{content:"|";margin-right:16px;color:rgba(255,255,255,.42);font-weight:400}.pdf-language-options input{position:static;inline-size:15px;block-size:15px;margin:0 7px 0 0;opacity:1;pointer-events:auto;accent-color:var(--lime)}.pdf-language-options span{display:inline;border:0;background:transparent;min-height:0;color:#fff;font:inherit;transition:color .2s}.pdf-language-options input:checked+span{background:transparent;color:var(--lime)}.pdf-language-options input:focus-visible{outline:2px solid #fff;outline-offset:3px}.pdf-language-options label:hover span{color:var(--aqua)}@media(max-width:600px){.pdf-language-choice{margin-top:14px}.pdf-language-options label{min-height:44px;padding:0 8px}}

/* Langue : cellules sans contour, et retour au retournement du médaillon. */
.identity-card{transform-style:preserve-3d!important;transition:transform .8s cubic-bezier(.2,.7,.2,1)!important}.identity-toggle.is-logo .identity-card{transform:rotateY(180deg)!important}.identity-face{backface-visibility:hidden!important;transform:rotateY(0)!important;opacity:1!important;transition:none!important}.identity-logo{transform:rotateY(180deg)!important;opacity:1!important}.identity-toggle.is-logo .identity-photo,.identity-toggle.is-logo .identity-logo{opacity:1!important}.pdf-language-options{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.pdf-language-options label{position:relative;display:block;min-height:52px;padding:0;cursor:pointer}.pdf-language-options label+label:before{content:"|";position:absolute;z-index:1;top:50%;left:-17px;margin:0;transform:translateY(-52%);color:rgba(255,255,255,.58);font:400 30px/1 Manrope,Arial,sans-serif}.pdf-language-options input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}.pdf-language-options span{display:grid;min-height:52px;place-items:center;border:0;background:transparent;color:#fff;font:700 26px/1 Manrope,Arial,sans-serif;transition:background .2s,color .2s}.pdf-language-options input:checked+span{background:var(--lime);color:var(--ink)}.pdf-language-options input:focus-visible+span{outline:2px solid #fff;outline-offset:3px}.pdf-language-options label:hover span{color:var(--aqua)}.pdf-language-options label:hover input:checked+span{color:var(--ink)}@media(max-width:600px){.pdf-language-options{gap:18px}.pdf-language-options label{min-height:48px}.pdf-language-options label+label:before{left:-14px;font-size:27px}.pdf-language-options span{min-height:48px;font-size:23px}}

/* Le choix actif reste lisible sans occuper toute la largeur du panneau. */
.pdf-language-options label{justify-self:center;width:88px;min-height:46px}.pdf-language-options span{min-height:46px}.pdf-language-options label+label:before{display:none}.pdf-language-options:after{content:"|";position:absolute;top:50%;left:50%;transform:translate(-50%,-52%);color:rgba(255,255,255,.58);font:400 30px/1 Manrope,Arial,sans-serif;pointer-events:none}@media(max-width:600px){.pdf-language-options label{width:78px;min-height:44px}.pdf-language-options span{min-height:44px}.pdf-language-options:after{font-size:27px}}

/* Des langues plus proches, avec un séparateur toujours centré. */
.pdf-language-options{grid-template-columns:repeat(2,88px);justify-content:center;gap:12px}@media(max-width:600px){.pdf-language-options{grid-template-columns:repeat(2,78px);gap:8px}}

.pdf-language-options:after{display:none}

/* Périmètre d'intervention international. */
.cv-international{background:var(--ink);color:#fff}.cv-international .section-label{color:var(--aqua)}.cv-international h2 em{color:var(--lime)}.international-copy{max-width:650px}.international-copy>p{margin:0;color:#c0cdd5;line-height:1.85}.international-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:30px 0 0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.22)}.international-list li{min-height:58px;padding:17px 12px;border-right:1px solid rgba(255,255,255,.22);border-bottom:1px solid rgba(255,255,255,.22);font:700 13px Manrope,Arial,sans-serif}.international-list li:before{content:"•";margin-right:8px;color:var(--lime)}.international-list li:nth-child(4n){border-right:0}@media(max-width:760px){.international-list{grid-template-columns:repeat(2,minmax(0,1fr))}.international-list li:nth-child(4n){border-right:1px solid rgba(255,255,255,.22)}.international-list li:nth-child(even){border-right:0}}@media print{.cv-international{background:#fff;color:var(--ink)}.cv-international .section-label{color:var(--teal)}.cv-international h2 em{color:var(--teal)}.international-copy>p{color:#526170}.international-list{margin-top:4mm;border-color:#bbc5c8}.international-list li{min-height:0;padding:3mm;border-color:#bbc5c8;font-size:9pt}.international-list li:before{color:var(--teal)}}

/* Carte internationale : fonds bleu nuit, continents en trait gris et pays en relief. */
.world-map{margin:30px 0 0;border:1px solid rgba(177,195,203,.32);background:#0a2032;box-shadow:inset 0 0 0 1px rgba(104,234,215,.06),0 18px 35px rgba(0,0,0,.14);overflow:hidden}.world-map svg{display:block;width:100%;height:auto}.world-map-grid{fill:none;stroke:rgba(177,195,203,.13);stroke-width:1}.world-map-land{fill:rgba(177,195,203,.025);stroke:rgba(194,207,214,.72);stroke-width:2;stroke-linejoin:round}.world-map-marker circle:first-child{fill:#68ead7;stroke:#d6fff7;stroke-width:2}.world-map-marker circle:nth-child(2){fill:var(--lime)}.world-map-marker text{fill:#fff;font:700 16px Manrope,Arial,sans-serif;paint-order:stroke;stroke:#0a2032;stroke-width:5;stroke-linejoin:round}.world-map figcaption{padding:12px 16px;border-top:1px solid rgba(177,195,203,.2);color:#b8c8d0;font:500 10px "DM Mono",monospace;letter-spacing:.4px;text-align:center}@media(max-width:600px){.world-map{margin-top:24px}.world-map-marker text{font-size:19px}.world-map figcaption{font-size:9px;line-height:1.6}}@media print{.world-map{box-shadow:none;border-color:#aab7bb;background:#eff4f4}.world-map-grid{stroke:rgba(7,21,37,.11)}.world-map-land{fill:rgba(7,21,37,.015);stroke:#607681}.world-map-marker text{fill:#071525;stroke:#eff4f4}.world-map figcaption{border-color:#aab7bb;color:#526170}}

/* Véritable carte Robinson : pas de légende sous l’image, seulement les pays relevés. */
.world-map{aspect-ratio:2.05/1;padding:18px;background:#0a2032}.world-map>img{display:block;width:100%;height:100%;object-fit:contain}.world-map figcaption{display:none}@media print{.world-map{padding:4mm;background:#eff4f4}.world-map>img{filter:none}}

/* La carte est incrustée dans toute la section, sous le contenu éditorial. */
.cv-international{position:relative;min-height:690px;isolation:isolate;overflow:hidden}.cv-international>.section-label,.cv-international>.section-main{position:relative;z-index:2}.cv-international>.section-main{max-width:620px}.cv-international>.world-map{position:absolute;z-index:1;inset:0;margin:0;padding:4% 2% 3% 13%;border:0;box-shadow:none;background:transparent;pointer-events:auto}.cv-international>.world-map>object{display:block;width:118%;height:112%;max-width:none;transform:translate(-7%,-4%) scale(1.06);transform-origin:54% 52%;pointer-events:auto}.cv-international>.section-main:after{content:"";position:absolute;z-index:-1;inset:-28px -46px;background:linear-gradient(90deg,rgba(7,21,37,.96) 0%,rgba(7,21,37,.83) 62%,rgba(7,21,37,0) 100%);pointer-events:none}@media(max-width:760px){.cv-international{min-height:610px}.cv-international>.section-main{max-width:100%}.cv-international>.world-map{padding:22% 0 0}.cv-international>.world-map>object{width:155%;height:114%;transform:translate(-27%,-2%) scale(1.06)}.cv-international>.section-main:after{inset:-22px -24px;background:linear-gradient(180deg,rgba(7,21,37,.96) 0%,rgba(7,21,37,.78) 64%,rgba(7,21,37,.1) 100%)}}@media print{.cv-international{min-height:0}.cv-international>.world-map{display:none}.cv-international>.section-main:after{display:none}}

/* Carte intégrale, dézoomée ; le texte s'installe dans un bandeau inférieur lisible. */
.cv-international>.world-map{padding:2% 3%;background:transparent}.cv-international>.world-map>object{width:100%;height:100%;transform:none;transform-origin:center;object-fit:contain}.cv-international>.section-main{position:absolute;z-index:3;left:clamp(22px,7vw,116px);right:clamp(22px,7vw,116px);bottom:clamp(28px,4vw,62px);max-width:none;margin:0;padding:26px 30px;background:linear-gradient(90deg,rgba(7,21,37,.98) 0%,rgba(7,21,37,.91) 74%,rgba(7,21,37,.68) 100%)}.cv-international>.section-main:after{display:none}@media(max-width:760px){.cv-international{min-height:630px}.cv-international>.world-map{padding:3%}.cv-international>.world-map>object{width:100%;height:100%;transform:none}.cv-international>.section-main{left:22px;right:22px;bottom:26px;padding:20px;background:linear-gradient(180deg,rgba(7,21,37,.98),rgba(7,21,37,.84))}}@media print{.cv-international>.section-main{position:relative;inset:auto;padding:0;background:transparent}}

/* International : récit à gauche et monde recadré à droite au-dessus du Brésil. */
.cv-international{min-height:590px}.cv-international>.section-main{position:relative;z-index:3;left:auto;right:auto;bottom:auto;display:block;max-width:40%;margin-top:34px;padding:0;background:transparent}.cv-international>.section-main h2{margin:0 0 28px}.cv-international>.world-map{top:4%;right:-4%;bottom:0;left:42%;padding:0;background:transparent}.cv-international>.world-map>object{width:100%;height:100%;transform:none;object-fit:contain}@media(max-width:760px){.cv-international{min-height:0}.cv-international>.section-main{position:relative;inset:auto;display:block;max-width:none;margin-top:34px;padding:0;background:transparent}.cv-international>.section-main h2{margin-bottom:20px}.cv-international>.world-map{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:3.33/1;margin:34px 0 0;padding:0}.cv-international>.world-map>object{width:100%;height:100%;transform:none;object-fit:contain}}

/* Le cadre épouse le ratio de la carte : aucune zone perdue, aucune déformation. */
.cv-international>.world-map{top:8%;right:2%;bottom:auto;left:42%;height:auto;aspect-ratio:3.33/1}.cv-international>.world-map>object{object-fit:fill}@media(max-width:760px){.cv-international>.world-map{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3.33/1;margin:34px 0 0}.cv-international>.world-map>object{object-fit:fill}}

/* Zoom optique adapté au cadre disponible, sans rogner la partie utile du Brésil. */
.cv-international>.world-map>object{transform:scale(1.12);transform-origin:50% 38%}@media(min-width:1440px){.cv-international>.world-map>object{transform:scale(1.2)}}@media(min-width:1024px) and (max-width:1439px){.cv-international>.world-map>object{transform:scale(1.27)}}@media(min-width:761px) and (max-width:1023px){.cv-international>.world-map{left:39%;right:0}.cv-international>.section-main{max-width:38%}.cv-international>.world-map>object{transform:scale(1.18)}}@media(max-width:760px){.cv-international>.world-map>object{transform:scale(1.16);transform-origin:50% 36%}}@media(max-width:420px){.cv-international>.world-map>object{transform:scale(1.22);transform-origin:50% 35%}}

/* Le Brésil doit rester lisible : recadrage bas élargi et zoom plafonné à 8 %. */
.cv-international{min-height:650px}.cv-international>.world-map{aspect-ratio:2.975/1}.cv-international>.world-map>object{transform:scale(1.04);transform-origin:50% 34%}@media(min-width:1440px){.cv-international>.world-map>object{transform:scale(1.06)}}@media(min-width:1024px) and (max-width:1439px){.cv-international>.world-map>object{transform:scale(1.08)}}@media(min-width:761px) and (max-width:1023px){.cv-international>.world-map>object{transform:scale(1.05)}}@media(max-width:760px){.cv-international{min-height:0}.cv-international>.world-map{aspect-ratio:2.975/1}.cv-international>.world-map>object{transform:scale(1.03);transform-origin:50% 32%}}@media(max-width:420px){.cv-international>.world-map>object{transform:scale(1.05)}}

/* Carte plus présente sur mobile ; rubrique plus compacte sur les écrans horizontaux. */
@media(min-width:761px){.cv-international{min-height:525px}.cv-international>.world-map{top:10%}.cv-international>.world-map>object{transform:scale(1.1);transform-origin:50% 30%}}@media(min-width:1024px) and (max-width:1439px){.cv-international>.world-map>object{transform:scale(1.13)}}@media(min-width:1440px){.cv-international>.world-map>object{transform:scale(1.16)}}@media(max-width:760px){.cv-international>.world-map>object{transform:scale(1.17);transform-origin:50% 28%}}@media(max-width:420px){.cv-international>.world-map>object{transform:scale(1.2);transform-origin:50% 26%}}

/* Tant que la rubrique peut s'agrandir, la carte complète reste visible. */
.international-copy>p+p{margin-top:18px}.cv-international{min-height:650px}.cv-international>.world-map{top:5%;right:2%;left:42%;bottom:auto;aspect-ratio:1.972/1}.cv-international>.world-map>object{transform:none!important;object-fit:contain}@media(max-width:760px){.cv-international{min-height:0}.cv-international>.world-map{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:1.972/1;margin:34px 0 0}.cv-international>.world-map>object{transform:none!important;object-fit:contain}}

/* Ratio de la projection sans Antarctique. */
.cv-international>.world-map{aspect-ratio:2.143/1}@media(max-width:760px){.cv-international>.world-map{aspect-ratio:2.143/1}}

/* Liste synchronisée avec les pays mis en avant sur la carte. */
.cv-international>.world-map{padding-bottom:38px!important}.cv-international>.world-map>object{position:absolute;inset:0 0 38px;width:100%!important;height:auto!important}.international-countries{position:absolute;z-index:4;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;margin:0;padding:0;list-style:none;color:#82939d;font:500 11px Manrope,Arial,sans-serif}.international-countries li{display:flex;align-items:center}.international-countries li+li:before{content:"|";margin:0 9px;color:#526670}.international-countries button{padding:4px 0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:color .2s,text-shadow .2s}.international-countries button:hover,.international-countries button:focus-visible,.international-countries button.is-active{outline:0;color:var(--lime);text-shadow:0 0 14px rgba(201,255,74,.55)}@media(max-width:760px){.cv-international>.world-map{padding-bottom:54px!important}.cv-international>.world-map>object{inset:0 0 54px}.international-countries{flex-wrap:wrap;gap:0 0;font-size:10px;line-height:1.7}.international-countries li+li:before{margin:0 6px}}

/* La légende est sortie du clip, centrée sur la carte et séparée visuellement. */
.cv-international>.world-map{padding-bottom:66px!important;overflow:visible}.cv-international>.world-map>object{inset:0 0 66px}.international-countries{z-index:10;right:auto;left:50%;width:max-content;max-width:100%;transform:translateX(-50%);bottom:4px}@media(max-width:760px){.cv-international>.world-map{padding-bottom:78px!important}.cv-international>.world-map>object{inset:0 0 78px}.international-countries{right:0;left:0;width:auto;transform:none;bottom:5px}}

/* Panneau carte/liste à hauteur explicite : la liste ne peut plus sortir du cadre. */
@media(min-width:761px){.cv-international>.world-map{z-index:4;height:clamp(280px,31vw,460px);aspect-ratio:auto!important}.cv-international>.world-map>object{z-index:1;display:block}.international-countries{display:flex!important;z-index:12;color:#b9c8cf;font-size:13px;white-space:nowrap}}@media(max-width:760px){.cv-international>.world-map{z-index:4;height:clamp(210px,52vw,330px);aspect-ratio:auto!important}.cv-international>.world-map>object{z-index:1;display:block}.international-countries{display:flex!important;z-index:12;color:#b9c8cf;font-size:11px;white-space:normal}}

/* La liste vit sous la carte : espace dédié, sans modifier son échelle. */
@media(min-width:761px){.cv-international{padding-bottom:150px;overflow:visible}.international-countries{bottom:-48px}}

@media(min-width:1900px){.cv-international{padding-bottom:255px}.international-countries{bottom:-146px}}

@media(min-width:1900px){.international-countries{font-size:15px}}

/* On touch screens, the expertise tiles retain the visual cue normally provided by hover. */
@media(max-width:760px){.expertise-grid article.mobile-scroll-active{background:var(--deep);color:#fff;box-shadow:0 14px 26px rgba(7,21,37,.16)}.expertise-grid article.mobile-scroll-active span{color:var(--lime)}.expertise-grid article.mobile-scroll-active p{color:#d1dfe3}}

/* Formation & certifications: same tactile hover language as the other CV cards. */
.cv-learning .education,.cv-learning .credential{transition:transform .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease}.cv-learning .education:hover{transform:translateY(-5px);background:#d6e4e1;box-shadow:0 14px 26px rgba(7,21,37,.13)}.cv-learning .credential:hover{transform:translateY(-5px);background:var(--lime);box-shadow:0 14px 26px rgba(7,21,37,.22)}.cv-learning .credential:hover b,.cv-learning .credential:hover h3,.cv-learning .credential:hover p{color:var(--ink)}.cv-learning .credential:hover img{transform:scale(1.04)}.cv-learning .credential img{transition:transform .25s ease}@media(max-width:760px){.cv-learning .education:hover,.cv-learning .credential:hover{transform:none}}
