.carousel-wrapper{max-width:100%;max-height:100%;mask-image:linear-gradient(90deg,transparent,#000 3% 97%,transparent);overflow:hidden}.carousel-track{width:max-content;display:flex;flex-wrap:nowrap;animation:slide linear infinite;will-change:transform}.carousel-track--row{flex-direction:row}.carousel-track--column{flex-direction:column}.carousel-track:hover{animation-play-state:paused}.carousel-group{display:flex;flex-wrap:nowrap}.carousel-group--row{flex-direction:row}.carousel-group--column{flex-direction:column}.carousel-item{transition:all .3s ease-in-out}.carousel-track:hover .carousel-item:not(:hover){filter:grayscale(1)}@keyframes slide-left{0%{transform:translateX(0)}to{transform:translateX(calc(-1 * var(--transform-percent, 50%)))}}@keyframes slide-right{0%{transform:translateX(calc(-1 * var(--transform-percent, 50%)))}to{transform:translateX(0)}}@keyframes slide-up{0%{transform:translateY(0)}to{transform:translateY(calc(-1 * var(--transform-percent, 50%)))}}@keyframes slide-down{0%{transform:translateY(calc(-1 * var(--transform-percent, 50%)))}to{transform:translateY(0)}}.carousel-track--left{animation-name:slide-left}.carousel-track--right{animation-name:slide-right}.carousel-track--up{animation-name:slide-up}.carousel-track--down{animation-name:slide-down}.portfolio-card{position:relative;border:2px solid var(--border-color);aspect-ratio:1/1;border-radius:var(--border-radius-lg);overflow:hidden;transition:all var(--transition-normal) ease;box-shadow:var(--shadow-base);background:var(--background-color-secondary)}.portfolio-card:hover{transform:translateY(-.5rem);box-shadow:var(--shadow-card-hover);border-color:var(--border-color-light)}.portfolio-card img{width:100%;height:100%;background:#fff;object-fit:cover;transition:transform var(--transition-slow) ease}.portfolio-card:hover img{transform:scale(1.05)}.portfolio-card .overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.75),rgba(0,0,0,.6) 50%,rgba(0,0,0,.85));opacity:0;transition:all var(--transition-normal) cubic-bezier(.4,0,.2,1);color:var(--text-color);will-change:opacity}.portfolio-card:hover .overlay{opacity:1}