/* Critical CSS for above-the-fold content */
/* Inline minimal styles for fastest initial render */

/* CSS Variables - Essential for initial render */
:root {
  --background: 0 0% 100%;
  --foreground: 222.2 84% 4.9%;
  --primary: 142 86% 28%;
  --primary-foreground: 355.7 100% 97.3%;
  --muted: 210 40% 98%;
  --muted-foreground: 215.4 16.3% 46.9%;
  --border: 214.3 31.8% 91.4%;
}

@media (prefers-color-scheme: dark) {
  :root {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
    --primary: 142 86% 28%;
    --primary-foreground: 355.7 100% 97.3%;
    --muted: 217.2 32.6% 17.5%;
    --muted-foreground: 215 20.2% 65.1%;
    --border: 217.2 32.6% 17.5%;
  }
}

/* Base styles */
* {
  border-color: hsl(var(--border));
}

body {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Header - Critical for first paint */
header {
  position: sticky;
  top: 0;
  z-index: 50;
  background-color: hsl(var(--background) / 0.95);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid hsl(var(--border));
}

/* Hero section - Above the fold */
.hero-section {
  min-height: 60vh;
  background: linear-gradient(135deg, hsl(var(--primary) / 0.05), hsl(var(--background)), hsl(var(--muted) / 0.3));
}

/* Navigation skeleton */
.nav-skeleton {
  height: 64px;
  background-color: hsl(var(--muted));
  animation: pulse 2s infinite;
}

/* Content skeleton */
.content-skeleton {
  height: 200px;
  background-color: hsl(var(--muted));
  animation: pulse 2s infinite;
  margin: 1rem 0;
  border-radius: 8px;
}

/* Loading animation */
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}

/* Hide non-critical content initially */
.lazy-load {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.lazy-load.loaded {
  opacity: 1;
  transform: translateY(0);
}

/* Prevent layout shift */
.image-container {
  aspect-ratio: 16 / 9;
  background-color: hsl(var(--muted));
}

/* Essential button styles */
.btn-primary {
  background-color: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
  padding: 0.5rem 1rem;
  border-radius: 0.375rem;
  border: none;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.2s;
}

.btn-primary:hover {
  opacity: 0.9;
}

/* Container */
.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

/* Grid layout prevention of CLS */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  min-height: 400px; /* Prevent layout shift */
}

/* Responsive breakpoints */
@media (min-width: 768px) {
  .container {
    padding: 0 2rem;
  }
}