html, body {
  height: 100%;
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: 'Share Tech Mono', monospace, Arial, Helvetica, sans-serif;
  overflow: hidden;
  cursor: default;
  user-select: none;
}

/* Static background grid */
.grid-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(var(--grid-color) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);
  background-size: 50px 50px;
  pointer-events: none;
  z-index: 1;
}

.viewport {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  cursor: grab;
  touch-action: none;
  background: radial-gradient(circle at 20% 80%, color-mix(in srgb, var(--accent) 5%, transparent) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--accent) 3%, transparent) 0%, transparent 50%);
}

.viewport.panning { cursor: grabbing; }

.mindmap-container {
  position: absolute;
  width: 8000px;
  height: 8000px;
  top: 0;
  left: 0;
  transform-origin: 0 0;
  will-change: transform;
}

.svg-container {
  position: absolute;
  left: 0;
  top: 0;
  width: 8000px;
  height: 8000px;
  z-index: 5;
  pointer-events: auto;
}

body.editing .viewport { cursor: grab; }