.br-rotator-group {
	display: grid;
	grid-template-columns: repeat(var(--br-columns, 1), minmax(0, 1fr));
	gap: 20px;
	width: 100%;
}

.br-rotator-group.br-columns-2 { --br-columns: 2; }
.br-rotator-group.br-columns-3 { --br-columns: 3; }
.br-rotator-group.br-columns-4 { --br-columns: 4; }
.br-rotator-group.br-layout-vertical { grid-template-columns: 1fr; }

.br-rotator {
	position: relative;
	width: 100%;
	max-width: 800px;
	aspect-ratio: var(--br-ratio);
	margin-inline: auto;
	overflow: hidden;
	background: transparent;
}

.br-rotator.br-format-200x500 { max-width: 200px; }
.br-rotator.br-format-1800x500 { max-width: 1800px; }

.br-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition-property: opacity, transform;
	transition-duration: var(--br-transition, 1200ms);
	transition-timing-function: ease-in-out;
	will-change: opacity, transform;
}

.br-slide.is-active { opacity: 1; }
.br-slide.is-leaving { opacity: 0; z-index: 1; }
.br-slide.is-active { z-index: 2; }
.br-slide a { display: block; width: 100%; height: 100%; }

.br-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.br-effect-slide .br-slide { transform: translateX(12%); }
.br-effect-slide .br-slide.is-active { transform: translateX(0); }
.br-effect-slide .br-slide.is-leaving { transform: translateX(-12%); }

.br-effect-zoom .br-slide { transform: scale(1.08); }
.br-effect-zoom .br-slide.is-active { transform: scale(1); }
.br-effect-zoom .br-slide.is-leaving { transform: scale(0.96); }

.br-effect-flip .br-rotator { perspective: 1200px; }
.br-effect-flip .br-slide {
	transform: rotateY(80deg);
	transform-origin: center;
	backface-visibility: hidden;
}
.br-effect-flip .br-slide.is-active { transform: rotateY(0); }
.br-effect-flip .br-slide.is-leaving { transform: rotateY(-80deg); }

.br-empty {
	padding: 12px;
	border: 1px dashed currentColor;
	font-size: 14px;
}

@media (prefers-reduced-motion: reduce) {
	.br-slide { transition: none; }
}

@media (max-width: 768px) {
	.br-rotator-group { grid-template-columns: 1fr; }
}
