/* ------------------------------------------------ tokens */
:root {
  /* dark-first site: render native UI (form controls, scrollbars,
     autofill) in their dark variants */
  color-scheme: dark;

  /* Neutrals carried over from the original light palette — still
       referenced by buttons, scrims and the inverted "dark" section. */
  --paper: #f4f4f2;
  --ink: #141413;
  --ink-soft: #2b2b29;
  --grey: #6e6e69;
  --hairline: #dededa;
  --hairline-dark: #2e2e2c;

  /* Site-wide dark theme */
  --bg: #0c0c0d; /* page background */
  --surface: #161618; /* raised surfaces / cards */
  --surface-2: #1f1f22;
  --line: #2a2a2c; /* hairline on dark */
  --txt: #f1f1ee; /* primary text */
  --txt-soft: #b8b8b3; /* secondary text */
  --txt-dim: #84847e; /* tertiary / mono labels */
  --signal: #8b5cf6; /* purple accent */
  --signal-soft: #a78bfa;

  --display: "Archivo", system-ui, sans-serif;
  --body: "Inter", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
}

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

html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  background: var(--bg);
  color: var(--txt);
  font-family: var(--body);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--signal);
  color: #fff;
}
:focus-visible {
  outline: 2px solid var(--signal);
  outline-offset: 3px;
}

a {
  color: inherit;
}
img {
  display: block;
  max-width: 100%;
}

.wrap {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 24px;
}
@media (min-width: 768px) {
  .wrap {
    padding: 0 40px;
  }
}

.mono {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
