.fadeInUp {
	animation:fadeInUp 6s ease backwards;
}

@keyframes fadeInUp {
  0% { transform:translate(0px, 100px); opacity: 0; }
  100% {transform:translate(0px, 0); opacity: 1; }
}

.card-img {
  position: relative;
}

.overlay {
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  background-color: #000;
  opacity:0.7;
  overflow: hidden;
  width: 100%;
  height:0;
  transition: .5s ease;
}

.card-img:hover .overlay {
  bottom: 0;
  height: 100%;
}

.text {
  color: white;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  text-align: center;
  width: 100%;
  font-size: 0.9rem;
}

.key_message {
  animation: key_message 1s ease infinite;
}

@keyframes key_message {
  30% { transform: scale(1.2); }
  40%, 60% { transform: rotate(-20deg) scale(1.2); }
  50% { transform: rotate(20deg) scale(1.2); }
  70% { transform: rotate(0deg) scale(1.2); }
  100% { transform: scale(1); }
}

.custom-popover {
  --bs-popover-max-width: 300px;
  --bs-popover-border-color: #2c4964;
  --bs-popover-header-bg: #2c4964;
  --bs-popover-header-color: white;
  --bs-popover-body-padding-x: 1rem;
  --bs-popover-body-padding-y: .5rem;
}

.pulse {
  animation: pulse 1s infinite ease-in-out alternate;
}

@keyframes pulse {
  from { transform: scale(0.8); }
  to { transform: scale(1.2); }
}

.cube {
  background: #069af3;
  width: 35px;
  height: 35px;
  position: relative;
  transform: rotate(360deg);
  text-align: center;
  padding-top: 5px;
  color: white;
  margin-bottom:30px;
  box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}

.cube::before {
  content: '';
  display: inline-block;
  background: #a2cffe;
  width: 35px;
  height: 2px;
  transform: skewX( -80deg);
  position: absolute;
  top: -2px;
  left: 6px;
}

.cube::after {
  content: '';
  display: inline-block;
  background: #308fc9;
  width: 12px;
  height: 35px;
  transform: skewY(-10deg);
  position: absolute;
  top: -1px;
  left: 100%;
}

.cube:hover {
  animation: shake 5s ease ;
}
@keyframes shake {
	0%, 100% {transform: translateX(0);}
	10%, 30%, 50%, 70%, 90% {transform: translateX(-3px);}
	20%, 40%, 60%, 80% {transform: translateX(3px);}
}

.bi-x-circle::before {
    background-color: white;
    border-radius: 50%;
}

.bi-check-circle::before {
    background-color: white;
    border-radius: 50%;
}

.apexcharts-treemap-rect {
	cursor:pointer;
}

.grow {
  animation: grow 2s ease infinite;
}

.grow-slow {
  animation: grow 5s ease infinite;
}

@keyframes grow {
  from { transform: scale(0); }
  to { transform: scale(1); }
}

.pulse {
  animation: pulse 1s infinite ease-in-out alternate;
}
@keyframes pulse {
  from { transform: scale(0.8); }
  to { transform: scale(1.2); }
}

.flash {
  animation: flash 500ms ease infinite alternate;
}
@keyframes flash {
	from { opacity: 1; }	
	to { opacity: 0; }
}

.zoom {
  transition: all .3s ease-in-out;
}

.zoom:hover {
  -ms-transform: translateY(-10px) scale(1.02); /* IE 9 */
  -webkit-transform: translateY(-10px) scale(1.02); /* Safari 3-8 */
  transform: translateY(-10px) scale(1.02);
  border-color: #4c83bb;
}
  
.fade-in-down {
  animation: fade-in-down 2s ease infinite;
}

