.portfolio-page{background:var(--m-paper)}
.portfolio-page nav .nav-active{color:var(--m-accent)}
.portfolio-intro{position:relative;min-height:calc(100vh - 88px);padding:8vh 3vw 7vh;display:grid;grid-template-columns:1fr 2fr;grid-template-rows:auto 1fr auto;border-bottom:1px solid rgba(16,35,29,.3);overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(16,35,29,.82) 0%,rgba(16,35,29,.52) 50%,rgba(16,35,29,.22) 100%),url('assets/projet-04-angle.jpg') center 58%/cover no-repeat}.portfolio-intro::after{content:'04';position:absolute;right:3vw;top:8vh;padding:9px 11px;background:var(--m-accent);color:#fff;font-size:9px;letter-spacing:.13em}
.portfolio-intro .kicker{grid-column:1/3;color:var(--m-brand-light)}.portfolio-intro h1{position:relative;z-index:1;grid-column:1/3;align-self:center;margin:5vh 0;font-size:clamp(92px,14vw,220px);font-weight:500;line-height:.73;letter-spacing:-.09em;text-shadow:0 12px 45px rgba(0,0,0,.2)}.portfolio-lead{position:relative;z-index:1;grid-column:2;display:grid;grid-template-columns:1fr auto;gap:8vw;align-items:end;border-top:1px solid rgba(255,255,255,.65);padding-top:18px}.portfolio-lead p{max-width:520px;margin:0;font-size:20px;line-height:1.45}.portfolio-lead span{text-transform:uppercase;font-size:9px;line-height:1.6;letter-spacing:.13em;color:rgba(255,255,255,.7)}
.portfolio-opening-image{position:relative;margin:0;padding:18px 3vw 0;background:var(--m-ink);overflow:hidden}.portfolio-opening-image img{width:100%;height:min(70vh,760px);object-fit:cover;object-position:center 58%;filter:grayscale(1) contrast(1.05);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.portfolio-opening-image:hover img{transform:scale(1.012)}.portfolio-opening-image figcaption{padding:12px 0 18px;color:rgba(255,255,255,.7);border:0}.portfolio-opening-image::after{content:'01';position:absolute;top:42px;right:calc(3vw + 24px);padding:9px 11px;background:var(--m-accent);color:#fff;font-size:9px;letter-spacing:.13em}
.portfolio-project{padding:125px 3vw;border-bottom:1px solid rgba(20,22,19,.3)}.project-heading{display:grid;grid-template-columns:1fr 2fr 1fr;gap:4vw;align-items:start;margin-bottom:70px}.project-count{margin:0;color:var(--m-accent);font-size:14px}.project-heading h2{margin:20px 0 0;font-size:clamp(60px,7.5vw,118px);font-weight:500;line-height:.84;letter-spacing:-.075em}.project-summary{margin:30px 0 0;font-size:17px;line-height:1.55;max-width:390px}.portfolio-hero{margin:0}.portfolio-hero img{aspect-ratio:16/8.5;object-fit:cover;background:#d5d5d2}.portfolio-project figure{overflow:hidden}.portfolio-project figure img{transition:transform 1s cubic-bezier(.2,.7,.2,1);filter:grayscale(1)}.portfolio-project figure:hover img{transform:scale(1.012)}.portfolio-project figcaption{padding:12px 0;border-top:1px solid rgba(20,22,19,.2)}
.portfolio-data{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:50px 0 0;background:rgba(16,35,29,.18)}.portfolio-data div{padding:22px;background:var(--m-paper)}.portfolio-data dt{margin-bottom:24px;color:var(--m-accent);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.13em}.portfolio-data dd{margin:0;font-size:14px}.project-building{background:var(--m-paper)}.project-quarter{background:var(--m-sage)}.project-quarter .portfolio-data div{background:var(--m-sage)}.project-apartment{background:var(--m-sand)}.project-apartment .portfolio-data div{background:var(--m-sand)}.project-neighborhood{background:#d9d6cd}.project-neighborhood .portfolio-data div{background:#d9d6cd}.portfolio-duo{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:2px}.portfolio-duo figure,.portfolio-single figure{margin:0;background:#d5d5d2}.portfolio-duo img,.portfolio-single img{width:100%;aspect-ratio:3/2;object-fit:cover}.apartment-hero img{object-position:center}
.portfolio-cta{position:relative;min-height:70vh;padding:120px 7vw;background:var(--m-ink);color:#fff;display:grid;grid-template-columns:1fr 3fr;align-content:center;gap:50px;overflow:hidden}.portfolio-cta::after{content:'';position:absolute;width:340px;height:340px;right:-100px;top:-100px;border-radius:50%;background:var(--m-accent);opacity:.9}.portfolio-cta h2{position:relative;z-index:1;grid-column:2;margin:0;font-size:clamp(58px,8.5vw,132px);font-weight:500;line-height:.86;letter-spacing:-.075em}.portfolio-cta .primary-link{position:relative;z-index:1;grid-column:2;width:min(420px,100%);margin-top:20px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;background:var(--m-accent);color:#fff;border:1px solid var(--m-accent);font-size:13px;font-weight:700;letter-spacing:.01em;transition:background .25s,color .25s,transform .25s}.portfolio-cta .primary-link span{font-size:18px;transition:transform .25s}.portfolio-cta .primary-link:hover{background:transparent;color:var(--m-white);transform:translateY(-3px)}.portfolio-cta .primary-link:hover span{transform:translate(3px,-3px)}.portfolio-cta .kicker{color:var(--m-brand-light)}
@media(max-width:920px){.portfolio-intro{padding-inline:24px}.portfolio-lead{grid-column:1/3}.portfolio-project{padding:90px 24px}.project-heading{grid-template-columns:80px 1fr}.project-summary{grid-column:2}.portfolio-data{grid-template-columns:1fr 1fr}.portfolio-cta{padding-inline:24px;grid-template-columns:1fr}.portfolio-cta h2,.portfolio-cta .primary-link{grid-column:1}}
@media(max-width:620px){.portfolio-intro{min-height:78vh;padding:55px 18px;overflow:hidden}.portfolio-intro h1{font-size:clamp(50px,14vw,62px);line-height:.8;letter-spacing:-.075em}.portfolio-lead{grid-template-columns:1fr;gap:24px}.portfolio-lead p{font-size:17px}.portfolio-opening-image{padding:10px 18px 0}.portfolio-opening-image img{height:58vh;object-position:center 55%}.portfolio-opening-image::after{top:28px;right:34px}.portfolio-project{padding:70px 18px}.project-heading{grid-template-columns:42px 1fr;margin-bottom:45px}.project-heading h2{font-size:clamp(52px,16vw,72px)}.project-summary{font-size:15px}.portfolio-hero img{aspect-ratio:4/3}.portfolio-duo{grid-template-columns:1fr}.portfolio-data{grid-template-columns:1fr}.portfolio-data div{padding:18px}.portfolio-data dt{margin-bottom:10px}.portfolio-cta{min-height:65vh;padding:80px 18px}.portfolio-cta h2{font-size:clamp(50px,15vw,68px)}}

/* Grille compacte des réalisations */
.portfolio-intro{min-height:58vh}
.portfolio-intro h1{font-size:clamp(72px,10vw,150px)}
.portfolio-lead{grid-column:1/3}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:rgba(16,35,29,.28)}
.project-card{min-width:0;padding:clamp(18px,2.4vw,38px);scroll-margin-top:72px}
.project-card-media{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:#d2d2ce}
.project-card-media::after{content:'';position:absolute;z-index:4;inset:0;display:block;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,rgba(255,255,255,0) 44%,rgba(255,255,255,.1) 72%,rgba(255,255,255,.3) 100%);mix-blend-mode:screen}
.project-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.025) contrast(.96);opacity:0;transform:scale(1.012);will-change:opacity,transform;transition:opacity .32s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.project-shot.shot-1{opacity:1}
.project-card-media[data-shot="1"] .shot-1,.project-card-media[data-shot="2"] .shot-2,.project-card-media[data-shot="3"] .shot-3{opacity:1;transform:scale(1)}
.project-card-media[data-shot="2"] .shot-1,.project-card-media[data-shot="3"] .shot-1{opacity:0}
.project-card-media figcaption{position:absolute;z-index:5;left:0;right:0;top:0;bottom:auto;padding:12px;color:var(--m-ink);background:none;border:0;pointer-events:none;align-items:flex-start}.project-card-media figcaption span{padding:7px 9px;background:rgba(243,239,230,.88);backdrop-filter:blur(8px)}
.project-card-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.42fr);gap:24px;padding:22px 0 4px;align-items:end}
.project-card-body h2{grid-row:1/4;margin:0;font-size:clamp(31px,3.2vw,54px);font-weight:500;line-height:.92;letter-spacing:-.055em}
.project-card-body h2 span,.project-card-body h2 small{display:block;font-size:9px;line-height:1.2;letter-spacing:.14em;text-transform:uppercase}
.project-card-body h2 span{margin-bottom:14px;color:var(--m-accent)}
.project-card-body h2 small{margin-top:16px;color:var(--m-ink)}
.project-card-body p{margin:0;font-size:13px;line-height:1.45}
.project-card-body a{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.project-apartment{background:var(--m-sand)}.project-building{background:var(--m-paper)}.project-quarter{background:var(--m-sage)}.project-neighborhood{background:#d9d6cd}
#projet-03 .project-shot{filter:brightness(1.08) contrast(.88)}
#projet-03 .project-card-media::after{background:radial-gradient(ellipse at 50% 48%,rgba(255,255,255,0) 38%,rgba(255,255,255,.16) 68%,rgba(255,255,255,.44) 100%)}
#projet-03 .project-card-media .shot-1{inset:auto;width:160%;height:160%;top:-60%;left:-51%;max-width:none}
#projet-04 .project-shot{filter:none}
#projet-04 .project-card-media::after{display:none}
@media(max-width:920px){.portfolio-intro{min-height:52vh}.portfolio-grid{grid-template-columns:1fr}.project-card-body{grid-template-columns:1.4fr 1fr}}
@media(max-width:620px){.portfolio-intro{min-height:62vh}.portfolio-intro h1{font-size:clamp(50px,14vw,68px)}.project-jump{display:grid;grid-template-columns:1fr 1fr}.project-card{padding:18px}.project-card-media{aspect-ratio:4/3}.project-card-media figcaption span:first-child{display:none}.project-card-body{grid-template-columns:1fr}.project-card-body h2{grid-row:auto;font-size:38px}.project-card-body p{font-size:12px}}
@media(prefers-reduced-motion:reduce){.project-shot{transition:none}}
