/**
 * VortexG Core Material 3 Expressive — Global Ripple & State Layer Styles
 * Sourced directly from Android Jetpack Compose Material 3:
 * - androidx.compose.material3.Ripple.kt
 * - androidx.compose.material3.tokens.StateTokens
 */

/* Ripple Surface Container */
.vortexg-m3-ripple-surface {
	position: relative;
	isolation: isolate;
}

.vortexg-m3-ripple-surface--bounded {
	overflow: hidden !important;
}

.vortexg-m3-ripple-surface--unbounded {
	overflow: visible !important;
}

/* State Layer (Hover, Focus, Pressed) */
.vortexg-m3-state-layer {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: currentColor;
	opacity: 0;
	pointer-events: none;
	border-radius: inherit;
	transition: opacity 150ms cubic-bezier(0.2, 0, 0, 1);
}

.vortexg-m3-ripple-surface:hover > .vortexg-m3-state-layer,
.vortexg-m3-ripple-surface:hover .vortexg-m3-state-layer {
	opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);
}

.vortexg-m3-ripple-surface:focus-visible > .vortexg-m3-state-layer,
.vortexg-m3-ripple-surface:focus-visible .vortexg-m3-state-layer {
	opacity: var(--md-sys-state-focus-state-layer-opacity, 0.12);
}

.vortexg-m3-ripple-surface:active > .vortexg-m3-state-layer,
.vortexg-m3-ripple-surface:active .vortexg-m3-state-layer {
	opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);
}

/* Active Interactive Expanding Ripple Layer */
.vortexg-m3-ripple-layer {
	position: absolute;
	z-index: 1;
	left: var(--vortexg-m3-ripple-x, 50%);
	top: var(--vortexg-m3-ripple-y, 50%);
	width: var(--vortexg-m3-ripple-size, 0);
	height: var(--vortexg-m3-ripple-size, 0);
	border-radius: var(--md-sys-shape-corner-full, 9999px);
	background: currentColor;
	opacity: 0;
	transform: translate(-50%, -50%) scale(0);
	transform-origin: center;
	pointer-events: none;
}

.vortexg-m3-ripple-surface.is-rippling > .vortexg-m3-ripple-layer,
.vortexg-m3-ripple-surface.is-rippling .vortexg-m3-ripple-layer {
	animation: vortexg-m3-global-ripple 450ms cubic-bezier(0.2, 0, 0, 1) forwards;
}

@keyframes vortexg-m3-global-ripple {
	0% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(0);
	}
	20% {
		opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);
	}
	75% {
		opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);
		transform: translate(-50%, -50%) scale(1);
	}
	100% {
		opacity: 0;
		transform: translate(-50%, -50%) scale(1);
	}
}

/* Disabled State */
.vortexg-m3-ripple-surface:disabled,
.vortexg-m3-ripple-surface[aria-disabled="true"] {
	opacity: var(--md-sys-state-disabled-content-opacity, 0.38);
	cursor: default !important;
	pointer-events: none !important;
}

.vortexg-m3-ripple-surface:disabled > .vortexg-m3-state-layer,
.vortexg-m3-ripple-surface:disabled > .vortexg-m3-ripple-layer,
.vortexg-m3-ripple-surface[aria-disabled="true"] > .vortexg-m3-state-layer,
.vortexg-m3-ripple-surface[aria-disabled="true"] > .vortexg-m3-ripple-layer {
	display: none !important;
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
	.vortexg-m3-ripple-layer {
		display: none !important;
	}
	.vortexg-m3-state-layer {
		transition: none !important;
	}
}
