:root {
  --size: 500px;
  --speed: 20s;
  --easing: ease-in-out;
}

@keyframes heartbeat {
  0%, 100% {
    width: var(--size);
    height: var(--size);
    filter: blur(calc(var(--size) / 5));
  }
  50% {
    width: calc(var(--size) * 1.5);
    height: calc(var(--size) * 1.5);
    filter: blur(calc(calc(var(--size) * 1.1) / 5));
  }
}

.gradient {
  position: fixed;
  top: 40%;
  left: 20%;
  transform: translate(-50%, -50%);
  width: var(--size);
  height: var(--size);
  filter: blur(calc(var(--size) / 5));
  background-image: linear-gradient(
    #eccccc, 
    #e6cfad
  );
  animation: rotate var(--speed) var(--easing) alternate infinite,
             heartbeat 2s ease-in-out infinite;
  border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
  pointer-events: none;
  z-index: -1;
}



@media (min-width: 720px) {
  .gradient {
    --size: 500px;
  }
}

body {
  background-color: #ffffff;
  margin: 0;
  padding: 0;
  min-height: 100vh;
  overflow-x: hidden;
}

* {
  transition: all 0.5s ease-out;
}


@media (min-width: 720px) {
  .gradient {
    --size: 500px;
  }
}

body {
  background-color: #ffffff;
  margin: 0;
  padding: 0;
  min-height: 100vh;
  overflow-x: hidden;
}

* {
  transition: all 0.5s ease-out;
}
