# Modo inmersivo · versión 06

El botón **Modo inmersivo** muestra únicamente las vistas y una barra discreta. Esta barra conserva el instante UTC, **Controles** y **Salir**. Los controles de tiempo, perspectiva y encuadre se pliegan tras 4,5 segundos de inactividad; siempre se pueden volver a mostrar con el botón. No se ocultan mientras tienen el foco del teclado.

**Salir** o **Esc** recuperan la página, su posición de desplazamiento y el elemento que tenía el foco. Si el navegador no permite la API de pantalla completa, el modo ocupa la ventana actual. El contenido de detrás queda inactivo para que el teclado no salte a botones ocultos.

## Archivos

- `js/inmersivo.js`: presentación, entrada/salida, gestión del foco y llamadas a las acciones compartidas.
- `css/inmersivo.css`: distribución para espacio, cielo y comparación, incluida pantalla estrecha.
- `tests/inmersivo.cjs`: alternativa sin Fullscreen, salida nativa, petición pendiente, reloj compartido y controles accesibles.

`SolarImmersive` recibe los elementos `stage`, `toggle`, `toolbar` y las funciones `onLive`, `onPause`, `onSpeed`, `onView`, `onExperience`, `onResize`. `update(fecha, reloj, {view, experience})` refleja el mismo estado de la aplicación; no crea otro reloj ni un bucle gráfico.

La simulación mantiene los tamaños astronómicos y las opciones existentes. Entrar en este modo sólo modifica la distribución. La selección de un encuadre 3D mientras está visible únicamente el cielo local cambia al espacio para mostrar ese encuadre.

## Verificación automatizada

Cinco grupos de comprobaciones sin WebGL:

1. Un rechazo de Fullscreen conserva la vista y permite salir con Esc; restituye foco, desplazamiento, tabindex y el estado previo de `inert`.
2. Salir con el control nativo del navegador devuelve la interfaz.
3. Salir durante una petición pendiente no deja una pantalla completa huérfana.
4. Los botones llaman a las acciones compartidas, reflejan pausa/velocidad/fecha y descartan opciones desconocidas.
5. Los controles enfocados permanecen visibles; Salir y Controles continúan disponibles al plegarlos; `destroy()` retira eventos y temporizadores.

No incorpora recursos externos ni nuevas licencias.
