

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
  font-weight: 400;
  font-size: var(--fluid-text-base);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

main {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

section {
  flex: 1 1 auto;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Work Sans', 'Inter', ui-sans-serif, system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.14;
  color: var(--text-primary);
  text-wrap: balance;
}

h1 {
  font-size: var(--fluid-text-hero);
}

h2 {
  font-size: var(--fluid-text-xl);
  margin-bottom: var(--fluid-space-sm);
}

h3 {
  font-size: var(--fluid-text-lg);
}

h4 {
  font-size: var(--fluid-text-md);
  font-weight: 600;
  letter-spacing: -0.005em;
}

p {
  font-size: var(--fluid-text-base);
  line-height: 1.7;
  margin-bottom: var(--fluid-space-sm);
  color: var(--text-secondary);
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: var(--accent);
  text-decoration: none;
  transition: color var(--motion-quick);
}

a:hover {
  color: var(--accent-hover);
}

strong {
  font-weight: 600;
  color: var(--text-primary);
}

address {
  font-style: normal;
}

figure {
  margin: 0;
}

figcaption {
  font-size: var(--fluid-text-xs);
  color: var(--text-muted);
  letter-spacing: 0.02em;
  margin-top: var(--fluid-space-xs);
}
