:root { --ink:#2a1718; --wine:#7f2c35; --paper:#f3ede3; --muted:#8d7c72; --line:rgba(42,23,24,.18); --serif:"Instrument Serif", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; --mono:"DM Mono", monospace; }
.project-back { display:inline-flex; margin:0 0 34px; color:var(--wine); font:11px var(--mono); letter-spacing:.04em; text-transform:uppercase; }.project-layout--portrait .project-hero img,.project-layout--square .project-hero img { height:min(52svh,560px); background:transparent; }.project-media--cutout { padding:0 !important; background:transparent !important; }.project-media--cutout img { background:transparent; border-radius:28px 2px 28px 2px; }.project-card--portrait .project-image { aspect-ratio:4/5; border-radius:2px 34px 2px 2px; }.project-card--square .project-image { border-radius:2px 30px 2px 2px; }
.project-media figcaption { margin-top:10px; color:#776b64; font:10px var(--mono); letter-spacing:.04em; text-transform:uppercase; }
.project-media--left.project-media--wide { grid-column:1/span 8 !important; }.project-media--right.project-media--wide { grid-column:5/span 8 !important; }.project-media--center.project-media--wide { grid-column:3/span 8 !important; }.project-media--left.project-media--detail { grid-column:1/span 4 !important; }.project-media--right.project-media--detail { grid-column:9/span 4 !important; }.project-media--center.project-media--detail { grid-column:5/span 4 !important; }.project-media--left.project-media--process { grid-column:1/span 6 !important; }.project-media--right.project-media--process { grid-column:7/span 6 !important; }.project-media--center.project-media--process { grid-column:4/span 6 !important; }.project-media--left.project-media--plan { grid-column:1/span 7 !important; }.project-media--right.project-media--plan { grid-column:6/span 7 !important; }.project-media--center.project-media--plan { grid-column:3/span 7 !important; }.project-media--right img { border-radius:38px 2px 2px 2px; }.project-media--center img { border-radius:24px 2px 24px 2px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); }
a { color:inherit; text-decoration:none; }
.topbar { position:fixed; z-index:10; inset:0 0 auto; height:72px; display:flex; align-items:center; gap:28px; padding:0 3.5vw; border-bottom:1px solid transparent; transition:.3s; }
.topbar.is-scrolled { background:rgba(243,237,227,.88); backdrop-filter:blur(14px); border-color:var(--line); }
.wordmark { margin-right:auto; font-family:var(--serif); font-size:31px; line-height:1; letter-spacing:-.04em; }.wordmark span{color:var(--wine)}
.navigation { display:flex; gap:22px; font-size:13px; }.navigation a{position:relative}.navigation a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--wine);transition:right .25s}.navigation a:hover::after{right:0}
.menu-toggle{display:none;border:0;background:none;font:500 12px var(--mono);text-transform:uppercase;color:var(--ink)}
.hero { min-height:100svh; padding:136px 3.5vw 36px; display:grid; grid-template-columns:1fr 1.15fr; grid-template-rows:1fr auto; gap:40px; }
.hero-intro { align-self:center; max-width:650px; padding-left:5vw; }.eyebrow { margin:0 0 20px; color:var(--wine); font:500 11px/1.2 var(--mono); text-transform:uppercase; letter-spacing:.07em; }.hero h1,.section-heading h2,.feature-project h2,.about h2{font:400 clamp(64px,8.2vw,142px)/.82 var(--serif);letter-spacing:-.055em;margin:0}.hero h1 em,.feature-project h2 em{color:var(--wine);font-weight:400}.hero-copy{max-width:305px;margin:44px 0 0;font-size:15px;line-height:1.55}
.hero-image { min-height:590px; position:relative; overflow:hidden; border-radius:2px 42px 2px 2px; }.hero-image img,.project-image img,.feature-project__image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .8s cubic-bezier(.2,.65,.2,1)}.hero-image:hover img{transform:scale(1.035)}.image-caption{position:absolute;inset:auto 18px 15px;display:flex;justify-content:space-between;color:white;font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase}.scroll-hint { grid-column:1/-1; justify-self:end; font:11px var(--mono);text-transform:uppercase;letter-spacing:.07em }.scroll-hint span{font-size:17px;margin-left:8px;color:var(--wine)}
.projects-section{padding:130px 3.5vw}.section-heading{display:grid;grid-template-columns:1fr auto;align-items:end;margin-bottom:56px}.section-heading .eyebrow{grid-column:1/-1}.section-heading h2{font-size:clamp(65px,10vw,155px)}.filters{display:flex;gap:8px;align-self:center}.filter{border:1px solid var(--line);background:none;padding:9px 13px;border-radius:999px;font:10px var(--mono);text-transform:uppercase;color:var(--ink);cursor:pointer;transition:.2s}.filter:hover,.filter.is-active{background:var(--wine);border-color:var(--wine);color:var(--paper)}
.projects-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:5vw 2vw}.project-card{min-width:0}.project-card:nth-child(1){grid-column:1/span 4}.project-card:nth-child(2){grid-column:6/span 7;margin-top:13vw}.project-card:nth-child(3){grid-column:1/span 7}.project-card:nth-child(4){grid-column:9/span 4;margin-top:10vw}.project-card:nth-child(5){grid-column:2/span 4}.project-card:nth-child(6){grid-column:7/span 5;margin-top:8vw}.project-card.is-hidden{display:none}.project-image{overflow:hidden;background:#d8c9b9;border-radius:2px}.project-card--tall .project-image{aspect-ratio:3/4}.project-card--wide .project-image{aspect-ratio:16/10}.project-card--square .project-image{aspect-ratio:1}.project-card:hover img{transform:scale(1.045)}.project-meta{display:grid;grid-template-columns:34px 1fr auto;gap:8px;margin-top:13px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.02em}.project-arrow{font-size:16px;line-height:.55;color:var(--wine);transition:transform .2s}.project-card:hover .project-arrow{transform:translate(3px,-3px)}.project-card h3{margin:7px 0 0;font:400 clamp(27px,3vw,46px)/.9 var(--serif);letter-spacing:-.04em}.project-placeholder{display:grid;place-items:center;background:var(--wine);color:var(--paper);font:14px var(--mono);text-transform:uppercase}
.feature-project{display:grid;grid-template-columns:4.5fr 7.5fr;gap:6vw;align-items:end;padding:100px 3.5vw;background:var(--wine);color:var(--paper)}.feature-project .eyebrow{color:#ecc7b8}.feature-project h2{font-size:clamp(50px,6.4vw,105px)}.feature-project h2 em{color:#f1d8bd}.feature-project__heading>p:last-child{max-width:350px;margin:38px 0 0;font-size:15px;line-height:1.55}.feature-project__image{aspect-ratio:4/3;overflow:hidden;border-radius:2px 2px 48px 2px}
.about{padding:150px 13vw;display:grid;grid-template-columns:2fr 8fr;gap:40px}.about h2{font-size:clamp(46px,6vw,95px);line-height:.9}.text-link{display:inline-block;margin-top:45px;color:var(--wine);font:500 12px var(--mono);text-transform:uppercase}.text-link span{font-size:18px;margin-left:8px}
.footer{padding:75px 3.5vw 24px;background:var(--ink);color:var(--paper)}.footer .eyebrow{color:#efbead}.contact-link{display:inline-block;font:400 clamp(46px,8vw,132px)/.95 var(--serif);letter-spacing:-.045em}.contact-link span{color:#efbead}.footer-bottom{border-top:1px solid rgba(243,237,227,.25);margin-top:90px;padding-top:15px;display:flex;justify-content:space-between;font:10px var(--mono);text-transform:uppercase;letter-spacing:.04em}
@media(max-width:760px){.topbar{height:60px;padding:0 20px}.navigation{display:none;position:absolute;top:60px;left:0;right:0;padding:22px 20px 28px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column}.navigation.is-open{display:flex}.menu-toggle{display:block}.hero{padding:105px 20px 22px;display:flex;flex-direction:column;gap:38px}.hero-intro{padding:0}.hero h1{font-size:clamp(68px,20vw,110px)}.hero-copy{margin-top:28px}.hero-image{min-height:0;aspect-ratio:4/5;width:100%;border-radius:2px 30px 2px 2px}.scroll-hint{align-self:flex-end}.projects-section{padding:85px 20px}.section-heading{display:block;margin-bottom:36px}.section-heading h2{font-size:90px}.filters{margin-top:26px;flex-wrap:wrap}.projects-grid{display:flex;flex-direction:column;gap:46px}.project-card,.project-card:nth-child(n){margin:0;width:100%}.project-card--tall .project-image,.project-card--wide .project-image,.project-card--square .project-image{aspect-ratio:4/3}.project-card:nth-child(1) .project-image{aspect-ratio:3/4}.feature-project{display:block;padding:75px 20px}.feature-project__image{margin-top:45px}.about{padding:90px 20px;display:block}.about .eyebrow{margin-bottom:35px}.footer{padding:56px 20px 18px}.footer-bottom{margin-top:64px;gap:14px;flex-direction:column}.project-meta{font-size:9px}}

/* Multi-page portfolio */
.topbar--solid { background:var(--paper); border-bottom-color:var(--line); }
.navigation a[aria-current="page"] { color:var(--wine); }
.home-hero { min-height:100svh; position:relative; overflow:hidden; background:var(--ink); color:var(--paper); }
.home-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(35,18,19,.82) 0%,rgba(35,18,19,.45) 55%,rgba(35,18,19,.2) 100%); }
.home-hero__background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.8) contrast(.92); }
.home-hero__content { position:relative; z-index:1; min-height:100svh; display:flex; flex-direction:column; padding:150px 13vw 50px; }
.home-hero h1,.page-heading h1,.contact-main h1,.project-hero h1 { font:400 clamp(70px,10vw,170px)/.79 var(--serif); letter-spacing:-.06em; margin:0; }
.home-hero h1 em,.page-heading h1 em,.contact-main h1 em,.project-hero h1 em { color:var(--wine); font-weight:400; }.home-hero h1 em { color:#f2c5b4; }.home-hero .eyebrow { color:#f2c5b4; }
.home-hero__bottom { margin-top:auto; align-self:flex-end; max-width:330px; padding-top:80px; font-size:16px; line-height:1.55; }.home-hero__bottom .text-link { margin-top:22px; }
.home-intro { display:grid; grid-template-columns:2fr 7fr; gap:50px; padding:150px 13vw; border-top:1px solid var(--line); }.home-intro h2 { max-width:900px; margin:0; font:400 clamp(44px,5.8vw,88px)/.9 var(--serif); letter-spacing:-.05em; }.home-intro div > p { max-width:380px; margin:42px 0 0; font-size:16px; line-height:1.55; }
.featured-home { padding:0 3.5vw 130px; }.featured-home__header,.featured-home__footer { display:flex; justify-content:space-between; align-items:end; }.featured-home__header { padding:0 0 15px; font:11px var(--mono); text-transform:uppercase; }.featured-home__header .eyebrow { margin:0; }.featured-home__visual { display:block; overflow:hidden; aspect-ratio:16/8; border-radius:2px 48px 2px 2px; }.featured-home__visual img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.65,.2,1); }.featured-home__visual:hover img { transform:scale(1.035); }.featured-home__footer { padding-top:20px; }.project-kind { margin:0 0 8px; color:var(--wine); font:11px var(--mono); text-transform:uppercase; }.featured-home h2 { margin:0; font:400 clamp(47px,6.8vw,105px)/.85 var(--serif); letter-spacing:-.05em; }.round-link { width:52px; height:52px; display:grid; place-items:center; flex:none; border:1px solid var(--wine); border-radius:50%; color:var(--wine); font-size:23px; transition:.25s; }.round-link:hover { background:var(--wine); color:var(--paper); transform:rotate(45deg); }.home-close { padding:80px 13vw 150px; background:var(--wine); color:var(--paper); }.home-close p { max-width:280px; margin:0 0 36px; font-size:16px; line-height:1.5; }.large-link { font:400 clamp(48px,7vw,110px)/.9 var(--serif); letter-spacing:-.05em; }.large-link span { color:#f1d8bd; }.footer--compact { padding-top:26px; }
.page { padding:150px 3.5vw 120px; min-height:calc(100svh - 160px); }.page-heading { display:grid; grid-template-columns:1fr auto; align-items:end; gap:30px; margin-bottom:85px; }.page-heading .eyebrow { grid-column:1/-1; margin-bottom:0; }.page-heading h1 { font-size:clamp(70px,11vw,178px); }.page .projects-grid { padding:0; }.page .projects-grid h2 { margin:7px 0 0; font:400 clamp(27px,3vw,46px)/.9 var(--serif); letter-spacing:-.04em; }
.about-page__content { display:grid; grid-template-columns:5fr 7fr; gap:8vw; padding:20px 10vw 40px; }.lead { margin:0; font:400 clamp(30px,3.7vw,60px)/.98 var(--serif); letter-spacing:-.04em; }.about-page__columns { align-self:end; display:grid; grid-template-columns:1fr 1fr; gap:30px; font-size:16px; line-height:1.55; }.about-page__columns p { margin:0; }
.gallery-empty { padding:70px 13vw 100px; border-top:1px solid var(--line); }.gallery-empty h2 { max-width:800px; margin:0; font:400 clamp(42px,5vw,78px)/.9 var(--serif); letter-spacing:-.05em; }.gallery-empty > p:last-child { max-width:370px; margin:35px 0 0; font-size:16px; line-height:1.55; }
.contact-main { min-height:100svh; padding:150px 13vw 60px; background:var(--ink); color:var(--paper); display:flex; flex-direction:column; }.contact-main .eyebrow { color:#efbead; }.contact-main h1 em { color:#efbead; }.contact-details { margin-top:auto; padding-top:60px; display:flex; justify-content:space-between; align-items:end; gap:20px; }.contact-details a { font:400 clamp(36px,5vw,80px)/.9 var(--serif); letter-spacing:-.05em; }.contact-details a span { color:#efbead; }.contact-details p { margin:0; font:12px/1.6 var(--mono); text-transform:uppercase; }
.project-hero { padding:150px 3.5vw 0; }.project-hero h1 { margin:18px 0 48px; }.project-hero img { width:100%; height:min(68svh,760px); display:block; object-fit:contain; object-position:center; background:#ece3d7; border-radius:2px 50px 2px 2px; }.project-copy { display:grid; grid-template-columns:2fr 7fr; gap:50px; padding:100px 13vw 92px; }.project-copy > div { display:block; max-width:850px; }.project-copy .lead { margin:0; font-size:clamp(31px,3.5vw,56px); }.project-gallery { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(18px,3vw,52px); align-items:center; padding:0 3.5vw 120px; }.project-media { margin:0; min-width:0; }.project-media img { display:block; width:100%; max-height:min(66svh,680px); object-fit:contain; object-position:center; }.project-media--wide { grid-column:span 8; }.project-media--wide:nth-child(even) { grid-column:5/span 8; }.project-media--detail { grid-column:9/span 4; }.project-media--detail:nth-child(even) { grid-column:1/span 4; }.project-media--process { grid-column:2/span 6; }.project-media--process:nth-child(even) { grid-column:6/span 6; }.project-media--cutout { grid-column:2/span 10; padding:clamp(14px,3vw,42px); background:linear-gradient(135deg,#f6f0e8,#e6d9ca); border-radius:2px 58px 2px 2px; }.project-media--cutout img { max-height:min(64svh,650px); }.project-media--plan { grid-column:3/span 7; padding:clamp(16px,3vw,36px); background:#ece3d7; border-radius:34px 2px 34px 2px; }.project-media--plan img { mix-blend-mode:multiply; }.project-media--wide img { border-radius:2px 38px 2px 2px; }.project-media--wide:nth-child(even) img { border-radius:38px 2px 2px 2px; }.project-media--detail img { border-radius:18px; }.project-media--process img { border-radius:2px; }.project-gallery .large-link { grid-column:1/-1; display:inline-block; margin-top:28px; color:var(--wine); }
@media(max-width:760px){.home-hero__content{padding:112px 20px 35px}.home-hero h1,.page-heading h1,.contact-main h1,.project-hero h1{font-size:clamp(64px,18.4vw,96px)}.home-hero__bottom{align-self:auto;padding-top:70px}.home-intro{display:block;padding:90px 20px}.home-intro .eyebrow{margin-bottom:35px}.featured-home{padding:0 20px 85px}.featured-home__visual{aspect-ratio:4/5;border-radius:2px 30px 2px 2px}.featured-home__footer{align-items:center}.round-link{width:44px;height:44px}.home-close{padding:70px 20px 95px}.page{padding:110px 20px 85px}.page-heading{display:block;margin-bottom:50px}.page-heading .eyebrow{margin-bottom:30px}.page-heading .filters{margin-top:35px}.about-page__content{display:block;padding:0}.about-page__columns{display:block;margin-top:40px}.about-page__columns p+p{margin-top:20px}.gallery-empty{padding:45px 0}.contact-main{padding:115px 20px 35px}.contact-details{display:block}.contact-details p{margin-top:35px}.project-hero{padding:105px 20px 0}.project-hero h1{margin:15px 0 38px}.project-hero img{height:min(58svh,560px);border-radius:2px 30px 2px 2px}.project-copy{display:block;padding:75px 20px}.project-copy .eyebrow{margin-bottom:35px}.project-copy>div{display:block}.project-gallery{display:block;padding:0 20px 80px}.project-media{margin:0 0 28px}.project-media--cutout,.project-media--plan{padding:18px}.project-media img{max-height:58svh}.project-gallery .large-link{margin-top:20px}}
.contact-form{max-width:680px;margin-top:clamp(70px,10vw,140px);padding-top:30px;border-top:1px solid rgba(243,237,227,.25)}.contact-form>p:not(.eyebrow){max-width:520px;margin:0 0 28px;color:#d5c9c4;line-height:1.55}.contact-form form{display:grid;gap:16px}.contact-form label{display:grid;gap:7px;font:500 10px var(--mono);letter-spacing:.06em;text-transform:uppercase}.contact-form label span{color:#bfaea9;font-size:9px}.contact-form input,.contact-form textarea{width:100%;border:1px solid rgba(243,237,227,.3);border-radius:10px;background:transparent;color:var(--paper);padding:12px;font:400 15px var(--sans);letter-spacing:normal;text-transform:none}.contact-form textarea{min-height:120px;resize:vertical}.contact-form button{justify-self:start;border:0;border-radius:999px;padding:12px 18px;background:#efbead;color:#2a1719;font:500 11px var(--mono);letter-spacing:.04em;cursor:pointer}.contact-form button:disabled{opacity:.55}.contact-form__status{min-height:18px;margin:0;color:#d5c9c4;font-size:13px}.contact-form__trap{position:absolute!important;left:-9999px!important;opacity:0!important}

/* Blocs libres : une mise en page éditoriale ajustable depuis le Studio. */
.custom-blocks{display:grid;gap:0;padding:0 13vw 80px}.custom-block{width:min(var(--block-width,100%),100%);min-width:0;margin:0 0 var(--block-gap,36px);transform:translate(var(--block-offset-x,0),var(--block-offset-y,0))}.custom-block--align-center{margin-inline:auto}.custom-block--align-right{margin-left:auto}.custom-block--text,.custom-block--quote{min-height:var(--block-min-height,0);padding:var(--block-padding,0);background:var(--block-background,transparent);color:var(--block-color,inherit);text-align:var(--block-text-align,left)}.custom-block--text p,.custom-block--quote p{max-width:none;margin:0;color:inherit;font:400 var(--block-font-size,18px)/1.45 var(--block-font,var(--sans));letter-spacing:normal}.custom-block--text.custom-block--lead p{font-family:var(--block-font,var(--serif));line-height:.98;letter-spacing:-.04em}.custom-block--quote{border-left:1px solid currentColor}.custom-block--quote p{padding-left:clamp(18px,3vw,42px);font-family:var(--block-font,var(--serif));font-style:italic}.custom-block--image img{display:block;width:100%;max-height:min(68svh,760px);object-fit:contain;object-position:var(--media-position,center);background:transparent}.custom-block--image figcaption{margin-top:10px;color:var(--muted);font:10px var(--mono);letter-spacing:.04em;text-transform:uppercase}.custom-block--spacer{height:var(--space,80px)}.custom-block--divider{width:100%;border:0;border-top:1px solid var(--line)}.custom-block--portrait img,.project-media--portrait img,.gallery-item--portrait img{aspect-ratio:3/4}.custom-block--landscape img,.project-media--landscape img,.gallery-item--landscape img{aspect-ratio:4/3}.custom-block--square img,.project-media--square img,.gallery-item--square img{aspect-ratio:1}.radius-none{border-radius:0!important}.radius-soft{border-radius:2px 30px 2px 2px}.radius-top-right{border-radius:2px 42px 2px 2px}.radius-diagonal{border-radius:34px 2px 34px 2px}.radius-all{border-radius:22px}.radius-pill{border-radius:999px}.project-media.radius-soft img,.project-media.radius-top-right img,.project-media.radius-diagonal img,.project-media.radius-all img,.project-media.radius-pill img,.gallery-item.radius-soft img,.gallery-item.radius-top-right img,.gallery-item.radius-diagonal img,.gallery-item.radius-all img,.gallery-item.radius-pill img,.custom-block.radius-soft img,.custom-block.radius-top-right img,.custom-block.radius-diagonal img,.custom-block.radius-all img,.custom-block.radius-pill img{border-radius:inherit}.admin-preview--edit [data-edit-path]{outline:1px dashed transparent;outline-offset:4px;cursor:pointer}.admin-preview--edit [data-edit-path]:hover{outline-color:color-mix(in srgb,var(--wine) 58%,transparent)}.admin-preview--edit .admin-selected{outline:2px solid var(--wine)!important;outline-offset:5px}.admin-preview--edit [data-edit-inline].admin-selected{cursor:text}
@media(max-width:760px){.custom-blocks{padding:0 20px 55px}.custom-block{width:100%;margin-bottom:28px}.custom-block--text,.custom-block--quote{padding:var(--block-padding,0)}}
