<script setup lang="ts"></script>
<template>
  <div class="content fit center">
    <div class="container">
      <div class="text" style="--j: 0">
        <span style="--i: 0">2</span>
        <span style="--i: 1">你</span>
        <span style="--i: 2">4</span>
        <span style="--i: 3">5</span>
      </div>
      <div class="text" style="--j: 1">
        <span style="--i: 0">0</span>
        <span style="--i: 1">好</span>
        <span style="--i: 2">2</span>
        <span style="--i: 3">3</span>
      </div>
      <div class="text" style="--j: 2">
        <span style="--i: 0">2</span>
        <span style="--i: 1">明</span>
        <span style="--i: 2">4</span>
        <span style="--i: 3">5</span>
      </div>
      <div class="text" style="--j: 3">
        <span style="--i: 0">2</span>
        <span style="--i: 1">天</span>
        <span style="--i: 2">4</span>
        <span style="--i: 3">5</span>
      </div>
    </div>
  </div>
</template>
<style lang="scss" scoped>
.content {
  background: #3d3d3d;
  font-family: 'Impact', sans-serif;
}
.container {
  display: flex;
  transform-style: preserve-3d;
  gap: 10px;
  transform: rotateY(30deg) rotateX(10deg);
  .text {
    position: relative;
    width: 100px;
    height: 100px;
    transform-style: preserve-3d;
    transition: 2.5s ease-in-out;
    transition-delay: calc(0.25s * var(--j));
    span {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: linear-gradient(#434343, #535353);
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 4em;
      color: #fff;
      transform-style: preserve-3d;
      transform: rotateX(calc(90deg * var(--i))) translateZ(50px);
    }
    &::before {
      content: '';
      position: absolute;
      width: 100%;
      height: 100%;
      background: #373737;
      transform-origin: left;
      transform: rotateY(90deg) translateX(-50px);
    }
    &:last-child {
      span {
        background: linear-gradient(#29c040, #32ed4e);
        color: #333;
      }
      &::before {
        background: #29ab3c;
      }
    }
  }
  &:hover {
    .text {
      transform: rotateX(-450deg);
      &:last-child {
        transform: rotateX(630deg);
      }
    }
  }
}
</style>