.bcps-portfolio{
    --bcps-gap-x:28px;
    --bcps-gap-y:42px;
    width:100%;
    color:#111;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.bcps-filters{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:0 0 38px;
}
.bcps-filters button{
    appearance:none;
    border:1px solid #dedede;
    border-radius:999px;
    background:#fff;
    color:#161616;
    font-family:inherit;
    font-size:12px;
    font-weight:650;
    letter-spacing:.01em;
    line-height:1;
    padding:11px 16px;
    cursor:pointer;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.bcps-filters button:hover{
    border-color:#111;
    transform:translateY(-1px);
}
.bcps-filters button.is-active{
    background:#111;
    color:#fff;
    border-color:#111;
}
.bcps-grid{
    display:grid;
    grid-template-columns:repeat(var(--bcps-columns),minmax(0,1fr));
    column-gap:var(--bcps-gap-x);
    row-gap:var(--bcps-gap-y);
    align-items:stretch;
}
.bcps-card{
    min-width:0;
    display:flex;
    flex-direction:column;
    height:100%;
    transition:opacity .22s ease,transform .22s ease;
}
.bcps-card.is-hidden{display:none}
.bcps-card-media{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
    background:#efefef;
    isolation:isolate;
}
.bcps-card-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .6s cubic-bezier(.2,.72,.2,1),filter .3s ease;
}
.bcps-card:hover .bcps-card-media img{
    transform:scale(1.045);
}
.bcps-card-hit{
    position:absolute;
    inset:0;
    border:0;
    background:transparent;
    cursor:pointer;
    z-index:4;
}
.bcps-card-overlay{
    position:absolute;
    inset:0;
    z-index:2;
    display:grid;
    place-items:center;
    background:rgba(0,0,0,.34);
    opacity:0;
    transition:opacity .28s ease;
    pointer-events:none;
}
.bcps-card-overlay span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:0 17px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:999px;
    color:#fff;
    font-size:12px;
    font-weight:700;
    letter-spacing:.03em;
    transform:translateY(7px);
    transition:transform .28s ease;
}
.bcps-card:hover .bcps-card-overlay{opacity:1}
.bcps-card:hover .bcps-card-overlay span{transform:translateY(0)}
.bcps-photo-count{
    position:absolute;
    right:12px;
    bottom:12px;
    z-index:5;
    display:inline-flex;
    align-items:center;
    gap:5px;
    background:rgba(15,15,15,.78);
    color:#fff;
    border-radius:999px;
    padding:7px 10px;
    font-size:11px;
    font-weight:700;
    line-height:1;
    pointer-events:none;
    backdrop-filter:blur(5px);
}
.bcps-card-body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:17px 1px 0;
}
.bcps-card-kicker{
    margin:0 0 8px;
    color:#666;
    text-transform:uppercase;
    letter-spacing:.105em;
    font-size:9.5px;
    font-weight:750;
    line-height:1.45;
    min-height:1.45em;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.bcps-card h3{
    margin:0;
    color:#111;
    font-family:inherit;
    font-size:clamp(18px,1.45vw,21px);
    font-weight:650;
    letter-spacing:-.025em;
    line-height:1.25;
}
.bcps-card h3 a{
    color:inherit;
    text-decoration:none;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    min-height:2.5em;
}
.bcps-card-excerpt{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
    margin:11px 0 0;
    color:#666;
    font-size:13.5px;
    line-height:1.55;
}
.bcps-placeholder{
    display:block;
    width:100%;
    height:100%;
    background:linear-gradient(135deg,#f3f3f3,#dedede);
}
.bcps-empty{
    margin:28px 0 0;
    color:#666;
    font-size:14px;
}
.bcps-load-wrap{text-align:center;margin-top:46px}
.bcps-load-more{
    appearance:none;
    border:1px solid #111;
    background:#111;
    color:#fff;
    border-radius:999px;
    min-height:44px;
    padding:0 25px;
    font-family:inherit;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:background-color .2s ease,color .2s ease,transform .2s ease;
}
.bcps-load-more:hover{background:#fff;color:#111;transform:translateY(-1px)}
.bcps-load-more[disabled]{opacity:.55;cursor:wait;transform:none}
.bcps-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.bcps-dialog{
    width:min(1180px,94vw);
    height:min(840px,92vh);
    padding:0;
    border:0;
    background:#101010;
    color:#fff;
    overflow:hidden;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.bcps-dialog::backdrop{background:rgba(0,0,0,.88)}
.bcps-dialog figure{width:100%;height:100%;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.bcps-dialog figure>img{width:100%;height:100%;object-fit:contain;min-height:0}
.bcps-dialog figcaption{padding:16px 22px 18px;background:#101010}
.bcps-dialog figcaption h3{color:#fff;font-family:inherit;font-size:18px;font-weight:650;margin:0 0 5px}
.bcps-dialog figcaption p{color:rgba(255,255,255,.68);font-size:13px;line-height:1.5;margin:0;max-width:820px}
.bcps-dialog figcaption a{display:inline-block;color:#fff;font-size:12px;font-weight:750;margin-top:10px;text-underline-offset:3px}
.bcps-dialog-close,.bcps-dialog-prev,.bcps-dialog-next{position:absolute;z-index:5;border:0;background:rgba(0,0,0,.48);color:#fff;cursor:pointer}
.bcps-dialog-close{right:12px;top:12px;border-radius:50%;width:42px;height:42px;font-size:28px;line-height:1}
.bcps-dialog-prev,.bcps-dialog-next{top:50%;transform:translateY(-50%);width:48px;height:70px;font-size:42px}
.bcps-dialog-prev{left:10px}.bcps-dialog-next{right:10px}
.bcps-dialog-count{position:absolute;top:18px;left:18px;background:rgba(0,0,0,.55);padding:6px 10px;border-radius:999px;font-size:12px}

.bcps-single{max-width:1240px;margin:0 auto;padding:70px 24px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.bcps-single-header{max-width:800px;margin-bottom:38px}
.bcps-single-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;opacity:.6}
.bcps-single h1{font-family:inherit;font-size:clamp(34px,6vw,72px);font-weight:650;letter-spacing:-.04em;line-height:1;margin:10px 0 22px}
.bcps-single-content{font-size:17px;line-height:1.7}
.bcps-single-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:42px}
.bcps-single-gallery img{width:100%;height:auto;display:block}
.bcps-archive{max-width:1400px;margin:0 auto;padding:70px 24px}
.bcps-archive>h1{font-size:clamp(38px,7vw,78px);margin:0 0 40px}

@media(max-width:900px){
    .bcps-grid{grid-template-columns:repeat(min(2,var(--bcps-columns)),minmax(0,1fr));column-gap:22px;row-gap:34px}
    .bcps-single-gallery{grid-template-columns:1fr}
}
@media(max-width:560px){
    .bcps-portfolio{--bcps-gap-y:30px}
    .bcps-grid{grid-template-columns:1fr}
    .bcps-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-bottom:28px;padding:0 0 7px;overscroll-behavior-inline:contain}
    .bcps-filters::-webkit-scrollbar{display:none}
    .bcps-filters button{white-space:nowrap;padding:10px 14px}
    .bcps-card h3{font-size:19px}
    .bcps-card-overlay{display:none}
    .bcps-dialog{width:100vw;height:100vh;max-width:none;max-height:none}
    .bcps-dialog-prev,.bcps-dialog-next{width:40px;height:58px}
}
@media(hover:none){
    .bcps-card-overlay{display:none}
}
