.bp-portfolio{padding-top:3rem}.bp-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:3rem}.bp-filters button,.bp-more button{background:transparent;color:var(--color-text-muted);border:var(--bp-border);padding:.75rem 1.1rem;min-height:44px;font-size:.8rem}.bp-filters button[aria-pressed=true]{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.bp-masonry{columns:4;column-gap:1.75rem}.bp-gallery-item{break-inside:avoid;margin:0 0 2rem}.bp-gallery-item a{position:relative;display:block;overflow:hidden}.bp-gallery-item img{width:100%;height:auto;transition:transform .6s ease}.bp-gallery-item a:hover img{transform:scale(1.025)}.bp-gallery-item a>span{position:absolute;bottom:1rem;right:1rem;background:var(--color-bg);padding:.1rem .6rem}.bp-gallery-item figcaption{font-size:.72rem;margin-top:.8rem;color:var(--color-text-muted)}.bp-more{text-align:center;margin-top:3rem}.bp-lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;inset:0;margin:0;border:0;padding:4rem 5rem;background:rgba(8,12,17,.97);color:var(--color-text);overflow:hidden}.bp-lightbox::backdrop{background:rgba(0,0,0,.9)}.bp-lightbox[open]{display:grid;grid-template-columns:50px 1fr 50px;align-items:center;gap:1rem}.bp-lightbox figure{min-width:0;text-align:center}.bp-lightbox img{display:block;object-fit:contain;width:auto;height:auto;max-width:100%;max-height:77dvh;margin:auto}.bp-lightbox figcaption{margin-top:1rem;font-size:.85rem}.bp-lightbox button{width:48px;height:48px;border:var(--bp-border);color:var(--color-text);background:var(--color-bg);font-size:1.5rem}.bp-lightbox-close{position:absolute;right:2rem;top:1rem}.bp-lightbox button:hover{background:var(--color-surface)}
@media(max-width:1024px){.bp-masonry{columns:2;column-gap:1rem}.bp-lightbox{padding:4rem 1rem}.bp-lightbox[open]{grid-template-columns:44px 1fr 44px;gap:.5rem}}
@media(max-width:600px){.bp-masonry{columns:1}.bp-filters{gap:.4rem}.bp-filters button{font-size:.72rem;padding:.65rem .8rem}.bp-lightbox[open]{display:flex;align-items:center;justify-content:center;padding:4rem 1rem 7rem}.bp-lightbox-prev,.bp-lightbox-next{position:absolute;bottom:2rem}.bp-lightbox-prev{left:calc(50% - 60px)}.bp-lightbox-next{right:calc(50% - 60px)}.bp-lightbox img{max-height:65dvh}}

.bp-gallery-item{scroll-margin-top:calc(var(--header-height) + 2rem)}

/* Redesign: the portfolio on white, like a printed catalogue. */
.bp-portfolio{padding-top:clamp(4rem,7vw,7rem)}

.bp-portfolio-head{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(2rem,4vw,3rem)}
.bp-portfolio-head h2{font-size:clamp(2rem,3.4vw,3.5rem);line-height:1.08;letter-spacing:-.04em;text-wrap:balance}
.bp-portfolio-head>p{color:var(--color-text-muted);line-height:1.75;max-width:480px}
.bp-filters{gap:.5rem;margin-bottom:clamp(2rem,3.5vw,3rem);padding-bottom:clamp(1.5rem,2.5vw,2rem);border-bottom:1px solid var(--color-border)}
.bp-filters button{border-radius:999px;border:1px solid var(--color-border);color:var(--color-text);padding:.6rem 1.1rem;font-size:.85rem;display:inline-flex;align-items:center;gap:.5rem;transition:border-color .3s,background .3s}
.bp-filters button span{font-size:.72rem;color:var(--color-text-muted)}
.bp-filters button:hover{border-color:var(--color-text)}
.bp-filters button[aria-pressed=true]{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}
.bp-filters button[aria-pressed=true] span{color:#ffffffa6}
.bp-masonry{column-gap:1.25rem}
.bp-gallery-item{margin-bottom:1.75rem}
.bp-gallery-item a{border-radius:var(--radius-card);background:var(--color-surface)}
.bp-gallery-item a>span{display:grid;place-items:center;width:38px;height:38px;padding:0;border-radius:50%;background:#fff;color:var(--bp-ink);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.bp-gallery-item a:hover>span,.bp-gallery-item a:focus-visible>span{opacity:1;transform:none}
.bp-gallery-item figcaption{font-size:.8rem;line-height:1.5;margin-top:.7rem}
.bp-lightbox{color:#f5f1e9;--color-text:#f5f1e9;--color-bg:#0c0e11;--color-surface:#15181c;--color-border:#343b43}
@media(max-width:900px){.bp-portfolio-head{grid-template-columns:1fr;gap:1rem}}
@media(hover:none){.bp-gallery-item a>span{opacity:1;transform:none}}
@media(max-width:600px){.bp-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);width:auto}.bp-filters button{flex:none}}
