.k-dualface-card {
  position: relative;
  perspective: 100vh;
  overflow: visible;
  z-index: 1;

  --reveal-duration: 4s;
}

.k-dualface-card__frontface {
  position: relative;
  z-index: 3;
  transition: transform 0.4s ease;
  transform-style: preserve-3d;
  backface-visibility: hidden;
}

.k-dualface-card--automatic .k-dualface-card__frontface {
  animation: autoflip-front 8s ease infinite forwards;
}
.k-dualface-card--automatic .k-dualface-card__backface {
  animation: autoflip-back 8s ease infinite forwards;
}

.k-dualface-card--automatic:hover .k-card__random,
.k-dualface-card--automatic:hover .k-dualface-card__backface,
.k-dualface-card--automatic:hover .k-dualface-card__frontface,
.k-dualface-card--automatic:hover .k-dualface-card__timer {
  animation-play-state: paused;
}

@keyframes autoflip-front { 0%,20%,80% { transform: rotateY(0deg); } 25%,75% { transform: rotateY(180deg); } }
@keyframes autoflip-back  { 0%,20%,80% { transform: rotateY(-180deg); } 25%,75% { transform: rotateY(0deg); } }

.k-dualface-card--manual:hover .k-dualface-card__frontface,
.k-dualface-card--flipped .k-dualface-card__frontface {
  transform: rotateY(180deg);
}

.k-dualface-card--manual:hover .k-dualface-card__backface,
.k-dualface-card--flipped .k-dualface-card__backface {
  transform: rotateY(0deg);
}

.k-dualface-card__backface {
  position: absolute;
  /* z-index: 1; */
  transform: rotateY(-180deg);
  transition: transform 0.4s ease;
}

.k-dualface-card__backface {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  /* background-size: 100% 100%; */
  /* background-position: top left; */
  /* transform: translateY(0px) rotateZ(0deg) rotateX(0deg) rotateY(30deg) scale(1.0); */
  /* transform-origin: top right; */
  /* backface-visibility: visible; */
  background-color: rgba(0, 0, 0, 0.5);
}


.k-dualface-card__timer {
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 0.5rem;
  background: color-mix(in srgb, var(--constellation-connector), transparent 50%);
  border-radius: 0.5rem;
  margin-top: 0.5rem;

  animation: countdown 1.7s linear,
             countdown 4s linear,
             dissipate 4s ease forwards;
  animation-iteration-count: 1, 2, 1;
  animation-delay: 0s, 2s, 10s;
}

@keyframes countdown {
    0% { transform: scaleX(1); }
  100% { transform: scaleX(0); }
}

@keyframes dissipate {
    0% { transform: translateY(0); filter: blur(0px); }
   99% { transform: translateY(500%); filter: blur(50px); }
   100% { filter: blur(50px) opacity(0); display: none; }
}