.focus-in-contract {
  -webkit-animation: focus-in-contract 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94)
    both;
  animation: focus-in-contract 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes focus-in-contract {
  0% {
    letter-spacing: 1em;
    -webkit-filter: blur(12px);
    filter: blur(12px);
    opacity: 0;
  }
  100% {
    -webkit-filter: blur(0px);
    filter: blur(0px);
    opacity: 1;
  }
}
@keyframes focus-in-contract {
  0% {
    letter-spacing: 1em;
    -webkit-filter: blur(12px);
    filter: blur(12px);
    opacity: 0;
  }
  100% {
    -webkit-filter: blur(0px);
    filter: blur(0px);
    opacity: 1;
  }
}

.blur-out-expand {
  -webkit-animation: blur-out-expand 1s cubic-bezier(0.25, 0.46, 0.45, 0.94)
    both;
  animation: blur-out-expand 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes blur-out-expand {
  0% {
    -webkit-filter: blur(0.01);
    filter: blur(0.01);
  }
  100% {
    letter-spacing: 1em;
    -webkit-filter: blur(12px) opacity(0%);
    filter: blur(12px) opacity(0%);
  }
}
@keyframes blur-out-expand {
  0% {
    -webkit-filter: blur(0.01);
    filter: blur(0.01);
  }
  100% {
    letter-spacing: 1em;
    -webkit-filter: blur(12px) opacity(0%);
    filter: blur(12px) opacity(0%);
  }
}

.focus-in {
  -webkit-animation: focus-in 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation: focus-in 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes focus-in {
  0% {
    -webkit-filter: blur(12px);
    filter: blur(12px);
  }
  100% {
    -webkit-filter: blur(0px);
    filter: blur(0px);
  }
}
@keyframes focus-in {
  0% {
    -webkit-filter: blur(12px);
    filter: blur(12px);
  }
  100% {
    -webkit-filter: blur(0px);
    filter: blur(0px);
  }
}

.blur-out {
  -webkit-animation: blur-out 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
  animation: blur-out 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

@-webkit-keyframes blur-out {
  0% {
    -webkit-filter: blur(0.01);
    filter: blur(0.01);
  }
  100% {
    -webkit-filter: blur(12px);
    filter: blur(12px);
  }
}
@keyframes blur-out {
  0% {
    -webkit-filter: blur(0.01);
    filter: blur(0.01);
  }
  100% {
    -webkit-filter: blur(12px);
    filter: blur(12px);
  }
}

.box-animate {
  z-index: 1;
  position: relative;
  transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -webkit-transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -ms-transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -o-transition: all 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955);
}

.show-box:not(.animate) {
  opacity: 0;
  transform: translateY(30px);
  -webkit-transform: translateY(30px);
  -moz-transform: translateY(30px);
  -ms-transform: translateY(30px);
  -o-transform: translateY(30px);
}

.scale-box:not(.animate) {
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);

  -webkit-transform-origin: center;
  -ms-transform-origin: center;
  transform-origin: center;
}

.show-box-right:not(.animate) {
  opacity: 0;
  transform: translateX(30px);
  -webkit-transform: translateX(30px);
  -moz-transform: translateX(30px);
  -ms-transform: translateX(30px);
  -o-transform: translateX(30px);
}

.container-punti.animate::before {
  max-height: 100%;
}

.linea.animate {
  max-width: 100%;
}

.flip-card.hover > .inner-card,
.flip-card.hover-click > .inner-card {
  -webkit-transform: rotateY(180deg);
  transform: rotateY(180deg);
}

.rotate-card:not(.animate) .inner-card {
  -webkit-transform: rotateY(180deg) rotateZ(180deg);
  transform: rotateY(180deg) rotateZ(180deg);
}

.rotate-card.animation-delay .back {
  -webkit-transform: rotateY(180deg) rotateZ(180deg);
  transform: rotateY(180deg) rotateZ(180deg);
}

.card-servizi {
  animation: fadeUp 1s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -webkit-animation: fadeUp 1s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  animation-timeline: view();
  animation-range: entry 0% cover 25%;
}

.popup {
  animation: popup 1s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -webkit-animation: popup 1s cubic-bezier(0.455, 0.03, 0.515, 0.955);
  animation-timeline: view();
  animation-range: entry 0% cover 30%;
}
