.gb-infinite-sentinel {
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.gb-infinite-loader {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	padding: 1.5rem 1rem;
	min-height: 3rem;
	color: #64748b;
	font-size: 0.95rem;
	opacity: 0;
	transition: opacity 160ms ease;
}

.gb-infinite-loader.is-active {
	opacity: 1;
}

.gb-infinite-loader.is-done {
	display: none;
}

.gb-infinite-loader__spinner {
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 999px;
	border: 2px solid #e2e8f0;
	border-top-color: #2563eb;
	animation: gb-infinite-spin 720ms linear infinite;
}

@keyframes gb-infinite-spin {
	to {
		transform: rotate(360deg);
	}
}

.gb-infinite-incoming {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 240ms ease, transform 240ms ease;
}

.gb-infinite-incoming.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.gb-infinite-loader,
	.gb-infinite-loader__spinner,
	.gb-infinite-incoming {
		animation: none !important;
		transition: none !important;
	}
}
