[hidden]{display:none!important}.portfolio-intro{padding:70px 6% 50px;display:grid;grid-template-columns:1.6fr 1fr;gap:60px;align-items:end;border-bottom:1px solid var(--line)}.portfolio-intro h1{font-size:clamp(40px,5vw,70px);letter-spacing:-3px;margin:0}.portfolio-intro>div>p:not(.eyebrow){max-width:440px}.portfolio-gallery{padding:30px 6% 70px}.gallery-toolbar{display:flex;gap:25px;justify-content:space-between;align-items:center;margin-bottom:30px}.filters{display:flex;flex-wrap:wrap;gap:8px}.filter{font:12px Arial,sans-serif;padding:10px 13px;background:transparent;color:var(--ink);border:1px solid #bbc2b8;cursor:pointer}.filter.active{background:var(--coal);color:white;border-color:var(--coal)}#result-count{white-space:nowrap;font-size:12px;margin:0;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 22px}.project-photo{display:block;position:relative;overflow:hidden;background:#e9e6dd;aspect-ratio:4/3}.project-photo img{height:100%;width:100%;object-fit:cover;display:block;transition:transform .25s}.project-photo:hover img{transform:scale(1.03)}.project-photo>span{position:absolute;right:10px;bottom:10px;font-size:10px;color:white;background:#222827d9;padding:5px 8px}.project-meta{padding-top:15px}.project-meta>span{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:var(--copper)}.project-meta h2{font-size:22px;letter-spacing:-.4px;margin:7px 0}.project-meta p{font-size:12px;color:var(--muted);margin:0}#photo-viewer{border:0;padding:0;background:#18201e;color:white;width:min(1200px,96vw);max-width:none;max-height:96vh;overflow:auto}#photo-viewer::backdrop{background:#07110eea}.viewer-shell{padding:18px}.viewer-top{display:flex;justify-content:flex-end;gap:12px;align-items:center;margin-bottom:12px}.viewer-top p{margin:0 auto 0 0;font-size:12px}.viewer-top button,.arrow{background:transparent;color:white;border:1px solid #647168;padding:10px 13px;cursor:pointer;font:12px Arial,sans-serif}.viewer-stage{display:grid;grid-template-columns:45px minmax(0,1fr) 45px;gap:12px;align-items:center}.viewer-stage img{width:100%;height:65vh;object-fit:contain;background:#101714}.arrow{font-size:34px;padding:8px 0}.viewer-caption{padding:18px 57px 0}.viewer-caption h2{font-size:24px;letter-spacing:0;margin:0 0 8px}.viewer-caption p{font-size:12px;margin:0 0 6px}.viewer-caption .small{color:#bac4bd}.photo-preview{padding:65px 6%;border-bottom:1px solid var(--line)}.photo-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.photo-preview-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.photo-preview-grid p{font-size:12px;margin-top:10px}.photo-preview .section-heading{margin-bottom:30px}@media(max-width:850px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-intro{grid-template-columns:1fr;gap:25px}}@media(max-width:600px){.portfolio-intro{padding-top:45px}.portfolio-intro h1{letter-spacing:-1.8px;font-size:42px}.project-grid{grid-template-columns:1fr}.gallery-toolbar{display:block}#result-count{margin-top:15px}.viewer-shell{padding:10px}.viewer-stage{grid-template-columns:30px minmax(0,1fr) 30px;gap:5px}.viewer-stage img{height:53vh}.viewer-caption{padding:15px 0 0}.viewer-top{gap:6px}.viewer-top button{font-size:10px;padding:9px 8px}.photo-preview-grid{grid-template-columns:1fr}.photo-preview-grid img{aspect-ratio:16/10}.project-meta h2{font-size:24px}body:has(#photo-viewer[open]){overflow:hidden}}@media(prefers-reduced-motion:reduce){.project-photo img{transition:none}}
@media(max-width:650px){.site-header nav a{display:none}.site-header nav a[href="/portfolio.html"],.site-header nav a[href="#services"],.site-header nav a[href="/#services"]{display:block}}

.filter{min-height:44px}.viewer-top button,.arrow{min-height:44px;min-width:44px}@media(max-width:650px){.portfolio-page .site-header nav{display:flex;flex-direction:row;justify-content:space-between;gap:12px;flex-basis:100%;padding-top:8px;margin-top:12px}.portfolio-page .site-header nav a:nth-child(n){display:block!important;font-size:13px}.portfolio-page{padding-bottom:0}.viewer-stage{grid-template-columns:44px minmax(0,1fr) 44px}.viewer-caption .small{font-size:12px}}
