body {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 32px;
  height: calc(100vh - 32px - 32px);
}

/**
 * Layout
 */

.layout {
  display: flex;
  align-items: flex-start;
  gap: 74px;
}

/**
 * Avatar section
 */

.avatar {
  position: relative;
  width: calc(128px + 4px);
  height: calc(128px + 4px);
  padding: 4px;
  border-radius: 50%;
  overflow: hidden;
}

/* conic background with rotation */
.avatar::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: -1;
  border-radius: 50%;
  background: conic-gradient(
    hsla(79, 99%, 55%, 1),
    hsla(133, 93%, 49%, 1),
    hsla(227, 81%, 75%, 1),
    hsla(263, 100%, 49%, 1),
    hsla(0, 96%, 55%, 1),
    hsla(79, 99%, 55%, 1)
  );
  transform: rotate(0deg);
  animation: rotate-avatar-border 25s linear infinite;
}

.avatar_image {
  background-color: white;
  border: 2px solid white;
  border-radius: 50%;
  overflow: hidden;
  transform: translate(0);
}

.avatar-gap {
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  position: absolute;
  transform: rotate(0);
  animation: rotate-avatar-gap 15s linear infinite;
}

.avatar-gap_item {
  box-sizing: border-box;
  border: 12px solid white;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg) scale(1);
  animation: scale-gap-item 10s alternate linear infinite;
}

.avatar-gap_item:nth-child(1) {
  left: 0;
}

.avatar-gap_item:nth-child(1) {
  left: 100%;
  animation-delay: 5s;
}

@keyframes scale-gap-item {
  from {
    width: 100%;
    height: 100%;
  }
  to {
    width: 45%;
    height: 45%;
  }
}

@keyframes rotate-avatar-gap {
  from {
    transform: translate(-50%, -50%) rotate(0);
  }
  to {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}

@keyframes rotate-avatar-border {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/**
 * Content section
 */

h1 {
  font-style: normal;
  font-weight: 700;
  line-height: 145%;
  margin: 0;
}

.andrey {
  color: #fa2e2e;
}

.yandex {
  color: #476ef6;
}

/**
 * Contacts
 */

.contacts {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 32px;
}

.contacts-item {
  display: flex;
  align-items: center;
  gap: 18px;
  text-decoration: none;
}

.contacts-item > svg {
  width: 24px;
  transform: translateY(1px);
}

.contacts-item_text {
  font-size: 24px;
  font-style: normal;
  font-weight: 500;
  line-height: 100%; /* 24px */
}

.contacts-item_text--email {
  color: #fa2e2e;
}

.contacts-item_text--telegram {
  color: #2bacef;
}

.contacts-item_text--linkedin {
  color: #2867b2;
}

/**
 * Ko-fi
 */

body > div[id^=kofi],
.floatingchat-container-wrap,
.floatingchat-container-wrap-mobi {
  position: absolute;
}

/**
 * Mobile
 */

@media (max-width: 768px) {
  body {
    align-items: flex-start;
    height: auto;
  }

  .layout {
    flex-direction: column;
    gap: 36px;
  }

  br {
    display: none;
  }

  h1 {
    font-size: 1.75em;
  }

  .contacts-item_text {
    font-size: 1.25em;
  }

  .contacts-item > svg {
    width: 18px;
    height: 18px;
  }
}
