.session-track{margin:0 14px 45px}
.session-stage{width:100%}
.session-demo{font-size:10px;color:#777;margin:0 0 18px;line-height:15px}
.session{--spread:0;margin-bottom:32px}.session:first-of-type{--spread:1}
.session-inner{display:flex;flex-direction:column;gap:12px}
.session-gallery{display:flex;justify-content:center;align-items:center;gap:0;height:min(calc((100vw - 96px) * .66),924px);width:100%}
.session-frame{margin:0;height:80%;width:calc(28% * var(--spread));flex-shrink:0;position:relative;overflow:hidden;background:#e5e2dd;opacity:var(--spread)}
.session-frame.session-center{width:44%;height:calc(76% + 24% * var(--spread));opacity:1}
.session-frame img,.session-frame video{display:block;width:100%;height:100%;object-fit:cover}.session-frame:not(.session-center) img{width:calc((100vw - 124px) * .28);max-width:392px;position:absolute;top:0}.session-frame:first-child img{right:0}.session-frame:last-child img{left:0}.session-frame img{object-position:center 35%}.session-frame video{background:#242424;cursor:pointer}.session-frame video:focus-visible{outline:2px solid #fff;outline-offset:-5px}
.session-caption{width:44%;margin:0 auto;font-size:12px;line-height:1.5;padding-bottom:6px}.session-caption p{margin:0}.session-caption strong{font-weight:400;font-size:14px;display:block}.session-caption p>span{display:block;font-size:10px;color:#777;margin-top:3px}.session-caption>p:last-child{margin-top:9px;color:#555}
.works-heading{padding-top:34px;padding-bottom:60px}
.session{margin-bottom:clamp(90px,11vw,170px)}
@media(max-width:1000px){.session-gallery{height:calc((100vw - 48px) * .66)}.session-caption{font-size:11px}.session-caption strong{font-size:13px}.session-frame:not(.session-center) img{width:calc((100vw - 76px) * .28)}}
@media(max-width:600px){.session-track{margin:0 11px 25px}.session{margin-bottom:26px}.session-demo{font-size:9px;margin-bottom:12px}.session-inner{gap:10px}.session-gallery{height:calc((100vw - 22px) * 1.08)}.session-frame{width:calc(14% * var(--spread));height:80%}.session-frame.session-center{width:72%;height:calc(78% + 22% * var(--spread))}.session-frame:not(.session-center) img{width:calc((100vw - 22px) * .35);max-width:none;object-position:center}.session-caption{width:72%;font-size:11px;line-height:1.45}.session-caption strong{font-size:12px}.session-caption p>span{font-size:9px}.session-caption>p:last-child{font-size:11px;margin-top:7px}}
@media(max-width:600px){
  .works-heading{padding-top:24px;padding-bottom:38px}
  .session{margin-bottom:72px}
  .session-gallery{position:relative;display:block;overflow:hidden;touch-action:pan-y}
  .session-frame,.session-frame.session-center{position:absolute;top:50%;left:0;transform:translateY(-50%);width:14%;height:80%;opacity:1;z-index:1}
  .session-gallery.carousel-interacted .session-frame{transition:left .42s ease,width .42s ease,height .42s ease}
  .session-frame.carousel-prev{left:calc(14% * (1 - var(--spread)));width:calc(14% * var(--spread));height:80%;opacity:var(--spread)}
  .session-frame.carousel-current{left:14%;width:72%;height:calc(78% + 22% * var(--spread));opacity:1;z-index:2}
  .session-frame.carousel-next{left:86%;width:calc(14% * var(--spread));height:80%;opacity:var(--spread)}
  .session-frame:not(.session-center) img{position:static;width:100%;height:100%;max-width:none;object-fit:cover}
  .session-caption{width:72%}
}
@media(max-width:600px) and (prefers-reduced-motion:reduce){.session-gallery.carousel-interacted .session-frame{transition:none}}

.work-link{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:34px;text-decoration:none}
.work-link strong{margin:0}
.round-arrow{display:flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;min-width:34px;min-height:34px;aspect-ratio:1;padding:0;border:1px solid #111;border-radius:999px;box-sizing:border-box;background:transparent;color:#111;transition:opacity .2s}
.round-arrow svg{display:block;flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.work-link:hover .round-arrow,.work-link:focus-visible .round-arrow{opacity:.65}
.works-heading{padding-bottom:18px}
.works-heading .session-demo{margin:13px 0 0}
@media(max-width:600px){.round-arrow{flex-basis:30px;width:30px;height:30px;min-width:30px;min-height:30px}.round-arrow svg{width:16px;height:16px}}

/* Minimum readable sizes and stronger contrast for small portfolio labels. */
.session-demo{font-size:12px;line-height:1.5;color:#555}
.session-caption{font-size:14px;line-height:1.5}
.session-caption strong{font-size:24px;font-weight:400;line-height:1.2}
.session-caption p>span{font-size:12px;color:#555}
.session-caption>p:last-child{color:#333}
.session-frame picture{display:block;width:100%;height:100%}
@media(max-width:600px){
  .session-demo{font-size:11px}
  .session-caption{font-size:13px;line-height:1.5}
  .session-caption strong{font-size:20px}
  .session-caption p>span{font-size:11px}
  .session-caption>p:last-child{font-size:13px;line-height:1.5}
}
.session-frame>a{display:block;width:100%;height:100%}
.work-description-link{display:block}
.work-description-link:hover,.work-description-link:focus-visible{text-decoration:underline;text-underline-offset:3px}
.session-beauty-video,.session-boutique-video,.session-agency-video{pointer-events:none}
