/* ── Reset + body ─────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--text);
  font-size:15px;
  line-height:1.65;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}

/* ── Loading screen ───────────────────────────────────────────────────── */
#loading-screen {
  position:fixed; inset:0; z-index:9999;
  background:var(--dark);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
  transition:opacity 0.4s ease;
}
#loading-screen.fade-out { opacity:0; pointer-events:none; }
.loading-logo {
  font-family:var(--font-display); font-size:1.8rem; font-weight:600;
  color:var(--blue-light); letter-spacing:0.02em;
}
.loading-dot {
  width:6px; height:6px; border-radius:50%;
  background:var(--teal-light);
  animation:ldot 1.1s ease-in-out infinite;
}
@keyframes ldot {
  0%,100%{ opacity:.25; transform:scale(.7); }
  50%{ opacity:1; transform:scale(1.2); }
}

/* ── Toast ────────────────────────────────────────────────────────────── */
.nv-toast {
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
  background:var(--dark); color:#fff;
  font-size:0.82rem; padding:10px 22px; border-radius:6px;
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:0 8px 28px rgba(0,0,0,0.2);
  z-index:9000; white-space:nowrap;
  animation:toastin 0.25s ease;
}
@keyframes toastin { from{ opacity:0; transform:translateX(-50%) translateY(8px); } }
