@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,400&display=swap";

:root {
  --font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-serif: 'Playfair Display', Georgia, serif;

  /* Botanical modern natural palette */
  --background: oklch(0.985 0.008 120);
  --foreground: oklch(0.22 0.03 140);

  --card: oklch(1 0 0);
  --card-foreground: oklch(0.22 0.03 140);

  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.22 0.03 140);

  --primary: oklch(0.42 0.11 145); /* Deep moss botanical green */
  --primary-foreground: oklch(0.99 0.01 120);

  --secondary: oklch(0.94 0.02 125); /* Pale leaf tint */
  --secondary-foreground: oklch(0.3 0.06 145);

  --muted: oklch(0.95 0.012 110);
  --muted-foreground: oklch(0.5 0.03 135);

  --accent: oklch(0.82 0.12 85); /* Warm earth amber / apricot */
  --accent-foreground: oklch(0.25 0.05 60);

  --destructive: oklch(0.58 0.22 28);
  --destructive-foreground: oklch(0.99 0 0);

  --border: oklch(0.9 0.018 130);
  --input: oklch(0.9 0.018 130);
  --ring: oklch(0.42 0.11 145);

  --radius: 1rem;
}

@keyframes float-slow {
  0%, 100% {
    transform: translateY(0px) rotate(0deg);
  }
  50% {
    transform: translateY(-8px) rotate(0.5deg);
  }
}

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

@keyframes pulse-glow {
  0%, 100% {
    opacity: 0.35;
    transform: scale(1);
  }
  50% {
    opacity: 0.65;
    transform: scale(1.08);
  }
}

@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

@keyframes leaf-sway {
  0%, 100% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(5deg) translateY(-2px);
  }
}

@keyframes fade-in-up {
  0% {
    opacity: 0;
    transform: translateY(16px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

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

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

.animate-pulse-glow {
  animation: pulse-glow 6s ease-in-out infinite;
}

.animate-leaf-sway {
  animation: leaf-sway 5s ease-in-out infinite;
}

.animate-shimmer-bg {
  background-size: 200% 100%;
  animation: shimmer 3s infinite linear;
}

.animate-fade-in-up {
  animation: fade-in-up 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Smooth transition defaults across interactive surfaces */
button, a, input, select, textarea {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

@media (prefers-reduced-motion: reduce) {
  .animate-float-slow,
  .animate-float-badge,
  .animate-pulse-glow,
  .animate-leaf-sway,
  .animate-shimmer-bg,
  .animate-fade-in-up {
    animation: none !important;
  }
  * {
    transition-duration: 0.01ms !important;
  }
}

.dark {
  --background: oklch(0.16 0.02 145);
  --foreground: oklch(0.94 0.01 120);

  --card: oklch(0.2 0.025 145);
  --card-foreground: oklch(0.94 0.01 120);

  --popover: oklch(0.2 0.025 145);
  --popover-foreground: oklch(0.94 0.01 120);

  --primary: oklch(0.68 0.14 142);
  --primary-foreground: oklch(0.14 0.03 145);

  --secondary: oklch(0.25 0.03 145);
  --secondary-foreground: oklch(0.9 0.02 120);

  --muted: oklch(0.24 0.02 145);
  --muted-foreground: oklch(0.7 0.02 130);

  --accent: oklch(0.75 0.13 85);
  --accent-foreground: oklch(0.18 0.04 60);

  --destructive: oklch(0.48 0.19 28);
  --destructive-foreground: oklch(0.98 0 0);

  --border: oklch(0.28 0.025 145);
  --input: oklch(0.28 0.025 145);
  --ring: oklch(0.68 0.14 142);
}

body {
  font-family: var(--font-sans);
  background-color: var(--background);
  color: var(--foreground);
  overflow-x: hidden;
}

.font-serif {
  font-family: var(--font-serif);
}

html {
  scroll-behavior: smooth;
}
