.dm-hero {
	padding: var(--dm-space-7) 0 var(--dm-space-8);
	border-bottom: 1px solid var(--dm-border);
	background:
		radial-gradient(ellipse 42% 48% at 78% 42%, rgba(139, 61, 255, 0.16), transparent 62%),
		var(--dm-bg);
}

.dm-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dm-space-6);
	align-items: center;
	min-height: 0;
}

.dm-hero__title {
	margin: 0 0 var(--dm-space-5);
	font-size: clamp(2.125rem, 4.6vw, 3.75rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -0.03em;
}

.dm-hero__line {
	display: block;
	color: var(--dm-text);
}

.dm-hero__line--accent {
	color: var(--dm-brand-bright);
	background-image: linear-gradient(90deg, var(--dm-brand-bright), var(--dm-cyan));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.dm-hero__lede {
	max-width: 520px;
	margin-bottom: var(--dm-space-5);
	color: var(--dm-text-secondary);
	font-size: 0.975rem;
	line-height: 1.55;
}

.dm-hero__search {
	max-width: 640px;
}

.dm-hero__stats {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dm-space-4) var(--dm-space-6);
	margin-top: var(--dm-space-5);
}

.dm-hero__stat {
	display: inline-flex;
	align-items: center;
	gap: var(--dm-space-2);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--dm-text-secondary);
}

.dm-hero__stat-icon {
	display: inline-flex;
	flex: 0 0 auto;
}

.dm-hero__stat--brand .dm-hero__stat-icon { color: var(--dm-brand); }
.dm-hero__stat--cyan .dm-hero__stat-icon { color: var(--dm-cyan); }
.dm-hero__stat--green .dm-hero__stat-icon { color: var(--dm-green); }

.dm-hero__visual {
	position: relative;
	display: block;
	min-height: 0;
}

.dm-hero__glow {
	position: absolute;
	inset: 22% 18%;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(139, 61, 255, 0.2), transparent 70%);
	pointer-events: none;
}

[data-theme="light"] .dm-hero__glow {
	background: radial-gradient(circle, rgba(139,61,255,0.10), transparent 70%);
}

.dm-hero__art {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	max-width: 480px;
	margin-inline: auto;
}

.dm-hero__art img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.dm-hero__art:not(.dm-hero__art--light) img {
	-webkit-mask-image: radial-gradient(72% 76% at 50% 44%, #000 38%, transparent 76%);
	mask-image: radial-gradient(72% 76% at 50% 44%, #000 38%, transparent 76%);
}

.dm-hero__art--light img {
	-webkit-mask-image: none;
	mask-image: none;
}

.dm-hero__art--light {
	display: none;
}

[data-theme="light"] .dm-hero__art--light {
	display: block;
}

[data-theme="light"] .dm-hero__art:not(.dm-hero__art--light) {
	display: none;
}

.dm-hero__orbit--a {
	animation: dm-hero-pulse 12s ease-in-out infinite;
}

.dm-hero__orbit--b {
	animation: dm-hero-pulse 10s ease-in-out infinite reverse;
}

.dm-hero__orbit--c {
	animation: dm-hero-pulse 8s ease-in-out infinite;
}

.dm-hero__float {
	animation: dm-hero-float 14s ease-in-out infinite;
}

.dm-hero__panel--delay {
	animation-delay: -6s;
}

@keyframes dm-hero-pulse {
	0%,
	100% { opacity: 0.55; }
	50% { opacity: 1; }
}

@keyframes dm-hero-float {
	0%,
	100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}

@media (min-width: 1025px) {
	.dm-hero {
		padding-top: var(--dm-space-8);
		padding-bottom: var(--dm-space-8);
	}

	.dm-hero__grid {
		grid-template-columns: minmax(0, 0.58fr) minmax(0, 0.42fr);
		min-height: 560px;
	}

	.dm-hero__visual {
		display: block;
		min-height: 420px;
	}
}

@media (max-width: 900px) {
	.dm-hero__visual {
		min-height: 0;
	}

	.dm-hero__art {
		max-width: min(100%, 480px);
	}
}

@media (max-width: 767px) {
	.dm-hero__stats {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--dm-space-3);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dm-hero__orbit--a,
	.dm-hero__orbit--b,
	.dm-hero__orbit--c,
	.dm-hero__float,
	.dm-hero__panel--delay {
		animation: none;
	}
}
