/* =============================================================
   LIGHTBOX
   ============================================================= */

#lightbox-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: background 0.4s ease, opacity 0.4s ease;
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
}

#lightbox-overlay.active {
  opacity: 1;
  pointer-events: all;
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

#lightbox-inner {
  position: relative;
  max-width: 92vw;
  max-height: 92vh;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: scale(0.92);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
              opacity 0.35s ease;
}

#lightbox-overlay.active #lightbox-inner {
  transform: scale(1);
  opacity: 1;
}

#lightbox-media-img {
  max-width: 92vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 4px;
  display: block;
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.7);
}

#lightbox-media-video {
  max-width: 92vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 4px;
  display: block;
  box-shadow: 0 32px 80px rgba(0, 0, 0, 0.7);
  outline: none;
}

/* Close button */
#lightbox-close {
  position: fixed;
  top: 1.5rem;
  right: 1.5rem;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10000;
  opacity: 0;
  transform: scale(0.8) rotate(-45deg);
  transition: opacity 0.35s ease 0.1s,
              transform 0.35s cubic-bezier(0.22, 1, 0.36, 1) 0.1s,
              background 0.2s;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#lightbox-overlay.active #lightbox-close {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

#lightbox-close:hover {
  background: rgba(255, 255, 255, 0.22);
  transform: scale(1.08) rotate(0deg) !important;
}

#lightbox-close svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* Sound toggle inside lightbox (videos only) */
#lightbox-sound-btn {
  position: fixed;
  bottom: 1.8rem;
  right: 1.8rem;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, background 0.2s, transform 0.2s;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

#lightbox-overlay.active #lightbox-sound-btn.visible {
  opacity: 1;
  pointer-events: all;
}

#lightbox-sound-btn:hover {
  background: rgba(255, 255, 255, 0.22);
  transform: scale(1.08);
}

#lightbox-sound-btn svg {
  width: 1.1rem;
  height: 1.1rem;
}

/* =============================================================
   ZOOM CURSOR & HOVER ENHANCEMENT FOR WORK MEDIA
   ============================================================= */

.work-media,
.work-media-slot {
  cursor: zoom-in;
}

/* Stronger zoom on hover */
.work-card:hover .work-video,
.work-media-slot:hover .work-video {
  transform: scale(1.07) !important;
}

.work-card:hover .work-photo,
.work-media-slot:hover .work-photo {
  transform: scale(1.07) !important;
}

/* Hover scale per individual slot (overrides card-level) */
.work-media-slot:hover .work-video,
.work-media-slot:hover .work-photo {
  transform: scale(1.1) !important;
}

/* Click hint icon that appears on media hover */
.work-media::after,
.work-media-slot::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0);
  transition: background 0.3s ease;
  pointer-events: none;
  z-index: 3;
  border-radius: 0;
}

.work-media:hover::after,
.work-media-slot:hover::after {
  background: rgba(255, 255, 255, 0.04);
}
