/* Delivered before Vue so the first visit has an immediate loading surface. */
:root {
  --boot-bg: #edf1f2; --boot-ink: #263238; --boot-muted: #586a74;
  --boot-accent: #3d7588; --boot-track: #d9e4e8;
  --boot-width: 280px; --boot-image-height: 200px; --boot-image-width: 171px;
  --boot-gap: 16px; --boot-small-gap: 8px; --boot-padding: 24px;
  --boot-track-height: 4px; --boot-radius: 8px; --boot-control-height: 44px;
}
:root[data-theme='dark'] { --boot-bg: #10181f; --boot-ink: #e7edf2; --boot-muted: #bdcad4; --boot-accent: #9ccfdf; --boot-track: #283c49; }
#initial-loader { display: none; }
html.initial-loading { overflow: hidden; }
html.initial-loading #initial-loader { display: grid; }
#initial-loader { position: fixed; inset: 0; z-index: 100000; place-items: center; padding: var(--boot-padding); background: var(--boot-bg); color: var(--boot-ink); font-family: 'MiSans', 'Microsoft YaHei', 'PingFang SC', sans-serif; }
.initial-loader-content { width: min(var(--boot-width), 100%); display: flex; flex-direction: column; align-items: center; gap: var(--boot-gap); text-align: center; }
#initial-loader-image { width: var(--boot-image-width); height: min(var(--boot-image-height), 32svh); object-fit: contain; }
#initial-loader h1 { font-family: 'Noto Serif SC', 'Songti SC', SimSun, serif; color: var(--boot-ink); font-size: 1.5rem; line-height: 1.5; margin: 0; }
#initial-loader-status { color: var(--boot-muted); font-size: .875rem; margin: 0; }
#initial-loader-progress { appearance: none; -webkit-appearance: none; display: block; width: 100%; height: var(--boot-track-height); border: 0; border-radius: var(--boot-radius); overflow: hidden; color: var(--boot-accent); background: var(--boot-track); }
#initial-loader-progress::-webkit-progress-bar { background: var(--boot-track); }
#initial-loader-progress::-webkit-progress-value { background: var(--boot-accent); }
#initial-loader-progress::-moz-progress-bar { background: var(--boot-accent); }
#initial-loader-value { color: var(--boot-muted); font-size: .75rem; font-variant-numeric: tabular-nums; }
#initial-loader-action { min-height: var(--boot-control-height); padding: var(--boot-small-gap) var(--boot-gap); border: 1px solid var(--boot-accent); border-radius: var(--boot-radius); background: none; color: var(--boot-accent); font: inherit; font-size: .875rem; cursor: pointer; }
#initial-loader-action[hidden] { display: none; }
#initial-loader-action:focus-visible { outline: 2px solid var(--boot-accent); outline-offset: var(--boot-small-gap); }
#initial-loader.is-leaving { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: no-preference) {
  #initial-loader { transition: opacity .3s ease; }
}
