.marchingBand {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  top: 22px;
  overflow: hidden;
  user-select: none;
  pointer-events: none;
}
.army-gathering {
  position: absolute;
  bottom: 22px;
  left: 22px;
  right: 22px;
}
.person {
  position: absolute;
  width: 80px;
  height: 80px;
  background-size: contain;
  background-position: bottom center;
  background-repeat: no-repeat;
  transform-origin: bottom center;
}
.marchingGroup {
  position: absolute;
  left: 0;
  bottom: 84px;
  animation: marching 20s linear;
  width: 200px;
  & > div {
    position: absolute;
  }
  & > div:nth-child(1) {
    left: 30px;
    animation:
      marchingPerson 20s linear,
      marchingPersonSkew 1s ease infinite,
      marchingPersonLeft1 20s linear;
  }
  & > div:nth-child(2) {
    left: 0px;
    animation:
      marchingPerson 20s linear,
      marchingPersonSkew 1s ease infinite;
  }
  & > div:nth-child(3) {
    left: -30px;
    animation:
      marchingPerson 20s linear,
      marchingPersonSkew 1s ease infinite,
      marchingPersonLeft3 20s linear;
  }
  & > div:nth-child(4) {
    left: 60px;
    animation:
      marchingPerson 20s linear,
      marchingPersonSkew 1s ease infinite,
      marchingPersonLeft4 20s linear;
  }
}
.tavern_keeper {
  background-image: url("/roles/tavern-keeper.svg");
}
.alchemist {
  background-image: url("/roles/alchemist.svg");
}
.archer {
  background-image: url("/roles/archer.svg");
}
.cleric {
  background-image: url("/roles/cleric.svg");
}
.druid {
  background-image: url("/roles/druid.svg");
}
.dwarf {
  background-image: url("/roles/dwarf.svg");
}
.monk {
  background-image: url("/roles/monk.svg");
}
.necromancer {
  background-image: url("/roles/necromancer.svg");
}
.paladin {
  background-image: url("/roles/paladin.svg");
}
.ranger {
  background-image: url("/roles/ranger.svg");
}
.rogue {
  background-image: url("/roles/rogue.svg");
}
.scribe {
  background-image: url("/roles/scribe.svg");
}
.warrior {
  background-image: url("/roles/warrior.svg");
}
.wizard {
  background-image: url("/roles/wizard.svg");
}
.healer {
  background-image: url("/roles/healer.svg");
}
.hunter {
  background-image: url("/roles/hunter.svg");
}

.moloch_denier {
  filter: sepia(0.1);
}
.apprentice {
}
.anointed {
  filter: saturate(1.1);
}
.champion {
  filter: saturate(2);
}

.armyUnits {
  position: absolute;
  bottom: 22px;
  left: 22px;
  right: 22px;
  height: 180px;
  display: flex;
  justify-content: center;
  align-items: center;

  @media only screen and (max-width: 600px) {
    left: 10px;
    bottom: 5px;
    overflow: auto;
  }
}
.armyUnit {
  @media only screen and (max-width: 600px) {
    transform: scale(0.75);
  }
  position: relative;
  height: 100%;
  width: 120px;
  margin-right: 20px;
  .person {
    &.isShrouded {
      filter: brightness(0);
    }
  }
  &.isUnavailable {
    filter: sepia(1);
    pointer-events: none;
  }
  &:hover {
    .unitProfit {
      display: block;
    }
  }
}
.uiElement {
  width: fit-content;
  position: absolute;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.89);
  padding: 0.1rem 1rem;
  font-size: 0.8rem;
  user-select: none;
  text-align: center;
}
.unitSupply {
  top: -30px;
  right: 0;
  left: 2rem;
  white-space: nowrap;
}
.unitName {
  left: 0;
  right: 0;
  bottom: 45px;
  white-space: nowrap;
}
.unitPrice {
  left: 0;
  right: 0;
  bottom: 25px;
  white-space: nowrap;
}
.unitProfit {
  left: 0;
  right: 0;
  bottom: 5px;
  display: none;
}
.static {
  width: 110px;
  height: 110px;
  transition: all 100ms cubic-bezier(0.265, 1.4, 0.68, 1.65);
  &:not(.locked) {
    cursor: pointer;
  }
  &:hover {
    transform: scale(1.08, 1.08);
  }
  &:active {
    transform: scale(1.2, 1.2);
  }
}
.static.tavern_keeper {
  right: 130px;
  bottom: 160px;
  width: 90px;
  height: 90px;
  user-select: none;
  .pixelQuote {
    min-width: 200px;
    width: fit-content;
    max-width: 300px;
    color: black;
    font-size: 0.7rem;
    line-height: 0.9rem;
    position: absolute;
    bottom: 5.5rem;
    left: -70px;
    right: 0;
    padding: 0.7rem;
    transition: opacity 1s ease-in-out;
    box-shadow: 0px 5px 10px 5px rgba(0, 0, 0, 0.4);
  }

  @media only screen and (max-width: 600px) {
    right: 60px;
  }
}
.static.moloch_denier {
  background-image: url("/roles/scribe2.png");
}
.static.apprentice {
  background-image: url("/roles/druid2.png");
}
.static.anointed {
  background-image: url("/roles/ranger2.png");
}
.static.champion {
  background-image: url("/roles/warrior2.png");
}

