.artwork-page {
  --artwork-paper: #181818;
  --artwork-ink: #dddddd;
  --artwork-muted: #aaaaaa;
  --artwork-rule: #444444;
  background: #181818;
  color: var(--artwork-ink);
  margin: 0 auto;
  max-width: 70rem;
}

.portfolio-index {
  margin: 0 auto;
  max-width: 70rem;
}

.portfolio-grid {
  display: grid;
  gap: 2.5rem 1.25rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.portfolio-work__image {
  background: #282828;
  display: block;
  overflow: hidden;
}

.portfolio-work__image img {
  aspect-ratio: 4 / 5;
  display: block;
  height: auto;
  object-fit: cover;
  transition: transform 250ms ease;
  width: 100%;
}

.portfolio-work__image:hover img {
  transform: scale(1.02);
}

.portfolio-work__text h2 {
  font-size: 1.2rem;
  font-weight: 400;
  margin: 1rem 0 0.25rem;
}

.portfolio-work__text h2 a {
  color: inherit;
  text-decoration: none;
}

.portfolio-work__text p {
  color: #aaa;
  font-size: 0.85rem;
  margin: 0.15rem 0;
}

@media (max-width: 950px) {
  .portfolio-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .portfolio-grid {
    gap: 2rem 0.8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .portfolio-work__text h2 {
    font-size: 1rem;
  }

  .portfolio-work__text p {
    font-size: 0.75rem;
  }
}

.artwork-card {
  background: var(--artwork-paper);
  display: grid;
  gap: clamp(2rem, 6vw, 5rem);
  grid-template-columns: minmax(15rem, 0.82fr) minmax(18rem, 1fr);
  padding: clamp(2rem, 7vw, 6rem) clamp(1.5rem, 8vw, 7rem) 4.5rem;
  position: relative;
}

.artwork-card__visual {
  align-self: center;
  aspect-ratio: 26 / 35;
  background: #111;
  box-shadow: 0 0.4rem 1.4rem rgb(36 32 27 / 16%);
  position: relative;
  z-index: 1;
}

.artwork-card__visual img {
  cursor: zoom-in;
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}

.artwork-card__placeholder {
  align-items: center;
  background:
    linear-gradient(135deg, transparent 49.7%, #c7c1b7 50%, transparent 50.3%),
    linear-gradient(45deg, transparent 49.7%, #c7c1b7 50%, transparent 50.3%);
  color: var(--artwork-muted);
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center;
  letter-spacing: 0.08em;
  text-align: center;
}

.artwork-card__placeholder small {
  font-size: 0.75rem;
  margin-top: 0.5rem;
}

.artwork-card__information {
  align-self: center;
}

.artwork-card__eyebrow {
  color: var(--artwork-muted);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  margin: 0 0 0.8rem;
  text-transform: uppercase;
}

.artwork-card h1 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 400;
  line-height: 1.3;
  margin: 0 0 2.4rem;
}

.artwork-card h1 span {
  color: var(--artwork-muted);
  display: block;
  font-size: 0.58em;
  letter-spacing: 0.04em;
  margin-top: 0.35rem;
}

.artwork-meta {
  margin: 0;
}

.artwork-meta div {
  border-top: 1px solid var(--artwork-rule);
  display: grid;
  gap: 1rem;
  grid-template-columns: 7rem 1fr;
  padding: 0.85rem 0;
}

.artwork-meta dt {
  color: var(--artwork-muted);
  font-size: 0.82rem;
}

.artwork-meta dd {
  margin: 0;
}

.artwork-card__brand {
  bottom: 1.25rem;
  color: var(--artwork-muted);
  font-size: 0.72rem;
  left: 0;
  letter-spacing: 0.04em;
  margin: 0;
  position: absolute;
  right: 0;
  text-align: center;
}

.artwork-body {
  font-size: 1.05rem;
  line-height: 1.85;
  margin: 0 auto;
  max-width: 52rem;
  padding: clamp(3rem, 8vw, 6rem) clamp(1.25rem, 5vw, 3rem);
}

.artwork-body h2 {
  font-size: 1.35rem;
  font-weight: 500;
  margin-top: 3rem;
}

.artwork-body h2:first-child {
  margin-top: 0;
}

.artwork-body .artwork-description-en {
  border-top: 1px solid var(--artwork-rule);
  color: var(--artwork-muted);
  margin-top: 2.5rem;
  padding-top: 2.5rem;
}

.artwork-figure {
  margin: 1.5rem auto;
  overflow: hidden;
  width: 66.6667%;
}

.artwork-figure img {
  display: block;
  height: auto;
  width: 100%;
}

.artwork-hover-lightbox {
  align-items: center;
  background: rgb(0 0 0 / 80%);
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  transition: opacity 500ms ease, visibility 0s linear 500ms;
  visibility: hidden;
  z-index: 1000;
}

.artwork-hover-lightbox.is-visible {
  opacity: 1;
  transition-delay: 0s;
  visibility: visible;
}

.artwork-hover-lightbox img {
  display: block;
  height: auto;
  max-height: 80vh;
  max-width: 80vw;
  object-fit: contain;
  transform: scale(0.96);
  transition: transform 500ms ease;
  width: auto;
}

.artwork-hover-lightbox.is-visible img {
  transform: scale(1);
}

.artwork-figure figcaption {
  color: var(--artwork-muted);
  font-size: 0.82rem;
  margin-top: 0.6rem;
  text-align: center;
}

.artwork-copyright {
  border-top: 1px solid var(--artwork-rule);
  color: var(--artwork-muted);
  font-size: 0.75rem;
  padding: 1.25rem 0;
}

.artwork-copyright__line {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.artwork-copyright p {
  margin: 0.75rem 0 0;
}

@media (prefers-reduced-motion: reduce) {
  .artwork-hover-lightbox img {
    transition: none;
  }

  .artwork-hover-lightbox {
    transition: none;
  }
}

@media (max-width: 700px) {
  .artwork-card {
    gap: 2.5rem;
    grid-template-columns: 1fr;
    padding: 2rem 1.25rem 4rem;
  }

  .artwork-card__visual {
    justify-self: center;
    max-width: 20rem;
    width: 100%;
  }

  .artwork-meta div {
    grid-template-columns: 6.5rem 1fr;
  }

  .artwork-copyright,
  .artwork-copyright__line {
    align-items: flex-start;
    flex-direction: column;
  }

  .artwork-copyright {
    padding-inline: 1.25rem;
  }
}
