
.cssanimation, .cssanimation span {
  animation-duration: 1s;
  animation-fill-mode: both;
}

.cssanimation span { display: inline-block }

.hu__hu__ { animation: hu__hu__ infinite 2s ease-in-out }
@keyframes hu__hu__ {
  50% { transform: translateY(30px) }
}

.pepe { animation-name: pepe; animation-iteration-count: infinite }
@keyframes pepe {
    from, 33%, 66%, to { transform: rotate(4deg) }
    16%, 50%, 83% { transform: rotate(-4deg) }
}

.pulseShake { animation-name: pulseShake; animation-iteration-count: infinite }
@keyframes pulseShake {
    90% { transform: scale(1) }
    92% { transform: scale(1.2) }
    96% { transform: scale(1, 1) }
    98% { transform: scale(1.1) }
}


.marquee {
  height: 50px;
  overflow: hidden;
  position: relative;
}

.marquee p {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  line-height: 50px;
  text-align: center;
  -moz-transform: translateX(100%);
  -webkit-transform: translateX(100%);
  transform: translateX(100%);
  -moz-animation: scroll-left 2s linear infinite;
  -webkit-animation: scroll-left 2s linear infinite;
  animation: scroll-left 20s linear infinite;
}

@-moz-keyframes scroll-left {
  0% {
      -moz-transform: translateX(100%);
  }
  100% {
      -moz-transform: translateX(-100%);
  }
}

@-webkit-keyframes scroll-left {
  0% {
      -webkit-transform: translateX(100%);
  }
  100% {
      -webkit-transform: translateX(-100%);
  }
}

@keyframes scroll-left {
  0% {
      -moz-transform: translateX(100%);
      -webkit-transform: translateX(100%);
      transform: translateX(100%);
  }
  100% {
      -moz-transform: translateX(-100%);
      -webkit-transform: translateX(-100%);
      transform: translateX(-100%);
  }
}

/* Initial hidden state */
.swing-element {
    opacity: 0;
    transform-origin: left center;
    will-change: transform, opacity;
  }
  
  /* Smooth Swing-in animation */
  @keyframes swingIn {
    0% {
        transform: rotateY(80deg);
        opacity: 0;
    }
    /* 60% {
        transform: rotateY(-10deg);
        opacity: 0.5;
    } */
    100% {
        transform: rotateY(0);
        opacity: 1;
    }
  }
  
  .swing-in {
    animation: swingIn 0.7s cubic-bezier(0.23, 1, 0.32, 1) both;
  }
  

/* Remove swing-out animation as it's no longer needed */
/*
@keyframes swingOut {
  0% {
      transform: rotateY(0deg);
      transform-origin: right;
      opacity: 1;
  }
  100% {
      transform: rotateY(-90deg);
      transform-origin: right;
      opacity: 0;
  }
}

.swing-out {
  animation: swingOut 0.5s cubic-bezier(0.6, -0.3, 0.735, 0.045) both;
}
*/

.rainbow-text {
  background: linear-gradient(
    90deg,
    blue,
    yellow,
    red,
    blue
  );
  background-size: 400%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: rainbow 5s linear infinite;
}

@keyframes rainbow {
  0% {
    background-position: 0%;
  }
  100% {
    background-position: 100%;
  }
}


/* ----------------------------
   Flip Box Container & Common
---------------------------- */
.flip-box-container {
    perspective: 1000px;
    margin-bottom: 30px;
    width: 100%;
    aspect-ratio: 3 / 4; /* responsive height */
    position: relative;
    overflow: hidden;
}

.flip-box {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 15px;
    cursor: pointer;
    transition: transform 0.7s ease-in-out;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25);
    transform-style: preserve-3d;
}

/* Front & Back Faces */
.flip-box-front,
.flip-box-back {
    position: absolute;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    border-radius: 15px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.flip-box-front {
    background-color: var(--bs-body-bg);
}

.flip-box-back {
    background-color: var(--bs-body-bg);
}

/* ----------------------------
   Flip Variant
---------------------------- */
.flip-box-container.flip:hover .flip-box {
    transform: rotateX(180deg); /* flip + subtle zoom  [ transform: rotateX(180deg) scale(1.03); ]*/
}

.flip-box-container.flip .flip-box-back {
    transform: rotateX(180deg);
}

/* ----------------------------
   Slide Variant with Fade
---------------------------- */
.flip-box-container.slide .flip-box-front,
.flip-box-container.slide .flip-box-back {
    transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

.flip-box-container.slide .flip-box-back {
    transform: translateY(100%);
    opacity: 0;
    z-index: 2; /* appear above front */
}

.flip-box-container.slide:hover .flip-box-front {
    transform: translateY(-100%);
}

.flip-box-container.slide:hover .flip-box-back {
    transform: translateY(0);
    opacity: 1;
}

/* ----------------------------
   Icon Styling
---------------------------- */
.flip-icon {
    font-size: 60px;
    margin-bottom: 15px;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.2));
}

/* ----------------------------
   Responsive Adjustments
---------------------------- */
@media (max-width: 768px) {
    .flip-box-container {
        aspect-ratio: 1 / 1; /* square on mobile */
    }

    .flip-icon {
        font-size: 45px;
    }
}

/* Base container */
.wp-block-cover.hover-sadie {
  position: relative;
  overflow: hidden;
  border-radius: 0.5rem;
}

/* Background image transition */
.wp-block-cover.hover-sadie .wp-block-cover__image-background {
  transition: transform 0.4s ease, filter 0.4s ease;
}

/* Inner container respects WP alignment */
.wp-block-cover.hover-sadie .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  /* text-align: center;
  color: #fff;
  padding: 1rem; */
  pointer-events: none; /* keep hover intact */
}

/* Title always visible */
.wp-block-cover.hover-sadie .hover-sadie-title {
  margin: 0;
  transition: transform 0.4s ease;
}

/* Description container initially hidden */
.wp-block-cover.hover-sadie .hover-sadie-desc {
  /* margin-top: 1rem; */
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: auto; /* allow links/buttons inside */
}

/* Hover effects */
.wp-block-cover.hover-sadie:hover .wp-block-cover__image-background {
  transform: scale(1.05);
  filter: brightness(80%);
}

.wp-block-cover.hover-sadie:hover .hover-sadie-title {
  transform: translateY(-10px);
}

.wp-block-cover.hover-sadie:hover .hover-sadie-desc {
  opacity: 1;
  transform: translateY(0);
}
