*{box-sizing:border-box}html{background:#fff;color:#101010;font-family:Arial,Helvetica,sans-serif;font-size:16px}body{margin:0}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}a:focus-visible,summary:focus-visible{outline:2px solid #111;outline-offset:5px}img{display:block;width:100%;object-fit:cover}h1,h2,p{margin:0;font-weight:400}button,a{-webkit-tap-highlight-color:transparent}.header{position:fixed;inset:0 0 auto;height:51px;padding:14px 16px;background:#fff;display:grid;grid-template-columns:1fr 1.5fr 1.5fr;align-items:center;gap:16px;z-index:5;font-size:16px}.brand{white-space:nowrap}.brand strong{font-weight:700}.header nav{display:flex;gap:32px}.info-link{justify-self:end}[aria-current=page]{text-decoration:underline;text-underline-offset:4px}.mobile{display:none}.entrance{position:relative;display:block;height:100svh;min-height:420px;color:white;background:#67584a;overflow:hidden}.entrance>img{width:100%;height:100%;object-position:center;filter:brightness(.86)}.entrance h1{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:0 27px .25em;font-size:6.65vw;line-height:1;font-weight:400;letter-spacing:-.045em;gap:16px}.entrance strong{font-weight:700}.entrance h1 span{font-weight:400}.entrance:hover{text-decoration:none}.enter{position:absolute;bottom:29px;right:27px;font-size:14px}.home-credit{position:fixed;bottom:29px;left:27px;color:white;font-size:12px}.projects{padding:173px 16px 25px}.projects.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project:hover{text-decoration:none}.cover{position:relative;aspect-ratio:1/1.2675;overflow:hidden;background:#ece8e2}.cover img{height:100%;object-position:20% center;transition:transform .55s}.project-1 .cover img{object-position:65% center}.project-2 .cover img{object-position:100% center}.project:hover .cover img{transform:scale(1.025)}.cover-note{position:absolute;bottom:10px;left:10px;color:white;font-size:12px;text-shadow:0 1px 5px #000}.caption{display:grid;grid-template-columns:1fr 1.5fr;gap:8px 16px;margin-top:10px;font-size:14px;line-height:1.25}.caption h2{font-size:14px}.caption .place{grid-column:2;color:#555;font-size:13px}.see{display:none}.gallery-footer{padding:35px 16px 25px;font-size:12px;line-height:1.7;color:#666}.gallery-footer a{text-decoration:underline}.projects.list{display:block}.list .project{display:block;border-top:1px solid #111}.list .project:last-child{border-bottom:1px solid #111}.list .cover{display:none}.list .caption{display:grid;grid-template-columns:1fr 1.5fr 1fr 80px;padding:16px 0;margin:0;font-size:16px;align-items:center}.list .caption h2{font-size:16px}.list .caption .place{grid-column:auto;font-size:14px}.list .see{display:block;text-align:right}.list .project:hover h2{text-decoration:underline;text-underline-offset:3px}.information,.project-page{padding:173px 16px 30px;display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.about-image,.project-visual{position:sticky;top:100px}.about-image img{height:min(68vh,850px);object-position:35% center}.credit{font-size:12px;color:#666;padding-top:10px}.contact-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #111;padding:13px 0;font-size:14px;line-height:1.35;flex-wrap:wrap;overflow-wrap:anywhere}.text-block{border-top:1px solid #111;padding:13px 0;line-height:1.5}.text-block p+p{margin-top:16px}.text-block h2{font-size:14px;margin-bottom:4px}.text-block h2:not(:first-child){margin-top:22px}details{border-top:1px solid #111}details:last-child{border-bottom:1px solid #111}summary{display:flex;justify-content:space-between;cursor:pointer;padding:14px 0;list-style:none}summary::-webkit-details-marker{display:none}.toggle:after{content:'+'}details[open] .toggle:after{content:'−'}details>div{border-top:1px solid #111;padding:14px 0;font-size:14px;line-height:1.55}details p+p{margin-top:14px}.project-copy{padding-left:16px}.back{font-size:14px}.project-copy h1{font-size:36px;line-height:1.12;letter-spacing:-.03em;margin:28px 0}.project-copy dl{margin:0 0 24px}.project-copy dl div{display:grid;grid-template-columns:1fr 2fr;border-top:1px solid;padding:12px 0;font-size:14px;gap:16px}.project-copy dd{margin:0}.project-copy p{line-height:1.5;margin:16px 0}.underlined{display:inline-block;margin-top:22px;text-decoration:underline;text-underline-offset:4px}.project-visual img{height:65vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:860px){.header{height:49px;grid-template-columns:auto 1fr auto;font-size:14px;gap:18px;padding:14px 12px}.brand{font-size:16px;letter-spacing:-.04em}.header nav{justify-content:flex-end;gap:16px}.desktop{display:none}.mobile{display:inline}.entrance h1{font-size:clamp(30px,6.5vw,54px);display:flex;gap:9px;padding:0 16px;letter-spacing:-.04em}.enter{right:16px;bottom:25px}.home-credit{left:16px;bottom:49px}.projects{padding:90px 12px 25px}.projects.grid{grid-template-columns:1fr;gap:35px}.cover{aspect-ratio:1/1.13}.caption{grid-template-columns:115px 1fr}.list .caption{grid-template-columns:1fr 1.4fr;gap:9px}.list .caption .place{grid-column:2}.list .see{display:none}.information,.project-page{padding:90px 12px 25px;grid-template-columns:1fr;gap:30px}.about-copy{grid-row:1}.about-image,.project-visual{position:static}.about-image img,.project-visual img{height:auto;aspect-ratio:1/1.1}.project-copy{padding:0;grid-row:1}.contact-row{flex-direction:column;font-size:14px}.gallery-footer{padding:20px 12px}.project-copy h1{font-size:30px}}@media(max-width:380px){.brand{font-size:14px}.header{gap:12px;font-size:13px}.header nav{gap:10px}.entrance h1{font-size:29px;gap:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.project-dome .cover img{object-position:center}.dome-gallery{min-width:0}.dome-gallery figure{margin:0 0 32px}.dome-gallery img{height:auto;width:100%;object-fit:contain}.dome-gallery figcaption{font-size:13px;color:#666;margin-top:10px}.dome-copy{position:sticky;top:90px}@media(max-width:860px){.dome-copy{position:static}.dome-page .dome-gallery{grid-row:2}}

/* Portfolio: projets de l'agence et références antérieures. */
.projects.portfolio{display:block}.portfolio section{scroll-margin-top:85px}.section-heading{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #111;padding:15px 0 24px;align-items:baseline}.section-heading h2{font-size:20px;letter-spacing:-.025em}.section-heading>span{font-size:14px;color:#555}.project-grid{display:grid;gap:40px 16px}.agency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agency-grid .cover{aspect-ratio:1.35}.project-grid .cover img{object-position:center}.references-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio .caption{grid-template-columns:1fr 1.5fr;line-height:1.4}.agency-credit{grid-column:2;font-size:13px;color:#555}.project-records{margin-top:40px}.project-record{display:block;border-top:1px solid #b8b8b8;padding:15px 0}.project-record:last-child{border-bottom:1px solid #b8b8b8}.project-record .caption{margin:0;grid-template-columns:1fr 1.5fr 1fr 1fr;align-items:baseline}.project-record .caption .place{grid-column:auto}.record-meta{text-align:right;font-size:14px;color:#555}#references{margin-top:100px}.section-intro{font-size:16px;line-height:1.55;max-width:760px;margin:0 0 32px}.eyebrow{font-size:13px;line-height:1.45;text-transform:uppercase;letter-spacing:.045em;color:#555;margin-top:30px!important}.project-copy .eyebrow+h1{margin-top:13px}.attribution{padding:16px 18px;border-left:2px solid #111;background:#f4f4f4;margin:0 0 26px}.attribution p{font-size:14px;margin:0}.attribution p+p{margin-top:12px}.project-copy .source-note{font-size:13px;color:#555;line-height:1.5}.reference-page .dome-copy{position:static}.reference-page .dome-gallery img{max-height:850px;object-fit:contain;object-position:left center}.reference-page .dome-gallery figure{margin-bottom:36px}.list .project-grid{display:block}.list .section-intro{margin-bottom:25px}.list .project-records{margin-top:0}.list .project-record{padding:0}.list .project .caption{grid-template-columns:1fr 1.5fr 1fr 1.4fr}.list .project-grid .agency-credit{grid-column:4;grid-row:1}.list .project-grid .see{display:none}.list .project-grid .caption .place{grid-column:3}.list .project-record .record-meta{grid-column:4}.list .project:last-child{border-bottom:0}.list .project-grid{border-bottom:1px solid #111}.list .agency-grid{border-bottom:0}.list .project-record:last-child{border-bottom:1px solid #111}.list .caption h2{font-size:16px}.list .caption{gap:16px}.list .project-record .caption .place{grid-column:3}.gallery-footer{font-size:14px;padding-top:60px}
@media(max-width:860px){.agency-grid,.references-grid{grid-template-columns:1fr}.agency-grid .cover{aspect-ratio:1.1}.references-grid .cover{aspect-ratio:1/1.13}.section-heading{align-items:flex-start;flex-direction:column;gap:8px;padding-bottom:22px}.section-heading h2{font-size:20px}.project-record .caption{grid-template-columns:1fr 1.5fr;gap:8px 16px}.project-record .caption .place{grid-column:2}.record-meta{grid-column:2;text-align:left}.portfolio .caption h2{font-size:16px}.portfolio .caption .place{font-size:14px}.agency-credit{font-size:14px}.project-grid{gap:38px}#references{margin-top:64px}.list .project .caption{grid-template-columns:1fr 1.5fr;gap:9px 16px}.list .project-grid .caption .place,.list .project-grid .agency-credit,.list .project-record .caption .place,.list .project-record .record-meta{grid-column:2;grid-row:auto}.project-page .dome-copy{position:static}.home-credit{max-width:65%;line-height:1.5}}

.text-only{display:block;max-width:880px;margin-inline:auto}.text-only .project-copy{padding:0}.text-only .project-copy h1{font-size:clamp(32px,5vw,56px)}.text-only .project-copy p:not(.eyebrow){max-width:680px}

.agency-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.agency-grid .cover{aspect-ratio:1/1.2675}.project-subtitle{font-size:18px;margin-top:-12px!important;margin-bottom:28px!important}@media(max-width:860px){.agency-grid{grid-template-columns:1fr}.agency-grid .cover{aspect-ratio:1.1}}

/* Movement follows the photographs; navigation and reading remain stable. */
.projects.grid .project-records{display:none}
.projects.grid .project[href="/references/8-clement/"]{display:none}
.studio-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}
.studio-selection figure{margin:0;min-width:0}
.studio-selection img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
@media(max-width:860px){.studio-selection{gap:12px}}
.projects.portfolio.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 16px}
.portfolio.grid>section,.portfolio.grid .project-grid{display:contents}
.portfolio.grid .section-heading,.portfolio.grid .section-intro{display:none}
@media(max-width:860px){.projects.portfolio.grid{grid-template-columns:1fr;gap:38px}}
.project-year{grid-column:1;grid-row:2;font-size:14px;color:#555;font-variant-numeric:tabular-nums}
.list .project .caption,.list .project-record .caption{grid-template-columns:1fr 1.5fr 1fr 1.4fr 50px}
.list .project-year{grid-column:5;grid-row:1;text-align:right}
@media(max-width:860px){
  .list .project .caption,.list .project-record .caption{grid-template-columns:1fr 1.5fr}
  .list .project-year{grid-column:1;grid-row:2;text-align:left}
}
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
main{animation:page-arrive .5s var(--motion-ease) both}
@keyframes page-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes page-depart{to{opacity:0;transform:translateY(-6px)}}
.page-leaving main{animation:page-depart .16s ease-out both}
.reveal-item{transition:opacity .65s var(--motion-ease),translate .65s var(--motion-ease)}
.reveal-pending{opacity:0;translate:0 20px}
.header nav a,.info-link,.back{position:relative;text-decoration:none}
.header nav a:after,.info-link:after,.back:after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--motion-ease)}
.header nav a:hover:after,.header nav a[aria-current=page]:after,.info-link:hover:after,.info-link[aria-current=page]:after,.back:hover:after{transform:scaleX(1)}
.project-action{position:absolute;left:16px;top:16px;background:#fff;color:#111;padding:9px 12px;font-size:14px;line-height:1;opacity:0;transform:translateY(8px);transition:opacity .25s ease,transform .35s var(--motion-ease)}
.project:focus-visible .project-action{opacity:1;transform:none}
.project-grid .cover img{transition:transform .65s var(--motion-ease)}
.project:focus-visible .cover img{transform:scale(1.035)}
.list .project .caption{transition:background-color .25s ease,padding .35s var(--motion-ease)}
.list .project:hover .caption,.list .project:focus-visible .caption{background:#f3f3f3;padding-left:10px;padding-right:10px}
.project-preview{position:fixed;inset:0 auto auto 0;width:min(260px,24vw);height:min(330px,48vh);z-index:8;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s;filter:drop-shadow(0 10px 24px #0002)}
.project-preview img{width:100%;height:100%;object-fit:cover}
.project-preview.is-visible{opacity:1;visibility:visible}
summary{transition:color .2s ease,padding .3s var(--motion-ease)}
summary:hover{color:#666;padding-left:5px}
.toggle{position:relative;width:12px;height:12px;align-self:center}
.toggle:before,.toggle:after{content:''!important;position:absolute;left:0;top:5px;width:12px;height:1px;background:currentColor;transition:transform .28s var(--motion-ease)}
.toggle:after{transform:rotate(90deg)}
details[open]:not(.is-collapsing) .toggle:after{transform:rotate(0)}
@media(hover:hover) and (pointer:fine){
  .grid .project:hover .cover img{transform:translate(var(--image-x,0px),var(--image-y,0px)) scale(1.04)}
  .grid .project:hover .project-action{opacity:1;transform:none}
  .entrance>img{transition:transform 1.2s var(--motion-ease)}
  .entrance:hover>img{transform:scale(1.025)}
}
@media(max-width:860px),(hover:none){.project-preview{display:none}.project-action{display:none}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal-pending{opacity:1;translate:none}
  .project-preview{display:none}
  .project .cover img,.entrance>img{transform:none!important}
}
