/* J. Benmbark / Portfolio v88 – cascade consolidée, règles redondantes supprimées. */
*{box-sizing:border-box;;}
.wrap{width:min(1200px,calc(100% - 56px));;margin:auto;;}
.nav{height:76px;;display:flex;;align-items:center;;justify-content:space-between;;}
.logo{font-weight:800;;font-size:13px;;}
.links{display:flex;;gap:25px;;font-size:12px;;}
.links a:hover{color:var(--teal);;}
.nav-cta{font-size:12px;;text-decoration:none;;border-bottom:1px solid var(--teal);;padding:6px 0;;}
.hero{margin:0 auto;;background:var(--dark);;color:var(--white);;min-height:620px;;display:grid;;grid-template-columns:1fr 1fr;;overflow:hidden;;}
.hero-copy{padding:80px max(40px,calc((100vw - 1200px)/2));;padding-right:30px;;display:flex;;flex-direction:column;;justify-content:center;;}
.kicker{color:var(--lime);;font-size:12px;;letter-spacing:.22em;;text-transform:uppercase;;font-weight:bold;;}
.hero h1{font:500 clamp(58px,7.3vw,100px)/.93 var(--serif);;letter-spacing:-.06em;;margin:23px 0;;}
.hero h1 em{color:var(--lime);;font-style:normal;;}
.hero-copy p{color:#d5e0d9;;max-width:490px;;font-size:17px;;}
.hero-links{display:flex;;gap:20px;;align-items:center;;margin-top:30px;;}
.hero-links{flex-wrap:wrap;;}
.project-route-cta{display:inline-flex;;align-items:center;;gap:10px;;margin-top:5px;;padding:9px 0;;color:var(--teal);;font-size:12px;;font-weight:700;;text-decoration:none;;border-bottom:1px solid var(--teal);;transition:gap .2s,color .2s;;}
.project-route-cta:hover{gap:15px;;color:var(--dark);;}
.project-route-cta span{font-size:16px;;}
.pill{background:var(--lime);;color:var(--dark);;font-size:12px;;font-weight:bold;;}
.under{color:#e9efeb;;font-size:12px;;padding-bottom:4px;;}
.hero-photo{position:relative;;width:min(100%,450px);;aspect-ratio:3/4;;height:auto;;min-height:0;;justify-self:end;;align-self:center;;background:linear-gradient(155deg,#9eb9a9,#d8ceaf 52%,#6a887d);;overflow:hidden;;}
.hero-photo img{position:absolute;;inset:0;;width:100%;;height:100%;;object-fit:contain;;object-position:center bottom;;z-index:0;;}
.hero-photo:before{content:"";;position:absolute;;inset:0;;background:linear-gradient(0deg,#102c32a8,transparent 50%);;z-index:1;;}
.hero-photo:after{content:"MON PARCOURS · EN IMAGES";;position:absolute;;top:20px;;right:22px;;color:#fff;;font-size:12px;;letter-spacing:.15em;;border:1px solid #ffffff8a;;padding:7px 10px;;}
.recruiter-snapshot{padding:44px 0;;background:#e5e8dc;;border-top:1px solid var(--line);;border-bottom:1px solid var(--line);;}
.recruiter-head{display:flex;;justify-content:space-between;;align-items:end;;gap:24px;;margin-bottom:22px;;}
.recruiter-head h2{font:500 clamp(28px,3.3vw,38px)/1.08 var(--serif);;margin:8px 0 0;;max-width:540px;;}
.recruiter-grid{display:grid;;grid-template-columns:repeat(3,minmax(0,1fr));;gap:10px;;}
.recruiter-card{padding:15px 17px;;background:var(--white);;border:1px solid var(--line);;min-height:104px;;}
.recruiter-card span{font-size:12px;;letter-spacing:.13em;;font-weight:700;;color:var(--teal);;}
.recruiter-card p{font-size:13px;;line-height:1.5;;margin:8px 0 0;;color:#405653;;}
@media (max-width:760px){.recruiter-snapshot{padding:32px 0;;}
.recruiter-head{display:block;;margin-bottom:16px;;}
.recruiter-grid{grid-template-columns:repeat(2,minmax(0,1fr));;gap:8px;;}
.recruiter-card{padding:12px;;min-height:0;;}
.recruiter-card p{font-size:12px;;line-height:1.45;;}}
.intro{padding:100px 0 95px;;display:grid;;grid-template-columns:.7fr 1.3fr;;gap:60px;;}
.intro-label{font-size:12px;;letter-spacing:.18em;;color:var(--teal);;font-weight:bold;;text-transform:uppercase;;}
.intro h2{font:500 42px/1.1 var(--serif);;margin:12px 0;;}
.intro-copy{font:25px/1.45 var(--serif);;max-width:750px;;}
.intro-copy small{display:block;;font:14px/1.7 Arial;;color:var(--muted);;margin-top:20px;;}
.route{background:#e1e4d8;;padding:70px 0;;}
.route-head{display:flex;;justify-content:space-between;;align-items:end;;margin-bottom:32px;;}
.route-head h2,.section h2{font:500 43px/1.05 var(--serif);;margin:10px 0;;}
.route-head p{max-width:400px;;font-size:13px;;}
.places{display:grid;;grid-template-columns:repeat(3,1fr);;gap:10px;;}
.place{height:260px;;padding:22px;;display:flex;;flex-direction:column;;justify-content:space-between;;position:relative;;text-decoration:none;;transition:transform .2s,box-shadow .2s;;}
.place:hover{transform:translateY(-4px);;box-shadow:0 12px 25px #183b3233;;}
.place-more{display:inline-block;;margin-top:12px;;font-size:12px;;letter-spacing:.1em;;text-transform:uppercase;;color:#f1f3eb;;border-bottom:1px solid #f1f3eb;;padding-bottom:3px;;}
.place:before{content:"";;position:absolute;;inset:0;;background:linear-gradient(145deg,#173b3bbb,#40817077);;}
.place:nth-child(1){background:linear-gradient(140deg,#6b442d66,#1a373330),url("../img/la-mosqu-e-hassan-ii-a-casablanca-au-mar.webp") center/cover;;}
.place:nth-child(2){background:linear-gradient(140deg,#153b3b66,#18363b33),url("../img/le-monument-de-la-renaissance-africaine-.webp") center/cover;;}
.place:nth-child(3){background:linear-gradient(140deg,#153b3b55,#18363b33),url("../img/le-chateau-frontenac-dans-le-vieux-qu-be.webp") center/cover;;}
.place>*{position:relative;;}
.place .num{font-size:12px;;letter-spacing:.15em;;}
.place h3{font:42px var(--serif);;margin:0;;}
.place p{margin:0;;font-size:12px;;color:#f1f3eb;;}
.section{padding:90px 0;;}
.section-title{display:flex;;justify-content:space-between;;align-items:end;;margin-bottom:38px;;}
.section-title p{max-width:380px;;color:var(--muted);;font-size:13px;;}
.employers{margin:-6px 0 28px;;padding:16px 20px 18px;;background:#fffdf8;;border:1px solid #d9ded5;;}
.employers-label{margin:0 0 12px;;color:#24796e;;font-size:12px;;font-weight:bold;;letter-spacing:.16em;;text-transform:uppercase;;}
.employers-list{display:grid;;grid-template-columns:repeat(3,minmax(0,1fr));;gap:12px;;}
.employer-link{min-height:54px;;display:flex;;align-items:center;;justify-content:center;;padding:7px 12px;;text-decoration:none;;border-right:1px solid #e1e4d8;;}
.employer-link:last-child{border-right:0;;}
.employer-link img{display:block;;width:auto;;height:auto;;max-width:112px;;max-height:34px;;object-fit:contain;;}
.employer-link:hover img{transform:translateY(-1px);;}
.employer-link img{transition:transform .25s ease;;}
.story{display:grid;;grid-template-columns:1.1fr .9fr;;min-height:440px;;background:var(--white);;margin-bottom:20px;;}
.story:nth-child(even){grid-template-columns:.9fr 1.1fr;;}
.story:nth-child(even) .story-image{order:2;;}
.story-image{min-height:360px;;background:linear-gradient(130deg,#9cb9ae,#d1c8a8 55%,#6a8a7c);;position:relative;;}
.story:nth-child(2) .story-image{background:linear-gradient(135deg,#d3b585,#b7864d 55%,#496964);;}
.story:nth-child(3) .story-image{background:linear-gradient(135deg,#c9d3c7,#73968d 50%,#254a4b);;}
.story:nth-child(3) .story-image.water-treatment-image{background-color:#f2efe6;;}
.water-treatment-image:after{display:none;;}
.story-image.water-treatment-image{background:#f2efe6;;}
.story-water .story-image img{display:block;;width:100%;;height:100%;;object-fit:contain;;object-position:center;;}
.story-omron .story-image{background:#e6e4dc;;min-height:0;;}
.story-omron .story-image:after{display:none;;}
.story-omron .story-image img{display:block;;width:100%;;height:100%;;object-fit:contain;;object-position:center;;}
.story-biomass .story-image{background:#e6e4dc;;min-height:0;;aspect-ratio:632/316;;}
.story-biomass .story-image img{display:block;;width:100%;;height:100%;;object-fit:contain;;object-position:center;;}
.story-water{grid-template-columns:1fr 1fr;;min-height:0;;align-items:stretch;;}
.story-water .story-image{aspect-ratio:554/435;;min-height:0;;}
.story-image:after{content:attr(data-label);;position:absolute;;left:18px;;bottom:18px;;background:#fffdf0e8;;color:var(--ink);;padding:7px 10px;;font-size:12px;;letter-spacing:.12em;;}
.story-copy{display:flex;;flex-direction:column;;justify-content:center;;}
.story-copy .meta{font-size:12px;;letter-spacing:.15em;;color:var(--teal);;text-transform:uppercase;;font-weight:bold;;}
.story-copy h3{font:36px/1.05 var(--serif);;margin:12px 0;;}
.story-copy p{font-size:14px;;color:#52645f;;}
.story-copy .tags{margin-top:12px;;color:var(--teal);;font-size:12px;;}
.story-copy .caption{font-size:12px;;color:#8a9386;;margin-top:13px;;}
.quote{padding:72px 0;;background:var(--teal);;color:white;;text-align:center;;}
.quote blockquote{font:36px/1.2 var(--serif);;max-width:850px;;margin:0 auto;;}
.quote small{display:block;;margin-top:20px;;font-size:12px;;letter-spacing:.15em;;color:#d5e8d7;;}
.two-col{display:grid;;grid-template-columns:1fr 1fr;;gap:55px;;}
.plain-card{border-top:1px solid var(--line);;padding:24px 0;;}
.plain-card h3{font:28px var(--serif);;margin:0 0 8px;;}
.plain-card p{font-size:13px;;color:var(--muted);;margin:0;;}
.plain-card .sub{font-size:12px;;letter-spacing:.11em;;text-transform:uppercase;;color:var(--teal);;margin-bottom:8px;;}
.skill-strip{background:#dce4d8;;padding:60px 0;;}
.skills{display:flex;;flex-wrap:wrap;;gap:8px;;margin-top:26px;;}
.skills span{padding:9px 12px;;border:1px solid #b5c8bb;;color:#31574e;;font-size:12px;;}
.gallery{display:grid;;grid-template-columns:1.2fr .8fr .8fr;;grid-template-rows:210px 210px;;gap:10px;;}
.tile{background:linear-gradient(135deg,#b4c8b8,#d8c9a4 55%,#73948a);;position:relative;;}
.tile:nth-child(2){background:linear-gradient(130deg,#8daaa2,#d6d4c1);;}
.tile:nth-child(3){background:linear-gradient(140deg,#d3ae76,#849b8c);;}
.tile:nth-child(4){background:linear-gradient(140deg,#c9d1c5,#8f9a82);;}
.tile:nth-child(5){background:linear-gradient(130deg,#708f8e,#c8b894);;}
.tile:first-child{grid-row:span 2;;}
.tile span{position:absolute;;bottom:12px;;left:12px;;background:#fffdf0e8;;padding:7px 10px;;font-size:12px;;letter-spacing:.1em;;text-transform:uppercase;;}
.milestones{display:grid;;grid-template-columns:repeat(3,1fr);;gap:15px;;}
.milestone{background:var(--dark);;color:white;;padding:23px;;min-height:190px;;}
.milestone .index{font-size:12px;;color:var(--lime);;letter-spacing:.15em;;}
.milestone h3{font:25px var(--serif);;margin:15px 0 8px;;}
.milestone p{font-size:12px;;}
.contact{background:var(--dark);;color:white;;display:flex;;justify-content:space-between;;align-items:center;;gap:30px;;}
.contact h2{font:45px var(--serif);;margin:8px 0;;}
.contact p{color:#cad7d0;;}
.contact a{background:var(--lime);;color:var(--dark);;padding:14px 17px;;text-decoration:none;;font-size:12px;;font-weight:bold;;}
.footer{padding:25px 0;;display:flex;;justify-content:space-between;;}
.note{font-size:12px;;color:#728079;;margin-top:16px;;}
@media (max-width:760px){.life-layout{grid-template-columns:1fr;;gap:18px;;}
.life-photo img{height:min(130vw,520px);;object-fit:cover;;object-position:center 67%;;}
.wrap{width:calc(100% - 32px);;}
.links{display:none;;}
.hero{grid-template-columns:1fr;;}
.hero-copy{padding:55px 25px;;}
.hero-photo{width:min(100%,390px);;min-height:0;;justify-self:center;;}
.intro{grid-template-columns:1fr;;gap:15px;;padding:65px 0;;}
.intro-copy{font-size:22px;;}
.route{padding:55px 0;;}
.route-head,.section-title{display:block;;}
.places{grid-template-columns:1fr;;}
.place{height:180px;;}
.section{padding:65px 0;;}
.story,.story:nth-child(even){grid-template-columns:1fr;;}
.story:nth-child(even) .story-image{order:0;;}
.story-image{min-height:260px;;}
.story-water .story-image{min-height:0;;aspect-ratio:554/435;;}
.story-biomass .story-image{min-height:0;;aspect-ratio:632/316;;}
.story-omron .story-image{min-height:260px;;}
.story-copy{padding:26px;;}
.story-copy h3{font-size:31px;;}
.quote blockquote{font-size:27px;;}
.two-col{grid-template-columns:1fr;;gap:10px;;}
.gallery{grid-template-columns:1fr 1fr;;grid-template-rows:180px 140px 140px;;}
.tile:first-child{grid-row:span 2;;}
.milestones{grid-template-columns:1fr;;}
.certificate-head{display:block;;}
.certificate-head h2{font-size:33px;;}
.certificate-head p{margin-top:12px;;}
.certificate-grid{grid-template-columns:1fr;;gap:12px;;}
.certificate-card{display:grid;;grid-template-columns:minmax(96px,30%) minmax(0,1fr);;align-items:stretch;;}
.certificate-preview{height:auto;;min-height:142px;;padding:8px;;}
.certificate-info{padding:14px;;}
.certificate-info h3{font-size:20px;;overflow-wrap:anywhere;;}
.certificate-info p{font-size:12px;;}
.certificate-open{font-size:12px;;}
.contact{display:block;;padding:30px;;}
.contact h2{font-size:36px;;}
.contact a{display:inline-block;;margin-top:12px;;}}
.hero-caption{position:absolute;;bottom:28px;;left:28px;;right:112px;;max-width:calc(100% - 150px);;color:white;;font:22px var(--serif);;line-height:1.08;;z-index:2;;display:flex;;flex-direction:column;;gap:4px;;}
.hero-name{font-size:22px;;}
.hero-role{font-size:16px;;line-height:1.2;;}
.stamp{position:absolute;;right:25px;;bottom:25px;;width:83px;;height:83px;;border-radius:50%;;display:grid;;place-items:center;;text-align:center;;font-size:12px;;line-height:1.2;;transform:rotate(9deg);;}
.life-layout{display:grid;;grid-template-columns:1.08fr .92fr;;gap:36px;;align-items:center;;}
.life-photo{margin:0;;background:var(--paper,#f2efe6);;padding:12px;;border:1px solid var(--line,#d9ded5);;}
.life-photo img{display:block;;width:100%;;height:620px;;object-fit:cover;;object-position:center 67%;;}
.life-photo figcaption{padding:12px 5px 2px;;color:var(--muted,#647674);;font-size:12px;;letter-spacing:.05em;;}
.life-copy{padding:12px 0;;}
.life-route{font-size:12px;;letter-spacing:.14em;;font-weight:700;;color:var(--teal,#24796e);;}
.life-route span{color:#a0ad94;;}
.life-copy h3{font:500 clamp(30px,4vw,46px)/1.05 var(--serif,Georgia,serif);;margin:18px 0;;}
.life-copy p{font-size:14px;;color:#52645f;;line-height:1.8;;}
.life-copy a{display:inline-block;;margin-top:12px;;font-size:12px;;text-underline-offset:4px;;color:var(--ink,#19363b);;}
@keyframes heroEnter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroImageEnter{from{opacity:.72;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
.hero-copy>*{animation:heroEnter .72s cubic-bezier(.2,.7,.25,1) both;;}
.hero-copy>*:nth-child(1){animation-delay:.08s;;}
.hero-copy>*:nth-child(2){animation-delay:.17s;;}
.hero-copy>*:nth-child(3){animation-delay:.26s;;}
.hero-copy>*:nth-child(4){animation-delay:.34s;;}
.hero-photo img,.hero>img{animation:heroImageEnter 1.15s cubic-bezier(.2,.7,.25,1) both;;}
.place,.story,.card,.plain-card,.milestone,.pill,.under,.life-photo img,.memory-photo img,.nav a{transition:transform .32s cubic-bezier(.2,.7,.25,1),box-shadow .32s ease,color .25s ease,background-color .25s ease;;}
.place:hover,.story:hover,.card:hover,.plain-card:hover,.milestone:hover{transform:translateY(-4px);;box-shadow:0 14px 32px #102c3212;;}
.place:hover h3{transform:translateX(3px);;}
.place h3{transition:transform .3s ease;;}
.story-image{transition:filter .4s ease,background-position .5s ease;;}
.story:hover .story-image{filter:saturate(1.12);;}
.life-photo img:hover,.memory-photo img:hover,.hero-photo img:hover{transform:scale(1.025);;}
.pill:hover{box-shadow:0 8px 18px #c8db8844;;}
.under:hover,.nav a:hover{color:var(--lime,var(--teal,#24796e));;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important;;}
*,*::before,*::after{animation:none!important;;transition:none!important;;scroll-behavior:auto!important;;}
.motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}}
.certificate-jump{display:inline-block;;margin-top:12px;;color:var(--teal);;font-size:12px;;text-underline-offset:4px;;}
.certificate-section{border-top:1px solid var(--line);;}
.certificate-head{display:flex;;justify-content:space-between;;align-items:end;;gap:28px;;}
.certificate-head h2{font:500 39px/1.08 var(--serif);;margin:10px 0;;}
.certificate-head p{max-width:360px;;color:var(--muted);;font-size:13px;;margin:0 0 6px;;}
.certificate-grid{display:grid;;grid-template-columns:repeat(3,minmax(0,1fr));;gap:14px;;margin-top:25px;;}
.certificate-card{background:var(--white);;border:1px solid var(--line);;overflow:hidden;;transition:transform .25s ease,box-shadow .25s ease;;}
.certificate-card:hover{transform:translateY(-3px);;box-shadow:0 12px 24px #102c3212;;}
.certificate-preview{display:flex;;height:178px;;align-items:center;;justify-content:center;;padding:12px;;background:#e5e8df;;}
.certificate-preview img{display:block;;max-width:100%;;max-height:100%;;object-fit:contain;;}
.certificate-info{padding:17px;;}
.certificate-category{font-size:12px;;letter-spacing:.13em;;text-transform:uppercase;;color:var(--teal);;font-weight:bold;;}
.certificate-info h3{font:22px/1.12 var(--serif);;margin:8px 0;;}
.certificate-info p{font-size:12px;;line-height:1.5;;color:var(--muted);;margin:0 0 13px;;}
.certificate-open{display:inline-block;;font-size:12px;;font-weight:bold;;color:var(--teal);;text-underline-offset:4px;;}
@media (max-width:760px){.certificate-grid{grid-template-columns:1fr!important;;gap:12px;;}
.certificate-card{display:grid;;grid-template-columns:minmax(96px,30%) minmax(0,1fr);;align-items:stretch;;}
.certificate-preview{height:auto;;min-height:142px;;padding:8px;;}
.certificate-info{padding:14px;;}
.certificate-info h3{font-size:20px;;overflow-wrap:anywhere;;}
.certificate-info p{font-size:12px;;}
.certificate-open{font-size:12px;;}}
.cv-download{display:inline-flex;;align-items:center;;justify-content:center;;font-size:12px;;font-weight:bold;;text-decoration:none;;white-space:nowrap;;transition:transform .2s,background .2s;;}
.cv-download:hover{transform:translateY(-2px);;}
.nav-actions{display:flex;;align-items:center;;gap:13px;;}
.screen-home-link{display:inline-flex;;align-items:center;;padding:8px 10px;;background:var(--lime);;color:var(--dark);;font-size:12px;;font-weight:700;;text-decoration:none;;white-space:nowrap;;border:1px solid var(--lime);;}
@media (max-width:760px){.screen-home-link{font-size:12px;;padding:7px 8px;;}
.screen#maroc .nav,.screen#senegal .nav,.screen#quebec .nav{display:flex;;flex-wrap:wrap;;gap:8px;;min-height:72px;;height:auto;;padding-top:10px;;padding-bottom:10px;;}
.screen#maroc .nav>.cv-download,.screen#senegal .nav>.cv-download,.screen#quebec .nav>.cv-download{grid-column:auto;;justify-self:auto;;}
.screen-home-link{order:2;;}
.screen#maroc .nav>.cv-download,.screen#senegal .nav>.cv-download,.screen#quebec .nav>.cv-download{order:3;;margin-left:auto;;}}
.nav-projects{align-items:center;;justify-content:center;;padding:9px 12px;;border:1px solid var(--teal);;color:var(--teal);;font-size:12px;;font-weight:700;;text-decoration:none;;white-space:nowrap;;transition:background .2s,color .2s;;}
.nav-projects:hover{background:var(--teal);;color:var(--white);;}
.contact-actions{display:flex;;align-items:center;;gap:12px;;flex-wrap:wrap;;}
.contact-actions .cv-download{margin:0;;}
@media (max-width:760px){.nav{height:auto;;min-height:76px;;gap:10px;;}
.nav .links{display:none;;}
.nav .nav-cta{display:none;;}
.nav .cv-download{font-size:12px;;padding:8px 10px;;}
.contact-actions{display:flex;;gap:10px;;}
.footer{flex-wrap:wrap;;align-items:center;;gap:12px;;}
.footer .cv-download{font-size:12px;;padding:8px 10px;;}}
.nav{position:sticky;;top:0;;z-index:60;;background:var(--cream);;backdrop-filter:blur(12px);;}
.mobile-menu-trigger{display:none;;align-items:center;;gap:8px;;font:700 12px Arial,sans-serif;;cursor:pointer;;}
.mobile-menu-trigger .bars{display:grid;;gap:4px;;}
.mobile-menu-trigger .bars i{display:block;;transition:transform .22s,opacity .22s;;}
.mobile-menu-trigger[aria-expanded="true"] .bars i:first-child{transform:translateY(5.5px) rotate(45deg);;}
.mobile-menu-trigger[aria-expanded="true"] .bars i:nth-child(2){opacity:0;;}
.mobile-menu-trigger[aria-expanded="true"] .bars i:last-child{transform:translateY(-5.5px) rotate(-45deg);;}
.mobile-drawer{display:none;;}
.mobile-drawer.is-open{display:grid;;grid-template-columns:1fr 1fr;;gap:1px;;background:#ffffff20;;position:absolute;;top:100%;;left:0;;right:0;;padding:1px;;box-shadow:0 18px 28px #102c3230;;animation:drawerIn .24s ease both;;}
.mobile-drawer a{display:flex;;align-items:center;;min-height:50px;;padding:12px 14px;;background:var(--dark);;text-decoration:none;;font-size:12px;;transition:background .2s,color .2s;;}
.mobile-drawer a:hover,.mobile-drawer a:focus-visible{background:#1b4547;;color:var(--lime);;}
.mobile-drawer a.current{color:var(--lime);;}
@keyframes drawerIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
.reading-progress span{will-change:transform;;}
.motion-ready .reveal{opacity:0;;transform:translate3d(0,34px,0) scale(.99);;transition:opacity .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms),transform .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms);;will-change:opacity,transform;;}
.motion-ready .reveal.is-visible{opacity:1;;transform:translate3d(0,0,0) scale(1);;}
@media (max-width:760px){html{scroll-padding-top:122px;;}
.nav{display:grid;;grid-template-columns:minmax(0,1fr) auto;;align-content:center;;gap:8px;;padding-top:8px;;padding-bottom:8px;;min-height:72px;;}
.mobile-menu-trigger{display:inline-flex;;grid-column:2;;grid-row:1;;}
.nav>.links{display:none!important;;}
.nav>.nav-actions{grid-column:1/-1;;display:flex;;justify-content:space-between;;gap:10px;;}
.nav>.cv-download{grid-column:1/-1;;justify-self:start;;}
.nav>.back{display:none;;}
.mobile-drawer.is-open{grid-template-columns:1fr 1fr;;}
.back-to-top{right:14px;;bottom:14px;;width:42px;;height:42px;;}}
@media (prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}
.mobile-drawer.is-open{animation:none!important;;}}
.screen#maroc{--dark:#102c32;;--ink:#19363b;;--teal:#24796e;;--lime:#c8db88;;--cream:#f2efe6;;--white:#fffdf8;;--muted:#647674;;--line:#d9ded5;;--serif:Georgia,"Times New Roman",serif;;}
.screen#maroc *{box-sizing:border-box;;}
.screen#maroc{scroll-behavior:smooth;;}
.screen#maroc{margin:0;;background:var(--cream);;color:var(--ink);;font:16px/1.65 Arial,sans-serif;;}
.screen#maroc a{color:inherit;;}
.screen#maroc .wrap{width:min(1100px,calc(100% - 40px));;margin:auto;;}
.screen#maroc .nav{height:72px;;display:flex;;align-items:center;;justify-content:space-between;;}
.screen#maroc .logo{font-weight:800;;letter-spacing:.13em;;font-size:13px;;text-decoration:none;;}
.screen#maroc .logo span{color:var(--teal);;}
.screen#maroc .back{text-decoration:none;;font-size:12px;;border-bottom:1px solid var(--teal);;padding:5px 0;;}
.screen#maroc .hero{min-height:470px;;position:relative;;display:flex;;align-items:end;;color:white;;background:var(--dark);;overflow:hidden;;}
.screen#maroc .hero img{position:absolute;;inset:0;;width:100%;;height:100%;;object-fit:cover;;object-position:center 45%;;}
.screen#maroc .hero:after{content:"";;position:absolute;;inset:0;;background:linear-gradient(90deg,#102c32d9,#102c3270 56%,#102c3230),linear-gradient(0deg,#102c32b5,transparent 70%);;}
.screen#maroc .hero-copy{position:relative;;z-index:1;;padding:55px 0;;max-width:680px;;}
.screen#maroc .eyebrow{font-size:12px;;letter-spacing:.2em;;text-transform:uppercase;;color:var(--lime);;font-weight:bold;;}
.screen#maroc h1{font:500 clamp(54px,9vw,94px)/.98 var(--serif);;letter-spacing:-.045em;;margin:15px 0;;}
.screen#maroc .hero-copy p{font-size:17px;;max-width:590px;;color:#eef1eb;;margin:0;;}
.screen#maroc .caption{font-size:12px;;color:#f2f2e9;;margin-top:12px;;}
.screen#maroc .caption a{text-underline-offset:3px;;}
.screen#maroc .work-memory{margin:28px 0 0;;padding:12px;;background:var(--white);;border:1px solid var(--line);;}
.screen#maroc .work-memory img{display:block;;width:100%;;height:auto;;aspect-ratio:16/7;;object-fit:cover;;}
.screen#maroc .work-memory figcaption{padding:12px 6px 2px;;color:var(--muted);;font-size:12px;;letter-spacing:.03em;;}
.screen#maroc .content{padding:70px 0 90px;;}
.screen#maroc .intro{display:grid;;grid-template-columns:.65fr 1.35fr;;gap:42px;;align-items:start;;margin-bottom:60px;;}
.screen#maroc .label{font-size:12px;;letter-spacing:.18em;;color:var(--teal);;font-weight:bold;;text-transform:uppercase;;}
.screen#maroc h2{font:500 clamp(30px,4vw,48px)/1.08 var(--serif);;margin:10px 0 16px;;}
.screen#maroc .lead{font:23px/1.5 var(--serif);;margin:0;;}
.screen#maroc .grid{display:grid;;grid-template-columns:repeat(2,1fr);;gap:14px;;}
.screen#maroc .card{background:var(--white);;padding:25px;;border:1px solid var(--line);;}
.screen#maroc .card .num{font-size:12px;;letter-spacing:.14em;;color:var(--teal);;text-transform:uppercase;;font-weight:bold;;}
.screen#maroc .card h3{font:27px/1.1 var(--serif);;margin:10px 0;;}
.screen#maroc .card p,.screen#maroc .card li{font-size:14px;;color:#52645f;;}
.screen#maroc .card ul{padding-left:18px;;margin-bottom:0;;}
.screen#maroc .project-shot{margin:14px 0 4px;;padding:10px;;background:#f2efe6;;border:1px solid var(--line);;}
.screen#maroc .project-shot img{display:block;;width:100%;;height:auto;;aspect-ratio:1030/613;;object-fit:contain;;}
.screen#maroc .project-shot figcaption{padding:9px 2px 0;;color:var(--muted);;font-size:12px;;}
.screen#maroc .wide{grid-column:1/-1;;}
.screen#maroc .photo-note{margin-top:28px;;min-height:135px;;background:#e1e4d8;;border:1px dashed #9baea2;;display:flex;;align-items:center;;justify-content:space-between;;gap:20px;;padding:25px;;}
.screen#maroc .photo-note strong{font:24px var(--serif);;}
.screen#maroc .photo-note span{color:var(--muted);;font-size:12px;;max-width:420px;;}
.screen#maroc .footer{background:var(--dark);;color:white;;padding:24px 0;;font-size:12px;;}
.screen#maroc .footer .wrap{display:flex;;justify-content:space-between;;gap:15px;;}
@media (max-width:700px){.screen#maroc .wrap{width:calc(100% - 32px);;}
.screen#maroc .hero{min-height:430px;;}
.screen#maroc .hero-copy{padding:38px 0;;}
.screen#maroc .hero-copy p{font-size:15px;;}
.screen#maroc .intro{grid-template-columns:1fr;;gap:10px;;margin-bottom:40px;;}
.screen#maroc .lead{font-size:20px;;}
.screen#maroc .grid{grid-template-columns:1fr;;}
.screen#maroc .wide{grid-column:auto;;}
.screen#maroc .photo-note{display:block;;}
.screen#maroc .photo-note span{display:block;;margin-top:8px;;}
.screen#maroc .content{padding:50px 0 65px;;}
.screen#maroc .footer .wrap{display:block;;}}
@keyframes heroImageEnter{from{opacity:.72;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
.screen#maroc .hero-copy>*{animation:heroEnter .72s cubic-bezier(.2,.7,.25,1) both;;}
.screen#maroc .hero-copy>*:nth-child(1){animation-delay:.08s;;}
.screen#maroc .hero-copy>*:nth-child(2){animation-delay:.17s;;}
.screen#maroc .hero-copy>*:nth-child(3){animation-delay:.26s;;}
.screen#maroc .hero-copy>*:nth-child(4){animation-delay:.34s;;}
.screen#maroc .hero-photo img,.screen#maroc .hero>img{animation:heroImageEnter 1.15s cubic-bezier(.2,.7,.25,1) both;;}
.screen#maroc .place,.screen#maroc .story,.screen#maroc .card,.screen#maroc .plain-card,.screen#maroc .milestone,.screen#maroc .pill,.screen#maroc .under,.screen#maroc .life-photo img,.screen#maroc .memory-photo img,.screen#maroc .nav a{transition:transform .32s cubic-bezier(.2,.7,.25,1),box-shadow .32s ease,color .25s ease,background-color .25s ease;;}
.screen#maroc .place:hover,.screen#maroc .story:hover,.screen#maroc .card:hover,.screen#maroc .plain-card:hover,.screen#maroc .milestone:hover{transform:translateY(-4px);;box-shadow:0 14px 32px #102c3212;;}
.screen#maroc .place:hover h3{transform:translateX(3px);;}
.screen#maroc .place h3{transition:transform .3s ease;;}
.screen#maroc .story-image{transition:filter .4s ease,background-position .5s ease;;}
.screen#maroc .story:hover .story-image{filter:saturate(1.12);;}
.screen#maroc .life-photo img:hover,.screen#maroc .memory-photo img:hover,.screen#maroc .hero-photo img:hover{transform:scale(1.025);;}
.screen#maroc .pill:hover{transform:translateY(-2px);;box-shadow:0 8px 18px #c8db8844;;}
.screen#maroc .under:hover,.screen#maroc .nav a:hover{color:var(--lime,var(--teal,#24796e));;}
@media (prefers-reduced-motion:reduce){.screen#maroc{scroll-behavior:auto!important;;}
.screen#maroc *,.screen#maroc *::before,.screen#maroc *::after{animation:none!important;;transition:none!important;;scroll-behavior:auto!important;;}
.screen#maroc .motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}}
.screen#maroc .company-heading{display:flex;;align-items:flex-start;;justify-content:space-between;;gap:16px;;}
.screen#maroc .company-heading h3{flex:1;;min-width:0;;margin:10px 0;;}
.screen#maroc .company-logo{flex:none;;display:block;;width:96px;;height:42px;;object-fit:contain;;margin-top:9px;;}
.screen#maroc .company-logo.lesieur{width:96px;;height:38px;;}
.screen#maroc .job-duties{display:grid;;grid-template-columns:repeat(2,minmax(0,1fr));;column-gap:28px;;row-gap:8px;;padding-left:18px;;margin:14px 0 0;;}
.screen#maroc .job-duties li{break-inside:avoid;;padding-left:2px;;}
@media (max-width:700px){.screen#maroc .job-duties{grid-template-columns:1fr;;}}
.screen#maroc .cv-download{display:inline-flex;;align-items:center;;justify-content:center;;padding:9px 12px;;background:var(--lime);;color:var(--dark);;font-size:12px;;font-weight:bold;;text-decoration:none;;border:1px solid var(--lime);;white-space:nowrap;;}
.screen#maroc .footer .cv-download{color:var(--dark);;}
@media (max-width:700px){.screen#maroc .nav{height:auto;;min-height:76px;;flex-wrap:wrap;;gap:10px;;}
.screen#maroc .nav .cv-download{font-size:12px;;padding:8px 10px;;}
.screen#maroc .back{font-size:12px;;}}
.screen#maroc 
.nav{position:sticky;;top:0;;z-index:60;;background:var(--cream);;backdrop-filter:blur(12px);;}
.screen#maroc .mobile-menu-trigger{display:none;;align-items:center;;gap:8px;;border:1px solid var(--line);;background:var(--white);;color:var(--dark);;padding:9px 12px;;font:700 12px Arial,sans-serif;;cursor:pointer;;}
.screen#maroc .mobile-menu-trigger .bars{display:grid;;gap:4px;;}
.screen#maroc .mobile-menu-trigger .bars i{display:block;;width:15px;;height:1.5px;;background:currentColor;;transition:transform .22s,opacity .22s;;}
.screen#maroc .mobile-menu-trigger[aria-expanded="true"] .bars i:first-child{transform:translateY(5.5px) rotate(45deg);;}
.screen#maroc .mobile-menu-trigger[aria-expanded="true"] .bars i:nth-child(2){opacity:0;;}
.screen#maroc .mobile-menu-trigger[aria-expanded="true"] .bars i:last-child{transform:translateY(-5.5px) rotate(-45deg);;}
.screen#maroc .mobile-drawer{display:none;;}
.screen#maroc .mobile-drawer.is-open{display:grid;;grid-template-columns:1fr 1fr;;gap:1px;;background:#ffffff20;;position:absolute;;top:100%;;left:0;;right:0;;padding:1px;;box-shadow:0 18px 28px #102c3230;;animation:drawerIn .24s ease both;;}
.screen#maroc .mobile-drawer a{display:flex;;align-items:center;;min-height:50px;;padding:12px 14px;;background:var(--dark);;color:#f7f5ed;;text-decoration:none;;font-size:12px;;transition:background .2s,color .2s;;}
.screen#maroc .mobile-drawer a:hover,.screen#maroc .mobile-drawer a:focus-visible{background:#1b4547;;color:var(--lime);;}
.screen#maroc .mobile-drawer a.current{color:var(--lime);;}
@keyframes drawerIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
.screen#maroc .reading-progress{position:fixed;;z-index:9999;;top:0;;left:0;;width:100%;;height:3px;;pointer-events:none;;}
.screen#maroc .reading-progress span{display:block;;width:100%;;height:100%;;background:var(--lime);;transform:scaleX(0);;transform-origin:left center;;will-change:transform;;box-shadow:0 0 8px #c8db8870;;}
.screen#maroc .back-to-top{position:fixed;;z-index:55;;right:20px;;bottom:20px;;width:46px;;height:46px;;border:1px solid #ffffff80;;border-radius:50%;;background:var(--dark);;color:var(--white);;font-size:20px;;line-height:1;;box-shadow:0 8px 24px #102c3230;;cursor:pointer;;opacity:0;;visibility:hidden;;transform:translateY(9px);;transition:opacity .25s,visibility .25s,transform .25s,background .2s;;}
.screen#maroc .back-to-top.is-visible{opacity:1;;visibility:visible;;transform:translateY(0);;}
.screen#maroc .back-to-top:hover{background:var(--teal);;transform:translateY(-3px);;}
.screen#maroc .motion-ready .reveal{opacity:0;;transform:translate3d(0,34px,0) scale(.99);;transition:opacity .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms),transform .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms);;will-change:opacity,transform;;}
.screen#maroc .motion-ready .reveal.is-visible{opacity:1;;transform:translate3d(0,0,0) scale(1);;}
@media (max-width:760px){.screen#maroc{scroll-padding-top:122px;;}
.screen#maroc .nav{display:grid;;grid-template-columns:minmax(0,1fr) auto;;align-content:center;;gap:8px;;padding-top:8px;;padding-bottom:8px;;min-height:72px;;}
.screen#maroc .mobile-menu-trigger{display:inline-flex;;grid-column:2;;grid-row:1;;}
.screen#maroc .nav>.links{display:none!important;;}
.screen#maroc .nav>.nav-actions{grid-column:1/-1;;display:flex;;justify-content:space-between;;gap:10px;;}
.screen#maroc .nav>.cv-download{grid-column:1/-1;;justify-self:start;;}
.screen#maroc .nav>.back{display:none;;}
.screen#maroc .mobile-drawer.is-open{grid-template-columns:1fr 1fr;;}
.screen#maroc .back-to-top{right:14px;;bottom:14px;;width:42px;;height:42px;;}}
@media (prefers-reduced-motion:reduce){.screen#maroc .motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}
.screen#maroc .mobile-drawer.is-open{animation:none!important;;}}
.screen#senegal{--dark:#102c32;;--ink:#19363b;;--teal:#24796e;;--lime:#c8db88;;--cream:#f2efe6;;--white:#fffdf8;;--muted:#647674;;--line:#d9ded5;;--serif:Georgia,"Times New Roman",serif;;}
.screen#senegal *{box-sizing:border-box;;}
.screen#senegal{scroll-behavior:smooth;;}
.screen#senegal{margin:0;;background:var(--cream);;color:var(--ink);;font:16px/1.65 Arial,sans-serif;;}
.screen#senegal a{color:inherit;;}
.screen#senegal .wrap{width:min(1100px,calc(100% - 40px));;margin:auto;;}
.screen#senegal .nav{height:72px;;display:flex;;align-items:center;;justify-content:space-between;;}
.screen#senegal .logo{font-weight:800;;letter-spacing:.13em;;font-size:13px;;text-decoration:none;;}
.screen#senegal .logo span{color:var(--teal);;}
.screen#senegal .back{text-decoration:none;;font-size:12px;;border-bottom:1px solid var(--teal);;padding:5px 0;;}
.screen#senegal .hero{min-height:470px;;position:relative;;display:flex;;align-items:end;;color:white;;background:var(--dark);;overflow:hidden;;}
.screen#senegal .hero img{position:absolute;;inset:0;;width:100%;;height:100%;;object-fit:cover;;object-position:center 45%;;}
.screen#senegal .hero:after{content:"";;position:absolute;;inset:0;;background:linear-gradient(90deg,#102c32d9,#102c3270 56%,#102c3230),linear-gradient(0deg,#102c32b5,transparent 70%);;}
.screen#senegal .hero-copy{position:relative;;z-index:1;;padding:55px 0;;max-width:680px;;}
.screen#senegal .eyebrow{font-size:12px;;letter-spacing:.2em;;text-transform:uppercase;;color:var(--lime);;font-weight:bold;;}
.screen#senegal h1{font:500 clamp(54px,9vw,94px)/.98 var(--serif);;letter-spacing:-.045em;;margin:15px 0;;}
.screen#senegal .hero-copy p{font-size:17px;;max-width:590px;;color:#eef1eb;;margin:0;;}
.screen#senegal .caption{font-size:12px;;color:#f2f2e9;;margin-top:12px;;}
.screen#senegal .caption a{text-underline-offset:3px;;}
.screen#senegal .content{padding:70px 0 90px;;}
.screen#senegal .intro{display:grid;;grid-template-columns:.65fr 1.35fr;;gap:42px;;align-items:start;;margin-bottom:60px;;}
.screen#senegal .label{font-size:12px;;letter-spacing:.18em;;color:var(--teal);;font-weight:bold;;text-transform:uppercase;;}
.screen#senegal h2{font:500 clamp(30px,4vw,48px)/1.08 var(--serif);;margin:10px 0 16px;;}
.screen#senegal .lead{font:23px/1.5 var(--serif);;margin:0;;}
.screen#senegal .grid{display:grid;;grid-template-columns:repeat(2,1fr);;gap:14px;;}
.screen#senegal .card{background:var(--white);;padding:25px;;border:1px solid var(--line);;}
.screen#senegal .card .num{font-size:12px;;letter-spacing:.14em;;color:var(--teal);;text-transform:uppercase;;font-weight:bold;;}
.screen#senegal .card h3{font:27px/1.1 var(--serif);;margin:10px 0;;}
.screen#senegal .card p,.screen#senegal .card li{font-size:14px;;color:#52645f;;}
.screen#senegal .card ul{padding-left:18px;;margin-bottom:0;;}
.screen#senegal .wide{grid-column:1/-1;;}
.screen#senegal .project-story{margin:0 0 56px;;}
.screen#senegal .project-stats{display:grid;;grid-template-columns:repeat(3,1fr);;background:var(--dark);;color:white;;margin-bottom:56px;;}
.screen#senegal .project-stats>div{padding:23px 26px;;border-right:1px solid #ffffff2b;;}
.screen#senegal .project-stats>div:last-child{border:0;;}
.screen#senegal .project-stats strong{display:block;;color:var(--lime);;font:500 31px/1.1 var(--serif);;}
.screen#senegal .project-stats span{display:block;;margin-top:7px;;font-size:12px;;color:#e0e9df;;}
.screen#senegal .story-heading{max-width:650px;;margin-bottom:25px;;}
.screen#senegal .story-heading h2{margin-bottom:10px;;}
.screen#senegal .story-heading p{margin:0;;color:var(--muted);;font-size:14px;;}
.screen#senegal .story-steps{border-top:1px solid var(--line);;}
.screen#senegal .story-steps article{display:grid;;grid-template-columns:65px 1fr;;gap:14px;;padding:20px 4px;;border-bottom:1px solid var(--line);;}
.screen#senegal .story-steps article>span{color:var(--teal);;font-size:12px;;letter-spacing:.12em;;font-weight:bold;;padding-top:5px;;}
.screen#senegal .story-steps h3{font:24px/1.15 var(--serif);;margin:0 0 5px;;}
.screen#senegal .story-steps p{margin:0;;color:#52645f;;font-size:14px;;max-width:700px;;}
.screen#senegal .partners{margin-top:28px;;padding:22px 24px;;background:#e1e4d8;;display:flex;;align-items:baseline;;gap:10px;;flex-wrap:wrap;;}
.screen#senegal .partners .label{width:100%;;}
.screen#senegal .partners strong{font:23px var(--serif);;}
.screen#senegal .partners p{width:100%;;margin:0;;color:var(--muted);;font-size:13px;;}
.screen#senegal .photo-note{margin-top:28px;;min-height:135px;;background:#e1e4d8;;border:1px dashed #9baea2;;display:flex;;align-items:center;;justify-content:space-between;;gap:20px;;padding:25px;;}
.screen#senegal .photo-note strong{font:24px var(--serif);;}
.screen#senegal .photo-note span{color:var(--muted);;font-size:12px;;max-width:420px;;}
.screen#senegal .memory-photo{margin:32px auto 0;;max-width:900px;;}
.screen#senegal .memory-photo figure{margin:0;;background:var(--white);;padding:12px;;border:1px solid var(--line);;}
.screen#senegal .memory-photo img{display:block;;width:100%;;height:auto;;max-height:520px;;object-fit:cover;;}
.screen#senegal .memory-photo figcaption{padding:12px 6px 2px;;color:var(--muted);;font-size:12px;;letter-spacing:.06em;;}
.screen#senegal .footer{background:var(--dark);;color:white;;padding:24px 0;;font-size:12px;;}
.screen#senegal .footer .wrap{display:flex;;justify-content:space-between;;gap:15px;;}
@media (max-width:700px){.screen#senegal .wrap{width:calc(100% - 32px);;}
.screen#senegal .hero{min-height:430px;;}
.screen#senegal .hero-copy{padding:38px 0;;}
.screen#senegal .hero-copy p{font-size:15px;;}
.screen#senegal .intro{grid-template-columns:1fr;;gap:10px;;margin-bottom:40px;;}
.screen#senegal .lead{font-size:20px;;}
.screen#senegal .grid{grid-template-columns:1fr;;}
.screen#senegal .wide{grid-column:auto;;}
.screen#senegal .project-stats{grid-template-columns:1fr;;}
.screen#senegal .project-stats>div{padding:17px 20px;;border-right:0;;border-bottom:1px solid #ffffff2b;;}
.screen#senegal .project-stats>div:last-child{border-bottom:0;;}
.screen#senegal .story-steps article{grid-template-columns:38px 1fr;;gap:8px;;}
.screen#senegal .partners{padding:19px;;}
.screen#senegal .photo-note{display:block;;}
.screen#senegal .photo-note span{display:block;;margin-top:8px;;}
.screen#senegal .memory-photo{margin-top:22px;;}
.screen#senegal .memory-photo figure{padding:8px;;}
.screen#senegal .memory-photo img{max-height:none;;}
.screen#senegal .content{padding:50px 0 65px;;}
.screen#senegal .footer .wrap{display:block;;}}
@keyframes heroImageEnter{from{opacity:.72;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
.screen#senegal .hero-copy>*{animation:heroEnter .72s cubic-bezier(.2,.7,.25,1) both;;}
.screen#senegal .hero-copy>*:nth-child(1){animation-delay:.08s;;}
.screen#senegal .hero-copy>*:nth-child(2){animation-delay:.17s;;}
.screen#senegal .hero-copy>*:nth-child(3){animation-delay:.26s;;}
.screen#senegal .hero-copy>*:nth-child(4){animation-delay:.34s;;}
.screen#senegal .hero-photo img,.screen#senegal .hero>img{animation:heroImageEnter 1.15s cubic-bezier(.2,.7,.25,1) both;;}
.screen#senegal .place,.screen#senegal .story,.screen#senegal .card,.screen#senegal .plain-card,.screen#senegal .milestone,.screen#senegal .pill,.screen#senegal .under,.screen#senegal .life-photo img,.screen#senegal .memory-photo img,.screen#senegal .nav a{transition:transform .32s cubic-bezier(.2,.7,.25,1),box-shadow .32s ease,color .25s ease,background-color .25s ease;;}
.screen#senegal .place:hover,.screen#senegal .story:hover,.screen#senegal .card:hover,.screen#senegal .plain-card:hover,.screen#senegal .milestone:hover{transform:translateY(-4px);;box-shadow:0 14px 32px #102c3212;;}
.screen#senegal .place:hover h3{transform:translateX(3px);;}
.screen#senegal .place h3{transition:transform .3s ease;;}
.screen#senegal .story-image{transition:filter .4s ease,background-position .5s ease;;}
.screen#senegal .story:hover .story-image{filter:saturate(1.12);;}
.screen#senegal .life-photo img:hover,.screen#senegal .memory-photo img:hover,.screen#senegal .hero-photo img:hover{transform:scale(1.025);;}
.screen#senegal .pill:hover{transform:translateY(-2px);;box-shadow:0 8px 18px #c8db8844;;}
.screen#senegal .under:hover,.screen#senegal .nav a:hover{color:var(--lime,var(--teal,#24796e));;}
@media (prefers-reduced-motion:reduce){.screen#senegal{scroll-behavior:auto!important;;}
.screen#senegal *,.screen#senegal *::before,.screen#senegal *::after{animation:none!important;;transition:none!important;;scroll-behavior:auto!important;;}
.screen#senegal .motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}}
.screen#senegal .cv-download{display:inline-flex;;align-items:center;;justify-content:center;;padding:9px 12px;;background:var(--lime);;color:var(--dark);;font-size:12px;;font-weight:bold;;text-decoration:none;;border:1px solid var(--lime);;white-space:nowrap;;}
.screen#senegal .footer .cv-download{color:var(--dark);;}
@media (max-width:700px){.screen#senegal .nav{height:auto;;min-height:76px;;flex-wrap:wrap;;gap:10px;;}
.screen#senegal .nav .cv-download{font-size:12px;;padding:8px 10px;;}
.screen#senegal .back{font-size:12px;;}}
.screen#senegal 
.nav{position:sticky;;top:0;;z-index:60;;background:var(--cream);;backdrop-filter:blur(12px);;}
.screen#senegal .mobile-menu-trigger{display:none;;align-items:center;;gap:8px;;border:1px solid var(--line);;background:var(--white);;color:var(--dark);;padding:9px 12px;;font:700 12px Arial,sans-serif;;cursor:pointer;;}
.screen#senegal .mobile-menu-trigger .bars{display:grid;;gap:4px;;}
.screen#senegal .mobile-menu-trigger .bars i{display:block;;width:15px;;height:1.5px;;background:currentColor;;transition:transform .22s,opacity .22s;;}
.screen#senegal .mobile-menu-trigger[aria-expanded="true"] .bars i:first-child{transform:translateY(5.5px) rotate(45deg);;}
.screen#senegal .mobile-menu-trigger[aria-expanded="true"] .bars i:nth-child(2){opacity:0;;}
.screen#senegal .mobile-menu-trigger[aria-expanded="true"] .bars i:last-child{transform:translateY(-5.5px) rotate(-45deg);;}
.screen#senegal .mobile-drawer{display:none;;}
.screen#senegal .mobile-drawer.is-open{display:grid;;grid-template-columns:1fr 1fr;;gap:1px;;background:#ffffff20;;position:absolute;;top:100%;;left:0;;right:0;;padding:1px;;box-shadow:0 18px 28px #102c3230;;animation:drawerIn .24s ease both;;}
.screen#senegal .mobile-drawer a{display:flex;;align-items:center;;min-height:50px;;padding:12px 14px;;background:var(--dark);;color:#f7f5ed;;text-decoration:none;;font-size:12px;;transition:background .2s,color .2s;;}
.screen#senegal .mobile-drawer a:hover,.screen#senegal .mobile-drawer a:focus-visible{background:#1b4547;;color:var(--lime);;}
.screen#senegal .mobile-drawer a.current{color:var(--lime);;}
@keyframes drawerIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
.screen#senegal .reading-progress{position:fixed;;z-index:9999;;top:0;;left:0;;width:100%;;height:3px;;pointer-events:none;;}
.screen#senegal .reading-progress span{display:block;;width:100%;;height:100%;;background:var(--lime);;transform:scaleX(0);;transform-origin:left center;;will-change:transform;;box-shadow:0 0 8px #c8db8870;;}
.screen#senegal .back-to-top{position:fixed;;z-index:55;;right:20px;;bottom:20px;;width:46px;;height:46px;;border:1px solid #ffffff80;;border-radius:50%;;background:var(--dark);;color:var(--white);;font-size:20px;;line-height:1;;box-shadow:0 8px 24px #102c3230;;cursor:pointer;;opacity:0;;visibility:hidden;;transform:translateY(9px);;transition:opacity .25s,visibility .25s,transform .25s,background .2s;;}
.screen#senegal .back-to-top.is-visible{opacity:1;;visibility:visible;;transform:translateY(0);;}
.screen#senegal .back-to-top:hover{background:var(--teal);;transform:translateY(-3px);;}
.screen#senegal .motion-ready .reveal{opacity:0;;transform:translate3d(0,34px,0) scale(.99);;transition:opacity .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms),transform .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms);;will-change:opacity,transform;;}
.screen#senegal .motion-ready .reveal.is-visible{opacity:1;;transform:translate3d(0,0,0) scale(1);;}
@media (max-width:760px){.screen#senegal{scroll-padding-top:122px;;}
.screen#senegal .nav{display:grid;;grid-template-columns:minmax(0,1fr) auto;;align-content:center;;gap:8px;;padding-top:8px;;padding-bottom:8px;;min-height:72px;;}
.screen#senegal .mobile-menu-trigger{display:inline-flex;;grid-column:2;;grid-row:1;;}
.screen#senegal .nav>.links{display:none!important;;}
.screen#senegal .nav>.nav-actions{grid-column:1/-1;;display:flex;;justify-content:space-between;;gap:10px;;}
.screen#senegal .nav>.cv-download{grid-column:1/-1;;justify-self:start;;}
.screen#senegal .nav>.back{display:none;;}
.screen#senegal .mobile-drawer.is-open{grid-template-columns:1fr 1fr;;}
.screen#senegal .back-to-top{right:14px;;bottom:14px;;width:42px;;height:42px;;}}
@media (prefers-reduced-motion:reduce){.screen#senegal .motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}
.screen#senegal .mobile-drawer.is-open{animation:none!important;;}}
.screen#quebec{--dark:#102c32;;--ink:#19363b;;--teal:#24796e;;--lime:#c8db88;;--cream:#f2efe6;;--white:#fffdf8;;--muted:#647674;;--line:#d9ded5;;--serif:Georgia,"Times New Roman",serif;;}
.screen#quebec *{box-sizing:border-box;;}
.screen#quebec{scroll-behavior:smooth;;}
.screen#quebec{margin:0;;background:var(--cream);;color:var(--ink);;font:16px/1.65 Arial,sans-serif;;}
.screen#quebec a{color:inherit;;}
.screen#quebec .wrap{width:min(1100px,calc(100% - 40px));;margin:auto;;}
.screen#quebec .nav{height:72px;;display:flex;;align-items:center;;justify-content:space-between;;}
.screen#quebec .logo{font-weight:800;;letter-spacing:.13em;;font-size:13px;;text-decoration:none;;}
.screen#quebec .logo span{color:var(--teal);;}
.screen#quebec .back{text-decoration:none;;font-size:12px;;border-bottom:1px solid var(--teal);;padding:5px 0;;}
.screen#quebec .hero{min-height:470px;;position:relative;;display:flex;;align-items:end;;color:white;;background:var(--dark);;overflow:hidden;;}
.screen#quebec .hero img{position:absolute;;inset:0;;width:100%;;height:100%;;object-fit:cover;;object-position:center 45%;;}
.screen#quebec .hero:after{content:"";;position:absolute;;inset:0;;background:linear-gradient(90deg,#102c32d9,#102c3270 56%,#102c3230),linear-gradient(0deg,#102c32b5,transparent 70%);;}
.screen#quebec .hero-copy{position:relative;;z-index:1;;padding:55px 0;;max-width:680px;;}
.screen#quebec .eyebrow{font-size:12px;;letter-spacing:.2em;;text-transform:uppercase;;color:var(--lime);;font-weight:bold;;}
.screen#quebec h1{font:500 clamp(54px,9vw,94px)/.98 var(--serif);;letter-spacing:-.045em;;margin:15px 0;;}
.screen#quebec .hero-copy p{font-size:17px;;max-width:590px;;color:#eef1eb;;margin:0;;}
.screen#quebec .caption{font-size:12px;;color:#f2f2e9;;margin-top:12px;;}
.screen#quebec .caption a{text-underline-offset:3px;;}
.screen#quebec .content{padding:70px 0 90px;;}
.screen#quebec .intro{display:grid;;grid-template-columns:.65fr 1.35fr;;gap:42px;;align-items:start;;margin-bottom:60px;;}
.screen#quebec .label{font-size:12px;;letter-spacing:.18em;;color:var(--teal);;font-weight:bold;;text-transform:uppercase;;}
.screen#quebec h2{font:500 clamp(30px,4vw,48px)/1.08 var(--serif);;margin:10px 0 16px;;}
.screen#quebec .lead{font:23px/1.5 var(--serif);;margin:0;;}
.screen#quebec .grid{display:grid;;grid-template-columns:repeat(2,1fr);;gap:14px;;}
.screen#quebec .card{background:var(--white);;padding:25px;;border:1px solid var(--line);;}
.screen#quebec .card .num{font-size:12px;;letter-spacing:.14em;;color:var(--teal);;text-transform:uppercase;;font-weight:bold;;}
.screen#quebec .card h3{font:27px/1.1 var(--serif);;margin:10px 0;;}
.screen#quebec .card p,.screen#quebec .card li{font-size:14px;;color:#52645f;;}
.screen#quebec .card ul{padding-left:18px;;margin-bottom:0;;}
.screen#quebec .wide{grid-column:1/-1;;}
.screen#quebec .photo-note{margin-top:28px;;min-height:135px;;background:#e1e4d8;;border:1px dashed #9baea2;;display:flex;;align-items:center;;justify-content:space-between;;gap:20px;;padding:25px;;}
.screen#quebec .photo-note strong{font:24px var(--serif);;}
.screen#quebec .photo-note span{color:var(--muted);;font-size:12px;;max-width:420px;;}
.screen#quebec .footer{background:var(--dark);;color:white;;padding:24px 0;;font-size:12px;;}
.screen#quebec .footer .wrap{display:flex;;justify-content:space-between;;gap:15px;;}
@media (max-width:700px){.screen#quebec .wrap{width:calc(100% - 32px);;}
.screen#quebec .hero{min-height:430px;;}
.screen#quebec .hero-copy{padding:38px 0;;}
.screen#quebec .hero-copy p{font-size:15px;;}
.screen#quebec .intro{grid-template-columns:1fr;;gap:10px;;margin-bottom:40px;;}
.screen#quebec .lead{font-size:20px;;}
.screen#quebec .grid{grid-template-columns:1fr;;}
.screen#quebec .wide{grid-column:auto;;}
.screen#quebec .photo-note{display:block;;}
.screen#quebec .photo-note span{display:block;;margin-top:8px;;}
.screen#quebec .content{padding:50px 0 65px;;}
.screen#quebec .footer .wrap{display:block;;}}
@keyframes heroImageEnter{from{opacity:.72;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
.screen#quebec .hero-copy>*{animation:heroEnter .72s cubic-bezier(.2,.7,.25,1) both;;}
.screen#quebec .hero-copy>*:nth-child(1){animation-delay:.08s;;}
.screen#quebec .hero-copy>*:nth-child(2){animation-delay:.17s;;}
.screen#quebec .hero-copy>*:nth-child(3){animation-delay:.26s;;}
.screen#quebec .hero-copy>*:nth-child(4){animation-delay:.34s;;}
.screen#quebec .hero-photo img,.screen#quebec .hero>img{animation:heroImageEnter 1.15s cubic-bezier(.2,.7,.25,1) both;;}
.screen#quebec .place,.screen#quebec .story,.screen#quebec .card,.screen#quebec .plain-card,.screen#quebec .milestone,.screen#quebec .pill,.screen#quebec .under,.screen#quebec .life-photo img,.screen#quebec .memory-photo img,.screen#quebec .nav a{transition:transform .32s cubic-bezier(.2,.7,.25,1),box-shadow .32s ease,color .25s ease,background-color .25s ease;;}
.screen#quebec .place:hover,.screen#quebec .story:hover,.screen#quebec .card:hover,.screen#quebec .plain-card:hover,.screen#quebec .milestone:hover{transform:translateY(-4px);;box-shadow:0 14px 32px #102c3212;;}
.screen#quebec .place:hover h3{transform:translateX(3px);;}
.screen#quebec .place h3{transition:transform .3s ease;;}
.screen#quebec .story-image{transition:filter .4s ease,background-position .5s ease;;}
.screen#quebec .story:hover .story-image{filter:saturate(1.12);;}
.screen#quebec .life-photo img:hover,.screen#quebec .memory-photo img:hover,.screen#quebec .hero-photo img:hover{transform:scale(1.025);;}
.screen#quebec .pill:hover{transform:translateY(-2px);;box-shadow:0 8px 18px #c8db8844;;}
.screen#quebec .under:hover,.screen#quebec .nav a:hover{color:var(--lime,var(--teal,#24796e));;}
@media (prefers-reduced-motion:reduce){.screen#quebec{scroll-behavior:auto!important;;}
.screen#quebec *,.screen#quebec *::before,.screen#quebec *::after{animation:none!important;;transition:none!important;;scroll-behavior:auto!important;;}
.screen#quebec .motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}}
.screen#quebec .company-heading{display:flex;;align-items:flex-start;;justify-content:space-between;;gap:16px;;}
.screen#quebec .company-heading h3{flex:1;;min-width:0;;margin:10px 0;;}
.screen#quebec .company-logo{flex:none;;display:block;;width:94px;;height:42px;;object-fit:contain;;margin-top:9px;;}
.screen#quebec .company-logo.domtar{width:96px;;height:34px;;}
.screen#quebec .company-logo.arbec{width:86px;;height:38px;;}
.screen#quebec .project-highlight{margin-top:18px;;padding:18px 20px;;background:#e1e4d8;;border-left:3px solid var(--teal);;}
.screen#quebec .project-kicker{font-size:12px;;letter-spacing:.14em;;text-transform:uppercase;;color:var(--teal);;font-weight:bold;;}
.screen#quebec .project-highlight p{margin:7px 0 0;;}
.screen#quebec .cv-download{display:inline-flex;;align-items:center;;justify-content:center;;padding:9px 12px;;background:var(--lime);;color:var(--dark);;font-size:12px;;font-weight:bold;;text-decoration:none;;border:1px solid var(--lime);;white-space:nowrap;;}
.screen#quebec .footer .cv-download{color:var(--dark);;}
@media (max-width:700px){.screen#quebec .nav{height:auto;;min-height:76px;;flex-wrap:wrap;;gap:10px;;}
.screen#quebec .nav .cv-download{font-size:12px;;padding:8px 10px;;}
.screen#quebec .back{font-size:12px;;}}
.screen#quebec 
.nav{position:sticky;;top:0;;z-index:60;;background:var(--cream);;backdrop-filter:blur(12px);;}
.screen#quebec .mobile-menu-trigger{display:none;;align-items:center;;gap:8px;;border:1px solid var(--line);;background:var(--white);;color:var(--dark);;padding:9px 12px;;font:700 12px Arial,sans-serif;;cursor:pointer;;}
.screen#quebec .mobile-menu-trigger .bars{display:grid;;gap:4px;;}
.screen#quebec .mobile-menu-trigger .bars i{display:block;;width:15px;;height:1.5px;;background:currentColor;;transition:transform .22s,opacity .22s;;}
.screen#quebec .mobile-menu-trigger[aria-expanded="true"] .bars i:first-child{transform:translateY(5.5px) rotate(45deg);;}
.screen#quebec .mobile-menu-trigger[aria-expanded="true"] .bars i:nth-child(2){opacity:0;;}
.screen#quebec .mobile-menu-trigger[aria-expanded="true"] .bars i:last-child{transform:translateY(-5.5px) rotate(-45deg);;}
.screen#quebec .mobile-drawer{display:none;;}
.screen#quebec .mobile-drawer.is-open{display:grid;;grid-template-columns:1fr 1fr;;gap:1px;;background:#ffffff20;;position:absolute;;top:100%;;left:0;;right:0;;padding:1px;;box-shadow:0 18px 28px #102c3230;;animation:drawerIn .24s ease both;;}
.screen#quebec .mobile-drawer a{display:flex;;align-items:center;;min-height:50px;;padding:12px 14px;;background:var(--dark);;color:#f7f5ed;;text-decoration:none;;font-size:12px;;transition:background .2s,color .2s;;}
.screen#quebec .mobile-drawer a:hover,.screen#quebec .mobile-drawer a:focus-visible{background:#1b4547;;color:var(--lime);;}
.screen#quebec .mobile-drawer a.current{color:var(--lime);;}
@keyframes drawerIn{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
.screen#quebec .reading-progress{position:fixed;;z-index:9999;;top:0;;left:0;;width:100%;;height:3px;;pointer-events:none;;}
.screen#quebec .reading-progress span{display:block;;width:100%;;height:100%;;background:var(--lime);;transform:scaleX(0);;transform-origin:left center;;will-change:transform;;box-shadow:0 0 8px #c8db8870;;}
.screen#quebec .back-to-top{position:fixed;;z-index:55;;right:20px;;bottom:20px;;width:46px;;height:46px;;border:1px solid #ffffff80;;border-radius:50%;;background:var(--dark);;color:var(--white);;font-size:20px;;line-height:1;;box-shadow:0 8px 24px #102c3230;;cursor:pointer;;opacity:0;;visibility:hidden;;transform:translateY(9px);;transition:opacity .25s,visibility .25s,transform .25s,background .2s;;}
.screen#quebec .back-to-top.is-visible{opacity:1;;visibility:visible;;transform:translateY(0);;}
.screen#quebec .back-to-top:hover{background:var(--teal);;transform:translateY(-3px);;}
.screen#quebec .motion-ready .reveal{opacity:0;;transform:translate3d(0,34px,0) scale(.99);;transition:opacity .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms),transform .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms);;will-change:opacity,transform;;}
.screen#quebec .motion-ready .reveal.is-visible{opacity:1;;transform:translate3d(0,0,0) scale(1);;}
@media (max-width:760px){.screen#quebec{scroll-padding-top:122px;;}
.screen#quebec .nav{display:grid;;grid-template-columns:minmax(0,1fr) auto;;align-content:center;;gap:8px;;padding-top:8px;;padding-bottom:8px;;min-height:72px;;}
.screen#quebec .mobile-menu-trigger{display:inline-flex;;grid-column:2;;grid-row:1;;}
.screen#quebec .nav>.links{display:none!important;;}
.screen#quebec .nav>.nav-actions{grid-column:1/-1;;display:flex;;justify-content:space-between;;gap:10px;;}
.screen#quebec .nav>.cv-download{grid-column:1/-1;;justify-self:start;;}
.screen#quebec .nav>.back{display:none;;}
.screen#quebec .mobile-drawer.is-open{grid-template-columns:1fr 1fr;;}
.screen#quebec .back-to-top{right:14px;;bottom:14px;;width:42px;;height:42px;;}}
@media (prefers-reduced-motion:reduce){.screen#quebec .motion-ready .reveal{opacity:1!important;;transform:none!important;;will-change:auto!important;;}
.screen#quebec .mobile-drawer.is-open{animation:none!important;;}}
.screen{display:block;;min-height:100vh;;}
html{scroll-behavior:smooth;;}
html.motion-ready .screen .reveal{opacity:0;;transform:translate3d(0,34px,0) scale(.99);;transition:opacity .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms),transform .82s cubic-bezier(.2,.7,.25,1) var(--reveal-delay,0ms);;will-change:opacity,transform;;}
html.motion-ready .screen .reveal.is-visible{opacity:1;;transform:translate3d(0,0,0) scale(1);;}
.reading-progress{position:fixed;;z-index:9999;;top:0;;left:0;;width:100%;;height:3px;;pointer-events:none;;}
.reading-progress span{display:block;;width:100%;;height:100%;;background:#c8db88;;transform:scaleX(0);;transform-origin:left center;;box-shadow:0 0 8px #c8db8870;;}
.back-to-top{position:fixed;;z-index:9999;;right:20px;;bottom:20px;;width:46px;;height:46px;;border:1px solid #ffffff80;;border-radius:50%;;background:#102c32;;color:#fffdf8;;font-size:20px;;line-height:1;;box-shadow:0 8px 24px #102c3230;;cursor:pointer;;opacity:0;;visibility:hidden;;transform:translateY(9px);;transition:opacity .25s,visibility .25s,transform .25s,background .2s;;}
.back-to-top.is-visible{opacity:1;;visibility:visible;;transform:translateY(0);;}
.back-to-top:hover{background:#24796e;;transform:translateY(-3px);;}
@media (prefers-reduced-motion:reduce){html.motion-ready .screen .reveal{opacity:1!important;;transform:none!important;;transition:none!important;;will-change:auto!important;;}
.back-to-top{transition:none!important;;}}
#projets{background:#f2efe6;;color:#19363b;;}
#projets .p-nav{height:76px;;}
#projets .p-nav .p-home{font-size:12px;;text-decoration:none;;border-bottom:1px solid #24796e;;padding:6px 0;;}
#projets .p-hero{background:#102c32;;color:#fffdf8;;padding:clamp(58px,9vw,112px) 0 55px;;position:relative;;overflow:hidden;;}
#projets .p-hero:after{content:"";;position:absolute;;width:440px;;height:440px;;border:1px solid #c8db8830;;border-radius:50%;;right:-110px;;top:-250px;;pointer-events:none;;}
#projets .p-wrap{width:min(1120px,calc(100% - 56px));;margin:auto;;position:relative;;z-index:1;;}
#projets .p-eyebrow{color:#c8db88;;font-size:12px;;font-weight:700;;letter-spacing:.2em;;text-transform:uppercase;;}
#projets .p-title{font:500 clamp(44px,7.4vw,88px)/.98 Georgia,"Times New Roman",serif;;letter-spacing:-.055em;;margin:20px 0;;max-width:900px;;}
#projets .p-title em{font-style:normal;;color:#c8db88;;}
#projets .p-intro{max-width:740px;;color:#d7e2dc;;font-size:clamp(15px,2vw,19px);;line-height:1.7;;margin:0;;}
#projets .p-stats{display:grid;;grid-template-columns:repeat(3,1fr);;max-width:780px;;margin-top:42px;;border-top:1px solid #ffffff35;;}
#projets .p-stat{padding:18px 12px 0 0;;}
#projets .p-stat+.p-stat{padding-left:20px;;border-left:1px solid #ffffff35;;}
#projets .p-stat strong{display:block;;color:#c8db88;;font:500 30px/1 Georgia,"Times New Roman",serif;;}
#projets .p-stat span{display:block;;color:#d1ded7;;font-size:12px;;margin-top:7px;;}
#projets .p-list{padding:72px 0 86px;;}
#projets .p-heading{display:flex;;justify-content:space-between;;align-items:end;;gap:28px;;margin-bottom:28px;;}
#projets .p-heading .p-eyebrow{color:#24796e;;}
#projets .p-heading h2{font:500 clamp(32px,4.8vw,50px)/1.06 Georgia,"Times New Roman",serif;;margin:9px 0 0;;}
#projets .p-heading p{max-width:390px;;color:#647674;;font-size:13px;;margin:0;;}
#projets .p-grid{display:grid;;grid-template-columns:repeat(2,minmax(0,1fr));;gap:16px;;align-items:start;;}
#projets .p-card{background:#fffdf8;;border:1px solid #d9ded5;;padding:clamp(20px,2.8vw,31px);;position:relative;;box-shadow:0 7px 20px #172f280c;;transition:transform .25s,box-shadow .25s,border-color .25s;;}
#projets .p-card:before{content:"";;position:absolute;;inset:0 auto 0 0;;width:4px;;background:#24796e;;transform:scaleY(.2);;transform-origin:top;;transition:transform .3s;;}
#projets .p-card:hover{transform:translateY(-3px);;box-shadow:0 16px 30px #172f2818;;border-color:#b9c8bb;;}
#projets .p-card:hover:before,#projets .p-card[open]:before{transform:scaleY(1);;}
#projets .p-card[data-p="senegal"]:before{background:#558b76;;}
#projets .p-card[data-p="quebec"]:before{background:#748969;;}
#projets .p-card-top{display:flex;;justify-content:space-between;;align-items:center;;gap:10px;;margin-bottom:17px;;}
#projets .p-number{font:500 16px Georgia,"Times New Roman",serif;;color:#24796e;;}
#projets .p-meta{font-size:12px;;letter-spacing:.14em;;font-weight:700;;text-transform:uppercase;;color:#647674;;text-align:right;;}
#projets .p-card h3{font:500 clamp(25px,2.8vw,34px)/1.08 Georgia,"Times New Roman",serif;;letter-spacing:-.02em;;margin:0 0 12px;;}
#projets .p-lead{font-size:14px;;line-height:1.72;;color:#4c605d;;margin:0;;}
#projets .p-result{display:flex;;gap:10px;;background:#edf1e8;;padding:13px 14px;;margin-top:17px;;font-size:12px;;line-height:1.55;;}
#projets .p-result b{color:#24796e;;font-size:17px;;line-height:1;;}
#projets .p-card details{border-top:1px solid #d9ded5;;margin-top:17px;;padding-top:13px;;}
#projets .p-card summary{display:flex;;justify-content:space-between;;align-items:center;;gap:12px;;color:#24796e;;font-weight:700;;cursor:pointer;;list-style:none;;}
#projets .p-card summary::-webkit-details-marker{display:none;;}
#projets .p-card summary:after{content:"+";;width:25px;;height:25px;;border:1px solid #b7c9bc;;border-radius:50%;;display:grid;;place-items:center;;font-size:18px;;font-weight:400;;flex:0 0 25px;;}
#projets .p-card details[open] summary:after{content:"−";;}
#projets .p-detail{color:#526662;;}
#projets .p-tags{margin-top:16px;;color:#24796e;;font-size:12px;;}
#projets .p-end{background:#e3e7dc;;padding:38px 0;;}
#projets .p-end-inner{display:flex;;justify-content:space-between;;align-items:center;;gap:20px;;}
#projets .p-end p{font:500 clamp(24px,3.5vw,36px)/1.2 Georgia,"Times New Roman",serif;;margin:0;;}
#projets .p-end a{background:#102c32;;color:#fffdf8;;padding:11px 16px;;text-decoration:none;;font-size:12px;;font-weight:700;;}
@media (max-width:760px){#projets .p-wrap{width:calc(100% - 36px);;}
#projets .p-heading{align-items:start;;flex-direction:column;;gap:10px;;}
#projets .p-grid{grid-template-columns:1fr;;gap:12px;;}
#projets .p-card{padding:21px 19px;;}
#projets .p-card h3{font-size:29px;;}
#projets .p-end-inner{align-items:stretch;;flex-direction:column;;}
#projets .p-end a{text-align:center;;}}
@media (max-width:430px){#projets .p-nav{height:auto;;min-height:68px;;}
#projets .p-stats{margin-top:32px;;}
#projets .p-stat+.p-stat{padding-left:11px;;}
#projets .p-stat strong{font-size:25px;;}
#projets .p-stat span{font-size:12px;;line-height:1.4;;}
#projets .p-list{padding:56px 0 65px;;}
#projets .p-title{font-size:45px;;}}
.skill-groups{display:grid;;grid-template-columns:repeat(3,minmax(0,1fr));;gap:12px;;margin-top:24px;;}
.skill-group{min-width:0;;padding:18px;;background:#f7f8f3;;border:1px solid #b5c8bb;;}
.skill-group h3{font:600 15px/1.3 var(--serif,Georgia,serif);;margin:0;;color:var(--ink,#19363b);;}
.skill-group ul{display:flex;;flex-wrap:wrap;;gap:7px;;list-style:none;;padding:0;;margin:14px 0 0;;}
.skill-group li{padding:7px 9px;;border:1px solid #d0d9d0;;color:#31574e;;font-size:12px;;line-height:1.35;;}
.life-route{line-height:1.8;;}
.life-route span{padding:0 3px;;}
@media (max-width:900px){.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));;}}
@media (max-width:560px){.skill-groups{grid-template-columns:1fr;;}
.skill-group{padding:16px;;}}
.screen .footer,.screen .footer>.wrap{flex-wrap:wrap;;gap:14px 24px;;}
.footer-linkedin{display:inline-flex;;align-items:center;;gap:8px;;white-space:nowrap;;text-decoration:none;;}
.footer-linkedin:hover{text-decoration:underline;;}
.footer-linkedin:focus-visible{outline:2px solid currentColor;;outline-offset:5px;;}
.footer-linkedin svg{flex-shrink:0;;}
.screen#projets .footer{background:var(--dark);;color:var(--white);;padding:24px 0;;font-size:12px;;}
.screen#projets .footer>.wrap{display:flex;;align-items:center;;justify-content:space-between;;}
@media (max-width:700px){.screen .footer .footer-linkedin{margin-top:10px;;}}
.hero-links .hero-projects{display:inline-flex;;align-items:center;;justify-content:center;;min-height:44px;;box-sizing:border-box;;border:1px solid var(--lime);;background:transparent;;color:var(--lime);;white-space:nowrap;;}
.hero-links .hero-projects:hover{background:var(--lime);;color:var(--dark);;}
.hero-links .hero-projects:focus-visible{outline:2px solid var(--white);;outline-offset:4px;;}
.about-me{padding:70px 0;;background:var(--white);;border-bottom:1px solid var(--line);;}
.about-me-layout{display:grid;;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);;gap:65px;;align-items:start;;}
.about-me-heading h2{font:500 clamp(34px,4vw,52px)/1.12 var(--serif);;letter-spacing:-.035em;;margin:15px 0 22px;;color:var(--dark);;}
.about-me-background{max-width:310px;;font-size:12px;;line-height:1.9;;color:var(--teal);;border-left:2px solid var(--teal);;padding-left:16px;;margin:0;;}
.about-me-copy{max-width:660px;;font-size:16px;;line-height:1.85;;color:var(--ink);;}
.about-me-copy p{margin:0 0 18px;;}
.about-me-copy p:last-child{margin-bottom:0;;color:var(--muted);;}
@media (max-width:760px){.about-me{padding:44px 0;;}
.about-me-layout{grid-template-columns:1fr;;gap:28px;;}
.about-me-heading h2{margin-bottom:18px;;}
.about-me-copy{font-size:15px;;}
.about-me-background{max-width:none;;}}
.site-header-shell{position:sticky;;top:0;;z-index:100;;width:100%;;transition:background-color .24s ease,border-color .24s ease;;isolation:isolate;;}
.site-header-shell.is-scrolled,.site-header-shell.menu-open{background:rgba(242,239,230,.88);;border-bottom-color:rgba(25,54,59,.13);;-webkit-backdrop-filter:saturate(145%) blur(20px);;backdrop-filter:saturate(145%) blur(20px);;}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.site-header-shell.is-scrolled,.site-header-shell.menu-open{background:rgba(242,239,230,.98);;}}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav{position:static;;top:auto;;z-index:auto;;background:transparent;;-webkit-backdrop-filter:none;;backdrop-filter:none;;box-shadow:none;;display:flex;;flex-wrap:nowrap;;align-items:center;;justify-content:space-between;;align-content:normal;;width:min(1240px,calc(100% - 48px));;padding:0;;margin:0 auto;;gap:16px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.logo{order:0;;flex-shrink:0;;white-space:nowrap;;margin:0;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.links{display:flex!important;;align-items:center;;justify-content:center;;order:1;;margin:0 auto;;white-space:nowrap;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.nav-actions{display:flex;;align-items:center;;gap:10px;;order:2;;margin:0;;flex-shrink:0;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .nav-cta{display:inline-flex;;white-space:nowrap;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.cv-download{order:2;;margin:0;;flex-shrink:0;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.screen-home-link,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.p-home{order:1;;margin-left:auto;;white-space:nowrap;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.back{display:inline-flex;;order:3;;white-space:nowrap;;font-size:12px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.header-controls{display:flex;;align-items:center;;justify-content:flex-end;;gap:10px;;order:4;;flex-shrink:0;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .language-switch{margin:0;;color:var(--ink);;flex-shrink:0;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-menu-trigger{display:none;;background:transparent;;border:0;;min-width:44px;;min-height:44px;;padding:10px;;color:var(--dark);;align-items:center;;justify-content:center;;gap:8px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-menu-trigger .bars{gap:4px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer{display:none;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav a:focus-visible,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav button:focus-visible{outline:2px solid var(--teal);;outline-offset:4px;;}
@media (max-width:1180px){html{scroll-padding-top:76px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav{height:60px;;min-height:60px;;gap:10px;;width:calc(100% - 40px);;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.links,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.nav-actions,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.cv-download,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.screen-home-link,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.back,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.p-home{display:none!important;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.header-controls{margin-left:auto;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-menu-trigger{display:inline-flex;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer.is-open{display:flex;;flex-direction:column;;position:absolute;;top:100%;;left:0;;right:0;;gap:0;;padding:18px max(20px,calc((100vw - 1200px)/2)) 24px;;background:rgba(242,239,230,.98);;border-bottom:1px solid var(--line);;box-shadow:none;;max-height:calc(100dvh - 61px);;overflow-y:auto;;overscroll-behavior:contain;;animation:headerMenuIn .2s ease both;;-webkit-backdrop-filter:blur(20px);;backdrop-filter:blur(20px);;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer a{display:flex;;align-items:center;;min-height:44px;;padding:10px 0;;color:var(--ink);;background:transparent;;border:0;;border-bottom:1px solid rgba(25,54,59,.08);;text-decoration:none;;font-size:15px;;line-height:1.4;;transition:color .18s ease;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer a.current,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer a:hover,:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer a:focus-visible{background:transparent;;color:var(--teal);;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer .drawer-action[download]{align-self:flex-start;;background:var(--lime);;color:var(--dark);;padding:11px 16px;;border:0;;margin-top:14px;;font-weight:700;;font-size:13px;;}}
@media (max-width:480px){:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav{height:56px;;min-height:56px;;width:calc(100% - 28px);;gap:6px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .logo{font-size:12px;;letter-spacing:.1em;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.header-controls{gap:4px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .language-switch button{padding:7px 8px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer.is-open{max-height:calc(100dvh - 57px);;padding:14px 20px 24px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-menu-trigger>span:last-child{display:none;;}}
@keyframes headerMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.site-header-shell{transition:none;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav .mobile-drawer.is-open{animation:none;;}}
:root{--ink:#102c32;;--ink-2:#21434a;;--paper:#f2efe6;;--paper-2:#e8e4d6;;--white:#fffdf8;;--teal:#24796e;;--teal-d:#1b5f56;;--lime:#c8db88;;--line:rgba(16,44,50,.16);;--muted:#46605f;;--on-dark:#fffdf8;;--soft-dark:#d3dfd9;;--serif:Georgia,"Times New Roman",serif;;--sans:Arial,sans-serif;;--cream:var(--paper);;--dark:var(--ink);;--r:10px;;}
.screen,.screen#maroc,.screen#senegal,.screen#quebec,.screen#projets{--serif:Georgia,"Times New Roman",serif;;--sans:Arial,sans-serif;;}
body{margin:0;;background:var(--paper);;color:var(--ink);;font:400 19px/1.65 var(--sans);;-webkit-font-smoothing:antialiased;;overflow-wrap:break-word;;}
h1,h2,h3,h4{font-family:var(--serif)!important;;font-weight:700;;letter-spacing:-.015em;;line-height:1.08;;text-wrap:balance;;margin-top:0;;}
h2{font-size:clamp(34px,4.6vw,60px);;}
h3{font-size:clamp(22px,2.3vw,30px);;}
p,li{text-wrap:pretty;;}
main :is(p,li,dd,figcaption,small){color:var(--ink-2);;}
a{color:var(--teal-d);;}
img{height:auto;;max-width:100%;;}
.wrap{max-width:1200px;;margin-inline:auto;;padding-inline:clamp(20px,4vw,40px);;}
:focus-visible{outline:3px solid var(--teal);;outline-offset:3px;;border-radius:3px;;}
.site-header-shell{background:rgba(242,239,230,.9)!important;;backdrop-filter:saturate(1.4) blur(14px);;border-bottom:1px solid var(--line)!important;;}
.logo{font:700 21px var(--serif)!important;;color:var(--ink)!important;;letter-spacing:.005em;;text-decoration:none;;}
.logo span{color:var(--teal-d)!important;;}
.links a{font:700 16px var(--sans)!important;;color:var(--ink)!important;;text-decoration:none;;}
.links a:hover,.links a.is-active{box-shadow:inset 0 -4px 0 var(--lime);;}
.cv-download,.nav-cta,.screen-home-link,.back,.p-home{font:700 15px var(--sans)!important;;text-transform:none!important;;letter-spacing:0!important;;border-radius:999px!important;;text-decoration:none;;}
.cv-download{background:var(--ink)!important;;color:var(--white)!important;;padding:11px 20px!important;;border:2px solid var(--ink)!important;;}
.cv-download:hover{background:var(--lime)!important;;color:var(--ink)!important;;}
.nav-cta,.screen-home-link,.back,.p-home{background:transparent!important;;color:var(--ink)!important;;border:2px solid var(--ink)!important;;padding:9px 16px!important;;}
.nav-cta:hover,.screen-home-link:hover{background:var(--ink)!important;;color:var(--white)!important;;}
.nav-projects{display:none!important;;}
.language-switch{border:2px solid var(--ink)!important;;}
.language-switch button{color:var(--ink)!important;;font-weight:700;;}
.language-switch button.active{background:var(--lime)!important;;color:var(--ink)!important;;}
.mobile-drawer{background:var(--paper)!important;;color:var(--ink)!important;;}
.mobile-drawer a{color:var(--ink)!important;;}
.intro-label,.kicker,.eyebrow,.p-eyebrow,.certificate-category,.meta,.label,.company-heading small,.sub,.p-meta,.project-kicker{font:700 16px/1.3 var(--sans)!important;;text-transform:none!important;;letter-spacing:0!important;;color:var(--teal-d);;display:flex;;align-items:center;;gap:10px;;}
.intro-label::before,.kicker::before,.eyebrow::before,.p-eyebrow::before{content:"";;width:12px;;height:12px;;border-radius:50%;;background:var(--lime);;box-shadow:0 0 0 2px var(--ink);;flex:none;;}
.pill{display:inline-flex;;align-items:center;;gap:8px;;font:700 17px var(--sans)!important;;text-transform:none!important;;letter-spacing:0!important;;text-decoration:none;;border-radius:999px!important;;padding:14px 24px!important;;white-space:normal;;transition:background .2s,color .2s,transform .2s;;}
.pill:hover{transform:translateY(-2px);;}
.under{font:700 17px var(--sans)!important;;text-decoration:none;;border-bottom:3px solid var(--lime);;}
body[data-page=home] .hero{display:grid;;align-items:center;;padding:clamp(48px,7vw,104px) max(clamp(20px,4vw,40px),calc((100vw - 1200px)/2));;}
body[data-page=home] .hero-copy{padding:0!important;;}
body[data-page=home] .hero h1{margin:18px 0 26px;;}
body[data-page=home] .hero h1 em{font-style:normal;;}
@keyframes mark{to{background-size:100% 100%}}
body[data-page=home] .hero-copy p{font-size:clamp(18px,1.6vw,21px);;}
body[data-page=home] .hero-links{gap:14px 20px;;margin-top:30px;;}
body[data-page=home] .hero-links a.pill:not(.hero-projects){border:2px solid var(--ink);;}
body[data-page=home] .hero-links a.pill:not(.hero-projects):hover{color:var(--ink)!important;;}
body[data-page=home] .hero-links a.hero-projects{background:transparent;;border:2px solid var(--ink);;}
body[data-page=home] .hero-photo{position:relative;;justify-self:end;;margin:0;;aspect-ratio:3/4;;overflow:hidden;;}
body[data-page=home] .hero-photo::before{display:none!important;;}
body[data-page=home] .hero-photo img{width:100%;;height:100%;;object-fit:cover;;object-position:50% 20%;;}
body[data-page=home] .hero-photo::after{position:absolute;;pointer-events:none;;}
body[data-page=home] .hero-caption{position:absolute;;z-index:2;;display:flex;;flex-direction:column;;}
body[data-page=home] .hero-role{justify-content:center;;}
body[data-page=home] .hero-role::before{display:none;;}
.stamp{background:var(--lime)!important;;color:var(--ink)!important;;font:700 12px/1.15 var(--sans)!important;;z-index:3;;box-shadow:0 0 0 2px var(--ink);;}
.proof{background:var(--paper-2);;color:var(--ink);;border-block:1px solid var(--line);;}
.proof-grid>div{border-left:1px solid var(--line)!important;;padding:30px 24px!important;;}
.proof-grid>div:first-child{border-left:0!important;;padding-left:0!important;;}
.proof strong{color:var(--ink)!important;;font:700 clamp(40px,5vw,64px)/1 var(--serif)!important;;}
.proof span{color:var(--ink-2)!important;;font-size:16px;;}
section.section,.about-me,.recruiter-snapshot,.route,.skill-strip,.certificate-section,.wrap.intro{padding-block:clamp(72px,9vw,128px)!important;;}
.recruiter-snapshot,.skill-strip{background:var(--white)!important;;}
.recruiter-card,.skill-group,.plain-card,.certificate-card,.story,.card,.p-card,.project-shot,.employers{background:var(--white);;border:1px solid var(--line)!important;;border-radius:var(--r)!important;;box-shadow:none;;}
.recruiter-snapshot .recruiter-card,.skill-strip .skill-group{background:var(--paper);;border-top:4px solid var(--ink)!important;;}
.recruiter-card>*:first-child,.skill-group h3{font:700 20px/1.25 var(--serif)!important;;color:var(--ink)!important;;text-transform:none!important;;letter-spacing:0!important;;}
.skill-group li,.tags span,.skills span,.p-tags span,.p-tags li{border:1px solid var(--line)!important;;background:var(--white)!important;;color:var(--ink)!important;;border-radius:999px!important;;font:700 15px var(--sans)!important;;text-transform:none!important;;}
@media (hover:hover){.recruiter-card,.skill-group,.plain-card,.certificate-card,.card,.p-card,.story{transition:transform .25s,border-color .25s;;}
.recruiter-card:hover,.skill-group:hover,.plain-card:hover,.certificate-card:hover,.card:hover,.p-card:hover,.story:hover{transform:translateY(-4px);;border-color:var(--teal)!important;;}}
.story{overflow:hidden;;}
.story-copy{padding:clamp(24px,3vw,44px);;}
.story h3{font-size:clamp(26px,3vw,38px);;}
.story .meta{color:var(--teal-d);;}
.story .tags{color:var(--muted);;}
.story-image,.work-memory,.memory-photo,.life-photo{border-radius:var(--r);;overflow:hidden;;}
.route,.quote,.contact,.footer,.p-hero,.p-end,.milestone,body:not([data-page=home]) .hero{background-color:var(--ink);;}
.route h2,.route h3{color:#fff!important;;}
.route-head p{color:var(--soft-dark)!important;;}
.places{position:relative;;padding-top:44px;;}
.places::before{content:"";;position:absolute;;left:0;;right:0;;top:12px;;height:3px;;background:repeating-linear-gradient(90deg,var(--lime) 0 14px,transparent 14px 26px);;opacity:.7;;animation:flow 2.4s linear infinite;;}
@keyframes flow{to{background-position:26px 0}}
.place{border-radius:var(--r);;overflow:hidden;;color:#fff;;}
.place :is(h3,strong){font:700 clamp(30px,3.4vw,44px) var(--serif)!important;;color:#fff!important;;}
.place :is(p,span,small,div){color:#fff!important;;text-transform:none!important;;letter-spacing:0!important;;}
@media (hover:hover){.place img{transition:transform .8s;;}
.place:hover img{transform:scale(1.06);;}}
.quote blockquote,.quote p:first-of-type{font:700 clamp(28px,4vw,54px)/1.14 var(--serif)!important;;color:#fff!important;;letter-spacing:-.012em;;}
body:not([data-page=home]) .hero,.route,.quote,.milestone,.contact,.footer,.p-hero,.p-end{color:var(--on-dark);;}
body:not([data-page=home]) .hero :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.route :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.quote :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.milestone :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.contact :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.footer :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.p-hero :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote),
.p-end :is(h1,h2,h3,h4,p,li,span,small,strong,em,figcaption,div,a,dt,dd,blockquote){color:inherit!important;;}
body:not([data-page=home]) .hero :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.route :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.quote :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.milestone :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.contact :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.footer :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.p-hero :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number),
.p-end :is(.eyebrow,.p-eyebrow,.intro-label,.label,.index,.num,.kicker,.p-number){color:var(--lime)!important;;}
.milestone{border:1px solid rgba(255,255,255,.14)!important;;border-radius:var(--r)!important;;}
.milestone p{color:var(--soft-dark)!important;;}
body:not([data-page=home]) .hero{min-height:clamp(380px,52vw,520px);;}
body:not([data-page=home]) .hero h1{font-size:clamp(56px,9vw,112px);;color:#fff!important;;line-height:.98;;}
.p-title{font-size:clamp(40px,6vw,84px)!important;;color:#fff!important;;}
.p-title em{font-style:normal;;color:var(--lime)!important;;}
.p-stat strong,.p-stat b{font-family:var(--serif)!important;;color:var(--lime)!important;;}
.p-card{padding:clamp(22px,3vw,34px);;}
.p-number{color:var(--teal-d)!important;;}
.p-result{border-left:4px solid var(--lime);;padding-left:14px;;color:var(--ink)!important;;}
.project-highlight{background:var(--white);;border:1px solid var(--line);;border-left:6px solid var(--lime);;border-radius:var(--r);;padding:clamp(22px,3vw,40px);;}
.partners{background:var(--white);;border:1px solid var(--line);;border-radius:var(--r);;padding:clamp(20px,3vw,34px);;}
.certificate-card img{background:var(--paper-2);;border-radius:8px 8px 0 0;;}
.certificate-open,.certificate-jump{font-weight:700;;color:var(--teal-d)!important;;}
.contact{border-radius:20px;;padding:clamp(32px,5vw,64px);;}
.contact h2{font-size:clamp(36px,5vw,64px);;}
.contact a,.contact .copy-mail{display:inline-flex;;font:700 16px var(--sans)!important;;border-radius:999px!important;;padding:13px 22px!important;;text-decoration:none;;margin:6px 8px 6px 0;;border:2px solid var(--lime)!important;;background:var(--lime)!important;;color:var(--ink)!important;;cursor:pointer;;}
.contact .copy-mail{background:transparent!important;;color:#fff!important;;border-color:#fff!important;;}
.contact a:hover{background:#fff!important;;border-color:#fff!important;;}
.footer{color:var(--soft-dark);;padding-block:36px;;font-size:16px;;}
.footer a{color:#fff!important;;text-decoration:underline;;}
.footer .cv-download{background:var(--lime)!important;;color:var(--ink)!important;;border-color:var(--lime)!important;;text-decoration:none;;}
.skip-link{position:absolute;;left:12px;;top:-60px;;z-index:500;;background:var(--ink);;color:#fff;;padding:12px 16px;;font-weight:700;;text-decoration:none;;}
.skip-link:focus{top:10px;;}
.progress{position:fixed;;left:0;;top:0;;height:4px;;width:100%;;background:var(--teal);;transform:scaleX(0);;transform-origin:0 50%;;z-index:600;;pointer-events:none;;}
.to-top{position:fixed;;right:18px;;bottom:18px;;z-index:300;;width:48px;;height:48px;;border:2px solid var(--ink);;border-radius:50%;;background:var(--lime);;color:var(--ink);;font-size:20px;;font-weight:700;;cursor:pointer;;opacity:0;;transform:translateY(12px);;pointer-events:none;;transition:opacity .2s,transform .2s;;}
.to-top.on{opacity:1;;transform:none;;pointer-events:auto;;}
.crumbs{display:flex;;flex-wrap:wrap;;gap:10px;;align-items:center;;padding-block:16px;;font-size:15px;;background:var(--paper);;color:var(--ink-2);;}
.crumbs a{color:var(--ink)!important;;font-weight:700;;}
.crumbs [aria-current]{font-weight:700;;color:var(--ink);;}
.chapter-nav{display:grid;;grid-template-columns:1fr 1fr;;gap:16px;;}
.chapter-nav a{display:flex;;flex-direction:column;;gap:6px;;padding:24px;;border:1px solid var(--line);;border-radius:var(--r);;background:var(--white);;color:var(--ink)!important;;text-decoration:none;;transition:border-color .2s,transform .2s;;}
.chapter-nav a:hover{border-color:var(--teal);;transform:translateY(-3px);;}
.chapter-nav small{color:var(--muted)!important;;font-size:15px;;}
.chapter-nav strong{font:700 24px/1.2 var(--serif);;color:var(--ink);;}
.chapter-nav .next{text-align:right;;grid-column:2;;}
.chapter-nav .prev{grid-column:1;;}
.copy-status{position:absolute;;left:-9999px;;}
.notfound{min-height:60vh;;display:grid;;place-content:center;;gap:16px;;text-align:center;;padding:80px 20px;;}
@media (max-width:900px){body{font-size:18px;;}
body[data-page=home] .hero{grid-template-columns:1fr;;}
body[data-page=home] .hero-photo{justify-self:center;;width:min(86%,380px);;box-shadow:12px 12px 0 var(--ink);;}
.chapter-nav{grid-template-columns:1fr;;}
.chapter-nav .next,.chapter-nav .prev{grid-column:1;;text-align:left;;}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;;animation-iteration-count:1!important;;transition-duration:.01ms!important;;}
body[data-page=home] .hero h1 em{background-size:100% 100%;;}}
@media print{.progress,.to-top,.skip-link,.chapter-nav{display:none;;}}
.proof-grid{display:grid;;}
.proof-grid>div{display:flex;;flex-direction:column;;gap:6px;;}
@media (max-width:720px){.proof-grid{grid-template-columns:1fr 1fr;;}
.proof-grid>div:nth-child(odd){border-left:0!important;;padding-left:0!important;;}
.proof-grid>div:nth-child(n/**/+3){border-top:1px solid var(--line);;}}
body[data-page=home] .hero h1 em{background-image:linear-gradient(transparent 50%,var(--lime) 50% 86%,transparent 86%);;}
body[data-page=home] .hero-photo{outline-offset:12px;;}
body[data-page=home] .hero-caption{border:0!important;;background:none!important;;}
@media (max-width:900px){body[data-page=home] .hero-photo{box-shadow:none;;outline-offset:8px;;margin-block:10px;;}}
.mobile-menu-trigger .bars,.mobile-menu-trigger .bars::before,.mobile-menu-trigger .bars::after{background:transparent!important;;}
.mobile-menu-trigger{border:2px solid var(--ink)!important;;border-radius:999px!important;;background:transparent!important;;color:var(--ink)!important;;padding:11px 13px!important;;}
.mobile-menu-trigger .bars i{background:var(--ink)!important;;width:18px;;height:2px;;}
body[data-page=home] .hero{position:relative;;isolation:isolate;;overflow:hidden;;background:#102c32;;color:#fffdf8;;grid-template-columns:1.15fr .85fr;;gap:clamp(28px,5vw,72px);;}
body[data-page=home] .hero::before{content:"";;position:absolute;;inset:0;;z-index:-1;;pointer-events:none;;background:url("../img/hero-contours.svg") right center / auto 100% no-repeat;;opacity:.7;;}
body[data-page=home] .hero h1{font-family:Georgia,"Times New Roman",serif!important;;font-weight:500;;font-size:clamp(54px,7.2vw,100px);;letter-spacing:-.055em;;line-height:1;;color:#fffdf8!important;;}
body[data-page=home] .hero h1 em{color:#c8db88!important;;background:none;;animation:none;;padding:0;;font-weight:500;;}
body[data-page=home] .hero .kicker{color:#c8db88!important;;font:700 12px/1.65 Arial,sans-serif!important;;letter-spacing:.13em!important;;text-transform:uppercase!important;;}
body[data-page=home] .hero .kicker::before{box-shadow:none;;width:6px;;height:6px;;}
body[data-page=home] .hero-copy p{color:#d5e0d9!important;;font:400 17px/1.75 Arial,sans-serif;;max-width:490px;;}
body[data-page=home] .hero-links a{font:700 13px/1.4 Arial,sans-serif!important;;}
body[data-page=home] .hero-links a.pill:not(.hero-projects){background:#c8db88;;color:#102c32!important;;border-color:#c8db88;;}
body[data-page=home] .hero-links a.pill:not(.hero-projects):hover{background:#fffdf8;;border-color:#fffdf8;;}
body[data-page=home] .hero-links a.hero-projects{color:#fffdf8!important;;border-color:#7f9d97;;}
body[data-page=home] .hero-links a.hero-projects:hover{background:#fffdf8;;color:#102c32!important;;border-color:#fffdf8;;}
body[data-page=home] .hero-links a.under{color:#e9efeb!important;;border-bottom:1px solid #98aca3;;}
body[data-page=home] .hero-photo{border-radius:24px;;outline:0;;box-shadow:0 24px 64px #0003;;border:1px solid #ffffff20;;background:#17383e;;}
body[data-page=home] .hero-photo::after{content:"";;inset:auto 0 0;;height:35%;;padding:0;;border:0;;background:linear-gradient(transparent,#102c32e6);;}
body[data-page=home] .hero-caption{left:24px;;right:108px;;bottom:26px;;max-width:none;;align-items:flex-start;;text-align:left;;padding:0;;gap:5px;;}
body[data-page=home] .hero-name{font:500 23px/1.1 Georgia,"Times New Roman",serif!important;;color:#fff!important;;}
body[data-page=home] .hero-role{font:400 13px/1.4 Arial,sans-serif!important;;color:#d5e0d9!important;;}
body[data-page=home] .stamp{right:20px;;bottom:24px;;width:72px;;height:72px;;font:700 10px/1.25 Arial,sans-serif!important;;box-shadow:none;;}
body[data-page=home] #contact{width:100%;;max-width:none;;margin:0;;padding:0!important;;background:#102c32;;}
body[data-page=home] #contact .contact{width:min(1200px,100%);;margin:auto;;padding:clamp(52px,7vw,88px) clamp(24px,4vw,40px);;border-radius:0;;background:transparent;;display:grid;;grid-template-columns:minmax(0,1fr) auto;;gap:40px;;align-items:center;;}
body[data-page=home] #contact .kicker{font-size:13px!important;;color:#c8db88!important;;max-width:36em;;}
body[data-page=home] #contact h2{font-family:Georgia,"Times New Roman",serif!important;;font-weight:500;;font-size:clamp(42px,5vw,68px);;letter-spacing:-.04em;;margin:20px 0 16px;;}
body[data-page=home] #contact p{font-size:17px;;line-height:1.7;;color:#d5e0d9!important;;max-width:36em;;margin:0;;}
body[data-page=home] #contact .contact-actions{display:flex;;flex-direction:column;;align-items:stretch;;gap:12px;;}
body[data-page=home] #contact .contact-actions a{margin:0;;justify-content:center;;text-align:center;;white-space:normal;;}
body[data-page=home] #contact .cv-download{background:transparent!important;;border-color:#7f9d97!important;;color:#fffdf8!important;;}
body[data-page=home] #contact .cv-download:hover{background:#fffdf8!important;;color:#102c32!important;;}
.screen .footer{width:100%;;max-width:none;;margin:0;;background:#102c32;;color:#d5e0d9;;border-top:1px solid #ffffff20;;padding:28px max(24px,calc((100% - 1120px)/2))!important;;align-items:center;;font-size:13px;;}
.screen .footer>.wrap{width:100%;;max-width:1120px;;padding:0;;margin:auto;;}
@media (max-width:900px){body[data-page=home] .hero{grid-template-columns:1fr;;padding-block:52px;;gap:38px;;}
body[data-page=home] .hero-photo{width:min(100%,380px);;justify-self:center;;outline:0;;margin:0;;}
body[data-page=home] .hero h1{font-size:clamp(54px,10vw,82px);;}
body[data-page=home] #contact .contact{grid-template-columns:1fr;;gap:28px;;}
body[data-page=home] #contact .contact-actions{align-items:flex-start;;}
body[data-page=home] #contact .contact-actions a{min-width:230px;;}}
@media (max-width:520px){body[data-page=home] .hero{padding-inline:24px;;}
body[data-page=home] .hero h1{font-size:clamp(43px,11.5vw,60px);;}
body[data-page=home] .hero-links{gap:16px;;}
body[data-page=home] .hero-photo{width:min(100%,340px);;border-radius:20px;;}
body[data-page=home] .hero-caption{left:20px;;right:100px;;bottom:24px;;}
body[data-page=home] .hero-name{font-size:21px!important;;}
body[data-page=home] #contact .contact-actions,body[data-page=home] #contact .contact-actions a{width:100%;;}
.screen .footer{flex-direction:column;;align-items:flex-start;;gap:12px;;}
.screen .footer>.wrap{flex-direction:column;;align-items:flex-start;;}}
body[data-page=home] .about-me,
body[data-page=home] .recruiter-snapshot,
body[data-page=home] .skill-strip{background:var(--paper,#f2efe6)!important;;}
body[data-page=home] .recruiter-grid,body[data-page=home] .skill-groups{gap:20px;;align-items:stretch;;counter-reset:card;;}
body[data-page=home] .recruiter-snapshot .recruiter-card,body[data-page=home] .skill-strip .skill-group{position:relative;;min-width:0;;background:linear-gradient(145deg,#f9f7f0,#f2efe6);;border:1px solid rgba(16,44,50,.13)!important;;border-top:1px solid rgba(16,44,50,.13)!important;;border-radius:18px!important;;box-shadow:0 4px 16px rgba(16,44,50,.035);;counter-increment:card;;transition:border-color .25s,box-shadow .25s,transform .25s;;}
body[data-page=home] .recruiter-card::before,body[data-page=home] .skill-group::before{content:counter(card,decimal-leading-zero);;display:flex;;align-items:center;;justify-content:center;;width:34px;;height:34px;;background:#e3eade;;border:1px solid rgba(36,121,110,.12);;border-radius:10px;;color:#24796e;;font:700 11px/1 Arial,sans-serif;;letter-spacing:.05em;;}
body[data-page=home] .recruiter-card>*:first-child,body[data-page=home] .skill-group h3{display:block;;font-family:Georgia,"Times New Roman",serif!important;;font-size:20px!important;;line-height:1.25!important;;color:#102c32!important;;letter-spacing:-.015em!important;;margin:0 0 14px;;text-transform:none!important;;}
body[data-page=home] .recruiter-card p{font:400 14px/1.8 Arial,sans-serif;;text-wrap:pretty;;}
body[data-page=home] .skill-group ul{display:flex;;flex-wrap:wrap;;align-content:flex-start;;gap:8px;;margin:0;;padding:0;;list-style:none;;}
body[data-page=home] .skill-group li{max-width:100%;;border:0!important;;border-radius:7px!important;;background:#e8ede3!important;;color:#31574e!important;;font:400 12px/1.55 Arial,sans-serif!important;;padding:6px 10px;;overflow-wrap:anywhere;;}
@media (hover:hover){body[data-page=home] .recruiter-snapshot .recruiter-card:hover,body[data-page=home] .skill-strip .skill-group:hover{transform:translateY(-3px);;border-color:rgba(36,121,110,.35)!important;;box-shadow:0 12px 28px rgba(16,44,50,.07);;}}
@media (max-width:1000px){body[data-page=home] .recruiter-grid,body[data-page=home] .skill-groups{grid-template-columns:repeat(2,minmax(0,1fr));;gap:16px;;}}
@media (max-width:600px){body[data-page=home] .recruiter-grid,body[data-page=home] .skill-groups{grid-template-columns:1fr;;gap:14px;;}
body[data-page=home] .recruiter-snapshot .recruiter-card,body[data-page=home] .skill-strip .skill-group{padding:24px;;min-height:0;;}
body[data-page=home] .recruiter-card::before,body[data-page=home] .skill-group::before{margin-bottom:18px;;}}
body[data-page=home] .recruiter-snapshot .recruiter-card.card-motion,body[data-page=home] .skill-strip .skill-group.card-motion{transition:opacity .65s cubic-bezier(.22,1,.36,1) var(--card-delay,0ms),transform .65s cubic-bezier(.22,1,.36,1) var(--card-delay,0ms),border-color .3s,box-shadow .3s;;will-change:auto;;}
body[data-page=home] .recruiter-snapshot .recruiter-card.card-motion:not(.card-in),body[data-page=home] .skill-strip .skill-group.card-motion:not(.card-in){opacity:0;;transform:translateY(28px) scale(.975);;}
body[data-page=home] .recruiter-card::after,body[data-page=home] .skill-group::after{content:"";;position:absolute;;inset:0;;border-radius:inherit;;pointer-events:none;;background:linear-gradient(115deg,transparent 25%,rgba(200,219,136,.24) 48%,transparent 70%);;background-size:250% 100%;;background-position:100% 0;;opacity:0;;transition:opacity .3s;;}
body[data-page=home] .recruiter-card::before,body[data-page=home] .skill-group::before{transition:background .3s,color .3s,transform .35s;;}
@keyframes cardShine{from{background-position:100% 0}to{background-position:0% 0}}
@media (hover:hover) and (pointer:fine){body[data-page=home] .recruiter-snapshot .recruiter-card:hover,body[data-page=home] .skill-strip .skill-group:hover{transform:translateY(-7px) scale(1.008);;box-shadow:0 18px 38px rgba(16,44,50,.11);;transition-delay:0ms;;}
body[data-page=home] .recruiter-card:hover::after,body[data-page=home] .skill-group:hover::after{opacity:1;;animation:cardShine .85s ease-out both;;}
body[data-page=home] .recruiter-card:hover::before,body[data-page=home] .skill-group:hover::before{background:#24796e;;color:#fffdf8;;transform:translateY(-2px);;}}
@media (prefers-reduced-motion:reduce){body[data-page=home] .recruiter-card.card-motion,body[data-page=home] .skill-group.card-motion{opacity:1!important;;transform:none!important;;transition:none!important;;}
body[data-page=home] .recruiter-card::after,body[data-page=home] .skill-group::after{display:none;;}
body[data-page=home] .recruiter-card::before,body[data-page=home] .skill-group::before{transform:none!important;;}}
section.section,.about-me,.recruiter-snapshot,.route,.skill-strip,.wrap.intro{padding-block:clamp(38px,4.5vw,64px)!important;;}
.certificate-section{margin-top:36px;;padding-top:36px!important;;padding-bottom:0!important;;}
body[data-page=home] .hero{min-height:0;;padding-block:clamp(36px,4vw,56px);;}
body[data-page=home] .hero-photo{width:min(100%,380px);;}
body[data-page=home] .about-me-layout{gap:36px;;}
body[data-page=home] .recruiter-head,body[data-page=home] .section-title,body[data-page=home] .route-head{margin-bottom:24px;;}
body[data-page=home] .recruiter-snapshot .recruiter-card,body[data-page=home] .skill-strip .skill-group{padding:24px;;min-height:0;;}
body[data-page=home] .recruiter-card::before,body[data-page=home] .skill-group::before{margin-bottom:14px;;}
body[data-page=home] .recruiter-card>*:first-child,body[data-page=home] .skill-group h3{margin-bottom:10px;;}
body[data-page=home] .skill-groups{margin-top:20px;;}
.quote{padding-block:48px;;}
body[data-page=home] #contact .contact{padding-block:clamp(40px,4.5vw,64px);;}
.chapter-nav{padding-block:32px;;}
.p-hero{padding-block:clamp(36px,4.5vw,64px);;}
@media (max-width:760px){section.section,.about-me,.recruiter-snapshot,.route,.skill-strip,.wrap.intro{padding-block:36px!important;;}
.certificate-section{margin-top:28px;;padding-top:28px!important;;padding-bottom:0!important;;}
body[data-page=home] .hero{gap:28px;;padding-block:36px;;}
body[data-page=home] .hero-photo{width:min(100%,330px);;}
body[data-page=home] .about-me-layout{gap:20px;;}
body[data-page=home] .recruiter-snapshot .recruiter-card,body[data-page=home] .skill-strip .skill-group{padding:22px;;}
.quote{padding-block:36px;;}
body[data-page=home] #contact .contact{padding-block:40px;;}}
.oleosen-facts{padding:clamp(42px,6vw,92px) 0;;background:#edf2ef;;color:#102c32;;}
.oleosen-facts .wrap{max-width:1100px;;margin:auto;;padding:0 24px;;}
.oleosen-facts h2{font-size:clamp(26px,3vw,42px);;line-height:1.13;;margin:14px 0 18px;;}
.oleosen-facts h3{font-size:22px;;margin:35px 0 12px;;}
.oleosen-facts p{line-height:1.7;;max-width:850px;;}
.oleosen-facts li{margin:8px 0;;line-height:1.65;;}
.oleosen-facts-grid{display:grid;;grid-template-columns:repeat(4,minmax(0,1fr));;gap:12px;;margin:26px 0;;}
.oleosen-facts-grid div{border:1px solid #cbd9d4;;border-radius:14px;;padding:20px;;background:#fff;;display:flex;;flex-direction:column;;gap:7px;;}
.oleosen-facts-grid strong{font-size:clamp(22px,2.5vw,32px);;font-variant-numeric:tabular-nums;;}
.oleosen-facts-grid span{font-size:13px;;opacity:.8;;}
.oleosen-source{font-size:13px;;opacity:.85;;margin-top:22px;;}
.oleosen-source a{color:#176c65;;text-decoration:underline;;}
@media (max-width:690px){.oleosen-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));;}}
.language-switch{display:inline-flex;;align-items:center;;gap:3px;;border-radius:999px;;padding:3px;;margin-left:8px;;white-space:nowrap;;}
.language-switch a{font:700 12px Arial,sans-serif!important;;padding:6px 9px;;border-radius:999px;;color:inherit;;text-decoration:none!important;;}
.language-switch a[aria-current="page"]{background:#c8db88;;color:#102c32!important;;}
.language-switch a:focus-visible{outline:2px solid #24796e;;outline-offset:2px;;}
#projets .p-card .p-lead{line-height:1.72;;max-width:70ch;;}
#projets .p-card details[open]{margin-top:20px;;}
#projets .p-card summary{font-size:13px;;letter-spacing:.015em;;padding:4px 0;;}
#projets .p-detail{font-size:14px;;line-height:1.82;;padding-top:18px;;}
#projets .p-detail h4{font-size:13px;;text-transform:uppercase;;letter-spacing:.1em;;color:#24796e;;margin:0 0 14px;;}
#projets .p-detail p{margin:0 0 15px;;}
#projets .p-detail-outcome{padding:15px 18px;;border-left:3px solid #24796e;;background:#e9f1eb;;border-radius:0 10px 10px 0;;margin-top:18px;;color:#183b34;;}
@media (max-width:760px){#projets .p-detail{font-size:13px;;}
#projets .p-detail-outcome{padding:12px 14px;;}}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell{box-shadow:0 1px 0 rgba(16,44,50,.09);;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav{height:62px;;min-height:62px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.links{gap:22px;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.links a{font-size:13px;;font-weight:650;;transition:color .2s ease;;white-space:nowrap;;}
:is(#home,#maroc,#senegal,#quebec,#projets) .site-header-shell .nav>.links a:hover{color:var(--teal);;}
#home .place{display:flex;;flex-direction:column;;justify-content:space-between;;border:1px solid rgba(36,121,110,.22);;border-radius:18px;;overflow:hidden;;cursor:pointer;;position:relative;;transition:transform .3s cubic-bezier(.2,.7,.25,1),box-shadow .3s,border-color .3s;;}
#home .place:hover{transform:translateY(-6px);;border-color:var(--teal);;box-shadow:0 18px 40px rgba(16,44,50,.16);;}
#home .place:focus-visible{outline:3px solid var(--teal);;outline-offset:4px;;}
#home .place-more{display:inline-flex;;align-items:center;;justify-content:space-between;;gap:18px;;padding:11px 14px;;border-radius:999px;;border:1px solid rgba(36,121,110,.38);;background:var(--dark);;color:#fff!important;;font-size:13px;;font-weight:700;;text-decoration:none;;letter-spacing:0;;transition:background .2s,transform .2s;;}
#home .place-arrow{display:inline-grid;;place-items:center;;width:26px;;height:26px;;border-radius:50%;;background:var(--lime);;color:var(--dark);;font-size:17px;;line-height:1;;transition:transform .2s;;}
#home .place:hover .place-more,#home .place:focus-visible .place-more{background:var(--teal);;}
#home .place:hover .place-arrow,#home .place:focus-visible .place-arrow{transform:translate(2px,-2px);;}
@media (max-width:760px){#home .place-more{width:fit-content;;font-size:12px;;padding:9px 12px;;}
#home .place-arrow{width:24px;;height:24px;;}}
@media (prefers-reduced-motion:reduce){#home .place,#home .place-more,#home .place-arrow{transition:none;;}}
#travail .terrain-heading{max-width:850px;;margin:0 0 28px;;}
#travail .terrain-heading h2{margin:8px 0 15px;;}
#travail .terrain-intro{max-width:760px;;color:var(--muted);;line-height:1.75;;font-size:clamp(15px,1.5vw,18px);;margin:0;;}
#travail .employers{margin-bottom:30px;;}
#travail .terrain-essay{max-width:980px;;margin:0 auto;;padding:clamp(24px,3.8vw,52px);;border-radius:22px;;border:1px solid var(--line);;background:var(--white);;box-shadow:0 14px 40px rgba(19,42,38,.035);;}
#travail .terrain-paragraph{padding:0 0 21px;;margin-bottom:23px;;border-bottom:1px solid var(--line);;}
#travail .terrain-paragraph:last-of-type{border-bottom:0;;margin-bottom:0;;padding-bottom:0;;}
#travail .terrain-paragraph h3{font:500 clamp(21px,2vw,27px)/1.25 Georgia,"Times New Roman",serif;;letter-spacing:-.01em;;margin:0 0 10px;;color:var(--ink);;}
#travail .terrain-paragraph p{font-size:clamp(15px,1.3vw,17px);;line-height:1.86;;color:var(--ink);;opacity:.87;;margin:0;;max-width:83ch;;}
#travail .terrain-footer{background:rgba(29,117,104,.07);;border:1px solid rgba(29,117,104,.17);;border-radius:15px;;padding:clamp(18px,2.5vw,26px);;margin-top:29px;;}
#travail .terrain-footer p{margin:0 0 16px;;line-height:1.7;;color:var(--ink);;}
#travail .terrain-link{display:inline-flex;;align-items:center;;justify-content:center;;min-height:44px;;padding:12px 22px;;background:#176f65;;color:#fff!important;;font-weight:700;;border-radius:999px;;text-decoration:none;;transition:transform .2s,background .2s;;}
#travail .terrain-link:hover{background:#10564e;;transform:translateY(-2px);;}
#projets .project-photo{margin:18px 0 7px;;border:1px solid #e2e7df;;border-radius:13px;;overflow:hidden;;background:#f6f7f2;;}
#projets .project-photo img{width:100%;;max-height:260px;;object-fit:contain;;display:block;;margin:auto;;}
#projets .project-photo figcaption{padding:8px 12px;;font-size:11px;;color:#5f7068;;border-top:1px solid #e2e7df;;}
@media (max-width:700px){#travail .terrain-essay{padding:22px 18px;;}
#travail .terrain-paragraph{margin-bottom:20px;;padding-bottom:19px;;}}
html[lang="en"] body[data-page="home"] .hero h1{font-size:clamp(45px,5.6vw,80px);;}
@media (max-width:520px){html[lang="en"] body[data-page="home"] .hero h1{font-size:clamp(40px,9.5vw,55px);;}}
#apprendre .two-col{grid-template-columns:repeat(2,minmax(0,1fr));;gap:clamp(16px,3vw,36px);;}
#apprendre .two-col > .plain-card{min-width:0;;max-width:100%;;box-sizing:border-box;;overflow-wrap:break-word;;word-break:normal;;padding:clamp(20px,2.4vw,30px);;}
#apprendre .two-col > .plain-card h3{font-size:clamp(22px,2.35vw,31px);;line-height:1.17;;max-width:100%;;overflow-wrap:break-word;;hyphens:auto;;text-wrap:pretty;;}
#apprendre .two-col > .plain-card p{font-size:clamp(13px,1.2vw,15px);;line-height:1.65;;overflow-wrap:break-word;;}
@media (max-width:820px){#apprendre .two-col{grid-template-columns:1fr;;gap:16px;;}}
body[data-page=home] .recruiter-grid{align-items:stretch;;}
body[data-page=home] .recruiter-snapshot .recruiter-card{padding:18px 20px!important;;border-radius:12px!important;;box-shadow:none!important;;display:flex;;flex-direction:column;;justify-content:flex-start;;}
body[data-page=home] .recruiter-card::before{display:none!important;;}
body[data-page=home] .recruiter-card>*:first-child{font-family:Arial,sans-serif!important;;font-size:15px!important;;font-weight:750!important;;line-height:1.35!important;;letter-spacing:-.005em!important;;color:#183b39!important;;margin:0 0 8px!important;;}
body[data-page=home] .recruiter-card p{font-size:13px!important;;line-height:1.56!important;;margin:0!important;;color:#405653!important;;}
body[data-page=home] .recruiter-head{margin-bottom:18px;;}
body[data-page=home] .recruiter-snapshot{padding-block:38px!important;;}
@media (max-width:900px){body[data-page=home] .recruiter-grid{grid-template-columns:repeat(2,minmax(0,1fr));;gap:12px;;}}
@media (max-width:540px){body[data-page=home] .recruiter-grid{grid-template-columns:1fr;;gap:10px;;}
body[data-page=home] .recruiter-snapshot .recruiter-card{padding:16px!important;;}
body[data-page=home] .recruiter-snapshot{padding-block:28px!important;;}}
body[data-page=home] .recruiter-grid{grid-template-columns:repeat(2,minmax(0,1fr));;gap:12px;;}
body[data-page=home] .recruiter-snapshot .recruiter-card{min-height:0;;height:auto;;}
@media (max-width:620px){body[data-page=home] .recruiter-grid{grid-template-columns:1fr;;gap:10px;;}
body[data-page=home] .recruiter-snapshot .recruiter-card{padding:16px 18px!important;;}}
:root{--space-xs:8px;;--space-sm:16px;;--space-md:24px;;--space-lg:42px;;--radius-card:16px;;}
html{scroll-padding-top:72px;;}
body{overflow-x:clip;;}
main{min-width:0;;}
.proof-grid{grid-template-columns:repeat(3,minmax(0,1fr));;}
.recruiter-card,.skill-group,.plain-card,.place,.p-card{min-width:0;;overflow-wrap:break-word;;}
.recruiter-grid{align-items:stretch;;}
#home .about-me{padding-block:clamp(40px,5vw,74px);;}
#home .recruiter-snapshot{padding-block:clamp(24px,3.4vw,38px);;}
#home .recruiter-head{margin-bottom:16px;;}
#home .recruiter-card{padding:18px 20px;;border-radius:12px;;}
#home .recruiter-card p{line-height:1.6;;}
#home #parcours,#home #travail,#home #apprendre{scroll-margin-top:82px;;}
#home .route-head h2{max-width:23ch;;}
#home .place{isolation:isolate;;min-width:0;;}
#home .place:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #24796e;;outline-offset:3px;;}
#home .place-more{flex-wrap:wrap;;}
#home .terrain-essay{max-width:980px;;}
#home .skill-strip{padding-block:clamp(38px,4.8vw,70px);;}
#apprendre .plain-card{overflow:hidden;;min-width:0;;}
#apprendre .plain-card h3{overflow-wrap:anywhere;;}
#home .certificate-section{scroll-margin-top:76px;;}
.case-link{display:inline-flex;;white-space:normal;;align-items:center;;color:#176e62;;text-decoration-thickness:1px;;text-underline-offset:3px;;margin-left:5px;;font-size:13px;;font-weight:700;;}
.case-link:hover{text-decoration:none;;}
.p-card{scroll-margin-top:95px;;}
.p-card:target{box-shadow:0 0 0 3px #a6c99175,0 20px 50px #102c3214;;}
.mission-editorial{display:grid;;gap:22px;;margin:15px auto 30px;;max-width:1100px;;}
.mission-facts{display:grid;;grid-template-columns:repeat(4,minmax(0,1fr));;gap:12px;;}
.mission-facts>div{padding:23px 18px;;border:1px solid #d6ded5;;background:#f9faf5;;border-radius:15px;;display:flex;;flex-direction:column;;gap:7px;;}
.mission-facts strong{font:500 clamp(22px,2.4vw,32px)/1.14 Georgia,serif;;color:#173d38;;}
.mission-facts span{font-size:12px;;color:#5c706a;;}
.mission-block{background:#fffdf8;;border:1px solid #d6ded5;;padding:clamp(24px,3vw,40px);;border-radius:18px;;max-width:100%;;}
.mission-index{display:block;;text-transform:uppercase;;font-size:11px;;font-weight:800;;letter-spacing:.14em;;color:#24796e;;margin-bottom:10px;;}
.mission-block h2{font:500 clamp(27px,3vw,36px)/1.19 Georgia,serif;;letter-spacing:-.018em;;margin:0 0 15px;;}
.mission-block p{font-size:15px;;line-height:1.84;;color:#405752;;margin:0 0 12px;;max-width:85ch;;}
.mission-block p:last-child{margin-bottom:0;;}
.mission-outcome{background:#e5eee5;;border-color:#bdcfb8;;}
.mission-cta{display:inline-flex;;align-items:center;;gap:10px;;background:#154b45;;color:#fff;;text-decoration:none;;font-weight:700;;font-size:13px;;padding:13px 18px;;margin-top:13px;;border-radius:100px;;min-height:44px;;}
.mission-cta:hover{background:#24796e;;}
.mission-source{font-size:12px;;color:#62746e;;line-height:1.6;;margin:0 0 8px;;}
.mission-source a{color:#176e62;;text-decoration-thickness:1px;;text-underline-offset:3px;;}
@media (max-width:850px){.mission-facts{grid-template-columns:repeat(2,minmax(0,1fr));;}
.hero-links{gap:12px;;}
.proof-grid{grid-template-columns:repeat(3,minmax(0,1fr));;}}
@media (max-width:600px){.mission-facts{grid-template-columns:repeat(2,minmax(0,1fr));;gap:8px;;}
.mission-facts>div{padding:14px 12px;;}
.mission-facts strong{font-size:19px;;}
.mission-block{padding:22px 19px;;}
.mission-block h2{font-size:27px;;}
.proof-grid{grid-template-columns:1fr;;gap:8px;;}
.hero-copy{overflow-wrap:anywhere;;}
.hero h1{max-width:100%;;}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;;}
*{scroll-behavior:auto;;}}
.error-page{min-height:100vh;;background:#102c32;;color:#f4f5ed;;font-family:Arial,sans-serif;;display:flex;;flex-direction:column;;}
.error-shell{width:min(1050px,calc(100% - 40px));;margin:0 auto;;flex:1;;display:flex;;flex-direction:column;;}
.error-nav{display:flex;;align-items:center;;justify-content:space-between;;gap:18px;;padding:25px 0 18px;;border-bottom:1px solid #416368;;font-size:12px;;letter-spacing:.09em;;}
.error-logo{text-decoration:none;;color:#fff;;font-weight:800;;}
.error-logo span{color:#c8db88;;}
.error-status{display:inline-flex;;align-items:center;;gap:10px;;color:#eed49b;;font-size:12px;;letter-spacing:.1em;;font-weight:700;;}
.error-dot{height:9px;;width:9px;;background:#f1c275;;border-radius:50%;;box-shadow:0 0 0 5px #f1c27522;;animation:error-pulse 2.2s ease-in-out infinite;;}
.error-main{flex:1;;display:grid;;grid-template-columns:.9fr 1.1fr;;align-items:center;;gap:clamp(28px,5vw,80px);;padding:65px 0;;}
.error-eyebrow{color:#c8db88;;font-size:12px;;letter-spacing:.19em;;text-transform:uppercase;;font-weight:700;;}
.error-main h1{font:500 clamp(64px,12vw,150px)/.95 Georgia,serif;;letter-spacing:-.08em;;margin:19px 0;;color:#faf8ef;;}
.error-main h2{font:500 clamp(30px,4vw,48px)/1.08 Georgia,serif;;margin:0 0 18px;;}
.error-main p{color:#c0d3cf;;line-height:1.8;;max-width:45ch;;}
.error-actions{display:flex;;gap:12px;;flex-wrap:wrap;;margin-top:26px;;}
.error-actions a{min-height:46px;;display:inline-flex;;align-items:center;;gap:8px;;border-radius:100px;;padding:12px 21px;;font-size:13px;;font-weight:700;;text-decoration:none;;border:1px solid #91aea5;;color:#eff8ee;;}
.error-actions a:first-child{background:#d6e79e;;color:#132e2c;;border-color:#d6e79e;;}
.error-actions a:hover{transform:translateY(-2px);;border-color:#d6e79e;;}
.error-visual{background:linear-gradient(145deg,#163b3f,#0c242a);;border:1px solid #42686a;;border-radius:24px;;min-height:420px;;padding:27px;;display:flex;;flex-direction:column;;box-shadow:0 25px 80px #06171c77;;overflow:hidden;;}
.error-screen-top{display:flex;;justify-content:space-between;;font-size:11px;;color:#a4c8b9;;letter-spacing:.14em;;}
.error-grid{flex:1;;display:grid;;place-items:center;;position:relative;;margin:22px 0;;border:1px solid #31565a;;border-radius:12px;;background-image:linear-gradient(#34575b55 1px,transparent 1px),linear-gradient(90deg,#34575b55 1px,transparent 1px);;background-size:27px 27px;;}
.error-grid svg{width:90%;;max-width:440px;;overflow:visible;;}
.error-signal{stroke-dasharray:500;;stroke-dashoffset:500;;animation:error-trace 2.6s ease forwards;;}
.error-node{animation:error-pulse 2.2s ease-in-out infinite;;}
.error-terminal{font-family:monospace;;color:#b4dfb3;;font-size:12px;;line-height:1.8;;}
.error-footer{border-top:1px solid #416368;;padding:19px 0 27px;;display:flex;;gap:10px;;justify-content:space-between;;color:#aac3bf;;font-size:11px;;}
.error-en{display:none;;}
.error-lang-en .error-fr{display:none;;}
.error-lang-en .error-en{display:initial;;}
@keyframes error-trace{to{stroke-dashoffset:0}}
@keyframes error-pulse{50%{opacity:.35;transform:scale(.92)}}
@media (max-width:760px){.error-main{grid-template-columns:1fr;;padding:36px 0;;}
.error-visual{min-height:280px;;padding:18px;;}
.error-main h1{font-size:94px;;}
.error-footer{flex-wrap:wrap;;}}
@media (prefers-reduced-motion:reduce){.error-dot,.error-node,.error-signal{animation:none;;stroke-dashoffset:0;;}}

/* 404 bilingual actions, with CSP-compatible external language detection */
.error-page:not(.error-lang-en) .error-actions .error-en{display:none}
.error-page.error-lang-en .error-actions .error-fr{display:none}
.error-page.error-lang-en .error-fr{display:none}
.error-page.error-lang-en .error-en{display:initial}
.error-page.error-lang-en .error-actions .error-en{display:inline-flex}

/* Compact editorial skills cards: natural heights instead of empty equal-height rows */
@media (min-width:901px){.skill-strip .skill-groups{display:block;columns:3;column-gap:18px}.skill-strip .skill-group{display:inline-block;width:100%;break-inside:avoid;margin:0 0 18px;vertical-align:top}}
@media (min-width:601px) and (max-width:900px){.skill-strip .skill-groups{display:block;columns:2;column-gap:16px}.skill-strip .skill-group{display:inline-block;width:100%;break-inside:avoid;margin:0 0 16px;vertical-align:top}}
@media (max-width:600px){.skill-strip .skill-groups{display:block;columns:1}.skill-strip .skill-group{display:inline-block;width:100%;break-inside:avoid;margin:0 0 14px}}
