/* Rail Panic — paleta minimalista y encaje del lienzo.
   Toda la interfaz del juego se dibuja dentro del canvas; el CSS solo
   se ocupa de centrarlo y escalarlo conservando la proporción 16:9. */

:root {
  --fondo: #12141a;
  --fondo-lienzo: #1b1e26;
}

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

html,
body {
  height: 100%;
}

body {
  background: var(--fondo);
  color: #e6e8ee;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  overflow: hidden;
}

#escena {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

/* El lienzo mantiene su resolución lógica fija (960x540) y se escala por CSS
   hasta lo que quepa en la ventana, pero NUNCA por encima de su tamaño nativo:
   ampliarlo emborrona el dibujo y en un portátil resulta enorme. */
#lienzo {
  width: min(100vw, calc(100vh * 16 / 9), 960px);
  height: auto;
  aspect-ratio: 16 / 9;
  background: var(--fondo-lienzo);
  display: block;
  cursor: pointer;

  /* Táctil: el lienzo se come el gesto. Sin esto, arrastrar desplaza la página
     y un doble toque hace zoom justo cuando se intenta cambiar un semáforo. */
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}

/* En vertical el lienzo 16:9 queda diminuto y el juego es injugable. */
#gira {
  display: none;
  position: absolute;
  padding: 0 24px;
  color: var(--fondo-aviso, #8b93a7);
  font-size: 15px;
  text-align: center;
}

@media (orientation: portrait) and (max-width: 900px) {
  #lienzo {
    opacity: 0.12;
  }

  #gira {
    display: block;
  }
}
