/* ==========================================================================
   Sociend Ã¢â‚¬â€ Animations
   ========================================================================== */

/* ------------------------------------------------------------- Keyframes */

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

@keyframes sociendFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes sociendScaleIn {
	from { opacity: 0; transform: scale(0.96); }
	to { opacity: 1; transform: scale(1); }
}

@keyframes sociendFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-9px); }
}

@keyframes sociendPulse {
	0%, 100% { opacity: 0.75; transform: scale(1); }
	50% { opacity: 1; transform: scale(1.06); }
}

@keyframes sociendGradient {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

@keyframes sociendMobileIn {
	to { opacity: 1; transform: translateY(0); }
}

@keyframes sociendSpin {
	to { transform: rotate(360deg); }
}

@keyframes sociendDash {
	0% { stroke-dashoffset: 640; }
	100% { stroke-dashoffset: 0; }
}

@keyframes sociendGlow {
	0%, 100% { opacity: 0.5; }
	50% { opacity: 0.9; }
}

/* --------------------------------------------------- Scroll reveal system */

/* Initial hidden state Ã¢â‚¬â€ only applied when JS is active. */
.js [data-reveal] {
	opacity: 0;
	will-change: opacity, transform;
}

.js [data-reveal="up"] { transform: translateY(30px); transition: opacity 640ms var(--sociend-ease-out), transform 640ms var(--sociend-ease-out); }
.js [data-reveal="fade"] { transition: opacity 620ms var(--sociend-ease-out); }
.js [data-reveal="left"] { transform: translateX(-30px); transition: opacity 640ms var(--sociend-ease-out), transform 640ms var(--sociend-ease-out); }
.js [data-reveal="right"] { transform: translateX(30px); transition: opacity 640ms var(--sociend-ease-out), transform 640ms var(--sociend-ease-out); }
.js [data-reveal="scale"] { transform: scale(0.96); transition: opacity 600ms var(--sociend-ease-out), transform 600ms var(--sociend-ease-out); }

.js [data-reveal].is-revealed {
	opacity: 1;
	transform: none;
}

/* Staggered children */
.js .reveal-group > * {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 560ms var(--sociend-ease-out), transform 560ms var(--sociend-ease-out);
}

.js .reveal-group.is-revealed > * { opacity: 1; transform: none; }
.js .reveal-group.is-revealed > *:nth-child(1) { transition-delay: 0ms; }
.js .reveal-group.is-revealed > *:nth-child(2) { transition-delay: 70ms; }
.js .reveal-group.is-revealed > *:nth-child(3) { transition-delay: 140ms; }
.js .reveal-group.is-revealed > *:nth-child(4) { transition-delay: 210ms; }
.js .reveal-group.is-revealed > *:nth-child(5) { transition-delay: 280ms; }
.js .reveal-group.is-revealed > *:nth-child(6) { transition-delay: 350ms; }
.js .reveal-group.is-revealed > *:nth-child(7) { transition-delay: 420ms; }
.js .reveal-group.is-revealed > *:nth-child(8) { transition-delay: 490ms; }

/* Page-level entrance for hero blocks */
[data-anim="fade-up"] {
	opacity: 0;
	transform: translateY(24px);
	animation: sociendFadeUp 720ms var(--sociend-ease-out) 120ms forwards;
}

/* ------------------------------------------------------------ Decorations */

.hero-stage__laptop {
	animation: sociendFadeUp 900ms var(--sociend-ease-out) 180ms backwards;
}

.sociend-hero__badge { animation: sociendFadeUp 640ms var(--sociend-ease-out) 60ms backwards; }
.sociend-hero__eyebrow { animation: sociendFadeUp 640ms var(--sociend-ease-out) 120ms backwards; }
.sociend-hero__title { animation: sociendFadeUp 700ms var(--sociend-ease-out) 180ms backwards; }
.sociend-hero__desc { animation: sociendFadeUp 700ms var(--sociend-ease-out) 260ms backwards; }
.sociend-hero__actions { animation: sociendFadeUp 700ms var(--sociend-ease-out) 340ms backwards; }

/* Animated gradient sheen on primary CTAs */
.btn-primary, .btn--primary {
	background-size: 180% 180%;
	transition: transform var(--sociend-dur) var(--sociend-ease), box-shadow var(--sociend-dur) var(--sociend-ease), background-position 600ms var(--sociend-ease);
}

.btn-primary:hover, .btn--primary:hover { background-position: 100% 50%; }

.cta__title {
	background: linear-gradient(100deg, #FFFFFF 0%, #CFE4FF 55%, #FFFFFF 100%);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: sociendGradient 9s ease-in-out infinite;
}

.cta__rings { animation: sociendPulse 12s ease-in-out infinite; }

.stats-band__glow { animation: sociendGlow 9s ease-in-out infinite; }

/* Chart line draw-in */
.js .dash__chart path[data-anim-line] {
	stroke-dasharray: 640;
	stroke-dashoffset: 640;
}

.js .hero-dashboard.is-visible .dash__chart path[data-anim-line] {
	animation: sociendDash 1800ms var(--sociend-ease-out) 500ms forwards;
}

/* ------------------------------------------------- Reduced motion support */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		transition-delay: 0ms !important;
		scroll-behavior: auto !important;
	}

	.js [data-reveal],
	.js .reveal-group > *,
	[data-anim="fade-up"],
	.sociend-hero__badge,
	.sociend-hero__eyebrow,
	.sociend-hero__title,
	.sociend-hero__desc,
	.sociend-hero__actions,
	.hero-stage__laptop {
		opacity: 1 !important;
		transform: none !important;
	}

	.js .dash__chart path[data-anim-line] { stroke-dashoffset: 0 !important; }

	.hero-badge,
	.orbit,
	.cta__title,
	.cta__rings { animation: none !important; }
}

/* Animations disabled via the Performance panel */
body.no-anim *,
body.no-anim *::before,
body.no-anim *::after {
	animation: none !important;
	transition: none !important;
}

body.no-anim [data-reveal],
body.no-anim .reveal-group > * { opacity: 1 !important; transform: none !important; }