@tailwind base;
@tailwind components;
@tailwind utilities;

/* FinnIan Design System - Inspired by vibrant gradient logo
All colors MUST be HSL.
*/

@layer base {
  :root {
    /* Dark theme primary colors */
    --background: 223 27% 15%;
    --foreground: 210 40% 98%;

    --card: 223 27% 18%;
    --card-foreground: 210 40% 98%;

    --popover: 223 27% 18%;
    --popover-foreground: 210 40% 98%;

    /* Gradient brand colors from logo */
    --primary: 223 27% 15%;
    --primary-foreground: 210 40% 98%;

    --secondary: 223 27% 22%;
    --secondary-foreground: 210 40% 98%;

    --muted: 223 27% 25%;
    --muted-foreground: 215 20% 65%;

    --accent: 223 27% 25%;
    --accent-foreground: 210 40% 98%;

    --destructive: 0 84% 60%;
    --destructive-foreground: 210 40% 98%;

    --border: 223 27% 25%;
    --input: 223 27% 22%;
    --ring: 24 95% 53%;

    /* Gradient colors from FinnIan logo */
    --gradient-orange: 24 95% 53%;
    --gradient-pink: 326 75% 60%;
    --gradient-purple: 271 76% 53%;
    --gradient-blue: 221 83% 53%;
    --gradient-teal: 180 83% 53%;

    /* Custom gradients */
    --gradient-primary: linear-gradient(135deg, hsl(var(--gradient-orange)), hsl(var(--gradient-pink)));
    --gradient-secondary: linear-gradient(135deg, hsl(var(--gradient-purple)), hsl(var(--gradient-blue)));
    --gradient-accent: linear-gradient(135deg, hsl(var(--gradient-blue)), hsl(var(--gradient-teal)));
    --gradient-full: linear-gradient(135deg, hsl(var(--gradient-orange)), hsl(var(--gradient-pink)), hsl(var(--gradient-purple)), hsl(var(--gradient-blue)), hsl(var(--gradient-teal)));

    /* Shadows with gradient glow */
    --shadow-glow: 0 0 40px hsl(var(--gradient-orange) / 0.3);
    --shadow-card: 0 10px 30px -10px hsl(223 27% 10% / 0.5);

    /* Animation transitions */
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-bounce: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);

    --radius: 0.5rem;

    --sidebar-background: 0 0% 98%;
    --sidebar-foreground: 240 5.3% 26.1%;
    --sidebar-primary: 240 5.9% 10%;
    --sidebar-primary-foreground: 0 0% 98%;
    --sidebar-accent: 240 4.8% 95.9%;
    --sidebar-accent-foreground: 240 5.9% 10%;
    --sidebar-border: 220 13% 91%;
    --sidebar-ring: 217.2 91.2% 59.8%;
  }

  .light {
    /* Light mode variations - keeping dark as primary */
    --background: 210 40% 98%;
    --foreground: 223 27% 15%;
    --card: 0 0% 100%;
    --card-foreground: 223 27% 15%;
  }
}

@layer base {
  * {
    border-color: hsl(var(--border));
  }

  body {
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  }

  /* Custom gradient text utility */
  .gradient-text {
    background: var(--gradient-full);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  /* Gradient button base */
  .gradient-button {
    background: var(--gradient-primary);
    transition: var(--transition-smooth);
  }

  .gradient-button:hover {
    background: var(--gradient-secondary);
    box-shadow: var(--shadow-glow);
  }

  /* Custom animations */
  @keyframes float {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-10px); }
  }

  @keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 20px hsl(var(--gradient-orange) / 0.3); }
    50% { box-shadow: 0 0 40px hsl(var(--gradient-orange) / 0.6); }
  }

  @keyframes accordion-down {
    from {
      height: 0;
    }
    to {
      height: var(--radix-accordion-content-height);
    }
  }

  @keyframes accordion-up {
    from {
      height: var(--radix-accordion-content-height);
    }
    to {
      height: 0;
    }
  }

  .animate-float {
    animation: float 6s ease-in-out infinite;
  }

  .animate-pulse-glow {
    animation: pulse-glow 2s ease-in-out infinite;
  }

  .animate-accordion-down {
    animation: accordion-down 0.2s ease-out;
  }

  .animate-accordion-up {
    animation: accordion-up 0.2s ease-out;
  }
}

@layer utilities {
  /* Gradient underline utility for navigation links */
  .gradient-underline {
    background: var(--gradient-primary);
    height: 2px;
  }

  /* Background gradient utilities */
  .bg-gradient-primary {
    background: var(--gradient-primary);
  }

  .bg-gradient-secondary {
    background: var(--gradient-secondary);
  }

  .bg-gradient-accent {
    background: var(--gradient-accent);
  }

  .bg-gradient-full {
    background: var(--gradient-full);
  }

  /* Gradient color utilities */
  .bg-gradient-orange {
    background-color: hsl(var(--gradient-orange));
  }

  .bg-gradient-pink {
    background-color: hsl(var(--gradient-pink));
  }

  .bg-gradient-purple {
    background-color: hsl(var(--gradient-purple));
  }

  .bg-gradient-blue {
    background-color: hsl(var(--gradient-blue));
  }

  .bg-gradient-teal {
    background-color: hsl(var(--gradient-teal));
  }

  /* Shadow utilities */
  .shadow-glow {
    box-shadow: var(--shadow-glow);
  }

  .shadow-card {
    box-shadow: var(--shadow-card);
  }
}

