@font-face{font-family:'SF Pro Display';src:local('SF Pro Display'),local('SF Pro'),local('.SF Pro Display'),local('.SFNSDisplay'),url('../fonts/SF-Pro.woff2') format('woff2');font-weight:100 900;font-stretch:75% 150%;font-style:normal;font-display:swap}:root{--font-display:'SF Pro Display',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;--font-body:'SF Pro Display',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;--color-text:#000000;--color-bg:#fffcfc;--color-warm-gray:#736E68;--color-accent:#C4A77D;--color-border:rgba(0, 0, 0, 0.08);--color-border-light:rgba(0, 0, 0, 0.12);--page-padding:clamp(1.25rem, 4vw, 5rem);--ease-out:cubic-bezier(0.4, 0, 0.2, 1);--transition-fast:0.3s ease;--transition-medium:0.4s ease;--z-base:1;--z-header:1000;--z-burger:1001;--z-nav-mobile:999;--z-loader:9999}*{margin:0;padding:0;box-sizing:border-box}[role=button],a,button,input,select,textarea{touch-action:manipulation}body,html{scrollbar-width:none;-ms-overflow-style:none}body::-webkit-scrollbar,html::-webkit-scrollbar{display:none}html{font-size:16px;overflow-x:hidden}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);overflow-x:hidden;scroll-behavior:smooth}p{hyphens:auto;-webkit-hyphens:auto}body.loading,body.menu-open{overflow:hidden}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}a:focus-visible,button:focus-visible{outline:2px solid var(--color-text);outline-offset:3px}:focus:not(:focus-visible){outline:0}.header{position:fixed;top:0;left:0;right:0;z-index:var(--z-header);padding:1rem 3rem 4rem 3rem;display:flex;justify-content:space-between;align-items:center}.header::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;backdrop-filter:blur(60px);-webkit-backdrop-filter:blur(60px);-webkit-mask-image:linear-gradient(to bottom,black 0%,black 35%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 35%,transparent 100%);pointer-events:none;z-index:-1}.header::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,rgba(255,252,252,.85) 0,rgba(255,252,252,.5) 35%,rgba(255,252,252,0) 100%);pointer-events:none;z-index:-1}.logo{display:flex;align-items:center;text-decoration:none;position:relative;z-index:2}.logo img{height:3.5rem;width:auto;opacity:0;transition:opacity .15s ease}.about-page .logo img,.contact-page .logo img,.projet-detail-page .logo img,.projet-page .logo img,.projets-page .logo img{opacity:1}.nav{display:flex;gap:3rem;position:relative;z-index:2}.nav a{font-family:var(--font-display);font-size:11px;font-weight:250;font-variation-settings:'wdth' 150;color:var(--color-text);text-decoration:none;letter-spacing:.05em;text-transform:uppercase;opacity:1;transition:opacity var(--transition-fast);position:relative;padding-bottom:2px}.nav a::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}.nav a:hover{opacity:1}.nav a:hover::after{transform:scaleX(1)}.nav a.active::after{transform:scaleX(1)}.nav-mobile a.active{opacity:1}.lang-toggle{font-family:var(--font-display);font-size:10px;font-weight:181;font-variation-settings:'wdth' 150;color:var(--color-text);background:0 0;border:1px solid rgba(0,0,0,.15);border-radius:50px;padding:.3rem .7rem;cursor:pointer;letter-spacing:.05em;text-transform:uppercase;position:relative;z-index:2;transition:background var(--transition-fast),border-color var(--transition-fast);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.lang-toggle:hover{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.3)}.header-controls{display:flex;align-items:center;gap:.5rem;position:relative;z-index:2}.header-controls .lang-toggle,.header-controls .theme-toggle{position:static}.theme-toggle{background:0 0;border:none;cursor:pointer;padding:.3rem;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;color:var(--color-text);transition:color var(--transition-medium),opacity var(--transition-fast);min-width:44px;min-height:44px}.theme-toggle:hover{opacity:.6}.theme-toggle svg{width:16px;height:16px}.theme-icon-sun{display:none}[data-theme=dark] .theme-icon-moon{display:none}[data-theme=dark] .theme-icon-sun{display:block}.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:24px;height:24px;cursor:pointer;z-index:var(--z-burger);position:relative;min-width:44px;min-height:44px;align-items:center}.burger span{display:block;width:24px;height:1.5px;background:var(--color-text);transition:all .3s var(--ease-out);transform-origin:center}.burger.active span:first-child{transform:translateY(6.5px) rotate(45deg)}.burger.active span:nth-child(2){opacity:0}.burger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.header--inverted{--color-text:#ffffff}.header--inverted::after{background:linear-gradient(to bottom,rgba(0,0,0,.85) 0,rgba(0,0,0,.5) 35%,rgba(0,0,0,0) 100%)!important}.header--inverted .nav a{color:#fff}.header--inverted .nav a::after{background:#fff}.header--inverted .lang-toggle{color:#fff;border-color:rgba(255,255,255,.3)}.header--inverted .lang-toggle:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.5)}.header--inverted .logo img{filter:invert(1)}.header--inverted .theme-toggle{color:#fff}.header--inverted .burger span{background:#fff}.header-invertible .header::after,.header-invertible .header::before{transition:background var(--transition-medium)}.header-invertible .burger span,.header-invertible .lang-toggle,.header-invertible .nav a,.header-invertible .theme-toggle{transition:color var(--transition-medium),background var(--transition-medium),border-color var(--transition-medium)}.header-invertible .logo img{transition:filter var(--transition-medium),opacity .15s ease}.nav-mobile{display:none;position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;background:var(--color-bg);z-index:var(--z-nav-mobile);flex-direction:column;justify-content:center;align-items:center;gap:2rem;opacity:0;pointer-events:none;transition:opacity var(--transition-medium)}.nav-mobile.active{opacity:1;pointer-events:auto}.nav-mobile a{font-family:var(--font-display);font-size:clamp(1.5rem, 6vw, 2.5rem);font-weight:300;font-variation-settings:'wdth' 150;color:var(--color-text);text-decoration:none;letter-spacing:.05em;text-transform:uppercase;opacity:0;transform:translateY(20px);transition:opacity var(--transition-medium),transform var(--transition-medium)}.nav-mobile.active a{opacity:1;transform:translateY(0)}.nav-mobile.active a:first-child{transition-delay:0.1s}.nav-mobile.active a:nth-child(2){transition-delay:0.15s}.nav-mobile.active a:nth-child(3){transition-delay:0.2s}.nav-mobile.active a:nth-child(4){transition-delay:0.25s}.nav-mobile .header-controls{display:flex;align-items:center;gap:1rem;opacity:0;transform:translateY(20px);transition:opacity var(--transition-medium),transform var(--transition-medium)}.nav-mobile.active .header-controls{opacity:1;transform:translateY(0);transition-delay:0.3s}.nav-mobile .lang-toggle{font-size:clamp(1rem, 4vw, 1.5rem);font-weight:300;padding:.5rem 1.2rem;border-color:rgba(0,0,0,.2);transition:background var(--transition-fast),border-color var(--transition-fast)}.nav-mobile .theme-toggle svg{width:24px;height:24px}.btn{display:inline-flex;align-items:center;gap:.75rem;padding:1rem 2.2rem;font-family:var(--font-body);font-size:.85rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;border-radius:50px;cursor:pointer;position:relative;overflow:hidden;transition:all .4s var(--ease-out)}.btn::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-out);z-index:0}.btn span,.btn svg{position:relative;z-index:1;transition:color var(--transition-medium),transform var(--transition-medium)}.btn svg{width:18px;height:18px}.btn:hover{box-shadow:0 8px 30px rgba(0,0,0,.15)}.btn:hover::before{transform:scaleX(1);transform-origin:left}.btn:hover svg{transform:translateX(4px)}.btn-primary{background:0 0;color:var(--color-text);padding:0;border:none;border-radius:0;font-family:var(--font-display);font-size:13px;font-weight:400;font-variation-settings:'wdth' 150;letter-spacing:.05em;text-transform:none;position:relative;padding-bottom:.5rem}.btn-primary::before{display:none}.btn-primary::after{content:'';position:absolute;bottom:.2rem;left:0;width:0;height:2px;background:var(--color-text);transition:width .4s var(--ease-out)}.btn-primary:hover{box-shadow:none}.btn-primary:hover::after{width:100%}.btn-primary:hover span,.btn-primary:hover svg{color:var(--color-text)}.btn-outline{background:0 0;color:var(--color-text);border-color:var(--color-text)}.btn-outline::before{background:var(--color-text)}.btn-outline:hover span,.btn-outline:hover svg{color:var(--color-bg)}.marquee{display:flex;width:max-content}.marquee-content{display:flex;align-items:center;gap:2rem;animation:marqueeScroll 25s linear infinite;padding-right:2rem}.marquee-content span{font-family:var(--font-display);font-size:clamp(1.2rem, 3vw, 2rem);font-weight:400;color:var(--color-text);white-space:nowrap}.marquee-content .separator{font-size:.4rem;opacity:.25}@keyframes marqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}.footer{background:var(--color-bg);padding:4rem 0 3rem 0;position:relative;z-index:600;overflow-x:hidden}.footer-main{margin-bottom:8rem;width:100%;padding:0}.footer-cta{width:100%;display:flex;flex-direction:column;gap:0}.footer-cta-line-1{font-family:var(--font-display);font-size:clamp(2.8rem, 16vw, 24rem);font-weight:248;font-variation-settings:'wdth' 117;line-height:.9;letter-spacing:-.05em;color:var(--color-text);margin:0;white-space:nowrap}.footer-cta-line-2{display:flex;justify-content:space-between;align-items:baseline;width:100%;gap:2rem}.footer-cta-idea{font-family:var(--font-display);font-size:clamp(2.8rem, 16vw, 24rem);font-weight:248;font-variation-settings:'wdth' 117;line-height:.9;letter-spacing:-.05em;color:var(--color-text);margin:0;white-space:nowrap}.footer-cta-subtitle{font-family:var(--font-display);font-size:clamp(.6rem, 1.2vw, 1.5rem);font-weight:400;font-variation-settings:'wdth' 150;letter-spacing:.05em;color:var(--color-text);margin:0;margin-right:2vw;white-space:nowrap;flex-shrink:0;text-decoration:none;position:relative;padding-bottom:.3rem;transition:opacity var(--transition-fast)}.footer-cta-subtitle::after{content:'';position:absolute;bottom:.2rem;left:0;width:0;height:2px;background:var(--color-text);transition:width .4s var(--ease-out)}.footer-cta-subtitle:hover{opacity:1}.footer-cta-subtitle:hover::after{width:100%}.footer-bottom{display:flex;justify-content:space-between;align-items:flex-end;padding:2rem 3vw 0}.footer-bottom-left p{font-family:var(--font-body);font-size:.9rem;font-weight:300;color:var(--color-text);margin:.25rem 0}.claude-credit{color:rgba(0,0,0,.07)}[data-theme=dark] .claude-credit{color:rgba(255,255,255,.07)}.footer-bottom-right{text-align:right}.footer-social{font-family:var(--font-body);font-size:.9rem;font-weight:300;color:var(--color-text);margin-bottom:.5rem}.footer-social a{color:var(--color-text);text-decoration:none;transition:opacity var(--transition-fast)}.footer-social a:hover{opacity:.6}.footer-email{font-family:var(--font-body);font-size:.9rem;font-weight:300;color:var(--color-text);text-decoration:none;transition:opacity var(--transition-fast)}.footer-email:hover{opacity:.6}@media (max-width:750px){.header{padding:1rem 1.25rem 1.5rem 1.25rem;padding-left:max(1.25rem,env(safe-area-inset-left,0));padding-right:max(1.25rem,env(safe-area-inset-right,0))}.header::before{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.logo img{height:2rem}.nav{display:none}.header .header-controls{display:none}.burger{display:flex}.nav-mobile{display:flex;will-change:opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden}.footer{padding:6rem 0 2rem 0}.footer-main{margin-bottom:4rem}.footer-bottom{padding:2rem 1.5rem 0;padding-bottom:env(safe-area-inset-bottom,0)}.marquee-content span{font-size:1.2rem}.btn-primary::after,.footer-cta-subtitle::after{height:1px}}@media (max-width:480px){.header{padding:.75rem 1rem 1.25rem 1rem}.logo img{height:1.4rem}.footer-bottom{flex-direction:column;align-items:flex-start;gap:1.5rem}.footer-bottom-right{text-align:left}}html.theme-transition,html.theme-transition .btn,html.theme-transition .btn-primary,html.theme-transition .burger span,html.theme-transition .footer,html.theme-transition .footer *,html.theme-transition .header,html.theme-transition .header::after,html.theme-transition .header::before,html.theme-transition .lang-toggle,html.theme-transition .marquee-content span,html.theme-transition .nav a,html.theme-transition .nav-mobile,html.theme-transition .nav-mobile a,html.theme-transition .section *,html.theme-transition .theme-toggle,html.theme-transition body{transition:color .8s ease,background-color .8s ease,border-color .8s ease,box-shadow .8s ease,filter .8s ease!important}[data-theme=dark]{--color-text:#e8e8e8;--color-bg:#0a0a0a;--color-warm-gray:#9a958f;--color-border:rgba(255, 255, 255, 0.08);--color-border-light:rgba(255, 255, 255, 0.12)}[data-theme=dark] .header::after{background:linear-gradient(to bottom,rgba(10,10,10,.85) 0,rgba(10,10,10,.5) 35%,rgba(10,10,10,0) 100%)}[data-theme=dark] .logo img{filter:invert(1)}[data-theme=dark] .lang-toggle{border-color:rgba(255,255,255,.15)}[data-theme=dark] .lang-toggle:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.3)}[data-theme=dark] .burger span{background:var(--color-text)}[data-theme=dark] .nav-mobile .lang-toggle{border-color:rgba(255,255,255,.2)}[data-theme=dark] .btn:hover{box-shadow:0 8px 30px rgba(255,255,255,.08)}[data-theme=dark] .header--inverted .logo img{filter:invert(1)}[data-theme=dark] :focus-visible{outline-color:var(--color-text)}