/**
 * MemoryIntelligence™ — Heading design system (mandatory tokens)
 * Use ONLY .ds-e1, .ds-h1, .ds-h2, .ds-h3, .ds-n1, .ds-f1 for heading typography.
 * Fraunces is used ONLY for .ds-f1. All other tokens use Inter 900 (E1 uses Inter 700).
 * Mobile breakpoint for token size overrides: max-width 768px
 */

/* ── Tokens ───────────────────────────────────────────────────────── */

.ds-e1 {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(10, 10, 10, 0.38);
  margin: 0;
}

@media (max-width: 768px) {
  .ds-e1 {
    font-size: 9px;
    letter-spacing: 0.14em;
  }
}

.ds-h1 {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: clamp(32px, 5vw, 56px);
  letter-spacing: -0.04em;
  line-height: 1.05;
  color: var(--dark, #0a0a0a);
  margin: 0;
}

@media (max-width: 768px) {
  .ds-h1 {
    font-size: clamp(26px, 7vw, 36px);
  }
}

.ds-h2 {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: clamp(24px, 3.4vw, 38px);
  letter-spacing: -0.035em;
  line-height: 1.08;
  color: var(--dark, #0a0a0a);
  margin: 0;
}

@media (max-width: 768px) {
  .ds-h2 {
    font-size: clamp(20px, 5.5vw, 28px);
  }
}

.ds-h3 {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: clamp(17px, 2.35vw, 24px);
  letter-spacing: -0.02em;
  line-height: 1.18;
  color: var(--dark, #0a0a0a);
  margin: 0;
}

@media (max-width: 768px) {
  .ds-h3 {
    font-size: clamp(16px, 4.5vw, 20px);
  }
}

.ds-n1 {
  font-family: 'Inter', sans-serif;
  font-weight: 900;
  font-size: clamp(80px, 12vw, 140px);
  line-height: 0.85;
  letter-spacing: -0.04em;
  color: #fff;
  -webkit-text-fill-color: #fff;
  -webkit-text-stroke: 1.5px var(--dark, #0a0a0a);
  paint-order: stroke fill;
  text-shadow: 4px 4px 0 rgba(10, 10, 10, 0.9);
  margin: 0;
}

@media (max-width: 768px) {
  .ds-n1 {
    font-size: clamp(60px, 18vw, 100px);
    -webkit-text-stroke: 1px var(--dark, #0a0a0a);
    text-shadow: 3px 3px 0 rgba(10, 10, 10, 0.9);
  }
}

.ds-f1 {
  font-family: 'Fraunces', serif;
  font-style: italic;
  /* Closing CTA: heavy Fraunces wght so it reads clearly bold in all browsers */
  font-weight: 900;
  font-synthesis: none;
  font-variation-settings: 'wght' 900;
  font-size: clamp(28px, 3.8vw, 48px);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--dark, #0a0a0a);
  margin: 0;
}

@media (max-width: 768px) {
  .ds-f1 {
    font-size: clamp(22px, 5.5vw, 32px);
    font-weight: 900;
    font-variation-settings: 'wght' 900;
  }
}

/* Primary “Join the Beta” style — white fill (#fff), per design system */
.ds-cta-join-beta {
  background-color: #fff !important;
  color: var(--dark, #0a0a0a) !important;
}

/*
  Knewave + white fill + stacked shadow (e.g. .why-cc-until): add
  -webkit-text-stroke ~0.65–0.85px var(--dark) so glyphs read on lime, like stat numerals.
*/
.mi-knewave-white-stroke {
  -webkit-text-fill-color: #fff;
  -webkit-text-stroke: 0.7px var(--dark, #0a0a0a);
  paint-order: stroke fill;
}

/*
  Subtle default rounding for UI surfaces. Pages and components may set their own radius;
  circles (50%) and explicit values in page CSS win via specificity over bare elements.
*/
:root {
  --mi-ui-radius: 8px;
  /* First eyebrow / H1 below fixed masthead (body already reserves ~72px). Use sitewide for heroes + section shells. */
  --mi-section-pad-top: clamp(20px, 3.5vw, 36px);
  --mi-section-pad-x: clamp(24px, 5vw, 72px);
  --mi-section-pad-bottom: clamp(48px, 8vw, 96px);
}

/* Soft corners on common controls (pages already set radii on cards where needed) */
:where(
  button:not(.hamburger):not(.mobile-menu-close),
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  textarea,
  select,
  .modal
) {
  border-radius: var(--mi-ui-radius, 8px);
}
