/* The original viewer remains the interaction owner; this layer only adds spatial motion. */
#lightbox.vm-enabled {
  isolation: isolate;
  background: transparent;
  overflow: visible;
}
#lightbox.vm-enabled::backdrop {
  background: transparent;
  backdrop-filter: none;
}
#lightbox.vm-enabled::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background: color-mix(in srgb,var(--mg-black) 97%,transparent);
  backdrop-filter: blur(13px);
  pointer-events: none;
}
#lightbox.vm-enabled:not([data-mode=reference])::before {
  background: radial-gradient(ellipse at var(--vm-origin-x,50%) var(--vm-origin-y,45%),color-mix(in srgb,var(--mg-black) 90%,transparent) 0%,color-mix(in srgb,var(--mg-black) 80%,transparent) 60%,color-mix(in srgb,var(--mg-black) 74%,transparent) 100%);
  backdrop-filter: blur(5px);
}
#lightbox.vm-enabled:not([data-mode=reference]) > header {
  background: linear-gradient(color-mix(in srgb,var(--mg-black) 60%,transparent),color-mix(in srgb,var(--mg-black) 28%,transparent));
  text-shadow: 0 1px 8px var(--mg-black);
}
#lightbox.vm-enabled.vm-opening::before {
  animation: vm-background-enter var(--vm-duration, 610ms) cubic-bezier(.19,1,.25,1) both;
}
#lightbox.vm-enabled.vm-closing::before {
  animation: vm-background-leave var(--vm-duration, var(--mg-dur-slow)) var(--mg-ease-big) both;
}
#lightbox.vm-enabled.vm-flight-active .photo-viewport > #light-image {
  opacity: 0 !important;
}
#lightbox.vm-enabled.vm-closing .photo-viewport,
#lightbox.vm-enabled.vm-closing .photo-sheet,
#lightbox.vm-enabled.vm-closing > header,
#lightbox.vm-enabled.vm-closing .light-stage > button {
  pointer-events: none;
}
#lightbox .vm-flight {
  position: fixed;
  z-index: 50;
  display: block;
  overflow: hidden;
  background: var(--mg-black-2);
  box-shadow: var(--mg-shadow-3);
  pointer-events: none;
  transform-origin: center;
  will-change: transform, opacity;
  backface-visibility: hidden;
}
#lightbox .vm-flight > img {
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  max-width: none;
  max-height: none;
  object-fit: cover;
  pointer-events: none;
  transform-origin: center;
  will-change: transform;
  backface-visibility: hidden;
}
#lightbox.vm-waiting-sharpness::after {
  content: '선명한 사진을 불러오는 중';
  position: fixed;
  left: 28px;
  bottom: 20px;
  z-index: 60;
  padding: var(--mg-space-10) var(--mg-space-12);
  color: var(--mg-paper-3);
  border: 1px solid color-mix(in srgb,var(--mg-white) 14%,transparent);
  border-radius: 30px;
  background: color-mix(in srgb,var(--mg-black-3) 75%,transparent);
  font-size: var(--mg-fs-2xs);
  pointer-events: none;
}
@keyframes vm-background-enter {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes vm-background-leave {
  from { opacity: 1; }
  to { opacity: 0; }
}
@media(max-width:740px) {
  #lightbox.vm-enabled { overflow: visible; }
  #lightbox.vm-enabled::before { background: color-mix(in srgb,var(--mg-black) 98%,transparent); }
  #lightbox.vm-enabled:not([data-mode=reference])::before { backdrop-filter: blur(2px); }
  #lightbox.vm-waiting-sharpness::after { left: 16px; bottom: 82px; }
}
@media(prefers-reduced-motion:reduce) {
  #lightbox.vm-enabled::before { animation: none !important; }
}

/* Full-width registered photo facts, below the existing title and controls. */
#lightbox.has-photo-subtitle[open] { grid-template-rows: auto minmax(0,1fr); }
#lightbox.has-photo-subtitle > header {
  height: auto;
  min-height: 72px;
  flex-wrap: wrap;
  align-content: center;
  row-gap: var(--mg-space-4);
  padding-top: var(--mg-space-8);
  padding-bottom: var(--mg-space-8);
}
#lightbox #light-subtitle {
  flex: 0 0 100%;
  width: 100%;
  margin: 0;
  color: #c8c8bc;
  font-size: var(--mg-fs-2xs);
  font-weight: var(--mg-weight-regular);
  line-height: var(--mg-leading-snug);
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
#lightbox[data-mode=reference] #light-subtitle { display: none; }
#lightbox.has-photo-subtitle .photo-share-status,
#lightbox.has-photo-subtitle .photo-share-fallback { top: calc(var(--photo-caption-header,88px) + 8px); }
@media(max-width:740px) {
  #lightbox.has-photo-subtitle[open] { grid-template-rows: auto minmax(0,1fr) 64px; }
  #lightbox.has-photo-subtitle > header {
    min-height: 78px;
    padding: var(--mg-space-6) var(--mg-space-12) var(--mg-space-8);
    row-gap: 1px;
  }
  #lightbox #light-subtitle { font-size: var(--mg-fs-2xs); }
  #lightbox.has-blog-return.has-photo-subtitle > header { padding-top: 0; }
}
