@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/SpaceGrotesk-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #111110; color: #e8e0d0; font-family: 'Space Grotesk', system-ui, sans-serif; line-height: 1.7; }
.container { max-width: 860px; margin: 0 auto; padding: 80px 32px 120px; }

/* Skip link */
.skip-link {
  position: absolute; left: -9999px; top: auto;
  padding: 0.5em 1em; background: #c8a55a; color: #111110;
  font-weight: 600; font-size: 0.88rem; border-radius: 4px;
  z-index: 100;
}
.skip-link:focus { left: 16px; top: 16px; }

/* Screen reader only */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Nav */
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5em; }
.topbar-name { font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Consolas', monospace; font-size: 0.82rem; font-weight: 500; color: #a89f91; }
.topbar-name .prompt { color: #c8a55a; }
.topbar-links { display: flex; gap: 1.5em; }
.topbar-links a { color: #a89f91; text-decoration: none; font-size: 0.82rem; font-weight: 400; transition: color 0.2s; }
.topbar-links a:hover { color: #e8e0d0; }

/* Hero */
.hero { margin-bottom: 5em; }
.hero-name { font-size: 0.85rem; font-weight: 500; color: #a89f91; margin-bottom: 0.6em; letter-spacing: 0.02em; }
.hero h1 {
  font-size: 3.5rem; font-weight: 700; letter-spacing: -0.04em;
  line-height: 1.1; margin-bottom: 0.6em;
}
.hero h1 span { color: #c8a55a; }
.hero-row { display: flex; gap: 2.5em; align-items: flex-start; }
.hero-text { flex: 1; }
.hero-text p { font-size: 1.1rem; font-weight: 300; color: #a89f91; line-height: 1.65; max-width: 480px; }
.hero-row picture { flex-shrink: 0; }
.headshot {
  width: 160px; height: 200px; border-radius: 6px; object-fit: cover;
  object-position: center 20%;
}
.hero-cta { margin-top: 2em; display: flex; gap: 1em; align-items: center; }
.btn-primary {
  display: inline-block; padding: 0.7em 1.8em; background: #c8a55a; color: #111110;
  font-weight: 600; font-size: 0.88rem; border-radius: 4px; text-decoration: none;
  transition: background 0.2s; letter-spacing: -0.01em;
  border: none; cursor: pointer; font-family: inherit; line-height: inherit;
}
.btn-primary:hover { background: #d4b46a; }
.btn-ghost {
  display: inline-block; padding: 0.7em 1.8em; border: 1px solid #2a2520; color: #e8e0d0;
  font-weight: 500; font-size: 0.88rem; border-radius: 4px; text-decoration: none;
  transition: border-color 0.2s;
}
.btn-ghost:hover { border-color: #c8a55a; }

/* Proof bar — datasheet */
.proof-bar {
  border: 1px solid #2a2520; border-radius: 6px; overflow: hidden;
  margin-bottom: 5em; font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Consolas', monospace;
  font-size: 0.82rem; background: #0d0d0c;
}
.proof-header {
  padding: 0.55em 1.4em; font-size: 0.65rem; color: #3a352e;
  letter-spacing: 0.08em; border-bottom: 1px solid #1a1916;
}
.proof-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.55em 1.4em; gap: 1em;
}
.proof-row + .proof-row { border-top: 1px solid #1a1916; }
.proof-key { color: #a89f91; white-space: nowrap; }
.proof-val { color: #c8a55a; font-weight: 500; text-align: right; word-break: break-word; }

/* Section — code-style labels */
.section-label {
  font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Consolas', monospace;
  font-size: 0.75rem; font-weight: 500; color: #3a352e; margin-bottom: 1.8em;
  display: flex; align-items: center; gap: 1em;
}
.section-label .label-text { color: #c8a55a; white-space: nowrap; }
.section-label::after { content: ''; flex: 1; height: 1px; background: #2a2520; }
section { margin-bottom: 4em; }
p { font-size: 0.95rem; font-weight: 300; margin-bottom: 1em; }

/* Cards */
.card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; }
.card {
  padding: 1.5em; border: 1px solid #2a2520; border-radius: 6px;
  transition: border-color 0.2s;
}
.card:hover { border-color: #3a352e; }
.card-overline { font-size: 0.7rem; color: #c8a55a; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.5em; }
.card-title { font-size: 1rem; font-weight: 600; margin-bottom: 0.3em; letter-spacing: -0.01em; }
.card-title a { color: #e8e0d0; text-decoration: none; transition: color 0.2s; }
.card-title a:hover { color: #c8a55a; }
.card-desc { font-size: 0.85rem; color: #a89f91; font-weight: 300; line-height: 1.55; }

/* Pubs */
.pub { margin-bottom: 1.3em; padding-bottom: 1.3em; border-bottom: 1px solid #1e1c19; }
.pub:last-child { border-bottom: none; }
.pub-title { font-size: 0.95rem; font-weight: 500; letter-spacing: -0.01em; }
.pub-title a { color: #e8e0d0; text-decoration: none; transition: color 0.2s; }
.pub-title a:hover { color: #c8a55a; }
.pub-meta { font-size: 0.8rem; color: #a89f91; font-weight: 300; margin-top: 0.15em; }
.pub-desc { font-size: 0.85rem; color: #e8e0d0; font-weight: 300; line-height: 1.55; margin-top: 0.25em; }

/* Status block */
.status-bar {
  border: 1px solid #2a2520; border-radius: 6px; overflow: hidden;
  margin-bottom: 5em; font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Consolas', monospace;
  font-size: 0.82rem; background: #0d0d0c;
}
.status-header {
  padding: 0.55em 1.4em; font-size: 0.65rem; font-weight: normal; color: #3a352e;
  letter-spacing: 0.08em; border-bottom: 1px solid #1a1916; margin: 0;
}
.status-content { padding: 0.8em 1.4em; color: #a89f91; line-height: 1.7; }
.status-content .hl { color: #c8a55a; }

/* Footer */
.footer { margin-top: 4em; padding-top: 2em; border-top: 1px solid #2a2520; }
.footer-links { display: flex; gap: 1.5em; margin-bottom: 1.5em; }
.footer-links a { color: #a89f91; text-decoration: none; font-size: 0.85rem; transition: color 0.2s; }
.footer-links a:hover { color: #e8e0d0; }
.footer-meta {
  font-family: 'SF Mono', 'Cascadia Code', 'Fira Code', 'JetBrains Mono', 'Consolas', monospace;
  font-size: 0.68rem; color: #2a2520; line-height: 1.8;
}

/* Focus styles */
:focus-visible {
  outline: 2px solid #c8a55a;
  outline-offset: 2px;
}
a:focus-visible { border-radius: 2px; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 640px) {
  .container { padding: 48px 20px 80px; }
  .hero h1 { font-size: 2.2rem; }
  .hero-row { flex-wrap: wrap; gap: 1.5em; justify-content: center; }
  .hero-text { width: 100%; text-align: center; }
  .hero-text p { margin-left: auto; margin-right: auto; }
  .hero-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 1em; width: 100%; max-width: 320px; margin-left: auto; margin-right: auto; }
  .hero-cta .btn-primary, .hero-cta .btn-ghost { text-align: center; }
  .headshot { width: 120px; height: 150px; }
  .proof-bar { font-size: 0.72rem; }
  .proof-row { padding: 0.55em 1em; flex-wrap: wrap; }
  .proof-val { font-size: 0.68rem; }
  .status-bar { font-size: 0.75rem; }
  .status-content { padding: 0.8em 1em; }
  .card-grid { grid-template-columns: 1fr; }
  .topbar-links .mobile-hide { display: none; }
  .footer-links { flex-wrap: wrap; gap: 1em 1.5em; }
}
