/* =========================================================================
   Reset & base element styles
   ========================================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html, body{ height: 100%; }
html{
  /* Smoothing is handled by Lenis (assets/js/core/smooth-scroll.js) and,
     as a fallback, by an explicit `behavior: 'smooth'` in smooth-anchors.js.
     Native `scroll-behavior: smooth` here would race Lenis's own rAF-driven
     scroll on every wheel/anchor event, which is what caused the perceived
     scroll delay — so this stays `auto`. */
  scroll-behavior: auto;
  scroll-padding-top: 110px;
}
body{
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--fs-body);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width: 100%; display: block; }
a{ color: inherit; }
button{ font-family: inherit; }
ul{ list-style: none; margin: 0; padding: 0; }
h1, h2, h3{ margin: 0; font-weight: 700; letter-spacing: -0.02em; }
p{ margin: 0; }

::selection{ background: var(--green); color: #05130c; }

:focus-visible{
  outline: 2px solid var(--green);
  outline-offset: 3px;
  border-radius: 4px;
}

.hide{ display: none !important; }

.sr-only{
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
