/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  padding: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  background: var(--bg);
  color: var(--text-light);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

ul, ol { margin: 0; padding: 0; list-style: none; }

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

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: 700;
  margin: 0;
  line-height: 1.1;
}

h1 { font-size: clamp(32px, 4vw, 56px); }
h2 { font-size: clamp(28px, 3vw, 40px); }
h3 { font-size: clamp(20px, 2.5vw, 28px); }

p { margin: 0 0 1em 0; }

/* Containers */
.container {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--content-pad);
}

/* Sections */
section { position: relative; }

.theme-dark {
  background: var(--bg);
  color: var(--text-light);
}

.theme-light {
  background: var(--bg-light);
  color: var(--text-dark);
}

.section-pad {
  padding: var(--section-gap) 0;
}

/* Overlines */
.overline {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: 8px;
}

.overline-ai { color: var(--ai); }
.overline-cyan { color: var(--cyan); }
.overline-violet { color: var(--violet); }
.overline-emerald { color: var(--emerald); }
.overline-rose { color: var(--rose); }
.overline-blue { color: var(--blue); }
.overline-yellow { color: var(--yellow); }

/* Subtitle italic */
.subtitle {
  font-style: italic;
  font-size: clamp(16px, 1.8vw, 20px);
  color: var(--gold);
  margin: 6px 0 12px 0;
}

.theme-light .subtitle { color: var(--gold-deep); }

/* Decorative line */
.deco-line {
  width: 64px;
  height: 3px;
  background: var(--gold);
  margin: 12px 0 20px 0;
}

.deco-line-ai { background: var(--ai); }
.deco-line-cyan { background: var(--cyan); }
.deco-line-violet { background: var(--violet); }
.deco-line-emerald { background: var(--emerald); }
.deco-line-rose { background: var(--rose); }
.deco-line-blue { background: var(--blue); }
.deco-line-yellow { background: var(--yellow); }

/* Body text */
.lead {
  font-size: 16px;
  color: var(--text-muted);
  line-height: 1.5;
  max-width: 540px;
}

.theme-light .lead {
  color: var(--text-body);
}

/* Page-footer gold bar */
.page-footer-bar {
  width: 100%;
  height: 6px;
  background: var(--gold);
}

/* Utility */
.text-gold { color: var(--gold); }
.text-ai { color: var(--ai); }
.italic { font-style: italic; }
.hidden { display: none !important; }

/* Responsive */
@media (max-width: 480px) {
  body { font-size: 14px; }
}
