
:root{
  --bg: #0b1020;
  --bg-soft: #111830;
  --text: #e5e7eb;
  --muted: #9ca3af;
  --accent: #60a5fa;
  --card: #0f172a;
  --border: #1f2937;
  --input-bg: #0b1428;
  --input-border: #1f2937;
  --input-text: var(--text);
  --input-placeholder: #94a3b8;
}
/* Light theme overrides */
:root[data-theme="light"]{
  --bg: #f8fafc;
  --bg-soft: #ffffff;
  --text: #0b1020;
  --muted: #475569;
  --accent: #2563eb;
  --card: #ffffff;
  --border: #e2e8f0;
  --input-bg: #ffffff;
  --input-border: #cbd5e1;
  --input-text: #0b1020;
  --input-placeholder: #64748b;
}

/* Light theme overrides (activates when <html data-theme="light"> ...) */
html[data-theme="light"] {
  --bg: #ffffff;
  --bg-soft: #f7f7f9;
  --text: #0b1020;
  --muted: #475569;
  --accent: #2563eb;
  --card: #ffffff;
  --border: #e5e7eb;
}


*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);}
a{color:var(--accent);text-decoration:none}
.container{max-width:1000px;margin:0 auto;padding:2rem}
.site-header,.site-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 2rem;background:var(--bg-soft);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--border)}
.site-footer{position:static;border-top:1px solid var(--border);border-bottom:none;margin-top:4rem}
.logo{font-weight:800;letter-spacing:0.5px}
.site-nav a{margin:0 .6rem;padding:.4rem .6rem;border-radius:8px}
.site-nav a:hover{background:var(--card)}
.nav-toggle{display:none;background:transparent;border:1px solid var(--border);border-radius:8px;padding:.4rem .6rem;color:var(--text)}
.theme-toggle{background:transparent;border:1px solid var(--border);border-radius:999px;padding:.4rem .6rem;color:var(--text)}
.headline{font-size:clamp(2rem,5vw,3.2rem);line-height:1.1;margin:0 0 1rem}
.subhead{color:var(--muted);max-width:70ch}
.hero{padding:2rem 0}
.cta{display:flex;gap:.8rem;margin:1.2rem 0}
.btn{display:inline-block;border:1px solid var(--border);padding:.7rem 1rem;border-radius:12px}
.btn.primary{background:var(--accent);border-color:transparent;color:#0b1020;font-weight:700}
.btn.ghost{background:transparent}
.btn.small{padding:.5rem .8rem;border-radius:10px}
.quick-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem;padding:0;margin:1rem 0;list-style:none}
.quick-facts li{background:var(--card);border:1px solid var(--border);padding:.8rem 1rem;border-radius:12px}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:2rem}
.feature-grid article{background:var(--card);border:1px solid var(--border);padding:1rem;border-radius:14px}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem}
.prose h1,.prose h2,.prose h3{margin-bottom:.4rem}
.prose p{color:var(--text);max-width:75ch}
.prose .muted{color:var(--muted)}
.pill-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;list-style:none}
.pill-list li{border:1px solid var(--border);padding:.4rem .6rem;border-radius:999px;background:var(--card)}
.timeline .entry{border-left:2px solid var(--border);padding-left:1rem;margin:1rem 0}
.role{color:var(--accent)}
.contact-form{display:grid;gap:.8rem;max-width:560px}
/* theme-aware contact form */
.contact-form input,
.contact-form textarea{
  width:100%;
  padding:.7rem;
  border-radius:10px;
  border:1px solid var(--input-border);
  background:var(--input-bg);
  color:var(--input-text);
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder{
  color:var(--input-placeholder);
}

/* focus ring */
.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(96,165,250,.35);
}

/* fix Chrome/Safari autofill so it matches theme */
.contact-form input:-webkit-autofill,
.contact-form textarea:-webkit-autofill{
  -webkit-text-fill-color: var(--input-text) !important;
  box-shadow: 0 0 0 1000px var(--input-bg) inset !important;
  transition: background-color 9999s ease-out, color 9999s ease-out;
}

.footer-links a{margin:0 .5rem}
.hide-sm{display:inline}
@media (max-width: 840px){
  .site-header{position:sticky}
  .site-nav{display:none;flex-direction:column;gap:.5rem;position:absolute;top:60px;right:12px;background:var(--bg-soft);border:1px solid var(--border);padding:.8rem;border-radius:12px}
  .nav-toggle{display:inline-block}
  .hide-sm{display:none}
}
.accent{color:var(--accent)}
html, body, .card, .site-header, .site-footer { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
