*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  height: 100%;
}

body {
  overflow: hidden;
  background: #000;
}

/* O jogo é pixel art: nada de suavizar imagem ao escalar. */
img,
canvas {
  image-rendering: pixelated;
  max-width: 100%;
  display: block;
}

button,
input,
select {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
}

button {
  cursor: pointer;
}

ul,
ol {
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

[hidden] {
  display: none !important;
}

/* Some da tela mas continua para o leitor de tela: rótulo de campo que o
   desenho não mostra (o chat do lobby e o da partida usam). */
.visualmente-oculto {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Sem @media (prefers-reduced-motion) em nenhum CSS do jogo, de propósito.
   O Roubopolis é pixel art animado de ponta a ponta: peão andando, dado
   girando, figurante na cidade. Seguindo essa preferência do sistema, a
   opção "Efeitos de animação" desligada no Windows — que também chega como
   reduced-motion — deixava o jogo inteiro parado, com cara de quebrado e sem
   dica nenhuma do motivo. Quem quiser menos movimento desliga o jogo, não a
   animação. */
