#sokoban {
  background-color: #36454f;
  color: white;
  font-family: monospace;
  font-optical-sizing: auto;
  zoom: 2.5;
}
h1 {
  text-align: center;
  font-family: "Playwrite CZ", cursive;
  color: white;
  font-size: small;
  margin-bottom: 5px;
}
#board {
  position: relative;
  margin: 0 auto;
}
.solved #board {
  animation: bump .25s ease-in;
}
#info {
  position: absolute;
  right: 5px;
  top: 5px;
  width: 5em;
  color: white;
  text-align: center;
  font-family: monospace;
  font-size: 5pt;
}
#source {
  font-size: 4pt;
}
#instruct {
  position: absolute;
  bottom: 1em;
  width: 100%;
  right: 1em;
  margin-top: 1em;
  font-size: 3pt;
  text-align: center;
}
#source:visited {
  color: white;
}
#solved {
  position: absolute;
  color: black;
  bottom: 3em;
  left: 0;
  height: 1em;
  width: 100%;
  font-family: monospace;
  font-size: 5pt;
  text-align: center;
  visibility: hidden;
  text-transform: uppercase;
}
.solved #solved {
  visibility: visible;
}
[data-rows="6"] {
  height: 96px;
}
[data-rows="7"] {
  height: 112px;
}
[data-rows="8"] {
  height: 128px;
}
[data-rows="9"] {
  height: 144px;
}
[data-rows="10"] {
  height: 160px;
}
[data-rows="11"] {
  height: 176px;
}
[data-rows="12"] {
  height: 192px;
}
[data-rows="13"] {
  height: 208px;
}
[data-rows="14"] {
  height: 224px;
}
[data-rows="15"] {
  height: 240px;
}
[data-rows="16"] {
  height: 256px;
}
[data-rows="17"] {
  height: 272px;
}
[data-cols="6"] {
  width: 96px;
}
[data-cols="7"] {
  width: 112px;
}
[data-cols="8"] {
  width: 128px;
}
[data-cols="9"] {
  width: 144px;
}
[data-cols="10"] {
  width: 160px;
}
[data-cols="11"] {
  width: 176px;
}
[data-cols="12"] {
  width: 192px;
}
[data-cols="13"] {
  width: 208px;
}
[data-cols="14"] {
  width: 224px;
}
[data-cols="15"] {
  width: 240px;
}
[data-cols="16"] {
  width: 256px;
}
[data-cols="17"] {
  width: 272px;
}

[data-what] {
  position: absolute;
  background-repeat: no-repeat;
  background-image: url(./images/tileset.png);
  background-position: 0 0;
  width: 16px;
  height: 16px;
  transition: top .3s ease 0s, left .3s ease 0s;
}
#worker {
  background-image: url(./images/dudeset.png);
  background-position: 0px 0px;
  height: 20px;
  width: 20px;
  margin-top: -5px;
  margin-left: -1px;
  overflow: visible;
}
#worker[data-facing="left"] {
  transform: scaleX(-1);
  margin-left: -2px;
}
#worker[data-facing="right"] {
  transform: scaleX(1);
}
.solved #worker {
  animation: glee .25s steps(2) forwards;
}
#worker.walk {
  animation: walk .3s steps(5) infinite;
}
#worker.slump {
  animation: slump .5s steps(5) forwards;
}
[data-what="crate"] {
  background-position: 0 -64px;
}
[data-what="void"] {
  visibility: hidden;
}
[data-what="ground"] {
  background-position: 0 -16px;
}
[data-what="dest"] {
  background-position: -48px 0;
}
[data-what="back-building"] {
  background-position: 0 0;
}
[data-what="building"] {
  background-position: -32px 0;
}
[data-what="ground-water"] {
  background-position: 0 -32px;
}
[data-what="water"] {
  background-position: 0 -48px;
}
[data-x="0"] {
  left: 0;
}
[data-x="1"] {
  left: 16px;
}
[data-x="2"] {
  left: 32px;
}
[data-x="3"] {
  left: 48px;
}
[data-x="4"] {
  left: 64px;
}
[data-x="5"] {
  left: 80px;
}
[data-x="6"] {
  left: 96px;
}
[data-x="7"] {
  left: 112px;
}
[data-x="8"] {
  left: 128px;
}
[data-x="9"] {
  left: 144px;
}
[data-x="10"] {
  left: 160px;
}
[data-x="11"] {
  left: 176px;
}
[data-x="12"] {
  left: 192px;
}
[data-x="13"] {
  left: 208px;
}
[data-x="14"] {
  left: 224px;
}
[data-x="15"] {
  left: 240px;
}
[data-x="16"] {
  left: 256px;
}
[data-x="17"] {
  left: 272px;
}

[data-y="0"] {
  top: 0;
}
[data-y="1"] {
  top: 16px;
}
[data-y="2"] {
  top: 32px;
}
[data-y="3"] {
  top: 48px;
}
[data-y="4"] {
  top: 64px;
}
[data-y="5"] {
  top: 80px;
}
[data-y="6"] {
  top: 96px;
}
[data-y="7"] {
  top: 112px;
}
[data-y="8"] {
  top: 128px;
}
[data-y="9"] {
  top: 144px;
}
[data-y="10"] {
  top: 160px;
}
[data-y="11"] {
  top: 176px;
}
[data-y="12"] {
  top: 192px;
}
[data-y="13"] {
  top: 208px;
}
[data-y="14"] {
  top: 224px;
}
[data-y="15"] {
  top: 240px;
}
[data-y="16"] {
  top: 256px;
}
[data-y="17"] {
  top: 272px;
}
@keyframes walk {
  from {
    background-position: 0 -20px;
  }
  to {
    background-position: -100px -20px;
  }
}
@keyframes slump {
  from {
    background-position: 0 -80px;
  }
  to {
    background-position: -100px -80px;
  }
}
@keyframes glee {
  from {
    background-position: 0 -40px;
  }
  to {
    background-position: -40px -40px;
  }
}
@keyframes bump {
  0% {
    transform: translate3d(0, 0, 0);
  }
  15% {
    transform: translate3d(0, -8px, 0);
  }
  30% {
    transform: translate3d(0, 0, 0);
  }
  45% {
    transform: translate3d(0, -5px, 0);
  }
  60% {
    transform: translate3d(0, 0, 0);
  }
  85% {
    transform: translate3d(0, -2px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}
