@import url("https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap");

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  width: 100%;
  height: 100%;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: #040806;
  background-image: url("./assets/background/background.gif");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  font-family: "Bebas Neue", sans-serif;
}

.app-shell {
  position: relative;
  width: 100vw;
  height: 100dvh;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

#gameCanvas {
  width: 100vw;
  height: 100dvh;
  display: block;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  touch-action: manipulation;
}

#joker {
  position: absolute;
  left: 50%;
  top: -220px;
  width: 260px;
  max-width: 30vw;
  opacity: 0;
  pointer-events: none;
  z-index: 30;
  transform: translateX(-50%);
  transform-origin: center top;
  transition:
    top 0.42s cubic-bezier(0.2, 0.82, 0.2, 1),
    opacity 0.24s ease-out;
  filter: drop-shadow(0 12px 22px rgba(0, 0, 0, 0.55));
  will-change: top, opacity, transform, filter;
}

#joker.joker-active {
  opacity: 1;
  animation:
    joker-idle 1.6s ease-in-out infinite,
    joker-blink 2.2s step-end infinite;
}

@keyframes joker-idle {
  0% {
    transform: translateX(-50%) rotate(-2.5deg) translateY(0);
  }
  50% {
    transform: translateX(-50%) rotate(2deg) translateY(4px);
  }
  100% {
    transform: translateX(-50%) rotate(-2.5deg) translateY(0);
  }
}

@keyframes joker-blink {
  0%,
  44%,
  48%,
  52%,
  100% {
    filter: drop-shadow(0 12px 22px rgba(0, 0, 0, 0.55)) brightness(1);
  }
  46%,
  50% {
    filter: drop-shadow(0 12px 22px rgba(0, 0, 0, 0.55)) brightness(0.58);
  }
}

@media (max-width: 900px) {
  .app-shell {
    width: 100vw;
    height: 100dvh;
    padding:
      max(0px, env(safe-area-inset-top))
      max(0px, env(safe-area-inset-right))
      max(0px, env(safe-area-inset-bottom))
      max(0px, env(safe-area-inset-left));
  }

  #gameCanvas {
    width: calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right));
    height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }

  #joker {
    max-width: 42vw;
  }

}
