.festival .scene-art {
  animation: none;
  transform: scale(1.008);
}

.festival .scene [data-scene-motion] {
  position: absolute;
  pointer-events: none;
  user-select: none;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-play-state: running;
}

.festival-ribbon-light {
  left: 2%;
  top: 7%;
  width: 21%;
  height: 18px;
  clip-path: polygon(0 35%, 14% 18%, 70% 42%, 100% 8%, 97% 63%, 70% 80%, 14% 53%, 0 85%);
  background: linear-gradient(90deg, transparent, #ffd89d99 22%, #fff0c4cc 55%, #ffc69a66 83%, transparent);
  transform-origin: left center;
  animation-name: festival-ribbon-glow;
}

.festival-ribbon-light--coral {
  left: 3%;
  top: 19%;
  width: 16%;
  height: 13px;
  background: linear-gradient(90deg, transparent, #ffa79899 25%, #ffdbb9cc 58%, #ff998666 83%, transparent);
  animation-name: festival-coral-glow;
  animation-delay: -1.5s;
}

.festival-water-shimmer {
  left: 2%;
  top: 58%;
  width: 20%;
  height: 8%;
  background: repeating-linear-gradient(176deg, transparent 0 9px, #ffdfa875 10px 11px, transparent 12px 19px, #b8f0e866 20px 21px, transparent 22px 29px);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 10%, transparent 72%);
  mask-image: radial-gradient(ellipse at center, #000 10%, transparent 72%);
  animation-name: festival-water-glow;
  animation-delay: -.75s;
}

@keyframes festival-ribbon-glow {
  0%, 100% { transform: translate(0, 0) rotate(-9deg); opacity: .3; }
  50% { transform: translate(8px, 3px) rotate(-7deg); opacity: .82; }
}

@keyframes festival-coral-glow {
  0%, 100% { transform: translate(0, 0) rotate(11deg); opacity: .25; }
  50% { transform: translate(6px, -3px) rotate(13deg); opacity: .72; }
}

@keyframes festival-water-glow {
  0%, 100% { transform: translate(-4px, 0) scaleX(.96); opacity: .24; }
  50% { transform: translate(5px, 2px) scaleX(1.02); opacity: .76; }
}

html[data-motion="paused"] .festival .scene [data-scene-motion],
html[data-motion="hidden"] .festival .scene [data-scene-motion] {
  animation-play-state: paused;
}

@media (max-width: 700px) {
  .festival-ribbon-light {
    left: 3%;
    top: 24px;
    width: 21%;
    height: 12px;
  }

  .festival-ribbon-light--coral {
    left: 2%;
    top: 95px;
    width: 16%;
    height: 10px;
  }

  .festival-water-shimmer {
    left: 1%;
    top: 266px;
    width: 21%;
    height: 36px;
  }
}
