:root{--color-primary: #0B1F3A;--color-accent: #4DB8F5;--color-accent-hover: #2FA3E6;--color-bg: #FFFFFF;--color-surface: #FFFFFF;--color-card: #F4F7FB;--color-text: #111827;--color-text-muted: #4B5563;--color-on-primary: #FFFFFF;--color-on-primary-muted: #DCE6F2;--color-on-accent: #0B1F3A;--color-link-active: #1570B8;--color-photo-bg: #E8EEF5;--color-icone-alpha: #cf0f0f;--font-title: "Oswald", "Arial Narrow", sans-serif;--font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-hero: clamp(2.8rem, 6vw, 5.2rem);--fs-h2: clamp(2.2rem, 4.5vw, 3.8rem);--fs-h3: 1.75rem;--fs-body: 1.0625rem;--fs-lead: 1.25rem;--radius-sm: 12px;--radius-md: 22px;--radius-pill: 999px;--container: 1200px;--shadow: 0 10px 30px rgba(8, 20, 40, .18);--shadow-strong: 0 30px 60px rgba(0, 0, 0, .3)}:root[data-theme=dark]{--color-bg: #0A1628;--color-surface: #13233D;--color-card: #13233D;--color-text: #F1F5F9;--color-text-muted: #A9B6C8;--color-link-active: #4DB8F5;--color-photo-bg: #1C2F4D;--color-primary: #06111F}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:130px}body{margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;color:var(--color-text);background:var(--color-bg);transition:background .3s,color .3s}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-title);font-weight:700;text-transform:uppercase;line-height:1.05;margin:0}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.container{width:min(100% - 2.5rem,var(--container));margin-inline:auto}.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 1.9rem;border-radius:var(--radius-pill);font-family:var(--font-title);font-weight:600;font-size:1rem;text-transform:uppercase;letter-spacing:.3px;transition:background .2s,transform .2s}.btn:hover{transform:translateY(-2px)}.btn--lg{height:56px;padding:0 2.75rem;font-size:1.125rem}.btn--dark{background:var(--color-primary);color:var(--color-on-primary)}:root[data-theme=dark] .btn--dark{background:var(--color-accent);color:var(--color-on-accent)}.btn--accent{background:var(--color-accent);color:var(--color-on-accent)}.btn--accent:hover{background:var(--color-accent-hover)}.btn-link{font-family:var(--font-title);font-weight:600;font-size:1.125rem;text-transform:uppercase;color:var(--color-on-primary)}.btn-link:hover{color:var(--color-accent)}.header{position:fixed;top:28px;left:0;right:0;z-index:10}.header--statique{position:absolute}.navbar{position:relative;width:min(100% - 2.5rem,var(--container));margin-inline:auto;min-height:88px;padding:0 1.75rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow)}.logo{display:flex;align-items:center;gap:.75rem}.logo__icon{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--color-primary);display:grid;place-items:center}:root[data-theme=dark] .logo__icon{background:var(--color-accent)}.logo__icon svg{width:24px;height:24px;fill:none;stroke:var(--color-on-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}:root[data-theme=dark] .logo__icon svg{stroke:var(--color-on-accent)}.logo__text{display:flex;flex-direction:column;line-height:1}.logo__name{font-weight:700;font-size:1.25rem}.logo__sub{font-size:.75rem;letter-spacing:3px;text-transform:uppercase;color:var(--color-text-muted);margin-top:5px}.nav{display:flex;gap:1.75rem}.nav__link{font-family:var(--font-title);font-weight:600;font-size:1rem;text-transform:uppercase;transition:color .2s}.nav__link:hover,.nav__link.is-active{color:var(--color-link-active)}.nav__link{position:relative}.nav__link:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:3px;border-radius:3px;background:var(--color-accent);transform:scaleX(0);transition:transform .25s}.nav__link.is-active:after{transform:scaleX(1)}.scroll-rail{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.scroll-rail__piste{position:relative;width:3px;height:clamp(220px,50vh,420px);border-radius:3px;background:#8a99ad73}.scroll-rail__rempli{position:absolute;inset:0;border-radius:inherit;background:var(--color-accent);transform-origin:top}.scroll-rail__point{position:absolute;left:50%;width:14px;height:14px;border-radius:50%;background:var(--color-surface);border:2px solid rgba(138,153,173,.9);transform:translate(-50%,-50%);transition:transform .2s,background .2s,border-color .2s}.scroll-rail__point.is-atteint{background:var(--color-accent);border-color:var(--color-accent)}.scroll-rail__point.is-actif{transform:translate(-50%,-50%) scale(1.35);box-shadow:0 0 0 4px #4db8f54d}.scroll-rail__label{position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:.25rem .625rem;border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow);font-family:var(--font-title);font-size:.75rem;letter-spacing:1px;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .2s}.scroll-rail__point.is-actif .scroll-rail__label,.scroll-rail__point:hover .scroll-rail__label{opacity:1}.scroll-rail__pourcent{min-width:3.25rem;padding:.25rem .5rem;border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow);font-family:var(--font-title);font-size:.75rem;text-align:center}.navbar__actions{display:flex;align-items:center;gap:1rem}.theme-toggle{width:44px;height:44px;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;color:var(--color-text)}.theme-toggle svg{width:24px;height:24px;fill:currentColor}.menu-toggle{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;flex-direction:column;justify-content:center;gap:5px;padding:10px}.menu-toggle span{display:block;height:2px;width:100%;background:var(--color-text);border-radius:2px}.hero{position:relative;background:var(--color-primary);color:var(--color-on-primary);padding:200px 0 120px}.hero__inner{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:3rem;position:relative;z-index:1}.hero__content{max-width:600px}.hero__eyebrow{font-family:var(--font-title);font-weight:600;font-size:1.0625rem;letter-spacing:2.5px;text-transform:uppercase;margin:0 0 1.25rem}.hero__title{font-size:var(--fs-hero)}.hero__text{font-size:var(--fs-lead);line-height:1.55;color:var(--color-on-primary-muted);margin:1.5rem 0 0}.hero__buttons{display:flex;flex-wrap:wrap;align-items:center;gap:2.25rem;margin-top:2.5rem}.hero__wave{position:absolute;left:0;bottom:-199px;width:100%;height:200px;fill:var(--color-primary)}.scroll-hint{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:0;border:0;background:transparent;color:var(--color-text-muted);font-family:var(--font-title);font-size:.8125rem;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:color .2s,opacity .3s,transform .3s}.scroll-hint.is-sur-hero{color:var(--color-on-primary-muted)}.scroll-hint:hover{color:var(--color-accent)}.scroll-hint.is-cache{opacity:0;transform:translate(-50%,20px);pointer-events:none}.scroll-hint__souris{width:24px;height:38px;border:2px solid currentColor;border-radius:12px;position:relative}.scroll-hint__souris:before{content:"";position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:currentColor;animation:molette 1.6s ease-in-out infinite}@keyframes molette{0%{transform:translateY(0);opacity:1}70%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:0}}.hero__visual{position:relative;justify-self:center;width:min(100%,400px);aspect-ratio:1}.hero__visual:before{content:"";position:absolute;inset:-25px -30px 25px 30px;border-radius:50%;background:var(--color-accent);opacity:.22}.photo{position:relative;width:100%;height:100%;border-radius:50%;border:10px solid var(--color-surface);background:var(--color-photo-bg);box-shadow:var(--shadow-strong);overflow:hidden}.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo__placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--color-text-muted);font-family:var(--font-title);font-weight:600;font-size:1.375rem;text-transform:uppercase}.photo__placeholder svg{width:96px;height:96px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.badge{position:absolute;display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:var(--color-surface);color:var(--color-text);border-radius:16px;box-shadow:var(--shadow)}.badge strong{display:block;font-size:1rem}.badge small{display:block;font-size:.8125rem;color:var(--color-text-muted)}.badge--bottom{left:-60px;bottom:30px}.badge--top{right:-80px;top:40px}.badge__icon{width:40px;height:40px;border-radius:10px;background:var(--color-primary);display:grid;place-items:center;flex-shrink:0}.badge__icon svg{width:20px;height:20px;fill:none;stroke:var(--color-on-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.badge__icon--accent{background:var(--color-icone-alpha)}.badge__icon--accent svg{stroke:var(--color-on-accent)}.section{padding:260px 0 110px}.section__head{text-align:center;margin-bottom:3.5rem}.section__eyebrow{font-family:var(--font-title);font-weight:600;font-size:1.0625rem;letter-spacing:6px;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .6rem}.section__title{font-size:var(--fs-h2)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem}.card{background:var(--color-card);border-radius:var(--radius-md);padding:2.25rem;display:flex;flex-direction:column;gap:1rem}.card__icon{width:60px;height:60px;border-radius:16px;background:var(--color-primary);display:grid;place-items:center}:root[data-theme=dark] .card__icon{background:var(--color-accent)}.card__icon svg{width:28px;height:28px;fill:none;stroke:var(--color-on-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}:root[data-theme=dark] .card__icon svg{stroke:var(--color-on-accent)}.card__title{font-size:var(--fs-h3);font-weight:600}.card__text{margin:0;color:var(--color-text-muted);line-height:1.55}.section__cta{text-align:center;margin-top:3.5rem}.section+.section{padding-top:40px}.projets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem}.projet{display:flex;flex-direction:column;background:var(--color-card);border-radius:var(--radius-md);overflow:hidden;transition:transform .25s,box-shadow .25s}.projet{position:relative}.projet:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.projet__lien{color:inherit;text-decoration:none}.projet__lien:after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.projet__lien:focus-visible{outline:none}.projet:has(.projet__lien:focus-visible){outline:3px solid var(--color-accent);outline-offset:3px}.projet__voir{font-family:var(--font-title);font-weight:600;font-size:.875rem;letter-spacing:1px;text-transform:uppercase;color:var(--color-link-active);transition:transform .2s}.projet:hover .projet__voir{transform:translate(4px)}.projet__media{position:relative;aspect-ratio:16 / 9;background:var(--color-primary)}.projet__media img,.projet__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.projet__placeholder{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--color-primary),#1570B8)}.projet__placeholder svg{width:48px;height:48px;fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.projet__corps{display:flex;flex-direction:column;gap:.75rem;flex:1;padding:1.5rem 1.75rem 1.75rem}.projet__titre{font-size:1.5rem;font-weight:600}.projet__titre a{color:inherit;text-decoration:none}.projet__titre a:hover{color:var(--color-link-active)}.projet__texte{margin:0;color:var(--color-text-muted);line-height:1.55}.projet__techno{display:flex;flex-wrap:wrap;gap:.5rem;margin:auto 0 0;padding-top:.5rem;list-style:none}.projet__techno li{padding:.2rem .75rem;border-radius:var(--radius-pill);background:var(--color-bg);border:1px solid rgba(127,127,127,.25);font-size:.8125rem;font-weight:500}.section__intro{max-width:720px;margin:1.5rem auto 0;font-size:var(--fs-lead);line-height:1.55;color:var(--color-text-muted)}.veille__sous-titre{margin:0 0 1.75rem;font-size:var(--fs-h3);font-weight:600}.cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}.veille__sous-titre+.cards,.veille__sous-titre+.sources{margin-bottom:4rem}.sources:last-child{margin-bottom:0}.veille__mots{display:flex;flex-wrap:wrap;gap:.5rem;margin:auto 0 0;padding:.25rem 0 0;list-style:none}.veille__mots li{padding:.2rem .75rem;border-radius:var(--radius-pill);background:var(--color-bg);border:1px solid rgba(127,127,127,.25);font-size:.8125rem;font-weight:500}.sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.source{display:flex;align-items:center;gap:1.125rem;padding:1.25rem 1.5rem;border-radius:var(--radius-md);background:var(--color-card);color:var(--color-text);text-decoration:none;transition:transform .2s,box-shadow .2s}a.source:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.source__avatar{flex-shrink:0;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--color-primary);color:var(--color-on-primary);font-family:var(--font-title);font-size:1.25rem;font-weight:600;letter-spacing:1px}:root[data-theme=dark] .source__avatar{background:var(--color-accent);color:var(--color-on-accent)}.source__avatar:has(img){overflow:hidden;background:#fff;box-shadow:0 0 0 1px #7f7f7f33}.source__avatar img{width:100%;height:100%;object-fit:cover;display:block}.source__infos{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.source__nom{font-family:var(--font-title);font-size:1.25rem;font-weight:600}a.source:hover .source__nom{color:var(--color-link-active)}.source__sujet{font-size:.75rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-link-active)}.source__texte{font-size:.9375rem;line-height:1.5;color:var(--color-text-muted)}.source__plateforme{flex-shrink:0;align-self:flex-start;display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:var(--radius-pill);background:var(--color-bg);border:1px solid rgba(127,127,127,.25);font-size:.8125rem;font-weight:500}.source__plateforme svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.contact{display:flex;flex-wrap:wrap;justify-content:center;gap:3.5rem;margin:0;padding:0;list-style:none}.contact__lien{--marque: var(--color-primary);display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--color-text);text-decoration:none}.contact__lien--linkedin{--marque: #0A66C2}.contact__lien--github{--marque: #181717}.contact__lien--gmail{--marque: #EA4335}:root[data-theme=dark] .contact__lien--github{--marque: #3B4452}.contact__logo{width:84px;height:84px;display:grid;place-items:center;border-radius:24px;background:var(--marque);box-shadow:0 10px 24px color-mix(in srgb,var(--marque) 35%,transparent);transition:transform .25s,box-shadow .25s}.contact__logo svg{width:40px;height:40px;fill:#fff}.contact__lien:hover .contact__logo{transform:translateY(-6px);box-shadow:0 16px 32px color-mix(in srgb,var(--marque) 45%,transparent)}.contact__nom{font-family:var(--font-title);font-size:1.25rem;font-weight:600;transition:color .2s}.contact__lien:hover .contact__nom{color:var(--color-link-active)}.projet-page__bandeau{background:var(--color-primary);color:var(--color-on-primary);padding:180px 0 70px}.projet-page--introuvable{padding:200px 0 120px;text-align:center}.projet-page--introuvable .projet-page__titre{margin-bottom:2rem}.projet-page__retour{gap:.5rem;margin-bottom:2rem}.projet-page__retour svg,.projet-page__bouton svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.projet-page__bouton{gap:.5rem;margin-top:2rem}.projet-page__meta{margin:0 0 .75rem;font-family:var(--font-title);font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--color-accent)}.projet-page__titre{font-size:var(--fs-h2)}.projet-page__resume{max-width:720px;margin:1.25rem 0 0;font-size:var(--fs-lead);line-height:1.55;color:var(--color-on-primary-muted)}.projet-page__techno{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 0;padding:0;list-style:none}.projet-page__techno li{padding:.25rem .875rem;border-radius:var(--radius-pill);border:1px solid rgba(255,255,255,.3);font-size:.875rem;font-weight:500}.projet-page__grille{display:grid;grid-template-columns:240px minmax(0,1fr);gap:4rem;align-items:start;padding:70px 0 110px}.projet-page__sommaire{position:sticky;top:40px;padding-left:1rem;border-left:3px solid rgba(138,153,173,.35)}.projet-page__sommaire-titre{margin:0 0 1rem;font-family:var(--font-title);font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--color-text-muted)}.projet-page__sommaire ol{margin:0;padding:0;list-style:none}.projet-page__sommaire a{position:relative;display:block;padding:.45rem 0;color:var(--color-text-muted);text-decoration:none;line-height:1.35;transition:color .2s}.projet-page__sommaire a:hover{color:var(--color-text)}.projet-page__sommaire a.is-actif{color:var(--color-link-active);font-weight:600}.projet-page__sommaire a.is-actif:before{content:"";position:absolute;left:calc(-1rem - 3px);top:0;bottom:0;width:3px;border-radius:3px;background:var(--color-accent)}.projet-page__contenu{max-width:900px}.projet-page__duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:center;margin:2rem 0}.projet-page__duo .projet-page__capture{margin:0}.projet-page__duo-texte p:last-child{margin-bottom:0}.projet-page__duo--image-gauche .projet-page__capture{order:-1}.projet-page__partie+.projet-page__partie{margin-top:3.5rem;padding-top:3.5rem;border-top:1px solid rgba(127,127,127,.2)}.projet-page__partie h2{font-size:2rem;font-weight:600;margin-bottom:1.25rem}.projet-page__partie p{margin:0 0 1rem;line-height:1.7;color:var(--color-text-muted)}.projet-page__liste{margin:0 0 1.25rem;padding-left:1.25rem;line-height:1.8;color:var(--color-text-muted)}.projet-page__liste li::marker{color:var(--color-accent)}.projet-page__capture{margin:1.75rem 0}.projet-page__capture a{display:block}.projet-page__capture img{display:block;width:100%;border-radius:var(--radius-sm);box-shadow:var(--shadow);cursor:zoom-in}.projet-page__capture-vide{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;aspect-ratio:16 / 9;padding:1rem;border-radius:var(--radius-sm);border:2px dashed rgba(138,153,173,.5);background:var(--color-card);color:var(--color-text-muted);font-size:.875rem;text-align:center;word-break:break-all}.projet-page__capture-vide svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.projet-page__capture figcaption{margin-top:.75rem;font-size:.875rem;text-align:center;color:var(--color-text-muted)}.haut-de-page{position:fixed;right:24px;bottom:24px;z-index:20;width:52px;height:52px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow);cursor:pointer;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .3s,transform .3s,background .2s}.haut-de-page.is-visible{opacity:1;transform:none;pointer-events:auto}.haut-de-page:hover{background:var(--color-accent-hover);transform:translateY(-3px)}.haut-de-page svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.annexes{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.annexe{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:var(--radius-sm);background:var(--color-card);color:var(--color-text);text-decoration:none;transition:transform .2s,box-shadow .2s}.annexe:hover{transform:translate(4px);box-shadow:var(--shadow)}.annexe__icone{flex-shrink:0;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--color-primary)}:root[data-theme=dark] .annexe__icone{background:var(--color-accent)}.annexe__icone svg{width:20px;height:20px;fill:none;stroke:var(--color-on-primary);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}:root[data-theme=dark] .annexe__icone svg{stroke:var(--color-on-accent)}.annexe__titre{flex:1;font-weight:600}.annexe__type{padding:.15rem .625rem;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.timeline{--largeur-ligne: 3px;position:relative;max-width:1000px;margin:0 auto;padding:0;list-style:none}.timeline:before,.timeline:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:var(--largeur-ligne);margin-left:calc(var(--largeur-ligne) / -2);border-radius:3px}.timeline:before{background:#8a99ad59}.timeline:after{background:var(--color-accent);transform-origin:top;transform:scaleY(var(--remplissage, 0))}.timeline__item{position:relative;width:50%;padding-right:3.5rem;margin-bottom:1.5rem;opacity:.35;transition:opacity .4s ease}.timeline__item:nth-child(2n){margin-left:50%;padding-right:0;padding-left:3.5rem}.timeline__item:last-child{margin-bottom:0}.timeline__item+.timeline__item{margin-top:-5rem}.timeline__item.is-visible{opacity:1}.timeline__point{position:absolute;top:1.5rem;right:-24px;z-index:1;width:48px;height:48px;border-radius:50%;background:var(--color-surface);border:3px solid rgba(138,153,173,.6);display:grid;place-items:center;transition:background .4s,border-color .4s}.timeline__item:nth-child(2n) .timeline__point{right:auto;left:-24px}.timeline__point svg{width:22px;height:22px;fill:none;stroke:var(--color-text-muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}.timeline__item.is-visible .timeline__point{background:var(--color-primary);border-color:var(--color-accent)}.timeline__item.is-visible .timeline__point svg{stroke:var(--color-on-primary)}:root[data-theme=dark] .timeline__item.is-visible .timeline__point{background:var(--color-accent)}:root[data-theme=dark] .timeline__item.is-visible .timeline__point svg{stroke:var(--color-on-accent)}.timeline__carte{position:relative;background:var(--color-card);border-radius:var(--radius-md);padding:1.75rem 2rem}.timeline__carte:before{content:"";position:absolute;top:40px;right:-8px;width:16px;height:16px;background:inherit;transform:rotate(45deg)}.timeline__item:nth-child(2n) .timeline__carte:before{right:auto;left:-8px}.timeline__item--objectif .timeline__carte{background:transparent;border:2px dashed rgba(138,153,173,.5)}.timeline__item--objectif .timeline__carte:before{display:none}.timeline__date{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem;margin:0 0 .5rem;font-family:var(--font-title);font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-link-active)}.timeline__badge{padding:.1rem .625rem;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-on-accent);font-size:.75rem;letter-spacing:.5px}.timeline__titre{font-size:1.5rem;font-weight:600}.timeline__lieu{margin:.35rem 0 0;font-weight:500;color:var(--color-text-muted)}.timeline__texte{margin:.9rem 0 0;color:var(--color-text-muted);line-height:1.55}.timeline__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.1rem 0 0;padding:0;list-style:none}.timeline__tags li{padding:.2rem .75rem;border-radius:var(--radius-pill);background:var(--color-bg);border:1px solid rgba(127,127,127,.25);font-size:.8125rem}.footer{padding:2rem 0;text-align:center;font-size:.9375rem;color:var(--color-text-muted);border-top:1px solid rgba(127,127,127,.2)}@media(max-width:1100px){.nav{gap:1.1rem}.navbar__actions .btn{display:none}.projets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:960px){.menu-toggle{display:flex;order:3}.navbar__actions{margin-left:auto}.nav{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;flex-direction:column;gap:0;padding:.75rem;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow)}.nav.is-open{display:flex}.nav__link{padding:.8rem 1rem}.hero{padding:160px 0 80px}.hero__inner{grid-template-columns:1fr;text-align:center}.hero__content{margin-inline:auto}.hero__buttons{justify-content:center}.hero__visual{width:min(80%,340px);margin-top:1.5rem}.badge{text-align:left}.badge--bottom{left:-20px;bottom:8%}.badge--top{right:-20px;top:8%}.cards,.projets,.sources{grid-template-columns:1fr}.contact{gap:2rem}.contact__logo{width:68px;height:68px;border-radius:20px}.contact__logo svg{width:32px;height:32px}.source{flex-wrap:wrap}.projet-page__bandeau{padding:150px 0 50px}.projet-page__grille{grid-template-columns:1fr;gap:2.5rem;padding:50px 0 80px}.projet-page__sommaire{position:static}.projet-page__duo{grid-template-columns:1fr;gap:1.5rem}.projet-page__duo--image-gauche .projet-page__capture{order:0}.scroll-hint{display:none}.scroll-rail{right:8px}.scroll-rail__point{width:10px;height:10px}.scroll-rail__label,.scroll-rail__pourcent{display:none}.section{padding-top:180px}#parcours{padding-top:260px}.timeline:before,.timeline:after{left:24px}.timeline__item,.timeline__item:nth-child(2n){width:100%;margin-left:0;padding-right:0;padding-left:4.5rem}.timeline__item+.timeline__item{margin-top:0}.timeline__item .timeline__point,.timeline__item:nth-child(2n) .timeline__point{right:auto;left:0}.timeline__item .timeline__carte:before,.timeline__item:nth-child(2n) .timeline__carte:before{right:auto;left:-8px}.timeline__carte{padding:1.5rem}}@media(max-width:520px){.navbar{padding:0 1rem;min-height:72px}.logo__sub{letter-spacing:1.5px}.badge{padding:.5rem .75rem;gap:.5rem}.badge strong{font-size:.875rem}.badge small{font-size:.75rem}.badge__icon{width:32px;height:32px}.badge__icon svg{width:16px;height:16px}.badge--bottom{left:-10px}.badge--top{right:-10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.timeline__item{opacity:1}}
