body {
  margin: 0;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background: linear-gradient(135deg, #0d1117, #1d2533);
  font-family: Arial, sans-serif;
}

.hotspot-container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 90vh; /* fills most of the screen height */
  aspect-ratio: 285 / 865; /* keeps correct proportion */
  max-height: 865px;
}

.tumbler-image {
  height: 100%;
  width: auto; /* keeps natural tall shape */
  display: block;
  object-fit: contain;
}

/* --- Hotspots --- */
.hotspot {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid white;
  border-radius: 50%;
  background-color: rgba(255,255,255,0.1);
  box-shadow: 0 0 8px rgba(255,255,255,0.3);
  transform: translateY(-50%);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hotspot:hover {
  transform: translateY(-50%) scale(1.2);
  box-shadow: 0 0 12px rgba(255,255,255,0.4);
}

/* Left & Right Placement */
.hotspot.left {
  left: -60px;
}
.hotspot.right {
  right: -60px;
}

/* --- Tooltip --- */
.tooltip {
  position: absolute;
  background: rgba(255,255,255,0.15);
  color: #fff;
  padding: 8px 12px;
  border-radius: 8px;
  backdrop-filter: blur(6px);
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity 0.25s ease;
  pointer-events: none;
  font-size: 14px;
  z-index: 10;
}
.tooltip.show {
  opacity: 1;
}
body {
  margin: 0;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  background: linear-gradient(135deg, #0d1117, #1d2533);
  font-family: Arial, sans-serif;
}

.hotspot-container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 90vh;
  aspect-ratio: 285 / 865;
  max-height: 865px;
}

.tumbler-image {
  height: 100%;
  width: auto;
  display: block;
  object-fit: contain;
}

/* --- Hotspots (Desktop) --- */
.hotspot {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid white;
  border-radius: 50%;
  background-color: rgba(255,255,255,0.1);
  box-shadow: 0 0 8px rgba(255,255,255,0.3);
  transform: translateY(-50%);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.hotspot:hover {
  transform: translateY(-50%) scale(1.2);
  box-shadow: 0 0 12px rgba(255,255,255,0.4);
}

/* Placement for desktop */
.hotspot.left { left: -60px; }
.hotspot.right { right: -60px; }

/* Tooltip (Desktop) */
.tooltip {
  position: absolute;
  background: rgba(255,255,255,0.15);
  color: #fff;
  padding: 8px 12px;
  border-radius: 8px;
  backdrop-filter: blur(6px);
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity 0.25s ease;
  pointer-events: none;
  font-size: 14px;
  z-index: 10;
}
.tooltip.show { opacity: 1; }

/* Hide mobile texts on desktop */
.mobile-texts {
  display: none;
}

@media (max-width: 768px) {
  /* Hide hotspots and tooltips */
  .hotspot,
  #tooltip {
    display: none !important;
  }

  /* Center tumbler and texts cleanly */
  .hotspot-container {
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    height: auto;
    padding: 20px 0 60px 0; /* top + bottom breathing room */
    overflow: visible; /* ✅ removes scrollbar */
  }

  .tumbler-image {
    width: 65%;
    height: auto;
    margin-bottom: 25px;
  }

  /* Mobile texts neatly stacked */
  .mobile-texts {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 90%;
    max-width: 380px;
    box-sizing: border-box;
  }

  .mobile-texts .text-box {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    color: white;
    font-size: 1rem;
    text-align: center;
    padding: 12px 16px;
    border-radius: 12px;
    width: 100%;
    box-shadow: 0 0 8px rgba(255, 255, 255, 0.2);
    animation: fadeInUp 0.6s ease both;
  }

  /* ✅ Ensures the last text doesn’t touch screen edge */
  .mobile-texts .text-box:last-child {
    margin-bottom: 20px;
  }

  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(15px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}