:root {
  --color-primary: #0991cc;
  --color-primary-dark: #007aad;
  --color-primary-50: #eaf6fd;
  --color-accent: #a0142e;
  --color-accent-dark: #7f0e24;
  --color-ink: #171717;
  --color-body: #414d60;
  --color-muted: #6b7280;
  --color-stroke: #e6e9ea;
  --color-surface: #f6f7f9;
  --color-surface-2: #f0f0f2;
}

html,
body {
  background: #ffffff;
  color: var(--color-ink);
  font-family: "Manrope", system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

.font-display {
  font-family: "Roboto", "Manrope", sans-serif;
}

/* ===== MARQUEE ===== */
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.animate-marquee {
  animation: marquee 40s linear infinite;
}

/* ===== FLOAT ===== */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
.animate-float {
  animation: float 6s ease-in-out infinite;
}

/* ===== PULSE GLOW ===== */
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(9, 145, 204, 0.4); }
  70% { box-shadow: 0 0 0 18px rgba(9, 145, 204, 0); }
}
.animate-pulse-glow {
  animation: pulseGlow 2.4s ease-out infinite;
}

/* ===== DASH FLOW (for the connection lines in the transfer viz) ===== */
@keyframes dashFlow {
  to { stroke-dashoffset: -60; }
}
.animate-dash {
  stroke-dasharray: 4 6;
  animation: dashFlow 2.5s linear infinite;
}

/* ===== ORBIT ===== */
@keyframes orbit {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.animate-orbit {
  animation: orbit 18s linear infinite;
  transform-origin: center;
}

/* ===== SHIMMER (for CTA buttons) ===== */
.btn-shimmer {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.btn-shimmer::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    transparent 20%,
    rgba(255, 255, 255, 0.35) 50%,
    transparent 80%
  );
  transform: translateX(-100%);
  transition: transform 0.8s ease;
}
.btn-shimmer:hover::after {
  transform: translateX(100%);
}

/* ===== CARD HOVER LIFT ===== */
.card-hover {
  transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.card-hover:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px rgba(0, 43, 107, 0.08);
}

/* ===== SCROLL REVEAL ===== */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.7s cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}
[data-reveal="left"] { transform: translateX(-36px); }
[data-reveal="right"] { transform: translateX(36px); }
[data-reveal="scale"] { transform: scale(0.94); }

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* Stagger children when a parent has data-stagger */
[data-stagger] > * {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
[data-stagger].is-visible > * {
  opacity: 1;
  transform: none;
}
[data-stagger].is-visible > *:nth-child(1) { transition-delay: 0.05s; }
[data-stagger].is-visible > *:nth-child(2) { transition-delay: 0.12s; }
[data-stagger].is-visible > *:nth-child(3) { transition-delay: 0.19s; }
[data-stagger].is-visible > *:nth-child(4) { transition-delay: 0.26s; }
[data-stagger].is-visible > *:nth-child(5) { transition-delay: 0.33s; }
[data-stagger].is-visible > *:nth-child(6) { transition-delay: 0.40s; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
  [data-reveal], [data-stagger] > * {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ===== MISC ===== */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.faq-item[data-open="false"] .faq-answer { display: none; }
.faq-item[data-open="false"] .faq-chevron { transform: rotate(0deg); }
.faq-item[data-open="true"] .faq-chevron { transform: rotate(180deg); }
.faq-chevron { transition: transform 0.25s ease; }

.mobile-menu[data-open="false"] { display: none; }

/* Smooth anchor scroll offset */
[id] { scroll-margin-top: 80px; }

/* Pretty gradient text */
.text-gradient-primary {
  background: linear-gradient(90deg, #0991cc, #a0142e);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ===== LEGAL / PROSE PAGES ===== */
.legal { color: var(--color-body); line-height: 1.75; }
.legal h2 { color: var(--color-ink); font-weight: 700; font-size: 1.25rem; margin: 1.8rem 0 .6rem; }
.legal h3 { color: var(--color-ink); font-weight: 700; font-size: 1.05rem; margin: 1.3rem 0 .4rem; }
.legal p { margin: .7rem 0; }
.legal ul { list-style: disc; padding-left: 1.4rem; margin: .6rem 0; }
.legal li { margin: .3rem 0; }
.legal strong { color: var(--color-ink); }
.legal a { color: var(--color-primary); text-decoration: underline; }
.legal .muted { color: var(--color-muted); font-size: .9rem; }
