@import url('/design-system/components.css');
.site-density .gm-image { height: auto; }
/* Run 2 shared shell: reuse accepted components; populated fidelity refinements only. */
.site-notice { background: var(--gm-ivory); border-bottom: var(--gm-border); font-size: .75rem; padding: .3rem var(--gm-gutter); text-align: center; }
.site-notice a { font-weight: 700; }
.site-header .gm-header__row { min-height: 4rem; gap: 1.25rem; padding-block: .5rem; }
.site-brand { display: flex; align-items: center; gap: .6rem; }
.site-brand-placeholder { border: 1px dashed #897f9f; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; font-size: .65rem; text-align: center; line-height: 1; color: var(--gm-body); }
.site-header .gm-wordmark { font-size: 1.65rem; }
.site-header .gm-header__strap { font-size: .65rem; }
.site-hero { position: relative; overflow: hidden; min-height: 25rem; background: var(--gm-ivory); }
.site-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 72% 45%; }
.site-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(255,248,239,.99) 0%,rgba(255,248,239,.96) 30%,rgba(255,248,239,.72) 46%,rgba(255,248,239,0) 67%); }
.site-hero__body { position: relative; z-index: 1; padding-block: 2rem 3.5rem; }
.site-hero__body > * { max-width: 28rem; }
.site-hero__body h1 { font-size: clamp(2.4rem,4.6vw,3.75rem); }
.site-hero__body .site-proposition { font-size: clamp(1.25rem,2.2vw,1.75rem); font-weight: 700; line-height: 1.15; color: var(--gm-ink); }
.site-hero--george .site-hero__image { object-position: 72% 38%; }
.site-mode-links { position: relative; z-index: 2; margin-top: -1.75rem; padding-bottom: .75rem; }
.site-mode-links .gm-mode-grid { grid-template-columns: repeat(7,minmax(0,1fr)); }
.site-mode-unbuilt { cursor: default; }
.site-mode-unbuilt small { display: block; font-size: .65rem; color: var(--gm-body); margin-top: .2rem; }
.site-mode-links .gm-mode { padding: .85rem .6rem; background: var(--gm-paper); }
.site-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.site-home-cards { grid-template-columns: repeat(6,minmax(0,1fr)); gap: .65rem; }
.site-home-cards .gm-card { border: 0; background: transparent; }
.site-home-cards .gm-card__body { padding: .65rem 0; }
.site-home-cards h3 { font-size: 1rem; }
.site-home-cards p { font-size: .875rem; line-height: 1.3; }
.site-home-cards .gm-image { aspect-ratio: 6/5; }
.gm-card .site-image-contain { object-fit: contain; background: var(--gm-ivory); }
.site-home-cards .site-image-contain { object-fit: cover; }
.site-density .gm-section { padding-block: 1.25rem; }
.site-density .gm-section__heading { margin-bottom: .6rem; }
.site-density h2 { font-size: clamp(1.5rem,2.1vw,1.9rem); }
.site-density .gm-grid p { margin-bottom: .5rem; }
.site-density .gm-card__body { padding: .75rem; }
.site-density .gm-card__link { min-height: 2.75rem; }
.site-method-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; }
.site-method-grid article { background: var(--gm-card); padding: .75rem; border-radius: var(--gm-radius); }
.site-method-grid h3 { font-size: 1rem; }
.site-method-grid p { font-size: .875rem; margin-bottom: 0; }
.site-closing { position: relative; background: var(--gm-plum) url('/assets/run-2/landscape.webp') right center / 120% auto no-repeat; color: white; padding-block: 1.25rem; }
.site-closing::before { content:''; position:absolute; inset:0; background: linear-gradient(90deg,rgba(35,8,66,.93),rgba(35,8,66,.76),rgba(35,8,66,.45)); }
.site-closing > * { position:relative; }
.site-closing h2 { color:white; font-size:1.35rem; margin-bottom: .75rem; }
.site-closing .gm-button { border-color: #d8cce9; }
.site-closing .gm-button--secondary { border-color: var(--gm-line); }
.site-footer .gm-wordmark { font-size: 1.25rem; }
.site-footer .gm-wordmark small { font-size:.6rem; }
.site-footer nav { gap:.8rem; }
.site-footer nav a { font-size:.75rem; }
.site-footer__small { font-size: .75rem; margin-top:.5rem; color:var(--gm-body); }
.site-page-title { padding-block: 1.5rem; border-bottom: var(--gm-border); }
.site-page-title h1 { font-size: clamp(2rem,3.6vw,3rem); }
.site-page-title .gm-page-header__meta { margin-top:.75rem; }
.site-subnav { display:flex; gap:1.25rem; flex-wrap:wrap; border-bottom:var(--gm-border); padding-block:.5rem; }
.site-subnav a { display:flex; align-items:center; min-height:2.75rem; font-size:.875rem; }
.site-feature { display:grid; grid-template-columns:1.1fr 1fr; gap:1.5rem; align-items:start; }
.site-feature .gm-image { aspect-ratio: 4/3; }
.site-feature .site-image-contain { object-fit:contain; background:var(--gm-card); }
.site-feature h2 { margin-top:0; }
.site-editorial { max-width: 60ch; }
.site-copy-status { min-height:1.5em; font-size:.875rem; }
.site-empty { padding:1rem; border:1px dashed var(--gm-line); background:var(--gm-card); }
.site-compare-media { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.site-compare-media img { aspect-ratio: 4/3; object-fit:contain; background:var(--gm-card); }
.site-lab iframe { height: 2200px; }
.site-lab.gm-lab--tablet iframe { height: 2800px; }
.site-lab.gm-lab--mobile iframe { height: 5100px; }
.site-lab__pages { display:flex; gap:1rem; flex-wrap:wrap; margin-block:1rem; }
.site-lab__pages button[aria-pressed=true] { background:var(--gm-plum); color:white; }
@media(max-width:64rem) {
 .site-mode-links .gm-mode-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .site-home-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .site-header .gm-nav { order:3; }
 .site-header .gm-header__row { gap:.75rem; }
 .site-hero { min-height:24rem; }
 .site-hero__body > * { max-width:24rem; }
 .site-hero::after { background:linear-gradient(90deg,rgba(255,248,239,.98),rgba(255,248,239,.84) 42%,rgba(255,248,239,.1) 80%); }
}
@media(max-width:40rem) {
 .site-hero { min-height:0; display:flex; flex-direction:column; }
 .site-hero__image { position:static; height:12rem; order:2; object-position:72% 40%; }
 .site-hero::after { display:none; }
 .site-hero__body { padding-block:1.5rem 1rem; }
 .site-hero__body > * { max-width:none; }
 .site-hero__body h1 { font-size:2.5rem; }
 .site-hero__body .site-proposition { font-size:1.4rem; }
 .site-mode-links { margin-top:-.75rem; }
 .site-mode-links .gm-mode-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .site-home-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .site-card-grid,.site-feature,.site-compare-media { grid-template-columns:1fr; }
 .site-closing .gm-actions > * { width:100%; }
 .site-method-grid { grid-template-columns:1fr; }
 .site-footer__row { gap:.75rem; }
 .site-header .gm-wordmark { font-size:1.4rem; }
 .site-brand-placeholder { width:2rem;height:2rem; }
 .site-header .gm-button { font-size:.8rem; padding-inline:.65rem; }
}

/* CGS depth palette — final page review.
   Scoped exclusively to the CGS Project and its descendant artefact, reading,
   transcript, Observatory and Research Library pages.
   Keep scientifically meaningful Observatory status colours, evidence mapping,
   simulations, images and original source material untouched. */
body.refinement-cgs-terp,
body.cgs-page{background:var(--gm-ivory)}

body.refinement-cgs-terp .project-title,
body.cgs-page .site-page-title,
body.cgs-page .terp-opening,
body.cgs-page .rl-opening,
body.cgs-page header.gm-section{
  background:var(--gm-paper);
  border:1px solid var(--gm-line);
  border-top:4px solid var(--gm-plum);
  border-radius:.65rem;
  padding:clamp(1rem,2.5vw,1.8rem);
  margin-block:1.25rem;
}
body.refinement-cgs-terp .project-title h1,
body.refinement-cgs-terp .project-story>.gm-section>h2,
body.cgs-page .site-page-title h1,
body.cgs-page .terp-opening h1,
body.cgs-page .rl-opening h1,
body.cgs-page .cgs-prose>h2,
body.cgs-page .cgs-panel h2,
body.cgs-page .cgs-reading-source h2,
body.cgs-page .rl-section>h2,
body.cgs-page .transcript-act>h2,
body.cgs-page .terp-prose>h2{color:var(--gm-plum)}
body.refinement-cgs-terp .project-story>.gm-section{
  padding:clamp(1rem,2.2vw,1.65rem);
  margin-block:1.1rem;
  border-radius:.65rem;
}
body.refinement-cgs-terp .project-story>.gm-section:nth-of-type(3n + 2){
  background:var(--gm-paper);
  border:1px solid var(--gm-line);
}
body.refinement-cgs-terp .project-story>.gm-section:nth-of-type(6n + 5),
body.refinement-cgs-terp .cgs-bridge{
  background:var(--gm-lavender);
  border-left:3px solid var(--gm-plum);
  border-radius:.65rem;
}
body.cgs-page .cgs-panel,
body.cgs-page .cgs-prose.gm-section,
body.cgs-page .terp-prose.gm-section,
body.cgs-page .rl-section,
body.cgs-page .rl-card,
body.cgs-page .rl-history,
body.cgs-page .transcript-act{
  background:var(--gm-paper);
  border:1px solid var(--gm-line);
  border-radius:.65rem;
  padding:clamp(1rem,2.2vw,1.65rem);
  margin-block:1.15rem;
}
body.cgs-page .cgs-panel:nth-of-type(even),
body.cgs-page .terp-prose.gm-section:nth-of-type(even),
body.cgs-page .rl-section:nth-of-type(even),
body.cgs-page .rl-card:nth-of-type(3n),
body.cgs-page .transcript-act:nth-of-type(even){
  background:var(--gm-lavender);
}
body.cgs-page .cgs-context{
  background:var(--gm-lavender);
  border-left:3px solid var(--gm-plum);
}
body.cgs-page .cgs-reading-source{
  background:var(--gm-paper);
  border:1px solid var(--gm-line);
  border-radius:.65rem;
  padding:clamp(1rem,3vw,2rem);
}
body.cgs-page .cgs-toc{border-bottom-color:var(--gm-plum)}
/* The Observatory dark evidence map, its coloured assessment statuses
   and distinct review-depth markings deliberately retain their own scheme. */
@media(max-width:650px){
  body.refinement-cgs-terp .project-title,
  body.refinement-cgs-terp .project-story>.gm-section,
  body.cgs-page .site-page-title,
  body.cgs-page .terp-opening,
  body.cgs-page .rl-opening,
  body.cgs-page header.gm-section,
  body.cgs-page .cgs-reading-source{padding:1rem}
}

/* Laptop polish: captions belong to images, not to the left edge of a wide
   reading column. Body paragraphs and evidence labels are unaffected. */
main figure figcaption{text-align:center;text-wrap:pretty;margin-inline:auto}
/* Centred narrow standalone editorial images; leave intentional text-wrap floats
   and image pairs on their own approved layouts. */
main .cgs-reading-source>figure,
main .project-story>.gm-section>figure.project-photo,
main .project-story>.gm-section .project-prose>figure:not(.project-media-pair),
main .cgs-panel>figure{margin-inline:auto}
