/* The boot screen.
 *
 * Every page used to guess: admin.html painted a login form before it knew whether
 * there was a session, and designer.html painted nothing at all. This holds ALL of
 * it back until the page has actually decided, so a navigation can never show the
 * wrong screen for a frame.
 *
 * The rule is deliberately STRUCTURAL — `body > *:not(#fxfBoot)` — and NOT a list of
 * container ids. A list works today and silently stops covering the next page that
 * joins the nav drawer with a differently-named container: it would work on
 * localhost and be wrong live, with a clean console. This form covers containers
 * that do not exist yet.
 *
 * The class is removed by clearBoot() at exactly one place per page, and by an
 * inline 8s failsafe in each page's <head> so a JS throw can never strand a user
 * on a splash screen.
 */
html.fxf-booting body > *:not(#fxfBoot) { display: none !important; }

#fxfBoot {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--wine, #71101d);
  color: #fff;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .5px;
}

/* Once the page has decided, the splash is gone for good. */
html:not(.fxf-booting) #fxfBoot { display: none !important; }
