/* First-paint shell: visible until app.js mounts, and the whole page if JS is
   off. Lives in a file rather than a <style> block so the page can ship a
   script-src 'self' CSP with no inline exceptions. */
.boot {
  min-height: 100vh;
  display: grid; place-content: center; gap: 14px;
  text-align: center; padding: 32px;
}
.boot-mark {
  width: 40px; height: 40px; margin: 0 auto;
  display: grid; place-items: center;
  border: 1px solid var(--accent-line); border-radius: 8px;
  background: var(--accent-soft); color: var(--accent);
}
.boot h1 { font-size: 1.05rem; }
.boot p { font-size: .8125rem; color: var(--ink-3); max-width: 42ch; }
.boot-bar { width: 160px; height: 2px; margin: 4px auto 0; background: var(--surface-3); overflow: hidden; border-radius: 2px; }
.boot-bar i { display: block; width: 40%; height: 100%; background: var(--accent); animation: bootSlide 1.1s var(--ease) infinite; }
@keyframes bootSlide { 0% { translate: -100% 0 } 100% { translate: 350% 0 } }
.nojs { display: none; }
html.no-js .nojs { display: block; }
html.no-js .boot-bar { display: none; }
