.shake {
  display: inline-block;
  animation: shake 0.5s infinite;
}

@keyframes shake {
  0% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  75% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
.rainbow {
  background: linear-gradient(#72100F, #5B0F72, #0F1B72 ,#0F7258 ,#2A720F, #72530F);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: rainbow 3s linear infinite;
}

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

.pulse {
  display: inline-block;
  animation: pulse 1s infinite;
}

@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.1); }
  100% { transform: scale(1); }
}

.blur-img {
  filter: blur(2px);
  transition: filter 0.4s ease;
}

.blur-img:hover {
  filter: blur(0);
}
.frame-img {
  padding: 6px;
  background: #fff;
  border: 2px solid #000;
  box-shadow: 4px 4px 0 #000;
  width: 160px;
  height: 210px;
}
