/**
  * @prop --ino-avatar-size: Width and height of the ino-avatar
  */
@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(60deg);
  }
}
@keyframes rotateBack {
  0% {
    transform: rotate(60deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.ino-avatar {
  --avatar-size: var(--ino-avatar-size, 138px);
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--avatar-size);
  height: var(--avatar-size);
  color: #4655ff;
  font-size: calc(var(--avatar-size) * 0.3);
  font-weight: 600;
  position: relative;
}
.ino-avatar--interactive {
  cursor: pointer;
}
.ino-avatar--interactive .ino-avatar__image::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(76, 105, 201, 0.2);
  border-radius: 50%;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}
.ino-avatar--interactive .ino-avatar__image:hover::after,
.ino-avatar--interactive .ino-avatar__image:focus::after {
  opacity: 1;
}
.ino-avatar--interactive .ino-avatar__border path,
.ino-avatar--interactive .ino-avatar__border circle {
  stroke-width: 2%;
  transition: stroke-width 0.3s ease-in-out;
}
.ino-avatar--interactive.ino-avatar--solid:hover .ino-avatar__border path,
.ino-avatar--interactive.ino-avatar--solid:hover .ino-avatar__border circle, .ino-avatar--interactive.ino-avatar--solid:focus .ino-avatar__border path,
.ino-avatar--interactive.ino-avatar--solid:focus .ino-avatar__border circle, .ino-avatar--interactive.ino-avatar--dashed:hover .ino-avatar__border path,
.ino-avatar--interactive.ino-avatar--dashed:hover .ino-avatar__border circle, .ino-avatar--interactive.ino-avatar--dashed:focus .ino-avatar__border path,
.ino-avatar--interactive.ino-avatar--dashed:focus .ino-avatar__border circle {
  stroke-width: 4%;
}
.ino-avatar--interactive.ino-avatar--solid:hover .ino-avatar__image-inner::after, .ino-avatar--interactive.ino-avatar--solid:focus .ino-avatar__image-inner::after, .ino-avatar--interactive.ino-avatar--dashed:hover .ino-avatar__image-inner::after, .ino-avatar--interactive.ino-avatar--dashed:focus .ino-avatar__image-inner::after {
  opacity: 1;
}
.ino-avatar--interactive.ino-avatar--dashed:hover .ino-avatar__border, .ino-avatar--interactive.ino-avatar--dashed:focus .ino-avatar__border {
  transform: rotate(60deg);
}
.ino-avatar__icon-slot {
  position: absolute;
  background: white;
  border-radius: 50%;
  width: calc(var(--avatar-size) * 0.26);
  height: calc(var(--avatar-size) * 0.26);
  bottom: 0;
  right: 0;
  box-shadow: 0px 0px 15px -10px #4655ff;
  display: flex;
  justify-content: center;
  align-items: center;
}
.ino-avatar__icon-slot ino-icon {
  --ino-icon-height: calc(var(--avatar-size) * 0.18);
  --ino-icon-width: calc(var(--avatar-size) * 0.18);
}

.ino-avatar__image {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 87%;
  height: 87%;
  border-radius: 50%;
  box-sizing: border-box;
  position: relative;
  justify-content: center;
}
.ino-avatar__image.initials {
  background: #e2ecff;
}
.ino-avatar__image .skeleton-loader {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  height: 100%;
  width: 100%;
  background-color: #dddbdd;
  overflow: hidden;
  z-index: 10;
  display: flex;
  justify-content: center;
  align-items: center;
}
.ino-avatar__image .skeleton-loader::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  transform: translateX(-100%);
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));
  animation: shimmer 5s infinite;
}
@keyframes shimmer {
  100% {
    transform: translateX(100%);
  }
}

.ino-avatar__image-inner {
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 50%;
  position: relative;
}

.ino-avatar__border {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  will-change: transform, stroke-width;
  transform: rotate(0deg);
  transition: transform 250ms ease-in-out;
}
.ino-avatar__border svg {
  overflow: visible;
}
.ino-avatar__border path,
.ino-avatar__border circle {
  stroke-width: 2%;
  transition: stroke-width 0.3s ease-in-out;
}
.ino-avatar--loading .ino-avatar__border path,
.ino-avatar--loading .ino-avatar__border circle {
  stroke: #dddbdd;
}