@tailwind base;
@tailwind components;
@tailwind utilities;

@layer utilities {

  /* Floating blob animation for hero background */
  @keyframes blob {

    0%,
    100% {
      transform: translate(0, 0) scale(1);
    }

    25% {
      transform: translate(20px, -30px) scale(1.1);
    }

    50% {
      transform: translate(-20px, 20px) scale(0.9);
    }

    75% {
      transform: translate(30px, 10px) scale(1.05);
    }
  }

  .animate-blob {
    animation: blob 20s ease-in-out infinite;
  }

  .animation-delay-2000 {
    animation-delay: 2s;
  }

  .animation-delay-4000 {
    animation-delay: 4s;
  }

  .animation-delay-6000 {
    animation-delay: 6s;
  }
}

:root {
  --foreground-rgb: 0, 0, 0;
  --background-start-rgb: 255, 255, 255;
  --background-end-rgb: 255, 255, 255;
  color-scheme: light;
}

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

html,
body {
  max-width: 100vw;
  overflow-x: hidden;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  scroll-behavior: smooth;
}

body {
  color: rgb(var(--foreground-rgb));
  background: linear-gradient(to bottom,
      transparent,
      rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb));
}

a {
  color: inherit;
  text-decoration: none;
}

/* Custom scrollbar */
::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}

/* Focus styles for accessibility */
.focus-ring {
  @apply focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2;
}

/* Card styles */
.card {
  @apply bg-white rounded-xl shadow-sm border border-gray-200 p-6;
}

.card-hover {
  @apply transition-all duration-200 hover:shadow-md hover:border-gray-300;
}

/* Button styles */
.btn-primary {
  @apply bg-primary-600 text-white px-4 py-2 rounded-lg font-medium hover:bg-primary-700 focus-ring transition-colors;
}

.btn-secondary {
  @apply bg-gray-100 text-gray-900 px-4 py-2 rounded-lg font-medium hover:bg-gray-200 focus-ring transition-colors;
}

.btn-outline {
  @apply border border-gray-300 text-gray-700 px-4 py-2 rounded-lg font-medium hover:bg-gray-50 focus-ring transition-colors;
}

/* Input styles */
.input {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent;
}

/* Badge styles */
.badge {
  @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}

.badge-success {
  @apply bg-success-100 text-success-800;
}

.badge-warning {
  @apply bg-warning-100 text-warning-800;
}

.badge-info {
  @apply bg-info-100 text-info-800;
}

.badge-gray {
  @apply bg-gray-100 text-gray-800;
}

/* Loading spinner */
.spinner {
  @apply animate-spin rounded-full border-2 border-gray-300 border-t-primary-600;
}

/* Skeleton loading */
.skeleton {
  @apply animate-pulse bg-gray-200 rounded;
}

/* Gradient backgrounds */
.gradient-primary {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.gradient-success {
  background: linear-gradient(135deg, #84fab0 0%, #8fd3f4 100%);
}

/* Chart container */
.chart-container {
  position: relative;
  height: 300px;
  width: 100%;
}

/* Blog post spacing overrides */
.prose h2 {
  margin-top: 1.75rem !important;
  margin-bottom: 0.875rem !important;
  padding-top: 0.875rem !important;
  font-size: 2.25rem !important;
  line-height: 2.5rem !important;
}

.prose p {
  margin-bottom: 0.875rem !important;
}

.prose ul {
  margin-top: 0.875rem !important;
  margin-bottom: 0.875rem !important;
}

.prose blockquote {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

.prose .lead {
  margin-bottom: 1.25rem !important;
}