/* ============================================================
   GHOSTHUNTER — fx-parallax.css
   Companion to fx-parallax.js. Two rules only:
   1. the footer ghost-word fills from the bottom as --fill rises
      (written by the script in 4% steps; 0% at rest, i.e. invisible)
   2. the contact orb's breathe animation owns its transform, so the
      parallax offset rides in as --py. A later @keyframes of the same
      name wins, so this replaces the one in index.html verbatim plus
      the variable. --py defaults to 0px: identical to today when the
      script is gated off (reduced motion, ?shot_y).
   ============================================================ */

.ghost-word{
  background:linear-gradient(to top, rgba(232,235,233,.10) var(--fill,0%), transparent 0);
  -webkit-background-clip:text;
  background-clip:text;
}

@keyframes breathe{
  0%,100%{opacity:.7;transform:translate(-50%, calc(-50% + var(--py,0px))) scale(1)}
  50%{opacity:1;transform:translate(-50%, calc(-50% + var(--py,0px))) scale(1.05)}
}
