/**
 * LogicalFrame Galaxy Widgets — Core Tokens & Motion Base (≈2 KB)
 * One token system so any mix of Galaxy widgets on a page
 * reads as a single design system.
 */

:root {
	/* Radius scale */
	--eg-radius-s: 8px;
	--eg-radius-m: 14px;
	--eg-radius-l: 22px;
	--eg-radius-pill: 999px;

	/* Elevation — soft, diffuse, never harsh */
	--eg-shadow-s: 0 1px 2px rgba(15, 20, 40, .06), 0 2px 8px rgba(15, 20, 40, .05);
	--eg-shadow-m: 0 2px 6px rgba(15, 20, 40, .06), 0 10px 28px rgba(15, 20, 40, .09);
	--eg-shadow-l: 0 6px 16px rgba(15, 20, 40, .08), 0 24px 56px rgba(15, 20, 40, .14);

	/* Easing — the Galaxy "hand" */
	--eg-ease-out: cubic-bezier(.22, .61, .36, 1);
	--eg-ease-spring: cubic-bezier(.34, 1.4, .48, 1);
	--eg-ease-smooth: cubic-bezier(.45, 0, .15, 1);

	/* Durations */
	--eg-dur-fast: .25s;
	--eg-dur-base: .45s;
	--eg-dur-slow: .7s;

	/* Neutral ink ramp (widgets may override) */
	--eg-ink-1: #0e1220;
	--eg-ink-2: #3c4257;
	--eg-ink-3: #6b7186;
	--eg-line: rgba(14, 18, 32, .1);
	--eg-surface: #ffffff;
}

/* ------------------------------------------------------------------
   Galaxy Motion — initial (hidden) states.
   eg-core.js flips elements to .eg-in when they enter the viewport.
   Only transform / opacity / filter are animated (GPU-friendly).
------------------------------------------------------------------- */
[data-eg-motion] {
	opacity: 0;
	will-change: transform, opacity;
	transition-property: opacity, transform, filter;
	transition-duration: var(--eg-m-dur, .7s);
	transition-delay: var(--eg-m-delay, 0s);
	transition-timing-function: var(--eg-ease-smooth);
}

[data-eg-motion="fade-up"]     { transform: translate3d(0, 28px, 0); }
[data-eg-motion="fade-in"]     { transform: none; }
[data-eg-motion="scale-in"]    { transform: scale(.92); transition-timing-function: var(--eg-ease-spring); }
[data-eg-motion="blur-in"]     { filter: blur(14px); transform: translate3d(0, 10px, 0); }
[data-eg-motion="slide-left"]  { transform: translate3d(48px, 0, 0); }
[data-eg-motion="slide-right"] { transform: translate3d(-48px, 0, 0); }
[data-eg-motion="mask-up"]     { clip-path: inset(0 0 100% 0); transform: translate3d(0, 14px, 0); }

[data-eg-motion].eg-in {
	opacity: 1;
	transform: none;
	filter: none;
	clip-path: inset(0 0 0 0);
}

/* Staggered children: engine assigns --eg-i per child */
[data-eg-stagger] .eg-stagger-child {
	opacity: 0;
	transform: translate3d(0, 18px, 0);
	transition: opacity var(--eg-m-dur, .7s) var(--eg-ease-smooth),
	            transform var(--eg-m-dur, .7s) var(--eg-ease-smooth);
	transition-delay: calc(var(--eg-m-delay, 0s) + var(--eg-i, 0) * var(--eg-m-stagger, 60ms));
}
[data-eg-stagger].eg-in .eg-stagger-child {
	opacity: 1;
	transform: none;
}

/* Editor: always show content, never leave it hidden while editing */
.elementor-editor-active [data-eg-motion],
.elementor-editor-active [data-eg-stagger] .eg-stagger-child {
	opacity: 1 !important;
	transform: none !important;
	filter: none !important;
	clip-path: none !important;
}

/* Accessibility: honor the user's motion preference completely */
@media (prefers-reduced-motion: reduce) {
	[data-eg-motion],
	[data-eg-stagger] .eg-stagger-child {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		clip-path: none !important;
		transition: none !important;
	}
}
