/* ============================================================
   LATISLIT Spa — Scroll Reveal Animations
   ============================================================ */

[data-reveal] {
	opacity: 0;
	transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
}

[data-reveal="fade-up"]    { transform: translateY(24px); }
[data-reveal="fade-down"]  { transform: translateY(-24px); }
[data-reveal="fade-left"]  { transform: translateX(24px); }
[data-reveal="fade-right"] { transform: translateX(-24px); }
[data-reveal="zoom-in"]    { transform: scale(0.95); }

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

[data-delay="100"] { transition-delay: 100ms; }
[data-delay="200"] { transition-delay: 200ms; }
[data-delay="300"] { transition-delay: 300ms; }
[data-delay="400"] { transition-delay: 400ms; }

@media (prefers-reduced-motion: reduce) {
	[data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

.ll-cart-drawer {
	position: fixed;
	top: 0; right: -100%;
	width: min(400px, 100vw);
	height: 100vh;
	background: var(--ll-white);
	z-index: var(--z-drawer);
	display: flex;
	flex-direction: column;
	transition: right var(--dur-slow) var(--ease-out);
	box-shadow: var(--shadow-drawer);
}

.ll-cart-drawer.is-open { right: 0; }

.ll-toast {
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%) translateY(80px);
	background: var(--ll-sage);
	color: var(--ll-white);
	font-size: var(--text-sm);
	font-weight: 600;
	padding: 12px 24px;
	border-radius: 9999px;
	z-index: var(--z-toast);
	opacity: 0;
	transition: transform 250ms ease, opacity 150ms ease;
	white-space: nowrap;
	pointer-events: none;
	box-shadow: 0 4px 24px rgba(44,36,22,.10);
}

.ll-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }
.ll-toast--error { background: var(--ll-red); }
