.im-shell {
  width: min(100%, calc(var(--im-shell) + (var(--im-gutter) * 2)));
  margin-inline: auto;
  padding-inline: var(--im-gutter);
}
.im-main { min-height: 60vh; }
.im-main--archive, .im-content-narrow, .im-error-page { padding-top: clamp(130px, 14vw, 210px); padding-bottom: var(--im-section-space); }
.im-content-narrow { max-width: 920px; }
.im-main--full-width, .im-main--immersive, .im-main--front { width: 100%; }
/* Homepage canvas — one continuous museum-ivory world. Intentional child sections (e.g. Why It Matters) may still paint their own dark background. */
.im-main--front,
.im-after-hero,
.im-front-content {
  background: var(--im-home-ivory, #F9F5F1);
}

.im-front-content > .elementor,
.im-page-full > .elementor,
.im-main--immersive > article > .elementor { width: 100%; }
.im-foundation { min-height: 100vh; display: grid; align-content: center; background: var(--im-archive-navy); color: var(--im-museum-ivory); }
.im-foundation h1 { max-width: 12ch; }
.im-page-header, .im-article-header { padding-bottom: clamp(44px, 8vw, 96px); }
.im-entry-content { font-size: 1rem; }
.im-entry-content > * { max-width: 760px; }
.im-entry-content > .alignwide { max-width: 1200px; }
.im-entry-content > .alignfull { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); }
.im-entry-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(30px, 4vw, 64px) 24px; }
.im-entry-card { grid-column: span 6; }
.im-entry-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #ddd8d0; }
.im-entry-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--im-ease-out); }
.im-entry-card:hover .im-entry-card__media img { transform: scale(1.025); }
.im-entry-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #e7e2da, #c9c1b7); }
.im-entry-card__body { padding-top: 24px; }
.im-entry-card__body h2 { font-size: clamp(2rem, 3.4vw, 3.5rem); }
.im-entry-card__body h2 a { text-decoration: none; }
.im-archive-header { padding-bottom: clamp(56px, 8vw, 110px); }
.im-archive-description { max-width: 52rem; color: var(--im-graphite); }
@media (max-width: 820px) {
  .im-entry-card { grid-column: 1 / -1; }
}

.im-entry-card__placeholder{background:var(--im-stone)}
.im-main :where(h1,h2,h3){overflow-wrap:break-word}
.im-main :where(img,video){max-width:100%}
