/* Two photographic ribbons, with the opposing 70-second rhythm of the original site. */
.portfolio .project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:42px}
.portfolio .project{min-width:0}
.portfolio .project-info{align-items:center;padding:0 0 19px}
.portfolio .project-info h3{font-size:25px}
.portfolio .project-info p{font-size:12px}
.carousel-controls{display:flex;align-items:center;gap:8px;flex:none}
.carousel-control{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:4px;background:var(--paper);color:var(--ink);font-size:11px;font-weight:600;line-height:1.2;transition:background .2s,color .2s,border-color .2s}
.carousel-control:hover{background:var(--wash);border-color:var(--blue);color:var(--blue)}
.carousel-control .icon{width:17px;height:17px}
.carousel-toggle{min-width:99px;padding-inline:13px}
.carousel-toggle[aria-pressed="true"]{color:var(--blue);border-color:var(--blue)}
.carousel-toggle .play-icon,.carousel-toggle[aria-pressed="true"] .pause-icon{display:none}
.carousel-toggle[aria-pressed="true"] .play-icon{display:block}
.carousel-controls[hidden],.carousel-toggle[hidden]{display:none}
.carousel-viewport{position:relative;overflow-x:auto;overflow-y:hidden;width:100%;border-radius:4px;scrollbar-width:none;overscroll-behavior-x:contain;scroll-behavior:auto;touch-action:pan-x pan-y pinch-zoom}
.carousel-viewport::-webkit-scrollbar{display:none}
.carousel-viewport:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.carousel-track,.carousel-group{display:flex;width:max-content;align-items:stretch}
.carousel-group{gap:24px;padding-right:24px}
.carousel-photo{position:relative;display:block;width:clamp(280px,28vw,362px);flex:none;overflow:hidden;border-radius:4px;background:var(--wash)}
.carousel-photo>img{width:100%;height:270px;object-fit:cover;transition:transform .5s var(--ease)}
.carousel-photo:hover>img{transform:scale(1.035)}
.carousel-photo:focus-visible{outline-offset:-5px}
.carousel-photo .zoom-symbol{bottom:14px;right:14px;background:var(--ink);color:white;width:34px;height:34px;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .2s}
.carousel-photo:hover .zoom-symbol,.carousel-photo:focus-visible .zoom-symbol{opacity:1;transform:none}
.paint-complete .carousel-photo .zoom-symbol{background:#fff;color:#145be0}
.carousel-footnote{display:flex;justify-content:space-between;gap:18px;font-size:10px;color:var(--muted);margin-top:13px}
.carousel-footnote span:last-child{text-align:right}
.carousel-state{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:760px){
  .portfolio .project-grid{gap:35px}
  .portfolio .project-info{gap:16px;align-items:flex-start;flex-wrap:wrap;padding-bottom:16px}
  .portfolio .project-info h3{font-size:23px}
  .portfolio .project-info p{font-size:11px}
  .carousel-controls{gap:7px}
  .carousel-control{min-width:44px;min-height:44px}
  .carousel-toggle{min-width:99px}
  .carousel-group{gap:14px;padding-right:14px}
  .carousel-photo{width:min(78vw,320px)}
  .carousel-photo>img{height:228px}
  .carousel-photo .zoom-symbol{opacity:1;transform:none;width:31px;height:31px}
  .carousel-footnote{font-size:9px;gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .carousel-photo:hover>img{transform:none}
  .carousel-group[data-carousel-copy]{display:none}
  .carousel-viewport{scrollbar-width:thin;scrollbar-color:var(--blue) var(--wash)}
  .carousel-viewport::-webkit-scrollbar{display:block;height:5px}
  .carousel-viewport::-webkit-scrollbar-thumb{background:var(--blue)}
}
@media print{.carousel-controls,.carousel-footnote{display:none}.carousel-viewport{overflow:visible}.carousel-track{display:block;width:100%}.carousel-group{width:100%;display:grid;grid-template-columns:1fr 1fr;padding:0}.carousel-photo{width:100%}.carousel-group[data-carousel-copy]{display:none}}
