/**
 * Dannibiz — scroll & interaction animations (content unchanged).
 */

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

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

@keyframes dbSlideLeft {
	from {
		opacity: 0;
		transform: translateX(40px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes dbSlideRight {
	from {
		opacity: 0;
		transform: translateX(-40px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes dbScaleIn {
	from {
		opacity: 0;
		transform: scale(0.92);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes dbGoldShimmer {
	0% { background-position: -200% center; }
	100% { background-position: 200% center; }
}

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

/* Initial hidden state */
.dannibiz-design .db-reveal {
	opacity: 0;
	will-change: opacity, transform;
}

.dannibiz-design .db-reveal.db-revealed {
	animation-duration: 0.75s;
	animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
	animation-fill-mode: both;
}

.dannibiz-design .db-reveal--up.db-revealed { animation-name: dbFadeUp; }
.dannibiz-design .db-reveal--fade.db-revealed { animation-name: dbFadeIn; }
.dannibiz-design .db-reveal--left.db-revealed { animation-name: dbSlideLeft; }
.dannibiz-design .db-reveal--right.db-revealed { animation-name: dbSlideRight; }
.dannibiz-design .db-reveal--scale.db-revealed { animation-name: dbScaleIn; }

/* Stagger delays for child widgets */
.dannibiz-design .db-reveal[data-db-delay="1"] { animation-delay: 0.1s; }
.dannibiz-design .db-reveal[data-db-delay="2"] { animation-delay: 0.2s; }
.dannibiz-design .db-reveal[data-db-delay="3"] { animation-delay: 0.3s; }
.dannibiz-design .db-reveal[data-db-delay="4"] { animation-delay: 0.4s; }
.dannibiz-design .db-reveal[data-db-delay="5"] { animation-delay: 0.5s; }
.dannibiz-design .db-reveal[data-db-delay="6"] { animation-delay: 0.6s; }

/* Hero — immediate entrance */
.dannibiz-design .db-hero-animate {
	animation: dbFadeUp 1s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.dannibiz-design .db-hero-animate[data-db-delay="1"] { animation-delay: 0.15s; }
.dannibiz-design .db-hero-animate[data-db-delay="2"] { animation-delay: 0.3s; }
.dannibiz-design .db-hero-animate[data-db-delay="3"] { animation-delay: 0.45s; }

/* Section heading underline draw */
.dannibiz-design .elementor-widget-divider.db-revealed .elementor-divider-separator {
	animation: dbDividerGrow 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes dbDividerGrow {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

.dannibiz-design .elementor-widget-divider .elementor-divider-separator {
	transform-origin: center;
}

/* Button ripple hover */
.dannibiz-design .elementor-button {
	position: relative;
	overflow: hidden;
}

.dannibiz-design .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		105deg,
		transparent 40%,
		rgba(255, 255, 255, 0.18) 50%,
		transparent 60%
	);
	background-size: 200% 100%;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.dannibiz-design .elementor-button:hover::before {
	opacity: 1;
	animation: dbGoldShimmer 0.8s ease;
}

/* Icon box icon pulse on reveal */
.dannibiz-design .elementor-widget-icon-box.db-revealed .elementor-icon {
	animation: dbScaleIn 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

/* Accordion smooth open */
.dannibiz-design .elementor-widget-accordion .elementor-tab-content {
	transition: max-height 0.4s ease, opacity 0.3s ease;
}

/* Image carousel subtle float on hover */
.dannibiz-design .elementor-image-carousel-wrapper:hover {
	animation: dbFloat 3s ease-in-out infinite;
}

/* Team card image zoom */
.dannibiz-design #sptp-1055 .sptp-member-avatar-img {
	overflow: hidden;
}

.dannibiz-design #sptp-1055 .sptp-member img {
	transition: transform 0.5s ease;
}

.dannibiz-design #sptp-1055 .sptp-member:hover img {
	transform: scale(1.06);
}

/* Scroll progress bar */
.db-scroll-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--db-gold), var(--db-gold-dark));
	z-index: 10001;
	width: 0%;
	transition: width 0.1s linear;
	pointer-events: none;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.dannibiz-design .db-reveal,
	.dannibiz-design .db-hero-animate {
		opacity: 1 !important;
		animation: none !important;
		transform: none !important;
	}

	.dannibiz-design .elementor-image-carousel-wrapper:hover {
		animation: none;
	}

	.dannibiz-design .elementor-button::before {
		display: none;
	}

	.dannibiz-design {
		scroll-behavior: auto;
	}
}
