/* Original production and defect imagery; scoped English presentation. */
.f3d-source-production-gallery {
  --source-production-ink: #17484b;
  --source-production-muted: #556d67;
  --source-production-orange: #ef9a73;
  --source-production-paper: #f7f6f2;
  --source-production-line: #d8e2dc;
  container: source-production-gallery / inline-size;
  min-width: 0;
  margin: 44px 0;
  color: var(--source-production-ink);
}
.f3d-source-production-gallery *,
.f3d-source-production-gallery *::before,
.f3d-source-production-gallery *::after { box-sizing: border-box; }
.f3d-source-production-intro { max-width: 78ch; margin-bottom: 30px; }
.f3d-source-production-intro h2 { margin: 0 0 16px; }
.f3d-source-production-kicker,
.f3d-source-production-chapter {
  color: var(--source-production-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.f3d-source-production-kicker { margin: 0 0 10px; }
.f3d-source-production-intro .f3d-source-production-provenance {
  margin: 16px 0 0;
  padding: 12px 14px;
  border-left: 3px solid var(--source-production-orange);
  border-radius: 0 8px 8px 0;
  background: var(--source-production-paper);
  color: var(--source-production-muted);
  font-size: 13px;
  line-height: 1.65;
}
.f3d-source-production-section {
  min-width: 0;
  margin: 0 0 34px;
  padding: 0 0 30px;
  border-bottom: 1px solid var(--source-production-line);
}
.f3d-source-production-section:last-of-type { padding-bottom: 0; border-bottom: 0; }
.f3d-source-production-chapter { margin: 0 0 7px; }
.f3d-source-production-section-heading h3 {
  margin: 0 0 12px;
  color: var(--source-production-ink);
  font-size: 25px;
  line-height: 1.25;
}
.f3d-source-production-section-heading > p:last-child { margin: 0 0 18px; font-size: 15px; line-height: 1.7; }
.f3d-source-production-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  align-items: start;
  gap: 16px;
  min-width: 0;
}
.f3d-source-production-example {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--source-production-line);
  border-radius: 14px;
  background: #fffefa;
}
.f3d-source-production-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 14px;
  background: #fff;
}
.f3d-source-production-window {
  position: relative;
  width: 100%;
  max-width: var(--source-production-display-width);
  min-width: 0;
  aspect-ratio: var(--source-production-ratio);
  overflow: hidden;
}
.f3d-source-production-window > img {
  display: block;
  position: absolute;
  top: var(--source-production-image-top);
  left: var(--source-production-image-left);
  width: var(--source-production-image-width);
  max-width: none;
  height: var(--source-production-image-height);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  object-fit: fill;
  filter: none;
}
.f3d-source-production-example figcaption { margin: 0; padding: 14px 15px 16px; }
.f3d-source-production-example figcaption h4 {
  margin: 0;
  color: var(--source-production-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.f3d-source-production-example figcaption p { margin: 7px 0 0; color: var(--source-production-muted); font-size: 12px; line-height: 1.65; }
.f3d-source-production-reference { margin: 14px 0 0; }
.f3d-source-production-reference a { color: var(--source-production-ink); font-size: 14px; line-height: 1.6; text-underline-offset: 4px; overflow-wrap: anywhere; }
.f3d-source-production-gallery a:focus-visible { outline: 3px solid var(--source-production-ink); outline-offset: 3px; }
.f3d-source-production-footnote { max-width: 78ch; margin: 22px 0 0; color: var(--source-production-muted); font-size: 13px; line-height: 1.75; }
@container source-production-gallery (max-width: 470px) {
  .f3d-source-production-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .f3d-source-production-gallery { margin: 32px 0; }
  .f3d-source-production-grid { grid-template-columns: minmax(0, 1fr); }
  .f3d-source-production-section-heading h3 { font-size: 23px; }
}
@media (max-width: 380px) {
  .f3d-source-production-stage { padding: 12px; }
  .f3d-source-production-example figcaption { padding: 12px; }
}
