/* base.css — reset, typography, layout primitives */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  transition: background .4s ease, color .4s ease;
}
img, canvas, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

h1, h2, h3 { font-family: var(--font-display); font-weight: 500; line-height: 1.02; margin: 0; letter-spacing: -0.02em; }
h1 { font-size: clamp(2.6rem, 7vw, 6rem); }
h2 { font-size: clamp(1.9rem, 4.5vw, 3.4rem); }
h3 { font-size: clamp(1.2rem, 2.2vw, 1.6rem); }

.eyebrow {
  font-family: var(--font-mono);
  font-size: .72rem; letter-spacing: .28em; text-transform: uppercase;
  color: var(--ink-faint);
}

.wrap { max-width: var(--maxw); margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }
.section { padding: clamp(72px, 12vh, 160px) 0; position: relative; }

/* Buttons */
.btn {
  display: inline-flex; align-items: center; gap: .6em;
  font-family: var(--font-mono); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase;
  padding: .95em 1.6em; border-radius: 100px;
  background: var(--accent); color: var(--accent-ink);
  transition: transform .2s ease, opacity .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn--ghost { background: transparent; color: var(--ink); border: 1px solid var(--line-strong); }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
