@charset "utf-8";

:root {
  --main-cursor-color: #31b3bd;
}
.custom-cursor {
  width: 45px;
  height: 45px;
  position: fixed;
  top: 25px;
  left: 25px;
  z-index: 999999;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50% -50%);
  background: transparent;
  backface-visibility: hidden;
  transition: none;
  pointer-events: none;
}

.custom-cursor-icon {
  position: relative;
  width: 100%;
  height: 100%;
  background-color: transparent;
  transition: all 0.2s ease;
  transform-origin: 50% 50%;
  background-image: url("../img/favicon.png");
  background-repeat: no-repeat;
  background-size: 80% auto;
  background-position: center;
}

.shape {
  position: absolute;
  width: 40px;
  height: 40px;
  transform: scale(0.7);
}
.cir {
  position: absolute;
  border-radius: 50%;
  z-index: 5;
}

.custom-bk-particle {
  width: 90px;
  height: 90px;
  position: absolute;
  border-radius: 50%;
  color: #eee;
  font-family: monospace;
  z-index: 5;
  transform: translate(-50%, -50%);
}

.custom-cursor-icon::after {
  position: absolute;
  content: "";
  clear: both;
  top: -32%;
  left: -32%;
  width: 25px;
  height: 25px;
  background-color: var(--main-cursor-color);
  border-radius: 50%;
  opacity: 0;
}
.custom-cursor.custom_cursor_visible {
  opacity: 1;
}

.custom-cursor.custom_cursor_hidden {
  opacity: 0;
}

@media (pointer: none), (pointer: coarse) {
  #custom_cursor,
  #custom_cursor .custom-cursor-icon {
    display: none !important;
    visibility: hidden;
    opacity: 0;
  }

  * {
    cursor: auto !important;
  }
}

@media all and (max-width: 767.98px) {
  .custom-cursor {
    display: none;
  }
}

.custom-cursor.custom_cursor_hover {
  transition: 0s;
}
.custom-cursor.custom_cursor_hover .custom-cursor-icon::after {
  opacity: 1;
  animation: cursor 1.5s linear infinite;
}

@keyframes cursor {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.1;
    transform: scale(0.3);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
