/* Mehedi Hasan — compact portfolio cards (2026-11-05).
   Scoped to project listing only. Keeps detailed content accessible via <details>. */

#work .work-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
#work .work-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-radius: 14px;
  border-color: #e0e5ee;
  box-shadow: 0 5px 17px rgba(28, 39, 66, 0.035);
  transition: box-shadow .22s ease, border-color .22s ease, transform .22s ease;
}
#work .work-card:hover {
  transform: translateY(-3px);
  border-color: #bdc8e1;
  box-shadow: 0 15px 35px rgba(28, 39, 66, 0.09);
}
#work .work-card[hidden] { display: none; }
#work .work-image {
  flex: none;
  height: auto;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #eef1f5;
}
#work .work-image img { object-fit: cover; object-position: center top; }
#work .image-link { width: 31px; height: 31px; top: 12px; right: 12px; font-size: 16px; }
#work .work-body { display: flex; flex: 1; flex-direction: column; padding: 18px 19px 19px; }
#work .work-meta { gap: 8px; flex-wrap: wrap; font-size: 9px; letter-spacing: .065em; line-height: 1.5; }
#work .work-body h3 { font-size: clamp(19px, 1.6vw, 22px); letter-spacing: -.045em; line-height: 1.26; margin: 9px 0 8px; }
#work .work-body>p {
  margin: 0 0 12px;
  min-height: 0;
  font-size: 12.5px;
  line-height: 1.65;
  color: #566378;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}
#work .work-contribution {
  padding: 10px 11px;
  margin: 0 0 11px;
  border-radius: 8px;
  background: #f6f8fc;
}
#work .work-contribution>span { font-size: 9px; letter-spacing: .07em; }
#work .work-contribution>p {
  font-size: 11.5px;
  line-height: 1.55;
  margin-top: 4px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}
#work .case-detail { margin-top: auto; border-top: 1px solid #e8ecf3; }
#work .case-detail summary { padding: 11px 0; font-size: 11.5px; }
#work .case-detail[open] { margin-top: 8px; }
#work .case-link, #work .visit-link {
  margin: 0;
  min-height: 38px;
  padding: 8px 0;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  font-size: 11.5px;
  line-height: 1.4;
}
#work .visit-link { color: #3448c1; font-weight: 800; }
#work .case-link { color: #4d617f; }
#work .work-card a:focus-visible, #work .work-card summary:focus-visible { outline: 3px solid #5168dc; outline-offset: 3px; }
@media (min-width: 681px) and (max-width: 1100px) {
  #work .work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
}
@media (max-width: 680px) {
  #work .work-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  #work .work-card { border-radius: 12px; }
  #work .work-image { aspect-ratio: 16 / 8.7; }
  #work .work-body { padding: 16px 17px 17px; }
  #work .work-body h3 { font-size: 21px; }
  #work .work-body>p { -webkit-line-clamp: 2; line-clamp: 2; }
  #work .work-meta { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  #work .work-card, #work .work-image img { transition: none; }
  #work .work-card:hover { transform: none; }
}

/* All Projects page: same compact visual rhythm, independent of services pages. */
.project-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.project-grid .project-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  box-shadow: 0 5px 17px rgba(28, 39, 66, 0.035);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.project-grid .project-card:hover {
  border-color: #bdc8e1;
  box-shadow: 0 15px 35px rgba(28, 39, 66, 0.09);
  transform: translateY(-3px);
}
.project-grid .project-card>a { display: block; overflow: hidden; }
.project-grid .project-card>a img { display: block; width: 100%; aspect-ratio: 16/9; object-position: top center; }
.project-grid .project-card .card-body { display: flex; flex-direction: column; flex: 1; padding: 17px 18px 19px; }
.project-grid .card-body h2 { font-size: 20px; line-height: 1.3; letter-spacing: -.035em; margin: 8px 0; }
.project-grid .card-body>.eyebrow { font-size: 10px; letter-spacing: .09em; }
.project-grid .card-body>p {
  font-size: 12.5px;
  line-height: 1.64;
  margin-bottom: 12px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  overflow: hidden;
}
.project-grid .card-links { margin-top: auto; gap: 5px 12px; align-items: flex-start; }
.project-grid .card-links a { font-size: 11.5px; line-height: 1.45; padding: 4px 0; }
@media (min-width: 681px) and (max-width: 1100px) {
  .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
}
@media (max-width: 680px) {
  .project-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .project-grid .project-card .card-body { padding: 16px 17px; }
  .project-grid .card-body h2 { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  .project-grid .project-card { transition: none; }
  .project-grid .project-card:hover { transform: none; }
}
