@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');:root{--bg:#0b1220;--surface:#111c2d;--surface2:#152236;--text:#f3f7fc;--muted:#a6b5c8;--line:#29394e;--mint:#5de2ce;--blue:#91a8ff;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:4px}.wrap{width:min(var(--max),calc(100% - 48px));margin:auto}.skip{position:absolute;top:-100px;left:20px;z-index:200;background:var(--mint);color:#08121b;padding:12px}.skip:focus{top:12px}.progress{position:fixed;top:0;left:0;height:3px;background:var(--mint);width:0;z-index:110}.header{position:sticky;top:0;z-index:100;background:rgba(11,18,32,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.06)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-family:'Space Grotesk',sans-serif;font-weight:700;letter-spacing:-.03em}.brand-mark{display:grid;place-items:center;width:42px;height:42px;background:#18283a;border:1px solid #34556a;border-radius:12px;color:var(--mint);font-size:18px}.brand-mark span{color:var(--text)}.nav-links{display:flex;align-items:center;gap:27px}.nav-links>a{font-size:13px;color:#c8d4e1;transition:color .2s}.nav-links>a:hover{color:var(--mint)}.nav-links .nav-cta{border:1px solid #48637b;border-radius:9px;padding:9px 15px;color:var(--text)}.menu-toggle{display:none}.section{padding:110px 0}.hero{position:relative;overflow:hidden;min-height:calc(100svh - 76px);padding:90px 0 25px;display:flex;flex-direction:column;justify-content:center}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:50px;position:relative;z-index:2}.orb{position:absolute;filter:blur(100px);border-radius:50%;pointer-events:none}.orb-one{width:450px;height:450px;background:rgba(55,119,145,.15);top:0;right:2%}.orb-two{width:320px;height:320px;background:rgba(99,108,209,.12);bottom:0;left:10%}.eyebrow,.kicker{font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--mint);text-transform:uppercase}.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid #34526a;border-radius:100px;background:#132236}.pulse{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 5px rgba(93,226,206,.12)}.intro{font-size:20px;margin:30px 0 6px;color:#c7d6e4}.intro span{color:var(--mint)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Space Grotesk',sans-serif;line-height:1.13;letter-spacing:-.055em}h1{font-size:clamp(46px,5.4vw,78px);margin-bottom:26px;max-width:780px}h1 em{font-style:normal;color:var(--mint)}.hero-description{max-width:565px;color:var(--muted);font-size:16px;line-height:1.85}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;border-radius:11px;padding:13px 19px;font-weight:700;font-size:13px;transition:transform .25s,background .25s,border-color .25s}.btn:hover{transform:translateY(-3px)}.primary{background:var(--mint);color:#09202a}.primary:hover{background:#8df4e4}.secondary{border:1px solid #45566c;background:#152237;color:#f4f7fc}.secondary:hover{border-color:var(--mint)}.hero-meta{display:flex;gap:25px;flex-wrap:wrap;color:#8195ac;font-size:12px;margin-top:38px}.hero-art{position:relative;min-height:450px;display:grid;place-items:center}.art-glow{position:absolute;width:340px;height:340px;border-radius:50%;background:#366c7b;filter:blur(115px);opacity:.4}.panel{position:relative;background:linear-gradient(140deg,#1a2a3e,#0d1829);border:1px solid #3a5468;box-shadow:0 30px 80px #0007}.panel-main{width:100%;max-width:460px;border-radius:18px;padding:24px;transform:rotate(-3deg);transition:transform .5s}.panel-main:hover{transform:rotate(0)}.panel-top,.panel-title,.panel-bottom{display:flex;justify-content:space-between;align-items:center}.panel-top{font-size:9px;color:#8399ae;letter-spacing:.13em;border-bottom:1px solid #34485d;padding-bottom:16px}.panel-dots{display:flex;gap:5px}.panel-dots i{width:7px;height:7px;background:#52677e;border-radius:50%}.panel-dots i:first-child{background:var(--mint)}.panel-title{font-size:12px;font-weight:700;letter-spacing:.12em;margin:26px 0}.live{font-size:9px;color:var(--mint)}.signal{border:1px solid #34465c;border-radius:9px;padding:12px;background:#0e1b2d}.signal>span{font-size:9px;color:#7e95ab;letter-spacing:.12em}.signal svg{width:100%;height:auto;margin-top:10px;background:repeating-linear-gradient(0deg,transparent,transparent 25px,#23354a 26px),repeating-linear-gradient(90deg,transparent,transparent 39px,#23354a 40px)}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.mini-grid>div{position:relative;border:1px solid #33465c;border-radius:8px;padding:14px 10px;background:#15263a}.mini-grid small{display:block;font-size:8px;letter-spacing:.13em;color:#8399ad}.mini-grid strong{font-family:'Space Grotesk',sans-serif;font-size:16px}.tiny-dot{position:absolute;right:10px;bottom:16px;width:5px;height:5px;background:var(--mint);border-radius:50%}.panel-bottom{border-top:1px solid #34465c;margin-top:20px;padding-top:16px;font-size:9px;letter-spacing:.1em;color:#7e95ab}.panel-bottom span{font-size:18px;color:var(--mint)}.float-tag{position:absolute;z-index:2;background:#192d3f;border:1px solid #47717d;border-radius:9px;color:var(--mint);padding:11px 14px;font-size:10px;font-weight:700;letter-spacing:.08em;box-shadow:0 12px 30px #0005}.tag-one{right:-15px;top:55px}.tag-two{left:-10px;bottom:48px}.hero-bottom{display:flex;justify-content:space-between;align-items:center;color:#7990a6;font-size:10px;letter-spacing:.12em;margin-top:auto;padding-top:48px}.hero-bottom a:hover{color:var(--mint)}.two-col{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px}.section-lead h2,.section-heading h2{font-size:clamp(36px,4vw,57px);margin:16px 0 0}.section-lead h2 span,.section-heading h2 span,.contact h2 span{color:var(--mint)}.about{border-top:1px solid var(--line);background:#0d1726}.about-text p{color:#b4c3d3;font-size:16px;line-height:1.9}.about-text strong{color:var(--text)}.about-tags,.chips{display:flex;flex-wrap:wrap;gap:8px}.about-tags{margin-top:25px}.about-tags span,.chips span{font-size:11px;color:#a7c2d1;background:#1b2a3d;border:1px solid #31465a;padding:5px 10px;border-radius:6px}.projects{background:#0b1220}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:35px}.section-heading>p{max-width:360px;color:var(--muted);font-size:14px;margin:0}.filters{display:flex;gap:9px;margin-bottom:25px;flex-wrap:wrap}.filter{cursor:pointer;background:transparent;color:#a5b7c8;border:1px solid #324359;border-radius:8px;padding:9px 15px;font-size:12px}.filter:hover,.filter.active{color:#09202a;background:var(--mint);border-color:var(--mint)}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project-card{background:#111c2d;border:1px solid #273a4d;border-radius:15px;overflow:hidden;transition:transform .3s,border-color .3s}.project-card:hover{transform:translateY(-5px);border-color:#537b8b}.project-card[hidden]{display:none}.project-visual{height:235px;position:relative;overflow:hidden;padding:20px;display:flex;flex-direction:column;justify-content:space-between}.visual-ocp{background:radial-gradient(circle at 80% 15%,#366c73 0,transparent 42%),linear-gradient(135deg,#173e46,#101c2d)}.visual-ajp{background:radial-gradient(circle at 80% 15%,#5867a5 0,transparent 42%),linear-gradient(135deg,#283b63,#101c2d)}.visual-vfd{background:radial-gradient(circle at 80% 15%,#93694e 0,transparent 42%),linear-gradient(135deg,#4c342a,#101c2d)}.visual-mppt{background:radial-gradient(circle at 80% 15%,#527d63 0,transparent 42%),linear-gradient(135deg,#214737,#101c2d)}.visual-grid{position:absolute;inset:0;opacity:.23;background-image:linear-gradient(#b8d4e5 1px,transparent 1px),linear-gradient(90deg,#b8d4e5 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(90deg,transparent,#000)}.visual-label,.visual-foot{position:relative;font-size:10px;letter-spacing:.16em;color:#d0e1e8}.visual-center{position:relative;align-self:center;font-family:'Space Grotesk',sans-serif;font-size:75px;font-weight:700;letter-spacing:-.08em;line-height:1;color:#f2fcff;text-shadow:0 8px 40px #0005}.visual-center span{color:var(--mint);font-size:36px;vertical-align:top;margin-left:10px}.project-content{padding:26px}.project-type{color:var(--mint);font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:9px}.project-content h3{font-size:25px;letter-spacing:-.04em;margin-bottom:12px}.project-content p{font-size:14px;color:var(--muted);min-height:70px}.project-more{border:0;border-top:1px solid #2d4054;background:transparent;color:var(--text);width:100%;text-align:left;padding:19px 0 0;margin-top:22px;cursor:pointer;display:flex;justify-content:space-between;font-size:13px;font-weight:700}.project-more:hover{color:var(--mint)}.experience,.education{background:#0d1726;border-block:1px solid var(--line)}.timeline{margin-top:55px}.timeline-item{display:grid;grid-template-columns:160px 22px 1fr;gap:24px;position:relative;padding-bottom:42px}.timeline-item:before{content:'';position:absolute;left:194px;top:14px;bottom:-2px;width:1px;background:#30465b}.timeline-item:last-child:before{display:none}.timeline-date{color:var(--mint);font-size:11px;letter-spacing:.1em;padding-top:6px}.timeline-dot{width:11px;height:11px;border-radius:50%;background:var(--mint);margin:7px auto 0;z-index:1;box-shadow:0 0 0 5px #173344}.timeline-body{padding-bottom:20px;border-bottom:1px solid #26394c}.role-top{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.role-top h3{font-size:23px;margin:0 0 10px}.role-top>span{font-size:12px;color:#93a9bb;white-space:nowrap}.timeline-body p{font-size:14px;color:var(--muted);max-width:750px}.skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.skill-card{background:#111c2d;border:1px solid #293d50;border-radius:13px;padding:29px}.skill-icon{display:grid;place-items:center;background:#1b3640;border:1px solid #35636c;color:var(--mint);border-radius:10px;width:45px;height:45px;font-size:24px;margin-bottom:26px}.skill-card h3{font-size:23px;margin-bottom:10px}.skill-card p{font-size:13px;color:var(--muted);min-height:40px}.education-note{color:var(--muted);font-size:13px;margin-top:35px;max-width:350px}.education-item{padding:0 0 24px;margin-bottom:26px;border-bottom:1px solid #2a3d50}.education-item:last-child{border:0;margin:0}.education-item span{font-size:11px;color:var(--mint);letter-spacing:.12em}.education-item h3{font-size:21px;margin:9px 0}.education-item p{color:var(--muted);font-size:13px;margin:0}.contact{text-align:center;background:radial-gradient(ellipse at 50% 90%,#153d43,#0b1220 65%);border-bottom:1px solid var(--line)}.contact-inner{max-width:760px}.contact h2{font-size:clamp(48px,7vw,92px);margin:18px 0 25px}.contact p{max-width:550px;margin:auto;color:var(--muted)}.contact-actions{justify-content:center}.email{display:inline-block;margin-top:36px;color:var(--mint);font-size:14px;border-bottom:1px solid #407d7d}.footer-inner{min-height:90px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:11px;color:#8197aa}.footer a:hover{color:var(--mint)}.project-dialog{border:1px solid #446075;background:#111e30;color:var(--text);border-radius:18px;max-width:680px;width:calc(100% - 32px);max-height:85vh;padding:0;box-shadow:0 35px 100px #000b}.project-dialog::backdrop{background:rgba(3,9,17,.83);backdrop-filter:blur(6px)}.dialog-inner{padding:36px;position:relative}.dialog-close{position:absolute;right:22px;top:20px;cursor:pointer;border:1px solid #43576a;background:#1b2c3e;color:var(--text);border-radius:8px;width:36px;height:36px}.dialog-inner h2{font-size:clamp(28px,4vw,42px);margin:20px 25px 16px 0}.dialog-inner p,.dialog-inner li{color:#b7c6d5;font-size:14px;line-height:1.8}.dialog-inner h3{font-size:18px;margin-top:28px}.dialog-inner li{margin-bottom:8px}.dialog-note{border-top:1px solid #32465a;padding-top:20px;margin-top:24px;font-size:12px!important}.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media(max-width:900px){.nav-links{gap:15px}.nav-links>a{font-size:12px}.hero-grid{gap:22px}.hero-art{min-height:380px}.panel-main{padding:17px}.float-tag{display:none}.two-col{gap:35px}.role-top{display:block}.role-top>span{display:block;margin-bottom:12px}}@media(max-width:700px){.wrap{width:min(var(--max),calc(100% - 36px))}.section{padding:75px 0}.nav{height:68px}.brand{font-size:14px}.menu-toggle{display:flex;flex-direction:column;gap:5px;border:1px solid #42576c;border-radius:8px;background:#152337;padding:10px;cursor:pointer}.menu-toggle span{width:20px;height:2px;background:var(--text)}.nav-links{position:absolute;top:68px;left:0;right:0;background:#101c2d;border-bottom:1px solid #34465a;display:none;flex-direction:column;align-items:stretch;padding:16px 24px 24px;gap:0}.nav-links.open{display:flex}.nav-links a{padding:11px 0;font-size:14px}.nav-links .nav-cta{padding:11px 13px;margin-top:7px}.hero{padding:60px 0 20px;min-height:auto}.hero-grid,.two-col{grid-template-columns:1fr}.hero-art{min-height:340px}.panel-main{max-width:380px}.hero-bottom{padding-top:15px}.hero-meta{gap:10px}.section-heading{display:block}.section-heading>p{margin-top:18px}.project-grid,.skill-grid{grid-template-columns:1fr}.timeline-item{grid-template-columns:90px 15px 1fr;gap:10px}.timeline-item:before{left:107px}.timeline-date{font-size:9px}.role-top h3{font-size:19px}.timeline-body p{font-size:13px}.footer-inner{flex-direction:column;justify-content:center;padding:22px 0}.dialog-inner{padding:26px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* ELECTRIC DESIGN — self-hosted, no external fonts or CDN dependencies */
:root{--bg:#06101d;--surface:#0c1b2d;--surface-2:#10253b;--text:#f5f9ff;--muted:#b3c5d9;--accent:#31b9ff;--accent-2:#087edc;--border:rgba(76,179,255,.23)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}a{color:inherit}button{font:inherit}.wrap{width:min(1450px,calc(100% - 88px));margin-inline:auto}.section{scroll-margin-top:86px}.header{background:rgba(4,13,25,.9);border-bottom:1px solid rgba(98,188,255,.13);backdrop-filter:blur(18px);position:sticky;top:0;z-index:80}.nav{min-height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none}.brand-mark{font-size:37px;letter-spacing:-.16em;padding-right:9px;font-weight:900;line-height:1;color:white}.brand-name{font-size:15px;letter-spacing:.13em;font-weight:800;line-height:1.35}.brand-name small{display:block;font-size:9px;letter-spacing:.33em;font-weight:500;color:#9fb8cf;margin-top:3px}.nav-links{display:flex;align-items:center;gap:clamp(12px,2.1vw,34px)}.nav-links a{font-size:12px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:#d6e7f6;white-space:nowrap}.nav-links a:hover{color:#39c5ff}.nav-links .nav-download{border:1px solid #36bdff;border-radius:100px;padding:13px 19px;letter-spacing:0;text-transform:none;font-size:13px}.nav-links .nav-cta{border:0;background:none;padding:0}.progress{background:#28b9ff}.hero{position:relative;isolation:isolate;overflow:hidden;min-height:auto;padding:0 0 20px!important;background:radial-gradient(ellipse at 72% 36%,#0c3762 0%,#07182c 43%,#050e19 84%)}.hero-backdrop{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#06101b 3%,rgba(6,16,27,.85) 42%,rgba(6,16,27,.28) 80%),url('assets/ingenierie-electrique.png') center 37%/cover no-repeat;opacity:.35}.hero-shell{min-height:590px;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr) 195px;align-items:center;position:relative;gap:20px}.hero-copy{position:relative;z-index:3;padding:55px 0}.hero .eyebrow{color:#79c9ff;font-size:11px;letter-spacing:.31em;font-weight:700;margin-bottom:26px}.hero .intro{font-size:17px;color:#d8e9f6;margin:0 0 16px}.hero h1{font-size:clamp(39px,4.2vw,72px);line-height:1.09;letter-spacing:-.045em;max-width:770px;margin:0 0 22px;font-weight:830}.hero h1 em{font-style:normal;color:#36bdff}.hero-description{max-width:590px;font-size:clamp(16px,1.35vw,19px);line-height:1.7;color:#c4d4e5}.hero .actions{margin-top:28px;display:flex;gap:13px;flex-wrap:wrap}.btn{border-radius:100px!important;padding:15px 24px!important;display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;font-weight:650}.btn.primary{background:linear-gradient(110deg,#39c5ff,#079de8)!important;color:#001322!important;border:1px solid #4acbff!important;box-shadow:0 9px 34px rgba(0,150,255,.24)}.btn.secondary{background:rgba(4,15,28,.62)!important;border:1px solid #37baff!important;color:white!important}.hero-meta{display:flex;gap:22px;flex-wrap:wrap;margin-top:32px;color:#a9c3d9;font-size:13px}.hero-person{height:590px;align-self:end;position:relative;min-width:0;display:flex;align-items:end;justify-content:center}.hero-person img{width:100%;height:96%;object-fit:cover;object-position:center top;border-radius:240px 240px 14px 14px;filter:drop-shadow(0 10px 35px rgba(0,0,0,.4));mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%)}.portrait-ring{position:absolute;width:86%;aspect-ratio:1;border:2px solid #16aaff;border-radius:50%;top:12%;box-shadow:0 0 45px #00a6ff55,inset 0 0 32px #00a6ff22}.portrait-label{position:absolute;bottom:33px;right:-12px;background:rgba(5,18,32,.87);padding:12px 17px;border-left:2px solid #2cbdff;backdrop-filter:blur(10px)}.portrait-label strong{display:block;font-size:12px;letter-spacing:.15em}.portrait-label span{display:block;font-size:9px;letter-spacing:.18em;color:#92c5e9;margin-top:4px}.hero-specialties{position:relative;z-index:3;background:rgba(5,18,32,.7);border:1px solid rgba(64,172,245,.23);border-radius:22px;padding:25px 19px;display:grid;gap:24px;backdrop-filter:blur(12px)}.hero-specialties div{display:flex;align-items:center;gap:12px;font-size:13px;color:#d4e6f4;line-height:1.35}.hero-specialties div span{color:#38bfff;font-size:24px;min-width:28px;text-align:center}.hero-specialties small{font-size:10px;letter-spacing:.24em;color:#56c2ff;line-height:1.9;border-top:1px solid #36baff66;padding-top:16px}.hero-features{display:grid;grid-template-columns:1fr 1fr .86fr;gap:18px;position:relative;z-index:5}.feature-tile{min-height:198px;position:relative;overflow:hidden;display:flex;align-items:end;text-decoration:none;background:#122d48;border:1px solid #315270}.feature-tile:after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,rgba(2,9,18,.92))}.feature-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}.feature-tile:hover img{transform:scale(1.06)}.feature-tile span{position:relative;z-index:2;padding:17px;font-size:12px;letter-spacing:.12em;font-weight:700;display:flex;width:100%;justify-content:space-between;align-items:center}.feature-tile b{font-size:23px;color:#36bfff}.feature-quote{border:1px solid #1d4b72;border-radius:0 28px 0 0;background:linear-gradient(130deg,#081725,#0b2948);padding:25px 30px;display:flex;flex-direction:column;justify-content:center}.quote-mark{color:#2fbfff;font-size:54px;line-height:.6}.feature-quote p{font-size:clamp(18px,1.5vw,26px);line-height:1.4;font-style:italic;margin:15px 0}.quote-line{width:46px;height:2px;background:#36bdff}.hero-bottom{display:flex;justify-content:space-between;align-items:center;padding:20px 0 0;font-size:10px;letter-spacing:.23em;color:#83b4d6}.hero-bottom a{letter-spacing:0;text-decoration:none;color:#b8d4e9}.about,.experience,.education{background:#081522!important}.projects,.skills{background:#0b1a2a!important}.section:not(.hero){padding-block:95px!important}.kicker{color:#36baff!important}.section h2 span{color:#36baff!important}.project-card,.skill-card,.education-item,.timeline-body{background:#0c2135!important;border-color:#1b4464!important}.project-visual{position:relative;overflow:hidden}.project-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.46}.project-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,rgba(5,16,29,.65))}.project-visual> :not(.project-photo){position:relative;z-index:2}.contact{background:radial-gradient(circle at 50% 0%,#123c5d,#06111f 70%)!important}.footer{background:#06101b!important}
@media(max-width:1100px){.wrap{width:min(100% - 44px,1450px)}.nav-links{gap:13px}.nav-links a{font-size:10px}.hero-shell{grid-template-columns:1.1fr .9fr;min-height:550px}.hero-specialties{display:none}.hero-person{height:530px}.hero h1{font-size:clamp(38px,5vw,60px)}}
@media(max-width:760px){.wrap{width:calc(100% - 34px)}.nav{min-height:70px}.nav-links{display:none;position:absolute;top:70px;left:0;right:0;background:#081827;padding:24px;flex-direction:column;align-items:stretch;border-bottom:1px solid #265478}.nav-links.open{display:flex}.nav-links a{font-size:13px;padding:8px 0}.menu-toggle{display:flex!important}.hero-shell{grid-template-columns:1fr;gap:0}.hero-copy{padding:48px 0 20px}.hero h1{font-size:clamp(39px,10vw,59px)}.hero-person{height:440px;max-width:410px;width:100%;margin:auto}.hero-person img{height:100%;object-position:center 14%}.portrait-label{right:0}.hero-features{grid-template-columns:1fr 1fr;gap:10px}.feature-tile{min-height:155px}.feature-tile span{font-size:10px;padding:12px}.feature-quote{grid-column:1/-1;min-height:135px}.hero-bottom{gap:10px;line-height:1.6}.hero-bottom span{max-width:60%}.section:not(.hero){padding-block:65px!important}}
@media(max-width:420px){.hero-features{grid-template-columns:1fr}.feature-tile{min-height:170px}.hero-meta{gap:10px}.brand-name{font-size:12px}.brand-name small{font-size:8px}.hero-person{height:390px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.feature-tile img{transition:none}}


/* VERSION CLAIRE — blanc & bleu électrique | 2026-09-21 */
:root{--bg:#f7fbff;--surface:#fff;--surface2:#edf6ff;--text:#10243c;--muted:#52677f;--line:#d9e7f4;--mint:#087bff;--blue:#0868ec;--accent:#087bff;--accent-2:#0758cb;--border:#d7e7f8}
body{background:#f7fbff;color:var(--text)}
.header{background:rgba(255,255,255,.94)!important;border-bottom:1px solid #dbe9f7!important;box-shadow:0 4px 24px rgba(19,79,141,.045)}
.brand-mark{color:#086be8!important;background:transparent!important;border:0!important}.brand-mark span{color:#10243c!important}.brand-name{color:#112a48}.brand-name small{color:#51718f!important}
.nav-links a{color:#1c3b5b!important}.nav-links a:hover{color:#006ef2!important}.nav-links .nav-download{border-color:#087bff!important;color:#075bd3!important;background:#f2f8ff}.nav-links .nav-cta{color:#1c3b5b!important}
.progress,.quote-line{background:#087bff!important}.skip{background:#087bff;color:white}
.hero{background:radial-gradient(ellipse at 70% 34%,#d7ebff 0%,#f2f8ff 48%,#fff 90%)!important;border-bottom:1px solid #d9e9fa}
.hero-backdrop{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.94) 37%,rgba(234,245,255,.64) 100%),url('assets/ingenierie-electrique.png') center 37%/cover no-repeat!important;opacity:.34!important}
.hero .eyebrow,.kicker,.hero h1 em,.section h2 span,.section-lead h2 span,.section-heading h2 span,.contact h2 span{color:#086cf0!important}
.hero .intro{color:#3c5976!important}.hero h1{color:#10243c}.hero-description{color:#4a6480!important}.hero-meta{color:#476887!important}
.btn.primary{background:linear-gradient(115deg,#0076ff,#005ad5)!important;color:white!important;border-color:#006de9!important;box-shadow:0 12px 28px rgba(0,105,230,.18)!important}.btn.primary:hover{background:linear-gradient(115deg,#168aff,#0756bb)!important}
.btn.secondary{background:white!important;color:#075bd3!important;border-color:#087bff!important}.btn.secondary:hover{background:#edf6ff!important}
.portrait-ring{border-color:#087bff!important;box-shadow:0 0 48px #168aff32,inset 0 0 26px #168aff1c!important}.hero-person img{filter:drop-shadow(0 14px 25px rgba(30,81,130,.13))!important}
.portrait-label{background:rgba(255,255,255,.93)!important;color:#10243c;border-left-color:#087bff!important;box-shadow:0 10px 32px #164f8c18}.portrait-label span{color:#0867d6!important}
.hero-specialties{background:rgba(255,255,255,.85)!important;border-color:#c7e2ff!important;box-shadow:0 12px 42px #2266ad12}.hero-specialties div{color:#183c62!important}.hero-specialties div span,.hero-specialties small{color:#087bff!important}.hero-specialties small{border-top-color:#cde4fa!important}
.feature-tile{border-color:#b6d9f7!important;background:#d9eaff!important;box-shadow:0 9px 25px #1558a014}.feature-tile:after{background:linear-gradient(transparent,rgba(5,25,51,.82))!important}.feature-tile span{color:white}.feature-tile b{color:#6ccaff!important}
.feature-quote{background:linear-gradient(140deg,#fff,#eaf5ff)!important;border-color:#cde3f8!important;color:#173858;box-shadow:0 9px 25px #1558a010}.quote-mark{color:#087bff!important}.hero-bottom{color:#577594!important}.hero-bottom a{color:#075bd3!important}
.about,.experience,.education{background:#fff!important;border-color:#d9e7f4!important}.projects,.skills{background:#f2f8ff!important}.contact{background:radial-gradient(circle at 50% 0%,#e4f2ff,#fff 72%)!important;border-color:#d9e7f4!important}.footer{background:#eef6ff!important;border-top:1px solid #d9e7f4!important}
.about-text p,.education-note,.section-heading>p,.skill-card p,.timeline-body p,.education-item p,.contact p{color:#52677f!important}.about-text strong{color:#10243c!important}
.about-tags span,.chips span{background:#eaf4ff!important;color:#135dba!important;border-color:#cfe4fa!important}
.project-card,.skill-card,.education-item,.timeline-body{background:#fff!important;border-color:#d7e6f5!important;box-shadow:0 10px 32px rgba(29,82,140,.055)}.project-card:hover{border-color:#4da1ff!important;box-shadow:0 18px 40px #096ad017}.project-content h3,.skill-card h3,.timeline-body h3,.education-item h3{color:#142d4a}.project-content p{color:#52677f!important}.project-type,.timeline-date,.education-item>span,.skill-icon{color:#087bff!important}.project-more{border-top-color:#dce8f5!important;color:#075bd3!important}.project-more:hover{color:#0045a8!important}
.filter{background:#fff!important;color:#285174!important;border-color:#c9dfef!important}.filter:hover,.filter.active{background:#087bff!important;border-color:#087bff!important;color:#fff!important}
.timeline-item:before{background:#cfe0f1!important}.timeline-dot{background:#087bff!important;box-shadow:0 0 0 5px #dceeff!important}.timeline-body{border-bottom-color:#dbe7f3!important}.footer-inner{color:#5b728b!important}.footer a:hover,.email{color:#075bd3!important}.email{border-bottom-color:#9dc9f9!important}
.project-dialog{background:#fff!important;color:#10243c!important;border-color:#bcdaf7!important;box-shadow:0 28px 85px #0b396a3d!important}.project-dialog::backdrop{background:rgba(11,35,65,.56)!important}.dialog-close{background:#eff7ff!important;color:#0a59c4!important;border-color:#cce2f9!important}.dialog-inner p,.dialog-inner li{color:#506781!important}.dialog-note{border-top-color:#d8e7f5!important}
.menu-toggle{background:#f1f8ff!important;border-color:#b9d8f4!important}.menu-toggle span{background:#075bd3!important}
@media(max-width:760px){.nav-links{background:#fff!important;border-bottom-color:#d3e5f6!important;box-shadow:0 18px 30px #0b3b6d12}.hero-backdrop{opacity:.22!important}.hero-person{max-width:410px}.hero-specialties{display:none}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* Galerie PFE : présentation lumineuse, responsive et accessible */
.pfe-gallery{margin-top:34px;padding-top:26px;border-top:1px solid #d5e8fb}.pfe-gallery[hidden]{display:none!important}.gallery-heading h3{font-size:clamp(22px,3vw,30px);color:#10365c;margin:8px 0}.gallery-heading p{color:#536a82}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.comparison{min-width:0;background:#f5faff;border:1px solid #c9e4fc;border-radius:16px;padding:13px}.comparison h4{margin:0 0 12px;color:#123c68;font-size:15px}.compare-frame{position:relative;overflow:hidden;aspect-ratio:1.55;background:#e5edf6;border-radius:10px;isolation:isolate}.compare-after,.compare-before img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.compare-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--split)) 0 0);z-index:1}.compare-divider{position:absolute;top:0;bottom:0;left:var(--split);transform:translateX(-50%);width:3px;background:#087ce8;box-shadow:0 0 0 1px white;z-index:3;pointer-events:none}.compare-divider:after{content:'↔';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:#087ce8;color:#fff;display:grid;place-items:center;font-size:22px;box-shadow:0 3px 10px #16436b55}.compare-badge{position:absolute;top:10px;z-index:2;font-size:10px;letter-spacing:.12em;font-weight:800;padding:4px 9px;border-radius:20px;background:#fff;color:#0753a0;pointer-events:none}.compare-badge.before{left:10px}.compare-badge.after{right:10px}.compare-frame input[type=range]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;z-index:5}.compare-frame:focus-within{outline:3px solid #087ce8;outline-offset:3px}.compare-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px}.compare-actions a{color:#075fc0;text-decoration:underline;font-size:12px;font-weight:700}.gallery-disclaimer{font-size:12px!important;color:#60758c!important;margin-top:15px}.project-dialog{width:min(1120px,calc(100% - 26px))!important;max-height:90dvh!important;overflow:auto!important}.dialog-inner{max-width:none!important}@media(max-width:740px){.comparison-grid{grid-template-columns:1fr}.compare-frame{aspect-ratio:1.55}}

/* Galerie du PFA — blanc et bleu électrique */
.pfa-gallery{margin-top:34px;padding-top:26px;border-top:1px solid #d5e8fb}.pfa-gallery[hidden]{display:none!important}.pfa-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:23px}.pfa-photo{margin:0;background:#f5faff;border:1px solid #d1e6f9;border-radius:15px;overflow:hidden;box-shadow:0 8px 25px #095bb00c}.pfa-photo:first-child,.pfa-photo:nth-child(2){grid-column:span 2}.pfa-photo a{display:block;background:#e9f2fb}.pfa-photo img{display:block;width:100%;height:235px;object-fit:contain;transition:transform .25s}.pfa-photo:first-child img,.pfa-photo:nth-child(2) img{height:330px}.pfa-photo a:hover img{transform:scale(1.015)}.pfa-photo figcaption{padding:13px 16px;color:#52677f;font-size:13px}.pfa-photo figcaption strong{color:#113f75;font-size:14px}@media(max-width:700px){.pfa-photo-grid{grid-template-columns:1fr}.pfa-photo:first-child,.pfa-photo:nth-child(2){grid-column:auto}.pfa-photo img,.pfa-photo:first-child img,.pfa-photo:nth-child(2) img{height:auto;max-height:390px}}

/* Projet MPPT — galerie claire bleu électrique */
.mppt-gallery{margin-top:34px;padding-top:26px;border-top:1px solid #d5e8fb}.mppt-gallery[hidden]{display:none!important}.mppt-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.mppt-metrics>div{display:flex;flex-direction:column;gap:5px;background:#f0f7ff;border:1px solid #c9e3fc;border-radius:14px;padding:15px}.mppt-metrics strong{font-size:13px;color:#244e78}.mppt-metrics b{font-size:25px;color:#0569e6}.mppt-metrics span{font-size:12px;color:#4b6885}.mppt-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.mppt-photo-grid figure{margin:0;background:#fff;border:1px solid #d1e6f9;border-radius:15px;overflow:hidden}.mppt-photo-grid figure:last-child{grid-column:span 2}.mppt-photo-grid a{display:block;background:#f7fbff}.mppt-photo-grid img{display:block;width:100%;height:250px;object-fit:contain;transition:transform .25s}.mppt-photo-grid figure:last-child img{height:370px}.mppt-photo-grid a:hover img{transform:scale(1.015)}.mppt-photo-grid figcaption{padding:13px 16px;font-size:13px;color:#52677f}.mppt-photo-grid figcaption strong{color:#113f75;font-size:14px}@media(max-width:700px){.mppt-metrics,.mppt-photo-grid{grid-template-columns:1fr}.mppt-photo-grid figure:last-child{grid-column:auto}.mppt-photo-grid img,.mppt-photo-grid figure:last-child img{height:auto;max-height:420px}}

/* Blog personnel — grille claire et accents bleu électrique */
.blog-section{background:#f4f9ff!important;color:#173858!important}.blog-section .section-heading h2{color:#12365c!important}.blog-section .section-heading p{color:#486884!important}.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:34px}.blog-card{background:#fff;border:1px solid #cde2f7;border-radius:20px;padding:28px;min-height:242px;box-shadow:0 14px 34px rgba(15,83,151,.07);display:flex;flex-direction:column;transition:transform .25s,border-color .25s}.blog-card:hover{transform:translateY(-5px);border-color:#0784f9}.blog-number{color:#086dd4;font-size:11px;font-weight:800;letter-spacing:.16em}.blog-icon{font-size:26px;color:#087bff;margin:12px 0}.blog-card h3{font-size:20px;line-height:1.3;color:#113b68;margin:0 0 12px}.blog-card p{font-size:14px;line-height:1.6;color:#56708a;margin:0 0 20px}.blog-status{margin-top:auto;color:#076acb;font-size:12px;font-weight:700}.blog-note{font-size:13px;color:#56708a;margin-top:22px}.linkedin-nav{display:inline-flex!important;align-items:center;gap:7px;color:#076ed6!important}.linkedin-nav svg{flex-shrink:0}.linkedin-contact{margin:22px 0 0}.linkedin-contact a{display:inline-flex;align-items:center;gap:9px;color:#0077b5;font-weight:700;text-decoration:none}.linkedin-contact svg{width:21px;height:21px}@media(max-width:960px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.blog-grid{grid-template-columns:1fr}.blog-card{min-height:215px;padding:22px}}

/* Outils et logiciels : palette blanche et bleu électrique */
.software-section{background:#fff!important;border-block:1px solid #dceafb;padding-block:clamp(54px,7vw,95px)}
.software-section .section-heading h2{color:#12365c}.software-section .section-heading p{color:#526d89}
.software-grid{list-style:none;padding:0;margin:32px 0 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.software-card{min-width:0;min-height:148px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:17px 9px;background:linear-gradient(145deg,#fff,#f1f8ff);border:1px solid #d3e7fc;border-radius:17px;box-shadow:0 8px 24px #1261b50a;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.software-card:hover{transform:translateY(-5px);border-color:#168bff;box-shadow:0 14px 28px #087bff1c}
.software-symbol{width:56px;height:56px;border-radius:15px;display:grid;place-items:center;background:#e2f1ff;color:#086bdb;border:1px solid #c5e3ff;font-weight:850;font-size:21px;letter-spacing:-.04em;line-height:1}
.software-name{font-size:13px;line-height:1.3;font-weight:750;color:#163a60;overflow-wrap:anywhere}.software-kind{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#52799d}
.software-caption{font-size:11px;color:#64809a;margin:16px 0 0}
@media(max-width:1080px){.software-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:650px){.software-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.software-card{min-height:132px;padding:12px 6px}.software-symbol{width:49px;height:49px}}
@media(prefers-reduced-motion:reduce){.software-card{transition:none}.software-card:hover{transform:none}}

/* Articles : cartes éditoriales et pages dédiées */
.blog-card{padding:0;overflow:hidden;min-height:0}.blog-cover{display:block;aspect-ratio:16/10;overflow:hidden;background:#eaf4ff}.blog-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.blog-card:hover .blog-cover img{transform:scale(1.055)}.blog-card-body{padding:22px 23px 25px;display:flex;flex:1;flex-direction:column}.blog-card h3 a{color:inherit;text-decoration:none}.blog-card h3 a:hover{color:#086cdb}.blog-read{margin-top:auto;display:inline-flex;justify-content:space-between;align-items:center;color:#086cdb;font-size:13px;font-weight:800;text-decoration:none;padding-top:8px}.blog-read:hover{text-decoration:underline}.article-page{background:#f7fbff;color:#163a60}.article-header{background:#fff;border-bottom:1px solid #dce9f7}.article-nav{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:18px}.article-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#17395b;font-size:13px;font-weight:850;letter-spacing:.06em}.article-back,.article-breadcrumb{color:#096cdb;text-decoration:none;font-size:13px;font-weight:750}.article-back:hover,.article-breadcrumb:hover{text-decoration:underline}.article-main{padding:clamp(40px,6vw,85px) 20px 75px}.article-container{max-width:850px;margin:auto}.article-category{margin:22px 0 12px;color:#0872e4;font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.article-container h1{font-size:clamp(32px,5vw,58px);line-height:1.12;letter-spacing:-.045em;color:#10385f;margin:0 0 18px}.article-summary{font-size:clamp(17px,2vw,21px);line-height:1.55;color:#56728d;margin:0 0 32px}.article-hero{margin:0 0 45px;border-radius:22px;overflow:hidden;border:1px solid #d5e6f6;background:#eaf4ff;box-shadow:0 20px 55px #145da012}.article-hero img{display:block;width:100%;max-height:480px;object-fit:cover}.article-prose{max-width:740px;margin:auto;font-size:17px;line-height:1.85;color:#294c6b}.article-prose p{margin:0 0 22px}.article-prose .article-lead{font-size:22px;line-height:1.55;font-weight:700;color:#123f70}.article-prose h2{color:#1058a2;font-size:25px;margin:35px 0 16px;letter-spacing:-.025em}.article-prose ul{padding-left:25px;margin:0 0 25px}.article-prose li{padding-left:4px;margin:0 0 11px}.article-prose li::marker{color:#087dff}.article-note{background:#eaf4ff;border-left:4px solid #087dff;border-radius:0 12px 12px 0;padding:17px 20px;font-size:14px;line-height:1.6;color:#315f89;margin-top:30px}.article-end{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding-top:24px;border-top:1px solid #d4e6f7}.article-end a{color:#0870db;text-decoration:none;font-weight:750}.article-end a:hover{text-decoration:underline}.article-footer{text-align:center;padding:30px 15px;background:#eaf4ff;color:#55718a;font-size:12px}@media(max-width:600px){.article-nav{min-height:70px}.article-brand{font-size:11px}.article-prose{font-size:16px}.article-prose .article-lead{font-size:19px}.article-main{padding-inline:17px}.blog-card-body{padding:20px}}@media(prefers-reduced-motion:reduce){.blog-cover img{transition:none}.blog-card:hover .blog-cover img{transform:none}}

/* Portrait d'accueil : diaporama de deux photos */
.hero-person .portrait-slider{position:relative;width:100%;height:100%;min-width:0;overflow:hidden;border-radius:240px 240px 14px 14px;isolation:isolate}
.hero-person .portrait-slider .portrait-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:inherit;mask-image:none;filter:none!important;opacity:0;transform:scale(1.035);transition:opacity .75s ease,transform 3.5s ease;pointer-events:none}
.hero-person .portrait-slider .portrait-slide.is-active{opacity:1;transform:scale(1)}
.hero-person .portrait-controls{position:absolute;z-index:5;left:50%;bottom:86px;transform:translateX(-50%);display:flex;align-items:center;gap:13px;padding:7px 9px;border:1px solid #b7d9ff;background:rgba(255,255,255,.93);backdrop-filter:blur(12px);border-radius:99px;box-shadow:0 8px 25px #073b7c22}
.hero-person .portrait-arrow{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:#e8f3ff;color:#075ac4;cursor:pointer;font-size:19px;transition:background .2s,transform .2s}
.hero-person .portrait-arrow:hover{background:#c9e5ff;transform:scale(1.07)}
.hero-person .portrait-dots{display:flex;align-items:center;gap:8px}
.hero-person .portrait-dot{width:9px;height:9px;border:0;border-radius:99px;background:#a9c9e9;cursor:pointer;padding:0;transition:width .25s,background .25s}
.hero-person .portrait-dot.is-active{width:25px;background:#087bff}
.hero-person .portrait-arrow:focus-visible,.hero-person .portrait-dot:focus-visible{outline:3px solid #005bdf;outline-offset:3px}
@media(max-width:760px){.hero-person .portrait-controls{bottom:76px}}
@media(prefers-reduced-motion:reduce){.hero-person .portrait-slider .portrait-slide,.hero-person .portrait-arrow,.hero-person .portrait-dot{transition:none!important}}

/* Responsive mobile/tablette — navigation, portrait, projets et lecture */
html,body{max-width:100%;overflow-x:clip}
img,svg,video{max-width:100%}
@media(max-width:1100px){
 .nav{position:relative}.menu-toggle{display:flex!important;flex-direction:column;gap:5px;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #bcd8f5;border-radius:10px;background:#fff;cursor:pointer}.menu-toggle span{display:block;width:21px;height:2px;background:#1256a2}
 .nav-links{display:none!important;position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - 75px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 20px;background:#fff!important;border:1px solid #d3e5f6;border-radius:0 0 16px 16px;box-shadow:0 18px 30px #0b3b6d18;z-index:105}
 .nav-links.open{display:flex!important}.nav-links a{font-size:14px!important;padding:12px 8px;min-height:44px}.nav-links .nav-cta{margin-top:8px}
}
@media(max-width:760px){
 .wrap{width:calc(100% - 32px)}.nav{height:70px;gap:10px}.brand{min-width:0}.brand-name{overflow-wrap:anywhere}
 .hero{padding-top:20px!important}.hero-shell{display:grid;grid-template-columns:minmax(0,1fr);min-height:0}.hero-copy{padding:30px 0 20px}.hero h1{font-size:clamp(32px,8.5vw,48px);overflow-wrap:break-word}.hero .intro{font-size:16px}.hero-description{font-size:15px;line-height:1.7}
 .hero-person{height:clamp(310px,92vw,440px);width:min(100%,390px);margin:12px auto 0}.hero-person .portrait-slider{border-radius:190px 190px 14px 14px}.hero-person .portrait-controls{bottom:64px}.hero-person .portrait-arrow{min-width:44px;min-height:44px}.hero-person .portrait-dot{min-width:14px;min-height:14px}.hero-person .portrait-dot.is-active{width:28px}
 .hero-meta{flex-wrap:wrap}.actions{gap:10px}.actions .btn{min-height:44px}.hero-bottom{flex-wrap:wrap}.hero-bottom span{max-width:100%}
 .section:not(.hero){padding-block:56px!important}.section-heading h2,.section-lead h2{font-size:clamp(30px,8vw,43px)}.project-grid,.skill-grid,.comparison-grid,.pfa-photo-grid,.mppt-photo-grid{grid-template-columns:minmax(0,1fr)}
 .project-content{padding:20px}.project-visual{height:195px}.project-content h3{font-size:22px}.project-content p{min-height:0}
 .timeline-item{grid-template-columns:74px 12px minmax(0,1fr);gap:10px}.timeline-item:before{left:89px}.timeline-body{min-width:0}.timeline-date{font-size:10px;overflow-wrap:anywhere}
 .dialog-inner{padding:24px 16px!important;max-width:100%!important}.dialog-inner h2{font-size:clamp(25px,7vw,35px)}.compare-frame{aspect-ratio:1.3}.pfa-photo img,.mppt-photo-grid img{max-width:100%;height:auto}
 .software-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:380px){.wrap{width:calc(100% - 24px)}.hero h1{font-size:31px}.hero-person{height:330px}.hero-person .portrait-controls{bottom:52px}.actions .btn{width:100%}.brand-mark{width:36px;height:36px;flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.hero-person .portrait-slider .portrait-slide{transition:none!important}}

/* Bilingual language selector */
.lang-switch{display:inline-flex;align-items:center;gap:2px;border:1px solid #b6d6ff;border-radius:999px;padding:3px;background:#f0f7ff;flex-shrink:0}.lang-switch a{font-size:.77rem;font-weight:800;letter-spacing:.04em;text-decoration:none;color:#23619d;padding:6px 9px;border-radius:999px;min-width:35px;text-align:center}.lang-switch a[aria-current="page"]{background:#0868ec;color:#fff;box-shadow:0 2px 8px #0868ec22}.lang-switch a:focus-visible{outline:2px solid #0868ec;outline-offset:3px}.article-lang-switch{display:inline-flex;margin-inline:auto}.article-nav{gap:12px;flex-wrap:wrap}@media(max-width:820px){.nav-links .lang-switch{align-self:flex-start;margin:6px 0}.article-lang-switch{margin-left:auto}}

/* Logos des organismes : expériences et formation */
.role-with-logo{display:flex;align-items:flex-start;gap:16px;min-width:0}
.role-with-logo .role-top{flex:1;min-width:0}
.org-logo{display:block;flex:0 0 58px;width:58px;height:58px;box-sizing:border-box;object-fit:contain;object-position:center;padding:7px;border-radius:50%;background:#fff;border:1px solid #d6e5ff;box-shadow:0 3px 12px rgba(13,62,120,.09)}
.education-item{display:flex;align-items:flex-start;gap:16px}
.education-item .education-content{flex:1;min-width:0}
@media(max-width:600px){.role-with-logo,.education-item{gap:11px}.org-logo{width:46px;height:46px;flex-basis:46px;padding:5px}}
