
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#efeee9;color:#252521;font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #635bfe;outline-offset:6px}button{cursor:pointer}::selection{background:#c7ccbb}.top{position:fixed;top:0;left:0;width:100%;z-index:20;padding:23px 34px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;background:#efeee9ed;backdrop-filter:blur(12px);font-size:12px;line-height:1.4}.brand{width:max-content;letter-spacing:-.35px;font-weight:600}.role{text-align:center}.nav{display:flex;justify-content:flex-end;gap:30px}.nav a,.nav button{border:0;background:none;padding:0;font-size:12px}.nav a:hover,.nav button:hover{text-decoration:underline;text-underline-offset:5px}.hero{padding:160px 34px 54px;min-height:75svh;display:flex;flex-direction:column;justify-content:space-between}.eyebrow{font-size:11px;letter-spacing:.06em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.dot{width:6px;height:6px;background:#252521;border-radius:50%;display:inline-block;margin-right:8px}.title{font-weight:500;font-size:clamp(60px,11.8vw,210px);line-height:.88;letter-spacing:-.075em;margin:46px 0 52px}.title span{display:block}.title span:first-child{display:flex;align-items:center;gap:35px}.asterisk{font-size:.62em;line-height:1;font-weight:400;display:inline-block;transform:rotate(15deg)}.intro{display:grid;grid-template-columns:1fr 1fr 1fr;font-size:12px;line-height:1.5;align-items:end}.intro p{margin:0;max-width:260px}.intro>a{justify-self:end;display:flex;gap:32px;align-items:center}.arrow{font-size:24px}.work{padding:0 34px 90px}.section-head{border-top:1px solid #c2c2ba;padding:17px 0 29px;display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 22px}.project{border:0;padding:0;background:none;text-align:left;display:block;width:100%;min-width:0}.art{height:auto;aspect-ratio:1.32;position:relative;overflow:hidden;display:grid;place-items:center;isolation:isolate;transition:filter .4s}.art-inner{position:absolute;inset:0;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.project:hover .art-inner{transform:scale(1.035)}.preview-label{position:absolute;top:16px;left:16px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;z-index:3;background:#ffffffba;color:#222;padding:6px 9px}.open-icon{position:absolute;right:16px;bottom:16px;width:38px;height:38px;border-radius:50%;background:#efeee9;display:grid;place-items:center;font-size:21px;transform:translateY(60px);transition:transform .3s;z-index:4}.project:hover .open-icon,.project:focus-visible .open-icon{transform:none}.caption{display:flex;align-items:center;justify-content:space-between;padding-top:13px;gap:12px}.caption h2{font-size:16px;font-weight:400;margin:0;letter-spacing:-.4px}.caption small{font-size:10px;color:#64645d}.number{font-size:10px;margin-right:15px;color:#64645d}.one{background:#b1bbc3}.one .poster{position:absolute;background:#ecf33e;left:26%;top:12%;width:48%;height:77%;transform:rotate(-7deg);box-shadow:10px 16px 25px #1a263b30;display:flex;flex-direction:column;padding:7% 5%;justify-content:space-between}.poster strong{font-size:clamp(25px,5vw,100px);font-weight:900;line-height:.83;letter-spacing:-.09em}.poster em{font-style:normal;font-size:9px;letter-spacing:.08em}.poster .line{height:1px;background:#23241e}.two{background:#e25133;color:#ebded0}.two .graphic{width:70%;height:75%;position:absolute;top:13%;left:15%;display:flex;align-items:center;justify-content:center}.rings{position:absolute;width:70%;aspect-ratio:1;border:22px solid #ebded0;border-radius:50%;transform:rotate(-28deg) scaleX(.53)}.rings:nth-child(2){transform:rotate(28deg) scaleX(.53)}.rings:nth-child(3){transform:scaleX(.53)}.two .type{position:absolute;bottom:7%;left:7%;font-size:clamp(20px,3vw,70px);letter-spacing:-.07em}.three{background:#232a20;color:#e6e9d9}.three .book{position:absolute;width:55%;height:77%;top:12%;left:24%;background:#e6e9d9;color:#232a20;transform:rotate(8deg);box-shadow:15px 20px 30px #0005;padding:6% 5%;display:flex;flex-direction:column;justify-content:space-between}.book strong{font-family:Georgia,serif;font-weight:400;font-size:clamp(30px,5vw,90px);line-height:.9;letter-spacing:-.06em}.book .oval{height:40%;background:#6e8259;border-radius:50%;transform:rotate(-30deg)}.book small{font-size:9px}.four{background:#d0c9df;color:#4c3973}.four .type{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font-size:clamp(50px,8.5vw,150px);font-weight:900;letter-spacing:-.1em;line-height:.75;transform:rotate(-12deg)}.four .type span:nth-child(2){-webkit-text-stroke:1px #4c3973;color:transparent}.five{background:#e5dfd3}.five .sculpture{position:absolute;width:40%;height:77%;top:13%;left:30%;background:linear-gradient(100deg,#998f7a,#faf6e9 42%,#d2c9b6 61%,#8f8472);border-radius:48% 52% 12% 12%;box-shadow:25px 15px 20px #5e544128;transform:rotate(12deg)}.five .sculpture:after{content:'';position:absolute;width:42%;height:60%;border-radius:50%;background:#e5dfd3;top:15%;left:30%;box-shadow:inset 8px 5px 12px #5e544133}.five .type{position:absolute;bottom:8%;left:7%;font-family:Georgia,serif;font-style:italic;font-size:clamp(25px,4vw,70px)}.six{background:#1e3cce;color:#e9f02e}.six .sphere{position:absolute;width:50%;aspect-ratio:1;top:17%;left:25%;border-radius:50%;background:radial-gradient(circle at 30% 28%,#f5ffa3 0%,#d8ee33 30%,#98a808 63%,#152e96 96%);box-shadow:20px 24px 30px #08145988}.six .type{position:absolute;bottom:7%;left:6%;font-size:clamp(30px,5vw,90px);font-weight:900;letter-spacing:-.075em}.about{padding:75px 34px 85px;border-top:1px solid #c2c2ba;display:grid;grid-template-columns:1fr 2fr;gap:30px}.label{font-size:11px;text-transform:uppercase;letter-spacing:.05em}.about h2{font-size:clamp(32px,4.6vw,76px);line-height:1.08;letter-spacing:-.05em;font-weight:400;margin:0 0 35px;max-width:850px}.about p{font-size:13px;line-height:1.65;max-width:510px;color:#64645d}.footer{padding:35px 34px 25px;background:#252521;color:#efeee9}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:30px}.footer button{border:0;background:none;color:inherit;font-size:clamp(35px,6vw,96px);letter-spacing:-.055em;text-align:left;padding:15px 0}.footer button:hover{color:#d1d6bc}.footer small{font-size:10px}.footer-bottom{margin-top:50px;padding-top:20px;border-top:1px solid #5b5b52;display:flex;justify-content:space-between;font-size:10px;color:#b5b5ab}.draft-note{margin:8px 0 0;font-size:10px;color:#74746b}.reveal{opacity:1;transform:none}body.motion .reveal{opacity:0;transform:translateY(25px);transition:opacity .7s,transform .7s}body.motion .reveal.visible{opacity:1;transform:none}dialog{padding:0;border:0;background:#efeee9;color:#252521;width:min(1000px,94vw);max-height:90svh;overscroll-behavior:contain}dialog::backdrop{background:#191914b0;backdrop-filter:blur(8px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid #c2c2ba;position:sticky;top:0;background:#efeee9;z-index:6}.dialog-header h2{font-size:14px;font-weight:400;margin:0}.close{border:1px solid #a9a99e;border-radius:50%;background:none;width:34px;height:34px;font-size:22px}.dialog-body{padding:25px}.dialog-body .art{aspect-ratio:1.5;max-height:55svh}.dialog-body h3{font-size:28px;font-weight:400;letter-spacing:-1px}.dialog-body p{max-width:620px;line-height:1.6;font-size:14px}.dialog-body .next{background:#252521;color:#efeee9;padding:13px 20px;border:0;margin-top:10px}.contact-copy{padding:30px 0 40px}.contact-copy h3{font-size:clamp(32px,5vw,64px);line-height:1.05}.skip{position:fixed;top:-80px;left:20px;z-index:40;background:#252521;color:white;padding:12px}.skip:focus{top:10px}
@media(min-width:1600px){.top,.hero,.work,.about,.footer{padding-left:55px;padding-right:55px}}@media(max-width:700px){.top{padding:20px;grid-template-columns:1fr 1fr}.role{display:none}.nav{gap:22px}.hero{padding:145px 20px 38px;min-height:64svh}.title{font-size:13vw;margin:45px 0;letter-spacing:-.075em}.title span:first-child{gap:20px}.eyebrow{font-size:9px}.intro{grid-template-columns:1fr 1fr;gap:20px;font-size:11px}.intro .middle{display:none}.intro>a{gap:12px}.work{padding:0 20px 60px}.grid{grid-template-columns:1fr;gap:30px}.caption h2{font-size:15px}.art{aspect-ratio:1.2}.poster strong{font-size:13vw}.two .type{font-size:9vw}.book strong{font-size:13vw}.four .type{font-size:24vw}.five .type{font-size:12vw}.six .type{font-size:13vw}.rings{border-width:25px}.open-icon{transform:none;width:32px;height:32px}.about{padding:45px 20px;grid-template-columns:1fr;gap:25px}.about h2{font-size:38px}.footer{padding:25px 20px}.footer-top{align-items:flex-start;flex-direction:column;gap:8px}.footer button{font-size:12vw}.footer-bottom{margin-top:35px;font-size:9px;gap:15px}.dialog-body{padding:18px}.dialog-body .art{aspect-ratio:1.2}.dialog-header{padding:15px 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}body.motion .reveal{opacity:1;transform:none}}

