/* ── Global Styles & Theme ── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html, body { height: 100%; }

:root {
  --bg:       #f5f0e8;
  --fg:       #1a1714;
  --fg2:      #6b6560;
  --accent:   #1a1714;
  --link-hover: #000;
}
[data-theme="dark"] {
  --bg:    #131210;
  --fg:    #e8e3da;
  --fg2:   #7a756e;
  --accent: #e8e3da;
}

/* ── Header ── */
header {
  position: fixed;
  top: 0; left: 0; right: 0;
  padding: 28px 32px;
  display: flex;
  align-items: flex-start;
  z-index: 10;
}

.logo {
  font-family: 'IBM Plex Mono', monospace;
  font-style: normal;
  font-weight: 200;
  font-size: 17px;
  color: var(--fg);
  letter-spacing: 0.17px;
  transition: color 300ms;
  line-height: 1;
}

.controls {
  display: flex;
  align-items: center;
  gap: 20px;
}

.theme-toggle {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--fg2);
  padding: 0;
  width: 20px; height: 20px;
  display: flex; align-items: center; justify-content: center;
  transition: color 200ms;
}
.theme-toggle:hover { color: var(--fg); }
.theme-toggle svg { display: block; }