/* Molecular Atlas: one continuous scene, independent readable content. */
body.molecular-site {
  --bg: #070b18;
  --surface: #0c1427;
  --surface-high: #14223c;
  --text: #edf3ff;
  --muted: #b4c4d9;
  --quiet: #95abc3;
  --mint: #8bece0;
  --cyan: #97d6f2;
  --violet: #b3a5ed;
  --gold: #e9c585;
  --line: rgba(160, 187, 222, .22);
  --line-bright: rgba(139, 236, 224, .5);
  --molecular-header: 88px;
  --molecular-gutter: clamp(28px, 3.33vw, 64px);
  --molecular-reading: min(780px, calc(54vw - var(--molecular-gutter)));
  --molecular-scene-left: min(48vw, 860px);
  --molecular-scene-height: 240px;
  background: var(--bg);
  font-size: 18px;
  overflow-x: clip;
}
body.molecular-site::before {
  position: fixed;
  inset: 0;
  height: auto;
  background: radial-gradient(ellipse at 12% 26%, rgba(37, 42, 95, .18), transparent 60%),
    radial-gradient(ellipse at 90% 70%, rgba(58, 33, 112, .16), transparent 62%);
}
.molecular-site .site-header { background: rgba(7, 11, 24, .95); }
.molecular-site .header-inner { gap: 24px; }
.molecular-site .nav-links { gap: 20px; }
.molecular-site .brand small { color: #b0a2d9; }
.molecular-site .brand-mark { border-color: rgba(179, 165, 237, .48); }
.molecular-site main { position: relative; z-index: 10; pointer-events: none; }
.molecular-site main > * { pointer-events: auto; }

/* The scene never transforms or scales the reading interface. */
.molecular-site #molecular-world {
  position: fixed;
  top: var(--molecular-header);
  right: 0;
  bottom: 0;
  left: var(--molecular-scene-left);
  height: calc(100dvh - var(--molecular-header));
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
  z-index: 2;
  background: radial-gradient(ellipse at 64% 38%, rgba(35, 37, 80, .55), transparent 75%),
    linear-gradient(155deg, #091326, #0a1024 58%, #120d25);
}
.molecular-site #molecular-world::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;
  background: radial-gradient(ellipse at 83% 14%, rgba(157, 126, 242, .1), transparent 40%),
    radial-gradient(ellipse at 45% 90%, rgba(129, 231, 225, .07), transparent 45%);
}
.molecular-site #molecular-world::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 5;
  background: linear-gradient(90deg, #070b18 0%, rgba(7, 11, 24, .65) 8%, transparent 25%),
    linear-gradient(0deg, rgba(7, 11, 24, .86), transparent 26%, transparent 83%, rgba(7, 11, 24, .4));
}
.molecular-site #protein-canvas,
.molecular-site #protein-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  pointer-events: none;
}
.molecular-site #protein-canvas { z-index: 2; pointer-events: auto; }
.molecular-site #protein-fallback { z-index: 1; object-fit: contain; opacity: 1; }
.molecular-site #molecular-world.is-ready:not(.is-static):not(.is-fallback) #protein-fallback { opacity: 0; }
.molecular-site #molecular-world:is(.is-loading, .is-static, .is-fallback) #protein-canvas,
.molecular-site.protein-static #protein-canvas { opacity: 0; visibility: hidden; }
.molecular-site #molecular-world:is(.is-static, .is-fallback) #protein-fallback,
.molecular-site.protein-static #protein-fallback { opacity: 1; visibility: visible; }
.molecular-site .protein-zone-meta {
  position: absolute;
  top: 30px;
  left: 18%;
  right: 28px;
  z-index: 9;
  pointer-events: none;
  max-width: 530px;
  text-shadow: 0 2px 16px #070b18;
}
.molecular-site .protein-eyebrow {
  color: #bbb0e6;
  font: 14px/1.7 var(--mono);
  letter-spacing: .04em;
}
.molecular-site #protein-zone-title {
  margin-top: 9px;
  color: #e7eaff;
  font-size: clamp(25px, 2.15vw, 33px);
  line-height: 1.4;
  letter-spacing: -.02em;
  font-weight: 500;
}
.molecular-site #protein-zone-description {
  max-width: 46ch;
  margin-top: 8px;
  color: #b6c8df;
  font-size: 16px;
  line-height: 1.7;
}
.molecular-site #protein-hotspots { position: absolute; inset: 0; z-index: 8; pointer-events: none; }
.molecular-site .protein-hotspot {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  max-width: min(270px, 74%);
  width: max-content;
  padding: 10px 14px;
  border: 1px solid rgba(152, 211, 231, .36);
  border-radius: 5px;
  color: #e0f2f8;
  background: rgba(9, 19, 39, .94);
  box-shadow: 0 5px 24px rgba(1, 7, 19, .4);
  font-size: 16px;
  line-height: 1.55;
  text-align: left;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  overflow-wrap: normal;
  transition: background .2s, border-color .2s, color .2s;
}
.molecular-site .protein-hotspot::before {
  content: "";
  flex: 0 0 6px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 12px rgba(139, 236, 224, .6);
}
.molecular-site .protein-hotspot:is(:hover, .is-active, .is-selected) {
  color: #ecfffb;
  background: rgba(16, 45, 53, .96);
  border-color: var(--mint);
}
.molecular-site .protein-topic-hotspot { font-size: 16px; border-color: rgba(179, 165, 237, .5); }
.molecular-site .protein-topic-hotspot::before { background: var(--violet); }
.molecular-site .protein-hotspot:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; z-index: 15; }
.molecular-site .protein-legend {
  position: absolute;
  left: 18%;
  right: 24px;
  bottom: 168px;
  z-index: 9;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 23px;
  color: #bfd1e3;
  font-size: 14px;
  line-height: 1.7;
  pointer-events: none;
}
.molecular-site .protein-legend > span { display: inline-flex; align-items: center; gap: 8px; }
.molecular-site .protein-legend i { width: 15px; height: 3px; background: var(--mint); }
.molecular-site .protein-legend .legend-ligand { background: var(--gold); }
.molecular-site .protein-controls {
  position: absolute;
  left: 18%;
  right: 24px;
  bottom: 105px;
  z-index: 10;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.molecular-site .protein-controls button {
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid rgba(179, 165, 237, .32);
  border-radius: 4px;
  color: #d4d7ed;
  background: rgba(10, 16, 36, .94);
  font-size: 16px;
  line-height: 1.5;
}
.molecular-site .protein-controls button:hover { color: #fff; border-color: var(--violet); }
.molecular-site #protein-static[aria-pressed="true"] { color: var(--gold); border-color: rgba(233, 197, 133, .7); }
.molecular-site #protein-collapse { display: none; }
.molecular-site #protein-status {
  position: absolute;
  left: 18%;
  right: 26px;
  bottom: 209px;
  z-index: 9;
  color: #a3b9d0;
  font-size: 14px;
  line-height: 1.7;
  pointer-events: none;
}
.molecular-site #protein-source {
  position: absolute;
  left: 18%;
  right: 26px;
  bottom: 24px;
  z-index: 10;
  color: #97adc7;
  font-size: 14px;
  line-height: 1.7;
}
.molecular-site #protein-source a { display: inline-block; color: #cab8ee; text-decoration: underline; text-underline-offset: 4px; }
.molecular-site #protein-source > span { display: block; max-width: 65ch; margin-top: 4px; }

