/* ============================================================
   Shared base: tokens, fonts, reset, the off-white page.
   Every page on the site loads this first.
   ============================================================ */

@font-face {
  font-family: 'Funnel Display';
  src: url('fonts/funnel-display.woff2') format('woff2');
  font-weight: 300 800;
  font-display: swap;
}
@font-face {
  font-family: 'Geist Mono';
  src: url('fonts/geist-mono.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --bg: #fafaf8;        /* almost white, leaning grey */
  --bg-raise: #f2f2ef;
  --ink: #17181a;
  --muted: #6e7378;
  --faint: #d8d9d6;
  --icon: #95968f;      /* the grey the home-page marks sit at */
  --icon-hover: #63645e;
  --hairline: rgba(23, 24, 26, .1);
  --accent: #2b59c3;    /* the single color */
  --display: 'Funnel Display', 'Avenir Next', 'Segoe UI', sans-serif;
  --mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --ease: cubic-bezier(.4, 0, .2, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { background: var(--bg); color-scheme: light; }

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--display);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* ---------- reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
