:root{--bg:#0a0a0a;--fg:#f2f2f2;--muted:#858585;--rule:#262626;--tile-bg:#161616;--gutter:clamp(16px, 2.5vw, 32px);--gap:clamp(12px, 1.5vw, 24px);--font:"Helvetica Neue", Helvetica, Arial, sans-serif;--text-s:13px;--text-m:15px;--text-l:clamp(20px, 2.2vw, 28px);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--fg);font:400 var(--text-m) / 1.45 var(--font);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;display:flex}main{padding:0 var(--gutter) calc(var(--gutter) * 2);flex:1}a{color:inherit;text-decoration:none}a:hover,a:focus-visible{text-underline-offset:3px;text-decoration:underline}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}img,video,iframe{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2{margin:0;font-weight:400}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.empty{color:var(--muted);text-align:center;padding:20vh 0}.site-header{z-index:10;padding:var(--gutter);background:var(--bg);font-size:var(--text-m);justify-content:space-between;align-items:baseline;gap:24px;display:flex;position:sticky;top:0}.wordmark{letter-spacing:.01em;white-space:nowrap;font-weight:500}.site-nav{gap:32px;display:flex}.nav-group{gap:20px;margin:0;padding:0;list-style:none;display:flex}.site-nav a{color:var(--muted);transition:color .15s}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--fg);text-decoration:none}.menu-toggle{display:none}@media (width<=860px){.menu-toggle{display:block}.site-nav{inset:0;top:calc(var(--gutter) * 2 + 1.45em);padding:var(--gutter);background:var(--bg);font-size:var(--text-l);flex-direction:column;gap:32px;display:none;position:fixed}.menu-open .site-nav{display:flex}.menu-open{overflow:hidden}.nav-group{flex-direction:column;gap:8px}}.grid{gap:calc(var(--gap) * 2) var(--gap);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}@media (width<=1100px){.grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid{grid-template-columns:1fr}}.tile{display:block}.tile:hover{text-decoration:none}.tile-media{aspect-ratio:16/9;background:var(--tile-bg);position:relative;overflow:hidden}.tile-media img,.tile-media video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.tile-media video{opacity:0;transition:opacity .2s}.tile.playing video{opacity:1}.tile-caption{font-size:var(--text-s);flex-wrap:wrap;gap:0 10px;padding-top:10px;display:flex}.tile-meta{color:var(--muted)}.tile:hover .tile-title{text-underline-offset:3px;text-decoration:underline}.project{max-width:1400px;margin:0 auto}.player{width:min(100%, calc((100svh - 140px) * var(--ratio)));aspect-ratio:var(--ratio);background:#000;margin:0 auto;position:relative}.player img,.player iframe{object-fit:cover;border:0;width:100%;height:100%;position:absolute;inset:0}.play{place-items:center;display:grid;position:absolute;inset:0}.play svg{fill:#fff;backdrop-filter:blur(6px);background:#00000059;border-radius:50%;width:72px;height:72px;padding:18px;transition:transform .2s}.play:hover svg{transform:scale(1.08)}.project-header{padding:var(--gutter) 0 0}.project-header h1{font-size:var(--text-l);margin-bottom:6px;line-height:1.2}.project-meta{color:var(--muted);margin:0}.credits{gap:16px var(--gap);margin:var(--gutter) 0;padding-top:var(--gutter);border-top:1px solid var(--rule);font-size:var(--text-s);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.credits dt,.contact-list dt{color:var(--muted)}.credits dd,.contact-list dd{margin:0}.project .gallery{margin-top:calc(var(--gutter) * 1.5)}.pager{margin-top:calc(var(--gutter) * 2);padding-top:var(--gutter);border-top:1px solid var(--rule);justify-content:space-between;gap:24px;display:flex}.pager a:last-child{text-align:right}.gallery{columns:3;column-gap:var(--gap);margin:0;padding:0;list-style:none}.gallery.cols-2{columns:2}@media (width<=900px){.gallery{columns:2}}@media (width<=560px){.gallery,.gallery.cols-2{columns:1}}.gallery li{break-inside:avoid;margin-bottom:var(--gap)}.gallery-item{cursor:zoom-in;width:100%;display:block}.gallery-item img{background:var(--tile-bg);width:100%;height:auto}.gallery-caption{font-size:var(--text-s);color:var(--muted);margin:8px 0 0}.lightbox{background:var(--bg);width:100vw;max-width:none;height:100vh;max-height:none;color:var(--fg);border:0;margin:0;padding:0}.lightbox::backdrop{background:var(--bg)}.lightbox figure{height:100%;padding:64px var(--gutter);flex-direction:column;justify-content:center;align-items:center;gap:12px;margin:0;display:flex}.lightbox img{object-fit:contain;width:auto;max-height:calc(100vh - 160px)}.lightbox figcaption{font-size:var(--text-s);color:var(--muted)}.lb-close{top:var(--gutter);right:var(--gutter);position:absolute}.lb-prev,.lb-next{padding:16px var(--gutter);font-size:22px;position:absolute;top:50%;transform:translateY(-50%)}.lb-prev{left:0}.lb-next{right:0}.contact{gap:calc(var(--gutter) * 2);max-width:1200px;padding-top:var(--gutter);grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.contact:not(:has(.portrait)){grid-template-columns:minmax(0,720px)}@media (width<=760px){.contact{grid-template-columns:1fr}}.portrait{width:100%;height:auto}.contact h1{font-size:var(--text-l);margin-bottom:24px}.contact h2{font-size:var(--text-m);color:var(--muted);margin:40px 0 16px}.bio{max-width:60ch;margin:0 0 1em;font-size:clamp(16px,1.4vw,19px)}.contact-list{gap:16px;margin:32px 0 0;display:grid}.site-footer{padding:var(--gutter);font-size:var(--text-s);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px 24px;display:flex}.footer-links{gap:20px;display:flex}
