@keyframes revealFromCenter {
  to {
    opacity: 1;
    transform: scaleX(1);
  }
}

.header__logo {
  transform-origin: center;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  transition: transform 0.3s ease;
}

.header__logo__title {
  font-weight: 800;
  font-size: 1.3rem;
  color: #000;
  text-transform: uppercase;
  transition: opacity 0.3s ease-out;
}

.header.compact .header__logo__title {
  opacity: 0;
}

.header__logo-icon {
  position: relative;
  height: 100%;
  min-height: 42px;
  aspect-ratio: 64 / 71;
  width: auto;
  transition: transform 0.3s ease-out;
  transform-origin: center;
}

.header.compact .header__logo-icon {
  transform: scale(1.2);
}

.logo-icon {
  opacity: 0;
  transform: scaleX(0);
  transform-origin: center;
  animation: revealFromCenter 0.6s ease-out forwards;
  position: absolute;
  inset: 0;
  background-size: 200% 200%;
  background-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-mode: alpha;
}

.logo-icon--back {
  animation-delay: 0s;
  background: linear-gradient(90deg, #fcfcfc, #d6e4ef, #f0f2f2);
  -webkit-mask-image: url("../svg/logo-icon-mask-back.svg");
  mask-image: url("../svg/logo-icon-mask-back.svg");
}

.logo-icon--middle {
  animation-delay: 0.2s;
  background: linear-gradient(90deg, #1d71b8, #0078bc, #0088c3);
  -webkit-mask-image: url("../svg/logo-icon-mask-middle.svg");
  mask-image: url("../svg/logo-icon-mask-middle.svg");
}

.logo-icon--end {
  animation-delay: 0.4s;
  background: linear-gradient(90deg, #d50911, #e24210, #ea5b0c);
  -webkit-mask-image: url("../svg/logo-icon-mask-end.svg");
  mask-image: url("../svg/logo-icon-mask-end.svg");
}

.header__logo:hover .header__logo__title {
  transform: scale(1.03);
}

@media (width < 768px) {
  .header__logo__title {
    display: none;
  }
}
