:root{--paper:#ece7dd;--paper-2:#e2dccd;--paper-3:#d8d1c0;--ink:#17140f;--ink-2:#45413a;--ink-3:#837c70;--clay:#b65e3f;--clay-deep:#97462b;--line:#17140f29;--line-soft:#17140f14;--ff-display:"Fraunces", Georgia, serif;--ff-body:"Inter", system-ui, sans-serif;--ff-mono:"Space Mono", monospace;--pad:clamp(1.25rem, 5vw, 6rem);--maxw:1480px;--ease:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}body{font-family:var(--ff-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:clamp(15px,1.05vw,17px);line-height:1.6;overflow-x:hidden}body.menu-open{overflow:hidden}body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}strong{font-weight:600}::selection{background:var(--clay);color:var(--paper)}.mono{font-family:var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:.68rem}.ital{font-style:italic;font-weight:340}.grain{z-index:9000;pointer-events:none;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.scrollbar{z-index:8000;background:var(--line-soft);height:2px;position:fixed;top:0;left:0;right:0}.scrollbar span{background:var(--clay);transform-origin:0;width:100%;height:100%;display:block;transform:scaleX(0)}.cursor{z-index:9500;pointer-events:none;background:var(--clay);width:8px;height:8px;transition:width .3s var(--ease), height .3s var(--ease), background .3s, margin .3s var(--ease);mix-blend-mode:normal;border-radius:50%;place-items:center;margin:-4px 0 0 -4px;display:grid;position:fixed;top:0;left:0}.cursor.is-link{border:1px solid var(--ink);background:0 0;width:38px;height:38px;margin:-19px 0 0 -19px}.cursor.is-active{background:var(--clay);width:84px;height:84px;margin:-42px 0 0 -42px}.cursor__label{font-family:var(--ff-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--paper);opacity:0;font-size:.62rem}.cursor.is-active .cursor__label{opacity:1}.loader{z-index:9999;background:var(--ink);color:var(--paper);place-items:center;display:grid;position:fixed;inset:0}.loader__inner{text-align:center;width:min(80vw,420px)}.loader__mark{font-family:var(--ff-display);letter-spacing:-.04em;font-size:clamp(4rem,14vw,9rem);font-weight:400;line-height:1}.loader__bar{background:#ece7dd33;height:1px;margin:2rem 0 .8rem;overflow:hidden}.loader__bar span{background:var(--clay);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.loader__meta{font-family:var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;color:#ece7dd99;justify-content:space-between;font-size:.7rem;display:flex}.nav{z-index:7000;padding:1.4rem var(--pad);transition:transform .6s var(--ease), background .4s, padding .4s;mix-blend-mode:normal;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.nav.is-scrolled{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft);background:#ece7ddd1;padding-top:1rem;padding-bottom:1rem}.nav.is-hidden{transform:translateY(-110%)}.nav__brand{align-items:center;gap:.7rem;display:flex}.nav__logo{width:auto;height:1.35rem;transition:height .4s var(--ease);display:block}.nav.is-scrolled .nav__logo{height:1.2rem}.nav__mark{font-family:var(--ff-display);letter-spacing:-.04em;font-size:1.7rem;line-height:1}.nav__name{font-family:var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;padding-bottom:1px;font-size:.68rem}.nav__links{gap:2rem;display:flex}.nav__links a{padding:.2rem 0;font-size:.82rem;position:relative}.nav__links a:after{content:"";background:var(--clay);width:0;height:1px;transition:width .4s var(--ease);position:absolute;bottom:0;left:0}.nav__links a:hover:after{width:100%}.nav__cta{border:1px solid var(--ink);border-radius:40px;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-size:.8rem;transition:background .4s,color .4s;display:inline-flex}.nav__cta:hover{background:var(--ink);color:var(--paper)}.nav__cta svg path{stroke:currentColor}.nav__burger{background:0 0;border:none;flex-direction:column;justify-content:center;gap:6px;width:34px;height:34px;display:none}.nav__burger i{background:var(--ink);width:24px;height:1.5px;transition:transform .4s var(--ease), opacity .3s;display:block}.nav.is-open .nav__burger i:first-child{transform:translateY(3.7px)rotate(45deg)}.nav.is-open .nav__burger i:nth-child(2){transform:translateY(-3.7px)rotate(-45deg)}.section-head{padding:0 var(--pad);max-width:var(--maxw);margin:0 auto}.section-title{font-family:var(--ff-display);letter-spacing:-.03em;margin-top:1rem;font-size:clamp(2.4rem,7vw,6rem);font-weight:380;line-height:.98}.section-intro{max-width:46ch;color:var(--ink-2);margin-top:1.6rem;font-size:1.05rem}.line{display:block;overflow:hidden}.line>span{display:block}.hero{min-height:100svh;position:relative;overflow:hidden}.hero__canvas{z-index:1;width:100%;height:100%;position:absolute;inset:0}.hero__bg{z-index:0;background:radial-gradient(120% 90% at 70% 20%, #fffaf099, transparent 60%), radial-gradient(100% 100% at 50% 120%, var(--paper-3), transparent 55%);position:absolute;inset:0}.hero__grid{z-index:3;min-height:100svh;padding:7rem var(--pad) clamp(2rem, 5vw, 4rem);max-width:var(--maxw);pointer-events:none;flex-direction:column;justify-content:flex-end;margin:0 auto;display:flex;position:relative}.hero__grid:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(80% 70% at 22% 78%, var(--paper) 0%, #ece7ddb3 38%, transparent 70%);position:absolute;inset:0}.hero__grid a,.hero__grid button{pointer-events:auto}.hero__eyebrow{font-family:var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.6rem;margin-bottom:1.4rem;font-size:.72rem;display:inline-flex}.hero__eyebrow .dot{background:var(--clay);border-radius:50%;width:7px;height:7px;animation:2.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.hero__title{font-family:var(--ff-display);letter-spacing:-.04em;font-size:clamp(3.4rem,16vw,15rem);font-weight:360;line-height:.82}.hero__title .line>span{display:block}.hero__tag{max-width:40ch;color:var(--ink-2);margin-top:1.8rem;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.5}.hero__foot{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-top:clamp(2rem,5vw,3.5rem);display:flex}.hero__scroll{font-family:var(--ff-mono);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.8rem;font-size:.74rem;display:inline-flex}.hero__scroll-line{background:var(--ink);width:54px;height:1px;position:relative;overflow:hidden}.hero__scroll-line:after{content:"";background:var(--clay);animation:2.2s infinite slide;position:absolute;inset:0;transform:translate(-100%)}@keyframes slide{50%{transform:translate(0)}to{transform:translate(100%)}}.hero__caption{text-align:right;font-family:var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);flex-direction:column;gap:.3rem;font-size:.7rem;display:flex}.manifesto{padding:clamp(6rem, 14vw, 12rem) var(--pad);max-width:1300px;margin:0 auto}.manifesto__lead{font-family:var(--ff-display);letter-spacing:-.02em;font-size:clamp(1.6rem,4.4vw,3.6rem);font-weight:340;line-height:1.18}.manifesto__lead .word{display:inline-block;overflow:hidden}.manifesto__lead .word>span{display:inline-block}.manifesto__row{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.2rem;display:flex}.approche{padding:clamp(3rem,8vw,6rem) 0}.pillars{max-width:var(--maxw);padding:0 var(--pad);grid-template-columns:repeat(3,1fr);gap:0;margin:clamp(2.5rem,6vw,5rem) auto 0;display:grid}.pillar{border-top:1px solid var(--ink);margin-right:2rem;padding:2.4rem 2rem 2.4rem 0;transition:opacity .4s;position:relative}.pillar:not(:last-child){border-right:1px solid var(--line)}.pillar__n{color:var(--clay);margin-bottom:2.2rem;display:block}.pillar__title{font-family:var(--ff-display);letter-spacing:-.02em;margin-bottom:1rem;font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:400}.pillar__text{color:var(--ink-2);margin-bottom:1.8rem;font-size:.98rem}.pillar__tags{flex-wrap:wrap;gap:.4rem;display:flex}.pillar__tags li{border:1px solid var(--line);border-radius:30px;padding:.25rem .7rem;font-size:.62rem}.projets{padding:clamp(6rem,14vw,11rem) 0 clamp(4rem,8vw,7rem)}.projects{max-width:var(--maxw);padding:0 var(--pad);margin:clamp(3rem,7vw,6rem) auto 0}.project{border-top:1px solid var(--line);grid-template-columns:1.2fr 1fr;align-items:center;gap:clamp(1.5rem,4vw,4rem);padding:clamp(2.5rem,5vw,4rem) 0;display:grid;position:relative}.project:nth-child(2n){grid-template-columns:1fr 1.2fr}.project:nth-child(2n) .project__media{order:2}.project__index{color:var(--ink-3);position:absolute;top:1.4rem;right:0}.project__media{aspect-ratio:4/3;background:var(--paper-2);position:relative;overflow:hidden}.project__media img{object-fit:cover;width:100%;height:110%;transition:transform 1.1s var(--ease)}.project:hover .project__media img{transform:scale(1.04)}.project__status{background:var(--paper);color:var(--clay-deep);padding:.3rem .7rem;position:absolute;bottom:1rem;left:1rem}.project__name{font-family:var(--ff-display);letter-spacing:-.03em;font-size:clamp(2rem,5vw,3.6rem);font-weight:380;line-height:1}.project__blurb{color:var(--ink-2);max-width:42ch;margin:1.2rem 0 1.8rem}.project__meta{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1rem 2rem;padding-top:1.4rem;display:grid}.project__meta li{flex-direction:column;gap:.2rem;font-size:.92rem;display:flex}.project--text .project__media{place-items:center;display:grid}.project__noimg{background:var(--ink);width:100%;height:100%;color:var(--paper-3);place-items:center;display:grid;position:relative;overflow:hidden}.project__noimg .mono{color:#ece7dd8c;z-index:2}.blueprint{background-image:linear-gradient(var(--line-soft) 1px, transparent 1px), linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);opacity:.5;background-size:28px 28px;position:absolute;inset:0}.project__noimg .blueprint{background-image:linear-gradient(#ece7dd14 1px,#0000 1px),linear-gradient(90deg,#ece7dd14 1px,#0000 1px)}.build{background:var(--ink);height:420vh;color:var(--paper);position:relative}.build__sticky{height:100svh;position:relative;overflow:hidden}.build__canvas{width:100%;height:100%;position:absolute;inset:0}.build__copy{left:var(--pad);z-index:2;max-width:30ch;position:absolute;bottom:clamp(3rem,8vw,6rem)}.build__copy .mono{color:var(--clay)}.build__title{font-family:var(--ff-display);letter-spacing:-.02em;margin:.6rem 0 .8rem;font-size:clamp(2rem,5vw,4rem);font-weight:380}.build__text{color:#ece7ddb3;font-size:1.05rem}.build__progress{left:var(--pad);right:var(--pad);z-index:2;background:#ece7dd2e;height:1px;position:absolute;bottom:2rem}.build__progress span{background:var(--clay);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.build .build__copy:before{content:"Construire le temps";font-family:var(--ff-mono);letter-spacing:.1em;text-transform:uppercase;color:#ece7dd66;font-size:.68rem;position:absolute;top:-2rem;left:0}.actions{padding:clamp(6rem,14vw,11rem) 0}.actions__gallery{max-width:var(--maxw);padding:0 var(--pad);columns:3;column-gap:clamp(.6rem,1.5vw,1.2rem);margin:clamp(3rem,7vw,6rem) auto 0}.act{background:var(--paper-2);break-inside:avoid;margin-bottom:clamp(.6rem,1.5vw,1.2rem);display:block;position:relative;overflow:hidden}.act img{filter:grayscale()contrast(1.05);width:100%;height:auto;transition:filter .6s, transform 1.1s var(--ease);display:block}.act:hover img{filter:grayscale(.15)contrast();transform:scale(1.03)}.act figcaption{color:var(--paper);opacity:0;transition:opacity .4s, transform .4s var(--ease);background:linear-gradient(#0000,#17140fb8);padding:.7rem;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.act:hover figcaption{opacity:1;transform:translateY(0)}.agenda{max-width:var(--maxw);padding:0 var(--pad);margin:clamp(3rem,6vw,5rem) auto 0}.agenda__head{padding-bottom:1rem}.agenda__row{border-top:1px solid var(--line);transition:padding-left .4s var(--ease);grid-template-columns:.8fr 2fr 1fr;align-items:baseline;gap:1rem;padding:1.3rem 0;display:grid}.agenda__row:last-child{border-bottom:1px solid var(--line)}.agenda__row:hover{padding-left:1rem}.agenda__title{font-family:var(--ff-display);font-size:clamp(1.1rem,2vw,1.6rem);font-weight:400}.agenda__place{text-align:right}.atelier{padding:clamp(6rem,14vw,11rem) 0}.atelier__grid{max-width:var(--maxw);padding:0 var(--pad);grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,6vw,6rem);margin:clamp(3rem,7vw,6rem) auto 0;display:grid}.atelier__media{position:relative}.atelier__media img{aspect-ratio:4/5;object-fit:cover;filter:grayscale(.2);width:100%}.atelier__media figcaption{margin-top:.7rem}.atelier__body p{color:var(--ink-2);margin-bottom:1.5rem;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.55}.atelier__body p strong{color:var(--ink)}.atelier__facts{border-top:1px solid var(--ink);margin-top:2.5rem}.atelier__facts li{border-bottom:1px solid var(--line);justify-content:space-between;gap:1rem;padding:1rem 0;display:flex}.atelier__facts li span:last-child{font-family:var(--ff-display);text-align:right;font-size:1.05rem}.contact{background:var(--ink);color:var(--paper);padding:clamp(5rem, 12vw, 9rem) var(--pad) 0}.contact__inner{max-width:var(--maxw);margin:0 auto}.contact__inner .mono{color:#ece7dd80}.contact__title{font-family:var(--ff-display);letter-spacing:-.04em;margin:1.5rem 0;font-size:clamp(3rem,13vw,11rem);font-weight:360;line-height:.86}.contact__mail{font-family:var(--ff-display);color:var(--clay);border-bottom:1px solid #b65e3f66;padding-bottom:.2rem;font-size:clamp(1.5rem,4.5vw,3.2rem);font-style:italic;font-weight:340;transition:color .4s,border-color .4s;display:inline-block}.contact__mail:hover{color:var(--paper);border-color:var(--paper)}.contact__cols{border-top:1px solid #ece7dd29;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:clamp(3rem,8vw,6rem);padding-top:2rem;display:grid}.contact__cols .mono{margin-bottom:.7rem;display:block}.contact__cols a,.contact__cols p{color:var(--paper);opacity:.85;font-size:1.05rem;transition:opacity .3s;display:block}.contact__cols a:hover{opacity:1;color:var(--clay)}.footer{max-width:var(--maxw);border-top:1px solid #ece7dd29;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:clamp(4rem,8vw,7rem) auto 0;padding:2rem 0;display:flex}.footer__mark{font-family:var(--ff-display);letter-spacing:-.04em;font-size:2rem}.footer .mono{color:#ece7dd73}.lightbox{z-index:9600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#17140ff5;padding:clamp(1rem,4vw,3rem);display:none;position:fixed;inset:0;overflow-y:auto}.lightbox.is-open{display:block}.lightbox__close{width:46px;height:46px;color:var(--paper);background:0 0;border:1px solid #ece7dd4d;border-radius:50%;font-size:1rem;position:fixed;top:1.5rem;right:1.5rem}.lightbox__head{color:var(--paper);flex-wrap:wrap;align-items:baseline;gap:1.2rem;max-width:1100px;margin:0 auto 1.5rem;display:flex}.lightbox__head h3{font-family:var(--ff-display);font-size:clamp(1.8rem,4vw,3rem);font-weight:400}.lightbox__head .mono{color:#ece7dd8c}.lightbox__track{grid-template-columns:repeat(2,1fr);gap:.8rem;max-width:1100px;margin:0 auto;display:grid}.lightbox__track img{background:var(--paper);width:100%}.lightbox__track img:first-child{grid-column:span 2}@media (width<=920px){.nav__links,.nav__cta{display:none}.nav.is-open .nav__links{background:var(--paper);padding:7rem var(--pad);z-index:-1;flex-direction:column;gap:1.5rem;display:flex;position:fixed;inset:0}.nav.is-open .nav__links a{font-family:var(--ff-display);font-size:2rem}.nav__burger{display:flex}.pillars{grid-template-columns:1fr}.pillar{margin-right:0;padding-right:0;border-right:none!important}.project,.project:nth-child(2n){grid-template-columns:1fr}.project:nth-child(2n) .project__media{order:0}.atelier__grid{grid-template-columns:1fr}.actions__gallery{columns:2}.agenda__row{grid-template-columns:1fr;gap:.3rem}.agenda__place{text-align:left}.contact__cols,.lightbox__track{grid-template-columns:1fr}.lightbox__track img:first-child{grid-column:span 1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}
