@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,400');

html, body {
  background: #fff;
  font-family: 'Open Sans', sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
}

/* Responsive Circle */
#circle {
  width: 150px; /* Adjusted for better mobile scaling */
  height: 150px;
  background: linear-gradient(-45deg, #bbbcbc, #F3F3F3, #bbbcbc);
  background-size: 400% 400%;
	-webkit-animation: Gradient 5s ease infinite;
	-moz-animation: Gradient 5s ease infinite;
	animation: Gradient 5s ease infinite;
	-moz-border-radius: 50vh;
	-webkit-border-radius: 50pvh;
  border-radius: 50vh;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin: 20px auto;
}

@-webkit-keyframes Gradient {
	0% {
		background-position: 0% 50%
	}
	50% {
		background-position: 100% 50%
	}
	100% {
		background-position: 0% 50%
	}
}

@-moz-keyframes Gradient {
	0% {
		background-position: 0% 50%
	}
	50% {
		background-position: 100% 50%
	}
	100% {
		background-position: 0% 50%
	}
}

@keyframes Gradient {
	0% {
		background-position: 0% 50%
	}
	50% {
		background-position: 100% 50%
	}
	100% {
		background-position: 0% 50%
	}
}

.S {
  width: 60px;
  height: 60px;
}

/* Responsive Text */
.text {
  position: relative;
  width: 400px; /* Allows text to adjust to smaller screens */
  /*max-width: 400px;*/
  text-align: center;
  color: #000;
  margin: auto;
}

.theme-dark .text {
  color: #fff;
}

h1 {
  font-size: 1.5em; /* Adjusted for mobile readability */
  text-align: center;
}

.words-wrapper {
  display: inline-block;
  position: relative;
  text-align: center;

  b {
  opacity:0;
  display: inline-block;
  position: absolute;
  white-space: nowrap;
  left: 0;
  top: 0;
  font-weight:200;
  }

  .is-visible {
    position:relative;
    opacity:1;
    -webkit-animation: push-in 0.5s;
    -moz-animation: push-in 0.5s;
    animation: push-in 0.5s;
  }

  .is-hidden {
    -webkit-animation: push-out 0.5s;
    -moz-animation: push-out 0.5s;
    animation: push-out 0.5s;
  }
}

@-webkit-keyframes push-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
  }
  70% {
    opacity: 1;
    -webkit-transform: translateY(10%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
  }
}
@-moz-keyframes push-in {
  0% {
    opacity: 0;
    -moz-transform: translateY(-100%);
  }
  60% {
    opacity: 1;
    -moz-transform: translateY(10%);
  }
  100% {
    opacity: 1;
    -moz-transform: translateY(0);
  }
}
@keyframes push-in {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-100%);
    -moz-transform: translateXY(-100%);
    -ms-transform: translateY(-100%);
    -o-transform: translateY(-100%);
    transform: translateY(-100%);
  }
  60% {
    opacity: 1;
    -webkit-transform: translateY(10%);
    -moz-transform: translateY(10%);
    -ms-transform: translateY(10%);
    -o-transform: translateY(10%);
    transform: translateY(10%);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
}
@-webkit-keyframes push-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
  }
  60% {
    opacity: 0;
    -webkit-transform: translateY(110%);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
  }
}
@-moz-keyframes push-out {
  0% {
    opacity: 1;
    -moz-transform: translateY(0);
  }
  60% {
    opacity: 0;
    -moz-transform: translateY(110%);
  }
  100% {
    opacity: 0;
    -moz-transform: translateY(100%);
  }
}
@keyframes push-out {
  0% {
    opacity: 1;
    -webkit-transform: translateY(0);
    -moz-transform: translateY(0);
    -ms-transform: translateY(0);
    -o-transform: translateY(0);
    transform: translateY(0);
  }
  60% {
    opacity: 0;
    -webkit-transform: translateX(110%);
    -moz-transform: translateY(110%);
    -ms-transform: translateY(110%);
    -o-transform: translateY(110%);
    transform: translateY(110%);
  }
  100% {
    opacity: 0;
    -webkit-transform: translateY(100%);
    -moz-transform: translateY(100%);
    -ms-transform: translateY(100%);
    -o-transform: translateY(100%);
    transform: translateY(100%);
  }
}

/* Responsive Adjustments */
@media (max-width: 600px) {
  #circle {
    width: 120px;
    height: 120px;
  }

  .S {
    width: 50px;
    height: 50px;
  }

  .text {
    width: 95%;
  }

  h1 {
    font-size: 1em;
  }
}
