.photo-carousel{text-align:center;padding-block:clamp(2.6rem,7vw,5rem)}
.photo-carousel h2{margin:0 0 1.35rem}
.photo-stage{position:relative;display:grid;place-items:center;isolation:isolate;perspective:800px;min-height:clamp(230px,65vw,390px);touch-action:pan-y;overflow:hidden}
.photo-stage button{grid-area:1/1;width:min(57%,285px);aspect-ratio:4/5;padding:0;overflow:hidden;border:4px solid #fff9ef;border-radius:16px;background:#efe5d8;box-shadow:0 14px 38px #36172842;transform:translateX(var(--shift,0)) rotateY(var(--angle,0)) scale(var(--scale,1));transition:transform .65s cubic-bezier(.2,.75,.25,1),opacity .45s}
.photo-stage img{display:block;width:100%;height:100%;object-fit:cover}
.photo-stage [data-slot=center]{z-index:2}
.photo-stage [data-slot=next]{--shift:57%;--angle:-34deg;--scale:.78;opacity:.73}
.photo-stage [data-slot=previous]{--shift:-57%;--angle:34deg;--scale:.78;opacity:.73}
.photo-stage [data-slot=away]{opacity:0;pointer-events:none;--scale:.6}
.photo-navigation{display:flex;justify-content:center;flex-wrap:wrap;gap:.45rem}
.photo-carousel button:is([data-play],[data-step],[data-close]){min-height:44px;color:#432334;border:1px solid #baa79d;border-radius:99px;background:#fffaf2;padding:.3rem .8rem;font:inherit;font-size:.84rem}
.photo-position{font-size:.85rem;margin:.55rem auto 0}
.photo-carousel dialog{border:0;border-radius:16px;padding:.8rem;background:#fffaf2;color:#432334;width:min(94vw,720px)}
.photo-carousel dialog::backdrop{background:#240f1bdb}
.photo-carousel dialog img{display:block;width:100%;max-height:76svh;object-fit:contain;margin-top:.6rem}
@media(prefers-reduced-motion:reduce){.photo-stage button{transition:none}}
