/* Photography-led layout; source order remains reading and keyboard order. */
.page-projects-editorial #portfolio-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: clamp(64px, 8vw, 112px) clamp(24px, 4vw, 64px);
  padding: 16px 0 80px;
}
.page-projects-editorial .editorial-project {
  grid-column: span 7;
  display: block;
  margin: 0;
  color: var(--ink);
  text-decoration: none;
  animation: project-entry 700ms ease both;
}
.page-projects-editorial .editorial-project:nth-child(4n + 2),
.page-projects-editorial .editorial-project:nth-child(4n + 3) {
  grid-column: span 5;
}
.page-projects-editorial .editorial-project:nth-child(even) {
  margin-top: clamp(64px, 10vw, 144px);
}
.editorial-project-media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--paper-deep);
}
.editorial-project:nth-child(4n + 2) .editorial-project-media,
.editorial-project:nth-child(4n + 3) .editorial-project-media {
  aspect-ratio: 4 / 5;
}
.editorial-project-media::after {
  position: absolute;
  inset: 0;
  content: '';
  pointer-events: none;
  background: linear-gradient(180deg, transparent 55%, rgba(var(--ink-rgb), .18));
  opacity: .35;
  transition: opacity 700ms ease;
}
.editorial-project-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 800ms ease;
}
.editorial-project-copy {
  padding: 24px 0 0;
  border-bottom: 1px solid var(--line);
}
.editorial-project-meta {
  margin: 0 0 16px;
  color: var(--muted);
  font-size: .75rem;
  letter-spacing: .08em;
}
.editorial-project-title {
  margin: 0 0 12px;
  font-size: clamp(1.6rem, 2.6vw, 2.5rem);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: .035em;
  overflow-wrap: anywhere;
}
.editorial-project-location {
  margin: 0;
  color: var(--muted);
  font-size: .875rem;
}
.editorial-project-summary {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 48ch;
  margin: 16px 0 0;
  font-size: .9375rem;
  line-height: 1.8;
  color: var(--muted);
}
.editorial-project-cta {
  display: inline-block;
  margin: 24px 0;
  color: var(--gold-dark);
  font-size: .8125rem;
  letter-spacing: .06em;
  text-decoration: underline;
  text-underline-offset: 6px;
  transition: color 600ms ease;
}
.editorial-project:focus-visible .editorial-project-image { transform: scale(1.03); }
.editorial-project:focus-visible .editorial-project-media::after { opacity: 1; }
@media (hover: hover) {
  .editorial-project:hover .editorial-project-image { transform: scale(1.03); }
  .editorial-project:hover .editorial-project-media::after { opacity: 1; }
  .editorial-project:hover .editorial-project-cta { color: var(--ink); }
}
.page-projects-editorial #portfolio-grid > .empty-state { grid-column: 1 / -1; }
@keyframes project-entry {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 767px) {
  .page-projects-editorial #portfolio-grid { grid-template-columns: 1fr; gap: 56px; padding-bottom: 48px; }
  .page-projects-editorial #portfolio-grid > .editorial-project { grid-column: 1; margin-top: 0; }
  .editorial-project .editorial-project-media { aspect-ratio: 4 / 3; }
  .editorial-project:nth-child(even) .editorial-project-media { aspect-ratio: 4 / 5; }
}
@media (prefers-reduced-motion: reduce) {
  .page-projects-editorial .editorial-project { animation: none; }
  .editorial-project .editorial-project-image,
  .editorial-project .editorial-project-media::after,
  .editorial-project .editorial-project-cta { transition: none; transform: none; }
}
