/* ==========================================================================
   KY HANDY — ANIMATIONS
   ========================================================================== */

@keyframes fadeInUp{
  from{opacity:0;transform:translateY(30px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes fadeIn{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes riseIn{
  from{transform:translateY(110%);}
  to{transform:translateY(0);}
}
@keyframes pulseGold{
  0%,100%{box-shadow:0 0 0 0 rgba(253,185,19,.45);}
  50%{box-shadow:0 0 0 12px rgba(253,185,19,0);}
}
@keyframes marquee-stripe{
  from{background-position:0 0;}
  to{background-position:100px 0;}
}
@keyframes floatY{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}
@keyframes spin{
  from{transform:rotate(0);}
  to{transform:rotate(360deg);}
}

/* Hero heading line reveal */
.hero-copy h1 .line span{
  animation:riseIn .9s var(--ease) forwards;
}
.hero-copy h1 .line:nth-child(1) span{animation-delay:.15s;}
.hero-copy h1 .line:nth-child(2) span{animation-delay:.32s;}
.hero-copy h1 .line:nth-child(3) span{animation-delay:.49s;}

.hero-copy .eyebrow,
.hero-copy .lede,
.hero-copy .hero-btns,
.hero-copy .hero-trust{
  opacity:0;
  animation:fadeInUp .8s var(--ease) forwards;
}
.hero-copy .eyebrow{animation-delay:.05s;}
.hero-copy .lede{animation-delay:.65s;}
.hero-copy .hero-btns{animation-delay:.78s;}
.hero-copy .hero-trust{animation-delay:.92s;}

.hero-media{opacity:0;animation:fadeIn 1.1s var(--ease) .3s forwards;}
.hero-badge{opacity:0;animation:fadeInUp .8s var(--ease) 1.1s forwards;}

.emergency-banner .pulse-dot{
  display:inline-block;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--black);
  margin-right:8px;
  animation:pulseGold 1.8s ease-in-out infinite;
}

/* Hazard stripe crawl (used sparingly, only on .hazard.animated) */
.hazard.animated{
  background-size:100px 100px;
  animation:marquee-stripe 5s linear infinite;
}

/* Hover lift utility */
.hover-lift{transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.hover-lift:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.12);}

/* Icon float (trust badges) */
.trust-item:hover i{animation:floatY 1.2s ease-in-out infinite;}

/* Spinner for form submit */
.spinner{
  width:16px;height:16px;
  border:2px solid rgba(0,0,0,.25);
  border-top-color:var(--black);
  border-radius:50%;
  animation:spin .7s linear infinite;
  display:inline-block;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .hero-copy h1 .line span{transform:translateY(0);}
  .hero-copy .eyebrow,.hero-copy .lede,.hero-copy .hero-btns,.hero-copy .hero-trust,.hero-media,.hero-badge{
    opacity:1;
  }
}
