:root {
    --card-height: 300px;
    --card-width: calc(var(--card-height) / 1.5);
  }

  .flip {
    display: flex;
    justify-content: center; /* Center horizontally */
    align-items: center; /* Center vertically */
    height: 500px; /* Fixed height for the flip section */
    gap: 20px; /* Space between cards */
    background-color: transparent; /* Background color for the flip section */
    font-family: Arial, sans-serif; /* Font family */
  }

  .card {
    width: var(--card-width);
    height: var(--card-height);
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    padding: 0 36px;
    perspective: 2500px;
    margin: 0 20px; /* Reduced margin for smaller screens */
    border-radius: 5px;
  }

  .cover-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 5px;
  }

  .wrapper {
    transition: all 0.5s;
    position: absolute;
    width: 100%;
    z-index: -1;
    border-radius: 5px;
  }

  .card:hover .wrapper {
    transform: perspective(900px) translateY(-5%) rotateX(25deg) translateZ(0);
    box-shadow: 2px 35px 32px -8px rgba(0, 0, 0, 0.75);
    -webkit-box-shadow: 2px 35px 32px -8px rgba(0, 0, 0, 0.75);
    -moz-box-shadow: 2px 35px 32px -8px rgba(0, 0, 0, 0.75);
    border-radius: 5px;
  }

  .wrapper::before,
  .wrapper::after {
    content: "";
    opacity: 0;
    width: 100%;
    height: 80px;
    transition: all 0.5s;
    position: absolute;
    left: 0;
    border-radius: 5px;
  }

  .wrapper::before {
    top: 0;
    height: 100%;
    background-image: linear-gradient(
      to top,
      transparent 46%,
      rgba(12, 13, 19, 0.5) 68%,
      rgba(12, 13, 19) 97%
    );
    border-radius: 5px;
  }

  .wrapper::after {
    bottom: 0;
    opacity: 1;
    background-image: linear-gradient(
      to bottom,
      transparent 46%,
      rgba(12, 13, 19, 0.5) 68%,
      rgba(12, 13, 19) 97%
    );
    border-radius: 5px;
  }

  .card:hover .wrapper::before,
  .wrapper::after {
    opacity: 1;
  }

  .card:hover .wrapper::after {
    height: 120px;
  }

  .title {
    width: 100%;
    transition: transform 0.5s;
  }

  .card:hover .title {
    transform: translate3d(0%, -50px, 100px);
  }

  .character {
    width: 100%;
    opacity: 0;
    transition: all 0.5s;
    position: absolute;
    z-index: -1;
  }

  .card:hover .character {
    opacity: 1;
    transform: translate3d(0%, -30%, 100px);
  }

  /* Responsive Styles */
  @media (max-width: 768px) {
    :root {
      --card-height: 200px; /* Smaller card height for tablets and mobiles */
    }

    .flip {
      flex-direction: column; /* Stack cards vertically on smaller screens */
      height: auto; /* Auto height to fit content */
      padding: 20px 0; /* Add padding for spacing */
    }

    .card {
      margin: 20px 0; /* Add vertical spacing between cards */
    }

    .card:hover .wrapper {
      transform: perspective(900px) translateY(-5%) rotateX(15deg) translateZ(0); /* Reduce rotation for smaller screens */
    }

    .card:hover .title {
      transform: translate3d(0%, -30px, 80px); /* Adjust title movement */
    }

    .card:hover .character {
      transform: translate3d(0%, -20%, 80px); /* Adjust character movement */
    }
  }

  @media (max-width: 480px) {
    :root {
      --card-height: 150px; /* Even smaller card height for mobile devices */
    }

    .card {
      padding: 0 20px; /* Reduce padding for smaller screens */
    }

    .card:hover .wrapper {
      transform: perspective(900px) translateY(-5%) rotateX(10deg) translateZ(0); /* Further reduce rotation */
    }

    .card:hover .title {
      transform: translate3d(0%, -20px, 60px); /* Further adjust title movement */
    }

    .card:hover .character {
      transform: translate3d(0%, -15%, 60px); /* Further adjust character movement */
    }
  }