/* ─── BOOT OVERLAY ──────────────────────────────── */
.boot-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  transition: opacity 0.55s ease;
}
.boot-overlay.fade-out { opacity: 0; pointer-events: none; }
.boot-term {
  width: min(680px, 92vw);
  font-family: 'VT323', monospace;
  font-size: 20px;
  line-height: 1.75;
  color: var(--txt2);
}
.boot-term .bc  { color: var(--prompt); }
.boot-term .bd  { color: var(--dim); }
.boot-term .bt  { color: var(--txt); }
.boot-term .ba  { color: var(--accent); }
.boot-term pre  { font-family: Menlo, Consolas, 'Courier New', monospace; color: var(--prompt); font-size: 16px; line-height: 1.35; }

/* ─── APP INTRO STAGGER ─────────────────────────── */
/* Elements transition out of hidden state — always on */
.topbar, .banner, .sidebar, .cmd-bar, #mainScroll, .statusbar {
  transition: opacity 0.32s ease, transform 0.32s ease;
}
.fs-item {
  transition: opacity 0.25s ease, transform 0.25s ease;
}
/* While .app has .booting, everything is pre-hidden */
.app.booting .topbar,
.app.booting .banner,
.app.booting .sidebar,
.app.booting .cmd-bar,
.app.booting #mainScroll,
.app.booting .statusbar {
  opacity: 0;
  transform: translateY(6px);
}
.app.booting .fs-item {
  opacity: 0;
  transform: translateX(-8px);
}
