.premium-v2-visuals {
  perspective: 1200px;
}

.premium-v2-visuals figure {
  z-index: 0;
  opacity: 0;
  clip-path: inset(0 0 0 8%);
  transform: translate3d(3.5%,0,0) scale(1.11);
  transform-origin: 62% 50%;
  transition:
    opacity .7s ease,
    clip-path 1.05s cubic-bezier(.16,.8,.2,1),
    transform 1.35s cubic-bezier(.16,.8,.2,1) !important;
}

.premium-v2-visuals figure.is-active {
  z-index: 2;
  opacity: 1;
  clip-path: inset(0);
  transform: translate3d(0,0,0) scale(1.025);
}

.premium-v2.premium-motion-backward .premium-v2-visuals figure:not(.is-active) {
  clip-path: inset(0 8% 0 0);
  transform: translate3d(-3.5%,0,0) scale(1.11);
}

.premium-v2-visuals figure.is-exiting {
  z-index: 1;
  opacity: 0;
  transform: scale(1.075);
}

.premium-v2-visuals figure.is-active img {
  animation: premium-camera-drift 7s cubic-bezier(.2,.65,.3,1) both;
}

.premium-v2-copy article {
  pointer-events: none;
}

.premium-v2-copy article.is-active {
  pointer-events: auto;
}

.premium-v2-copy article.is-active::before {
  animation: premium-card-image-in 1.15s cubic-bezier(.16,.8,.2,1) both;
}

.premium-v2-copy article.is-active::after {
  animation: premium-rule-in .75s .25s cubic-bezier(.16,.8,.2,1) both;
}

.premium-v2-copy article.is-active > span,
.premium-v2-copy article.is-active > h3,
.premium-v2-copy article.is-active > p {
  animation: premium-copy-up .72s cubic-bezier(.16,.8,.2,1) both;
}

.premium-v2-copy article.is-active > span { animation-delay: .18s; }
.premium-v2-copy article.is-active > h3 { animation-delay: .3s; }
.premium-v2-copy article.is-active > p { animation-delay: .44s; }

.premium-v2-copy article.is-exiting {
  opacity: 0 !important;
  transform: translate3d(-34px,0,0) rotate(-.35deg) !important;
}

.premium-v2.premium-motion-backward .premium-v2-copy article.is-exiting {
  transform: translate3d(34px,0,0) rotate(.35deg) !important;
}

.premium-current.is-changing {
  animation: premium-number-flip .62s cubic-bezier(.16,.8,.2,1);
}

.premium-v2-controls > i span {
  transition: width .72s cubic-bezier(.16,.8,.2,1);
}

.premium-v2.premium-pulse::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 26%;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  content: "";
  pointer-events: none;
  transform: translateX(-120%) skewX(-12deg);
  animation: premium-light-sweep 1.1s ease-out both;
}

@keyframes premium-camera-drift {
  from { transform: scale(1.075); }
  to { transform: scale(1.015); }
}

@keyframes premium-card-image-in {
  from { opacity: .35; transform: scale(1.09) translateY(9px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes premium-rule-in {
  from { opacity: 0; transform: translateX(-50%) scaleX(0); }
  to { opacity: 1; transform: translateX(-50%) scaleX(1); }
}

@keyframes premium-copy-up {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes premium-number-flip {
  0% { opacity: 0; transform: translateY(14px) rotateX(-55deg); }
  100% { opacity: 1; transform: translateY(0) rotateX(0); }
}

@keyframes premium-light-sweep {
  0% { opacity: 0; transform: translateX(-120%) skewX(-12deg); }
  28% { opacity: .62; }
  100% { opacity: 0; transform: translateX(520%) skewX(-12deg); }
}

@media (prefers-reduced-motion: reduce) {
  .premium-v2 *,
  .premium-v2::after {
    animation: none !important;
    transition-duration: .01ms !important;
  }
}
