.gallery-page {
  position: relative;
  overflow: clip;
  background: var(--color-coal-950);
}

.gallery-page::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: 0.14;
  background-image: radial-gradient(rgba(240, 235, 221, 0.22) 0.45px, transparent 0.7px);
  background-size: 5px 5px;
}

.gallery-page > * {
  position: relative;
  z-index: 1;
}

.gallery-section {
  padding-block: clamp(4rem, 8vw, 6rem);
}

.gallery-section > .container {
  min-width: 0;
}

.gallery-hero {
  padding-top: clamp(4rem, 9vw, 7rem);
}

.gallery-hero__layout {
  display: grid;
  grid-template-columns: minmax(360px, 5fr) minmax(460px, 7fr);
  gap: var(--space-6);
  align-items: center;
}

.gallery-hero__copy,
.gallery-hero__media,
.gallery-food__media,
.gallery-food__narrative,
.gallery-food__caption,
.gallery-room__story,
.gallery-room__annotations,
.gallery-between__heading,
.gallery-between__statement,
.gallery-between__references,
.gallery-poker__media,
.gallery-poker__content,
.gallery-gatherings__story,
.gallery-gatherings__planning,
.gallery-closing__panel,
.gallery-closing__space {
  min-width: 0;
}

.gallery-hero__copy {
  width: 100%;
}

.gallery-hero__edition {
  transform: translateX(4px) rotate(-1deg);
}

.gallery-hero__title {
  margin-bottom: var(--space-5);
  font-size: clamp(3.5rem, 8vw, 7rem);
}

.gallery-hero__lead {
  width: min(46ch, 100%);
  margin-bottom: var(--space-5);
}

.gallery-hero__labels {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: var(--space-5);
  border-top: var(--border-default);
  border-bottom: var(--border-default);
}

.gallery-hero__labels > span {
  min-width: 0;
  padding: var(--space-3) var(--space-4);
  color: var(--color-coal-950);
  background: var(--color-signal-yellow);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.gallery-hero__labels > span + span {
  border-left: var(--border-default);
  background: var(--color-ash-50);
}

.gallery-hero__labels > span:last-child {
  background: var(--color-asphalt-800);
  color: var(--color-ash-50);
}

.gallery-scroll-link,
.gallery-text-action,
.gallery-closing__secondary,
.gallery-reference-links a {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-ash-50);
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 800;
  letter-spacing: 0.02em;
  text-decoration: underline;
  text-transform: uppercase;
  transition: color var(--transition-fast), transform var(--transition-fast);
}

.gallery-scroll-link:hover,
.gallery-text-action:hover,
.gallery-closing__secondary:hover,
.gallery-reference-links a:hover {
  color: var(--color-signal-yellow);
  transform: translateX(2px);
}

.gallery-hero__media {
  width: 100%;
  overflow: clip;
  padding-right: 10px;
  padding-bottom: 10px;
}

.gallery-lightbox-trigger {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
}

.gallery-lightbox-trigger:focus-visible {
  box-shadow: var(--focus-ring);
  outline: none;
}

.gallery-lightbox-trigger .image-frame {
  width: 100%;
  transition: transform var(--transition-base);
}

.gallery-lightbox-trigger:hover .image-frame {
  transform: translate(2px, 2px);
}

.gallery-image-caption {
  margin: var(--space-3) 0 0;
}

.gallery-index {
  padding-top: var(--space-7);
}

.gallery-index__panel {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--space-6);
  padding: var(--panel-padding);
  border-left: 3px solid var(--color-oxide-orange);
}

.gallery-index__intro {
  width: min(52ch, 100%);
}

.gallery-index__notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
}

.gallery-subject-note {
  min-width: 0;
  padding-left: var(--space-4);
  border-left: var(--border-default);
}

.gallery-subject-note p {
  width: min(34ch, 100%);
  margin-bottom: 0;
}

.gallery-subject-note a,
.gallery-room__arrival a,
.gallery-caption-panel a {
  color: var(--color-ash-50);
  text-decoration-color: var(--color-oxide-orange);
  text-underline-offset: 0.2em;
}

