/* Reveals on scroll */
[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 800ms var(--ease-arch),
              transform 800ms var(--ease-arch);
  will-change: opacity, transform;
}

[data-reveal].is-revealed {
  opacity: 1;
  transform: translateY(0);
}

[data-reveal-delay="100"]  { transition-delay: 100ms; }
[data-reveal-delay="200"]  { transition-delay: 200ms; }
[data-reveal-delay="300"]  { transition-delay: 300ms; }
[data-reveal-delay="400"]  { transition-delay: 400ms; }
[data-reveal-delay="500"]  { transition-delay: 500ms; }

/* Hero load orchestration */
@keyframes rise-in {
  0%   { opacity: 0; transform: translateY(40px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes fade-in {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes line-grow-v {
  0%   { transform: scaleY(0); }
  100% { transform: scaleY(1); }
}

@keyframes line-grow-h {
  0%   { transform: scaleX(0); }
  100% { transform: scaleX(1); }
}

@keyframes mask-reveal {
  0%   { clip-path: inset(100% 0 0 0); }
  100% { clip-path: inset(0 0 0 0); }
}

@keyframes count-up {
  0%   { opacity: 0; transform: translateY(20px); }
  100% { opacity: 1; transform: translateY(0); }
}

/* Marquee */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
