/* Lights are aligned to the original Santa photograph, including its cover crop. */
.santa-lit-photo { position: relative; isolation: isolate; }
.santa-lit-photo > .santa-light-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  mix-blend-mode: screen;
  transition: transform .6s;
}
.santa-bulb { opacity: .18; }
.santa-lit-photo :is(.image-badge, .card-badge, .gallery-expand) { z-index: 1; }
.category-tile:hover > .santa-light-overlay { transform: scale(1.05); }
.tour-card:hover .card-image > .santa-light-overlay,
.trip-find-image:hover > .santa-light-overlay { transform: scale(1.04); }
.trip-find-image > .santa-light-overlay { transition-duration: .3s; }
.gallery-open > .santa-light-overlay { transition-duration: .5s; }
.gallery-open:hover > .santa-light-overlay { transform: scale(1.045); }

@media (prefers-reduced-motion: no-preference) {
  .santa-bulb {
    animation: santa-light-twinkle var(--twinkle-duration, 4.4s) ease-in-out var(--twinkle-delay, 0s) infinite;
    animation-play-state: paused;
  }
  .santa-lit-photo.is-twinkling .santa-bulb { animation-play-state: running; }
}
@media (prefers-reduced-motion: reduce) {
  .santa-lit-photo > .santa-light-overlay { transition: none; }
}
@keyframes santa-light-twinkle {
  0%, 100% { opacity: .14; }
  43% { opacity: .95; }
  68% { opacity: .32; }
}

.polar-video-link {
  position: absolute;
  top: clamp(12px, 2vw, 22px);
  right: clamp(12px, 2vw, 22px);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid #ffffff65;
  border-radius: 5px;
  background: #173433f2;
  color: #fffdf4;
  font-size: 12px;
  font-weight: 650;
}

.polar-video-link:hover {
  background: #214841;
}

.polar-video-link:focus-visible,
.polar-video-dialog :is(a, button):focus-visible {
  outline: 3px solid #e4ab69;
  outline-offset: 3px;
}

.polar-video-dialog {
  width: min(860px, calc(100% - 28px));
  max-height: calc(100% - 28px);
  padding: clamp(12px, 3vw, 24px);
  border: 0;
  border-radius: 9px;
  background: #173433;
  color: #fffdf4;
}

.polar-video-dialog::backdrop {
  background: #071717d9;
}

.polar-video-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.polar-video-header h2 {
  margin: 0;
  color: inherit;
  font-size: clamp(19px, 3vw, 30px);
}

.polar-video-header button {
  min-height: 44px;
  padding: 7px 12px;
  border: 1px solid #ffffff60;
  border-radius: 4px;
  background: transparent;
  color: inherit;
  white-space: nowrap;
  cursor: pointer;
}

.polar-video-frame {
  aspect-ratio: 16 / 9;
  background: #0b1818;
}

.polar-video-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.polar-video-dialog p {
  margin: 10px 0 0;
  font-size: 13px;
}

.polar-video-dialog p a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
