.sponsor-wrapper {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  margin: 8px 0 4px;
}

.sponsor-title {
  font-size: 18px;
  letter-spacing: 2px;
  color: var(--color-link);
  opacity: 0.8;
  text-decoration: none;
  transition: opacity 0.2s;
  display: block;
  padding: 10px 0;
  font-weight: 700;
  user-select: none;
  word-break: break-word;
}

.sponsor-icon {
  width: 30px;
  margin: 0 10px;
  opacity: 0.8;

  &.rotate {
    animation: rotate-all 3s linear infinite;
  }
}

if (hexo-config('sponsor.icon.mask')) {
  @supports (-webkit-mask: var(--sponsor-icon) no-repeat center / 80%) {
    .sponsor-icon {
      background-color: var(--red-1);
      -webkit-mask: var(--sponsor-icon) no-repeat center / 80%;
    }
  }

  @supports (mask: var(--sponsor-icon) no-repeat center / 80%) {
    .sponsor-icon {
      background-color: var(--red-1);
      mask: var(--sponsor-icon) no-repeat center / 80%;
    }
  }

  @supports not ( (mask: var(--sponsor-icon) no-repeat center / 80%) and (-webkit-mask: var(--sponsor-icon) no-repeat center / 80%) ) {
    .sponsor-icon {
      background: var(--sponsor-icon) no-repeat center / 80%;
    }
  }
} else {
  .sponsor-icon {
    background: var(--sponsor-icon) no-repeat center / 80%;
  }
}

.sponsor-button {
  margin: 8px 48px;
  display: flex;
  position: relative;
  width: fit-content;
  justify-content: center;
  border: 10px var(--color-red-3-shadow) double;
  transition: border 0.5s;
  cursor: var(--cursor-pointer) !important;

  &:hover {
    border-color: var(--color-h2-after);
  }

  &:hover + .sponsor-tip {
    opacity: 0.8;
  }

  &.active {
    border-color: var(--color-h2-after);
  }
}

.sponsor-tip {
  transition: opacity 0.2s;
  color: var(--color-link);
  opacity: 0;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;

  &.active {
    opacity: 0.8;
  }
}

.sponsor-qr {
  display: flex;
  interpolate-size: allow-keywords;
  gap: 4px;
  width: 100%;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 8px;
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  opacity: 0;
  transform: translateY(-10px);

  &.active {
    height: auto;
    opacity: 1;
    transform: translateY(0);
  }
}

.sponsor-qr-image-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sponsor-qr-name {
  font-size: 14px;
  opacity: 0.9;
  color: var(--color-default);
  margin-top: 8px;
}
