:root{--bg:#0c1524;--bg-deep:#08101c;--bg-soft:#132033;--bg-light:#eef2f7;--ink:#0b1220;--text:#eef3f9;--muted:#9aabbf;--dim:#6b7c91;--line:#eef3f924;--line-dark:#0b12201f;--accent:#2f6fed;--accent-soft:#6ea0ff;--white:#fff;--font-sans:"Outfit", sans-serif;--font-serif:"Cormorant Garamond", Georgia, serif;--max:1180px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;font-weight:300;line-height:1.7;overflow-x:clip}body:before{content:"";pointer-events:none;z-index:9998;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}h1,h2,h3,p{margin:0}::selection{color:var(--white);background:#2f6fed59}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}.site{background:var(--bg);overflow-x:clip}.progress{z-index:80;pointer-events:none;height:2px;position:fixed;inset:0 0 auto}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}.progress__bar{transform-origin:0;background:linear-gradient(90deg, var(--accent), var(--accent-soft));will-change:transform;height:100%;transition:transform .1s linear}.menu-trigger{z-index:60;color:var(--text);align-items:center;gap:.85rem;display:flex;position:fixed;top:50%;left:.85rem;transform:translateY(-50%)}.menu-trigger__label{writing-mode:vertical-rl;letter-spacing:.28em;text-transform:uppercase;font-size:.72rem;font-weight:500;transform:rotate(180deg)}.menu-trigger__icon{gap:6px;width:1.35rem;display:grid}.menu-trigger__icon i{height:1.5px;transition:transform .4s var(--ease);background:currentColor;display:block}.menu-trigger.is-open .menu-trigger__icon i:first-child{transform:translateY(3.75px)rotate(45deg)}.menu-trigger.is-open .menu-trigger__icon i:last-child{transform:translateY(-3.75px)rotate(-45deg)}.nav-mail{z-index:60;border:1px solid var(--line);width:2.6rem;height:2.6rem;color:var(--text);transition:background .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease);border-radius:50%;place-items:center;display:grid;position:fixed;top:1.25rem;right:1.35rem}.nav-mail svg{width:1.05rem;height:1.05rem}.nav-mail:hover{background:#ffffff0f;border-color:#ffffff59;transform:translateY(-1px)}.menu{z-index:50;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .45s var(--ease), visibility .45s var(--ease);background:#08101cf7;align-content:center;padding:4rem clamp(1.5rem,6vw,5rem);display:grid;position:fixed;inset:0}.menu.is-open{opacity:1;pointer-events:auto;visibility:visible}.menu__nav{gap:.85rem;display:grid}.menu__nav a{font-family:var(--font-serif);opacity:0;align-items:baseline;gap:1rem;font-size:clamp(2.4rem,7vw,4.8rem);font-weight:500;line-height:1;display:flex;transform:translateY(24px)}.menu.is-open .menu__nav a{animation:rise .7s var(--ease-out) forwards;animation-delay:calc(80ms * var(--i) + .1s)}.menu__nav em{font-family:var(--font-sans);letter-spacing:.16em;color:var(--accent-soft);font-size:.85rem;font-style:normal}.menu__nav a:hover{color:var(--accent-soft)}.menu__note{color:var(--muted);margin-top:2.5rem;font-weight:300}.menu__note a{color:var(--text);border-bottom:1px solid #ffffff40}.section{width:min(100% - 2.5rem, var(--max));margin:0 auto;padding:clamp(5rem,12vw,8.5rem) 0}.section-wide{padding:clamp(5rem,12vw,8.5rem) 0}.eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:1rem;font-size:.74rem;font-weight:500}h2{font-family:var(--font-sans);letter-spacing:.02em;text-transform:uppercase;max-width:14ch;margin-bottom:1.25rem;font-size:clamp(2rem,5.4vw,3.8rem);font-weight:200;line-height:1.08}h2 em{font-family:var(--font-serif);text-transform:none;letter-spacing:0;color:var(--accent-soft);margin-top:.15rem;font-style:italic;font-weight:500;display:block}.reveal{opacity:0;transition:opacity .85s var(--ease-out), transform .85s var(--ease-out);transition-delay:var(--delay,0s);will-change:opacity, transform;transform:translateY(28px)}.reveal.is-visible{opacity:1;will-change:auto;transform:translate(0,0)}.title-mask{font-family:var(--font-sans);letter-spacing:.02em;text-transform:uppercase;max-width:14ch;margin-bottom:1.25rem;font-size:clamp(2rem,5.4vw,3.8rem);font-weight:200;line-height:1.08}.title-mask em{font-family:var(--font-serif);text-transform:none;letter-spacing:0;color:var(--accent-soft);font-style:italic;font-weight:500}.title-mask--dark em{color:var(--accent)}.title-mask__line{display:block;overflow:hidden}.title-mask__inner{transition:transform .9s var(--ease-out);transition-delay:var(--delay,0s);will-change:transform;display:block;transform:translateY(110%)}.reveal-line.is-visible .title-mask__inner{will-change:auto;transform:translate(0,0)}.hero{align-items:end;min-height:100svh;padding:0 0 1.25rem;display:grid;position:relative;overflow:hidden}.hero__media,.hero__veil{position:absolute;inset:0}.hero__media{z-index:0}.hero__media img{object-fit:cover;object-position:center 45%;will-change:transform;filter:saturate(.88)contrast(1.04);backface-visibility:hidden;width:100%;height:125%;transform:translate(0,0)scale(1.08)}.hero__veil{z-index:1;pointer-events:none;background:linear-gradient(#08101c66,#08101c94 45%,#08101ceb),linear-gradient(90deg,#08101cbf,#08101c38 55%,#08101c7a)}.hero__content{z-index:2;width:min(100% - 5.5rem, var(--max));margin:0 auto 2.5rem;padding-left:.5rem;position:relative}.hero__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:#f7f3efb3;opacity:0;animation:rise .9s var(--ease-out) .15s forwards;margin-bottom:1.25rem;font-size:.78rem}.hero__brand{opacity:0;max-width:min(100%,28rem);animation:rise 1.1s var(--ease-out) .28s forwards;margin:0 0 1.4rem;line-height:0;transform:translateY(28px)}.hero__brand img{width:min(100%,28rem);height:auto}.hero__title{font-family:var(--font-sans);letter-spacing:.04em;text-transform:uppercase;max-width:16ch;margin-bottom:1rem;font-size:clamp(1.55rem,3.6vw,2.5rem);font-weight:200;line-height:1.15}.hero__title-line{display:block;overflow:hidden}.hero__title-line>span,.hero__title-line>em{opacity:0;animation:rise-mask 1s var(--ease-out) forwards;display:block;transform:translateY(110%)}.hero__title-line:first-child>span{animation-delay:.45s}.hero__title-line:nth-child(2)>em{animation-delay:.58s}.hero__title em{font-family:var(--font-serif);text-transform:none;letter-spacing:0;color:var(--accent-soft);font-style:italic;font-weight:500}.hero__lead{color:#f7f3efc7;opacity:0;max-width:36ch;animation:rise .95s var(--ease-out) .58s forwards;margin-bottom:1.6rem}.hero__cta{font-family:var(--font-serif);color:var(--accent-soft);border-bottom:1px solid color-mix(in srgb, var(--accent-soft) 55%, transparent);opacity:0;animation:rise .95s var(--ease-out) .7s forwards;transition:color .3s var(--ease), border-color .3s var(--ease);padding-bottom:.15rem;font-size:1.45rem;font-style:italic;font-weight:500;display:inline-block}.hero__cta:hover{color:var(--white);border-color:var(--white)}.hero__dock{z-index:2;width:min(100% - 5.5rem, var(--max));border-top:1px solid var(--line);letter-spacing:.08em;text-transform:uppercase;color:#f7f3efb8;opacity:0;animation:rise .95s var(--ease-out) .85s forwards;flex-wrap:wrap;gap:.75rem 1.75rem;margin:0 auto;padding:1rem .5rem .35rem;font-size:.84rem;display:flex;position:relative}.hero__dock a{transition:color .35s var(--ease);position:relative}.hero__dock a:after{content:"";background:var(--accent-soft);transform-origin:50%;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:-.25rem;left:0;right:0;transform:scaleX(0)}.hero__dock a:hover{color:var(--white)}.hero__dock a:hover:after{transform:scaleX(1)}.hero__frame{z-index:2;pointer-events:none;position:absolute;inset:0}.hero__x{background:color-mix(in srgb, var(--accent-soft) 55%, transparent);opacity:0;width:min(28vw,220px);height:1px;animation:frame-in 1.1s var(--ease-out) .2s forwards;position:absolute}.hero__x:before{content:"";background:inherit;position:absolute;inset:0;transform:rotate(90deg)}.hero__x--tl{top:18%;left:8%;transform:rotate(-28deg)}.hero__x--br{animation-delay:.35s;bottom:22%;right:10%;transform:rotate(18deg)}.hero__scroll{z-index:3;letter-spacing:.2em;text-transform:uppercase;color:#eef3f9b3;opacity:0;animation:rise .9s var(--ease-out) 1.05s forwards;justify-items:center;gap:.55rem;font-size:.7rem;display:grid;position:absolute;bottom:2.2rem;right:clamp(1.25rem,4vw,3rem)}.hero__scroll i{background:linear-gradient(#ffffffbf,#0000);width:1px;height:2.8rem;display:block;position:relative;overflow:hidden}.hero__scroll i:after{content:"";background:var(--white);animation:scroll-line 1.8s var(--ease) infinite;position:absolute;inset:0}.marquee{border-block:1px solid var(--line);background:var(--bg-soft);padding:1.1rem 0;overflow:hidden}.marquee--invert{background:var(--bg-deep)}.marquee__track{width:max-content;font-family:var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);will-change:transform;gap:1.75rem;font-size:clamp(1.1rem,2.4vw,1.55rem);font-weight:300;animation:36s linear infinite marquee;display:flex}.marquee__track--reverse{animation-duration:38s;animation-direction:reverse}.marquee__track em{color:var(--accent-soft);margin-left:1.75rem;font-style:normal}.marquee:hover .marquee__track{animation-play-state:paused}.intro{gap:clamp(2.5rem,6vw,4rem);display:grid}.intro__copy p:last-child{max-width:52ch;color:var(--muted)}.stats{border-top:1px solid var(--line);gap:1rem;padding-top:2rem;display:grid}@media (width>=800px){.stats{grid-template-columns:repeat(3,1fr);gap:2rem}}.stats__item{padding-top:.5rem}.stats__item strong{font-family:var(--font-serif);color:#0000;-webkit-text-stroke:1px color-mix(in srgb, var(--accent-soft) 75%, white);margin-bottom:.65rem;font-size:clamp(3.2rem,8vw,5.5rem);font-weight:500;line-height:.9;display:block}.stats__item span{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.9rem}.dna{background:var(--bg-deep);clip-path:polygon(0 3.5rem,100% 0,100% calc(100% - 3.5rem),0 100%);margin-block:-1rem;padding-block:calc(clamp(5rem,12vw,8.5rem) + 2rem);position:relative}.dna__inner{padding-block:0}.dna__head p:last-of-type{max-width:46ch;color:var(--muted)}.dna__steps{gap:1.5rem;margin-top:clamp(2.5rem,5vw,3.5rem);display:grid}@media (width>=860px){.dna__steps{grid-template-columns:repeat(3,1fr);gap:2rem}}.dna__step{border-top:1px solid var(--line);transition:transform .45s var(--ease), border-color .45s var(--ease);padding-top:1.25rem}.dna__step:hover{border-top-color:var(--accent-soft);transform:translateY(-6px)}.dna__step span{font-family:var(--font-serif);color:var(--accent-soft);margin-bottom:.7rem;font-size:1.5rem;font-style:italic;display:block}.dna__step h3{font-family:var(--font-sans);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.55rem;font-size:1.15rem;font-weight:400}.dna__step p{color:var(--muted);font-size:.98rem}.services__grid{border-top:1px solid var(--line);gap:0;margin-top:clamp(2rem,5vw,3rem);display:grid}@media (width>=900px){.services__grid{grid-template-columns:repeat(3,1fr)}}.services__item{border-bottom:1px solid var(--line);transition:background .4s var(--ease), padding .4s var(--ease), transform .4s var(--ease);padding:1.6rem 1.1rem 1.6rem 0}@media (width>=900px){.services__item{border-right:1px solid var(--line);padding:1.8rem 1.4rem}.services__item:nth-child(3n){border-right:none}}.services__item:hover{background:#2f6fed14;transform:translateY(-3px)}.services__index{letter-spacing:.16em;color:var(--accent-soft);margin-bottom:.85rem;font-size:.78rem;display:block}.services__item h3{font-family:var(--font-serif);margin-bottom:.55rem;font-size:1.45rem;font-weight:600;line-height:1.2}.services__item p{color:var(--muted);max-width:32ch;font-size:.96rem}.work{background:var(--bg-light);color:var(--ink);clip-path:polygon(0 0,100% 3rem,100% 100%,0 calc(100% - 3rem));margin-block:-1rem;padding-block:calc(clamp(5rem,12vw,8.5rem) + 1.5rem)}.work .eyebrow,.work h2 em{color:var(--accent)}.work__list{gap:clamp(2rem,5vw,3rem);margin-top:clamp(2.2rem,5vw,3.2rem);display:grid}.work__item{color:inherit;gap:1.2rem;display:grid}@media (width>=900px){.work__item{grid-template-columns:1.3fr 1fr;align-items:center;gap:2.2rem}.work__item:nth-child(2n) .work__visual{order:2}}.work__visual{aspect-ratio:16/10;background:#111;overflow:hidden}.work__visual img{object-fit:cover;width:100%;height:100%;transition:transform 1s var(--ease-out);will-change:transform;backface-visibility:hidden;transform:translate(0,0)scale(1.06)}.work__item:hover .work__visual img{transform:translate(0,0)scale(1)}.work__meta span{letter-spacing:.14em;text-transform:uppercase;color:#6b7c91;margin-bottom:.55rem;font-size:.75rem;display:block}.work__meta h3{font-family:var(--font-serif);margin-bottom:.55rem;font-size:clamp(1.8rem,3vw,2.4rem);font-weight:600}.work__meta p{color:#3d4d61;max-width:34ch;margin-bottom:1rem}.work__meta em{font-family:var(--font-serif);color:var(--accent);transition:transform .4s var(--ease), color .35s var(--ease);align-items:center;gap:.35rem;font-size:1.15rem;font-style:italic;display:inline-flex}.work__item:hover .work__meta em{color:var(--ink);transform:translate(6px)}.trust{text-align:center}.trust__inner{justify-items:center;display:grid}.trust h2,.trust .title-mask{text-align:center;max-width:16ch;margin-inline:auto}.trust p:last-child{max-width:48ch;color:var(--muted)}.contact{background:var(--bg-deep);text-align:center;position:relative;overflow:hidden}.contact__wave{pointer-events:none;background:radial-gradient(circle,#2f6fed47,#0000 65%);border-radius:50%;width:70vmax;height:70vmax;animation:12s ease-in-out infinite alternate drift;position:absolute;inset:auto -20% -40% 30%}.contact__inner{z-index:1;justify-items:center;padding-block:clamp(5.5rem,14vw,9rem);display:grid;position:relative}.contact h2,.contact .title-mask{text-align:center;max-width:14ch;margin-inline:auto}.contact p:not(.eyebrow){max-width:42ch;color:var(--muted);margin-bottom:2rem}.contact__actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 1.5rem;display:flex}.btn{border:1px solid color-mix(in srgb, var(--accent-soft) 70%, white);min-height:3.1rem;color:var(--text);letter-spacing:.06em;text-transform:uppercase;transition:color .4s var(--ease), border-color .4s var(--ease), transform .4s var(--ease);justify-content:center;align-items:center;padding:.8rem 1.6rem;font-size:.86rem;font-weight:400;display:inline-flex;position:relative;overflow:hidden}.btn span{z-index:1;position:relative}.btn:before{content:"";background:var(--accent);transform-origin:0;transition:transform .45s var(--ease);position:absolute;inset:0;transform:scaleX(0)}.btn:hover{color:var(--white);border-color:var(--accent);transform:translateY(-3px)scale(1.02)}.btn:hover:before{transform:scaleX(1)}.contact__mail{font-family:var(--font-serif);border-bottom:1px solid #ffffff40;padding-bottom:.1rem;font-size:1.2rem;font-style:italic}.contact__mail:hover{color:var(--accent-soft);border-color:var(--accent-soft)}.contact__inline{color:var(--accent-soft);border-bottom:1px solid color-mix(in srgb, var(--accent-soft) 50%, transparent)}.contact__inline:hover{color:var(--white);border-color:var(--white)}.contact__phone{color:var(--dim);margin-top:1.5rem;font-size:.92rem}.contact__phone a{color:var(--muted);transition:color .3s var(--ease), border-color .3s var(--ease);border-bottom:1px solid #0000}.contact__phone a:hover{color:var(--text);border-color:#ffffff59}.footer{background:var(--bg-deep);border-top:1px solid var(--line);color:var(--muted)}.footer__inner{width:min(100% - 2.5rem, var(--max));gap:1.25rem;margin:0 auto;padding:2rem 0 2.4rem;display:grid}@media (width>=800px){.footer__inner{grid-template-columns:1.2fr 1fr auto;align-items:end}}.footer__brand{font-family:var(--font-serif);color:var(--text);margin-bottom:.25rem;font-size:1.5rem;font-style:italic}.footer__contact{margin-top:.55rem}.footer__contact a{color:var(--muted);transition:color .3s var(--ease)}.footer__contact a:hover{color:var(--accent-soft)}.footer__links{flex-wrap:wrap;gap:.85rem 1.25rem;font-size:.92rem;display:flex}.footer__links a:hover{color:var(--text)}.footer__copy{font-size:.85rem}@keyframes rise{to{opacity:1;transform:none}}@keyframes rise-mask{to{opacity:1;transform:translateY(0)}}@keyframes frame-in{to{opacity:1}}@keyframes scroll-line{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes drift{0%{transform:translate(0)scale(1)}to{transform:translate(-5%,-4%)scale(1.08)}}#approche,#services,#realisations,#contact{scroll-margin-top:1rem}@media (width<=760px){.menu-trigger{top:1.2rem;left:1rem;transform:none}.menu-trigger__label{writing-mode:horizontal-tb;letter-spacing:.18em;transform:none}.hero__content,.hero__dock{width:min(100% - 2rem, var(--max));margin-left:auto;margin-right:auto;padding-left:0}.hero__brand,.hero__brand img{width:min(100%,18.5rem);max-width:min(100%,18.5rem)}.hero__dock{gap:.65rem 1.1rem;font-size:.72rem}.hero__scroll,.hero__frame{display:none}.section{width:min(100% - 2rem, var(--max))}.dna,.work{clip-path:none;margin-block:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal-line .title-mask__inner,.hero__eyebrow,.hero__brand,.hero__title-line>span,.hero__title-line>em,.hero__lead,.hero__cta,.hero__dock,.hero__scroll,.hero__x,.menu__nav a,.contact__wave,.hero__scroll i:after,.marquee__track{opacity:1!important;filter:none!important;transition:none!important;animation:none!important;transform:none!important}.title-mask__inner{transform:none!important}}
