/*
 * resolvd* design tokens (BRAND.md §2-3).
 *
 * Keep in sync with types/src/design-tokens.ts. If a token isn't here, the
 * answer is almost always to use `--ink` or `--muted` instead.
 */

:root {
  /* Core palette */
  --ink: #0f0f0f;
  --ink-soft: #3a3a3a;
  --muted: #8a8a8a;
  --paper: #faf8f5;
  --surface: #ffffff;
  --divider: #e5e1d8;

  /* Brand accent — burnt orange, editorial. Never #f97316 or #ea580c. */
  --accent: #c2410c;
  --accent-soft: #fed7aa;

  /* Trust signals — pills and dots only. Never used for buttons. */
  --ok: #16a34a;
  --warn: #d97706;
  --alert: #dc2626;

  /* Type stacks */
  --font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
  --font-inter: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;

  /* Layout */
  --page-max: 720px;
  --gutter: 80px;
  --gutter-mobile: 24px;
}

@media (max-width: 760px) {
  :root {
    --gutter: var(--gutter-mobile);
  }
}

html,
body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-inter);
  font-feature-settings: "tnum";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
}

/* Layout primitive: page column */
.page {
  max-width: var(--page-max);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* Typography classes — mirror the scale in types/src/design-tokens.ts */
.wordmark-xl {
  font-size: 96px;
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1;
}
.wordmark-lg {
  font-size: 44px;
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.05;
}
.wordmark-md {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.02em;
}
.wordmark-sm {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.h1 {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0;
}
.h2 {
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0;
}
.h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 0;
}
.body {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}
.body-sm {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.55;
}
.label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.muted {
  color: var(--muted);
}
.ink-soft {
  color: var(--ink-soft);
}

/* The wordmark — two adjacent tokens, same size, same weight.
   No spacing between them. (BRAND.md §4) */
.wordmark {
  display: inline;
  color: var(--ink);
  font-family: var(--font-inter);
}
.wordmark .asterisk {
  color: var(--accent);
  /* Cap-height, not superscript — the asterisk inherits the same font-size
     and weight as the word. */
}

/* The one button style. (BRAND.md §9) */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--ink);
  color: var(--paper);
  padding: 12px 20px;
  border-radius: 6px;
  font-family: var(--font-inter);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background 120ms ease;
}
.btn:hover {
  background: #2a2a2a;
}

/* Text-only "link button" — accent color, underline on hover. */
.link-cta {
  color: var(--accent);
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}
.link-cta:hover {
  text-decoration: underline;
}

/* Plain links inside body copy */
a.inline {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: var(--divider);
  text-underline-offset: 3px;
}
a.inline:hover {
  text-decoration-color: var(--accent);
}

hr.divider {
  border: none;
  border-top: 1px solid var(--divider);
  margin: 48px 0;
}
