/* ==========================================================================
   Carry Company — Animations
   ========================================================================== */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(200,16,46,0.5); }
  70%  { box-shadow: 0 0 0 12px rgba(200,16,46,0); }
  100% { box-shadow: 0 0 0 0 rgba(200,16,46,0); }
}
@keyframes rotate {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes float {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50%     { transform: translateY(-14px) rotate(2deg); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; } to { opacity: 1; }
}

/* Entrance stagger — applied by JS via classes */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease-out-expo), transform .9s var(--ease-out-expo); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Skeleton */
.skeleton {
  background: linear-gradient(90deg, #eee 0%, #f6f6f6 50%, #eee 100%);
  background-size: 200% 100%;
  animation: shimmer 1.4s infinite;
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to   { background-position: -200% 0; }
}

/* Cursor variants */
.cursor.is-active { background: var(--red); border-color: var(--red); }
