:host *,
mini-memory * {
  box-sizing: border-box;
  user-select: none;
}
:host {
  --mini-memory-bg: #f9f9f9;
  --mini-memory-border: #313131;
  --mini-memory-disabled-button: rgba(240, 240, 240, 0.2);
  --mini-memory-z-loading: 10;
  --mini-memory-z-tile: 20;
  --mini-memory-z-menu: 30;
  --mini-memory-z-nextlevel: 0;
  --mini-memory-z-active: 1000;
  font-family: Georgia, 'Times New Roman', Times, serif;
  font-size: 12px;
  position: relative;
  width: 100%;
  height: 100%;
  background-color: var(--mini-memory-bg);
  display: block;
  left: 0;
  top: 0;
  overflow: hidden;
  box-shadow: 0 0 4px 0 #333333;
  width: 100%;
  height: 100%;
}
:host([view='fullscreen']) {
  position: fixed;
  left: 0;
  top: 0;
  border: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (orientation: landscape) {
  :host([view='fullscreen']) {
    border: 0;
  }
}

:host #loading {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  justify-content: center;
  align-items: center;
  text-transform: uppercase;
  animation: loading 1s infinite;
  z-index: var(--mini-memory-z-loading);
}

:host #loading .lastScore {
  font-weight: bold;
  font-size: 10vw;
}

:host #loading.done {
  display: none;
}

:host .code {
  background-color: #333333;
  color: yellowgreen;
  display: block;
  font-family: monospace, sans-serif;
  padding: 6px;
}

:host .pre {
  margin: 5px;
}

#tiles-container {
  position: absolute;
  top: 24px;
  height: calc(100% - 24px);
  width: 100%;
}

:host .tile {
  float: left;
  z-index: var(--mini-memory-z-tile);
  position: relative;
  perspective: 1000px;
}

:host .tile canvas {
  width: calc(100% - 2px);
  height: calc(100% - 2px);
  position: relative;
  border-radius: 2.5%;
  cursor: pointer;
  visibility: visible;
  margin: 1px;
  transform-style: preserve-3d;
  transition: transform 100ms;
}
:host .tile canvas:hover:not(.open) {
  transform: scale(0.99);
}
:host .tile canvas.wait {
  visibility: hidden;
  transform: rotateY(180deg);
}

:host .tile canvas.open {
  border: 0;
  animation: cardOpen 300ms;
  animation-iteration-count: 1;
}

@keyframes loading {
  0% {
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}
@keyframes cardOpen {
  0% {
    opacity: 1;
    transform: rotateY(0deg);
  }

  20% {
    opacity: 0;
    transform: rotateY(180deg);
  }

  100% {
    opacity: 1;
    transform: rotateY(0deg);
  }
}
