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

/* V for category dropdown */
[role="menu"] {
  transition: opacity 0.2s, transform 0.2s;
}

.motion-safe [role="menu"] {
  transition: none;
}

[role="menuitem"] {
  transition: background-color 0.15s ease;
}

@media (prefers-reduced-motion: reduce) {
  .motion-safe [role="menu"] {
    transition: opacity 0.3s ease !important;
  }
}

@keyframes dropdown-open {
  0% {
    opacity: 0;
    transform: scaleY(0);
  }

  100% {
    opacity: 1;
    transform: scaleY(1);
  }
}

.animate-dropdown-open {
  animation: dropdown-open 0.2s ease-out forwards;
}

[data-critical] {
  animation: none !important;
  transition: none !important;
}

/* ^ for category dropdown */

::-ms-reveal {
  opacity: 0.1;
  pointer-events: none;
}

@layer base {
  :root {
    --background: 210 40% 98%;
    --foreground: 222.2 84% 4.9%;

    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;

    --popover: 0 0% 100%;
    --popover-foreground: 222.2 84% 4.9%;

    --primary: 207 100% 25%;
    --primary-foreground: 210 40% 98%;

    --secondary: 8 100% 37%;
    --secondary-foreground: 210 40% 98%;

    --muted: 210 40% 96.1%;
    --muted-foreground: 215.4 16.3% 46.9%;

    --accent: 210 40% 96.1%;
    --accent-foreground: 222.2 47.4% 11.2%;

    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;

    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
    --ring: 207 100% 25%;

    --radius: 0.5rem;
  }
}

@keyframes blob {
  0% {
    transform: translate(0px, 0px) scale(1);
  }

  33% {
    transform: translate(30px, -50px) scale(1.1);
  }

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

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

.animate-blob {
  animation: blob 7s infinite;
}

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

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

@keyframes fadeIn {
  from {
    opacity: 0.1;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0.1;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes progressBar {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(100%);
  }
}

@layer utilities {
  .animate-fade-in {
    animation: fadeIn 0.5s ease-out;
  }

  .animate-fade-in-up {
    animation: fadeInUp 0.5s ease-out;
  }

  .animate-progress-bar {
    animation: progressBar 2s linear infinite;
  }
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }

  body {
    @apply bg-background text-foreground;
  }
}