*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  background: var(--color-bg);
  scrollbar-gutter: stable;
}
body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  font-family: var(--font-main);
  font-size: 16px;
  line-height: 1.5;
  background:
    linear-gradient(135deg, rgba(255,255,255,.025), transparent 34%),
    radial-gradient(circle at 75% 8%, var(--color-glow-soft), transparent 34rem),
    radial-gradient(circle at 10% 32%, var(--color-glow-faint), transparent 28rem),
    var(--color-bg);
  color: var(--color-text);
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(115deg, transparent 0 28%, color-mix(in oklab, var(--color-text) 5%, transparent) 28.3% 28.6%, transparent 29% 100%),
    linear-gradient(155deg, transparent 0 62%, color-mix(in oklab, var(--color-text) 4%, transparent) 62.2% 62.45%, transparent 63% 100%),
    linear-gradient(var(--color-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);
  background-size: 100% 100%, 100% 100%, 48px 48px, 48px 48px;
  mask-image: radial-gradient(circle at 50% 16%, black 0%, transparent 78%);
  opacity: var(--grid-opacity);
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    repeating-linear-gradient(0deg, transparent 0 8px, var(--color-scanline) 8px 9px),
    radial-gradient(circle at 50% 50%, transparent 0%, rgba(0,0,0,.22) 100%);
  mix-blend-mode: var(--scanline-blend);
  opacity: var(--scanline-opacity);
}
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { border-radius: 0; }
img, video, canvas, svg { display: block; max-width: 100%; }
::selection { background: var(--color-text); color: var(--color-bg); }
:focus-visible { outline: 1px solid var(--color-text); outline-offset: 4px; }
body::-webkit-scrollbar { width: 10px; }
body::-webkit-scrollbar-track { background: var(--color-bg); }
body::-webkit-scrollbar-thumb { background: var(--color-line-strong); border: 3px solid var(--color-bg); }

/* v09 release — accessibility helpers */
.skip-link {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 1000;
  transform: translateY(-140%);
  padding: 10px 14px;
  border: 1px solid var(--color-line-strong);
  background: var(--color-bg-elevated);
  color: var(--color-text);
  font: 12px/1 var(--font-mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: transform var(--transition-fast);
}
.skip-link:focus { transform: translateY(0); }
