/* Compact project previews keep the portfolio easy to scan. */
#work .portfolio-grid {align-items:start;}
#work .portfolio-card:nth-child(n) {height:auto;min-height:0;}
#work .portfolio-card:nth-child(n) .portfolio-preview {flex:0 0 auto;}
#work .portfolio-card:nth-child(n) .portfolio-stage {padding:0;}
#work .portfolio-card:nth-child(n) .portfolio-stage img {
  aspect-ratio:2.15/1;
  object-fit:cover;
  object-position:top;
}
#work .portfolio-card:nth-child(n) .portfolio-copy {
  flex:0 0 auto;
  min-height:0;
  padding:18px;
}
#work .portfolio-card:nth-child(n) .portfolio-meta {
  align-items:center;
  gap:8px;
  font-size:11px;
  line-height:1.35;
}
#work .portfolio-meta>span:first-child {
  max-width:none;
  min-width:0;
  font-weight:500;
  text-transform:none;
  letter-spacing:0;
}
#work .portfolio-card:nth-child(n) .project-status {
  flex:0 0 auto;
  padding:4px 8px;
  font-size:11px;
  line-height:1.4;
}
#work .portfolio-card:nth-child(n) .portfolio-copy h3 {
  margin:8px 0 4px;
  font-size:23px;
  line-height:1.2;
  letter-spacing:-.025em;
}
#work .portfolio-copy h3>button {min-height:44px;}
#work .portfolio-card:nth-child(n) .portfolio-copy>p {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin:0;
  font-size:16px;
  line-height:1.45;
}
#work .portfolio-card:nth-child(n) .portfolio-actions {
  margin-top:0;
  padding-top:12px;
  gap:8px 12px;
}
#work .portfolio-card:nth-child(n) .portfolio-actions :is(.text-button,.text-link) {
  min-height:44px;
  font-size:14px;
  line-height:1.3;
}
#work .portfolio-card:nth-child(n) .portfolio-actions .text-button {padding:9px 10px;}
#work .portfolio-actions svg {flex:0 0 15px;}

@media(min-width:640px) {
  /* Each desktop row follows its tallest caption, with actions aligned below. */
  #work .portfolio-grid {align-items:stretch;}
  #work .portfolio-card:nth-child(n) .portfolio-copy {flex:1 0 auto;}
  #work .portfolio-card:nth-child(n) .portfolio-actions {margin-top:auto;}
}

@media(max-width:639px) {
  /* Card width, overflow and snapping remain controlled by the swipe rail. */
  #work .portfolio-card:nth-child(n) .portfolio-copy {padding:16px;}
  #work .portfolio-card:nth-child(n) .portfolio-stage img {aspect-ratio:2.05/1;}
  #work .portfolio-card:nth-child(n) .portfolio-meta {flex-wrap:nowrap;}
  #work .portfolio-card:nth-child(n) .portfolio-copy h3 {font-size:22px;}
  #work .portfolio-card:nth-child(n) .portfolio-actions {
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:10px;
  }
  #work .portfolio-card:nth-child(n) .portfolio-actions :is(.text-button,.text-link) {
    flex:1 1 0;
    min-width:0;
    justify-content:center;
    text-align:center;
    white-space:normal;
  }
  #work .portfolio-card:nth-child(n) .portfolio-actions .text-button {padding:7px 8px;}
}
