@import "tailwindcss";

@plugin 'tailwindcss-animate';
@plugin '@tailwindcss/typography';

@variant dark (&:is(.dark *));

@theme {
  --font-inter:
    "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen;
  --font-sans:
    "Hubot Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
    Roboto, Oxygen;
  --font-mono:
    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono";
  --font-mona: "Mona Sans", system-ui, -apple-system, BlinkMacSystemFont;

  --color-background: hsl(var(--background));
  --color-foreground: hsl(var(--foreground));
  --color-foreground2: hsl(var(--foreground-2));

  --color-card: hsl(var(--card));
  --color-card-foreground: hsl(var(--card-foreground));

  --color-popover: hsl(var(--popover));
  --color-popover-foreground: hsl(var(--popover-foreground));

  --color-primary: hsl(var(--primary));
  --color-primary-900: hsl(var(--primary-900));
  --color-primary-gradient: hsl(var(--primary-gradient));
  --color-primary-foreground: hsl(var(--primary-foreground));

  --color-secondary: hsl(var(--secondary));
  --color-secondary-gradient: hsl(var(--secondary-gradient));
  --color-tertiary-gradient: hsl(var(--tertiary-gradient));
  --color-secondary-foreground: hsl(var(--secondary-foreground));

  --color-muted: hsl(var(--muted));
  --color-muted-foreground: hsl(var(--muted-foreground));

  --color-accent: hsl(var(--accent));
  --color-accent-foreground: hsl(var(--accent-foreground));

  --color-destructive: hsl(var(--destructive));
  --color-destructive-foreground: hsl(var(--destructive-foreground));

  --color-border: hsl(var(--border));
  --color-input: hsl(var(--input));
  --color-ring: hsl(var(--ring));

  --color-chart-1: hsl(var(--chart-1));
  --color-chart-2: hsl(var(--chart-2));
  --color-chart-3: hsl(var(--chart-3));
  --color-chart-4: hsl(var(--chart-4));
  --color-chart-5: hsl(var(--chart-5));

  --color-sand-50: hsl(var(--sand-50));
  --color-sand-100: hsl(var(--sand-100));
  --color-sand-600: hsl(var(--sand-600));
  --color-sand-700: hsl(var(--sand-700));

  --color-mint-50: hsl(var(--mint-50));
  --color-mint: hsl(var(--mint));

  --animate-accordion-down: accordion-down 0.2s ease-out;
  --animate-accordion-up: accordion-up 0.2s ease-out;
  --animate-marquee: marquee 25s linear infinite;

  @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;
    }
  }
  @keyframes marquee {
    0% {
      transform: translateX(0%);
    }
    100% {
      transform: translateX(-100%);
    }
  }
}

@utility container {
  margin-inline: auto;
  padding-inline: 1.5rem;
  @media (width >= --theme(--breakpoint-sm)) {
    max-width: none;
  }
  @media (width >= 1400px) {
    max-width: 1228px;
  }
}

/*
  The default border color has changed to `currentColor` in Tailwind CSS v4,
  so we've added these compatibility styles to make sure everything still
  looks the same as it did with Tailwind CSS v3.

  If we ever want to remove these styles, we need to add an explicit border
  color utility to any element that depends on these defaults.
*/
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    border-color: var(--color-gray-200, currentColor);
  }
}

@layer utilities {
  html,
  body {
    overflow-x: hidden;
    scroll-behavior: smooth;
  }

  body {
    @apply font-inter relative;
  }

  h1,
  h2 {
    @apply font-sans;
  }

  .mini-title {
    @apply text-accent-foreground font-mono text-sm font-semibold tracking-widest;
  }
}

@layer components {
  button {
    cursor: pointer;
  }
  [class*="border"] {
    @apply border-border;
  }
}

@layer base {
  :root {
    --background: 0 0% 98%;
    --foreground: 240 10% 4%;
    --card: 0 0% 100%;
    --card-foreground: 240 10% 4%;
    --popover: 0 0% 100%;
    --popover-foreground: 240 10% 4%;

    --primary: 240 77% 25%;
    --primary-900: 240 70% 16%;
    --primary-foreground: 0 0% 100%;
    --secondary: 0 0% 96%;
    --secondary-foreground: 240 100% 31%;
    --muted: 0 0% 96%;
    --muted-foreground: 0 0% 49%;
    --accent: 0 0% 96%;
    --accent-foreground: 240 26% 46%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 100%;
    --border: 0 0% 0% / 0.09;
    --input: 240 6% 23%;
    --ring: 240 10% 4%;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 24%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
    --primary-gradient: 227 81% 67%;
    --secondary-gradient: 125 51% 53%;
    --tertiary-gradient: 318 58% 66%;
  }

  .dark {
    --background: 240 10% 4%;
    --foreground: 0 0% 98%;
    --card: 240 10% 4%;
    --card-foreground: 0 0% 98%;
    --popover: 240 10% 4%;
    --popover-foreground: 0 0% 98%;

    --primary: 227 81% 67%;
    --primary-900: 227 81% 75%;
    --primary-foreground: 240 10% 4%;
    --secondary: 240 6% 10%;
    --secondary-foreground: 227 81% 67%;
    --muted: 240 6% 10%;
    --muted-foreground: 0 0% 63%;
    --accent: 240 6% 10%;
    --accent-foreground: 227 81% 67%;
    --destructive: 0 84% 60%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 100% / 0.1;
    --input: 0 0% 98%;
    --ring: 227 81% 67%;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 76%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
    --primary-gradient: 240 77% 25%;
    --secondary-gradient: 125 51% 53%;
    --tertiary-gradient: 318 58% 33%;
  }
}

@layer base {
  * {
    @apply border-border;
  }
  body {
    @apply bg-background text-foreground;
  }
}
