.wpbs-stage{
	position: relative;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 40px 16px;
	box-sizing: border-box;
}

.wpbs-stage::before,
.wpbs-stage::after{
	content: "";
	position: absolute;
	left: 0; right: 0;
	height: 70px;
	pointer-events: none;
	z-index: 2;
}
.wpbs-stage::before{ top: 0; background: linear-gradient(var(--wpbs-bg, #0c0d10), transparent); }
.wpbs-stage::after{ bottom: 0; background: linear-gradient(transparent, var(--wpbs-bg, #0c0d10)); }

.wpbs-rack{
	display: flex;
	align-items: flex-start;
	width: 100%;
	max-width: 1200px;
}

.wpbs-lane{
	position: relative;
	overflow: hidden;
	flex-shrink: 0;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, black 12%, black 88%, transparent 100%);
	        mask-image: linear-gradient(to bottom, transparent 0%, black 12%, black 88%, transparent 100%);
}
.wpbs-rack.wpbs-no-fade .wpbs-lane{
	-webkit-mask-image: none;
	        mask-image: none;
}

.wpbs-track{
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	will-change: transform;
}

.wpbs-rack.wpbs-pause-hover .wpbs-lane:hover .wpbs-track{
	animation-play-state: paused;
}

@keyframes wpbsScrollUp{
	from{ transform: translateY(0); }
	to{ transform: translateY(-50%); }
}
@keyframes wpbsScrollDown{
	from{ transform: translateY(-50%); }
	to{ transform: translateY(0); }
}

.wpbs-cover{
	position: relative;
	flex-shrink: 0;
	overflow: hidden;
	transition: transform .3s ease, filter .3s ease, box-shadow .3s ease;
}
.wpbs-cover img{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: inherit;
}

/* Hover effect variants — applied via a class on .wpbs-rack */
.wpbs-hover-scale .wpbs-cover:hover{ transform: scale(1.06) !important; z-index: 2; }
.wpbs-hover-straighten .wpbs-cover:hover{ transform: rotate(0deg) scale(1.08) !important; z-index: 2; }
.wpbs-hover-lift .wpbs-cover:hover{ transform: translateY(-14px) scale(1.03) !important; z-index: 2; }
.wpbs-hover-glow .wpbs-cover:hover{ box-shadow: 0 0 0 2px #e0a343, 0 18px 40px rgba(224,163,67,0.35) !important; z-index: 2; }
.wpbs-hover-mono .wpbs-cover{ filter: grayscale(0.85); }
.wpbs-hover-mono .wpbs-cover:hover{ filter: grayscale(0) !important; transform: scale(1.05) !important; z-index: 2; }

.wpbs-empty-notice{
	padding: 12px 16px;
	background: #fff8e5;
	border-left: 4px solid #e0a343;
}

@media (prefers-reduced-motion: reduce){
	.wpbs-track{ animation: none !important; }
}

@media (max-width: 700px){
	.wpbs-stage{ padding: 24px 10px; }
	.wpbs-rack{ gap: 14px !important; }
}
