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

:root { 
  --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
  --bg: #0a0a0a;
  --surface: #0c0c0c;
  --border: #bbbbbb;
  --fg: #cbcbcb;
  --muted: #666666;
  --accent: #cbcbcb;
  --accent-hover: #cccccc;
  --light: #0f0f0f;
  --primary: #5f7e94;
  --yellow: #a08061;

  --section-spacing: 8rem;
  --container: 1200px;
  --gutter: 2rem;
  --border-width: 2px;

  --duration-fast: 150ms;
  --duration-slow: 0.5s;
}

.light {
  --bg: #f0f0f0;
  --surface: #ffffff;
  --border: #2a2a2a;
  --fg: #1a1a1a;
  --muted: #888888;
  --accent: #1a1a1a;
  --accent-hover: #333333;
  --light: #d7d7d7;
  --primary: #7090b0;
  --yellow: #c8a27f;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

body {
  background-color: var(--bg);

  background-image:
    radial-gradient(circle at center, transparent 0%, var(--bg) 100%),
    linear-gradient(var(--light) 1px, transparent 1px),
    linear-gradient(90deg, var(--light) 1px, transparent 1px);
  background-size: cover, 50px 50px, 50px 50px;
  background-position: center;
  background-attachment: fixed;

  color: var(--fg);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.5;
}

/* Grid glow */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(rgb(from var(--primary) r g b / 0.3 ) 1px, transparent 1px),
    linear-gradient(90deg, rgb(from var(--primary) r g b / 0.3 ) 1px, transparent 1px);
  background-size: 50px 50px;
  mask-image: radial-gradient(circle 70px at var(--mouse-x, -200px) var(--mouse-y, -200px), black 0%, transparent 70%);
  background-position: center;
}

::selection {
  background: var(--accent);
  color: var(--bg);
}

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

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

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
