/* ===== KEYFRAMES ===== */
@keyframes gridMove{
  0%{transform:translateY(0)}
  100%{transform:translateY(80px)}
}
@keyframes spark{
  0%,100%{opacity:0;transform:scale(0)}
  50%{opacity:1;transform:scale(1)}
}
@keyframes scrollBounce{
  0%,100%{transform:translateX(-50%) translateY(0)}
  50%{transform:translateX(-50%) translateY(6px)}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(30px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes fadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes lineGrow{
  from{width:0}
  to{width:100%}
}

/* ===== REVEAL ON SCROLL ===== */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.left{transform:translateX(-24px)}
.reveal.right{transform:translateX(24px)}
.reveal.visible{opacity:1;transform:none}

/* ===== STAGGER HELPERS ===== */
.reveal[style*="transition-delay"]{}

/* ===== ORANGE LINE ACCENT ===== */
.line-accent{
  display:block;width:0;height:2px;background:var(--orange);
  animation:lineGrow .8s ease forwards;
}
