/* Personal projects: conceptual workflows, with the actual work in expandable details. */
.works.personal-works { display: block; padding: 160px var(--gutter) 64px; }
.projects-heading { margin-bottom: 56px; }
.personal-works .works-title { position: static; width: auto; margin: 0 0 24px; font-size: clamp(72px, 11vw, 160px); line-height: 1; white-space: normal; }
.projects-heading > p { font: 300 20px/1.5 var(--sans); color: var(--ink); }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px 32px; align-items: start; }
.project-card { min-width: 0; color: var(--ink); scroll-margin-top: 32px; outline: none; }
.project-card:target .project-cover, .project-card:focus-visible .project-cover { outline: 2px solid var(--project-ink); outline-offset: 4px; }
.project-cover { min-height: 300px; padding: 28px; background: var(--project-paper); color: var(--project-ink); display: flex; flex-direction: column; justify-content: space-between; gap: 32px; border-radius: 4px; }
.project-cover-top { display: flex; justify-content: space-between; gap: 20px; font: 400 13px/1.4 var(--sans); }
.project-cover-top > span:last-child { text-align: right; }
.project-cover-title { max-width: 12ch; overflow-wrap: anywhere; font: 400 clamp(44px, 5vw, 76px)/.98 var(--serif); letter-spacing: -.035em; }
#project-recommender .project-cover-title { max-width: none; overflow-wrap: normal; font-size: clamp(36px, 4.2vw, 64px); }
.project-flow { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font: 400 12px/1.4 var(--sans); }
.project-flow span { padding: 7px 10px; border: 1px solid currentColor; border-radius: 3px; }
.project-flow span + span::before { content: '→'; margin-right: 8px; }
.project-copy { padding-top: 24px; }
.project-context { font: 400 13px/1.5 var(--sans); color: #595959; margin-bottom: 12px; }
.project-copy h3 { margin-bottom: 14px; font: 400 40px/1.05 var(--serif); letter-spacing: -.025em; text-wrap: balance; }
.project-summary { max-width: 54ch; font: 300 17px/1.55 var(--sans); }
.project-tech { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 0; margin: 20px 0; list-style: none; font: 400 12px/1.5 var(--sans); color: var(--project-ink); }
.project-details { border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; }
.project-details summary { display: flex; justify-content: space-between; align-items: center; min-height: 52px; padding: 12px 0; cursor: pointer; list-style: none; font: 400 16px/1.5 var(--sans); }
.project-details summary::-webkit-details-marker { display: none; }
.project-details summary:focus-visible { outline: 2px solid var(--project-ink); outline-offset: 4px; }
.project-details summary > span { font-size: 24px; line-height: 1; transition: transform .2s; }
.project-details[open] summary > span { transform: rotate(45deg); }
.project-details > ul { padding: 0 0 20px 20px; margin: 0; display: grid; gap: 12px; font: 300 16px/1.55 var(--sans); }
/* Each desktop pair shares its cover and five text rows. Long titles enlarge
   both covers together, instead of pushing just one card's content downward. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 768px) {
    .project-grid { row-gap: 0; align-items: stretch; }
    .project-card { display: grid; grid-template-rows: subgrid; grid-row: span 6; row-gap: 0; padding-bottom: 64px; }
    .project-card:nth-last-child(-n+2) { padding-bottom: 0; }
    .project-copy { display: grid; grid-template-rows: subgrid; grid-row: span 5; row-gap: 0; }
    .project-details { align-self: start; }
  }
}
@media (max-width: 767.98px) {
  .works.personal-works { padding-top: 100px; padding-bottom: 48px; }
  .projects-heading { margin-bottom: 36px; }
  .project-grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .project-cover { min-height: 280px; padding: 22px; }
  .project-cover-title { font-size: clamp(36px, 10vw, 52px); }
  .project-copy h3 { font-size: 36px; }
  .projects-heading > p { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .project-details summary > span { transition: none; } }
