/* Portfolio: the artwork sets the proportions, native scrolling sets the pace. */
.bp-portfolio { --bp-sticky-top:106px; --bp-caption-space:114px; }
.bp-portfolio .ba-stack { padding-bottom:0; }
.bp-portfolio .ba-project {
 --bp-ratio:1.5;
 position:relative; top:auto; z-index:var(--order); display:flex; flex-direction:column;
 width:min(100%,calc((100svh - var(--bp-sticky-top) - var(--bp-caption-space) - var(--order)*8px)*var(--bp-ratio)));
 min-width:0; margin-inline:auto; margin-bottom:clamp(64px,12svh,120px); padding-bottom:0;
 transform:none; scroll-margin-block:126px 30px;
}
.bp-portfolio .ba-project:last-child { margin-bottom:0; }
.bp-portfolio [data-project=acasa] { --bp-ratio:1.75; }
.bp-portfolio [data-project=icc] { --bp-ratio:1.9; }
.bp-portfolio .bp-visual { transform-origin:center top; translate:0 0; transition:translate var(--motion-quick) var(--motion-ease); }
.bp-portfolio .ba-project-image { height:auto; aspect-ratio:var(--bp-ratio); }
.bp-portfolio .ba-project-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; transform:none; }
.bp-portfolio .ba-project-caption { order:-1; grid-template-columns:1fr auto; align-items:center; gap:6px 24px; padding-block:0 16px; }
.bp-portfolio .ba-project-caption h3 { font-size:clamp(26px,2.6vw,38px); line-height:1.1; }
.bp-portfolio .ba-project-caption p { grid-column:1; grid-row:2; font-size:13px; }
.bp-portfolio .ba-project-open { grid-column:2; grid-row:1/3; gap:16px; font-size:13px; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; transition:text-decoration-color var(--motion-quick) var(--motion-ease); }
.bp-portfolio .ba-project-open>span { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--rd-panel); font-size:25px; transition:transform var(--motion-quick) var(--motion-ease),background-color var(--motion-quick) var(--motion-ease),color var(--motion-quick) var(--motion-ease); }
.bp-portfolio .ba-poster-set { height:auto; aspect-ratio:var(--bp-ratio); max-height:none; padding:clamp(20px,3vw,40px); gap:clamp(16px,3vw,36px); }
.bp-portfolio .ba-poster-set img { display:block; width:100%; height:100%; max-height:100%; min-height:0; object-fit:contain; }
.bp-portfolio .ba-project:is(:hover,:focus-visible) .ba-project-open { text-decoration-color:currentColor; }
.bp-portfolio .ba-project:is(:hover,:focus-visible) .ba-project-open>span { background:var(--rd-accent); color:#fff; transform:none; }
.bp-portfolio .ba-project:focus-visible { z-index:6; outline:2px solid var(--rd-accent); outline-offset:8px; transform:none !important; }
.bp-portfolio .ba-project:focus-visible .ba-project-caption { opacity:1; }

@media (min-width:761px) and (pointer:fine) and (hover:hover) and (prefers-reduced-motion:no-preference) {
 .bp-portfolio [data-ba-gallery-motion] .ba-project { position:sticky; top:calc(var(--bp-sticky-top) + var(--order)*8px); transform:translateY(var(--stack-shift,0px)) scale(var(--stack-scale,1)); }
 .bp-portfolio [data-ba-gallery-motion] .ba-project:not(:focus-visible) .ba-project-caption { opacity:var(--stack-caption,1); }
 .bp-portfolio [data-ba-gallery-motion] .ba-project:first-child .bp-visual { transform:scale(calc(.94 + var(--gallery-expand,1)*.06)); }
 .bp-portfolio [data-ba-gallery-motion] .ba-project-image[data-ba-parallax] img {
  inset-block-start:calc(-1*var(--bp-bleed)); height:calc(100% + 2*var(--bp-bleed)); object-fit:cover;
  transform:translateY(var(--parallax,0px));
 }
 .bp-portfolio [data-project=koryaa] { --bp-bleed:12px; }
 .bp-portfolio [data-project=laure] { --bp-bleed:14px; }
 .bp-portfolio .ba-project:hover .bp-visual { translate:0 -3px; }
 .bp-portfolio .ba-project:is(:hover,:focus-visible) .ba-project-open>span { transform:translate(3px,-3px); }
}
@media (max-width:1020px) {
 .bp-portfolio { --bp-sticky-top:104px; }
 .bp-portfolio .ba-project-open { font-size:12px; gap:12px; }
}
@media (max-width:760px), (pointer:coarse) {
 .bp-portfolio .ba-project { width:100%; margin-bottom:40px; }
 .bp-portfolio .ba-project-caption h3 { font-size:clamp(25px,6.2vw,32px); }
 .bp-portfolio .ba-project-caption p { font-size:12px; }
 .bp-portfolio .ba-project-open { font-size:0; gap:0; }
 .bp-portfolio .ba-project-image img { object-fit:contain; }
 .bp-portfolio .ba-poster-set { aspect-ratio:auto; grid-template-columns:repeat(2,minmax(0,1fr)); padding:18px; gap:16px; }
 .bp-portfolio .ba-poster-set img { height:auto; }
 .bp-portfolio .ba-poster-set img:last-child { display:block; grid-column:1/-1; width:calc((100% - 16px)/2); justify-self:center; }
}
@media (prefers-reduced-motion:reduce) {
 .bp-portfolio .ba-project,.bp-portfolio .bp-visual,.bp-portfolio .ba-project-image img { transform:none !important; }
}
[data-ba-light] .bp-portfolio .ba-project { width:100%; }
