/**
 * Econest - Animations & Micro-interactions
 * Scroll reveals, keyframes, transitions
 */

/* Fade up - for scroll reveal */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s var(--ease-out-expo), transform 0.8s var(--ease-out-expo);
}

.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children */
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s var(--ease-out-expo), transform 0.6s var(--ease-out-expo);
}

.reveal-stagger.revealed > *:nth-child(1) { transition-delay: 0.1s; }
.reveal-stagger.revealed > *:nth-child(2) { transition-delay: 0.15s; }
.reveal-stagger.revealed > *:nth-child(3) { transition-delay: 0.2s; }
.reveal-stagger.revealed > *:nth-child(4) { transition-delay: 0.25s; }
.reveal-stagger.revealed > *:nth-child(5) { transition-delay: 0.3s; }
.reveal-stagger.revealed > *:nth-child(6) { transition-delay: 0.35s; }

.reveal-stagger.revealed > * {
  opacity: 1;
  transform: translateY(0);
}

/* Counter animation - for statistics */
.counter {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* Page transition overlay */
.page-transition {
  position: fixed;
  inset: 0;
  background: var(--color-black);
  z-index: 9998;
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.6s var(--ease-out-expo);
}

.page-transition.active {
  transform-origin: left;
  transform: scaleX(1);
}

/* Link underline animation */
.link-underline {
  position: relative;
}

.link-underline::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background: var(--color-gold);
  transition: width var(--duration-normal) var(--ease-out-expo);
}

.link-underline:hover::after {
  width: 100%;
}

/* Scale on hover */
.hover-lift {
  transition: transform var(--duration-normal) var(--ease-out-expo);
}

.hover-lift:hover {
  transform: translateY(-4px);
}

/* Gold gradient text */
.text-gold {
  background: linear-gradient(135deg, var(--color-gold), var(--color-gold-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
