.boot {
  position: fixed;
  inset: 0;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 0 16px;
  background:
    radial-gradient(60% 50% at 50% 0%, rgba(139,107,255,0.10), transparent 70%),
    var(--void);
}

.boot-log {
  font-family: var(--mono);
  font-size: 14px;
  line-height: 1.9;
  width: min(86vw, 360px);
  text-align: left;
}

.boot-brand {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 14px;
  color: var(--text);
}
.boot-brand .dim { color: var(--violet); }

.boot-log .line {
  margin: 0;
  color: var(--muted);
  opacity: 0;
  transform: translateY(3px);
  animation: fadeUp 0.35s ease forwards;
}
.ok { color: var(--cyan); }

.l1 { animation-delay: 0.35s; }
.l2 { animation-delay: 0.95s; }
.l3 { animation-delay: 1.55s; }
.l4 { animation-delay: 2.15s; }
.l5 { animation-delay: 2.85s; color: var(--text); }

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(3px); }
  to   { opacity: 1; transform: translateY(0); }
}

.boot-bar {
  width: min(86vw, 360px);
  height: 2px;
  background: var(--line);
  border-radius: 2px;
  overflow: hidden;
}
.boot-bar-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--violet), var(--cyan));
  animation: fill 3.6s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes fill { to { width: 100%; } }

body.boot-out .boot { transition: opacity 0.4s ease; opacity: 0; }