@keyframes fade-in-down {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-out {
  animation: fade-out 2s linear infinite;
}

@keyframes fade-out {
  from { opacity: 1; }
  to { opacity: 0; }
}

.flip {
  backface-visibility: visible !important;
  animation: flip 2s ease infinite;
}

@keyframes flip {
  0% {
	  transform: perspective(400px) rotateY(0);
	  animation-timing-function: ease-out;
  }
  40% {
	  transform: perspective(400px) translateZ(150px) rotateY(170deg);
	  animation-timing-function: ease-out;
  }
  50% {
	  transform: perspective(400px) translateZ(150px) rotateY(190deg) scale(1);
	  animation-timing-function: ease-in;
  }
  80% {
	  transform: perspective(400px) rotateY(360deg) scale(.95);
	  animation-timing-function: ease-in;
  }
  100% {
	  transform: perspective(400px) scale(1);
	  animation-timing-function: ease-in;
  }
}

 .flip-box1 {
  background-color: transparent;
  width: 250px;
  height: 334px;
  perspective: 1000px;
}

.flip-box1-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: left;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.flip-box1:hover .flip-box1-inner {
  transform: rotateY(180deg);
}

.flip-box1-front, .flip-box1-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.flip-box1-front {
}

.flip-box1-front::after {
	content: '';
    position: absolute;
    top: 0;
    left: 10px;
    bottom: 0;
    width: 3px;
    background: rgba(0,0,0,0.06);
    box-shadow: 1px 0 3px rgba(255, 255, 255, 0.1);
}

.flip-box1-back {
  background-color: #1b496d;
  color: white;
  transform: rotateY(180deg);
  padding:20px 30px 20px 30px;
  overflow-y: scroll;
  border-radius:3px;
}

.flip-box1-back::after {
	content: '';
    position: absolute;
    top: 0;
    left: 10px;
    bottom: 0;
    width: 3px;
    background: rgba(0,0,0,0.06);
    box-shadow: 1px 0 3px rgba(255, 255, 255, 0.1);
}

.flip-box1-back::-webkit-scrollbar {
    display: none;
}

.flip-box2 {
  background-color: transparent;
  width: 250px;
  height: 334px;
  perspective: 1000px;
}

.flip-box2-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: left;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.flip-box2:hover .flip-box2-inner {
  transform: rotateY(180deg);
}

.flip-box2-front, .flip-box2-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.flip-box2-front {
}

.flip-box2-front::after {
	content: '';
    position: absolute;
    top: 0;
    left: 10px;
    bottom: 0;
    width: 3px;
    background: rgba(0,0,0,0.06);
    box-shadow: 1px 0 3px rgba(255, 255, 255, 0.1);
}

.flip-box2-back {
  background-color: #e42c7e;
  color: white;
  transform: rotateY(180deg);
  padding:20px 30px 20px 30px;
  overflow-y: scroll;
}

.flip-box2-back::after {
	content: '';
    position: absolute;
    top: 0;
    left: 10px;
    bottom: 0;
    width: 3px;
    background: rgba(0,0,0,0.06);
    box-shadow: 1px 0 3px rgba(255, 255, 255, 0.1);
}

.flip-box2-back::-webkit-scrollbar {
    display: none;
}

.book {
  transform-style: preserve-3d;
  position: relative;
  height: 244px;
  cursor: pointer;
  backface-visibility: visible;
  margin-top:20px;
  margin-bottom:20px;
}

.front, .back, .page1, .page2, .page3, .page4, .page5, .page6 {
  transform-style: preserve-3d;
  position: absolute;
  width: 200px;
  height: 100%;
  top: 0; 
  right: 10%;
  transform-origin: left center;
  transition: transform .5s ease-in-out, box-shadow .35s ease-in-out;
}

.front h2 {
  color: white;
  font-weight: bold;
  top: 39%;
  position: absolute;
  left: 15%;
}

.front, .back {
  background: #0c5599;
}

.front, .page1, .page3, .page5 {
  border-bottom-right-radius: .5em;
  border-top-right-radius: .5em;
}

.back, .page2, .page4, .page6 {
  border-bottom-right-radius: .5em;
  border-top-right-radius: .5em;
}

.page1 { 
  background: #efefef;
}

.page2 {
  background: #efefef;
}

.page3 {
  background: #f5f5f5;
}

.page4 {
  background: #f5f5f5;
}

.page5 {
  background: #fafafa;
}

.page6 {
  background: #fdfdfd;
}

.book:hover .front {
  transform: rotateY(-160deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .page1 {
  transform: rotateY(-150deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .page2 {
  transform: rotateY(-30deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .page3 {
  transform: rotateY(-140deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .page4 {
  transform: rotateY(-40deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .page5 {
  transform: rotateY(-130deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .page6 {
  transform: rotateY(-50deg) scale(1.1);
  box-shadow: 0 1em 3em 0 rgba(0, 0, 0, .2);
}

.book:hover .back {
  transform: rotateY(-20deg) scale(1.1);
}

.shakes:hover {
  animation: shake 0.9s;
  animation-iteration-count: infinite;
}

@keyframes shake {
  0% { transform: translate(1px, 1px) rotate(0deg); }
  10% { transform: translate(-1px, -2px) rotate(-1deg); }
  20% { transform: translate(-3px, 0px) rotate(1deg); }
  30% { transform: translate(3px, 2px) rotate(0deg); }
  40% { transform: translate(1px, -1px) rotate(1deg); }
  50% { transform: translate(-1px, 2px) rotate(-1deg); }
  60% { transform: translate(-3px, 1px) rotate(0deg); }
  70% { transform: translate(3px, 1px) rotate(-1deg); }
  80% { transform: translate(-1px, -1px) rotate(1deg); }
  90% { transform: translate(1px, 2px) rotate(0deg); }
  100% { transform: translate(1px, -2px) rotate(-1deg); }
}