
@font-face {
  font-family: 'Dosis';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('./fonts/dosis-400.woff2') format('woff2')
}
@font-face {
  font-family: 'Dosis';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('./fonts/dosis-700.woff2') format('woff2')
}
:root {
  --pixel-size: 4;

  --juniora-h: 56px
}
@media (max-width: 540px) {
  :root {
    --pixel-size: 3
  }
}
@media (max-width: 380px) {
  :root {
    --pixel-size: 2.5
  }
}

.PixelArtImage {
  image-rendering: -moz-crisp-edges;
  image-rendering: -webkit-crisp-edges;
  -ms-interpolation-mode: nearest-neighbor;
  image-rendering: pixelated;
  image-rendering: crisp-edges
}

.Character {
  width: calc(var(--pixel-size) * 32px);
  height: calc(var(--pixel-size) * 32px);
  overflow: hidden;
  position: relative;
  margin: calc(var(--pixel-size) * 6px) auto
}
.Character_shadow {
  width: calc(var(--pixel-size) * 32px);
  height: calc(var(--pixel-size) * 32px);
  opacity: 0.25;
  position: absolute
}

@-webkit-keyframes walkAnimation {
  from {
    transform: translate3d(0%,0%,0)
  }
  to {
    transform: translate3d(-100%,0%,0)
  }
}
@keyframes walkAnimation {
  from {
    transform: translate3d(0%,0%,0)
  }
  to {
    transform: translate3d(-100%,0%,0)
  }
}

.Character_sprite-sheet {
  width: calc(var(--pixel-size) * 128px);
  -webkit-animation: walkAnimation 0.6s steps(4) infinite;
  animation: walkAnimation 0.6s steps(4) infinite;
  position: absolute;
  top: 0;
  left: 0;
  display: none

}
.Character_sprite-sheet.active {
  display: block
}

.Character--walk-down  .Character_sprite-sheet {
  top: 0
}
.Character--walk-right .Character_sprite-sheet {
  top: calc(var(--pixel-size) * -32px)
}
.Character--walk-up    .Character_sprite-sheet {
  top: calc(var(--pixel-size) * -64px)
}
.Character--walk-left  .Character_sprite-sheet {
  top: calc(var(--pixel-size) * -96px)
}

* {
  box-sizing: border-box
}
html,
body {
  margin: 0;
  padding: 0
}
body {
  background-image: linear-gradient(180deg, #5DCBE4 0%, #47BCE4 100%);
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: calc(var(--pixel-size) * 18px);
  padding-bottom: calc(var(--juniora-h) + 24px);
  font-family: var(--jn-font);
  -webkit-tap-highlight-color: transparent;
  overflow-x: hidden
}
.Container {
  max-width: calc(var(--pixel-size) * 100px);
  width: 100%;
  margin: 0 auto;
  padding: 0 12px
}
.TitleImage {
  width: calc(var(--pixel-size) * 95px);
  max-width: 100%;
  display: block;
  margin: 0 auto;
  height: auto
}
.NavigationBubble {
  -webkit-appearance: none;
  width: calc(var(--pixel-size) * 3px);
  height: calc(var(--pixel-size) * 3px);
  background: #2497cc;
  border: 0;
  outline: 0;
  cursor: pointer;
  padding: 0;
  margin-left: 0.5em;
  margin-right: 0.5em;
  box-sizing: content-box
}
.NavigationBubble:hover:not(.active) {
  opacity: 0.9
}
.NavigationBubble.active {
  background: #fff
}
.NextSpritesheetButton {
  -webkit-appearance: none;
  border: 0;
  background: none;
  padding: 1em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%)
}
.NextSpritesheetButton--prev {
  left: 0
}
.NextSpritesheetButton--next {
  right: 0
}
.NextSpritesheetButton:hover {
  cursor: pointer;
  background: rgba(255,255,255,0.2)
}
.NextSpritesheetButton:focus {
  outline: none
}
.NextSpritesheetButton svg {
  display: block;
  width: calc(var(--pixel-size) * 4px)
}
.DirectionArrow {
  background: none;
  outline: 0;
  border: 0;
  cursor: pointer;
  padding: 4px
}
.DirectionArrow svg {
  display: block;
  width: calc(var(--pixel-size) * 13px);
  max-width: 60px
}
.DirectionArrow--active .Arrow_outline-top {
  stroke: #5268ec
}
.DirectionArrow--active .Arrow_surface {
  stroke: #639bff
}
.DirectionArrow--active .Arrow_outline-bottom {
  stroke: #164496
}
.DirectionArrow--active .Arrow_edge {
  stroke: #7baaff
}
.DirectionArrow--active .Arrow_front {
  stroke: #4c8bfd
}
.DirectionArrow--active .Arrow_arrow-inset {
  stroke: #fff
}
.DirectionArrow--active .Arrow_arrow-body {
  stroke: #fff
}
.SpritesheetSlider {
  position: relative;
  margin-bottom: calc(var(--pixel-size) * 10px)
}
.flex-center {
  display: flex;
  justify-content: center;
  flex-wrap: wrap
}

