@tailwind base;
@tailwind components;
@tailwind utilities;

:root {
  --purple-primary: #A467B7;
  --purple-deep: #683285;
  --purple-accent: #AE79BF;
  --purple-lavender: #E7D3EF;
  --purple-soft: #F5EEF8;
  --text-dark: #111827;
  --text-mid: #475569;
  --text-light: #94A3B8;
  --bg-white: #FFFFFF;
  --bg-soft: #F8FAFC;
  --border: #E2E8F0;

  --shadow-sm: 0 4px 16px rgba(164, 103, 183, 0.08);
  --shadow-md: 0 8px 32px rgba(164, 103, 183, 0.15);
  --shadow-lg: 0 20px 60px rgba(164, 103, 183, 0.20);

  --gradient-hero: radial-gradient(ellipse 80% 60% at 50% -10%, #E7D3EF 0%, #FFFFFF 70%);
  --gradient-card: linear-gradient(135deg, #FFFFFF 0%, #F5EEF8 100%);
  --gradient-purple: linear-gradient(135deg, #683285 0%, #A467B7 100%);
}

html,
body {
  background: var(--bg-white);
  color: var(--text-dark);
  font-family: var(--font-body), 'DM Sans', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

::selection {
  background: var(--purple-deep);
  color: #fff;
}

/* Lenis recommended styles */
html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

/* Display headings use DM Sans */
.font-display {
  letter-spacing: -0.02em;
}

/* Headline scale */
.h1-display {
  font-family: var(--font-display), 'DM Sans', sans-serif;
  font-weight: 800;
  font-size: clamp(40px, 7vw, 80px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}
.h2-display {
  font-family: var(--font-display), 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4vw, 52px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}
.h3-display {
  font-family: var(--font-display), 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.5vw, 32px);
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.label-mono {
  font-family: var(--font-mono), 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Soft grid background utility */
.bg-grid-soft {
  background-image:
    linear-gradient(to right, rgba(226, 232, 240, 0.6) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(226, 232, 240, 0.6) 1px, transparent 1px);
  background-size: 56px 56px;
}

/* Hide scrollbar for horizontal scrollers */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
