/* Splash + consent banner styles — loaded before React mounts so the
   first paint is never a blank page, and the consent banner works even
   with JavaScript-enforced analytics off. */

body { font-family: 'Inter', system-ui, sans-serif; }
.font-mono, code, pre { font-family: 'JetBrains Mono', monospace; }

/* Splash shown inside #root until React mounts (prevents a blank/black
   page on slow networks and mobile). React replaces this content. */
#npf-splash {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: #ffffff;
  color: #0b0b0f;
}
#npf-splash img {
  width: 84px;
  height: 84px;
  border-radius: 22px;
  box-shadow: 0 4px 18px rgba(11, 11, 15, 0.14);
}
#npf-splash .npf-name {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: #0b0b0f;
}
#npf-splash .npf-name span { color: #1a8a4a; }
#npf-splash .npf-spinner {
  width: 22px;
  height: 22px;
  border: 2px solid rgba(11, 11, 15, 0.15);
  border-top-color: #1a8a4a;
  border-radius: 50%;
  animation: npf-spin 0.8s linear infinite;
}
@keyframes npf-spin { to { transform: rotate(360deg); } }

/* Analytics consent banner (GDPR/ePrivacy). Hidden by default; the consent
   script removes the `hidden` attribute when no decision has been stored. */
#npf-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  background: #0b0b0f;
  color: #e6edf3;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.35);
  font-size: 13px;
}
#npf-consent[hidden] { display: none; }
#npf-consent p { margin: 0; flex: 1; min-width: 220px; opacity: 0.9; }
#npf-consent a { color: #22d3ee; }
#npf-consent .npf-consent-actions { display: flex; gap: 10px; }
#npf-consent button { border: none; padding: 8px 16px; border-radius: 8px; font-weight: 700; cursor: pointer; }
#npf-consent-accept { background: #1a8a4a; color: #fff; }
#npf-consent-decline { background: transparent; color: #94a3b8; border: 1px solid #334155; }
