/* Full-bleed, scroll-linked homepage and Professionals portrait panels. */
.portrait-gallery{--portrait-page-width:100vw;width:var(--portrait-page-width);max-width:none;margin-left:calc((100% - var(--portrait-page-width))/2);padding:16px 0 66px}
.portrait-gallery__sticky{position:relative;width:100%}
.portrait-gallery__viewport{width:100%;max-width:100%}
.portrait-gallery__progress{display:none}
@media(min-width:769px){
  .portrait-gallery:not(.is-pinned) :is(.feature-grid,.steps-grid,.role-grid,.prof-list){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));width:min(calc(100% - 48px),var(--max));max-width:100%;margin:0 auto;padding:0;gap:14px;overflow:visible;scroll-snap-type:none;transform:none!important}
  .portrait-gallery:not(.is-pinned) :is(.feature-card,.step-card,.role-card,.prof-card){min-width:0;min-height:500px;border:1px solid var(--line)!important;flex:none}
}
.portrait-gallery.is-pinned{padding:0;height:calc(var(--portrait-stage-height) + var(--portrait-travel))}
.portrait-gallery.is-pinned .portrait-gallery__sticky{position:sticky;top:var(--portrait-header-height);height:var(--portrait-stage-height);display:flex;flex-direction:column;justify-content:center;overflow:visible}
.portrait-gallery.is-pinned .portrait-gallery__viewport{flex:0 0 auto;overflow:hidden;overflow:clip}
.portrait-gallery.is-pinned :is(.feature-grid,.steps-grid,.role-grid,.prof-list){display:flex;align-items:stretch;flex-wrap:nowrap;width:max-content;min-width:100%;max-width:none;margin:0;padding:10px max(24px,calc((var(--portrait-page-width) - var(--max))/2));gap:0;border:0;overflow:visible;scroll-snap-type:none;transform:translate3d(0,0,0);will-change:transform}
.portrait-gallery.is-pinned :is(.feature-card,.step-card,.role-card,.prof-card),.portrait-gallery.is-pinned :is(.feature-card,.step-card,.role-card,.prof-card):hover{flex:0 0 clamp(300px,27vw,390px);min-width:clamp(300px,27vw,390px);width:clamp(300px,27vw,390px);min-height:0;height:clamp(420px,calc(100svh - 188px),560px);scroll-snap-align:none}
.portrait-gallery.is-pinned .prof-list{margin-top:0}
.portrait-gallery.is-pinned .portrait-gallery__progress{display:flex;align-items:center;gap:16px;width:min(calc(100% - 48px),var(--max));margin:18px auto 0;color:var(--blue);font-size:12px;letter-spacing:.08em}
.portrait-gallery__rail{display:block;flex:1;max-width:280px;height:2px;background:rgba(18,77,105,.17)}
.portrait-gallery__fill{display:block;width:100%;height:100%;background:var(--blue);transform:scaleX(0);transform-origin:left center}
.portrait-gallery .prof-card:focus-visible{outline:3px solid var(--blue);outline-offset:-4px;z-index:2}
@media(max-width:768px){
  .portrait-gallery{padding:16px 0 58px}
  .portrait-gallery__viewport{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}
  .portrait-gallery :is(.feature-grid,.steps-grid,.role-grid,.prof-list){display:flex;flex-wrap:nowrap;width:max-content;max-width:none;margin:0;padding:12px 15px;gap:0;overflow:visible;scroll-snap-type:none}
  .portrait-gallery :is(.feature-card,.step-card,.role-card,.prof-card){flex:0 0 min(84vw,360px);min-width:min(84vw,360px);width:min(84vw,360px);min-height:490px;scroll-snap-align:start}
}
@media(prefers-reduced-motion:reduce){.portrait-gallery :is(.feature-card,.step-card,.role-card,.prof-card){transition:none!important}}
