.magnify {
  position: relative;
  display: inline-block;
  cursor: none; /* Hide cursor over image */
}

.magnify img {
  display: block;
  max-width: 100%;
}

.magnify-lens {
  position: absolute;
  border: 2px solid #ccc;   /* visible border */
  border-radius: 50%;       /* circular lens */
  width: 120px;             /* adjust lens size */
  height: 120px;
  overflow: hidden;
  display: none;
  background-repeat: no-repeat;
  background-color: #fff;   /* fixes transparency */
  box-shadow: 0 4px 8px rgba(0,0,0,0.3); /* subtle shadow */
  pointer-events: none;     /* let mouse events pass through */
  z-index: 99;
}

/* ensure zoomed image is scaled properly */
.magnify-lens.active {
  display: block;
  background-size: calc(100% * 2) calc(100% * 2); /* 2x zoom */
}