/* Base styles for better text rendering */
@layer base {
  html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizelegibility;
    /* Apply the runtime font vars injected by Hugo's typography partial */
    font-family: var(--hb-font-body);
  }

  body {
    font-family: var(--hb-font-body);
    font-weight: var(--hb-font-weight-body, 400);
    line-height: var(--hb-font-leading-body, 1.6);
    letter-spacing: var(--hb-font-tracking-body, 0);
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-family: var(--hb-font-heading);
    font-weight: var(--hb-font-weight-heading, 700);
    line-height: var(--hb-font-leading-heading, 1.2);
    letter-spacing: var(--hb-font-tracking-heading, -0.02em);
  }

  code,
  pre,
  kbd,
  samp {
    font-family: var(--hb-font-code);
  }
}

/* Gradient Mesh Animations */
@keyframes float {
  0%,
  100% {
    transform: translateY(0) translateX(0);
  }

  25% {
    transform: translateY(-20px) translateX(10px);
  }

  50% {
    transform: translateY(-10px) translateX(-10px);
  }

  75% {
    transform: translateY(-30px) translateX(5px);
  }
}

@keyframes rotate-slow {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

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

.animate-rotate-slow {
  animation: rotate-slow 20s linear infinite;
}

/* Custom utilities and components */
@utility task-list {
  list-style: none;
  padding-left: 1.5rem;
}

/* Custom typography styles - the plugin handles the base styles */
/* Additional customization for prose elements */
@layer components {
  .prose a {
    text-decoration: underline;
    text-decoration-color: var(--color-primary-300);
    font-weight: var(--hb-font-weight-body-bold, 600);
  }

  .prose a:hover {
    color: var(--color-primary-600);
    text-decoration: none;
    border-radius: 0.09rem;
  }

  .prose mark {
    color: var(--color-neutral-900);
    background-color: var(--color-primary-200);
    padding: 0.1rem 0.2rem;
    border-radius: 0.25rem;
  }

  .dark .prose-invert a {
    text-decoration-color: var(--color-neutral-500);
  }

  .dark .prose-invert a:hover {
    color: var(--color-primary-300);
  }

  .dark .prose-invert mark {
    background-color: var(--color-primary-400);
    color: black;
  }

  /* Inline Code Styling */
  .prose code:not(:where(pre *)) {
    @apply rounded-md bg-neutral-100 px-1.5 py-0.5 text-[0.875em] font-normal text-primary-700;
    @apply dark:bg-neutral-700/50 dark:text-primary-300;
  }

  .prose code:not(:where(pre *))::before,
  .prose code:not(:where(pre *))::after {
    content: none;
  }
}
