.all-projects { padding-block:55px 130px }
.projects-heading { max-width:750px; margin-bottom:72px }
.projects-heading h1 { font-size:clamp(40px,4.4vw,62px); line-height:1.08; letter-spacing:-.055em }
.projects-heading>p:last-child { max-width:560px; margin:24px 0 0; color:var(--muted); font-size:17px; line-height:1.65 }
.project-toolbar { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:72px; padding-block:16px; border-top:1px solid var(--line); border-bottom:1px solid var(--line) }
.project-toolbar>p { margin:0; flex:none; color:var(--muted); font:12px var(--mono) }
.category-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px }
.category-filter { min-height:42px; padding:10px 16px; border:1px solid transparent; border-radius:22px; background:transparent; color:var(--muted); font:12px var(--mono); transition:color .2s,background .2s,border-color .2s }
.category-filter:hover { color:var(--ink); border-color:var(--line) }
.category-filter[aria-pressed="true"] { color:var(--bg); background:var(--ink) }
.all-projects-grid { display:grid; gap:115px }
.project-entry { min-width:0; transition:opacity .24s,transform .24s }
.project-entry.tile-visible { animation:project-in .42s both }
.project-entry.filter-leaving { opacity:0; transform:translateY(-8px); pointer-events:none }
.projects-empty { padding:50px 0; color:var(--muted) }
@keyframes project-in { from { opacity:0; transform:translateY(10px) } to { opacity:1; transform:translateY(0) } }
@media(max-width:700px) {
  .all-projects { padding-block:45px 90px }
  .projects-heading { margin-bottom:48px }
  .projects-heading h1 { font-size:clamp(38px,10vw,52px) }
  .projects-heading>p:last-child { font-size:15px }
  .project-toolbar { display:block; margin-bottom:48px }
  .category-filters { justify-content:flex-start; margin-top:15px }
  .category-filter { padding-inline:12px }
  .all-projects-grid { gap:80px }
}
@media(prefers-reduced-motion:reduce) { .project-entry.tile-visible { animation:none } }
