.vote-hover-preview {
  position: fixed;
  z-index: 120;
  padding: 7px;
  display: grid;
  place-items: center;
  pointer-events: none;
  background: #fffdf8;
  border: 1px solid rgba(7, 21, 34, .22);
  box-shadow: 0 24px 60px rgba(7, 21, 34, .3);
  opacity: 0;
  transform: scale(.96);
  transition: opacity .14s ease, transform .18s ease;
}

.vote-hover-preview.visible {
  opacity: 1;
  transform: scale(1);
}

.vote-hover-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
}

@media (hover: none), (pointer: coarse), (max-width: 760px) {
  .vote-hover-preview { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .vote-hover-preview { transition: none; }
}
