:root{--bg:#0b0b0b;--fg:#ededed;--muted:#a2a2a2;--accent:#d4ff00;--on-accent:#0b0b0b;--hairline:#363636;--font:var(--font-dm-sans);--text:.8rem;--caption:.75rem;--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}@media (width<=639px){:root{--pad-x:16px}}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:clamp(20rem,22vh,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{flex-wrap:wrap;gap:8px;margin-bottom:3rem;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:2rem}}.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);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{color:var(--muted);max-width:44ch;line-height:var(--lh-prose);margin:0 0 1rem}.about-body .highlight{color:var(--fg)}.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){.site-footer{flex-direction:column;align-items:flex-start;gap:1rem;padding-top:5rem}.to-top{align-self:flex-end}.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{flex-direction:column;gap:2rem;display:flex}.project figure{margin:0}.row-link{color:inherit;display:block}.project-header{gap:var(--gap-in);margin-bottom:4rem;display:flex}.ph-title,.ph-meta{flex:1 1 0}.ph-title{flex-direction:column;display:flex}.ph-name{color:var(--fg)}.ph-series{color:var(--muted)}.ph-meta{margin:0}.ph-row{padding:.5rem 0;display:flex}.ph-row:first-child{padding-top:0}.ph-row dd .swatches{margin-top:0}.ph-row dt{color:var(--muted);flex:0 0 30%}.ph-row dd{color:var(--fg);margin:0}@media (width<=639px){.project-header{flex-direction:column;gap:2rem}.ph-row dt{flex-basis:40%}}@keyframes rise-in{0%{opacity:0;transform:translateY(var(--rise,24px))}to{opacity:1;transform:translateY(0)}}.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)}.work.load-reveal{animation:.6s both rise-in}.site-header .top,.site-header .intro-left,.site-header .intro-right{--rise:16px;animation:.7s both rise-in}.site-header .top{animation-delay:0s}.site-header .intro-left{animation-delay:.12s}.site-header .intro-right{animation-delay:.2s}.pill{--rise:16px;animation:.5s both rise-in;animation-delay:calc(.28s + var(--i,0) * 50ms)}@media (prefers-reduced-motion:reduce){.reveal figure,.work.load-reveal,.site-header .top,.site-header .intro-left,.site-header .intro-right,.pill{opacity:1;transition:none;animation:none;transform:none}}.load-more:not([hidden]){margin:0 auto var(--gap-between);display:block}.work[data-beyond=true]{display:none}.badge{border:1px solid var(--accent);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;align-self:flex-start;margin-top:2px;padding:2px 5px;font-size:8px;line-height:1.4}.cap-title{color:var(--fg);align-items:center;gap:.5rem;display:flex}.project-nav{font-size:var(--caption);justify-content:space-between;align-items:center;gap:1rem;margin-top:6rem;display:flex}.pn-link{flex-direction:column;gap:2px;display:flex}.pn-next{text-align:right}.pn-label{color:var(--muted)}.pn-title{color:var(--fg)}.pn-link:hover .pn-title{color:var(--accent)}.pn-back{color:var(--muted)}.pn-back:hover{color:var(--accent)}@media (width<=1024px){.project-nav{flex-direction:column;align-items:flex-start;gap:1.5rem;margin-top:4rem}.pn-next{text-align:right;align-self:stretch}}