.mobile-controls {
  direction: ltr;
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(var(--juniora-h) + 14px);
  display: none;
  grid-template-columns: 64px 64px 64px;
  grid-template-rows: 64px 64px;
  gap: 6px;
  z-index: 90;
  user-select: none
}
.mc-btn {
  background: rgba(0,0,0,0.55);
  color: #fff;
  border: 2px solid rgba(255,255,255,0.4);
  border-radius: 10px;
  font-size: 22px;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent
}
.mc-btn:active {
  transform: translateY(2px)
}
.mc-up {
  grid-column: 2;
  grid-row: 1
}
.mc-left {
  grid-column: 1;
  grid-row: 2
}
.mc-down {
  grid-column: 2;
  grid-row: 2
}
.mc-right {
  grid-column: 3;
  grid-row: 2
}
@media (hover: none) and (pointer: coarse) {
  .mobile-controls {
    display: grid
  }
  body {
    padding-bottom: calc(var(--juniora-h) + 180px)
  }
}

.juniora-overlay {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--juniora-h);
  background: #292929;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 0 16px
}
.juniora-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #fff;
  font-family: var(--jn-font);
  font-weight: 600;
  font-size: 14px;
  line-height: 1.9
}
.juniora-logo {
  width: 28px;
  height: auto;
  display: block
}
.juniora-text {
  letter-spacing: normal
}
@media (max-width: 480px) {
  :root {
    --juniora-h: 52px
  }
  .juniora-link {
    font-size: 12.5px
  }
}

.TitleText {
  margin: 8px 0 14px;
  font-family: var(--jn-font);
  font-size: clamp(20px, 5.5vw, 30px);
  font-weight: 900;
  color: #2b2b2b;
  text-align: center
}

@media (max-height: 520px) {
  .TitleText {
    font-size: 15px;
    margin: 2px 0 2px
  }
  .Container {
    padding: 2px 0 0;
    zoom: 0.55
  }
  body {
    padding-bottom: calc(var(--juniora-h) + 4px)
  }
  .mobile-controls {
    transform: translateX(-50%) scale(0.8)
  }
}

.juniora-overlay {
  height: var(--juniora-h)
}
.juniora-link {
  font-family: var(--jn-font);
  font-size: clamp(12px, 3.4vw, 15px);
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: normal;
  gap: 8px;
  white-space: nowrap
}
.juniora-logo {
  width: 22px;
  height: auto
}
.juniora-text {
  letter-spacing: normal
}
@media (max-height: 520px) {
  .juniora-link {
    font-size: 12px
  }
  .juniora-logo {
    width: 18px
  }
}

.SpritesheetSlider,
.DemoDirectionUI,
.Navigation {
  direction: ltr;
}

.mc-btn, .jump-btn, #jumpBtn, #controls button, .mc-fire {
  font-family: var(--jn-font);
  font-weight: 700;
}
