/* Fondo de ondas del acceso. No declara ningún color propio: lee los tokens de
   estilos.css (--superficie-base, --acento, --naranja). Un hex literal aquí
   rompería el motor de marca, que sustituye el acento por instalación. */

.fondo-ondas {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  background-color: var(--superficie-base);
}

.fondo-ondas canvas {
  display: block;
  width: 100%;
  height: 100%;
}

/* Grano editorial del brand sheet. Va como data: URI a propósito: la CSP
   permite `img-src 'self' data:` pero ningún tercero. */
.fondo-ondas-grano {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.038'/%3E%3C/svg%3E");
}

/* El formulario tiene que quedar por encima de la capa fija, o el canvas se
   come los clics y el foco del teclado. */
.pagina-entrar .entrar {
  position: relative;
  z-index: 1;
}
