@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .zy-page-transition { animation: none !important; opacity: 1 !important; }
  #zy-scroll-progress { display: none !important; }
  #zy-cursor, #zy-cursor-ring { display: none !important; }
}

.zy-page-transition {
  animation: zyPageFadeIn 0.4s ease both;
}
@keyframes zyPageFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

#zy-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  z-index: 99999;
  background: linear-gradient(90deg, #F5A623, #FFC107);
  width: 0%;
  transition: width 0.1s linear;
  pointer-events: none;
}

#zy-cursor {
  position: fixed;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #FFC107;
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width 0.2s, height 0.2s, background 0.2s, opacity 0.2s;
  opacity: 0;
  mix-blend-mode: screen;
}
#zy-cursor.visible { opacity: 1; }
#zy-cursor.hovering {
  width: 36px;
  height: 36px;
  background: transparent;
  border: 2px solid #FFC107;
}

@keyframes zyNavSlideDown {
  from { transform: translateY(-100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.zy-nav-animate {
  animation: zyNavSlideDown 0.6s ease forwards;
}

.zy-nav-scrolled {
  transition: padding 0.3s, backdrop-filter 0.3s, background 0.3s !important;
}

@keyframes zyLogoPulse {
  0%, 100% { filter: drop-shadow(0 0 4px rgba(245,166,35,0.3)); }
  50% { filter: drop-shadow(0 0 12px rgba(245,166,35,0.6)); transform: rotate(3deg); }
}
.zy-logo-pulse {
  animation: zyLogoPulse 3s ease-in-out infinite;
}

@keyframes zySignupGlow {
  0%, 100% { box-shadow: 0 0 8px rgba(245,166,35,0.3); }
  50% { box-shadow: 0 0 20px rgba(245,166,35,0.6), 0 0 40px rgba(255,193,7,0.2); }
}
.zy-signup-glow {
  animation: zySignupGlow 2s ease-in-out infinite;
}

.zy-nav-link-hover {
  position: relative;
}
.zy-nav-link-hover::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(90deg, #F5A623, #FFC107);
  transition: width 0.3s ease;
}
.zy-nav-link-hover:hover::after {
  width: 100%;
}

.zy-fade-in {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.zy-fade-in.zy-visible {
  opacity: 1;
  transform: translateY(0);
}

.zy-slide-left {
  opacity: 0;
  transform: translateX(-60px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.zy-slide-left.zy-visible {
  opacity: 1;
  transform: translateX(0);
}

.zy-slide-right {
  opacity: 0;
  transform: translateX(60px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.zy-slide-right.zy-visible {
  opacity: 1;
  transform: translateX(0);
}

.zy-slide-alt:nth-child(odd) {
  opacity: 0;
  transform: translateX(-60px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.zy-slide-alt:nth-child(even) {
  opacity: 0;
  transform: translateX(60px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.zy-slide-alt.zy-visible {
  opacity: 1;
  transform: translateX(0);
}

@keyframes zyBounceIn {
  0% { opacity: 0; transform: scale(0.3) translateY(40px); }
  50% { opacity: 1; transform: scale(1.05) translateY(-5px); }
  70% { transform: scale(0.95) translateY(2px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}
.zy-bounce-in {
  opacity: 0;
}
.zy-bounce-in.zy-visible {
  animation: zyBounceIn 0.6s ease forwards;
}

.zy-stagger-1 { transition-delay: 0s; }
.zy-stagger-2 { transition-delay: 0.15s; }
.zy-stagger-3 { transition-delay: 0.3s; }
.zy-stagger-4 { transition-delay: 0.45s; }
.zy-stagger-5 { transition-delay: 0.6s; }
.zy-stagger-6 { transition-delay: 0.75s; }

.zy-hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.zy-hover-lift:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 40px rgba(245,166,35,0.12);
}

.zy-hover-glow {
  transition: border-color 0.3s, box-shadow 0.3s, transform 0.3s;
}
.zy-hover-glow:hover {
  border-color: rgba(245,166,35,0.3) !important;
  box-shadow: 0 0 20px rgba(245,166,35,0.1);
}

.zy-icon-spin {
  transition: transform 0.4s ease;
  display: inline-block;
}
.zy-icon-spin:hover,
*:hover > .zy-icon-spin {
  transform: rotate(360deg);
}

.zy-emoji-bounce {
  display: inline-block;
  transition: transform 0.3s ease;
}
.zy-emoji-bounce:hover,
*:hover > .zy-emoji-bounce {
  animation: zyEmojiBounce 0.5s ease;
}
@keyframes zyEmojiBounce {
  0%, 100% { transform: translateY(0); }
  25% { transform: translateY(-8px); }
  50% { transform: translateY(-2px); }
  75% { transform: translateY(-5px); }
}

@keyframes zyGradientBorderSweep {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

.zy-3d-tilt {
  transition: transform 0.15s ease;
  transform-style: preserve-3d;
}

@keyframes zyShimmerText {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.zy-shimmer-text {
  background-size: 200% auto;
  animation: zyShimmerText 3s linear infinite;
}

.zy-footer-link {
  transition: transform 0.3s ease, color 0.3s ease !important;
  display: inline-block;
}
.zy-footer-link:hover {
  transform: translateY(-3px);
  color: #FFC107 !important;
}

.zy-social-rotate {
  transition: transform 0.4s ease, background 0.3s, border-color 0.3s, color 0.3s;
}
.zy-social-rotate:hover {
  transform: rotate(360deg);
}

@keyframes zyWobble {
  0%, 100% { transform: rotate(0deg); }
  15% { transform: rotate(-5deg); }
  30% { transform: rotate(4deg); }
  45% { transform: rotate(-3deg); }
  60% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg); }
}
.zy-wobble {
  animation: zyWobble 0.8s ease;
}

.zy-store-wobble-1 {
  animation: zyWobble 0.8s ease 5s infinite;
}
.zy-store-wobble-2 {
  animation: zyWobble 0.8s ease 5.5s infinite;
}
.zy-store-wobble-1:hover,
.zy-store-wobble-2:hover {
  transform: translateY(-2px) scale(1.03);
  box-shadow: 0 8px 30px rgba(245,166,35,0.3);
}

@keyframes zyCtaGradient {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.zy-cta-gradient-bg {
  background: linear-gradient(135deg, #071422, #0d2236, #0B1C2D, #112a44);
  background-size: 400% 400%;
  animation: zyCtaGradient 8s ease infinite;
}

@keyframes zyPulseGreen {
  0%, 100% { box-shadow: 0 0 4px rgba(52,199,89,0.3); }
  50% { box-shadow: 0 0 12px rgba(52,199,89,0.6), 0 0 24px rgba(52,199,89,0.2); }
}
.zy-pulse-green {
  animation: zyPulseGreen 2s ease-in-out infinite;
}

@keyframes zyStatusShimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.zy-status-shimmer {
  background: linear-gradient(90deg, transparent 30%, rgba(255,255,255,0.05) 50%, transparent 70%);
  background-size: 200% 100%;
  animation: zyStatusShimmer 3s ease-in-out infinite;
}

.zy-bar-animate {
  width: 0 !important;
  transition: width 1.2s ease-out;
}
.zy-bar-animate.zy-visible {
  width: var(--zy-bar-width) !important;
}

.zy-faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, padding 0.3s ease;
}
.zy-faq-content.zy-open {
  max-height: 500px;
}
.zy-faq-arrow {
  transition: transform 0.3s ease;
  display: inline-block;
}
.zy-faq-arrow.zy-open {
  transform: rotate(180deg);
}

.zy-blog-card:hover .zy-blog-img {
  transform: scale(1.05);
}
.zy-blog-img {
  transition: transform 0.5s ease;
  overflow: hidden;
}

.zy-career-card {
  transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}
.zy-career-card:hover {
  transform: translateY(-4px);
  border-left: 3px solid #FFC107 !important;
  box-shadow: 0 0 20px rgba(245,166,35,0.1);
}

.zy-code-block {
  opacity: 0;
  transition: opacity 0.6s ease;
}
.zy-code-block.zy-visible {
  opacity: 1;
}

@keyframes zyFlipIn {
  0% { opacity: 0; transform: perspective(800px) rotateY(90deg); }
  100% { opacity: 1; transform: perspective(800px) rotateY(0deg); }
}
.zy-flip-in {
  opacity: 0;
}
.zy-flip-in.zy-visible {
  animation: zyFlipIn 0.6s ease forwards;
}

.zy-footer-copy-fade {
  opacity: 0;
  animation: zyPageFadeIn 1s ease 0.5s forwards;
}

.zy-ripple-container {
  position: relative;
  overflow: hidden;
}
.zy-ripple-container .zy-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.3);
  transform: scale(0);
  animation: zyRipple 0.6s linear;
  pointer-events: none;
}
@keyframes zyRipple {
  to { transform: scale(4); opacity: 0; }
}
