/* ============================================================
   Base — type, layout primitives.
   ============================================================ */
* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-norm);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "ss02";
}
body { transition: background var(--d-base) var(--ease), color var(--d-base) var(--ease); }
::selection { background: var(--accent); color: var(--on-accent); }

h1,h2,h3,h4 { margin: 0; font-weight: 600; line-height: var(--lh-snug); letter-spacing: var(--tracking-tight); font-family: var(--font-sans); }
h1 { font-size: var(--fs-4xl); }
h2 { font-size: var(--fs-3xl); }
h3 { font-size: var(--fs-2xl); font-weight: 500; }
h4 { font-size: var(--fs-xl); font-weight: 500; }

p { margin: 0; line-height: var(--lh-norm); color: var(--text); text-wrap: pretty; }

.mono { font-family: var(--font-mono); font-size: var(--fs-xs); letter-spacing: var(--tracking-mono); text-transform: uppercase; }
.mono--lg { font-family: var(--font-mono); font-size: var(--fs-sm); letter-spacing: var(--tracking-mono); text-transform: uppercase; }

.eyebrow {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: var(--tracking-mono);
  text-transform: uppercase;
  color: var(--text-dim);
}

.row { display: flex; align-items: center; gap: var(--s-3); }
.col { display: flex; flex-direction: column; }
.cluster { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.divider { height: 1px; background: var(--rule); width: 100%; }

a { color: inherit; text-decoration: none; }

/* Bracket helpers for the terminal aesthetic */
.bracket { color: var(--text-dim); font-family: var(--font-mono); }
.bracket--accent { color: var(--accent); }

/* Subtle grid backdrop — calmer than current */
.grid-bg {
  position: relative;
}
.grid-bg::before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    linear-gradient(to right, var(--grid-line) 1px, transparent 1px),
    linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);
  background-size: 80px 80px;
  pointer-events: none;
  mask-image: radial-gradient(ellipse 80% 70% at 50% 30%, black, transparent 80%);
}