/* Composition sombre : identité centrée, projets en séquence verticale. */
:root{color-scheme:dark}html{scroll-padding-top:0}body{background:#101010;color:#fff}::selection{background:#ccc;color:#101010}.top{display:none}.hero{height:100svh;min-height:600px;padding:0;display:grid;place-items:center;position:relative}.identity{width:294px;max-width:calc(100vw - 48px);font-size:18px;line-height:1.2;text-transform:uppercase}.identity h1,.identity h2{font:inherit;margin:0;letter-spacing:-.4px;font-weight:400}.identity .name-row{display:flex;justify-content:space-between;gap:12px}.identity .star{font-size:26px;line-height:.8;transition:transform .6s}.identity:hover .star{transform:rotate(90deg)}.identity .period{display:flex;justify-content:space-between;gap:12px}.identity nav{display:flex;justify-content:space-between;margin-top:36px}.identity nav button{padding:0;border:0;background:none;font-size:18px;text-transform:uppercase;position:relative}.identity nav button:after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:#fff;transition:width .3s}.identity nav button:hover:after{width:100%}.scroll-hint{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);font-size:10px;text-transform:uppercase;white-space:nowrap;color:#bbb}.scroll-hint span{display:block;text-align:center;font-size:19px;margin-top:12px}.work{padding:0}.sequence{display:block}.project-section{height:145svh;min-height:1000px;position:relative}.project-stage{height:100svh;min-height:650px;position:sticky;top:0;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate}.project-heading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max-content;max-width:100%;text-align:center;font-size:15.3vw;line-height:1;letter-spacing:-.075em;font-weight:500;margin:0;z-index:2;pointer-events:none;text-transform:uppercase}.project{width:30vw;max-width:510px;min-width:250px;position:relative;z-index:1;transition:transform .7s ease;outline-offset:12px}.project .art{width:100%;aspect-ratio:4/5;overflow:hidden;background:#222}.project-heading{mix-blend-mode:difference}.project .art-inner{transform:scale(1.05);transition:transform 1s}.project:hover .art-inner{transform:scale(1.11)}.project .preview-label{background:none;color:#fff;top:auto;bottom:12px;left:0;width:100%;text-align:center;font-size:8px;letter-spacing:.12em;text-shadow:0 1px 6px #000}.project .open-icon{display:none}.project-meta{position:absolute;bottom:35px;left:40px;right:40px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.02em;color:#aaa;z-index:3}.project-meta a:hover{color:#fff}.project .poster strong{font-size:clamp(40px,4.8vw,82px)}.project .poster{width:67%;left:17%;height:77%;padding:12% 8%;top:12%}.project .two .rings{border-width:18px}.project .two .type{font-size:2.5vw}.project .three .book{width:72%;left:14%;height:77%;padding:10% 7%;top:12%}.project .book strong{font-size:4.4vw}.project .four .type{font-size:7.2vw;line-height:.85}.project .five .type{font-size:3vw}.project .six .type{font-size:4vw}.project .six .sphere{width:66%;left:17%;top:22%}.end{height:55svh;min-height:350px;display:grid;place-items:center;text-align:center}.end button{border:0;background:none;color:white;font-size:18px;text-transform:uppercase;padding:20px}.end small{display:block;font-size:10px;margin-top:18px;color:#999}.end a{font-size:10px;display:block;margin-top:50px}.footer,.about{display:none}dialog{background:#101010;color:#fff;max-width:100%;width:100vw;height:100svh;max-height:100svh;max-width:100vw;margin:0;overflow:auto}dialog::backdrop{background:#101010}.dialog-header{background:#101010;border-bottom:0;padding:32px 40px;font-size:14px}.dialog-header h2{font-size:14px}.close{color:#fff;border-color:#666}.dialog-body{max-width:1100px;margin:auto;padding:70px 40px 80px}.dialog-body .art{width:min(450px,100%);aspect-ratio:4/5;margin:auto;max-height:none}.dialog-body h3{font-size:clamp(35px,6vw,90px);letter-spacing:-.055em;text-transform:uppercase}.dialog-body p{color:#aaa;font-size:16px}.dialog-body .next{background:#eee;color:#111}.contact-copy{max-width:650px;margin:auto}.contact-copy h3{font-size:clamp(40px,8vw,100px)}.contact-copy .label{color:#888}.detail-actions{display:flex;justify-content:space-between;margin-top:70px;gap:20px}.info-name{font-size:clamp(35px,7vw,90px);letter-spacing:-.05em;line-height:1.05;font-weight:400;margin:0 0 40px}.info-role{font-size:18px;text-transform:uppercase;margin:0 0 80px}.info-note{font-size:12px!important;max-width:400px;margin-top:60px}.cursor-glow{position:fixed;pointer-events:none;z-index:100;border-radius:50%;width:9px;height:9px;background:#fff;box-shadow:0 0 12px 5px #607fbf66;transform:translate(-50%,-50%);opacity:0}.loading-identity{animation:enter .9s both}@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:700px){.hero{min-height:500px}.identity{width:260px;font-size:16px}.identity nav button{font-size:16px}.identity .star{font-size:23px}.project-section{height:125svh;min-height:750px}.project-stage{min-height:560px}.project{width:58vw;min-width:0;max-width:340px}.project-heading{font-size:18vw;letter-spacing:-.08em}.project-meta{bottom:26px;left:20px;right:20px;font-size:9px}.project .poster strong{font-size:9vw}.project .book strong{font-size:9vw}.project .four .type{font-size:15vw}.project .two .type{font-size:5vw}.project .five .type{font-size:6vw}.project .six .type{font-size:8vw}.project .rings{border-width:15px}.dialog-header{padding:20px}.dialog-body{padding:50px 20px}.cursor-glow{display:none}.scroll-hint{bottom:28px}.end button{font-size:16px}.info-role{font-size:15px}}
@media(prefers-reduced-motion:reduce){.loading-identity{animation:none}.project-section{height:110svh}.project{transform:none!important}.star{transform:none!important}}


/* Le cadre reste fixe pendant les trois phases de défilement. */
.project-section + .project-section{margin-top:-100svh}.project-section:last-child{margin-bottom:-100svh}
@media(prefers-reduced-motion:reduce){.project-section + .project-section{margin-top:0}.project-section:last-child{margin-bottom:0}}
.project-section{height:300svh;min-height:0}.project-stage{height:100svh;min-height:0}.project{transition:none;will-change:clip-path,transform}.project-heading{will-change:clip-path,transform}.project:focus-visible{clip-path:none!important;pointer-events:auto!important}.project .art-inner{will-change:transform;transition:none}.project:hover .art-inner{transform:var(--image-transform,scale(1.08))}.project-stage .project-meta{transition:none}
@media(max-width:700px){.project-section{height:280svh;min-height:0}.project-stage{height:100svh;min-height:0}.project{max-height:72svh}.project .art{max-height:72svh}}
@media(prefers-reduced-motion:reduce){.project-section{height:110svh}.project,.project-heading{clip-path:none!important;transform:none!important}.project .art-inner{transform:none!important}.project-stage .project-meta{opacity:1!important}}
.project-heading{clip-path:none;will-change:transform}
@media(prefers-reduced-motion:reduce){.project-heading{transform:translate(-50%,-50%)!important}}

.project-heading{mix-blend-mode:normal;color:#fff}
.project{width:min(40vw,67.2svh);max-width:660px;min-width:0}.project .art{max-height:84svh}
.identity{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:6;pointer-events:none}.identity nav{pointer-events:auto}.loading-identity{animation:none}
@media(max-width:700px){.project{width:min(65vw,57.6svh);max-width:420px}.project .art{max-height:72svh}.identity{font-size:12px;width:224px}.identity nav button{font-size:12px}.identity nav{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.identity{position:absolute}.project-stage .project-heading{top:15%}}

/* Les titres suivants démarrent pendant l’effacement de l’image précédente. */
.project-section + .project-section{margin-top:-172svh}
.identity{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
.project{width:min(50vw,88svh);max-width:960px;max-height:none}.project .art{aspect-ratio:16/10;max-height:none}
.dialog-body .art{width:min(780px,100%);aspect-ratio:16/10}
@media(max-width:700px){.project-section + .project-section{margin-top:-164.8svh}.project{width:86vw;max-width:600px;max-height:none}.project .art{aspect-ratio:16/10;max-height:none}.dialog-body .art{aspect-ratio:16/10}}
@media(prefers-reduced-motion:reduce){.project-section + .project-section{margin-top:0}}
.project-stage{pointer-events:none}.project-stage .project,.project-stage .project-meta a{pointer-events:auto}

/* Le prochain titre commence à entrer quand le visuel précédent s’efface. */
.project-section + .project-section{margin-top:-136svh}
@media(max-width:700px){.project-section + .project-section{margin-top:-131.2svh}}
@media(prefers-reduced-motion:reduce){.project-section + .project-section{margin-top:0}}

html,body{overflow-x:clip}.hero{min-height:100svh}.project-heading{white-space:nowrap}
.project-meta{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center}.project-meta a{text-align:center}
@media(max-width:700px){.hero{min-height:100svh}.project{width:min(86vw,88svh)}.project-meta{gap:10px;font-size:9px}.dialog-body{padding:35px 20px}}
@media(max-width:480px){.project-meta{grid-template-columns:auto 1fr}.project-meta>span:last-child{display:none}.identity{max-width:calc(100vw - 40px)}}
@media(max-height:500px) and (orientation:landscape){.scroll-hint{bottom:12px;font-size:8px}.scroll-hint span{margin-top:5px}.identity nav{margin-top:20px}}

/* Une seule horloge anime la page et les projets, sans forcer le scroll natif. */
html{scroll-behavior:auto}body.smooth-page #scroll-content{position:fixed;top:0;left:0;width:100%;will-change:transform}
body.smooth-page .project-stage{position:absolute;top:0;left:0;width:100%;will-change:transform}
.project-stage{contain:paint}.project .art{contain:paint}.project-heading{backface-visibility:hidden}.project .art-inner{backface-visibility:hidden}
@media(prefers-reduced-motion:reduce){#scroll-content{position:static!important;transform:none!important}}

.art-hover{position:absolute;inset:0;transform:scale(1);transform-origin:center;transition:transform .65s cubic-bezier(.22,.61,.36,1);will-change:transform;backface-visibility:hidden}
@media(hover:hover) and (pointer:fine){.project.is-hovered .art-hover,.project:focus-visible .art-hover{transform:scale(1.045)}}
@media(prefers-reduced-motion:reduce){.art-hover{transform:none!important;transition:none!important}}

:root{--intro-blue:#739bff}.logo-placeholder{display:block;flex:0 0 18px;width:18px;height:18px;background:var(--intro-blue);margin-top:2px}.identity:hover .logo-placeholder{transform:none}
.intro-overlay{display:none;position:fixed;inset:0;background:#101010;z-index:200;overflow:hidden}.intro-pending .intro-overlay,.intro-active .intro-overlay{display:block}
.intro-pending #scroll-content{visibility:hidden}.intro-pending,.intro-active{overflow:hidden!important;scrollbar-gutter:auto!important;background:#fff}.intro-active .logo-placeholder{opacity:0}
.intro-square{position:fixed;top:0;left:0;width:1px;height:1px;background:var(--intro-blue);transform-origin:0 0;transform:translate(calc(50vw - 32px),calc(50svh - 32px)) scale(64);will-change:transform;z-index:1}
.intro-caption{position:absolute;left:34px;bottom:30px;font-size:12px;line-height:1.5;color:#eee;z-index:0;letter-spacing:.03em}.intro-caption span{color:#999;font-size:10px}
.intro-skip{position:absolute;top:24px;right:34px;font-size:11px;background:none;border:0;color:white;padding:8px;z-index:3}
@media(max-width:700px){.logo-placeholder{width:14px;height:14px;flex-basis:14px}.intro-caption{left:20px;bottom:24px;font-size:11px}.intro-skip{right:15px;top:15px}}
@media(prefers-reduced-motion:reduce){.intro-overlay{display:none!important}.intro-pending #scroll-content{visibility:visible}.logo-placeholder{opacity:1!important}}

.landing-wordmark{position:absolute;top:26px;left:34px;display:flex;align-items:center;gap:0;font-size:14px;line-height:1;color:#fff;z-index:7;letter-spacing:-.4px}.landing-wordmark strong{font-weight:900;margin-right:3px}.landing-wordmark em{font-weight:400;font-size:16px}.landing-wordmark .logo-placeholder{display:grid;place-items:center;flex-basis:18px;width:18px;height:20px;margin:0 1px 0 0;color:#101010;font-size:18px;font-style:italic}
.intro-wordmark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;width:max-content;max-width:calc(100vw - 32px);font-size:clamp(24px,4.7vw,78px);line-height:1;color:#efeee9;letter-spacing:-.05em;z-index:0;white-space:nowrap}.intro-first{font-weight:900;margin-right:.07em}.intro-last{font-style:italic;font-weight:400}.intro-letter{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}.intro-letter-inner{display:inline-block;transform:translateY(120%);opacity:0;transform-origin:bottom left;will-change:transform,opacity}.intro-mark{display:grid;place-items:center;width:.83em;height:1em;background:var(--intro-blue);color:#101010;font-style:italic;font-size:1em;line-height:1;margin-right:.01em;opacity:0;will-change:transform,opacity}
.intro-square{visibility:hidden;display:grid;place-items:center}.intro-square-letter{font:italic .78px/1 Arial,sans-serif;color:#101010;opacity:1}
@media(max-width:700px){.landing-wordmark{left:20px;top:20px;font-size:11px}.landing-wordmark em{font-size:13px}.landing-wordmark .logo-placeholder{flex-basis:14px;width:14px;height:16px;font-size:14px}.intro-wordmark{font-size:clamp(21px,6.1vw,42px)}}

/* Introduction typographique en noir sur blanc. */
.intro-overlay{background:#fff}.intro-wordmark{width:96vw;max-width:96vw;display:grid;grid-template-rows:auto auto auto;justify-items:center;gap:clamp(14px,3svh,30px);color:#080808;font-family:Impact,'Arial Narrow',Arial,sans-serif;font-size:clamp(48px,min(11vw,18svh),176px);font-weight:900;line-height:.9;letter-spacing:-.045em}
.intro-first,.intro-last{display:block;width:max-content;margin:0;opacity:0;transform:scaleX(.65);font-weight:900;font-style:normal;line-height:.9}
.intro-mark{width:clamp(56px,12svh,140px);height:clamp(56px,12svh,140px);margin:0;background:#080808;font-style:normal;opacity:0}
.intro-square{background:#080808}.intro-skip{color:white;mix-blend-mode:difference}
@media(max-width:700px){.intro-wordmark{font-size:clamp(48px,min(11vw,18svh),100px);gap:18px}}

.intro-wordmark,.intro-first,.intro-last{font-family:Arial,Helvetica,sans-serif;font-weight:500;letter-spacing:-.075em;line-height:1}
.intro-first,.intro-last{transform:none}
@media(max-width:700px){.intro-wordmark,.intro-first,.intro-last{letter-spacing:-.08em}}

/* Pages de présentation : introduction éditoriale et galerie alternée. */
dialog.project-detail{background:#efeee5;color:#191a18;color-scheme:light}.project-detail .dialog-header{background:#efeee5;padding:18px 4.85%;color:#787a70;height:58px}.project-detail .dialog-header h2{font-size:10px;letter-spacing:.03em}.project-detail .close{border-color:#c6c7bd;color:#191a18;width:32px;height:32px}
.project-detail .dialog-body{max-width:none;margin:0;padding:8px 4.85% 60px}.case-hero{padding:0 0 44px}.project-detail .case-category{font-size:11px;line-height:1.3;color:#95988b;max-width:none;margin:0}.project-detail .case-title{font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:clamp(64px,7.1vw,108px);line-height:1;letter-spacing:-.065em;text-transform:none;margin:48px 0 42px}.project-detail .case-context{font-size:12px;color:#686b60;line-height:1.4;max-width:none;margin:0 0 38px}.project-detail .case-lead{font-size:clamp(22px,2vw,31px);line-height:1.5;letter-spacing:-.035em;max-width:850px;color:#191a18;margin:0}
.case-gallery{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin-top:18px}.case-visual{min-width:0;margin:0;overflow:hidden}.case-visual:nth-child(3n+1){grid-column:1/-1}.project-detail .case-gallery .art{width:100%;max-height:none;margin:0;aspect-ratio:4/3}.project-detail .case-gallery .case-visual:nth-child(3n+1) .art{aspect-ratio:16/9}.case-gallery .art-inner{transform:none}.case-gallery .preview-label{color:#191a18;background:#efeee5dd;top:auto;bottom:16px;left:16px;font-size:9px}.case-visual-2 .art-hover{transform:scale(1.05) rotate(3deg)}.case-visual-3 .art-hover{transform:scale(1.05) rotate(-3deg)}.project-detail .case-placeholder-note{font-size:11px;line-height:1.6;color:#808376;max-width:none;margin:20px 0 50px}.case-navigation{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #191a1825;padding-top:24px}.case-navigation button{border:0;background:none;padding:8px 0;color:#191a18;font-size:15px}.case-next{font-size:clamp(18px,3vw,36px)!important;letter-spacing:-.04em}.case-navigation button:hover{text-decoration:underline;text-underline-offset:6px}
@media(max-width:700px){.project-detail .dialog-header{padding:16px 20px;height:56px}.project-detail .dialog-body{padding:14px 20px 40px}.project-detail .case-title{font-size:clamp(48px,12vw,80px);margin:34px 0 32px}.project-detail .case-context{margin-bottom:24px;font-size:11px}.project-detail .case-lead{font-size:22px;line-height:1.45}.case-hero{padding-bottom:30px}.case-gallery{grid-template-columns:1fr;gap:16px;margin-top:10px}.case-visual{grid-column:1!important}.project-detail .case-gallery .art,.project-detail .case-gallery .case-visual:nth-child(3n+1) .art{aspect-ratio:16/10}.case-navigation{gap:16px;align-items:center}.case-navigation button{font-size:12px}.project-detail .case-placeholder-note{margin-bottom:30px}}

.project-detail .case-lead + .case-lead{margin-top:24px}
@media(max-width:700px){.project-detail .case-lead + .case-lead{margin-top:20px}}

/* Le panneau possède sa propre barre de défilement ; l’accueil est verrouillé. */
html.panel-open{overflow:hidden!important;scrollbar-gutter:auto}html.panel-open body{overflow:hidden}
#detail[open]{position:fixed;inset:0;width:100%;height:100dvh;max-width:100%;max-height:100dvh;margin:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto}
.project-detail .case-lead{font-size:16px;line-height:1.65;letter-spacing:0;max-width:850px}.project-detail .case-lead + .case-lead{margin-top:12px}
@media(max-width:700px){.project-detail .case-lead{font-size:14px;line-height:1.65}.project-detail .case-lead + .case-lead{margin-top:10px}}

.project-detail .case-award{display:inline-flex;align-items:center;gap:9px;width:fit-content;max-width:100%;padding:10px 15px;border-radius:12px;background:#6724ED;color:#fff;font-size:13px;line-height:1.4;margin:-14px 0 27px}.case-award span{font-size:16px}
.project-detail .case-lead{font-size:15px;line-height:1.7;max-width:760px}
@media(max-width:700px){.project-detail .case-award{font-size:11px;padding:9px 12px;gap:7px;margin:-10px 0 24px;border-radius:10px}.project-detail .case-lead{font-size:14px;line-height:1.65}}

/* Accueil avec présentation, portrait et navigation. */
.site-header{position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:24px 5%;height:84px;background-color:inherit;color:#fff;z-index:30}.future-logo{display:inline-flex;align-items:center;justify-content:center;min-width:76px;height:32px;border:1px dashed #ffffff60;font-size:11px;letter-spacing:.14em}.main-navigation{display:flex;gap:34px;align-items:center}.main-navigation a,.main-navigation button{font:12px Arial,sans-serif;letter-spacing:.025em;background:none;border:0;color:#fff;padding:8px 0;cursor:pointer}.main-navigation a:hover,.main-navigation button:hover{text-decoration:underline;text-underline-offset:6px}.menu-toggle{display:none}.intro-pending .site-header{visibility:hidden}
.hero.home-hero{height:auto;min-height:100svh;padding:140px 8% 100px;display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;justify-content:initial;position:relative}.home-copy{max-width:620px}.home-role{font-size:11px;letter-spacing:.1em;color:#b4b4ac;margin:0 0 28px}.home-copy h1{font:500 clamp(46px,5.7vw,92px)/1.02 Arial,Helvetica,sans-serif;letter-spacing:-.065em;margin:0 0 30px;max-width:none}.home-title-dot{color:#a391ed}.home-description{font-size:16px;line-height:1.65;color:#c6c6bf;max-width:430px;margin:0 0 28px}.home-contact{display:inline-flex;gap:32px;align-items:center;border:1px solid #eee;border-radius:28px;background:#efeee5;color:#101010;padding:12px 20px;font-size:12px;transition:background .25s,transform .25s}.home-contact:hover{background:#d5c6fc;transform:translateY(-2px)}.home-photo{position:relative;width:100%;max-width:550px;max-height:66svh;aspect-ratio:4/5;background:#242421;overflow:hidden;justify-self:end}.portrait-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,#33332d,#1a1a18);border:1px solid #ffffff16}.portrait-placeholder>span{font-size:clamp(80px,12vw,180px);font-weight:400;letter-spacing:-.07em;color:#ffffff12}.photo-caption{position:absolute;bottom:20px;left:22px;color:#9c9c91;font-size:9px;letter-spacing:.1em}.home-photo img{width:100%;height:100%;object-fit:cover;display:block}.home-discover{position:absolute;bottom:35px;left:8%;right:8%;display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.035em;color:#a5a59b}.home-discover span{font-size:18px}.home-photo img{filter:none}
@media(max-width:900px){.hero.home-hero{padding-left:6%;padding-right:6%;gap:35px}.home-copy h1{font-size:6.3vw}.home-description{font-size:15px}.main-navigation{gap:24px}}
@media(max-width:700px){.site-header{height:72px;padding:18px 20px}.future-logo{min-width:65px;height:28px;font-size:9px}.menu-toggle{display:flex;align-items:center;gap:18px;color:#fff;background:none;border:1px solid #ffffff50;border-radius:22px;font-size:11px;padding:10px 16px}.main-navigation{display:none;position:absolute;top:72px;left:0;right:0;background-color:inherit;padding:20px;gap:15px;border-bottom:1px solid #ffffff20}.main-navigation.is-open{display:grid;grid-template-columns:1fr 1fr}.main-navigation a,.main-navigation button{text-align:left;padding:10px;font-size:13px}.hero.home-hero{padding:125px 20px 90px;grid-template-columns:1fr;gap:40px;min-height:100svh}.home-copy h1{font-size:clamp(42px,10.8vw,68px);margin-bottom:24px}.home-role{margin-bottom:22px;font-size:10px}.home-description{font-size:15px;max-width:430px;line-height:1.65}.home-contact{padding:11px 18px}.home-photo{justify-self:center;max-width:420px;max-height:none;aspect-ratio:4/5}.portrait-placeholder>span{font-size:32vw}.home-discover{left:20px;right:20px;bottom:28px}}
@media(max-height:550px) and (min-width:701px){.hero.home-hero{padding-top:110px;padding-bottom:75px}.home-copy h1{font-size:48px;margin-bottom:18px}.home-role{margin-bottom:16px}.home-description{font-size:14px;margin-bottom:18px}}

/* Le premier projet entre avant la disparition complète de l’accueil. */
#projets.work{margin-top:-45svh}
@media(max-width:700px){#projets.work{margin-top:-35svh}}
@media(prefers-reduced-motion:reduce){#projets.work{margin-top:0}}

.home-discover{left:50%;right:auto;width:max-content;max-width:calc(100% - 40px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;text-align:center;padding:7px 14px;z-index:5}.home-discover span{display:block;font-size:22px;line-height:1}
@media(max-width:700px){.home-discover{left:50%;right:auto;bottom:24px;gap:8px}}
.project{display:block;text-decoration:none;color:inherit}
.home-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.home-actions .home-contact{background:transparent;color:#efeee5}.home-actions .home-contact:hover{background:#d5c6fc;color:#101010}.home-cv{min-width:66px;justify-content:center}.cv-status{font-size:12px;color:#b4b4ac;margin:12px 0 0}
.contact-detail{background:#fff;color:#111;color-scheme:light}.contact-detail::backdrop{background:#fff}.contact-detail .dialog-header{background:#fff;color:#111}.contact-detail .close{color:#111;border-color:#999}.contact-detail .dialog-body{max-width:760px;padding:65px 35px 90px}.contact-page{max-width:560px;margin:auto}.contact-page fieldset{border:0;padding:0;margin:0 0 24px}.contact-page legend{font-size:13px;margin-bottom:16px}.contact-page label{display:block;font-size:12px;line-height:1.5}.contact-names{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-field{margin-bottom:24px}.contact-page input,.contact-page select,.contact-page textarea{display:block;width:100%;border:0;border-bottom:1px solid #999;background:transparent;border-radius:0;color:#111;font:14px Arial,sans-serif;padding:10px 0;min-height:42px}.contact-page textarea{resize:vertical}.contact-page input:focus,.contact-page select:focus,.contact-page textarea:focus{outline:2px solid #6724ed;outline-offset:4px}.contact-submit{background:#111;color:#fff;border:0;border-radius:24px;padding:11px 27px;font-size:12px}.contact-detail .contact-status{font-size:11px;line-height:1.5;color:#777;margin:18px 0 0;max-width:none}@media(max-width:700px){.contact-detail .dialog-body{padding:38px 20px 60px}.contact-names{gap:14px}}
.end{width:100%;padding:50px 20px;position:relative;z-index:4}.end-content{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;text-align:center}.end-name{font-size:18px;font-weight:400;margin:0}.end .end-content a{margin:0;font-size:11px;padding:10px}.project-section:last-child .project-meta{display:none}
.home-copy{position:relative;z-index:6}.home-actions{position:relative;pointer-events:auto}

.webp-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.art:has(>.webp-image) .preview-label{display:none}.project .webp-image{transition:transform .45s ease}.project.is-hovered .webp-image{transform:scale(1.045)}

/* Project gallery: 1500 × 1000 large visuals, 1000 × 1000 small visuals. */
.project-detail .case-gallery .art{aspect-ratio:1/1}.project-detail .case-gallery .case-visual:nth-child(3n+1) .art{aspect-ratio:3/2}

.case-gallery .case-visual[hidden]{display:none}

/* Gallery images preserve their natural proportions, as in the reference. */
.project-detail .case-gallery{align-items:start}.project-detail .case-gallery .art,.project-detail .case-gallery .case-visual:nth-child(3n+1) .art{display:block;aspect-ratio:auto;height:auto}.project-detail .case-gallery .webp-image{position:static;display:block;width:100%;height:auto;object-fit:contain}

/* Portrait matches the presentation block, ending level with its buttons. */
@media(min-width:701px){.home-photo{align-self:stretch;aspect-ratio:auto;max-height:none;min-height:0}.home-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.home-copy .cv-status{position:absolute;left:0;top:100%;margin-top:12px}}

@media(min-width:701px){.home-photo{align-self:center;height:var(--portrait-height,400px);aspect-ratio:auto;max-height:none}.home-copy{align-self:center}}

/* Intro must cover the scrollbar area as well as the document content. */
html.intro-pending body,html.intro-active body{overflow:hidden!important;scrollbar-gutter:auto!important}
.intro-pending .intro-overlay,.intro-active .intro-overlay{left:0;top:0;right:auto;bottom:auto;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none}

/* Small typographic signature in the navigation. */
.site-header .future-logo{border:0;min-width:0;height:auto;font:400 12px/1.3 Arial,Helvetica,sans-serif;letter-spacing:-.02em;white-space:nowrap}@media(max-width:700px){.site-header .future-logo{font-size:11px}}

/* Centered home; portrait moved to About. */
.hero.home-hero{grid-template-columns:minmax(0,1fr);align-content:center;justify-items:center;gap:0;text-align:center}
.home-copy{width:100%;max-width:1200px;justify-self:center;align-self:center}
.home-copy h1{font-size:clamp(28px,7vw,112px);white-space:nowrap;line-height:1.08;margin-bottom:30px}
.home-role{text-align:center}.home-description{margin-left:auto;margin-right:auto;max-width:540px}
.home-actions{justify-content:center}.home-copy .cv-status{position:static;margin:12px 0 0;text-align:center}
.about-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px;align-items:start}
.about-photo{width:100%;aspect-ratio:4/5;overflow:hidden}.about-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:none}
.about-copy{min-width:0}.about-copy .info-name{font-size:clamp(36px,5vw,70px);text-transform:none;margin:0 0 30px}
.dialog-body .about-copy p{font-size:15px;line-height:1.75;margin:0 0 22px;max-width:none}
@media(max-width:700px){.hero.home-hero{grid-template-columns:minmax(0,1fr);gap:0}.home-copy h1{font-size:7.4vw;white-space:nowrap}.home-description{max-width:440px}.about-layout{grid-template-columns:1fr;gap:32px}.about-photo{max-width:360px;margin:auto}.dialog-body .about-copy p{font-size:14px}}
