@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shimmer{animation:3s infinite shimmer}.portfolio-filters{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:3rem;padding:0 1rem;display:flex}.filter-button{letter-spacing:.025em;cursor:pointer;border:2px solid #0000;border-radius:.75rem;min-width:44px;min-height:44px;padding:.75rem 2rem;font-size:.875rem;font-weight:700;transition:all .3s}.filter-button[data-active=false]{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#374151;background:linear-gradient(135deg,#ffffffe6,#ffffffb3);border-color:#3b82f633}.filter-button[data-active=false]:hover{color:#3b82f6;background:linear-gradient(135deg,#3b82f61a,#22d3ee1a);border-color:#3b82f680;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f626}.filter-button[data-active=true]{color:#fff;background:linear-gradient(135deg,#3b82f6,#22d3ee);box-shadow:0 10px 25px #3b82f64d}.filter-button[data-active=true]:hover{background:linear-gradient(135deg,#2563eb,#06b6d4);transform:translateY(-2px);box-shadow:0 12px 30px #3b82f666}.portfolio-swiper .swiper-button-next,.portfolio-swiper .swiper-button-prev{background:#ffffff4d;border:2px solid #ffffff80;border-radius:50%;width:50px;height:50px;transition:all .3s;box-shadow:0 4px 12px #0000001a}.portfolio-swiper .swiper-button-next:hover,.portfolio-swiper .swiper-button-prev:hover{background:#3b82f680;border-color:#3b82f6b3;transform:scale(1.1);box-shadow:0 8px 20px #3b82f64d}.portfolio-swiper .swiper-button-next:after,.portfolio-swiper .swiper-button-prev:after{color:#3b82f6;font-size:20px;font-weight:700}.portfolio-swiper .swiper-button-next:hover:after,.portfolio-swiper .swiper-button-prev:hover:after{color:#fff}.portfolio-swiper .swiper-pagination-bullet{opacity:1;background:#cbd5e1;width:12px;height:12px;transition:all .3s}.portfolio-swiper .swiper-pagination-bullet-active{background:linear-gradient(135deg,#3b82f6 0%,#22d3ee 100%);border-radius:6px;width:32px;box-shadow:0 0 10px #3b82f680}.pfs-section{background:linear-gradient(135deg,#f8fafc,#eff6ff);padding:72px 16px}.pfs-section--white{background:#fff}.pfs-container{max-width:1200px;margin:0 auto}.pfs-heading{text-align:center;color:#0f172a;margin:0 0 8px;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700}.pfs-accent{background:#2563eb;border-radius:2px;width:48px;height:3px;margin:0 auto 16px}.pfs-subtitle{text-align:center;color:#64748b;max-width:560px;margin:0 auto 40px;line-height:1.6}.pfs-bottom-cta{color:#fff;background:#2563eb;border-radius:10px;padding:13px 32px;font-weight:600;text-decoration:none;display:inline-block}.pfs-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;height:100%;display:flex;overflow:hidden;box-shadow:0 4px 16px #0f172a0f}.pfs-img-wrap{background:linear-gradient(135deg,#3b82f6,#22d3ee);justify-content:center;align-items:center;height:170px;display:flex;position:relative}.pfs-card-img{object-fit:contain;padding:24px}.pfs-placeholder{color:#fff;font-size:56px;font-weight:700}.pfs-badge{color:#2563eb;background:#ffffffeb;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:600;position:absolute;top:14px;left:14px}.pfs-card-body{flex-direction:column;flex:1;padding:24px;display:flex}.pfs-card-title{color:#0f172a;margin:0 0 10px;font-size:1.35rem;font-weight:700}.pfs-card-desc{color:#475569;margin:0 0 16px;line-height:1.6}.pfs-results-label{color:#0f172a;margin:0 0 8px;font-size:14px;font-weight:600}.pfs-results-list{gap:6px;margin:0 0 16px;padding:0;list-style:none;display:grid}.pfs-result-item{color:#334155;align-items:flex-start;gap:8px;font-size:14px;display:flex}.pfs-check{color:#16a34a;font-weight:700;line-height:1.5}.pfs-tech-label{color:#0f172a;margin:0 0 8px;font-size:13px;font-weight:600}.pfs-tech-wrap{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.pfs-tech{color:#1d4ed8;background:#eff6ff;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500}.pfs-card-link{color:#2563eb;align-items:center;gap:6px;margin-top:auto;font-weight:600;text-decoration:none;display:inline-flex}.pfs-carousel-wrap{max-width:1120px;margin:0 auto;position:relative}.pfs-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;max-width:1000px;margin:0 auto;display:grid}.pfs-bottom{text-align:center;margin-top:40px}.pfs-bottom-text{color:#475569;margin-bottom:16px}
