:root{--color-bg:#09090b;--color-surface:#121215;--color-surface-subtle:#18181b;--color-header-bg:#09090bd1;--color-border:#27272a;--color-border-subtle:#27272a;--color-border-hover:#3f3f46;--color-text:#f4f4f5;--color-text-main:#f4f4f5;--color-text-muted:#a1a1aa;--color-text-light:#71717a;--color-primary:#f4f4f5;--color-secondary:#38bdf8;--color-on-secondary:#09090b;--font-sans:"Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:clamp(1.5rem, 1.2rem + 1vw, 2.125rem);--text-3xl:clamp(2.25rem, 1.6rem + 2.2vw, 3.75rem);--radius-xs:6px;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-full:9999px;--transition:.22s cubic-bezier(.16, 1, .3, 1);--transition-slow:.4s cubic-bezier(.16, 1, .3, 1)}[data-theme=light]{--color-bg:#f8fafc;--color-surface:#fff;--color-surface-subtle:#f1f5f9;--color-header-bg:#f8fafcd9;--color-border:#e2e8f0;--color-border-subtle:#e2e8f0;--color-border-hover:#cbd5e1;--color-text:#0f172a;--color-text-main:#0f172a;--color-text-muted:#475569;--color-text-light:#64748b;--color-primary:#0f172a;--color-secondary:#0284c7;--color-on-secondary:#fff}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5.5rem}html,body{max-width:100%;overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;transition:background-color .2s ease-out,color .2s ease-out;position:relative}a{color:inherit;transition:color var(--transition);text-decoration:none}.btn-primary{background-color:var(--color-secondary);color:var(--color-on-secondary);border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-sm);letter-spacing:.01em;border:1px solid var(--color-secondary);cursor:pointer;transition:transform var(--transition), opacity var(--transition);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;display:inline-flex}.btn-primary:hover{opacity:.92;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-primary:focus-visible{outline:2px solid var(--color-secondary);outline-offset:3px}.btn-primary .btn-arrow{transition:transform var(--transition);display:inline-block}.btn-primary:hover .btn-arrow{transform:translate(3px)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text);border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-sm);border:1px solid var(--color-border);transition:background-color var(--transition), border-color var(--transition), transform var(--transition), color var(--transition);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.4rem;display:inline-flex}.btn-secondary:hover{border-color:var(--color-secondary);color:var(--color-secondary);transform:translateY(-2px)}main{z-index:1;max-width:1180px;margin:0 auto;padding:0 1.5rem;position:relative}section{padding:5.5rem 0;position:relative}header{z-index:1000;background-color:var(--color-header-bg);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:background-color var(--transition), border-color var(--transition);position:sticky;top:0}header.scrolled{background-color:var(--color-header-bg);border-bottom-color:var(--color-border-hover)}.navbar{box-sizing:border-box;justify-content:space-between;align-items:center;gap:1.5rem;width:100%;max-width:1180px;margin:0 auto;padding:.9rem 1.5rem;display:flex}.logo{transition:opacity var(--transition);flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.logo:hover{opacity:.85}.logo-img{width:auto;height:40px;display:block}.nav-links{align-items:center;gap:.75rem;list-style:none;display:flex}.nav-links a{border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--transition), background-color var(--transition);align-items:center;padding:.5rem .9rem;font-weight:500;display:inline-flex;position:relative}.nav-links a:hover{color:var(--color-text);background-color:var(--color-surface-subtle)}.nav-links a.active{color:var(--color-secondary);background-color:var(--color-surface-subtle);font-weight:600}.nav-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.theme-toggle{background-color:var(--color-surface);width:36px;height:36px;color:var(--color-text-muted);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s ease-out,border-color .15s ease-out;display:inline-flex}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-text-muted)}.nav-cta{background-color:var(--color-surface);color:var(--color-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);transition:background-color var(--transition), color var(--transition), border-color var(--transition);align-items:center;gap:.4rem;padding:.5rem 1.1rem;font-weight:600;display:inline-flex}.nav-cta:hover{background-color:var(--color-secondary);color:var(--color-on-secondary);border-color:var(--color-secondary)}@media (width<=768px){.navbar{gap:.5rem;padding:.75rem 1rem}.logo-img{height:28px}.nav-links{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border-hover) transparent;flex:1;align-items:center;gap:.75rem;min-width:0;padding-bottom:3px;padding-left:14px;padding-right:8px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 16px calc(100% - 22px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 16px calc(100% - 22px),#0000 100%)}.nav-links::-webkit-scrollbar{height:2px}.nav-links::-webkit-scrollbar-track{background:0 0}.nav-links::-webkit-scrollbar-thumb{background-color:var(--color-border-hover);border-radius:9999px}.nav-links li{flex-shrink:0}.nav-links a{padding:.4rem .5rem;font-size:.825rem}.theme-toggle{width:32px;height:32px}.nav-cta{display:none}section{padding:3.5rem 0}}footer{border-top:1px solid var(--color-border);background-color:var(--color-surface);z-index:10;padding:3.5rem 1.5rem 2.5rem;position:relative}.footer-content{flex-direction:column;gap:2rem;max-width:1180px;margin:0 auto;display:flex}.footer-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.footer-brand{flex-direction:column;gap:.5rem;display:flex}.footer-brand-title{letter-spacing:-.02em;color:var(--color-primary);font-size:1.15rem;font-weight:800}.footer-brand-desc{font-size:var(--text-sm);color:var(--color-text-muted);max-width:380px}.footer-bottom{border-top:1px solid var(--color-border);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:2rem;display:flex}.footer-links{flex-wrap:wrap;gap:1.25rem;list-style:none;display:flex}.footer-links a:hover{color:var(--color-secondary)}#hero,#projets-hero,#contact-hero{text-align:center;flex-direction:column;align-items:center;max-width:860px;margin:0 auto;padding:6.5rem 0 4.5rem;display:flex}#hero h1,#projets-hero h1,#contact-hero h1{font-size:var(--text-3xl);letter-spacing:-.035em;color:var(--color-text-main);margin-bottom:1.4rem;font-weight:800;line-height:1.15}#hero p,#projets-hero p,#contact-hero p{font-size:var(--text-lg);color:var(--color-text-muted);text-wrap:balance;max-width:680px;margin:0 auto 2rem;line-height:1.65}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;margin-bottom:3.5rem;display:flex}.hero-stats{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:2rem;width:100%;max-width:720px;padding:1.5rem 2rem;display:grid}.legal-content{flex-direction:column;gap:2.25rem;max-width:760px;display:flex}.legal-block h2{margin-bottom:.6rem;font-size:1.15rem}.legal-block p{color:var(--color-text-muted);margin-bottom:.5rem;line-height:1.7}.stat-item{text-align:center;flex-direction:column;align-items:center;display:flex}.stat-value{color:var(--color-primary);letter-spacing:-.02em;font-size:1.6rem;font-weight:800;line-height:1.2}.stat-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:.25rem;font-weight:500}@media (width<=640px){.hero-stats{grid-template-columns:1fr;gap:1.25rem;padding:1.25rem}}.section-header{text-align:center;max-width:700px;margin:0 auto 3.5rem}section h2,.section-header h1{font-size:var(--text-2xl);letter-spacing:-.025em;color:var(--color-text-main);margin-bottom:.75rem;font-weight:800}.section-desc{font-size:var(--text-lg);color:var(--color-text-muted);line-height:1.6}.expertise-list{flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-top:2rem;display:flex}.team-grid,.projects-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;display:grid}.team-card,.project-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform var(--transition), border-color var(--transition);flex-direction:column;padding:1.75rem;display:flex;position:relative;overflow:hidden}.team-card:before,.project-card:before{content:"";background:radial-gradient(400px circle at var(--mouse-x,50%) var(--mouse-y,50%), #38bdf814, transparent 60%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.team-card:hover:before,.project-card:hover:before{opacity:1}.team-card:hover,.project-card:hover{border-color:var(--color-secondary);transform:translateY(-4px)}.team-card-header{align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.team-avatar{background-color:var(--color-surface-subtle);border:1px solid var(--color-border);width:52px;height:52px;color:var(--color-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.team-card-meta{flex-direction:column;display:flex}.team-card h3{color:var(--color-text-main);letter-spacing:-.015em;font-size:1.2rem;font-weight:700;line-height:1.25}.team-card h4{font-size:var(--text-xs);color:var(--color-secondary);text-transform:uppercase;letter-spacing:.04em;margin-top:.2rem;font-weight:600}.team-school-badge{border-radius:var(--radius-full);color:var(--color-secondary);letter-spacing:.02em;background-color:#1055b00f;border:1px solid #1055b033;align-self:flex-start;align-items:center;margin-bottom:.95rem;padding:.25rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex}.team-card p{font-size:var(--text-sm);color:var(--color-text-muted);flex-grow:1;margin-bottom:1.4rem;line-height:1.6}.skills{flex-wrap:wrap;gap:.45rem;margin-bottom:1.5rem;display:flex}.badge{background-color:var(--color-bg);color:var(--color-text-muted);font-size:var(--text-xs);border-radius:var(--radius-full);border:1px solid var(--color-border);letter-spacing:.01em;transition:border-color var(--transition), color var(--transition);padding:.3rem .7rem;font-weight:600}.team-card:hover .badge{border-color:var(--color-border-hover);color:var(--color-text)}.team-actions{border-top:1px solid var(--color-border);align-items:center;gap:.75rem;padding-top:1.1rem;display:flex}.btn-card-action{font-size:var(--text-xs);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:var(--color-bg);color:var(--color-text);transition:border-color var(--transition), color var(--transition), transform var(--transition);cursor:pointer;align-items:center;gap:.45rem;padding:.45rem .85rem;font-weight:600;display:inline-flex}.btn-card-action svg{fill:currentColor;width:15px;height:15px;transition:transform var(--transition)}.btn-card-action:hover{border-color:var(--color-secondary);color:var(--color-secondary);transform:translateY(-1px)}.btn-card-action:hover svg{transform:scale(1.1)}.project-card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.project-status{font-size:var(--text-xs);color:#10b981;border-radius:var(--radius-full);background-color:#10b9811f;border:1px solid #10b9814d;align-items:center;gap:.45rem;padding:.25rem .65rem;font-weight:600;display:inline-flex}.project-card h3{letter-spacing:-.015em;color:var(--color-text-main);margin-bottom:.5rem;font-size:1.3rem;font-weight:700}.project-card p.project-desc{font-size:var(--text-sm);color:var(--color-text-muted);flex-grow:1;margin-bottom:1.4rem;line-height:1.6}.project-card .project-link{font-size:var(--text-sm);color:var(--color-secondary);transition:gap var(--transition);align-items:center;gap:.45rem;margin-top:auto;font-weight:600;display:inline-flex}.project-card:hover .project-link{color:var(--color-primary);gap:.75rem}.contact-container{max-width:1060px;margin:0 auto}.contact-grid{grid-template-columns:1fr 1.25fr;align-items:start;gap:3rem;display:grid}@media (width<=860px){.contact-grid{grid-template-columns:1fr;gap:2.5rem}}.contact-info{flex-direction:column;gap:1.75rem;display:flex}.contact-info-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:2rem}.contact-info-card h3{color:var(--color-primary);margin-bottom:.75rem;font-size:1.2rem;font-weight:700}.contact-info-card p{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:1.5rem;line-height:1.6}.contact-points{flex-direction:column;gap:1rem;list-style:none;display:flex}.contact-point-item{font-size:var(--text-sm);color:var(--color-text-main);align-items:center;gap:.75rem;font-weight:500;display:flex}.contact-point-icon{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-secondary);background-color:#1055b014;flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-form{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:1.4rem;padding:2.5rem;display:flex}.form-group{text-align:left;flex-direction:column;gap:.45rem;display:flex}.form-group label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text);font-weight:700}.form-group input,.form-group textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-family:inherit;font-size:var(--text-sm);color:var(--color-text);background-color:var(--color-bg);transition:border-color var(--transition);padding:.85rem 1rem}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-light)}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-secondary);outline:none}.btn-submit{background-color:var(--color-secondary);color:var(--color-on-secondary);border:1px solid var(--color-secondary);border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-sm);letter-spacing:.01em;cursor:pointer;transition:transform var(--transition), opacity var(--transition);justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;padding:.95rem 1.75rem;display:inline-flex}.btn-submit:hover{opacity:.92;transform:translateY(-2px)}.btn-submit:active{transform:translateY(0)}#hero h1,#hero p,.hero-actions,.hero-stats,#projets-hero h1,#projets-hero p,#contact-hero h1,#contact-hero p{will-change:transform, opacity}
