* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  text-decoration: none;
}

:root {
  --primary-green: #00ff87;
  --dark-navy: #0a1628;
  --dark-blue: #1a2332;
  --light-gray: #f5f7fa;
  --white: #ffffff;
  --text-dark: #2d3748;
  --text-gray: #4a5568;
  --gradient-start: #00ff87;
  --gradient-end: #00d9ff;

  --spacing-xs: 0.5rem;
  --spacing-sm: 1rem;
  --spacing-md: 1.5rem;
  --spacing-lg: 2rem;
  --spacing-xl: 3rem;
  --spacing-2xl: 4rem;
  --spacing-3xl: 6rem;
  --spacing-4xl: 12rem;

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;

  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.16);
  --shadow-green: 0 8px 32px rgba(0, 255, 135, 0.3);

  --transition-fast: 0.2s ease;
  --transition-normal: 0.3s ease;
  --transition-slow: 0.5s ease;

  --banner-height: 38px;
  --header-height: calc(115px + var(--banner-height));
}

@media (max-width: 768px) {
  :root {
    --header-height: calc(80px + var(--banner-height));
  }
}

body {
  font-family: "Poppins", sans-serif;
  background-color: var(--light-gray);
  color: var(--text-dark);
  overflow-x: hidden;
}

/* Accessibility: Accessible focus indicator */
:focus-visible {
  outline: 2px solid var(--primary-green);
  outline-offset: 3px;
  border-radius: var(--radius-sm);
}

/* Accessibility & UX: Balance heading lines */
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}

/* Accessibility: Universal Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto !important;
  }
  
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}