@font-face {
  font-family: "Emoji";
  src: local("Apple Color Emoji"), local("Segoe UI Emoji"), local("Segoe UI Symbol"), local("Noto Color Emoji");
}
body {
  display: flex;
  flex-direction: column;
  text-align: center;
  align-items: center;
}

p {
  line-height: 1.4;
}

.board {
  background-color: #eee;
  background-image: linear-gradient(45deg, #d18b47 25%, transparent 25%, transparent 75%, #d18b47 75%, #d18b47), linear-gradient(45deg, #d18b47 25%, transparent 25%, transparent 75%, #d18b47 75%, #d18b47);
  background-size: 24vmin 24vmin;
  background-position: 0 0, 12vmin 12vmin;
  width: 96vmin;
  height: 96vmin;
  margin: auto;
}

.piece {
  font-size: 6vmin;
  font-family: "Emoji";
}

main {
  position: relative;
  height: 96vmin;
  width: 96vmin;
}

.grid {
  display: grid;
  position: absolute;
}

.board {
  grid-template-columns: repeat(8, 12vmin);
  grid-template-rows: repeat(8, 12vmin);
}

.board .grid__item {
  margin: auto;
}

.board .piece:nth-child(4) {
  grid-column: 5;
}

.board .piece:nth-child(12) {
  grid-column: 6;
}

.board .piece:nth-child(20) {
  grid-column: 8;
}

.row7 {
  grid-row: 7;
}

.row8 {
  grid-row: 8;
}

[class^="move"] {
  height: 100%;
  width: 100%;
}

[class^="move"] .piece {
  height: 12vmin;
  width: 12vmin;
  display: flex;
  place-self: end;
}

[class^="move"] span {
  margin: auto;
}

.move1 {
  grid-template-columns: 72vmin 1fr;
  grid-template-rows: 84vmin 1fr;
  transition: grid-template-rows 0.5s linear;
  transition: grid-template-rows 0.5s linear, -ms-grid-rows 0.5s linear;
}

.move1.active {
  grid-template-rows: 72vmin 1fr;
}

.move2 {
  grid-template-columns: 60vmin 1fr;
  grid-template-rows: 24vmin 1fr;
  transition: grid-template-rows 0.75s linear;
  transition: grid-template-rows 0.75s linear, -ms-grid-rows 0.75s linear;
}

.move2.active {
  grid-template-rows: 48vmin 1fr;
}

.move3 {
  grid-template-columns: 84vmin 1fr;
  grid-template-rows: 84vmin 1fr;
  transition: grid-template-rows 0.75s linear;
  transition: grid-template-rows 0.75s linear, -ms-grid-rows 0.75s linear;
}

.move3.active {
  grid-template-rows: 60vmin 1fr;
}

.move4 {
  grid-template-columns: 48vmin 1fr;
  grid-template-rows: 12vmin 1fr;
  transition: grid-template-columns 1.25s linear, grid-template-rows 1.25s linear;
  transition: grid-template-columns 1.25s linear, grid-template-rows 1.25s linear, -ms-grid-columns 1.25s linear, -ms-grid-rows 1.25s linear;
}

.move4.active {
  grid-template-columns: 96vmin 1fr;
  grid-template-rows: 60vmin 1fr;
}

.controls {
  width: 36vmin;
  display: flex;
  margin-top: 1em;
  justify-content: space-around;
}

button {
  font-size: initial;
  background-color: #d18b47;
  border: none;
  padding: 0.5em 0.75em;
  cursor: pointer;
}
