/* ICNF dark landing — motion vocabulary.
   Scope: elements rendered by GAIA/modules/icnf/components/landing/ only.
   Reveal contract: elements carry .icnf-reveal (hidden) and icnf_landing.js
   adds .in when they enter the viewport; data-icnf-stagger="0..7" delays the
   transition for grouped card entrances. */

@keyframes icnf-fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes icnf-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes icnf-glow-pulse {
  0%, 100% { text-shadow: 0 0 18px var(--icnf-glow, rgba(159, 213, 49, 0.35)); }
  50%      { text-shadow: 0 0 34px var(--icnf-glow, rgba(159, 213, 49, 0.35)),
                          0 0 10px var(--icnf-glow, rgba(159, 213, 49, 0.35)); }
}

@keyframes icnf-float {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33%      { transform: translate(1.2%, -2%) rotate(0.4deg); }
  66%      { transform: translate(-1%, 1.5%) rotate(-0.3deg); }
}

/* Scroll reveal */
.icnf-reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.icnf-reveal.in { opacity: 1; transform: translateY(0); }
.icnf-reveal[data-icnf-stagger="1"] { transition-delay: 80ms; }
.icnf-reveal[data-icnf-stagger="2"] { transition-delay: 160ms; }
.icnf-reveal[data-icnf-stagger="3"] { transition-delay: 240ms; }
.icnf-reveal[data-icnf-stagger="4"] { transition-delay: 320ms; }
.icnf-reveal[data-icnf-stagger="5"] { transition-delay: 400ms; }
.icnf-reveal[data-icnf-stagger="6"] { transition-delay: 480ms; }
.icnf-reveal[data-icnf-stagger="7"] { transition-delay: 560ms; }

.icnf-glow-pulse { animation: icnf-glow-pulse 4.5s ease-in-out infinite; }
.icnf-float { animation: icnf-float 18s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce) {
  .icnf-reveal { transform: none; transition: opacity 400ms ease; }
  .icnf-glow-pulse, .icnf-float { animation: none; }
}
