@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";

@layer base {
  :root {
    --background: 220 20% 98%;
    --foreground: 222 47% 11%;
    --card: 0 0% 100%;
    --card-foreground: 222 47% 11%;
    --popover: 0 0% 100%;
    --popover-foreground: 222 47% 11%;
    --primary: 222 60% 25%;
    --primary-foreground: 0 0% 100%;
    --secondary: 220 14% 96%;
    --secondary-foreground: 222 47% 11%;
    --accent: 172 66% 50%;
    --accent-foreground: 222 47% 11%;
    --success: 152 60% 45%;
    --success-foreground: 0 0% 100%;
    --muted: 220 14% 96%;
    --muted-foreground: 220 8% 46%;
    --destructive: 0 72% 51%;
    --destructive-foreground: 0 0% 100%;
    --border: 220 13% 91%;
    --input: 220 13% 91%;
    --ring: 222 60% 25%;
    --radius: 0.75rem;

    --gradient-hero: linear-gradient(135deg, hsl(222 60% 25%) 0%, hsl(222 47% 15%) 50%, hsl(230 40% 20%) 100%);
    --gradient-accent: linear-gradient(135deg, hsl(172 66% 50%) 0%, hsl(172 50% 40%) 100%);
    --gradient-glow: radial-gradient(ellipse at center, hsl(172 66% 50% / 0.15) 0%, transparent 70%);

    --shadow-soft: 0 4px 20px -2px hsl(222 60% 25% / 0.08);
    --shadow-card: 0 8px 30px -4px hsl(222 60% 25% / 0.12);
    --shadow-elevated: 0 20px 50px -12px hsl(222 60% 25% / 0.2);
    --shadow-glow: 0 0 40px hsl(172 66% 50% / 0.3);
  }

  html {
    scroll-behavior: smooth;
  }

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

@layer utilities {
  .font-display {
    font-family: 'Sora', sans-serif;
  }

  .glass {
    @apply backdrop-blur-md bg-white/90 border-b border-gray-200 supports-[backdrop-filter]:bg-white/60;
  }

  .text-gradient {
    @apply bg-clip-text text-transparent bg-gradient-to-r from-[hsl(var(--accent))] to-[hsl(var(--accent))] brightness-90;
    background-image: var(--gradient-accent);
  }

  .bg-grid {
    background-image: linear-gradient(hsl(var(--border)) 1px, transparent 1px),
      linear-gradient(90deg, hsl(var(--border)) 1px, transparent 1px);
    background-size: 60px 60px;
  }

  .bg-dots {
    background-image: radial-gradient(hsl(var(--border)) 1px, transparent 1px);
    background-size: 24px 24px;
  }

  .animate-pulse-soft {
    animation: pulse-soft 2s ease-in-out infinite;
  }

  .shadow-soft {
    box-shadow: var(--shadow-soft);
  }

  .shadow-card {
    box-shadow: var(--shadow-card);
  }

  .shadow-elevated {
    box-shadow: var(--shadow-elevated);
  }

  .shadow-glow {
    box-shadow: var(--shadow-glow);
  }

  .link-underline {
    position: relative;
  }

  .link-underline::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    height: 2px;
    width: 100%;
    transform-origin: left;
    transform: scaleX(0);
    background-color: hsl(var(--accent));
    transition: transform 0.3s ease;
  }

  .link-underline:hover::after {
    transform: scaleX(1);
  }
}

@keyframes pulse-soft {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.7;
  }
}

@keyframes enter {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}