*{box-sizing:border-box}body{margin:0;font-family:Manrope,Arial,sans-serif;color:#111;background:#fff}a{color:inherit;text-decoration:none}header{display:flex;justify-content:space-between;padding:26px clamp(24px,6vw,88px) 16px}.brand{font-weight:800;font-size:20px}.brand small{display:block;margin-top:7px;font:500 10px "DM Mono",monospace;letter-spacing:1px}nav{display:flex;gap:34px;font-size:13px;font-weight:700}nav a{border-bottom:1px solid transparent;padding-bottom:4px}nav .active,nav a:hover{border-color:#111}main{margin:auto;padding:18px clamp(24px,6vw,88px) 100px}.eyebrow{font:500 11px "DM Mono",monospace;letter-spacing:1px}h1{margin:12px 0 42px;font:500 clamp(42px,6vw,82px)/.95 Archivo,sans-serif;letter-spacing:-4px;text-transform:uppercase}.filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:42px}.filters button{padding:9px 13px;border:1px solid #ddd;background:#fff;font:500 11px "DM Mono",monospace;cursor:pointer}.filters .active,.filters button:hover{background:#111;color:#fff;border-color:#111}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.card img{display:block;width:100%;aspect-ratio:1.25;object-fit:cover}.card div{display:flex;justify-content:space-between;padding:13px 0}.card h2{margin:0;font-size:18px}.card p{margin:5px 0 0;font:500 10px "DM Mono",monospace;text-transform:uppercase}.arrow{color:#698800;font-size:20px}footer{text-align:center;padding:20px;font:500 10px "DM Mono",monospace}@media(max-width:800px){header{padding:22px 24px 14px}nav{gap:18px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){main{padding:16px 24px 60px}.grid{grid-template-columns:1fr}}
.card .project-note{text-transform:none}
nav{padding-top:3px}header{align-items:flex-start}.brand{letter-spacing:-.9px;line-height:1.05}
footer{position:fixed!important;z-index:20;right:0;bottom:0;left:0;display:flex!important;justify-content:center;padding:12px clamp(24px,6vw,88px) 16px!important;color:#62665f;background:#fff;font:500 10px "DM Mono",monospace!important;letter-spacing:.5px}
footer{color:#62665f!important;background:#fff!important;letter-spacing:.5px!important}
.project-image{display:block;width:100%;aspect-ratio:1.3;object-fit:cover;background:#eee}
#title{font-size:32px;font-weight:300;letter-spacing:-1px}
.project-title-line.has-credit{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:12px}.project-title-line.has-credit #title{margin-right:0}.project-title-line.has-credit p{margin:0 0 42px}
.project-title-line.has-description #title{margin-bottom:10px}.project-title-line.has-description p{margin-top:0}
.project-saving{font-weight:700;text-decoration:underline}
.menu-button{display:none;padding:0;border:0;background:none;color:#111;font:700 13px Manrope,Arial,sans-serif;cursor:pointer}
@media(max-width:700px){header{position:relative}.menu-button{display:block}.menu-button:hover{background:none;color:#111}.menu-button:focus-visible{outline:1px solid #111;outline-offset:4px}nav{display:none;position:absolute;z-index:30;top:70px;right:24px;flex-direction:column;gap:16px;padding:17px;background:#fff;border:1px solid #d8d9d3}nav.open{display:flex}}
@media(max-width:1200px){#grid,#gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#grid,#gallery{grid-template-columns:1fr}}
.project-photo-button{display:block;width:100%;padding:0;border:0;background:#eee;cursor:zoom-in}
.photo-viewer{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(255,255,255,.35);overflow:hidden;overscroll-behavior:contain}
.viewer-open{overflow:hidden!important;overscroll-behavior:none}
.photo-viewer::backdrop{background:rgba(255,255,255,.2);backdrop-filter:blur(2px)}
.viewer-image{position:absolute;top:50%;left:50%;display:block;max-width:calc(100% - 190px);max-height:calc(100% - 80px);object-fit:contain;transform:translate(-50%,-50%)}
.viewer-close,.viewer-fitwidth,.viewer-previous,.viewer-next{position:fixed;z-index:2;border:0;background:#fff;color:#111;font:500 12px "DM Mono",monospace;cursor:pointer}
.viewer-close{top:78px;right:20px;padding:10px 12px}
.viewer-fitwidth{top:78px;right:76px;display:grid;width:44px;height:44px;padding:0;place-items:center;background:transparent}
.fit-width-icon{position:relative;display:block;width:18px;height:13px;overflow:hidden;border:2px solid currentColor;background:rgba(255,255,255,.5);box-shadow:0 0 0 3px rgba(255,255,255,.35);filter:drop-shadow(0 0 2px rgba(255,255,255,.5))}
.fit-width-icon i{position:absolute;top:50%;width:4.9px;height:1.5px;transform:translateY(-50%)}
.fit-width-icon i::before,.fit-width-icon i::after{position:absolute;top:0;width:4.9px;height:1.5px;background:currentColor;content:""}
.fit-chevron-left{left:0}.fit-chevron-left::before,.fit-chevron-left::after{left:0;transform-origin:left center}.fit-chevron-left::before{transform:rotate(30deg)}.fit-chevron-left::after{transform:rotate(-30deg)}
.fit-chevron-right{right:0}.fit-chevron-right::before,.fit-chevron-right::after{right:0;transform-origin:right center}.fit-chevron-right::before{transform:rotate(30deg)}.fit-chevron-right::after{transform:rotate(-30deg)}
.viewer-previous,.viewer-next{top:50%;padding:12px 14px;transform:translateY(-50%)}
.viewer-previous{left:20px}.viewer-next{right:20px}
.viewer-close{font-size:25px;line-height:1}.viewer-previous,.viewer-next{font-size:25px;line-height:1}
.viewer-count{position:fixed;z-index:2;right:0;bottom:18px;left:0;color:#111;font:500 11px "DM Mono",monospace;text-align:center;pointer-events:none;-webkit-text-stroke:4px rgba(255,255,255,.5);paint-order:stroke fill}
@media(max-width:600px){.viewer-image{max-width:calc(100% - 32px);max-height:calc(100% - 130px)}.viewer-previous,.viewer-next{padding:10px 8px;background:rgba(255,255,255,.9)}.viewer-previous{left:8px}.viewer-next{right:8px}.viewer-close{top:12px;right:12px}}
.photo-viewer .viewer-close,.photo-viewer .viewer-previous,.photo-viewer .viewer-next{display:grid;width:44px;height:44px;padding:0;place-items:center;border-radius:0;background:transparent;backdrop-filter:none;color:#111;-webkit-text-stroke:6px rgba(255,255,255,.5);paint-order:stroke fill}
.photo-viewer.is-fit-width{overflow:auto}
.photo-viewer.is-fit-width .viewer-image{position:relative;top:auto;left:auto;display:block;width:100%;height:auto;max-width:none;max-height:none;margin:0;transform:none}
@media(max-width:600px){.viewer-close{top:72px}.viewer-fitwidth{top:72px;right:64px}}
.photo-viewer:not(.is-fit-width) .viewer-image{max-height:100%}
