@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#071524;--navy2:#0d2438;--light:#f5f7f6;--ink:#172c36;--muted:#567079;--mint:#bdf6df;--teal:#5bd3b4;--border:#dbe5e1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--navy);line-height:1.65}button,a{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.shell{max-width:1200px;padding:0 40px;margin:auto}.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:200}.skip:focus{top:5px}.navwrap{position:sticky;top:0;z-index:100;background:rgba(7,21,36,.95);backdrop-filter:blur(20px);border-bottom:1px solid #ffffff1b}.nav{min-height:82px;display:flex;align-items:center;justify-content:space-between}.mark{color:#fff;font-family:Manrope,sans-serif;font-weight:800;font-size:27px;letter-spacing:-2px}.mark span{color:var(--teal)}.navlinks{display:flex;align-items:center;gap:32px}.navlinks a{color:#c7d7dc;font-size:14px}.navlinks a:hover{color:var(--mint)}.navcontact{border:1px solid #5f7885;padding:10px 18px;border-radius:30px}.menu-toggle{display:none;background:none;border:0;color:white;font-size:25px}.hero{min-height:690px;display:grid;grid-template-columns:1.22fr .78fr;align-items:center;gap:30px;padding-top:70px;padding-bottom:100px;position:relative}.hero-copy{position:relative;z-index:2}.eyebrow,.kicker{letter-spacing:.13em;text-transform:uppercase;font-size:12px;font-weight:800}.eyebrow{color:#badbd5;display:flex;align-items:center;gap:10px}.dot{width:8px;height:8px;background:var(--teal);border-radius:50%;box-shadow:0 0 18px var(--teal)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Manrope,system-ui,sans-serif}h1{color:#fff;font-size:clamp(43px,5vw,76px);letter-spacing:-.06em;line-height:1.13;margin:25px 0 28px}h1 em,h2 em{font-style:normal;color:var(--mint)}.lead{max-width:670px;color:#b8ccd1;font-size:18px;line-height:1.9}.lead strong{color:white}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:14px;margin:35px 0}.button{display:inline-flex;align-items:center;gap:20px;justify-content:space-between;border:1px solid transparent;padding:14px 21px;border-radius:8px;font-weight:700;font-size:14px}.button.primary{background:var(--mint);color:#0a302d}.button.primary:hover{background:white}.button.ghost{border-color:#5c7280;background:transparent;color:white}.button.ghost:hover{border-color:white}.chips{display:flex;gap:9px;flex-wrap:wrap}.chips span,.tags span{font-size:11px;padding:7px 11px;border-radius:20px;border:1px solid #496070;color:#aec5cf}.hero-art{height:490px;position:relative;display:grid;place-items:center}.halo{width:280px;height:280px;background:#2cb5a55a;filter:blur(95px);border-radius:50%;position:absolute}.orbit{position:absolute;border:1px solid #45736e88;border-radius:50%;transform:rotate(-32deg)}.orbit1{width:380px;height:380px}.orbit2{width:240px;height:420px}.dna{font-size:150px;color:#bdf6dfa6;position:absolute;animation:float 9s ease-in-out infinite}.glass{position:absolute;border:1px solid #87ddc64d;background:#1d415799;backdrop-filter:blur(8px);border-radius:18px;padding:23px;width:165px;color:#d7fbeb;display:flex;flex-direction:column;z-index:2}.glass strong{font:800 50px Manrope}.glass .tiny{font-size:10px;letter-spacing:2px}.glass span:last-child{font-size:13px}.glass1{top:58px;left:0}.glass2{bottom:35px;right:0}@keyframes float{50%{transform:translateY(-17px) rotate(10deg)}}.section{padding:110px 0;scroll-margin-top:80px}.section.light{background:var(--light)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.kicker{color:#15846c;margin-bottom:22px}h2{font-size:clamp(36px,4vw,55px);line-height:1.19;letter-spacing:-.055em;margin-bottom:36px}h2 span{color:#66817e}.about-text p{font-size:16px;color:#48616a;line-height:1.95}.about-text strong{color:#142d34}.underlink{display:inline-block;border-bottom:1px solid #2a665b;padding-bottom:7px;color:#135c50;font-weight:700;margin-top:12px}.dark{background:#0a1d2c;color:#fff}.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-head h2{margin-bottom:20px}.section-head>p{color:#adc0c7;max-width:335px}.dark .kicker{color:#76d7ba}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0 30px}.filter{background:transparent;color:#b9d0d5;border:1px solid #375668;padding:9px 17px;border-radius:30px;font-size:13px}.filter.active,.filter:hover{background:var(--mint);color:#123329;border-color:var(--mint)}.projects{display:grid;grid-template-columns:1fr 1fr;gap:21px}.project{overflow:hidden;border:1px solid #375061;border-radius:16px;background:#102a3b;display:flex;flex-direction:column}.project[hidden]{display:none}.project-vis{min-height:180px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.project.featured{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.featured .project-vis{min-height:370px}.vigy{background:radial-gradient(circle at 60% 35%,#50cfa28c,transparent 40%),linear-gradient(120deg,#184f54,#0b2333)}.omni{background:radial-gradient(circle,#4e88c3a6,transparent 54%),#122844}.bio{background:linear-gradient(135deg,#224c4c,#102a3b)}.data{background:linear-gradient(135deg,#2c3763,#0f2334)}.tutor{background:linear-gradient(135deg,#8b7449,#334b4f)}.future{background:linear-gradient(135deg,#45446b,#16243c)}.visual-label{font:800 100px Manrope;color:#e0fff7a9;letter-spacing:-.12em;z-index:1}.visual-bottom{position:absolute;bottom:20px;left:25px;font-size:10px;letter-spacing:.16em;color:#e0f7f3}.maplines{position:absolute;inset:-60px;background-image:linear-gradient(30deg,transparent 48%,#7ae4c83b 49%,transparent 50%),linear-gradient(112deg,transparent 48%,#7ae4c826 49%,transparent 50%);background-size:75px 80px;transform:rotate(-16deg)}.orbital{position:absolute;width:190px;height:190px;border:2px dashed #a3e8df77;border-radius:50%;box-shadow:0 0 0 42px #b9e4ff17,0 0 0 92px #b9e4ff0c}.bio-circles{position:absolute;display:flex;gap:10px;transform:rotate(20deg)}.bio-circles i{width:68px;height:68px;border:2px solid #8ceccbaa;border-radius:40% 60% 55% 45%}.bars{height:130px;display:flex;gap:10px;align-items:end;position:absolute}.bars b{width:20px;background:#a8e9ec77;height:var(--h)}.bars b:nth-child(1){--h:50%}.bars b:nth-child(2){--h:83%}.bars b:nth-child(3){--h:40%}.bars b:nth-child(4){--h:90%}.bars b:nth-child(5){--h:63%}.bars b:nth-child(6){--h:74%}.bars b:nth-child(7){--h:47%}.project-body{padding:30px;flex:1;display:flex;flex-direction:column}.project-meta{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap;font-size:10px;letter-spacing:.1em}.type{color:#89dbc6}.status{color:#c1ced2;letter-spacing:0;background:#ffffff12;border:1px solid #ffffff20;border-radius:20px;padding:5px 9px}.project h3{font-size:30px;letter-spacing:-.04em;margin:18px 0 9px}.project p{color:#b8cad0;font-size:14px;line-height:1.85}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:13px}.tags span{padding:5px 9px}.detail-trigger{align-self:start;border:0;background:transparent;color:#bdf6df;padding:20px 0 0;font-weight:700;font-size:13px}.detail-trigger:hover{text-decoration:underline}.timeline{border-top:1px solid var(--border)}.timeline-row{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:30px 0;border-bottom:1px solid var(--border)}.when{font-size:13px;font-weight:700;color:#167b6b}.timeline-row h3{font-size:21px;letter-spacing:-.035em;margin:0 0 3px}.timeline-row p{color:#60757c;max-width:790px;margin-bottom:0}.timeline-row .org{color:#1d5654;font-size:14px;font-weight:600;margin-bottom:8px}.upcoming{display:flex;gap:22px;background:#e0efea;padding:27px;border-radius:16px;margin-top:40px}.upcoming-icon{background:#155c4f;color:white;border-radius:10px;padding:8px 17px;font-size:26px;height:max-content}.upcoming h3{margin-bottom:4px}.upcoming p{color:#4b6669;margin-bottom:7px}.small{font-size:12px}.cream{background:#e6f0eb}.skill-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px}.skills-note{color:#60777a;max-width:380px}.skill-lists>div{border-bottom:1px solid #b9d0c7;padding:5px 0 24px;margin-bottom:23px}.skill-lists h3{margin-bottom:8px;font-size:19px}.skill-lists p{color:#557070;margin-bottom:0}.contact{background:#112f3e;text-align:center;color:#fff}.contact .kicker{color:#95edcd}.contact h2{margin:0 auto 25px}.contact-content>p:not(.kicker){max-width:590px;margin:auto;color:#bfd1d7}.contact-actions{justify-content:center}.contact-note{font-size:12px!important;color:#a4bbc2!important}.copy-feedback{min-height:25px;color:#bdf6df!important}footer{background:#071524;color:#aec1c8}.footer{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-top:30px;padding-bottom:30px;font-size:12px}.footer strong{color:white;font-size:21px}dialog{background:#f6f9f7;color:#19343b;border:0;max-width:min(650px,92vw);border-radius:18px;padding:0;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#071524bb}.dialog-inner{padding:42px;position:relative}.dialog-inner h2{font-size:37px;margin-bottom:18px}.dialog-inner p,.dialog-inner li{color:#506971}.dialog-inner ul{padding-left:20px}.dialog-close{position:absolute;right:23px;top:20px;border:0;background:#e5efea;width:38px;height:38px;border-radius:50%}:focus-visible{outline:3px solid #2ed2ab;outline-offset:3px}
@media(max-width:850px){.shell{padding:0 23px}.hero{grid-template-columns:1fr;min-height:0;padding-top:78px;padding-bottom:90px}.hero-art{display:none}.about-grid,.skill-grid{grid-template-columns:1fr;gap:25px}.projects{grid-template-columns:1fr}.project.featured{grid-column:auto;display:flex}.featured .project-vis{min-height:220px}.section-head{display:block}.section{padding:80px 0}.timeline-row{grid-template-columns:1fr;gap:5px}.nav{min-height:65px}.menu-toggle{display:block}.navlinks{display:none;position:absolute;top:65px;left:0;right:0;background:#0b2233;padding:25px;flex-direction:column;align-items:start;gap:18px}.navlinks.open{display:flex}.footer{flex-wrap:wrap}.hero h1{font-size:clamp(38px,8.5vw,56px)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.dna{animation:none}}

/* Visuels authentiques du portfolio */
.branded-visual{background:#eaf6f6;position:relative;padding:18px}.branded-visual img{width:100%;height:100%;object-fit:contain;max-height:310px;display:block}.branded-visual .visual-bottom{background:#071524cf;border-radius:6px;padding:6px 9px;color:white}.detecto-cover{background:#28a568}.detecto-cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;max-height:none}.project-external{display:inline-flex;align-self:flex-start;font-weight:700;color:#bdf6df;border-bottom:1px solid #82ccb8;font-size:13px;margin-top:18px}.project-gallery-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.project-gallery-mini img{width:100%;height:100px;object-fit:cover;border-radius:8px;border:1px solid #ffffff20}.dlst-inline{width:148px;max-width:100%;height:auto;background:white;padding:7px;border-radius:8px;margin:2px 0 12px}.modal-figure{margin:22px 0}.modal-figure img{display:block;width:100%;height:auto;border-radius:8px}.modal-figure figcaption,.modal-gallery figcaption{font-size:12px;color:#65777c;margin-top:6px}.modal-gallery{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:18px}.modal-gallery figure{margin:0}.modal-gallery img{display:block;width:100%;border-radius:8px}.logo-figure img{width:230px;max-width:100%}@media(max-width:550px){.modal-gallery{grid-template-columns:1fr}.project-gallery-mini img{height:75px}}


/* Corrections identité visuelle */
.tutor-brand{background:#f5f7f6;padding:28px}.tutor-brand img{max-height:220px}.wordmark-visual{padding:28px;align-items:flex-start;justify-content:flex-start}.wordmark-wrap{display:flex;flex-direction:column;gap:10px;z-index:1}.wordmark-small{font-size:12px;letter-spacing:.18em;color:#b9d8e6;text-transform:uppercase}.wordmark-main{font:800 clamp(34px,5vw,54px) Manrope,sans-serif;color:#eaf6fb;letter-spacing:-.05em;line-height:1.05;max-width:90%}.wordmark-visual .visual-bottom{left:28px}.dlst-inline{display:none}

/* Visuels sobres, sans faux monogrammes */
.scientific-visual{background:linear-gradient(125deg,#163e42,#183140);padding:28px}.science-cover-title{font:700 clamp(24px,3vw,37px) Manrope,sans-serif;color:#e6f3ef;letter-spacing:-.035em;line-height:1.15;text-align:center}.r-official-visual{background:linear-gradient(125deg,#e8eef2,#f7fafc);padding:30px}.r-official-visual img{width:min(200px,68%);height:125px;object-fit:contain;display:block}.r-official-visual .visual-bottom{color:#284453;background:#ffffffce;border-radius:5px;padding:4px 8px;bottom:10px;left:14px;letter-spacing:.07em;max-width:calc(100% - 28px)}

/* Ajustement contraste section compétences */
#competences h2 em{color:#1d5654}
