.portfolio-grid{display:grid;grid-gap:1.25rem;gap:1.25rem;margin-top:2rem}@media (min-width:640px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.portfolio-grid{grid-template-columns:repeat(3,1fr)}}.portfolio-grid__empty{margin-top:2rem;color:var(--muted)}.portfolio-card{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-sm)}.portfolio-card__media{position:relative;aspect-ratio:4/3}.portfolio-card__badge{position:absolute;top:.65rem;left:.65rem;z-index:2;padding:.3rem .65rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--on-media-text);background:var(--caption-overlay-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.portfolio-card__img{object-fit:cover}.portfolio-card__body{padding:1rem 1.1rem 1.15rem}.portfolio-card__title{font-size:1rem;font-weight:600;margin:0 0 .35rem}.portfolio-card__desc{margin:0 0 .5rem;font-size:.88rem;color:var(--muted);line-height:1.45}.portfolio-card__meta{margin:0 0 .85rem;font-size:.78rem;font-weight:500;color:var(--accent)}.portfolio-card__actions{display:flex;flex-direction:column;gap:.5rem}.portfolio-card__cta,.portfolio-card__link{width:100%;justify-content:center;text-align:center}.portfolio-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.portfolio-filter__link{display:inline-flex;padding:.45rem .9rem;border-radius:999px;font-size:.82rem;font-weight:500;border:1px solid var(--border);color:var(--text);text-decoration:none;transition:background .2s,border-color .2s}.portfolio-filter__link:hover{border-color:var(--accent)}.portfolio-filter__link--active{background:var(--accent);border-color:var(--accent);color:var(--ink-on-primary)}