:root {
  --mq-gap: 30px;
  --mq-line-h: 1.5;
}

.marquee {
  width: 100%;
  max-width: 100%;
  display: flex;
  justify-content: start;
  align-items: center;
  font-size: 40px;
  font-weight: 900;
  line-height: var(--mq-line-h);
  overflow: hidden;
}

.marquee * {
  box-sizing: border-box;
}

.marquee.right {
  justify-content: end;
}

.marquee .mq-outer {
  width: max-content;
  display: flex;
}

.marquee .mq-inner {
  width: max-content;
  padding-right: var(--mq-gap);
  display: flex;
  gap: var(--mq-gap);
}

.marquee .mq-cont {
  width: max-content;
  display: block;
}

.marquee .mq-cont img.font-img {
  width: auto;
  height: calc(1em * var(--mq-line-h));
  display: block;
}

.marquee.rotate {
  --rotate-deg: 0;
  --rotate-width: 100vw;

  width: calc(var(--rotate-width));
  transform: rotate(var(--rotate-deg));
  transform-origin: left;
}