/* ObsidianNW — design tokens */

:root {
  /* Obsidian scale */
  --ob-0: #04060a;          /* deepest */
  --ob-1: #07090f;          /* base bg */
  --ob-2: #0b0e15;          /* elevated bg */
  --ob-3: #11151d;          /* panel */
  --ob-4: #181d26;          /* border / divider */
  --ob-5: #232a35;          /* hairline strong */

  /* Paper / type */
  --paper:      #ecead9;    /* warm bone primary text */
  --paper-2:    #c8c4b3;    /* secondary */
  --paper-3:    #8e8a7d;    /* tertiary */
  --slate:      #7e8794;    /* cool muted */
  --slate-2:    #565d6a;    /* dim slate */

  /* Signal */
  --cyan:       #5fe5ee;    /* primary signal */
  --cyan-bri:   #a8f6fb;    /* highlight */
  --cyan-deep:  #1f7c87;    /* deep */
  --cyan-glow:  rgba(95, 229, 238, 0.5);

  /* Warm */
  --warm:       #d2a578;    /* storm-break warm light */
  --warm-deep:  #6b4e34;

  /* Functional borders */
  --line:       rgba(236, 234, 217, 0.08);
  --line-soft:  rgba(236, 234, 217, 0.04);
  --line-strong:rgba(236, 234, 217, 0.16);

  /* Type stack */
  --f-sans: "Geist", "Söhne", "Suisse Int'l", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --f-mono: "Geist Mono", "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Spacing scale */
  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 24px;
  --s-6: 32px;
  --s-7: 48px;
  --s-8: 64px;
  --s-9: 96px;
  --s-10: 144px;
  --s-11: 200px;

  /* Container */
  --container: 1320px;
  --gutter: 32px;
}

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

html, body {
  background: var(--ob-1);
  color: var(--paper);
  font-family: var(--f-sans);
  font-feature-settings: "ss01", "ss02", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  overflow-x: hidden;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }

::selection { background: var(--cyan); color: var(--ob-0); }

/* Mono caption — used everywhere for technical voice */
.mono {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-3);
  font-weight: 400;
}

.mono-dot::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cyan);
  margin-right: 8px;
  vertical-align: 1px;
  box-shadow: 0 0 8px var(--cyan-glow);
}

/* Editorial display type */
.display {
  font-family: var(--f-sans);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.94;
  text-wrap: balance;
}
