/* Jack Cleaning Service — animations.css
   Motion is used sparingly: one orchestrated hero entrance + scroll reveals. */

@keyframes riseIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes shimmer{0%{transform:translateX(-60%) rotate(8deg)}100%{transform:translateX(160%) rotate(8deg)}}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}
.reveal-d2{transition-delay:.16s}
.reveal-d3{transition-delay:.24s}
.reveal-d4{transition-delay:.32s}
.reveal-d5{transition-delay:.40s}

/* Hero entrance sequence */
.hero .eyebrow{animation:riseIn .7s var(--ease) both}
.hero h1{animation:riseIn .7s .08s var(--ease) both}
.hero .hero-lead{animation:riseIn .7s .16s var(--ease) both}
.hero .btn-row{animation:riseIn .7s .24s var(--ease) both}
.hero .hero-badges{animation:riseIn .7s .32s var(--ease) both}
.hero .hero-note{animation:riseIn .7s .38s var(--ease) both}
.hero-figure{animation:riseIn .9s .2s var(--ease) both}
.fc-1{animation:riseIn .6s .55s var(--ease) both,floatY 7s 1.2s ease-in-out infinite}
.fc-2{animation:riseIn .6s .68s var(--ease) both,floatY 8s 1.5s ease-in-out infinite}
.fc-3{animation:riseIn .6s .80s var(--ease) both,floatY 9s 1.8s ease-in-out infinite}

/* Sheen across the hero figure — a single "wipe", echoing a squeegee pass */
.hero-figure::after{
  content:"";position:absolute;top:-30%;left:0;width:32%;height:160%;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.32),rgba(255,255,255,0));
  animation:shimmer 2.6s 1s var(--ease) 1 both;pointer-events:none;
}

/* Mobile nav panel */
.nav-panel-anim{transition:transform .34s var(--ease)}

/* Counters do not animate layout, only text content */
.num{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  .reveal{opacity:1;transform:none}
  .hero-figure::after{display:none}
}
