/* Rishta Animations — base styles */

.rishta-anim-el[data-rishta-trigger="load"],
.rishta-anim-el[data-rishta-trigger="scroll"] {
	opacity: 0;
}
.rishta-anim-el.rishta-anim-ready {
	opacity: 1;
}

.rishta-anim-el[data-rishta-trigger="click"] {
	cursor: pointer;
}

.rishta-anim-el[data-rishta-anim="hoverUnderline"] {
	position: relative;
	display: inline-block;
}
.rishta-anim-el[data-rishta-anim="hoverUnderline"] .rishta-underline-bar {
	position: absolute;
	left: 0;
	bottom: -2px;
	height: 2px;
	width: 100%;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
}

.rishta-anim-el[data-rishta-anim="hoverFlip"] {
	perspective: 1000px;
}

/* Special-effect trigger elements themselves don't need to be hidden —
   they just fire particles, they don't animate their own opacity. */
.rishta-anim-el[data-rishta-anim="confetti"],
.rishta-anim-el[data-rishta-anim="petals"],
.rishta-anim-el[data-rishta-anim="hearts"],
.rishta-anim-el[data-rishta-anim="lanterns"] {
	opacity: 1 !important;
}

/* Scroll engine elements */
.rishta-scroll-el {
	will-change: transform;
}

/* Particle containers */
.rishta-particle-layer {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 99999;
	overflow: hidden;
}
.rishta-particle {
	position: absolute;
	top: -20px;
}
.rishta-particle.petal {
	border-radius: 50% 0 50% 0;
}
.rishta-particle.heart {
	line-height: 1;
	user-select: none;
}

/* Lantern layer sits on its own so it can run for a longer, independent
   duration than the quick confetti/petal bursts without being cleared early. */
.rishta-lantern-layer {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 99998;
	overflow: hidden;
}
.rishta-lantern {
	position: absolute;
	width: 60px;
	height: auto;
}
.rishta-lantern img {
	width: 100%;
	display: block;
}

@media (prefers-reduced-motion: reduce) {
	.rishta-anim-el {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
