.curated-carousel{height:calc(100svh - 242px);min-height:450px;max-height:900px;touch-action:pan-y;background:#21171e}
.curated-carousel .slide{position:absolute;inset:0;display:block;overflow:hidden;opacity:0;transform:none;transition:opacity .85s ease;pointer-events:none}
.curated-carousel .slide.active{opacity:1;transform:none}
.curated-carousel .slide picture{position:absolute;inset:0;display:block}
.curated-carousel .slide .slide-backdrop{position:absolute;inset:-8%;width:116%;height:116%;max-width:none;object-fit:cover;filter:blur(22px) brightness(.47) saturate(.85);opacity:.85;animation:ambient-drift 5.2s linear both;animation-play-state:paused}
.curated-carousel .slide .slide-image{display:block;width:100%;height:100%;object-fit:contain;object-position:center;animation:photo-approach 5.2s ease-out both;animation-play-state:paused;transition:none}
.curated-carousel .slide[data-motion="pan-right"] .slide-image{animation-name:photo-right}
.curated-carousel .slide[data-motion="retreat"] .slide-image{animation-name:photo-retreat}
.curated-carousel .slide[data-motion="pan-left"] .slide-image{animation-name:photo-left}
.curated-carousel .slide.portrait[data-motion="approach"] .slide-image{animation-name:portrait-rise}
.curated-carousel .slide.portrait[data-motion="retreat"] .slide-image{animation-name:portrait-fall}
.curated-carousel .slide.active .slide-image,.curated-carousel .slide.active .slide-backdrop{animation-play-state:running;will-change:transform}
.curated-carousel[data-motion-paused="true"] .slide img{animation-play-state:paused}
.curated-carousel .veil{background:linear-gradient(0deg,#110b164d,transparent 22%);pointer-events:none}
.curated-carousel .carousel-controls{bottom:22px;left:4%;right:4%;gap:12px}
.curated-carousel .carousel-controls span{font:400 14px/1.5 var(--text);letter-spacing:1.5px;text-shadow:0 1px 6px #0009}
.curated-carousel .carousel-controls button{width:42px;height:42px;border:1px solid #ffffff85;background:#130d1a33;backdrop-filter:blur(4px);font:400 17px/1 var(--text);color:#fff}
.curated-carousel .carousel-controls button:hover{background:#130d1a66;border-color:#fff}
.carousel-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes photo-approach{from{transform:scale(1)}to{transform:scale(1.055)}}
@keyframes photo-retreat{from{transform:scale(1.055)}to{transform:scale(1)}}
@keyframes photo-right{from{transform:translateX(-2.3%)}to{transform:translateX(2.3%)}}
@keyframes photo-left{from{transform:translateX(2.3%)}to{transform:translateX(-2.3%)}}
@keyframes portrait-rise{from{transform:translateY(1.8%)}to{transform:translateY(-1.8%)}}
@keyframes portrait-fall{from{transform:translateY(-1.8%)}to{transform:translateY(1.8%)}}
@keyframes ambient-drift{from{transform:scale(1) translateX(-2%)}to{transform:scale(1.09) translateX(2%)}}
@media(max-width:760px){.curated-carousel{height:60svh;min-height:390px;max-height:700px}.curated-carousel .carousel-controls{bottom:16px;left:6%;right:6%;gap:9px}.curated-carousel .carousel-controls button{width:44px;height:44px}.curated-carousel .slide .slide-backdrop{filter:blur(16px) brightness(.45)}}
@media(prefers-reduced-motion:reduce){.curated-carousel .slide{transition:none}.curated-carousel .slide .slide-image,.curated-carousel .slide.active .slide-image,.curated-carousel .slide .slide-backdrop{animation:none;transform:none;will-change:auto}}
/* Pleine largeur, sans portraits isolés ni bandes floutées. Un seul recadrage, adapté à chaque sujet. */
.curated-carousel .slide .slide-image{object-fit:cover;object-position:var(--focus-x,50%) var(--focus-y,50%)}
.curated-carousel .slide.portrait[data-motion="approach"] .slide-image{animation-name:photo-approach}
.curated-carousel .slide.portrait[data-motion="retreat"] .slide-image{animation-name:photo-retreat}
@keyframes photo-right{from{transform:translateX(-1.5%) scale(1.04)}to{transform:translateX(1.5%) scale(1.04)}}
@keyframes photo-left{from{transform:translateX(1.5%) scale(1.04)}to{transform:translateX(-1.5%) scale(1.04)}}
@media(max-width:760px){.curated-carousel .slide .slide-image{object-position:var(--mobile-focus-x,50%) var(--mobile-focus-y,50%)}}
@media(prefers-reduced-motion:reduce){.curated-carousel .slide .slide-image{animation:none;transform:none}}
/* Cadre plus proche du site original : préserver le regard et les deux balcons. */
@media(min-width:761px){.curated-carousel{height:56.25vw;min-height:560px;max-height:1100px;}}
.curated-carousel .slide[data-subject="mask"] .slide-image{animation-name:framing-breathe;transform-origin:24% 46%;}
.curated-carousel .slide[data-subject="balcony"] .slide-image{filter:brightness(.92);}
@keyframes framing-breathe{from{transform:scale(1)}to{transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.curated-carousel .slide[data-subject] .slide-image{animation:none;transform:none;}}
/* Balcon : recul réel dans le cadre, plutôt qu'un zoom sur le panorama. */
.curated-carousel .slide[data-subject="balcony"]{background:#17131a;}
.curated-carousel .slide[data-subject="balcony"] .slide-image{animation:none;transform:none;object-position:50% 55%;}
@media(min-width:761px){.curated-carousel .slide[data-subject="balcony"] picture{inset:0 8%;}}
@media(max-width:760px){.curated-carousel .slide[data-subject="balcony"] .slide-image{object-fit:contain;object-position:center;}}
