.portfolio-card > img {
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(.35);
  transition: .8s;
}

.portfolio-card:hover > img {
  transform: scale(1.06);
  filter: none;
}

.portfolio-card::after {
  pointer-events: none;
}

.portfolio-scroll-preview {
  position: absolute;
  inset: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: rgba(255,255,255,.55) transparent;
  scrollbar-width: thin;
}

.portfolio-scroll-preview::-webkit-scrollbar {
  width: 5px;
}

.portfolio-scroll-preview::-webkit-scrollbar-track {
  background: transparent;
}

.portfolio-scroll-preview::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.55);
  border-radius: 10px;
}

.portfolio-scroll-preview img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 100%;
  filter: grayscale(.2);
  transition: filter .5s;
}

.portfolio-card.has-scroll-preview:hover .portfolio-scroll-preview img {
  filter: none;
}

.portfolio-card.has-scroll-preview .portfolio-content {
  pointer-events: none;
}

.portfolio-tabs {
  display: flex;
  gap: 10px;
  margin: -20px 0 38px;
  padding-bottom: 10px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.portfolio-tab {
  flex: 0 0 auto;
  border: 1px solid rgba(11,11,18,.18);
  border-radius: 999px;
  padding: 11px 16px;
  background: transparent;
  color: var(--ink);
  font: 600 12px Poppins, sans-serif;
  transition: .25s ease;
}

.portfolio-tab sup { margin-left: 6px; opacity: .58; }
.portfolio-tab:hover, .portfolio-tab.active { background: var(--ink); color: white; border-color: var(--ink); }

#portfolioGrid.portfolio-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
#portfolioGrid .portfolio-card:nth-child(n) { grid-column: span 1; grid-row: span 1; min-height: 410px; border-radius: 0; }
#portfolioGrid .portfolio-card:nth-child(odd) { clip-path: polygon(0 0, 100% 0, 100% 100%, 42px 100%, 0 calc(100% - 42px)); }
#portfolioGrid .portfolio-card:nth-child(even) { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 42px), calc(100% - 42px) 100%, 0 100%); }
#portfolioGrid .portfolio-content { padding: 24px; }
#portfolioGrid .portfolio-content h3 { margin: 8px 0; font-size: clamp(27px, 3vw, 42px); line-height: .98; }
#portfolioGrid .portfolio-content b { max-width: 28ch; font: 500 13px/1.5 Inter, sans-serif; color: rgba(255,255,255,.8); }
.portfolio-visit { display: flex; align-items: center; gap: 7px; margin-top: 18px; font-size: 12px; font-weight: 700; opacity: 0; transform: translateY(6px); transition: .3s; }
.portfolio-card:hover .portfolio-visit, .portfolio-card:focus-visible .portfolio-visit { opacity: 1; transform: none; }

@media (max-width: 991.98px) { #portfolioGrid.portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .portfolio-tabs { margin-top: -10px; }
  #portfolioGrid.portfolio-grid { grid-template-columns: 1fr; }
  #portfolioGrid .portfolio-card:nth-child(n) { min-height: 380px; }
  .portfolio-visit { opacity: 1; transform: none; }
}
