:root {
  --bg: #050505;
  --panel: #090909;
  --text: #f1f1ed;
  --muted: rgba(241,241,237,.56);
  --line: rgba(241,241,237,.21);
  --line-strong: rgba(241,241,237,.39);
  --red: #d51f2a;
  --landing-ink: #061d34;
  --pad: clamp(18px,3vw,48px);
  --header-h: 94px;
  --fade: 520ms;
}
* { box-sizing: border-box; }
html, body { margin: 0; width: 100%; min-height: 100%; background: var(--bg); color: var(--text); }
html { -webkit-text-size-adjust: 100%; }
body {
  overflow: hidden;
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  letter-spacing: .065em;
}
button { font: inherit; color: inherit; }
button:focus-visible { outline: 1px solid currentColor; outline-offset: 5px; }
.noscript { position: fixed; inset: 0; z-index: 999; display: grid; place-items: center; padding: 30px; background: var(--bg); }

.site-header {
  position: fixed;
  z-index: 30;
  inset: 0 0 auto;
  height: var(--header-h);
  padding: 22px var(--pad) 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  color: var(--text);
  transition: opacity 300ms ease, color var(--fade) ease;
}
.site-header.is-dimmed { opacity: .34; }
.institution, .nav-link, .action-link, .landing-enter {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.institution { display: flex; align-items: center; gap: 14px; text-align: left; }
.seal { width: 44px; height: 44px; object-fit: contain; }
.institution-copy { display: flex; flex-direction: column; gap: 5px; }
.institution-copy strong { font-size: 11px; font-weight: 500; letter-spacing: .21em; }
.institution-copy small { font-size: 6px; letter-spacing: .24em; color: var(--muted); }

.header-right { display: flex; align-items: flex-start; gap: 30px; }
.system-register {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 20px;
  padding-top: 8px;
  color: var(--muted);
  font-size: 6px;
  letter-spacing: .17em;
  pointer-events: none;
}
.system-register span { padding: 0; border: 0; }
.nav-link {
  margin-top: 4px;
  min-height: 24px;
  padding: 4px 0 6px;
  border-bottom: 1px solid transparent;
  font-size: 7px;
  letter-spacing: .18em;
}
.nav-link:hover, .nav-link:focus-visible { border-bottom-color: currentColor; }

.screen {
  position: fixed;
  inset: 0;
  padding: calc(var(--header-h) + 8px) var(--pad) var(--pad);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--fade) ease, visibility 0s linear var(--fade);
}
.screen.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity var(--fade) ease, visibility 0s;
}
.terminal-panel { width: 100%; height: 100%; border: 1px solid var(--line); background: var(--panel); overflow: hidden; }

