/* Reset + base typography */

*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--text-primary);
  background: linear-gradient(160deg, var(--teal-dark) 0%, var(--teal-deep) 60%, var(--teal) 130%);
  background-attachment: fixed;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'kern', 'liga';
}

body {
  min-height: 100vh;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--font-display); font-weight: 400; }
h1 { font-size: 32px; line-height: 1.15; letter-spacing: -0.01em; }
h2 { font-size: 24px; line-height: 1.2; }
h3 { font-size: 18px; line-height: 1.3; }

p { margin: 0; }

a { color: var(--teal); text-decoration: none; }
a:hover { text-decoration: underline; }

button { font-family: inherit; cursor: pointer; }

code, pre, .num { font-family: var(--font-mono); font-feature-settings: 'tnum'; font-variant-numeric: tabular-nums; }

/* Eyebrow label */
.eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-secondary);
}
.eyebrow-on-dark { color: var(--text-on-dark-muted); }

/* Helper utilities */
.muted { color: var(--text-secondary); }
.muted-on-dark { color: var(--text-on-dark-muted); }
.hidden { display: none !important; }
.flex { display: flex; }
.flex-col { display: flex; flex-direction: column; }
.gap-xs { gap: var(--s-xs); }
.gap-sm { gap: var(--s-sm); }
.gap-md { gap: var(--s-md); }
.gap-lg { gap: var(--s-lg); }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.text-right { text-align: right; }
.text-center { text-align: center; }
