/* ════════════════════════════════════════
   MOTION · G7Z — ÚNICO archivo con animación CSS.
   Cortes (steps) + marquees. Las entradas se disparan
   con .is-on por IntersectionObserver; .is-armed (estado
   inicial oculto) solo existe si hay JS y motion.
   Al final: kill switches. No agregar nada debajo.
═══════════════════════════════════════ */

/* ── MARQUEES ── */
@keyframes marquee-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
.marquee-track {
	animation: marquee-scroll 38s linear infinite;
}
.marquee:hover .marquee-track {
	animation-play-state: paused;
}

/* ── ENTRADAS por corte ── */
[data-cut] {
	transition: none;
}
.is-armed [data-cut] {
	opacity: 0;
	translate: 0 1.1rem;
}
.is-armed.is-on [data-cut] {
	opacity: 1;
	translate: 0 0;
	transition:
		opacity var(--dur-cut) var(--cut),
		translate var(--dur-cut) var(--cut);
}
.is-armed.is-on [data-cut='2'] { transition-delay: 0.08s; }
.is-armed.is-on [data-cut='3'] { transition-delay: 0.16s; }
.is-armed.is-on [data-cut='4'] { transition-delay: 0.24s; }
.is-armed.is-on [data-cut='5'] { transition-delay: 0.32s; }

/* El wordmark del hero entra con corte de cortina */
.is-armed .hero-brand {
	clip-path: inset(0 100% 0 0);
}
.is-armed.is-on .hero-brand {
	clip-path: inset(0 -2% 0 0);
	transition: clip-path 0.55s var(--cut);
}

/* ── BOTÓN flotante de WhatsApp: entra desde abajo ── */
.whats-fab {
	transition: translate 0.35s var(--cut), opacity 0.25s linear;
}

/* ════════════════════════════════════════
   KILL SWITCHES — no tocar.
═══════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation: none !important;
		transition: none !important;
	}
	.is-armed [data-cut], .is-armed .hero-brand {
		opacity: 1 !important;
		translate: 0 0 !important;
		clip-path: none !important;
	}
}

/* Modo static (?static o webdriver): congelado y rasterizable */
html.static *,
html.static *::before,
html.static *::after {
	animation: none !important;
	transition: none !important;
}
html.static { scroll-behavior: auto; }
/* La barra fija ensuciaría los fullPage estáticos (los fixed se
   reposicionan al coser); en static no existe interacción que la muestre */
html.static .whats-fab { display: none; }
