/* ═══ NORLIA MOTION PACK — bloque CSS (copiar entero a la web real) ═══ */
/* Todo va gateado con body.fx (lo añade el JS) y respeta reduced-motion. */

/* Reveal al scroll (re-activa lo que el export desactivó) */
body.fx .reveal {
  opacity: 0 !important; transform: translateY(24px) !important;
  visibility: hidden;
  transition: opacity .7s ease, transform .7s var(--ease), visibility 0s;
}
body.fx .reveal.on {
  opacity: 1 !important; transform: none !important; visibility: visible;
}
body.fx .btn.reveal.on {
  transition: --br .8s cubic-bezier(.3,0,.2,1), color .45s ease,
              border-color .3s ease, box-shadow .4s ease,
              transform .12s ease, opacity .7s ease;
}

/* Línea del label que crece */
body.fx .label::before { width: 0; transition: width .9s var(--ease) .25s; }
body.fx .label.on::before { width: 24px; }

/* Nav: fija siempre visible, blur al scrollear */
body.fx .nav {
  position: fixed !important;
  transition: background .3s ease, border-color .3s ease;
}
body.fx .nav.fx-scrolled {
  background: rgba(10,10,10,.82);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
}

/* Parallax sutil en palabras gigantes de fondo */
body.fx .hero::after,
body.fx .vera-hero::before,
body.fx .argos-hero::before,
body.fx .about-hero::before {
  transform: translateY(calc(var(--fx-p, 0) * 1px));
  will-change: transform;
}
body.fx .footer__wm {
  transform: translate(-50%, calc(-50% + var(--fx-p, 0) * 1px));
  will-change: transform;
}

/* Pulso en estados "online" */
@keyframes fx-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .35; }
}
body.fx .status-item::before { animation: fx-pulse 2.4s ease-in-out infinite; }
@keyframes fx-glow {
  0%, 100% { text-shadow: 0 0 0 rgba(255,87,34,0); }
  50% { text-shadow: 0 0 14px rgba(255,87,34,.55); }
}
body.fx .terminal__val--mono { animation: fx-glow 2.6s ease-in-out infinite; }

/* Caret typing del terminal */
@keyframes fx-blink { 50% { opacity: 0; } }
.fx-caret {
  display: inline-block; width: 7px; height: 11px;
  background: var(--signal); margin-left: 5px;
  animation: fx-blink 1s steps(2) infinite;
}

/* Burbujas WhatsApp */
body.fx .fx-msg {
  opacity: 0; transform: translateY(12px) scale(.98);
  transition: opacity .4s ease, transform .45s var(--ease);
}
body.fx .fx-msg.fx-in { opacity: 1; transform: none; }
.fx-typing {
  align-self: flex-end; background: var(--signal);
  padding: 14px 16px; display: flex; gap: 5px; align-items: center;
}
.fx-typing i {
  width: 6px; height: 6px; border-radius: 50%;
  background: rgba(250,250,246,.9);
  animation: fx-dot 1s ease-in-out infinite;
}
.fx-typing i:nth-child(2) { animation-delay: .15s; }
.fx-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes fx-dot { 0%, 100% { transform: translateY(0); opacity: .5; } 50% { transform: translateY(-4px); opacity: 1; } }

/* HOME: drift lento de la palabra gigante del hero */
@keyframes fx-drift { 0%, 100% { letter-spacing: -.02em; } 50% { letter-spacing: .01em; } }
body.fx .hero::after { animation: fx-drift 14s ease-in-out infinite; }

/* HOME: punto del logo y del hero laten suavemente */
@keyframes fx-beat { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
body.fx .nav__logo .dot, body.fx .footer__logo .dot { animation: fx-beat 2.8s ease-in-out infinite; }

/* HOME: ticker de estado bajo los CTAs del hero */
.fx-tick { display: inline-block; }
.fx-tick b { color: var(--signal); font-weight: 400; }
@keyframes fx-tickfade { 0%, 8% { opacity: 0; transform: translateY(4px); } 16%, 92% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-4px); } }
.fx-tick span { display: inline-block; animation: fx-tickfade 4s ease-in-out both; }

/* Micro-hovers */
body.fx .pillar { transition: border-color .3s ease; }
body.fx .pillar:hover { border-color: rgba(250,250,246,.22); }
body.fx .pillar .pillar__num { transition: transform .4s var(--ease); }
body.fx .pillar:hover .pillar__num { transform: translateX(4px); }
body.fx .founder-photo img { transition: transform .7s var(--ease); }
body.fx .founder-photo:hover img { transform: scale(1.045); }
body.fx .argos-doc { transition: background .3s ease; }
body.fx .argos-doc:hover { background: #141414; }
body.fx .argos-doc .argos-doc__num { transition: color .3s; }
body.fx .argos-doc:hover .argos-doc__num { color: var(--bone); }

@media (prefers-reduced-motion: reduce) {
  body.fx .reveal { opacity: 1 !important; transform: none !important; visibility: visible; }
  body.fx * { animation: none !important; }
}
/* ═══ FIN MOTION PACK CSS ═══ */