.gallery-subject-note a:hover,
.gallery-room__arrival a:hover,
.gallery-caption-panel a:hover {
  color: var(--color-signal-yellow);
}

.gallery-note-label,
.gallery-notice-label {
  display: inline-block;
  margin-bottom: var(--space-3);
  padding: var(--space-2) var(--space-3);
  background: var(--color-oxide-orange);
  color: var(--color-ash-50);
  font-family: var(--font-heading);
  font-size: var(--text-small);
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.gallery-note-label--paper {
  background: var(--color-ash-50);
  color: var(--color-coal-950);
}

.gallery-note-label--yellow {
  background: var(--color-signal-yellow);
  color: var(--color-coal-950);
}

.gallery-food__layout {
  display: grid;
  grid-template-columns: minmax(520px, 7fr) minmax(320px, 5fr);
  gap: var(--space-6);
  align-items: center;
}

.gallery-food__media {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  padding-right: 8px;
  padding-bottom: 8px;
  overflow: clip;
}

.gallery-food__narrative {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
}

.gallery-food__narrative .lead {
  width: min(56ch, 100%);
}

.gallery-food__caption {
  grid-column: 1;
  grid-row: 2;
  width: min(42ch, 100%);
}

.gallery-food__caption p {
  margin-bottom: var(--space-4);
}

.gallery-room {
  padding-top: clamp(4rem, 10vw, 7rem);
}

.gallery-room__media {
  width: 100%;
  padding-right: 8px;
  padding-bottom: 8px;
  overflow: clip;
}

.gallery-room__content {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(260px, 4fr);
  gap: var(--space-6);
  margin-top: var(--space-6);
  min-width: 0;
}

.gallery-room__story {
  width: min(58ch, 100%);
}

.gallery-room__story .lead {
  width: min(58ch, 100%);
}

.gallery-room__annotations {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-5);
  width: 100%;
}

.gallery-room__note {
  width: 100%;
  padding: var(--space-5);
}

.gallery-room__note p {
  width: min(32ch, 100%);
  margin-bottom: 0;
}

.gallery-room__arrival {
  width: min(40ch, 100%);
  margin: 0;
}

.gallery-between {
  padding-block: clamp(4rem, 8vw, 6rem);
}

.gallery-between__band {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(240px, 3fr);
  gap: var(--space-5);
  padding: var(--panel-padding);
  border: 1px solid var(--color-ash-50);
  background: var(--color-ash-50);
  color: var(--color-coal-950);
}

.gallery-between__band h2,
.gallery-between__band p {
  color: var(--color-coal-950);
}

.gallery-between__band .section-marker {
  color: var(--color-rust-deep);
}

.gallery-between__band .section-marker::after {
  background: var(--color-oxide-orange);
}

.gallery-between__statement p {
  width: min(46ch, 100%);
  margin-bottom: 0;
}

.gallery-between__references {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.gallery-between__fragments {
  width: min(30ch, 100%);
  margin: 0;
  padding-left: var(--space-4);
  border-left: 3px solid var(--color-oxide-orange);
  font-weight: 600;
}

.gallery-reference-links {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
}

.gallery-reference-links a {
  min-height: 2.75rem;
  color: var(--color-coal-950);
  font-size: var(--text-small);
}

.gallery-reference-links a:hover {
  color: var(--color-rust-deep);
}

.gallery-poker__layout {
  display: grid;
  grid-template-columns: minmax(480px, 1fr) minmax(0, 1fr);
  gap: var(--space-6);
  align-items: center;
}

.gallery-poker__media {
  width: 100%;
  padding-right: 8px;
  padding-bottom: 8px;
  overflow: clip;
}

.gallery-poker__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  width: min(520px, 100%);
}

.gallery-poker__content > * {
  min-width: 0;
  margin: 0;
}

.gallery-poker__content .section-marker {
  margin-bottom: 0;
}

.gallery-poker__content h2 {
  margin: 0;
}

.gallery-poker__content .lead {
  width: min(50ch, 100%);
}

