/* Global Animations */
.animate-bounce-slow {
  animation: bounce 2s infinite;
}
@keyframes bounce {
  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8,0,1,1); }
  50% { transform: translateY(0); animation-timing-function: cubic-bezier(0,0,0.2,1); }
}

/* Scroll Trigger Classes */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.8s ease-out;
}
.reveal-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 10px;
}
::-webkit-scrollbar-track {
  background: #050505;
}
::-webkit-scrollbar-thumb {
  background: #262626;
  border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
  background: #F7E2C0;
}

@media (prefers-reduced-motion: reduce) {
  .animate-bounce-slow,
  .reveal-on-scroll {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Active nav link */
.nav-active {
  color: #F7E2C0 !important;
}

/* Ensure touch targets */
a, button {
  min-height: 32px;
}

/* Custom striped arrow cursor as the default page cursor */
body {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><defs><linearGradient id='g' x1='0%25' y1='0%25' x2='100%25' y2='100%25'><stop offset='0%25' stop-color='%23c4b5fd'/><stop offset='16%25' stop-color='%23c4b5fd'/><stop offset='20%25' stop-color='%23ffffff'/><stop offset='24%25' stop-color='%23ffffff'/><stop offset='28%25' stop-color='%237dd3fc'/><stop offset='58%25' stop-color='%237dd3fc'/><stop offset='62%25' stop-color='%23ffffff'/><stop offset='66%25' stop-color='%23ffffff'/><stop offset='70%25' stop-color='%23c4b5fd'/><stop offset='100%25' stop-color='%23c4b5fd'/></linearGradient></defs><path d='M3 3 L3 25 L9 19.5 L13 27.5 L17.5 25.3 L13.5 17.3 L21 17.3 Z' fill='url(%23g)' stroke='%231a1a1a' stroke-width='2.5' stroke-linejoin='round'/></svg>") 3 3, default;
}

/* Custom striped hand cursor on interactive elements */
a, button, select, [role="button"], .cursor-pointer {
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'><defs><linearGradient id='h' x1='0%25' y1='0%25' x2='100%25' y2='100%25'><stop offset='0%25' stop-color='%23c4b5fd'/><stop offset='20%25' stop-color='%23c4b5fd'/><stop offset='25%25' stop-color='%23ffffff'/><stop offset='30%25' stop-color='%237dd3fc'/><stop offset='70%25' stop-color='%237dd3fc'/><stop offset='75%25' stop-color='%23ffffff'/><stop offset='80%25' stop-color='%23c4b5fd'/><stop offset='100%25' stop-color='%23c4b5fd'/></linearGradient></defs><g fill='url(%23h)' stroke='%231a1a1a' stroke-width='1.5' stroke-linejoin='round'><rect x='9' y='3' width='5' height='16' rx='2.5'/><rect x='15' y='1' width='5' height='18' rx='2.5'/><rect x='21' y='4' width='5' height='15' rx='2.5'/><rect x='3' y='17' width='8' height='6' rx='3'/><rect x='9' y='16' width='15' height='13' rx='5'/></g></svg>") 12 3, pointer;
}

@media (hover: none) {
  body {
    cursor: default;
  }
  a, button, select, [role="button"], .cursor-pointer {
    cursor: pointer;
  }
}
