:root{color-scheme:dark;--rail:56px;--gap:16px;--paper:#f5f4f0;--accent:#dbff00}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#050505;color:var(--paper);font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0;background:transparent}button:hover,a:hover{color:var(--accent)}.rail{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--rail);background:var(--paper);color:#050505;display:flex;align-items:center;justify-content:space-between;flex-direction:column;padding:16px 0;overflow:hidden}.rail-brand,.rail-menu,.rail-bottom{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}.rail-brand{font-size:37px;line-height:1;font-weight:900;letter-spacing:-2.5px}.rail-menu{font-size:38px;font-weight:900;letter-spacing:-1.8px;padding:10px 0;display:flex;align-items:center;gap:14px}.rail-menu span:last-child{font-size:22px;font-weight:400}.rail-bottom{font-size:12px;letter-spacing:1.6px}.rail button:hover,.rail a:hover{color:#050505;opacity:.55}main{margin-left:var(--rail);padding:14px 18px 0}.masthead{padding-bottom:18px}h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(60px,9.05vw,220px);font-weight:900;line-height:.91;letter-spacing:-.068em;margin:0 0 24px -6px;white-space:nowrap}.subline{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;line-height:1;letter-spacing:.04em;text-transform:uppercase}.identity{display:flex;gap:22px}.identity span:last-child{color:#8a8a8a}.filters{display:flex;gap:20px;align-items:center}.filters button{padding:5px 0;text-transform:uppercase;font-size:12px;letter-spacing:.04em;color:#909090}.filters button[aria-pressed=true]{color:var(--paper);text-decoration:underline;text-underline-offset:5px}.filters button:hover{color:var(--accent)}.count{font-size:11px;color:#888;min-width:34px;text-align:right}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--gap);row-gap:29px}.project{min-width:0}.project[hidden]{display:none}.image-link{position:relative;display:block;overflow:hidden;width:100%;aspect-ratio:3/4;background:#191919;padding:0;text-align:left}.image-link img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease;object-position:var(--position,50% 50%)}.image-link:hover img{transform:scale(1.025)}.image-link:after{content:'↗';position:absolute;right:11px;bottom:8px;color:#fff;font-size:28px;opacity:0;transform:translate(-4px,4px);transition:opacity .2s,transform .2s}.image-link:hover:after{opacity:1;transform:none}.caption{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-top:10px}.caption h2{margin:0;font-size:clamp(18px,1.65vw,34px);line-height:1.08;font-weight:400;letter-spacing:-.035em}.caption h2 span{display:block;color:#a2a2a2;font-size:.67em;line-height:1.5;letter-spacing:-.01em}.project-number{font-size:10px;color:#757575;padding-top:3px}.footer{margin-top:70px;border-top:1px solid #333;padding:17px 0 24px;display:flex;justify-content:space-between;gap:16px;color:#999;font-size:12px}.footer a{color:var(--paper)}.overlay{position:fixed;inset:0 0 0 var(--rail);background:var(--paper);color:#050505;z-index:15;padding:25px 35px;display:flex;flex-direction:column;justify-content:space-between}.overlay[hidden]{display:none}.menu-top{display:flex;justify-content:space-between;font-size:12px;text-transform:uppercase}.close-menu{font-size:24px;padding:0}.menu-links{display:flex;flex-direction:column;align-items:flex-start;padding:30px 0}.menu-links a,.menu-links button{font-weight:900;font-size:clamp(45px,8vw,150px);line-height:1.04;letter-spacing:-.06em;padding:0;text-transform:uppercase}.overlay a:hover,.overlay button:hover{color:#777}.menu-foot{display:flex;justify-content:space-between;font-size:13px;line-height:1.5}dialog{border:0;padding:0;margin:0;background:#050505;color:var(--paper);width:100vw;max-width:100vw;height:100dvh;max-height:100dvh}dialog::backdrop{background:#050505}.viewer{height:100%;display:grid;grid-template-rows:auto 1fr auto;padding:20px 26px}.viewer-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;text-transform:uppercase}.viewer-close{font-size:22px}.viewer-image{min-height:0;display:flex;align-items:center;justify-content:center;padding:20px 40px}.viewer-image img{display:block;max-width:100%;max-height:100%;object-fit:contain}.viewer-bottom{display:flex;justify-content:space-between;align-items:center;font-size:16px}.viewer-controls{display:flex;gap:25px}.viewer-controls button{font-size:25px;padding:5px 10px}.viewer-original{font-size:12px;text-decoration:underline;text-underline-offset:3px}body.locked{overflow:hidden}.skip{position:fixed;left:65px;top:-100px;z-index:60;background:#fff;color:#000;padding:12px}.skip:focus{top:10px}
@media(min-width:1800px){:root{--rail:70px;--gap:22px}main{padding:18px 23px 0}.masthead{padding-bottom:23px}h1{margin-bottom:30px}.subline,.filters button{font-size:15px}.rail-brand{font-size:48px}.rail-menu{font-size:49px}.caption{padding-top:13px}.grid{row-gap:37px}}
@media(max-width:1050px){:root{--rail:48px;--gap:14px}main{padding:14px 15px 0}h1{font-size:8.8vw;margin-left:-3px}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rail-brand{font-size:32px}.rail-menu{font-size:33px}.identity{gap:12px}.caption h2{font-size:22px}.filters{gap:15px}}
@media(max-width:700px){:root{--rail:38px;--gap:11px}main{padding:14px 11px 0}h1{font-size:8.6vw;letter-spacing:-.07em;margin:0 0 20px -1px}.masthead{padding-bottom:14px}.rail{padding:14px 0}.rail-brand{font-size:26px;letter-spacing:-1.8px}.rail-menu{font-size:28px;letter-spacing:-1.4px}.rail-menu span:last-child{font-size:18px}.rail-bottom{font-size:9px}.subline{align-items:flex-start;gap:12px;flex-direction:column;font-size:9px}.identity{width:100%;justify-content:space-between}.filters{width:100%;gap:18px}.filters button{font-size:11px;padding:5px 0}.count{margin-left:auto;font-size:9px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.caption{padding-top:8px;gap:4px}.caption h2{font-size:17px}.caption h2 span{font-size:12px;line-height:1.5}.project-number{display:none}.footer{margin-top:40px;flex-direction:column;font-size:10px;gap:12px}.overlay{padding:20px 16px}.menu-links a,.menu-links button{font-size:12vw}.menu-foot{flex-direction:column;gap:15px;font-size:12px}.viewer{padding:12px}.viewer-image{padding:20px 0}.viewer-bottom{align-items:flex-start;font-size:14px;gap:12px;flex-wrap:wrap}.viewer-original{font-size:11px}.viewer-controls{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.overlay{background:#050505;color:#f5f4f0}.overlay a:hover,.overlay button:hover{color:#aaa}
.identity span{font-size:clamp(16px,1.5vw,24px);font-weight:700;letter-spacing:.015em}
/* Natural image proportions; each project fills the shortest masonry column. */
.grid{--columns:3;display:block;position:relative;column-count:var(--columns);column-gap:var(--gap)}
.project{display:inline-block;width:100%;break-inside:avoid;margin-bottom:29px;vertical-align:top}
.grid.is-masonry{column-count:auto}
.grid.is-masonry .project{position:absolute;top:0;left:0;width:calc((100% - (var(--columns) - 1)*var(--gap))/var(--columns));margin-bottom:0}
.image-link{aspect-ratio:auto;height:auto;background:#050505}
.image-link img{height:auto;object-fit:contain;mask-size:100% 100%;mask-repeat:no-repeat;mask-mode:alpha;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.image-link:hover img{transform:none;opacity:.9}
#viewer-img{mask-size:100% 100%;mask-repeat:no-repeat;mask-mode:alpha;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
@media(min-width:1800px){.project{margin-bottom:37px}}
@media(max-width:1050px){.grid{--columns:3}}
@media(max-width:700px){.grid{--columns:1}.project{margin-bottom:24px}}
.masthead .identity span{font-size:clamp(42px,4.8vw,78px);font-weight:700;letter-spacing:-.035em;color:var(--paper);transform:translateY(-7px)}
@media(max-width:700px){.masthead .identity span{font-size:21px}}.masthead{padding-bottom:46px}.menu-links{transform:translateY(-22px)}.viewer-top{display:grid;grid-template-columns:1fr auto 1fr}.viewer-top .viewer-close{justify-self:end}@media(max-width:700px){.masthead{padding-bottom:28px}.menu-links{transform:translateY(-12px)}}
@media(max-width:700px){.overlay{justify-content:flex-start;padding-top:38px}.overlay .menu-top,.overlay .menu-foot{display:none}.overlay .menu-links{transform:none;padding:0;gap:8px}.overlay .menu-links a{line-height:1.08}}
