/* Scroll reveal — efeito tech ao descer a página */

.reveal {
  opacity: 0;
  transition:
    opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
    filter 0.9s ease,
    box-shadow 0.9s ease;
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform, filter;
}

.reveal--fade-up {
  transform: translateY(44px);
}

.reveal--fade-left {
  transform: translateX(-40px);
}

.reveal--fade-right {
  transform: translateX(40px);
}

.reveal--scale-up {
  transform: translateY(28px) scale(0.92);
}

.reveal--blur-in {
  transform: translateY(24px);
  filter: blur(12px);
}

.reveal.is-visible {
  opacity: 1;
  transform: none;
  filter: blur(0);
}

.reveal-glow.is-visible {
  box-shadow:
    0 0 0 1px rgba(247, 183, 49, 0.2),
    0 0 32px rgba(247, 183, 49, 0.08),
    0 16px 48px rgba(0, 0, 0, 0.35);
}

.section-eyebrow.reveal.is-visible {
  text-shadow: 0 0 28px rgba(247, 183, 49, 0.45);
}

.reveal-tech-line {
  position: relative;
  overflow: hidden;
}

.reveal-tech-line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--nudev-gold, #f7b731), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--reveal-delay, 0s) + 0.15s);
}

.reveal-tech-line.is-visible::after {
  transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }

  .reveal-tech-line::after {
    display: none;
  }
}
