#fan {
  position: absolute;
  left: 300px;
  top: 200px;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 4px solid #333;
  animation: spin 0.3s linear infinite;
  transform-origin: center;
  transform: rotate(var(--dir));
}

.blade {
  position: absolute;
  width: 50%;
  height: 6px;
  background: #333;
  top: 50%;
  left: 50%;
  transform-origin: left center;
}

.blade:nth-child(1) { transform: rotate(0deg); }
.blade:nth-child(2) { transform: rotate(120deg); }
.blade:nth-child(3) { transform: rotate(240deg); }

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

#target {
    position: absolute;
    left: 400px;
    top: 250px;
    padding: 20px 30px;
    background: crimson;
    color: white;
    font-size: 20px;
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
    transition: left 0.05s linear, top 0.05s linear;
}
