
:root{--bg:#0a0a0a;--text:#f1f3f5;--muted:#9aa0a6;--accent:#b6ffb8;--card:#121214;--line:#1d1f24}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.container{width:min(1100px,90vw);margin:0 auto}a{color:inherit}
.site-nav{position:sticky;top:0;z-index:50;background:rgba(10,10,10,.6);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.site-nav .container{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.site-nav .brand{font-weight:900;letter-spacing:.5px;color:var(--text);text-decoration:none}
.site-nav nav a{color:var(--text);text-decoration:none;margin-left:16px;padding:6px 10px;border-radius:8px;border-bottom:2px solid transparent}
.site-nav nav a.active{font-weight:800;border-color:var(--accent)}
.site-nav nav a:hover{background:var(--card)}
.site-nav nav a[href="resume.html"]{display:none !important}

.hero{padding:72px 0 30px}.display{font-size:clamp(40px,7.2vw,88px);line-height:.95;margin:0;font-weight:900;letter-spacing:-.02em}
.tagline{font-size:clamp(16px,2vw,20px);color:var(--muted);margin:14px 0 4px}.sub{color:var(--muted);margin:0 0 12px}
.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 6px}
.pill{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--muted);font-size:14px}
.pill.link{color:#0a0a0a;background:var(--accent);border-color:transparent}

.section{padding:32px 0;border-top:1px solid var(--line);margin-top:12px}
.section-title{font-weight:800;letter-spacing:.06em;color:#cdd4db;font-size:16px;margin:0 0 18px}

.prose p{color:#dfe3e6;max-width:70ch}
.grid{display:grid;gap:14px}.grid.two{grid-template-columns:1fr}.grid.three{grid-template-columns:1fr}
@media(min-width:800px){.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}}
.k-cards .card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}.mt12{margin-top:12px}

.entry{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:14px;border:1px solid var(--line);background:var(--card);border-radius:14px;margin-bottom:12px}
.entry .when{color:var(--muted);font-weight:600}.entry .role{color:#c0ffee}
.stack{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.stack li{background:#0f1115;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted);font-size:13px}

.project{padding:16px;border:1px solid var(--line);background:var(--card);border-radius:14px;margin-bottom:12px}
.project-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.project h3{margin:0}.years{color:var(--muted);font-size:14px}
.links .underline{text-decoration:underline}

.contact-cards{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:700px){.contact-cards{grid-template-columns:repeat(3,1fr)}}
.card{display:block;padding:16px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:var(--text);text-decoration:none}
.card span{color:var(--muted);display:block}.card strong{display:block;margin-top:4px}

.pdf-frame{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}

.footer{border-top:1px solid var(--line);margin-top:32px}
.footer .container{display:flex;justify-content:space-between;padding:16px 0;color:var(--muted);font-size:14px}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}
}

/* Build/version badge */
.version-badge{
  position:fixed; right:12px; bottom:10px;
  padding:6px 10px; border-radius:9999px;
  font-size:12px; line-height:1; font-weight:600;
  background:rgba(163,230,53,0.14);
  color:#c7f36b; border:1px solid rgba(163,230,53,0.35);
  backdrop-filter:saturate(120%) blur(4px);
  z-index:9999; pointer-events:none;
}
