.portfolio-carousel{position:relative;height:82vh;min-height:420px;background:var(--white);overflow:hidden;display:flex;align-items:stretch;user-select:none}.portfolio-carousel__track{display:flex;align-items:stretch;gap:clamp(10px,1.2vw,20px);will-change:transform;flex-shrink:0}.portfolio-carousel__slide{border:none;padding:0;margin:0;background:none;flex:0 0 auto;width:clamp(220px,28vw,480px);overflow:hidden;cursor:zoom-in;position:relative;display:block}.portfolio-carousel__slide img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;pointer-events:none}.portfolio-carousel__slide:hover img,.portfolio-carousel__slide:focus-visible img{transform:scale(1.04)}.portfolio-carousel__slide:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.75);width:44px;height:44px;background:#ffffffd9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2330423E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3Cline x1='11' y1='8' x2='11' y2='14'/%3E%3Cline x1='8' y1='11' x2='14' y2='11'/%3E%3C/svg%3E") center / 18px no-repeat;border-radius:50%;opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:2;pointer-events:none}.portfolio-carousel__slide:hover:after,.portfolio-carousel__slide:focus-visible:after{opacity:1;transform:translate(-50%,-50%) scale(1)}.portfolio-carousel__slide:focus-visible{outline:3px solid var(--cta);outline-offset:2px}.portfolio-carousel__wave{position:absolute;left:0;width:100%;height:clamp(50px,6vw,100px);z-index:1;pointer-events:none}.portfolio-carousel__wave--top{top:0}.portfolio-carousel__wave--bottom{bottom:0}.lightbox{position:fixed;inset:0;background:#000000ed;z-index:900;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.lightbox.is-open{opacity:1;visibility:visible}.lightbox__img{max-width:88vw;max-height:82vh;object-fit:contain;border-radius:4px;display:block;transition:opacity .2s ease}.lightbox__img.is-fading{opacity:0}.lightbox__close{position:absolute;top:18px;right:22px;background:#ffffff1a;border:none;color:var(--white);font-size:20px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.75;transition:opacity .2s,background .2s;line-height:1}.lightbox__close:hover,.lightbox__close:focus-visible{opacity:1;background:#fff3}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;color:var(--white);font-size:20px;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s,background .2s}.lightbox__nav:hover,.lightbox__nav:focus-visible{opacity:1;background:#fff3}.lightbox__prev{left:20px}.lightbox__next{right:20px}.lightbox__caption{position:absolute;bottom:22px;left:50%;transform:translate(-50%);color:#ffffff8c;font-size:13px;letter-spacing:.04em;white-space:nowrap;pointer-events:none}.lightbox__counter{position:absolute;top:22px;left:50%;transform:translate(-50%);color:#fff6;font-size:12px;letter-spacing:.08em;pointer-events:none}.portfolio-outro{text-align:center}.portfolio-outro__title{font-family:var(--font-display);font-size:clamp(2rem,5vw,4rem);font-weight:100;line-height:1.1;color:var(--text-dark);text-transform:uppercase;letter-spacing:-.01em;margin-bottom:20px}.portfolio-outro__desc{font-size:16px;line-height:1.75;color:var(--text-secondary);max-width:480px;margin:0 auto 36px}.portfolio-outro__actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}@media(max-width:768px){.portfolio-carousel{height:72vh}.lightbox__nav{width:40px;height:40px}}@media(max-width:480px){.portfolio-carousel{height:65vh}.lightbox__nav{width:36px;height:36px;font-size:16px}.lightbox__prev{left:8px}.lightbox__next{right:8px}.lightbox__img{max-width:95vw;max-height:75vh}.portfolio-outro__actions{flex-direction:column;align-items:center}}@media(prefers-reduced-motion:reduce){.portfolio-carousel__slide img,.portfolio-carousel__slide:after,.lightbox__img{transition:none}}
