body {
    animation: theme 21s linear infinite;
    
    &:after,
    &:before {
        content: '';
        display: block;
        position: fixed;
        z-index: -1;
        top: 0;
        width: 100vw;  // IE/Edge
        height: 100vh; // fallback
        width: 100vmax;
        height: 100vmax;
        background: rgba(0,0,0,0.05);
        animation: background 90s linear infinite;
    }

    &:after {
        left: 15vw;
    }

    &:before {
        right: 15vw;
        animation-delay: -30s;
        animation-direction: reverse;
    }
}

@keyframes theme {
    0% {
        background: #74C390;
    }
    
    16% {
        background: #5DBDB6;
    }
    
    33% {
        background: #59D4E1;
    }
    
    50% {
        background: #51BCE8;
    }
    
    66% {
        background: #FA5374;
    }    
    
    83% {
        background: #E46653;
    }

    100% {
        background: #74C390;
    }
}

@keyframes background {
    0% {
        transform: rotate(0deg);
    }
    
    100% {
        transform: rotate(360deg);
    }
}

body, html {
  height: 100%;
  margin: 0;
  font-family: 'Roboto Mono', monospace;
}

.centered-text {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.animated-text {
  font-size: 28px;
  opacity: 0;
  transition: opacity 1s ease-in-out; 
  font-weight: bold;
}

.circle-frame {
  width: 300px;
  height: 300px;
  border-radius: 50%; 
  overflow: hidden; 
  border: 2px solid black;
}

.circle-frame img {
  width: 100%; 
  height: auto;
  display: block;
}