/* =========================================================
   SWTCON · Base  —  reset · typography · layout · utilities
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: var(--font-body);
  color: var(--ink-600);
  background: var(--bg);
  line-height: 1.72;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, textarea, select { font-family: inherit; font-size: 15px; }
ul { list-style: none; }

/* headings — tighter, more editorial */
h1, h2, h3, h4, h5 { font-family: var(--font-display); color: var(--ink-900); line-height: 1.14; font-weight: 700; letter-spacing: -.02em; }

/* ---- Layout ---- */
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 28px; }
.container--narrow { max-width: var(--container-narrow); }

section { position: relative; }
.section { padding: 116px 0; }
.section--tight { padding: 88px 0; }
.section--soft { background: var(--bg-soft); }
.section--tint { background: var(--bg-tint); }

/* ---- Eyebrow / section head ---- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-mono); font-size: 12.5px; letter-spacing: .22em;
  text-transform: uppercase; color: var(--brand-600); font-weight: 700;
}
.eyebrow::before { content: ""; width: 32px; height: 2px; background: var(--grad-brand-soft); border-radius: 2px; }
.eyebrow--center::before { display: none; }
.eyebrow--center { justify-content: center; }
.eyebrow--solid { background: var(--grad-brand); color: #fff !important; padding: 8px 20px; border-radius: var(--r-full); box-shadow: var(--sh-brand); letter-spacing: .18em; }
.eyebrow--solid::before { display: none; }

.sec-head { max-width: 800px; }
.sec-head--center { margin: 0 auto; text-align: center; }
.sec-title {
  font-size: clamp(34px, 4.8vw, 54px); margin: 20px 0 0; color: var(--ink-900); line-height: 1.12; font-weight: 800; letter-spacing: -.025em;
}
.sec-head--center .sec-title { margin-top: 16px; }
.sec-desc { margin-top: 18px; color: var(--ink-500); font-size: 17px; max-width: 660px; line-height: 1.74; }
.sec-head--center .sec-desc { margin-left: auto; margin-right: auto; }

/* gradient text */
.text-grad {
  background: var(--grad-brand-soft);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ---- Reveal animation ---- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease-out), transform .8s var(--ease-out); will-change: opacity, transform; }
.reveal.in { opacity: 1; transform: none; }
.reveal[data-d="1"] { transition-delay: .08s; }
.reveal[data-d="2"] { transition-delay: .16s; }
.reveal[data-d="3"] { transition-delay: .24s; }
.reveal[data-d="4"] { transition-delay: .32s; }
.reveal[data-d="5"] { transition-delay: .40s; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ---- Helpers ---- */
.gpu { transform: translateZ(0); }
.center { text-align: center; }
.mt-s { margin-top: 18px; }
.mt-m { margin-top: 28px; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
