@import"https://api.fontshare.com/v2/css?f[]=satoshi@400,500,600,700&display=swap";@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap";:root{--font-heading: "Bebas Neue", Impact, system-ui, sans-serif;--font-body: "Satoshi", system-ui, sans-serif;--font-mono: var(--font-body);--font-display: var(--font-heading);--font-sans: var(--font-body);--color-bg: #faf9fc;--color-surface: #ffffff;--color-surface-muted: #f8f6ff;--color-surface-accent: #f3efff;--color-border: #ebe6f5;--color-border-accent: #ddd6fe;--color-text: #1a1625;--color-text-muted: #64607a;--color-text-light: #9490a8;--color-primary: #7c3aed;--color-primary-dark: #5b21b6;--color-primary-light: #a78bfa;--color-pink: #ec4899;--color-pink-light: #f472b6;--gradient-brand: linear-gradient(135deg, #7c3aed 0%, #ec4899 100%);--gradient-soft: linear-gradient(135deg, #f5f3ff 0%, #fdf2f8 100%);--shadow-sm: 0 1px 3px rgba(91, 33, 182, .06);--shadow-md: 0 4px 20px rgba(91, 33, 182, .08);--shadow-lg: 0 12px 40px rgba(91, 33, 182, .1);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--radius-full: 9999px;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: clamp(1.75rem, 4vw, 2.25rem);--space-section: clamp(3rem, 7vw, 5rem);--container: min(1120px, 92vw)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;height:100%;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{display:none}body{min-height:100vh;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;scrollbar-width:none;-ms-overflow-style:none}body::-webkit-scrollbar{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:.04em}p,span,a,button,label,input,textarea,select{font-family:var(--font-body)}code,pre,kbd,samp{font-family:var(--font-mono)}img,video,canvas,svg{max-width:100%;height:auto}#root{display:flex;min-height:100%}.App{min-height:100%;display:flex;flex-direction:column;width:100%}.AppMain{flex:1 0 auto}.font-heading{font-family:var(--font-heading)!important}.font-body{font-family:var(--font-body)!important}.font-mono{font-family:var(--font-mono)!important}.tag,.projet-modal-tag,.projet-date,.bento-subtitle,.bento-cta-label,.carousel-counter,.filtrage-type-label,.filtrage-tags-label,.filtrage-tag{font-family:var(--font-body)}.page-title,.spa-section h2,.Projets h1,.About h1,.Contact h1,.Projet_Detail h1,.Legal h1{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:700;color:var(--color-text);text-align:center;margin-bottom:1.5rem;letter-spacing:.06em}.text-gradient{background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.site-nav-back{position:fixed;top:1rem;left:1rem;z-index:100}.site-nav-back a{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem 1rem;background:var(--color-surface);border:1px solid var(--color-border-accent);border-radius:var(--radius-full);color:var(--color-primary);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;text-decoration:none;box-shadow:var(--shadow-sm);transition:background .2s,border-color .2s,transform .2s}.site-nav-back a:hover{background:var(--color-surface-accent);border-color:var(--color-primary-light);transform:translateY(-1px)}.spa-nav,.site-nav-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.site-nav-item a{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:color .2s,border-color .2s,background .2s,box-shadow .2s}.site-nav-item a:hover{color:var(--color-primary);border-color:var(--color-primary-light);background:var(--color-surface-accent);box-shadow:var(--shadow-sm)}.Accueil-spa{width:100%;overflow-x:hidden}.spa-hero{position:relative;isolation:isolate;overflow:hidden;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(2.5rem,6vh,4rem) 1.25rem;background:var(--gradient-soft);border-bottom:1px solid var(--color-border);box-sizing:border-box}.spa-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.45}.spa-hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff8c,#faf9fca6,#ffffffe0)}.spa-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:clamp(1.75rem,4vh,2.75rem);width:100%;max-width:56rem}.Accueil-spa .en-tête{text-align:center;width:100%;display:flex;flex-direction:column;align-items:center;gap:clamp(.85rem,2vh,1.4rem)}.Accueil-spa .en-tête .hero-name{margin:0;font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.25rem);font-weight:700;line-height:1.05;letter-spacing:.06em;color:var(--color-text)}.Accueil-spa .en-tête .hero-role{font-family:var(--font-display);font-size:clamp(1.25rem,2.8vw,1.75rem);font-weight:700;color:var(--color-primary);line-height:1.25;margin:0}.Accueil-spa .en-tête .hero-status{display:inline-flex;align-items:center;gap:.65rem;margin:.25rem 0 0;padding:.55rem .9rem .55rem .75rem;max-width:none;border:none;border-radius:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-left:3px solid var(--color-pink);font-family:var(--font-sans);font-size:clamp(.95rem,1.6vw,1.1rem);font-weight:500;color:var(--color-text);line-height:1.35}.hero-status-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--color-pink);box-shadow:0 0 #ec489973;animation:hero-status-pulse 1.8s ease-out infinite;flex-shrink:0}.hero-status-text strong{font-weight:700;color:var(--color-primary-dark)}@keyframes hero-status-pulse{0%{box-shadow:0 0 #ec489980}70%{box-shadow:0 0 0 10px #ec489900}to{box-shadow:0 0 #ec489900}}.hero-actions{position:absolute;left:clamp(2.5rem,8vw,5.5rem);bottom:clamp(4.5rem,12vh,7.5rem);z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}.hero-cta{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.55rem;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-md);font-weight:600;text-decoration:none;box-shadow:var(--shadow-sm);transition:opacity .2s,transform .2s,box-shadow .2s,background .2s,color .2s,border-color .2s}.hero-cta:hover{transform:translateY(-2px)}.hero-cta--primary{background:var(--gradient-brand);color:#fff;border:none;box-shadow:var(--shadow-sm)}.hero-cta--primary:hover{opacity:.94;box-shadow:var(--shadow-md)}.hero-cta--secondary{background:var(--color-surface);color:var(--color-primary-dark);border:1px solid var(--color-border-accent)}.hero-cta--secondary:hover{background:var(--color-surface-accent);border-color:var(--color-primary-light)}.spa-sticky-nav{position:fixed;top:0;left:0;right:0;z-index:900;display:flex;justify-content:center;padding:.75rem 1rem;pointer-events:none;opacity:0;transform:translateY(-120%);transition:opacity .28s ease,transform .28s ease}.spa-sticky-nav.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.spa-sticky-nav-inner{display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem;padding:.45rem;background:#ffffffe0;border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.spa-sticky-nav .site-nav-item a{padding:.5rem 1.1rem}.back-to-top{display:none}@media (min-width: 769px){.back-to-top{position:fixed;right:1.5rem;bottom:1.5rem;z-index:950;width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:50%;background:#ffffffeb;color:var(--color-primary);box-shadow:var(--shadow-md);cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,background .2s,color .2s}.back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{background:var(--color-surface-accent);color:var(--color-primary-dark)}}.Accueil-spa .spa-nav{width:100%;max-width:32rem}.spa-section{max-width:var(--container);margin:0 auto;padding:var(--space-section) 0;scroll-margin-top:4.5rem}.spa-section h2{margin-bottom:1.75rem}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.bento-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.1rem;box-shadow:var(--shadow-sm)}.bento-card h2,.bento-card h3,.projet-titre,.contact-form h3,.ContenuProfil h2,.Description h2,.Compétences h2,.SousCarte h3,.projet-modal-title,.projet-modal-section-title,.legal-opaque h2,.Footer-credits strong{font-family:var(--font-body);letter-spacing:.01em}.bento-card h2{font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;color:var(--color-primary);margin-bottom:.5rem}.bento-card h3{font-family:var(--font-body);font-size:var(--text-md);font-weight:700;color:var(--color-text);margin-bottom:.25rem}.bento-card p{font-size:var(--text-sm);line-height:1.55;color:var(--color-text-muted);font-weight:400}.bento-card b{font-weight:600;color:var(--color-primary-dark)}.bento-profile{grid-column:1 / 2;grid-row:1 / 3;display:flex;flex-direction:column;gap:.75rem;text-align:center}.bento-profile img{width:100%;max-width:200px;margin:0 auto;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-md);border:2px solid var(--color-border-accent)}.bento-subtitle{font-size:var(--text-xs)!important;color:var(--color-text-light)!important}.bento-profile-info{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;width:100%}.bento-cv-link{display:inline-flex;align-items:center;justify-content:center;margin-top:.35rem;padding:.4rem .85rem;background:var(--gradient-brand);color:#fff;font-size:var(--text-xs);font-weight:600;text-decoration:none;border-radius:var(--radius-full);transition:opacity .2s,transform .2s,box-shadow .2s}.bento-cv-link:hover{opacity:.92;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.bento-bio{grid-column:2 / 5;grid-row:1 / 2}.bento-skills{grid-column:2 / 4;grid-row:2 / 3}.bento-cta{grid-column:4 / 5;grid-row:2 / 3}.bento-passions{grid-column:1 / 5;grid-row:3 / 4}.bento-bio p+p{margin-top:.55rem}.bento-skills-list{display:flex;flex-wrap:wrap;gap:.35rem}.bento-skills-list .IconButton{padding:.25rem .55rem!important;font-size:var(--text-xs)!important}.bento-skills-list .IconButton img{width:16px!important;height:16px!important}.bento-passions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.bento-passion-item{background:var(--color-surface-muted);border-radius:var(--radius-sm);padding:.6rem .7rem}.bento-passion-item strong{display:flex;align-items:center;gap:.35rem;font-size:var(--text-xs);font-weight:600;color:var(--color-pink);margin-bottom:.25rem}.bento-passion-emoji{font-size:1rem;line-height:1}.bento-passion-item p{font-size:var(--text-xs)!important;margin:0;line-height:1.45!important}.bento-cta{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:.2rem;padding:.75rem .85rem;background:var(--gradient-soft);border-color:var(--color-border-accent)}.bento-cta-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-pink);font-weight:700}.bento-cta p{font-size:var(--text-xs)!important;font-weight:600;color:var(--color-text);margin:0;line-height:1.35!important}.spa-voir-plus,.contact-form button,.filtrage-toggle,.projet-modal-cta,.projet-detail-link a{display:inline-flex;align-items:center;justify-content:center;background:var(--gradient-brand);color:#fff;border:none;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;cursor:pointer;text-decoration:none;transition:opacity .2s,transform .2s,box-shadow .2s}.spa-voir-plus{display:flex;width:fit-content;margin:1.75rem auto 0;padding:.85rem 2.25rem;font-size:var(--text-base)}.spa-voir-plus:hover,.contact-form button:hover,.filtrage-toggle:hover,.projet-modal-cta:hover,.projet-detail-link a:hover{opacity:.92;transform:translateY(-1px);box-shadow:var(--shadow-md)}.filtrage-toggle{padding:.45rem 1rem;margin:0 auto 1rem;background:var(--color-surface);color:var(--color-primary);border:1px solid var(--color-border-accent)}.filtrage-toggle:hover{background:var(--color-surface-accent)}.Projets,.About,.Contact,.Projet_Detail,.Legal{padding:2rem 1rem 3rem;min-height:auto}.Projets,.About,.Contact{max-width:var(--container);margin:0 auto;width:100%}@media (max-width: 768px){.Projets,.About,.Contact,.Projet_Detail,.Legal{padding-top:4.5rem}}.Profil{margin-top:2rem;display:grid;grid-template-columns:1fr 2fr;gap:1.5rem}.CarteProfil{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;position:sticky;top:5rem;height:fit-content;box-shadow:var(--shadow-sm)}.CarteProfil img{width:100%;height:280px;object-fit:cover;border-radius:var(--radius-md);margin-bottom:.75rem}.SousCarte{text-align:center}.SousCarte h3{font-family:var(--font-body);font-size:var(--text-xl);font-weight:700;margin-bottom:.35rem}.SousCarte h5{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:.2rem}.ContenuProfil{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm)}.ContenuProfil h2,.Description h2,.Compétences h2{font-family:var(--font-body);font-size:var(--text-xl);font-weight:700;color:var(--color-primary);margin-bottom:.75rem}.ContenuProfil p,.Description p{font-size:var(--text-sm);line-height:1.65;color:var(--color-text-muted);margin-bottom:.85rem}.Description b,.ContenuProfil b{font-weight:600;color:var(--color-primary-dark)}.Compétences{margin:1.5rem 0;padding:1.25rem;background:var(--color-surface-muted);border-radius:var(--radius-md)}.Skills-List{display:flex;flex-wrap:wrap;gap:.5rem}.contact-container{display:flex;gap:1.25rem;justify-content:center;align-items:stretch;margin-top:1.5rem;width:100%;max-width:52rem;margin-left:auto;margin-right:auto}.contact-form{flex:1 1 auto;max-width:28rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.35rem 1.4rem;box-shadow:var(--shadow-sm)}.contact-form h3{font-family:var(--font-body);font-size:var(--text-xl);font-weight:700;color:var(--color-text);margin-bottom:1rem;line-height:1.25}.contact-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.contact-form-field{min-width:0}.contact-form label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--color-primary);margin-bottom:.35rem}.contact-form input,.contact-form textarea{width:100%;padding:.65rem .75rem;margin-bottom:.85rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);transition:border-color .2s}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--color-primary-light)}.contact-form button{padding:.65rem 1.5rem;border-radius:var(--radius-sm)}.contact-platforms{display:flex;flex-direction:column;gap:.75rem;justify-content:center;flex:0 0 auto;min-width:13.5rem}.contact-platforms a{display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.95rem 1.25rem;background:var(--color-surface);border:1px solid var(--color-border-accent);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-md);font-weight:600;text-decoration:none;transition:background .2s,border-color .2s,transform .2s}.contact-platforms a:hover{background:var(--color-surface-accent);border-color:var(--color-primary-light);transform:translateY(-1px)}.contact-platforms img{width:26px;height:26px;flex-shrink:0}.contact-platforms img.contact-platform-logo{width:32px;height:32px}.filtrage-collapsible{overflow:hidden;max-height:0;opacity:0;pointer-events:none;transition:max-height .24s ease,opacity .2s ease}.filtrage-collapsible.open{max-height:600px;opacity:1;pointer-events:auto}.filtrage-bar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.25rem;box-shadow:var(--shadow-sm)}.filtrage-type-row,.filtrage-tags-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:center}.filtrage-type-label,.filtrage-tags-label{font-size:var(--text-sm);font-weight:600;color:var(--color-primary)}.filtrage-type-radio{display:flex;align-items:center;gap:.25rem;font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer}.filtrage-type-radio input{accent-color:var(--color-primary)}.filtrage-tags-list{display:flex;flex-wrap:wrap;gap:.35rem}.filtrage-tag{background:var(--color-surface-accent);color:var(--color-primary-dark);border:1px solid var(--color-border-accent);border-radius:var(--radius-full);padding:.2em .7em;font-size:var(--text-xs);font-weight:600;cursor:pointer}.filtrage-tag-remove{margin-left:.2em}.liste-projets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;width:100%;max-width:min(1280px,96vw);margin:0 auto}.projet-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0;width:100%;min-height:0;cursor:pointer;display:flex;flex-direction:column;align-items:stretch;text-align:left;color:inherit;font:inherit;appearance:none;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.projet-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-4px)}.projet-card:hover .projet-titre{color:var(--color-primary)}.projet-card:hover .projet-thumbnail{transform:scale(1.04)}.projet-card-media{position:relative;overflow:hidden;background:var(--color-surface-muted);aspect-ratio:16 / 9;line-height:0}.projet-thumbnail{width:100%;height:100%;object-fit:cover;display:block;margin:0;border-radius:0;transition:transform .35s ease}.projet-card-body{display:flex;flex-direction:column;gap:.45rem;padding:1rem 1.05rem 1.15rem}.projet-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem}.projet-type{font-family:var(--font-body);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary)}.projet-date{margin:0;font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;color:var(--color-pink)}.projet-titre{font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;color:var(--color-text);margin:0;transition:color .2s}.projet-excerpt{margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--color-text-muted)}.projet-tags-row{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-start;margin-top:.35rem}.projets-empty{text-align:center;color:var(--color-text-muted);margin-top:1rem}.Projets{max-width:var(--container);margin:0 auto;padding:2rem 1rem 3.5rem}.Projets h1{margin-top:.5rem}.projets-page-intro{text-align:center;max-width:36rem;margin:-.75rem auto 1.75rem;color:var(--color-text-muted);font-size:var(--text-md);line-height:1.55}.ProjectList{width:100%}.filtrage-tag{background:var(--color-primary-light);color:#fff;border:none}.filtrage-tag.selected{background:var(--color-primary-dark)}.projet-detail-opaque{max-width:var(--container);margin:4rem auto 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md)}.projet-detail-grid{display:flex;gap:2rem;align-items:flex-start}.projet-detail-carousel{flex:1 1 340px;min-width:280px;max-width:400px}.projet-detail-content h1{font-size:var(--text-2xl);color:var(--color-text);margin-bottom:.5rem}.projet-detail-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.projet-detail-date{font-size:var(--text-sm);color:var(--color-pink);font-weight:600}.projet-detail-desc p{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:.65em}.projet-detail-link{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.5rem}.projet-detail-link a{padding:.6em 1.25em;border-radius:var(--radius-sm)}.carousel{position:relative;width:100%;max-width:400px;margin:0 auto}.carousel--modal{max-width:none;width:100%;display:flex;flex-direction:column;gap:.75rem;justify-content:center}.carousel-viewport{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-muted);border:1px solid var(--color-border)}.carousel-media{width:100%;display:block}.carousel-media--image{aspect-ratio:16 / 10;object-fit:cover;max-height:320px}.carousel--modal .carousel-viewport{background:transparent;border:none;overflow:visible}.carousel--modal .carousel-media--image{aspect-ratio:auto;height:auto;max-height:min(72vh,640px);object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-muted)}.carousel-media--video,.carousel-media--youtube{aspect-ratio:16 / 9;background:#000;border:none}.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border:1px solid var(--color-border);border-radius:50%;background:#ffffffeb;color:var(--color-primary);font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:background .2s}.carousel-nav:hover{background:#fff}.carousel-nav--prev{left:.5rem}.carousel-nav--next{right:.5rem}.carousel-dots{display:flex;justify-content:center;gap:.35rem;margin-top:.6rem}.carousel-dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:var(--color-border-accent);cursor:pointer}.carousel-dot.is-active{background:var(--color-primary);transform:scale(1.15)}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:.85rem}.carousel-controls--solo{opacity:.7}.carousel-btn{width:2rem;height:2rem;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .2s}.carousel-btn:hover{background:var(--color-surface-accent);color:var(--color-primary-dark);transform:translateY(-1px)}.carousel-counter{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);min-width:3.25rem;text-align:center}.projet-modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#1a162573;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.projet-modal{position:relative;width:min(100%,1040px);max-height:90vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;display:flex;flex-direction:column}.projet-modal-close{position:absolute;top:.85rem;right:.85rem;z-index:2;width:2.25rem;height:2.25rem;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.projet-modal-close:hover{background:var(--color-surface-accent);color:var(--color-primary)}.projet-modal-layout{display:grid;grid-template-columns:minmax(280px,.95fr) 1.15fr;flex:1;min-height:0;max-height:90vh}.projet-modal-media{padding:1.35rem;background:var(--gradient-soft);border-right:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;min-height:0;overflow:hidden}.projet-modal-body{padding:1.75rem 2.75rem 1.5rem 1.6rem;overflow-y:auto;overscroll-behavior:contain;min-height:0;display:flex;flex-direction:column;gap:1.15rem;scrollbar-width:thin;scrollbar-color:var(--color-border-accent) transparent}.projet-modal-body::-webkit-scrollbar{width:6px}.projet-modal-body::-webkit-scrollbar-track{background:transparent}.projet-modal-body::-webkit-scrollbar-thumb{background:var(--color-border-accent);border-radius:var(--radius-full)}.projet-modal-body::-webkit-scrollbar-thumb:hover{background:var(--color-primary-light)}.projet-modal-title{font-family:var(--font-body);font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin:0;letter-spacing:.01em;text-align:left}.projet-modal-section-title{font-family:var(--font-body);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary)}.projet-modal-meta{display:flex;flex-direction:column;gap:.95rem}.projet-modal-info{display:flex;flex-direction:column;gap:.4rem}.projet-modal-section-title--expertise{margin-top:.35rem}.projet-modal-desc{font-size:var(--text-sm);line-height:1.65;color:var(--color-text-muted);margin:0}.projet-modal-desc--intro{color:var(--color-text)}.projet-modal-desc--intro strong{color:var(--color-primary-dark);font-weight:700}.projet-modal-duree{display:block;margin-top:.35rem;font-size:var(--text-sm);font-weight:700;color:var(--color-text-muted);opacity:1}.projet-modal-tags{display:flex;flex-wrap:wrap;gap:.4rem}.projet-modal-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .65rem;border-radius:var(--radius-full);border:1px solid var(--color-border-accent);background:var(--color-surface-muted);color:var(--color-primary-dark);font-size:var(--text-xs);font-weight:600}.projet-modal-tag img{width:14px;height:14px}.projet-modal-tag--type{background:#eee6ff;border-color:#d1a3ff;color:#7e00d2}.projet-modal-ctas{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.65rem}.projet-modal-cta{align-self:flex-start;margin-top:0;gap:.45rem;padding:.55rem 1.1rem}.projet-modal-cta--repo{background:#24292f;box-shadow:none}.projet-modal-cta--repo:hover{background:#1b1f23;opacity:1;box-shadow:var(--shadow-sm)}.projet-modal-cta--figma{background:#1e1e1e;box-shadow:none}.projet-modal-cta--figma:hover{background:#2c2c2c;opacity:1;box-shadow:var(--shadow-sm)}.projet-modal-cta--figma svg{flex-shrink:0}.projet-modal-details{border-top:1px solid var(--color-border);padding-top:1.1rem;display:flex;flex-direction:column;gap:.75rem}.projet-modal-list{margin:0;padding-left:1.15rem;color:var(--color-text-muted)}.projet-modal-list li{font-size:var(--text-sm);line-height:1.55;margin-bottom:.7rem}.projet-modal-list li:last-child{margin-bottom:0}.projet-modal-list strong{color:var(--color-primary-dark);font-weight:600}.SiteFooter{width:100%;background:var(--color-surface);border-top:1px solid var(--color-border);margin-top:0}.SiteFooter .Footer-inner{max-width:var(--container);margin:0 auto;padding:2rem 0}.Footer-grid{display:flex;gap:2rem;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.Footer-left{display:flex;flex-direction:column;gap:.85rem}.Footer-profile{display:flex;gap:.85rem;align-items:center}.Footer-avatar{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;border:2px solid var(--color-border-accent)}.Footer-name{font-family:var(--font-body);font-size:var(--text-xl);font-weight:700;letter-spacing:.01em;color:var(--color-text)}.Footer-name strong{font-weight:700}.Footer-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.Footer-badge{font-size:var(--text-xs);font-weight:600;color:var(--color-primary-dark);background:var(--color-surface-accent);border:1px solid var(--color-border-accent);border-radius:var(--radius-full);padding:.15em .6em}.Footer-social{display:flex;gap:.5rem}.Footer-icon{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-surface-muted);border:1px solid var(--color-border);transition:border-color .2s,transform .2s}.Footer-icon:hover{border-color:var(--color-primary-light);transform:translateY(-2px)}.Footer-icon img{width:18px;height:18px}.Footer-right{display:flex;flex-direction:column;gap:.65rem;align-items:flex-end}.Footer-nav{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}.Footer-nav a{font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);text-decoration:none;padding:.25rem .6rem;border-radius:var(--radius-full);transition:color .2s,background .2s}.Footer-nav a:hover{color:var(--color-primary);background:var(--color-surface-accent)}.Footer-credits{font-size:var(--text-xs);color:var(--color-text-light);text-align:right}.Footer-credits a{color:var(--color-primary);font-weight:600;text-decoration:none}.Legal{max-width:var(--container);margin:0 auto}.legal-opaque{display:grid;gap:.75rem;grid-template-columns:1fr}.legal-opaque>section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.legal-opaque>section:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--gradient-brand)}.legal-opaque h2{font-family:var(--font-body);font-size:var(--text-lg);font-weight:700;color:var(--color-primary);margin-bottom:.5rem}.legal-opaque p,.legal-opaque li{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.65}.legal-opaque a{color:var(--color-primary);font-weight:600;text-decoration:none}.legal-opaque a:hover{text-decoration:underline}.IconButton{position:relative;overflow:visible}.IconButton span{font-weight:600}.IconButton[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%) translateY(4px);background:var(--color-text);color:#fff;padding:4px 8px;border-radius:6px;white-space:nowrap;font-size:var(--text-xs);opacity:0;pointer-events:none;transition:opacity .14s ease,transform .14s ease;z-index:20}.IconButton:hover:after,.IconButton:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}@media (max-width: 1200px){.bento-grid{grid-template-columns:repeat(2,1fr)}.bento-profile{grid-column:1 / 2;grid-row:1 / 2}.bento-bio{grid-column:2 / 3;grid-row:1 / 2}.bento-skills{grid-column:1 / 3;grid-row:2 / 3}.bento-passions{grid-column:1 / 3;grid-row:3 / 4}.bento-cta{grid-column:1 / 3;grid-row:4 / 5}.contact-container{flex-direction:column;max-width:none}.contact-form{max-width:none;width:100%}.contact-platforms{flex-direction:row;flex-wrap:wrap;min-width:0}.contact-platforms a{flex:1 1 180px}}@media (max-width: 1024px){.Profil{grid-template-columns:1fr}.CarteProfil{position:relative;top:0}.bento-passions-grid{grid-template-columns:repeat(2,1fr)}.bento-passions-grid .bento-passion-item:last-child{grid-column:1 / -1}.liste-projets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 768px){.spa-hero{min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;padding:2.5rem 1rem;justify-content:flex-start}.spa-hero-content{justify-content:flex-start;padding-top:clamp(4.5rem,14vh,7rem);gap:1.25rem}.Accueil-spa .en-tête .hero-name{font-size:clamp(2rem,11vw,2.85rem)}.Accueil-spa .en-tête .hero-role,.hero-role-gradient{font-size:clamp(1.05rem,4.5vw,1.3rem)}.Accueil-spa .en-tête .hero-status{font-size:var(--text-sm);text-align:left}.hero-actions{left:50%;right:auto;bottom:clamp(4.5rem,10vh,6.5rem);transform:translate(-50%);align-items:center;width:max-content}.hero-cta{width:auto;min-width:11.5rem}.spa-sticky-nav{padding:.55rem .75rem}.spa-sticky-nav-inner{gap:.3rem;padding:.35rem}.spa-sticky-nav .site-nav-item a{padding:.45rem .85rem;font-size:var(--text-xs)}.spa-section{padding:2.5rem 0}.bento-grid{grid-template-columns:1fr}.bento-profile,.bento-bio,.bento-skills,.bento-passions,.bento-cta{grid-column:1 / -1;grid-row:auto}.bento-profile{flex-direction:row;text-align:left;align-items:center;gap:1rem}.bento-profile .bento-profile-info{align-items:flex-start;text-align:left;flex:1;justify-content:center;min-height:80px}.bento-profile img{width:80px;max-width:none;margin:0;flex-shrink:0}.bento-passions-grid{grid-template-columns:1fr}.bento-passions-grid .bento-passion-item:last-child{grid-column:auto}.liste-projets{grid-template-columns:1fr}.projet-card{width:100%}.projet-card-media{aspect-ratio:16 / 9}.projet-thumbnail{width:100%;height:100%;object-fit:cover}.spa-voir-plus{width:auto;min-width:12rem}.contact-container{flex-direction:column}.contact-form{max-width:none;width:100%}.contact-form-row{grid-template-columns:1fr;gap:0}.contact-platforms{order:-1;flex-direction:row;flex-wrap:wrap;gap:.5rem;justify-content:stretch;margin-bottom:.25rem;min-width:0}.contact-form h3{font-size:clamp(.95rem,3.5vw,1.2rem);white-space:nowrap}.contact-platforms a{flex:1 1 calc(33.333% - .35rem);min-width:0;padding:.55rem .6rem;font-size:var(--text-sm);gap:.4rem}.contact-platforms img{width:18px;height:18px}.contact-platforms img.contact-platform-logo{width:22px;height:22px}.projet-modal-overlay{align-items:flex-end;padding:0}.projet-modal{width:100%;max-height:92vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.projet-modal-layout{grid-template-columns:1fr;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-border-accent) transparent}.projet-modal-layout::-webkit-scrollbar{width:6px}.projet-modal-layout::-webkit-scrollbar-thumb{background:var(--color-border-accent);border-radius:9999px}.projet-modal-media{border-right:none;border-bottom:1px solid var(--color-border);overflow:visible}.projet-modal-body{max-height:none;overflow:visible;padding-right:1.6rem}.carousel--modal .carousel-media--image{max-height:min(55vh,420px)}.projet-detail-grid{flex-direction:column}.projet-detail-carousel{max-width:none;min-width:0}.Footer-right{align-items:flex-start}.Footer-credits{text-align:left}.site-nav-back{top:.65rem;left:.65rem}}@media (max-width: 480px){.bento-profile{flex-direction:column;text-align:center}.bento-profile .bento-profile-info{align-items:center;text-align:center;justify-content:center;min-height:auto}.bento-profile img{width:100px;margin:0 auto}.bento-skills-list{justify-content:center}.contact-platforms a{flex:1 1 100%;font-size:var(--text-sm);padding:.55rem .85rem}}@media (min-width: 980px){.legal-opaque{grid-template-columns:1fr 1fr}}.iridescence-container{width:100%;height:100%}.iridescence-container canvas{display:block;width:100%!important;height:100%!important}.animated-gradient-text{position:relative;margin:0 auto;display:flex;max-width:fit-content;flex-direction:row;align-items:center;justify-content:center;border-radius:0;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .5s ease-out;overflow:hidden;cursor:default}.animated-gradient-text.with-border{padding:.35rem .75rem}.gradient-overlay{position:absolute;inset:0;border-radius:inherit;z-index:0;pointer-events:none}.gradient-overlay:before{content:"";position:absolute;border-radius:inherit;width:calc(100% - 2px);height:calc(100% - 2px);left:50%;top:50%;transform:translate(-50%,-50%);background-color:#120f17;z-index:-1}.text-content{display:inline-block;position:relative;z-index:2;background-clip:text;-webkit-background-clip:text;color:transparent}.hero-role-gradient{margin:0;font-family:var(--font-heading);font-size:clamp(1.25rem,2.8vw,1.75rem);font-weight:700;line-height:1.25;-webkit-backdrop-filter:none;backdrop-filter:none}.hero-role-gradient .text-content{font-weight:700}