.gallery-poker__notice {
  width: 100%;
  max-width: 52ch;
  margin: 0;
  border: 2px solid var(--color-coal-950);
  background: var(--color-signal-yellow);
}

.gallery-poker__notice p {
  margin: 0;
  color: var(--color-coal-950);
}

.gallery-notice-label {
  background: var(--color-coal-950);
  color: var(--color-signal-yellow);
}

.gallery-poker__direction {
  width: min(44ch, 100%);
  color: var(--color-ash-300);
}

.gallery-poker__button {
  min-height: 2.75rem;
}

.gallery-gatherings__layout {
  display: grid;
  grid-template-columns: minmax(480px, 7fr) minmax(330px, 5fr);
  gap: var(--space-6);
  align-items: start;
}

.gallery-gatherings__story {
  width: 100%;
  border-top: 4px solid var(--color-oxide-orange);
}

.gallery-gatherings__story .lead {
  width: min(58ch, 100%);
  margin-bottom: 0;
}

.gallery-gatherings__planning {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  width: 100%;
}

.gallery-gatherings__planning > * {
  min-width: 0;
  margin: 0;
}

.gallery-gatherings__vibe {
  width: 100%;
  padding: var(--space-5);
}

.gallery-gatherings__vibe p {
  width: min(46ch, 100%);
  margin-bottom: 0;
}

.gallery-gatherings__direction {
  width: min(46ch, 100%);
  color: var(--color-ash-300);
}

.gallery-gatherings__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
  width: 100%;
}

.gallery-gatherings__actions > * {
  min-width: 0;
}

.gallery-captions__intro {
  width: min(50ch, 100%);
  margin-bottom: var(--space-6);
}

.gallery-captions__intro p {
  margin-bottom: 0;
}

.gallery-captions__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(300px, 1fr));
  gap: var(--space-5);
  min-width: 0;
}

.gallery-caption-panel {
  min-width: 0;
  padding: var(--panel-padding);
  border: var(--border-default);
  background: var(--color-asphalt-900);
}

.gallery-caption-panel p {
  width: min(34ch, 100%);
  margin-bottom: 0;
}

.gallery-closing {
  padding-top: clamp(6rem, 11vw, 8rem);
  padding-bottom: clamp(5rem, 9vw, 7rem);
}

.gallery-closing__layout {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-6);
}

.gallery-closing__panel {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  width: min(620px, 100%);
  border-left: 5px solid var(--color-oxide-orange);
}

.gallery-closing__panel > * {
  min-width: 0;
  margin: 0;
}

.gallery-closing__annotation {
  background: var(--color-signal-yellow);
  color: var(--color-coal-950);
  transform: rotate(-1deg);
}

.gallery-closing__panel h2 {
  font-size: clamp(2.5rem, 5vw, 4rem);
}

.gallery-closing__panel .lead {
  width: min(48ch, 100%);
}

.gallery-closing__actions {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  width: 100%;
}

.gallery-closing__space {
  width: 100%;
  min-height: 1px;
}

.gallery-lightbox {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: var(--gutter);
}

.gallery-lightbox[hidden] {
  display: none;
}

.gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 16, 15, 0.96);
}

.gallery-lightbox__dialog {
  position: relative;
  display: flex;
  width: min(100%, 1100px);
  max-height: calc(100vh - (var(--gutter) * 2));
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-default);
  background: var(--color-asphalt-900);
}

.gallery-lightbox__image {
  width: auto;
  max-width: 100%;
  max-height: min(70vh, 720px);
  object-fit: contain;
}

.gallery-lightbox__caption {
  width: min(68ch, 100%);
  margin: 0;
  color: var(--color-ash-50);
  text-align: center;
}

.gallery-lightbox__close,
.gallery-lightbox__control {
  min-height: 2.75rem;
  border: 1px solid var(--color-ash-50);
  background: var(--color-asphalt-800);
  color: var(--color-ash-50);
  padding: var(--space-2) var(--space-4);
  font-family: var(--font-heading);
  font-size: var(--text-body);
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
}

.gallery-lightbox__close {
  align-self: flex-end;
}

