/* The first paint is never an empty page.
 *
 * Measured before this existed, from navigation to the first frame with
 * content on it:
 *
 *     SLP dashboard      ~227ms        SLP demo      ~343ms
 *     Runway dashboard   ~344ms        Runway demo   ~351ms
 *
 * The document painted before the application had built anything into it, so
 * every sign-in flashed an empty page first. This splash is part of the
 * initial HTML, so there is something on screen from the first frame.
 *
 * It clears on load, and on a timer whatever happens, because a blank page
 * nobody can get past is far worse than a flash. It is an ordinary body child,
 * so the small-screen gate hides it along with everything else and the two
 * never fight.
 */
.kk-boot{position:fixed;inset:0;z-index:60;display:grid;place-items:center;
  background:var(--kk-boot-bg,#f6f8fa);transition:opacity .18s ease}
.kk-boot-mark{display:flex;flex-direction:column;align-items:center;gap:14px;
  font-family:Inter,"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  color:var(--kk-boot-ink,#7c8b99)}
.kk-boot-mark i{width:26px;height:26px;border-radius:50%;
  border:2px solid var(--kk-boot-ring,#d7e0e8);
  border-top-color:var(--kk-boot-accent,#3d7fb5);
  animation:kk-boot-spin .7s linear infinite}
@keyframes kk-boot-spin{to{transform:rotate(360deg)}}
html[data-kk-ready] .kk-boot{opacity:0;pointer-events:none}
html[data-kk-ready] .kk-boot.kk-boot-gone{display:none}
@media (prefers-reduced-motion:reduce){.kk-boot{transition:none}.kk-boot-mark i{animation:none}}
