/* Keyframe Animations from Sekhoz Design System */

@keyframes yk-rise {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

@keyframes yk-fade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes yk-grid-pan {
  0% { background-position: 0 0; }
  100% { background-position: var(--grid) var(--grid); }
}

@keyframes yk-caret {
  0%, 45% { opacity: 1; }
  50%, 95% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes yk-sweep {
  0% { transform: translateX(-120%) skew(-18deg); }
  100% { transform: translateX(320%) skew(-18deg); }
}

@keyframes yk-draw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes yk-pulse-ring {
  0% {
    opacity: 0.75;
    transform: scale(0.95);
  }
  100% {
    opacity: 0;
    transform: scale(2.4);
  }
}

/* Scroll reveal utility */
.rv {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--d, 0s);
  will-change: opacity, transform;
}

.rv.in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

.anim-grid-pan {
  animation: 25s linear infinite yk-grid-pan;
}

.anim-caret {
  animation: 1s step-end infinite yk-caret;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
  }
  .rv {
    opacity: 1 !important;
    transform: none !important;
  }
}
