/*
 * Media Showcase — Figma 4345:98809 and I3098:27452;4345:98809.
 * The full-width frame owns a centered 10.5536px gradient stroke. Its height
 * follows the intrinsic ratio of the ACF-owned media rather than cropping it
 * into the original Figma placeholder ratio.
 */
.octops-media-showcase {
	isolation: isolate;
	padding-block: 64px;
	position: relative;
	z-index: 1;
}

.octops-media-showcase__container {
	container-type: inline-size;
	max-width: 1328px;
}

.octops-media-showcase + .octops-hiw-section-divider {
	/* This section already owns the separation before an optional divider. */
	margin-top: 0;
}

.octops-media-showcase__frame {
	--showcase-glow-1-blur: 9.04594px;
	--showcase-glow-1-spread: 1.50766px;
	--showcase-glow-2-blur: 24.1225px;
	--showcase-glow-3-blur: 36.18375px;
	--showcase-glow-4-blur: 60.30624px;
	--showcase-glow-4-spread: -3.01531px;
	--showcase-radius: 24.1225px;
	--showcase-stroke: 10.5536px;

	isolation: isolate;
	position: relative;
	width: 100%;
}

/* Figma's stroke is centered on the frame, rather than an inset CSS border. */
.octops-media-showcase__frame::before,
.octops-media-showcase__frame::after {
	border-radius: calc(var(--showcase-radius) + var(--showcase-stroke) / 2);
	content: "";
	inset: calc(var(--showcase-stroke) / -2);
	pointer-events: none;
	position: absolute;
}

.octops-media-showcase__frame::before {
	box-shadow:
		0 0 var(--showcase-glow-1-blur) var(--showcase-glow-1-spread) rgba(191, 224, 255, 0.9),
		0 0 var(--showcase-glow-2-blur) rgba(176, 207, 255, 0.7),
		0 0 var(--showcase-glow-3-blur) rgba(255, 212, 150, 0.55),
		0 0 var(--showcase-glow-4-blur) var(--showcase-glow-4-spread) rgba(204, 217, 255, 0.3);
	z-index: -1;
}

.octops-media-showcase__frame::after {
	background: linear-gradient(90deg, #afceff 0%, #ffd496 100%);
	padding: var(--showcase-stroke);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask-composite: exclude;
	z-index: 1;
}

.octops-media-showcase__viewport {
	backdrop-filter: blur(12.06125px);
	background: var(--octops-bg);
	border-radius: var(--showcase-radius);
	overflow: hidden;
	position: relative;
	width: 100%;
	-webkit-backdrop-filter: blur(12.06125px);
	z-index: 0;
}

.octops-media-showcase__viewport::after {
	border: 1.50766px solid rgba(255, 255, 255, 0.1);
	border-radius: inherit;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 2;
}

.octops-media-showcase__media {
	/* Keep the complete source asset visible at its intrinsic aspect ratio. */
	display: block;
	height: auto;
	max-width: 100%;
	object-fit: contain;
	width: 100%;
}

/* The existing Hero already contributes 60px of the authored 64px gap. */
@media (min-width: 641px) {
	.octops-hiw-hero + .octops-media-showcase {
		padding-top: 4px;
	}
}

@supports (width: 1cqw) {
	.octops-media-showcase__frame {
		--showcase-glow-1-blur: clamp(1.9788px, 0.706714cqw, 9.04594px);
		--showcase-glow-1-spread: clamp(0.3298px, 0.117786cqw, 1.50766px);
		--showcase-glow-2-blur: clamp(5.2768px, 1.88457cqw, 24.1225px);
		--showcase-glow-3-blur: clamp(7.9152px, 2.826855cqw, 36.18375px);
		--showcase-glow-4-blur: clamp(13.192px, 4.711425cqw, 60.30624px);
		--showcase-glow-4-spread: max(-3.01531px, -0.235571cqw);
		--showcase-radius: clamp(12px, 1.8845703cqw, 24.1225px);
		--showcase-stroke: clamp(4px, 0.8245cqw, 10.5536px);
	}
}

@media (max-width: 640px) {
	.octops-media-showcase {
		padding-block: 40px 64px;
	}

	.octops-hiw-hero + .octops-media-showcase {
		/* Keep the Hero's established mobile bottom spacing as the only gap. */
		padding-top: 0;
	}

	.octops-media-showcase__frame {
		--showcase-radius: 12px;
		--showcase-stroke: 4px;
	}
}

@supports not (width: 1cqw) {
	@media (max-width: 640px) {
		.octops-media-showcase__frame {
			--showcase-glow-1-blur: 2.4735px;
			--showcase-glow-1-spread: 0.4124px;
			--showcase-glow-2-blur: 6.596px;
			--showcase-glow-3-blur: 9.894px;
			--showcase-glow-4-blur: 16.49px;
			--showcase-glow-4-spread: -0.824px;
		}
	}
}
