/* ============================================================================
   Warm-paper tokens — adapted from ~/claude/design-templates/tokens.md
   Single :root used by every page in this site.
   ============================================================================ */

:root {
  /* Surfaces */
  --ivory:    #FAF9F5;
  --white:    #FFFFFF;
  --oat:      #E3DACC;

  /* Ink */
  --slate:    #141413;
  --gray-700: #3D3D3A;
  /* gray-500 darkened from #87867F (3.3:1 — fails WCAG AA on body text) to #5F5E58 (≈5.5:1 on ivory). */
  --gray-500: #5F5E58;
  --gray-300: #D1CFC5;
  --gray-150: #F0EEE6;
  --gray-100: #F0EEE6;

  /* Accents */
  --clay:     #D97757;
  --olive:    #788C5D;
  --rust:     #B04A3F;

  /* Type */
  --serif: ui-serif, Georgia, "Times New Roman", serif;
  --sans:  system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono:  ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* Geometry */
  --radius-panel: 14px;
  --radius-row:   8px;
  --border:       1.5px solid var(--gray-300);

  /* Page widths */
  --w-page: 1180px;
  --w-prose: 760px;
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  background: var(--ivory);
  color: var(--slate);
  font-family: var(--sans);
  font-size: 14.5px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; }
a.link { color: var(--slate); text-decoration: underline; text-decoration-color: var(--gray-300); text-underline-offset: 3px; }
a.link:hover { text-decoration-color: var(--clay); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0ms !important;
    animation-duration: 0ms !important;
  }
}

/* Utility classes — kept here so CSP can drop style-src 'unsafe-inline' */
.is-hidden { display: none !important; }
.prose-block { max-width: var(--w-prose); line-height: 1.65; color: var(--gray-700); }
.prose-block + .prose-block { margin-top: 12px; }

