.portfolio-section{background-color:var(--light-gray);padding:100px 0;overflow:hidden}.portfolio-carousel-wrapper{width:100%;max-width:1200px;margin:0 auto;padding:20px 0;position:relative}.portfolio-carousel{perspective:1200px;height:520px;transform-style:preserve-3d;justify-content:center;align-items:center;display:flex;position:relative}.portfolio-card-3d{background:var(--white);opacity:0;pointer-events:none;cursor:pointer;will-change:transform, opacity;border:1px solid #e2e8f0cc;border-radius:24px;flex-direction:column;width:560px;height:480px;transition:all .7s cubic-bezier(.25,1,.5,1);display:flex;position:absolute;overflow:hidden;box-shadow:0 10px 30px #0000000d}.portfolio-card-3d.center{z-index:10;opacity:1;pointer-events:auto;cursor:default;border-color:#0000;transform:translate(0)scale(1)translateZ(50px);box-shadow:0 30px 60px -15px #0003}.portfolio-card-3d.left{z-index:5;opacity:.6;pointer-events:auto;filter:blur(1px);transform:translate(-50%)scale(.85)translateZ(0)}.portfolio-card-3d.right{z-index:5;opacity:.6;pointer-events:auto;filter:blur(1px);transform:translate(50%)scale(.85)translateZ(0)}.portfolio-card-3d.left:hover,.portfolio-card-3d.right:hover{opacity:.9;filter:blur()}.portfolio-card-3d.hidden-left{z-index:1;opacity:0;transform:translate(-90%)scale(.7)translateZ(-50px)}.portfolio-card-3d.hidden-right{z-index:1;opacity:0;transform:translate(90%)scale(.7)translateZ(-50px)}.portfolio-img-container{aspect-ratio:16/9;background-color:#f1f5f9;border-bottom:1px solid #e2e8f0;flex-shrink:0;width:100%}.portfolio-info{flex-direction:column;flex-grow:1;padding:24px;display:flex}.portfolio-category{text-transform:uppercase;color:var(--primary);letter-spacing:.5px;margin-bottom:8px;font-size:.75rem;font-weight:700}.portfolio-title{color:var(--dark);margin-bottom:8px;font-size:1.25rem;font-weight:700}.portfolio-desc{color:var(--text-muted);margin-bottom:0;font-size:.9rem;line-height:1.5}.portfolio-nav{pointer-events:none;z-index:20;justify-content:space-between;align-items:center;width:100%;padding:0 10px;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-btn{background:var(--white);color:var(--primary);border:2px solid var(--primary-light);cursor:pointer;width:50px;height:50px;box-shadow:var(--shadow-sm);pointer-events:auto;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.nav-btn:hover{background:var(--primary);color:var(--white);box-shadow:var(--shadow-md);transform:translateY(-2px)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (max-width:992px){.portfolio-carousel{height:480px}.portfolio-card-3d{width:480px;height:440px}.portfolio-card-3d.left{transform:translate(-40%)scale(.85)translateZ(0)}.portfolio-card-3d.right{transform:translate(40%)scale(.85)translateZ(0)}}@media (max-width:768px){.portfolio-carousel{height:380px}.portfolio-card-3d{width:400px;height:360px}.portfolio-img-container{aspect-ratio:16/9}.portfolio-card-3d.left{opacity:.4;transform:translate(-35%)scale(.8)translateZ(0)}.portfolio-card-3d.right{opacity:.4;transform:translate(35%)scale(.8)translateZ(0)}.portfolio-info{padding:16px}.portfolio-nav{justify-content:center;gap:24px;margin-top:20px;position:static;transform:none}}@media (max-width:480px){.portfolio-carousel{height:400px}.portfolio-card-3d{border-radius:16px;width:280px;height:360px}.portfolio-card-3d.center{transform:translate(0)scale(1)translateZ(0);box-shadow:0 15px 30px -10px #00000026}.portfolio-card-3d.left{opacity:.15;transform:translate(-25%)scale(.8)translateZ(0)}.portfolio-card-3d.right{opacity:.15;transform:translate(25%)scale(.8)translateZ(0)}.portfolio-info{padding:16px}.portfolio-category{margin-bottom:6px;font-size:.7rem}.portfolio-title{margin-bottom:6px;font-size:1.1rem}.portfolio-desc{font-size:.85rem;line-height:1.5}.client-logo-text{font-size:1.2rem}}.client-logo-text{color:var(--text-muted);letter-spacing:1px;white-space:nowrap;opacity:.7;transition:var(--transition);font-size:1.6rem;font-weight:800}.logoloop--scale-hover .logoloop__item:hover .client-logo-text{color:var(--primary);opacity:1}
.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#fff;position:relative}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme:dark){.logoloop{--logoloop-fadeColorAuto:#0b0b0b}}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;filter:grayscale()opacity(.7);transition:transform .3s cubic-bezier(.4,0,.2,1),filter .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img{transform-origin:50%;filter:grayscale(0%)opacity();transform:scale(1.2)}.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:auto;bottom:0}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}@media (max-width:480px){.logoloop{--logoloop-gap:40px!important;--logoloop-logoHeight:40px!important}}
