:root {
  --ink: #0b2119;
  --ink-2: #183a2c;
  --green: #0f4a35;
  --green-2: #1f7250;
  --lime: #a9d36e;
  --gold: #f0c75e;
  --cream: #f4f0e5;
  --paper: #fffdf8;
  --muted: #65786f;
  --line: rgba(11, 33, 25, .12);
  --shadow: 0 24px 80px rgba(9, 40, 29, .12);
  --radius: 28px;
  --container: min(1180px, calc(100% - 40px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.6;
  overflow-x: hidden;
}
body.menu-open,
body.is-loading { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.container { width: var(--container); margin-inline: auto; }
.section { padding: 120px 0; }
.no-js .site-loader { display: none; }
.no-js body { overflow: auto; }

.page-progress {
  position: fixed;
  inset: 0 auto auto 0;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--lime));
  z-index: 9999;
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: .75s cubic-bezier(.2, .7, .2, 1);
}
.reveal.visible { opacity: 1; transform: none; }
.delay-1 { transition-delay: .1s; }
.delay-2 { transition-delay: .2s; }
.delay-3 { transition-delay: .3s; }
