/* ─── Design tokens ─── */
:root {
  --ink: #0b1538;
  --ink-2: #141f4a;
  --cobalt: #1f45c9;
  --cobalt-2: #2f5ae6;
  --sky: #dfe8ff;
  --amber: #f6bf3a;
  --amber-soft: #fde6a7;
  --amber-glow: rgba(246,191,58,0.35);
  --green: #35b487;
  --paper: #ffffff;
  --paper-2: #f4f6fb;
  --rule: #e7eaf2;
  --muted: #6b7490;
  --body: #1b2240;
}

/* ─── Reset ─── */
*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  background: var(--paper);
  color: var(--body);
  font-family: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}
body, body * {
  font-family: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; padding: 0; }
a { color: inherit; text-decoration: none; }

/* ─── Typography ─── */
.display { font-family: 'Work Sans', sans-serif; font-weight: 800; letter-spacing: -0.015em; }
.ui { font-family: 'Work Sans', sans-serif; }

/* ─── Scrollbar (modal) ─── */
.scroll-y::-webkit-scrollbar { width: 8px; }
.scroll-y::-webkit-scrollbar-thumb { background: rgba(20,31,74,0.2); border-radius: 4px; }

/* ─── Keyframe animations ─── */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulseRing {
  0%   { box-shadow: 0 0 0 0   rgba(246,191,58,0.55); }
  70%  { box-shadow: 0 0 0 14px rgba(246,191,58,0);    }
  100% { box-shadow: 0 0 0 0   rgba(246,191,58,0);    }
}
@keyframes slideLoop {
  from { transform: translateX(0);    }
  to   { transform: translateX(-50%); }
}

/* ─── Scroll reveal ─── */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }

/* ─── Nav ─── */
#site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  background: var(--cobalt);
  border-bottom: 1px solid transparent;
  transition: border-color .25s ease;
}
#site-nav.scrolled { border-bottom-color: rgba(255,255,255,0.12); }

/* ─── Buttons ─── */
.nav-cta-btn {
  transition: transform .15s;
}
.nav-cta-btn:hover { transform: translateY(-1px); }

.hero-cta-btn {
  position: relative;
  transition: transform .15s;
}
.hero-cta-btn:hover { transform: translateY(-2px); }

.bigcta-btn {
  transition: transform .15s;
}
.bigcta-btn:hover { transform: translateY(-2px); }

/* ─── Why cards ─── */
.why-card {
  transition: transform .2s, box-shadow .2s;
}
.why-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(11,21,56,0.07);
}

/* ─── Timeline step icons ─── */
.timeline-step-icon {
  transition: transform .2s;
}
.timeline-step-icon:hover {
  transform: scale(1.08) translateY(-4px);
}

/* ─── Prize cards ─── */
.prize-card {
  transition: transform .25s, box-shadow .25s;
}
.prize-card:hover { transform: translateY(-6px); }

.prize-card--featured {
  transform: translateY(-4px);
}
.prize-card--featured:hover { transform: translateY(-8px); }

/* ─── FAQ ─── */
.faq-btn { transition: color .15s; }
.faq-btn:hover { color: var(--cobalt) !important; }

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}
.faq-answer.open { max-height: 300px; }

.faq-indicator {
  transition: background .2s, transform .2s;
}
.faq-indicator.open {
  background: var(--amber) !important;
  transform: rotate(45deg);
}

/* ─── Partners carousel ─── */
.partner-track {
  display: flex;
  gap: 96px;
  align-items: center;
  white-space: nowrap;
  animation: slideLoop 32s linear infinite;
  width: fit-content;
  padding-left: 48px;
}

.partner-mask {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 8%, #000 92%, transparent 100%);
}

/* ─── Confetti ─── */
.confetti-burst {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
