:root {
  --radius: 0.5rem;
  /* Navy Trust palette */
  --background: 0.16 0.04 260;     /* #0f1b3d deep navy */
  --foreground: 0.96 0.01 240;     /* #e8edf3 */
  --card: 0.21 0.05 260;            /* #1e3a5f */
  --card-foreground: 0.96 0.01 240;
  --popover: 0.21 0.05 260;
  --popover-foreground: 0.96 0.01 240;
  --primary: 0.96 0.01 240;         /* near-white primary for clean CTAs */
  --primary-foreground: 0.16 0.04 260;
  --secondary: 0.21 0.05 260;
  --secondary-foreground: 0.96 0.01 240;
  --muted: 0.21 0.05 260;
  --muted-foreground: 0.72 0.03 250;
  --accent: 0.62 0.13 250;          /* #3b6fa0 */
  --accent-foreground: 0.98 0.005 240;
  --destructive: 0.6 0.22 27;
  --destructive-foreground: 0.98 0 0;
  --border: 1 0 0 / 8%;
  --input: 1 0 0 / 10%;
  --ring: 0.62 0.13 250;
  
  --color-accent: oklch(var(--accent));
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: oklch(var(--background));
  color: oklch(var(--foreground));
  font-family: "DM Sans", system-ui, -apple-system, sans-serif;
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Space Grotesk", system-ui, sans-serif;
  letter-spacing: -0.02em;
}

.grid-faint {
  background-image:
    linear-gradient(to right, oklch(1 0 0 / 4%) 1px, transparent 1px),
    linear-gradient(to bottom, oklch(1 0 0 / 4%) 1px, transparent 1px);
  background-size: 64px 64px;
}

@keyframes trustDraw {
  to { stroke-dashoffset: 0; }
}
@keyframes trustFade {
  to { opacity: 1; }
}
@keyframes trustDash {
  to { stroke-dashoffset: -600; }
}
@keyframes sweepX {
  0% { transform: translateX(0); }
  100% { transform: translateX(480px); }
}
@keyframes barGrow {
  from { transform: scaleY(0); }
  to { transform: scaleY(1); }
}

/* Animations for JS */
.fade-up-hidden {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.fade-up-visible {
  opacity: 1;
  transform: translateY(0);
}
