/* =============================================================
   hashi&co — design tokens
   Color, typography, spacing, radius, shadow, motion.
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root {
  /* ---------- Color: ink + accent ---------- */
  --ink: #111111;
  --ink-soft: #1F1F1F;          /* hover state for primary CTA */
  --paper: #FAF8F5;
  --surface: #FAFAFA;           /* alternate section bg */

  --accent: #13C5BD;            /* the one teal, sampled from reference */
  --accent-soft: #67D9D4;       /* tint, for hover */
  --accent-deep: #0FA9A2;       /* darker shade, for press */

  /* ---------- Color: foreground ---------- */
  --fg-1: #111111;              /* primary text */
  --fg-2: #6B7280;              /* secondary / body */
  --fg-3: #A1A1AA;              /* eyebrow / metadata */
  --fg-4: #D4D4D8;              /* disabled / placeholder */

  /* ---------- Color: lines & subtle bg ---------- */
  --line: #E5E7EB;
  --line-strong: #D4D4D8;

  /* ---------- Type: families ---------- */
  --font-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* ---------- Type: scale (1.25 minor third, with display jump) ---------- */
  --text-xs: 12px;
  --text-sm: 14px;
  --text-base: 16px;
  --text-md: 18px;
  --text-lg: 20px;
  --text-xl: 24px;
  --text-2xl: 32px;
  --text-3xl: 44px;
  --text-4xl: 64px;
  --text-display: 112px;        /* hero on desktop */

  /* ---------- Spacing (4px grid) ---------- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --space-11: 192px;

  /* ---------- Radius ---------- */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 9999px;

  /* ---------- Shadow / elevation ---------- */
  --shadow-0: none;
  --shadow-1: 0 1px 0 0 var(--line);
  --shadow-2: 0 8px 24px -12px rgba(17, 17, 17, 0.12);
  --shadow-3: 0 16px 48px -20px rgba(17, 17, 17, 0.18);
  --shadow-focus: 0 0 0 3px rgba(19, 197, 189, 0.35);

  /* ---------- Motion ---------- */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 180ms;
  --dur-base: 320ms;
  --dur-slow: 560ms;

  /* ---------- Layout ---------- */
  --max-w: 1280px;
  --page-pad: 48px;
}

@media (max-width: 900px) {
  :root {
    --text-display: 64px;
    --text-4xl: 44px;
    --text-3xl: 32px;
    --page-pad: 24px;
  }
}

/* =============================================================
   Semantic typography classes
   ============================================================= */

.t-display {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--text-display);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--fg-1);
}

.t-h1 {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--text-4xl);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--fg-1);
}

.t-h2 {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--text-3xl);
  line-height: 1.1;
  letter-spacing: -0.018em;
  color: var(--fg-1);
}

.t-h3 {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--text-2xl);
  line-height: 1.2;
  letter-spacing: -0.014em;
  color: var(--fg-1);
}

.t-h4 {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: var(--text-xl);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--fg-1);
}

.t-body {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--text-md);
  line-height: 1.55;
  color: var(--fg-2);
}

.t-body-sm {
  font-family: var(--font-sans);
  font-weight: 400;
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--fg-2);
}

.t-eyebrow {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--text-xs);
  line-height: 1.2;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fg-3);
}

.t-ui {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--text-base);
  line-height: 1.2;
  letter-spacing: -0.005em;
  color: var(--fg-1);
}

.t-mono {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: var(--text-sm);
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--fg-1);
}

/* Accent text: the brand's signature highlight word */
.t-accent { color: var(--accent); }

/* =============================================================
   Base reset (light, opt-in)
   ============================================================= */

.hco-base {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--text-md);
  color: var(--fg-1);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

.hco-base *,
.hco-base *::before,
.hco-base *::after {
  box-sizing: border-box;
}
