/* Available before the application CSS/JS, with no fallback-font text. */
      .appFontStartup { box-sizing: border-box; position: fixed; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 24px; background: var(--font-startup-background, #f7f7f8); color: var(--font-startup-color, #2d609c); }
      .appFontSpinner { box-sizing: border-box; width: 32px; height: 32px; border: 3px solid #e0e4f3; border-top-color: currentColor; border-radius: 50%; animation: appFontSpin .8s linear infinite; }
      .appFontError { width: 48px; height: 48px; color: #c74747; }
      .appFontRetry { display: grid; place-items: center; width: 48px; height: 48px; padding: 12px; color: #5261db; background: #fff; border: 1px solid #dce1ed; border-radius: 12px; cursor: pointer; }
      .appFontRetry:hover { background: #eef0fc; }
      .appFontRetry:focus-visible { outline: 3px solid #5261db; outline-offset: 4px; }
      .appFontRetry svg { width: 24px; height: 24px; }
      @keyframes appFontSpin { to { transform: rotate(360deg); } }
      @media (prefers-reduced-motion: reduce) { .appFontSpinner { animation: none; } }
