:root{--bg:#fff;--ink:#000;--grey:#6b6b6b;--accent:#2a2aff}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:1.0625rem/1.6 ui-sans-serif,system-ui,"Helvetica Neue",Arial,sans-serif}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover,a:focus-visible{color:var(--accent)}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:62rem;margin:0 auto;padding:1.5rem 1.5rem 5rem}
header{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:1rem 2.5rem;padding-bottom:4rem}
.brand{font-size:1.5rem;font-weight:700;letter-spacing:-.03em;text-decoration:none}
nav{display:flex;gap:1.25rem;font-size:.95rem}
nav a{text-decoration:none;color:var(--grey)}
nav a:hover,nav a[aria-current="page"]{color:var(--ink)}
nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:.3em}
.contact{font-size:.95rem;text-align:right}
.lead{font-size:clamp(2.2rem,7vw,4.75rem);line-height:1.05;font-weight:600;letter-spacing:-.035em;max-width:14em;margin:3rem 0 0}
.text{max-width:38rem}
.text h2{font-size:1.5rem;letter-spacing:-.02em;margin:0 0 1rem}
.text section+section{margin-top:3.5rem}
.text p{margin:0 0 1.1rem}
.projects article{display:grid;grid-template-columns:8rem 1fr;gap:.5rem 1.5rem;margin-bottom:2.5rem;max-width:48rem}
.projects h2{font-size:1.15rem;line-height:1.3;margin:0 0 .35rem;letter-spacing:-.01em}
.projects p{margin:0 0 .6rem;max-width:36rem}
.when{color:var(--grey);font-size:.95rem;padding-top:.15rem}
@media(max-width:600px){
header{grid-template-columns:1fr auto;padding-bottom:2.5rem}
nav{grid-column:1/-1;grid-row:2}
.projects article{grid-template-columns:1fr}
.lead{margin-top:1.5rem}
}
.gigs section+section{margin-top:3.5rem}
.gigs h2{font-size:1.5rem;letter-spacing:-.02em;margin:0 0 1.25rem}
.gigs ul{list-style:none;margin:0;padding:0;max-width:48rem}
.gigs li{display:grid;grid-template-columns:8rem 1fr;gap:.25rem 1.5rem;margin-bottom:.9rem}
@media(max-width:600px){.gigs li{grid-template-columns:1fr}}
.contact a{display:inline}
.contact .links{display:flex;gap:1rem;justify-content:flex-end;margin-top:.15rem;font-size:.85rem}
.contact .links a{color:var(--grey);text-decoration:none}
.contact .links a:hover{color:var(--accent)}
