/* Layout contracts, v1.2. Frames own their size; text never sizes an image.
   Named compositions match individual mockups. No selectors inspect inline styles. */
:root { --section-half:50px; --layout-gap:clamp(32px,4.6vw,72px); --card-gap:28px; }
:where(.hero-inner,.split-layout,.feature-panel,.media-layout,.card-grid,.section-columns,.article-layout,.quote-layout,.side-heading-layout,.contact-form,.record-field-grid)>* { min-width:0; }
:where(.hero-copy,.split-copy,.feature-copy,.media-copy,.card-copy,.nested-inner,.full-width,.section-heading,.selection-content) { min-width:0; max-width:100%; }
img { max-width:100%; }
:where(.card-image,.split-image,.feature-image,.gallery-zoom,.media-poster,.bridge-image) { width:100%; min-width:0; position:relative; overflow:hidden; align-self:start; }
:where(.card-image,.split-image,.gallery-zoom,.media-poster,.bridge-image)>img { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; aspect-ratio:auto; object-fit:cover; }
.card-image { height:auto; max-height:none; aspect-ratio:var(--image-ratio,4/3); }
.split-image { height:auto; max-height:none; aspect-ratio:var(--image-ratio,3/2); }
.split-image>img { height:100%; max-height:none; aspect-ratio:auto; }
.split-image.image-kind-book { aspect-ratio:var(--image-ratio,4/3); background:var(--ivory); }
.split-image.image-kind-book>img { object-fit:contain; padding:24px; }
.split-image.image-kind-portrait { aspect-ratio:var(--image-ratio,4/5); max-width:460px; justify-self:center; }
.image-kind-portrait>img { object-position:center 24%; }
.card-image.image-kind-book>img { object-fit:contain; padding:12px; }
.card-image.image-kind-document>img { object-fit:contain; background:#eee9df; padding:10px; }
:where(.image-kind-book,.image-kind-document)>img.motion-image { animation:none; transform:none; }
.split-layout { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:var(--layout-gap); }
.split-layout.image-right { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
.split-copy .selection-content:empty { display:none; }
.compact-links>a>span { flex:1; min-width:0; }
.compact-links>a>img { width:70px; height:54px; flex:0 0 70px; object-fit:cover; }
.selection-criteria { background:var(--ivory); padding:24px; }
.selection-criteria h3 { display:flex; gap:12px; align-items:center; font-family:var(--sans); font-size:17px; }
.selection-criteria ul { list-style:disc; padding-left:18px; margin-top:16px; color:var(--muted); font-size:14px; }
.selection-criteria li+li { margin-top:10px; }
.section-composition-selection .selection-content { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:24px; margin-top:26px; }
.section-composition-selection .compact-links { margin:0; }
.section-composition-selection .split-layout { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
.section-composition-selection .split-image { aspect-ratio:4/3; }

/* Heroes: place visual/copy in separate grid areas unless a panorama is intentional. */
.hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--layout-gap); }
.hero-visual { min-width:0; width:100%; align-self:center; }
.hero-visual>img:first-child { width:100%; height:auto; aspect-ratio:var(--image-ratio,5/4); object-fit:cover; }
.hero-full>.hero-visual { align-self:auto; }
.hero-full>.hero-visual>img { height:100%; aspect-ratio:auto; }
.hero-home .hero-visual>img:first-child { width:57%; }
.hero-home .hero-copy { padding-inline:30px; }
.hero-home .hero-caption { z-index:3; }
.hero-home .hero-visual:after { background:linear-gradient(90deg,transparent 0%,#faf8f033 23%,#faf8f0f2 43%,#faf8f0ed 55%,#faf8f033 80%,transparent 100%); }
.hero-panorama.align-right .hero-copy { padding-left:49%; padding-right:0; }
.hero-panorama.align-right .hero-visual:after { background:linear-gradient(270deg,#f6f3eaf7 0%,#f6f3eae8 33%,#f6f3ea50 68%,#f6f3ea00); }
.hero-panorama.tone-teal .hero-visual:after { background:linear-gradient(90deg,#194c43f5,#245b54e0 35%,#245b542b 80%); }
.hero-panorama.tone-teal .hero-copy { color:var(--paper); }
.hero-panorama.tone-teal .hero-description,.hero-panorama.tone-teal .eyebrow { color:#e4eadd; }
.hero:not(.hero-home) .hero-secondary { position:absolute; right:18px; bottom:18px; width:30%; height:auto; max-height:44%; aspect-ratio:4/3; border:5px solid var(--paper); object-fit:cover; box-shadow:0 8px 25px #243b2824; }
.hero-portrait .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); }
.hero-portrait .hero-visual { max-width:540px; max-height:none; justify-self:center; }
.hero-portrait .hero-visual>img:first-child { aspect-ratio:var(--image-ratio,4/5); height:auto; object-position:center 20%; }
.hero-book .hero-visual { padding:36px; min-height:0; background:#eee9df; }
.hero-book .hero-visual>img:first-child { width:100%; height:480px; max-height:none; aspect-ratio:auto; object-fit:contain; filter:none; }
.hero-book.image-left .hero-inner { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
.hero-book.visual-wide .hero-inner { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); }
.hero-book.visual-wide .hero-visual { background:#f1ede4; padding:26px; }
.hero-document .hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
.hero-document .hero-visual { padding:24px; }
.hero-document .hero-visual>img:first-child { aspect-ratio:var(--image-ratio,4/3); object-fit:contain; }
.hero-composition-document-viewer.image-left .hero-inner { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); }
.hero-composition-document-viewer .hero-copy { text-align:left; }
.hero-composition-document-viewer h1 { font-size:clamp(34px,3.4vw,52px); }
.hero-composition-document-viewer .hero-secondary { display:none; }
.hero-composition-profile .hero-copy { padding:36px; background:var(--paper); text-align:left; }
.hero-composition-profile .hero-description { margin-left:0; }
.hero-composition-profile .hero-copy h1 { font-size:clamp(34px,3.4vw,52px); }
.hero-metadata { display:grid; gap:12px; text-align:left; margin-top:26px; padding-top:20px; border-top:1px solid var(--line); }
.hero-metadata>div { display:grid; grid-template-columns:minmax(70px,.4fr) minmax(0,1fr); gap:16px; }
.hero-metadata dt { font-size:13px; color:var(--terracotta); }
.hero-metadata dd { font-size:15px; line-height:1.8; }
.hero.visual-first .hero-inner { display:flex; flex-direction:column; gap:34px; }
.hero.visual-first .hero-visual { order:0; max-width:none; }
.hero.visual-first .hero-visual>img:first-child { aspect-ratio:var(--image-ratio,2.6/1); max-height:none; }
.hero.visual-first .hero-copy { order:1; width:100%; max-width:none; }
.hero.visual-first .hero-copy .actions { justify-content:flex-end; }
.hero.visual-first .hero-description { margin-left:auto; }
/* Collages use a grid; their measured height always participates in document flow. */
.hero-collage { position:relative; width:100%; height:auto; min-width:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; align-self:center; }
.hero-collage figure { min-width:0; position:relative; overflow:hidden; aspect-ratio:4/3; background:#ebe7de; }
.hero-collage figure>img { position:absolute; inset:0; width:100%; height:100%; box-shadow:none; border:0; object-fit:cover; }
.hero-collage .image-kind-book>img { object-fit:contain; padding:16px; }
.hero-stack.align-left .hero-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.hero-stack.align-left .hero-copy { grid-column:1; grid-row:1; }
.hero-stack.align-left .hero-collage { grid-column:2; grid-row:1; }
.hero-stack.align-left.image-left .hero-copy { grid-column:2; }
.hero-stack.align-left.image-left .hero-collage { grid-column:1; }
.hero-composition-collage-row .hero-inner { display:flex; flex-direction:column; gap:30px; }
.hero-composition-collage-row .hero-copy { order:0; }
.hero-composition-collage-row .hero-collage { order:1; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; max-width:1120px; }
.hero-composition-collage-row .hero-collage figure { aspect-ratio:1.25; }
.hero-after-actions { order:2; }
.hero-after-actions .actions { margin-top:0; }
.hero-composition-studio .hero-collage { grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); align-items:end; }
.hero-composition-studio .hero-collage .collage-0 { aspect-ratio:3/2; }
.hero-composition-studio .hero-collage .collage-1 { aspect-ratio:3/2; }
.hero.hero-composition-culture .hero-inner { grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); align-items:start; gap:46px; }
.hero-composition-culture .culture-intro { min-width:0; }
.hero-composition-culture .hero-copy { text-align:left; }
.hero-composition-culture h1 { font-size:clamp(38px,4vw,60px); }
.culture-book { width:78%; max-width:350px; margin-top:30px; aspect-ratio:1.3; overflow:hidden; }
.culture-book>img { width:100%; height:100%; object-fit:contain; }
.culture-scene>figure { width:100%; aspect-ratio:1.3; overflow:hidden; }
.culture-scene>figure>img { width:100%; height:100%; object-fit:cover; }
.culture-quote { color:var(--terracotta); font-family:var(--serif); font-size:24px; line-height:1.8; text-align:center; padding:28px 20px 0; }

/* Stable card frames and explicit editorial compositions. */
.hero-home .hero-full { min-height:clamp(460px,37vw,600px); }
.hero-home .hero-copy { padding-block:70px 90px; }
.hero-home h1 { font-size:clamp(38px,3.7vw,58px); }
.card-grid { grid-template-columns:var(--card-tracks,repeat(var(--columns,3),minmax(0,1fr))); gap:32px var(--card-gap); align-items:start; }
.card-grid .content-card { min-width:0; }
.card-grid .card-image { width:100%; height:auto; max-height:none; align-self:start; }
.card-grid .card-image>img { width:100%; height:100%; }
.card-copy { overflow-wrap:anywhere; }
.layout-books .card-image { aspect-ratio:var(--image-ratio,3/4); padding:0; }
.layout-books .card-image>img { padding:22px; object-fit:contain; }
.layout-people { gap:40px; }
.layout-people .content-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:26px; align-items:start; }
.layout-people .card-copy { padding-top:0; }
.layout-people .card-image { aspect-ratio:var(--image-ratio,4/5); height:auto; max-height:none; }
.layout-people[data-columns="3"] .content-card,.nested-section .layout-people[data-columns="1"] .content-card { display:block; }
.layout-people[data-columns="3"] .card-copy,.nested-section .layout-people[data-columns="1"] .card-copy { padding:20px 0 0; }
.composition-equal .card-image { aspect-ratio:var(--image-ratio,var(--equal-ratio,4/3)); }
.composition-equal.has-ratios .card-image { height:clamp(220px,23vw,345px); aspect-ratio:auto; }
.layout-mixed:not(.composition-featured):not(.composition-exhibition):not(.composition-people-directory) .content-card { display:block; }
.composition-featured { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:28px 42px; }
.composition-featured>.content-card:first-child { grid-row:1/span 3; }
.composition-featured>.content-card:first-child .card-image { aspect-ratio:1.3; }
.composition-featured>.content-card:not(:first-child) { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1fr); gap:24px; align-items:start; }
.composition-featured>.content-card:not(:first-child) .card-image { aspect-ratio:4/3; }
.composition-featured>.content-card:not(:first-child) .card-copy { padding:0; }
.composition-featured>.content-card:not(:first-child) h3 { font-size:23px; }
.composition-featured[data-count="3"]>.content-card:first-child { grid-row:1/span 2; }
.composition-exhibition { grid-template-columns:minmax(0,.8fr) minmax(0,1.65fr); gap:30px 40px; }
.composition-exhibition>.content-card:first-child { grid-row:1/span 2; }
.composition-exhibition>.content-card:first-child .card-image { aspect-ratio:3/4; }
.composition-exhibition>.content-card:not(:first-child) { display:block; }
.composition-exhibition>.content-card:not(:first-child) .card-image { aspect-ratio:3/1; }
.composition-exhibition>.content-card:not(:first-child) .card-copy { padding:18px 0 0; }
.composition-people-directory { grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,1.25fr); gap:26px 34px; }
.composition-people-directory>.content-card:nth-child(-n+2) { grid-row:1/span 3; }
.composition-people-directory>.content-card:nth-child(-n+2) .card-image { aspect-ratio:4/5; }
.composition-people-directory>.content-card:nth-child(n+3) { grid-column:3; display:grid; grid-template-columns:96px minmax(0,1fr); gap:20px; }
.composition-people-directory>.content-card:nth-child(n+3) .card-image { aspect-ratio:1; }
.composition-people-directory>.content-card:nth-child(n+3) .card-copy { padding:0; }
.composition-people-directory>.content-card:nth-child(n+3) h3 { font-size:21px; }
.card-list { grid-template-columns:200px minmax(0,1fr); align-items:start; }
.card-list .card-image { aspect-ratio:var(--image-ratio,4/3); }
.card-list.no-image { grid-template-columns:minmax(0,1fr); }
.card-list .card-copy { min-width:0; }
.card-learning { display:grid; grid-template-columns:minmax(100px,min(35%,220px)) minmax(0,1fr); gap:24px; align-items:start; }
.card-learning .card-image { aspect-ratio:var(--image-ratio,4/5); }
.card-learning .card-copy { padding:0; }
.card-learning .card-copy>h3 { font-size:23px; }
.card-learning .card-copy>p { font-size:15px; }
.card-learning .card-copy .recommendation-reason { font-size:13px; }
.card-learning.no-image { grid-template-columns:minmax(0,1fr); }
.card-overlay { isolation:isolate; }
.card-overlay .card-copy { position:relative; inset:auto; color:var(--ink); padding:22px 0 0; }
.card-overlay .card-copy p,.card-overlay .card-tag,.card-overlay .card-arrow { color:var(--muted); }
.card-overlay .image-shade { display:none; }
.content-card.card-variant-overlay { position:relative; display:flex; align-items:flex-end; min-height:320px; isolation:isolate; overflow:hidden; background:var(--teal); }
.content-card.card-variant-overlay .card-image { position:absolute; inset:0; height:100%; aspect-ratio:auto; z-index:-1; }
.content-card.card-variant-overlay .image-shade { display:block; background:linear-gradient(90deg,#142f28e8,#142f2894 65%,#142f2840); }
.content-card.card-variant-overlay .card-copy { position:relative; inset:auto; width:100%; padding:32px; color:#fffef7; }
.content-card.card-variant-overlay .card-copy :is(p,.card-tag,.card-meta,.card-arrow) { color:#fffef7; }
.content-card.card-variant-illustrated { position:relative; min-height:320px; display:flex; align-items:center; background:var(--ivory); overflow:hidden; isolation:isolate; }
.card-variant-illustrated .card-copy { padding:32px; max-width:77%; }
.card-illustration { position:absolute; bottom:24px; right:14px; width:30%; color:#9f9070; z-index:-1; opacity:.65; }
.card-illustration>.icon { width:100%; height:auto; stroke-width:.6; }
.composition-equal:has(.card-variant-illustrated) { align-items:stretch; }

/* Four thematic shelves retain two covers within each topic. */
.bookshelf-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; }
.bookshelf { min-width:0; border-left:1px solid var(--line); padding-left:20px; }
.bookshelf header { border-left:2px solid var(--terracotta); padding-left:12px; margin-bottom:24px; }
.bookshelf header h3 { font-size:23px; }
.bookshelf header p { font-size:13px; color:var(--muted); margin-top:6px; }
.bookshelf-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.card-shelf { min-width:0; }
.card-shelf .card-image { aspect-ratio:3/4; display:flex; flex-direction:column; justify-content:space-between; padding:14px 8px 0 12px; background:#eae3d6; border-left:4px solid #c6b8a0; box-shadow:3px 4px 8px #302b1820; }
.shelf-cover-title { display:block; font-family:var(--serif); font-size:clamp(12px,.95vw,15px); line-height:1.65; color:#39463b; text-align:center; font-weight:600; }
.card-shelf .card-image>img { position:static; width:100%; height:43%; min-height:0; margin-top:12px; object-fit:cover; object-position:center; padding:0; }
.card-shelf:nth-child(even) .card-image { background:#e0e8de; border-color:#a3b19d; }
.card-shelf .card-copy { padding-top:14px; }
.card-shelf .card-copy>h3 { font-family:var(--sans); font-weight:500; font-size:15px; line-height:1.65; padding-right:0; }
.card-shelf .card-copy>p,.card-shelf .card-meta { font-size:12px; line-height:1.7; }
.card-shelf .card-tag { font-size:11px; }
.card-shelf .card-arrow { margin-top:12px; }
.composition-process-rows .card-list { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:36px; padding-block:24px; align-items:center; }
.composition-process-rows .card-image { aspect-ratio:var(--image-ratio,3/1); }
.composition-process-rows .card-copy>h3 { font-size:24px; }

/* Episode rows keep the number, title, thumbnail and description aligned. */
.episode-table { border-top:1px solid var(--line); }
.episode-row { display:grid; grid-template-columns:44px minmax(0,.9fr) minmax(0,.7fr) minmax(0,1.25fr) 24px; gap:24px; align-items:center; padding:24px 16px; border-bottom:1px solid var(--line); }
.episode-row>* { min-width:0; }
.episode-table li:first-child .episode-row { background:#f7eee4; border-left:3px solid var(--terracotta); padding-left:13px; }
.episode-number { font-family:var(--serif); font-size:25px; color:var(--terracotta); }
.episode-row h3 { font-size:24px; }
.episode-row p { font-size:15px; line-height:1.85; color:var(--muted); }
.episode-thumbnail { aspect-ratio:3/1; position:relative; overflow:hidden; }
.episode-thumbnail img { position:absolute; width:100%; height:100%; object-fit:cover; }
.episode-thumbnail.is-empty { visibility:hidden; }

/* Named nested compositions have their own responsive contracts. */
.nested-section .composition-people-pair { grid-template-columns:repeat(2,minmax(0,1fr)); }
.section-composition-series-mini .nested-section .split-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1fr); gap:22px; align-items:start; }
.section-composition-series-mini .nested-section .split-layout>.split-image,.section-composition-series-mini .nested-section .split-layout>.split-copy { order:initial; grid-row:1; width:100%; }
.section-composition-series-mini .nested-section .split-layout>.split-image { grid-column:1; }
.section-composition-series-mini .nested-section .split-layout>.split-copy { grid-column:2; }
.section-composition-series-mini .nested-section .section-heading h2 { font-size:24px; }
.section-composition-series-mini .nested-section .split-layout>.split-copy>p { font-size:15px; }
.section-composition-series-mini .nested-section .split-layout>.split-image.image-kind-book>img { padding:10px; }
.nested-section.section-composition-case-step .split-layout,.nested-section.section-composition-case-step .split-layout.image-right { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:26px; align-items:start; }
.nested-section.section-composition-case-step .split-layout>.split-image { grid-column:2; grid-row:1; order:initial; aspect-ratio:1/1; }
.nested-section.section-composition-case-step .split-layout>.split-copy { grid-column:1; grid-row:1; order:initial; }
.nested-section.section-composition-case-step .split-layout>.split-copy .section-heading h2 { font-size:27px; }

/* The panel ratio and the photograph ratio are separate properties. */
.page-section.section-composition-quote-strip,.page-section.section-composition-quote-banner { padding-block:0; }
.quote-panel { display:grid; grid-template-columns:var(--quote-image-share,34%) minmax(0,1fr); gap:44px; align-items:center; }
.quote-panel.image-right { grid-template-columns:minmax(0,1fr) var(--quote-image-share,28%); }
.quote-panel.image-right .quote-image { grid-column:2; grid-row:1; }
.quote-panel.image-right .quote-copy { grid-column:1; grid-row:1; }
.quote-image { position:relative; min-width:0; margin:0; width:100%; aspect-ratio:var(--image-ratio,2/1); overflow:hidden; }
.quote-image>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.quote-copy { min-width:0; padding-block:36px; }
.quote-copy .section-heading { margin-bottom:22px; }
.quote-copy .section-heading h2 { font-size:30px; }
.quote-copy blockquote p { font-family:var(--serif); font-size:clamp(24px,2vw,32px); line-height:1.85; }
.quote-copy .quote-mark { display:none; }
.quote-copy cite { display:block; font-size:13px; font-style:normal; line-height:1.8; margin-top:18px; opacity:.8; }
.section-composition-quote-banner>.container { width:100%; max-width:none; }
.section-composition-quote-banner .quote-panel { display:block; position:relative; min-height:clamp(330px,33vw,500px); isolation:isolate; }
.section-composition-quote-banner .quote-image { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; z-index:-1; }
.section-composition-quote-banner .quote-panel .quote-image { aspect-ratio:auto; }
.section-composition-quote-banner .quote-image>img { object-position:right center; }
.section-composition-quote-banner .quote-image:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#194c43fa 0%,#194c43f0 35%,#194c43a0 58%,#194c4320 82%); }
.section-composition-quote-banner .quote-copy { width:56%; padding:60px 32px 60px max(var(--gutter),calc((100% - var(--width))/2)); }
.section-composition-editorial-banner .feature-panel { min-height:0; align-items:center; }
.section-composition-editorial-banner .feature-image { align-self:center; height:auto; min-height:0; aspect-ratio:var(--image-ratio,2/1); }
.section-composition-editorial-banner .feature-copy { padding-block:42px; }
.section-composition-editorial-banner .feature-copy h2 { font-size:clamp(28px,2.8vw,40px); }
.step-icon { margin:16px 0 20px; color:var(--terracotta); }
.step-icon>.icon { width:46px; height:46px; }

@container(max-width:420px) {
  .nested-section .composition-people-pair { grid-template-columns:minmax(0,1fr); }
  .composition-people-pair>.content-card { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; }
  .composition-people-pair .card-copy { padding:0; }
  .composition-people-pair .card-copy>h3 { font-size:20px; }
}
@media(max-width:1100px) and (min-width:761px) {
  .bookshelf-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 28px; }
  .section-composition-series-mini .section-columns[data-columns="3"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .card-grid.layout-learning { grid-template-columns:minmax(0,1fr); }
  .card-learning { grid-template-columns:180px minmax(0,1fr); }
}

/* Galleries: equal rows and an explicit four-photo exhibition. */
.gallery { min-width:0; }
.gallery-zoom { height:auto; aspect-ratio:var(--image-ratio,3/2); }
.gallery-zoom>img { height:100%; }
.gallery-zoom.image-kind-book>img,.gallery-zoom.image-kind-document>img { object-fit:contain; padding:16px; background:var(--ivory); }
.gallery-triptych { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; }
.gallery-triptych .gallery-zoom { aspect-ratio:var(--image-ratio,3/2); }
.gallery-strip figure { min-width:0; }
.gallery-strip:has(figure:only-child) { display:grid; grid-template-columns:minmax(0,1fr); padding:0; overflow:visible; }
.gallery-strip:has(figure:nth-child(2):last-child) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0; overflow:visible; }
.gallery-mosaic-four { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1fr); grid-template-rows:1fr 1fr; gap:24px; align-items:start; }
.gallery-mosaic-four figure:first-child { grid-column:1; grid-row:1/span 2; }
.gallery-mosaic-four figure:nth-child(2) { grid-column:2; grid-row:1; }
.gallery-mosaic-four figure:nth-child(3) { grid-column:2; grid-row:2; }
.gallery-mosaic-four figure:nth-child(4) { grid-column:3; grid-row:1/span 2; }
.gallery-mosaic-four figure:first-child .gallery-zoom { aspect-ratio:.82; }
.gallery-mosaic-four figure:nth-child(4) .gallery-zoom { aspect-ratio:.75; }
.gallery figcaption a { display:flex; gap:14px; justify-content:space-between; align-items:start; }
.gallery figcaption a .icon { width:18px; height:18px; margin-top:5px; }

/* Full-width emphasis and contained feature cards share no fixed image height. */
.section-feature:not(.tone-teal) { padding-block:var(--section-half); }
.section-feature:not(.tone-teal) .feature-panel { display:flex; flex-direction:column; min-height:0; color:var(--ink); background:transparent; }
.section-feature:not(.tone-teal) .feature-image { order:0; width:100%; height:auto; max-height:none; aspect-ratio:var(--image-ratio,2.6); }
.section-feature:not(.tone-teal) .feature-image>img { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; aspect-ratio:auto; object-fit:cover; }
.section-feature:not(.tone-teal) .feature-image:after { display:none; }
.section-feature:not(.tone-teal) .feature-copy { order:1; padding:30px 0 0; width:min(100% - var(--gutter)*2,var(--width)); margin-inline:auto; display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:24px 44px; }
.section-feature:not(.tone-teal) .feature-copy .section-heading { max-width:none; }
.section-feature:not(.tone-teal) .feature-copy .eyebrow { color:var(--terracotta); }
.section-feature:not(.tone-teal) .feature-copy :is(.section-description,p) { color:var(--muted); }
.section-feature:not(.tone-teal) .feature-copy h2 { font-size:clamp(30px,3vw,44px); }
.section-feature:not(.tone-teal) .feature-copy>.actions { justify-content:flex-end; margin-top:8px; }
.section-feature:not(.tone-teal) .button { background:var(--teal); color:#fff; border-color:var(--teal); }
.section-feature:not(.tone-teal) .text-link { color:var(--terracotta); border-color:#ac7765; }
.section-feature:not(.tone-teal)+.page-section { padding-top:var(--section-half); }
.page-section:has(+.section-feature:not(.tone-teal)) { padding-bottom:var(--section-half); }
.feature-panel { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
.feature-image { align-self:stretch; height:auto; min-width:0; max-height:none; }
.feature-image>img { position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; aspect-ratio:auto; }
.feature-copy { padding:60px max(32px,4vw) 60px max(var(--gutter),calc((100% - var(--width))/2)); margin:0; }
.feature-panel.align-right .feature-copy { padding:60px var(--gutter) 60px max(32px,4vw); }
.reading-bridge { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr) minmax(0,1.15fr); gap:34px; align-items:center; padding-block:36px; }
.bridge-copy h2 { font-size:clamp(28px,2.8vw,42px); }
.bridge-copy .section-description { font-size:16px; }
.bridge-copy .actions { margin-top:22px; gap:18px; }
.bridge-copy .button,.bridge-copy .text-link { font-size:13px; }
.bridge-image { aspect-ratio:4/3; }
.bridge-links a { display:grid; grid-template-columns:64px minmax(0,1fr) 18px; gap:15px; align-items:center; padding:18px 0; border-bottom:1px solid #6a8d7f; }
.bridge-links li:first-child a { padding-top:0; }
.bridge-links li:last-child a { border-bottom:0; padding-bottom:0; }
.bridge-links img { width:64px; height:54px; object-fit:cover; }
.bridge-links strong { font-size:15px; }
.bridge-links span { display:inline-block; font-size:10px; color:#c4d3c5; margin-right:10px; }
.bridge-links p { color:#dfE8dd; font-size:12px; line-height:1.6; margin-top:3px; }
.bridge-links .icon { width:18px; }

/* Container-aware nesting prevents two/three-column sections from nesting tiny grids. */
.section-columns { grid-template-columns:var(--column-tracks,repeat(var(--columns,2),minmax(0,1fr))); gap:40px; align-items:start; }
.section-group { display:grid; gap:40px; }
.nested-section { container-type:inline-size; min-width:0; padding:0; }
.nested-section.tone-teal { padding:28px; background:var(--teal); color:var(--paper); }
.nested-section.tone-ivory { padding:28px; background:var(--ivory); }
.nested-section.tone-sage { padding:28px; background:var(--sage); }
.nested-section .split-layout,.nested-section .split-layout.image-right { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:26px; }
.nested-section .split-copy,.nested-section .media-copy { margin:0; }
.nested-section .split-copy>p { font-size:16px; line-height:1.85; }
.nested-section .split-image { height:auto; min-height:0; max-height:none; aspect-ratio:var(--image-ratio,4/3); }
.nested-section .split-image.image-kind-portrait { aspect-ratio:var(--image-ratio,4/5); }
.nested-section .split-image>img { min-height:0; height:100%; max-height:none; aspect-ratio:auto; }
.nested-section .split-copy .section-heading h2 { font-size:28px; }
.nested-section .split-copy .actions { margin-top:22px; gap:16px; }
.nested-section .button { padding:9px 15px; font-size:13px; gap:14px; }
.nested-section .text-link { font-size:14px; }
.nested-section .content-list .card-list { grid-template-columns:minmax(72px,.32fr) minmax(0,1fr); gap:22px; }
.nested-section .content-list .card-list.no-image { grid-template-columns:minmax(0,1fr); }
.nested-section .card-list .card-copy { padding:0; }
.nested-section .card-list .card-arrow { position:static; transform:none; margin-top:12px; }
.nested-section .card-list .card-image { aspect-ratio:4/3; }
.nested-section .link-grid { grid-template-columns:minmax(0,1fr); }
.link-grid>a { min-width:0; }
.link-grid>a>span { flex:1; min-width:0; }
.link-grid>a>img { flex:0 0 90px; width:90px; height:70px; }
.nested-section .metadata-grid { grid-template-columns:minmax(0,1fr); }
.nested-section .metadata-grid>div { border-right:0; border-bottom:1px solid var(--line); padding:16px 0; }
.nested-section .metadata-grid>div:last-child { border-bottom:0; }
.nested-section .metadata-grid dt { font-size:12px; }
.nested-section .metadata-grid dd { font-size:15px; }
.nested-section .quote-layout { padding:0; }
.nested-section .quote-layout blockquote p { font-size:26px; }
.nested-section .quote-layout.with-image>img { margin-bottom:26px; }
.nested-section .prose { font-size:17px; }
.nested-section .section-heading { margin-bottom:24px; }
.nested-section .section-heading:last-child { margin-bottom:0; }
.nested-section.section-feature { padding:0; }
.nested-section.section-feature .feature-panel { display:flex; flex-direction:column; min-height:0; }
.nested-section.section-feature .feature-image { order:0; height:auto; min-height:0; max-height:none; aspect-ratio:var(--image-ratio,16/10); }
.nested-section.section-feature .feature-image>img { position:absolute; height:100%; min-height:0; max-height:none; }
.nested-section.section-feature .feature-copy { display:block; order:1; width:100%; margin:0; padding:26px 0 0; }
.nested-section.section-feature .feature-copy .actions { justify-content:flex-start; margin-top:24px; }
.nested-section.section-feature .feature-copy>.actions:only-child { margin-top:0; }
.nested-section.section-feature.tone-teal .feature-copy { padding:26px; }
.nested-section.section-feature .feature-image:after { display:none; }
.nested-section .media-layout { gap:26px; }

/* Media, notes and long-form content. */
.media-layout { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:var(--layout-gap); }
.media-layout.image-right { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); }
.media-poster { aspect-ratio:16/10; }
.media-poster>img { aspect-ratio:auto; }
.media-poster.image-kind-album>img { object-fit:contain; background:var(--ivory); }
.media-wide { display:block; }
.media-wide .media-poster { aspect-ratio:var(--image-ratio,2.25); }
.media-wide .media-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px 48px; margin-top:30px; }
.media-wide .media-copy .section-heading { grid-column:1; grid-row:1/span 2; }
.media-wide .media-copy>.actions { grid-column:2; }
.media-wide .media-list,.media-wide .media-note { margin:0; }
.media-list>li { min-width:0; gap:16px; }
.media-list>li>div { min-width:0; flex:1; }
.media-list>li>img { width:78px; height:58px; flex:0 0 78px; }
.media-list .icon-button { flex:0 0 40px; }
.faq-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px; clear:both; }
.faq-notes strong { color:var(--teal); font-size:16px; }
.faq-notes p { font-size:15px; margin-top:6px; }
.kc-route-denominations .faq-answer>img { float:left; margin:0 30px 20px 0; }
.timeline li>div { min-width:0; display:flow-root; }
.timeline li img { height:auto; }
.steps { grid-template-columns:repeat(var(--columns,4),minmax(0,1fr)); }
.steps-vertical li { display:flow-root; }
.metadata-grid { grid-template-columns:repeat(var(--columns,3),minmax(0,1fr)); }
.prose>figure img { width:100%; height:auto; max-height:none; aspect-ratio:3/2; }
.prose>figure img[src*="book.png"],.prose>figure img[src*="document.png"] { object-fit:contain; background:var(--ivory); }
.article-layout.with-aside { grid-template-columns:minmax(0,820px) minmax(0,1fr); }
.inline-search { min-width:0; max-width:100%; }
.inline-search input { min-width:0; max-width:100%; }

@container (max-width:640px) {
  .nested-section .split-layout,.nested-section .split-layout.image-right { display:flex; flex-direction:column; gap:24px; align-items:stretch; }
  .nested-section .split-layout>.split-image,.nested-section .split-layout>.split-copy { grid-column:auto; grid-row:auto; width:100%; }
  .nested-section .split-image { order:0; aspect-ratio:var(--image-ratio,3/2); }
  .nested-section .split-copy { order:1; }
  .nested-section .split-image.image-kind-portrait { aspect-ratio:var(--image-ratio,4/3); max-width:none; }
  .nested-section .split-image.image-kind-book { aspect-ratio:var(--image-ratio,4/3); }
  .nested-section .media-layout { display:block; }
  .nested-section .media-copy { margin-top:24px; }
  .nested-section .steps:not(.steps-vertical) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nested-section .quote-layout.with-image { display:block; }
  .nested-section .card-grid:not(.composition-people-pair) { grid-template-columns:minmax(0,1fr); }
  .nested-section .layout-books[data-columns="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .nested-section .filter-bar { gap:8px; }
  .nested-section .inline-search { flex-basis:100%; }
  .nested-section .section-heading h2 { font-size:28px; }
  .nested-section .split-copy .section-heading h2 { font-size:28px; }
}
@container (max-width:340px) {
  .nested-section .content-list .card-list { grid-template-columns:76px minmax(0,1fr); gap:16px; }
  .nested-section .card-list h3 { font-size:18px; }
  .nested-section .card-list .card-copy>p { font-size:14px; }
  .nested-section .link-grid>a { gap:16px; }
  .nested-section .link-grid strong { font-size:18px; }
  .nested-section .link-grid small { font-size:14px; }
  .nested-section .link-grid>a>img { flex-basis:65px; width:65px; height:60px; }
  .nested-section .steps:not(.steps-vertical) { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:1100px) and (min-width:761px) {
  .section-columns[data-columns="3"] { grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
  .composition-featured { gap:26px; }
  .composition-featured>.content-card:not(:first-child) { grid-template-columns:minmax(0,.7fr) minmax(0,1fr); gap:20px; }
  .composition-featured>.content-card:not(:first-child) h3 { font-size:21px; }
  .composition-people-directory { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .composition-people-directory>.content-card:nth-child(-n+2) { grid-row:auto; }
  .composition-people-directory>.content-card:nth-child(n+3) { grid-column:auto; }
  .section-composition-selection .selection-content { grid-template-columns:minmax(0,1fr); }
  .reading-bridge { gap:24px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .bridge-links { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
  .bridge-links a { border-top:1px solid #6a8d7f; border-bottom:0; padding-top:18px!important; }
  .bridge-links img { width:50px; height:50px; }
  .bridge-links a { grid-template-columns:50px minmax(0,1fr); }
  .bridge-links a>.icon { display:none; }
}
@media (max-width:900px) and (min-width:761px) {
  .hero h1 { font-size:38px; }
  .hero-inner { gap:32px; }
  .hero-composition-culture .hero-inner { gap:32px; }
  .card-grid[data-columns="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .layout-icons[data-columns="4"] .card-icons:nth-child(3) { border-left:0; }
  .layout-people { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .composition-featured>.content-card:not(:first-child) { display:block; }
  .composition-featured>.content-card:not(:first-child) .card-copy { padding-top:18px; }
  .composition-exhibition { gap:26px; }
  .composition-exhibition>.content-card:not(:first-child) { grid-template-columns:minmax(0,1fr); gap:18px; }
}
@media (max-width:760px) {
  :root { --layout-gap:30px; --card-gap:22px; }
  .hero .hero-inner,.hero-stack.align-left .hero-inner,.hero-composition-culture .hero-inner { display:flex; flex-direction:column; gap:28px; }
  .hero-copy,.hero-visual,.hero-collage { grid-column:auto!important; grid-row:auto!important; }
  .hero-home .hero-copy { width:calc(100% - var(--gutter)*2); padding:54px 0 250px; }
  .hero-home .hero-visual>img:first-child { width:68%; height:55%; }
  .hero-home .hero-visual:after { background:linear-gradient(180deg,#f7f3ea 0%,#f7f3ea 43%,#f7f3eaaa 65%,transparent 88%); }
  .hero-home .hero-full { min-height:650px; }
  .hero-home .hero-caption { font-size:9px; }
  .hero-panorama.align-right .hero-copy { padding:55px 0 240px; text-align:left; }
  .hero-panorama.align-right .hero-visual:after { background:linear-gradient(180deg,#f7f3eaf7,#f7f3eadf 38%,#f7f3ea11 80%); }
  .hero-panorama.tone-teal .hero-visual:after { background:linear-gradient(180deg,#194c43f5,#245b54e0 42%,#245b542b 85%); }
  .hero-book .hero-visual { padding:24px; min-height:0; }
  .hero-book .hero-visual>img:first-child { height:340px; width:100%; max-height:none; }
  .hero-portrait .hero-visual { width:100%; max-width:420px; max-height:none; }
  .hero-portrait .hero-visual>img:first-child { aspect-ratio:var(--image-ratio,4/3); }
  .hero-visual>img:first-child { aspect-ratio:var(--image-ratio,3/2); }
  .hero.visual-first .hero-visual>img:first-child { height:auto; aspect-ratio:1.6; }
  .hero.visual-first .hero-copy { text-align:left!important; }
  .hero.visual-first .hero-description { margin:20px 0 0; }
  .hero-composition-profile .hero-copy { padding:25px; }
  .hero-composition-document-viewer h1,.hero-composition-profile h1 { font-size:34px; }
  .hero-collage { height:auto!important; }
  .hero-composition-collage-row .hero-collage { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
  .hero-composition-collage-row .hero-collage figure:first-child { grid-column:1/-1; aspect-ratio:1.8; }
  .hero-composition-collage-row .hero-collage figure { aspect-ratio:1; }
  .hero-composition-collage-row .hero-after-actions { width:100%; }
  .hero-composition-culture .culture-intro { display:grid; grid-template-columns:minmax(0,1fr) 90px; align-items:center; gap:18px; }
  .hero-composition-culture .hero-copy { grid-column:1/-1!important; }
  .culture-book { width:100%; grid-column:1/-1; margin:0; justify-self:center; max-width:230px; aspect-ratio:1.6; }
  .culture-scene>figure { aspect-ratio:1.6; }
  .culture-quote { font-size:21px; padding:24px 0 0; }
  .hero-composition-studio .hero-collage { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
  .split-layout,.split-layout.image-right,.section-composition-selection .split-layout { display:flex; flex-direction:column; gap:30px; }
  .split-image,.split-copy { grid-row:auto; grid-column:auto; }
  .split-image { aspect-ratio:var(--image-ratio,3/2); }
  .split-image.image-kind-portrait { max-width:none; aspect-ratio:var(--image-ratio,4/3); }
  .section-composition-selection .selection-content { grid-template-columns:minmax(0,1fr); }
  .split-image.image-kind-book>img { padding:18px; }
  .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .card-grid[data-columns="1"] { grid-template-columns:minmax(0,1fr); }
  .card-grid[data-count="1"] { grid-template-columns:minmax(0,1fr); }
  .card-grid[data-columns="3"]:not(.layout-icons):not(.layout-books) { grid-template-columns:minmax(0,1fr); }
  .card-grid[data-columns="3"]:not(.layout-icons):not(.layout-books) .card-image { aspect-ratio:16/10; }
  .card-grid.layout-people { grid-template-columns:minmax(0,1fr); }
  .layout-people .content-card { display:grid; grid-template-columns:112px minmax(0,1fr); gap:22px; align-items:start; }
  .layout-people[data-columns="3"] .content-card { display:grid; }
  .layout-people .card-copy,.layout-people[data-columns="3"] .card-copy { padding-top:0; }
  .layout-people .card-image,.card-grid.layout-people[data-columns="3"] .card-image { aspect-ratio:4/5; }
  .nested-section .layout-people[data-columns="1"] .content-card { display:grid; }
  .nested-section .layout-people[data-columns="1"] .card-copy { padding:0; }
  .composition-equal.has-ratios .card-image { height:auto; aspect-ratio:3/2; }
  .composition-featured,.composition-exhibition,.composition-people-directory { grid-template-columns:minmax(0,1fr); gap:30px; }
  .composition-featured>.content-card:first-child,.composition-exhibition>.content-card:first-child,.composition-people-directory>.content-card:nth-child(-n+2) { grid-row:auto; }
  .composition-featured>.content-card:not(:first-child),.composition-exhibition>.content-card:not(:first-child),.composition-people-directory>.content-card:nth-child(n+3) { grid-column:auto; display:grid; grid-template-columns:100px minmax(0,1fr); gap:22px; }
  .composition-featured>.content-card:not(:first-child) .card-image,.composition-exhibition>.content-card:not(:first-child) .card-image,.composition-people-directory>.content-card:nth-child(n+3) .card-image { aspect-ratio:1; }
  .composition-featured>.content-card:not(:first-child) h3 { font-size:20px; }
  .card-list { grid-template-columns:100px minmax(0,1fr); gap:22px; }
  .card-list .card-image { aspect-ratio:1; }
  .card-grid.layout-learning { grid-template-columns:minmax(0,1fr); }
  .card-learning { grid-template-columns:100px minmax(0,1fr); }
  .card-learning .card-image { height:auto; aspect-ratio:1; }
  .card-learning.no-image { grid-template-columns:minmax(0,1fr); }
  .gallery-triptych,.gallery-mosaic,.gallery-mosaic-four { grid-template-columns:minmax(0,1fr); grid-template-rows:auto; gap:28px; }
  .gallery-triptych figure:last-child:nth-child(odd),.gallery-mosaic figure,.gallery-mosaic-four figure { grid-column:auto; grid-row:auto; margin:0; }
  .gallery-triptych .gallery-zoom,.gallery-mosaic figure:first-child .gallery-zoom,.gallery-mosaic figure:nth-child(3) .gallery-zoom,.gallery-mosaic-four figure .gallery-zoom { aspect-ratio:3/2; }
  .gallery-strip { margin-right:0; padding-right:0; }
  .gallery-strip:has(figure:nth-child(2):last-child) { grid-template-columns:minmax(0,1fr); gap:28px; }
  .feature-panel,.feature-panel.align-right { display:flex; flex-direction:column; min-height:0; }
  .feature-copy,.feature-panel.align-right .feature-copy { order:0; width:100%; padding:40px var(--gutter); margin:0; }
  .feature-image { order:1; width:100%; max-height:none; height:auto; min-height:0; aspect-ratio:3/2; }
  .feature-image>img { position:absolute; height:100%; min-height:0; max-height:none; }
  .page-section.section-feature:not(.tone-teal) .feature-copy { display:block; width:calc(100% - var(--gutter)*2); padding-top:26px; }
  .section-feature:not(.tone-teal) .feature-copy>.actions { justify-content:flex-start; margin-top:24px; }
  .section-feature:not(.tone-teal) .feature-image { aspect-ratio:3/2; }
  .reading-bridge { grid-template-columns:minmax(0,1fr); gap:28px; padding-block:40px; }
  .bridge-copy h2 { font-size:32px; }
  .bridge-image { aspect-ratio:3/2; }
  .bridge-links a { grid-template-columns:70px minmax(0,1fr) 18px; }
  .bridge-links img { width:70px; }
  .section-columns,.section-columns[data-columns="3"] { display:flex; flex-direction:column; gap:40px; }
  .section-columns>.nested-section { width:100%; }
  .nested-section.tone-teal,.nested-section.tone-ivory,.nested-section.tone-sage { padding:24px; }
  .nested-section.section-feature { padding:0; }
  .nested-section .card-copy>h3 { font-size:20px; }
  .nested-section .content-list .card-list { grid-template-columns:86px minmax(0,1fr); }
  .nested-section .content-list .card-list.no-image { grid-template-columns:minmax(0,1fr); }
  .media-layout,.media-layout.image-right { display:flex; flex-direction:column; gap:28px; }
  .media-poster,.media-copy { grid-row:auto; grid-column:auto; }
  .media-wide .media-copy { display:block; margin-top:0; }
  .media-wide .media-copy .section-heading { margin-bottom:20px; }
  .media-wide .media-copy .media-list { margin-top:24px; }
  .media-wide .media-poster { aspect-ratio:var(--image-ratio,16/10); }
  .media-list>li { gap:12px; }
  .media-list>li>img { width:55px; height:48px; flex-basis:55px; }
  .media-list strong { font-size:16px; }
  .media-list p { font-size:13px; }
  .faq-notes { grid-template-columns:minmax(0,1fr); }
  .kc-route-denominations .faq-answer>img { float:none; margin:0 0 20px; }
  .steps:not(.steps-vertical) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .metadata-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .article-layout.with-aside { display:block; }
  .record-field-grid { grid-template-columns:minmax(0,1fr); }
}
html[data-motion=off] { scroll-behavior:auto; }
.feature-copy.reveal { transform:none; }
html[data-motion=off] .motion-image,html[data-motion=off] .is-visible .content-card { animation:none!important; transform:none!important; }
@media(prefers-reduced-motion:reduce) { .motion-image,.is-visible .content-card { animation:none!important; transform:none!important; } }
.record-field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 50px}.record-field{border-top:1px solid var(--line);padding-top:22px}.record-field h3{font-size:16px;color:var(--teal);margin-bottom:15px}.record-field p,.record-field li{font-size:17px;line-height:1.95;color:var(--ink)}.record-field ul{list-style:disc;padding-left:20px}.record-field li+li{margin-top:10px}.record-field.field-repeater,.record-field.field-references,.record-field.field-textarea{grid-column:span 2}.field-links{display:flex;flex-wrap:wrap;gap:15px 30px}.field-links>a{display:flex;align-items:center;gap:15px;border-bottom:1px solid #c2cabc;padding:5px 0;font-size:17px}.field-links .icon{width:19px}.field-repeater{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}.field-repeater>div{background:#fffefa;border:1px solid var(--line);padding:20px}.field-repeater p{font-size:15px}.field-repeater p+p{margin-top:10px}.field-repeater p>span{display:block;color:var(--muted);font-size:12px}.gallery figcaption a{display:flex;justify-content:space-between;gap:12px;align-items:center}.gallery figcaption a .icon{width:17px;height:17px}
/* Additional named compositions and editor fields. */
.hero-composition-diptych .hero-inner { display:flex; flex-direction:column; gap:32px; }
.hero-composition-diptych .hero-copy { order:0; }
.hero-composition-diptych .hero-collage { order:1; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:24px; }
.hero-composition-diptych .hero-collage figure { aspect-ratio:auto; height:clamp(280px,30vw,450px); }
.hero-stack .hero-visual>img:first-child,.hero-center .hero-visual>img:first-child { max-height:none; aspect-ratio:var(--image-ratio,2.6); }
.feature-image.image-kind-book>img,.feature-image.image-kind-document>img { object-fit:contain; padding:24px; background:#eee9df; }
.kc-route-universities .content-list .card-list,.kc-route-professors .content-list .card-list,.kc-route-education-examples .content-list .card-list { grid-template-columns:minmax(0,.55fr) minmax(0,1fr); gap:44px; padding-block:32px; }
.kc-route-universities .content-list .card-image,.kc-route-professors .content-list .card-image,.kc-route-education-examples .content-list .card-image { aspect-ratio:16/10; }
.kc-route-universities .content-list .card-copy,.kc-route-professors .content-list .card-copy,.kc-route-education-examples .content-list .card-copy { align-self:start; }
.layout-icons[data-columns="6"] .card-icons { padding-inline:16px; }
.layout-icons[data-columns="6"] .card-copy>h3 { font-size:18px; }
.layout-icons[data-columns="6"] .card-copy>p { font-size:14px; }
.sitemap-illustrated { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
.sitemap-illustrated>div { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1fr); gap:28px; align-items:start; }
.sitemap-illustrated>div>img { width:100%; height:auto; aspect-ratio:4/5; }
.sitemap-illustrated section { min-width:0; }
.sitemap-illustrated section>a { display:block; padding:7px 0; font-size:16px; color:var(--muted); }
.sitemap-illustrated h3 { font-size:25px; margin-bottom:20px; }
.sitemap-utilities { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-top:40px; padding:26px 0; border-block:1px solid var(--line); }
.sitemap-utilities a { display:flex; gap:14px; align-items:center; justify-content:space-between; font-size:15px; }
.sitemap-utilities .icon { width:18px; }
@media(max-width:1000px) { .layout-icons[data-columns="6"] { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 0; }.layout-icons[data-columns="6"] .card-icons:nth-child(4) { border-left:0; } }
@media(max-width:760px) {
  .hero-stack .hero-visual>img:first-child,.hero-center .hero-visual>img:first-child { aspect-ratio:var(--image-ratio,1.6); }
  .hero-composition-diptych .hero-collage { gap:16px; }
  .hero-composition-diptych .hero-collage figure { height:200px; }
  .kc-route-universities .content-list .card-list,.kc-route-professors .content-list .card-list,.kc-route-education-examples .content-list .card-list { grid-template-columns:minmax(0,1fr); gap:24px; }
  .layout-icons[data-columns="6"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .layout-icons[data-columns="6"] .card-icons:nth-child(4) { border-left:1px solid var(--line); }
  .layout-icons[data-columns="6"] .card-icons:nth-child(odd) { border-left:0; }
  .sitemap-illustrated { grid-template-columns:minmax(0,1fr); }
  .sitemap-illustrated>div { grid-template-columns:90px minmax(0,1fr); gap:24px; }
  .sitemap-illustrated h3 { font-size:23px; }
  .sitemap-utilities { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .record-field-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .record-field.field-repeater,.record-field.field-references,.record-field.field-textarea { grid-column:auto; }
  .field-repeater { grid-template-columns:minmax(0,1fr); }
  .record-field p,.record-field li,.field-links>a { font-size:16px; }
}

.timeline li img { aspect-ratio:var(--image-ratio,1.3); }
.step-image img { aspect-ratio:var(--image-ratio,1.4); }
.media-poster { aspect-ratio:var(--image-ratio,16/10); }
.section-feature.heading-above .full-width>.container>.section-heading{margin-bottom:32px}
.kc-route-films #browse-films .card-image{height:auto;aspect-ratio:var(--image-ratio,4/3)}
.kc-route-history #history-themes .content-card:first-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;background:var(--teal);color:var(--paper)}
.kc-route-history #history-themes .content-card:first-child .card-image{aspect-ratio:4/5}
.kc-route-history #history-themes .content-card:first-child .card-copy{padding:28px}
.kc-route-history #history-themes .content-card:first-child :is(p,.card-tag,.card-arrow){color:#e1e9dd}
.hero-composition-studio .hero-collage .collage-0{aspect-ratio:4/3}
.hero-composition-studio .hero-collage .collage-1{aspect-ratio:1}
@media(max-width:760px){.kc-route-history #history-themes .content-card:first-child{display:block}.kc-route-history #history-themes .content-card:first-child .card-image{aspect-ratio:16/10}.kc-route-history #history-themes .content-card:first-child .card-copy{padding:24px}.kc-route-films #browse-films .content-card .card-image{aspect-ratio:16/10}}
/* Narrow article/policy panels use one reading column. */
.article-layout.with-aside{grid-template-columns:minmax(0,2.4fr) minmax(0,1fr)}
.policy-list>section{grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr)}
.policy-list>section>*{min-width:0}
@container(max-width:700px){.nested-section .article-layout.with-aside{display:block}.nested-section .article-aside{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;margin-top:25px}.nested-section .policy-list>section{display:block;padding:25px 0}.nested-section .policy-list h3{margin-bottom:18px;font-size:22px}.nested-section .policy-list p{font-size:16px}}
.body-image-gallery .image-kind-book>img,.body-image-gallery .image-kind-document>img{object-fit:contain;padding:16px;background:var(--ivory)}
.section-composition-compact-split-pair .nested-section .split-layout,
.section-composition-compact-split-pair .nested-section .split-layout.image-right { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:28px; align-items:start; }
.section-composition-compact-split-pair .nested-section .split-layout>.split-image { grid-column:1; grid-row:1; order:initial; }
.section-composition-compact-split-pair .nested-section .split-layout>.split-copy { grid-column:2; grid-row:1; order:initial; }
.section-composition-compact-split-pair .nested-section .split-layout.image-right>.split-image { grid-column:2; }
.section-composition-compact-split-pair .nested-section .split-layout.image-right>.split-copy { grid-column:1; }
@container(max-width:480px) {
  .section-composition-compact-split-pair .nested-section .split-layout,
  .section-composition-compact-split-pair .nested-section .split-layout.image-right { display:flex; flex-direction:column; gap:24px; }
  .section-composition-compact-split-pair .nested-section .split-layout>.split-image { aspect-ratio:16/10; order:0; }
  .section-composition-compact-split-pair .nested-section .split-layout>.split-copy { order:1; }
}
.kc-route-hanok-place #section-6 .split-image{max-width:220px;aspect-ratio:4/5}
.kc-route-community-work #section-7 .content-card{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1fr);gap:24px;align-items:start}
.kc-route-community-work #section-7 .card-image{aspect-ratio:3/4}
.kc-route-community-work #section-7 .card-image>img{padding:12px}
.kc-route-community-work #section-7 .card-copy{padding:0}
.section-feature.section-composition-panorama-strip .feature-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);min-height:340px;background:var(--ivory);color:var(--ink)}
.section-feature.section-composition-panorama-strip .feature-image{grid-column:2;grid-row:1;order:initial;height:360px;min-height:0;aspect-ratio:auto;align-self:center}
.section-feature.section-composition-panorama-strip .feature-copy{grid-column:1;grid-row:1;order:initial;display:block;width:100%;padding:45px var(--gutter);margin:0;align-self:center}
.section-feature.section-composition-panorama-strip .feature-image:after{display:block;background:linear-gradient(90deg,var(--ivory),transparent 50%)}
.section-feature.section-composition-panorama-strip .feature-copy .actions{justify-content:flex-start;margin-top:24px}
@media(min-width:761px){
  .kc-route-historical-person #section-1 .timeline-vertical{max-width:1100px;position:relative}
  .kc-route-historical-person #section-1 .timeline-vertical:before{content:"";position:absolute;left:50%;top:12px;bottom:45px;width:1px;background:var(--line)}
  .kc-route-historical-person #section-1 .timeline-vertical li{display:grid;grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);gap:30px;padding-bottom:55px}
  .kc-route-historical-person #section-1 .timeline-vertical li:before,.kc-route-historical-person #section-1 .timeline-vertical .timeline-label:after{display:none}
  .kc-route-historical-person #section-1 .timeline-label{grid-column:2;grid-row:1;justify-self:center;align-self:start;background:var(--paper);padding:6px 14px;font-size:20px;z-index:1}
  .kc-route-historical-person #section-1 li>div{grid-column:3;grid-row:1}
  .kc-route-historical-person #section-1 li:nth-child(even)>div{grid-column:1;text-align:right}
  .kc-route-historical-person #section-1 li img{float:none;width:100%;margin:0 0 20px;aspect-ratio:16/10}
}
@media(max-width:760px){
  .kc-route-community-work #section-7 .card-grid{grid-template-columns:minmax(0,1fr)}
  .kc-route-community-work #section-7 .content-card{grid-template-columns:100px minmax(0,1fr)}
  .section-feature.section-composition-panorama-strip .feature-panel{display:flex;min-height:0}
  .section-feature.section-composition-panorama-strip .feature-copy{padding:36px var(--gutter)}
  .section-feature.section-composition-panorama-strip .feature-image{height:auto;min-height:0;aspect-ratio:16/9;order:1}
}

@media(max-width:760px) {
  .bookshelf-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; }
  .bookshelf { padding-left:12px; }
  .bookshelf-items { grid-template-columns:minmax(0,1fr); gap:24px; }
  .bookshelf header h3 { font-size:21px; }
  .card-shelf .card-copy>h3 { font-size:15px; }
  .content-card.card-variant-overlay,.content-card.card-variant-illustrated { min-height:300px; }
  .card-variant-illustrated .card-copy,.content-card.card-variant-overlay .card-copy { padding:24px; }
  .card-variant-illustrated .card-copy { max-width:87%; }
  .card-illustration { opacity:.4; }
  .composition-process-rows .card-list { grid-template-columns:minmax(0,1fr); gap:22px; padding-block:24px; }
  .composition-process-rows .card-copy>h3 { font-size:23px; }
  .episode-row { grid-template-columns:30px minmax(0,1fr) 20px; gap:14px; padding:22px 8px; }
  .episode-table li:first-child .episode-row { padding-left:5px; }
  .episode-number { grid-column:1; grid-row:1; font-size:20px; }
  .episode-row h3 { grid-column:2; grid-row:1; font-size:22px; }
  .episode-row>.icon { grid-column:3; grid-row:1; width:18px; }
  .episode-thumbnail { grid-column:2/4; grid-row:2; }
  .episode-thumbnail.is-empty { display:none; }
  .episode-row p { grid-column:2/4; font-size:14px; }
  .section-composition-series-mini .nested-section .split-layout { grid-template-columns:105px minmax(0,1fr); gap:22px; }
  .section-composition-series-mini .nested-section .section-heading h2 { font-size:23px; }
  .nested-section.section-composition-case-step .split-layout,.nested-section.section-composition-case-step .split-layout.image-right { display:flex; flex-direction:column; gap:24px; }
  .nested-section.section-composition-case-step .split-layout>.split-image { order:0; aspect-ratio:16/9; }
  .nested-section.section-composition-case-step .split-layout>.split-copy { order:1; }
  .quote-panel,.quote-panel.image-right { display:flex; flex-direction:column; gap:0; align-items:stretch; padding-block:30px; }
  .quote-panel .quote-image { order:1; aspect-ratio:16/9; }
  .quote-copy { padding:0 0 26px; }
  .quote-copy .section-heading h2 { font-size:26px; }
  .quote-copy blockquote p { font-size:24px; }
  .section-composition-quote-banner .quote-panel { padding:0; min-height:0; }
  .section-composition-quote-banner .quote-copy { width:100%; padding:38px var(--gutter) 220px; }
  .section-composition-quote-banner .quote-image:after { background:linear-gradient(180deg,#194c43fb 0%,#194c43f2 44%,#194c4380 70%,#194c4320 100%); }
  .section-composition-editorial-banner .feature-image { width:100%; aspect-ratio:16/9; }
  .section-composition-editorial-banner .feature-copy { padding-block:34px; }
  .step-icon>.icon { width:38px; height:38px; }
}
