/* Reset */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
img { max-width: 100%; height: auto; display: block; }
button { font: inherit; }

html { height: 100%; }

body {
  min-height: 100vh;
  background-color: var(--bg-page);
  color: var(--text-main);
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-base);
  display: flex;
  flex-direction: column;
}

/* Typography */
h1, h2, h3 {
  font-family: var(--font-sans);
  margin: 0 0 var(--space-4) 0;
  letter-spacing: 0;
  color: var(--text-main);
}

h1 {
  font-size: var(--fs-3xl);
  font-weight: 700;
  color: var(--text-inverse);
  letter-spacing: 0.01em;
  text-shadow: 0 2px 12px rgba(26, 36, 32, 0.75);
  position: relative;
  z-index: 1;
}

h2 {
  font-size: var(--fs-lg);
  font-weight: 700;
}

h3 {
  font-size: var(--fs-md);
  font-weight: 700;
}

.system-heading {
  font-family: var(--font-mono);
  font-size: 14pt;
  font-weight: 700;
  color: var(--color-primary-dark);
  letter-spacing: 0.06em;
  margin-bottom: var(--space-4);
}

p { margin: 0 0 var(--space-4) 0; }

a, a:focus {
  color: var(--link);
  text-decoration: underline;
}
a:hover {
  color: var(--link-hover);
  text-decoration: underline;
}
a, button, [role="button"] { cursor: crosshair; }

/* Layout primitives */
.main-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%;
}

.layout-row {
  display: flex;
  flex-wrap: wrap;
  flex: 1 0 auto;
}

.page {
  padding: var(--space-5) var(--space-5) var(--space-7);
}

.page.narrow {
  max-width: var(--container-narrow);
  margin: 0 auto;
}

.section {
  margin-bottom: var(--space-6);
}

.text-center { text-align: center; }
.text-muted  { color: var(--text-muted); }

.prose a { color: var(--link); }

/* Utility padding for cards */
.pad { padding: var(--space-4); }

/* Hidden honeypot */
.hp-field {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
