/* ===== PUBLIC PORTFOLIO ===== */
.pf-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.pf-card {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-lg); overflow: hidden;
  transition: box-shadow .3s ease, transform .3s ease;
}
.pf-card:hover { box-shadow: var(--shadow-md); transform: translateY(-4px); }
.pf-media {
  height: 180px; position: relative;
  display: flex; align-items: center; justify-content: center;
}
.pf-media--music .pf-wave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40px;
  background: linear-gradient(to top, rgba(0,0,0,.3), transparent);
}
.pf-play {
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(255,255,255,.9); display: flex;
  align-items: center; justify-content: center;
  color: var(--primary); transition: transform .2s ease;
  position: relative; z-index: 1;
}
.pf-play svg { width: 22px; height: 22px; margin-left: 3px; }
.pf-card:hover .pf-play { transform: scale(1.12); }
.pf-award-icon { width: 64px; height: 64px; }
.pf-body { padding: 20px; }
.pf-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.pf-kind {
  font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  background: rgba(227,6,19,.1); color: var(--primary);
  padding: 3px 10px; border-radius: 40px;
}
.pf-kind--gold {
  background: rgba(201,168,76,.12); color: #a07828;
}
.pf-dir { font-size: .78rem; color: var(--muted); }
.pf-body h3 { font-size: 1rem; margin: 0 0 8px; line-height: 1.35; }
.pf-body p { font-size: .85rem; color: var(--muted); margin: 0 0 12px; line-height: 1.5; }
.pf-student { font-size: .78rem; color: var(--muted); }
.pf-student strong { color: var(--body); }

@media (max-width: 1100px) {
  .pf-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .pf-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .pf-grid { grid-template-columns: 1fr; }
}
