@import url("https://fonts.googleapis.com/css2?family=Albert+Sans:wght@100;200;300;400;500;600;700;800;900&family=Spline+Sans:wght@300;400;500;600;700&display=swap");

body {
  font-family: "Plus Jakarta Sans", sans-serif;
  background-color: white;
}

h1 { font-weight: 800; }
h3 { font-weight: 600; }

/* ── Scroll reveal ── */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
[data-reveal].revealed {
  opacity: 1;
  transform: translateY(0);
}

/* ── Partner marquee ── */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 30s linear infinite;
}
.marquee-track:hover { animation-play-state: paused; }

/* ── Pulse badge dot ── */
@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: 0.5; transform: scale(1.4); }
}
.pulse-dot { animation: pulse-dot 2s ease-in-out infinite; }

/* ── Globe ring float ── */
@keyframes float-ring {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50%       { transform: scale(1.03) rotate(2deg); }
}
.float-ring { animation: float-ring 6s ease-in-out infinite; }

/* ── Dot grid bg helper ── */
.dot-grid {
  background-image: radial-gradient(circle, rgba(59,130,246,0.4) 1px, transparent 0);
  background-size: 36px 36px;
}
