/* Atmosphere stays inside the photograph and never intercepts clicks. */
.wedding-photo,.xv-photo {position:relative}
.event-effects {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.tea-hero>.event-effects,.corporate-hero>.event-effects {z-index:-1}
.corporate-hero>.event-effects {z-index:0}
.tea-hero .shell,.corporate-hero .shell {position:relative;z-index:1}
.motion-toggle {
  position:absolute;right:18px;bottom:18px;z-index:2;
  min-height:36px;padding:7px 12px;border:1px solid #ffffff55;
  border-radius:22px;background:#20172080;color:#fff;
  font:11px 'DM Sans',sans-serif;cursor:pointer;backdrop-filter:blur(6px);
}
.motion-toggle:hover {background:#201720bb}
.xv-photo-frame .image-note {bottom:58px}
.xv-stars span {animation:star-shine 2.8s ease-in-out infinite;transform-origin:center}
.xv-stars span:nth-child(2n) {animation-delay:-1.1s}
.xv-stars span:nth-child(3n) {animation-delay:-2.3s;animation-duration:3.6s}
body[data-motion-paused="true"] .xv-stars span {animation-play-state:paused}
body[data-stars-visible="false"] .xv-stars span {animation-play-state:paused}
body[data-motion-hidden="true"] .xv-stars span {animation-play-state:paused}
@keyframes star-shine {
  0%,100% {opacity:.35;transform:scale(.85) rotate(-8deg);text-shadow:0 0 4px #eacb8b50}
  35% {opacity:.8;transform:scale(1.1) rotate(0deg);text-shadow:0 0 12px #ffe0a6aa}
  55% {opacity:1;transform:scale(1.5) rotate(8deg);text-shadow:0 0 8px #fff6df,0 0 22px #ffd68ce6,0 0 38px #edb86980}
  78% {opacity:.6;transform:scale(1) rotate(0deg);text-shadow:0 0 10px #eacb8b80}
}
@media(prefers-reduced-motion:reduce) {
  .event-effects,.motion-toggle {display:none}
  .xv-stars span {animation:none;opacity:.8}
  .xv-photo-frame .image-note {bottom:18px}
}
