*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-surface);
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
img { max-width: 100%; height: auto; }
a { color: var(--color-primary); }
a:hover { color: var(--color-primary-hover); }

.site-header { padding: var(--space-lg) var(--space-md); display: flex; justify-content: center; }
.brand img { display: block; width: 180px; }

main { flex: 1; width: 100%; max-width: 960px; margin: 0 auto; padding: 0 var(--space-md); }

.hero { text-align: center; padding: var(--space-2xl) 0; }
.eyebrow { margin: 0; color: var(--color-primary); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .875rem; }
.hero h1 { font-family: var(--font-heading); font-size: clamp(2.5rem, 8vw, 4.5rem); margin: var(--space-sm) 0; color: var(--color-secondary); }
.lead { font-size: 1.125rem; color: var(--color-text-muted); margin: 0 auto; max-width: 32em; }

.updates { padding-bottom: var(--space-2xl); }
.updates h2 { font-size: 1.25rem; border-bottom: 2px solid var(--color-border); padding-bottom: var(--space-sm); }
.post-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-md); }
.post-list li { background: var(--color-background); border: 1px solid var(--color-border); border-radius: var(--radius-card); padding: var(--space-md) var(--space-lg); }
.post-list h3 { margin: 0 0 var(--space-xs); font-size: 1.05rem; }
.post-list time { font-size: .875rem; color: var(--color-text-muted); }

.site-footer { text-align: center; padding: var(--space-lg) var(--space-md); font-size: .875rem; color: var(--color-text-muted); border-top: 1px solid var(--color-border); }
