/* Projectes: índice, filas áureas, «sobre el papel» y ficha. */
.pindex { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--ink); margin-top: var(--s4); }
.pindex a { display: grid; gap: 0.3rem; padding: var(--s1) var(--s1) var(--s1) 0; text-decoration: none;
  font: 400 clamp(1.4rem, 1rem + 1.2vw, 2.2rem)/1 var(--serif); transition: color var(--t-fast); }
.pindex span { font: 400 0.72rem/1 var(--mono); color: var(--olive); letter-spacing: 0.08em; }
.pindex em { font: 400 0.76rem/1.2 var(--mono); font-style: normal; color: var(--graphite); letter-spacing: 0.04em; text-transform: uppercase; }
.pindex a:hover { color: var(--olive); font-style: italic; }
@media (max-width: 640px) { .pindex { grid-template-columns: 1fr 1fr; } }

.prows { display: grid; gap: var(--s5); padding: var(--s4) var(--gutter); max-width: var(--max); margin: 0 auto; }
.prow { display: grid; grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); gap: var(--s4); align-items: end; }
.prow.is-flip .prow__img { order: 2; }
.prow__img { display: block; aspect-ratio: 1.618 / 1; overflow: hidden; }
.prow__img img { transition: transform 1.2s var(--ease-grow); }
.prow__img:hover img { transform: scale(1.035); }
.prow__n { font: 400 0.78rem/1 var(--mono); color: var(--olive); letter-spacing: 0.08em; }
.prow__n i { font-style: normal; color: var(--mute); }
.prow__name { font: 400 clamp(3.4rem, 1.6rem + 6vw, 8rem)/0.86 var(--serif); letter-spacing: -0.035em; margin: var(--s0) 0 var(--s2); }
.prow__name a { text-decoration: none; }
.prow__name a:hover { font-style: italic; }
.prow__challenge { color: var(--graphite); max-width: 30em; }
.facts { display: grid; gap: 0; border-top: 1px solid var(--line); margin-bottom: var(--s2); }
.facts div { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--s1); padding: 0.6rem 0; border-bottom: 1px solid var(--line); }
.facts dt { font: 400 0.72rem/1.6 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); }
.facts dd { font-weight: 400; }
@media (max-width: 899px) {
  .prow { grid-template-columns: 1fr; gap: var(--s2); }
  .prow.is-flip .prow__img { order: 0; }
}

.paper__list { display: grid; grid-template-columns: 1.618fr 1fr 1fr; gap: var(--s2); align-items: start; }
.paper__img { aspect-ratio: 4 / 5; overflow: hidden; background: var(--stone); }
.paper__item:nth-child(2) .paper__img img { object-fit: contain; background: #fff; }
.paper__t { font: 400 1.6rem/1.05 var(--serif); margin: var(--s1) 0 var(--s0); }
.paper__item p { color: var(--graphite); font-size: 0.95rem; }
@media (max-width: 899px) { .paper__list { grid-template-columns: 1fr; } .paper__img { aspect-ratio: 1.618 / 1; } }

/* ---- Ficha ------------------------------------------------------------------------------------------ */
.pj-hero { position: relative; height: 100svh; min-height: 34rem; color: #fff; overflow: hidden; }
.pj-hero__img { position: absolute; inset: 0; }
.pj-hero__img::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(0deg, rgb(20 20 18 / 0.62), rgb(20 20 18 / 0) 50%), linear-gradient(180deg, rgb(20 20 18 / 0.35), rgb(20 20 18 / 0) 25%); }
.pj-hero__text { position: absolute; left: var(--gutter); right: var(--gutter); bottom: clamp(1.6rem, 1rem + 3vw, 3.6rem); }
.pj-hero__name { font: 400 var(--fs-giant)/0.8 var(--serif); letter-spacing: -0.045em; }
.pj-hero__type { margin: var(--s1) 0 0; font: 400 0.84rem/1.4 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
.pj-brief { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.618fr); gap: var(--s4);
  padding: var(--s5) var(--gutter); max-width: var(--max); margin: 0 auto; }
.facts--big { position: sticky; top: calc(var(--header-h) + var(--s2)); align-self: start; }
.pj-brief__challenge { font: 400 clamp(1.7rem, 1rem + 2.4vw, 3.4rem)/1.08 var(--serif); letter-spacing: -0.015em; margin-bottom: var(--s4); }
.pj-brief__lead { font-weight: 400; }
.pj-brief__text { columns: 2 22rem; column-gap: var(--s3); color: var(--graphite); }
.pj-brief__text p { break-inside: avoid; }
@media (max-width: 899px) {
  .pj-brief { grid-template-columns: 1fr; gap: var(--s3); }
  .facts--big { position: static; }
}

.gal { display: grid; gap: var(--s0); padding: 0 var(--gutter); max-width: var(--max); margin: 0 auto; }
.gal__row { display: grid; gap: var(--s0); }
.gal__row--pair { grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); }
.gal__row--pair-flip { grid-template-columns: minmax(0, 1fr) minmax(0, 1.618fr); }
.gal__row--pair-flip .gal__fig:first-child { order: 2; }
.gal__row.is-single { grid-template-columns: minmax(0, 1.618fr) minmax(0, 1fr); }
.gal__fig { overflow: hidden; min-height: 0; }
.gal__row--pair .gal__fig, .gal__row--pair-flip .gal__fig { aspect-ratio: auto; height: clamp(16rem, 38vw, 44rem); }
.gal__row--full .gal__fig { aspect-ratio: 1.618 / 1; }
.gal__fig picture { height: 100%; }
@media (max-width: 699px) {
  .gal__row--pair, .gal__row--pair-flip, .gal__row.is-single { grid-template-columns: 1fr; }
  .gal__row--pair-flip .gal__fig:first-child { order: 0; }
  .gal__row--pair .gal__fig, .gal__row--pair-flip .gal__fig { height: auto; aspect-ratio: 4 / 3; }
}

.pj-next { position: relative; display: block; margin: var(--s5) var(--gutter) 0; height: 61.8vh; min-height: 22rem; color: #fff; text-decoration: none; overflow: hidden; }
.pj-next__img { position: absolute; inset: 0; }
.pj-next__img::after { content: ""; position: absolute; inset: 0; background: rgb(20 20 18 / 0.38); transition: background-color 0.6s; }
.pj-next:hover .pj-next__img::after { background: rgb(20 20 18 / 0.2); }
.pj-next__text { position: absolute; left: var(--s3); bottom: var(--s3); display: grid; gap: var(--s0); }
.pj-next__name { font: 400 clamp(3.4rem, 1.4rem + 8vw, 10rem)/0.82 var(--serif); letter-spacing: -0.04em; }
.pj-next:hover .pj-next__name { font-style: italic; }
.pj-next__meta { font: 400 0.8rem/1.4 var(--mono); letter-spacing: 0.08em; text-transform: uppercase; }
.pj-all { padding: var(--s2) var(--gutter) 0; text-align: right; }
.pj-hero__img picture, .pj-next__img picture { height: 100%; }
.pj-hero__type { margin-top: var(--s2); }
