/* ─────────────────────────────────────────────────────────────────────────
   JorTech — animations.css
   Global keyframe definitions and scroll-reveal utility classes.
   Reveal classes (.rv, .rl, .rr) are toggled by scroll-reveal.js.
   ───────────────────────────────────────────────────────────────────────── */

/* SVG cursor blink — applied to #introCursor and #navCursor SVG rect elements */
#introCursor,
#navCursor {
  animation: blink 0.85s step-end infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

/* Hero availability dot pulse */
.hero-badge::before {
  animation: blink 2s step-end infinite;
}

/* Ring spin (photo border gradient) */
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* ── Scroll-reveal base states (hidden) ── */
.rv  { opacity: 0; transform: translateY(28px);  transition: opacity .7s ease, transform .7s ease; }
.rl  { opacity: 0; transform: translateX(-28px); transition: opacity .7s ease, transform .7s ease; }
.rr  { opacity: 0; transform: translateX(28px);  transition: opacity .7s ease, transform .7s ease; }

/* Revealed state (added by scroll-reveal.js) */
.rv.in, .rl.in, .rr.in {
  opacity:   1;
  transform: translate(0);
}
