/* ═══════════════════════════════════════════════════════════════
   BASE — paleta, tipografías, reset y las variables del marco que
   comparten la home y el wallpaper. Cada efecto trae su propia hoja,
   junto a su script: matrix.css, scene-director.css, agent-window.css,
   consola.css (las pantallas), typing.css e i18n.css. La home suma lo
   suyo en index.css (se carga al final). Mapa: Dev/README.md.
   ═══════════════════════════════════════════════════════════════ */
:root {
  --bg: #050a0f;
  --text: #e6fff2;
  --muted: rgba(230, 255, 242, 0.72);
  --neon: #00ff9c;
  --neon-2: #00d4ff;
  --font-body: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --font-display: "Cascadia Code", "SF Mono", SFMono-Regular, "JetBrains Mono", Menlo, Monaco, Consolas,
    "Liberation Mono", monospace;
  /* Marco de las pantallas de la consola: la ventana del teseracto (agent-window.css)
     y la pantalla del texto del wallpaper. agent-window.js recorta su canvas con el
     mismo radio (FRAME_RADIUS): si cambia uno, cambia el otro. */
  --marco-borde: 1px solid rgba(0, 255, 156, 0.28);
  --marco-radio: 12px;
  /* Su sombra, en dos partes que cada calidad cambia (consola.css): el anillo, una línea
     de 1 px por fuera del borde, y el halo. */
  --marco-anillo: 0 0 0 1px rgba(0, 255, 156, 0.08);
  --marco-halo: 0 20px 60px rgba(0, 0, 0, 0.55),
    0 0 38px rgba(0, 255, 156, 0.12);
}

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

html,
body {
  height: 100%;
}

body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: var(--font-body);
  line-height: 1.5;
}
