/* Governed public media: provenance is visible; missing assets remain an honest state. */
.governed-media {
  --governed-media-ratio: 3 / 2;
  position: relative;
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: var(--governed-media-ratio);
  box-sizing: border-box;
  background: #171a17;
  color: #f5f2e9;
}

.governed-media__frame,
.governed-media__frame img {
  width: 100%;
  height: 100%;
}

.governed-media__frame {
  min-height: 0;
}

.governed-media__frame img {
  display: block;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(.2, .7, .2, 1);
}

.governed-media:hover .governed-media__frame img {
  transform: scale(1.018);
}

.governed-media__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: 6px;
  padding: 28px;
  background: rgb(10 12 10 / 88%);
  backdrop-filter: blur(8px);
  color: #f5f2e9;
}

.governed-media__title {
  font-family: var(--font-display, Georgia, serif);
  font-size: 1.2rem;
  line-height: 1.25;
}

.governed-media__context {
  color: rgb(245 242 233 / 72%);
  font-size: .78rem;
  line-height: 1.6;
}

.governed-media__source {
  max-width: 64em;
  color: #ded2ae;
  font-size: .7rem;
  line-height: 1.55;
}

.governed-media__source strong {
  color: #f0dfae;
  font-weight: 760;
}

.governed-media--unverified {
  align-content: end;
  border: 1px solid rgb(216 199 154 / 24%);
  background: #171a17;
}

.governed-media__empty-copy {
  display: grid;
  gap: 12px;
  max-width: 48rem;
  padding: clamp(2rem, 5vw, 4.5rem);
}

.governed-media__empty-copy > span {
  color: #d8c79a;
  font-size: .68rem;
  font-weight: 760;
  line-height: 1.4;
}

.governed-media.governed-media--unverified .governed-media__empty-copy h2 {
  max-width: 13em;
  color: #f5f2e9;
  font-family: var(--font-display, Georgia, serif);
  font-size: 2.2rem;
  line-height: 1.08;
}

.governed-media.governed-media--unverified .governed-media__empty-copy p {
  max-width: 42em;
  color: #aeb3ac;
  font-size: .8rem;
  line-height: 1.75;
}

.fabric-stage.governed-media,
.inner-hero__visual.governed-media,
.gallery-intro__media.governed-media {
  --governed-media-ratio: 4 / 5;
  min-height: 34rem;
}

.gallery-intro__note {
  min-width: 0;
}

.craft-sequence__canvas > .governed-media,
.address-band > .governed-media,
.case-empty__visual > .governed-media {
  width: 100%;
  height: 100%;
}

.industry-piece__visual > .governed-media,
.solution-chapter__visual > .governed-media,
.case-item__media > .governed-media {
  width: 100%;
  height: 100%;
  min-height: 20rem;
}

.governed-media a:focus-visible {
  outline: 2px solid #d8c79a;
  outline-offset: 4px;
}

@media (max-width: 760px) {
  .governed-media,
  .fabric-stage.governed-media,
  .inner-hero__visual.governed-media {
    --governed-media-ratio: 3 / 2;
    min-height: 22rem;
  }

  .gallery-intro__media.governed-media {
    --governed-media-ratio: 3 / 2;
    min-height: 0;
  }

  .governed-media__caption {
    padding: 22px;
  }

  .governed-media.governed-media--unverified .governed-media__empty-copy h2 {
    font-size: 1.8rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .governed-media__frame img {
    transition: none;
  }

  .governed-media:hover .governed-media__frame img {
    transform: none;
  }
}
