@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap');

/* Shared static page primitives for landing/terms/policy pages */
:root {
  --static-page-bg-dark: #18181b;
  --static-page-bg-light: #fafafa;
  --pattern-opacity: 0.5;
}

body {
  overscroll-behavior: none;
  background-color: var(--static-page-bg-dark);
  margin: 0;
  padding: 0;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

html,
body,
* {
  font-family: 'Geist Mono', monospace;
  letter-spacing: -0.01em;
}

.font-sans,
.font-sans * {
  font-family: 'Noto Sans', sans-serif !important;
}

p {
  font-size: 0.95em;
  letter-spacing: -0.01em;
}

html:not(.dark) body {
  background-color: var(--static-page-bg-light);
}

input,
textarea {
  -webkit-user-select: text;
  user-select: text;
}

.static-selectable,
.static-selectable *,
.landing-selectable,
.landing-selectable * {
  -webkit-user-select: text !important;
  user-select: text !important;
}

.hero-title {
  letter-spacing: -0.06em !important;
}

.landing-badge * {
  letter-spacing: -0.02em !important;
}

.bg-dot-grid {
  background-size: 40px 40px;
}

.bg-dot-grid-light {
  background-image: radial-gradient(circle, rgba(203, 213, 225, var(--pattern-opacity)) 1px, transparent 1px);
}

.bg-dot-grid-dark {
  background-image: radial-gradient(circle, rgba(82, 82, 91, var(--pattern-opacity)) 1px, transparent 1px);
}

.bg-lines-light {
  background-size: 80px 80px;
  background-image: linear-gradient(to right, rgba(203, 213, 225, var(--pattern-opacity)) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(203, 213, 225, var(--pattern-opacity)) 1px, transparent 1px);
}

.bg-lines-dark {
  background-size: 80px 80px;
  background-image: linear-gradient(to right, rgba(82, 82, 91, var(--pattern-opacity)) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(82, 82, 91, var(--pattern-opacity)) 1px, transparent 1px);
}

.no-scrollbar::-webkit-scrollbar {
  display: none;
}

.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

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

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }

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

.animate-fade-in {
  animation: fadeIn 0.15s ease-out;
}

.animate-fade-in-up {
  animation: fadeInUp 0.2s ease-out;
}

.animate-fade-in-down {
  animation: fadeInDown 0.2s ease-out;
}
