/* Continuous filmstrip, with natural image proportions. */
.bp-carousel-stage{position:relative;display:block}
.bp-track{position:relative;display:flex;align-items:center;gap:28px;height:100%;overflow-x:auto;overflow-y:hidden;padding-inline:50%;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;outline-offset:5px}
.bp-track::-webkit-scrollbar{display:none}
.bp-track.is-moving,.bp-track.is-dragging{scroll-snap-type:none}
.bp-track.is-dragging{cursor:grabbing;user-select:none}
.bp-slide{min-width:0;height:100%;flex:0 0 65%;display:flex;align-items:center;justify-content:center;scroll-snap-align:center;opacity:.45;transition:opacity .65s ease}
.bp-slide.is-selected{opacity:1}
/* Give lazy-loaded images a definite box before they decode, including on mobile. */
.bp-slide img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none}
.bp-carousel-stage .bp-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(245,245,247,.94);box-shadow:0 1px 8px #0000000d}
.bp-carousel-stage .bp-main-prev{left:10px}.bp-carousel-stage .bp-main-next{right:10px}
.bp-carousel-stage .bp-arrow:disabled{opacity:.25;cursor:default}
@media(max-width:600px){.bp-track{gap:16px}.bp-carousel-stage .bp-main-prev{left:2px}.bp-carousel-stage .bp-main-next{right:2px}}
@media(prefers-reduced-motion:reduce){.bp-slide{transition:none}}
