:is(.taste-occasion--eventi, .taste-occasion--aziende) > .taste-festive-motion {
  --festive-travel: calc(100vh + 110px);
  position: fixed;
  inset: 0;
  z-index: 24;
  overflow: hidden;
  pointer-events: none;
}

.taste-festive-motion[hidden] {
  display: none;
}

.taste-festive-motion__flake {
  position: absolute;
  inset-block-start: -44px;
  inset-inline-start: var(--festive-x);
  width: var(--festive-size);
  aspect-ratio: 1;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b92e44' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Cdefs%3E%3Cpath id='a' d='M12 12V2m0 2.5L9 7m3-2.5 3 2.5m-3 1L10 10m2-2 2 2'/%3E%3C/defs%3E%3Cuse href='%23a'/%3E%3Cuse href='%23a' transform='rotate(60 12 12)'/%3E%3Cuse href='%23a' transform='rotate(120 12 12)'/%3E%3Cuse href='%23a' transform='rotate(180 12 12)'/%3E%3Cuse href='%23a' transform='rotate(240 12 12)'/%3E%3Cuse href='%23a' transform='rotate(300 12 12)'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0;
  animation: taste-festive-snow var(--festive-duration) var(--festive-delay) linear infinite;
}

.taste-festive-motion__ornament {
  position: absolute;
  inset-block-start: -80px;
  inset-inline-start: var(--festive-x);
  width: clamp(40px, 4.2vw, 58px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 31% 25%, #fff8e9e8 0%, #ffd6ba9c 6%, transparent 24%),
    radial-gradient(ellipse at 72% 75%, #ff9c624f 0%, transparent 40%),
    radial-gradient(circle at 35% 29%, #f67b69, #cd2937 37%, #851727 67%, #3a0a17 94%);
  box-shadow: inset 0 0 0 1px #ffb08849, inset -3px -5px 9px #47030a88, 0 3px 8px #0004;
  opacity: 0;
  animation: taste-festive-ornament 2.15s cubic-bezier(.42, .09, .83, .65) both;
}

.taste-festive-motion__ornament::before,
.taste-festive-motion__ornament::after {
  content: "";
  position: absolute;
  left: 50%;
  box-sizing: border-box;
  transform: translateX(-50%);
}

.taste-festive-motion__ornament::before {
  top: -10%;
  z-index: 1;
  width: 29%;
  height: 13%;
  border-radius: 2px 2px 1px 1px;
  background:
    repeating-linear-gradient(90deg, #6c46224a 0 1px, #fff3d64d 1px 2px),
    linear-gradient(105deg, #86602f, #ffe5aa 38%, #ae7331);
  box-shadow: 0 1px 1px #41081585;
}

.taste-festive-motion__ornament::after {
  top: -19%;
  width: 13%;
  height: 13%;
  border: 1px solid #d9ae65;
  border-radius: 50%;
}

@supports (height: 100dvh) {
  :is(.taste-occasion--eventi, .taste-occasion--aziende) > .taste-festive-motion {
    --festive-travel: calc(100dvh + 110px);
  }
}

@keyframes taste-festive-snow {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0);
  }
  12%, 86% {
    opacity: var(--festive-opacity);
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--festive-drift), var(--festive-travel), 0) rotate(230deg);
  }
}

@keyframes taste-festive-ornament {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) rotate(-26deg);
  }
  9%, 94% {
    opacity: .96;
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--festive-drift), var(--festive-travel), 0) rotate(255deg);
  }
}

@media (max-width: 760px) {
  .taste-festive-motion__ornament {
    width: clamp(32px, 8vw, 43px);
    animation-duration: 1.95s;
  }
}

@media (prefers-reduced-motion: reduce), print {
  .taste-festive-motion {
    display: none;
  }
}
