*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; color-scheme: dark; }
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
html.lenis { scroll-behavior: auto; }   /* Lenis adds .lenis when active */
body {
  background: var(--lb-ground);
  color: var(--lb-text);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 { font-weight: 700; line-height: 1.08; letter-spacing: -0.02em; text-wrap: balance; }
.h1 { font-size: clamp(2.6rem, 6vw, 4.6rem); }
.h2 { font-size: clamp(2rem, 4.2vw, 3.2rem); }
.h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
.lead { font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: var(--lb-text-dim); max-width: 44em; }
.container { width: min(var(--container), 100% - 48px); margin-inline: auto; }
.section { padding-block: var(--section-pad); position: relative; }
.gradient-text {
  background: var(--lb-gradient);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}
.nowrap { white-space: nowrap; }  /* keeps hyphenated compounds ("run-out?") off line breaks */
:focus-visible { outline: 2px solid var(--lb-cyan); outline-offset: 3px; }
::selection { background: rgba(0, 201, 240, 0.35); }
