@import 'tailwindcss';
@import './kapwa.css';

@custom-variant dark (&:is(.dark *));
@custom-variant light (&:is(.light *));

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes ping {
  75%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}

@keyframes bounce {
  0%,
  100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }

  50% {
    transform: none;
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes slideIn {
  from {
    transform: translateY(10px);
    opacity: 0;
  }

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

@utility kapwa-sans {
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-mono {
  font-family: var(--font-kapwa-mono);
}

@utility kapwa-heading-xl {
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 140%;
  letter-spacing: var(--letter-spacing-tight);
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-heading-lg {
  font-size: 2rem;
  font-weight: 700;
  line-height: 140%;
  letter-spacing: var(--letter-spacing-tight);
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-heading-md {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 140%;
  letter-spacing: var(--letter-spacing-tight);
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-heading-sm {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 140%;
  letter-spacing: var(--letter-spacing-tight);
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-xl-default {
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-xl-strong {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-lg-default {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-lg-strong {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-md-default {
  font-size: 1rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-md-strong {
  font-size: 1rem;
  font-weight: 700;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-sm-default {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-sm-strong {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-xs-default {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-body-xs-strong {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-code-lg {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-mono);
}

@utility kapwa-code-md {
  font-size: 1rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-mono);
}

@utility kapwa-code-sm {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-mono);
}

@utility kapwa-label-lg {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 120%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-label-md {
  font-size: 1rem;
  font-weight: 700;
  line-height: 120%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-label-sm {
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 120%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-label-xs {
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 120%;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-input {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5rem;
  font-family: var(--font-kapwa-sans);
}

@utility kapwa-link-lg {
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
  text-decoration: underline;
}

@utility kapwa-link-md {
  font-size: 1rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
  text-decoration: underline;
}

@utility kapwa-link-sm {
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 140%;
  font-family: var(--font-kapwa-sans);
  text-decoration: underline;
}

@utility animate-fade-in {
  animation: fadeIn 0.5s ease-in-out;
}

@utility animate-slide-in {
  animation: slideIn 0.5s ease-out;
}

@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    border-color: var(--color-kapwa-gray-200, currentcolor);
  }

  body {
    background-color: var(--color-kapwa-bg-surface);
    color: var(--color-kapwa-text-strong);
  }
}