/* Landing */
.landing-screen { padding: 0; background: #fff; color: var(--landing-ink); }
body:has(.landing-screen.is-active) .site-header { color: var(--landing-ink); }
body:has(.landing-screen.is-active) .seal { filter: brightness(0) saturate(100%) invert(10%) sepia(21%) saturate(1712%) hue-rotate(167deg) brightness(90%); }
body:has(.landing-screen.is-active) .institution-copy small,
body:has(.landing-screen.is-active) .system-register { color: rgba(6,29,52,.56); }
.landing-portal { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; text-align: center; }
.landing-vessel { position: relative; width: clamp(340px,48vw,760px); aspect-ratio: 16/9; overflow: hidden; background: #f4f4f1; }
.landing-vessel iframe { width: 100%; height: 100%; border: 0; display: block; }
.landing-eyebrow, .landing-subtitle { margin: 0; font-size: 7px; letter-spacing: .22em; }
.landing-eyebrow { margin-top: 30px; }
.landing-portal h1 { margin: 12px 0; font-size: clamp(17px,1.8vw,25px); font-weight: 400; letter-spacing: .31em; }
.landing-enter { margin-top: 42px; padding-bottom: 9px; display: inline-flex; gap: 20px; align-items: center; color: var(--landing-ink); border-bottom: 1px solid rgba(6,29,52,.35); font-size: 8px; letter-spacing: .18em; }
.landing-enter:disabled { opacity: .3; cursor: wait; }

/* Archive */
.archive-panel { display: grid; grid-template-columns: 230px minmax(0,1fr); }
.status-rail { padding: 26px 20px; border-right: 1px solid var(--line); overflow-y: auto; }
.status-module { margin: 0 0 17px; padding: 0 0 17px; border-bottom: 1px solid var(--line); }
.module-label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 6px; letter-spacing: .21em; }
.status-module strong { display: block; font-size: 9px; font-weight: 400; line-height: 1.55; letter-spacing: .12em; }
.status-module small { display: block; margin-top: 4px; color: var(--muted); font-size: 6px; letter-spacing: .15em; }
.transmitting { display: flex; align-items: center; gap: 9px; color: var(--red); font-size: 8px; }
.signal-light { width: 7px; height: 7px; border-radius: 50%; background: var(--red); animation: blink 1.5s steps(1,end) infinite; }
@keyframes blink { 0%,58% { opacity: 1; } 59%,100% { opacity: .18; } }

.participant-map { width: 100%; aspect-ratio: 2/1; border: 1px solid var(--line); background: var(--bg); overflow: hidden; }
.participant-map img { width: 100%; height: 100%; display: block; object-fit: contain; }
.participant-map-meta { display: grid; gap: 4px; margin-top: 9px; }
.participant-map-meta span { color: var(--muted); font-size: 6px; letter-spacing: .18em; }
.participant-map-meta strong { font-size: 8px; }
.participant-map-meta small { margin-top: 0; }

.archive-main { min-width: 0; display: grid; grid-template-rows: minmax(0,1fr) 68px; }
.video-stage { min-width: 0; min-height: 0; display: grid; place-items: center; padding: 26px clamp(22px,5vw,78px); }
.video-frame { position: relative; width: min(100%,1080px); aspect-ratio: 16/9; overflow: hidden; background: #000; border: 1px solid rgba(255,255,255,.14); border-radius: clamp(18px,2.5vw,38px); }
.video-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.loading-surface::after { content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; border: 1px solid rgba(255,255,255,.25); border-top-color: #fff; border-radius: 50%; transform: translate(-50%,-50%); animation: spin 1s linear infinite; }
.loading-surface.is-ready::after { display: none; }
@keyframes spin { to { transform: translate(-50%,-50%) rotate(360deg); } }

.archive-footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; padding: 0 22px; border-top: 1px solid var(--line); }
.action-link { display: inline-flex; align-items: center; gap: 10px; font-size: 7px; letter-spacing: .16em; }
.archive-footer .action-link:last-child { justify-self: end; }
.record-indicator { display: flex; flex-direction: column; align-items: center; gap: 5px; font-size: 7px; }
.record-indicator small { color: var(--muted); font-size: 5px; letter-spacing: .17em; }

/* Project */
.project-panel { display: grid; grid-template-columns: minmax(220px,25%) 1fr; }
.project-index { padding: 28px 24px; border-right: 1px solid var(--line); overflow-y: auto; }
.project-copy { padding: 38px clamp(28px,5vw,78px) 100px; overflow-y: auto; scroll-behavior: smooth; }
.project-module { max-width: 1050px; margin-bottom: 58px; padding-bottom: 58px; border-bottom: 1px solid var(--line); }
.project-kicker { margin-bottom: 18px; color: var(--muted); font-size: 7px; letter-spacing: .2em; }
.project-copy h1, .project-copy h2 { margin: 0 0 22px; font-weight: 400; letter-spacing: .16em; }
.project-copy h1 { font-size: clamp(24px,3vw,42px); }
.project-copy h2 { font-size: clamp(17px,2vw,27px); }
.project-copy p { max-width: 830px; margin: 0 0 23px; font-family: "IBM Plex Sans","Helvetica Neue",Arial,sans-serif; font-size: clamp(15px,1.3vw,19px); line-height: 1.7; letter-spacing: .015em; }
.project-copy .lead { max-width: 900px; font-size: clamp(18px,1.75vw,25px); }
.record-subtitle { margin-top: -12px !important; color: var(--muted); font-family: inherit !important; font-size: 8px !important; letter-spacing: .18em !important; }

.program-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; margin-top: 32px; background: var(--line); border: 1px solid var(--line); }
.program-grid > div { min-height: 210px; padding: 22px; background: var(--bg); }
.program-grid span, .lineage-list span { display: block; margin-bottom: 24px; color: var(--muted); font-size: 7px; }
.program-grid strong, .lineage-list strong { display: block; margin-bottom: 14px; font-size: 9px; font-weight: 400; letter-spacing: .15em; }
.program-grid p, .lineage-list p { margin: 0; font-size: 13px; line-height: 1.55; color: rgba(241,241,237,.72); }

.bentham-plate { margin: 30px 0 34px; padding: 26px 0; display: flex; flex-direction: column; align-items: center; gap: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bentham-plate img { width: min(100%,580px); max-height: 680px; object-fit: contain; }
.bentham-plate figcaption, .project-world-map figcaption, .project-isometric figcaption { color: var(--muted); font-size: 6px; letter-spacing: .18em; }
.reference-text { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.reference-text p { font-size: 15px; }

.lineage-list { border-top: 1px solid var(--line); }
.lineage-list > div { display: grid; grid-template-columns: 80px 240px 1fr; gap: 20px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--line); }
.lineage-list span, .lineage-list strong, .lineage-list p { margin: 0; }

.protocol-list { margin-top: 30px; border-top: 1px solid var(--line); }
.protocol-list > div { display: grid; grid-template-columns: 64px 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.protocol-list span { color: var(--muted); font-size: 7px; }
.protocol-list p { margin: 0; font-size: 15px; }

.project-world-map, .project-isometric { margin: 30px 0 0; padding: 24px 0; display: flex; flex-direction: column; align-items: center; gap: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.project-world-map img { width: min(100%,960px); height: auto; }
.project-isometric img { width: min(100%,380px); height: auto; }
.return-link { margin-top: 12px; }
.document-note { margin: 54px 0 0 !important; padding-top: 16px; border-top: 1px solid var(--line); text-align: right; color: var(--muted); font-family: inherit !important; font-size: 6px !important; letter-spacing: .2em !important; }

.transition-mask { position: fixed; z-index: 80; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; opacity: 0; visibility: hidden; pointer-events: none; background: var(--bg); transition: opacity 350ms ease, visibility 0s linear 350ms; }
.transition-mask.is-visible { opacity: 1; visibility: visible; transition: opacity 350ms ease, visibility 0s; }
.transition-mask img { width: 96px; filter: invert(1); opacity: .82; }
.transition-mask span { color: var(--muted); font-size: 7px; letter-spacing: .22em; }
.status { position: fixed; z-index: 100; left: 50%; bottom: 16px; transform: translateX(-50%); opacity: 0; color: var(--muted); font-size: 7px; transition: opacity 180ms ease; }
.status.is-visible { opacity: 1; }

@media (max-width: 880px) {
  :root { --header-h: 78px; --pad: 14px; }
  .site-header { padding-top: 14px; }
  .seal { width: 36px; height: 36px; }
  .institution-copy strong { font-size: 8px; }
  .institution-copy small { font-size: 5px; }
  .system-register { display: none; }
  .screen { padding-top: calc(var(--header-h) + 4px); }
  .landing-screen { padding: 0; }
  .landing-vessel { width: min(90vw,620px); }

  .archive-panel { grid-template-columns: 1fr; grid-template-rows: auto minmax(0,1fr); }
  .status-rail { padding: 12px 14px; display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; border-right: 0; border-bottom: 1px solid var(--line); overflow: visible; }
  .status-module { margin: 0; padding: 0; border: 0; }
  .participant-map-module { grid-column: 1 / -1; display: grid; grid-template-columns: 190px 1fr; align-items: center; gap: 14px; padding-top: 10px; border-top: 1px solid var(--line); }
  .participant-map-module .module-label { grid-column: 1 / -1; margin: 0; }
  .participant-map { width: 190px; }
  .archive-main { grid-template-rows: minmax(0,1fr) 56px; }
  .video-stage { padding: 12px 14px; }
  .archive-footer { padding: 0 14px; }

  .project-panel { grid-template-columns: 1fr; overflow: auto; }
  .project-index { border-right: 0; border-bottom: 1px solid var(--line); }
  .project-copy { padding: 28px 18px 75px; overflow: visible; }
}
@media (max-width: 620px) {
  .header-right { gap: 12px; }
  .landing-vessel { width: 94vw; }
  .status-rail { grid-template-columns: repeat(3,1fr); }
  .status-module:nth-child(4), .status-module:nth-child(5) { display: none; }
  .participant-map-module { display: grid !important; grid-template-columns: 135px 1fr; }
  .participant-map { width: 135px; }
  .record-indicator small { display: none; }
  .program-grid { grid-template-columns: 1fr; }
  .program-grid > div { min-height: 0; }
  .reference-text { grid-template-columns: 1fr; gap: 0; }
  .lineage-list > div { grid-template-columns: 62px 1fr; }
  .lineage-list p { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; }
}


/* V30 — world line-map technical plate */
.participant-map {
  border: 0;
  background: #000;
}
.participant-map img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none;
}
.project-world-map {
  background: #000;
  border: 1px solid var(--line);
  padding: clamp(14px,2vw,28px);
}
.project-world-map img {
  width: 100%;
  max-width: 1120px;
  display: block;
  background: #000;
}
.project-world-map figcaption {
  width: 100%;
  max-width: 1120px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
@media (max-width: 620px) {
  .participant-map {
    min-height: 90px;
  }
  .project-world-map {
    padding: 10px;
  }
}


/* V31 — field manual, navigation, credits, and preservation system */
.header-right{display:flex;align-items:center;gap:clamp(16px,2vw,30px)}
.nav-link.is-current{color:var(--text);border-bottom-color:currentColor}
.landing-portal{gap:clamp(18px,3vh,34px)}
.landing-eyebrow{order:0;margin:0;font-size:clamp(10px,1vw,14px);letter-spacing:.28em}
.landing-vessel{order:1}
.landing-enter{order:2}
.landing-portal h1,.landing-subtitle{display:none}
.project-screen .project-panel{margin-bottom:0}
.manual-intro{padding-top:10px}
.cross-section-plate{margin:30px 0 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cross-section-plate img{display:block;width:100%;height:auto}
.cross-section-plate figcaption{padding-top:13px;color:var(--muted);font-size:6px;letter-spacing:.18em}
.preservation-sequence{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:30px;padding:24px;border:1px solid var(--line);font-size:8px;letter-spacing:.17em}
.preservation-sequence b{font-weight:400;color:var(--muted);padding-left:22px}
.creator-record{max-width:1050px;margin:12px 0 30px;padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.creator-record h2{margin:8px 0 20px;font-size:clamp(18px,2vw,28px)}
.creator-record p{margin:0 0 15px!important;font-family:inherit!important;font-size:8px!important;line-height:1.8!important;letter-spacing:.16em!important;color:var(--muted)}
.creator-record a{color:var(--text);text-decoration:none;border-bottom:1px solid var(--line)}
.creator-record a:hover{border-bottom-color:var(--text)}
.inquiry-note{margin-top:24px!important;max-width:440px!important}
.bentham-plate img{filter:none;max-width:760px}
@media(max-width:620px){
  .institution-copy small{display:none}
  .header-right{gap:12px}
  .nav-link{font-size:6px}
  .landing-eyebrow{font-size:9px}
  .cross-section-plate{margin-top:20px}
  .preservation-sequence{padding:18px}
}


/* V32 — archive metadata revision and landing-video edge correction */
.landing-vessel{
  border:0!important;
  box-shadow:none!important;
  background:#fff!important;
  isolation:isolate;
}
.landing-vessel iframe{
  position:absolute;
  inset:-2px 0 -5px 0;
  width:100%;
  height:calc(100% + 7px);
  border:0!important;
  background:#fff;
}
.landing-vessel.is-ready::before{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  bottom:0;
  height:5px;
  background:#fff;
  pointer-events:none;
}
.status-module strong{line-height:1.45}
#recordingProgramLabel{max-width:190px;line-height:1.5}
#subjectLabel{max-width:190px}


/* V33 — Vimeo-title metadata binding and definitive landing-edge crop */
.landing-vessel {
  overflow: hidden !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: #fff !important;
}
.landing-vessel iframe {
  position: absolute !important;
  top: -10px !important;
  right: -10px !important;
  bottom: -14px !important;
  left: -10px !important;
  width: calc(100% + 20px) !important;
  height: calc(100% + 24px) !important;
  border: 0 !important;
  outline: 0 !important;
  display: block !important;
  background: #fff !important;
}
.landing-vessel::after {
  content: "";
  position: absolute;
  z-index: 4;
  left: 0;
  right: 0;
  bottom: 0;
  height: 10px;
  background: #fff;
  pointer-events: none;
}
#repositoryCoordinatesLabel { white-space: nowrap; }


/* V34 — reliable entrance reload and full Vimeo edge masking */
.landing-vessel {
  clip-path: inset(1px 1px 12px 1px);
}
.landing-vessel iframe {
  top: -14px !important;
  right: -14px !important;
  bottom: -22px !important;
  left: -14px !important;
  width: calc(100% + 28px) !important;
  height: calc(100% + 36px) !important;
}
.landing-vessel::before,
.landing-vessel::after {
  content: "";
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  background: #fff;
  pointer-events: none;
}
.landing-vessel::before { top: 0; height: 3px; }
.landing-vessel::after { bottom: 0; height: 14px; }


/* V35 — corrected Bentham line plate and field-locator spacing */
.bentham-plate img{
  width:min(100%,680px);
  max-height:720px;
  object-fit:contain;
  filter:none!important;
  background:transparent;
}
.field-locator-layout{
  width:100%;
  max-width:1060px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 210px;
  align-items:center;
  gap:clamp(24px,4vw,58px);
}
.field-locator-layout img{
  width:100%!important;
  max-width:780px!important;
  justify-self:center;
}
.field-locator-data{
  align-self:center;
  padding-left:22px;
  border-left:1px solid var(--line);
  display:flex;
  flex-direction:column;
  gap:8px;
  text-align:left;
}
.field-locator-data span,
.field-locator-data small{
  color:var(--muted);
  font-size:7px;
  letter-spacing:.17em;
  line-height:1.55;
}
.field-locator-data strong{
  font-size:15px;
  font-weight:400;
  letter-spacing:.18em;
}
.project-world-map figcaption{max-width:1060px}
@media(max-width:760px){
  .field-locator-layout{grid-template-columns:1fr;gap:18px}
  .field-locator-layout img{max-width:620px!important}
  .field-locator-data{width:100%;padding:16px 0 0;border-left:0;border-top:1px solid var(--line)}
}

/* V36 — white Bentham archival plate and revised field locator */
.bentham-plate{
  padding:26px 0 24px;
}
.bentham-plate img{
  width:min(100%,560px);
  max-height:760px;
  object-fit:contain;
  object-position:center;
  display:block;
  background:#fff;
  border:1px solid rgba(241,241,237,.28);
  filter:none!important;
}
.field-locator-layout{
  grid-template-columns:minmax(0,0.84fr) 240px;
  gap:clamp(34px,5vw,72px);
}
.field-locator-layout img{
  width:88%!important;
  max-width:680px!important;
}
.field-locator-data{
  padding-left:28px;
  min-width:0;
}
@media(max-width:760px){
  .bentham-plate img{width:min(100%,500px)}
  .field-locator-layout{grid-template-columns:1fr;gap:22px}
  .field-locator-layout img{width:92%!important;max-width:560px!important}
  .field-locator-data{padding:18px 0 0}
}

/* V37 — institutional entrance, Archive Information, and chromeless archive controls */
body:has(.project-screen.is-active) .site-header{color:#071d34}
body:has(.project-screen.is-active) .seal{filter:brightness(0) saturate(100%) invert(10%) sepia(21%) saturate(1712%) hue-rotate(167deg) brightness(90%)}
body:has(.project-screen.is-active) .institution-copy small{color:rgba(7,29,52,.56)}
body:has(.project-screen.is-active) .nav-link.is-current{color:#071d34}

.landing-interface{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:minmax(320px,.72fr) minmax(460px,1.28fr);
  align-items:stretch;
  padding:calc(var(--header-h) + 34px) var(--pad) 42px;
}
.landing-register{
  min-width:0;
  padding:clamp(38px,6vw,92px) clamp(28px,5vw,74px) 30px 0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  border-right:1px solid rgba(6,29,52,.18);
  text-align:left;
}
.landing-identity{width:100%;padding-bottom:30px;border-bottom:1px solid rgba(6,29,52,.18)}
.landing-eyebrow{margin:0;font-size:clamp(15px,1.55vw,23px);font-weight:500;letter-spacing:.2em;line-height:1.35}
.landing-division{margin:9px 0 0;color:rgba(6,29,52,.58);font-size:7px;letter-spacing:.23em}
.landing-data{width:100%;margin-top:clamp(48px,8vh,88px);border-top:1px solid rgba(6,29,52,.18)}
.landing-data-row{display:grid;grid-template-columns:minmax(130px,42%) 1fr;gap:20px;padding:17px 0;border-bottom:1px solid rgba(6,29,52,.18)}
.landing-data-row span{color:rgba(6,29,52,.55);font-size:6px;letter-spacing:.2em}
.landing-data-row strong{font-size:9px;font-weight:400;letter-spacing:.18em}
.landing-status{display:flex;align-items:center;gap:9px}
.landing-status i{width:7px;height:7px;border-radius:50%;background:var(--red);animation:blink 1.5s steps(1,end) infinite}
.landing-enter{margin-top:auto;padding-top:42px;padding-bottom:10px;align-self:flex-start;font-size:9px}
.landing-visual{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:clamp(28px,5vw,78px)}
.landing-visual p{width:min(100%,760px);margin:15px 0 0;color:rgba(6,29,52,.48);font-size:6px;letter-spacing:.18em;text-align:right}
.landing-vessel{width:min(100%,760px)}

.archive-footer-left{display:flex;align-items:center;gap:22px}
.audio-control{color:var(--muted)}
.audio-control[aria-pressed="true"]{color:var(--text)}

.project-screen{background:#fff;color:#071d34}
.project-screen .terminal-panel{background:#fff;border-color:rgba(7,29,52,.2)}
.project-screen .project-index{border-color:rgba(7,29,52,.2)}
.project-screen .status-module,.project-screen .project-module,.project-screen .creator-record,.project-screen .protocol-list,.project-screen .protocol-list>div,.project-screen .lineage-list,.project-screen .lineage-list>div,.project-screen .cross-section-plate,.project-screen .bentham-plate,.project-screen .project-world-map{border-color:rgba(7,29,52,.2)}
.project-screen .module-label,.project-screen .project-kicker,.project-screen .record-subtitle,.project-screen .creator-record p,.project-screen .document-note,.project-screen figcaption,.project-screen .program-grid span,.project-screen .lineage-list span,.project-screen .protocol-list span,.project-screen .preservation-sequence b,.project-screen .field-locator-data span,.project-screen .field-locator-data small{color:rgba(7,29,52,.56)}
.project-screen .program-grid{background:rgba(7,29,52,.2);border-color:rgba(7,29,52,.2)}
.project-screen .program-grid>div{background:#fff}
.project-screen .program-grid p,.project-screen .lineage-list p{color:rgba(7,29,52,.74)}
.project-screen .preservation-sequence{border-color:rgba(7,29,52,.2)}
.project-screen .creator-record a{color:#071d34;border-color:rgba(7,29,52,.25)}
.project-screen .project-world-map{background:#fff}
.project-screen .project-world-map img,.project-screen .cross-section-plate img,.project-screen .project-isometric img{filter:invert(1)}
.project-screen .bentham-plate img{filter:none!important;border-color:rgba(7,29,52,.2)}
.project-screen .field-locator-data{border-color:rgba(7,29,52,.2)}
.project-screen .return-link{color:#071d34}

@media(max-width:900px){
  .landing-interface{grid-template-columns:1fr;padding-top:calc(var(--header-h) + 16px);overflow:auto}
  .landing-register{border-right:0;border-bottom:1px solid rgba(6,29,52,.18);padding:32px 0 34px}
  .landing-data{margin-top:34px}
  .landing-enter{margin-top:42px;padding-top:0}
  .landing-visual{padding:36px 0 54px}
}
@media(max-width:620px){
  .landing-interface{padding-left:18px;padding-right:18px}
  .landing-data-row{grid-template-columns:1fr;gap:8px}
  .landing-visual p{text-align:left}
  .archive-footer-left{gap:12px}
  .audio-control{font-size:6px}
}


/* V38 — randomized full-cycle archive and Public Archive document */
.archive-panel{grid-template-columns:clamp(250px,22vw,340px) minmax(0,1fr)}
.status-rail{padding:clamp(24px,3vw,40px) clamp(22px,2.4vw,34px)}
.status-module{margin-bottom:22px;padding-bottom:22px}
.module-label{font-size:8px;letter-spacing:.2em;margin-bottom:10px}
.status-module strong{font-size:clamp(12px,1.05vw,16px);line-height:1.55;letter-spacing:.11em}
.status-module small{font-size:9px;line-height:1.6;letter-spacing:.13em}
.status-primary strong{font-size:clamp(20px,2vw,30px);letter-spacing:.15em}
.status-live{margin-top:auto}
.transmitting{font-size:9px;letter-spacing:.14em}
.record-indicator span{font-size:10px;letter-spacing:.18em}
.record-indicator small{font-size:6px}
.project-copy{padding-top:54px}
.project-module{margin-bottom:76px;padding-bottom:76px}
.project-kicker{font-size:8px;letter-spacing:.22em;margin-bottom:22px}
.project-copy h1{font-size:clamp(30px,4vw,58px);letter-spacing:.2em}
.project-copy h2{font-size:clamp(19px,2.25vw,32px);letter-spacing:.19em}
.project-copy p{font-size:clamp(16px,1.35vw,20px);line-height:1.78;max-width:850px}
.project-copy .lead{font-size:clamp(20px,1.9vw,28px);max-width:920px}
.technical-figure{margin:36px 0 0;padding:34px 0;display:flex;flex-direction:column;align-items:center;gap:18px;border-top:1px solid rgba(7,29,52,.2);border-bottom:1px solid rgba(7,29,52,.2)}
.technical-figure img{display:block;width:min(100%,660px);max-height:620px;object-fit:contain;filter:invert(1)}
.vessel-figure img{width:min(100%,390px)}
.isometric-figure img{width:min(100%,560px)}
.technical-figure figcaption{width:100%;color:rgba(7,29,52,.56);font-size:7px;letter-spacing:.19em}
.project-screen .cross-section-plate img{filter:none!important}
.project-screen .project-world-map img{filter:none!important}
.project-world-map{background:#fff!important}
.project-world-map img{background:#fff!important}
.bentham-plate img{width:min(100%,520px)}
.protocol-list>div{grid-template-columns:72px 1fr;padding:20px 0}
.protocol-list span{font-size:9px}
.protocol-list p{font-size:16px}
@media(max-width:880px){
  .archive-panel{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .status-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:16px;border-right:0;border-bottom:1px solid var(--line);overflow:auto}
  .status-module{margin:0;padding:0;border:0}
  .status-primary strong{font-size:16px}
  .status-live{margin-top:0}
}
@media(max-width:620px){
  .status-rail{grid-template-columns:repeat(2,1fr)}
  .status-module:nth-child(n){display:block}
  .module-label{font-size:6px}
  .status-module strong{font-size:10px}
  .status-module small{font-size:7px}
  .project-module{margin-bottom:52px;padding-bottom:52px}
}


/* V39 — Journey 1 technical plates and complete preservation-system sequence */
.photographic-plate img,
.project-screen .photographic-plate img{
  filter:none!important;
  background:#fff;
}
.closed-vessel-figure img{width:min(100%,720px);max-height:760px}
.components-figure img{width:min(100%,920px);max-height:680px}
.base-figure img{width:min(100%,820px);max-height:680px}
.internal-vessel-figure img{width:min(100%,820px);max-height:680px}
.technical-figure figcaption,
.cross-section-plate figcaption,
.bentham-plate figcaption,
.project-world-map figcaption{
  width:100%;
  display:grid;
  grid-template-columns:110px minmax(220px,1fr) minmax(220px,1fr);
  gap:20px;
  align-items:start;
  padding-top:14px;
  border-top:1px solid rgba(7,29,52,.18);
  color:rgba(7,29,52,.58);
  font-size:7px;
  line-height:1.55;
  letter-spacing:.18em;
  text-align:left;
}
.technical-figure figcaption span,
.cross-section-plate figcaption span,
.bentham-plate figcaption span,
.project-world-map figcaption span{white-space:nowrap}
.technical-figure figcaption strong,
.cross-section-plate figcaption strong,
.bentham-plate figcaption strong,
.project-world-map figcaption strong{
  color:#071d34;
  font-weight:400;
}
.technical-figure figcaption small,
.cross-section-plate figcaption small,
.bentham-plate figcaption small,
.project-world-map figcaption small{
  color:rgba(7,29,52,.54);
  font:inherit;
}
.cross-section-plate{padding:34px 0;display:flex;flex-direction:column;gap:18px}
.cross-section-plate img{width:100%;height:auto;display:block}
.bentham-plate{gap:18px}
.project-world-map{gap:18px}
@media(max-width:760px){
  .technical-figure figcaption,
  .cross-section-plate figcaption,
  .bentham-plate figcaption,
  .project-world-map figcaption{
    grid-template-columns:1fr;
    gap:7px;
  }
  .closed-vessel-figure img,
  .components-figure img,
  .base-figure img,
  .internal-vessel-figure img{width:100%;max-height:none}
}


/* V40 — AutoIcon Laboratories publication typography */
.project-screen .project-copy {
  --document-ink: #071d34;
  --document-muted: rgba(7,29,52,.54);
  --document-rule: rgba(7,29,52,.18);
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  text-align: left;
}
.project-screen .project-module {
  max-width: 1120px;
  margin-bottom: clamp(92px,12vh,150px);
  padding-bottom: clamp(92px,12vh,150px);
  border-bottom: 1px solid var(--document-rule);
}
.project-screen .project-kicker {
  margin-bottom: 24px;
  color: var(--document-muted);
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  font-size: clamp(8px,.72vw,10px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.project-screen .project-copy h1,
.project-screen .project-copy h2 {
  color: var(--document-ink);
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  font-weight: 300;
  text-align: left;
}
.project-screen .project-copy h1 {
  margin-bottom: 34px;
  font-size: clamp(34px,4.5vw,66px);
  line-height: 1.08;
  letter-spacing: .18em;
}
.project-screen .project-copy h2 {
  margin-bottom: 34px;
  font-size: clamp(22px,2.2vw,34px);
  line-height: 1.2;
  letter-spacing: .17em;
}
.project-screen .project-copy p,
.project-screen .project-copy .lead,
.project-screen .protocol-list p {
  max-width: 780px;
  color: var(--document-ink);
  font-family: "IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  font-size: clamp(18px,1.35vw,21px);
  font-weight: 300;
  line-height: 1.78;
  letter-spacing: .006em;
  text-align: left;
}
.project-screen .project-copy .lead {
  max-width: 850px;
  font-size: clamp(21px,1.8vw,28px);
  line-height: 1.62;
}
.archive-title-page {
  min-height: min(760px,calc(100vh - 190px));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding-top: clamp(50px,9vh,110px);
}
.archive-title-seal {
  width: 64px;
  height: 64px;
  margin: 0 0 52px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(10%) sepia(21%) saturate(1712%) hue-rotate(167deg) brightness(90%);
}
.archive-edition-data {
  width: min(100%,780px);
  margin: 8px 0 54px;
  border-top: 1px solid var(--document-rule);
}
.archive-edition-data span {
  display: grid;
  grid-template-columns: 1fr;
  padding: 13px 0;
  border-bottom: 1px solid var(--document-rule);
  color: var(--document-muted);
  font-size: 8px;
  line-height: 1.5;
  letter-spacing: .21em;
}
.project-screen .technical-figure,
.project-screen .cross-section-plate,
.project-screen .bentham-plate,
.project-screen .project-world-map {
  margin-top: clamp(48px,6vh,74px);
  padding-top: clamp(38px,5vh,60px);
  padding-bottom: clamp(38px,5vh,60px);
  align-items: center;
}
.project-screen .technical-figure figcaption,
.project-screen .cross-section-plate figcaption,
.project-screen .bentham-plate figcaption,
.project-screen .project-world-map figcaption {
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  font-size: 8px;
  line-height: 1.65;
  letter-spacing: .19em;
  text-align: left;
}
.project-screen .technical-figure figcaption strong,
.project-screen .cross-section-plate figcaption strong,
.project-screen .bentham-plate figcaption strong,
.project-screen .project-world-map figcaption strong {
  font-weight: 400;
}
.project-screen .bentham-plate img {
  width: min(68%,520px);
}
.project-screen .protocol-list {
  max-width: 850px;
  margin-top: 44px;
}
.project-screen .protocol-list > div {
  grid-template-columns: 76px minmax(0,1fr);
  gap: 28px;
  padding: 24px 0;
}
.project-screen .protocol-list span {
  padding-top: 8px;
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  font-size: 9px;
  letter-spacing: .2em;
}
.project-screen .creator-record {
  padding: 64px 0;
}
.project-screen .creator-record h2 {
  margin: 10px 0 26px;
}
.project-screen .creator-record p {
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  line-height: 1.8 !important;
  letter-spacing: .16em !important;
}
.project-screen .document-note {
  font-family: "IBM Plex Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace !important;
  font-size: 8px !important;
}
@media(max-width:760px){
  .archive-title-page { min-height: 620px; }
  .archive-title-seal { width: 52px; height: 52px; margin-bottom: 38px; }
  .project-screen .project-module { margin-bottom: 72px; padding-bottom: 72px; }
  .project-screen .project-copy p,
  .project-screen .protocol-list p { font-size: 17px; line-height: 1.72; }
  .project-screen .project-copy .lead { font-size: 20px; }
  .project-screen .bentham-plate img { width: min(82%,460px); }
}


/* V41 — distinct navigation, public archive directory, contribution page, title binding, landing loader cleanup */
.landing-vessel.loading-surface::after { display:none!important; }
.landing-vessel { background:#fff; }
.header-right { flex-wrap:wrap; justify-content:flex-end; }

.project-panel { grid-template-columns:minmax(245px,22%) 1fr; }
.project-index { position:sticky; top:0; height:100%; align-self:start; padding:30px 22px; }
.archive-directory-header { padding-bottom:22px; border-bottom:1px solid rgba(7,29,52,.2); }
.archive-directory-header strong { display:block; margin-top:9px; font-size:10px; font-weight:400; letter-spacing:.16em; }
.archive-directory { display:flex; flex-direction:column; margin-top:18px; }
.directory-link { display:grid; grid-template-columns:30px 1fr; gap:12px; width:100%; padding:14px 0; border:0; border-bottom:1px solid rgba(7,29,52,.16); background:transparent; color:#071d34; text-align:left; cursor:pointer; }
.directory-link span { color:rgba(7,29,52,.48); font-size:6px; letter-spacing:.17em; }
.directory-link strong { font-size:8px; font-weight:400; letter-spacing:.15em; line-height:1.5; }
.directory-link:hover strong,.directory-link.is-current strong { text-decoration:underline; text-underline-offset:5px; }
.project-module { scroll-margin-top:120px; }

.contribution-screen { background:#fff; color:#071d34; }
body:has(.contribution-screen.is-active) .site-header { color:#071d34; }
body:has(.contribution-screen.is-active) .seal { filter:brightness(0) saturate(100%) invert(10%) sepia(21%) saturate(1712%) hue-rotate(167deg) brightness(90%); }
body:has(.contribution-screen.is-active) .institution-copy small { color:rgba(7,29,52,.56); }
.contribution-panel { display:grid; grid-template-columns:minmax(245px,22%) 1fr; background:#fff; border-color:rgba(7,29,52,.2); }
.contribution-index { padding:30px 22px; border-right:1px solid rgba(7,29,52,.2); overflow-y:auto; }
.contribution-index .status-module { border-color:rgba(7,29,52,.2); }
.contribution-index .module-label { color:rgba(7,29,52,.56); }
.contribution-copy { padding:clamp(54px,7vw,110px) clamp(30px,7vw,110px) 100px; overflow-y:auto; }
.contribution-title,.contribution-module { max-width:950px; margin-bottom:80px; padding-bottom:70px; border-bottom:1px solid rgba(7,29,52,.2); }
.contribution-copy h1,.contribution-copy h2 { margin:0 0 24px; font-weight:400; letter-spacing:.15em; }
.contribution-copy h1 { font-size:clamp(30px,4vw,58px); }
.contribution-copy h2 { font-size:clamp(17px,2vw,27px); }
.contribution-copy p { max-width:780px; margin:0 0 23px; font-family:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif; font-size:clamp(18px,1.5vw,22px); line-height:1.72; letter-spacing:.01em; }
.contribution-copy .lead { font-size:clamp(21px,2vw,30px); line-height:1.55; }
.contribution-copy .project-kicker,.contribution-copy .document-note { color:rgba(7,29,52,.56); }
.contribution-contact { display:inline-flex; gap:18px; margin-top:14px; padding:13px 0; border-bottom:1px solid rgba(7,29,52,.32); color:#071d34; font-size:9px; letter-spacing:.18em; text-decoration:none; }
.contribution-contact:hover { border-bottom-color:#071d34; }

@media(max-width:900px){
  .project-panel,.contribution-panel { grid-template-columns:1fr; overflow:auto; }
  .project-index,.contribution-index { position:relative; height:auto; border-right:0; border-bottom:1px solid rgba(7,29,52,.2); }
  .archive-directory { display:grid; grid-template-columns:repeat(2,1fr); column-gap:22px; }
  .project-copy,.contribution-copy { overflow:visible; }
}
@media(max-width:620px){
  .header-right { gap:10px; }
  .nav-link { font-size:5.5px; }
  .archive-directory { grid-template-columns:1fr; }
  .contribution-copy { padding:36px 18px 75px; }
}

/* V42 — Journey 1 program-page naming */
.program-number {
  margin: 0 0 0.8rem;
  font-family: "IBM Plex Mono", monospace;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.58;
}

/* V43 — Field Manual naming, inverted deployment map, and contribution upload */
.project-screen .project-world-map {
  background: #071d34 !important;
  border-color: rgba(255,255,255,.22) !important;
  padding: clamp(28px,4vw,54px) !important;
}
.project-screen .project-world-map img {
  filter: invert(1) brightness(1.15) !important;
  background: transparent !important;
}
.project-screen .project-world-map figcaption,
.project-screen .project-world-map figcaption strong,
.project-screen .project-world-map figcaption small {
  color: #fff !important;
}
.standard-question {
  max-width: 780px;
  margin: 30px 0 44px;
  padding: 24px 28px;
  border-left: 1px solid #071d34;
  background: rgba(7,29,52,.035);
  font-family: "IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  font-size: clamp(19px,1.7vw,25px);
  font-weight: 300;
  line-height: 1.6;
}
.upload-form { max-width: 780px; display:grid; gap:24px; margin-top:34px; }
.upload-form label { display:grid; gap:9px; }
.upload-form label>span:first-child { font-family:"IBM Plex Mono",monospace; font-size:8px; letter-spacing:.16em; }
.upload-form input[type="text"],.upload-form input[type="email"] { width:100%; padding:14px 0; border:0; border-bottom:1px solid rgba(7,29,52,.35); border-radius:0; background:transparent; color:#071d34; font:18px/1.4 "IBM Plex Sans",sans-serif; }
.upload-form input:focus { outline:0; border-bottom-color:#071d34; }
.file-field { padding:22px 0; border-top:1px solid rgba(7,29,52,.2); border-bottom:1px solid rgba(7,29,52,.2); }
.file-field input[type="file"] { font-family:"IBM Plex Mono",monospace; font-size:10px; }
.file-field small { color:rgba(7,29,52,.56); font-family:"IBM Plex Mono",monospace; font-size:8px; letter-spacing:.12em; }
.consent-field { grid-template-columns:18px 1fr; align-items:start; gap:13px!important; }
.consent-field input { margin-top:5px; }
.consent-field span { font-family:"IBM Plex Sans",sans-serif!important; font-size:15px!important; letter-spacing:0!important; line-height:1.55; }
.upload-submit { justify-self:start; display:inline-flex; gap:18px; padding:14px 0; border:0; border-bottom:1px solid rgba(7,29,52,.45); background:transparent; color:#071d34; font-family:"IBM Plex Mono",monospace; font-size:9px; letter-spacing:.18em; cursor:pointer; }
.upload-submit:disabled { opacity:.45; cursor:wait; }
.upload-status { min-height:28px; margin:0!important; font-family:"IBM Plex Mono",monospace!important; font-size:9px!important; letter-spacing:.1em!important; }
.upload-status.is-error { color:#8a1f11; }
.upload-alternative { margin-top:38px!important; font-size:16px!important; }
.upload-alternative a { color:inherit; text-underline-offset:4px; }


/* V44 — destination-specific transition language and actual Journey 1 vessel */
.transition-mask img {
  width: clamp(180px, 24vw, 340px);
  max-height: 42vh;
  object-fit: contain;
  filter: invert(1) contrast(1.08);
  mix-blend-mode: screen;
  opacity: .9;
}
.transition-mask span {
  font-size: 9px;
  letter-spacing: .2em;
}
@media (max-width: 640px) {
  .transition-mask img { width: min(68vw, 280px); }
}


/* V51 — Field Manual map and preservation graphic */
.project-screen .project-world-map {
  background: #fff !important;
  border-color: rgba(7,29,52,.2) !important;
}
.project-screen .project-world-map img {
  filter: none !important;
  background: #fff !important;
}
.project-screen .project-world-map figcaption,
.project-screen .project-world-map figcaption strong,
.project-screen .project-world-map figcaption small {
  color: #071d34 !important;
}
.project-screen .field-locator-data {
  color: #071d34 !important;
}
.project-screen .field-locator-data span,
.project-screen .field-locator-data small {
  color: rgba(7,29,52,.62) !important;
}
.project-screen .cross-section-plate {
  background: #fff !important;
}
.project-screen .cross-section-plate img {
  filter: invert(1) !important;
  background: #fff !important;
}

/* V52 — Field Manual mobile layout correction */
@media (max-width: 900px) {
  .project-screen,
  .project-screen .terminal-panel,
  .project-screen .project-panel {
    min-width: 0;
    width: 100%;
  }

  .project-screen .project-panel {
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .project-screen .project-index {
    position: relative;
    top: auto;
    width: 100%;
    height: auto;
    overflow: visible;
  }

  .project-screen .project-copy {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 34px 22px 82px;
    overflow: visible;
  }

  .project-screen .project-module,
  .project-screen .creator-record,
  .project-screen .document-note,
  .project-screen figure {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .project-screen img,
  .project-screen svg {
    max-width: 100%;
    height: auto;
  }

  .project-screen .field-locator-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    width: 100%;
    min-width: 0;
  }

  .project-screen .field-locator-layout img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto;
  }

  .project-screen .field-locator-data {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    padding: 18px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(7,29,52,.2);
  }

  .project-screen .technical-figure,
  .project-screen .cross-section-plate,
  .project-screen .bentham-plate,
  .project-screen .project-world-map {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden;
  }

  .project-screen .technical-figure figcaption,
  .project-screen .cross-section-plate figcaption,
  .project-screen .bentham-plate figcaption,
  .project-screen .project-world-map figcaption {
    width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media (max-width: 620px) {
  .project-screen .project-index {
    padding: 22px 18px;
  }

  .project-screen .archive-directory {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .project-screen .project-copy {
    padding: 28px 18px 72px;
  }

  .project-screen .archive-title-page {
    min-height: auto;
    padding-top: 46px;
    padding-bottom: 72px;
  }

  .project-screen .project-copy h1 {
    max-width: 100%;
    font-size: clamp(30px, 10vw, 44px);
    line-height: 1.12;
    letter-spacing: .10em;
    overflow-wrap: anywhere;
  }

  .project-screen .project-copy h2 {
    max-width: 100%;
    font-size: clamp(20px, 7vw, 28px);
    line-height: 1.25;
    letter-spacing: .10em;
    overflow-wrap: anywhere;
  }

  .project-screen .archive-edition-data span,
  .project-screen .program-number,
  .project-screen .project-kicker,
  .project-screen .document-note {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .project-screen .project-copy p,
  .project-screen .protocol-list p {
    font-size: 17px;
    line-height: 1.66;
  }

  .project-screen .project-copy .lead {
    font-size: 20px;
    line-height: 1.55;
  }

  .project-screen .project-module {
    margin-bottom: 60px;
    padding-bottom: 60px;
  }

  .project-screen .protocol-list > div {
    grid-template-columns: 38px minmax(0,1fr);
    gap: 14px;
    padding: 18px 0;
  }

  .project-screen .protocol-list span {
    padding-top: 5px;
  }

  .project-screen .bentham-plate img {
    width: 100%;
  }

  .project-screen .technical-figure figcaption,
  .project-screen .cross-section-plate figcaption,
  .project-screen .bentham-plate figcaption,
  .project-screen .project-world-map figcaption {
    grid-template-columns: 1fr;
    gap: 7px;
    font-size: 7px;
    letter-spacing: .14em;
  }

  .project-screen .document-note {
    text-align: left;
    line-height: 1.7;
  }

  /* Keep the transmission footer from sharing one crowded baseline on phones. */
  .archive-footer {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    min-height: 76px;
    height: auto;
    padding: 12px 14px;
    row-gap: 10px;
  }

  .archive-footer-left {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px 14px;
  }

  .archive-footer .record-indicator {
    grid-column: 1;
    grid-row: 2;
    align-items: flex-start;
  }

  .archive-footer .action-link:last-child {
    grid-column: 2;
    grid-row: 2;
    align-self: end;
  }
}

/* V53 — lower primary navigation and preserve visible active states */
:root {
  --header-h: 118px;
}

.site-header {
  padding-top: 22px;
}

.header-right {
  align-self: flex-start;
  margin-top: 48px;
  align-items: center;
}

/* Active navigation must remain legible on the white information pages. */
body:has(.project-screen.is-active) .nav-link.is-current,
body:has(.contribution-screen.is-active) .nav-link.is-current,
body:has(.landing-screen.is-active) .nav-link.is-current {
  color: #071d34;
  border-bottom-color: currentColor;
}

/* Transmissions remains a dark interface. */
body:has(.archive-screen.is-active) .nav-link.is-current {
  color: var(--text);
  border-bottom-color: currentColor;
}

@media (max-width: 880px) {
  :root {
    --header-h: 126px;
  }

  .site-header {
    min-height: var(--header-h);
    height: auto;
    padding-top: 14px;
    flex-wrap: wrap;
    align-content: flex-start;
  }

  .institution {
    flex: 0 0 auto;
  }

  .header-right {
    flex: 0 0 100%;
    width: 100%;
    margin-top: 18px;
    padding-left: 50px;
    justify-content: flex-start;
    gap: 18px;
  }

  .nav-link {
    margin-top: 0;
    font-size: 6px;
  }

  .screen {
    padding-top: calc(var(--header-h) + 6px);
  }

  .landing-screen {
    padding-top: 0;
  }
}

@media (max-width: 620px) {
  :root {
    --header-h: 132px;
  }

  .header-right {
    margin-top: 16px;
    padding-left: 50px;
    gap: 12px 16px;
  }

  .nav-link {
    font-size: 5.5px;
    letter-spacing: .14em;
  }
}

/* V54 — mobile landing-page containment, right-aligned navigation, and raised vessel */
@media (max-width: 880px) {
  /* Keep the navigation on its own row and align it to the right edge. */
  .header-right {
    padding-left: 0;
    justify-content: flex-end;
    text-align: right;
  }

  /* The mobile landing page scrolls only below the fixed header, so copy can
     no longer move underneath the logo or navigation controls. */
  .landing-interface {
    inset: var(--header-h) 0 0;
    min-height: 0;
    padding-top: 14px;
    padding-bottom: 38px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  /* Recompose the landing page for phones/tablets: identity, vessel, data,
     and archive-entry control. This brings the pyramid video much higher. */
  .landing-register {
    display: contents;
  }

  .landing-identity {
    order: 1;
    padding: 22px 0 22px;
  }

  .landing-visual {
    order: 2;
    width: 100%;
    padding: 24px 0 28px;
    border-bottom: 1px solid rgba(6,29,52,.18);
  }

  .landing-data {
    order: 3;
    margin-top: 32px;
  }

  .landing-enter {
    order: 4;
    margin: 34px 0 0;
    padding-top: 0;
    padding-bottom: 10px;
    justify-self: start;
  }
}

@media (max-width: 620px) {
  .header-right {
    width: 100%;
    margin-top: 18px;
    padding-right: 0;
    gap: 12px 16px;
  }

  .landing-interface {
    padding-left: 18px;
    padding-right: 18px;
  }

  .landing-vessel {
    width: 100%;
    max-width: 520px;
  }

  .landing-visual p {
    width: 100%;
    margin-top: 12px;
  }
}

/* V61 — prominent transmission audio control */
.video-audio-control {
  position: absolute;
  z-index: 8;
  right: 18px;
  bottom: 18px;
  min-width: 164px;
  min-height: 52px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(255,255,255,.42);
  background: rgba(5,5,5,.84);
  color: var(--text);
  backdrop-filter: blur(8px);
  cursor: pointer;
}
.video-audio-control:hover,
.video-audio-control:focus-visible {
  border-color: rgba(255,255,255,.9);
}
.audio-symbol {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(241,241,237,.48);
  border-radius: 50%;
  font-size: 15px;
  line-height: 1;
}
.video-audio-control[aria-pressed="true"] .audio-symbol {
  color: var(--red);
  border-color: var(--red);
  animation: audioPulse 1.8s ease-in-out 2;
}
.video-audio-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.video-audio-copy small {
  color: var(--muted);
  font-size: 6px;
  letter-spacing: .17em;
}
.video-audio-copy strong {
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .2em;
}
.audio-notice {
  position: absolute;
  z-index: 7;
  left: 50%;
  top: 50%;
  width: min(86%, 430px);
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transform: translate(-50%,-44%);
  opacity: 0;
  visibility: hidden;
  background: rgba(5,5,5,.86);
  border: 1px solid rgba(255,255,255,.34);
  text-align: center;
  pointer-events: none;
  transition: opacity 280ms ease, transform 280ms ease, visibility 0s linear 280ms;
}
.audio-notice.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%,-50%);
  transition: opacity 280ms ease, transform 280ms ease, visibility 0s;
}
.audio-notice strong {
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .18em;
}
.audio-notice span {
  color: var(--muted);
  font-size: 7px;
  letter-spacing: .16em;
}
@keyframes audioPulse {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

@media (max-width: 620px) {
  .video-stage {
    align-content: center;
  }
  .video-audio-control {
    right: 10px;
    bottom: 10px;
    min-width: 0;
    min-height: 50px;
    padding: 9px 11px;
  }
  .audio-symbol {
    width: 28px;
    height: 28px;
  }
  .video-audio-copy small {
    font-size: 5.5px;
  }
  .video-audio-copy strong {
    font-size: 8px;
  }
  .audio-notice {
    top: 38%;
    width: calc(100% - 28px);
    padding: 14px 12px;
  }
  .archive-footer-left .audio-control {
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid var(--line-strong);
  }
}


/* V62 — high-visibility audio control and reliable mobile archive navigation */
.video-audio-control {
  border: 1px solid var(--red);
  background: rgba(213,31,42,.94);
  color: #fff;
  box-shadow: 0 0 0 1px rgba(0,0,0,.18);
}
.video-audio-control:hover,
.video-audio-control:focus-visible {
  border-color: #fff;
  background: var(--red);
}
.video-audio-control .audio-symbol {
  border-color: rgba(255,255,255,.82);
  color: #fff;
}
.video-audio-control .video-audio-copy small {
  color: rgba(255,255,255,.78);
}
.video-audio-control[aria-pressed="true"] .audio-symbol {
  color: #fff;
  border-color: #fff;
}

/* Make the secondary footer audio control visible on desktop as well. */
.archive-footer-left .audio-control {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--red);
  color: var(--red);
}
.archive-footer-left .audio-control:hover,
.archive-footer-left .audio-control:focus-visible,
.archive-footer-left .audio-control[aria-pressed="true"] {
  background: var(--red);
  color: #fff;
}

@media (max-width: 620px) {
  /* Reserve enough vertical space for both navigation rows. */
  .archive-main {
    grid-template-rows: minmax(0,1fr) auto;
    min-height: 0;
  }

  .archive-footer {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-rows: auto auto;
    width: 100%;
    min-height: 104px;
    height: auto;
    padding: 10px 12px 12px;
    gap: 10px 12px;
    overflow: visible;
  }

  .archive-footer-left {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: 10px;
  }

  .archive-footer-left .audio-control {
    justify-self: stretch;
    justify-content: center;
    min-height: 44px;
    padding: 0 14px;
    background: var(--red);
    color: #fff;
  }

  .archive-footer .record-indicator {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    align-items: flex-start;
    justify-self: start;
  }

  .archive-footer #nextButton {
    grid-column: 2;
    grid-row: 2;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: relative;
    z-index: 3;
    min-width: 104px;
    min-height: 44px;
    padding: 0 14px;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--red);
    background: var(--red);
    color: #fff;
    white-space: nowrap;
  }

  .archive-footer #previousButton {
    min-height: 44px;
    padding: 0 4px;
    white-space: nowrap;
  }

  .video-audio-control {
    right: 10px;
    bottom: 10px;
    min-height: 48px;
    border-color: var(--red);
    background: rgba(213,31,42,.96);
  }
}

/* V63 — dedicated mobile archive containment and neutral navigation controls */
@media (max-width: 620px) {
  /* Keep the Vimeo image completely inside the archive frame. */
  .video-stage {
    width: 100%;
    min-width: 0;
    padding: 12px 16px;
    overflow: hidden;
    box-sizing: border-box;
  }

  .video-frame {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    overflow: hidden;
    box-sizing: border-box;
  }

  .video-frame iframe,
  .video-frame > div:not(.audio-notice) {
    max-width: 100% !important;
  }

  .video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain;
  }

  /* Recompose the controls as one coherent mobile control panel. */
  .archive-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto auto;
    min-height: 0;
    padding: 10px 12px 14px;
    gap: 10px;
  }

  .archive-footer-left {
    display: contents;
  }

  .archive-footer-left .audio-control {
    grid-column: 1 / -1;
    grid-row: 1;
    width: 100%;
    min-height: 46px;
  }

  .archive-footer #previousButton,
  .archive-footer #nextButton {
    display: inline-flex !important;
    width: 100%;
    min-width: 0;
    min-height: 46px;
    padding: 0 12px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(241,241,237,.56);
    background: transparent;
    color: var(--text);
    white-space: nowrap;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .archive-footer #previousButton {
    grid-column: 1;
    grid-row: 2;
  }

  .archive-footer #nextButton {
    grid-column: 2;
    grid-row: 2;
  }

  .archive-footer #previousButton:hover,
  .archive-footer #previousButton:focus-visible,
  .archive-footer #nextButton:hover,
  .archive-footer #nextButton:focus-visible {
    border-color: #fff;
    background: rgba(255,255,255,.08);
    color: #fff;
  }

  .archive-footer #previousButton:active,
  .archive-footer #nextButton:active {
    background: rgba(255,255,255,.14);
  }

  .archive-footer .record-indicator {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    align-items: center;
    justify-self: stretch;
    text-align: center;
    padding-top: 2px;
  }
}

/* V64 — move transmission audio control into the metadata rail */
.status-language-audio {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 14px;
}

.status-language-audio .metadata-field {
  min-width: 0;
}

.metadata-audio-toggle {
  appearance: none;
  min-width: 88px;
  margin: -1px 0;
  padding: 8px 10px;
  border: 1px solid var(--red);
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}

.metadata-audio-toggle:hover,
.metadata-audio-toggle:focus-visible {
  background: rgba(213,31,42,.12);
  outline: none;
}

.metadata-audio-value {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--red);
}

.metadata-audio-value strong {
  font-size: 10px;
  letter-spacing: .16em;
}

.metadata-audio-dot {
  width: 7px;
  height: 7px;
  border: 1px solid var(--red);
  border-radius: 50%;
  background: transparent;
  flex: 0 0 auto;
}

.metadata-audio-toggle[aria-pressed="true"] {
  background: var(--red);
  color: #fff;
}

.metadata-audio-toggle[aria-pressed="true"] .module-label,
.metadata-audio-toggle[aria-pressed="true"] .metadata-audio-value {
  color: #fff;
}

.metadata-audio-toggle[aria-pressed="true"] .metadata-audio-dot {
  border-color: #fff;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,.14);
}

/* Remove legacy audio placements from the video and footer. */
.video-audio-control,
.archive-footer-left .audio-control {
  display: none !important;
}

@media (max-width: 620px) {
  .status-language-audio {
    grid-template-columns: minmax(0, 1fr) minmax(96px, auto);
    gap: 10px;
  }

  .metadata-audio-toggle {
    min-width: 96px;
    min-height: 48px;
    padding: 8px 10px;
  }

  .archive-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto;
  }

  .archive-footer-left {
    display: contents;
  }

  .archive-footer #previousButton,
  .archive-footer #nextButton {
    grid-row: 1;
  }

  .archive-footer .record-indicator {
    grid-row: 2;
  }
}


/* V65 — mobile viewing area and compact transmission controls */
:root {
  --audio-on: #2f9e5b;
}

/* Audio is a compact status toggle: red means muted, green means audible. */
.metadata-audio-toggle {
  min-width: 76px;
  padding: 6px 8px;
  gap: 4px;
  border-color: var(--red);
}

.metadata-audio-toggle[aria-pressed="false"] .metadata-audio-value {
  color: var(--red);
}

.metadata-audio-toggle[aria-pressed="true"] {
  background: transparent;
  border-color: var(--audio-on);
  color: var(--text);
}

.metadata-audio-toggle[aria-pressed="true"] .module-label {
  color: var(--muted);
}

.metadata-audio-toggle[aria-pressed="true"] .metadata-audio-value {
  color: var(--audio-on);
}

.metadata-audio-toggle[aria-pressed="true"] .metadata-audio-dot {
  border-color: var(--audio-on);
  background: var(--audio-on);
  box-shadow: 0 0 0 3px rgba(47,158,91,.14);
}

.metadata-audio-toggle:hover,
.metadata-audio-toggle:focus-visible {
  background: rgba(255,255,255,.045);
}

@media (max-width: 620px) {
  /* Give the recording nearly the full available phone width so captions have
     more horizontal and vertical room inside the Vimeo image. */
  .video-stage {
    padding: 6px 6px 4px;
  }

  .video-frame {
    width: 100%;
    max-width: none;
    border-radius: 12px;
  }

  /* Keep metadata legible while making Audio a small status control rather
     than a dominant button. */
  .status-language-audio {
    grid-template-columns: minmax(0, 1fr) 74px;
    gap: 7px;
  }

  .metadata-audio-toggle {
    min-width: 74px;
    min-height: 36px;
    padding: 5px 7px;
    gap: 2px;
  }

  .metadata-audio-toggle .module-label {
    font-size: 6px;
  }

  .metadata-audio-value {
    gap: 5px;
  }

  .metadata-audio-value strong {
    font-size: 8px;
  }

  .metadata-audio-dot {
    width: 6px;
    height: 6px;
  }

  /* Compact neutral transport controls release vertical space for the video. */
  .archive-footer {
    padding: 6px 8px 8px;
    gap: 6px;
  }

  .archive-footer #previousButton,
  .archive-footer #nextButton {
    min-height: 34px;
    padding: 0 8px;
    font-size: 8px;
    letter-spacing: .12em;
  }

  .archive-footer .record-indicator {
    padding-top: 0;
  }

  .archive-footer .record-indicator small {
    display: none;
  }
}

/* V66 — compact metadata-style audio status */
:root {
  --audio-on-muted: #5a9a6b;
  --audio-off-muted: #9e343b;
}

/* The audio toggle reads as archive metadata rather than a large UI button. */
.status-language-audio {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.metadata-audio-toggle {
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 3px 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text);
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  transition: opacity .18s ease, background-color .18s ease;
}

.metadata-audio-toggle:hover,
.metadata-audio-toggle:focus-visible {
  background: transparent;
  opacity: .78;
  outline: 1px solid rgba(255,255,255,.22);
  outline-offset: 4px;
}

.metadata-audio-toggle .module-label {
  color: var(--muted);
  transition: color .18s ease;
}

.metadata-audio-value {
  gap: 6px;
  transition: color .18s ease;
}

.metadata-audio-value strong {
  font-size: 9px;
  letter-spacing: .14em;
}

.metadata-audio-dot {
  width: 8px;
  height: 8px;
  border: 0;
  background: var(--audio-off-muted);
  box-shadow: none;
  transition: background-color .18s ease, box-shadow .18s ease;
}

.metadata-audio-toggle[aria-pressed="false"] .metadata-audio-value {
  color: var(--audio-off-muted);
}

.metadata-audio-toggle[aria-pressed="true"] {
  border: 0;
  background: transparent;
}

.metadata-audio-toggle[aria-pressed="true"] .metadata-audio-value {
  color: var(--audio-on-muted);
}

.metadata-audio-toggle[aria-pressed="true"] .metadata-audio-dot {
  border: 0;
  background: var(--audio-on-muted);
  box-shadow: 0 0 0 2px rgba(90,154,107,.10);
}

@media (max-width: 620px) {
  .status-language-audio {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
  }

  .metadata-audio-toggle {
    min-width: 0;
    min-height: 30px;
    padding: 2px 4px;
    gap: 7px;
  }

  .metadata-audio-toggle .module-label {
    font-size: 6px;
  }

  .metadata-audio-value strong {
    font-size: 8px;
  }

  .metadata-audio-dot {
    width: 7px;
    height: 7px;
  }

  /* Preserve the larger playback area while reducing transport-button weight. */
  .archive-footer #previousButton,
  .archive-footer #nextButton {
    min-height: 30px;
    padding: 0 7px;
    font-size: 7px;
  }
}
