@theme {
  --font-heading: "Outfit", sans-serif;
  --font-body: "Inter", sans-serif;
  --color-brand-red: #D62828;
  --color-brand-green: #2E7D32;
}

@custom-variant dark (&:where(.dark, .dark *));

/* Base custom classes & variables */
:root {
  --color-brand-red: #D62828;
  --color-brand-red-dark: #B71C1C;
  --color-brand-red-light: #EF5350;
  --color-brand-green: #2E7D32;
  --color-brand-green-dark: #1B5E20;
  --color-brand-green-light: #4CAF50;
  --color-brand-white: #FFFFFF;
  --color-neutral-50: #FAFAFA;
  --color-neutral-100: #F5F5F5;
  --color-neutral-200: #EEEEEE;
  --color-neutral-300: #E0E0E0;
  --color-neutral-400: #BDBDBD;
  --color-neutral-500: #9E9E9E;
  --color-neutral-600: #757575;
  --color-neutral-700: #616161;
  --color-neutral-800: #424242;
  --color-neutral-900: #212121;
  --color-dark-bg: #0F1419;
  --color-dark-card: #1A1F2E;
  --color-dark-border: #2A3040;
  
  --background: #FFFFFF;
  --foreground: #212121;
  --card-bg: #FAFAFA;
  --border-color: #E0E0E0;
}



html.dark {
  --background: #0F1419;
  --foreground: #FAFAFA;
  --card-bg: #1A1F2E;
  --border-color: #2A3040;
}

body {
  background-color: var(--background);
  color: var(--foreground);
  font-family: var(--font-body);
  transition: background-color 0.3s ease, color 0.3s ease;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
}

/* Glassmorphism utility */
.glass {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.dark .glass {
  background: rgba(26, 31, 46, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Animations */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

.animate-fade-in {
  animation: fadeIn 0.8s ease-out forwards;
}

.animate-slide-up {
  animation: slideUp 0.8s ease-out forwards;
}

.animate-float {
  animation: float 4s ease-in-out infinite;
}

/* Smooth transition utility */
.page-transition {
  animation: fadeIn 0.4s ease-in-out;
}

/* Basic prose styles for rich text content */
.prose h1, .prose h2, .prose h3, .prose h4 {
  font-family: var(--font-heading);
  font-weight: bold;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
  line-height: 1.2;
}
.prose h1 { font-size: 2.25rem; }
.prose h2 { font-size: 1.875rem; }
.prose h3 { font-size: 1.5rem; }
.prose p {
  margin-bottom: 1em;
}
.prose ul {
  list-style-type: disc;
  padding-left: 1.5em;
  margin-bottom: 1em;
}
.prose ol {
  list-style-type: decimal;
  padding-left: 1.5em;
  margin-bottom: 1em;
}
.prose a {
  color: var(--color-brand-green);
  text-decoration: underline;
}
.prose blockquote {
  border-left: 4px solid var(--color-brand-green);
  font-style: italic;
  color: var(--color-neutral-600);
  background: var(--color-neutral-50);
  padding: 1em;
  margin-bottom: 1em;
  border-radius: 0.5rem;
}
.dark .prose blockquote {
  color: var(--color-neutral-400);
  background: var(--color-dark-border);
}
.prose strong, .prose b {
  font-weight: bold;
}
.prose em, .prose i {
  font-style: italic;
}
