.qtimg-section {
	position: relative;
	overflow: hidden;
	height: var(--qtimg-height-desktop, 520px);
	border-radius: var(--qtimg-radius, 24px);
	background-color: transparent;
	background:
		radial-gradient(circle at top left, color-mix(in srgb, var(--qtimg-overlay-tint, #ffffff) 14%, transparent), transparent 38%),
		linear-gradient(135deg, var(--qtimg-background-start, #152238), var(--qtimg-background-end, #06080d));
	opacity: 1;
	background-blend-mode: normal;
}

.qtimg-section::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 38px 38px;
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), transparent);
	pointer-events: none;
	opacity: var(--qtimg-grid-opacity, 1);
}

.qtimg-section__canvas,
.qtimg-section__overlay,
.qtimg-section__fallback {
	position: absolute;
	inset: 0;
}

.qtimg-section__canvas {
	display: block;
	width: 100%;
	height: 100%;
	touch-action: none;
}

.qtimg-section__overlay {
	background:
		radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.12), transparent 32%),
		radial-gradient(circle at 80% 30%, rgba(255, 255, 255, 0.08), transparent 28%),
		linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(0, 0, 0, 0.18));
	pointer-events: none;
	opacity: var(--qtimg-overlay-opacity, 1);
}

.qtimg-section.is-transparent {
	background: transparent;
}

.qtimg-section__fallback {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem;
	align-content: center;
	justify-content: center;
	padding: 2rem;
	opacity: 0;
	pointer-events: none;
	font-size: clamp(1.25rem, 2vw, 2.5rem);
}

@media (max-width: 767px) {
	.qtimg-section {
		height: var(--qtimg-height-mobile, 320px);
		border-radius: calc(var(--qtimg-radius, 24px) * 0.7);
	}
}
