:root{--bg:#0b0b0b;--fg:#ededed;--muted:#a2a2a2;--accent:#d4ff00;--on-accent:#0b0b0b;--hairline:#363636;--font:var(--font-dm-sans);--text:.875rem;--caption:.8125rem;--lh:1.3;--lh-prose:1.55;--gap-caption:16px;--gap-in:8px;--gap-between:96px;--gap-in-m:8px;--gap-between-m:64px;--pad-x:24px;--max-w:2000px}html{background:var(--bg);scrollbar-gutter:stable}body{font-family:var(--font);font-weight:400;font-size:var(--text);line-height:var(--lh);color:var(--fg);margin:0}a{color:var(--fg);text-decoration:none;transition:color .15s}a:hover,a.email{color:var(--accent)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn-accent{background:var(--accent);color:var(--on-accent);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.5rem 1.25rem}.name{font-size:var(--text);margin:0;font-weight:400}.work img,.project img{object-fit:cover;width:100%;height:100%;display:block}.work picture,.project picture{width:100%;height:100%;display:block}.site-header{margin-bottom:6rem;padding-top:1.25rem}.top{justify-content:space-between;margin-bottom:23.75rem;display:flex}.intro{gap:var(--gap-in);display:flex}.intro-left,.intro-right{flex:1 1 0}.intro p{max-width:44ch;line-height:var(--lh-prose);margin:0 0 .75rem}.intro p.tagline{max-width:19rem}.status{margin-top:1.25rem}.divider{font-size:var(--caption);color:var(--muted);padding-top:4rem}@media (width<=639px){.site-header{padding-top:2rem}.intro{flex-direction:column;gap:2rem}.top{margin-bottom:5rem}}.filters{margin-bottom:var(--gap-between);flex-wrap:wrap;gap:8px;display:flex}.pill{font-family:var(--font);font-size:var(--caption);color:var(--muted);border:1px solid var(--hairline);cursor:pointer;background:0 0;border-radius:999px;padding:5px 14px;transition:color .15s,border-color .15s}.pill:hover{color:var(--fg);border-color:var(--muted)}.pill.is-active{color:var(--bg);background:var(--fg);border-color:var(--fg)}@media (width<=639px){.filters{margin-bottom:var(--gap-between-m)}}.wall{max-width:var(--max-w);padding:0 var(--pad-x);margin:0 auto}.wall-empty{color:var(--muted);font-size:var(--caption);padding:4rem 0}.work{margin-bottom:var(--gap-between)}.row{gap:var(--gap-in);align-items:flex-start;display:flex}.work figure{min-width:0;aspect-ratio:var(--ar);flex:var(--grow) 1 0;margin:0}@media (width>=640px) and (width<=1024px){.row{flex-wrap:wrap}.work figure{flex:1 1 calc(50% - var(--gap-in) / 2)}}@media (width<=639px){.row{gap:var(--gap-in-m);flex-direction:column;align-items:stretch}.work figure{flex:none}.work{margin-bottom:var(--gap-between-m)}}.caption{font-size:var(--caption);color:var(--muted);margin-top:var(--gap-caption);flex-direction:column;gap:0;display:flex}.cap-title{color:var(--fg)}.cap-line{flex-direction:column;gap:0;display:flex}.cap-meta{color:var(--muted)}.swatches{gap:6px;margin-top:10px;display:flex}.swatch{border:1px solid var(--hairline);background:var(--c);cursor:pointer;border-radius:2px;width:16px;height:16px;padding:0;transition:transform .12s;position:relative}.swatch:hover{transform:scale(1.15)}.swatch.copied:after{content:"copied";color:var(--muted);white-space:nowrap;pointer-events:none;font-size:10px;position:absolute;bottom:150%;left:50%;transform:translate(-50%)}.project .caption{margin-bottom:3rem}.live{color:var(--accent);margin-top:1rem;display:inline-block}.about{gap:var(--gap-in);padding-top:10rem;display:flex}.about-label,.about-body{flex:1 1 0}.about-label{color:var(--muted)}.about-body p{max-width:44ch;line-height:var(--lh-prose);margin:0 0 1rem}.about-cta{padding-top:2rem}.site-footer{font-size:var(--caption);justify-content:space-between;align-items:baseline;padding:10rem 0 2rem;display:flex}.social{gap:1.5rem;display:flex}@media (width<=639px){.about,.site-footer{flex-direction:column;gap:1rem;padding-top:5rem}.social{gap:1rem}}.project{max-width:var(--max-w);padding:4rem var(--pad-x) 6rem;margin:0 auto}.back{color:var(--muted);margin-bottom:3rem;display:inline-block}.back:hover{color:var(--accent)}.project-frames{gap:var(--gap-in);flex-direction:column;display:flex}.project figure{margin:0}.row-link{color:inherit;display:block}.row-link:hover{opacity:.92}.reveal figure{opacity:0;transition:opacity .6s,transform .6s;transition-delay:calc(var(--i) * 80ms);transform:translateY(24px)}.reveal.is-visible figure{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal figure{opacity:1;transition:none;transform:none}}
