.publication-index { padding-block: clamp(48px, 6vw, 88px) 105px; }
.publication-index h1 { margin-bottom: clamp(30px, 4vw, 55px); font: 400 clamp(48px, 5.5vw, 78px)/1.07 var(--serif); letter-spacing: -.045em; }
.publication-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(15px, 2.2vw, 34px); }
.publication-card { min-width: 0; }
.publication-card a { display: block; }
.publication-card-image { display: block; overflow: hidden; aspect-ratio: 3/4; background: #f0ede5; }
.publication-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.publication-card a:hover img { transform: scale(1.025); }
.publication-card h2 { margin-top: 17px; font: 400 clamp(22px, 2vw, 30px)/1.22 var(--serif); letter-spacing: -.025em; }
.publication-card a:hover h2 { text-decoration: underline; text-underline-offset: 5px; }
.publication-index .book-aside { margin-top: 52px; }

.publication-detail { padding-block: 38px 110px; }
.publication-back { display: inline-block; padding-block: 10px; border-bottom: 1px solid #9a9a93; font: 400 14px/1.5 var(--sans); }
.publication-back:hover { color: #806953; }
.publication-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: clamp(55px, 8vw, 145px); margin-block: clamp(42px, 6vw, 90px) clamp(85px, 9vw, 135px); }
.publication-intro-copy { max-width: 670px; }
.publication-intro h1 { margin: 0 0 32px; font: 400 clamp(49px, 5.8vw, 83px)/1.05 var(--serif); letter-spacing: -.05em; }
.publication-description p { margin-bottom: 20px; max-width: 590px; color: #585650; font: 300 17px/1.8 var(--sans); }
.publication-feature-image { width: 100%; max-width: 460px; justify-self: end; }
.publication-feature-image img { width: 100%; height: auto; max-height: 600px; aspect-ratio: 3/4; object-fit: cover; }
.publication-inside { border-top: 1px solid var(--line); padding-top: 47px; }
.publication-inside-heading { margin-bottom: 30px; }
.publication-inside-heading h2 { font: 400 clamp(36px, 4vw, 54px)/1.1 var(--serif); letter-spacing: -.035em; }
.publication-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 40px 18px; }
.publication-photo { min-width: 0; }
.publication-photo img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; background: #f0ede5; }
.publication-photo figcaption { margin-top: 10px; color: var(--muted); font: italic 15px/1.5 var(--serif); }
.publication-back-bottom { margin-top: 68px; }

@media (max-width: 900px) {
  .publication-grid { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 45px; }
  .publication-intro { gap: 45px; }
  .publication-intro h1 { font-size: clamp(42px, 5vw, 65px); }
  .publication-photo-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 690px) {
  .publication-index { padding-block: 55px 80px; }
  .publication-index h1 { margin-bottom: 30px; }
  .publication-card h2 { font-size: 23px; }
  .publication-detail { padding-block: 25px 80px; }
  .publication-intro { display: flex; flex-direction: column-reverse; align-items: stretch; gap: 38px; margin-block: 36px 80px; }
  .publication-feature-image { width: min(100%, 420px); max-width: none; align-self: center; }
  .publication-feature-image img { max-height: 470px; object-fit: contain; }
  .publication-intro h1 { font-size: clamp(43px, 10vw, 62px); }
  .publication-description p { font-size: 16px; }
  .publication-inside-heading { display: block; }
}
@media (max-width: 380px) {
  .publication-grid { gap: 12px; }
  .publication-card h2 { font-size: 20px; }
  .publication-photo-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .publication-card-image img { transition: none; }
}