@keyframes marching {
  0% {
    transform: translate(-100px, -84px);
  }
  8% {
    /* approaches fire */
    transform: translate(72px, -84px);
  }
  15% {
    /* approaches road */
    transform: translate(152px, -174px);
  }
  25% {
    /* first road turn */
    transform: translate(122px, -284px);
  }
  45% {
    /* second road turn */
    transform: translate(256px, -374px);
  }
  75% {
    /* third road turn */
    transform: translate(159px, -416px);
  }
  100% {
    /* vanishes into distance */
    transform: translate(180px, -425px);
  }
}

@media only screen and (max-width: 600px) {
  @keyframes marching {
    0% {
      transform: translate(-54px, -59px); /* -100px scaled to ~-54px */
    }
    8% {
      /* approaches fire */
      transform: translate(15px, -100px); /* 72px scaled to ~39px */
    }
    15% {
      /* approaches road */
      transform: translate(82px, -123px); /* 152px scaled to ~82px */
    }
    25% {
      /* first road turn */
      transform: translate(66px, -200px); /* 122px scaled to ~66px */
    }
    45% {
      /* second road turn */
      transform: translate(138px, -264px); /* 256px scaled to ~138px */
    }
    75% {
      /* third road turn */
      transform: translate(86px, -293px); /* 159px scaled to ~86px */
    }
    100% {
      /* vanishes into distance */
      transform: translate(97px, -300px); /* 180px scaled to ~97px */
    }
  }
}



@keyframes marchingPerson {
  0% {
    background-size: 100% 100%;
  }
  8% {
    /* approaches fire */
  }
  15% {
    /* approaches road */
    background-size: 95% 95%;
  }
  25% {
    /* first road turn */
    background-size: 80% 80%;
  }
  45% {
    /* second road turn */
    background-size: 65% 65%;
  }
  75% {
    /* third road turn */
    background-size: 15% 15%;
  }
  100% {
    /* vanishes into distance */
    background-size: 2% 2%;
  }
}

@keyframes marchingPersonLeft1 {
  0% {
    left: 30px;
  }
  15% {
    /* approaches road */
    left: calc(30px * 0.95);
  }
  25% {
    /* first road turn */
    left: calc(30px * 0.8);
  }
  45% {
    /* second road turn */
    left: calc(30px * 0.65);
  }
  75% {
    /* third road turn */
    left: calc(30px * 0.15);
  }
  100% {
    /* vanishes into distance */
    left: calc(30px * 0.02);
  }
}

@keyframes marchingPersonLeft3 {
  0% {
    left: -30px;
  }
  15% {
    /* approaches road */
    left: calc(-30px * 0.95);
  }
  25% {
    /* first road turn */
    left: calc(-30px * 0.8);
  }
  45% {
    /* second road turn */
    left: calc(-30px * 0.65);
  }
  75% {
    /* third road turn */
    left: calc(-30px * 0.15);
  }
  100% {
    /* vanishes into distance */
    left: calc(-30px * 0.02);
  }
}

@keyframes marchingPersonLeft4 {
  0% {
    left: 60px;
  }
  15% {
    /* approaches road */
    left: calc(60px * 0.95);
  }
  25% {
    /* first road turn */
    left: calc(60px * 0.8);
  }
  45% {
    /* second road turn */
    left: calc(60px * 0.65);
  }
  75% {
    /* third road turn */
    left: calc(60px * 0.15);
  }
  100% {
    /* vanishes into distance */
    left: calc(60px * 0.02);
  }
}

@keyframes marchingPersonSkew {
  0%,
  100% {
    transform: skew(0deg, 0deg);
  }
  25% {
    transform: skew(5deg, -5deg);
  }
  50% {
    transform: skew(0deg, 0deg);
  }
  75% {
    transform: skew(-5deg, 5deg);
  }
}