/* Left reading column: a soft plane rather than a stack of small cards. */
.molecular-site .hero.shell {
  width: calc(100% - var(--molecular-gutter) * 2);
  margin-left: var(--molecular-gutter);
  margin-right: var(--molecular-gutter);
  grid-template-columns: var(--molecular-reading) minmax(0, 1fr);
  gap: 0;
  min-height: max(740px, calc(100svh - var(--molecular-header)));
  padding-block: 70px;
  pointer-events: none;
}
.molecular-site .hero-copy {
  width: 100%;
  max-width: 680px;
  padding: 28px 30px 34px;
  pointer-events: auto;
  background: linear-gradient(90deg, rgba(7, 11, 24, .94) 70%, rgba(7, 11, 24, .68));
}
.molecular-site .hero-title { font-size: clamp(48px, 4.85vw, 74px); }
.molecular-site .hero-title em { color: #b5eee8; text-shadow: 0 0 35px rgba(139, 236, 224, .1); }
.molecular-site .hero-lead { color: #c4cddd; font-size: 20px; }
.molecular-site #hero-scene-anchor { align-self: stretch; min-width: 0; pointer-events: none; }
.molecular-site .hero .research-map, .molecular-site .layer-rail { display: none; }
.molecular-site main > .section.shell,
.molecular-site main > .cv-view.shell,
.molecular-site .site-footer.shell {
  width: var(--molecular-reading);
  max-width: none;
  margin-left: var(--molecular-gutter);
  margin-right: 0;
  min-width: 0;
}
.molecular-site main > .section.shell {
  padding: 68px 30px 74px;
  scroll-margin-top: 114px;
  background: linear-gradient(90deg, rgba(7, 11, 24, .95) 65%, rgba(7, 11, 24, .83));
  border-top: 1px solid rgba(179, 165, 237, .12);
}
.molecular-site .section[data-chapter]::before { opacity: .55; }
.molecular-site .chapter-number { top: 49px; right: 24px; color: rgba(179, 165, 237, .07); font-size: 104px; }
.molecular-site #approach .chapter-number { font-size: clamp(48px, 5vw, 76px); letter-spacing: -.04em; }
.molecular-site .section-head { display: block; margin-bottom: 34px; }
.molecular-site .section-head > .section-intro { margin-top: 22px; }
.molecular-site .section-title { font-size: clamp(36px, 3.2vw, 46px); }
.molecular-site .section-intro { color: #b9c7dc; }
.molecular-site .site-footer.shell { position: relative; z-index: 10; padding-inline: 30px; background: rgba(7, 11, 24, .94); }
.molecular-site main > .cv-view.shell { padding: 34px 30px; scroll-margin-top: 115px; }
.molecular-site .cv-columns { grid-template-columns: 1fr; gap: 32px; }
.molecular-site .cv-view .section-head { display: block; }
.molecular-site .cv-actions { margin-top: 20px; }

/* Seven clear entry points remain available without operating the scene. */
.molecular-site .molecular-directory {
  width: var(--molecular-reading);
  margin: 0 0 0 var(--molecular-gutter);
  padding: 18px 30px 24px;
  color: #c7d3e7;
  background: rgba(10, 15, 32, .95);
  border-top: 1px solid rgba(179, 165, 237, .2);
  border-bottom: 1px solid rgba(179, 165, 237, .2);
  pointer-events: auto;
}
.molecular-site .molecular-directory > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.molecular-site .molecular-directory button {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  column-gap: 9px;
  align-content: start;
  min-width: 0;
  min-height: 52px;
  padding: 11px 0;
  border-top: 1px solid transparent;
  text-align: left;
  color: #b1c0d8;
  font-size: 16px;
  line-height: 1.6;
}
.molecular-site .directory-number { color: #8e95bd; font: 14px/1.85 var(--mono); }
.molecular-site .directory-label { min-width: 0; }
.molecular-site .directory-count { grid-column: 2; color: #90a7c2; font-size: 14px; line-height: 1.8; }
.molecular-site .directory-count:empty { display: none; }
.molecular-site .molecular-directory button:is(:hover, .active, .is-active, [aria-current="step"]) { color: var(--mint); border-top-color: rgba(139, 236, 224, .55); }
.molecular-site .molecular-directory button[aria-current="step"] .directory-number { color: var(--gold); }

/* Rich existing sections are rearranged, not reduced in reading size. */
.molecular-site :is(.journey-layout, .fusion-layout, .case-layout, .training-layout, .viewpoint-layout, .stage-detail, .contact-layout) { grid-template-columns: 1fr; gap: 32px; }
.molecular-site .journey-photo { position: static; display: grid; grid-template-columns: 185px minmax(0, 1fr); gap: 23px; align-items: end; }
.molecular-site .journey-photo img { max-height: 260px; }
.molecular-site .photo-caption { display: block; margin-top: 0; }
.molecular-site .photo-caption span { display: block; }
.molecular-site .timeline-item > button { grid-template-columns: 98px minmax(0, 1fr); gap: 18px; }
.molecular-site .timeline-summary { margin-left: 116px; }
.molecular-site .research-gallery { grid-template-columns: 1fr; gap: 32px; }
.molecular-site .research-gallery img { height: 350px; }
.molecular-site .viewpoint-statement { max-width: none; font-size: 32px; }
.molecular-site .viewpoint-grid { gap: 0 25px; }
.molecular-site .viewpoint-item p, .molecular-site .capability-description { color: var(--muted); font-size: 18px; }
.molecular-site .fusion-statement { max-width: none; font-size: 30px; }
.molecular-site .large-symbol { font-size: 66px; }
.molecular-site .fusion-footnote { max-width: none; margin-top: 19px; }
.molecular-site .capability-grid { column-gap: 27px; }
.molecular-site .case-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.molecular-site .case-tab { padding: 20px 24px 20px 0; grid-template-columns: 24px minmax(0, 1fr); gap: 9px; }
.molecular-site .case-tab-title { color: #c0cee1; font-size: 18px; }
.molecular-site .case-tab.active .case-tab-title { color: #eff7ff; }
.molecular-site .case-tab-tag { margin-bottom: 6px; }
.molecular-site .case-visual { min-height: 235px; }
.molecular-site .case-title { font-size: 31px; }
.molecular-site .case-summary, .molecular-site .case-role { color: #c0cee1; }
.molecular-site .case-metrics { gap: 22px 30px; }
.molecular-site .diagram-step-labels { font-size: 14px; }
.molecular-site .publication-controls { flex-direction: column; align-items: stretch; gap: 18px; }
.molecular-site .publication-search { flex-basis: auto; width: 100%; }
.molecular-site .publication-title { font-size: 27px; }
.molecular-site .publication-summary, .molecular-site .publication-detail { color: #bfcee1; }
.molecular-site .recognition-list { grid-template-columns: 1fr; gap: 0; }
.molecular-site .recognition-item { padding-block: 27px 32px; }
.molecular-site .recognition-item h3 { font-size: 24px; }
.molecular-site .recognition-item p { color: #bdcce0; }
.molecular-site .stage-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.molecular-site .stage-button { padding: 18px 15px; }
.molecular-site .stage-button:not(:nth-child(4n+1)) { border-left: 0; }
.molecular-site .stage-button:nth-child(even) { border-left: 1px solid var(--line); }
.molecular-site .stage-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 25px; }
.molecular-site .ecosystem-foundation { flex-direction: column; align-items: flex-start; gap: 16px; }
.molecular-site .workflow-header { flex-direction: column; align-items: flex-start; gap: 21px; }
.molecular-site .workflow-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.molecular-site .workflow-steps button > span:nth-child(2) { font-size: 18px; }
.molecular-site .resource-controls > .resource-filters { grid-template-columns: 1fr; gap: 16px; }
.molecular-site .resource-search { flex-basis: auto; width: 100%; }
.molecular-site :is(.resource-list, #resource-list, .project-links, #project-links) { grid-template-columns: 1fr; gap: 23px; }
.molecular-site :is(.resource-item, .resource-card) { padding: 27px 25px; background: linear-gradient(145deg, rgba(26, 33, 62, .63), rgba(10, 20, 36, .58)); }
.molecular-site :is(.resource-description, .resource-use, .update-card p, .project-card p) { color: #c0cee1; font-size: 18px; }
.molecular-site .update-card { grid-template-columns: 1fr; gap: 10px; }
.molecular-site .update-date { grid-row: auto; }
.molecular-site :is(.update-card h3, .update-card p, .update-link) { grid-column: 1; }
.molecular-site .training-board { padding: 25px; background: linear-gradient(145deg, rgba(19, 31, 56, .8), rgba(8, 19, 35, .84)); }
.molecular-site .training-controls { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px 11px; }
.molecular-site .training-controls > button { grid-column: span 3; }
.molecular-site .control-field { grid-column: span 2; }
.molecular-site .training-pipeline { grid-template-columns: 1fr; gap: 15px; }
.molecular-site .tensor-title { min-height: 0; font-size: 16px; }
.molecular-site .tensor-title small { display: inline-block; margin: 0 0 0 9px; }
.molecular-site .pixel-canvas { width: 136px; height: 136px; }
.molecular-site .feature-maps { width: 230px; max-width: 100%; }
.molecular-site .pipeline-arrow { justify-self: center; transform: rotate(90deg); margin-block: 7px; }
.molecular-site .prediction-bars { max-width: 420px; }
.molecular-site .prediction-row { font-size: 16px; }
.molecular-site .training-bottom { grid-template-columns: 1fr; gap: 23px; }
.molecular-site #loss-chart { height: 200px; }
.molecular-site .training-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.molecular-site .contact-title { font-size: 43px; }
.molecular-site .contact-actions { flex-direction: row; flex-wrap: wrap; }
.molecular-site .contact-actions .button { min-width: 0; }

@media (max-width: 1280px) {
  .molecular-site .nav-links { display: none; }
  .molecular-site .header-actions { margin-left: auto; }
  .molecular-site .menu-toggle { display: inline-flex; }
  .molecular-site .hero-copy { padding-inline: 24px; }
  .molecular-site main > .section.shell { padding-inline: 24px; }
  .molecular-site .hero-title { font-size: clamp(45px, 4.7vw, 61px); }
  .molecular-site .molecular-directory { padding-inline: 24px; }
  .molecular-site .protein-zone-meta { left: 17%; right: 20px; }
  .molecular-site #protein-zone-title { font-size: 27px; }
  .molecular-site #protein-zone-description { font-size: 16px; }
  .molecular-site .protein-controls { left: 17%; }
  .molecular-site .protein-controls button { padding-inline: 12px; }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .molecular-site .timeline-item > button { grid-template-columns: 1fr; gap: 9px; }
  .molecular-site .timeline-summary { margin-left: 0; }
  .molecular-site :is(.case-list, .capability-grid, .viewpoint-grid, .stage-tools) { grid-template-columns: 1fr; }
  .molecular-site .journey-photo { grid-template-columns: 140px minmax(0, 1fr); gap: 18px; }
  .molecular-site .section-title { font-size: 36px; }
  .molecular-site .viewpoint-statement { font-size: 30px; }
  .molecular-site .protein-controls { bottom: 117px; }
  .molecular-site .protein-controls button { font-size: 16px; }
  .molecular-site .protein-legend { bottom: 223px; }
  .molecular-site #protein-status { bottom: 263px; }
}
@media (min-width: 801px) and (max-height: 700px) {
  .molecular-site .protein-zone-meta { top: 20px; }
  .molecular-site #protein-zone-description { display: none; }
  .molecular-site .protein-legend { display: none; }
  .molecular-site #protein-status { bottom: 176px; }
}

/* A compact molecular window remains useful while reading on a phone. */
@media (max-width: 800px) {
  body.molecular-site {
    --molecular-header: 76px;
    --molecular-gutter: 20px;
    --molecular-reading: calc(100% - var(--molecular-gutter) * 2);
    font-size: 17px;
  }
  .molecular-site #molecular-world {
    position: sticky;
    top: var(--molecular-header);
    left: auto;
    right: auto;
    bottom: auto;
    width: 100%;
    height: var(--molecular-scene-height);
    z-index: 30;
    border-bottom: 1px solid rgba(179, 165, 237, .24);
    box-shadow: 0 9px 30px rgba(3, 7, 17, .22);
  }
  .molecular-site #molecular-world::after { background: linear-gradient(0deg, rgba(7, 11, 24, .96), transparent 42%, transparent 77%, rgba(7, 11, 24, .42)); }
  .molecular-site .protein-zone-meta { top: 11px; left: 20px; right: 20px; max-width: none; }
  .molecular-site .protein-eyebrow { display: none; }
  .molecular-site #protein-zone-title { margin: 0; font-size: 19px; line-height: 1.5; }
  .molecular-site #protein-zone-description { display: none; }
  .molecular-site .protein-legend { display: none; }
  .molecular-site .protein-controls { left: 20px; right: 20px; bottom: 10px; gap: 8px; flex-wrap: nowrap; }
  .molecular-site .protein-controls button { min-height: 44px; padding: 8px 12px; font-size: 16px; line-height: 1.5; }
  .molecular-site #protein-overview { display: none; }
  .molecular-site #protein-collapse { display: inline-flex; align-items: center; justify-content: center; }
  .molecular-site #protein-status { left: auto; right: 20px; bottom: 58px; max-width: min(53%, calc(100% - 170px)); font-size: 14px; line-height: 1.5; text-align: right; }
  .molecular-site #protein-source { left: 20px; right: auto; bottom: 58px; font-size: 14px; }
  .molecular-site #protein-source > span { display: none; }
  .molecular-site .protein-hotspot { min-height: 44px; max-width: 44%; padding: 7px 11px; font-size: 16px; gap: 7px; }
  .molecular-site .protein-hotspot::before { width: 5px; height: 5px; flex-basis: 5px; }
  .molecular-site .hero.shell { grid-template-columns: 1fr; min-height: 0; padding-block: 20px 33px; }
  .molecular-site .hero-copy { max-width: 680px; padding: 20px 24px 24px; background: transparent; }
  .molecular-site .hero-title { font-size: clamp(40px, 7.4vw, 56px); margin-top: 20px; }
  .molecular-site .hero-lead { font-size: 18px; margin-top: 23px; }
  .molecular-site #hero-scene-anchor { display: none; }
  .molecular-site .hero-meta { font-size: 14px; }
  .molecular-site main > .section.shell { padding: 48px 24px 56px; scroll-margin-top: calc(var(--molecular-header) + var(--molecular-scene-height) + 20px); background: rgba(7, 11, 24, .95); }
  .molecular-site .section-title { font-size: 34px; }
  .molecular-site .section-head { margin-bottom: 29px; }
  .molecular-site .chapter-number { top: 34px; font-size: 78px; }
  .molecular-site .molecular-directory { padding: 16px 24px 20px; }
  .molecular-site .molecular-directory > div { gap: 4px 16px; }
  .molecular-site .molecular-directory button { grid-template-columns: 22px minmax(0, 1fr); column-gap: 7px; font-size: 16px; }
  .molecular-site .directory-count { font-size: 14px; }
  .molecular-site .timeline-item > button { grid-template-columns: 1fr; gap: 9px; }
  .molecular-site .timeline-summary { margin-left: 0; font-size: 17px; }
  .molecular-site .timeline-org { font-size: 21px; }
  .molecular-site .journey-photo { grid-template-columns: 160px minmax(0, 1fr); gap: 21px; }
  .molecular-site .research-gallery img { height: 330px; }
  .molecular-site .viewpoint-statement { font-size: 29px; }
  .molecular-site .viewpoint-item p, .molecular-site .capability-description { font-size: 17px; }
  .molecular-site :is(.case-summary, .case-role, .publication-summary, .publication-detail, .resource-description, .resource-use, .update-card p, .project-card p) { font-size: 17px; }
  .molecular-site .publication-title { font-size: 25px; }
  .molecular-site .case-title { font-size: 29px; }
  .molecular-site .case-visual { min-height: 205px; }
  .molecular-site .recognition-item p { font-size: 17px; }
  .molecular-site .contact-title { font-size: 38px; }
  .molecular-site .site-footer.shell { padding-inline: 24px; }
  .molecular-site main > .cv-view.shell { padding: 30px 24px; scroll-margin-top: calc(var(--molecular-header) + var(--molecular-scene-height) + 20px); }
  .molecular-site.scene-collapsed { --molecular-scene-height: 104px; }
  .molecular-site.scene-collapsed #protein-canvas,
  .molecular-site.scene-collapsed #protein-fallback,
  .molecular-site.scene-collapsed #protein-hotspots,
  .molecular-site.scene-collapsed #protein-status,
  .molecular-site.scene-collapsed #protein-source { visibility: hidden; pointer-events: none; }
  .molecular-site.scene-collapsed .protein-zone-meta { top: 10px; }
  .molecular-site.scene-collapsed #protein-zone-title { font-size: 17px; }
  .molecular-site.scene-collapsed .protein-controls { bottom: 9px; }
}
@media (max-width: 480px) {
  body.molecular-site { --molecular-gutter: 14px; }
  .molecular-site .header-inner { gap: 8px; }
  .molecular-site .hero-copy { padding: 15px 10px 22px; }
  .molecular-site .hero-title { font-size: clamp(37px, 10vw, 45px); }
  .molecular-site .hero-actions { align-items: stretch; }
  .molecular-site .hero-actions .button { padding-inline: 15px; }
  .molecular-site main > .section.shell { padding: 44px 10px 51px; }
  .molecular-site .section-title { font-size: 32px; }
  .molecular-site .section-kicker { flex-wrap: wrap; }
  .molecular-site .section-kicker::after { display: none; }
  .molecular-site .molecular-directory { padding: 14px 10px 20px; }
  .molecular-site .molecular-directory > div { column-gap: 13px; }
  .molecular-site .directory-number { font-size: 14px; }
  .molecular-site .protein-zone-meta { left: 14px; right: 14px; }
  .molecular-site #protein-zone-title { font-size: 18px; }
  .molecular-site .protein-controls { left: 14px; right: 14px; }
  .molecular-site #protein-source { left: 14px; }
  .molecular-site #protein-status { right: 14px; }
  .molecular-site .journey-photo { grid-template-columns: 125px minmax(0, 1fr); gap: 17px; }
  .molecular-site .timeline-org { font-size: 20px; }
  .molecular-site .research-gallery img { height: 310px; }
  .molecular-site :is(.viewpoint-grid, .capability-grid, .case-list, .stage-tools) { grid-template-columns: 1fr; }
  .molecular-site .viewpoint-statement { font-size: 28px; }
  .molecular-site .fusion-statement { font-size: 28px; }
  .molecular-site .case-title { font-size: 28px; }
  .molecular-site .case-tab { padding-block: 17px; }
  .molecular-site .case-diagram { padding: 14px; }
  .molecular-site .diagram-step-labels { grid-template-columns: 1fr; gap: 4px; text-align: left; }
  .molecular-site .publication-title { font-size: 24px; }
  .molecular-site :is(.resource-item, .resource-card) { padding: 22px 18px; }
  .molecular-site .training-board { padding: 18px; }
  .molecular-site .training-status { flex-wrap: wrap; }
  .molecular-site .control-field { grid-column: span 3; }
  .molecular-site .control-field:last-child { grid-column: span 6; }
  .molecular-site .workflow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .molecular-site .workflow-actions { width: 100%; }
  .molecular-site .workflow-actions select, .molecular-site .workflow-actions .button { width: 100%; }
  .molecular-site .contact-actions { flex-direction: column; align-items: flex-start; }
  .molecular-site .site-footer.shell { padding-inline: 10px; }
  .molecular-site main > .cv-view.shell { padding: 28px 18px; }
}
@media (max-width: 360px) {
  .molecular-site .header-inner { gap: 6px; }
  .molecular-site .header-actions { gap: 6px; }
  .molecular-site .brand { font-size: 15px; gap: 7px; }
  .molecular-site .brand small { font-size: 14px; letter-spacing: 0; }
  .molecular-site .lang-toggle, .molecular-site .menu-toggle { padding-inline: 8px; font-size: 16px; }
  .molecular-site .hero-title { font-size: 36px; }
  .molecular-site .section-title { font-size: 30px; }
  .molecular-site .molecular-directory > div { grid-template-columns: 1fr; gap: 1px; }
  .molecular-site .molecular-directory button { grid-template-columns: 25px minmax(0, 1fr); min-height: 48px; }
  .molecular-site .directory-count { grid-column: 2; }
  .molecular-site .journey-photo { grid-template-columns: 1fr; }
  .molecular-site .journey-photo img { max-height: 260px; width: auto; max-width: 190px; }
  .molecular-site .training-board { padding: 15px; }
  .molecular-site .training-controls { gap: 12px 8px; }
  .molecular-site .training-controls .button { padding-inline: 8px; }
  .molecular-site .training-metrics { grid-template-columns: 1fr; }
  .molecular-site .tensor-title small { display: block; margin: 4px 0 0; }
  .molecular-site .protein-controls button { padding-inline: 10px; }
  .molecular-site .contact-title { font-size: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .molecular-site #molecular-world *, .molecular-site #molecular-world *::before { animation: none !important; transition: none !important; }
}
@media print {
  body.molecular-site { background: #fff; color: #142730; font-size: 10.5pt; overflow: visible; }
  .molecular-site #molecular-world, .molecular-site .molecular-directory { display: none !important; }
  .molecular-site main { pointer-events: auto; }
  .molecular-site main > .cv-view.shell { width: auto; max-width: none; margin: 0; padding: 0; background: #fff; }
  .molecular-site .cv-view .section-head { margin-bottom: 14px; }
  .molecular-site .cv-view .section-title { font-size: 24pt; }
  .molecular-site .cv-columns { display: block; margin-top: 25px; }
  .molecular-site .cv-section { break-inside: auto; }
  .molecular-site .cv-entry { break-inside: avoid; }
}
