/* ══════════════════════════════════════════════
   NXTHARBOR — ANIMATIONS
   ══════════════════════════════════════════════ */

/* ── KEYFRAMES ─────────────────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.3; }
}

/* ── SCROLL REVEAL ─────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── HERO ENTRANCE ANIMATIONS ──────────────────────────── */
.hero-logo  { opacity: 0; animation: fadeUp 0.7s ease 0.1s  forwards; }
.eyebrow    { opacity: 0; animation: fadeUp 0.7s ease 0.25s forwards; }
.hero h1    { opacity: 0; animation: fadeUp 0.7s ease 0.4s  forwards; }
.hero-sub   { opacity: 0; animation: fadeUp 0.7s ease 0.55s forwards; }
.for-ind    { opacity: 0; animation: fadeUp 0.7s ease 0.68s forwards; }
.hero-form-wrap,
.stat-strip { opacity: 0; animation: fadeUp 0.7s ease 0.78s forwards; }
.scroll-cue { opacity: 0; animation: fadeIn 1s ease 1.5s forwards; }

/* ── SCROLL LINE PULSE ─────────────────────────────────── */
.scroll-line { animation: pulse 2s ease infinite; }

/* ── PAGE HERO ANIMATIONS (interior pages) ─────────────── */
.page-hero .page-hero-eyebrow { opacity: 0; animation: fadeUp 0.6s ease 0.15s forwards; }
.page-hero h1                  { opacity: 0; animation: fadeUp 0.6s ease 0.3s  forwards; }
.page-hero .page-hero-sub      { opacity: 0; animation: fadeUp 0.6s ease 0.45s forwards; }
