/* ─── BASE TYPOGRAPHY & BODY ───────────────────────────────── */
body {
  font-family: 'IBM Plex Sans', system-ui, sans-serif;
  color: var(--dark);
  background:
    radial-gradient(circle at top right, rgba(255,102,0,.05) 0%, rgba(255,102,0,0) 16%),
    radial-gradient(circle at 18% 18%, rgba(43,45,232,.04) 0%, rgba(43,45,232,0) 18%),
    linear-gradient(180deg,
      #0b0e14 0%,
      #0f1320 12%,
      #1a2242 16%,
      #3a4268 20%,
      #6a7498 24%,
      #a0a8c0 28%,
      #c8d0e0 31%,
      #e0e4ee 34%,
      #eef1f6 38%,
      #f4f6fa 43%,
      #eef1f6 48%,
      #dde1eb 52%,
      #c0c8da 55%,
      #96a0b8 59%,
      #6a7498 63%,
      #3a4268 67%,
      #1a2242 71%,
      #0f1320 76%,
      #0b0e14 83%,
      #0f1320 90%,
      #182038 100%
    );
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

/* ─── SHARED SECTION STYLES ──────────────────────────────────── */
.section { padding: var(--section-pad) var(--pad); }
.section-inner { max-width: var(--max); margin: 0 auto; }

.sec-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--orange);
  margin-bottom: 10px;
}

.sec-h2 {
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1.15;
  font-weight: 700;
  margin-bottom: 14px;
  max-width: 700px;
  letter-spacing: -.02em;
}

.sec-body {
  font-size: 17px;
  line-height: 1.75;
  color: #374151;
  max-width: 700px;
}

main.page-content {
  position: relative;
}
.section,
.section-transp {
  position: relative;
}

/* ─── SCROLL REVEAL ──────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .5s ease, transform .5s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

/* hero entrance */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}
