:root{--bg:#0a0a0a;--fg:#ededed;--muted:#8a8a8a;--line:#262626;--card:#111;--accent:#38bdf8}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit;text-decoration:none}.wrap{max-width:720px;margin:0 auto;padding:12vh 24px 6vh}.intro h1{letter-spacing:-.02em;margin:0 0 .4rem;font-size:clamp(2rem,6vw,3rem)}.intro p{color:var(--muted);margin:0 0 3rem;font-size:1.1rem}.projects{gap:16px;display:grid}.card{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:22px;transition:border-color .15s,transform .15s;display:block}a.card:hover{border-color:#3f3f3f;transform:translateY(-2px)}.card-head{align-items:center;gap:10px;display:flex}.card-head h2{letter-spacing:-.01em;margin:0;font-size:1.25rem}.badge{text-transform:uppercase;letter-spacing:.05em;color:#04212e;background:var(--accent);border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600}.blurb{color:var(--muted);margin:.7rem 0 0;line-height:1.5}.tags{flex-wrap:wrap;gap:6px;margin-top:1rem;display:flex}.tag{color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 9px;font-size:.72rem}.card--soon{opacity:.55}.foot{color:var(--muted);margin-top:4rem;font-size:.85rem}.foot a:hover{color:var(--fg)}
