/* ==========================================================================
   REDSOM SOLAR — Animations
   ========================================================================== */

@keyframes fade-up{
  from{opacity:0;transform:translateY(18px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes fade-in{
  from{opacity:0;} to{opacity:1;}
}
@keyframes float-y{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}
@keyframes float-icon{
  0%{transform:translate(0,0) rotate(0deg);}
  50%{transform:translate(6px,-16px) rotate(8deg);}
  100%{transform:translate(0,0) rotate(0deg);}
}
@keyframes shimmer{
  0%{background-position:-200% 0;}
  100%{background-position:200% 0;}
}
@keyframes ring-grow{
  from{stroke-dashoffset:var(--ring-len);}
  to{stroke-dashoffset:var(--ring-offset);}
}
@keyframes bar-grow{
  from{transform:scaleY(0);}
  to{transform:scaleY(1);}
}

.fade-up{animation:fade-up .7s cubic-bezier(.2,.8,.2,1) both;}
.floating{animation:float-y 5s ease-in-out infinite;}
.floating-icon{position:absolute;opacity:.5;animation:float-icon 7s ease-in-out infinite;}

/* Parallax hero background layers */
.parallax-layer{will-change:transform;}

/* stagger helper — set --d via inline style */
.stagger{animation-delay:var(--d, 0ms);}

/* skeleton shimmer (loading placeholders) */
.skeleton{
  background:linear-gradient(90deg,var(--off-white) 25%,#ecece7 37%,var(--off-white) 63%);
  background-size:400% 100%;
  animation:shimmer 1.4s ease infinite;
  border-radius:8px;
}
