:root{--bg:#0b1020;--bg2:#121a33;--card:#151e3a;--fg:#e8ecf8;--muted:#9aa6c7;--line:#25305a;--accent:#ff9f43;--accent2:#4dd0e1;--chip:#1b2650}@media(prefers-color-scheme:light){:root{--bg:#f6f7fb;--bg2:#ffffff;--card:#ffffff;--fg:#141a33;--muted:#566086;--line:#dde2f0;--accent:#c25a00;--accent2:#00798c;--chip:#eaeefb}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.65 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent2)}.wrap{max-width:60rem;margin:0 auto;padding:0 1.25rem}header.top{position:sticky;top:0;z-index:5;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}header.top .wrap{display:flex;align-items:center;justify-content:space-between;height:3.6rem}.brand{font-weight:700;letter-spacing:.02em;color:var(--fg);text-decoration:none}.brand span{color:var(--accent)}nav a{color:var(--muted);text-decoration:none;margin-left:1.25rem;padding:.25rem 0;border-bottom:2px solid transparent}nav a:hover,nav a[aria-current=page]{color:var(--fg);border-color:var(--accent)}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}h2{font-size:1.5rem;margin-top:3rem}h2:after{content:"";display:block;width:2.5rem;height:3px;background:var(--accent);margin-top:.5rem;border-radius:2px}.muted{color:var(--muted)}.hero{padding:4.5rem 0 3rem;background:radial-gradient(60rem 24rem at 80% -10%,color-mix(in srgb,var(--accent2) 22%,transparent),transparent),radial-gradient(40rem 20rem at 0% 0%,color-mix(in srgb,var(--accent) 18%,transparent),transparent)}.hero-grid{display:grid;grid-template-columns:1fr 13rem;gap:2.5rem;align-items:center}.headshot{grid-column:2;grid-row:1;inline-size:100%;block-size:auto;aspect-ratio:1;object-fit:cover;border-radius:50%;border:3px solid var(--accent)}@media(max-width:46rem){.hero-grid{grid-template-columns:1fr;gap:1.5rem}.headshot{grid-column:1;grid-row:1;inline-size:8rem}}.hero h1{font-size:clamp(2.2rem,6vw,3.6rem)}.hero .role{font-size:1.25rem;color:var(--accent);font-weight:600}.hero p.lead{max-width:42rem;font-size:1.1rem}.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0}.btn{display:inline-block;padding:.65rem 1.1rem;border-radius:.6rem;border:1px solid var(--line);color:var(--fg);text-decoration:none;font-weight:600;background:var(--card)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#1a1000}.btn:hover{filter:brightness(1.1)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1rem;margin:2rem 0}.stat{background:var(--card);border:1px solid var(--line);border-radius:.9rem;padding:1rem 1.1rem}.stat b{display:block;font-size:2rem;color:var(--accent2);line-height:1.1}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0 1rem}.chip{background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:.15rem .7rem;font-size:.88rem}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}.card{background:var(--card);border:1px solid var(--line);border-radius:.9rem;padding:1.1rem 1.2rem}.card h3 a{color:var(--fg);text-decoration:none}.card h3 a:hover{color:var(--accent)}.timeline{border-left:2px solid var(--line);margin-left:.4rem;padding-left:1.4rem}.job{position:relative;margin:0 0 1.8rem}.job:before{content:"";position:absolute;left:-1.95rem;top:.55rem;width:.75rem;height:.75rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--bg)}.job h3{font-size:1.1rem}.job ul{margin:.4rem 0 0;padding-left:1.1rem}.job li{margin:.25rem 0}.badge{display:inline-block;font-size:.75rem;padding:.05rem .5rem;border-radius:.4rem;background:color-mix(in srgb,var(--accent2) 22%,transparent);color:var(--accent2);margin-left:.4rem;vertical-align:middle}.context{margin:0 0 .35rem;color:var(--accent2);font-size:.9rem;font-weight:600}.card h3{font-size:1.1rem}.card p{margin:.4rem 0 0}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(24rem,100%),1fr))}.project{display:flex;flex-direction:column}.project .chips{margin-top:.8rem}.project .links{margin-top:auto;padding-top:.4rem;display:flex;gap:1.1rem;font-weight:600}.series{margin-top:1rem}a.card.series{display:block;color:inherit;text-decoration:none;margin:1.5rem 0}a.card.series:hover h3{color:var(--accent)}.parts{margin:1rem 0 0;padding-left:1.4rem}.parts li{margin:.9rem 0 0}.parts li::marker{color:var(--accent);font-weight:700}.parts li>a{font-weight:600}.parts p{margin:.15rem 0 0;font-size:.95rem}.prose{max-width:46rem}.prose h1{font-size:clamp(1.9rem,5vw,2.6rem)}.prose .lead{font-size:1.15rem;margin-top:.25rem}.prose h2{font-size:1.35rem}.prose img{max-width:100%;height:auto;border-radius:.6rem;border:1px solid var(--line)}.prose pre{padding:1rem 1.1rem;border-radius:.6rem;border:1px solid var(--line);overflow-x:auto;font-size:.86rem;line-height:1.5}.prose code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em}.prose :not(pre)>code{background:var(--chip);border:1px solid var(--line);border-radius:.3rem;padding:.05rem .3rem}.prose blockquote{margin:1.5rem 0;padding:.8rem 1.1rem;border-left:3px solid var(--accent);background:var(--card);border-radius:0 .6rem .6rem 0}.prose blockquote p{margin:0}.pager{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font-weight:600}footer.foot{margin-top:4rem;padding:2rem 0;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}.page{padding-top:2.5rem}@media(max-width:36rem){nav a{margin-left:.8rem}}
