/* ---- boot: the loader IS the row ----------------------------------------
   THE HOLD IS GONE. This overlay used to run `bootout` on a fixed 1.15s delay,
   so every open of the app sat on a black screen for the same 1.15 seconds
   whether the payload took 80ms or two seconds. That is the difference a person
   describes as "it reloads too much": not the number of requests, but a launch
   that always feels the same length as its worst case.

   Now it clears the moment the shell is ready — `show()` adds `.gone` — and the
   CSS keeps a 4s belt-and-braces fallback so a JavaScript error can never leave
   a client staring at an overlay with their app behind it. */
#boot{position:fixed;inset:0;z-index:80;background:var(--bg);display:grid;place-items:center;
  opacity:1;transition:opacity .28s ease,visibility .28s;
  animation:bootout .5s ease 4s forwards}
#boot.gone{opacity:0;visibility:hidden;pointer-events:none;animation:none}
#boot .in{display:flex;flex-direction:column;align-items:center;gap:24px}
@keyframes bootout{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){#boot{transition:none}}
