.skincare-detail .detail-triptych-segment {
  aspect-ratio: var(--slice-ratio);
  border: 0;
}

.skincare-detail .detail-triptych-segment img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 300%;
  max-width: none;
  transform: translateY(calc(var(--slice-index) * -100% / 3));
}
.poster-gallery {
  --poster-gap: clamp(12px, 2vw, 32px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: start;
  gap: var(--poster-gap);
  width: min(88vw, 94rem);
  margin: clamp(3rem, 6vw, 6rem) 0 0 50%;
  transform: translateX(-50%);
}
.poster-gallery--campaign {
  display: flex;
  flex-direction: column;
}
.poster-gallery--campaign .poster-gallery-row {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: start;
  gap: var(--poster-gap);
}
.poster-gallery--campaign .poster-gallery-row .poster-thumbnail {
  grid-column: span 2;
}
.poster-gallery--campaign .poster-gallery-row--three .poster-thumbnail:first-child {
  grid-column: 2 / span 2;
}
.poster-gallery .poster-thumbnail { display: block; width: 100%; padding: 0; overflow: hidden; border: 0; border-radius: 0.75rem; background: transparent; cursor: zoom-in; }
.poster-gallery .poster-thumbnail img { display: block; width: 100%; height: auto; margin: 0; }
.poster-gallery--secondary {
  margin-top: clamp(10rem, 18vw, 32rem);
}
.poster-gallery--secondary .poster-thumbnail--featured {
  grid-column: 1 / -1;
  margin-bottom: clamp(12px, 1vw, 20px);
}
.poster-gallery--three-column {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(4rem, 6vw, 8rem);
}
.photography-gallery {
  grid-template-columns: repeat(2, minmax(0, 1fr)) 0 repeat(2, minmax(0, 1fr));
  row-gap: clamp(24px, 4vw, 64px);
  margin-top: clamp(3rem, 5vw, 5rem);
}
.photography-gallery .poster-thumbnail:nth-child(4n + 1) { grid-column: 1; }
.photography-gallery .poster-thumbnail:nth-child(4n + 2) { grid-column: 2; }
.photography-gallery .poster-thumbnail:nth-child(4n + 3) { grid-column: 4; }
.photography-gallery .poster-thumbnail:nth-child(4n + 4) { grid-column: 5; }
.poster-gallery-caption {
  width: min(88vw, 94rem);
  margin: 1.5rem 0 0 50% !important;
  transform: translateX(-50%);
  color: var(--text);
  font-size: clamp(1.125rem, 1.7vw, 1.375rem);
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
.poster-thumbnail:focus-visible, .poster-viewer button:focus-visible { outline: 2px solid var(--green, #00ff00); outline-offset: 5px; }
.poster-viewer {
  position: fixed; inset: 0; width: 100%; max-width: none;
  height: 100%; height: 100dvh; max-height: none;
  margin: 0; padding: 0; border: 0; background: transparent; color: white;
}
.poster-viewer[open] { display: grid; place-items: center; }
.poster-viewer::backdrop { background: rgba(0, 0, 0, .80); }
.poster-viewer .poster-full { display: block; width: auto; height: auto; max-width: calc(100% - 180px); max-height: calc(100dvh - 110px); border-radius: 0.75rem; object-fit: contain; touch-action: pan-y; user-select: none; cursor: zoom-in; transform-origin: center; transition: transform 120ms cubic-bezier(.16, 1, .3, 1); }
.poster-viewer .poster-full[data-zoomed="true"] { cursor: zoom-out; }
.poster-viewer button { position: absolute; z-index: 1; min-height: 44px; padding: 10px 14px; border: 1px solid #777; background: #101510; color: white; font: inherit; cursor: pointer; }
.poster-close { top: 16px; right: 20px; }
.poster-prev { left: 16px; top: 50%; }
.poster-next { right: 16px; top: 50%; }
.poster-viewer .poster-status { position: absolute; bottom: 14px; margin: 0; text-align: center; font-size: 14px; }
@media (max-width: 600px) {
  .poster-viewer .poster-full { max-width: calc(100% - 24px); max-height: calc(100dvh - 160px); }
  .poster-viewer .poster-prev, .poster-viewer .poster-next { top: auto; bottom: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .poster-viewer .poster-full { transition: none; }
}
