﻿/* animations.css — Keyframe Definitions */

@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes pulse-dot { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.7);opacity:0.3} }
@keyframes pulse-glow { 0%,100%{box-shadow:0 0 0 0 rgba(0,255,136,0),0 0 10px rgba(0,255,136,0.2)} 50%{box-shadow:0 0 0 10px rgba(0,255,136,0),0 0 25px rgba(0,255,136,0.5)} }
@keyframes orbit-cw { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes orbit-ccw { from{transform:rotate(0deg)} to{transform:rotate(-360deg)} }
@keyframes border-spin { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes scroll-draw {
  0%   { transform:scaleY(0); transform-origin:top center;    opacity:0 }
  20%  { transform:scaleY(1); transform-origin:top center;    opacity:1 }
  80%  { transform:scaleY(1); transform-origin:bottom center; opacity:1 }
  100% { transform:scaleY(0); transform-origin:bottom center; opacity:0 }
}
@keyframes scanline { 0%{transform:translateY(-100%);opacity:0} 5%{opacity:0.4} 95%{opacity:0.4} 100%{transform:translateY(100vh);opacity:0} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
@keyframes wave-progress { 0%{background-position:0% 50%} 100%{background-position:200% 50%} }
@keyframes preloader-shimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes hud-flicker { 0%,96%,100%{opacity:1} 97%{opacity:0.35} 98%{opacity:0.85} 99%{opacity:0.5} }
@keyframes glitch-h {
  0%  {clip-path:inset(15% 0 70% 0);transform:translateX(-5px)}
  20% {clip-path:inset(60% 0 20% 0);transform:translateX( 5px)}
  40% {clip-path:inset(30% 0 50% 0);transform:translateX(-3px)}
  60% {clip-path:inset(80% 0  5% 0);transform:translateX( 7px)}
  80% {clip-path:inset( 5% 0 80% 0);transform:translateX(-7px)}
  100%{clip-path:inset( 0% 0  0% 0);transform:translateX( 0)}
}
@keyframes glitch-h2 {
  0%  {clip-path:inset(50% 0 30% 0);transform:translateX( 5px)}
  25% {clip-path:inset(20% 0 60% 0);transform:translateX(-5px)}
  50% {clip-path:inset(70% 0 10% 0);transform:translateX( 3px)}
  75% {clip-path:inset( 5% 0 85% 0);transform:translateX(-8px)}
  100%{clip-path:inset( 0% 0  0% 0);transform:translateX( 0)}
}
@keyframes noise-shift {
  0%,100%{background-position:  0%  0%} 10%{background-position:-5%  -10%}
  20%{background-position:-15%   5%}   30%{background-position: 7%  -25%}
  40%{background-position: 20%  25%}   50%{background-position:-25%  10%}
  60%{background-position: 15%   5%}   70%{background-position:  0%  15%}
  80%{background-position: 25%  35%}   90%{background-position:-10%  10%}
}
@keyframes fade-up { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes scale-in { from{opacity:0;transform:scale(0.85)} to{opacity:1;transform:scale(1)} }
