/* =========================================================
   VIBES ON ICE — Parallax Floating Gallery Styles
   Extends the 21st.dev Parallax Floating component by Daniel Petho
   Harmonized with the Vibes on Ice obsidian & gold design system.
   ========================================================= */

/* Floating Stage Mount Layer */
.voi-floating-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}

/* Floating Card Element */
.voi-floating-item {
  position: absolute;
  pointer-events: auto;
  will-change: transform, opacity;
  cursor: pointer;
  border-radius: 8px;
  background: rgba(16, 14, 11, 0.72);
  border: 1px solid rgba(200, 164, 93, 0.22);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 5px;
  box-shadow:
    0 14px 32px rgba(0, 0, 0, 0.55),
    0 2px 6px rgba(0, 0, 0, 0.4),
    0 0 1px rgba(200, 164, 93, 0.3);
  transition:
    box-shadow 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
    border-color 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
    filter 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.voi-floating-item:hover {
  border-color: rgba(200, 164, 93, 0.75);
  box-shadow:
    0 22px 50px rgba(0, 0, 0, 0.8),
    0 0 28px rgba(200, 164, 93, 0.35);
  z-index: 10;
}

/* Floating Media Frame */
.voi-floating-frame {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 6px;
  background: #0A0908;
}

.voi-floating-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.voi-floating-item:hover .voi-floating-img {
  transform: scale(1.06);
}

/* 14-Card Orbital Constellation Layout
   Cards are larger and drawn in toward the centre so the field reads as a
   dense constellation rather than a thin border. The middle stays clear:
   cards 7/8 sit level with the wordmark, so they hold the widest gap. */
.voi-card-1  { top: 2%; left: 2%; width: clamp(140px, 14vw, 205px); height: clamp(110px, 10.5vw, 158px); }
.voi-card-2  { top: 17%; left: 14%; width: clamp(128px, 12.5vw, 188px); height: clamp(158px, 15vw, 228px); }
.voi-card-3  { top: 1%; left: 27%; width: clamp(134px, 13vw, 194px); height: clamp(104px, 10vw, 152px); }
.voi-card-4  { top: 1%; right: 27%; width: clamp(134px, 13vw, 194px); height: clamp(150px, 14.5vw, 220px); }
.voi-card-5  { top: 17%; right: 14%; width: clamp(140px, 14vw, 205px); height: clamp(110px, 10.5vw, 158px); }
.voi-card-6  { top: 2%; right: 2%; width: clamp(140px, 14vw, 200px); height: clamp(158px, 15vw, 228px); }

.voi-card-7  { top: 40%; left: 8%; width: clamp(138px, 13.5vw, 200px); height: clamp(150px, 14.5vw, 220px); }
.voi-card-8  { top: 40%; right: 8%; width: clamp(138px, 13.5vw, 200px); height: clamp(150px, 14.5vw, 220px); }

.voi-card-9  { bottom: 17%; left: 14%; width: clamp(128px, 12.5vw, 188px); height: clamp(158px, 15vw, 228px); }
.voi-card-10 { bottom: 2%; left: 2%; width: clamp(140px, 14vw, 205px); height: clamp(110px, 10.5vw, 158px); }
.voi-card-11 { bottom: 1%; left: 27%; width: clamp(134px, 13vw, 194px); height: clamp(150px, 14.5vw, 220px); }
.voi-card-12 { bottom: 1%; right: 27%; width: clamp(134px, 13vw, 194px); height: clamp(104px, 10vw, 152px); }
.voi-card-13 { bottom: 17%; right: 14%; width: clamp(140px, 14vw, 205px); height: clamp(158px, 15vw, 228px); }
.voi-card-14 { bottom: 2%; right: 2%; width: clamp(140px, 14vw, 200px); height: clamp(110px, 10.5vw, 158px); }

/* Lightbox Modal */
.voi-lightbox {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 40px);
  background: rgba(5, 4, 3, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

.voi-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}

.voi-lightbox-card {
  position: relative;
  max-width: min(920px, 94vw);
  max-height: min(780px, 90vh);
  width: 100%;
  background: #100E0B;
  border: 1px solid rgba(200, 164, 93, 0.32);
  border-radius: 12px;
  overflow: hidden;
  box-shadow:
    0 30px 70px rgba(0, 0, 0, 0.85),
    0 0 35px rgba(200, 164, 93, 0.2);
  display: flex;
  flex-direction: column;
  transform: scale(0.94) translateY(12px);
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.voi-lightbox.is-open .voi-lightbox-card {
  transform: scale(1) translateY(0);
}

.voi-lightbox-body {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  min-height: 0;
}

.voi-lightbox-media {
  position: relative;
  background: #070605;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: 340px;
}

.voi-lightbox-media img {
  width: 100%;
  height: 100%;
  max-height: 68vh;
  object-fit: contain;
  display: block;
}

.voi-lightbox-content {
  padding: clamp(24px, 4vw, 36px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: linear-gradient(to bottom, #14120E, #0E0C09);
  border-left: 1px solid rgba(200, 164, 93, 0.15);
}

.voi-lightbox-category {
  font-size: 0.62rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold, #C8A45D);
  margin-bottom: 10px;
}

.voi-lightbox-title {
  font-family: 'Italiana', serif;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem);
  color: var(--champ, #E8D8B8);
  line-height: 1.15;
  font-weight: 400;
  margin-bottom: 14px;
}

.voi-lightbox-desc {
  font-size: 0.92rem;
  line-height: 1.7;
  color: var(--muted, #A69B8D);
  margin-bottom: 24px;
}

.voi-lightbox-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(16, 14, 11, 0.85);
  border: 1px solid rgba(200, 164, 93, 0.35);
  color: var(--champ, #E8D8B8);
  font-size: 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
  z-index: 10;
}

.voi-lightbox-close:hover {
  background: var(--gold, #C8A45D);
  color: #0A0908;
  border-color: var(--gold, #C8A45D);
  transform: scale(1.08);
}

/* Mobile & Tablet Optimizations */
@media (max-width: 900px) {
  .voi-lightbox-body {
    grid-template-columns: 1fr;
    max-height: 80vh;
    overflow-y: auto;
  }
  .voi-lightbox-content {
    border-left: none;
    border-top: 1px solid rgba(200, 164, 93, 0.15);
    padding: 20px;
  }
  .voi-lightbox-media {
    min-height: 250px;
  }
  
  /* Selectively soften secondary cards on tablet */
  .voi-card-2, .voi-card-5, .voi-card-9, .voi-card-13 {
    opacity: 0.75;
  }
}

@media (max-width: 600px) {
  /* Show core 6 signature cards on small mobile to keep stage legible */
  .voi-card-2, .voi-card-3, .voi-card-4, .voi-card-5, .voi-card-9, .voi-card-11, .voi-card-12, .voi-card-13 {
    display: none;
  }
  .voi-card-1  { top: 2%; left: 2%; width: 118px; height: 96px; }
  .voi-card-6  { top: 2%; right: 2%; width: 118px; height: 96px; }
  .voi-card-7  { top: 38%; left: 1%; width: 112px; height: 130px; }
  .voi-card-8  { top: 38%; right: 1%; width: 112px; height: 130px; }
  .voi-card-10 { bottom: 3%; left: 2%; width: 118px; height: 96px; }
  .voi-card-14 { bottom: 3%; right: 2%; width: 118px; height: 96px; }
}
