.elmi-ecosystem {
	display: grid;
	gap: 32px;
}
.elmi-ecosystem__graph {
	position: relative;
	min-height: var(--elmi-graph-height, 420px);
	border-radius: 24px;
	background: radial-gradient(circle at center, rgba(0,0,0,0.04), transparent 60%);
	overflow: hidden;
}
.elmi-ecosystem__center {
	position: absolute;
	inset: 50% auto auto 50%;
	transform: translate(-50%, -50%);
	width: 120px;
	height: 120px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 12px 30px rgba(0,0,0,0.12);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}
.elmi-ecosystem__center img {
	max-width: 70%;
	max-height: 70%;
	object-fit: contain;
}
.elmi-ecosystem__chip {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) translate(var(--x), var(--y)) scale(0.9);
	padding: 10px 16px;
	border-radius: 999px;
	background: #ffffff;
	box-shadow: 0 8px 20px rgba(0,0,0,0.12);
	color: #1a1a1a;
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	opacity: 0;
	transition: transform 200ms ease, box-shadow 200ms ease;
	animation: elmiChipFade 0.6s ease forwards, elmiChipFloat 6s ease-in-out infinite;
	animation-delay: calc(var(--i) * 120ms), calc(var(--i) * 120ms);
	will-change: transform;
	z-index: 3;
}
.elmi-ecosystem__chip:hover,
.elmi-ecosystem__chip:focus {
	transform: translate(-50%, -50%) translate(var(--x), var(--y)) scale(1.08);
	box-shadow: 0 12px 26px rgba(0,0,0,0.18);
}
.elmi-ecosystem__content {
	display: grid;
	gap: 24px;
}
.elmi-ecosystem__item {
	scroll-margin-top: var(--elmi-scroll-offset, 90px);
}
.elmi-ecosystem__item h2 {
	margin: 0 0 10px 0;
	font-size: 22px;
}
@keyframes elmiChipFade {
	from { opacity: 0; transform: translate(-50%, -50%) translate(var(--x), var(--y)) scale(0.9); }
	to { opacity: 1; transform: translate(-50%, -50%) translate(var(--x), var(--y)) scale(1); }
}
@keyframes elmiChipFloat {
	0%, 100% { transform: translate(-50%, -50%) translate(calc(var(--x) - 2px), var(--y)) scale(1); }
	25% { transform: translate(-50%, -50%) translate(var(--x), calc(var(--y) - 2px)) scale(1); }
	50% { transform: translate(-50%, -50%) translate(calc(var(--x) + 2px), var(--y)) scale(1); }
	75% { transform: translate(-50%, -50%) translate(var(--x), calc(var(--y) + 2px)) scale(1); }
}

/* Mobile Responsive Styles */
@media (max-width: 768px) {
	.elmi-ecosystem__graph {
		display: flex;
		flex-direction: column;
		gap: 12px;
		min-height: auto;
		padding: 20px;
		background: none;
	}
	
	.elmi-ecosystem__center {
		position: static;
		transform: none;
		margin: 0 auto 20px;
	}
	
	.elmi-ecosystem__chip {
		position: static;
		transform: none !important;
		width: 100%;
		text-align: center;
		opacity: 1;
		animation: elmiItemFadeIn 0.4s ease forwards;
		animation-delay: calc(var(--i) * 80ms);
	}
	
	.elmi-ecosystem__chip:hover,
	.elmi-ecosystem__chip:focus {
		transform: scale(1.02) !important;
	}
}

@media (max-width: 480px) {
	.elmi-ecosystem__center {
		width: 100px;
		height: 100px;
	}
	
	.elmi-ecosystem__chip {
		font-size: 13px;
		padding: 9px 14px;
	}
}

@keyframes elmiItemFadeIn {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: translateY(0); }
}