.gallery-lightbox__close:hover,
.gallery-lightbox__control:hover {
  border-color: var(--color-signal-yellow);
  color: var(--color-signal-yellow);
  transform: translate(2px, 2px);
}

.gallery-lightbox__controls {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
}

.gallery-page.gallery-lightbox-open {
  overflow: hidden;
}

@media (max-width: 63.9375rem) {
  .gallery-index__panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-index__intro {
    width: min(52ch, 100%);
  }

  .gallery-room__content {
    grid-template-columns: minmax(0, 7fr) minmax(260px, 5fr);
  }

  .gallery-poker__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-poker__content {
    width: min(520px, 100%);
  }
}

@media (max-width: 57.5rem) {
  .gallery-hero__layout,
  .gallery-food__layout,
  .gallery-gatherings__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-hero__copy,
  .gallery-hero__media,
  .gallery-food__media,
  .gallery-food__narrative,
  .gallery-food__caption,
  .gallery-gatherings__story,
  .gallery-gatherings__planning {
    grid-column: 1;
    width: 100%;
  }

  .gallery-hero__media {
    grid-row: 2;
  }

  .gallery-food__narrative {
    grid-row: 1;
  }

  .gallery-food__media {
    grid-row: 2;
  }

  .gallery-food__caption {
    grid-row: 3;
  }

  .gallery-food__caption {
    width: min(42ch, 100%);
  }

  .gallery-between__band {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-between__heading,
  .gallery-between__statement,
  .gallery-between__references {
    width: 100%;
  }
}

@media (max-width: 47.5rem) {
  .gallery-section {
    padding-block: clamp(2.5rem, 10vw, 4rem);
  }

  .gallery-page::before {
    opacity: 0.08;
  }

  .gallery-hero {
    padding-top: var(--space-7);
  }

  .gallery-hero__layout,
  .gallery-food__layout,
  .gallery-poker__layout,
  .gallery-gatherings__layout,
  .gallery-closing__layout {
    gap: var(--space-5);
  }

  .gallery-hero__title {
    font-size: clamp(3rem, 14vw, 4.5rem);
  }

  .gallery-hero__labels > span {
    flex: 1 1 100%;
  }

  .gallery-hero__labels > span + span {
    border-top: var(--border-default);
    border-left: 0;
  }

  .gallery-hero__media,
  .gallery-food__media,
  .gallery-room__media,
  .gallery-poker__media {
    padding-right: 4px;
    padding-bottom: 4px;
  }

  .gallery-index__panel,
  .gallery-room__note,
  .gallery-gatherings__vibe,
  .gallery-between__band,
  .gallery-caption-panel,
  .gallery-lightbox__dialog {
    padding: var(--space-4);
  }

  .gallery-index__notes {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .gallery-subject-note {
    padding-top: var(--space-4);
    padding-left: 0;
    border-top: var(--border-default);
    border-left: 0;
  }

  .gallery-room__content {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
    margin-top: var(--space-5);
  }

  .gallery-room__story,
  .gallery-room__annotations,
  .gallery-room__note,
  .gallery-room__arrival {
    width: 100%;
  }

  .gallery-captions__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .gallery-caption-panel p {
    width: 100%;
  }

  .gallery-gatherings__actions,
  .gallery-closing__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .gallery-gatherings__actions > .button,
  .gallery-closing__actions > .button {
    width: 100%;
    min-height: 3rem;
  }

  .gallery-closing__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-closing__space {
    display: none;
  }

  .gallery-closing__panel {
    width: 100%;
  }

  .gallery-lightbox {
    padding: var(--space-4);
  }

  .gallery-lightbox__dialog {
    max-height: calc(100vh - (var(--space-4) * 2));
  }

  .gallery-lightbox__image {
    max-height: 58vh;
  }

  .gallery-lightbox__controls {
    width: 100%;
  }

  .gallery-lightbox__control {
    flex: 1 1 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-lightbox-trigger .image-frame,
  .gallery-scroll-link,
  .gallery-text-action,
  .gallery-closing__secondary,
  .gallery-reference-links a {
    transition: none;
  }
}
