.showcase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-card{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;transition:.25s}.project-card:hover{transform:translateY(-6px);box-shadow:0 24px 65px #31094718}.project-image{height:250px;background:linear-gradient(135deg,#e9d9f8,#f9f5fc);overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover}.project-placeholder{height:100%;display:grid;place-items:center;font:800 54px Manrope;color:#60269e}.project-body{padding:23px}.project-meta{display:flex;align-items:center;justify-content:space-between;color:#9228f5;font:800 10px Manrope;letter-spacing:.1em}.project-body h2{font-size:21px;margin:12px 0}.project-body p{color:var(--muted);font-size:13px;line-height:1.8;min-height:46px}.project-link{display:inline-flex;margin-top:16px;color:var(--p);font-weight:800;font-size:12px}.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.review-card{background:#fff;border:1px solid var(--line);border-radius:23px;padding:27px;display:flex;flex-direction:column;min-height:280px}.stars{color:#f3ad18;letter-spacing:3px}.review-card blockquote{margin:25px 0;font-size:16px;line-height:2;color:#4f4657}.review-person{display:flex;align-items:center;gap:12px;margin-top:auto}.review-person img,.review-person>span{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#eee1f8;display:grid;place-items:center;color:var(--p);font-weight:800}.review-person div{display:flex;flex-direction:column}.review-person small{color:var(--muted);margin-top:3px}.showcase-empty{grid-column:1/-1;padding:60px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;color:var(--muted)}@media(max-width:900px){.showcase-grid,.reviews-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.showcase-grid,.reviews-grid{grid-template-columns:1fr}.project-image{height:220px}.project-body{padding:19px}.review-card{min-height:0;padding:22px}.showcase-empty{padding:40px 20px}}
.portfolio-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 34px}.portfolio-filters button{border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px 18px;border-radius:999px;font:700 13px inherit;cursor:pointer}.portfolio-filters button.active,.portfolio-filters button:hover{background:var(--p);border-color:var(--p);color:#fff}.project-card[hidden]{display:none}.project-link{display:inline-flex;margin-top:14px}.muted-link{opacity:.7;margin-inline-start:14px}
