:root{--bg: #fbfaf8;--surface: #ffffff;--border: #e4e0d9;--text: #1c1a17;--text-dim: #6b6659;--accent: #1f6f5c;--live: #2e8b62;--planned: #a09884;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}@media(prefers-color-scheme:dark){:root{--bg: #131311;--surface: #1b1b18;--border: #302f2a;--text: #edeae4;--text-dim: #9a958a;--accent: #5fbfa3;--live: #4fb98a;--planned: #6d675a}}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}.page{max-width:40rem;margin:0 auto;padding:5rem 1.5rem 4rem}.masthead{margin-bottom:4rem}.masthead__title{font-family:var(--font-mono);font-size:clamp(1.75rem,6vw,2.25rem);font-weight:600;letter-spacing:-.02em;margin:0 0 .75rem}.masthead__tagline{color:var(--text-dim);margin:0;max-width:32rem}.section-heading{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin:0 0 1rem}.projects{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.project{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.25rem 1.125rem}.project__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.375rem}.project__name{font-family:var(--font-mono);font-size:1.0625rem;font-weight:600}.project__name--inert{color:var(--text-dim)}.project__blurb{margin:0;color:var(--text-dim);font-size:.9375rem}.project__repo{display:inline-block;margin-top:.75rem;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-dim)}.project__repo:hover{color:var(--accent)}.status{display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim)}.status__dot{width:6px;height:6px;border-radius:50%;background:var(--planned)}.status--live .status__dot{background:var(--live);box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 20%,transparent)}.footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--border);color:var(--text-dim);font-size:.875rem}.footer p{margin:0}
