.line {
  position: relative;
  text-decoration: none;
}

.line::after {
  position: absolute;
  right: 0;
  bottom: -3px;
  width: 0;
  height: 2px;
  background: #ef4444;
  transition: width 0.3s ease;
  display: block;
  content: "";
}

.line:hover::after {
  width: 100%;
  left: 0;
}

.loading-dots span {
  opacity: 0;
  animation: blink 1.5s infinite;
}

.loading-dots span:nth-child(1) { animation-delay: 0s; }
.loading-dots span:nth-child(2) { animation-delay: 0.3s; }
.loading-dots span:nth-child(3) { animation-delay: 0.6s; }

@keyframes blink {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}