/* Encrypt/Decrypt Animation - Modern Geometric */

@keyframes lock-assemble {
  0% {
    opacity: 0;
    transform: scale(0.5) rotate(0deg);
    filter: blur(4px);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.1) rotate(180deg);
    filter: blur(2px);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(360deg);
    filter: blur(0);
  }
}

@keyframes data-pulse {
  0%, 100% {
    opacity: 0.6;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.15);
  }
}

@keyframes decrypt-rotate-separate {
  0% {
    transform: rotate(0deg) scale(1);
    opacity: 1;
  }
  50% {
    transform: rotate(180deg) scale(1.3);
    opacity: 0.8;
  }
  100% {
    transform: rotate(360deg) scale(1.5);
    opacity: 0;
  }
}

@keyframes lock-open {
  0% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
  50% {
    clip-path: polygon(0 0, 100% 0, 100% 50%, 50% 50%, 50% 100%, 0 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 0, 50% 0, 50% 0, 0 0);
  }
}

@keyframes geometry-dissolve {
  0% {
    opacity: 1;
    transform: scale(1) translateY(0);
    filter: blur(0);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.2) translateY(-20px);
    filter: blur(2px);
  }
  100% {
    opacity: 0;
    transform: scale(1.5) translateY(-40px);
    filter: blur(8px);
  }
}

.encrypt-lock-assemble {
  animation: lock-assemble 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.encrypt-data-pulse {
  animation: data-pulse 1s ease-in-out infinite;
}

.decrypt-rotate-separate {
  animation: decrypt-rotate-separate 1.2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.decrypt-lock-open {
  animation: lock-open 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.decrypt-geometry-dissolve {
  animation: geometry-dissolve 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
