    html, body {
      margin: 0;
      padding: 0;
      height: 100%;
      overflow: hidden;
      background: #040912 url("/images/startup/loading.webp") center center / cover no-repeat;
    }
    body.airshow-runtime-active {
      background: #000;
    }
    #loading-overlay {
      --startup-shell-height: clamp(480px, 66vh, 588px);
      --startup-step-height: calc(var(--startup-shell-height) - 40px);
      --startup-loading-height: clamp(300px, 45vh, 380px);
      position: fixed;
      inset: 0;
      z-index: 2500;
      display: flex;
      align-items: center;
      justify-content: center;
      background: #040912 url("/images/startup/loading.webp") center center / cover no-repeat;
      opacity: 1;
      visibility: visible;
      transition: opacity 420ms cubic-bezier(0.22, 0.61, 0.36, 1), visibility 0s linear 420ms;
    }
    #loading-overlay.startup-overlay-exit {
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
    }
    html.airshow-mobile-runtime #loading-overlay {
      align-items: flex-start;
      overflow-y: auto;
      overscroll-behavior-y: contain;
      padding-top: max(8px, env(safe-area-inset-top));
      padding-right: max(8px, env(safe-area-inset-right));
      padding-bottom: max(8px, env(safe-area-inset-bottom));
      padding-left: max(8px, env(safe-area-inset-left));
      box-sizing: border-box;
    }
    html.airshow-mobile-runtime #loading-overlay:not(.startup-navigate-active):not(.startup-auth-split-active) {
      align-items: center;
    }
    html.airshow-mobile-runtime .startup-shell {
      margin: 0 auto;
      min-height: 0;
      height: auto;
      max-height: calc(var(--airshow-viewport-height, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
      overflow: hidden;
    }
    html.airshow-mobile-runtime #loading-overlay.startup-navigate-active .startup-shell {
      min-height: 0;
      height: calc(var(--airshow-viewport-height, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
      max-height: calc(var(--airshow-viewport-height, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
      overflow: hidden;
    }
    @media (pointer: coarse), (hover: none), (any-hover: none) and (max-width: 980px), (max-width: 980px) and (max-height: 700px) {
      #loading-overlay {
        align-items: flex-start;
        overflow-y: auto;
        overscroll-behavior-y: contain;
        padding-top: max(8px, env(safe-area-inset-top));
        padding-right: max(8px, env(safe-area-inset-right));
        padding-bottom: max(8px, env(safe-area-inset-bottom));
        padding-left: max(8px, env(safe-area-inset-left));
        box-sizing: border-box;
      }
      #loading-overlay:not(.startup-navigate-active):not(.startup-auth-split-active) {
        align-items: center;
      }
      .startup-shell {
        margin: 0 auto;
        min-height: 0;
        height: auto;
        max-height: calc(var(--airshow-viewport-height, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
        overflow: hidden;
      }
      #loading-overlay.startup-navigate-active .startup-shell {
        min-height: 0;
        height: calc(var(--airshow-viewport-height, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
        max-height: calc(var(--airshow-viewport-height, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));
        overflow: hidden;
      }
    }
    /* Critical startup styles to prevent first-paint stack/card tone shift before external CSS fully applies. */
    .startup-shell {
      position: relative;
      display: flex;
      flex-direction: column;
      width: min(94vw, 920px);
      min-height: var(--startup-shell-height);
      background:
        linear-gradient(156deg, rgba(10, 19, 32, 0.82), rgba(8, 16, 28, 0.72)),
        radial-gradient(80% 62% at 20% 0%, rgba(124, 178, 255, 0.18), rgba(8, 14, 24, 0) 75%);
      border: 1px solid rgba(198, 226, 255, 0.28);
      box-shadow: 0 22px 54px rgba(0,0,0,0.46), inset 0 0 0 1px rgba(255,255,255,0.06);
      border-radius: 20px;
      padding-top: 24px;
      padding-right: 24px;
      padding-bottom: clamp(13px, 1.7vw, 17px);
      padding-left: 24px;
      -webkit-backdrop-filter: blur(10px) saturate(126%);
      backdrop-filter: blur(10px) saturate(126%);
    }
    #loading-overlay.startup-navigate-active .startup-shell {
      min-height: var(--startup-shell-height);
      height: var(--startup-shell-height);
      max-height: var(--startup-shell-height);
      padding-top: 24px;
      padding-bottom: clamp(13px, 1.7vw, 17px);
      overflow: hidden;
    }
    .startup-root {
      min-height: calc(var(--startup-shell-height) - 28px);
      color: #fff;
      font-size: 15px;
    }
    .startup-root.startup-loading-step {
      min-height: calc(var(--startup-shell-height) - 28px);
      height: calc(var(--startup-shell-height) - 28px);
      max-height: calc(var(--startup-shell-height) - 28px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 14px;
      text-align: center;
    }
    .startup-card {
      border: 1px solid rgba(199, 226, 255, 0.28);
      border-radius: 14px;
      background: linear-gradient(156deg, rgba(30, 53, 84, 0.34), rgba(18, 33, 52, 0.26));
      color: #fff;
    }
    .startup-hero-card {
      border-radius: 20px;
      border: 1px solid rgba(174, 212, 248, 0.44);
      background:
        linear-gradient(160deg, rgba(18, 36, 58, 0.8), rgba(20, 42, 70, 0.58)),
        radial-gradient(100% 90% at 80% -18%, rgba(137, 198, 255, 0.22), rgba(23, 45, 74, 0) 58%);
      -webkit-backdrop-filter: blur(14px) saturate(135%);
      backdrop-filter: blur(14px) saturate(135%);
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.14),
        0 14px 30px rgba(0, 16, 40, 0.3);
    }
    .startup-server-card {
      border: 1px solid rgba(174, 212, 248, 0.42);
      background:
        linear-gradient(160deg, rgba(18, 36, 58, 0.78), rgba(20, 42, 70, 0.56)),
        radial-gradient(100% 90% at 80% -20%, rgba(137, 198, 255, 0.2), rgba(23, 45, 74, 0) 58%);
      -webkit-backdrop-filter: blur(12px) saturate(128%);
      backdrop-filter: blur(12px) saturate(128%);
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.12),
        0 8px 20px rgba(0, 12, 30, 0.2);
    }
    .startup-flight-item {
      border: 1px solid rgba(172, 211, 248, 0.38);
      background:
        linear-gradient(160deg, rgba(18, 36, 58, 0.8), rgba(20, 42, 70, 0.56)),
        radial-gradient(100% 90% at 80% -20%, rgba(137, 198, 255, 0.2), rgba(23, 45, 74, 0) 58%);
      -webkit-backdrop-filter: blur(12px) saturate(128%);
      backdrop-filter: blur(12px) saturate(128%);
      box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.12),
        0 8px 20px rgba(0, 12, 30, 0.2);
      color: #fff;
    }
    .startup-field input,
    .startup-field select {
      background: rgba(10, 18, 30, 0.82);
      color: #fff;
      border: 1px solid rgba(186, 221, 254, 0.36);
    }
    /* Runtime lockdown: block globe/runtime UI until startup submit + auth token are both present. */
    body.airshow-runtime-locked #map,
    body.airshow-runtime-locked #topbar,
    body.airshow-runtime-locked #panel,
    body.airshow-runtime-locked #topbar-settings-popup,
    body.airshow-runtime-locked #topbar-player-popup,
    body.airshow-runtime-locked #topbar-flightinfo-popup,
    body.airshow-runtime-locked #topbar-world-cities-popup,
    body.airshow-runtime-locked #topbar-compass-popup,
    body.airshow-runtime-locked #topbar-close-dock,
    body.airshow-runtime-locked #free-trial-runtime-dock,
    body.airshow-runtime-locked #map-zoom-dock,
    body.airshow-runtime-locked #map-mini-topbar-dock,
    body.airshow-runtime-locked #preview-topbar,
    body.airshow-runtime-locked #preview-progress,
    body.airshow-runtime-locked #cockpit-hud,
    body.airshow-runtime-locked #cockpit-view-mode-dock,
    body.airshow-runtime-locked #wing-view-overlay,
    body.airshow-runtime-locked #bearing-indicator,
    body.airshow-runtime-locked #landingvs-popup {
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
    }
