.material-symbols-rounded.op-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1em;
  height: 1.1em;
  margin-right: 0.35rem;
  color: var(--accent);
  font-size: 1.1em;
  font-variant: normal;
  font-variant-caps: normal;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
  vertical-align: -0.16em;
}

/* rc.79 — Trip-report tidal datums follow the approved landscape reference. */
@media screen {
  .trip-team-thanks { scroll-margin-top: 5rem; }

  .trip-tide-story {
    display: block;
    margin: clamp(3.5rem, 7vw, 6.5rem) 0;
    padding: 0;
    border: 0;
    background: var(--trip-paper, #fffdfa);
  }

  .trip-tide-story__masthead {
    display: grid;
    grid-template-columns: minmax(22rem, 1.22fr) minmax(17rem, 0.92fr) minmax(18rem, 0.86fr);
    align-items: stretch;
    padding: clamp(1.2rem, 2.5vw, 2rem) clamp(0.25rem, 1vw, 0.8rem) 1.35rem;
    border-bottom: 2px solid var(--ink);
  }

  .trip-tide-story__title {
    padding-right: clamp(1.25rem, 3vw, 3rem);
  }

  .trip-tide-story__title h3 {
    margin: 0.7rem 0 0;
    font-size: clamp(3.1rem, 5vw, 5.25rem);
    font-weight: 400;
    line-height: 0.96;
  }

  .trip-tide-story__title > p:last-child {
    margin: 0.72rem 0 0;
    color: #0c6d7e;
    font-family: var(--font-display);
    font-size: clamp(1.1rem, 1.8vw, 1.55rem);
    line-height: 1.2;
  }

  .trip-tide-story__explanation {
    padding: 0.45rem clamp(1.25rem, 2.5vw, 2.5rem);
    border-left: 1px solid rgba(30, 49, 84, 0.28);
  }

  .trip-tide-story__explanation h4,
  .tidal-report-plate figcaption strong {
    margin: 0;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.15;
  }

  .trip-tide-story__explanation p {
    max-width: 37ch;
    margin: 0.55rem 0 0;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 0.98rem;
    line-height: 1.5;
  }

  .trip-tide-story__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
  }

  .trip-tide-story__stats > div {
    min-width: 0;
    padding: 0.45rem clamp(1rem, 2vw, 2rem);
    border-left: 1px solid rgba(30, 49, 84, 0.28);
  }

  .trip-tide-story__stats dt {
    color: var(--ink);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  .trip-tide-story__stats dd {
    margin: 0.55rem 0 0;
    color: #0c6d7e;
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 2.6vw, 2.55rem);
    font-variant-numeric: tabular-nums;
    line-height: 1;
  }

  .trip-tide-story__figures {
    min-width: 0;
    padding: 0;
    background: transparent;
  }

  .tidal-report-plate {
    display: grid;
    grid-template-columns: minmax(0, 2.1fr) minmax(20rem, 0.9fr);
    min-width: 0;
    padding: 1.65rem 0.45rem 1.35rem;
  }

  .tidal-report-plate figure {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .tidal-report-plate figcaption {
    display: grid;
    gap: 0.55rem;
    min-height: 4.1rem;
    padding: 0 0.35rem;
    border: 0;
    background: transparent;
  }

  .tidal-report-plate figcaption strong {
    font-family: var(--font-body);
    font-size: 0.76rem;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  .tidal-report-plate figcaption span {
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 0.92rem;
    font-style: italic;
    line-height: 1.35;
  }

  .tidal-report-trace {
    padding-right: clamp(1.25rem, 3vw, 3rem) !important;
  }

  .tidal-report-trace img {
    display: block;
    width: 100%;
    height: auto;
    background: transparent;
  }

  .tidal-report-trace__key {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0.4rem 0;
    color: var(--ink-soft);
    font-family: var(--font-body);
    font-size: 0.7rem;
    line-height: 1.3;
  }

  .tidal-report-trace__key span:first-child {
    display: inline-flex;
    gap: 0.55rem;
    align-items: center;
  }

  .tidal-report-trace__key i {
    width: 1.5rem;
    border-top: 3px solid #086b7a;
  }

  .tidal-report-ruler {
    padding-left: clamp(1.25rem, 3vw, 2.5rem) !important;
    border-left: 1px solid rgba(30, 49, 84, 0.34) !important;
  }

  .tidal-report-ruler__plot {
    position: relative;
    min-height: clamp(28rem, 38vw, 35rem);
    margin-top: 0.2rem;
    overflow: visible;
  }

  .tidal-report-ruler__axis {
    position: absolute;
    top: 1rem;
    bottom: 1rem;
    left: 4.25rem;
    width: 1px;
    background: var(--ink);
  }

  .tidal-report-ruler__axis::before,
  .tidal-report-ruler__axis::after {
    content: "";
    position: absolute;
    left: -0.35rem;
    width: 0.7rem;
    border-top: 1px solid var(--ink);
  }

  .tidal-report-ruler__axis::before { top: 0; }
  .tidal-report-ruler__axis::after { bottom: 0; }

  .tidal-report-ruler__axis-label {
    position: absolute;
    left: 0;
    width: 3.55rem;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 0.92rem;
    font-variant-numeric: tabular-nums;
    text-align: right;
  }

  .tidal-report-ruler__axis-label--top { top: 0.55rem; }
  .tidal-report-ruler__axis-label--bottom { bottom: 0.55rem; }
  .tidal-report-ruler__axis-label--zero {
    top: var(--datum-y, 50%);
    display: none;
  }

  .tidal-report-ruler__datum {
    position: absolute;
    top: var(--datum-y);
    left: 4.25rem;
    width: 8.5rem;
    border-top: 1.5px solid #c45d34;
    transform: translateY(-50%);
  }

  .tidal-report-ruler__datum-label {
    position: absolute;
    top: var(--datum-y);
    left: 13.35rem;
    width: max-content;
    max-width: calc(100% - 13.35rem);
    color: #c45d34;
    font-family: var(--font-display);
    font-size: 0.9rem;
    line-height: 1.15;
    transform: translateY(-50%);
  }

  .tidal-report-feature {
    --point-color: #0c6d7e;
    position: absolute;
    top: var(--point-y);
    left: 4.25rem;
    right: 0;
    height: 0;
    color: var(--point-color);
  }

  .tidal-report-feature--control { --point-color: #5d2898; }
  .tidal-report-feature--notch { --point-color: #0c6d7e; }
  .tidal-report-feature--waterline { --point-color: #0c6d7e; }
  .tidal-report-feature--reef-flat { --point-color: #075b85; }

  .tidal-report-feature__dot {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    width: 0.78rem;
    height: 0.78rem;
    border: 1.5px solid #fffdfa;
    border-radius: 999px;
    background: var(--point-color);
    transform: translate(-50%, -50%);
  }

  .tidal-report-feature__leader {
    position: absolute;
    top: 0;
    left: 0;
    width: clamp(5rem, 7vw, 7rem);
    border-top: 1.5px solid var(--point-color);
  }

  .tidal-report-feature__range {
    position: absolute;
    top: calc(var(--envelope-top) - var(--point-y));
    left: 0;
    z-index: 1;
    width: 1px;
    height: var(--envelope-height);
    min-height: 0.5rem;
    background: var(--point-color);
  }

  .tidal-report-feature__range::before,
  .tidal-report-feature__range::after {
    content: "";
    position: absolute;
    left: -0.32rem;
    width: 0.64rem;
    border-top: 1px solid var(--point-color);
  }

  .tidal-report-feature__range::before { top: 0; }
  .tidal-report-feature__range::after { bottom: 0; }

  .tidal-report-feature__label {
    position: absolute;
    top: 0;
    left: clamp(5.7rem, 8vw, 7.7rem);
    display: grid;
    gap: 0.16rem;
    width: clamp(8rem, 11vw, 11rem);
    color: var(--point-color);
    font-family: var(--font-display);
    font-size: 0.92rem;
    line-height: 1.12;
    transform: translateY(-50%);
  }

  .tidal-report-feature__label strong,
  .tidal-report-feature__label b { font-weight: 700; }
  .tidal-report-feature--label-above .tidal-report-feature__label {
    transform: translateY(calc(-50% - 2.5rem));
  }
  .tidal-report-feature--label-below .tidal-report-feature__label {
    transform: translateY(calc(-50% + 2.5rem));
  }

  .tidal-report-ruler > p {
    display: grid;
    grid-template-columns: 1rem minmax(0, 1fr);
    gap: 0.65rem;
    margin: 0.45rem 0 0;
    color: var(--ink-soft);
    font-size: 0.72rem;
    line-height: 1.4;
  }

  .tidal-report-ruler > p > i {
    position: relative;
    width: 1px;
    height: 1.25rem;
    margin-left: 0.45rem;
    background: var(--ink);
  }

  .tidal-report-ruler > p > i::before,
  .tidal-report-ruler > p > i::after {
    content: "";
    position: absolute;
    left: -0.25rem;
    width: 0.5rem;
    border-top: 1px solid var(--ink);
  }

  .tidal-report-ruler > p > i::before { top: 0; }
  .tidal-report-ruler > p > i::after { bottom: 0; }

  .trip-tide-story__note {
    margin: 0;
    padding: 0.95rem 0.45rem 0;
    border-top: 1px solid rgba(30, 49, 84, 0.3);
    color: var(--ink-soft);
    font-size: 0.72rem;
    line-height: 1.4;
  }
}

@media screen and (max-width: 1050px) {
  .trip-tide-story__masthead {
    grid-template-columns: minmax(18rem, 1.1fr) minmax(0, 0.9fr);
  }
  .trip-tide-story__stats {
    grid-column: 1 / -1;
    margin-top: 1.2rem;
    border-top: 1px solid rgba(30, 49, 84, 0.22);
  }
  .trip-tide-story__stats > div:first-child { border-left: 0; }
  .tidal-report-plate { grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 0.85fr); }
}

@media screen and (max-width: 760px) {
  .trip-tide-story__masthead,
  .tidal-report-plate { grid-template-columns: minmax(0, 1fr); }
  .trip-tide-story__explanation {
    margin-top: 1.2rem;
    padding: 1.1rem 0 0;
    border-top: 1px solid rgba(30, 49, 84, 0.24);
    border-left: 0;
  }
  .trip-tide-story__stats { grid-column: auto; }
  .tidal-report-trace { padding-right: 0 !important; }
  .tidal-report-ruler {
    margin-top: 2rem !important;
    padding: 1.5rem 0 0 !important;
    border-top: 1px solid rgba(30, 49, 84, 0.34) !important;
    border-left: 0 !important;
  }
  .tidal-report-ruler__plot { min-height: 31rem; }
  .tidal-report-ruler__datum-label { left: 10rem; max-width: calc(100% - 10rem); }
}

@media print {
  .trip-tide-story__masthead {
    display: grid;
    grid-template-columns: 1.2fr 1fr 0.8fr;
    gap: 4mm;
    padding-bottom: 3mm;
    border-bottom: 0.5pt solid #1e3154;
  }
  .trip-tide-story__title h3 { margin: 1mm 0; font-size: 24pt; }
  .trip-tide-story__title > p,
  .trip-tide-story__explanation p { margin: 1mm 0; font-size: 7.5pt; line-height: 1.3; }
  .trip-tide-story__explanation h4 { margin: 0; font-size: 9pt; }
  .trip-tide-story__stats { display: grid; grid-template-columns: repeat(2, 1fr); margin: 0; }
  .trip-tide-story__stats > div { padding-left: 3mm; border-left: 0.5pt solid rgba(30,49,84,.25); }
  .trip-tide-story__stats dt { font-size: 6pt; }
  .trip-tide-story__stats dd { margin: 1mm 0 0; font-family: var(--font-display); font-size: 14pt; }
  .tidal-report-plate { display: grid; grid-template-columns: 2fr 1fr; padding: 4mm 0; }
  .tidal-report-plate figure { margin: 0; border: 0; box-shadow: none; }
  .tidal-report-trace { padding-right: 4mm; }
  .tidal-report-ruler { padding-left: 4mm; border-left: 0.5pt solid rgba(30,49,84,.3); }
  .tidal-report-plate figcaption { min-height: 10mm; }
  .tidal-report-plate figcaption strong { font-size: 6pt; }
  .tidal-report-plate figcaption span { font-size: 7pt; }
  .tidal-report-trace img { width: 100%; height: auto; }
  .tidal-report-ruler__plot { min-height: 78mm; }
  .tidal-report-ruler > p,
  .trip-tide-story__note { font-size: 6pt; }
}

.notebook-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.42fr);
  gap: clamp(1rem, 2vw, 1.6rem);
  align-items: end;
}

.notebook-stat-strip,
.site-evidence-counts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.notebook-stat-strip span,
.site-evidence-counts div,
.site-index-card,
.site-detail-panel,
.data-download-card {
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.notebook-stat-strip span,
.site-evidence-counts div {
  display: grid;
  gap: 0.18rem;
  padding: 0.8rem;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.notebook-stat-strip strong,
.site-evidence-counts dd {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.55rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.site-evidence-counts dt {
  margin: 0;
}

.notebook-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: end;
  justify-content: space-between;
}

.notebook-search {
  display: grid;
  gap: 0.35rem;
  min-width: min(100%, 28rem);
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.notebook-search input {
  min-height: 3rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: var(--surface-strong);
  color: var(--ink);
  padding: 0.8rem 0.95rem;
  letter-spacing: 0;
  text-transform: none;
}

.notebook-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.notebook-chip-row a,
.site-card-actions a,
.data-download-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--accent);
  padding: 0.62rem 0.78rem;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.notebook-chip-row a:hover,
.site-card-actions a:hover,
.data-download-card a:hover,
.notebook-chip-row a:focus-visible,
.site-card-actions a:focus-visible,
.data-download-card a:focus-visible {
  background: var(--accent);
  color: var(--surface-strong);
  outline: 2px solid rgba(24, 59, 115, 0.25);
  outline-offset: 2px;
}

.site-index-grid,
.data-download-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: 0.9rem;
}

.site-link-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  gap: 0.75rem;
}

.site-link-grid div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  align-items: center;
  border: 1px solid var(--line);
  background: var(--surface-strong);
  padding: 0.65rem;
}

.site-link-grid strong {
  flex: 1 0 100%;
}

.site-link-grid a {
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 800;
}

.site-index-card,
.site-detail-panel,
.data-download-card {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
}

.site-index-card--atlas {
  padding: 0;
  overflow: hidden;
}

.site-index-card--media {
  position: relative;
  overflow: hidden;
  background: rgba(255, 252, 246, 0.91);
}

.site-index-card__satellite,
.tidal-datum-card__media {
  min-height: 7rem;
  border-bottom: 1px solid rgba(30, 49, 84, 0.14);
  background:
    linear-gradient(180deg, rgba(9, 20, 34, 0.03) 0%, rgba(9, 20, 34, 0.24) 100%),
    var(--card-satellite-image, linear-gradient(135deg, #496878, #d8c8a7));
}

.site-index-card__identity-shell {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
}

.site-index-card--media .site-index-card__identity-shell {
  position: relative;
  z-index: 1;
  margin-top: -2.8rem;
}

.site-index-card--media .site-atlas-identity {
  min-height: 12.2rem;
  border: 1px solid rgba(255, 252, 246, 0.34);
  box-shadow: 0 16px 34px rgba(9, 20, 34, 0.16);
}

.site-index-card--media .site-atlas-identity__scrim {
  min-height: 12.2rem;
}

.site-index-card--media > div:not(.site-index-card__satellite):not(.site-index-card__identity-shell),
.tidal-datum-card > header,
.tidal-datum-card > dl {
  position: relative;
  z-index: 1;
}

.site-index-card--media > div:not(.site-index-card__satellite):not(.site-index-card__identity-shell) {
  padding: 0 1rem 1rem;
}

.tidal-datum-card {
  padding: 0;
}

.tidal-datum-card > header,
.tidal-datum-card > dl {
  margin-left: 1rem;
  margin-right: 1rem;
}

.tidal-datum-card > header {
  margin-top: 0.95rem;
}

.tidal-datum-card > dl {
  margin-bottom: 1rem;
}

.site-index-card__title-link {
  color: inherit;
  text-decoration: none;
}

.site-index-card__title-link:hover,
.site-index-card__title-link:focus-visible {
  color: rgba(255, 252, 246, 0.9);
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.site-index-card__empty {
  display: grid;
  width: 100%;
  min-height: 2.35rem;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(255, 252, 246, 0.9);
  padding: 0 0.55rem;
  place-items: center start;
}

.site-index-card h2,
.site-detail-panel h2,
.site-detail-panel h3,
.data-download-card h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
}

.site-index-card h2 {
  font-size: 1.75rem;
}

.site-index-card p,
.site-detail-panel p,
.data-download-card p {
  margin: 0;
}

.site-card-actions,
.data-download-card {
  align-content: start;
}

.site-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.site-detail-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.site-detail-layout--wide {
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
}

.section-heading {
  display: grid;
  gap: 0.3rem;
  margin-bottom: 0.85rem;
}

.section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.4vw, 2.3rem);
  font-weight: 400;
}

.site-panel-head {
  display: flex;
  gap: 0.9rem;
  align-items: start;
  justify-content: space-between;
}

.site-panel-head h2,
.site-panel-head p {
  margin: 0;
}

.site-panel-action,
.site-photo-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.2rem;
  border: 1px solid var(--line-strong);
  background: var(--surface-strong);
  color: var(--accent);
  padding: 0.45rem 0.62rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-panel-action:hover,
.site-panel-action:focus-visible {
  background: var(--accent);
  color: var(--surface-strong);
  outline: 2px solid rgba(24, 59, 115, 0.24);
  outline-offset: 2px;
}

.site-raster-download-list {
  display: grid;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.site-raster-download {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 0.8rem 0;
}

.site-raster-download + .site-raster-download {
  border-top: 1px solid var(--line);
}

.site-raster-download div {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.site-raster-download strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 400;
}

.site-raster-download span,
.site-raster-download-note,
.site-link-grid small {
  color: var(--muted);
  font-size: 0.75rem;
  line-height: 1.35;
}

.site-raster-download span {
  overflow-wrap: anywhere;
}

.site-raster-download-note {
  margin: 0;
}

.site-atlas-section,
.site-profile-section {
  min-width: 0;
}

.site-map-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.34fr);
  gap: 1rem;
  align-items: stretch;
}

.site-map-workbench__map {
  min-height: clamp(26rem, 58vw, 44rem);
  margin: 0;
}

.site-map-side {
  display: grid;
  align-content: start;
  gap: 0.85rem;
  min-width: 0;
}

.site-map-legend,
.site-layer-ledger,
.site-turntable-placeholder,
.site-profile-workbench {
  border: 1px solid var(--line);
  background: rgba(255, 252, 246, 0.82);
  box-shadow: var(--shadow-soft);
}

.site-map-legend,
.site-turntable-placeholder {
  display: grid;
  gap: 0.65rem;
  padding: 0.95rem;
}

.site-map-legend p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.45;
}

.site-elevation-ramp {
  height: 0.85rem;
  border: 1px solid rgba(30, 49, 84, 0.16);
  background: var(
    --site-elevation-ramp,
    linear-gradient(90deg, #e0e5da 0%, #c2cab0 20%, #91a689 42%, #688670 64%, #8e958e 84%, #e6ebe4 100%)
  );
}

.site-elevation-labels {
  display: flex;
  justify-content: space-between;
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
}

.site-layer-ledger {
  display: grid;
}

.site-layer-ledger div {
  display: grid;
  gap: 0.18rem;
  padding: 0.72rem 0.9rem;
  border-bottom: 1px solid var(--line);
}

.site-layer-ledger div:last-child {
  border-bottom: 0;
}

.site-layer-ledger strong {
  color: var(--ink);
  font-size: 0.9rem;
}

.site-layer-ledger span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.site-turntable-placeholder {
  min-height: 11rem;
  place-items: center;
  text-align: center;
}

.site-turntable-placeholder .material-symbols-rounded {
  display: grid;
  width: 3.2rem;
  height: 3.2rem;
  place-items: center;
  border: 1px solid rgba(30, 49, 84, 0.14);
  border-radius: 50%;
  background: rgba(215, 228, 233, 0.46);
  color: var(--accent);
  font-size: 2rem;
}

.site-turntable-placeholder strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 400;
}

.site-turntable-placeholder p {
  max-width: 20rem;
  margin: 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.site-profile-workbench {
  display: grid;
  gap: 0.85rem;
  padding: 0.95rem;
}

.site-profile-toolbar,
.site-photo-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.site-profile-toolbar button,
.site-photo-toolbar button {
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: var(--surface-strong);
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.15;
  padding: 0.58rem 0.68rem;
  text-align: left;
  text-transform: uppercase;
}

.site-profile-toolbar button {
  display: grid;
  gap: 0.16rem;
  min-width: min(100%, 12rem);
  letter-spacing: 0;
  text-transform: none;
}

.site-profile-toolbar button span {
  color: var(--muted);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-profile-toolbar button[aria-pressed="true"],
.site-photo-toolbar button[aria-pressed="true"],
.site-profile-toolbar button:hover,
.site-photo-toolbar button:hover,
.site-profile-toolbar button:focus-visible,
.site-photo-toolbar button:focus-visible {
  background: var(--accent);
  color: var(--surface-strong);
  outline: 2px solid rgba(24, 59, 115, 0.22);
  outline-offset: 2px;
}

.site-profile-toolbar button[aria-pressed="true"] span,
.site-profile-toolbar button:hover span,
.site-profile-toolbar button:focus-visible span {
  color: rgba(255, 252, 246, 0.78);
}

.site-profile-chart {
  min-height: 24rem;
  overflow-x: auto;
  border: 1px solid rgba(30, 49, 84, 0.1);
  background: linear-gradient(180deg, rgba(215, 228, 233, 0.36), rgba(255, 252, 246, 0.88));
}

.site-profile-chart > p {
  margin: 0;
  padding: 1rem;
  color: var(--muted);
  font-weight: 700;
}

.site-profile-svg {
  display: block;
  width: 100%;
  min-width: 42rem;
  height: auto;
}

.site-profile-axis,
.site-profile-tick line {
  stroke: rgba(30, 49, 84, 0.44);
  stroke-width: 1.2;
}

.site-profile-line {
  fill: none;
  stroke: #235f76;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
}

.site-profile-label,
.site-profile-tick text,
.site-profile-end,
.site-profile-annotation text {
  fill: var(--ink);
  font-size: 0.78rem;
  font-weight: 800;
}

.site-profile-tick text {
  text-anchor: middle;
}

.site-profile-end {
  fill: var(--muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.site-profile-end--end {
  text-anchor: end;
}

.site-profile-annotation line {
  stroke: rgba(30, 49, 84, 0.2);
  stroke-dasharray: 4 4;
  stroke-width: 1;
}

.site-profile-annotation circle {
  stroke: var(--surface-strong);
  stroke-width: 2;
}

.site-profile-annotation--spur circle {
  fill: #c66d3c;
}

.site-profile-annotation--groove circle {
  fill: #32658d;
}

.site-profile-annotation--spur text {
  fill: #944728;
}

.site-profile-annotation--groove text {
  fill: #214f73;
}

.site-profile-readout {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0;
}

.site-profile-readout div {
  border: 1px solid rgba(30, 49, 84, 0.1);
  background: rgba(255, 252, 246, 0.68);
  padding: 0.65rem;
}

.site-profile-readout dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-profile-readout dd {
  margin: 0.14rem 0 0;
  color: var(--ink);
  font-weight: 800;
}

.site-profile-status {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.45;
}

.site-summary-stack {
  display: grid;
  gap: 0.7rem;
}

.site-link-list {
  margin: 0;
  padding-left: 1.1rem;
}

.site-link-list a {
  color: var(--accent);
  font-weight: 700;
}

.site-table-wrap {
  overflow-x: auto;
}

.site-data-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 34rem;
}

.site-data-table th,
.site-data-table td {
  border-bottom: 1px solid var(--line);
  padding: 0.58rem 0.5rem;
  text-align: left;
  vertical-align: top;
}

.site-data-table th {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
  gap: 0.55rem;
}

.site-photo-browser {
  display: grid;
  gap: 0.72rem;
  max-height: min(58rem, 72vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.1rem 0.25rem 0.25rem 0.05rem;
  scrollbar-gutter: stable;
}

.site-photo-grid a,
.site-photo-card {
  display: grid;
  gap: 0.35rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.site-photo-grid--review {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 8.5rem), 1fr));
}

.site-photo-card {
  margin: 0;
  min-width: 0;
}

.site-photo-card button {
  display: block;
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-soft);
  cursor: pointer;
  padding: 0;
}

.site-photo-card button:hover,
.site-photo-card button:focus-visible {
  border-color: var(--accent);
  outline: 2px solid rgba(24, 59, 115, 0.2);
  outline-offset: 2px;
}

.site-photo-grid img {
  aspect-ratio: 1;
  width: 100%;
  object-fit: cover;
  border: 1px solid var(--line);
  background: var(--bg-soft);
}

.site-photo-card img {
  display: block;
  border: 0;
}

.site-photo-card figcaption {
  display: grid;
  gap: 0.1rem;
  min-height: 2.5rem;
}

.site-photo-card figcaption span,
.site-photo-card figcaption small {
  overflow-wrap: anywhere;
}

.site-photo-card figcaption small {
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.25;
}

.site-photo-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: start;
  min-height: 1.35rem;
  border: 1px solid var(--line);
  background: rgba(255, 252, 246, 0.84);
  color: var(--ink);
  padding: 0.14rem 0.36rem;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.site-photo-card__badge--drone {
  background: rgba(127, 167, 180, 0.22);
  color: #1f4d59;
}

.site-photo-load-state {
  margin: 0;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  padding: 0.75rem 0.25rem 0.25rem;
  text-transform: uppercase;
}

.site-data-table--samples {
  min-width: 42rem;
}

.is-filtered-out {
  display: none !important;
}

.site-atlas-shell {
  --atlas-panel: rgba(255, 252, 246, 0.94);
  --atlas-panel-strong: rgba(255, 253, 250, 0.98);
  --atlas-shadow: 0 24px 58px rgba(30, 49, 84, 0.16), 0 6px 18px rgba(30, 49, 84, 0.08);
  display: grid;
  height: calc(100vh - 6.25rem);
  min-height: 39rem;
  max-height: 55rem;
  margin: 0.75rem;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  background: var(--ink);
  color: var(--ink);
  box-shadow: 0 20px 50px rgba(45, 58, 82, 0.08);
}

.site-atlas-topbar {
  position: relative;
  z-index: 40;
  display: grid;
  grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  min-height: 4.75rem;
  border-bottom: 1px solid var(--line);
  background: rgba(245, 240, 231, 0.96);
  padding: 0.72rem 1rem;
}

.site-atlas-brand {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 0.72rem;
}

.site-atlas-mark {
  position: relative;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 2.35rem;
  border: 1.5px solid var(--ink);
  border-radius: 50%;
}

.site-atlas-mark::before,
.site-atlas-mark::after {
  position: absolute;
  right: 0.42rem;
  left: 0.42rem;
  height: 1px;
  background: var(--ink);
  content: "";
}

.site-atlas-mark::before {
  top: 1.08rem;
  transform: rotate(-9deg);
}

.site-atlas-mark::after {
  top: 1.42rem;
  opacity: 0.62;
  transform: rotate(8deg);
}

.site-atlas-brand p,
.site-atlas-titleline span,
.site-atlas-rail-head p,
.site-atlas-context p {
  margin: 0;
}

.site-atlas-brand p,
.site-atlas-titleline span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.site-atlas-brand h1 {
  margin: 0.08rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 400;
  line-height: 0.95;
}

.site-atlas-titleline {
  display: grid;
  min-width: 0;
  gap: 0.22rem;
}

.site-atlas-titleline strong {
  overflow: hidden;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-atlas-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 0.42rem;
}

.site-atlas-actions a,
.site-panel-action,
.site-atlas-mini-records a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  padding: 0.54rem 0.62rem;
  text-transform: uppercase;
}

.site-atlas-actions a:hover,
.site-atlas-actions a:focus-visible,
.site-panel-action:hover,
.site-panel-action:focus-visible,
.site-atlas-mini-records a:hover,
.site-atlas-mini-records a:focus-visible {
  background: var(--accent);
  color: var(--surface-strong);
  outline: 2px solid rgba(24, 59, 115, 0.25);
  outline-offset: 2px;
}

.site-atlas-workspace {
  position: relative;
  --site-atlas-left-rail-width: min(19.5rem, calc(100vw - 1.5rem));
  min-height: 100%;
  overflow: hidden;
  background: var(--map-water);
}

.site-atlas-map,
.site-atlas-map .embedded-map__canvas {
  position: absolute;
  inset: 0;
  min-height: 100%;
}

.site-atlas-map {
  margin: 0;
  border: 0;
  z-index: 1;
}

.site-atlas-model-takeover {
  position: absolute;
  z-index: 1000;
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  left: calc(var(--site-atlas-left-rail-width) + 2.25rem);
  display: grid;
  min-height: 0;
  place-items: center;
  pointer-events: none;
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.site-atlas-model-takeover[hidden] {
  display: none;
}

.site-atlas-shell.is-model-takeover .site-atlas-map,
.site-atlas-shell.is-model-takeover .site-atlas-map * {
  pointer-events: none;
}

.site-atlas-shell.is-model-takeover .site-atlas-map {
  opacity: 0.2;
  filter: saturate(0.58) brightness(0.76);
}

.site-atlas-shell.is-model-takeover .site-atlas-regional-context,
.site-atlas-shell.is-model-takeover .site-map-legend--floating {
  opacity: 0.14;
  pointer-events: none;
}

.site-atlas-map,
.site-atlas-regional-context,
.site-map-legend--floating {
  transition: opacity 190ms ease-out, filter 190ms ease-out;
}

.site-atlas-left-rail,
.site-atlas-asset-overlay,
.site-atlas-regional-context,
.site-map-legend--floating {
  position: absolute;
  z-index: 700;
  border: 1px solid rgba(255, 255, 255, 0.72);
  background: var(--atlas-panel);
  box-shadow: var(--atlas-shadow);
}

.site-atlas-left-rail {
  top: 0.75rem;
  bottom: 0.75rem;
  left: 0.75rem;
  display: flex;
  flex-direction: column;
  width: var(--site-atlas-left-rail-width);
  overflow-y: auto;
}

.site-atlas-left-rail > * {
  flex: 0 0 auto;
}

.site-atlas-regional-context {
  top: 0.75rem;
  right: 0.75rem;
  display: grid;
  width: min(15rem, calc(100vw - 22.5rem));
  gap: 0.52rem;
  padding: 0.72rem;
}

.site-atlas-regional-context p,
.site-atlas-regional-context strong {
  margin: 0;
}

.site-atlas-regional-context__header {
  display: grid;
  gap: 0.42rem;
}

.site-atlas-regional-context p {
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-atlas-regional-context strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.05;
}

.site-atlas-regional-island-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.36rem;
}

.site-atlas-regional-nav__button {
  appearance: none;
  border: 1px solid var(--line);
  border-radius: 999px;
  width: 1.6rem;
  height: 1.6rem;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  background: rgba(252, 250, 244, 0.96);
  color: var(--ink);
  padding: 0;
  flex: 0 0 auto;
}

.site-atlas-regional-nav__button:hover {
  background: var(--surface-strong);
}

.site-atlas-regional-nav__button:focus-visible {
  outline: 2px solid rgba(24, 59, 115, 0.24);
  outline-offset: 2px;
}

.site-atlas-regional-nav__button:disabled {
  opacity: 0.36;
  cursor: default;
}

.site-atlas-regional-nav__button .material-symbols-rounded {
  font-size: 1rem;
}

.site-atlas-regional-island-nav [data-site-regional-label] {
  display: inline-block;
  max-width: 10.4rem;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-atlas-regional-map {
  height: 10rem;
  min-height: 10rem;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--map-water);
}

.site-atlas-regional-map .embedded-map__canvas {
  min-height: 10rem;
}

.site-atlas-regional-map .leaflet-control-container {
  display: none;
}

.site-atlas-identity,
.site-atlas-brief,
.site-atlas-context,
.site-atlas-mini-records,
.site-atlas-model-note {
  display: grid;
  gap: 0.48rem;
}

.site-atlas-identity {
  min-height: 9.7rem;
  background:
    radial-gradient(circle at 86% 8%, rgba(232, 232, 228, 0.18), rgba(64, 64, 60, 0.04) 36%, rgba(38, 38, 36, 0) 64%),
    linear-gradient(155deg, rgba(44, 44, 41, 0.04) 0%, rgba(38, 38, 36, 0.18) 58%, rgba(22, 22, 20, 0.74) 100%),
    var(--site-atlas-identity-image, linear-gradient(135deg, #4a4a46, #c9c7be));
  background-position: center;
  background-size: cover;
  color: var(--surface-strong);
}

.site-atlas-identity__scrim {
  display: grid;
  align-content: end;
  min-height: 9.7rem;
  gap: 0.3rem;
  padding: 0.95rem;
  background:
    radial-gradient(circle at 92% 7%, rgba(232, 232, 228, 0.14), rgba(44, 44, 41, 0) 58%),
    linear-gradient(180deg, rgba(38, 38, 36, 0.03) 0%, rgba(36, 36, 34, 0.28) 53%, rgba(22, 22, 20, 0.78) 100%);
}

.site-atlas-identity p,
.site-atlas-identity h1,
.site-atlas-identity h1 span,
.site-atlas-identity span,
.site-atlas-brief p,
.site-atlas-control-caption {
  margin: 0;
}

.site-atlas-identity p,
.site-atlas-identity span {
  color: rgba(255, 252, 246, 0.78);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.site-atlas-identity h1 {
  display: flex;
  align-items: baseline;
  gap: 0.48rem;
  color: var(--surface-strong);
  font-family: var(--font-display);
  overflow: hidden;
  font-size: 1.72rem;
  font-weight: 400;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.site-atlas-identity h1 span {
  min-width: 0;
  color: rgba(255, 252, 246, 0.82);
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  text-transform: none;
}

.site-atlas-brief {
  border-bottom: 1px solid var(--line);
  padding: 0.78rem 0.9rem;
}

.site-atlas-brief p {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 0.82rem;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-height: 1.35;
}

.site-atlas-context,
.site-atlas-mini-records {
  border-bottom: 1px solid var(--line);
}

.site-atlas-rail-head strong,
.site-atlas-context h2,
.site-atlas-model-note strong {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 400;
  line-height: 1.08;
}

.site-atlas-context p,
.site-atlas-model-note p {
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.42;
}

.site-atlas-counts {
  display: none;
}

.site-atlas-control-caption {
  margin: 0.62rem 0.8rem 0;
  color: var(--muted);
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-atlas-layer-switch,
.site-atlas-asset-switch {
  display: grid;
  gap: 1px;
  margin: 0.34rem 0.8rem 0;
  border: 1px solid var(--line);
  background: var(--line);
}

.site-atlas-layer-switch {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.site-atlas-asset-switch {
  grid-template-columns: 1fr;
}

.site-atlas-layer-switch button,
.site-atlas-asset-switch button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.35rem;
  gap: 0.35rem;
  border: 0;
  border-radius: 0;
  background: rgba(255, 252, 246, 0.78);
  color: var(--ink-soft);
  cursor: pointer;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 900;
  padding: 0 0.55rem;
}

.site-atlas-layer-switch button {
  min-height: 1.92rem;
  background: rgba(255, 252, 246, 0.58);
  color: var(--muted);
  font-size: 0.64rem;
  padding: 0 0.36rem;
}

.site-atlas-asset-switch button {
  min-height: 2.44rem;
  background: rgba(255, 252, 246, 0.9);
  color: var(--ink-soft);
  font-size: 0.76rem;
  padding: 0 0.62rem;
}

.site-atlas-layer-switch button:hover,
.site-atlas-layer-switch button:focus-visible,
.site-atlas-layer-switch button[aria-pressed="true"],
.site-atlas-asset-switch button:hover,
.site-atlas-asset-switch button:focus-visible,
.site-atlas-asset-switch button[aria-pressed="true"] {
  background: var(--accent);
  color: var(--surface-strong);
  outline: none;
}

.site-atlas-layer-switch button[disabled],
.site-atlas-layer-switch button[disabled]:hover,
.site-atlas-layer-switch button[disabled]:focus-visible,
.site-atlas-layer-switch button[disabled][aria-pressed="true"],
.site-atlas-asset-switch button[disabled],
.site-atlas-asset-switch button[disabled]:hover,
.site-atlas-asset-switch button[disabled]:focus-visible,
.site-atlas-asset-switch button[disabled][aria-pressed="true"] {
  background: rgba(243, 240, 234, 0.86);
  color: var(--muted);
  cursor: not-allowed;
  outline: none;
}

.site-atlas-layer-switch .material-symbols-rounded,
.site-atlas-asset-switch .material-symbols-rounded {
  flex: 0 0 auto;
  font-size: 1.02rem;
}

.site-atlas-layer-switch .material-symbols-rounded {
  font-size: 0.9rem;
}

.site-atlas-asset-switch .material-symbols-rounded {
  font-size: 1.12rem;
}

.site-atlas-layer-switch button {
  justify-content: center;
}

.site-atlas-asset-switch button {
  display: grid;
  grid-template-columns: 1.15rem minmax(0, 1fr) auto;
  text-align: left;
}

.site-atlas-asset-switch b {
  display: inline-grid;
  min-width: 1.7rem;
  min-height: 1.35rem;
  place-items: center;
  border: 1px solid rgba(30, 49, 84, 0.26);
  background: rgba(245, 240, 231, 0.58);
  color: inherit;
  font-size: 0.66rem;
  line-height: 1;
}

.site-atlas-mini-records {
  align-content: start;
  display: block;
  gap: 0;
  overflow: visible;
  padding-bottom: 0.8rem;
}

.site-atlas-mini-record-links {
  display: grid;
  gap: 1px;
  margin: 0.34rem 0.8rem 0;
  border: 1px solid var(--line);
  background: var(--line);
}

.site-atlas-mini-records a {
  justify-content: start;
  min-height: 2.35rem;
  border: 0;
  background: rgba(255, 252, 246, 0.78);
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 900;
  padding: 0 0.55rem;
  width: 100%;
}

.site-atlas-asset-pane .site-profile-workbench {
  border: 0;
  background: transparent;
  box-shadow: none;
  overflow: auto;
}

.site-atlas-asset-pane .site-profile-chart {
  min-height: 19rem;
}

.site-atlas-asset-pane .site-profile-svg {
  min-width: 38rem;
}

.site-atlas-asset-overlay {
  top: 0.75rem;
  bottom: 0.75rem;
  left: 21rem;
  display: flex;
  width: min(44rem, calc(100% - 22.5rem));
  min-width: 29rem;
  flex-direction: column;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-0.65rem);
  transition: opacity 180ms ease, transform 180ms ease;
}

.site-atlas-asset-overlay.open {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}

.site-map-legend--floating {
  right: 0.75rem;
  bottom: 3.8rem;
  display: grid;
  width: min(22rem, calc(100% - 22.5rem));
  gap: 0.52rem;
  padding: 0.82rem;
}

.site-map-legend--floating[hidden] {
  display: none;
}

.site-atlas-shell .leaflet-control-scale {
  margin-left: 21rem;
}

.site-atlas-shell .site-atlas-map .leaflet-top.leaflet-left {
  left: 21rem;
  top: 0.75rem;
}

.site-atlas-asset-head {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 4rem;
  border-bottom: 1px solid var(--line);
  background: var(--atlas-panel-strong);
  padding: 0.65rem 0.9rem;
}

.site-atlas-asset-head h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 400;
}

.site-atlas-asset-head button {
  display: grid;
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 0;
  background: transparent;
  color: var(--ink-soft);
  cursor: pointer;
}

.site-atlas-asset-head button:hover,
.site-atlas-asset-head button:focus-visible {
  background: var(--accent);
  color: var(--surface-strong);
  outline: 2px solid rgba(24, 59, 115, 0.25);
  outline-offset: 2px;
}

.site-atlas-asset-body {
  position: relative;
  min-height: 0;
  flex: 1;
}

.site-atlas-asset-pane {
  position: absolute;
  inset: 0;
  display: none;
  overflow: auto;
  padding: 1rem;
}

.site-atlas-asset-pane.active {
  display: grid;
  align-content: start;
  gap: 0.9rem;
}

.site-atlas-asset-pane .site-photo-panel {
  display: grid;
  min-height: 100%;
  gap: 0.85rem;
}

.site-atlas-asset-pane .site-photo-browser {
  max-height: none;
  min-height: 0;
}

.site-atlas-asset-pane .site-photo-grid--review {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 7.4rem), 1fr));
}

.site-atlas-model-frame {
  position: relative;
  display: grid;
  min-height: 20rem;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.22);
  background:
    radial-gradient(circle at 50% 52%, rgba(127, 167, 180, 0.24), transparent 58%),
    linear-gradient(180deg, #1e3154, #17345f);
  color: var(--surface-strong);
}

.site-atlas-model-takeover .site-atlas-model-frame {
  width: min(100%, calc((100vh - 9.5rem) * 16 / 9));
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: 16 / 9;
  min-height: 0;
  border: 1px solid oklch(64% 0.024 244 / 0.24);
  box-shadow: 0 24px 70px rgba(16, 25, 40, 0.34);
  pointer-events: auto;
  animation: siteModelFrameArrive 320ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.site-atlas-model-video {
  width: 100%;
  min-height: 100%;
  height: 100%;
  border: 0;
  object-fit: contain;
  background: #031124;
}

.site-atlas-model-video--turntable {
  transition: opacity 180ms ease-out;
}

.site-atlas-model-video--transition,
.site-atlas-model-video--hero {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease-out;
}

.site-atlas-model-video--transition {
  z-index: 2;
}

.site-atlas-model-video--hero {
  z-index: 3;
}

.site-atlas-model-video--transition[hidden],
.site-atlas-model-video--hero[hidden] {
  display: none;
}

.site-atlas-model-video--transition.is-active,
.site-atlas-model-video--hero.is-active {
  opacity: 1;
}

.site-atlas-model-frame.is-transitioning .site-atlas-model-video--turntable,
.site-atlas-model-frame.is-hero-playing .site-atlas-model-video--turntable,
.site-atlas-model-frame.is-transition-complete .site-atlas-model-video--turntable {
  opacity: 0;
}

.site-atlas-model-instrument {
  position: absolute;
  z-index: 4;
  inset: 0;
  color: oklch(85% 0.018 232 / 0.72);
  opacity: 0;
  pointer-events: none;
  text-shadow: 0 1px 14px oklch(11% 0.044 246 / 0.58);
  transition: opacity 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-atlas-model-takeover .site-atlas-model-instrument,
.site-atlas-model-frame.is-model-overlay-active .site-atlas-model-instrument,
.site-atlas-model-frame.is-transition-queued .site-atlas-model-instrument,
.site-atlas-model-frame.is-transitioning .site-atlas-model-instrument,
.site-atlas-model-frame.is-hero-playing .site-atlas-model-instrument,
.site-atlas-model-frame.is-transition-complete .site-atlas-model-instrument {
  opacity: 1;
}

.site-atlas-model-frame.is-transition-queued .site-atlas-model-instrument,
.site-atlas-model-frame.is-transitioning .site-atlas-model-instrument {
  color: oklch(87% 0.026 226 / 0.76);
}

.site-atlas-model-calibration,
.site-atlas-model-corner,
.site-atlas-model-readout,
.site-atlas-model-bearing,
.site-atlas-model-progress {
  position: absolute;
}

.site-atlas-model-calibration {
  --site-model-major-tick: 2rem;
  --site-model-minor-tick: 0.4rem;
  --site-model-major-tick-length: 0.55rem;
  --site-model-minor-tick-length: 0.22rem;
  opacity: 0.58;
}

.site-atlas-model-calibration--top,
.site-atlas-model-calibration--bottom {
  right: clamp(1.4rem, 4.1%, 2.4rem);
  left: clamp(1.4rem, 4.1%, 2.4rem);
  height: var(--site-model-major-tick-length);
  background:
    repeating-linear-gradient(
      90deg,
      currentColor 0 1px,
      transparent 1px var(--site-model-major-tick)
    ),
    repeating-linear-gradient(
      90deg,
      currentColor 0 1px,
      transparent 1px var(--site-model-minor-tick)
    );
  background-size: auto 100%, auto var(--site-model-minor-tick-length);
  background-position: left top, left top;
  background-repeat: repeat-x;
  mask-image: linear-gradient(90deg, transparent 0%, black 7%, black 93%, transparent 100%);
}

.site-atlas-model-calibration--top {
  top: clamp(0.72rem, 2.6%, 1.25rem);
}

.site-atlas-model-calibration--bottom {
  bottom: clamp(0.72rem, 2.6%, 1.25rem);
  transform: scaleY(-1);
}

.site-atlas-model-calibration--left,
.site-atlas-model-calibration--right {
  top: clamp(1.35rem, 4%, 2.35rem);
  bottom: clamp(1.35rem, 4%, 2.35rem);
  width: var(--site-model-major-tick-length);
  background:
    repeating-linear-gradient(
      180deg,
      currentColor 0 1px,
      transparent 1px var(--site-model-major-tick)
    ),
    repeating-linear-gradient(
      180deg,
      currentColor 0 1px,
      transparent 1px var(--site-model-minor-tick)
    );
  background-size: 100% auto, var(--site-model-minor-tick-length) auto;
  background-position: left top, left top;
  background-repeat: repeat-y;
  mask-image: linear-gradient(180deg, transparent 0%, black 7%, black 93%, transparent 100%);
}

.site-atlas-model-calibration--left {
  left: clamp(0.72rem, 2.6%, 1.25rem);
}

.site-atlas-model-calibration--right {
  right: clamp(0.72rem, 2.6%, 1.25rem);
  transform: scaleX(-1);
}

.site-atlas-model-corner {
  width: clamp(1.55rem, 4.2%, 2.4rem);
  height: clamp(1.55rem, 4.2%, 2.4rem);
  border-color: oklch(82% 0.02 234 / 0.54);
  opacity: 0.78;
}

.site-atlas-model-corner--nw {
  top: clamp(0.85rem, 3.1%, 1.55rem);
  left: clamp(0.85rem, 3.1%, 1.55rem);
  border-top: 1px solid;
  border-left: 1px solid;
}

.site-atlas-model-corner--ne {
  top: clamp(0.85rem, 3.1%, 1.55rem);
  right: clamp(0.85rem, 3.1%, 1.55rem);
  border-top: 1px solid;
  border-right: 1px solid;
}

.site-atlas-model-corner--se {
  right: clamp(0.85rem, 3.1%, 1.55rem);
  bottom: clamp(0.85rem, 3.1%, 1.55rem);
  border-right: 1px solid;
  border-bottom: 1px solid;
}

.site-atlas-model-corner--sw {
  bottom: clamp(0.85rem, 3.1%, 1.55rem);
  left: clamp(0.85rem, 3.1%, 1.55rem);
  border-bottom: 1px solid;
  border-left: 1px solid;
}

.site-atlas-model-readout {
  display: grid;
  gap: 0.14rem;
  min-width: 6.6rem;
  border: 1px solid oklch(72% 0.022 236 / 0.24);
  background: oklch(15% 0.04 246 / 0.42);
  box-shadow:
    0 9px 24px oklch(10% 0.038 247 / 0.2),
    inset 0 1px 0 oklch(90% 0.012 238 / 0.08);
  padding: 0.48rem 0.58rem;
  backdrop-filter: saturate(1.05);
}

.site-atlas-model-readout__label {
  color: oklch(76% 0.02 232 / 0.58);
  font-size: 0.52rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  line-height: 1;
  text-transform: uppercase;
}

.site-atlas-model-readout__value {
  color: oklch(91% 0.014 238 / 0.9);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  line-height: 1;
  text-transform: uppercase;
}

.site-atlas-model-readout--mode {
  top: max(1.45rem, 4.8%);
  right: max(1.45rem, 4.8%);
}

.site-atlas-model-readout--time {
  right: max(1.45rem, 4.8%);
  bottom: max(4.55rem, 13%);
}

.site-atlas-model-bearing {
  bottom: max(1.75rem, 5.4%);
  left: max(1.45rem, 4.8%);
  opacity: 0;
  transform: translate3d(0, 0.18rem, 0);
  transition:
    opacity 180ms ease-out,
    transform 180ms ease-out,
    visibility 0s linear 180ms;
  visibility: hidden;
}

.site-atlas-model-frame[data-site-model-state="idle"] .site-atlas-model-bearing,
.site-atlas-model-frame[data-site-model-state="queued"] .site-atlas-model-bearing {
  opacity: 0.5;
  transform: translate3d(0, 0, 0);
  transition-delay: 0s;
  visibility: visible;
}

.site-atlas-model-bearing span {
  color: oklch(89% 0.012 236 / 0.58);
  font-size: 0.58rem;
  font-weight: 250;
  letter-spacing: 0.08em;
  line-height: 1;
  text-shadow: 0 1px 10px oklch(8% 0.032 246 / 0.5);
  text-transform: none;
}

.site-atlas-model-progress {
  right: max(1.45rem, 4.8%);
  bottom: max(1.15rem, 4.2%);
  left: max(1.45rem, 4.8%);
  height: 1px;
  overflow: hidden;
  background: oklch(80% 0.02 236 / 0.18);
  opacity: 0.84;
}

.site-atlas-model-progress span {
  display: block;
  width: calc(var(--site-model-progress, 0) * 100%);
  height: 100%;
  background: oklch(88% 0.024 226 / 0.72);
  box-shadow: 0 0 12px oklch(78% 0.048 226 / 0.24);
  transition: width 120ms linear;
}

.site-atlas-model-frame[data-site-model-state="heroing"] .site-atlas-model-progress span,
.site-atlas-model-frame[data-site-model-state="complete"] .site-atlas-model-progress span {
  background: oklch(86% 0.034 184 / 0.68);
}

.site-atlas-model-frame[data-site-model-state="error"] .site-atlas-model-progress span {
  background: oklch(72% 0.112 42 / 0.74);
}

.site-atlas-model-overlay {
  position: absolute;
  z-index: 4;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.992);
  transform-origin: center;
}

.site-atlas-model-frame.is-model-overlay-active .site-atlas-model-overlay {
  opacity: 1;
  transform: scale(1);
  transition: opacity 260ms cubic-bezier(0.22, 1, 0.36, 1), transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-atlas-model-frame.is-transition-queued .site-atlas-model-overlay,
.site-atlas-model-frame.is-transitioning .site-atlas-model-overlay,
.site-atlas-model-frame.is-hero-playing .site-atlas-model-overlay,
.site-atlas-model-frame.is-transition-complete .site-atlas-model-overlay {
  animation: siteModelOverlayExit 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.site-atlas-model-info {
  position: absolute;
  top: max(2.2rem, 6%);
  left: max(2rem, 5.2%);
  display: grid;
  width: min(21rem, 44%);
  gap: 0.9rem;
  color: oklch(89% 0.018 238 / 0.88);
  opacity: 0;
  pointer-events: auto;
  text-shadow: 0 2px 18px oklch(12% 0.046 247 / 0.46);
  transform: translate3d(0, 0.45rem, 0);
}

.site-atlas-model-frame.is-model-overlay-active .site-atlas-model-info {
  animation: siteModelInfoIn 360ms cubic-bezier(0.22, 1, 0.36, 1) 220ms both;
}

.site-atlas-model-frame.is-transition-queued .site-atlas-model-info,
.site-atlas-model-frame.is-transitioning .site-atlas-model-info,
.site-atlas-model-frame.is-hero-playing .site-atlas-model-info,
.site-atlas-model-frame.is-transition-complete .site-atlas-model-info {
  animation: siteModelInfoExit 240ms cubic-bezier(0.22, 1, 0.36, 1) both;
  pointer-events: none;
}

.site-atlas-model-info__copy {
  display: grid;
  gap: 0.35rem;
}

.site-atlas-model-info__plate,
.site-atlas-model-info__title,
.site-atlas-model-info__setting,
.site-atlas-model-info__detail {
  min-height: 1em;
}

.site-atlas-model-info__plate {
  position: relative;
  width: max-content;
  max-width: 100%;
  margin: 0;
  color: oklch(87% 0.016 238 / 0.74);
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.05;
  padding-bottom: 0.34rem;
  text-transform: uppercase;
}

.site-atlas-model-info__plate::before {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: oklch(63% 0.028 245 / 0.32);
  content: "";
  opacity: 0.96;
  transform: scaleX(0);
  transform-origin: left center;
}

.site-atlas-model-info__plate.is-rule-revealed::before {
  transform: scaleX(1);
  transition: transform 680ms cubic-bezier(0.16, 1, 0.3, 1);
}

.site-atlas-model-info__title {
  margin: 0.28rem 0 0.22rem;
  color: oklch(93% 0.014 238 / 0.9);
  font-family: var(--font-display);
  font-size: 1.68rem;
  font-weight: 300;
  line-height: 1.03;
}

.site-atlas-model-info__setting {
  margin: 0;
  color: oklch(73% 0.054 225 / 0.86);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
}

.site-atlas-model-info__detail {
  margin: 0.04rem 0 0;
  color: oklch(83% 0.018 238 / 0.72);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.site-atlas-model-info [data-site-model-type].is-typing::after {
  content: "";
  display: inline-block;
  width: 0.55ch;
  height: 0.82em;
  margin-left: 0.12ch;
  border-right: 1px solid oklch(80% 0.038 230 / 0.56);
  transform: translateY(0.09em);
  animation: siteModelTypeCaret 720ms steps(2, end) infinite;
}

.site-atlas-model-explore {
  display: inline-flex;
  width: fit-content;
  min-height: 2.6rem;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid oklch(65% 0.032 242 / 0.42);
  background: oklch(18% 0.046 247 / 0.72);
  color: oklch(88% 0.018 238 / 0.9);
  padding: 0.62rem 0.82rem;
  box-shadow: 0 10px 28px oklch(10% 0.038 247 / 0.28);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 0.32rem, 0);
  text-transform: uppercase;
  transition: background 170ms cubic-bezier(0.22, 1, 0.36, 1), border-color 170ms cubic-bezier(0.22, 1, 0.36, 1), color 170ms cubic-bezier(0.22, 1, 0.36, 1), transform 170ms cubic-bezier(0.22, 1, 0.36, 1), opacity 170ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-atlas-model-frame.is-model-cta-ready:not(.is-transition-queued):not(.is-transitioning):not(.is-hero-playing):not(.is-transition-complete) .site-atlas-model-explore {
  opacity: 1;
  pointer-events: auto;
}

.site-atlas-model-frame.is-model-cta-ready:not(.is-transition-queued):not(.is-transitioning):not(.is-hero-playing):not(.is-transition-complete) .site-atlas-model-explore:not(:hover):not(:focus-visible) {
  animation: siteModelExploreNudge 4.8s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.site-atlas-model-explore .material-symbols-rounded {
  font-size: 1.15rem;
  line-height: 1;
}

.site-atlas-model-explore:hover,
.site-atlas-model-explore:focus-visible {
  animation: none;
  border-color: oklch(79% 0.038 230 / 0.62);
  background: oklch(24% 0.06 244 / 0.82);
  color: oklch(95% 0.012 92 / 0.94);
  transform: translate3d(0, -1px, 0);
}

.site-atlas-model-explore:focus-visible {
  outline: 2px solid oklch(82% 0.038 230 / 0.58);
  outline-offset: 3px;
}

.site-atlas-model-explore:disabled {
  cursor: progress;
  opacity: 0.64;
}

.site-atlas-model-sequence-status {
  position: absolute;
  z-index: 5;
  left: max(1.45rem, 4.8%);
  bottom: max(1.35rem, 4.8%);
  display: inline-flex;
  max-width: min(24rem, 46%);
  min-height: 2.35rem;
  align-items: center;
  border: 1px solid oklch(65% 0.032 242 / 0.34);
  background: oklch(14% 0.04 247 / 0.76);
  color: oklch(86% 0.018 238 / 0.82);
  padding: 0.56rem 0.72rem;
  box-shadow: 0 10px 28px oklch(10% 0.038 247 / 0.24);
  font-size: 0.64rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  text-transform: uppercase;
  transform: translate3d(0, 0.32rem, 0);
}

.site-atlas-model-sequence-status[hidden] {
  display: none;
}

.site-atlas-model-sequence-status:not([hidden]) {
  animation: siteModelReturnIn 340ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.site-atlas-model-sequence-status[data-status-kind="error"] {
  border-color: oklch(68% 0.09 36 / 0.48);
  color: oklch(88% 0.052 55 / 0.92);
}

.site-atlas-model-hero-controls {
  position: absolute;
  z-index: 5;
  right: max(1.45rem, 4.8%);
  bottom: max(1.35rem, 4.8%);
  display: flex;
  align-items: center;
  gap: 0.38rem;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 0.45rem, 0);
}

.site-atlas-model-hero-controls[hidden] {
  display: none;
}

.site-atlas-model-frame.is-return-ready .site-atlas-model-hero-controls {
  opacity: 1;
  pointer-events: auto;
  animation: siteModelReturnIn 520ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.site-atlas-model-frame.is-sequence-recovery .site-atlas-model-hero-control:not(.site-atlas-model-return) {
  display: none;
}

.site-atlas-model-hero-control {
  display: inline-flex;
  min-height: 2.6rem;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  border: 1px solid oklch(65% 0.032 242 / 0.42);
  background: oklch(18% 0.046 247 / 0.72);
  color: oklch(88% 0.018 238 / 0.9);
  padding: 0.62rem 0.82rem;
  box-shadow: 0 10px 28px oklch(10% 0.038 247 / 0.28);
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background 170ms cubic-bezier(0.22, 1, 0.36, 1), border-color 170ms cubic-bezier(0.22, 1, 0.36, 1), color 170ms cubic-bezier(0.22, 1, 0.36, 1), transform 170ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-atlas-model-hero-control--icon {
  width: 2.6rem;
  padding-inline: 0;
}

.site-atlas-model-hero-control--toggle {
  min-width: 6.1rem;
}

.site-atlas-model-hero-control .material-symbols-rounded {
  font-size: 1.12rem;
  line-height: 1;
}

.site-atlas-model-hero-control:hover,
.site-atlas-model-hero-control:focus-visible {
  border-color: oklch(79% 0.038 230 / 0.62);
  background: oklch(24% 0.06 244 / 0.82);
  color: oklch(95% 0.012 92 / 0.94);
  transform: translate3d(0, -1px, 0);
}

.site-atlas-model-hero-control:focus-visible {
  outline: 2px solid oklch(82% 0.038 230 / 0.58);
  outline-offset: 3px;
}

.site-atlas-model-hero-control:disabled {
  cursor: not-allowed;
  opacity: 0.42;
  transform: none;
}

.site-atlas-model-hero-control:disabled:hover {
  border-color: oklch(65% 0.032 242 / 0.42);
  background: oklch(18% 0.046 247 / 0.72);
  color: oklch(88% 0.018 238 / 0.9);
}

.site-atlas-model-frame > .material-symbols-rounded {
  color: rgba(255, 252, 246, 0.72);
  font-size: 4.6rem;
}

@keyframes siteModelFrameArrive {
  from {
    opacity: 0;
    transform: scale3d(0.965, 0.965, 1);
  }

  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}

@keyframes siteModelInfoIn {
  from {
    opacity: 0;
    transform: translate3d(0, 0.45rem, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes siteModelInfoExit {
  from {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  to {
    opacity: 0;
    transform: translate3d(0, -0.42rem, 0);
  }
}

@keyframes siteModelOverlayExit {
  from {
    opacity: 1;
    transform: scale(1);
  }

  to {
    opacity: 0;
    transform: scale(1.006);
  }
}

@keyframes siteModelTypeCaret {
  0%,
  45% {
    opacity: 1;
  }

  46%,
  100% {
    opacity: 0;
  }
}

@keyframes siteModelExploreNudge {
  0%,
  68%,
  100% {
    transform: translate3d(0, 0, 0);
  }

  6%,
  76% {
    transform: translate3d(0, -2px, 0);
  }

  12%,
  84% {
    transform: translate3d(0, 0, 0);
  }

  18%,
  92% {
    transform: translate3d(0, -1px, 0);
  }
}

@keyframes siteModelReturnIn {
  0% {
    opacity: 0;
    transform: translate3d(0, 0.55rem, 0);
  }

  62% {
    opacity: 1;
    transform: translate3d(0, -2px, 0);
  }

  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-atlas-model-takeover .site-atlas-model-frame,
  .site-atlas-model-frame.is-model-overlay-active .site-atlas-model-info,
  .site-atlas-model-frame.is-model-overlay-active .site-atlas-model-explore,
  .site-atlas-model-frame.is-transition-queued .site-atlas-model-overlay,
  .site-atlas-model-frame.is-transition-queued .site-atlas-model-info,
  .site-atlas-model-frame.is-transitioning .site-atlas-model-overlay,
  .site-atlas-model-frame.is-transitioning .site-atlas-model-info,
  .site-atlas-model-frame.is-hero-playing .site-atlas-model-overlay,
  .site-atlas-model-frame.is-hero-playing .site-atlas-model-info,
  .site-atlas-model-frame.is-transition-complete .site-atlas-model-overlay,
  .site-atlas-model-frame.is-transition-complete .site-atlas-model-info,
  .site-atlas-model-instrument,
  .site-atlas-model-progress span,
  .site-atlas-model-frame.is-return-ready .site-atlas-model-hero-controls,
  .site-atlas-model-sequence-status:not([hidden]),
  .site-atlas-model-info__plate.is-rule-revealed::before,
  .site-atlas-model-info [data-site-model-type].is-typing::after {
    animation-duration: 1ms;
    animation-iteration-count: 1;
    transition-duration: 1ms;
  }
}

@media (max-width: 1180px) {
  .site-atlas-model-readout {
    padding: 0.42rem 0.5rem;
  }

  .site-atlas-model-readout__label {
    font-size: 0.48rem;
  }

  .site-atlas-model-readout__value {
    font-size: 0.6rem;
  }

  .site-atlas-model-bearing span {
    font-size: 0.52rem;
  }
}

.site-atlas-model-note {
  border: 1px solid var(--line);
  background: rgba(255, 252, 246, 0.72);
}

.site-atlas-no-photogrammetry-note {
  margin: 0 0.35rem 0.7rem;
  border: 1px solid rgba(23, 52, 95, 0.2);
  border-radius: 0.55rem;
  background: rgba(255, 252, 246, 0.86);
  padding: 0.28rem 0.44rem;
  font-size: 0.67rem;
  line-height: 1.3;
  color: rgba(23, 52, 95, 0.87);
}

@media (max-width: 1280px) {
  .site-atlas-asset-overlay {
    right: 0.75rem;
    width: auto;
    min-width: 24rem;
  }

  .site-map-legend--floating {
    width: min(20rem, calc(100% - 22.5rem));
  }
}

@media (max-width: 1040px) {
  .site-atlas-shell {
    height: auto;
    max-height: none;
    min-height: 0;
  }

  .site-atlas-workspace {
    display: grid;
    min-height: auto;
    overflow: visible;
    background: var(--bg);
  }

  .site-atlas-map,
  .site-atlas-map .embedded-map__canvas,
  .site-atlas-left-rail,
  .site-atlas-asset-overlay,
  .site-atlas-regional-context,
  .site-map-legend--floating {
    position: relative;
    inset: auto;
    width: auto;
    min-width: 0;
  }

  .site-atlas-map {
    min-height: 34rem;
    border-bottom: 1px solid var(--line-strong);
  }

  .site-atlas-left-rail,
  .site-atlas-asset-overlay,
  .site-atlas-regional-context,
  .site-map-legend--floating {
    margin: 0.75rem;
  }

  .site-atlas-left-rail {
    --site-atlas-left-rail-width: auto;
    max-height: none;
  }

  .site-atlas-no-photogrammetry-note {
    margin: 0.25rem 0 0.6rem;
  }

  .site-atlas-shell .leaflet-control-scale {
    margin-left: 0.75rem;
  }

  .site-atlas-shell .site-atlas-map .leaflet-top.leaflet-left {
    left: 0.75rem;
  }

  .site-atlas-asset-overlay {
    display: none;
    transform: none;
  }

  .site-atlas-asset-overlay.open {
    display: flex;
  }

  .site-atlas-model-takeover {
    position: relative;
    inset: auto;
    margin: 0.75rem;
  }

  .site-atlas-model-takeover .site-atlas-model-frame {
    width: 100%;
  }

  .site-atlas-model-info {
    top: max(1.4rem, 5%);
    left: max(1.25rem, 5%);
    width: min(22rem, 72%);
  }

  .site-atlas-asset-body {
    min-height: 28rem;
  }

  .site-map-legend--floating[hidden] {
    display: none;
  }
}

@media (max-width: 640px) {
  .site-atlas-shell {
    margin: 0.5rem;
  }

  .site-atlas-map {
    min-height: 26rem;
  }

  .site-atlas-layer-switch,
  .site-atlas-asset-switch {
    grid-template-columns: 1fr;
  }

  .site-atlas-asset-pane .site-profile-chart {
    min-height: 16rem;
  }

  .site-atlas-model-info {
    width: min(18.5rem, 78%);
    gap: 0.58rem;
  }

  .site-atlas-model-info__plate {
    font-size: 0.84rem;
  }

  .site-atlas-model-info__title {
    font-size: 1.06rem;
  }

  .site-atlas-model-info__setting {
    font-size: 0.62rem;
  }

  .site-atlas-model-info__detail {
    display: none;
  }

  .site-atlas-model-explore {
    min-height: 2.18rem;
    padding: 0.48rem 0.62rem;
    font-size: 0.6rem;
    letter-spacing: 0.08em;
  }

  .site-atlas-model-sequence-status {
    left: max(0.82rem, 4.5%);
    bottom: max(0.82rem, 4.5%);
    max-width: calc(100% - 1.64rem);
    min-height: 2.18rem;
    padding: 0.48rem 0.62rem;
    font-size: 0.58rem;
    letter-spacing: 0.08em;
  }

  .site-atlas-model-hero-controls {
    right: max(0.82rem, 4.5%);
    bottom: max(0.82rem, 4.5%);
    max-width: calc(100% - 1.64rem);
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .site-atlas-model-hero-control {
    min-height: 2.18rem;
    padding: 0.48rem 0.62rem;
    font-size: 0.6rem;
    letter-spacing: 0.08em;
  }

  .site-atlas-model-hero-control--icon {
    width: 2.18rem;
    padding-inline: 0;
  }

  .site-atlas-asset-pane {
    padding: 0.8rem;
  }

  .site-atlas-asset-pane .site-photo-grid--review {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.daily-log-index {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1rem;
}

.overview-stage--daily-distilled {
  min-height: calc(100svh - var(--nav-height));
  padding-bottom: clamp(0.95rem, 1.8vw, 1.45rem);
  background: var(--bg);
}

.overview-stage--daily-distilled::before {
  background: none;
}

.overview-stage--daily-distilled .overview-stage__image {
  height: 100%;
}

.overview-stage--daily-distilled .overview-hero--logbook {
  min-height: clamp(12rem, 26vh, 18rem);
  padding: clamp(1.3rem, 2.8vw, 2.15rem) clamp(1rem, 2.4vw, 2rem) clamp(1.3rem, 3.6vh, 2.5rem);
}

.overview-stage--daily-distilled .overview-hero__copy {
  width: min(34rem, 100%);
}

.overview-stage--daily-distilled .hero__eyebrow,
.overview-stage--daily-distilled .hero__title,
.overview-stage--daily-distilled .hero__lede {
  color: var(--surface-strong);
  text-shadow: 0 2px 16px rgba(5, 14, 24, 0.36);
}

.overview-stage--daily-distilled .hero__title {
  font-size: clamp(2.85rem, 5vw, 4.1rem);
}

.overview-stage--daily-distilled .hero__lede {
  max-width: 30ch;
  color: rgba(255, 252, 246, 0.84);
}

.overview-stage--daily-distilled .overview-content-shell {
  margin-top: auto;
  padding-top: clamp(4.8rem, 14vh, 10rem);
}

.daily-log-atlas__content {
  margin-top: auto;
}

.daily-log-shell {
  display: grid;
  gap: clamp(0.72rem, 1.35vw, 1rem);
  min-width: 0;
}

.daily-calendar {
  display: grid;
  gap: 0.52rem;
  width: 100%;
  min-width: 0;
}

.daily-calendar [data-island="Atiu"] {
  --island-color: oklch(69% 0.052 214);
}

.daily-calendar [data-island="Rarotonga"] {
  --island-color: oklch(72% 0.055 82);
}

.daily-calendar [data-island="Mangaia"] {
  --island-color: oklch(65% 0.06 144);
}

.daily-calendar [data-island="Mauke"] {
  --island-color: oklch(67% 0.064 42);
}

.daily-calendar [data-island="Mitiaro"] {
  --island-color: oklch(66% 0.055 286);
}

.daily-calendar [data-island="Transit"] {
  --island-color: oklch(69% 0.036 238);
}

.daily-chronology-strip__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 0.75rem;
  color: rgba(255, 252, 246, 0.82);
  text-shadow: 0 1px 10px rgba(5, 14, 24, 0.34);
}

.daily-chronology-strip__head p,
.daily-chronology-strip__head span {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.daily-chronology-strip__head span {
  color: rgba(255, 252, 246, 0.66);
  letter-spacing: 0.04em;
}

.daily-calendar__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.44rem;
  min-width: 0;
}

.daily-calendar__legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  min-height: 1.68rem;
  padding: 0.28rem 0.58rem;
  border: 1px solid rgba(255, 252, 246, 0.2);
  border-radius: 999px;
  background: rgba(9, 20, 34, 0.24);
  color: rgba(255, 252, 246, 0.78);
  font-size: 0.7rem;
  font-weight: 850;
  line-height: 1;
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.34);
}

.daily-calendar__legend span::before {
  content: "";
  width: 0.64rem;
  height: 0.64rem;
  border-radius: 999px;
  background: var(--island-color, rgba(255, 252, 246, 0.58));
  box-shadow: 0 0 0 2px rgba(255, 252, 246, 0.18);
}

.daily-calendar__weekday-row,
.daily-calendar-week__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.44rem;
  min-width: 0;
}

.daily-calendar__weekday-row {
  padding-left: min(8.4rem, 14vw);
  color: rgba(255, 252, 246, 0.64);
}

.daily-calendar__weekday-row span {
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.daily-calendar__weeks {
  display: grid;
  gap: 0.54rem;
  min-width: 0;
}

.daily-calendar-week {
  display: grid;
  grid-template-columns: minmax(6.9rem, 0.12fr) minmax(0, 1fr);
  gap: 0.54rem;
  min-width: 0;
}

.daily-calendar-week__label {
  display: grid;
  align-content: center;
  gap: 0.16rem;
  min-height: 8.25rem;
  padding: 0.62rem 0.72rem;
  border: 1px solid rgba(255, 252, 246, 0.17);
  border-radius: 0.5rem;
  background: rgba(9, 20, 34, 0.27);
  box-shadow: inset 0 1px 0 rgba(255, 252, 246, 0.08);
  color: rgba(255, 252, 246, 0.78);
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.34);
}

.daily-calendar-week__label span {
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.daily-calendar-week__label strong {
  color: rgba(255, 252, 246, 0.9);
  font-family: var(--font-display);
  font-size: 1.04rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.02;
}

.daily-calendar-day {
  --island-color: oklch(70% 0.036 230);
  position: relative;
  display: grid;
  min-height: 8.25rem;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 246, 0.18);
  border-radius: 0.5rem;
  background: rgba(9, 20, 34, 0.2);
  color: rgba(255, 252, 246, 0.9);
  text-decoration: none;
  box-shadow:
    0 16px 30px rgba(5, 14, 24, 0.18),
    inset 0 1px 0 rgba(255, 252, 246, 0.08);
}

.daily-calendar-day::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 0.4rem;
  background: var(--island-color);
}

.daily-calendar-day:hover,
.daily-calendar-day:focus-visible {
  border-color: rgba(255, 252, 246, 0.58);
  outline: 0;
  transform: translateY(-1px);
  box-shadow:
    0 0 0 3px color-mix(in oklch, var(--island-color), transparent 72%),
    0 20px 36px rgba(5, 14, 24, 0.25);
}

.daily-calendar-day:focus-visible {
  box-shadow:
    0 0 0 3px rgba(255, 252, 246, 0.82),
    0 0 0 5px color-mix(in oklch, var(--island-color), rgba(24, 59, 115, 0.36) 42%);
}

.daily-calendar-day img,
.daily-calendar-day__scrim {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.daily-calendar-day img {
  object-fit: cover;
  object-position: center;
  filter: saturate(1.04) contrast(1.03);
}

.daily-calendar-day__scrim {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(9, 20, 34, 0.05) 0%, rgba(9, 20, 34, 0.24) 46%, rgba(9, 20, 34, 0.82) 100%),
    linear-gradient(90deg, color-mix(in oklch, var(--island-color), transparent 72%) 0%, transparent 38%);
}

.daily-calendar-day__copy {
  position: relative;
  z-index: 1;
  display: grid;
  align-content: end;
  gap: 0.12rem;
  min-height: 100%;
  min-width: 0;
  padding: 0.58rem;
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.5);
}

.daily-calendar-day__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.36rem;
  color: rgba(255, 252, 246, 0.76);
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.daily-calendar-day strong,
.daily-calendar-day__date,
.daily-calendar-day__meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-calendar-day strong {
  color: rgba(255, 252, 246, 0.96);
  font-size: 0.84rem;
  font-weight: 900;
  line-height: 1.04;
}

.daily-calendar-day__date,
.daily-calendar-day__meta {
  color: rgba(255, 252, 246, 0.74);
  font-size: 0.62rem;
  font-weight: 820;
  line-height: 1.1;
}

.daily-calendar-day--empty {
  align-content: start;
  gap: 0.24rem;
  padding: 0.64rem;
  border-style: dashed;
  border-color: rgba(255, 252, 246, 0.16);
  background: rgba(9, 20, 34, 0.14);
  box-shadow: inset 0 1px 0 rgba(255, 252, 246, 0.05);
  color: rgba(255, 252, 246, 0.42);
}

.daily-calendar-day--empty::before {
  background: rgba(255, 252, 246, 0.14);
}

.daily-calendar-day--empty span {
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.daily-calendar-day--empty strong {
  color: rgba(255, 252, 246, 0.42);
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 400;
}

.daily-log-filter-sheet {
  width: min(59rem, 100%);
  border: 0;
  background: transparent;
  box-shadow: none;
}

.daily-log-island-select {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.58rem;
  align-items: stretch;
  min-width: 0;
  overflow-x: auto;
  padding: 0;
  scrollbar-color: rgba(30, 49, 84, 0.28) transparent;
}

.daily-log-island-select button {
  display: grid;
  gap: 0.12rem;
  align-content: center;
  min-height: 3.02rem;
  min-width: 0;
  border: 1px solid rgba(255, 252, 246, 0.14);
  border-radius: 0.5rem;
  background: rgba(9, 20, 34, 0.2);
  box-shadow:
    0 15px 32px rgba(9, 20, 34, 0.2),
    inset 0 1px 0 rgba(255, 252, 246, 0.08);
  color: rgba(255, 252, 246, 0.86);
  cursor: pointer;
  font: inherit;
  padding: 0.42rem 0.58rem;
  text-align: left;
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.34);
}

.daily-log-island-select button strong {
  overflow: hidden;
  color: rgba(255, 252, 246, 0.92);
  font-size: 0.8rem;
  font-weight: 850;
  line-height: 1.04;
  text-overflow: ellipsis;
}

.daily-log-island-select button span {
  display: block;
  overflow: hidden;
  color: rgba(255, 252, 246, 0.66);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-log-island-select button:hover,
.daily-log-island-select button:focus-visible,
.daily-log-island-select button.is-active {
  border-color: rgba(255, 252, 246, 0.38);
  background: rgba(255, 252, 246, 0.92);
  box-shadow:
    0 18px 34px rgba(9, 20, 34, 0.28),
    0 0 0 3px rgba(127, 167, 180, 0.13);
  color: var(--accent);
  outline: 0;
  text-shadow: none;
}

.daily-log-island-select button:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 252, 246, 0.82), 0 0 0 5px rgba(24, 59, 115, 0.4);
}

.daily-log-island-select button:hover span,
.daily-log-island-select button:focus-visible span,
.daily-log-island-select button.is-active span {
  color: rgba(24, 59, 115, 0.64);
}

.daily-log-island-select button:hover strong,
.daily-log-island-select button:focus-visible strong,
.daily-log-island-select button.is-active strong {
  color: var(--accent);
}

.daily-log-bottom-rail {
  display: block;
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.daily-log-rail {
  display: grid;
  grid-auto-columns: clamp(13.5rem, 21vw, 18rem);
  grid-auto-flow: column;
  gap: 0.58rem;
  min-width: 0;
  overflow-x: auto;
  padding: 0.02rem 0 0.46rem;
  scroll-padding-inline: 0.08rem;
  scroll-snap-type: x proximity;
  scrollbar-color: rgba(30, 49, 84, 0.28) transparent;
}

.daily-log-card,
.daily-site-log {
  background: var(--surface);
  border: 1px solid var(--line);
  padding: 1.1rem;
  box-shadow: 0 8px 22px rgba(37, 48, 67, 0.06);
}

.daily-log-card[hidden] {
  display: none;
}

.daily-log-card--distilled {
  position: relative;
  aspect-ratio: 16 / 9;
  min-height: 8.6rem;
  overflow: hidden;
  padding: 0;
  border-color: rgba(30, 49, 84, 0.14);
  border-radius: 0.48rem;
  background: rgba(30, 49, 84, 0.08);
  box-shadow: none;
  scroll-snap-align: start;
}

.daily-log-card--distilled:hover,
.daily-log-card--distilled:focus-within {
  border-color: rgba(24, 59, 115, 0.72);
}

.daily-log-card__link {
  position: absolute;
  inset: 0;
  display: block;
  color: inherit;
  text-decoration: none;
}

.daily-log-card__link:focus-visible {
  outline: 3px solid rgba(255, 252, 246, 0.92);
  outline-offset: -5px;
}

.daily-log-card__media {
  min-height: 10rem;
  border-bottom: 1px solid rgba(30, 49, 84, 0.14);
  background:
    linear-gradient(180deg, rgba(9, 20, 34, 0.06) 0%, rgba(9, 20, 34, 0.16) 48%, rgba(9, 20, 34, 0.62) 100%),
    var(--card-photo-image, none),
    var(--card-satellite-image, linear-gradient(135deg, #496878, #d8c8a7));
}

.daily-log-card--distilled .daily-log-card__media {
  position: absolute;
  inset: 0;
  min-height: 100%;
  border: 0;
  background: rgba(30, 49, 84, 0.12);
  filter: saturate(1.04) contrast(1.03);
}

.daily-log-card--distilled .daily-log-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 20, 34, 0.02) 0%, rgba(10, 20, 34, 0.12) 42%, rgba(10, 20, 34, 0.76) 100%);
  pointer-events: none;
}

.daily-log-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.daily-log-card__copy {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: grid;
  gap: 0.12rem;
  padding: 0.64rem;
  color: rgba(255, 252, 246, 0.86);
}

.daily-log-card__day,
.daily-log-card__copy strong,
.daily-log-card__copy span {
  margin: 0;
}

.daily-log-card__day {
  color: rgba(255, 252, 246, 0.74);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1;
  text-transform: uppercase;
}

.daily-log-card__copy strong {
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 400;
  line-height: 1.04;
}

.daily-log-card__copy span:not(.daily-log-card__day) {
  color: rgba(255, 252, 246, 0.8);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
}

.overview-stage--sites-atlas .overview-hero__copy {
  width: min(30rem, 100%);
}

.overview-stage--sites-atlas .hero__lede {
  max-width: 34ch;
}

.overview-stage--sites-atlas .overview-hero--logbook {
  min-height: clamp(9.5rem, 20vh, 12rem);
  padding-bottom: clamp(0.65rem, 1.5vh, 1.2rem);
}

.overview-stage--sites-atlas .overview-content-shell {
  margin-top: auto;
  padding-top: clamp(0.72rem, 2vh, 1.8rem);
}

.sites-atlas-shell {
  display: grid;
  gap: clamp(0.5rem, 1vw, 0.78rem);
  min-width: 0;
  width: 100%;
}

.sites-island-row[data-island="Atiu"] {
  --island-color: oklch(69% 0.052 214);
}

.sites-island-row[data-island="Mangaia"] {
  --island-color: oklch(65% 0.06 144);
}

.sites-island-row[data-island="Mauke"] {
  --island-color: oklch(67% 0.064 42);
}

.sites-island-row[data-island="Mitiaro"] {
  --island-color: oklch(66% 0.055 286);
}

.sites-atlas-head {
  width: 100%;
}

.sites-atlas-tools {
  display: grid;
  grid-template-columns: minmax(18rem, 0.42fr) minmax(0, 1fr);
  gap: 0.58rem;
  align-items: end;
  min-width: 0;
}

.sites-atlas-search {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}

.sites-atlas-search span {
  color: rgba(255, 252, 246, 0.74);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.34);
  text-transform: uppercase;
}

.sites-atlas-search input {
  width: 100%;
  min-height: 2.75rem;
  border: 1px solid rgba(255, 252, 246, 0.26);
  border-radius: 0.32rem;
  background: rgba(6, 22, 34, 0.58);
  color: var(--surface-strong);
  font-size: 0.86rem;
  font-weight: 750;
  padding: 0.62rem 0.78rem;
  box-shadow: inset 0 1px 0 rgba(255, 252, 246, 0.08);
}

.sites-atlas-search input::placeholder {
  color: rgba(255, 252, 246, 0.56);
}

.sites-atlas-search input:focus-visible {
  border-color: rgba(255, 252, 246, 0.68);
  outline: 2px solid rgba(255, 252, 246, 0.42);
  outline-offset: 2px;
}

.sites-atlas-island-index {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
  justify-content: flex-end;
  min-width: 0;
}

.sites-atlas-island-index button {
  display: inline-flex;
  gap: 0.38rem;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  border: 1px solid rgba(255, 252, 246, 0.24);
  border-radius: 999px;
  background: rgba(6, 22, 34, 0.5);
  color: rgba(255, 252, 246, 0.86);
  cursor: pointer;
  padding: 0.48rem 0.68rem;
}

.sites-atlas-island-index button:hover,
.sites-atlas-island-index button:focus-visible {
  border-color: rgba(255, 252, 246, 0.66);
  background: rgba(255, 252, 246, 0.92);
  color: var(--accent);
  outline: 2px solid rgba(255, 252, 246, 0.42);
  outline-offset: 2px;
}

.sites-atlas-island-index button:disabled {
  opacity: 0.42;
  cursor: default;
}

.sites-atlas-island-index strong {
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1;
}

.sites-atlas-island-index span {
  color: inherit;
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  opacity: 0.72;
}

.sites-atlas-browser {
  display: grid;
  gap: 0.66rem;
  min-width: 0;
}

.sites-island-row {
  --sites-row-height: clamp(6.25rem, 7.8vw, 6.9rem);
  --sites-rail-card-height: var(--sites-row-height);
  display: grid;
  grid-template-columns: clamp(12.4rem, 17vw, 15.2rem) minmax(0, 1fr);
  gap: 0.58rem;
  align-items: stretch;
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.sites-island-map-card {
  position: relative;
  height: var(--sites-row-height);
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 246, 0.24);
  border-radius: 0.5rem;
  background: rgba(9, 20, 34, 0.2);
  box-shadow: 0 10px 18px rgba(5, 14, 24, 0.16);
}

.sites-island-map-card__island-panel {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 1000;
  display: flex;
  align-items: flex-end;
  width: 3.35rem;
  padding: 0.48rem 0.34rem 0.54rem 0.76rem;
  background: linear-gradient(90deg, rgba(5, 14, 24, 0.9), rgba(5, 14, 24, 0.58) 70%, rgba(5, 14, 24, 0.12));
  box-shadow: 7px 0 18px rgba(5, 14, 24, 0.34);
  pointer-events: none;
}

.sites-island-map-card__island-panel::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 0.4rem;
  background: var(--island-color, rgba(255, 252, 246, 0.72));
  box-shadow: 1px 0 0 rgba(255, 252, 246, 0.26), 5px 0 14px rgba(5, 14, 24, 0.24);
}

.sites-island-map-card__island-panel strong {
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 400;
  line-height: 1;
  text-shadow: 0 2px 12px rgba(5, 14, 24, 0.56);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.sites-island-map-card__canvas,
.sites-island-map-card .leaflet-container {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-height: 100%;
  background: rgba(14, 29, 47, 0.92);
}

.sites-island-map-card .leaflet-control-container {
  display: none;
}

.sites-map-leaflet-point {
  transition: filter 150ms ease, opacity 150ms ease, stroke-width 150ms ease;
}

.sites-map-leaflet-point.is-active {
  fill: var(--surface-strong) !important;
  stroke: var(--island-color, var(--accent)) !important;
  stroke-width: 5 !important;
  filter: drop-shadow(0 0 5px rgba(255, 252, 246, 0.68)) drop-shadow(0 7px 10px rgba(5, 14, 24, 0.36));
  opacity: 1 !important;
}

.sites-map-leaflet-point.is-filtered-out {
  opacity: 0.2 !important;
  filter: grayscale(0.55);
  pointer-events: none;
}

.sites-island-map-card__label {
  position: absolute;
  left: 3.72rem;
  right: 0.56rem;
  bottom: 0.48rem;
  z-index: 1001;
  display: grid;
  gap: 0.06rem;
  text-align: right;
  color: var(--surface-strong);
  pointer-events: none;
  text-shadow: 0 2px 12px rgba(5, 14, 24, 0.52);
}

.sites-island-map-card__label span {
  color: rgba(255, 252, 246, 0.78);
  font-size: 0.66rem;
  font-weight: 850;
  line-height: 1;
}

.sites-rail-frame {
  --sites-rail-card-width: clamp(10.4rem, 13.4vw, 12.4rem);
  position: relative;
  height: var(--sites-rail-card-height);
  min-width: 0;
  padding-inline: 1.82rem;
}

.sites-rail-frame::before,
.sites-rail-frame::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 3;
  width: 2.35rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
}

.sites-rail-frame::before {
  left: 1.82rem;
  background: linear-gradient(90deg, rgba(5, 14, 24, 0.5), transparent);
}

.sites-rail-frame::after {
  right: 1.82rem;
  background: linear-gradient(270deg, rgba(5, 14, 24, 0.5), transparent);
}

.sites-rail-frame.is-overflowing:not(.is-at-start)::before,
.sites-rail-frame.is-overflowing:not(.is-at-end)::after {
  opacity: 1;
}

.sites-site-rail {
  align-items: stretch;
  grid-auto-columns: var(--sites-rail-card-width);
  gap: clamp(0.58rem, 0.95vw, 0.82rem);
  height: var(--sites-rail-card-height);
  overscroll-behavior-inline: contain;
  overflow-x: auto;
  overflow-y: hidden;
  padding-block: 0;
  scrollbar-width: none;
}

.sites-site-rail::-webkit-scrollbar {
  display: none;
}

.sites-rail-button {
  position: absolute;
  top: 50%;
  z-index: 4;
  display: grid;
  width: 1.42rem;
  height: 2.8rem;
  place-items: center;
  border: 1px solid rgba(255, 252, 246, 0.34);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.9);
  box-shadow: 0 8px 18px rgba(5, 14, 24, 0.22);
  color: var(--accent);
  cursor: pointer;
  transform: translateY(-50%);
}

.sites-rail-button[hidden] {
  display: none;
}

.sites-rail-button--prev {
  left: 0;
}

.sites-rail-button--next {
  right: 0;
}

.sites-rail-button:hover,
.sites-rail-button:focus-visible {
  background: var(--surface-strong);
  border-color: rgba(255, 252, 246, 0.8);
  color: var(--accent);
  outline: 0;
}

.sites-rail-button:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 252, 246, 0.82), 0 0 0 5px color-mix(in oklch, var(--island-color), rgba(24, 59, 115, 0.4) 42%);
}

.sites-rail-button:disabled {
  opacity: 0.42;
  cursor: default;
}

.sites-rail-button .material-symbols-rounded {
  font-size: 1.18rem;
}

.sites-rail-progress {
  position: absolute;
  left: 1.82rem;
  right: 1.82rem;
  bottom: -0.38rem;
  display: block;
  height: 2px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.18);
  opacity: 0;
}

.sites-rail-frame.is-overflowing .sites-rail-progress {
  opacity: 1;
}

.sites-rail-progress span {
  display: block;
  width: var(--rail-progress-width, 30%);
  height: 100%;
  background: rgba(255, 252, 246, 0.72);
  transform: translateX(var(--rail-progress-left, 0));
}

.site-card--distilled {
  align-self: stretch;
  aspect-ratio: auto;
  height: var(--sites-rail-card-height);
  min-height: 0;
  border-radius: 0.5rem;
  border-color: rgba(255, 252, 246, 0.18);
}

.site-card--distilled.is-active,
.site-card--distilled:hover,
.site-card--distilled:focus-within {
  border-color: rgba(255, 252, 246, 0.76);
  box-shadow:
    0 0 0 3px color-mix(in oklch, var(--island-color), transparent 68%),
    0 12px 22px rgba(5, 14, 24, 0.2);
}

.site-card__copy {
  gap: 0.1rem;
  padding: 0.58rem 0.62rem 0.56rem;
}

.site-card__copy strong {
  font-size: 1.06rem;
}

.site-card__copy span:not(.daily-log-card__day) {
  display: -webkit-box;
  overflow: hidden;
  font-size: 0.66rem;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.site-card__copy small {
  overflow: hidden;
  color: rgba(255, 252, 246, 0.66);
  font-size: 0.62rem;
  font-weight: 820;
  line-height: 1.08;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sites-atlas-empty {
  margin: 0;
  border: 1px dashed rgba(255, 252, 246, 0.24);
  border-radius: 0.32rem;
  background: rgba(6, 22, 34, 0.42);
  color: rgba(255, 252, 246, 0.78);
  font-size: 0.86rem;
  font-weight: 800;
  padding: 0.76rem 0.82rem;
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.34);
}

.daily-log-empty {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

html[data-page="daily"],
body[data-page="daily"],
body[data-page="daily"] .site-frame {
  overflow-x: visible;
}

body[data-page="daily"] .site-frame {
  overflow: visible;
}

body[data-page="daily"] .site-main {
  overflow: clip;
}

.daily-scrolly-shell {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 160svh;
  margin-top: calc(-1 * clamp(5.4rem, 8vw, 6.3rem));
  padding: 0 clamp(1rem, 3vw, 2.4rem) 8svh;
}

.daily-story-rail {
  grid-area: rail;
  position: sticky;
  top: calc(var(--nav-height) + 1rem);
  align-self: start;
  max-height: calc(100svh - var(--nav-height) - 1.5rem);
  min-width: 0;
}

.daily-story-rail__inner {
  display: grid;
  gap: 0.75rem;
}

.daily-story-search {
  margin: 0;
}

.daily-story-jumps {
  display: grid;
  gap: 0.34rem;
  max-height: calc(100svh - var(--nav-height) - 6rem);
  overflow: auto;
  padding-right: 0.15rem;
}

.daily-story-jumps a {
  display: grid;
  gap: 0.12rem;
  padding: 0.48rem 0.55rem;
  border: 1px solid color-mix(in oklch, var(--line) 82%, transparent);
  background: color-mix(in oklch, var(--surface) 72%, transparent);
  color: var(--ink-soft);
  text-decoration: none;
}

.daily-story-jumps a:hover,
.daily-story-jumps a:focus-visible {
  border-color: color-mix(in oklch, var(--accent) 42%, var(--line));
  background: var(--surface);
  outline: none;
}

.daily-story-jumps span {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1rem;
  line-height: 1;
}

.daily-story-jumps strong {
  color: var(--ink);
  font-size: 0.72rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.daily-map-panel {
  position: sticky;
  top: var(--nav-height);
  z-index: 3;
  grid-row: 1;
  grid-column: 1;
  align-self: start;
  width: 100vw;
  min-width: 100vw;
  height: calc(100svh - var(--nav-height));
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  pointer-events: none;
}

.daily-map-shell {
  position: relative;
  min-width: 0;
  height: 100%;
  padding: 0;
  overflow: hidden;
  background: var(--ocean);
  box-shadow: inset 0 24px 52px rgba(20, 35, 55, 0.14);
}

.daily-map-panel__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: start;
}

.daily-map-panel__head {
  position: absolute;
  top: clamp(0.75rem, 1.6vw, 1.15rem);
  right: clamp(0.75rem, 1.6vw, 1.15rem);
  z-index: 460;
  width: min(20rem, calc(100vw - 2rem));
  margin-left: auto;
  padding: 0.7rem 0.8rem;
  border: 1px solid color-mix(in oklch, var(--line) 70%, transparent);
  background: color-mix(in oklch, var(--surface-strong) 78%, transparent);
  backdrop-filter: blur(14px) saturate(1.1);
}

.daily-map-panel__head h2 {
  margin: 0.12rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.75rem;
  font-weight: 400;
  line-height: 1.05;
}

.daily-map-panel__head span {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.25;
  text-align: right;
  text-transform: uppercase;
}

.daily-map-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 36rem;
  border: 0;
  background: var(--ocean);
  pointer-events: none;
}

.daily-map-panel.is-unlocked .daily-map-canvas {
  pointer-events: auto;
}

.daily-map-canvas .leaflet-tile-pane {
  filter: saturate(1.18) contrast(1.08);
}

.daily-map-canvas img.leaflet-tile {
  mix-blend-mode: normal;
}

.daily-walker-marker {
  width: 20px;
  height: 20px;
  background: transparent;
  border: 0;
  opacity: 1;
  pointer-events: none;
  transition: opacity 180ms ease-out;
}

.daily-walker-marker.is-transitioning {
  opacity: 0;
}

.daily-walker-marker span {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 10px;
  height: 10px;
  border: 2px solid rgba(30, 49, 84, 0.42);
  border-radius: 999px;
  background: #fffdfa;
  box-shadow:
    0 0 0 5px rgba(255, 253, 250, 0.2),
    0 9px 22px rgba(21, 34, 52, 0.28);
  transform: translate(-50%, -50%) scale(var(--daily-marker-counter-scale, 1));
  transform-origin: center;
}

.daily-site-focus {
  position: absolute;
  right: clamp(1rem, 2vw, 1.5rem);
  bottom: clamp(1rem, 2vw, 1.5rem);
  z-index: 460;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.75rem;
  align-items: end;
  padding: 0.8rem;
  border: 1px solid color-mix(in oklch, var(--accent) 28%, var(--line));
  width: min(44rem, calc(100vw - 2rem));
  background: color-mix(in oklch, var(--surface-strong) 76%, transparent);
  backdrop-filter: blur(18px) saturate(1.12);
  pointer-events: auto;
}

.daily-site-focus[hidden] {
  display: none;
}

.daily-map-panel:not(.is-unlocked) .daily-site-focus {
  display: none;
}

.daily-site-focus h3 {
  margin: 0.12rem 0 0.2rem;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.08;
}

.daily-site-focus p {
  max-width: 48ch;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.38;
}

.daily-site-focus dl {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 0.52rem;
  margin: 0;
}

.daily-site-focus div {
  display: grid;
  gap: 0.06rem;
}

.daily-site-focus dt {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.daily-site-focus dd {
  margin: 0;
  color: var(--ink);
  font-weight: 800;
}

.daily-site-focus a {
  align-self: center;
  padding: 0.58rem 0.72rem;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--surface-strong);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.daily-site-focus a:hover,
.daily-site-focus a:focus-visible {
  background: var(--ink);
  outline: none;
}

.daily-map-empty {
  position: relative;
  z-index: 460;
  padding: 0.75rem;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--muted);
  font-weight: 800;
}

.daily-timeline-panel {
  position: relative;
  z-index: 4;
  grid-row: 1;
  grid-column: 1;
  display: grid;
  gap: 0.9rem;
  width: min(44rem, 52vw);
  min-width: min(100%, 26rem);
  margin: clamp(1rem, 3vw, 2rem) 0 0 clamp(0.2rem, 2vw, 2.2rem);
  padding-bottom: 30svh;
  pointer-events: none;
}

.daily-timeline-panel__head {
  position: sticky;
  top: calc(var(--nav-height) + 1rem);
  z-index: 3;
  display: grid;
  gap: 0.1rem;
  max-width: 22rem;
  padding-bottom: 0;
  border-bottom: 0;
  pointer-events: auto;
}

.daily-timeline-panel__head h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 400;
}

.daily-timeline {
  position: relative;
  display: block;
  min-height: var(--daily-spine-height, 420svh);
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: auto;
}

.daily-timeline > li {
  position: absolute;
  top: calc((var(--timeline-fraction, 0) * (100% - var(--daily-card-offset, 10rem))) + var(--timeline-collision-offset, 0px));
  left: 0;
  right: 0;
  transform: translateY(-50%);
}

.daily-timeline > li:first-child {
  transform: none;
}

.daily-timeline > li:has([data-timeline-unsynced="true"]) {
  position: relative;
  top: auto;
  transform: none;
  margin-top: 0.72rem;
}

.daily-note-event {
  display: grid;
  gap: 0.6rem;
  min-width: 0;
  border: 1px solid color-mix(in oklch, var(--line) 70%, transparent);
  background: color-mix(in oklch, var(--surface-strong) 68%, transparent);
  box-shadow: 0 18px 44px rgba(21, 34, 52, 0.12);
  backdrop-filter: blur(18px) saturate(1.08);
  transition: border-color 180ms ease-out, background-color 180ms ease-out, transform 180ms ease-out;
}

.daily-note-event.is-active {
  border-color: rgba(24, 59, 115, 0.38);
  background: color-mix(in oklch, var(--surface-strong) 76%, var(--ocean));
  transform: translateY(-1px);
}

.daily-note-event:focus {
  outline: 3px solid rgba(24, 59, 115, 0.2);
  outline-offset: 2px;
}

.daily-note-log {
  min-width: 0;
}

.daily-note-log summary {
  display: grid;
  grid-template-columns: 4.4rem minmax(0, 1fr) minmax(6rem, auto);
  gap: 0.72rem;
  align-items: start;
  padding: 0.78rem 0.85rem;
  cursor: pointer;
  list-style: none;
}

.daily-scrolly-shell .daily-note-log summary {
  grid-template-columns: 4.4rem minmax(0, 1fr);
}

.daily-scrolly-shell .daily-note-log__source {
  grid-column: 2;
  text-align: left;
}

.daily-scrolly-shell .daily-note-log__source:empty {
  display: none;
}

.daily-note-log summary::-webkit-details-marker {
  display: none;
}

.daily-note-log summary:focus-visible {
  outline: 3px solid rgba(24, 59, 115, 0.2);
  outline-offset: -3px;
}

.daily-note-log__time {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.24rem;
  line-height: 1;
}

.daily-note-log__body {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
}

.daily-note-log__label {
  color: var(--ink);
  font-weight: 800;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.daily-note-log__text {
  color: var(--ink-soft);
  line-height: 1.42;
  overflow-wrap: anywhere;
}

.daily-note-log__source,
.daily-note-log__paths {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.28;
  text-align: right;
  text-transform: uppercase;
}

.daily-transcript-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 0 0.85rem 0.85rem;
}

.daily-transcript-panel,
.daily-transcript-grid section {
  min-width: 0;
  border: 1px solid rgba(30, 49, 84, 0.12);
  background: rgba(251, 248, 242, 0.82);
  padding: 0.72rem;
}

.daily-transcript-grid h3 {
  margin: 0 0 0.45rem;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.daily-transcript-grid pre {
  max-height: 24rem;
  margin: 0;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: var(--ink-soft);
  font-family: var(--font-body);
  font-size: 0.92rem;
  line-height: 1.46;
}

.daily-transcript-grid p {
  margin: 0;
}

.daily-word-diff {
  max-height: 24rem;
  margin: 0;
  overflow: auto;
  color: var(--ink-soft);
  font-family: var(--font-body);
  font-size: 0.92rem;
  line-height: 1.68;
}

.daily-word-diff span,
.daily-word-diff ins,
.daily-word-diff del {
  display: inline;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.daily-word-diff ins,
.daily-word-diff del {
  margin-inline: 0.08rem;
  border: 1px solid;
  padding: 0.02rem 0.18rem;
  border-radius: 0.2rem;
}

.daily-word-diff ins {
  border-color: oklch(70% 0.075 154);
  background: oklch(93% 0.038 154);
  color: oklch(30% 0.075 154);
  text-decoration: none;
}

.daily-word-diff del {
  border-color: oklch(72% 0.07 38);
  background: oklch(93% 0.042 38);
  color: oklch(37% 0.08 38);
  text-decoration: line-through;
  text-decoration-thickness: 0.08em;
}

.daily-word-diff__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
  margin: 0.65rem 0 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.25;
  text-transform: uppercase;
}

.daily-word-diff__key {
  border: 1px solid;
  padding: 0.16rem 0.34rem;
  border-radius: 999px;
}

.daily-word-diff__key--insert {
  border-color: oklch(70% 0.075 154);
  background: oklch(95% 0.028 154);
  color: oklch(31% 0.072 154);
}

.daily-word-diff__key--delete {
  border-color: oklch(72% 0.07 38);
  background: oklch(95% 0.03 38);
  color: oklch(38% 0.078 38);
}

.daily-note-log__paths {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.8rem;
  justify-content: flex-end;
  margin: 0;
  padding: 0 0.85rem 0.85rem;
  text-align: left;
}

.daily-note-photos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
  gap: 0.55rem;
  padding: 0 0.85rem 0.85rem;
}

.daily-note-photo {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
  margin: 0;
}

.daily-note-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: var(--bg-soft);
  object-fit: cover;
}

.daily-note-photo figcaption {
  display: grid;
  gap: 0.12rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.25;
}

.daily-note-photo figcaption small {
  font-weight: 700;
  overflow-wrap: anywhere;
}

.daily-timeline-empty {
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--line);
  background: var(--surface);
}

.audio-note-inline summary {
  cursor: pointer;
  color: var(--ink-blue);
  font-weight: 700;
}

.audio-note-inline__source {
  color: var(--muted-slate);
  font-size: 0.85rem;
}

.island-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(17rem, 0.7fr);
  gap: 1rem;
  align-items: start;
}

.island-map-panel {
  min-height: 34rem;
  border: 1px solid var(--line-blue);
  background: var(--map-water);
  box-shadow: 0 8px 22px rgba(37, 48, 67, 0.06);
}

.island-map-panel .overview-card__map {
  min-height: 34rem;
  height: 34rem;
}

.tide-figure-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: 1rem;
}

.daily-photo-grid a span {
  font-size: 0.72rem;
}

@media (max-width: 860px) {
  .daily-scrolly-shell {
    grid-template-columns: 1fr;
    min-height: 0;
    margin-top: 0;
    padding-inline: 1rem;
  }

  .island-map-layout {
    grid-template-columns: 1fr;
  }

  .daily-map-panel {
    position: relative;
    top: auto;
    grid-row: 1;
    height: min(72svh, 42rem);
    width: 100vw;
    min-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    max-height: none;
    overflow: visible;
  }

  .daily-map-shell {
    height: 100%;
  }

  .daily-map-canvas {
    height: 100%;
    min-height: 0;
  }

  .daily-site-focus {
    position: static;
    width: auto;
    grid-template-columns: 1fr;
  }

  .daily-site-focus dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .daily-note-log summary,
  .daily-transcript-grid {
    grid-template-columns: 1fr;
  }

  .daily-note-log__source {
    text-align: left;
  }

  .daily-timeline-panel {
    grid-row: 2;
    width: 100%;
    min-width: 0;
    margin: 1rem 0 0;
    padding-bottom: 2rem;
  }

  .island-map-panel,
  .island-map-panel .overview-card__map {
    min-height: 24rem;
    height: 24rem;
  }
}

@media (max-width: 860px) {
  .notebook-hero,
  .site-detail-layout,
  .site-detail-layout--wide,
  .site-map-workbench {
    grid-template-columns: 1fr;
  }

  .site-map-workbench__map {
    min-height: 28rem;
  }

  .site-profile-readout {
    grid-template-columns: 1fr;
  }

  .notebook-tools {
    align-items: stretch;
  }

  .notebook-search {
    width: 100%;
  }
}

@media (max-width: 620px) {
  .site-panel-head {
    align-items: stretch;
    flex-direction: column;
  }

  .site-raster-download {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .site-map-workbench__map {
    min-height: 22rem;
  }

  .site-profile-toolbar button,
  .site-photo-toolbar button {
    flex: 1 1 9rem;
  }

  .site-profile-chart {
    min-height: 19rem;
  }

  .site-profile-svg {
    min-width: 34rem;
  }

  .site-photo-grid--review {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.trip-report {
  display: grid;
  gap: 2.2rem;
}

.trip-report-hero {
  position: relative;
  min-height: 28rem;
  overflow: hidden;
  display: grid;
  align-items: end;
  background: var(--bg-soft);
}

.trip-report-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(245, 240, 231, 0.08) 0%, rgba(245, 240, 231, 0.42) 58%, rgba(245, 240, 231, 0.96) 100%),
    linear-gradient(90deg, rgba(245, 240, 231, 0.98) 0%, rgba(245, 240, 231, 0.9) 42%, rgba(245, 240, 231, 0.14) 100%);
  pointer-events: none;
}

.trip-report-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.trip-report-hero__copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1rem;
  width: min(48rem, 62%);
  padding: 2.4rem;
}

.trip-report-hero .hero__title {
  max-width: 13ch;
  font-size: var(--type-display);
}

.trip-report-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.trip-report-hero__meta span,
.trip-island__counts span,
.trip-report-index__item,
.trip-report-intro__note,
.trip-static-map,
.trip-story-stop,
.trip-site-appendix-card,
.trip-site-chapter,
.trip-photo-card,
.trip-pending,
.trip-day-row,
.trip-glossary__list div {
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.trip-report-hero__meta span,
.trip-island__counts span {
  display: inline-grid;
  gap: 0.15rem;
  min-width: 7.2rem;
  padding: 0.72rem 0.8rem;
  color: var(--muted);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.trip-report-hero__meta strong,
.trip-island__counts strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.trip-report-intro,
.trip-report-map-band,
.trip-island,
.trip-closeout,
.trip-glossary {
  display: grid;
  gap: 1rem;
  padding: 1.5rem;
}

.trip-report-intro {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.45fr);
  align-items: stretch;
}

.trip-report-intro__text {
  max-width: 72ch;
}

.trip-report-intro__text p:last-child,
.trip-report-intro__note p,
.trip-island__story p,
.trip-tide p,
.trip-pending p,
.trip-closeout p {
  color: var(--ink-soft);
  line-height: 1.55;
}

.trip-report-intro__note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.8rem;
  align-items: start;
  padding: 1rem;
}

.trip-report-section-head {
  display: grid;
  gap: 0.3rem;
  max-width: 72ch;
}

.trip-report-section-head h2,
.trip-report-section-head h3,
.trip-island__header h2,
.trip-island__analysis h3,
.trip-tide h3,
.trip-story-stop__copy h4,
.trip-story-stop__clues h5,
.trip-site-appendix-card h4,
.trip-site-chapter__header h4,
.trip-site-chapter__body h5,
.trip-site-evidence h6,
.trip-day-row h4,
.trip-pending h3,
.trip-closeout h3,
.trip-glossary__list dt {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
}

.trip-report-section-head h2,
.trip-island__header h2,
.trip-glossary .trip-report-section-head h2 {
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.04;
}

.trip-report-overview-map {
  min-height: 28rem;
}

.trip-report-index {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  padding: 0 1.5rem;
}

.trip-report-index__item {
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
  color: var(--ink-soft);
  text-decoration: none;
}

.trip-report-index__item:hover,
.trip-report-index__item:focus-visible {
  border-color: rgba(24, 59, 115, 0.38);
  color: var(--ink);
  outline: 2px solid rgba(24, 59, 115, 0.24);
  outline-offset: 2px;
}

.trip-report-index__item span {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.5rem;
}

.trip-report-index__item strong,
.trip-report-index__item small,
.trip-story-stop__number,
.trip-site-chapter__meta,
.trip-site-chapter__coord,
.trip-site-mark-list dt,
.trip-site-mark-list small,
.trip-day-row time,
.trip-day-row small,
.trip-photo-card strong {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.trip-report-index__item--pending {
  background: rgba(242, 234, 219, 0.76);
}

.trip-island {
  border-top: 1px solid var(--line);
}

.trip-island__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.55fr);
  gap: 1.5rem;
  align-items: end;
}

.trip-island__dates {
  margin: 0.5rem 0 0;
  color: var(--muted);
  font-weight: 700;
}

.trip-island__counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.trip-island__lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.48fr);
  gap: 1.4rem;
  align-items: start;
}

.trip-island__story {
  display: grid;
  gap: 1rem;
  max-width: 76ch;
}

.trip-theme-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.trip-theme-list li {
  padding: 0.5rem 0.7rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.82);
  color: var(--ink);
  font-size: 0.9rem;
}

.trip-island__photo,
.trip-tide figure,
.trip-static-map,
.trip-story-photo-plate figure,
.trip-photo-card {
  margin: 0;
}

.trip-island__photo {
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface);
}

.trip-island__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.trip-island__photo figcaption,
.trip-photo-card figcaption {
  display: grid;
  gap: 0.35rem;
  padding: 0.75rem;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.35;
}

.trip-island-map {
  min-height: 30rem;
}

.trip-static-map {
  overflow: hidden;
}

.trip-static-map__svg {
  display: block;
  width: 100%;
  height: auto;
  background: var(--map-water);
}

.trip-static-map figcaption {
  padding: 0.75rem 0.9rem;
  color: var(--ink-soft);
  font-size: 0.88rem;
  line-height: 1.4;
}

.trip-static-map--overview,
.trip-static-map--island {
  background: var(--surface);
}

.trip-story-route,
.trip-sites--appendix,
.trip-gps-appendix {
  display: grid;
  gap: 1rem;
}

.trip-story-stop-list {
  display: grid;
  gap: 1.4rem;
}

.trip-story-stop {
  display: grid;
  grid-template-columns: 3rem minmax(0, 0.72fr) minmax(20rem, 0.85fr);
  gap: 1rem;
  align-items: start;
  padding: 1rem;
}

.trip-story-stop__number {
  display: grid;
  place-items: center;
  width: 2.4rem;
  aspect-ratio: 1;
  border-radius: 999px;
  background: var(--accent);
  color: var(--surface-strong);
  letter-spacing: 0;
}

.trip-story-stop__copy {
  display: grid;
  gap: 0.55rem;
}

.trip-story-stop__copy h4 {
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height: 1.05;
}

.trip-story-stop__copy p,
.trip-story-stop__clues p,
.trip-site-appendix-card p,
.trip-gps-appendix p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.5;
}

.trip-static-map--site {
  grid-column: 3;
  grid-row: 1 / span 2;
}

.trip-story-photo-plate {
  grid-column: 1 / 3;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem;
}

.trip-story-photo-plate--1 {
  grid-template-columns: minmax(0, 1fr);
}

.trip-story-photo-plate--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trip-story-photo-plate figure {
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface-strong);
}

.trip-story-photo-plate img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.trip-story-photo-plate figcaption {
  padding: 0.65rem;
  color: var(--ink-soft);
  font-size: 0.84rem;
  line-height: 1.35;
}

.trip-story-stop__clues {
  grid-column: 3;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.65rem;
}

.trip-story-stop__clues section {
  padding: 0.85rem;
  border: 1px solid rgba(30, 49, 84, 0.16);
  background: rgba(251, 248, 242, 0.78);
}

.trip-story-stop__clues h5 {
  margin-bottom: 0.35rem;
  font-size: 1rem;
}

.trip-height-clue strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
}

.trip-island__analysis,
.trip-closeout__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.trip-closeout__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trip-island__analysis section,
.trip-closeout__grid section {
  padding: 1rem 0;
  border-top: 1px solid var(--line);
}

.trip-report-list {
  display: grid;
  gap: 0.55rem;
  margin: 0.8rem 0 0;
  padding-left: 1.15rem;
  color: var(--ink-soft);
  line-height: 1.45;
}

.trip-tide {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(20rem, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1rem;
  border: 1px solid var(--line);
  background: rgba(251, 248, 242, 0.78);
}

.trip-tide dl,
.trip-glossary__list {
  display: grid;
  gap: 0.55rem;
  margin: 0.9rem 0 0;
}

.trip-tide dl {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.trip-tide dt,
.trip-glossary__list dd {
  color: var(--muted);
  font-size: 0.82rem;
}

.trip-tide dd {
  margin: 0.2rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.25rem;
}

.trip-tide img {
  display: block;
  width: 100%;
  max-height: 21rem;
  object-fit: contain;
  background: var(--surface);
}

.trip-photo-grid,
.trip-glossary__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

.trip-site-chapter-list {
  display: grid;
  gap: 1rem;
}

.trip-site-chapter {
  display: grid;
  gap: 1rem;
  padding: 1.05rem;
}

.trip-site-chapter__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
}

.trip-site-chapter__header p,
.trip-site-mark-list dd span,
.trip-site-sample-list p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.45;
}

.trip-site-chapter__header h4 {
  margin-top: 0.25rem;
  font-size: 1.45rem;
  line-height: 1.15;
}

.trip-site-chapter__coord {
  justify-self: end;
  padding: 0.42rem 0.55rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  background: rgba(255, 252, 246, 0.82);
  white-space: nowrap;
}

.trip-site-photo-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
}

.trip-site-photo-strip--1 {
  grid-template-columns: minmax(0, 0.55fr);
}

.trip-site-photo-strip--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.trip-site-photo-strip--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.trip-site-photo-strip figure {
  overflow: hidden;
  margin: 0;
  border: 1px solid var(--line);
  background: var(--surface);
}

.trip-site-photo-strip img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.trip-site-photo-strip figcaption {
  padding: 0.62rem;
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.35;
}

.trip-site-chapter__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(18rem, 0.8fr);
  gap: 1rem;
  align-items: start;
}

.trip-site-chapter__body section {
  display: grid;
  gap: 0.45rem;
}

.trip-site-chapter__body h5,
.trip-site-evidence h6 {
  font-size: 1rem;
}

.trip-site-chapter__body .trip-report-list {
  margin: 0;
}

.trip-site-mark-list {
  display: grid;
  gap: 0.55rem;
  margin: 0;
}

.trip-site-mark-list div {
  display: grid;
  gap: 0.18rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(24, 59, 115, 0.14);
}

.trip-site-mark-list div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.trip-site-mark-list dd {
  display: grid;
  gap: 0.25rem;
  margin: 0;
}

.trip-site-mark-list dd strong {
  color: var(--ink);
}

.trip-site-sample-list {
  display: grid;
  gap: 0.45rem;
}

.trip-site-sample-list strong {
  color: var(--ink);
}

.trip-site-appendix-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.trip-site-appendix-card {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: 0.8rem;
  padding: 0.75rem;
}

.trip-site-appendix-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.trip-site-appendix-card__placeholder {
  display: grid;
  place-items: center;
  min-height: 5.5rem;
  padding: 0.35rem;
  border: 1px solid rgba(30, 49, 84, 0.16);
  background: rgba(216, 200, 167, 0.34);
  color: var(--ink);
  text-align: center;
  overflow-wrap: anywhere;
}

.trip-site-appendix-card div {
  display: grid;
  gap: 0.25rem;
}

.trip-site-appendix-card span,
.trip-site-appendix-card small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.trip-site-appendix-card__placeholder {
  letter-spacing: 0.04em;
}

.trip-site-appendix-card h4 {
  font-size: 1.12rem;
}

.trip-gps-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.trip-gps-table {
  width: 100%;
  min-width: 56rem;
  border-collapse: collapse;
  color: var(--ink-soft);
  font-size: 0.86rem;
}

.trip-gps-table th,
.trip-gps-table td {
  padding: 0.62rem 0.75rem;
  border-bottom: 1px solid rgba(30, 49, 84, 0.12);
  text-align: left;
  vertical-align: top;
}

.trip-gps-table th {
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.trip-gps-table tbody tr:nth-child(odd) {
  background: rgba(251, 248, 242, 0.62);
}

.trip-day-rail {
  display: grid;
  gap: 0.7rem;
}

.trip-day-row {
  display: grid;
  grid-template-columns: 9rem minmax(0, 1fr);
  gap: 1rem;
  padding: 0.9rem;
}

.trip-day-row p {
  max-width: 78ch;
  margin: 0.35rem 0;
  color: var(--ink-soft);
  line-height: 1.42;
}

.trip-photo-card {
  overflow: hidden;
}

.trip-photo-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.trip-photo-card span {
  color: var(--ink-soft);
}

.trip-pending {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  padding: 1rem;
}

.trip-glossary__list {
  margin-top: 0;
}

.trip-glossary__list div {
  padding: 1rem;
}

.trip-glossary__list dd {
  margin: 0.45rem 0 0;
  color: var(--ink-soft);
  line-height: 1.45;
}

@media (max-width: 1080px) {
  .trip-report-hero__copy,
  .trip-island__lead,
  .trip-island__header,
  .trip-report-intro,
  .trip-tide,
  .trip-island__analysis,
  .trip-story-stop,
  .trip-site-chapter__header,
  .trip-site-chapter__body,
  .trip-closeout__grid {
    grid-template-columns: 1fr;
  }

  .trip-report-index,
  .trip-photo-grid,
  .trip-glossary__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trip-site-photo-strip,
  .trip-site-photo-strip--3,
  .trip-site-photo-strip--4,
  .trip-story-photo-plate,
  .trip-story-photo-plate--1,
  .trip-story-photo-plate--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trip-static-map--site,
  .trip-story-photo-plate,
  .trip-story-stop__clues {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .trip-story-stop__clues {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trip-report-hero__copy {
    width: min(100%, 42rem);
  }
}

@media (max-width: 720px) {
  .trip-report-hero {
    min-height: 31rem;
  }

  .trip-report-hero::after {
    background: linear-gradient(180deg, rgba(245, 240, 231, 0.2) 0%, rgba(245, 240, 231, 0.96) 58%, rgba(245, 240, 231, 0.98) 100%);
  }

  .trip-report-hero__copy,
  .trip-report-intro,
  .trip-report-map-band,
  .trip-island,
  .trip-closeout,
  .trip-glossary {
    padding: 1rem;
  }

  .trip-report-index,
  .trip-site-photo-strip,
  .trip-site-photo-strip--1,
  .trip-site-photo-strip--2,
  .trip-site-photo-strip--3,
  .trip-site-photo-strip--4,
  .trip-story-photo-plate,
  .trip-story-photo-plate--1,
  .trip-story-photo-plate--2,
  .trip-photo-grid,
  .trip-site-appendix-grid,
  .trip-glossary__list,
  .trip-island__counts,
  .trip-tide dl,
  .trip-story-stop__clues {
    grid-template-columns: 1fr;
  }

  .trip-story-stop {
    padding: 0.85rem;
  }

  .trip-story-stop__number {
    width: 2.1rem;
  }

  .trip-site-appendix-card {
    grid-template-columns: 5.5rem minmax(0, 1fr);
  }

  .trip-gps-table {
    min-width: 0;
  }

  .trip-gps-table thead {
    display: none;
  }

  .trip-gps-table,
  .trip-gps-table tbody,
  .trip-gps-table tr,
  .trip-gps-table td {
    display: block;
    width: 100%;
  }

  .trip-gps-table tr {
    padding: 0.55rem 0;
    border-bottom: 1px solid rgba(30, 49, 84, 0.16);
  }

  .trip-gps-table td {
    display: grid;
    grid-template-columns: 8.5rem minmax(0, 1fr);
    gap: 0.55rem;
    padding: 0.32rem 0.75rem;
    border-bottom: 0;
    overflow-wrap: anywhere;
  }

  .trip-gps-table td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .trip-static-map figcaption {
    padding: 0.65rem;
  }

  .trip-site-chapter__coord {
    justify-self: start;
    white-space: normal;
  }

  .trip-report-index {
    padding: 0 1rem;
  }

  .trip-day-row {
    grid-template-columns: 1fr;
  }

  .trip-report-overview-map,
  .trip-island-map {
    min-height: 22rem;
  }
}

@media print {
  body[data-page="trip_report"] .site-header,
  body[data-page="trip_report"] .site-footer,
  body[data-page="trip_report"] .nav-tools {
    display: none;
  }

  body[data-page="trip_report"] .page-shell {
    max-width: none;
  }

  .trip-report {
    gap: 1rem;
  }

  .trip-report-hero,
  .trip-island,
  .trip-closeout,
  .trip-glossary {
    break-inside: avoid;
  }

  .trip-report-hero {
    min-height: 16rem;
  }

  .trip-report-hero__copy {
    width: 72%;
  }

  .trip-island-map,
  .trip-report-overview-map {
    min-height: 20rem;
  }

  .trip-photo-grid,
  .trip-site-appendix-grid,
  .trip-glossary__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trip-site-chapter,
  .trip-story-stop {
    break-inside: avoid;
  }

  .trip-site-photo-strip,
  .trip-site-photo-strip--1,
  .trip-site-photo-strip--2,
  .trip-site-photo-strip--3,
  .trip-site-photo-strip--4,
  .trip-story-photo-plate,
  .trip-story-photo-plate--1,
  .trip-story-photo-plate--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .trip-static-map--site,
  .trip-story-photo-plate,
  .trip-story-stop__clues {
    grid-column: 1 / -1;
    grid-row: auto;
  }
}

.stay-grid,
.capture-grid,
.mini-stack,
.status-list,
.icon-row,
.link-list,
.day-nav {
  display: grid;
  gap: 0.9rem;
}

.stay-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.stay-grid--compact,
.capture-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.stay-card,
.capture-card,
.mini-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.stay-card,
.capture-card,
.mini-card {
  padding: 1rem;
}

.stay-card__header,
.stay-card__footer {
  display: flex;
  gap: 0.8rem;
  align-items: start;
  justify-content: space-between;
}

.stay-card__header {
  margin-bottom: 0.8rem;
}

.stay-card h2,
.stay-card h3,
.capture-card h3,
.mini-card h4 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
}

.status-list {
  gap: 0.5rem;
}

.status-list span,
.icon-row span {
  display: inline-flex;
  align-items: center;
  color: var(--muted);
}

.status-list--stacked {
  align-items: start;
}

.icon-row {
  grid-template-columns: repeat(3, max-content);
  gap: 0.6rem 1rem;
}

.day-nav {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.op-icon--large {
  width: 2.6rem;
  height: 2.6rem;
  margin-right: 0;
  border: 1px solid rgba(24, 59, 115, 0.12);
  border-radius: 999px;
  background: rgba(24, 59, 115, 0.06);
  font-size: 1.25rem;
}

.bullet-list--tight {
  margin-top: 0.6rem;
}

.overview-stage {
  position: relative;
  overflow: hidden;
  padding-bottom: 0.95rem;
}

.overview-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background: none;
  pointer-events: none;
  z-index: 1;
}

.overview-stage__image {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.overview-hero {
  position: relative;
  min-height: 19rem;
  padding-bottom: 3.75rem;
  border-bottom: 0;
  z-index: 2;
}

.overview-hero__copy {
  display: grid;
  align-content: center;
  width: min(42rem, 46%);
  min-width: 0;
  padding: 1.75rem 1.8rem 1.5rem;
  position: relative;
  z-index: 2;
}

.overview-hero .hero__title {
  max-width: 11.5ch;
  font-size: var(--type-display);
}

.overview-hero__meta,
.basecamp-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.overview-meta-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.78rem 0.9rem;
  border: 1px solid rgba(24, 59, 115, 0.22);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.9);
  color: var(--accent);
  font-size: 0.96rem;
  box-shadow: 0 10px 24px rgba(37, 48, 67, 0.08);
}

.basecamp-hero__image {
  position: absolute;
  inset: 0;
  min-height: 100%;
  min-width: 0;
  z-index: 0;
}

.overview-hero__photo,
.stays-hero__photo,
.day-map-art__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.context-map__image {
  display: block;
  width: 100%;
  height: 92%;
  object-fit: cover;
}

.overview-hero__photo {
  position: absolute;
  inset: 0;
}

.context-map__image {
  border: 1px solid rgba(24, 59, 115, 0.08);
  border-radius: 0.2rem;
}

.embedded-map {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: 0.2rem;
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.55), transparent 14rem),
    linear-gradient(180deg, #d7e4e9 0%, #bfd1d7 100%);
}

.embedded-map--overview {
  min-height: 20rem;
  margin-top: 0.75rem;
}

.embedded-map--stay,
.embedded-map--map-page {
  min-height: 22rem;
  margin-top: 0.65rem;
}

.embedded-map__canvas,
.day-map-card__map {
  min-height: inherit;
  width: 100%;
  height: 100%;
}

.embedded-map .leaflet-container,
.day-map-card__map.leaflet-container {
  width: 100%;
  height: 100%;
  background: #d7e4e9;
  font: inherit;
}

/* Counter browser seam artifacts between raster tiles during pan/zoom. */
.leaflet-container img.leaflet-tile {
  outline: 1px solid transparent;
  backface-visibility: hidden;
}

.leaflet-container .leaflet-zoom-animated,
.leaflet-container .leaflet-tile-container {
  backface-visibility: hidden;
}

.daily-map-canvas .leaflet-pane,
.daily-map-canvas .leaflet-layer {
  will-change: transform;
}

.leaflet-container img.leaflet-tile[src^="data:image/gif"] {
  opacity: 0 !important;
}

@supports (mix-blend-mode: plus-lighter) {
  .leaflet-container img.leaflet-tile {
    mix-blend-mode: plus-lighter;
  }
}

.daily-map-canvas img.leaflet-tile {
  mix-blend-mode: normal;
}

.leaflet-control-attribution,
.leaflet-control-layers {
  border-radius: 0.2rem !important;
  box-shadow: 0 10px 24px rgba(37, 48, 67, 0.1) !important;
}

@media (max-width: 900px) {
  .leaflet-bar a,
  .leaflet-control-zoom a,
  .site-atlas-regional-nav__button,
  .sites-rail-button {
    width: 2.75rem !important;
    height: 2.75rem !important;
    min-width: 2.75rem;
    min-height: 2.75rem;
    line-height: 2.75rem !important;
  }

  .site-atlas-layer-switch button,
  .site-atlas-asset-switch button,
  .tidal-datum-note-button,
  .tidal-datum-method summary {
    min-height: 2.75rem !important;
  }

  .tidal-connection-point {
    width: 2.75rem !important;
    height: 2.75rem !important;
  }
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  background: rgba(255, 252, 246, 0.98);
}

.map-label {
  background: rgba(255, 252, 246, 0.96);
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 0.2rem;
  box-shadow: 0 10px 24px rgba(37, 48, 67, 0.1);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
  padding: 0.24rem 0.45rem;
}

.map-label::before {
  display: none;
}

.map-label--island_hub {
  color: var(--accent);
}

.map-popup strong {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--ink);
}

.map-popup p {
  margin: 0.3rem 0 0;
}

.map-popup__field-note {
  color: var(--ink-soft);
  font-size: 0.9rem;
  line-height: 1.38;
}

.map-popup__photos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.55rem;
}

.map-popup-photo {
  display: grid;
  gap: 0.28rem;
  min-width: 0;
  color: var(--ink);
  text-decoration: none;
}

.map-popup-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(24, 59, 115, 0.14);
  border-radius: 0.2rem;
  object-fit: cover;
  background: rgba(255, 252, 246, 0.76);
}

.map-popup-photo small {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.map-popup-photo small span {
  display: block;
  color: var(--ink);
  font-weight: 800;
}

.map-popup__figure {
  color: var(--ink-soft);
  font-size: 0.9rem;
}

.map-popup__link {
  color: var(--accent);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.map-popup__figure-button {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--accent);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.map-popup__figure-button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.map-popup__meta,
.map-source__note,
.map-caption {
  color: var(--muted);
  font-size: 0.9rem;
}

.map-caption {
  margin: 0.65rem 0 0;
}

.map-source__note {
  margin: 0.25rem 0 0.7rem;
}

body.has-map-figure-lightbox {
  overflow: hidden;
}

.map-figure-lightbox:not([open]) {
  display: none;
}

.map-figure-lightbox {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  z-index: 2400;
  display: grid;
  place-items: center;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: clamp(1rem, 3vw, 2.5rem);
  overflow: hidden;
  border: 0;
  background: rgba(16, 25, 40, 0.72);
  color: inherit;
}

.map-figure-lightbox::backdrop {
  background: transparent;
}

.map-figure-lightbox__panel {
  box-sizing: border-box;
  position: relative;
  display: grid;
  gap: 0.7rem;
  width: min(1120px, 100%);
  min-width: 0;
  max-height: 100%;
  margin: 0;
  padding: clamp(0.75rem, 2vw, 1rem);
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid rgba(255, 252, 246, 0.34);
  border-radius: var(--radius);
  background: var(--surface-strong);
  box-shadow: 0 24px 70px rgba(16, 25, 40, 0.32);
}

.map-figure-lightbox__image {
  display: block;
  width: 100%;
  max-height: 74vh;
  object-fit: contain;
  background: rgba(245, 239, 229, 0.92);
}

.map-figure-lightbox__caption {
  display: grid;
  gap: 0.2rem;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.35;
}

.map-figure-lightbox__title {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.05rem;
}

.map-figure-lightbox__meta {
  color: var(--muted);
  font-size: 0.84rem;
}

.map-figure-lightbox__close {
  position: absolute;
  top: 0.6rem;
  right: 0.6rem;
  z-index: 2;
  display: inline-grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid rgba(30, 49, 84, 0.22);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.94);
  color: var(--ink);
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
}

.map-figure-lightbox__close:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.chip-list--column {
  display: grid;
}

.filter-chip {
  padding: 0.46rem 0.72rem;
  border: 1px solid rgba(24, 59, 115, 0.16);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.94);
  color: var(--ink);
  cursor: pointer;
  transition: background 140ms ease, color 140ms ease, border-color 140ms ease;
}

.filter-chip.is-active {
  border-color: var(--accent);
  background: var(--accent);
  color: #fffdfa;
}

.overview-dashboard {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.95rem;
  position: relative;
  z-index: 3;
  margin-top: -5.4rem;
  padding: 1rem;
}

.overview-dashboard > * {
  min-width: 0;
  padding: 1rem;
}

.overview-card,
.ops-card,
.attachments-card,
.day-map-card,
.milestone-card,
.basecamp-footer-note,
.ops-filter,
.ops-sidebar__export,
.quick-actions__card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.overview-card,
.ops-card,
.attachments-card,
.ops-filter,
.ops-sidebar__export,
.quick-actions__card {
  padding: 1rem 1.05rem;
}

.ops-sidebar__export,
.quick-actions__card {
  border-color: rgba(24, 59, 115, 0.22);
  background: rgba(255, 252, 246, 0.96);
  color: var(--accent);
}

.overview-card--map {
  grid-column: span 2;
  grid-row: span 2;
}

.overview-card--summary {
  grid-column: span 1;
  grid-row: span 2;
}

.overview-card--small {
  grid-column: span 1;
  grid-row: span 1;
}

.overview-card h2 {
  margin: 0 0 0.35rem;
  color: var(--ink);
  font-size: 2rem;
}

.overview-card h3 {
  margin: 0 0 0.3rem;
  color: var(--ink);
  font-size: 1.55rem;
  font-family: var(--font-display);
}

.overview-inline-stat,
.transfer-row,
.note-item,
.weather-strip,
.summary-list,
.tide-list,
.schedule-list,
.people-stack,
.attachment-list {
  display: grid;
  gap: 0.75rem;
}

.island-swatch {
  width: 5rem;
  height: 3rem;
  border-radius: 45% 55% 52% 48% / 56% 42% 58% 44%;
  background:
    radial-gradient(circle at 40% 38%, rgba(255, 255, 255, 0.28), transparent 1rem),
    linear-gradient(135deg, rgba(118, 149, 182, 0.95), rgba(96, 118, 154, 0.9));
}

.camp-sketch {
  width: 5.7rem;
  height: 3.8rem;
  border-radius: 0.65rem 0.65rem 0.2rem 0.2rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.32), transparent),
    linear-gradient(135deg, #d8d2c4 0%, #beb098 47%, #8ba07a 47%, #6e8b76 100%);
  opacity: 0.9;
}

.overview-card--progress {
  display: grid;
  gap: 0.9rem;
}

.overview-card--island,
.overview-card--basecamp,
.overview-card--progress {
  min-height: 15.75rem;
}

.overview-card--summary {
  min-height: 16.5rem;
}

.overview-card--transfers .transfer-row + .transfer-row {
  padding-top: 0.9rem;
  border-top: 1px solid rgba(24, 59, 115, 0.08);
}

.overview-stage--logbook {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - var(--nav-height) - 1.35rem);
  background: var(--bg);
}

.overview-stage--logbook::before {
  background: none;
}

.overview-stage--media {
  --overview-night-ink: oklch(24% 0.045 252);
  --overview-sheet: rgba(255, 252, 246, 0.9);
  --overview-rule-light: rgba(255, 252, 246, 0.34);
  min-height: calc(100vh - var(--nav-height));
  padding-bottom: clamp(1rem, 2vw, 1.7rem);
  background:
    var(--overview-satellite-image, linear-gradient(135deg, #496878, #d8c8a7)),
    var(--bg);
  background-attachment: scroll;
  background-position: center bottom;
  background-size: cover;
}

.overview-stage--media::before {
  background: none;
}

.overview-stage--media .overview-stage__image {
  height: clamp(32rem, 66vh, 46rem);
}

.overview-stage--media .overview-hero__photo {
  filter: none;
}

.overview-stage--media .overview-hero--logbook {
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.44fr);
  min-height: clamp(30rem, 64vh, 43rem);
  padding: clamp(2rem, 4vw, 4rem) clamp(1.15rem, 2.6vw, 2.4rem) clamp(2.6rem, 5vw, 4.8rem);
}

.overview-stage--media .overview-hero__copy {
  width: min(50rem, 100%);
}

.overview-stage--media .hero__eyebrow,
.overview-stage--media .hero__title,
.overview-stage--media .hero__lede,
.overview-stage--media .hero__funding,
.overview-stage--media .proposal-name,
.overview-stage--media .hero__funding a {
  color: var(--surface-strong);
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.4);
}

.overview-stage--media .hero__lede {
  max-width: 38ch;
  color: rgba(255, 252, 246, 0.9);
}

.overview-stage--media .field-log-metrics > a,
.overview-stage--media .field-log-metrics > span {
  border: 0;
  background: rgba(9, 25, 43, 0.76);
  color: rgba(255, 252, 246, 0.84);
  box-shadow: none;
}

.overview-stage--media .field-log-metrics strong {
  color: var(--surface-strong);
}

.overview-stage--home {
  position: relative;
}

.overview-stage--home::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(9, 25, 43, 0.72) 0%, rgba(9, 25, 43, 0.5) 34%, rgba(9, 25, 43, 0.06) 58%, rgba(9, 25, 43, 0.68) 100%),
    linear-gradient(0deg, rgba(9, 25, 43, 0.66) 0%, rgba(9, 25, 43, 0.08) 46%, transparent 68%);
}

.overview-stage--home .overview-hero--logbook,
.overview-stage--home .overview-dashboard--logbook {
  position: relative;
  z-index: 2;
}

.overview-stage--home .overview-hero--logbook {
  align-items: start;
  min-height: clamp(12rem, 27vh, 18rem);
  padding-top: clamp(1.3rem, 2.8vw, 2.15rem);
  padding-bottom: clamp(1.2rem, 3vh, 2.4rem);
}

.home-brief-overlay {
  display: grid;
  gap: 0.72rem;
  align-self: center;
  justify-self: end;
  max-width: 27rem;
  margin-top: 0;
  color: rgba(255, 252, 246, 0.92);
  text-shadow: 0 1px 8px rgba(5, 14, 24, 0.42);
}

.home-brief-overlay__title {
  margin: 0;
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.08;
}

.home-brief-overlay p {
  margin: 0;
  color: rgba(255, 252, 246, 0.9);
  font-size: 1rem;
  line-height: 1.5;
}

.home-brief-overlay ul {
  display: grid;
  gap: 0.68rem;
  margin: 0;
  padding-left: 1.05rem;
}

.home-brief-overlay li {
  color: rgba(255, 252, 246, 0.92);
  font-size: 0.95rem;
  line-height: 1.45;
}

.home-brief-overlay strong {
  color: var(--surface-strong);
}

.overview-stage--home {
  background: oklch(24% 0.045 252);
}

.overview-stage--home .overview-stage__image {
  height: 100%;
  min-height: calc(100vh - var(--nav-height));
}

.overview-stage--home .overview-hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.overview-stage--home .field-log-metrics a {
  display: inline-flex;
  align-items: baseline;
  gap: 0.34rem;
  min-height: 3rem;
  padding: 0.58rem 0.78rem;
  border: 0;
  background: rgba(9, 25, 43, 0.76);
  color: rgba(255, 252, 246, 0.84);
  text-decoration: none;
  box-shadow: none;
}

.overview-stage--home .field-log-metrics a strong {
  color: var(--surface-strong);
}

.overview-stage--home .field-log-metrics a:hover,
.overview-stage--home .field-log-metrics a:focus-visible {
  border-color: rgba(255, 252, 246, 0.52);
  background: rgba(255, 252, 246, 0.92);
  color: var(--accent);
  outline: 2px solid rgba(255, 252, 246, 0.46);
  outline-offset: 2px;
}

.overview-stage--home .field-log-metrics a:hover strong,
.overview-stage--home .field-log-metrics a:focus-visible strong {
  color: var(--accent);
}

.overview-hero__media-board {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.72rem;
  align-self: end;
  min-width: 0;
}

.overview-geo-plate,
.overview-island-chip,
.overview-photo-strip__item,
.overview-mini-photo,
.daily-log-card__media,
.site-index-card__satellite,
.tidal-datum-card__media {
  background-position: center;
  background-size: cover;
}

.overview-geo-plate {
  position: relative;
  display: grid;
  min-height: 13rem;
  overflow: hidden;
  border: 1px solid var(--overview-rule-light);
  background: var(--overview-satellite-image, linear-gradient(135deg, #486674, #d8c8a7));
  box-shadow: 0 20px 42px rgba(9, 20, 34, 0.18);
}

.overview-geo-plate__map {
  min-height: inherit;
}

.overview-geo-plate__label {
  position: absolute;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.72rem;
  display: grid;
  gap: 0.16rem;
  color: rgba(255, 252, 246, 0.82);
}

.overview-geo-plate__label span,
.overview-photo-strip__item span,
.overview-mini-photo span,
.overview-island-chip span {
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.1;
  text-transform: uppercase;
}

.overview-geo-plate__label strong {
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 400;
  line-height: 1.05;
}

.overview-mini-photo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}

.overview-mini-photo,
.overview-island-chip {
  position: relative;
  display: grid;
  align-items: end;
  min-height: 6.8rem;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 246, 0.3);
  color: var(--surface-strong);
  text-decoration: none;
  background: var(--mini-photo-image, var(--chip-photo-image, var(--chip-satellite-image, var(--overview-satellite-image))));
  box-shadow: 0 14px 28px rgba(9, 20, 34, 0.14);
}

.overview-mini-photo span,
.overview-island-chip span {
  position: relative;
  z-index: 1;
  padding: 0.62rem;
  color: rgba(255, 252, 246, 0.88);
  text-shadow: 0 2px 12px rgba(5, 14, 24, 0.46);
}

.overview-hero__media-board--islands {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.overview-island-chip {
  min-height: 7.4rem;
  background:
    var(--chip-photo-image, none),
    var(--chip-satellite-image, var(--overview-satellite-image));
}

.overview-content-shell {
  position: relative;
  z-index: 3;
  margin-top: 0;
  padding-inline: clamp(0.95rem, 1.85vw, 1.8rem);
  padding-top: clamp(0.5rem, 1.3vw, 0.9rem);
}

@media (max-width: 640px) {
  .overview-content-shell {
    margin-top: 0;
    padding-inline: 0.8rem;
    padding-top: 0.55rem;
  }
}

.overview-hero--logbook {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  align-items: end;
  min-height: 23rem;
  padding: 2rem 1.8rem 5.8rem;
}

.overview-hero--logbook .overview-hero__copy {
  width: min(52rem, 100%);
  padding: 0;
}

.overview-hero--logbook .hero__title {
  max-width: 10.5ch;
  font-size: var(--type-hero);
  font-weight: 400;
  letter-spacing: -0.018em;
  line-height: var(--leading-display);
}

.proposal-name {
  display: block;
  max-width: 38ch;
  color: var(--ink);
  font-weight: 600;
}

.overview-stage--home .hero__lede {
  max-width: 38ch;
  margin-top: 0.8rem;
  font-size: var(--type-lede);
  line-height: var(--leading-lede);
}

.hero__funding {
  max-width: 48ch;
  margin: 0.68rem 0 0;
  color: rgba(255, 252, 246, 0.86);
  font-size: var(--type-label);
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1.35;
  text-wrap: pretty;
}

.field-log-metrics {
  display: grid;
  grid-template-columns: repeat(4, max-content);
  gap: 1px;
  width: max-content;
  max-width: 100%;
  margin-top: 1.15rem;
  padding: 1px;
  background: rgba(255, 252, 246, 0.3);
}

.field-log-metrics > a,
.field-log-metrics > span {
  display: inline-flex;
  align-items: baseline;
  gap: 0.34rem;
  min-height: 3rem;
  padding: 0.58rem 0.78rem;
  border: 0;
  background: rgba(9, 25, 43, 0.76);
  color: rgba(255, 252, 246, 0.86);
  box-shadow: none;
  font-size: 0.94rem;
  line-height: 1.25;
}

.field-log-metrics strong {
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: var(--type-evidence);
  font-weight: 400;
  font-variant-numeric: lining-nums tabular-nums;
  line-height: 1.12;
}

.field-log-latest {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.65rem;
  padding: 1rem;
  border: 1px solid rgba(255, 252, 246, 0.38);
  background: #183b73;
  color: var(--surface-strong);
  box-shadow: 0 18px 38px rgba(21, 40, 68, 0.18);
}

.field-log-latest__kicker {
  margin: 0;
  color: rgba(255, 252, 246, 0.74);
  font-size: 0.78rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.field-log-latest__link {
  display: grid;
  gap: 0.34rem;
}

.field-log-latest__link span,
.field-log-latest__link small {
  color: rgba(255, 252, 246, 0.82);
}

.field-log-latest__link strong {
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1.08;
}

.field-log-latest__link:focus-visible,
.field-log-row:focus-visible,
.field-route:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 0.18rem;
}

.field-log-latest__link:focus-visible {
  outline-color: var(--surface-strong);
}

.overview-dashboard--logbook {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "maps";
  gap: 1rem;
  align-items: end;
  align-content: end;
  margin-top: auto;
  padding: 1rem;
}

.overview-dashboard--logbook > * {
  padding: 0;
}

.overview-photo-strip {
  grid-area: media;
  display: grid;
  grid-template-columns: 1.1fr 0.8fr 0.9fr 1fr;
  gap: 0.72rem;
  min-width: 0;
}

.overview-photo-strip__item {
  position: relative;
  min-height: clamp(10rem, 20vw, 16rem);
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 246, 0.26);
  background: var(--strip-photo-image, var(--strip-satellite-image, var(--overview-satellite-image)));
  box-shadow: 0 18px 36px rgba(9, 20, 34, 0.14);
}

.overview-photo-strip__item:nth-child(2),
.overview-photo-strip__item:nth-child(4) {
  min-height: clamp(8.5rem, 16vw, 13rem);
}

.overview-photo-strip__item::after {
  display: none;
}

.overview-photo-strip__item span {
  position: absolute;
  left: 0.65rem;
  right: 0.65rem;
  bottom: 0.62rem;
  z-index: 1;
  color: rgba(255, 252, 246, 0.88);
  text-shadow: 0 2px 12px rgba(5, 14, 24, 0.36);
}

.home-context-map-grid {
  grid-area: maps;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.62rem;
  width: 100%;
  min-width: 0;
}

.home-context-map-card {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-width: 0;
  min-height: clamp(9.2rem, 11.5vw, 12.2rem);
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 246, 0.26);
  background: rgba(7, 18, 31, 0.36);
  box-shadow: none;
}

.home-context-map-card__canvas {
  min-height: clamp(6.6rem, 8.3vw, 9rem);
}

.home-context-map-card .leaflet-container {
  background: rgba(8, 24, 38, 0.68);
}

.home-context-map-card .leaflet-control-container {
  display: none;
}

.home-context-map-card .leaflet-interactive {
  filter: drop-shadow(0 1px 2px rgba(5, 14, 24, 0.35));
}

.home-context-map-card path[stroke="#1f4060"],
.home-context-map-card path[stroke="#5f768f"] {
  stroke: rgba(255, 252, 246, 0.82);
  stroke-width: 0.9;
  stroke-dasharray: 1 5;
  stroke-linecap: round;
}

.home-context-map-card path.leaflet-interactive[stroke] {
  stroke: rgba(255, 252, 246, 0.82);
  stroke-width: 0.9;
  stroke-dasharray: 1 5;
  stroke-linecap: round;
}

.home-context-map-card circle.leaflet-interactive {
  cursor: pointer;
}

.home-context-map-card figcaption {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.55rem;
  min-width: 0;
  padding: 0.52rem 0.62rem 0.56rem;
  background: rgba(7, 18, 31, 0.92);
  color: rgba(255, 252, 246, 0.86);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1.2;
  text-shadow: none;
}

.home-context-map-card figcaption strong {
  flex: 0 1 auto;
  min-width: 0;
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.05;
}

.home-context-map-card figcaption span {
  flex: 0 0 auto;
  font-variant-numeric: lining-nums tabular-nums;
  white-space: nowrap;
}

.field-log-panel {
  min-width: 0;
  border: 1px solid var(--line);
  background: rgba(255, 252, 246, 0.96);
  box-shadow: var(--shadow-soft);
}

.field-log-panel--brief {
  grid-area: brief;
  width: auto;
  min-width: 0;
  max-width: none;
  display: grid;
  align-content: start;
  align-self: end;
  justify-self: start;
  background:
    linear-gradient(180deg, rgba(216, 200, 167, 0.24), rgba(255, 252, 246, 0.9) 44%),
    rgba(255, 252, 246, 0.9);
}

.project-brief {
  display: grid;
  gap: 0.85rem;
  padding: 0 1rem 1rem;
}

.project-brief p {
  margin: 0;
  color: var(--ink-soft);
  line-height: var(--leading-prose);
}

.project-brief__list {
  display: grid;
  gap: 0.78rem;
  margin: 0;
}

.project-brief__list div {
  display: grid;
  gap: 0.24rem;
  padding-top: 0.78rem;
  border-top: 1px solid rgba(30, 49, 84, 0.12);
}

.project-brief__list dt {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.project-brief__list dd {
  margin: 0;
  color: var(--ink);
  line-height: 1.35;
}

.field-log-panel__head {
  display: grid;
  gap: 0.18rem;
  padding: 1rem 1rem 0.75rem;
}

.field-log-panel__head h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.6rem;
  line-height: 1.06;
}

.field-log-rail {
  display: grid;
}

.field-log-row {
  display: grid;
  grid-template-columns: 4.55rem minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: start;
  min-width: 0;
  padding: 0.78rem 1rem;
  border-top: 1px solid rgba(30, 49, 84, 0.1);
  color: var(--ink-soft);
}

.field-log-row:hover,
.field-route:hover {
  background: rgba(24, 59, 115, 0.055);
}

.field-log-row--next {
  background: rgba(216, 200, 167, 0.2);
}

.field-log-row__date,
.field-log-row__state {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.field-log-row__body {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.field-log-row__body strong {
  color: var(--ink);
  line-height: 1.18;
}

.field-log-row__body small {
  color: var(--muted);
  line-height: 1.28;
}

.field-log-panel--map {
  padding: 1rem;
}

.field-log-panel--map .field-log-panel__head {
  padding: 0 0 0.75rem;
}

.field-log-panel--map .embedded-map--overview {
  min-height: 19.75rem;
  margin-top: 0;
}

.field-log-panel--routes {
  padding: 0.3rem 0;
}

.field-route {
  display: grid;
  grid-template-columns: 2.1rem minmax(0, 1fr);
  gap: 0.7rem;
  align-items: start;
  min-width: 0;
  padding: 0.85rem 1rem;
  border-top: 1px solid rgba(30, 49, 84, 0.1);
  color: var(--ink-soft);
}

.field-route:first-child {
  border-top: 0;
}

.field-route--primary {
  background: #183b73;
  color: var(--surface-strong);
}

.field-route--primary:hover {
  background: #133260;
}

.field-route--primary .op-icon,
.field-route--primary strong,
.field-route--primary small {
  color: var(--surface-strong);
}

.field-route--quiet {
  background: rgba(255, 252, 246, 0.56);
}

.field-route .op-icon {
  width: 1.7rem;
  height: 1.7rem;
  margin: 0;
  color: var(--accent);
}

.field-route span:last-child {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
}

.field-route strong {
  color: var(--ink);
  line-height: 1.15;
}

.field-route small {
  color: var(--muted);
  line-height: 1.3;
}

.field-route--primary .op-icon,
.field-route--primary strong,
.field-route--primary small {
  color: var(--surface-strong);
}

.overview-card--basecamp .overview-inline-stat {
  gap: 0.2rem;
}

.progress-ring {
  display: grid;
  place-items: center;
  width: 8.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: conic-gradient(var(--accent) 0 36%, rgba(24, 59, 115, 0.12) 36% 100%);
}

.progress-ring__inner {
  display: grid;
  place-items: center;
  width: 6.3rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--surface-strong);
  color: var(--ink);
}

.progress-ring__inner strong {
  font-size: 2rem;
  font-family: var(--font-display);
  font-variant-numeric: tabular-nums;
}

.progress-ring__inner span,
.progress-metrics span,
.transfer-row p,
.summary-list span,
.tide-list span,
.note-item p,
.schedule-row span,
.schedule-row p,
.people-row p,
.attachment-row p,
.attachments-card__meta,
.ops-sidebar__header h2,
.ops-filter span,
.ops-sidebar__export,
.hero__lede {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.progress-metrics {
  display: grid;
  gap: 0.4rem;
}

.progress-metrics strong,
.summary-list strong,
.tide-list strong,
.people-row strong,
.layer-note p,
.basecamp-header__region span,
.ops-timeline__title {
  color: var(--ink);
}

.context-map {
  min-height: 18rem;
}

.note-list,
.attachment-list {
  gap: 0.9rem;
}

.note-item,
.attachment-row {
  grid-template-columns: auto 1fr;
  align-items: start;
}

.note-thumb {
  width: 4.8rem;
  height: 3.6rem;
  border-radius: 0.5rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent),
    linear-gradient(135deg, #b5b394, #8f8a63 48%, #5b7657 48%, #6a8b72);
}

.weather-strip {
  grid-template-columns: 1fr auto;
  align-items: center;
}

.weather-strip strong {
  display: block;
  color: var(--accent);
  font-size: 2.2rem;
  line-height: 1;
  font-family: var(--font-display);
  font-variant-numeric: tabular-nums;
}

.transfer-row h3,
.note-item h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.35;
}

.weather-strip__icon {
  color: #edb85b;
  font-size: 2.2rem;
}

.summary-list {
  gap: 0.45rem;
}

.summary-list span {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.quick-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.95rem;
  padding-bottom: 0.5rem;
}

.quick-actions__card {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.quick-actions__card p {
  margin: 0 0 0.2rem;
  color: var(--ink);
  font-weight: 700;
}

.quick-actions__card span:last-child {
  color: var(--muted);
}

.ops-layout {
  display: grid;
  grid-template-columns: 15rem minmax(0, 1fr);
  gap: 1rem;
  padding-top: 0.95rem;
}

.ops-main,
.calendar-panels,
.calendar-panel,
.day-map-card,
.execution-grid {
  min-width: 0;
}

[data-calendar].ops-layout {
  gap: 0.8rem;
  padding-top: 0.75rem;
}

body[data-page="itinerary"] .page-shell {
  padding-inline: 1.55rem;
}

body[data-page="itinerary"] .site-frame {
  overflow: visible;
}

.ops-sidebar {
  display: grid;
  align-content: start;
  gap: 0.9rem;
  min-width: 0;
}

[data-calendar] .ops-sidebar {
  position: sticky;
  top: calc(var(--nav-height) + 1rem);
  align-self: start;
  grid-template-rows: auto minmax(0, 1fr) auto;
  max-height: calc(100vh - var(--nav-height) - 2rem);
  gap: 0.65rem;
}

[data-calendar] .ops-timeline {
  min-height: 0;
  overflow-y: auto;
  gap: 0.4rem;
  padding-right: 0.1rem;
}

body[data-page="itinerary"] [data-calendar].ops-layout {
  grid-template-columns: 16.5rem minmax(0, 1fr);
  gap: 1.05rem;
}

.ops-sidebar__header {
  padding: 0.4rem 0;
}

[data-calendar] .ops-sidebar__header {
  padding: 0.2rem 0 0.05rem;
}

.ops-sidebar__header h2 {
  margin: 0;
  color: var(--ink);
  font-size: 1.25rem;
}

.team-presence-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
  margin-top: 0.75rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

[data-calendar] .team-presence-legend {
  gap: 0.35rem 0.55rem;
  margin-top: 0.55rem;
}

.team-presence-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.team-presence-legend__swatch {
  width: 0.72rem;
  height: 0.72rem;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.team-presence-legend__swatch--arrival {
  background: #2f8f61;
}

.team-presence-legend__swatch--present {
  background: #9ab0bc;
}

.team-presence-legend__swatch--departure {
  background: #ba623e;
}

.ops-timeline {
  display: grid;
  gap: 0.55rem;
}

.ops-timeline--grouped {
  gap: 0.48rem;
}

.ops-timeline__stay-group {
  display: grid;
  gap: 0.32rem;
  min-width: 0;
}

.ops-timeline__stay-toggle {
  display: grid;
  grid-template-columns: 1.85rem minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.3rem 0.55rem;
  width: 100%;
  min-width: 0;
  min-height: 3.75rem;
  padding: 0.62rem 0.68rem 0.66rem 0.44rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 0.2rem;
  background:
    linear-gradient(180deg, oklch(98% 0.012 82 / 0.82), oklch(96% 0.018 82 / 0.66));
  color: var(--ink);
  cursor: pointer;
  text-align: left;
}

.ops-timeline__stay-toggle:hover {
  border-color: rgba(24, 59, 115, 0.28);
  background: rgba(255, 255, 255, 0.62);
}

.ops-timeline__stay-toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.ops-timeline__stay-group.is-expanded .ops-timeline__stay-toggle {
  border-color: rgba(24, 59, 115, 0.28);
  background:
    linear-gradient(180deg, oklch(98% 0.012 82 / 0.94), oklch(96% 0.018 82 / 0.76));
}

.ops-timeline__stay-heading {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}

.ops-timeline__stay-heading span {
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
  line-height: 1;
}

.ops-timeline__stay-heading strong,
.ops-timeline__stay-heading small {
  min-width: 0;
  overflow-wrap: anywhere;
}

.ops-timeline__stay-heading strong {
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.02;
}

.ops-timeline__stay-heading small {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.12;
}

.ops-timeline__chevron {
  align-self: center;
  color: var(--accent);
  font-size: 1.22rem;
  line-height: 1;
  transition: transform 180ms ease;
}

.ops-timeline__stay-group.is-expanded .ops-timeline__chevron {
  transform: rotate(180deg);
}

.ops-timeline__stay-days {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
}

.ops-timeline__item {
  position: relative;
  display: grid;
  gap: 0rem;
  width: 100%;
  min-width: 0;
  padding: 0rem 0rem;
  border: 1px solid transparent;
  border-radius: 0.2rem;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.ops-timeline__item:hover {
  background: rgba(255, 255, 255, 0.55);
}

.ops-timeline__item--day {
  grid-template-columns: 1.85rem minmax(0, 1fr);
  align-items: start;
  gap: 0.3rem 0.55rem;
  padding: 0.62rem 0.72rem 0.68rem 0.44rem;
  min-height: 4.35rem;
}

.ops-timeline__stay-days .ops-timeline__item--day {
  border-color: rgba(24, 59, 115, 0.1);
  background: rgba(255, 252, 246, 0.42);
}

.ops-timeline__stay-days .ops-timeline__item--day:hover {
  border-color: rgba(24, 59, 115, 0.18);
  background: rgba(255, 255, 255, 0.62);
}

.ops-timeline__stay-days .ops-timeline__item--day.is-active,
.ops-timeline__stay-days .ops-timeline__item--day.is-active:hover {
  border-color: transparent;
  background: #1b355e;
  color: var(--surface-strong);
  box-shadow: var(--shadow-soft);
}

.ops-timeline__item--stay-start {
  border-color: rgba(24, 59, 115, 0.18);
  background:
    linear-gradient(180deg, oklch(98% 0.012 82 / 0.78), oklch(96% 0.018 82 / 0.62));
}

.ops-timeline__item.is-active {
  background: #1b355e;
  color: var(--surface-strong);
  box-shadow: var(--shadow-soft);
}

.ops-timeline__item.is-active .ops-timeline__title,
.ops-timeline__item.is-active .ops-timeline__meta,
.ops-timeline__item.is-active .ops-timeline__date,
.ops-timeline__item.is-active .ops-timeline__day {
  color: inherit;
}

.ops-timeline__day,
.ops-timeline__date,
.ops-timeline__meta {
  color: var(--muted);
  font-size: 0.82rem;
}

.ops-timeline__copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  width: 100%;
}

.ops-timeline__rail {
  position: relative;
  display: grid;
  justify-items: center;
  align-self: stretch;
  min-height: 100%;
  padding-top: 0.04rem;
}

.ops-timeline__rail::before {
  content: "";
  position: absolute;
  top: -0.8rem;
  bottom: -0.8rem;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: rgba(24, 59, 115, 0.18);
}

.ops-timeline__gate,
.ops-timeline__dot {
  position: relative;
  z-index: 1;
}

.ops-timeline__gate {
  display: inline-grid;
  place-items: center;
  width: 1.85rem;
  height: 1.85rem;
  border: 1px solid oklch(32% 0.08 257 / 0.72);
  border-radius: 0.2rem;
  background: var(--accent);
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.02rem;
  line-height: 1;
  box-shadow: 0 10px 20px rgba(37, 48, 67, 0.16);
  font-variant-numeric: tabular-nums;
}

.ops-timeline__dot {
  width: 0.56rem;
  height: 0.56rem;
  margin-top: 0.42rem;
  border: 1px solid rgba(24, 59, 115, 0.28);
  border-radius: 999px;
  background: var(--surface-strong);
}

.ops-timeline__stay-label {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.24rem 0.38rem;
  width: fit-content;
  max-width: 100%;
  margin-bottom: 0.08rem;
  padding: 0.27rem 0.4rem 0.3rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 0.2rem;
  background: rgba(24, 59, 115, 0.07);
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
  line-height: 1;
}

.ops-timeline__stay-label strong,
.ops-timeline__stay-label small {
  font-variant-caps: normal;
  letter-spacing: 0;
}

.ops-timeline__stay-label strong {
  color: var(--ink);
  font-size: 0.88rem;
  line-height: 1;
}

.ops-timeline__stay-label small {
  color: var(--muted);
  font-size: 0.74rem;
  font-weight: 800;
}

.ops-timeline__stay-label--compact {
  margin-bottom: 0;
  padding-inline: 0;
  border: 0;
  background: transparent;
}

.ops-timeline__item.is-active .ops-timeline__rail::before {
  background: rgba(255, 253, 250, 0.38);
}

.ops-timeline__item.is-active .ops-timeline__gate {
  border-color: rgba(255, 253, 250, 0.8);
  background: var(--surface-strong);
  color: var(--accent);
  box-shadow: 0 10px 20px rgba(16, 25, 40, 0.2);
}

.ops-timeline__item.is-active .ops-timeline__dot {
  border-color: rgba(255, 253, 250, 0.66);
  background: rgba(255, 253, 250, 0.94);
}

.ops-timeline__item.is-active .ops-timeline__stay-label {
  border-color: rgba(255, 253, 250, 0.22);
  background: rgba(255, 253, 250, 0.12);
  color: inherit;
}

.ops-timeline__item.is-active .ops-timeline__stay-label strong,
.ops-timeline__item.is-active .ops-timeline__stay-label small {
  color: inherit;
}

.ops-timeline__team {
  display: flex;
  flex-wrap: wrap;
  gap: 0.22rem;
  align-items: center;
  min-height: 1.2rem;
}

.ops-timeline__team--empty {
  justify-content: flex-start;
}

.team-presence-badge,
.team-presence-empty {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.26);
}

.team-presence-badge--arrival {
  background: #2f8f61;
  color: var(--surface-strong);
}

.team-presence-badge--present {
  background: #9ab0bc;
  color: #17345f;
}

.team-presence-badge--departure {
  background: #ba623e;
  color: var(--surface-strong);
}

.team-presence-badge--arrive-depart {
  background: linear-gradient(135deg, #2f8f61 0 50%, #ba623e 50% 100%);
  color: var(--surface-strong);
}

.team-presence-empty {
  border: 1px dashed rgba(24, 59, 115, 0.18);
  background: rgba(24, 59, 115, 0.05);
  color: var(--muted);
  box-shadow: none;
}

.ops-timeline__item.is-active .team-presence-empty {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.12);
  color: var(--surface-strong);
}

.ops-timeline__title {
  font-weight: 700;
  width: 100%;
  min-width: 0;
  font-size: 0.96rem;
  line-height: 1.05;
  white-space: normal;
  overflow-wrap: anywhere;
}

.ops-timeline__day {
  width: 100%;
  min-width: 0;
  line-height: 1.18;
  white-space: normal;
  overflow-wrap: anywhere;
}

.ops-timeline__number {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  margin-bottom: 0.25rem;
  border-radius: 999px;
  background: #123b73;
  color: var(--surface-strong);
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
}

.ops-filter,
.ops-sidebar__export {
  color: var(--ink);
}

.day-focus {
  display: grid;
  gap: 1rem;
}

.day-focus__header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: start;
}

.day-focus__date,
.basecamp-hero__date {
  margin: 0 0 0.45rem;
  color: var(--muted);
  font-size: 0.85rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.day-focus__title {
  margin: 0;
  color: var(--ink);
  font-size: 3.45rem;
  line-height: var(--leading-heading);
  overflow-wrap: normal;
  word-break: normal;
}

body[data-page="itinerary"] .ops-sidebar__header h2 {
  font-size: 1.38rem;
}

body[data-page="itinerary"] .team-presence-legend,
body[data-page="itinerary"] .overview-card__eyebrow {
  font-size: 0.82rem;
}

body[data-page="itinerary"] .ops-timeline__title {
  font-size: 1.02rem;
}

body[data-page="itinerary"] .ops-timeline__day,
body[data-page="itinerary"] .ops-timeline__date,
body[data-page="itinerary"] .ops-timeline__meta {
  font-size: 0.9rem;
}

body[data-page="itinerary"] .team-presence-badge,
body[data-page="itinerary"] .team-presence-empty {
  width: 1.28rem;
  height: 1.28rem;
  font-size: 0.7rem;
}

body[data-page="itinerary"] .day-focus__date {
  font-size: 0.92rem;
}

body[data-page="itinerary"] .day-focus__title {
  font-size: 3.72rem;
}

.day-focus__location,
.day-focus__summary {
  margin: 0.55rem 0 0;
}

.day-focus__badge {
  display: inline-flex;
  align-items: center;
  min-height: 2.3rem;
  padding: 0.45rem 0.9rem;
  border: 1px solid rgba(24, 59, 115, 0.22);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.92);
  color: var(--accent);
  font-weight: 700;
}

.day-map-card {
  display: block;
  overflow: hidden;
}

.day-map-card__stage {
  position: relative;
  height: min(64vh, 44rem);
  min-height: 34rem;
  overflow: hidden;
}

.day-map-art__image {
  position: absolute;
  inset: 0;
}

.day-map-card__map {
  position: absolute;
  inset: 0;
}

.day-map-card__zoom {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 650;
  display: grid;
  gap: 0.4rem;
}

.day-map-card__zoom button,
.day-map-widget summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  border: 1px solid var(--line);
  border-radius: 0.2rem;
  background: rgba(255, 251, 245, 0.92);
  color: var(--ink);
  box-shadow: 0 10px 24px rgba(37, 48, 67, 0.1);
  cursor: pointer;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    color 180ms ease,
    box-shadow 180ms ease;
}

.day-map-card__zoom button:hover,
.day-map-widget summary:hover {
  border-color: var(--line-strong);
  background: var(--surface-strong);
  box-shadow: 0 14px 26px rgba(37, 48, 67, 0.12);
}

.day-map-card__zoom button:focus-visible,
.day-map-widget summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.day-map-card__zoom button {
  width: 2.75rem;
  height: 2.75rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.day-map-card__widgets {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 650;
  display: grid;
  width: min(18rem, calc(100% - 5.25rem));
  gap: 0.55rem;
}

.day-map-widget {
  border: 1px solid var(--line);
  border-radius: 0.2rem;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 10px 24px rgba(37, 48, 67, 0.12);
  color: var(--ink);
}

.day-map-widget summary {
  justify-content: flex-start;
  width: 100%;
  gap: 0.48rem;
  padding: 0 0.76rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  list-style: none;
  text-transform: uppercase;
}

.day-map-widget summary::-webkit-details-marker {
  display: none;
}

.day-map-widget summary::after {
  content: "expand_more";
  margin-left: auto;
  font-family: "Material Symbols Rounded";
  font-size: 1.15rem;
  font-variant: normal;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

.day-map-widget[open] summary::after {
  content: "expand_less";
}

.day-map-widget > .chip-list,
.day-map-widget > .layer-group {
  padding: 0.2rem 0.76rem 0.82rem;
}

.layer-group {
  display: grid;
  gap: 0.65rem;
}

.map-symbol-legend__dot {
  display: inline-block;
  width: 0.94rem;
  height: 0.94rem;
  flex: 0 0 0.94rem;
  border: 3px solid var(--surface-strong);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(30, 49, 84, 0.32);
}

.map-symbol-legend__dot--basecamp {
  background: var(--accent);
}

.map-symbol-legend__dot--logistics {
  border-color: var(--accent);
  background: var(--sand);
}

.map-symbol-legend__dot--reference {
  background: #c66d3c;
}

.map-symbol-legend__dot--field {
  background: var(--ocean);
}

.map-symbol-legend__area {
  display: inline-block;
  width: 1.25rem;
  height: 0.84rem;
  flex: 0 0 1.25rem;
  border: 2px solid #e0b24e;
  border-radius: 0.12rem;
  background: rgba(224, 178, 78, 0.34);
  box-shadow: 0 0 0 1px rgba(30, 49, 84, 0.16);
}

.layer-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 2.05rem;
  color: var(--ink);
  cursor: pointer;
}

.layer-toggle input {
  accent-color: var(--accent);
}

.layer-note {
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}

.ops-card-grid,
.basecamp-logistics,
.basecamp-milestone-row,
.basecamp-bottom {
  display: grid;
  gap: 0.9rem;
}

.ops-card-grid {
  grid-template-columns: 0.95fr 1.05fr 0.95fr 0.9fr 0.9fr;
  margin-top: 1rem;
}

.ops-card {
  min-height: 100%;
}

.schedule-row,
.people-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
}

.schedule-row span {
  font-weight: 700;
}

.people-row__avatar {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: rgba(24, 59, 115, 0.12);
  color: var(--accent);
  font-weight: 700;
}

.summary-list--compact span {
  justify-content: start;
}

.attachments-card {
  display: grid;
  gap: 0.95rem;
  margin-top: 1rem;
}

.day-mobile-nav {
  display: none;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
  padding: 0.2rem 0;
}

.day-mobile-nav__edge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 600;
  white-space: nowrap;
}

.day-mobile-nav__current {
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 700;
}

.day-mobile-nav__edge--next {
  justify-self: end;
}

.day-mobile-nav__edge[hidden] {
  visibility: hidden;
}

.day-mobile-nav__edge:disabled {
  opacity: 0.45;
}

body[data-page="itinerary"] {
  --itinerary-switchboard-top: 0rem;
  --itinerary-jump-offset: 5.25rem;
}

body[data-page="itinerary"] .site-header {
  z-index: 1100;
}

body[data-page="itinerary"] .day-focus,
body[data-page="itinerary"] .execution-card--tide-reference,
body[data-page="itinerary"] .execution-card--field-notes,
body[data-page="itinerary"] .execution-card--gps-ledger,
body[data-page="itinerary"] .field-site-evidence,
body[data-page="itinerary"] .field-evidence-event {
  scroll-margin-top: var(--itinerary-jump-offset);
}

.day-switchboard {
  position: sticky;
  top: var(--itinerary-switchboard-top);
  z-index: 1200;
  display: grid;
  grid-template-columns: minmax(13.5rem, 18rem) minmax(0, 1fr);
  align-items: start;
  gap: 0.58rem 0.7rem;
  margin: 0 0 0.9rem;
  padding: 0.58rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 0.2rem;
  background: var(--surface-strong);
  box-shadow: 0 12px 24px rgba(21, 40, 68, 0.12);
}

.day-switchboard.is-fixed {
  position: fixed;
  left: var(--day-switchboard-left, 0);
  width: var(--day-switchboard-width, auto);
  margin: 0;
  border-color: rgba(24, 59, 115, 0.22);
  box-shadow: 0 16px 32px rgba(21, 40, 68, 0.14);
}

.day-switchboard-spacer {
  display: none;
}

.day-switchboard-spacer.is-active {
  display: block;
  height: var(--day-switchboard-spacer-height, 0px);
}

.day-switchboard__day {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.day-switchboard__day label {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.day-switchboard__select-wrap {
  position: relative;
  min-width: 0;
}

.day-switchboard__select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0.82rem;
  width: 0.52rem;
  height: 0.52rem;
  border-right: 2px solid var(--accent);
  border-bottom: 2px solid var(--accent);
  transform: translateY(-68%) rotate(45deg);
  color: var(--accent);
  pointer-events: none;
}

.day-switchboard select {
  width: 100%;
  min-height: 2.42rem;
  padding: 0.55rem 2.25rem 0.55rem 0.72rem;
  border: 1px solid rgba(24, 59, 115, 0.2);
  border-radius: 0.2rem;
  appearance: none;
  background: var(--surface-strong);
  color: var(--ink);
  cursor: pointer;
  font-size: 0.92rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.day-switchboard select:hover {
  border-color: rgba(24, 59, 115, 0.32);
}

.day-switchboard select:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.day-switchboard__sections,
.day-section-jumps {
  min-width: 0;
}

.day-section-jumps,
.day-section-jumps__primary {
  position: relative;
  display: flex;
  align-items: start;
  flex-wrap: wrap;
  gap: 0.38rem;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
}

.day-section-jump,
.day-site-menu__site,
.day-note-jump,
.day-site-menu__overview {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-width: 0;
  min-height: 2.18rem;
  border: 1px solid rgba(24, 59, 115, 0.16);
  border-radius: 0.2rem;
  background: var(--surface-strong);
  color: var(--ink-soft);
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.12;
  white-space: nowrap;
  transition:
    background-color 180ms ease-out,
    border-color 180ms ease-out,
    color 180ms ease-out;
}

.day-section-jump {
  appearance: none;
  padding: 0.44rem 0.62rem;
}

.day-site-menu {
  position: relative;
  flex: 0 0 auto;
}

.day-site-menu__toggle {
  gap: 0.48rem;
}

.day-site-menu__toggle::after {
  content: "";
  width: 0.48rem;
  height: 0.48rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.16rem) rotate(45deg);
  transition: transform 180ms ease-out;
}

.day-site-menu__toggle[aria-expanded="true"]::after {
  transform: translateY(0.12rem) rotate(225deg);
}

.day-site-menu__toggle[aria-expanded="true"] {
  border-color: rgba(24, 59, 115, 0.28);
  background: var(--bg-soft);
  color: var(--ink);
}

.day-site-dropdown {
  position: absolute;
  top: calc(100% + 0.42rem);
  left: 0;
  z-index: 1230;
  display: grid;
  gap: 0.24rem;
  width: min(29rem, calc(100vw - 2rem));
  max-height: min(32rem, calc(100vh - 5.8rem));
  padding: 0.5rem;
  border: 1px solid rgba(24, 59, 115, 0.2);
  border-radius: 0.2rem;
  background: var(--surface-strong);
  box-shadow: 0 18px 38px rgba(21, 40, 68, 0.16);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.day-site-dropdown[hidden] {
  display: none;
}

.day-site-menu__overview,
.day-site-menu__site {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.08rem 0.52rem;
  width: 100%;
  min-height: 0;
  max-width: none;
  padding: 0.46rem 0.52rem;
  white-space: normal;
}

.day-site-menu__overview {
  background: var(--bg-soft);
}

.day-site-menu__group {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
  padding: 0.16rem;
  border: 1px solid transparent;
  background: rgba(255, 252, 246, 0.62);
}

.day-site-menu__group.is-active {
  border-color: rgba(24, 59, 115, 0.22);
  background:
    linear-gradient(180deg, rgba(216, 200, 167, 0.22), rgba(255, 252, 246, 0.96)),
    rgba(255, 252, 246, 0.96);
}

.day-site-menu__events {
  display: grid;
  gap: 0.08rem;
  padding: 0 0.22rem 0.24rem;
}

.day-note-jump {
  display: grid;
  grid-template-columns: 3.05rem minmax(0, 1fr);
  gap: 0.42rem;
  width: 100%;
  min-height: 0;
  padding: 0.28rem 0.36rem;
  border-color: transparent;
  background: transparent;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: normal;
}

.day-site-menu__overview strong,
.day-site-menu__site strong {
  flex: 0 0 auto;
  color: var(--accent);
  font-size: 0.74rem;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.day-site-menu__overview span,
.day-site-menu__site span,
.day-note-jump span {
  min-width: 0;
  color: inherit;
  overflow-wrap: anywhere;
}

.day-note-jump span:first-child:last-child {
  grid-column: 1 / -1;
}

.day-site-menu__site small,
.day-note-jump small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.day-site-menu__site small {
  grid-column: 2;
}

.day-section-jump:hover,
.day-site-menu__overview:hover,
.day-site-menu__site:hover,
.day-note-jump:hover {
  border-color: rgba(24, 59, 115, 0.28);
  background: var(--bg-soft);
  color: var(--ink);
}

.day-section-jump:focus-visible,
.day-site-menu__overview:focus-visible,
.day-site-menu__site:focus-visible,
.day-note-jump:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.day-section-jump.is-current,
.day-section-jump[aria-current],
.day-site-menu__overview.is-current,
.day-site-menu__overview[aria-current],
.day-site-menu__site.is-current,
.day-site-menu__site[aria-current],
.day-note-jump.is-current,
.day-note-jump[aria-current] {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--surface-strong);
}

.day-site-menu__overview.is-current strong,
.day-site-menu__overview[aria-current] strong,
.day-site-menu__site.is-current strong,
.day-site-menu__site[aria-current] strong {
  color: inherit;
}

.flight-timing-card {
  display: grid;
  gap: 0.78rem;
  margin-top: 1rem;
  padding: 0.92rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.flight-timing-card__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.flight-timing-card__header h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  line-height: 1.08;
}

.flight-timing-card__mode {
  display: inline-flex;
  align-items: center;
  min-height: 1.9rem;
  padding: 0.35rem 0.62rem;
  border: 1px solid rgba(30, 49, 84, 0.14);
  border-radius: 999px;
  background: rgba(245, 240, 231, 0.62);
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.flight-timing-list {
  display: grid;
  gap: 0.55rem;
}

.flight-timing-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.72rem;
  min-width: 0;
  padding: 0.58rem 0.66rem;
  border: 1px solid rgba(30, 49, 84, 0.1);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.56);
}

.flight-timing-row__icon {
  display: inline-grid;
  place-items: center;
  width: 2.05rem;
  height: 2.05rem;
  border: 1px solid rgba(24, 59, 115, 0.14);
  border-radius: 999px;
  background: rgba(24, 59, 115, 0.06);
  color: var(--accent);
  font-size: 1.12rem;
  font-variant: normal;
  font-variant-caps: normal;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

.flight-timing-row__main {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}

.flight-timing-row__main strong {
  color: var(--ink);
  line-height: 1.12;
  overflow-wrap: anywhere;
}

.flight-timing-row__main span {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.flight-timing-row__times {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--ink);
}

.flight-timing-row__time {
  display: grid;
  gap: 0.04rem;
  min-width: 3.55rem;
}

.flight-timing-row__time small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.flight-timing-row__time time {
  color: var(--ink);
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.12;
}

.flight-timing-row__arrow {
  color: var(--muted);
  font-size: 1.05rem;
  font-variant: normal;
  font-variant-caps: normal;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}

.schedule-timing-row__note {
  margin: 0.18rem 0 0;
  color: var(--ink-soft);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
}

.schedule-timing-row__time {
  display: grid;
  gap: 0.04rem;
  min-width: 5.25rem;
  justify-items: end;
  color: var(--ink);
}

.schedule-timing-row__time small {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.schedule-timing-row__time time,
.schedule-timing-row__time span {
  color: var(--ink);
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.12;
  text-align: right;
}

.attachments-card__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.attachment-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-weight: 600;
}

.attachment-row {
  grid-template-columns: 1fr;
  gap: 0.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(24, 59, 115, 0.08);
}

.execution-card__header,
.attachment-slot__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.execution-card h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  line-height: 1.06;
}

.execution-grid,
.attachment-slot-grid {
  display: grid;
  gap: 0.9rem;
}

.execution-card {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.execution-card h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
}

.execution-card p,
.attachment-slot p {
  margin: 0;
  overflow-wrap: anywhere;
}

.execution-grid {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  margin-top: 1rem;
}

.execution-card {
  display: grid;
  gap: 0.9rem;
  padding: 1rem 1.05rem;
}

body[data-page="itinerary"] .execution-card {
  gap: 1rem;
  padding: 1.08rem 1.15rem;
}

.execution-card--tide-reference {
  border-color: rgba(24, 59, 115, 0.18);
  background:
    linear-gradient(180deg, rgba(255, 253, 250, 0.92), rgba(245, 241, 231, 0.76)),
    var(--surface);
}

.tide-reference__head {
  display: grid;
  gap: 0.08rem;
}

.tide-reference__head h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.55rem;
  line-height: 1.08;
}

.tide-reference__metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  gap: 0.55rem;
  margin: 0;
}

.tide-reference__metrics div {
  min-width: 0;
  padding: 0.68rem 0.72rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: rgba(255, 252, 246, 0.66);
}

.tide-reference__metrics dt {
  color: var(--muted);
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  line-height: 1.2;
  text-transform: uppercase;
}

.tide-reference__metrics dd {
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.gps-datum-figure--tide-reference {
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.gps-datum-figure--tide-reference img {
  min-width: 0;
}

.execution-card--record {
  grid-column: 1 / -1;
}

.execution-card__header h2 {
  font-size: 1.55rem;
}

body[data-page="itinerary"] .execution-card__header h2 {
  font-size: 1.7rem;
}

body[data-page="itinerary"] .execution-card p,
body[data-page="itinerary"] .attachment-row,
body[data-page="itinerary"] .record-list,
body[data-page="itinerary"] .attachment-slot {
  font-size: 1.01rem;
  line-height: 1.42;
}

.record-status {
  display: inline-flex;
  align-items: center;
  min-height: 2.1rem;
  padding: 0.44rem 0.7rem;
  border: 1px solid rgba(24, 59, 115, 0.16);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.94);
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.record-status--example {
  border-color: rgba(198, 109, 60, 0.36);
  background: rgba(198, 109, 60, 0.11);
  color: var(--ink);
}

.record-status--notes,
.record-status--draft {
  border-color: rgba(24, 59, 115, 0.24);
  background: rgba(24, 59, 115, 0.08);
  color: var(--accent);
}

.record-status--reviewed {
  border-color: rgba(198, 109, 60, 0.42);
  background: rgba(198, 109, 60, 0.12);
  color: var(--ink);
}

.record-status--final {
  border-color: rgba(45, 118, 88, 0.38);
  background: rgba(45, 118, 88, 0.12);
  color: #235c45;
}

.record-status--empty {
  border-style: dashed;
  color: var(--muted);
}

.attachment-slot:focus-within {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.attachment-slot__head strong {
  color: var(--ink);
}

.attachment-slot__head span,
.empty-copy {
  color: var(--muted);
}

.record-list,
.attachment-slot ul {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.record-list li,
.attachment-slot li {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.record-list span,
.attachment-slot span {
  color: var(--ink);
  font-weight: 700;
}

.record-list small,
.attachment-slot small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.record-list {
  padding: 0.7rem 0.75rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.62);
}

.attachment-row--compact {
  padding-top: 0.65rem;
}

.attachment-slot-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.attachment-slot {
  display: grid;
  align-content: start;
  gap: 0.5rem;
  min-width: 0;
  min-height: 7.5rem;
  padding: 0.75rem;
  border: 1px dashed rgba(24, 59, 115, 0.16);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.46);
}

.attachment-slot.has-items {
  border-style: solid;
  border-color: rgba(198, 109, 60, 0.36);
  background: rgba(255, 252, 246, 0.86);
}

.execution-card--field-notes {
  grid-column: 1 / -1;
}

.evidence-overview__header p {
  max-width: 68ch;
  margin-top: 0.36rem;
  color: var(--ink-soft);
}

.evidence-meter-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.58rem;
}

.evidence-meter-grid div {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
  padding: 0.72rem 0.76rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: rgba(255, 252, 246, 0.68);
}

.evidence-meter-grid strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  line-height: 1;
}

.evidence-meter-grid span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.evidence-audit,
.evidence-raw details,
.field-site-evidence__details {
  border-top: 1px solid rgba(24, 59, 115, 0.12);
  padding-top: 0.78rem;
}

.evidence-audit summary,
.evidence-raw summary,
.field-site-evidence__details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  color: var(--reef);
  font-weight: 800;
  cursor: pointer;
}

.evidence-audit summary {
  justify-content: flex-start;
}

.evidence-audit[open],
.evidence-raw details[open],
.field-site-evidence__details[open] {
  display: grid;
  gap: 0.85rem;
}

.evidence-raw summary span:first-child {
  display: grid;
  gap: 0.12rem;
}

.evidence-raw summary small {
  color: var(--muted);
  font-weight: 700;
}

.field-note-stack,
.field-note-rendered,
.field-site-list,
.field-site-note__body {
  display: grid;
  gap: 1rem;
}

.field-note-rendered {
  padding-top: 1rem;
  border-top: 1px solid rgba(24, 59, 115, 0.12);
}

.field-note-rendered:first-child {
  padding-top: 0;
  border-top: 0;
}

.field-note-rendered__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.field-note-rendered h3,
.field-note-section h4,
.field-note-subsection h5 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  line-height: 1.1;
}

.field-note-rendered h3 {
  font-size: 1.35rem;
}

.field-note-rendered__header p {
  margin-top: 0.25rem;
  color: var(--muted);
  font-size: 0.9rem;
}

.evidence-note__header p {
  max-width: 76ch;
  color: var(--ink-soft);
  font-size: 0.98rem;
  line-height: 1.5;
}

.field-note-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 0;
}

.field-note-meta div {
  min-width: 0;
  padding: 0.58rem 0.65rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  background: rgba(255, 252, 246, 0.62);
}

.field-note-meta dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.field-note-meta dd {
  margin: 0.15rem 0 0;
  color: var(--ink);
  overflow-wrap: anywhere;
}

.field-note-meta--site {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.field-note-section,
.field-note-subsection {
  display: grid;
  gap: 0.45rem;
}

.field-note-text {
  white-space: pre-line;
}

.field-site-browser {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 0.9rem;
  min-width: 0;
}

.field-site-browser > .field-site-list {
  grid-column: 1;
  min-width: 0;
}

.field-site-rail {
  grid-column: 1;
  position: sticky;
  top: calc(var(--nav-height) + 0.72rem);
  z-index: 12;
  display: grid;
  align-self: start;
  gap: 0.58rem;
  min-width: 0;
  max-height: calc(100vh - var(--nav-height) - 1.45rem);
  padding: 0.72rem 0.68rem 0.74rem;
  border: 1px solid rgba(24, 59, 115, 0.16);
  background: rgba(255, 252, 246, 0.97);
  box-shadow: 0 14px 30px rgba(21, 40, 68, 0.08);
  overflow: hidden;
}

.field-site-rail.is-fixed {
  position: fixed;
  top: calc(var(--nav-height) + 0.72rem);
  left: var(--field-site-rail-left, 0);
  width: var(--field-site-rail-width, auto);
}

.field-site-rail__label {
  margin: 0;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.field-site-rail__links {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
  max-height: calc(100vh - var(--nav-height) - 4.2rem);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 0 0.12rem 0 0;
  overscroll-behavior: contain;
}

.field-site-rail__group {
  display: grid;
  gap: 0;
  min-width: 0;
  border: 1px solid transparent;
  background: rgba(255, 252, 246, 0.62);
  transition:
    border-color 180ms ease-out,
    background-color 180ms ease-out;
}

.field-site-rail__group.is-active {
  border-color: rgba(24, 59, 115, 0.22);
  background:
    linear-gradient(180deg, rgba(216, 200, 167, 0.22), rgba(255, 252, 246, 0.96)),
    rgba(255, 252, 246, 0.96);
}

.field-site-rail__link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.08rem 0.52rem;
  align-items: baseline;
  min-width: 0;
  padding: 0.5rem 0.56rem;
  border: 1px solid transparent;
  color: var(--ink-soft);
}

.field-site-rail__link:hover,
.field-site-rail__group.is-active .field-site-rail__link {
  background: rgba(24, 59, 115, 0.055);
}

.field-site-rail__link:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.2);
  outline-offset: 2px;
}

.field-site-rail__link strong {
  color: var(--accent);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.035em;
}

.field-site-rail__link span {
  min-width: 0;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.18;
  overflow-wrap: anywhere;
}

.field-site-rail__link small {
  grid-column: 2;
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 800;
}

.field-site-rail__notes {
  display: none;
  gap: 0.16rem;
  padding: 0.22rem 0.42rem 0.52rem;
}

.field-site-rail__group.is-active .field-site-rail__notes {
  display: grid;
}

.field-site-rail__notes a {
  display: grid;
  grid-template-columns: 2.85rem minmax(0, 1fr);
  gap: 0.42rem;
  min-width: 0;
  padding: 0.28rem 0.34rem;
  color: var(--ink-soft);
  line-height: 1.22;
}

.field-site-rail__notes a:hover,
.field-site-rail__notes a.is-current {
  background: rgba(24, 59, 115, 0.07);
  color: var(--ink);
}

.field-site-rail__notes a:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.2);
  outline-offset: 2px;
}

.field-site-rail__notes small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.field-site-rail__notes span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.field-site-evidence {
  display: grid;
  gap: 0;
  scroll-margin-top: calc(var(--nav-height) + 1.15rem);
}

.field-site-evidence__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: start;
  padding: 0.78rem 0.85rem;
  border-bottom: 1px solid rgba(24, 59, 115, 0.1);
}

.field-site-evidence__kicker {
  margin: 0 0 0.2rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.field-site-evidence h4 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.24rem;
  line-height: 1.12;
}

.evidence-chip-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 0.38rem;
}

.evidence-chip-row span {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: 0.3rem 0.54rem;
  border: 1px solid rgba(24, 59, 115, 0.14);
  background: rgba(255, 252, 246, 0.74);
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 800;
}

.field-site-evidence__body {
  display: grid;
  gap: 0.9rem;
  padding: 0.88rem 0.85rem 0.95rem;
}

.field-site-evidence__matches {
  display: grid;
  gap: 0.85rem;
}

.field-site-overview,
.field-site-notes,
.field-site-photo-matches {
  display: grid;
  gap: 0.62rem;
  min-width: 0;
}

.field-site-overview {
  padding: 0.82rem 0.9rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background:
    linear-gradient(180deg, rgba(216, 200, 167, 0.18), rgba(255, 252, 246, 0.72)),
    rgba(255, 252, 246, 0.74);
}

.field-site-overview__label {
  margin: 0;
  color: var(--accent);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.field-site-overview-list {
  display: grid;
  gap: 0.46rem;
  margin: 0;
  padding-left: 1.1rem;
  color: var(--ink);
}

.field-site-overview-list li {
  max-width: 72ch;
  padding-left: 0.15rem;
  line-height: 1.48;
}

.field-site-overview-list li::marker {
  color: var(--accent);
}

.field-site-notes h5 {
  margin: 0;
  color: var(--ink);
  font-size: 0.9rem;
}

.field-site-notes .field-note-text {
  max-width: 72ch;
  color: var(--ink);
  line-height: 1.52;
}

.field-site-evidence__location,
.field-evidence-empty {
  color: var(--muted);
  font-size: 0.92rem;
}

.field-site-timeline {
  display: grid;
  gap: 0.62rem;
  align-self: start;
  min-width: 0;
}

.field-evidence-event-list {
  display: grid;
  gap: 0.78rem;
}

.field-evidence-event {
  display: grid;
  gap: 0.46rem;
  min-width: 0;
  scroll-margin-top: calc(var(--nav-height) + 1.15rem);
  padding: 0.72rem 0 0;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.field-evidence-event:first-child {
  padding-top: 0;
  border-top: 0;
}

.field-evidence-event:target {
  padding-inline: 0.58rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  background: rgba(216, 200, 167, 0.16);
}

.field-evidence-event__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.75rem;
}

.field-evidence-event__header span {
  min-width: 0;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.32;
  overflow-wrap: anywhere;
}

.field-evidence-event h6,
.field-evidence-event__title {
  margin: 0;
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.2;
}

.field-evidence-event p {
  max-width: 72ch;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.94rem;
  line-height: 1.42;
}

.field-evidence-event .field-evidence-event__title {
  max-width: none;
  color: var(--ink);
  font-size: 0.96rem;
  font-weight: 800;
  line-height: 1.2;
}

.field-evidence-event .gps-chip {
  margin-top: 0.08rem;
}

.field-photo-note-group-list {
  display: grid;
  gap: 0.95rem;
}

.field-photo-note-group {
  display: grid;
  gap: 0.62rem;
  padding: 0.68rem 0 0;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.field-photo-note-group:first-child {
  padding-top: 0;
  border-top: 0;
}

.field-photo-note-group__caption {
  display: grid;
  gap: 0.22rem;
  max-width: 72ch;
}

.field-photo-note-group__caption span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.32;
}

.field-photo-note-group__caption h6 {
  margin: 0;
  color: var(--ink);
  font-size: 0.96rem;
  line-height: 1.2;
}

.field-photo-note-group__caption p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.94rem;
  line-height: 1.42;
}

.field-photo-match-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 0.8rem;
}

.field-photo-card--matched {
  gap: 0.58rem;
  padding: 0.54rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: rgba(255, 252, 246, 0.68);
}

.field-site-evidence__support {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 1rem;
  align-items: start;
  padding-top: 0.82rem;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.field-site-evidence__support section,
.field-site-evidence__detail-grid {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
}

.field-site-evidence__support h5,
.field-site-evidence__details h5 {
  margin: 0;
  color: var(--ink);
  font-size: 0.9rem;
}

.gps-chip-list,
.evidence-audio-list {
  display: grid;
  gap: 0.42rem;
}

.gps-chip {
  display: grid;
  gap: 0.12rem;
  width: 100%;
  min-width: 0;
  padding: 0.52rem 0.58rem;
  border: 1px solid rgba(24, 59, 115, 0.14);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.72);
  color: var(--ink);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gps-chip:hover,
.gps-chip:focus-visible {
  border-color: rgba(24, 94, 108, 0.35);
  background: rgba(232, 245, 244, 0.72);
}

.gps-chip:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.18);
  outline-offset: 2px;
}

.gps-chip strong,
.gps-chip span {
  overflow-wrap: anywhere;
}

.gps-chip span {
  color: var(--muted);
  font-size: 0.82rem;
}

.audio-note-row--compact {
  grid-template-columns: 3.6rem minmax(0, 1fr) auto;
  gap: 0.62rem;
  padding: 0.54rem 0;
}

.audio-note-row__copy h6 {
  margin: 0;
  color: var(--ink);
  font-size: 0.94rem;
  line-height: 1.18;
}

.audio-note-row--compact .audio-note-row__time {
  font-size: 0.96rem;
}

.audio-note-row--compact .audio-note-row__copy p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.field-site-evidence__detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding-top: 0.25rem;
}

.field-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.72rem;
}

.field-photo-card {
  display: grid;
  gap: 0.48rem;
  min-width: 0;
  margin: 0;
}

.field-photo-card a,
.field-photo-lightbox-trigger {
  display: block;
  min-width: 0;
}

.field-photo-lightbox-trigger {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: zoom-in;
}

.field-photo-lightbox-trigger:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.24);
  outline-offset: 3px;
}

.field-photo-card img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(24, 59, 115, 0.14);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.72);
  object-fit: cover;
}

.field-photo-card figcaption {
  display: -webkit-box;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.36;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.field-photo-card figcaption span {
  display: block;
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 800;
}

.field-photo-card--matched figcaption {
  display: grid;
  gap: 0.18rem;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}

.field-photo-card--matched figcaption strong {
  color: var(--ink);
  font-size: 0.82rem;
}

.field-photo-card--matched figcaption p {
  margin: 0;
  color: var(--ink-soft);
}

.field-photo-card--matched figcaption small {
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.3;
}

body.has-photo-lightbox {
  overflow: hidden;
}

.photo-lightbox:not([open]) {
  display: none;
}

.photo-lightbox {
  box-sizing: border-box;
  position: fixed;
  inset: 0;
  z-index: 2400;
  display: grid;
  place-items: center;
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: clamp(0.85rem, 2.8vw, 2.4rem);
  overflow: hidden;
  border: 0;
  background: rgba(16, 25, 40, 0.78);
  color: inherit;
}

.photo-lightbox::backdrop {
  background: transparent;
}

.photo-lightbox__panel {
  box-sizing: border-box;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, 24rem);
  width: min(1180px, 100%);
  min-width: 0;
  max-height: 92vh;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 252, 246, 0.26);
  background: var(--surface-strong);
  box-shadow: 0 24px 70px rgba(16, 25, 40, 0.38);
}

.photo-lightbox__media {
  display: grid;
  min-height: min(72vh, 44rem);
  place-items: center;
  background: #101928;
}

.photo-lightbox__image {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 92vh;
  object-fit: contain;
}

.photo-lightbox__caption {
  display: grid;
  align-content: start;
  gap: 0.7rem;
  max-height: 92vh;
  padding: 1rem;
  overflow: auto;
  color: var(--ink-soft);
}

.photo-lightbox__meta {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.35;
}

.photo-lightbox__text {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.48;
  overflow-wrap: anywhere;
}

.photo-lightbox__source {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.photo-lightbox__open {
  justify-self: start;
  color: var(--accent);
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.photo-lightbox__close,
.photo-lightbox__nav {
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(30, 49, 84, 0.22);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.94);
  color: var(--ink);
  cursor: pointer;
  line-height: 1;
}

.photo-lightbox__close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  z-index: 2;
  width: 2.15rem;
  height: 2.15rem;
  font-size: 1.24rem;
}

.photo-lightbox__nav {
  width: 2.35rem;
  height: 2.35rem;
  font-size: 1.35rem;
}

.photo-lightbox__close .material-symbols-rounded,
.photo-lightbox__nav .material-symbols-rounded {
  font-size: 1.24rem;
  line-height: 1;
  letter-spacing: 0;
}

.photo-lightbox__nav-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.photo-lightbox__count {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.photo-lightbox__close:hover,
.photo-lightbox__close:focus-visible,
.photo-lightbox__nav:hover,
.photo-lightbox__nav:focus-visible {
  border-color: rgba(24, 94, 108, 0.35);
  background: rgba(232, 245, 244, 0.96);
}

.photo-lightbox__nav:disabled {
  opacity: 0.42;
  cursor: default;
}

.photo-lightbox__nav:disabled:hover {
  border-color: rgba(30, 49, 84, 0.22);
  background: rgba(255, 252, 246, 0.94);
}

.photo-lightbox__close:focus-visible,
.photo-lightbox__nav:focus-visible,
.photo-lightbox__open:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.22);
  outline-offset: 2px;
}

.sample-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 34rem);
  gap: 1rem;
  align-items: end;
}

.sample-manifest-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  padding: 0.8rem;
  border: 1px solid var(--line-strong);
  background: rgba(255, 252, 246, 0.86);
  box-shadow: var(--shadow-soft);
}

.sample-manifest-summary span {
  display: grid;
  gap: 0.18rem;
  min-width: 0;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
}

.sample-manifest-summary strong {
  color: var(--ink);
  font-size: 1.18rem;
  line-height: 1.1;
  text-transform: none;
}

.section--sample-manifest {
  padding-top: 1.2rem;
}

.sample-manifest-toolbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.7rem;
}

.sample-manifest-toolbar a {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.72rem 0.85rem;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-soft);
  box-shadow: var(--shadow-soft);
  transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.sample-manifest-toolbar a:hover,
.sample-manifest-toolbar a:focus-visible {
  border-color: var(--accent);
  box-shadow: var(--shadow);
  transform: translateY(-1px);
}

.sample-manifest-toolbar a:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.22);
  outline-offset: 2px;
}

.sample-manifest-toolbar strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.22rem;
  font-weight: 400;
}

.sample-manifest-toolbar span,
.sample-island-heading p,
.sample-site-block__header span {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 800;
}

.sample-island-section {
  scroll-margin-top: calc(var(--nav-height) + 1.2rem);
}

.sample-site-stack {
  display: grid;
  gap: 1.05rem;
  min-width: 0;
}

.sample-site-block {
  min-width: 0;
  border: 1px solid var(--line);
  background: rgba(255, 252, 246, 0.78);
  box-shadow: var(--shadow-soft);
}

.sample-site-block__header {
  display: flex;
  gap: 1rem;
  align-items: end;
  justify-content: space-between;
  padding: 0.9rem 1rem;
  border-bottom: 1px solid var(--line);
}

.sample-site-block__header h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 400;
}

.sample-table-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
}

.sample-manifest-table {
  width: 100%;
  min-width: 68rem;
  border-collapse: collapse;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.32;
}

.sample-manifest-table th,
.sample-manifest-table td {
  padding: 0.62rem 0.7rem;
  border-bottom: 1px solid rgba(30, 49, 84, 0.1);
  text-align: left;
  vertical-align: top;
}

.sample-manifest-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--surface-strong);
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.sample-manifest-table tbody tr:hover {
  background: rgba(215, 228, 233, 0.24);
}

.sample-manifest-table td:first-child {
  color: var(--ink);
  white-space: nowrap;
}

.sample-photo-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.36rem;
  min-width: 8rem;
  max-width: 14rem;
}

.sample-photo-trigger {
  width: 3.45rem;
  height: 2.58rem;
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.18);
  border-radius: 0.2rem;
  background: var(--surface-strong);
  box-shadow: none;
}

.sample-photo-trigger:hover,
.sample-photo-trigger:focus-visible {
  border-color: var(--accent);
}

.sample-photo-trigger img {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  object-fit: cover;
}

.sample-photo-empty {
  display: inline-flex;
  padding: 0.28rem 0.44rem;
  border: 1px solid rgba(30, 49, 84, 0.12);
  background: rgba(251, 248, 242, 0.78);
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 800;
}

@media (max-width: 920px) {
  .sample-hero {
    grid-template-columns: 1fr;
  }

  .sample-manifest-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sample-site-block__header {
    align-items: start;
    flex-direction: column;
  }

  .sample-photo-trigger {
    height: 2.75rem;
  }
}

@media (max-width: 920px) {
  .sample-table-scroll {
    overflow-x: visible;
  }

  .sample-manifest-table {
    display: block;
    min-width: 0;
    font-size: 0.82rem;
  }

  .sample-manifest-table thead {
    display: none;
  }

  .sample-manifest-table tbody {
    display: grid;
    gap: 0.7rem;
  }

  .sample-manifest-table tr {
    display: grid;
    gap: 0;
    border: 1px solid rgba(30, 49, 84, 0.12);
    background: rgba(255, 252, 246, 0.72);
  }

  .sample-manifest-table th,
  .sample-manifest-table td {
    display: grid;
    grid-template-columns: minmax(6.75rem, 0.42fr) minmax(0, 1fr);
    gap: 0.7rem;
    align-items: start;
    min-width: 0;
    padding: 0.58rem 0.68rem;
    border-bottom: 1px solid rgba(30, 49, 84, 0.08);
  }

  .sample-manifest-table tr > td:last-child {
    border-bottom: 0;
  }

  .sample-manifest-table td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.07em;
    line-height: 1.15;
    text-transform: uppercase;
  }

  .sample-manifest-table td:first-child {
    background: rgba(215, 228, 233, 0.22);
  }

  .sample-photo-strip {
    min-width: 0;
    max-width: 100%;
  }

  .sample-photo-trigger {
    width: 3.6rem;
    height: 2.75rem;
  }
}

@media (max-width: 620px) {
  .sample-manifest-toolbar {
    grid-template-columns: 1fr;
  }

  .sample-manifest-summary {
    grid-template-columns: 1fr;
  }
}

.field-note-list {
  display: grid;
  gap: 0.34rem;
  margin: 0;
  padding-left: 1.05rem;
}

.field-note-list--samples {
  padding-left: 0;
  list-style: none;
}

.field-note-list--samples li {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
  padding: 0.5rem 0;
  border-top: 1px solid rgba(24, 59, 115, 0.08);
}

.field-note-list--samples li:first-child {
  border-top: 0;
}

.field-note-list--samples span,
.field-note-list--samples small {
  overflow-wrap: anywhere;
}

.field-note-list--samples small {
  color: var(--muted);
}

.field-site-note {
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: rgba(255, 252, 246, 0.56);
}

.field-site-note summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.2rem;
  padding: 0.68rem 0.78rem;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}

.field-site-note summary::-webkit-details-marker {
  display: none;
}

.field-site-note summary span:first-child {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}

.field-site-note summary strong,
.field-site-note summary small {
  overflow-wrap: anywhere;
}

.field-site-note summary small,
.field-site-note summary span:last-child {
  color: var(--muted);
}

.field-site-note__body {
  padding: 0 0.78rem 0.85rem;
}

.field-note-sketch {
  display: block;
  width: min(100%, 42rem);
  max-height: 34rem;
  object-fit: contain;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: #fffdfa;
}

.execution-card--gps-ledger {
  grid-column: 1 / -1;
}

.execution-card--audio-notes {
  grid-column: 1 / -1;
}

.audio-note-list {
  display: grid;
  gap: 0.45rem;
}

.audio-note-row {
  display: grid;
  grid-template-columns: 4.6rem minmax(0, 1fr) auto;
  gap: 0.85rem;
  align-items: start;
  min-width: 0;
  padding: 0.72rem 0;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.audio-note-row:first-child {
  border-top: 0;
  padding-top: 0;
}

.audio-note-row__time {
  color: var(--reef);
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.1;
}

.audio-note-row__copy {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
}

.audio-note-row__copy h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.18;
}

.audio-note-row__copy p {
  margin: 0;
  color: var(--ink);
  line-height: 1.45;
}

.audio-note-row__copy small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.audio-note-row__button,
.audio-note-popout__header button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.2rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.76);
  color: var(--reef);
  font: inherit;
  font-size: 0.85rem;
  font-weight: 800;
  cursor: pointer;
}

.audio-note-row__button {
  min-width: 5.9rem;
  padding: 0.4rem 0.72rem;
}

.audio-note-popout__header button {
  width: 2.35rem;
  min-width: 2.35rem;
  padding: 0;
}

.audio-note-row__button:hover,
.audio-note-popout__header button:hover {
  border-color: rgba(24, 94, 108, 0.32);
  background: rgba(232, 245, 244, 0.82);
}

.audio-note-row__button:focus-visible,
.audio-note-popout__header button:focus-visible {
  outline: 3px solid rgba(24, 94, 108, 0.2);
  outline-offset: 2px;
}

.audio-note-popout {
  width: min(48rem, calc(100vw - 2rem));
  max-height: min(42rem, calc(100vh - 2rem));
  margin: auto;
  padding: 1.1rem;
  border: 1px solid rgba(24, 59, 115, 0.18);
  border-radius: 0.72rem;
  background: var(--surface-strong);
  color: var(--ink);
  overflow: hidden;
  box-shadow: 0 24px 55px rgba(31, 43, 41, 0.16);
}

.audio-note-popout:popover-open {
  position: fixed;
  inset: 50% auto auto 50%;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  transform: translate(-50%, -50%);
}

.audio-note-popout::backdrop {
  background: rgba(16, 25, 40, 0.68);
}

.audio-note-popout__header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid rgba(24, 59, 115, 0.12);
}

.audio-note-popout__header h3 {
  margin: 0.15rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1.08;
}

.audio-note-popout__summary {
  margin: 0.8rem 0;
  color: var(--ink);
  font-weight: 700;
  line-height: 1.45;
}

.audio-note-popout__body {
  max-height: min(25rem, 48vh);
  overflow: auto;
  padding: 0.9rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: 0.5rem;
  background: rgba(245, 241, 231, 0.62);
}

.audio-note-popout__body p {
  max-width: 70ch;
  margin: 0;
  white-space: pre-line;
  line-height: 1.58;
}

@media (max-width: 720px) {
  .audio-note-row {
    grid-template-columns: 1fr auto;
  }

  .audio-note-row__time {
    grid-column: 1 / -1;
  }

  .audio-note-popout {
    width: calc(100vw - 1.4rem);
    max-height: calc(100dvh - 1.4rem);
    padding: 0.85rem;
    border-radius: 0.42rem;
  }

  .audio-note-popout__header h3 {
    font-size: 1.22rem;
    line-height: 1.12;
  }

  .audio-note-popout__summary {
    font-size: 0.96rem;
  }

  .audio-note-popout__body {
    max-height: 52vh;
    padding: 0.75rem;
  }
}

.gps-ledger__header,
.gps-ledger__section-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 1rem;
}

.gps-ledger__section {
  display: grid;
  gap: 0.62rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(24, 59, 115, 0.12);
}

.gps-ledger__section:first-of-type {
  padding-top: 0;
  border-top: 0;
}

.gps-datum-figure {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(24, 59, 115, 0.12);
}

.gps-datum-figure__image {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: #fffdfa;
}

.gps-datum-figure img {
  display: block;
  width: 100%;
  min-width: 44rem;
  height: auto;
}

.gps-datum-figure figcaption {
  display: grid;
  gap: 0.18rem;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.42;
}

.gps-datum-figure figcaption strong {
  color: var(--ink);
  font-size: 0.98rem;
}

.gps-ledger__section-head h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.24rem;
  font-weight: 400;
  line-height: 1.12;
}

.gps-ledger__section-head span {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.gps-ledger-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(24, 59, 115, 0.12);
  background: rgba(255, 252, 246, 0.62);
}

.gps-ledger-table {
  width: 100%;
  min-width: 58rem;
  border-collapse: collapse;
  font-size: 0.93rem;
  line-height: 1.36;
}

.gps-ledger-table th,
.gps-ledger-table td {
  padding: 0.62rem 0.7rem;
  border-bottom: 1px solid rgba(24, 59, 115, 0.1);
  text-align: left;
  vertical-align: top;
}

.gps-ledger-table thead th {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.gps-ledger-table tbody th {
  width: 18%;
  color: var(--ink);
  font-weight: 800;
}

.gps-ledger-table tbody td {
  color: var(--ink-soft);
}

.gps-ledger-table tbody tr:last-child th,
.gps-ledger-table tbody tr:last-child td {
  border-bottom: 0;
}

.gps-ledger-card-list {
  display: none;
}

.gps-quick-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gps-quick-list li {
  display: grid;
  gap: 0.2rem;
  min-width: 0;
  padding: 0.66rem 0.72rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  background: rgba(255, 252, 246, 0.56);
}

.gps-quick-list strong {
  color: var(--ink);
}

.gps-quick-list span {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.basecamp-hero__title {
  max-width: 12ch;
}

.basecamp-hero__compass {
  width: 10rem;
  height: 2.5rem;
  margin-top: 1.2rem;
  background:
    radial-gradient(circle at 1.1rem 50%, transparent 0 0.9rem, rgba(24, 59, 115, 0.18) 0.95rem, transparent 1rem),
    linear-gradient(90deg, rgba(24, 59, 115, 0.35) 0 6rem, transparent 6rem);
}

.stays-hero-shell {
  border-bottom: 1px solid var(--line);
}

.stays-hero {
  position: relative;
  min-height: 12rem;
  overflow: hidden;
}

.stays-hero::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 60%;
  background: linear-gradient(90deg, rgba(248, 244, 236, 0.99) 0%, rgba(248, 244, 236, 0.98) 40%, rgba(248, 244, 236, 0.9) 56%, rgba(248, 244, 236, 0.56) 76%, rgba(248, 244, 236, 0) 100%);
  pointer-events: none;
  z-index: 1;
}

.stays-hero__copy,
.stays-hero__image {
  min-width: 0;
}

.stays-hero__copy {
  display: grid;
  align-content: center;
  width: min(38rem, 42%);
  min-height: 12rem;
  padding: 1.25rem 1.2rem 1.25rem 1.6rem;
  position: relative;
  z-index: 2;
}

.stays-hero__image {
  position: absolute;
  inset: 0;
}

.stays-filter {
  display: grid;
  gap: 0.6rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

.stays-filter__option {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--ink-soft);
}

.stays-filter__option input {
  accent-color: var(--accent);
}

.stays-filter__option.is-active {
  color: var(--ink);
  font-weight: 700;
}

.basecamp-header,
.basecamp-footer-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.basecamp-header {
  padding: 1rem 0 0.5rem;
}

.basecamp-header__title {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.basecamp-header h2 {
  margin: 0;
  color: var(--ink);
  font-size: 3rem;
  line-height: var(--leading-heading);
}

.basecamp-header__title p {
  margin: 0.25rem 0 0;
  color: var(--ink-soft);
  font-size: 1.1rem;
}

.basecamp-header__region {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.8rem;
  width: max-content;
  max-width: 100%;
  padding: 0.32rem 0.58rem;
  border: 1px solid rgba(24, 59, 115, 0.16);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.9);
  color: var(--ink);
  font-size: 0.74rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
  line-height: 1;
  white-space: nowrap;
}

.status-pill--confirmed {
  border-color: oklch(58% 0.11 150 / 0.34);
  background: oklch(96% 0.025 150 / 0.86);
  color: oklch(35% 0.09 150);
}

.status-pill--watch {
  border-color: oklch(68% 0.09 82 / 0.4);
  background: oklch(95% 0.04 82 / 0.82);
  color: oklch(39% 0.08 78);
}

.status-pill--pending {
  border-color: oklch(61% 0.12 47 / 0.36);
  background: oklch(95% 0.04 52 / 0.86);
  color: oklch(41% 0.11 43);
}

.payment-status-board {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.62rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.payment-status-board .overview-card__eyebrow {
  margin-bottom: 0;
}

.payment-status-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.55rem;
}

.payment-status-button {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
  min-height: 3.1rem;
  padding: 0.56rem 0.62rem;
  border: 1px solid rgba(24, 59, 115, 0.16);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.76);
  color: var(--ink);
  cursor: default;
  text-align: left;
  transition: border-color 140ms ease, background 140ms ease, box-shadow 140ms ease;
}

.payment-status-button:hover {
  border-color: rgba(24, 59, 115, 0.26);
  background: rgba(255, 252, 246, 0.94);
}

.payment-status-button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.payment-status-button__icon {
  flex: 0 0 auto;
  font-size: 1.18rem;
}

.payment-status-button__copy {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}

.payment-status-button__label,
.payment-status-button__state {
  min-width: 0;
  overflow-wrap: anywhere;
}

.payment-status-button__label {
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.payment-status-button__state {
  color: currentColor;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.12;
}

.payment-status-button--paid {
  border-color: oklch(58% 0.11 150 / 0.34);
  background: oklch(96% 0.025 150 / 0.78);
  color: oklch(35% 0.09 150);
}

.payment-status-button--cash {
  border-color: oklch(61% 0.12 47 / 0.42);
  background: oklch(95% 0.04 52 / 0.82);
  color: oklch(41% 0.11 43);
}

.payment-status-button--card {
  border-color: oklch(52% 0.12 249 / 0.34);
  background: oklch(95% 0.025 249 / 0.84);
  color: oklch(34% 0.1 249);
}

.payment-status-button--unknown {
  border-color: oklch(60% 0.09 82 / 0.42);
  background: oklch(96% 0.036 82 / 0.82);
  color: oklch(38% 0.08 78);
}

.payment-status-button--neutral {
  border-color: rgba(30, 49, 84, 0.14);
  background: rgba(245, 240, 231, 0.58);
  color: var(--muted);
}

.ops-card__header,
.basecamp-status__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 0.85rem;
}

.ops-card__header .overview-card__eyebrow {
  margin-bottom: 0;
}

.basecamp-command,
.basecamp-execution {
  display: grid;
  gap: 1.05rem;
  padding: 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.basecamp-command {
  grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
  align-items: start;
  margin-top: 0.2rem;
  padding: 1.1rem 1.1rem 1rem;
}

.basecamp-command__identity {
  display: flex;
  align-items: start;
  gap: 1rem;
  min-width: 0;
}

.basecamp-command__copy {
  min-width: 0;
}

.basecamp-command__copy h2 {
  margin: 0;
  color: var(--ink);
  font-size: 3rem;
  line-height: var(--leading-heading);
}

.basecamp-command__copy p:not(.overview-card__eyebrow) {
  margin: 0.35rem 0 0;
  color: var(--ink-soft);
  overflow-wrap: anywhere;
}

.basecamp-command__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.42);
}

.basecamp-command__metrics span {
  display: grid;
  gap: 0.14rem;
  min-width: 0;
  padding: 0.72rem 0.8rem;
  color: var(--muted);
  font-size: 0.82rem;
  overflow-wrap: anywhere;
}

.basecamp-command__metrics span + span {
  border-left: 1px solid rgba(24, 59, 115, 0.1);
}

.basecamp-command__metrics strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.55rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.basecamp-status-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
  padding-top: 0.95rem;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.basecamp-status {
  display: grid;
  align-content: start;
  gap: 0.35rem;
  min-width: 0;
}

.basecamp-status__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
}

.basecamp-status__head strong {
  min-width: 0;
  color: var(--ink);
}

.basecamp-status__head .op-icon {
  margin-right: 0;
  flex: 0 0 auto;
}

.basecamp-status p,
.basecamp-actions li,
.basecamp-day-row small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.basecamp-actions {
  grid-column: 1 / -1;
  display: grid;
  gap: 0.45rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(24, 59, 115, 0.1);
}

.basecamp-actions ul {
  display: grid;
  gap: 0.35rem;
  margin: 0;
  padding-left: 1.1rem;
}

.basecamp-execution {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  margin-top: 1.2rem;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.basecamp-day-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.basecamp-day-row {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
  padding: 0.72rem 0.78rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.58);
  color: var(--ink);
  text-decoration: none;
}

.basecamp-day-row:hover {
  border-color: rgba(24, 59, 115, 0.24);
  box-shadow: 0 10px 22px rgba(37, 48, 67, 0.06);
}

.basecamp-day-row:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.basecamp-day-row span {
  color: var(--accent);
  font-size: 0.74rem;
  font-weight: 800;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.basecamp-day-row strong {
  color: var(--ink);
}

.basecamp-logistics {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(22rem, 1.35fr);
  grid-template-areas:
    "lodging vehicle map"
    "food places map"
    "context context context";
  align-items: stretch;
  margin-top: 1.35rem;
}

.basecamp-card--lodging {
  grid-area: lodging;
}

.basecamp-card--vehicle {
  grid-area: vehicle;
}

.basecamp-card--food {
  grid-area: food;
}

.basecamp-card--places {
  grid-area: places;
}

.basecamp-card--context {
  grid-area: context;
}

.basecamp-card--map {
  grid-area: map;
}

.basecamp-milestone-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 0.75rem;
}

.milestone-card {
  display: flex;
  gap: 1rem;
  align-items: start;
  padding: 1rem;
}

.basecamp-bottom {
  grid-template-columns: 1fr 1fr;
  margin-top: 1rem;
}

.context-map--single {
  min-height: 16rem;
}

.basecamp-footer-note {
  margin-top: 1rem;
  padding: 1rem;
}

.stay-timeline .ops-timeline__item {
  grid-template-columns: 1.85rem minmax(0, 1fr);
  align-items: start;
  gap: 0.35rem 0.62rem;
  padding: 0.64rem 0.72rem 0.7rem 0.45rem;
}

.stay-timeline .ops-timeline__rail {
  grid-row: span 3;
}

.stay-timeline .ops-timeline__title {
  margin-top: 0.05rem;
}

.stay-timeline .ops-timeline__date {
  font-size: 0.92rem;
}

.stay-timeline__meta {
  display: block;
  margin-top: 0.1rem;
  color: var(--muted);
  font-size: 0.78rem;
}

.stay-timeline .ops-timeline__item.is-active .stay-timeline__meta {
  color: inherit;
}

.stay-timeline__status {
  grid-column: 2;
  margin-top: 0.1rem;
}

.stay-mobile-nav {
  display: none;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.65rem;
}

.stay-mobile-nav__edge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 700;
  white-space: nowrap;
}

.stay-mobile-nav__current {
  max-width: 15rem;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 800;
  text-align: center;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stay-mobile-nav__edge--next {
  justify-self: end;
}

.stay-mobile-nav__edge[hidden] {
  visibility: hidden;
}

.stay-mobile-nav__edge:disabled {
  opacity: 0.45;
}

.stay-panel {
  padding-top: 0.25rem;
}

.ops-card--map {
  grid-row: span 2;
}

@media (max-width: 1350px) {
  .overview-dashboard--logbook {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "maps";
  }
}

@media (max-width: 1200px) {
  .overview-dashboard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 1rem;
  }

  .overview-dashboard--logbook {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "maps";
  }

  .overview-card--map {
    grid-column: span 1;
  }

  .ops-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .basecamp-logistics,
  .basecamp-milestone-row,
  .basecamp-bottom {
    grid-template-columns: 1fr 1fr;
  }

  .basecamp-logistics {
    grid-template-areas:
      "lodging vehicle"
      "map map"
      "food places"
      "context context";
  }

  .basecamp-command,
  .basecamp-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ops-layout--stays {
    grid-template-columns: 14rem minmax(0, 1fr);
  }
}

@media (max-width: 960px) {
  .overview-hero,
  .basecamp-hero,
  .stays-hero,
  .ops-layout,
  .day-map-card,
  .basecamp-milestone-row,
  .basecamp-logistics,
  .basecamp-bottom,
  .quick-actions {
    grid-template-columns: 1fr;
  }

  .overview-hero--logbook {
    min-height: auto;
    padding: 1.45rem 1rem 5.25rem;
  }

  .overview-hero--logbook .hero__title {
    font-size: 3.65rem;
  }

  .overview-dashboard--logbook {
    grid-template-columns: 1fr;
    grid-template-areas:
      "brief";
  }

  .stays-hero {
    position: relative;
    min-height: 10.5rem;
    overflow: hidden;
  }

  .stays-hero::before {
    width: 100%;
    background: linear-gradient(90deg, rgba(21, 40, 68, 0.68), rgba(21, 40, 68, 0.38) 54%, rgba(21, 40, 68, 0) 100%);
  }

  .stays-hero__image {
    grid-row: 1;
    grid-column: 1;
  }

  .stays-hero__photo {
    filter: brightness(0.62);
  }

  .stays-hero__copy {
    position: relative;
    z-index: 1;
    grid-row: 1;
    grid-column: 1;
    width: min(75%, 18rem);
    min-height: 10.5rem;
    padding: 1.5rem 1rem;
  }

  .stays-hero__copy .hero__eyebrow,
  .stays-hero__copy .hero__title,
  .stays-hero__copy .hero__lede {
    color: #f7f3eb;
  }

  .ops-sidebar {
    order: 2;
  }

  .ops-main {
    order: 1;
  }

  .day-map-card {
    max-height: none;
    overflow: visible;
  }

  .ops-layout--stays .ops-sidebar {
    order: 1;
    position: sticky;
    top: var(--nav-height);
    z-index: 8;
    padding: 0.65rem 0 0.72rem;
    border-bottom: 1px solid var(--line);
    background: rgba(245, 240, 231, 0.97);
  }

  .ops-layout--stays .ops-main {
    order: 2;
  }

  .ops-timeline {
    grid-auto-flow: column;
    grid-auto-columns: minmax(14rem, 1fr);
    overflow-x: auto;
    padding-bottom: 0.2rem;
  }

  .stay-timeline {
    grid-auto-flow: column;
    grid-auto-columns: minmax(15.5rem, 82vw);
    overflow-x: auto;
  }

  .stay-mobile-nav {
    display: grid;
  }

  .day-map-card__stage {
    height: 24rem;
    min-height: 24rem;
    max-height: none;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .day-map-card__widgets {
    width: min(16.5rem, calc(100% - 5rem));
  }

  .layer-toggle {
    min-height: 2.75rem;
  }

  [data-calendar] .ops-sidebar {
    display: none;
  }

  .day-mobile-nav {
    display: flex;
  }

  .day-switchboard {
    top: var(--itinerary-switchboard-top);
    grid-template-columns: 1fr;
  }

  .ops-layout--stays .ops-sidebar__header h2,
  .ops-layout--stays .ops-sidebar__export {
    display: none;
  }

  .ops-layout--stays .ops-sidebar__header {
    padding-bottom: 0;
  }

  .ops-layout--stays .ops-sidebar {
    gap: 0.7rem;
  }

  .basecamp-command {
    grid-template-columns: 1fr;
  }

  .basecamp-execution {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }

  .basecamp-logistics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "lodging vehicle"
      "map map"
      "food places"
      "context context";
  }

  .basecamp-status-grid,
  .basecamp-day-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stay-grid,
  .stay-grid--compact,
  .capture-grid,
  .day-nav {
    grid-template-columns: 1fr;
  }

  .icon-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .ops-layout,
  .ops-main,
  .overview-stage,
  .overview-dashboard,
  .overview-card,
  .basecamp-logistics,
  .basecamp-command,
  .basecamp-execution,
  .ops-card,
  .calendar-panels,
  .calendar-panel,
  .day-focus,
  .stays-hero-shell,
  .stays-hero,
  .reef-coral-section {
    min-width: 0;
    max-width: 100%;
  }

  .overview-card,
  .basecamp-command,
  .basecamp-execution,
  .ops-card,
  .document-card,
  .checklist-card,
  .stack-card {
    width: min(100%, calc(100vw - 1.8rem));
    max-width: calc(100vw - 1.8rem);
  }

  .overview-card p,
  .overview-card li,
  .basecamp-command__copy p,
  .basecamp-status p,
  .basecamp-actions li,
  .basecamp-day-row small,
  .ops-card p,
  .ops-card li,
  .bullet-list li,
  .execution-card p,
  .attachment-slot p {
    max-width: min(100%, 31ch);
  }

  .overview-stage {
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    padding-bottom: 0.95rem;
  }

  .overview-dashboard,
  .ops-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 1rem;
  }

  .overview-dashboard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-inline: 1rem;
  }

  .overview-dashboard--logbook {
    grid-template-columns: 1fr;
    padding-inline: 0.9rem;
  }

  .overview-dashboard--logbook .field-log-panel {
    width: 100%;
    max-width: none;
  }

  .overview-card--summary,
  .overview-card--progress,
  .overview-card--transfers,
  .overview-card--map,
  .overview-card--notes,
  .overview-card--samples,
  .overview-card--weather,
  .flight-timing-card,
  .attachments-card,
  .day-map-card,
  .ops-card-grid > .ops-card {
    grid-column: span 2;
  }

  .overview-card--island,
  .overview-card--basecamp {
    grid-column: span 1;
  }

  .overview-hero__copy,
  .basecamp-hero__copy {
    padding: 1.15rem 1rem;
  }

  .overview-hero {
    min-height: 18.6rem;
    padding-bottom: 7rem;
  }

  .overview-stage::before {
    background: none;
  }

  .overview-stage--logbook::before {
    background: none;
  }

  .overview-stage__image {
    position: absolute;
    inset: 0;
    min-height: 100%;
  }

  .overview-hero__photo {
    object-position: center center;
    filter: none;
  }

  .overview-hero__copy {
    position: relative;
    z-index: 1;
    width: min(72%, 16.5rem);
  }

  .overview-hero__meta {
    gap: 0.55rem;
  }

  .quick-actions__card {
    min-height: 2.85rem;
  }

  .overview-hero .hero__title {
    max-width: 11.5ch;
    font-size: 3.15rem;
  }

  .overview-hero--logbook .hero__title {
    max-width: 8.5ch;
    font-size: 3.25rem;
  }

  .field-log-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .field-log-latest {
    margin-top: 0.2rem;
  }

  .field-log-row {
    grid-template-columns: 3.7rem minmax(0, 1fr);
    gap: 0.55rem;
  }

  .field-log-row__state {
    grid-column: 2;
  }

  .overview-meta-pill {
    padding: 0.72rem 0.8rem;
    font-size: 0.88rem;
  }

  .day-mobile-nav {
    margin-bottom: 0.65rem;
  }

  .day-mobile-nav__current {
    font-size: 0.98rem;
    text-align: center;
  }

  .day-focus__summary {
    max-width: none;
  }

  .day-map-card__stage {
    height: 18rem;
    min-height: 18rem;
  }

  .ops-card-grid {
    grid-template-columns: 1fr;
  }

  .overview-stage__image,
  .basecamp-hero__image {
    min-height: 16rem;
  }

  .basecamp-header,
  .basecamp-footer-note,
  .attachments-card__header,
  .flight-timing-card__header,
  .day-focus__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .flight-timing-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .flight-timing-row__times {
    grid-column: 1 / -1;
    justify-content: space-between;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(30, 49, 84, 0.08);
  }

  .schedule-timing-row__time {
    grid-column: 1 / -1;
    justify-items: start;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(30, 49, 84, 0.08);
  }

  .schedule-timing-row__time time,
  .schedule-timing-row__time span {
    text-align: left;
  }

  .basecamp-logistics,
  .basecamp-milestone-row,
  .basecamp-bottom {
    grid-template-columns: 1fr;
  }

  .basecamp-logistics {
    grid-template-areas:
      "lodging"
      "vehicle"
      "map"
      "food"
      "places"
      "context";
    margin-top: 1rem;
  }

  .basecamp-command,
  .basecamp-execution {
    padding: 0.9rem;
  }

  .basecamp-execution {
    padding: 0;
  }

  .basecamp-command__identity {
    gap: 0.75rem;
  }

  .basecamp-command__copy h2 {
    font-size: 2.7rem;
  }

  .basecamp-command__metrics,
  .basecamp-status-grid,
  .basecamp-day-list {
    grid-template-columns: 1fr;
  }

  .basecamp-command__metrics span + span {
    border-left: 0;
    border-top: 1px solid rgba(24, 59, 115, 0.1);
  }

  .ops-card__header {
    flex-direction: column;
    align-items: flex-start;
  }

  .basecamp-status__head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .basecamp-status__head .status-pill {
    grid-column: 1 / -1;
    margin-top: 0.15rem;
  }

  .hero__title {
    font-size: 2.7rem;
  }

  .day-focus__title {
    max-width: 10.5ch;
    font-size: 2.7rem;
  }

  body[data-page="itinerary"] .day-focus__title {
    font-size: 2.7rem;
  }

  .overview-meta-pill {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .stays-filter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--accent);
    color: #f7f3eb;
  }

  .stays-filter .overview-card__eyebrow {
    margin: 0;
    color: #f7f3eb;
  }

  .stays-filter__option {
    display: none;
  }

  .stays-filter::after {
    content: "expand_more";
    font-family: "Material Symbols Rounded";
    font-size: 1.25rem;
  }

  .stays-hero__copy {
    min-height: 9rem;
    padding: 1.25rem 1rem;
  }

  .stays-hero__copy .hero__title {
    max-width: 10ch;
    font-size: 3rem;
  }

  .stays-hero__copy .hero__lede {
    max-width: 16rem;
  }
}

.reef-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(246, 243, 234, 0.08) 0%, rgba(246, 243, 234, 0.3) 100%),
    linear-gradient(90deg, rgba(246, 243, 234, 0.995) 0%, rgba(246, 243, 234, 0.985) 34%, rgba(246, 243, 234, 0.92) 52%, rgba(246, 243, 234, 0.62) 70%, rgba(246, 243, 234, 0.12) 86%, rgba(246, 243, 234, 0) 100%);
  pointer-events: none;
  z-index: 1;
}

.reef-hero {
  min-height: 18rem;
  padding-bottom: 0;
}

.reef-hero .hero__title {
  max-width: 10ch;
}

.reef-hero .hero__eyebrow,
.reef-hero .hero__title,
.reef-hero .hero__lede {
  text-shadow: 0 1px 0 rgba(255, 252, 246, 0.4);
}

.reef-hero .overview-hero__copy {
  width: min(38rem, 42%);
  min-height: 18rem;
  padding: 1.8rem 1.2rem 1.8rem 1.6rem;
}

.reef-hero__facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.8rem;
}

.reef-hero__fact {
  display: inline-flex;
  align-items: center;
  min-height: 2.15rem;
  padding: 0.48rem 0.82rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.82);
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.reef-hero__fact:hover {
  border-color: rgba(24, 59, 115, 0.24);
  box-shadow: 0 14px 26px rgba(37, 48, 67, 0.08);
  transform: translateY(-1px);
}

.reef-hero .overview-hero__photo {
  filter: saturate(0.9) brightness(0.78);
}

.reef-setting-grid .album-card {
  height: 100%;
}

.reef-zone-list {
  display: grid;
  gap: 0.85rem;
  margin-top: 0.85rem;
}

.reef-zone-list__item {
  display: grid;
  gap: 0.15rem;
}

.reef-zone-list__item strong {
  color: var(--ink);
}

.reef-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: 1rem;
  align-items: start;
}

.reef-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.reef-card__gallery {
  display: grid;
  gap: 0;
}

.reef-card__media {
  background: rgba(24, 59, 115, 0.08);
}

.reef-card__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.reef-card__thumbs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
  padding: 0.35rem;
  background: rgba(24, 59, 115, 0.04);
}

.reef-card__thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 0.2rem;
}

.reef-card__body {
  display: grid;
  gap: 0.6rem;
  align-content: start;
  min-width: 0;
  padding: 1.1rem 1.15rem;
}

.reef-card__meta,
.reef-mini-sources,
.reef-card__photo-note {
  color: var(--muted);
}

.reef-card__meta {
  margin: 0;
  font-size: 0.84rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.reef-card h3 {
  margin: 0;
  color: var(--ink);
  font-size: 1.35rem;
  font-family: var(--font-display);
  line-height: 1.12;
}

.reef-card__latin {
  margin: -0.2rem 0 0;
}

.reef-card__details {
  display: grid;
  gap: 0.45rem;
}

.reef-card__details--field p {
  padding-top: 0.45rem;
  border-top: 1px solid rgba(24, 59, 115, 0.08);
}

.reef-card__details--field p:first-child {
  padding-top: 0;
  border-top: 0;
}

.reef-card__details p,
.reef-card__photo-note,
.reef-mini-sources {
  margin: 0;
}

.reef-card__details--field strong {
  display: block;
  margin-bottom: 0.15rem;
  font-size: 0.8rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.reef-card__details strong {
  color: var(--ink);
}

.reef-card__photo-note,
.reef-mini-sources {
  font-size: 0.94rem;
  line-height: 1.45;
}

.reef-mini-sources a,
.reef-card__photo-note a {
  color: var(--accent);
}

.reef-coral-section {
  display: grid;
  gap: 1rem;
  min-width: 0;
  padding-top: 0.2rem;
}

.reef-coral-quickbar {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
  gap: 0.8rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.56);
}

.reef-coral-filter-disclosure {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
}

.reef-coral-filter-disclosure > summary {
  display: none;
}

.reef-coral-filter-disclosure > summary::-webkit-details-marker {
  display: none;
}

.reef-coral-quickbar__group {
  display: grid;
  gap: 0.45rem;
  min-width: 0;
}

.reef-coral-quickbar .chip-list {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.reef-coral-quickbar__group > span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.reef-coral-shortcut {
  min-height: 2.45rem;
}

.reef-coral-detail__links a {
  color: var(--accent);
}

.reef-coral-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(11rem, 1fr)) auto;
  gap: 0.8rem;
  align-items: end;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.reef-coral-search,
.reef-coral-select {
  display: grid;
  gap: 0.38rem;
  min-width: 0;
}

.reef-coral-search span,
.reef-coral-select span,
.reef-coral-habitats__label {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.reef-coral-search input,
.reef-coral-select select {
  width: 100%;
  min-height: 3rem;
  padding: 0.78rem 0.95rem;
  border: 1px solid rgba(24, 59, 115, 0.13);
  border-radius: 0.2rem;
  background: rgba(255, 252, 246, 0.96);
  color: var(--ink);
}

.reef-coral-search small {
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.reef-coral-reset {
  min-height: 3rem;
  padding: 0.8rem 1rem;
  border: 1px solid rgba(24, 59, 115, 0.14);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.96);
  color: var(--ink);
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.reef-coral-search input:focus-visible,
.reef-coral-select select:focus-visible,
.reef-coral-reset:focus-visible,
.reef-coral-result:focus-visible,
.reef-coral-photo-nav:focus-visible,
.reef-coral-thumb:focus-visible,
.reef-coral-shortcut:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.reef-coral-reset:hover,
.reef-coral-photo-nav:hover,
.reef-coral-thumb:hover,
.reef-coral-result:hover {
  border-color: rgba(24, 59, 115, 0.24);
  box-shadow: 0 14px 26px rgba(37, 48, 67, 0.08);
}

.reef-coral-habitats {
  display: grid;
  gap: 0.55rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.reef-coral-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(20rem, 0.92fr);
  gap: 1rem;
  align-items: start;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.reef-coral-results-panel,
.reef-coral-detail {
  display: grid;
  gap: 0.9rem;
  min-height: 0;
}

.reef-coral-results-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: end;
}

.reef-coral-results-head h3,
.reef-coral-detail__header h3,
.reef-coral-empty h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
}

.reef-coral-results-head__summary {
  max-width: 28rem;
  margin: 0;
  color: var(--muted);
  text-align: right;
}

.reef-coral-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
  min-height: 0;
}

.reef-coral-result {
  appearance: none;
  display: grid;
  grid-template-columns: 6.4rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  width: 100%;
  padding: 0.82rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: .2rem;
  background: rgba(255, 252, 246, 0.94);
  text-align: left;
  cursor: pointer;
  transition: transform 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}

.reef-coral-result--loading {
  pointer-events: none;
}

.reef-coral-result--loading .reef-coral-result__media,
.reef-coral-result--loading .reef-coral-result__body span {
  display: block;
  min-height: 0.9rem;
  border-radius: 0.2rem;
  background: linear-gradient(90deg, rgba(24, 59, 115, 0.05), rgba(24, 59, 115, 0.11), rgba(24, 59, 115, 0.05));
  background-size: 220% 100%;
  animation: reef-coral-loading 1.4s ease-in-out infinite;
}

.reef-coral-result.is-active {
  border-color: rgba(198, 109, 60, 0.5);
  box-shadow: 0 16px 28px rgba(48, 59, 78, 0.1);
}

.reef-coral-result__media {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 0.2rem;
  background:
    radial-gradient(circle at 30% 20%, rgba(255, 252, 246, 0.36), transparent 3rem),
    linear-gradient(160deg, #d8e7eb 0%, #c7d8dd 100%);
}

.reef-coral-result__media.is-missing::after,
.reef-coral-photo-frame.is-missing::after,
.reef-coral-thumb.is-missing::after {
  content: "Image unavailable";
  display: grid;
  place-items: center;
  min-height: 100%;
  padding: 0.6rem;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.35;
  text-align: center;
}

.reef-coral-photo-frame.is-missing::after {
  min-height: 14rem;
}

.reef-coral-result__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reef-coral-result__photo.is-missing,
.reef-coral-photo-frame img.is-missing,
.reef-coral-thumb img.is-missing {
  display: none;
}

.reef-coral-image-note {
  color: var(--muted);
  font-size: 0.82rem;
}

.reef-coral-result__body {
  display: grid;
  gap: 0.32rem;
  min-width: 0;
}

.reef-coral-result__meta,
.reef-coral-detail__eyebrow,
.reef-coral-photo-meta,
.reef-coral-photo-caption,
.reef-coral-detail__facts dt {
  color: var(--muted);
}

.reef-coral-result__meta,
.reef-coral-detail__eyebrow {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.reef-coral-result h4 {
  margin: 0;
  font-size: 1.1rem;
  color: var(--ink);
}

.reef-coral-result__authority,
.reef-coral-result__habitat,
.reef-coral-result__mark {
  margin: 0;
  font-size: 0.92rem;
}

.reef-coral-result__habitat {
  color: var(--muted);
}

.reef-coral-result__mark {
  color: var(--ink-soft);
  line-height: 1.35;
}

.reef-coral-pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
}

.reef-coral-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.24rem 0.52rem;
  border-radius: 999px;
  background: rgba(24, 59, 115, 0.07);
  color: var(--ink);
  font-size: 0.82rem;
}

.reef-coral-pill--abundance {
  background: rgba(198, 109, 60, 0.11);
}

.reef-coral-detail__card {
  position: sticky;
  top: 5.2rem;
  display: grid;
  gap: 1rem;
  padding: 1.05rem;
  border: 1px solid rgba(24, 59, 115, 0.1);
  border-radius: .2rem;
  background: rgba(255, 252, 246, 0.96);
  box-shadow: 0 20px 34px rgba(40, 50, 70, 0.07);
}

.reef-coral-detail__placeholder {
  min-height: 18rem;
}

.reef-coral-detail__header {
  display: grid;
  gap: 0.45rem;
}

.reef-coral-detail__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.reef-coral-detail__topline a {
  color: var(--accent);
  font-size: 0.88rem;
  font-weight: 700;
}

.reef-coral-detail__header p,
.reef-coral-detail__text p,
.reef-coral-field-marks p,
.reef-coral-detail__facts dd,
.reef-coral-photo-caption,
.reef-coral-photo-meta {
  margin: 0;
}

.reef-coral-detail__media {
  display: grid;
  gap: 0.75rem;
}

.reef-coral-photo-frame {
  overflow: hidden;
  border-radius: .2rem;
  background:
    radial-gradient(circle at top left, rgba(255, 255, 255, 0.42), transparent 13rem),
    linear-gradient(160deg, #d4e2e7 0%, #bfd0d6 100%);
}

.reef-coral-photo-frame img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.reef-coral-photo-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
}

.reef-coral-photo-nav {
  min-width: 2.7rem;
  min-height: 2.7rem;
  border: 1px solid rgba(24, 59, 115, 0.12);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.96);
  color: var(--ink);
  cursor: pointer;
}

.reef-coral-photo-nav[disabled] {
  cursor: default;
  opacity: 0.45;
  box-shadow: none;
}

.reef-coral-photo-meta {
  flex: 1;
  text-align: center;
}

.reef-coral-photo-thumbs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.45rem;
}

.reef-coral-thumb {
  padding: 0;
  border: 1px solid rgba(24, 59, 115, 0.12);
  border-radius: .2rem;
  background: rgba(255, 252, 246, 0.96);
  overflow: hidden;
  cursor: pointer;
}

.reef-coral-thumb.is-active {
  border-color: rgba(198, 109, 60, 0.55);
}

.reef-coral-thumb img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.reef-coral-photo-caption {
  font-size: 0.94rem;
  line-height: 1.45;
}

.reef-coral-detail__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem 1rem;
}

.reef-coral-detail__facts div,
.reef-coral-detail__text,
.reef-coral-field-marks {
  display: grid;
  gap: 0.25rem;
}

.reef-coral-detail__facts dt {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.045em;
}

.reef-coral-detail__facts dd {
  color: var(--ink);
}

.reef-coral-detail__text,
.reef-coral-field-marks {
  gap: 0.7rem;
}

.reef-coral-detail__block {
  display: grid;
  gap: 0.28rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(24, 59, 115, 0.08);
}

.reef-coral-detail__block:first-child {
  padding-top: 0;
  border-top: 0;
}

.reef-coral-detail__block strong {
  color: var(--ink);
}

.reef-coral-detail__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
}

.reef-coral-empty,
.reef-coral-load-more {
  justify-self: stretch;
}

@keyframes reef-coral-loading {
  0% {
    background-position: 120% 0;
  }

  100% {
    background-position: -120% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reef-coral-result--loading .reef-coral-result__media,
  .reef-coral-result--loading .reef-coral-result__body span {
    animation: none;
  }
}

@media (min-width: 981px) {
  .reef-coral-section {
    --coral-workbench-height: clamp(36rem, calc(100vh - var(--nav-height) - 2.4rem), 72rem);
  }

  .reef-coral-layout {
    min-height: var(--coral-workbench-height);
    max-height: var(--coral-workbench-height);
  }

  .reef-coral-results-panel {
    position: sticky;
    top: calc(var(--nav-height) + 1rem);
    grid-template-rows: auto minmax(0, 1fr) auto;
    max-height: calc(100vh - var(--nav-height) - 2rem);
    padding: 0.95rem;
    border: 1px solid rgba(24, 59, 115, 0.08);
    border-radius: 0.2rem;
    background: rgba(255, 252, 246, 0.48);
    overflow: hidden;
  }

  .reef-coral-results {
    align-content: start;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 0.25rem;
    scrollbar-gutter: stable;
  }

  .reef-coral-detail__card {
    top: calc(var(--nav-height) + 1rem);
    max-height: calc(100vh - var(--nav-height) - 2rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}

@media (max-width: 980px) {
  .reef-hero .overview-hero__copy {
    width: min(34rem, 52%);
  }

  .reef-coral-quickbar,
  .reef-coral-toolbar,
  .reef-coral-layout {
    grid-template-columns: 1fr;
  }

  .reef-coral-detail__card {
    position: static;
  }

  .reef-coral-detail {
    scroll-margin-top: calc(var(--nav-height) + 1rem);
  }
}

@media (max-width: 720px) {
  .reef-hero::before {
    background: linear-gradient(
      180deg,
      rgba(246, 243, 234, 0.985) 0%,
      rgba(246, 243, 234, 0.965) 38%,
      rgba(246, 243, 234, 0.82) 68%,
      rgba(246, 243, 234, 0.45) 86%,
      rgba(246, 243, 234, 0.15) 100%
    );
  }

  .reef-hero {
    min-height: 16rem;
  }

  .reef-hero .overview-hero__copy {
    width: min(72%, 16.5rem);
    min-height: 16rem;
    padding: 1.2rem 1rem;
  }

  .reef-grid {
    grid-template-columns: 1fr;
  }

  .reef-coral-filter-disclosure {
    width: min(100%, calc(100vw - 1.8rem));
    max-width: calc(100vw - 1.8rem);
    border: 1px solid rgba(24, 59, 115, 0.1);
    border-radius: 0.2rem;
    background: rgba(255, 252, 246, 0.58);
  }

  .reef-coral-filter-disclosure > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 3rem;
    padding: 0.8rem 0.9rem;
    color: var(--accent);
    font-size: 0.82rem;
    font-weight: 700;
    font-variant-caps: all-small-caps;
    letter-spacing: 0.045em;
    cursor: pointer;
  }

  .reef-coral-filter-disclosure > summary::after {
    content: "expand_more";
    font-family: "Material Symbols Rounded";
    font-size: 1.2rem;
    letter-spacing: 0;
    text-transform: none;
  }

  .reef-coral-filter-disclosure[open] > summary {
    border-bottom: 1px solid rgba(24, 59, 115, 0.08);
  }

  .reef-coral-filter-disclosure[open] > summary::after {
    content: "expand_less";
  }

  .reef-coral-quickbar {
    width: 100%;
    max-width: 100%;
    padding: 0.8rem;
    border: 0;
    background: transparent;
  }

  .reef-coral-quickbar .chip-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex-wrap: wrap;
    width: min(100%, 20rem);
    max-width: 20rem;
    overflow-x: visible;
  }

  .reef-coral-habitats .chip-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100%, 20rem);
    max-width: 20rem;
  }

  .reef-coral-habitats {
    padding: 0.8rem;
  }

  .reef-coral-shortcut,
  .reef-coral-habitats .filter-chip {
    width: 100%;
    min-width: 0;
    justify-content: center;
    padding-inline: 0.5rem;
    text-align: center;
    white-space: normal;
  }

  .reef-coral-search small {
    display: block;
    max-width: 31ch;
  }

  .reef-coral-toolbar,
  .reef-coral-habitats,
  .reef-coral-layout,
  .reef-coral-results-panel,
  .reef-coral-detail,
  .reef-coral-results {
    width: min(100%, calc(100vw - 1.8rem));
    max-width: calc(100vw - 1.8rem);
    min-width: 0;
  }

  .reef-coral-results {
    grid-template-columns: 1fr;
  }

  .reef-coral-result {
    grid-template-columns: 5.4rem minmax(0, 1fr);
  }

  .reef-coral-results-head {
    display: grid;
  }

  .reef-coral-results-head__summary {
    text-align: left;
  }

  .reef-coral-photo-thumbs,
  .reef-coral-detail__facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1800px) {
  body[data-page="itinerary"] [data-calendar].ops-layout {
    grid-template-columns: 22rem minmax(0, 1fr);
    gap: 1.3rem;
    padding-top: 1rem;
  }

  body[data-page="itinerary"] .ops-sidebar {
    gap: 0.82rem;
  }

  body[data-page="itinerary"] .ops-sidebar__header h2 {
    font-size: 1.62rem;
  }

  body[data-page="itinerary"] .ops-timeline__item--day {
    grid-template-columns: 2.08rem minmax(0, 1fr);
    min-height: 5.55rem;
    padding: 0.76rem 0.82rem 0.82rem 0.5rem;
  }

  body[data-page="itinerary"] .ops-timeline__gate {
    width: 2.08rem;
    height: 2.08rem;
    font-size: 1.14rem;
  }

  body[data-page="itinerary"] .ops-timeline__title {
    font-size: 1.12rem;
  }

  body[data-page="itinerary"] .ops-timeline__day,
  body[data-page="itinerary"] .ops-timeline__date,
  body[data-page="itinerary"] .ops-timeline__meta {
    font-size: 0.98rem;
  }

  body[data-page="itinerary"] .ops-timeline__stay-label {
    font-size: 0.78rem;
  }

  body[data-page="itinerary"] .ops-timeline__stay-label strong {
    font-size: 0.96rem;
  }

  body[data-page="itinerary"] .team-presence-badge,
  body[data-page="itinerary"] .team-presence-empty {
    width: 1.42rem;
    height: 1.42rem;
    font-size: 0.76rem;
  }

  body[data-page="itinerary"] .day-focus {
    gap: 1.18rem;
  }

  body[data-page="itinerary"] .day-focus__date {
    font-size: 1rem;
  }

  body[data-page="itinerary"] .day-focus__title {
    font-size: 4.35rem;
  }

  body[data-page="itinerary"] .day-map-card__stage {
    height: min(62vh, 46rem);
    min-height: 36rem;
    max-height: none;
  }

  body[data-page="itinerary"] .execution-card {
    padding: 1.25rem 1.32rem;
  }

  body[data-page="itinerary"] .execution-card__header h2 {
    font-size: 1.92rem;
  }

}

@media (max-width: 1200px) {
  .attachment-slot-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .evidence-meter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .field-note-meta,
  .field-note-meta--site {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 960px) {
  .execution-grid {
    grid-template-columns: 1fr;
  }

  .tide-reference__metrics {
    grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  }

  .execution-card--record {
    grid-column: auto;
  }

  .execution-card__header {
    display: grid;
  }

  .field-site-evidence__head,
  .field-site-evidence__matches,
  .field-site-evidence__support,
  .field-site-evidence__detail-grid {
    grid-template-columns: 1fr;
  }

  .field-site-browser {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.7rem;
  }

  .field-site-rail {
    top: calc(var(--nav-height) + 0.35rem);
    max-height: calc(100vh - var(--nav-height) - 0.7rem);
    padding: 0.58rem 0.48rem;
  }

  .field-site-rail__links {
    max-height: calc(100vh - var(--nav-height) - 3.65rem);
  }

  .field-site-evidence,
  .field-evidence-event {
    scroll-margin-top: calc(var(--nav-height) + 0.85rem);
  }

  .photo-lightbox__panel {
    grid-template-columns: 1fr;
  }

  .photo-lightbox__media {
    min-height: min(62vh, 36rem);
  }

  .photo-lightbox__caption {
    max-height: 30vh;
  }

  .evidence-chip-row {
    justify-content: start;
  }

}

@media (max-width: 640px) {
  .photo-lightbox__media {
    min-height: min(58vh, 34rem);
  }

  .photo-lightbox__caption {
    max-height: 34vh;
  }

  body[data-page="itinerary"] {
    --itinerary-switchboard-top: 0rem;
    --itinerary-jump-offset: 8.2rem;
  }

  body[data-page="itinerary"] .page-shell {
    padding-inline: 0.85rem;
  }

  body[data-page="itinerary"] .ops-layout,
  body[data-page="itinerary"] .ops-main,
  body[data-page="itinerary"] .day-focus,
  body[data-page="itinerary"] .calendar-panels,
  body[data-page="itinerary"] .calendar-panel,
  body[data-page="itinerary"] .day-switchboard,
  body[data-page="itinerary"] .day-map-card,
  body[data-page="itinerary"] .execution-grid {
    width: calc(100vw - 1.7rem);
    max-width: calc(100vw - 1.7rem);
  }

  .day-switchboard {
    gap: 0.48rem;
    margin-bottom: 0.7rem;
    padding: 0.48rem;
  }

  .day-switchboard__day {
    grid-template-columns: 1fr;
    gap: 0.3rem;
  }

  .day-switchboard select {
    min-height: 2.34rem;
    font-size: 0.88rem;
  }

  .day-section-jumps {
    gap: 0.32rem;
  }

  .day-section-jump,
  .day-site-menu__site,
  .day-note-jump,
  .day-site-menu__overview {
    min-height: 2.05rem;
    font-size: 0.78rem;
  }

  .day-section-jump {
    padding: 0.39rem 0.52rem;
  }

  .day-site-dropdown {
    left: 0;
    right: auto;
    width: 100%;
    max-height: min(30rem, calc(100vh - 8.7rem));
    padding: 0.42rem;
  }

  .day-site-menu {
    position: static;
  }

  .day-site-menu__overview,
  .day-site-menu__site {
    padding: 0.4rem 0.44rem;
  }

  .day-note-jump {
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 0.28rem;
    padding: 0.26rem 0.3rem;
  }

  .tide-reference__metrics {
    grid-template-columns: 1fr;
  }

  .tide-reference__metrics div {
    display: grid;
    grid-template-columns: minmax(7.5rem, 42%) minmax(0, 1fr);
    align-items: baseline;
    gap: 0.55rem;
  }

  .tide-reference__metrics dd {
    margin: 0;
    text-align: right;
  }

  .attachment-slot-grid {
    grid-template-columns: 1fr;
  }

  .field-note-rendered__header,
  .field-site-note summary {
    align-items: start;
  }

  .field-note-rendered__header,
  .field-note-meta,
  .field-note-meta--site,
  .gps-quick-list {
    grid-template-columns: 1fr;
  }

  .evidence-meter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem;
  }

  .evidence-meter-grid div {
    padding: 0.58rem 0.6rem;
  }

  .gps-ledger-table-wrap {
    display: none;
  }

  .gps-ledger-card-list {
    display: grid;
    gap: 0.62rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .gps-ledger-card-list li {
    display: grid;
    gap: 0.62rem;
    padding: 0.72rem;
    border: 1px solid rgba(24, 59, 115, 0.12);
    background: rgba(255, 252, 246, 0.64);
  }

  .gps-ledger-card-list strong {
    color: var(--ink);
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.045em;
    overflow-wrap: anywhere;
    text-transform: uppercase;
  }

  .gps-ledger-card-list dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 0.78rem;
    margin: 0;
  }

  .gps-ledger-card-list div {
    min-width: 0;
  }

  .gps-ledger-card-list dt {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
  }

  .gps-ledger-card-list dd {
    margin: 0.12rem 0 0;
    color: var(--ink-soft);
    line-height: 1.36;
    overflow-wrap: anywhere;
  }

  .gps-ledger-card__note {
    grid-column: 1 / -1;
  }

  .field-note-rendered__header,
  .gps-ledger__header,
  .gps-ledger__section-head {
    display: grid;
  }

  .field-site-note summary {
    display: grid;
  }

  .field-evidence-event__header {
    display: grid;
  }

  .field-evidence-event__header .audio-note-row__button {
    justify-self: start;
  }

  .ops-main,
  .day-focus,
  .calendar-panels,
  .calendar-panel,
  .day-switchboard,
  .day-map-card,
  .execution-grid {
    width: 100%;
    max-width: calc(100vw - 1.8rem);
  }

  .execution-card {
    padding: 0.9rem;
  }

  .execution-card > p {
    max-width: 28ch;
  }

  .evidence-note__header p,
  .field-site-notes .field-note-text,
  .field-site-overview-list li {
    max-width: none;
  }

  body[data-page="itinerary"] .day-map-card__stage {
    height: min(62vh, 32rem);
    min-height: 24rem;
  }
}

body[data-page="trip_report"] .page-shell {
  max-width: none;
  padding: 1.1rem;
}

body[data-page="trip_report"] .site-footer {
  margin-top: 1rem;
}

.trip-spread-report {
  display: grid;
  gap: 1.2rem;
}

.trip-spread-report__screen-title {
  width: min(100%, 17in);
  margin: 0 auto;
  padding: 0.8rem 0.2rem 0;
}

.trip-spread-report__screen-title h1 {
  margin: 0.2rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 400;
  letter-spacing: 0;
}

.trip-spread-report__screen-title p:last-child {
  max-width: 58ch;
  color: var(--ink-soft);
}

.trip-spread {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 17in);
  aspect-ratio: 17 / 11;
  margin: 0 auto;
  padding: 0.08in;
  border: 1px solid rgba(33, 59, 99, 0.14);
  background:
    linear-gradient(90deg, transparent 0 calc(50% - 0.035in), rgba(33, 59, 99, 0.2) calc(50% - 0.035in) 50%, transparent calc(50% + 0.035in)),
    oklch(95.5% 0.022 78);
  box-shadow: 0 1.2rem 2.8rem rgba(39, 44, 55, 0.16);
}

.trip-page {
  position: relative;
  display: grid;
  align-content: start;
  gap: 0.13in;
  min-width: 0;
  overflow: hidden;
  padding: 0.22in;
  background: oklch(98.4% 0.012 82);
}

.trip-page + .trip-page {
  border-left: 1px solid rgba(33, 59, 99, 0.12);
}

.trip-page--island {
  gap: 0.085in;
}

.spread-eyebrow,
.spread-site-head p,
.spread-count-grid small,
.spread-map figcaption,
.spread-photo-grid figcaption,
.spread-tide-panel dt,
.spread-notes h3,
.spread-question-box h3,
.spread-guide-callout p,
.spread-date {
  color: var(--ink-soft);
  font-family: var(--font-sans);
}

.spread-eyebrow,
.spread-site-head p,
.spread-count-grid small,
.spread-notes h3,
.spread-question-box h3,
.spread-date {
  margin: 0;
  font-size: 0.095in;
  font-weight: 800;
  letter-spacing: 0.085em;
  text-transform: uppercase;
}

.trip-page h1,
.trip-page h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 0.96;
}

.trip-page h1 {
  font-size: 0.62in;
}

.trip-page h2 {
  font-size: 0.3in;
  line-height: 1.05;
}

.spread-lede,
.trip-page > p,
.spread-site-head > div > p:last-child {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.14in;
  line-height: 1.42;
}

.trip-page--island .spread-lede {
  font-size: 0.128in;
  line-height: 1.32;
}

.spread-count-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.08in;
}

.trip-page--island .spread-count-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.spread-count-grid div {
  display: grid;
  justify-items: center;
  gap: 0.025in;
  min-width: 0;
  padding: 0.09in 0.05in;
  border: 1px solid rgba(33, 59, 99, 0.16);
  background: rgba(255, 252, 246, 0.62);
}

.spread-count-grid .material-symbols-rounded {
  color: var(--accent);
  font-size: 0.22in;
  line-height: 1;
}

.spread-count-grid strong {
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.22in;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.spread-count-grid small {
  max-width: none;
  font-size: 0.082in;
  overflow-wrap: anywhere;
  text-align: center;
}

.spread-tide-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(1.9in, 0.45fr);
  gap: 0.1in;
  align-items: start;
  padding: 0.09in 0.1in;
  border: 1px solid rgba(33, 59, 99, 0.14);
  background: oklch(95.8% 0.02 93);
}

.spread-tide-panel--pending {
  background: oklch(96.2% 0.018 68);
}

.spread-tide-panel h2 {
  margin: 0.03in 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.2in;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.spread-tide-panel p:not(.spread-eyebrow) {
  margin: 0.045in 0 0;
  color: var(--ink-soft);
  font-size: 0.098in;
  line-height: 1.28;
}

.spread-tide-panel dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.055in;
  margin: 0;
}

.spread-tide-panel dl div {
  min-width: 0;
  padding: 0.055in;
  background: rgba(255, 252, 246, 0.62);
}

.spread-tide-panel dt {
  font-size: 0.07in;
  font-weight: 800;
  letter-spacing: 0.075em;
  text-transform: uppercase;
}

.spread-tide-panel dd {
  margin: 0.02in 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.145in;
  font-weight: 400;
  line-height: 1;
}

.spread-map {
  display: grid;
  gap: 0;
  margin: 0;
  border: 1px solid rgba(33, 59, 99, 0.12);
  background: oklch(92.5% 0.024 223);
}

.spread-map .trip-static-map__svg {
  display: block;
  width: 100%;
  height: auto;
}

.spread-map figcaption {
  margin: 0;
  padding: 0.07in 0.09in;
  background: rgba(255, 252, 246, 0.72);
  font-size: 0.105in;
  line-height: 1.32;
}

.spread-map--global,
.spread-map--island {
  align-self: start;
}

.spread-map--island {
  justify-self: center;
  width: 72%;
}

.spread-map--site {
  align-self: start;
  justify-self: center;
  width: 68%;
}

.spread-hero-photo,
.spread-photo-grid figure {
  margin: 0;
  border: 1px solid rgba(33, 59, 99, 0.12);
  background: rgba(255, 252, 246, 0.78);
}

.spread-hero-photo img {
  display: block;
  width: 100%;
  height: 0.78in;
  object-fit: cover;
}

.spread-hero-photo figcaption {
  margin: 0;
  padding: 0.07in 0.09in;
  color: var(--ink-soft);
  font-size: 0.105in;
  line-height: 1.3;
}

.spread-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.08in;
}

.spread-photo-grid--strip {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.spread-photo-grid--strip img {
  height: 0.5in;
}

.spread-photo-grid--strip figcaption {
  min-height: 0.18in;
  padding: 0.04in 0.05in;
  -webkit-line-clamp: 1;
  font-size: 0.082in;
}

.spread-photo-grid img {
  display: block;
  width: 100%;
  height: 1.08in;
  object-fit: cover;
}

.spread-photo-grid--site img {
  height: 0.78in;
}

.spread-photo-grid figcaption {
  display: -webkit-box;
  margin: 0;
  min-height: 0.36in;
  padding: 0.055in 0.065in;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 0.095in;
  line-height: 1.28;
}

.spread-site-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.12in;
  align-items: start;
}

.spread-site-head__number {
  display: grid;
  place-items: center;
  width: 0.42in;
  height: 0.42in;
  border-radius: 50%;
  background: var(--ink);
  color: oklch(98.4% 0.012 82);
  font-family: var(--font-sans);
  font-size: 0.14in;
  font-weight: 800;
}

.spread-site-head h2 {
  margin-top: 0.04in;
}

.spread-site-head > div > p:last-child {
  display: -webkit-box;
  margin-top: 0.06in;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.spread-site-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.1in;
}

.spread-notes,
.spread-question-box,
.spread-guide-callout,
.spread-glossary div {
  border: 1px solid rgba(33, 59, 99, 0.13);
  background: rgba(255, 252, 246, 0.68);
}

.spread-notes,
.spread-question-box {
  padding: 0.075in;
}

.spread-notes--tint,
.spread-question-box {
  background: oklch(95.5% 0.022 78);
}

.spread-notes ul,
.spread-notes ol,
.spread-question-box ul,
.spread-large-list {
  display: grid;
  gap: 0.045in;
  margin: 0.06in 0 0;
  padding-left: 0.16in;
}

.spread-notes li,
.spread-question-box li,
.spread-large-list li {
  color: var(--ink-soft);
  font-size: 0.095in;
  line-height: 1.24;
}

.spread-notes li {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.spread-height-clue {
  display: grid;
  gap: 0.025in;
  margin-top: 0.055in;
  padding-top: 0.05in;
  border-top: 1px solid rgba(33, 59, 99, 0.14);
}

.spread-height-clue strong {
  color: var(--ink);
  font-size: 0.13in;
}

.spread-height-clue span {
  color: var(--ink-soft);
  font-size: 0.09in;
  line-height: 1.22;
}

.spread-question-box li {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

.spread-guide-callout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.1in;
  align-items: start;
  padding: 0.12in;
}

.spread-guide-callout .material-symbols-rounded {
  color: var(--accent);
  font-size: 0.25in;
}

.spread-guide-callout p {
  margin: 0;
  font-size: 0.13in;
  line-height: 1.42;
}

.trip-page--guide,
.trip-page--closing,
.trip-page--glossary {
  align-content: start;
}

.spread-large-list {
  gap: 0.1in;
  padding-left: 0.2in;
}

.spread-large-list li {
  font-size: 0.14in;
}

.spread-glossary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.08in;
  margin: 0;
}

.spread-glossary div {
  padding: 0.09in;
}

.spread-glossary dt {
  color: var(--ink);
  font-size: 0.12in;
  font-weight: 800;
}

.spread-glossary dd {
  margin: 0.03in 0 0;
  color: var(--ink-soft);
  font-size: 0.1in;
  line-height: 1.32;
}

.trip-report-reader {
  display: grid;
  grid-template-columns: minmax(14rem, 17rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  width: min(100%, calc(17in + 18rem));
  margin: 0 auto;
}

.trip-reader-index {
  position: sticky;
  top: 4.8rem;
  display: grid;
  gap: 0.75rem;
  max-height: calc(100vh - 5.6rem);
  overflow: auto;
  padding: 0.9rem;
  border: 1px solid rgba(33, 59, 99, 0.16);
  background: oklch(97.8% 0.014 82);
  box-shadow: 0 0.7rem 1.6rem rgba(39, 44, 55, 0.08);
}

.trip-reader-index__head {
  display: grid;
  gap: 0.28rem;
}

.trip-reader-index__head h2 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.05;
}

.trip-reader-index__head p:last-child,
.trip-reader-index details > summary small,
.trip-reader-index__chapter-link,
.trip-reader-index a {
  color: var(--ink-soft);
}

.trip-reader-index__head p:last-child {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.35;
}

.trip-reader-index__overview,
.trip-reader-index__chapter-link,
.trip-reader-index ol a {
  text-decoration: none;
}

.trip-reader-index__overview {
  display: inline-flex;
  gap: 0.45rem;
  align-items: center;
  min-height: 2.4rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(33, 59, 99, 0.14);
  background: rgba(255, 252, 246, 0.7);
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 800;
}

.trip-reader-index__overview .material-symbols-rounded {
  color: var(--accent);
  font-size: 1.2rem;
}

.trip-reader-index__islands {
  display: grid;
  gap: 0.55rem;
}

.trip-reader-index details {
  border: 1px solid rgba(33, 59, 99, 0.13);
  background: rgba(255, 252, 246, 0.58);
}

.trip-reader-index details > summary {
  display: grid;
  gap: 0.12rem;
  min-height: 2.75rem;
  padding: 0.55rem 0.65rem;
  color: var(--ink);
  cursor: pointer;
  list-style-position: inside;
}

.trip-reader-index details > summary span {
  font-family: var(--font-display);
  font-size: 1.05rem;
  line-height: 1;
}

.trip-reader-index details > summary small {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.trip-reader-index__chapter-link {
  display: block;
  padding: 0.38rem 0.65rem 0.25rem;
  border-top: 1px solid rgba(33, 59, 99, 0.1);
  font-size: 0.78rem;
  font-weight: 800;
}

.trip-reader-index ol {
  display: grid;
  gap: 0.18rem;
  max-height: 16rem;
  margin: 0;
  padding: 0.25rem 0.35rem 0.45rem;
  overflow: auto;
  list-style: none;
}

.trip-reader-index li {
  margin: 0;
}

.trip-reader-index ol a {
  display: grid;
  grid-template-columns: 1.55rem minmax(0, 1fr);
  gap: 0.42rem;
  align-items: start;
  min-height: 2.25rem;
  padding: 0.34rem 0.36rem;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.25;
}

.trip-reader-index ol a:hover,
.trip-reader-index ol a:focus-visible,
.trip-reader-index__overview:hover,
.trip-reader-index__overview:focus-visible,
.trip-reader-index__chapter-link:hover,
.trip-reader-index__chapter-link:focus-visible {
  outline: 2px solid rgba(24, 59, 115, 0.32);
  outline-offset: 2px;
  background: oklch(95.2% 0.025 82);
  color: var(--ink);
}

.trip-reader-index ol a > span:first-child {
  display: grid;
  place-items: center;
  min-width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  background: var(--ink);
  color: oklch(98.4% 0.012 82);
  font-size: 0.68rem;
  font-weight: 800;
}

.trip-reader-index ol strong {
  display: block;
  color: var(--ink);
  font-size: 0.68rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.trip-island-transition {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.44fr);
  gap: 1rem;
  width: min(100%, 17in);
  margin: 1.2rem auto 0.25rem;
  padding: 1rem;
  border: 1px solid rgba(33, 59, 99, 0.15);
  background: oklch(96.4% 0.019 82);
}

.trip-island-transition h2 {
  margin: 0.1rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.trip-island-transition p:not(.spread-eyebrow) {
  max-width: 76ch;
  margin: 0.5rem 0 0;
  color: var(--ink-soft);
  line-height: 1.45;
}

.trip-island-transition dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(4.75rem, 1fr));
  gap: 0.45rem;
  margin: 0;
}

.trip-island-transition dl div {
  min-width: 0;
  padding: 0.55rem;
  border: 1px solid rgba(33, 59, 99, 0.13);
  background: rgba(255, 252, 246, 0.64);
}

.trip-island-transition dt,
.trip-island-transition__links a {
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  line-height: 1.2;
  text-transform: uppercase;
}

.trip-island-transition dd {
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.05rem, 1.7vw, 1.35rem);
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.trip-island-transition__links {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.trip-island-transition__links a {
  min-height: 2rem;
  padding: 0.42rem 0.58rem;
  border: 1px solid rgba(33, 59, 99, 0.13);
  background: rgba(255, 252, 246, 0.68);
  color: var(--ink);
  text-decoration: none;
}

.trip-island-transition__links a:hover,
.trip-island-transition__links a:focus-visible {
  outline: 2px solid rgba(24, 59, 115, 0.3);
  outline-offset: 2px;
  background: oklch(95.2% 0.025 82);
}

.spread-web-detail {
  display: none;
}

@media screen {
  .trip-report-reader .trip-spread {
    align-items: stretch;
    aspect-ratio: auto;
  }

  .trip-report-reader .trip-page {
    min-height: 5.35in;
    overflow: visible;
  }

  .spread-site-head > div > p:last-child,
  .spread-notes li,
  .spread-question-box li {
    display: list-item;
    overflow: visible;
    -webkit-line-clamp: initial;
    -webkit-box-orient: initial;
  }

  .spread-site-head > div > p:last-child {
    display: block;
    max-width: 62ch;
  }

  .spread-web-detail {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.1in;
  }

  .spread-web-detail > div {
    padding: 0.075in;
    border: 1px solid rgba(33, 59, 99, 0.13);
    background: rgba(255, 252, 246, 0.58);
  }

  .spread-web-detail h3 {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.095in;
    font-weight: 800;
    letter-spacing: 0.085em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .spread-web-detail ul {
    display: grid;
    gap: 0.045in;
    margin: 0.06in 0 0;
    padding-left: 0.16in;
  }

  .spread-web-detail li,
  .spread-web-detail p {
    color: var(--ink-soft);
    font-size: 0.092in;
    line-height: 1.28;
  }

  .spread-web-detail p {
    margin: 0.03in 0 0;
  }

  .spread-web-detail strong {
    color: var(--ink);
  }

  .spread-web-detail span {
    display: inline-block;
    margin-left: 0.25rem;
    color: var(--accent);
    font-weight: 800;
  }

  .trip-page:target {
    outline: 3px solid rgba(24, 59, 115, 0.36);
    outline-offset: -3px;
  }
}

@media (max-width: 980px) {
  body[data-page="trip_report"] .site-mark,
  body[data-page="trip_report"] .site-nav a,
  body[data-page="trip_report"] .footer-links a {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    padding-block: 0.65rem;
  }

  .trip-report-reader {
    display: grid;
    grid-template-columns: 1fr;
    width: min(100%, 44rem);
  }

  .trip-reader-index {
    position: static;
    max-height: 72vh;
    overflow: auto;
  }

  .trip-reader-index__islands {
    grid-template-columns: 1fr;
  }

  .trip-reader-index ol {
    max-height: 10rem;
  }

  .trip-reader-index__overview,
  .trip-reader-index__chapter-link,
  .trip-reader-index ol a,
  .trip-island-transition__links a {
    min-height: 2.75rem;
  }

  .trip-island-transition {
    grid-template-columns: 1fr;
    width: 100%;
    margin-top: 1rem;
  }

  .trip-island-transition dl,
  .spread-web-detail {
    grid-template-columns: 1fr;
  }

  .trip-spread {
    grid-template-columns: 1fr;
    aspect-ratio: auto;
    padding: 0;
  }

  .trip-page {
    min-height: auto;
  }

  .trip-page + .trip-page {
    border-left: 0;
    border-top: 1px solid rgba(33, 59, 99, 0.12);
  }

  .trip-page--island .spread-count-grid,
  .spread-count-grid,
  .spread-tide-panel,
  .spread-tide-panel dl,
  .spread-photo-grid--strip,
  .spread-site-grid,
  .spread-glossary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media print {
  @page {
    size: 17in 11in;
    margin: 0;
  }

  body[data-page="trip_report"] {
    background: oklch(98.4% 0.012 82);
  }

  body[data-page="trip_report"] .site-header,
  body[data-page="trip_report"] .site-footer,
  body[data-page="trip_report"] .trip-spread-report__screen-title,
  body[data-page="trip_report"] .trip-reader-index,
  body[data-page="trip_report"] .trip-island-transition,
  body[data-page="trip_report"] .spread-web-detail {
    display: none;
  }

  body[data-page="trip_report"] .site-frame,
  body[data-page="trip_report"] .page-shell,
  body[data-page="trip_report"] .trip-report-reader,
  body[data-page="trip_report"] .trip-spread-report {
    display: block;
    width: 17in;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  .trip-spread {
    width: 17in;
    height: 11in;
    margin: 0;
    border: 0;
    box-shadow: none;
    break-after: page;
    page-break-after: always;
  }

  .trip-spread:last-child {
    break-after: auto;
    page-break-after: auto;
  }
}

/* Public post-trip story */
body[data-page="trip_report"] {
  /* Unlike hidden, clip contains horizontal paint without becoming a sticky containing block. */
  overflow-x: clip;
}

@media screen {
  body[data-page="trip_report"] .site-frame {
    container-name: trip-report-shell;
    container-type: inline-size;
  }
}

.trip-story {
  --trip-paper: oklch(98.2% 0.013 82);
  --paper: var(--trip-paper);
  --trip-wash: oklch(95.8% 0.022 80);
  --trip-water: oklch(89.5% 0.035 220);
  display: grid;
  grid-template-columns: minmax(4.5rem, 4.75rem) minmax(0, 1fr);
  width: min(100%, 96rem);
  margin: 0 auto;
  background: var(--trip-paper);
  color: var(--ink);
  font-kerning: normal;
  font-optical-sizing: auto;
}

.trip-story__index {
  min-width: 0;
  border-right: 1px solid rgba(30, 49, 84, 0.16);
  background: color-mix(in oklch, var(--trip-paper) 86%, var(--trip-water));
}

.trip-story__content { min-width: 0; }

.trip-story h1,
.trip-story h2,
.trip-story h3 { text-wrap: balance; }

#trip-report-title { scroll-margin-top: 8rem; }

.trip-story p,
.trip-story li,
.trip-story dd,
.trip-story figcaption { text-wrap: pretty; }

.trip-field-symbol {
  display: block;
  width: 2.45rem;
  height: 2.45rem;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.trip-section-label {
  display: inline-flex;
  gap: 0.55rem;
  align-items: center;
  margin: 0;
  color: var(--accent);
}

.trip-section-label .trip-field-symbol {
  flex: none;
  width: 1.55rem;
  height: 1.55rem;
}

.trip-section-label > span {
  color: var(--ink-soft);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.trip-chapter-nav {
  position: sticky;
  top: 5.4rem;
  padding: 2rem 0.55rem;
}

.trip-chapter-nav > p {
  margin: 0 0 0.8rem;
  color: var(--ink-soft);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.trip-chapter-nav ol {
  display: grid;
  gap: 0.15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.trip-chapter-nav a {
  position: relative;
  display: grid;
  place-items: center;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.45rem 0.25rem;
  color: var(--ink);
  font-size: 0.8rem;
  line-height: 1.15;
  text-decoration: none;
}

.trip-chapter-nav__number {
  color: var(--muted);
  font-size: 0.56rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.045em;
  white-space: nowrap;
}

.trip-chapter-nav__label {
  position: absolute;
  top: 50%;
  left: calc(100% + 0.5rem);
  z-index: 30;
  width: max-content;
  max-width: 12rem;
  padding: 0.48rem 0.6rem;
  border: 1px solid rgba(30, 49, 84, 0.18);
  background: color-mix(in oklch, var(--trip-paper) 94%, white);
  box-shadow: 0 0.35rem 1rem rgba(30, 49, 84, 0.12);
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-50%);
  visibility: hidden;
}

.trip-chapter-nav a:hover .trip-chapter-nav__label,
.trip-chapter-nav a:focus-visible .trip-chapter-nav__label {
  opacity: 1;
  visibility: visible;
}

.trip-chapter-nav a:hover,
.trip-chapter-nav a:focus-visible {
  color: var(--accent);
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  background: color-mix(in oklch, var(--trip-paper) 58%, transparent);
}

.trip-chapter-nav a[aria-current="location"] {
  color: var(--trip-nav-current, var(--accent));
  background: color-mix(in oklch, var(--trip-nav-current, var(--trip-sky)) 12%, transparent);
  box-shadow: inset 0.2rem 0 0 var(--trip-nav-current, var(--accent));
  font-weight: 800;
}

.trip-chapter-nav a[aria-current="location"] .trip-chapter-nav__number {
  color: var(--trip-nav-current, var(--accent));
}

.trip-chapter-nav a[href="#rarotonga"],
.trip-chapter-nav-mobile a[href="#rarotonga"] { --trip-nav-current: oklch(30% 0.055 252); }
.trip-chapter-nav a[href="#atiu"],
.trip-chapter-nav-mobile a[href="#atiu"] { --trip-nav-current: oklch(32% 0.054 178); }
.trip-chapter-nav a[href="#mangaia"],
.trip-chapter-nav-mobile a[href="#mangaia"] { --trip-nav-current: oklch(29% 0.072 231); }
.trip-chapter-nav a[href="#mauke"],
.trip-chapter-nav-mobile a[href="#mauke"] { --trip-nav-current: oklch(31% 0.045 63); }
.trip-chapter-nav a[href="#mitiaro"],
.trip-chapter-nav-mobile a[href="#mitiaro"] { --trip-nav-current: oklch(34% 0.065 202); }

.trip-chapter-nav-mobile { display: none; }

.trip-chapter-current {
  margin-left: 0.35rem;
  color: var(--accent);
  letter-spacing: 0.03em;
  text-transform: none;
}

.trip-chapter-current::before { content: "· "; }

.trip-chapter-nav-mobile a[aria-current="location"] {
  color: var(--trip-nav-current, var(--accent));
  background: color-mix(in oklch, var(--trip-nav-current, var(--trip-sky)) 12%, transparent);
  box-shadow: inset 0 -0.18rem 0 var(--trip-nav-current, var(--accent));
}

.trip-story-hero {
  display: grid;
  grid-template-columns: minmax(20rem, 0.8fr) minmax(34rem, 1.2fr);
  gap: clamp(1.5rem, 3.5vw, 3.5rem);
  align-items: stretch;
  min-height: 43rem;
  padding: clamp(2.5rem, 6vw, 5.5rem) clamp(1rem, 4vw, 4rem) clamp(2rem, 4vw, 3.5rem);
  background: var(--trip-paper);
}

.trip-story-hero > * { min-width: 0; }

.trip-story-hero__copy {
  align-self: center;
  max-width: 44rem;
}

.trip-story-hero h1,
.trip-story-intro h2,
.trip-section-heading h2,
.trip-island-hero h2,
.trip-research h2,
.trip-glossary h2 {
  margin: 0.35rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 0.98;
}

.trip-story-hero h1 {
  max-width: 11ch;
  font-size: clamp(3.2rem, 5.7vw, 6.2rem);
  letter-spacing: -0.025em;
}

.trip-story-deck {
  max-width: 38ch;
  margin: 1.2rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 1.9rem);
  line-height: 1.25;
}

.trip-story-audience,
.trip-story-intro > p,
.trip-island-narrative,
.trip-section-heading > p:last-child {
  max-width: 72ch;
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.62;
}

.trip-story-audience { margin: 1.15rem 0 0; }

.trip-story-status {
  width: fit-content;
  margin: 1rem 0 0;
  color: var(--ink-soft);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.trip-story-funding {
  max-width: 42ch;
  margin: 0.55rem 0 0;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.45;
}

.trip-story-funding a {
  color: var(--accent);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: color-mix(in oklch, var(--accent) 40%, transparent);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

.trip-story-funding a:hover { text-decoration-color: currentColor; }

.trip-story-funding a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 0.18rem;
}

.trip-story-funding > span { margin-inline: 0.18em; }

.trip-story-actions {
  margin: 1rem 0 0;
}

.trip-story-download {
  display: inline-flex;
  gap: 0.55rem;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.7rem 1rem;
  border: 1px solid rgba(24, 59, 115, 0.48);
  background: color-mix(in oklch, var(--trip-paper) 72%, white);
  color: var(--accent);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color 180ms ease-out, border-color 180ms ease-out, color 180ms ease-out;
}

.trip-story-download svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.trip-story-download:hover {
  border-color: var(--accent);
  background: var(--accent);
  color: #fffdfa;
}

.trip-story-download:focus-visible {
  border-color: var(--accent);
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.trip-story-tally {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  max-width: 31rem;
  margin: 1.7rem 0 0;
  border-block: 1px solid rgba(30, 49, 84, 0.2);
}

.trip-story-tally > div {
  display: grid;
  grid-template-columns: 1.35rem minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
  min-height: 3rem;
  padding: 0.55rem 0;
  border-bottom: 1px solid rgba(30, 49, 84, 0.12);
}

.trip-story-tally > div:nth-last-child(-n + 2) { border-bottom: 0; }
.trip-story-tally > div:nth-child(odd) { padding-right: 0.85rem; }
.trip-story-tally > div:nth-child(even) { padding-left: 0.85rem; border-left: 1px solid rgba(30, 49, 84, 0.12); }

.trip-story-tally .trip-field-symbol {
  width: 1.15rem;
  height: 1.15rem;
  color: var(--accent);
  stroke-width: 1.8;
}

.trip-story-tally dt {
  color: var(--ink-soft);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
}

.trip-story-tally dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.trip-tide-story__copy > dl dt {
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.trip-story-overview-map,
.trip-island-map,
.trip-site-locator,
.trip-static-map,
.trip-media,
.trip-tide-story figure {
  margin: 0;
}

.trip-story-overview-map {
  grid-column: 1 / -1;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.18);
  background: linear-gradient(180deg, #f8f5ee 0%, #eff2ef 54%, #e8f0f0 100%);
}

.trip-story-hero__media {
  min-width: 0;
}

.trip-story-hero-photo {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-width: 0;
  margin: 0;
}

.trip-story-hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 36rem;
  object-fit: cover;
  object-position: 52% 58%;
}

@media screen {
  @container trip-report-shell (min-width: calc(73rem - 1px)) {
    .trip-story-hero {
      grid-template-columns: minmax(0, 0.76fr) minmax(0, 0.78fr) minmax(0, 1fr);
      grid-template-rows: minmax(0, 1fr) auto auto minmax(0, 0.65fr);
      gap: 0;
      align-items: stretch;
      min-height: clamp(42rem, calc(100svh - 3.5rem), 64rem);
      padding: 0;
      border-bottom: 1px solid rgba(30, 49, 84, 0.16);
    }
    .trip-story-hero__copy {
      grid-column: 2;
      grid-row: 2;
      align-self: stretch;
      padding: 0 clamp(1.8rem, 2.8vw, 3rem) 1.55rem;
    }
    .trip-story-hero h1 {
      font-size: clamp(3.2rem, 4.9vw, 5.3rem);
      line-height: 1;
    }
    .trip-story-hero h1::after {
      content: "";
      display: block;
      width: 3rem;
      height: 0.125rem;
      margin-top: 1.5rem;
      background: #ba623e;
    }
    .trip-story-deck {
      margin-top: 1.15rem;
      font-size: 1.42rem;
      line-height: 1.28;
    }
    .trip-story-status { margin-top: 1.55rem; }
    .trip-story-hero__support { display: contents; }
    .trip-story-audience {
      grid-column: 2;
      grid-row: 3;
      align-self: stretch;
      max-width: none;
      margin: 0;
      padding: 1.6rem clamp(1.8rem, 2.8vw, 3rem) 1.15rem;
      border-top: 1px solid rgba(30, 49, 84, 0.2);
      font-size: 0.97rem;
      line-height: 1.55;
    }
    .trip-story-overview-map {
      grid-column: 1;
      grid-row: 1 / -1;
      border-width: 0 1px 0 0;
    }
    .trip-story-hero__media {
      grid-column: 3;
      grid-row: 1 / -1;
      min-height: 0;
      border-left: 1px solid rgba(30, 49, 84, 0.16);
    }
    .trip-story-tally {
      grid-column: 2;
      grid-row: 4;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-self: end;
      max-width: none;
      margin: 0;
      padding: 0 clamp(1.8rem, 2.8vw, 3rem) 0.75rem;
      border-block: 0;
    }
    .trip-story-tally > div {
      grid-template-columns: 1.2rem minmax(0, 1fr) auto;
      min-height: 2.85rem;
      padding: 0.45rem 0.7rem;
      border-top: 1px solid rgba(30, 49, 84, 0.2);
      border-bottom: 0;
    }
    .trip-story-tally > div:nth-child(even) { border-left: 0; }
    .trip-story-tally dd { font-size: 1rem; }
    body[data-page="trip_report"] .trip-story-overview-map > img {
      align-self: center;
      width: 100%;
      max-width: none;
      height: 100%;
      max-height: none;
      object-fit: contain;
    }
    .trip-story-overview-map figcaption { padding: 0.8rem 1rem 1rem; }
    .trip-story-hero-photo {
      position: relative;
      height: 100%;
      grid-template-rows: minmax(0, 1fr);
      overflow: hidden;
    }
    .trip-story-hero-photo img {
      height: 100%;
      min-height: 0;
      max-height: none;
      object-position: 50% 50%;
    }
    body[data-page="trip_report"] .trip-story-hero-photo figcaption {
      position: absolute;
      right: 0;
      bottom: 0;
      left: 0;
      padding: 3.5rem 1rem 0.9rem;
      background: linear-gradient(transparent, rgba(7, 25, 38, 0.82));
      color: #fffaf0;
      text-shadow: 0 0.12rem 0.45rem rgba(4, 13, 24, 0.72);
    }
  }
}

.trip-static-map > img {
  display: block;
  width: 100%;
  height: auto;
}

.trip-story-overview-map > img {
  justify-self: center;
  width: min(100%, 24rem);
  height: auto;
  object-fit: contain;
}
.trip-island-map > img { aspect-ratio: 16 / 10; object-fit: cover; }
.trip-site-locator > img { aspect-ratio: 4 / 3; object-fit: contain; }

.trip-story-overview-map figcaption,
.trip-story-hero-photo figcaption,
.trip-island-map figcaption,
.trip-site-locator figcaption,
.trip-media figcaption,
.trip-tide-story figcaption {
  padding: 0.55rem 0.1rem 0;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.35;
}

.trip-static-map figcaption {
  display: flex;
  gap: 0.45rem 1rem;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
}

.trip-static-map figcaption small {
  color: var(--muted);
  font-size: 0.68rem;
  line-height: 1.3;
}

.trip-island-map-caption {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.38rem !important;
  align-items: start !important;
  justify-content: stretch !important;
}

.trip-island-map-key {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  color: var(--ink);
  font-size: var(--type-meta);
  font-weight: 800;
  line-height: 1.25;
}

.trip-island-map-key__item {
  display: inline-flex;
  gap: 0.38rem;
  align-items: center;
  white-space: nowrap;
}

.trip-island-map-key__item i {
  position: relative;
  flex: 0 0 auto;
  width: 0.76rem;
  height: 0.76rem;
  box-sizing: border-box;
  print-color-adjust: exact;
}

.trip-island-map-key__item--route i { width: 1.25rem; }
.trip-island-map-key__item--route i::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 0.13rem;
  transform: translateY(-50%);
  border-radius: 999px;
  background: #c98260;
  box-shadow: 0 0 0.18rem rgba(10, 22, 35, 0.48);
}

.trip-island-map-key__item--site i,
.trip-island-map-key__item--gauge i { border-radius: 999px; }
.trip-island-map-key__item--site i {
  border: 0.15rem solid #183b73;
  background: #fffaf0;
}
.trip-island-map-key__item--gauge i {
  border: 0.13rem solid #183b73;
  background: #f2a65a;
}
.trip-island-map-key__item--gauge i::before,
.trip-island-map-key__item--gauge i::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.38rem;
  height: 0.1rem;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: #183b73;
}
.trip-island-map-key__item--gauge i::after { transform: translate(-50%, -50%) rotate(90deg); }

.trip-story-overview-map figcaption small {
  color: var(--ink-soft);
}

.trip-story-intro,
.trip-methods,
.trip-research,
.trip-glossary {
  padding: clamp(2.5rem, 7vw, 7rem) clamp(1rem, 5vw, 5rem);
}

.trip-story-intro {
  display: grid;
  grid-template-columns: minmax(15rem, 0.62fr) minmax(19rem, 1fr) minmax(14rem, 0.6fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  border-top: 1px solid rgba(30, 49, 84, 0.16);
  background: var(--trip-wash);
}

.trip-story-intro > header { grid-column: 1; }

.trip-story-intro h2,
.trip-section-heading h2,
.trip-research h2,
.trip-glossary h2 {
  font-size: clamp(2.4rem, 5vw, 4.8rem);
}

.trip-story-intro h2,
.trip-methods .trip-section-heading h2 {
  max-width: 13ch;
  font-size: clamp(2.8rem, 3.8vw, 3.8rem);
  line-height: 1.02;
}

.trip-story-intro__copy { grid-column: 2; }
.trip-story-intro__copy p,
.trip-community-story p,
.trip-story-caution p {
  color: var(--ink-soft);
  font-size: 1.02rem;
  line-height: 1.62;
}

.trip-story-intro__copy p { margin: 0 0 1.1rem; }

.trip-community-story {
  grid-column: 3;
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: 0.85rem;
  align-self: start;
  padding-block: 1rem;
  border-block: 1px solid rgba(30, 49, 84, 0.2);
}

.trip-community-story .trip-field-symbol,
.trip-story-caution .trip-field-symbol {
  width: 2.2rem;
  height: 2.2rem;
  color: var(--accent);
}

.trip-community-story h3,
.trip-story-caution h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.1;
}

.trip-community-story p,
.trip-story-caution p { margin: 0.6rem 0 0; }

.trip-story-caution {
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns: 2.4rem minmax(0, 1fr);
  gap: 0.9rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(30, 49, 84, 0.2);
  background: color-mix(in oklch, var(--trip-water) 62%, var(--trip-paper));
}

.trip-methods {
  display: grid;
  grid-template-columns: minmax(16rem, 0.72fr) minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 6rem);
}

.trip-methods .trip-section-heading { grid-column: 1; grid-row: 1; }
.trip-methods > ol { grid-column: 2; grid-row: 1 / span 2; }

.trip-methods-feature {
  grid-column: 1;
  grid-row: 2;
  align-self: end;
  min-width: 0;
  margin: 0;
  break-inside: avoid;
}

.trip-methods-feature__media {
  display: grid;
  gap: 0.55rem;
  min-width: 0;
}

.trip-methods-view {
  position: relative;
  width: 100%;
  min-height: 9rem;
  min-width: 0;
  box-sizing: border-box;
  aspect-ratio: 12 / 5;
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.28);
  background: oklch(37% 0.018 225);
  box-shadow: 0 0.8rem 1.8rem rgba(16, 36, 58, 0.16);
  isolation: isolate;
}

.trip-methods-view__stage {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.trip-model-compare {
  --trip-model-compare-position: 50%;
  --trip-model-compare-handle-half: min(1.2rem, 24px);
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.trip-methods-view img.trip-model-compare__wireframe {
  clip-path: inset(0 0 0 var(--trip-model-compare-position));
}

.trip-methods-view img.trip-model-compare__print { display: none; }

.trip-model-compare__control {
  appearance: none;
  position: absolute;
  z-index: 8;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: ew-resize;
  opacity: 0;
  touch-action: pan-y;
}

.trip-model-compare__control[hidden],
.trip-model-compare__divider[hidden],
.trip-model-compare__handle[hidden] { display: none !important; }

.trip-model-compare__control::-webkit-slider-runnable-track {
  width: 100%;
  height: 100%;
  background: transparent;
}

.trip-model-compare__control::-webkit-slider-thumb {
  appearance: none;
  width: 1px;
  height: 100%;
  border: 0;
  background: transparent;
}

.trip-model-compare__control::-moz-range-track {
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
}

.trip-model-compare__control::-moz-range-thumb {
  width: 1px;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.trip-model-compare__divider,
.trip-model-compare__handle {
  position: absolute;
  z-index: 7;
  left: var(--trip-model-compare-position);
  pointer-events: none;
}

.trip-model-compare__divider {
  top: 0;
  bottom: 0;
  width: 2px;
  background: linear-gradient(
    transparent,
    rgba(255, 255, 255, 0.92) 12%,
    rgba(255, 255, 255, 0.92) 88%,
    transparent
  );
  box-shadow: 0 0 0.7rem rgba(7, 20, 31, 0.86);
  transform: translateX(-1px);
}

.trip-model-compare__handle {
  top: 50%;
  left: clamp(
    var(--trip-model-compare-handle-half),
    var(--trip-model-compare-position),
    calc(100% - var(--trip-model-compare-handle-half))
  );
  display: flex;
  width: min(2.4rem, 48px);
  height: min(2.4rem, 48px);
  align-items: center;
  justify-content: center;
  gap: 0.18rem;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(8, 25, 37, 0.92), rgba(26, 54, 67, 0.72));
  box-shadow: 0 0.3rem 1rem rgba(7, 20, 31, 0.5), 0 0 0.45rem rgba(255, 255, 255, 0.18);
  color: #fff;
  font-size: min(0.72rem, 14px);
  font-weight: 850;
  line-height: 1;
  text-shadow: 0 0.1rem 0.25rem rgba(7, 20, 31, 0.82);
  transform: translate(-50%, -50%);
}

.trip-model-compare__control:focus-visible ~ .trip-model-compare__handle {
  outline: 3px solid #fff;
  outline-offset: 3px;
}

.trip-model-compare.is-fallback .trip-model-compare__texture,
.trip-model-compare.is-fallback .trip-model-compare__wireframe { display: none; }
.trip-model-compare.is-fallback img.trip-model-compare__print { display: block; }

.trip-methods-view__chrome { display: contents; }

.trip-methods-view img,
.trip-methods-view__video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.trip-methods-view__video {
  z-index: 2;
  opacity: 0;
  transition: opacity 220ms ease;
}

.trip-methods-view__video[hidden] { display: none; }
.trip-methods-view.is-video-ready .trip-methods-view__video { opacity: 1; }

.trip-methods-view__title,
.trip-methods-view__motion-toggle,
.trip-model-label,
.trip-methods-view__legend {
  position: absolute;
  z-index: 4;
  color: #fff;
  text-shadow: 0 1px 0 rgba(7, 20, 31, 0.82), 0 0.16rem 0.55rem rgba(7, 20, 31, 0.72);
}

.trip-methods-view__title {
  z-index: 9;
  top: 0.55rem;
  left: 0.6rem;
  max-width: calc(100% - 1.2rem);
  padding: 0.28rem 0.48rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: linear-gradient(110deg, rgba(8, 25, 37, 0.86), rgba(8, 25, 37, 0.54));
  box-shadow: 0 0.22rem 0.8rem rgba(7, 20, 31, 0.28);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  line-height: 1.1;
  text-transform: uppercase;
  transition: opacity 160ms ease;
}

.trip-methods-view.is-video-ready .trip-methods-view__title { opacity: 0; }

.trip-methods-view__labels {
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
}

.trip-methods-view.is-video-ready .trip-methods-view__labels { opacity: 0; }

.trip-model-label {
  max-width: min(10rem, calc(100% - 1rem));
  padding: 0.27rem 0.42rem;
  border: 1px solid rgba(255, 255, 255, 0.38);
  background: linear-gradient(115deg, rgba(8, 25, 37, 0.9), rgba(8, 25, 37, 0.62));
  box-shadow: 0 0.22rem 0.75rem rgba(7, 20, 31, 0.34);
  font-size: clamp(0.75rem, 1.2vw, 0.84rem);
  font-weight: 780;
  line-height: 1.08;
}

.trip-model-label::after {
  content: "";
  position: absolute;
  width: 1.35rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.18));
  filter: drop-shadow(0 0.1rem 0.18rem rgba(7, 20, 31, 0.78));
  transform-origin: left center;
}

.trip-model-label small {
  display: block;
  margin-bottom: 0.16rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: max(0.75rem, 0.72em);
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.trip-model-label--interpretation {
  border-color: rgba(255, 211, 139, 0.78);
  background: linear-gradient(115deg, rgba(71, 39, 21, 0.94), rgba(71, 39, 21, 0.67));
}

.trip-model-label--flat { top: 24%; left: 25%; }
.trip-model-label--flat::after { top: 100%; left: 58%; transform: rotate(72deg); }
.trip-model-label--groove { top: 48%; left: 21%; }
.trip-model-label--groove::after { top: 58%; left: 100%; transform: rotate(14deg); }
.trip-model-label--spur { top: 43%; left: 52%; }
.trip-model-label--spur::after { top: 100%; left: 35%; transform: rotate(68deg); }
.trip-model-label--recess { right: 5%; bottom: 8%; }
.trip-model-label--recess::after {
  top: 42%;
  right: 100%;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.92));
  transform: rotate(10deg);
  transform-origin: right center;
}
.trip-model-label--close-recess { top: 38%; left: 4%; }
.trip-model-label--close-recess::after { top: 58%; left: 100%; transform: rotate(4deg); }
.trip-model-label--possible-fill { right: 4%; bottom: 8%; max-width: min(14rem, 62%); }
.trip-model-label--possible-fill::after {
  top: 36%;
  right: 100%;
  background: linear-gradient(90deg, rgba(255, 211, 139, 0.2), rgba(255, 211, 139, 0.95));
  transform: rotate(-10deg);
  transform-origin: right center;
}

.trip-methods-view__motion-toggle {
  top: 0.45rem;
  right: 0.5rem;
  min-height: 44px;
  padding: 0.45rem 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.52);
  border-radius: 0;
  background: linear-gradient(115deg, rgba(8, 25, 37, 0.9), rgba(8, 25, 37, 0.66));
  box-shadow: 0 0.22rem 0.75rem rgba(7, 20, 31, 0.3);
  font: inherit;
  font-size: 0.75rem;
  font-weight: 800;
  cursor: pointer;
}

.trip-methods-view__motion-toggle:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

.trip-methods-view__legend {
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.18rem 0.55rem;
  align-items: center;
  padding: 1.05rem 0.65rem 0.42rem;
  background: linear-gradient(transparent, rgba(7, 20, 31, 0.86));
  font-size: 0.75rem;
  font-weight: 760;
  line-height: 1.15;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
}

.trip-methods-view.is-video-ready .trip-methods-view__legend { opacity: 1; }
.trip-methods-view__legend span::before { content: "·"; margin-right: 0.28rem; color: #f3c988; }

.trip-methods-feature figcaption {
  padding-top: 0.8rem;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.45;
}

.trip-methods-feature figcaption strong {
  display: block;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
  line-height: 1.1;
}

.trip-methods-feature figcaption p { margin: 0.45rem 0 0; }
.trip-methods-feature figcaption a {
  display: inline-block;
  margin-top: 0.65rem;
  color: var(--accent);
  font-weight: 800;
  text-underline-offset: 0.18em;
}

.trip-methods-feature figcaption a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 0.22rem;
}

.trip-methods ol,
.trip-research ol {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.trip-methods li {
  counter-increment: method;
  display: grid;
  grid-template-columns: 2rem 3rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  padding: 1.15rem 0;
  border-top: 1px solid rgba(30, 49, 84, 0.18);
}

.trip-methods ol { counter-reset: method; }

.trip-methods li::before {
  content: counter(method, decimal-leading-zero);
  color: var(--accent);
  font-size: 0.72rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.trip-methods li > span {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 999px;
  border: 1px solid var(--ink);
  background: transparent;
  color: var(--ink);
}

.trip-methods li > span .trip-field-symbol {
  width: 1.55rem;
  height: 1.55rem;
  stroke-width: 1.8;
}

.trip-methods h3,
.trip-site-heading h3,
.trip-site-brief h3,
.trip-tide-story h3,
.trip-research h3,
.trip-next-work h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
}

.trip-methods h3 { font-size: 1.8rem; }
.trip-methods p { margin: 0.35rem 0 0; color: var(--ink-soft); line-height: 1.5; }

.trip-island-chapter {
  --trip-chapter-field: oklch(29% 0.055 245);
  --trip-chapter-accent: oklch(70% 0.13 48);
  --trip-chapter-paper: var(--trip-paper);
  scroll-margin-top: 8rem;
  padding: clamp(2rem, 5vw, 5rem) clamp(1rem, 4vw, 4rem) clamp(4rem, 8vw, 8rem);
  border-top: 1px solid rgba(30, 49, 84, 0.18);
  background: var(--trip-paper);
}

.trip-island-chapter#rarotonga {
  --trip-chapter-field: oklch(30% 0.055 252);
  --trip-chapter-accent: oklch(73% 0.12 55);
}

.trip-island-chapter#atiu {
  --trip-chapter-field: oklch(32% 0.054 178);
  --trip-chapter-accent: oklch(76% 0.10 75);
}

.trip-island-chapter#mangaia {
  --trip-chapter-field: oklch(29% 0.072 231);
  --trip-chapter-accent: oklch(70% 0.16 42);
}

.trip-island-chapter#mauke {
  --trip-chapter-field: oklch(31% 0.045 63);
  --trip-chapter-accent: oklch(72% 0.085 167);
}

.trip-island-chapter#mitiaro {
  --trip-chapter-field: oklch(34% 0.065 202);
  --trip-chapter-accent: oklch(74% 0.115 48);
}

.trip-island-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-items: start;
  margin: calc(-1 * clamp(2rem, 5vw, 5rem)) calc(-1 * clamp(1rem, 4vw, 4rem)) 0;
  border-right: min(0.38rem, 6px) solid var(--trip-chapter-accent);
  background: var(--trip-chapter-field);
}

.trip-island-hero__copy {
  position: relative;
  padding: clamp(2.5rem, 5vw, 5rem) clamp(1rem, 4vw, 4rem) clamp(2rem, 4vw, 3.75rem);
  color: var(--trip-paper);
}

.trip-island-hero__copy::after {
  content: "";
  position: absolute;
  right: clamp(1rem, 4vw, 4rem);
  bottom: 0;
  left: clamp(1rem, 4vw, 4rem);
  height: 1px;
  background: color-mix(in oklch, var(--trip-chapter-accent) 76%, transparent);
}

.trip-island-hero h2 {
  color: var(--trip-paper);
  font-size: clamp(4rem, 9vw, 8.5rem);
  letter-spacing: -0.035em;
}
.trip-island-hero .trip-section-label { color: var(--trip-chapter-accent); }
.trip-island-hero .trip-section-label > span {
  color: color-mix(in oklch, var(--trip-paper) 88%, var(--trip-chapter-field));
}
.trip-island-date { margin: 0.5rem 0 0; color: var(--trip-chapter-accent); font-weight: 800; }
.trip-island-narrative { margin: 1.4rem 0 0; }
.trip-island-hero .trip-island-narrative { color: color-mix(in oklch, var(--trip-paper) 91%, var(--trip-chapter-field)); }
.trip-island-tally { margin: 1rem 0 0; color: var(--trip-chapter-accent); font-size: 0.78rem; font-weight: 800; letter-spacing: 0.05em; }

@media screen {
  .trip-island-tally--print { display: none !important; }
}

.trip-island-hero > *,
.trip-island-visuals,
.trip-island-visuals > * { min-width: 0; }
.trip-island-visuals {
  display: grid;
  gap: 1rem;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 4vw, 4rem) 0;
  background: var(--trip-chapter-paper);
}
.trip-media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.trip-media--hero img { aspect-ratio: 16 / 10; }
.trip-island-map { min-height: 0; overflow: hidden; border: 1px solid rgba(30, 49, 84, 0.18); background: transparent; }

/* Let each raised-island chapter establish its geography in the opening view. */
@container trip-report-shell (min-width: calc(73rem - 1px)) {
  .trip-island-hero:has(.trip-island-map) {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(1.5rem, 3vw, 2.5rem);
  }

  .trip-island-hero:has(.trip-island-map) > .trip-island-hero__copy {
    display: grid;
    grid-template-columns: minmax(20rem, 0.78fr) minmax(0, 1.22fr);
    grid-template-areas:
      "label narrative"
      "title narrative"
      "date narrative"
      "tally narrative";
    column-gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
  }

  .trip-island-hero:has(.trip-island-map) > .trip-island-hero__copy > .trip-section-label {
    grid-area: label;
  }

  .trip-island-hero:has(.trip-island-map) h2 { grid-area: title; }
  .trip-island-hero:has(.trip-island-map) .trip-island-date { grid-area: date; }

  .trip-island-hero:has(.trip-island-map) .trip-island-narrative {
    grid-area: narrative;
    max-width: none;
    margin: 0;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-tally {
    grid-area: tally;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr) 1px minmax(0, 1fr);
    gap: 0;
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid color-mix(in oklch, var(--trip-chapter-accent) 72%, transparent);
    background: transparent;
    letter-spacing: 0;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-stat {
    display: grid;
    gap: 0.25rem;
    align-content: center;
    min-height: 5.5rem;
    padding: 0.85rem 0.65rem;
    background: transparent;
    text-align: center;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-stat strong {
    color: var(--trip-paper);
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: 400;
    line-height: 0.9;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-stat > span {
    color: color-mix(in oklch, var(--trip-paper) 90%, var(--trip-chapter-field));
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.15;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-stat-separator {
    display: block;
    align-self: center;
    width: 1px;
    height: 5rem;
    overflow: hidden;
    background: color-mix(in oklch, var(--trip-chapter-accent) 72%, transparent);
    color: transparent;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-visuals {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.9rem, 2vw, 1.5rem);
    align-items: start;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-visuals > figure {
    display: grid;
    grid-template-rows: auto auto;
    gap: 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-visuals > figure > img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-visuals > .trip-island-map > img {
    object-fit: contain;
  }

  .trip-island-hero:has(.trip-island-map) .trip-island-visuals > figure > figcaption {
    align-content: start;
    min-height: 0;
    padding: 0.7rem 0.15rem 0;
    border-top: 0;
    background: transparent;
    color: var(--ink-soft);
    font-size: clamp(0.875rem, 1vw, 0.9rem);
    line-height: 1.45;
  }
}

.trip-tide-story {
  display: grid;
  grid-template-columns: minmax(18rem, 0.62fr) minmax(0, 1.38fr);
  gap: clamp(1.3rem, 4vw, 4rem);
  margin: clamp(2rem, 5vw, 5rem) 0;
  padding: clamp(1rem, 3vw, 2.5rem);
  border: 1px solid rgba(30, 49, 84, 0.18);
  background: oklch(93.7% 0.025 215);
}

.trip-tide-story h3 { margin-top: 0.35rem; font-size: clamp(2rem, 3vw, 3rem); }
.trip-tide-story__copy > p:not(.trip-section-label) { color: var(--ink-soft); line-height: 1.5; }
.trip-tide-story__copy > dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; margin: 1rem 0 0; }
.trip-tide-story__copy > dl > div { padding: 0.65rem; background: color-mix(in oklch, var(--paper) 80%, transparent); }
.trip-tide-story__copy > dl dd { margin: 0.2rem 0 0; color: var(--ink); font-family: var(--font-display); font-size: 1.2rem; }
.trip-tide-story__figures { min-width: 0; }
.trip-tide-story img { display: block; width: 100%; background: var(--paper); }
.trip-caution { font-size: 0.8rem; }

/* Let the report's repeated datum sections read as editorial evidence, not dashboards. */
@container trip-report-shell (min-width: calc(54.25rem - 1px)) {
  .trip-tide-story {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 0;
    background: var(--trip-paper);
  }

  .trip-tide-story__copy {
    display: grid;
    grid-template-columns: minmax(18rem, 0.85fr) minmax(0, 1.15fr);
    grid-template-areas:
      "label stats"
      "title stats"
      "summary stats"
      "caution stats";
    gap: 0.45rem clamp(2rem, 5vw, 5rem);
    align-items: start;
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border-bottom: 1px solid rgba(30, 49, 84, 0.18);
    background: oklch(93.7% 0.025 215);
  }

  .trip-tide-story__copy .trip-section-label { grid-area: label; }
  .trip-tide-story__copy h3 { grid-area: title; }

  .trip-tide-story__copy > p:not(.trip-section-label):not(.trip-caution) {
    grid-area: summary;
    max-width: 48ch;
    margin: 0.55rem 0 0;
  }

  .trip-tide-story__copy > dl {
    grid-area: stats;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
    gap: 0;
    align-self: center;
    margin: 0;
  }

  .trip-tide-story__copy > dl > div {
    min-height: 5.4rem;
    padding: 0.55rem 1rem;
    border-left: 1px solid rgba(30, 49, 84, 0.24);
    background: transparent;
  }

  .trip-tide-story__copy > .trip-caution {
    grid-area: caution;
    max-width: 56ch;
    margin: 0.2rem 0 0;
  }

  .trip-tide-story__figures {
    padding: clamp(0.9rem, 2vw, 1.4rem);
    background: var(--trip-paper);
  }

  .trip-tide-story .tidal-datum-figure-grid--report {
    gap: clamp(0.9rem, 2vw, 1.4rem);
  }

  .trip-tide-story .tidal-connection-plot--report {
    min-height: 0;
    aspect-ratio: 8 / 5;
  }
}

.trip-site-heading {
  max-width: 72ch;
  margin: clamp(2.5rem, 6vw, 6rem) 0 1.5rem;
  padding-top: clamp(1rem, 2vw, 1.5rem);
  border-top: 4px solid var(--trip-chapter-field, var(--ink));
}
.trip-island-chapter .trip-site-heading .trip-section-label,
.trip-island-chapter .trip-site-heading .trip-section-label > span {
  color: var(--trip-chapter-field);
}
.trip-site-heading h3 { margin-top: 0.3rem; font-size: clamp(2rem, 4vw, 3.6rem); }
.trip-site-heading > p:last-child { color: var(--ink-soft); line-height: 1.55; }
.trip-site-list { display: grid; gap: clamp(2rem, 5vw, 5rem); }

.trip-site-brief {
  scroll-margin-top: 8rem;
  display: grid;
  grid-template-columns: minmax(15rem, 0.42fr) minmax(0, 1.58fr);
  column-gap: clamp(1.2rem, 4vw, 4rem);
  padding-top: clamp(1.5rem, 3vw, 3rem);
  border-top: 1px solid rgba(30, 49, 84, 0.24);
}

.trip-site-brief > header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.8rem; align-items: start; }
.trip-site-brief > header > div:first-child > span { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 999px; background: var(--trip-chapter-field, var(--ink)); color: var(--paper); font-weight: 800; }
.trip-site-brief > header p { margin: 0.25rem 0 0; color: var(--ink-soft); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.trip-site-brief h3 { font-size: clamp(1.8rem, 3vw, 3rem); line-height: 1; }
.trip-site-date { font-size: 0.78rem !important; }
.trip-site-description { grid-column: 1; max-width: 46ch; margin: 1rem 0 0; color: var(--ink-soft); line-height: 1.55; }
.trip-site-question { grid-column: 1; max-width: 46ch; margin: 1rem 0 0; padding-left: 0.8rem; border-left: 2px solid var(--trip-chapter-accent, var(--accent)); color: var(--ink); line-height: 1.45; }
.trip-site-question span { display: block; margin-bottom: 0.25rem; color: var(--trip-chapter-field, var(--accent)); font-size: 0.68rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.trip-site-media { grid-column: 2; grid-row: 1 / span 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; align-items: start; }
.trip-site-media--single { grid-template-columns: minmax(0, 1fr); }

/* Turn the long desktop site sequence into alternating field folios. */
@container trip-report-shell (min-width: calc(54.25rem - 1px)) {
  .trip-site-list { gap: clamp(2.5rem, 6vw, 6rem); }

  .trip-site-brief {
    grid-template-columns: minmax(15rem, 0.72fr) minmax(18rem, 0.88fr) minmax(0, 1fr);
    grid-template-rows: auto auto auto auto auto;
    column-gap: clamp(1.25rem, 3vw, 3rem);
    row-gap: clamp(0.75rem, 1.5vw, 1.25rem);
  }

  .trip-site-brief > header {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .trip-site-brief > header > div:last-child {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1rem;
    align-items: baseline;
  }

  .trip-site-brief > header .trip-site-date { margin: 0; }

  .trip-site-description {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
  }

  .trip-site-question {
    grid-column: 2;
    grid-row: 2;
    margin: 0;
    padding: 0.65rem 0 0;
    border-top: 1px solid var(--trip-chapter-accent, var(--accent));
    border-left: 0;
  }

  .trip-site-media {
    grid-column: 1 / -1;
    grid-row: 3;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.5vw, 1.25rem);
    margin-top: 0.25rem;
  }

  .trip-site-media > figure {
    display: grid;
    grid-template-rows: auto auto;
    gap: 0;
    overflow: hidden;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .trip-site-media > figure > img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .trip-site-media > .trip-site-locator > img { object-fit: contain; }

  .trip-site-media > .trip-site-locator > figcaption,
  .trip-site-media > .trip-media--site > figcaption {
    display: grid;
    gap: 0.38rem;
    align-content: start;
    min-height: 0;
    padding: 0.7rem 0.15rem 0;
    border: 0;
    background: transparent;
    color: var(--ink-soft);
    font-size: clamp(0.875rem, 1vw, 0.9rem);
    line-height: 1.45;
  }

  .trip-site-media > .trip-site-locator > figcaption {
    width: 83.333333%;
    margin-inline: auto;
  }

  .trip-site-brief:nth-child(even) .trip-site-media > .trip-site-locator {
    grid-column: 2;
    grid-row: 1;
  }

  .trip-site-brief:nth-child(even) .trip-site-media > .trip-media--site {
    grid-column: 1;
    grid-row: 1;
  }

  .trip-site-media--single,
  .trip-site-brief:nth-child(even) .trip-site-media--single {
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: 55rem;
    margin-inline: auto;
  }

  .trip-site-brief:nth-child(even) .trip-site-media--single > .trip-site-locator {
    grid-column: 1;
  }

  .trip-site-technical {
    grid-column: 1 / -1;
    grid-row: 4;
    margin-top: 0;
  }

  .trip-field-note-feature {
    grid-column: 1 / -1;
    grid-row: 5;
    margin-top: 0;
  }
}

.trip-site-locator { overflow: hidden; border: 1px solid rgba(30, 49, 84, 0.18); background: transparent; }
.trip-site-locator figcaption {
  display: grid;
  gap: 0.38rem;
  align-items: start;
  justify-content: stretch;
  padding-bottom: 0;
  color: var(--ink-soft);
  font-size: var(--type-meta);
  line-height: 1.4;
}

@media screen {
  .trip-site-media > figure {
    overflow: hidden;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .trip-site-media > figure > figcaption,
  .trip-island-visuals > figure > figcaption {
    font-size: clamp(0.875rem, 1vw, 0.9rem);
    line-height: 1.45;
  }

  .trip-site-media > figure > figcaption :is(.trip-site-map-key, .trip-site-map-key__item, small),
  .trip-island-visuals > figure > figcaption :is(.trip-island-map-key, .trip-island-map-key__item, small) {
    font-size: clamp(0.875rem, 1vw, 0.9rem);
    line-height: 1.45;
  }

  .trip-site-media > .trip-site-locator > figcaption,
  .trip-site-media > .trip-media--site > figcaption {
    display: grid;
    gap: 0.38rem;
    align-content: start;
    min-height: 0;
    border: 0;
    background: transparent;
  }
}
.trip-site-map-key { display: flex; flex-wrap: wrap; gap: 0.35rem 0.85rem; color: var(--ink); font-size: var(--type-meta); font-weight: 800; }
.trip-site-map-key__item { display: inline-flex; gap: 0.38rem; align-items: center; }
.trip-site-map-key__item i { position: relative; flex: 0 0 auto; width: 0.72rem; height: 0.72rem; border-radius: 999px; }
.trip-site-map-key__item--site i { border: 0.16rem solid var(--ink); background: var(--trip-paper); }
.trip-site-map-key__item--sample i {
  background: radial-gradient(circle, #c66d3c 0 28%, #fffaf0 31% 57%, #10243a 60% 100%);
  box-shadow: 0 0.08rem 0.22rem rgba(8, 20, 31, 0.22);
}
.trip-site-map-key__item--water-depth i {
  background: radial-gradient(circle, #4f8c99 0 38%, #fffaf0 41% 67%, #10243a 70% 100%);
  box-shadow: 0 0.08rem 0.22rem rgba(8, 20, 31, 0.22);
}
.trip-site-map-key__item--ground-control i {
  border: 0.12rem solid #10243a;
  border-radius: 0.08rem;
  background: #c66d3c;
  box-shadow: inset 0 0 0 0.12rem #fffaf0, 0 0.08rem 0.22rem rgba(8, 20, 31, 0.22);
  transform: rotate(45deg) scale(0.9);
}
.trip-site-locator figcaption small { color: var(--ink-soft); font-size: 0.75rem; line-height: 1.35; }

.trip-surface-summary,
.trip-surface-unavailable { color: var(--ink-soft); font-size: 0.8rem; line-height: 1.4; }
.trip-surface-summary { margin: 0.85rem 0 0; }
.trip-surface-unavailable { grid-column: 1 / -1; margin: 1rem 0 0; padding: 0.8rem; background: var(--trip-wash); }

.trip-site-technical { grid-column: 1 / -1; margin-top: 0.8rem; border-top: 1px solid rgba(30, 49, 84, 0.16); }
.trip-site-technical > summary { display: flex; gap: 0.55rem; align-items: center; padding: 0.8rem 0; color: var(--ink); cursor: pointer; font-weight: 800; list-style: none; }
.trip-site-technical > summary::-webkit-details-marker { display: none; }
.trip-site-technical > summary::after { content: "+"; margin-left: auto; color: var(--accent); font-size: 1.25rem; font-weight: 400; }
.trip-site-technical[open] > summary::after { content: "−"; }
.trip-site-technical > summary .trip-field-symbol { width: 1.5rem; height: 1.5rem; color: var(--accent); }
.trip-island-chapter .trip-site-technical > summary::after,
.trip-island-chapter .trip-site-technical > summary .trip-field-symbol {
  color: var(--trip-chapter-field);
}
.trip-site-technical__body { padding: 0 0 1rem; }
.trip-site-evidence { margin-top: 0.8rem; color: var(--ink-soft); line-height: 1.5; }
.trip-site-evidence a { color: var(--accent); font-weight: 800; }

.trip-field-note-feature {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  min-width: 0;
  margin: 1rem 0 0;
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.18);
  background: linear-gradient(120deg, rgba(221, 233, 229, 0.62), rgba(245, 240, 231, 0.9));
}

.trip-field-note-feature__image {
  position: relative;
  display: block;
  min-width: 0;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  background: var(--ink);
}

.trip-field-note-feature__image::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(180deg, transparent 52%, rgba(8, 20, 31, 0.18));
}

.trip-field-note-feature__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--trip-field-note-position, 50% 50%);
}

@media screen {
  .trip-field-note-feature__image.is-image-pending::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    background:
      linear-gradient(135deg, rgba(102, 149, 155, 0.22), transparent 58%),
      var(--ink);
  }

  .trip-field-note-feature__image.is-image-pending .trip-field-note-marker {
    visibility: hidden;
  }
}

.trip-field-note-marker {
  position: absolute;
  z-index: 2;
  left: var(--trip-marker-x);
  top: var(--trip-marker-y);
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  transform: translate(-50%, -50%);
  border: 0.12rem solid rgba(255, 250, 240, 0.94);
  border-radius: 999px;
  background: linear-gradient(145deg, rgba(20, 52, 65, 0.96), rgba(8, 24, 38, 0.86));
  box-shadow: 0 0.18rem 0.62rem rgba(3, 12, 20, 0.5);
  color: #fffaf0;
  font-size: 0.78rem;
  font-weight: 850;
  line-height: 1;
  text-shadow: 0 0.08rem 0.2rem rgba(0, 0, 0, 0.7);
}

.trip-field-note-feature__copy {
  align-self: center;
  min-width: 0;
  padding: clamp(0.85rem, 2.4vw, 1.4rem);
  color: var(--ink-soft);
  font-size: clamp(0.82rem, 1.25vw, 0.94rem);
  line-height: 1.5;
}

.trip-field-note-feature__copy h4 {
  margin: 0.18rem 0 0.45rem;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.1vw, 1.9rem);
  line-height: 1.05;
}

.trip-field-note-feature__copy > p { margin: 0; }
.trip-field-note-feature__eyebrow {
  color: var(--accent);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.trip-field-note-legend {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0.8rem 0;
  padding: 0;
  list-style: none;
}

.trip-field-note-legend li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.45rem;
  align-items: center;
  min-width: 0;
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.trip-field-note-legend li > span {
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  background: var(--ink);
  color: var(--paper);
  font-size: 0.68rem;
  font-weight: 850;
}

.trip-field-note-feature__meta {
  min-width: 0;
  padding-top: 0.7rem;
  border-top: 1px solid rgba(30, 49, 84, 0.16);
  font-size: 0.72rem;
  overflow-wrap: anywhere;
}

.trip-field-note-feature__meta a { color: var(--accent); font-weight: 850; }

.trip-rarotonga-evidence,
.trip-rarotonga-photos { display: grid; gap: 1rem; }
.trip-rarotonga-evidence { grid-template-columns: minmax(0, 1.3fr) minmax(16rem, 0.7fr); margin-top: 2rem; }
.trip-rarotonga-photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trip-rarotonga-evidence li { margin-bottom: 0.55rem; color: var(--ink-soft); line-height: 1.45; }

.trip-research { scroll-margin-top: 8rem; background: var(--ink); color: var(--paper); }
.trip-research .trip-section-label { color: oklch(81% 0.08 65); }
.trip-research .trip-section-label > span { color: oklch(90% 0.014 82); }
.trip-research h2,
.trip-research h3 { color: var(--paper); }
.trip-research ol { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.trip-research li { padding: 1.2rem; border: 1px solid rgba(245, 240, 231, 0.28); }
.trip-research li > span { color: oklch(81% 0.08 65); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.trip-research li h3 { margin-top: 0.45rem; font-size: 1.65rem; line-height: 1.08; }
.trip-research li p,
.trip-next-work li { color: oklch(90% 0.014 82); line-height: 1.55; }
.trip-next-work { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(245, 240, 231, 0.3); }
.trip-next-work h3 { font-size: 2rem; }
.trip-next-work ul { columns: 2; column-gap: 3rem; }
.trip-research-sources { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(245, 240, 231, 0.3); }
.trip-research-sources h3 { font-size: 2rem; }
.trip-research-sources ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.trip-research-sources li { display: grid; gap: 0.35rem; padding: 0.85rem; }
.trip-research-sources a { color: oklch(88% 0.08 75); font-weight: 800; }
.trip-research .trip-research-sources li > span { color: oklch(90% 0.014 82); font-size: 0.88rem; font-weight: 400; letter-spacing: 0; line-height: 1.45; text-transform: none; }

.trip-glossary { display: grid; grid-template-columns: minmax(14rem, 0.55fr) minmax(0, 1.45fr); gap: clamp(2rem, 6vw, 6rem); scroll-margin-top: 8rem; background: var(--trip-wash); }
.trip-glossary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: rgba(30, 49, 84, 0.14); }
.trip-glossary dl div { padding: 1rem; background: var(--trip-paper); }
.trip-glossary dt { color: var(--ink); font-weight: 800; }
.trip-glossary dd { margin: 0.35rem 0 0; color: var(--ink-soft); line-height: 1.45; }

/* Reflow before the rail and rem-based desktop grids exceed the report frame. */
@container trip-report-shell (max-width: calc(73rem - 2px)) {
  #trip-report-title,
  .trip-island-chapter,
  .trip-research,
  .trip-glossary { scroll-margin-top: 10.5rem; }
  .trip-story { grid-template-columns: minmax(0, 1fr); }
  .trip-story__index {
    position: sticky;
    z-index: 20;
    top: 3.65rem;
    border-right: 0;
    border-bottom: 1px solid rgba(30, 49, 84, 0.16);
  }
  .trip-chapter-nav { display: none; }
  .trip-chapter-nav-mobile {
    display: block;
    background: color-mix(in oklch, var(--trip-paper) 94%, transparent);
  }
  .trip-chapter-nav-mobile summary {
    min-height: 2.9rem;
    padding: 0.82rem 1rem;
    color: var(--ink);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    list-style-position: inside;
    text-transform: uppercase;
  }
  .trip-chapter-nav-mobile nav {
    display: flex;
    gap: 0.25rem;
    padding: 0 0.75rem 0.75rem;
    overflow-x: auto;
  }
  .trip-chapter-nav-mobile a {
    flex: 0 0 auto;
    min-height: 2.75rem;
    padding: 0.8rem 0.7rem;
    color: var(--ink);
    font-size: 0.78rem;
    font-weight: 800;
    text-decoration: none;
  }
  .trip-chapter-nav-mobile a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }
  .trip-story-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .trip-story-hero__copy { max-width: 52rem; }
  .trip-story-hero__media { min-height: 31rem; }
  .trip-story-hero-photo img { min-height: 31rem; }
}

/* Stack the three-part introduction before enlarged text exceeds its columns. */
@container trip-report-shell (max-width: calc(56.25rem - 2px)) {
  .trip-story-intro { grid-template-columns: minmax(0, 1fr); }
  .trip-story-intro > header,
  .trip-story-intro__copy,
  .trip-community-story,
  .trip-story-caution { grid-column: 1; grid-row: auto; }
}

/* Pair the 900 px viewport fallback with the report frame's equivalent inline size. */
@container trip-report-shell (max-width: calc(54.25rem - 2px)) {
  .site-header { --nav-height: 3.35rem; }

  .nav-toggle {
    display: flex !important;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    z-index: 60;
    margin-left: auto;
    width: 2.75rem;
    height: 2.75rem;
    transform: none;
    border-color: var(--line-strong);
    background: rgba(255, 251, 245, 0.98);
  }

  .nav-shell {
    position: relative;
    min-height: var(--nav-height);
    gap: 0.8rem;
    padding: 0 0.9rem;
  }

  .site-nav {
    position: fixed;
    top: calc(var(--nav-height) + 0.4rem);
    left: 0.75rem;
    right: 0.75rem;
    z-index: 55;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.55rem;
    border: 1px solid var(--line);
    border-radius: 0rem;
    background: rgba(255, 251, 245, 0.98);
    box-shadow: var(--shadow);
  }

  .site-nav a {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.82rem 0.85rem;
    font-size: 0.96rem;
  }

  .site-nav.is-open { display: flex; }

  .site-nav a[aria-current="page"]::after {
    left: 0.85rem;
    right: auto;
    bottom: 0.42rem;
    width: 2.5rem;
  }

  .nav-tools { display: none; }

  .site-mark {
    display: flex;
    align-items: center;
    align-self: stretch;
    flex: 1;
    min-width: 0;
    font-size: 0.92rem;
    letter-spacing: 0.02em;
  }

  .trip-story-hero,
  .trip-story-intro,
  .trip-methods,
  .trip-island-hero,
  .trip-tide-story,
  .trip-site-brief,
  .trip-rarotonga-evidence,
  .trip-glossary { grid-template-columns: minmax(0, 1fr); }
  .trip-methods { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
  .trip-methods .trip-section-heading,
  .trip-methods > ol,
  .trip-methods-feature { grid-column: 1; grid-row: auto; }
  .trip-story-intro > header,
  .trip-story-intro__copy,
  .trip-community-story,
  .trip-story-caution,
  .trip-site-description,
  .trip-site-question,
  .trip-site-media { grid-column: 1; grid-row: auto; }
  .trip-story-hero { min-height: auto; }
  .trip-story-hero__media { min-height: 32rem; }
  .trip-story-hero-photo img { min-height: 30rem; }
  .trip-site-media { margin-top: 1rem; }
  .trip-research ol { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1120px) {
  #trip-report-title,
  .trip-island-chapter,
  .trip-research,
  .trip-glossary { scroll-margin-top: 10.5rem; }
  .trip-story { grid-template-columns: minmax(0, 1fr); }
  .trip-story__index {
    position: sticky;
    z-index: 20;
    top: 3.65rem;
    border-right: 0;
    border-bottom: 1px solid rgba(30, 49, 84, 0.16);
  }
  .trip-chapter-nav { display: none; }
  .trip-chapter-nav-mobile {
    display: block;
    background: color-mix(in oklch, var(--trip-paper) 94%, transparent);
  }
  .trip-chapter-nav-mobile summary {
    min-height: 2.9rem;
    padding: 0.82rem 1rem;
    color: var(--ink);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    list-style-position: inside;
    text-transform: uppercase;
  }
  .trip-chapter-nav-mobile nav {
    display: flex;
    gap: 0.25rem;
    padding: 0 0.75rem 0.75rem;
    overflow-x: auto;
  }
  .trip-chapter-nav-mobile a {
    flex: 0 0 auto;
    min-height: 2.75rem;
    padding: 0.8rem 0.7rem;
    color: var(--ink);
    font-size: 0.78rem;
    font-weight: 800;
    text-decoration: none;
  }
  .trip-chapter-nav-mobile a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
  }
  .trip-story-hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: auto;
  }
  .trip-story-hero__copy { max-width: 52rem; }
  .trip-story-hero__media { min-height: 31rem; }
  .trip-story-hero-photo img { min-height: 31rem; }
}

@media (max-width: 900px) {
  .trip-story-hero,
  .trip-story-intro,
  .trip-methods,
  .trip-island-hero,
  .trip-tide-story,
  .trip-site-brief,
  .trip-rarotonga-evidence,
  .trip-glossary { grid-template-columns: minmax(0, 1fr); }
  .trip-methods {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
  }
  .trip-methods .trip-section-heading,
  .trip-methods > ol,
  .trip-methods-feature { grid-column: 1; grid-row: auto; }
  .trip-story-intro > header,
  .trip-story-intro__copy,
  .trip-community-story,
  .trip-story-caution,
  .trip-site-description,
  .trip-site-question,
  .trip-site-media { grid-column: 1; grid-row: auto; }
  .trip-story-hero { min-height: auto; }
  .trip-story-hero__media { min-height: 32rem; }
  .trip-story-hero-photo img { min-height: 30rem; }
  .trip-site-media { margin-top: 1rem; }
  .trip-research ol { grid-template-columns: minmax(0, 1fr); }
}

@media screen and (max-width: 900px) {
  .trip-site-technical,
  .trip-field-note-feature {
    grid-column: 1;
    grid-row: auto;
  }
}

@media (max-width: 620px) {
  body[data-page="trip_report"] .page-shell { padding: 0; }
  .trip-methods-view {
    min-height: 0;
    aspect-ratio: auto;
  }
  .trip-methods-view__chrome {
    position: relative;
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem 0.65rem;
    padding: 0.5rem;
    background: linear-gradient(120deg, rgba(8, 25, 37, 0.98), rgba(18, 45, 61, 0.94));
  }
  .trip-methods-view__title,
  .trip-methods-view__motion-toggle {
    position: relative;
    inset: auto;
  }
  .trip-methods-view__title {
    flex: 1 1 8rem;
    max-width: none;
    overflow-wrap: anywhere;
    letter-spacing: 0;
    opacity: 1 !important;
  }
  .trip-methods-view__motion-toggle { flex: 0 0 auto; }
  .trip-methods-view__stage {
    position: relative;
    inset: auto;
    aspect-ratio: 12 / 5;
  }
  .trip-methods-view__labels,
  .trip-methods-view.is-video-ready .trip-methods-view__labels {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(7rem, 100%), 1fr));
    gap: 0.35rem;
    padding: 0.5rem;
    background: linear-gradient(120deg, rgba(8, 25, 37, 0.98), rgba(18, 45, 61, 0.94));
    opacity: 1;
  }
  .trip-model-label {
    position: relative;
    inset: auto;
    max-width: none;
  }
  .trip-model-label small {
    overflow-wrap: anywhere;
    letter-spacing: 0;
  }
  .trip-model-label::after,
  .trip-methods-view__legend { display: none; }
  .trip-story-hero,
  .trip-story-intro,
  .trip-methods,
  .trip-island-chapter,
  .trip-research,
  .trip-glossary { padding-inline: 1rem; }
  .trip-story-hero,
  .trip-story-intro,
  .trip-methods,
  .trip-island-hero,
  .trip-tide-story,
  .trip-site-brief,
  .trip-rarotonga-evidence,
  .trip-glossary,
  .trip-research ol,
  .trip-research-sources ul { grid-template-columns: minmax(0, 1fr); }
  .trip-story-hero > *,
  .trip-story-intro > *,
  .trip-methods > *,
  .trip-island-hero > *,
  .trip-tide-story > *,
  .trip-site-brief > *,
  .trip-rarotonga-evidence > *,
  .trip-glossary > *,
  .trip-research ol > li { min-width: 0; }
  .trip-story-hero h1 { font-size: clamp(3rem, 15vw, 5rem); }
  .trip-story-hero__media { grid-template-columns: minmax(0, 1fr); min-height: auto; }
  .trip-story-hero-photo img { min-height: 26rem; max-height: 34rem; }
  .trip-story-tally { grid-template-columns: minmax(0, 1fr); }
  .trip-story-tally > div,
  .trip-story-tally > div:nth-last-child(-n + 2) { border-bottom: 1px solid rgba(30, 49, 84, 0.12); }
  .trip-story-tally > div:last-child { border-bottom: 0; }
  .trip-story-tally > div:nth-child(odd),
  .trip-story-tally > div:nth-child(even) { padding-inline: 0; border-left: 0; }
  .trip-island-hero h2 { font-size: clamp(3.6rem, 19vw, 6rem); }
  .trip-site-media,
  .trip-field-note-feature,
  .trip-tide-story__copy > dl,
  .trip-rarotonga-photos,
  .trip-glossary dl { grid-template-columns: minmax(0, 1fr); }
  .trip-methods li { grid-template-columns: 1.7rem 2.75rem minmax(0, 1fr); gap: 0.65rem; }
  .trip-next-work ul { columns: 1; }
  .trip-research-sources ul { grid-template-columns: minmax(0, 1fr); }
  .trip-field-note-feature__copy { padding: 1rem; }
}

/* Cap compact geometry and release sticky chrome when text enlargement would hide figures. */
@container trip-report-shell (max-width: 19rem) {
  body[data-page="trip_report"] .site-header,
  .trip-story__index { position: static; }
  body[data-page="trip_report"] .nav-shell {
    gap: min(0.8rem, 4vw);
    padding-inline: min(0.9rem, 4vw);
  }
  body[data-page="trip_report"] .site-mark { font-size: min(0.92rem, 5vw); }
  body[data-page="trip_report"] .nav-toggle {
    width: min(2.75rem, 15vw);
    height: min(2.75rem, 15vw);
  }
  body[data-page="trip_report"] .nav-toggle__bars { gap: min(0.24rem, 1.5vw); }
  body[data-page="trip_report"] .nav-toggle__bars span { width: min(1rem, 8vw); }
  .trip-story-hero,
  .trip-story-intro,
  .trip-methods,
  .trip-island-chapter,
  .trip-research,
  .trip-glossary { padding-inline: min(1rem, 5vw); }
  .trip-island-hero { margin-inline: calc(-1 * min(1rem, 5vw)); }
  .trip-story h1,
  .trip-story h2,
  .trip-story h3,
  .trip-story p,
  .trip-story li,
  .trip-story a { overflow-wrap: anywhere; }
  .trip-site-brief > header { gap: min(0.8rem, 4vw); }
  .trip-site-brief h3 {
    max-width: 100%;
    font-size: min(1.8rem, 10.5vw);
    overflow-wrap: normal;
  }
  .trip-story-hero h1 { font-size: min(3rem, 15vw); }
  .trip-story-intro h2,
  .trip-section-heading h2,
  .trip-research h2,
  .trip-glossary h2 { font-size: min(2.4rem, 14vw); }
  .trip-story-intro h2,
  .trip-methods .trip-section-heading h2 { font-size: min(2.8rem, 14vw); }
  .trip-methods h3 { font-size: min(1.8rem, 9vw); }
  .trip-community-story h3,
  .trip-story-caution h3 { font-size: min(1.35rem, 8vw); }
  .trip-research li h3 { font-size: min(1.65rem, 8.25vw); }
  .trip-next-work h3,
  .trip-research-sources h3 { font-size: min(2rem, 10vw); }
  .trip-community-story,
  .trip-story-caution {
    grid-template-columns: min(2.4rem, 12vw) minmax(0, 1fr);
    gap: min(0.85rem, 4vw);
  }
  .trip-community-story .trip-field-symbol,
  .trip-story-caution .trip-field-symbol {
    width: min(2.2rem, 12vw);
    height: min(2.2rem, 12vw);
  }
  .trip-island-hero h2 { font-size: min(3.6rem, 19vw); }
  .trip-methods li {
    grid-template-columns: min(1.7rem, 8vw) min(2.75rem, 12vw) minmax(0, 1fr);
    gap: min(0.65rem, 3vw);
  }
  .trip-methods li::before { font-size: min(0.72rem, 5vw); }
  .trip-methods li > span {
    width: min(2.75rem, 12vw);
    height: min(2.75rem, 12vw);
  }
  .trip-methods li > span .trip-field-symbol {
    width: min(1.55rem, 9vw);
    height: min(1.55rem, 9vw);
  }
  .trip-field-note-marker {
    width: min(1.8rem, 12vw);
    height: min(1.8rem, 12vw);
    font-size: min(0.78rem, 6vw);
  }
  .trip-research li { padding: min(1.2rem, 5vw); }
}

@media (max-width: 360px) {
  .trip-field-note-legend { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .trip-methods-view__video,
  .trip-methods-view__motion-toggle,
  .trip-methods-view__legend { display: none !important; }
  .trip-methods-view__labels,
  .trip-methods-view__title { opacity: 1 !important; }
}

@media print {
  @page { size: A4 portrait; margin: 12mm; }
  body[data-page="trip_report"] .site-header,
  body[data-page="trip_report"] .site-footer,
  .trip-story__index,
  .trip-chapter-nav,
  .trip-chapter-nav-mobile,
  .trip-story-actions { display: none !important; }
  body[data-page="trip_report"] .site-frame,
  body[data-page="trip_report"] .page-shell,
  .trip-story { width: auto; max-width: none; margin: 0; padding: 0; }
  .trip-story { display: block; }
  .trip-story-hero { grid-template-columns: 1fr; min-height: 0; padding: 0; }
  .trip-story-hero:has(> .trip-story-hero__support) { gap: 0; }
  .trip-story-hero:has(> .trip-story-hero__support) > .trip-story-hero__copy {
    grid-column: 1;
    grid-row: 1;
  }
  .trip-story-hero:has(> .trip-story-hero__support) > .trip-story-hero__support {
    grid-column: 1;
    grid-row: 2;
  }
  .trip-story-hero:has(> .trip-story-hero__support) > .trip-story-hero__media {
    grid-column: 1;
    grid-row: 3;
    margin-top: 1.5rem;
  }
  .trip-story-hero:has(> .trip-story-hero__support) > .trip-story-overview-map {
    grid-column: 1;
    grid-row: 4;
  }
  .trip-story-hero h1 { max-width: none; font-size: 38pt; }
  .trip-story-deck { font-size: 16pt; }
  .trip-story-hero__media { min-height: 0; }
  .trip-story-hero-photo img { min-height: 125mm; max-height: 125mm; }
  .trip-story-overview-map { break-before: page; }
  .trip-story-overview-map > img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 245mm;
    margin-inline: auto;
    aspect-ratio: auto;
    object-fit: contain;
  }
  .trip-story-intro,
  .trip-methods,
  .trip-island-hero,
  .trip-tide-story,
  .trip-site-brief,
  .trip-glossary { grid-template-columns: 1fr 1fr; }
  .trip-story-intro > header,
  .trip-community-story { grid-column: 1; }
  .trip-story-intro__copy,
  .trip-story-caution { grid-column: 2; }
  .trip-community-story { grid-row: 2; }
  .trip-story-caution { grid-row: 2; align-self: start; }
  .trip-island-chapter { break-before: page; padding: 10mm 0; }
  .trip-island-hero {
    gap: 8mm;
    margin: 0;
    border-right: 0;
    background: transparent;
  }
  .trip-island-hero__copy { padding: 0; color: var(--ink); }
  .trip-island-hero__copy::after { display: none; }
  .trip-island-hero h2 { color: var(--ink); }
  .trip-island-hero .trip-section-label { color: var(--accent); }
  .trip-island-hero .trip-section-label > span { color: var(--ink-soft); }
  .trip-island-hero .trip-island-narrative { color: var(--ink-soft); }
  .trip-island-visuals { padding: 0; background: transparent; }
  .trip-island-hero .trip-island-stat strong,
  .trip-island-hero .trip-island-stat > span { color: var(--ink); }
  .trip-story-intro,
  .trip-methods { break-before: page; }
  .trip-methods { grid-template-rows: auto minmax(0, 1fr); }
  .trip-methods .trip-section-heading { grid-column: 1; grid-row: 1; }
  .trip-methods > ol { grid-column: 2; grid-row: 1 / span 2; }
  .trip-methods-feature { grid-column: 1; grid-row: 2; align-self: end; }
  .trip-methods-feature__media { gap: 1.5mm; }
  .trip-methods-view {
    min-height: 0;
    aspect-ratio: 12 / 5;
    box-shadow: none;
  }
  .trip-methods-view__video,
  .trip-methods-view__motion-toggle,
  .trip-methods-view__legend,
  .trip-model-compare__texture,
  .trip-model-compare__wireframe,
  .trip-model-compare__control,
  .trip-model-compare__divider,
  .trip-model-compare__handle { display: none !important; }
  .trip-methods-view img.trip-model-compare__print {
    display: block !important;
    clip-path: none;
  }
  .trip-methods-view__labels,
  .trip-methods-view__title { opacity: 1 !important; }
  .trip-methods-view__title {
    top: 1.4mm;
    left: 1.5mm;
    padding: 0.7mm 1mm;
    font-size: 8pt;
    text-shadow: none;
  }
  .trip-model-label {
    padding: 0.6mm 0.9mm;
    font-size: 8pt;
    text-shadow: none;
  }
  .trip-model-label small { font-size: 8pt; }
  .trip-model-label::after { filter: none; }
  .trip-methods-feature figcaption { font-size: 9pt; line-height: 1.35; }
  .trip-methods-feature figcaption strong { font-size: 12pt; }
  .trip-methods-feature figcaption a { margin-top: 1.5mm; }
  .trip-island-hero h2 { font-size: 48pt; }
  .trip-island-narrative { font-size: 9.5pt; line-height: 1.38; }
  .trip-tide-story { grid-template-columns: 1fr; break-inside: auto; }
  .trip-tide-story__copy { break-inside: avoid; }
  .tidal-datum-figure-grid--report { grid-template-columns: 1fr 1fr; break-inside: avoid; }
  .tidal-connection-point-index__item { padding: 1.2mm; }
  .tidal-datum-report-notes { font-size: 6.5pt; }
  .trip-site-brief { break-before: page; break-inside: avoid; }
  .trip-field-note-feature {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
    gap: 0;
    margin-top: 3mm;
    break-inside: avoid;
  }
  .trip-field-note-feature__copy { padding: 2.5mm 3mm; font-size: 8.5pt; line-height: 1.35; }
  .trip-field-note-feature__copy h4 { margin: 0.5mm 0 1mm; font-size: 13pt; }
  .trip-field-note-feature__eyebrow { font-size: 7.5pt; }
  .trip-field-note-legend { gap: 2mm; margin: 1.5mm 0; }
  .trip-field-note-legend li { gap: 1.2mm; font-size: 8pt; }
  .trip-field-note-legend li > span { width: 4.8mm; height: 4.8mm; font-size: 7.5pt; }
  .trip-field-note-feature__meta { padding-top: 1.5mm; font-size: 8pt; }
  .trip-field-note-marker {
    width: 6mm;
    height: 6mm;
    border-width: 0.4mm;
    box-shadow: 0 0.6mm 2mm rgba(3, 12, 20, 0.5);
    font-size: 8pt;
    text-shadow: none;
  }
  .trip-site-technical > summary { display: none; }
  .trip-site-technical__body,
  .trip-site-technical:not([open]) > .trip-site-technical__body { display: block !important; }
  .trip-research { break-before: page; }
  .trip-research ol { grid-template-columns: 1fr; }
}

.synthesis-report {
  width: min(100%, 86rem);
  margin: 0 auto;
  color: var(--ink);
}

.synthesis-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(18rem, 0.65fr);
  gap: clamp(1rem, 3vw, 2.2rem);
  align-items: end;
  padding: clamp(1.2rem, 4vw, 3rem) 0 clamp(1.3rem, 4vw, 2.7rem);
  border-bottom: 1px solid rgba(30, 49, 84, 0.16);
}

.synthesis-hero__copy {
  max-width: 74ch;
}

.synthesis-hero h1 {
  max-width: 13ch;
  margin: 0.35rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 4.1rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
}

.synthesis-hero__copy > p:last-of-type {
  max-width: 68ch;
  margin: 1rem 0 0;
  color: var(--ink-soft);
  font-size: 1.12rem;
  line-height: 1.48;
}

.synthesis-status,
.synthesis-hero__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 1.25rem 0 0;
}

.synthesis-status div,
.synthesis-hero__facts div {
  min-width: 0;
  padding: 0.68rem 0.72rem;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(98.2% 0.018 82 / 0.72);
}

.synthesis-status dt,
.synthesis-hero__facts span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.synthesis-status dd,
.synthesis-hero__facts strong {
  display: block;
  margin: 0.2rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.32rem;
  font-weight: 400;
  line-height: 1;
  overflow-wrap: anywhere;
}

.synthesis-hero__facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.synthesis-hero__facts div {
  min-height: 6rem;
}

.synthesis-hero__facts strong {
  font-size: 2.8rem;
}

.synthesis-layout {
  display: grid;
  grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 2.25rem);
  align-items: start;
  padding: clamp(1rem, 3vw, 2rem) 0 3rem;
}

.synthesis-index {
  position: sticky;
  top: 5.75rem;
  display: grid;
  gap: 1rem;
  max-height: calc(100vh - 7rem);
  overflow: auto;
  padding: 0.9rem;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(98.4% 0.016 82 / 0.9);
}

.synthesis-index nav,
.synthesis-policy ul {
  display: grid;
  gap: 0.22rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.synthesis-index a {
  display: block;
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(30, 49, 84, 0.1);
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 800;
  line-height: 1.24;
  text-decoration: none;
}

.synthesis-index a:hover,
.synthesis-index a:focus-visible {
  color: var(--accent);
  outline: 2px solid rgba(24, 59, 115, 0.24);
  outline-offset: 2px;
}

.synthesis-policy {
  padding-top: 0.8rem;
  border-top: 1px solid rgba(30, 49, 84, 0.14);
}

.synthesis-policy li {
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.38;
}

.synthesis-body {
  min-width: 0;
}

.synthesis-note {
  max-width: 72ch;
  margin-bottom: 1.1rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(96.8% 0.021 87 / 0.82);
}

.synthesis-note p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.48;
}

.synthesis-section {
  padding: clamp(1.35rem, 3vw, 2.25rem) 0;
  border-top: 1px solid rgba(30, 49, 84, 0.14);
}

.synthesis-section:first-child {
  border-top: 0;
}

.synthesis-section__head {
  max-width: 72ch;
  margin-bottom: 0.9rem;
}

.synthesis-section__head h2 {
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 2.45rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.05;
}

.synthesis-paragraph {
  max-width: 72ch;
  margin: 0.85rem 0 0;
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.58;
}

.synthesis-cites {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-left: 0.18rem;
  vertical-align: baseline;
}

.synthesis-cite {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: 0.12rem 0.4rem;
  border: 1px solid rgba(30, 49, 84, 0.22);
  border-radius: 999px;
  background: oklch(97.6% 0.018 82);
  color: var(--accent);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.1;
}

.synthesis-cite:hover,
.synthesis-cite:focus-visible {
  border-color: rgba(24, 59, 115, 0.42);
  background: oklch(94.8% 0.03 82);
  outline: 2px solid rgba(24, 59, 115, 0.22);
  outline-offset: 2px;
}

.synthesis-figure-stack {
  display: grid;
  gap: 0.9rem;
  margin: 1.1rem 0;
}

.synthesis-figure {
  margin: 0;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(98.2% 0.016 82);
}

.synthesis-figure img,
.synthesis-figure__svg svg {
  display: block;
  width: 100%;
  height: auto;
}

.synthesis-figure > a {
  display: block;
}

.synthesis-figure figcaption {
  display: grid;
  gap: 0.28rem;
  padding: 0.72rem 0.85rem 0.82rem;
  border-top: 1px solid rgba(30, 49, 84, 0.12);
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.36;
}

.synthesis-figure figcaption strong {
  color: var(--ink);
  font-size: 0.92rem;
}

.synthesis-tide-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  padding: 0.8rem;
}

.synthesis-tide-grid a {
  display: grid;
  gap: 0.45rem;
  color: var(--ink);
  font-weight: 800;
  text-decoration: none;
}

.synthesis-tide-grid img {
  border: 1px solid rgba(30, 49, 84, 0.12);
  background: oklch(99% 0.012 82);
}

.synthesis-findings {
  display: grid;
  gap: 0.72rem;
  margin: 1rem 0;
}

.synthesis-finding {
  max-width: 74ch;
  padding: 0.9rem 1rem;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(98.3% 0.014 82 / 0.74);
}

.synthesis-finding h4,
.synthesis-subsection h3,
.synthesis-media-panel h3,
.synthesis-table-block h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.28rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.18;
}

.synthesis-finding p {
  margin: 0.45rem 0 0;
  color: var(--ink-soft);
  line-height: 1.52;
}

.synthesis-subsection {
  margin: 1.25rem 0 0;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(30, 49, 84, 0.12);
}

.synthesis-table-block {
  margin: 1.15rem 0 0;
}

.synthesis-table-block > header {
  max-width: 74ch;
  margin-bottom: 0.65rem;
}

.synthesis-table-block > header p:last-child {
  margin: 0.38rem 0 0;
  color: var(--ink-soft);
  line-height: 1.45;
}

.synthesis-table-wrap {
  max-height: min(74vh, 44rem);
  overflow: auto;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(98.5% 0.014 82);
}

.synthesis-data-table {
  width: 100%;
  min-width: 48rem;
  border-collapse: collapse;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.34;
}

.synthesis-data-table th,
.synthesis-data-table td {
  padding: 0.52rem 0.62rem;
  border-bottom: 1px solid rgba(30, 49, 84, 0.1);
  text-align: left;
  vertical-align: top;
}

.synthesis-data-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: oklch(95.8% 0.022 82);
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.synthesis-data-table td span,
.synthesis-data-table td small {
  display: block;
  margin-top: 0.16rem;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.3;
}

.synthesis-data-table a {
  color: var(--accent);
  font-weight: 800;
}

.synthesis-media-panel {
  margin-top: 1rem;
}

.synthesis-photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.8rem;
  margin-top: 0.65rem;
}

.synthesis-photo-grid figure {
  display: grid;
  gap: 0.42rem;
  min-width: 0;
  margin: 0;
}

.synthesis-photo-grid img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(30, 49, 84, 0.14);
  background: oklch(96.5% 0.016 82);
  object-fit: cover;
}

.synthesis-photo-grid figcaption {
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.34;
}

.synthesis-photo-grid figcaption strong {
  display: block;
  color: var(--ink);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.synthesis-empty {
  color: var(--muted);
  line-height: 1.45;
}

.synthesis-source-popout {
  width: min(44rem, calc(100vw - 2rem));
  max-height: min(42rem, calc(100vh - 2rem));
  margin: auto;
  padding: 0;
  border: 1px solid rgba(30, 49, 84, 0.18);
  background: var(--surface-strong);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(16, 25, 40, 0.24);
}

.synthesis-source-popout:popover-open {
  position: fixed;
  inset: 50% auto auto 50%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  transform: translate(-50%, -50%);
}

.synthesis-source-popout::backdrop {
  background: rgba(16, 25, 40, 0.62);
}

.synthesis-source-popout__head {
  display: flex;
  gap: 1rem;
  align-items: start;
  justify-content: space-between;
  padding: 1rem 1rem 0.85rem;
  border-bottom: 1px solid rgba(30, 49, 84, 0.12);
}

.synthesis-source-popout__head h2 {
  margin: 0.18rem 0 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.16;
}

.synthesis-source-popout__head button {
  display: inline-grid;
  flex: 0 0 auto;
  width: 2.1rem;
  height: 2.1rem;
  place-items: center;
  border: 1px solid rgba(30, 49, 84, 0.18);
  border-radius: 999px;
  background: oklch(98.1% 0.016 82);
  color: var(--ink);
  cursor: pointer;
}

.synthesis-source-popout__body {
  display: grid;
  gap: 0.8rem;
  padding: 1rem;
  overflow: auto;
}

.synthesis-source-popout__body p {
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.5;
}

.synthesis-source-popout blockquote {
  margin: 0;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(30, 49, 84, 0.12);
  background: oklch(96.8% 0.02 82);
  color: var(--ink);
  font-size: 0.94rem;
  line-height: 1.48;
}

.synthesis-source-popout dl {
  display: grid;
  gap: 0.45rem;
  margin: 0;
}

.synthesis-source-popout dl div {
  display: grid;
  grid-template-columns: 5.4rem minmax(0, 1fr);
  gap: 0.5rem;
}

.synthesis-source-popout dt {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.synthesis-source-popout dd {
  margin: 0;
  color: var(--ink-soft);
  overflow-wrap: anywhere;
}

.synthesis-source-popout__link {
  justify-self: start;
  color: var(--accent);
  font-weight: 900;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

@media (max-width: 980px) {
  .synthesis-hero,
  .synthesis-layout {
    grid-template-columns: 1fr;
  }

  .synthesis-index {
    position: static;
    max-height: none;
  }

  .synthesis-index nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .synthesis-status,
  .synthesis-hero__facts,
  .synthesis-tide-grid {
    grid-template-columns: 1fr;
  }

  .synthesis-hero h1 {
    font-size: 3rem;
  }

  .synthesis-hero__facts strong {
    font-size: 2.35rem;
  }

  .synthesis-section__head h2 {
    font-size: 2rem;
  }
}

@media (max-width: 640px) {
  .synthesis-index nav {
    grid-template-columns: 1fr;
  }

  .synthesis-source-popout__head {
    align-items: start;
  }

  .synthesis-source-popout dl div {
    grid-template-columns: 1fr;
  }

  .synthesis-hero h1 {
    font-size: 2.35rem;
  }
}

@media (max-width: 980px) {
  .overview-stage--media .overview-hero--logbook {
    grid-template-columns: 1fr;
    gap: 1rem;
    min-height: auto;
    padding-bottom: 2rem;
  }

  .overview-hero__media-board {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.72fr);
  }

  .overview-hero__media-board--islands {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .overview-dashboard--logbook {
    grid-template-columns: 1fr;
    grid-template-areas:
      "maps";
  }

  .field-log-panel--brief {
    width: min(100%, 42rem);
  }

}

@media (max-width: 640px) {
  .overview-stage--media {
    padding-bottom: 0.8rem;
  }

  .overview-stage--home::after {
    background:
      linear-gradient(90deg, rgba(9, 25, 43, 0.7) 0%, rgba(9, 25, 43, 0.42) 100%),
      linear-gradient(0deg, rgba(9, 25, 43, 0.74) 0%, rgba(9, 25, 43, 0.14) 62%, rgba(9, 25, 43, 0.34) 100%);
  }

  .overview-stage--media .overview-stage__image {
    height: 32rem;
  }

  .overview-stage--media .overview-hero--logbook {
    padding: 1.35rem 0.9rem 1.25rem;
  }

  .overview-stage--media .overview-hero__copy {
    width: min(100%, 31rem);
  }

  .home-brief-overlay {
    justify-self: start;
    max-width: 32rem;
  }

  .overview-stage--home .overview-hero--logbook {
    gap: 1.15rem;
    padding: 0.95rem 0.9rem 0.72rem;
  }

  .overview-stage--home .hero__title {
    font-size: 3.1rem;
  }

  .overview-stage--home .hero__lede {
    max-width: 29ch;
    font-size: 1rem;
    line-height: 1.42;
  }

  .overview-stage--home .hero__funding {
    max-width: 34ch;
    margin-top: 0.58rem;
    font-size: 0.82rem;
    line-height: 1.4;
  }

  .overview-stage--home .field-log-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    width: 100%;
    margin-top: 0.7rem;
  }

  .overview-stage--home .field-log-metrics > a,
  .overview-stage--home .field-log-metrics > span {
    min-height: 3.1rem;
    padding: 0.48rem 0.58rem;
    font-size: 0.88rem;
  }

  .overview-stage--home .field-log-metrics strong {
    font-size: 1.28rem;
  }

  .overview-stage--home .home-brief-overlay {
    gap: 0.55rem;
    margin-top: 0;
    max-width: 29rem;
  }

  .overview-stage--home .home-brief-overlay__title {
    font-size: 1.3rem;
  }

  .overview-stage--home .home-brief-overlay p {
    font-size: 1rem;
    line-height: 1.48;
  }

  .overview-stage--home .home-brief-overlay ul {
    gap: 0.28rem;
    padding-left: 0.95rem;
  }

  .overview-stage--home .home-brief-overlay li {
    font-size: 0.95rem;
    line-height: 1.42;
  }

  .overview-hero__media-board,
  .overview-hero__media-board--islands,
  .overview-photo-strip,
  .home-context-map-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .overview-geo-plate {
    grid-column: 1 / -1;
    min-height: 9.5rem;
  }

  .overview-mini-photo-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .overview-mini-photo,
  .overview-island-chip {
    min-height: 5.8rem;
  }

  .overview-photo-strip__item,
  .overview-photo-strip__item:nth-child(2),
  .overview-photo-strip__item:nth-child(4) {
    min-height: 9.2rem;
  }

  .overview-stage--home .overview-dashboard--logbook {
    padding: 0.5rem 0.8rem 0.7rem;
  }

  .overview-stage--home .home-context-map-grid {
    gap: 0.45rem;
  }

  .overview-stage--home .home-context-map-card {
    min-height: auto;
  }

  .overview-stage--home .home-context-map-card__canvas {
    min-height: 6.5rem;
  }

  .overview-stage--home .home-context-map-card figcaption {
    display: grid;
    align-content: start;
    align-items: baseline;
    gap: 0.14rem;
    min-height: 3.15rem;
    padding: 0.45rem 0.5rem 0.5rem;
    font-size: 0.75rem;
    letter-spacing: 0.025em;
  }

  .overview-stage--home .home-context-map-card figcaption strong {
    font-size: 1rem;
  }

  .site-index-card__satellite,
  .tidal-datum-card__media {
    min-height: 5.8rem;
  }

  .overview-stage--daily-distilled {
    max-width: 100%;
    overflow-x: clip;
  }

  .overview-stage--daily-distilled .overview-hero--logbook {
    min-height: 12rem;
    padding: 1.15rem 0.9rem 1.25rem;
  }

  .overview-stage--daily-distilled .hero__title {
    font-size: 3rem;
  }

  .daily-log-rail {
    grid-auto-columns: minmax(13rem, 68vw);
  }

  .daily-log-card--distilled {
    min-height: auto;
  }

  .daily-log-atlas__content {
    margin-top: auto;
    padding-top: clamp(5.25rem, 17vh, 8.5rem);
  }

	  .daily-log-filter-sheet,
	  .daily-log-bottom-rail,
	  .daily-log-rail,
	  .daily-calendar,
	  .daily-calendar__weeks,
	  .sites-atlas-shell,
	  .sites-atlas-browser,
	  .sites-island-row,
	  .sites-rail-frame,
	  .sites-site-rail {
	    width: 100%;
    max-width: 100%;
	    min-width: 0;
	  }
	
	  .daily-calendar {
	    gap: 0.42rem;
	  }
	
	  .daily-calendar__legend {
	    gap: 0.36rem;
	  }
	
	  .daily-calendar__weekday-row {
	    display: none;
	  }
	
	  .daily-calendar-week {
	    grid-template-columns: 1fr;
	    gap: 0.34rem;
	    overflow: visible;
	    padding-bottom: 0.24rem;
	    scroll-padding-inline: 0.04rem;
	    scrollbar-color: rgba(255, 252, 246, 0.28) transparent;
	  }
	
	  .daily-calendar-week__label {
	    display: flex;
	    align-items: baseline;
	    gap: 0.46rem;
	    min-height: 0;
	    width: max-content;
	    padding: 0.42rem 0.56rem;
	  }
	
	  .daily-calendar-week__label strong {
	    font-size: 0.96rem;
	  }
	
	  .daily-calendar-week__grid {
	    grid-template-columns: repeat(2, minmax(0, 1fr));
	    min-width: 0;
	  }
	
	  .daily-calendar-day {
	    min-height: 7.8rem;
	  }

	  .daily-calendar-day--empty {
	    display: none;
	  }
	
	  .daily-calendar-day__copy {
	    padding: 0.5rem;
	  }
	
	  .daily-calendar-day strong {
	    font-size: 0.78rem;
	  }
	
	  .daily-log-island-select {
    display: flex;
    grid-template-columns: none;
    grid-auto-flow: initial;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
  }

  .daily-log-island-select button {
    flex: 0 0 min(8.7rem, 38vw);
    min-height: 3.02rem;
    scroll-snap-align: start;
  }

  .overview-stage--sites-atlas .overview-content-shell {
    padding-top: clamp(3.8rem, 14vh, 7rem);
  }

  .sites-atlas-tools {
    grid-template-columns: 1fr;
    gap: 0.52rem;
  }

  .sites-atlas-island-index {
    justify-content: flex-start;
  }

  .sites-island-row {
    --sites-row-height: 7.77rem;
    grid-template-columns: 1fr;
    gap: 0.46rem;
    padding: 0;
  }

  .sites-island-map-card {
    width: 100%;
    height: var(--sites-row-height);
    min-height: 0;
  }

  .sites-rail-frame {
    --sites-rail-card-width: max(9.8rem, 48vw);
    --sites-rail-card-height: var(--sites-row-height);
    padding-inline: 2.7rem;
    overflow: visible;
  }

  .sites-site-rail {
    grid-auto-columns: var(--sites-rail-card-width);
  }

  .site-card--distilled {
    height: var(--sites-rail-card-height);
    min-height: 0;
  }

  .sites-rail-button {
    width: 2.45rem;
    height: 2.45rem;
  }
}

.overview-stage--tidal .overview-hero__copy {
  width: min(34rem, 100%);
}

.overview-stage--tidal .hero__lede {
  max-width: 42ch;
}

.overview-stage--tidal .overview-content-shell {
  margin-top: auto;
  padding-top: clamp(5.4rem, 13vh, 8.5rem);
}

.tidal-datum-atlas__content {
  width: min(100%, 74rem);
}

.tidal-datum-shell {
  display: grid;
  gap: 0.68rem;
  min-width: 0;
}

.tidal-datum-island-select {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tidal-datum-panel {
  display: grid;
  gap: 0.84rem;
  min-width: 0;
  border: 1px solid rgba(255, 252, 246, 0.28);
  border-radius: 0.52rem;
  background: rgba(255, 252, 246, 0.94);
  box-shadow: 0 20px 46px rgba(5, 14, 24, 0.24);
  padding: clamp(0.78rem, 1.4vw, 1.05rem);
}

.tidal-datum-panel[hidden],
.tidal-point-row[hidden] {
  display: none;
}

.tidal-datum-panel__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.9rem;
  align-items: start;
  min-width: 0;
}

.tidal-datum-panel__head h2,
.tidal-point-comparison__head h3,
.tidal-datum-note-popout h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
}

.tidal-datum-panel__head h2 {
  font-size: clamp(1.7rem, 2.3vw, 2.35rem);
  line-height: 1.04;
}

.tidal-datum-panel__head p {
  max-width: 70ch;
  margin: 0.28rem 0 0;
  color: var(--ink-soft);
  font-size: 0.94rem;
  line-height: 1.42;
}

.tidal-datum-note-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.42rem;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.86);
  color: var(--accent);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  padding: 0.58rem 0.8rem;
  text-transform: uppercase;
}

.tidal-datum-note-button:hover,
.tidal-datum-note-button:focus-visible {
  border-color: rgba(24, 59, 115, 0.45);
  background: var(--accent);
  color: var(--surface-strong);
  outline: 0;
}

.tidal-datum-note-button:focus-visible,
.tidal-point-filter-row button:focus-visible {
  box-shadow: 0 0 0 3px rgba(255, 252, 246, 0.9), 0 0 0 5px rgba(24, 59, 115, 0.4);
}

.tidal-datum-note-popout {
  width: min(30rem, calc(100vw - 1.5rem));
  border: 1px solid rgba(30, 49, 84, 0.22);
  border-radius: 0.48rem;
  background: var(--surface-strong);
  box-shadow: 0 24px 70px rgba(16, 25, 40, 0.28);
  color: var(--ink-soft);
  padding: 1rem;
}

.tidal-datum-note-popout:popover-open {
  display: grid;
  gap: 0.52rem;
}

.tidal-datum-note-popout h3 {
  font-size: 1.45rem;
  line-height: 1.1;
}

.tidal-datum-note-popout p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.42;
}

.tidal-datum-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.52rem;
  margin: 0;
}

.tidal-datum-metrics div {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
  border: 1px solid rgba(30, 49, 84, 0.12);
  border-radius: 0.42rem;
  background: rgba(245, 240, 231, 0.76);
  padding: 0.72rem 0.78rem;
}

.tidal-datum-metrics dt {
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 850;
  letter-spacing: 0.08em;
  line-height: 1.05;
  text-transform: uppercase;
}

.tidal-datum-metrics dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: clamp(1.18rem, 1.55vw, 1.5rem);
  font-variant-numeric: tabular-nums;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.08;
}

.tidal-datum-plot-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 0.64rem;
  min-width: 0;
}

.tidal-datum-figure {
  gap: 0.45rem;
  min-width: 0;
  margin: 0;
  border: 1px solid rgba(30, 49, 84, 0.13);
  border-radius: 0.48rem;
  background: rgba(251, 248, 242, 0.88);
  padding: 0.55rem;
  box-shadow: none;
}

.tidal-datum-figure .gps-datum-figure__image {
  border-color: rgba(30, 49, 84, 0.16);
  border-radius: 0.32rem;
  background: var(--surface-strong);
}

.tidal-datum-figure img {
  min-width: 0;
}

.tidal-datum-figure--connection img {
  min-width: 0;
}

.tidal-datum-figure figcaption {
  padding: 0 0.08rem;
  font-size: 0.8rem;
  line-height: 1.34;
}

.tidal-point-comparison {
  display: grid;
  gap: 0.56rem;
  border-top: 1px solid rgba(30, 49, 84, 0.12);
  padding-top: 0.78rem;
}

.tidal-point-comparison__head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.72rem;
  align-items: end;
  justify-content: space-between;
}

.tidal-point-comparison__head h3 {
  font-size: 1.42rem;
  line-height: 1.08;
}

.tidal-point-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
}

.tidal-point-filter-row button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.34rem;
  min-height: 2.1rem;
  border: 1px solid rgba(30, 49, 84, 0.16);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.72);
  color: var(--ink-soft);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 850;
  padding: 0.42rem 0.62rem;
}

.tidal-point-filter-row button span {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

.tidal-point-filter-row button:hover,
.tidal-point-filter-row button:focus-visible,
.tidal-point-filter-row button.is-active {
  border-color: rgba(24, 59, 115, 0.4);
  background: var(--accent);
  color: var(--surface-strong);
  outline: 0;
}

.tidal-point-filter-row button:hover span,
.tidal-point-filter-row button:focus-visible span,
.tidal-point-filter-row button.is-active span {
  color: rgba(255, 252, 246, 0.72);
}

.tidal-point-list {
  display: grid;
  gap: 0.42rem;
}

.tidal-point-row {
  display: grid;
  grid-template-columns: minmax(8.4rem, 0.36fr) minmax(0, 1fr) minmax(11rem, 0.44fr);
  gap: 0.72rem;
  align-items: center;
  min-width: 0;
  border: 1px solid rgba(30, 49, 84, 0.12);
  border-radius: 0.4rem;
  background: rgba(255, 252, 246, 0.78);
  padding: 0.62rem 0.7rem;
}

.tidal-point-row__measure {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
}

.tidal-point-row__measure strong {
  color: var(--accent);
  font-family: var(--font-display);
  font-size: 1.52rem;
  font-variant-numeric: tabular-nums;
  font-weight: 400;
  line-height: 1;
}

.tidal-point-row__measure strong.is-below {
  color: #7b5d2e;
}

.tidal-point-axis {
  position: relative;
  display: block;
  width: 100%;
  height: 0.42rem;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(123, 93, 46, 0.2), rgba(24, 59, 115, 0.16));
}

.tidal-point-axis__datum {
  position: absolute;
  top: -0.22rem;
  bottom: -0.22rem;
  left: 50%;
  width: 2px;
  background: rgba(30, 49, 84, 0.5);
}

.tidal-point-axis__mark {
  position: absolute;
  top: 50%;
  left: var(--offset-position, 50%);
  width: 0.72rem;
  height: 0.72rem;
  border: 2px solid var(--surface-strong);
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 3px 8px rgba(24, 59, 115, 0.28);
  transform: translate(-50%, -50%);
}

.tidal-point-row__copy {
  display: grid;
  gap: 0.16rem;
  min-width: 0;
}

.tidal-point-row__tag {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.tidal-point-row__copy h4 {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 0.98rem;
  font-weight: 800;
  line-height: 1.18;
}

.tidal-point-row__copy p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.26;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.tidal-point-row__meta {
  display: grid;
  gap: 0.26rem;
  margin: 0;
}

.tidal-point-row__meta div {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  gap: 0.32rem;
  align-items: baseline;
  min-width: 0;
}

.tidal-point-row__meta dt {
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tidal-point-row__meta dd {
  margin: 0;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 0.74rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.18;
  text-overflow: ellipsis;
}

.tidal-datum-empty {
  margin: 0;
  border: 1px dashed rgba(30, 49, 84, 0.2);
  border-radius: 0.42rem;
  background: rgba(255, 252, 246, 0.56);
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0.78rem;
}

@media (max-width: 1100px) {
  .tidal-datum-plot-grid {
    grid-template-columns: 1fr;
  }

  .tidal-datum-figure img,
  .tidal-datum-figure--connection img {
    min-width: 0;
  }

  .tidal-point-row {
    grid-template-columns: minmax(8rem, 0.38fr) minmax(0, 1fr);
  }

  .tidal-point-row__meta {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid rgba(30, 49, 84, 0.1);
    padding-top: 0.48rem;
  }
}

@media (max-width: 760px) {
  .overview-stage--tidal .overview-content-shell {
    padding-top: clamp(6.8rem, 22vh, 10.5rem);
  }

  .tidal-datum-panel__head {
    grid-template-columns: 1fr;
  }

  .tidal-datum-note-button {
    justify-self: start;
  }

  .tidal-datum-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tidal-datum-figure-grid--live .tidal-datum-figure--record img {
    min-width: 34rem;
  }

  .tidal-point-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .tidal-point-row__meta {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .tidal-datum-island-select button {
    flex-basis: min(9.3rem, 44vw);
  }

  .tidal-datum-panel {
    border-radius: 0.44rem;
    padding: 0.66rem;
  }

  .tidal-datum-metrics {
    gap: 0.42rem;
  }

  .tidal-datum-metrics div {
    padding: 0.62rem;
  }

  .tidal-datum-figure {
    padding: 0.42rem;
  }

  .tidal-datum-figure-grid--live .tidal-datum-figure--record img {
    min-width: 31rem;
  }

  .tidal-point-filter-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.14rem;
  }

  .tidal-point-filter-row button {
    flex: 0 0 auto;
  }
}

/* Tidal Datums v2: compact analytical overlay */
.overview-stage--tidal {
  min-height: calc(100svh - var(--nav-height));
  background: oklch(22% 0.044 252);
}

.overview-stage--tidal::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(5, 14, 24, 0.12) 0%, rgba(5, 14, 24, 0.2) 32%, rgba(5, 14, 24, 0.72) 100%),
    linear-gradient(90deg, rgba(5, 14, 24, 0.38) 0%, rgba(5, 14, 24, 0.1) 52%, rgba(5, 14, 24, 0.44) 100%);
}

.overview-stage--tidal .overview-stage__image {
  height: 100%;
  min-height: calc(100svh - var(--nav-height));
}

.overview-stage--tidal .overview-hero__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.overview-stage--tidal .overview-hero--logbook {
  position: relative;
  z-index: 2;
  min-height: clamp(10.5rem, 23vh, 15.5rem);
  padding: clamp(1.25rem, 2.8vw, 2.1rem) clamp(1rem, 2.4vw, 2rem) clamp(1rem, 2.4vh, 1.8rem);
}

.overview-stage--tidal .overview-hero__copy {
  width: min(34rem, 100%);
}

.overview-stage--tidal .hero__title {
  max-width: 9ch;
  font-size: clamp(2.85rem, 5vw, 4.1rem);
}

.overview-stage--tidal .hero__lede {
  max-width: 34ch;
}

.tidal-datum-island-select {
  display: grid;
  grid-template-columns: repeat(4, minmax(4.8rem, 1fr));
  gap: 0.34rem;
  width: min(26rem, 100%);
}

.tidal-datum-island-select button {
  min-height: 2.75rem;
  border-color: rgba(255, 252, 246, 0.24);
  background: rgba(6, 22, 34, 0.54);
  color: rgba(255, 252, 246, 0.86);
  box-shadow: none;
  padding: 0.42rem 0.54rem;
  text-align: center;
}

.tidal-datum-island-select button:hover,
.tidal-datum-island-select button:focus-visible,
.tidal-datum-island-select button.is-active {
  border-color: rgba(255, 252, 246, 0.68);
  background: rgba(255, 252, 246, 0.92);
  color: var(--accent);
  outline: 2px solid rgba(255, 252, 246, 0.42);
  outline-offset: 2px;
}

.overview-stage--tidal .overview-content-shell {
  position: relative;
  z-index: 3;
  width: min(100%, 88rem);
  margin: 0 auto;
  padding: 0 clamp(0.8rem, 1.8vw, 1.8rem) clamp(0.9rem, 1.8vw, 1.35rem);
}

.tidal-datum-atlas__content {
  width: min(100%, 88rem);
}

.tidal-datum-shell {
  display: grid;
  min-width: 0;
}

.tidal-datum-panel {
  display: grid;
  gap: clamp(0.52rem, 1vw, 0.78rem);
  min-width: 0;
  border: 1px solid rgba(255, 252, 246, 0.34);
  border-radius: 0.32rem;
  background: rgba(5, 16, 27, 0.34);
  box-shadow: 0 16px 32px rgba(5, 14, 24, 0.24);
  padding: clamp(0.62rem, 1vw, 0.86rem);
}

.tidal-datum-panel[hidden] {
  display: none;
}

.tidal-datum-panel__head {
  display: grid;
  grid-template-columns: minmax(8rem, 0.32fr) minmax(0, 1fr);
  gap: 0.72rem;
  align-items: center;
  min-width: 0;
}

.tidal-datum-panel__title {
  min-width: 0;
}

.tidal-datum-panel__title .section-kicker {
  margin: 0 0 0.22rem;
  color: rgba(255, 252, 246, 0.78);
}

.tidal-datum-panel__title h2,
.tidal-datum-note-popout h3,
.tidal-point-popover h3 {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: 0;
}

.tidal-datum-panel__title h2 {
  color: rgba(255, 252, 246, 0.96);
  font-size: clamp(1.75rem, 2.4vw, 2.35rem);
  line-height: 0.98;
}

.tidal-datum-panel__actions {
  display: flex;
  gap: 0.48rem;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}

.tidal-datum-figure__head span,
.tidal-connection-legend,
.tidal-point-popover dt {
  color: var(--muted);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.08;
  text-transform: uppercase;
}

.tidal-datum-note-button {
  min-height: 2.28rem;
  border: 1px solid rgba(255, 252, 246, 0.28);
  border-radius: 999px;
  background: rgba(6, 22, 34, 0.54);
  color: rgba(255, 252, 246, 0.9);
  cursor: pointer;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  padding: 0.5rem 0.68rem;
  text-transform: uppercase;
  white-space: nowrap;
}

.tidal-datum-note-button:hover,
.tidal-datum-note-button:focus-visible {
  border-color: rgba(255, 252, 246, 0.68);
  background: rgba(255, 252, 246, 0.92);
  color: var(--accent);
  outline: 2px solid rgba(255, 252, 246, 0.42);
  outline-offset: 2px;
}

.tidal-datum-note-popout,
.tidal-point-popover {
  width: min(28rem, calc(100vw - 1.5rem));
  border: 1px solid rgba(30, 49, 84, 0.22);
  border-radius: 0.38rem;
  background: var(--surface-strong);
  box-shadow: 0 18px 42px rgba(16, 25, 40, 0.26);
  color: var(--ink-soft);
  padding: 0.86rem;
}

.tidal-datum-note-popout:popover-open,
.tidal-point-popover:popover-open {
  display: grid;
  gap: 0.48rem;
}

.tidal-datum-note-popout p,
.tidal-point-popover p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.38;
}

.tidal-point-popover {
  position: fixed;
  inset: auto auto auto auto;
  max-width: 23rem;
}

.tidal-point-popover h3 {
  font-size: 1.22rem;
  line-height: 1.08;
}

.tidal-point-popover dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.42rem 0.64rem;
  margin: 0;
}

.tidal-point-popover dd {
  margin: 0.08rem 0 0;
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 800;
  line-height: 1.18;
}

.tidal-datum-summary {
  margin: 0;
}

.tidal-datum-provenance {
  display: grid;
  gap: 0.46rem;
  min-width: 0;
  border: 1px solid rgba(255, 252, 246, 0.2);
  border-radius: 0.28rem;
  background: rgba(255, 252, 246, 0.14);
  padding: clamp(0.62rem, 1vw, 0.78rem);
}

.tidal-datum-provenance__label {
  margin: 0;
  color: rgba(255, 252, 246, 0.68);
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.tidal-datum-provenance__value {
  color: rgba(255, 252, 246, 0.96);
  font-size: clamp(1.38rem, 2.2vw, 1.92rem);
  font-variant-numeric: tabular-nums;
  font-weight: 900;
  line-height: 0.96;
  text-shadow: 0 2px 16px rgba(5, 14, 24, 0.28);
}

.tidal-datum-comparison {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 16rem));
  gap: 0.42rem;
  margin: 0;
}

.tidal-datum-comparison div {
  display: grid;
  gap: 0.12rem;
  min-width: 0;
  border: 1px solid rgba(255, 252, 246, 0.2);
  border-radius: 0.24rem;
  background: rgba(6, 22, 34, 0.26);
  padding: 0.48rem 0.56rem;
}

.tidal-datum-comparison dt {
  color: rgba(255, 252, 246, 0.68);
  font-size: 0.56rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
}

.tidal-datum-comparison dd {
  margin: 0;
  overflow: hidden;
  color: rgba(255, 252, 246, 0.94);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  line-height: 1.16;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tidal-datum-method {
  max-width: 82ch;
  margin: 0;
}

.tidal-datum-method summary {
  display: inline-flex;
  gap: 0.34rem;
  align-items: center;
  color: rgba(255, 252, 246, 0.78);
  cursor: pointer;
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.1;
  list-style: none;
  text-shadow: 0 1px 10px rgba(5, 14, 24, 0.28);
  text-transform: uppercase;
}

.tidal-datum-method summary::-webkit-details-marker {
  display: none;
}

.tidal-datum-method summary::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-0.08rem);
  transition: transform 160ms ease;
}

.tidal-datum-method[open] summary::after {
  transform: rotate(225deg) translate(-0.08rem, -0.02rem);
}

.tidal-datum-method summary:focus-visible {
  border-radius: 0.18rem;
  outline: 2px solid rgba(255, 252, 246, 0.42);
  outline-offset: 3px;
}

.tidal-datum-method p {
  margin: 0.46rem 0 0;
  color: rgba(255, 252, 246, 0.78);
  font-size: 0.75rem;
  font-weight: 650;
  line-height: 1.36;
  text-shadow: 0 1px 10px rgba(5, 14, 24, 0.28);
}

.tidal-datum-figure-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
  gap: 0.58rem;
  min-width: 0;
}

.tidal-datum-figure {
  display: grid;
  gap: 0.38rem;
  align-content: start;
  min-width: 0;
  margin: 0;
  border: 1px solid rgba(30, 49, 84, 0.15);
  border-radius: 0.28rem;
  background: rgba(255, 252, 246, 0.88);
  padding: 0.48rem;
}

.tidal-datum-figure--record {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.tidal-datum-figure__head {
  display: flex;
  gap: 0.42rem;
  align-items: baseline;
  justify-content: space-between;
  min-width: 0;
}

.tidal-datum-figure__head strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  line-height: 1.16;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tidal-datum-figure__footer {
  display: flex;
  justify-content: flex-start;
  min-width: 0;
}

.tidal-datum-figure__image {
  display: grid;
  align-items: center;
  min-width: 0;
  min-height: clamp(12.5rem, 26vh, 17rem);
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.1);
  background: var(--surface-strong);
}

.tidal-datum-figure__image[data-tidal-plot-scroll] {
  overscroll-behavior-inline: contain;
  scrollbar-color: rgba(24, 59, 115, 0.48) transparent;
}

.tidal-datum-figure__image[data-overflowing]:focus-visible {
  border-color: rgba(24, 59, 115, 0.55);
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

.tidal-datum-scroll-hint {
  display: none;
  gap: 0.38rem;
  align-items: center;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.68rem;
  font-weight: 750;
  line-height: 1.35;
}

.tidal-datum-scroll-hint span {
  color: var(--accent);
  font-size: 0.9rem;
  line-height: 1;
}

.tidal-datum-scroll-hint[hidden] {
  display: none !important;
}

.tidal-datum-figure__image img {
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: contain;
}

.tidal-datum-figure figcaption {
  padding: 0;
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.72rem;
  line-height: 1.34;
}

.tidal-connection-reference {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
  align-items: center;
  color: var(--ink-soft);
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  line-height: 1.1;
}

.tidal-connection-reference__item {
  display: inline-flex;
  gap: 0.28rem;
  align-items: center;
  min-height: 1.32rem;
}

.tidal-connection-reference__item i {
  width: 1.05rem;
  border-top: 2px solid var(--line-color, var(--accent));
}

.tidal-connection-reference__item--logger {
  --line-color: #1b6c7a;
}

.tidal-connection-plot {
  position: relative;
  min-height: clamp(12.5rem, 26vh, 17rem);
  overflow: hidden;
  border: 1px solid rgba(30, 49, 84, 0.1);
  background:
    linear-gradient(90deg, rgba(30, 49, 84, 0.08) 1px, transparent 1px) 0 0 / 16.66% 100%,
    linear-gradient(180deg, rgba(30, 49, 84, 0.08) 1px, transparent 1px) 0 0 / 100% 25%,
    rgba(255, 252, 246, 0.94);
}

.tidal-connection-axis-label {
  position: absolute;
  left: 0.52rem;
  z-index: 2;
  color: var(--muted);
  font-size: 0.66rem;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
}

.tidal-connection-axis-label--top {
  top: 0.45rem;
}

.tidal-connection-axis-label--bottom {
  bottom: 0.45rem;
}

.tidal-connection-line {
  position: absolute;
  left: 3.6rem;
  right: 0.72rem;
  top: var(--line-y);
  z-index: 1;
  border-top: 2px solid var(--line-color, var(--accent));
  color: var(--line-color, var(--accent));
  transform: translateY(-50%);
}

.tidal-connection-line span,
.tidal-connection-line strong {
  display: inline-flex;
  align-items: center;
  max-width: 45%;
  background: rgba(255, 252, 246, 0.92);
  font-size: 0.68rem;
  line-height: 1;
  padding: 0 0.18rem;
}

.tidal-connection-line span {
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.tidal-connection-line strong {
  font-variant-numeric: tabular-nums;
  font-weight: 900;
}

.tidal-connection-line--logger {
  --line-color: #1b6c7a;
  border-top-width: 1.5px;
}

.tidal-connection-offset {
  position: absolute;
  top: var(--offset-top);
  left: var(--point-x);
  z-index: 2;
  width: 3px;
  height: var(--offset-height);
  min-height: 0.8rem;
  border-radius: 999px;
  background: repeating-linear-gradient(
    to bottom,
    var(--point-color, var(--accent)) 0 4px,
    transparent 4px 8px
  );
  opacity: 0.74;
  transform: translateX(-50%);
}

.tidal-connection-envelope {
  position: absolute;
  top: var(--envelope-top);
  left: var(--point-x);
  z-index: 3;
  width: 2px;
  height: var(--envelope-height);
  min-height: 0.52rem;
  background: var(--point-color, var(--accent));
  opacity: 0.78;
  transform: translateX(-50%);
}

.tidal-connection-envelope::before,
.tidal-connection-envelope::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 0.72rem;
  border-top: 2px solid currentColor;
  color: var(--point-color, var(--accent));
  transform: translateX(-50%);
}

.tidal-connection-envelope::before {
  top: 0;
}

.tidal-connection-envelope::after {
  bottom: 0;
}

.tidal-connection-envelope.is-clipped-top::before,
.tidal-connection-envelope.is-clipped-bottom::after {
  width: 0.92rem;
  border-top-style: double;
}

.tidal-connection-point {
  position: absolute;
  top: var(--point-y);
  left: var(--point-x);
  z-index: 4;
  display: grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
  transform: translate(-50%, -50%);
}

.tidal-connection-point span,
.tidal-connection-legend__item i {
  display: block;
  position: relative;
  width: 0.78rem;
  height: 0.78rem;
  border: 2px solid rgba(255, 252, 246, 0.96);
  background: var(--point-color, var(--accent));
  box-shadow: 0 2px 8px rgba(5, 14, 24, 0.24);
}

.tidal-connection-point::before {
  content: "";
  position: absolute;
  inset: 0.08rem;
  border: 1px solid rgba(30, 49, 84, 0.2);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.34);
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 150ms ease, transform 150ms ease;
}

.tidal-connection-point:hover::before,
.tidal-connection-point:focus-visible::before {
  opacity: 1;
  transform: scale(1);
}

.tidal-connection-point:hover span,
.tidal-connection-point:focus-visible span {
  outline: 2px solid rgba(24, 59, 115, 0.52);
  outline-offset: 3px;
}

.tidal-connection-point--notch,
.tidal-connection-envelope--notch,
.tidal-connection-offset--notch,
.tidal-connection-legend__item--notch {
  --point-color: #183b73;
}

.tidal-connection-point--waterline,
.tidal-connection-envelope--waterline,
.tidal-connection-offset--waterline,
.tidal-connection-legend__item--waterline {
  --point-color: #ba623e;
}

.tidal-connection-point--reef-flat,
.tidal-connection-envelope--reef-flat,
.tidal-connection-offset--reef-flat,
.tidal-connection-legend__item--reef-flat {
  --point-color: #1b6c7a;
}

.tidal-connection-point--control,
.tidal-connection-envelope--control,
.tidal-connection-offset--control,
.tidal-connection-legend__item--control {
  --point-color: #5c4a86;
}

.tidal-connection-point--notch span,
.tidal-connection-legend__item--notch i {
  border-radius: 999px;
}

.tidal-connection-point--waterline span,
.tidal-connection-legend__item--waterline i {
  border-radius: 0.12rem;
  transform: rotate(45deg);
}

.tidal-connection-point--reef-flat span,
.tidal-connection-legend__item--reef-flat i {
  border-radius: 0.1rem;
}

.tidal-connection-point--control span,
.tidal-connection-legend__item--control i {
  border-color: var(--point-color);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.98);
}

.tidal-connection-point--control span::before,
.tidal-connection-point--control span::after,
.tidal-connection-legend__item--control i::before,
.tidal-connection-legend__item--control i::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  background: var(--point-color);
  transform: translate(-50%, -50%);
}

.tidal-connection-point--control span::before,
.tidal-connection-legend__item--control i::before {
  width: 0.54rem;
  height: 2px;
}

.tidal-connection-point--control span::after,
.tidal-connection-legend__item--control i::after {
  width: 2px;
  height: 0.54rem;
}

.tidal-connection-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
  align-items: center;
  justify-content: flex-start;
  max-width: 100%;
}

.tidal-connection-legend__item {
  display: inline-flex;
  gap: 0.24rem;
  align-items: center;
  min-height: 1.35rem;
  border: 1px solid rgba(30, 49, 84, 0.12);
  border-radius: 999px;
  background: rgba(255, 252, 246, 0.9);
  color: var(--ink-soft);
  padding: 0.24rem 0.42rem;
}

.tidal-connection-legend__item i {
  width: 0.58rem;
  height: 0.58rem;
  border-width: 1.5px;
  box-shadow: none;
}

.tidal-datum-figure-grid--report {
  align-items: start;
  gap: 0.72rem;
}

.tidal-datum-figure-grid--report .tidal-datum-figure {
  border-radius: 0;
  background: rgba(255, 252, 246, 0.96);
}

.tidal-datum-figure-grid--report .tidal-datum-figure__image {
  min-height: 0;
  aspect-ratio: 8 / 5;
  overflow: hidden;
}

.tidal-datum-figure-grid--report .tidal-datum-figure__image img {
  height: auto;
  aspect-ratio: 8 / 5;
}

.tidal-connection-plot--report {
  min-height: 18rem;
}

.tidal-connection-point--static {
  width: 1.6rem !important;
  height: 1.6rem !important;
  cursor: default;
  pointer-events: none;
}

.tidal-connection-point--static::before { display: none; }

.tidal-connection-point-label {
  position: absolute;
  top: clamp(0.45rem, calc(var(--point-y) - 3rem), calc(100% - 2.8rem));
  left: clamp(0.45rem, calc(var(--point-x) - 1rem), calc(100% - 9.45rem));
  z-index: 6;
  display: grid;
  gap: 0.08rem;
  width: max-content;
  max-width: min(9rem, calc(100% - 0.9rem));
  padding: 0.25rem 0.36rem;
  border: 1px solid color-mix(in srgb, var(--point-color, var(--accent)) 55%, transparent);
  background: linear-gradient(135deg, rgba(255, 252, 246, 0.98), rgba(255, 252, 246, 0.88));
  box-shadow: 0 0.22rem 0.7rem rgba(12, 31, 51, 0.14);
  color: var(--ink);
  font-size: 0.7rem;
  line-height: 1.15;
  pointer-events: none;
}

.tidal-connection-point-label small {
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
}

.tidal-connection-point-label--control { --point-color: #5c4a86; }
.tidal-connection-point-label--waterline { --point-color: #ba623e; }
.tidal-connection-point-label--reef-flat { --point-color: #1b6c7a; }
.tidal-connection-point-label--notch { --point-color: #183b73; }

.tidal-connection-point-index {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin: 0;
  background: rgba(30, 49, 84, 0.12);
}

.tidal-connection-point-index__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.45rem;
  align-items: start;
  min-width: 0;
  padding: 0.45rem;
  background: rgba(255, 252, 246, 0.98);
}

.tidal-connection-point-index__item dt {
  display: grid;
  grid-template-columns: 0.62rem minmax(0, 1fr);
  gap: 0.32rem;
  align-items: start;
  min-width: 0;
  color: var(--ink);
  font-size: 0.7rem;
  font-weight: 750;
  line-height: 1.2;
}

.tidal-connection-point-index__item dt i {
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.1rem;
  border-radius: 999px;
  background: var(--point-color, var(--accent));
}

.tidal-connection-point-index__item dt small,
.tidal-connection-point-index__item dd span {
  display: block;
  margin-top: 0.12rem;
  color: var(--muted);
  font-size: 0.58rem;
  font-weight: 650;
  line-height: 1.2;
}

.tidal-connection-point-index__item dd {
  margin: 0;
  color: var(--ink);
  font-size: 0.66rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
  text-align: right;
}

.tidal-connection-point-index__item--control { --point-color: #5c4a86; }
.tidal-connection-point-index__item--waterline { --point-color: #ba623e; }
.tidal-connection-point-index__item--reef-flat { --point-color: #1b6c7a; }
.tidal-connection-point-index__item--notch { --point-color: #183b73; }

.tidal-datum-report-notes {
  display: grid;
  gap: 0.24rem;
  color: var(--ink-soft);
  font-size: 0.68rem;
  line-height: 1.3;
}

.tidal-datum-report-notes strong { color: var(--ink); }
.tidal-datum-report-notes p { margin: 0; }

.tidal-datum-empty {
  margin: 0;
  border: 1px dashed rgba(30, 49, 84, 0.2);
  border-radius: 0.28rem;
  background: rgba(255, 252, 246, 0.7);
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0.78rem;
}

@media (max-width: 1180px) {
  .tidal-datum-panel__head {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .tidal-datum-panel__actions {
    flex-wrap: wrap;
  }
}

/* Pair the 960 px tidal-grid fallback with the report frame's equivalent inline size. */
@container trip-report-shell (max-width: calc(58rem - 2px)) {
  .tidal-datum-figure-grid { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .tidal-datum-island-select {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    padding-bottom: 0.16rem;
  }

  .tidal-datum-island-select button {
    min-width: 0;
    min-height: 2.75rem;
  }

  .overview-stage--tidal .overview-hero--logbook {
    min-height: clamp(9.5rem, 22vh, 13rem);
    padding-top: clamp(0.9rem, 2vw, 1.25rem);
  }

  .tidal-datum-figure-grid {
    grid-template-columns: 1fr;
  }

  .tidal-datum-comparison {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tidal-datum-figure__image,
  .tidal-connection-plot {
    min-height: 15rem;
  }
}

@media (max-width: 640px) {
  .overview-stage--tidal .overview-hero--logbook {
    padding-inline: 0.8rem;
  }

  .overview-stage--tidal .hero__title {
    font-size: clamp(2.8rem, 14vw, 3.75rem);
  }

  .overview-stage--tidal .overview-content-shell {
    padding-inline: 0.66rem;
  }

  .tidal-datum-panel {
    padding: 0.56rem;
  }

  .tidal-datum-comparison {
    grid-template-columns: 1fr;
  }

  .tidal-datum-panel__head {
    grid-template-columns: 1fr;
  }

  .tidal-datum-panel__actions {
    justify-content: flex-start;
  }

  .tidal-datum-note-button {
    justify-self: start;
  }

  .tidal-datum-figure__head {
    display: grid;
  }

  .tidal-datum-figure__head strong {
    text-align: left;
    white-space: normal;
  }

  .tidal-datum-figure-grid--live .tidal-datum-figure__image {
    overflow-x: auto;
  }

  .tidal-datum-scroll-hint:not([hidden]) {
    display: flex;
  }

  .tidal-datum-figure-grid--live .tidal-datum-figure--record img {
    min-width: 34rem;
  }

  .tidal-connection-line {
    left: 0.72rem;
    right: 0.48rem;
    justify-content: flex-end;
  }

  .tidal-connection-line span {
    display: none;
  }

  .tidal-connection-line strong {
    max-width: none;
    font-size: 0.66rem;
  }

  .tidal-point-popover dl {
    grid-template-columns: 1fr;
  }

  .tidal-connection-point-index {
    grid-template-columns: 1fr;
  }

  .tidal-connection-point-label {
    display: none;
  }
}

@media print {
  .tidal-datum-scroll-hint {
    display: none !important;
  }

  .trip-island-tally--screen { display: none; }

  .trip-tide-story {
    display: block;
    break-before: page;
    break-inside: avoid;
    margin: 0;
    padding: 5mm;
  }

  .trip-rarotonga-evidence > div:last-child {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .trip-rarotonga-evidence > div:last-child ul {
    columns: 2;
    column-gap: 8mm;
  }

  .trip-rarotonga-evidence > div:last-child li,
  .trip-next-work li {
    break-inside: avoid-column;
    page-break-inside: avoid;
    -webkit-column-break-inside: avoid;
  }

  .trip-next-work {
    break-before: page;
    page-break-before: always;
  }

  .trip-next-work h3 {
    break-after: avoid;
    page-break-after: avoid;
  }

  .trip-research-sources {
    break-before: auto;
    page-break-before: auto;
  }

  .trip-tide-story__copy {
    display: grid;
    grid-template-columns: minmax(0, 1.14fr) minmax(0, 0.86fr);
    gap: 1.5mm 5mm;
    align-items: start;
    margin-bottom: 4mm;
  }

  .trip-tide-story__copy .trip-section-label,
  .trip-tide-story__copy h3,
  .trip-tide-story__copy > p:not(.trip-section-label):not(.trip-caution) {
    grid-column: 1;
  }

  .trip-tide-story__copy .trip-section-label { grid-row: 1; }
  .trip-tide-story__copy h3 {
    grid-row: 2;
    margin: 0;
    font-size: 18pt;
  }

  .trip-tide-story__copy > p:not(.trip-section-label):not(.trip-caution) {
    grid-row: 3;
    margin: 0;
    font-size: 8pt;
    line-height: 1.35;
  }

  .trip-tide-story__copy > dl {
    grid-column: 2;
    grid-row: 1 / span 3;
    gap: 1mm;
    align-self: stretch;
    margin: 0;
  }

  .trip-tide-story__copy > dl > div { padding: 2mm; }
  .trip-tide-story__copy > dl dt { font-size: 6.5pt; }
  .trip-tide-story__copy > dl dd { font-size: 10pt; }
  .trip-tide-story__copy > .trip-caution {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 6.5pt;
    line-height: 1.3;
  }

  .tidal-datum-figure-grid--report {
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    gap: 2mm;
    break-inside: avoid;
  }

  .tidal-datum-figure-grid--report .tidal-datum-figure {
    gap: 1.5mm;
    padding: 2mm;
  }

  .tidal-datum-figure-grid--report .tidal-datum-figure__image {
    min-height: 0;
    aspect-ratio: 8 / 5;
  }

  .tidal-datum-figure-grid--report .tidal-connection-plot--report {
    min-height: 58mm;
  }

  .trip-site-brief {
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr);
  }

  .trip-site-media {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    grid-column: 2;
    grid-row: 1 / span 3;
    gap: 3mm;
    margin-top: 0;
  }

  .trip-site-media--single {
    grid-template-columns: minmax(0, 1fr);
  }

  .trip-site-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 5mm;
    align-items: center;
    break-before: page;
    break-after: avoid;
    max-width: none;
    margin: 0 0 5mm;
    padding-top: 0;
    border-top: 0;
  }

  .trip-site-brief > header > div:first-child > span { background: var(--ink); }
  .trip-site-question { border-color: var(--accent); }
  .trip-site-question span { color: var(--accent); }

  .trip-site-heading .trip-section-label { grid-column: 1; }
  .trip-site-heading h3 {
    grid-column: 2;
    margin: 0;
    font-size: 24pt;
  }

  .trip-site-heading > p:last-child { display: none; }

  .trip-site-list { gap: 0; }
  .trip-site-list > .trip-site-brief:first-child { break-before: auto; }

  .trip-glossary {
    grid-template-columns: minmax(0, 0.55fr) minmax(0, 1.45fr);
  }

  .trip-glossary .trip-section-label {
    width: 100%;
  }

  .trip-glossary .trip-section-label .trip-field-symbol {
    width: 2rem;
    height: 2rem;
  }

  .tidal-connection-point-label { display: none; }
}

/* Immersive daily detail scrollytelling surface */
.daily-immersive-shell {
  --daily-glass: oklch(16% 0.025 215 / 0.66);
  --daily-glass-strong: oklch(12% 0.03 218 / 0.78);
  --daily-glass-line: oklch(82% 0.035 195 / 0.18);
  --daily-ink-light: oklch(97% 0.012 90);
  --daily-ink-muted: oklch(82% 0.022 205);
  --daily-cyan: oklch(78% 0.105 196);
  --daily-amber: oklch(74% 0.13 70);
  position: relative;
  isolation: isolate;
  min-height: 220svh;
  margin-top: calc(-1 * var(--nav-height));
  padding: calc(var(--nav-height) + 1rem) clamp(0.82rem, 2vw, 1.4rem) 8rem;
  color: var(--daily-ink-light);
  background: oklch(14% 0.03 215);
  overflow: clip;
}

html[data-page="daily"] {
  scroll-behavior: auto;
}

.daily-immersive-bg {
  position: fixed;
  inset: var(--nav-height) 0 0;
  z-index: -3;
  background: oklch(15% 0.035 215);
  pointer-events: none;
}

.daily-immersive-bg img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  filter: saturate(0.92) contrast(1.05);
  object-fit: cover;
  transition: opacity 520ms ease-out;
}

.daily-immersive-bg img.is-active {
  opacity: 1;
}

.daily-immersive-scrim {
  position: fixed;
  inset: var(--nav-height) 0 0;
  z-index: -2;
  background:
    linear-gradient(90deg, oklch(9% 0.026 220 / 0.84), oklch(10% 0.03 220 / 0.34) 43%, oklch(9% 0.026 220 / 0.72)),
    linear-gradient(180deg, oklch(9% 0.026 220 / 0.5), oklch(9% 0.026 220 / 0.18) 34%, oklch(9% 0.026 220 / 0.76));
  pointer-events: none;
}

.daily-immersive-head {
  position: relative;
  z-index: 18;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(0.8rem, 2vw, 1.3rem);
  align-items: start;
  max-width: min(74rem, calc(100vw - 2rem));
  margin: 0 auto;
  padding: 0.78rem 0.88rem;
  border: 1px solid var(--daily-glass-line);
  background: oklch(13% 0.028 220 / 0.58);
  box-shadow: 0 18px 46px oklch(8% 0.025 220 / 0.28);
  backdrop-filter: blur(18px) saturate(1.06);
}

.daily-header-context {
  display: flex;
  align-items: center;
  gap: 0.62rem;
  flex: 0 1 26rem;
  min-width: 0;
}

.daily-header-context__date {
  flex: 0 0 auto;
  color: color-mix(in oklch, var(--ink-soft) 72%, transparent);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.daily-header-search {
  flex: 1 1 16rem;
  min-width: 12rem;
  max-width: 22rem;
}

.daily-header-search input {
  min-height: 2.75rem;
  padding: 0.52rem 0.72rem;
  border-color: var(--line-strong);
  background: oklch(98% 0.011 80 / 0.92);
  color: var(--ink);
  font-size: 0.86rem;
}

.daily-immersive-head__back {
  align-self: center;
  color: var(--daily-cyan);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-decoration: none;
  text-transform: uppercase;
}

.daily-immersive-head p,
.daily-immersive-head h1 {
  margin: 0;
}

.daily-immersive-head p {
  color: var(--daily-ink-muted);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.daily-immersive-head h1 {
  margin-top: 0.12rem;
  color: var(--daily-ink-light);
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 3vw, 2.6rem);
  font-weight: 400;
  line-height: 1;
}

.daily-immersive-head dl {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 0.7rem;
  margin: 0;
}

.daily-immersive-head__tools {
  display: grid;
  gap: 0.58rem;
  justify-items: end;
  min-width: 0;
}

.daily-immersive-range {
  color: var(--daily-ink-muted);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-align: right;
  text-transform: uppercase;
}

.daily-immersive-head dt {
  color: var(--daily-ink-muted);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.daily-immersive-head dd {
  margin: 0.08rem 0 0;
  color: var(--daily-ink-light);
  font-family: var(--font-display);
  font-size: 1.22rem;
}

.daily-map-panel--instrument {
  --daily-map-panel-width: min(29rem, 34vw);
  --daily-map-panel-edge: clamp(0.8rem, 2vw, 1.35rem);
  --daily-map-panel-top-gap: 1rem;
  --daily-map-panel-bottom-gap: 0.72rem;
  --daily-map-focus-gap: clamp(0.62rem, 1.1vw, 0.9rem);
  --daily-map-focus-bottom-clearance: clamp(6.6rem, 10svh, 7.6rem);
  position: fixed;
  top: calc(var(--nav-height) + var(--daily-map-panel-top-gap));
  right: var(--daily-map-panel-edge);
  bottom: auto;
  z-index: 24;
  width: var(--daily-map-panel-width);
  min-width: 21rem;
  max-height: none;
  height: calc(100svh - var(--nav-height) - var(--daily-map-panel-top-gap) - var(--daily-map-panel-bottom-gap));
  min-height: 0;
  margin: 0;
  overflow: visible;
  pointer-events: auto;
}

.daily-map-panel--instrument .daily-map-shell {
  position: relative;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--daily-glass-line);
  background: oklch(15% 0.04 215 / 0.72);
  box-shadow: 0 18px 48px oklch(7% 0.028 220 / 0.34);
  backdrop-filter: blur(18px) saturate(1.08);
}

.daily-map-panel--instrument .daily-map-panel__head {
  top: 0.58rem;
  left: 0.58rem;
  right: 0.58rem;
  width: auto;
  padding: 0.48rem 0.54rem;
  border-color: oklch(92% 0.02 190 / 0.14);
  background: oklch(10% 0.028 220 / 0.66);
  color: var(--daily-ink-light);
  backdrop-filter: blur(14px) saturate(1.05);
}

.daily-map-panel--instrument .daily-map-panel__head h2 {
  color: var(--daily-ink-light);
  font-family: var(--font-display);
  font-size: 1.28rem;
}

.daily-map-panel--instrument .daily-map-panel__head span,
.daily-map-panel--instrument .section-kicker {
  color: var(--daily-cyan);
}

.daily-map-panel--instrument .daily-map-canvas {
  min-height: 0;
  background: oklch(21% 0.044 210);
}

.daily-map-panel--instrument .daily-map-canvas .leaflet-tile-pane {
  filter: saturate(1.04) contrast(1.04) brightness(0.9);
}

.daily-map-panel--instrument .daily-walker-marker span {
  border-color: oklch(15% 0.03 220 / 0.55);
  background: var(--daily-cyan);
  box-shadow:
    0 0 0 5px oklch(78% 0.105 196 / 0.18),
    0 9px 24px oklch(7% 0.03 220 / 0.36);
}

.daily-map-panel--instrument .daily-site-focus {
  position: absolute;
  top: 0;
  right: calc(100% + var(--daily-map-focus-gap));
  display: flex;
  flex-flow: column wrap;
  align-content: flex-end;
  align-items: stretch;
  justify-content: flex-start;
  width: min(
    56rem,
    max(
      9rem,
      calc(100vw - var(--daily-map-panel-width) - min(39rem, 48vw) - var(--daily-map-panel-edge) - clamp(6rem, 8vw, 8rem))
    )
  );
  max-width: calc(100vw - var(--daily-map-panel-width) - var(--daily-map-panel-edge) - 1rem);
  height: calc(100% - var(--daily-map-focus-bottom-clearance));
  max-height: calc(100% - var(--daily-map-focus-bottom-clearance));
  margin-top: 0;
  padding: 0;
  border: 0;
  gap: 0.62rem;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  overflow: visible;
  overscroll-behavior: contain;
  color: var(--daily-ink-light);
  pointer-events: none;
}

.daily-map-panel--instrument .daily-site-focus::-webkit-scrollbar {
  width: 0.48rem;
}

.daily-map-panel--instrument .daily-site-focus::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: oklch(78% 0.105 196 / 0.34);
}

.daily-map-panel--instrument:not(.is-unlocked) .daily-site-focus {
  display: flex;
}

.daily-map-panel--instrument .daily-site-focus[hidden] {
  display: none;
}

.daily-site-card {
  display: grid;
  flex: 0 0 auto;
  gap: 0.62rem;
  min-width: min(100%, 15rem);
  padding: 0.72rem;
  border: 1px solid oklch(93% 0.018 190 / 0.16);
  background: oklch(9% 0.026 218 / 0.42);
  box-shadow:
    inset 0 1px 0 oklch(98% 0.012 90 / 0.06),
    0 18px 48px oklch(7% 0.028 220 / 0.22);
  backdrop-filter: blur(14px) saturate(1.06);
  pointer-events: auto;
}

.daily-site-card[hidden] {
  display: none;
}

.daily-site-card--summary {
  position: absolute;
  left: 50%;
  bottom: clamp(0.72rem, 1.6vw, 1rem);
  z-index: 470;
  width: min(23rem, calc(100% - 1.2rem));
  min-width: min(15rem, calc(100% - 1.2rem));
  max-width: calc(100% - 1.2rem);
  padding: 0.58rem 0.62rem;
  transform: translateX(-50%);
}

.daily-map-panel--instrument .daily-map-shell .daily-site-card--summary {
  bottom: var(--daily-map-focus-bottom-clearance);
}

.daily-map-panel--instrument .daily-map-shell .daily-site-card--summary header {
  align-items: center;
  gap: 0.58rem;
}

.daily-map-panel--instrument .daily-map-shell .daily-site-card--summary h3 {
  display: -webkit-box;
  overflow: hidden;
  font-size: 1rem;
  line-height: 1.08;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.daily-map-panel--instrument .daily-map-shell .daily-site-card--summary a {
  align-self: center;
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.46rem 0.58rem;
  font-size: 0.66rem;
  line-height: 1;
  white-space: nowrap;
}

.daily-map-panel--instrument .daily-site-card header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: start;
}

.daily-map-panel--instrument .daily-site-card h3 {
  margin: 0;
  color: var(--daily-ink-light);
  font-size: 1.1rem;
}

.daily-map-panel--instrument .daily-site-card p {
  margin: 0;
  color: var(--daily-ink-muted);
  font-size: 0.82rem;
  line-height: 1.34;
}

.daily-map-panel--instrument .daily-site-card dl {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.daily-map-panel--instrument .daily-site-card dt {
  color: oklch(79% 0.032 205);
}

.daily-map-panel--instrument .daily-site-card dd {
  color: var(--daily-ink-light);
}

.daily-map-panel--instrument .daily-site-card a {
  border-color: oklch(74% 0.13 70 / 0.62);
  background: oklch(74% 0.13 70 / 0.16);
  color: var(--daily-amber);
}

.daily-site-card--model {
  width: min(100%, 22rem);
  max-width: min(22rem, 28vw);
}

.daily-site-card--samples {
  width: min(100%, 24rem);
  max-width: min(24rem, 30vw);
  max-height: min(42svh, 28rem);
  overflow: hidden;
}

.daily-site-card--samples > header > span {
  color: var(--daily-cyan);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.daily-site-model {
  position: relative;
  display: grid;
  min-height: 10.5rem;
  overflow: hidden;
  border: 1px solid oklch(92% 0.02 190 / 0.14);
  background: oklch(7% 0.026 220 / 0.24);
  backdrop-filter: blur(8px) saturate(1.04);
}

.daily-site-model[hidden] {
  display: none;
}

.daily-site-model__video {
  width: 100%;
  height: 100%;
  min-height: 10.5rem;
  object-fit: contain;
  background: oklch(7% 0.026 220 / 0.2);
}

.daily-site-model span {
  position: absolute;
  top: 0.55rem;
  left: 0.6rem;
  color: var(--daily-cyan);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.daily-site-samples {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.42rem;
}

.daily-site-samples[hidden] {
  display: none;
}

.daily-site-sample-card {
  display: grid;
  gap: 0.34rem;
  min-width: 0;
  border: 1px solid oklch(92% 0.02 190 / 0.13);
  background: oklch(12% 0.03 220 / 0.34);
  padding: 0.36rem;
  backdrop-filter: blur(8px) saturate(1.04);
}

.daily-site-sample-card img,
.daily-site-sample-card__empty {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  background: oklch(16% 0.032 205 / 0.28);
  object-fit: cover;
}

.daily-site-sample-card span {
  display: grid;
  gap: 0.04rem;
}

.daily-site-sample-card strong {
  color: var(--daily-ink-light);
  font-size: 0.72rem;
  line-height: 1.1;
}

.daily-site-sample-card small {
  color: var(--daily-ink-muted);
  font-size: 0.62rem;
  line-height: 1.1;
}

@media (min-width: 1480px) {
  .daily-map-panel--instrument .daily-site-card--model,
  .daily-map-panel--instrument .daily-site-card--samples {
    flex-basis: min(24rem, 25vw);
    max-width: min(24rem, 25vw);
  }

  .daily-map-panel--instrument .daily-site-card--samples {
    grid-template-rows: auto minmax(0, 1fr);
    max-height: min(35svh, 24rem);
  }

  .daily-map-panel--instrument .daily-site-card--samples .daily-site-samples {
    overflow: auto;
    padding-right: 0.1rem;
  }
}

.daily-timeline-panel {
  position: relative;
  z-index: 16;
  width: min(39rem, 48vw);
  min-width: min(100%, 26rem);
  margin: clamp(5rem, 16svh, 10rem) 0 0 clamp(0.2rem, 2vw, 2rem);
  padding-bottom: 42svh;
  pointer-events: none;
}

.daily-timeline-panel__head {
  position: sticky;
  top: calc(var(--nav-height) + 1rem);
  width: min(22rem, 100%);
  margin-bottom: 1rem;
  padding: 0.62rem;
  border: 1px solid var(--daily-glass-line);
  background: var(--daily-glass);
  box-shadow: 0 16px 40px oklch(7% 0.028 220 / 0.28);
  backdrop-filter: blur(16px) saturate(1.06);
  pointer-events: auto;
}

.daily-timeline-panel__head p {
  margin: 0.44rem 0 0;
  color: var(--daily-ink-muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.daily-timeline-panel .daily-story-search input {
  border-color: oklch(92% 0.02 190 / 0.16);
  background: oklch(10% 0.025 220 / 0.58);
  color: var(--daily-ink-light);
}

.daily-immersive-shell .daily-timeline {
  border-left: 1px solid oklch(82% 0.035 195 / 0.24);
  display: grid;
  min-height: 0;
  gap: clamp(0.72rem, 2.2svh, 1.25rem);
  padding-left: 0.78rem;
  pointer-events: auto;
}

.daily-immersive-shell .daily-timeline > li {
  position: relative;
  inset: auto;
  transform: none;
}

.daily-immersive-shell .daily-timeline > li:first-child,
.daily-immersive-shell .daily-timeline > li:has([data-timeline-unsynced="true"]) {
  transform: none;
  margin-top: 0;
}

.daily-note-event {
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--daily-glass-line);
  background: var(--daily-glass);
  color: var(--daily-ink-light);
  box-shadow: 0 22px 52px oklch(7% 0.028 220 / 0.3);
  opacity: 0.42;
  backdrop-filter: blur(18px) saturate(1.08);
  transform: translateY(0) scale(0.985);
  transition:
    opacity 180ms ease-out,
    border-color 180ms ease-out,
    background-color 180ms ease-out,
    transform 180ms ease-out;
}

.daily-note-event.is-active,
.daily-note-event:focus-within {
  border-color: oklch(78% 0.105 196 / 0.46);
  background: oklch(13% 0.03 220 / 0.78);
  opacity: 1;
  transform: translateY(-2px) scale(1);
}

.daily-note-event__rail {
  display: grid;
  align-items: start;
  padding: 0.78rem 0.16rem 0.78rem 0.58rem;
}

.daily-note-event__rail span {
  display: grid;
  width: 1.9rem;
  height: 1.9rem;
  place-items: center;
  border: 1px solid oklch(78% 0.105 196 / 0.36);
  border-radius: 999px;
  color: var(--daily-cyan);
  font-family: var(--font-display);
  font-size: 0.9rem;
  line-height: 1;
}

.daily-note-log summary {
  grid-template-columns: 4.1rem minmax(0, 1fr) auto;
  padding: 0.78rem 0.82rem;
}

.daily-scrolly-shell .daily-note-log summary,
.daily-immersive-shell .daily-note-log summary {
  grid-template-columns: 4.1rem minmax(0, 1fr) auto;
}

.daily-immersive-shell .daily-note-log summary {
  grid-template-columns: 4.1rem minmax(0, 1fr);
}

.daily-note-log__time {
  color: var(--daily-cyan);
}

.daily-note-log__label {
  color: var(--daily-ink-light);
}

.daily-note-log__text {
  color: var(--daily-ink-muted);
}

.daily-note-log__source {
  color: var(--daily-amber);
  text-align: right;
}

.daily-immersive-shell .daily-note-log__source {
  display: none;
}

.daily-transcript-grid {
  grid-column: 1 / -1;
}

.daily-transcript-panel,
.daily-transcript-grid section {
  border-color: oklch(92% 0.02 190 / 0.14);
  background: oklch(12% 0.026 220 / 0.7);
}

.daily-transcript-grid h3,
.daily-transcript-grid pre,
.daily-transcript-grid p,
.daily-word-diff {
  color: var(--daily-ink-muted);
}

.daily-note-log__paths {
  color: oklch(76% 0.026 205);
}

.daily-note-photos {
  grid-column: 1 / -1;
  grid-template-columns: repeat(auto-fit, minmax(7rem, 1fr));
}

.daily-note-photo button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.daily-note-photo img {
  border-color: oklch(92% 0.02 190 / 0.14);
  background: oklch(15% 0.03 220 / 0.8);
}

.daily-note-photo figcaption {
  color: var(--daily-ink-muted);
}

.daily-tide-strip {
  position: fixed;
  left: clamp(0.8rem, 2vw, 1.35rem);
  right: clamp(0.8rem, 2vw, 1.35rem);
  bottom: 0.72rem;
  z-index: 26;
  display: grid;
  grid-template-columns: minmax(9rem, 0.28fr) minmax(0, 1fr) minmax(9rem, 0.25fr);
  gap: 0.72rem;
  align-items: center;
  padding: 0.58rem 0.72rem;
  border: 1px solid var(--daily-glass-line);
  background: oklch(11% 0.026 220 / 0.78);
  box-shadow: 0 18px 50px oklch(7% 0.03 220 / 0.36);
  backdrop-filter: blur(18px) saturate(1.08);
}

.daily-tide-strip__readout,
.daily-tide-strip__meta {
  display: grid;
  gap: 0.1rem;
}

.daily-tide-strip__readout p,
.daily-tide-strip__meta span {
  margin: 0;
  color: var(--daily-ink-muted);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.daily-tide-strip__readout strong {
  color: var(--daily-cyan);
  font-family: var(--font-display);
  font-size: 1.36rem;
  font-weight: 400;
  line-height: 1;
}

.daily-tide-strip__readout p span {
  display: inline-block;
  margin-left: 0.38rem;
  color: var(--daily-cyan);
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

.daily-tide-strip__meta {
  justify-items: end;
  text-align: right;
}

.daily-tide-strip__chart {
  display: block;
  width: 100%;
  height: 4.2rem;
  overflow: visible;
}

.daily-tide-chart__mean {
  stroke: oklch(74% 0.13 70 / 0.58);
  stroke-dasharray: 8 7;
  stroke-width: 2;
}

.daily-tide-chart__line {
  stroke: var(--daily-cyan);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3.5;
}

.daily-tide-chart__line--muted {
  opacity: 0.24;
  stroke-width: 2.2;
}

.daily-tide-chart__line--active {
  opacity: 1;
  filter: drop-shadow(0 0 5px oklch(78% 0.105 196 / 0.18));
}

.daily-tide-chart__cursor {
  stroke: var(--daily-ink-light);
  stroke-width: 3;
}

.daily-tide-strip--empty .daily-tide-strip__chart {
  opacity: 0.25;
}

@media (prefers-reduced-motion: reduce) {
  .daily-immersive-bg img,
  .daily-note-event,
  .daily-site-card {
    transition-duration: 1ms;
    animation-duration: 1ms;
  }
}

@media (max-width: 1040px) {
  .daily-immersive-shell {
    padding-bottom: 2rem;
    overflow: visible;
  }

  .daily-immersive-bg,
  .daily-immersive-scrim {
    position: absolute;
    inset: 0;
  }

  .daily-immersive-head,
  .daily-map-panel--instrument,
  .daily-timeline-panel,
  .daily-tide-strip {
    width: auto;
    max-width: none;
  }

  .daily-immersive-head {
    grid-template-columns: 1fr;
  }

  .daily-immersive-head__tools {
    justify-items: stretch;
  }

  .daily-immersive-head dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .daily-immersive-range {
    text-align: left;
  }

  .daily-map-panel--instrument {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    height: auto;
    margin: 1rem 0 0;
    min-width: 0;
  }

  .daily-map-panel--instrument .daily-map-shell {
    height: min(54svh, 22rem);
  }

  .daily-map-panel--instrument .daily-site-focus,
  .daily-map-panel--instrument:not(.is-unlocked) .daily-site-focus {
    position: static;
    display: grid;
    width: auto;
    max-width: none;
    height: auto;
    max-height: none;
    margin-top: 0.72rem;
    grid-template-columns: 1fr;
    overflow: visible;
    pointer-events: auto;
  }

  .daily-map-panel--instrument .daily-site-card {
    max-width: none;
    max-height: none;
    min-width: 0;
    width: auto;
  }

  .daily-map-panel--instrument .daily-map-shell .daily-site-card--summary {
    bottom: 0.72rem;
    width: min(23rem, calc(100% - 1rem));
    max-width: calc(100% - 1rem);
  }

  .daily-timeline-panel {
    width: 100%;
    min-width: 0;
    margin: 1rem 0 0;
  }

  .daily-timeline-panel__head {
    top: calc(var(--nav-height) + 0.55rem);
    width: auto;
  }

  .daily-tide-strip {
    position: sticky;
    left: auto;
    right: auto;
    bottom: 0.55rem;
    grid-template-columns: 1fr;
    margin-top: 1rem;
  }

  .daily-tide-strip__meta {
    justify-items: start;
    text-align: left;
  }
}

@media (max-width: 900px) {
  body[data-page="daily"] .nav-shell {
    flex-wrap: wrap;
    padding-bottom: 0.58rem;
  }

  body[data-page="daily"] .daily-header-context {
    order: 5;
    flex: 1 0 100%;
    max-width: none;
    min-width: 0;
  }

  body[data-page="daily"] .daily-header-search {
    max-width: none;
  }
}

@media (max-width: 680px) {
  .daily-immersive-shell {
    padding-inline: 0.65rem;
  }

  .daily-immersive-head,
  .daily-timeline-panel__head,
  .daily-note-event,
  .daily-map-panel--instrument .daily-site-card,
  .daily-tide-strip {
    backdrop-filter: blur(12px) saturate(1.04);
  }

  .daily-note-event {
    grid-template-columns: 1fr;
  }

  .daily-note-event__rail {
    display: none;
  }

  .daily-note-log summary,
  .daily-immersive-shell .daily-note-log summary {
    grid-template-columns: 1fr;
  }

  .daily-note-log__source {
    text-align: left;
  }

  .daily-transcript-grid {
    grid-template-columns: 1fr;
  }

  .daily-site-samples {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Keep the rc.79 report plate authoritative after legacy datum rules above. */
@media screen {
  .trip-tide-story {
    display: block;
    margin: clamp(3.5rem, 7vw, 6.5rem) 0;
    padding: 0;
    border: 0;
    background: var(--trip-paper, #fffdfa);
  }

  .trip-tide-story__figures {
    min-width: 0;
    padding: 0;
    background: transparent;
  }

  .trip-tide-story .tidal-report-plate figure {
    display: block;
    min-width: 0;
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .trip-tide-story .tidal-report-plate figcaption {
    display: grid;
    min-height: 4.1rem;
    padding: 0 0.35rem;
    border: 0;
    background: transparent;
  }

  .trip-tide-story .trip-tide-story__title h3 {
    margin: 0.7rem 0 0;
    font-size: clamp(3.25rem, 4.35vw, 3.65rem);
    font-weight: 400;
    line-height: 0.96;
  }

  .trip-tide-story__explanation .trip-tide-story__datum-value {
    margin-top: 0.65rem;
    color: #0c6d7e;
    font-family: var(--font-body);
    font-size: 0.7rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  .trip-tide-story .tidal-report-plate {
    grid-template-columns: minmax(0, 1.95fr) minmax(22rem, 1.05fr);
  }

  .trip-tide-story .tidal-report-ruler__axis,
  .trip-tide-story .tidal-report-feature { left: 3.75rem; }

  .trip-tide-story .tidal-report-ruler__datum {
    left: 3.75rem;
    width: 6.1rem;
  }

  .trip-tide-story .tidal-report-ruler__datum-label {
    left: 10.25rem;
    max-width: calc(100% - 10.25rem);
  }

  .trip-tide-story .tidal-report-feature__leader {
    width: clamp(4.4rem, 5vw, 5.4rem);
  }

  .trip-tide-story .tidal-report-feature__label {
    left: clamp(4.9rem, 5.7vw, 6rem);
    width: clamp(7.5rem, 10vw, 10rem);
    font-size: 0.85rem;
  }

  .trip-tide-story .tidal-report-ruler__axis-label {
    left: -0.35rem;
    width: 3.7rem;
    font-size: 0.82rem;
    white-space: nowrap;
  }

  .trip-tide-story__stats dd { white-space: nowrap; }

  .trip-tide-story .tidal-report-feature {
    top: 0;
    height: 100%;
  }

  .trip-tide-story .tidal-report-feature__dot,
  .trip-tide-story .tidal-report-feature__leader,
  .trip-tide-story .tidal-report-feature__label { top: var(--point-y); }

  .trip-tide-story .tidal-report-feature__range {
    top: var(--envelope-top);
    height: var(--envelope-height);
  }
}

@media screen and (max-width: 760px) {
  .trip-tide-story .tidal-report-plate {
    grid-template-columns: minmax(0, 1fr);
  }

  .trip-tide-story .tidal-report-trace {
    padding-right: 0 !important;
  }

  .trip-tide-story .tidal-report-ruler {
    margin-top: 2rem !important;
    padding: 1.5rem 0 0 !important;
    border-top: 1px solid rgba(30, 49, 84, 0.34) !important;
    border-left: 0 !important;
  }

  .trip-tide-story .tidal-report-trace__key {
    align-items: flex-start;
    font-size: 0.64rem;
  }

  .trip-tide-story .tidal-report-ruler__axis,
  .trip-tide-story .tidal-report-feature { left: 54px; }

  .trip-tide-story .tidal-report-ruler__datum {
    left: 54px;
    width: 92px;
  }

  .trip-tide-story .tidal-report-ruler__datum-label {
    left: 152px;
    max-width: calc(100% - 152px);
  }

  .trip-tide-story .tidal-report-feature__leader { width: 72px; }

  .trip-tide-story .tidal-report-feature__label {
    left: 80px;
    width: calc(100% - 86px);
  }

  .trip-tide-story .tidal-report-feature__label strong,
  .trip-tide-story .tidal-report-feature__label b {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

@media screen and (max-width: 360px) {
  .trip-tide-story .trip-tide-story__stats {
    grid-template-columns: minmax(0, 1fr);
  }

  .trip-tide-story .trip-tide-story__stats > div {
    padding: 0.65rem 0;
    border-top: 1px solid rgba(30, 49, 84, 0.22);
    border-left: 0;
  }

  .trip-tide-story .trip-tide-story__stats dd { white-space: normal; }
}

/* Preserve the plotted datum relationships in Chromium's print cascade. */
@media print {
  .trip-tide-story .tidal-report-plate {
    display: grid;
    grid-template-columns: minmax(0, 1.95fr) minmax(48mm, 1.05fr);
    padding: 4mm 0;
  }

  .trip-tide-story .tidal-report-plate figure {
    display: block;
    min-width: 0;
    margin: 0;
    padding-top: 0;
    padding-bottom: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .trip-tide-story .tidal-report-plate figcaption {
    display: grid;
    gap: 1.2mm;
    min-height: 10mm;
    padding: 0 1mm;
    border: 0;
    background: transparent;
  }

  .trip-tide-story .tidal-report-plate figcaption strong {
    font-family: var(--font-body);
    font-size: 6pt;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .trip-tide-story .tidal-report-plate figcaption span {
    font-family: var(--font-display);
    font-size: 7pt;
    font-style: italic;
    line-height: 1.3;
  }

  .trip-tide-story .tidal-report-trace { padding-right: 4mm !important; }
  .trip-tide-story .tidal-report-ruler {
    padding-left: 4mm !important;
    border-left: 0.5pt solid rgba(30, 49, 84, 0.3) !important;
  }

  .trip-tide-story .tidal-report-trace__key {
    display: flex;
    gap: 3mm;
    align-items: center;
    justify-content: space-between;
    padding: 1.2mm 1mm 0;
    font-size: 5.5pt;
    line-height: 1.2;
  }

  .trip-tide-story .tidal-report-trace__key span:first-child {
    display: inline-flex;
    gap: 1.5mm;
    align-items: center;
  }

  .trip-tide-story .tidal-report-trace__key i {
    width: 6mm;
    border-top: 1.5pt solid #086b7a;
  }

  .trip-tide-story .tidal-report-ruler__plot {
    position: relative;
    min-height: 78mm;
    margin-top: 1mm;
    overflow: visible;
  }

  .trip-tide-story .tidal-report-ruler__axis {
    position: absolute;
    top: 3mm;
    bottom: 3mm;
    left: 12mm;
    width: 0.5pt;
    background: var(--ink);
  }

  .trip-tide-story .tidal-report-ruler__axis::before,
  .trip-tide-story .tidal-report-ruler__axis::after {
    content: "";
    position: absolute;
    left: -1.5mm;
    width: 3mm;
    border-top: 0.5pt solid var(--ink);
  }

  .trip-tide-story .tidal-report-ruler__axis::before { top: 0; }
  .trip-tide-story .tidal-report-ruler__axis::after { bottom: 0; }

  .trip-tide-story .tidal-report-ruler__axis-label {
    position: absolute;
    left: 0;
    width: 10mm;
    font-family: var(--font-display);
    font-size: 6pt;
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
  }

  .trip-tide-story .tidal-report-ruler__axis-label--top { top: 2mm; }
  .trip-tide-story .tidal-report-ruler__axis-label--bottom { bottom: 2mm; }
  .trip-tide-story .tidal-report-ruler__axis-label--zero { display: none; }

  .trip-tide-story .tidal-report-ruler__datum {
    position: absolute;
    top: var(--datum-y);
    left: 12mm;
    width: 20mm;
    border-top: 1pt solid #c45d34;
    transform: translateY(-50%);
  }

  .trip-tide-story .tidal-report-ruler__datum-label {
    position: absolute;
    top: var(--datum-y);
    left: 34mm;
    width: calc(100% - 34mm);
    color: #c45d34;
    font-family: var(--font-display);
    font-size: 6pt;
    line-height: 1.1;
    transform: translateY(-50%);
  }

  .trip-tide-story .tidal-report-feature {
    --point-color: #0c6d7e;
    position: absolute;
    top: 0;
    right: 0;
    left: 12mm;
    height: 100%;
    color: var(--point-color);
  }

  .trip-tide-story .tidal-report-feature--control { --point-color: #5d2898; }
  .trip-tide-story .tidal-report-feature--reef-flat { --point-color: #075b85; }

  .trip-tide-story .tidal-report-feature__dot,
  .trip-tide-story .tidal-report-feature__leader,
  .trip-tide-story .tidal-report-feature__label {
    position: absolute;
    top: var(--point-y);
  }

  .trip-tide-story .tidal-report-feature__dot {
    left: 0;
    z-index: 2;
    width: 2.8mm;
    height: 2.8mm;
    border: 0.75pt solid #fffdfa;
    border-radius: 50%;
    background: var(--point-color);
    transform: translate(-50%, -50%);
  }

  .trip-tide-story .tidal-report-feature__leader {
    left: 0;
    width: 18mm;
    border-top: 0.75pt solid var(--point-color);
  }

  .trip-tide-story .tidal-report-feature__label {
    left: 20mm;
    display: grid;
    gap: 0.5mm;
    width: calc(100% - 21mm);
    font-family: var(--font-display);
    font-size: 6.2pt;
    line-height: 1.08;
    transform: translateY(-50%);
  }

  .trip-tide-story .tidal-report-feature__label strong,
  .trip-tide-story .tidal-report-feature__label b {
    min-width: 0;
    font-weight: 700;
    overflow-wrap: anywhere;
  }

  .trip-tide-story .tidal-report-feature--label-above .tidal-report-feature__label {
    transform: translateY(calc(-50% - 7mm));
  }

  .trip-tide-story .tidal-report-feature--label-below .tidal-report-feature__label {
    transform: translateY(calc(-50% + 7mm));
  }

  .trip-tide-story .tidal-report-feature__range {
    position: absolute;
    top: var(--envelope-top);
    left: 0;
    z-index: 1;
    width: 0.5pt;
    height: var(--envelope-height);
    min-height: 2mm;
    background: var(--point-color);
  }

  .trip-tide-story .tidal-report-feature__range::before,
  .trip-tide-story .tidal-report-feature__range::after {
    content: "";
    position: absolute;
    left: -1.2mm;
    width: 2.4mm;
    border-top: 0.5pt solid var(--point-color);
  }

  .trip-tide-story .tidal-report-feature__range::before { top: 0; }
  .trip-tide-story .tidal-report-feature__range::after { bottom: 0; }

  .trip-tide-story .tidal-report-ruler > p {
    display: grid;
    grid-template-columns: 3mm minmax(0, 1fr);
    gap: 2mm;
    margin: 1mm 0 0;
    font-size: 5.5pt;
    line-height: 1.25;
  }

  .trip-tide-story .tidal-report-ruler > p > i {
    position: relative;
    width: 0.5pt;
    height: 4mm;
    margin-left: 1.3mm;
    background: var(--ink);
  }
}

/* rc.80 — Let the research program close the report as an editorial atlas spread. */
@media screen {
  .trip-research {
    position: relative;
    padding: clamp(3.5rem, 6vw, 6rem) clamp(1.25rem, 5vw, 5rem);
    border-top: 1px solid rgba(30, 49, 84, 0.2);
    border-bottom: 1px solid rgba(30, 49, 84, 0.2);
    background: var(--trip-paper);
    color: var(--ink);
  }

  .trip-research .trip-section-label { color: var(--accent); }
  .trip-research .trip-section-label > span { color: var(--ink-soft); }

  .trip-research .trip-section-heading {
    padding-bottom: clamp(1.5rem, 3vw, 2.4rem);
    border-bottom: 2px solid var(--ink);
  }

  .trip-research h2,
  .trip-research h3 { color: var(--ink); }

  .trip-research h2 {
    max-width: 22ch;
    margin-top: 0.8rem;
    font-size: clamp(3.4rem, 5.2vw, 5.2rem);
    line-height: 0.96;
  }

  .trip-research > ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    align-items: stretch;
    margin: 0;
    border-bottom: 2px solid var(--ink);
  }

  .trip-research > ol > li {
    min-width: 0;
    padding: clamp(1.35rem, 2.5vw, 2.25rem) clamp(1.4rem, 2.7vw, 2.6rem) clamp(1.6rem, 2.7vw, 2.5rem) 0;
    border: 0;
    background: transparent;
  }

  .trip-research > ol > li + li {
    padding-left: clamp(1.4rem, 2.7vw, 2.6rem);
    border-left: 1px solid rgba(30, 49, 84, 0.38);
  }

  .trip-research > ol > li > span {
    color: var(--ink);
    font-size: 0.72rem;
    letter-spacing: 0.11em;
  }

  .trip-research > ol > li h3 {
    max-width: 19ch;
    margin-top: 0.7rem;
    font-size: clamp(1.75rem, 2.45vw, 2.35rem);
    line-height: 1.03;
  }

  .trip-research > ol > li p {
    max-width: 47ch;
    margin: 1.05rem 0 0;
    color: var(--ink-soft);
    font-size: 0.98rem;
    line-height: 1.58;
  }

  .trip-next-work {
    display: grid;
    grid-template-columns: minmax(10.5rem, 0.72fr) minmax(0, 2.28fr);
    gap: clamp(1.25rem, 3vw, 3rem);
    align-items: start;
    margin: 0;
    padding: clamp(1.25rem, 2.5vw, 2rem) 0;
    border-top: 0;
    border-bottom: 2px solid var(--ink);
  }

  .trip-next-work h3,
  .trip-research-sources h3 {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 400;
    line-height: 1.08;
    text-transform: uppercase;
  }

  .trip-next-work h3::after,
  .trip-research-sources h3::after {
    content: "";
    display: block;
    width: 2.75rem;
    margin-top: 0.8rem;
    border-top: 3px solid #0c6d7e;
  }

  .trip-next-work ul {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    columns: auto;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .trip-next-work li {
    position: relative;
    min-width: 0;
    padding: 0.15rem clamp(1.15rem, 2.2vw, 2.1rem) 0 1.55rem;
    border: 0;
    color: var(--ink-soft);
    font-size: 0.92rem;
    line-height: 1.5;
  }

  .trip-next-work li + li { border-left: 1px solid rgba(30, 49, 84, 0.32); }

  .trip-next-work li::before {
    content: "";
    position: absolute;
    top: 0.62rem;
    left: 0.45rem;
    width: 0.34rem;
    height: 0.34rem;
    border-radius: 50%;
    background: #0c6d7e;
  }

  .trip-research-sources {
    display: grid;
    grid-template-columns: minmax(10.5rem, 0.72fr) minmax(0, 2.28fr);
    gap: clamp(1.25rem, 3vw, 3rem);
    align-items: start;
    margin: 0;
    padding-top: clamp(1.45rem, 3vw, 2.5rem);
    border-top: 0;
  }

  .trip-research-sources ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .trip-research-sources li {
    display: grid;
    grid-template-columns: minmax(10.5rem, 0.72fr) minmax(0, 2.28fr);
    gap: clamp(1rem, 2.4vw, 2.25rem);
    align-items: baseline;
    min-width: 0;
    padding: 0.72rem 0;
    border: 0;
    border-bottom: 1px dotted rgba(30, 49, 84, 0.34);
    background: transparent;
  }

  .trip-research-sources li:first-child { padding-top: 0; }
  .trip-research-sources a {
    color: var(--ink);
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.25;
    text-decoration-color: rgba(30, 49, 84, 0.38);
    text-underline-offset: 0.18em;
  }

  .trip-research .trip-research-sources li > span {
    color: var(--ink-soft);
    font-size: 0.84rem;
    line-height: 1.45;
  }

  .trip-research-sources a:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 0.22rem;
  }
}

/* rc.81 — Approved field-campaign synthesis: documentary scale and a decisive navy break. */
@media screen {
  .trip-story-intro {
    --campaign-navy: #06284d;
    --campaign-cyan: #19c4d1;
    --campaign-orange: #b85d3e;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    padding: 0;
    border-top: 3px solid var(--campaign-navy);
    border-bottom: 3px solid var(--campaign-navy);
    background: var(--trip-paper);
  }

  .trip-story-intro__column {
    display: grid;
    grid-template-rows: 22rem 25rem minmax(12rem, auto);
    min-width: 0;
  }

  .trip-story-intro__column--field {
    background: var(--campaign-navy);
    color: #fffaf0;
  }

  .trip-story-intro__column--outreach { background: var(--trip-paper); }

  .trip-story-intro__column > header,
  .trip-story-intro__copy {
    grid-column: 1;
    grid-row: 1;
  }

  .trip-story-intro__photo {
    grid-column: 1;
    grid-row: 2;
  }

  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    grid-column: 1;
    grid-row: 3;
  }

  .trip-story-intro__column > header,
  .trip-story-intro__copy {
    min-width: 0;
    padding: clamp(2.75rem, 4vw, 3.75rem) clamp(2.25rem, 4.3vw, 4rem) 1.75rem;
  }

  .trip-story-intro__column > header {
    position: relative;
    z-index: 2;
    overflow: visible;
  }

  .trip-story-intro__column--field .trip-section-label,
  .trip-story-intro__column--field .trip-section-label > span,
  .trip-story-intro__column--field .trip-field-symbol {
    color: var(--campaign-cyan);
  }

  .trip-story-intro h2 {
    max-width: 7.2ch;
    margin-top: 0.75rem;
    color: #fffaf0;
    font-size: clamp(4.15rem, 5.25vw, 5rem);
    letter-spacing: -0.025em;
    line-height: 0.92;
    text-wrap: balance;
  }

  .trip-story-intro__copy {
    align-content: start;
    padding-top: clamp(2.7rem, 3.8vw, 3.5rem);
  }

  .trip-story-intro__copy p {
    max-width: 58ch;
    margin: 0;
    color: var(--ink);
    font-size: clamp(0.98rem, 1.28vw, 1.08rem);
    line-height: 1.58;
    text-wrap: pretty;
  }

  .trip-story-intro__copy p + p { margin-top: 1.45rem; }

  .trip-story-intro__photo {
    position: relative;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
  }

  .trip-story-intro__photo--field::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    right: 0;
    height: 5rem;
    pointer-events: none;
    background: linear-gradient(to bottom, var(--campaign-navy), transparent);
  }

  .trip-story-intro__photo--outreach {
    padding-top: 0.7rem;
    border-top: 2px solid var(--campaign-orange);
  }

  .trip-story-intro__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .trip-story-intro__photo--field img { object-position: 50% 54%; }
  .trip-story-intro__photo--outreach img { object-position: 50% 50%; }

  .trip-story-intro__photo figcaption {
    min-height: 2.7rem;
    padding: 0.55rem clamp(1.5rem, 3vw, 2.6rem) 0.65rem;
    border: 0;
    background: transparent;
    color: var(--ink-soft);
    font-size: 0.72rem;
    line-height: 1.35;
  }

  .trip-story-intro__photo--field figcaption {
    color: rgba(255, 250, 240, 0.82);
  }

  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    align-content: center;
    align-items: start;
    gap: 1.1rem;
    min-width: 0;
    margin: 0;
    padding: 1.5rem clamp(2.25rem, 4.3vw, 4rem) 1.6rem;
    border: 0;
    border-top: 3px solid var(--campaign-navy);
    background: transparent;
  }

  .trip-story-intro .trip-story-caution {
    color: #fffaf0;
    border-top-color: rgba(25, 196, 209, 0.92);
    background: var(--campaign-navy);
  }

  .trip-story-intro .trip-community-story {
    color: var(--ink);
    background: var(--trip-paper);
  }

  .trip-story-intro .trip-community-story .trip-field-symbol,
  .trip-story-intro .trip-story-caution .trip-field-symbol {
    width: 2.5rem;
    height: 2.5rem;
    color: var(--accent);
  }

  .trip-story-intro .trip-story-caution .trip-field-symbol { color: var(--campaign-cyan); }

  .trip-story-intro .trip-community-story h3,
  .trip-story-intro .trip-story-caution h3 {
    margin: 0;
    font-size: clamp(1.55rem, 2vw, 1.9rem);
    font-weight: 400;
    line-height: 1.08;
  }

  .trip-story-intro .trip-story-caution h3 { color: var(--campaign-cyan); }

  .trip-story-intro .trip-community-story p,
  .trip-story-intro .trip-story-caution p {
    max-width: 51ch;
    margin: 0.65rem 0 0;
    font-size: 0.94rem;
    line-height: 1.5;
  }

  .trip-story-intro .trip-story-caution p { color: rgba(255, 250, 240, 0.95); }
}

@container trip-report-shell (max-width: calc(56.25rem - 2px)) {
  .trip-story-intro { grid-template-columns: minmax(0, 1fr); }
  .trip-story-intro__column { grid-template-rows: auto; }
  .trip-story-intro__column > header,
  .trip-story-intro__copy { min-height: 0; }
  .trip-story-intro__photo img {
    height: auto;
    aspect-ratio: 16 / 10;
  }
}

@media screen and (max-width: 900px) {
  .trip-story-intro { grid-template-columns: minmax(0, 1fr); }
  .trip-story-intro__column { grid-template-rows: auto; }
  .trip-story-intro__column > header,
  .trip-story-intro__copy { min-height: 0; }
  .trip-story-intro__photo img {
    height: auto;
    aspect-ratio: 16 / 10;
  }
}

@media screen and (max-width: 620px) {
  .trip-story-intro__column > header,
  .trip-story-intro__copy,
  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    padding-inline: 1.25rem;
  }

  .trip-story-intro__column > header { padding-block: 2.5rem 2.25rem; }
  .trip-story-intro h2 { font-size: clamp(3.55rem, 16vw, 4.65rem); }
  .trip-story-intro__copy { padding-block: 2.4rem; }
  .trip-story-intro__photo img { aspect-ratio: 4 / 3; }
  .trip-story-intro__photo figcaption { padding-inline: 1.25rem; }
  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    grid-template-columns: 2.35rem minmax(0, 1fr);
    gap: 0.85rem;
    padding-block: 1.4rem 1.5rem;
  }
  .trip-story-intro .trip-community-story .trip-field-symbol,
  .trip-story-intro .trip-story-caution .trip-field-symbol {
    width: 2.15rem;
    height: 2.15rem;
  }
}

@media screen and (max-width: 360px) {
  .trip-story-intro h2 { font-size: min(3.35rem, 15vw); }
}

@media print {
  .trip-story-intro {
    --campaign-navy: #06284d;
    --campaign-cyan: #0d8692;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    padding: 0;
    border: 0;
    background: white;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .trip-story-intro__column {
    display: grid;
    grid-template-rows: 68mm 58mm auto;
    min-width: 0;
  }

  .trip-story-intro__column--field {
    background: var(--campaign-navy);
    color: white;
  }

  .trip-story-intro__column > header,
  .trip-story-intro__copy {
    grid-column: 1;
    grid-row: 1;
  }

  .trip-story-intro__photo {
    grid-column: 1;
    grid-row: 2;
  }

  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    grid-column: 1;
    grid-row: 3;
  }

  .trip-story-intro__column > header,
  .trip-story-intro__copy { padding: 8mm 7mm 5mm; }

  .trip-story-intro__column--field .trip-section-label,
  .trip-story-intro__column--field .trip-section-label > span,
  .trip-story-intro__column--field .trip-field-symbol { color: #20c7d2; }

  .trip-story-intro h2 {
    max-width: 7.5ch;
    margin-top: 3mm;
    color: white;
    font-size: 28pt;
    line-height: 0.94;
  }

  .trip-story-intro__copy p {
    margin: 0;
    color: var(--ink);
    font-size: 8.6pt;
    line-height: 1.42;
  }

  .trip-story-intro__copy p + p { margin-top: 3mm; }

  .trip-story-intro__photo {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
  }

  .trip-story-intro__photo--outreach {
    padding-top: 2mm;
    border-top: 0.7pt solid #b85d3e;
  }

  .trip-story-intro__photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  .trip-story-intro__photo--field img { object-position: 50% 54%; }

  .trip-story-intro__photo figcaption {
    min-height: 8mm;
    padding: 1.5mm 5mm 1.8mm;
    color: var(--ink);
    font-size: 6.5pt;
    line-height: 1.25;
  }

  .trip-story-intro__photo--field figcaption { color: white; }

  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    display: grid;
    grid-template-columns: 8mm minmax(0, 1fr);
    gap: 3mm;
    align-content: start;
    margin: 0;
    padding: 5mm 6mm;
    border: 0;
    border-top: 0.7pt solid var(--ink);
    background: white;
  }

  .trip-story-intro .trip-story-caution {
    border-top-color: #20c7d2;
    background: var(--campaign-navy);
  }

  .trip-story-intro .trip-community-story .trip-field-symbol,
  .trip-story-intro .trip-story-caution .trip-field-symbol {
    width: 7mm;
    height: 7mm;
  }

  .trip-story-intro .trip-story-caution .trip-field-symbol,
  .trip-story-intro .trip-story-caution h3 { color: #20c7d2; }

  .trip-story-intro .trip-community-story h3,
  .trip-story-intro .trip-story-caution h3 {
    margin: 0;
    font-size: 13pt;
    line-height: 1.05;
  }

  .trip-story-intro .trip-community-story p,
  .trip-story-intro .trip-story-caution p {
    margin: 2mm 0 0;
    font-size: 7.3pt;
    line-height: 1.35;
  }

  .trip-story-intro .trip-story-caution p { color: white; }
}

@media screen and (max-width: 900px) {
  .trip-research > ol { grid-template-columns: minmax(0, 1fr); }

  .trip-research > ol > li,
  .trip-research > ol > li + li {
    padding: 1.5rem 0;
    border-left: 0;
    border-top: 1px solid rgba(30, 49, 84, 0.28);
  }

  .trip-research > ol > li:first-child { border-top: 0; }

  .trip-next-work,
  .trip-research-sources { grid-template-columns: minmax(0, 1fr); }

  .trip-next-work ul { grid-template-columns: minmax(0, 1fr); }

  .trip-next-work li,
  .trip-next-work li + li {
    padding: 0.75rem 0 0.75rem 1.4rem;
    border-left: 0;
    border-top: 1px solid rgba(30, 49, 84, 0.2);
  }

  .trip-next-work li:first-child { border-top: 0; }
}

@media screen and (max-width: 620px) {
  .trip-research { padding-inline: 1rem; }
  .trip-research h2 { font-size: clamp(2.8rem, 14vw, 4rem); }

  .trip-research-sources li {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.35rem;
  }
}

@media screen and (max-width: 360px) {
  .trip-research { padding-inline: min(1rem, 5vw); }
  .trip-research h2 { font-size: min(2.8rem, 14vw); }
}

@media print {
  .trip-research {
    padding: 0;
    background: white;
    color: var(--ink);
  }

  .trip-research .trip-section-label > span,
  .trip-research h2,
  .trip-research h3,
  .trip-research li > span,
  .trip-research li p,
  .trip-next-work li,
  .trip-research-sources a,
  .trip-research .trip-research-sources li > span { color: var(--ink); }

  .trip-research .trip-section-heading {
    padding-bottom: 4mm;
    border-bottom: 1pt solid var(--ink);
  }

  .trip-research h2 { max-width: 16ch; font-size: 28pt; }
  .trip-research > ol {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .trip-research > ol > li {
    padding: 4mm 0;
    border: 0;
    border-bottom: 0.5pt solid rgba(30, 49, 84, 0.35);
    break-inside: avoid;
  }

  .trip-research > ol > li h3 { margin: 1mm 0 0; font-size: 16pt; }
  .trip-research > ol > li p { margin: 2mm 0 0; font-size: 9pt; line-height: 1.4; }

  .trip-next-work {
    padding-top: 6mm;
    border-top: 0;
  }

  .trip-next-work ul { columns: 1; }
  .trip-next-work li { padding-block: 1.5mm; }

  .trip-research-sources ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
  .trip-research-sources li {
    display: grid;
    grid-template-columns: 42mm minmax(0, 1fr);
    gap: 4mm;
    padding: 2mm 0;
    border: 0;
    border-bottom: 0.5pt dotted rgba(30, 49, 84, 0.4);
    break-inside: avoid;
  }
}

/* Rc.82: let the methods page read as one continuous evidence chain. */
.trip-methods {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  gap: clamp(1.6rem, 3vw, 2.6rem);
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
  border-top: 1px solid rgba(30, 49, 84, 0.18);
}

.trip-methods .trip-section-heading,
.trip-methods > ol,
.trip-methods-feature {
  grid-column: 1;
  grid-row: auto;
}

.trip-methods .trip-section-heading h2 {
  max-width: 18ch;
  font-size: clamp(3.35rem, 5.2vw, 5.2rem);
  line-height: 0.96;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.trip-methods > ol {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid rgba(30, 49, 84, 0.28);
}

.trip-methods li {
  position: relative;
  grid-template-columns: 1.45rem 3.1rem minmax(0, 1fr);
  gap: 0.72rem;
  align-items: start;
  min-width: 0;
  padding: 1.55rem clamp(1.5rem, 2.2vw, 2.2rem) 1.65rem 0;
  border: 0;
}

.trip-methods li + li { padding-left: clamp(0.8rem, 1.4vw, 1.4rem); }

.trip-methods li:not(:last-child)::after {
  content: "⟶";
  position: absolute;
  z-index: 1;
  top: 2.35rem;
  right: 0.18rem;
  color: var(--accent);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1;
}

.trip-methods li::before { padding-top: 0.9rem; }

.trip-methods li > span {
  width: 3rem;
  height: 3rem;
}

.trip-methods li > div { min-width: 0; }
.trip-methods h3 { font-size: clamp(1.55rem, 2vw, 2rem); }
.trip-methods li p {
  max-width: 31ch;
  font-size: 0.94rem;
  line-height: 1.52;
  text-wrap: pretty;
}

.trip-methods-feature {
  display: grid;
  grid-template-columns: minmax(0, 2.12fr) minmax(16rem, 0.88fr);
  gap: clamp(1.6rem, 3vw, 3rem);
  align-items: start;
  margin: 0;
}

.trip-methods-feature__media {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.6rem, 1vw, 0.9rem);
}

.trip-methods-view {
  min-height: 0;
  aspect-ratio: 6 / 5;
  border-color: rgba(30, 49, 84, 0.42);
  box-shadow: none;
}

.trip-methods-view__title {
  border-color: rgba(28, 199, 210, 0.72);
  background: rgba(8, 36, 64, 0.9);
  box-shadow: none;
  color: #50d4dc;
}

.trip-methods-feature figcaption {
  position: relative;
  padding: 1.25rem 0 0;
  font-size: 0.9rem;
  line-height: 1.5;
}

.trip-methods-feature figcaption::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 4.25rem;
  height: 2px;
  background: #c65d3d;
}

.trip-methods-feature figcaption strong {
  font-size: clamp(1.75rem, 2.4vw, 2.35rem);
  line-height: 1.05;
}

.trip-methods-feature figcaption p { margin-top: 0.72rem; }
.trip-methods-feature figcaption p b { color: #bd552f; }
.trip-methods-feature figcaption a {
  padding-bottom: 0.12rem;
  border-bottom: 1px solid #c65d3d;
  text-decoration: none;
}

@media screen and (max-width: 1120px) {
  .trip-methods > ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trip-methods li:nth-child(n + 3) { border-top: 1px solid rgba(30, 49, 84, 0.2); }
  .trip-methods li:nth-child(2)::after { display: none; }

  .trip-methods-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
  }

  .trip-methods-feature figcaption { max-width: 68ch; }
}

@media screen and (max-width: 620px) {
  .trip-methods {
    gap: 1.35rem;
    padding-inline: min(1rem, 5vw);
  }

  .trip-methods .trip-section-heading h2 {
    max-width: 12ch;
    font-size: min(3.1rem, 13vw);
    line-height: 0.98;
  }

  .trip-methods > ol { grid-template-columns: minmax(0, 1fr); }
  .trip-methods li,
  .trip-methods li + li {
    grid-template-columns: 1.35rem 2.75rem minmax(0, 1fr);
    gap: 0.65rem;
    align-items: center;
    padding: 1.1rem 0;
    border-top: 1px solid rgba(30, 49, 84, 0.2);
  }
  .trip-methods li:first-child { border-top: 0; }
  .trip-methods li:not(:last-child)::after { display: none; }
  .trip-methods li::before {
    grid-column: 1;
    grid-row: 1;
    padding-top: 0;
  }
  .trip-methods li > span {
    grid-column: 2;
    grid-row: 1;
    width: 2.5rem;
    height: 2.5rem;
  }
  .trip-methods li > div { display: contents; }
  .trip-methods li h3 { grid-column: 3; grid-row: 1; }
  .trip-methods li p {
    grid-column: 1 / -1;
    grid-row: 2;
    max-width: none;
    margin-top: 0.2rem;
  }

  .trip-methods-feature__media { grid-template-columns: minmax(0, 1fr); }
  .trip-methods-view { aspect-ratio: 16 / 10; }
  .trip-methods-feature figcaption { padding-top: 1rem; }
}

@media print {
  .trip-methods {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 4mm;
    padding: 0;
    border-top: 0;
    background: white;
  }

  .trip-methods .trip-section-heading,
  .trip-methods > ol,
  .trip-methods-feature {
    grid-column: 1;
    grid-row: auto;
  }

  .trip-methods .trip-section-heading h2 {
    max-width: 17ch;
    font-size: 28pt;
    line-height: 0.98;
  }

  .trip-methods > ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trip-methods li,
  .trip-methods li + li {
    grid-template-columns: 5mm 10mm minmax(0, 1fr);
    gap: 2mm;
    padding: 3mm 4mm 3mm 0;
    border: 0;
  }
  .trip-methods li:not(:last-child)::after { display: none; }
  .trip-methods li::before { padding-top: 2mm; font-size: 6.5pt; }
  .trip-methods li > span { width: 9mm; height: 9mm; }
  .trip-methods li > span .trip-field-symbol { width: 5mm; height: 5mm; }
  .trip-methods h3 { font-size: 13pt; }
  .trip-methods li p { margin-top: 1mm; font-size: 7.2pt; line-height: 1.35; }

  .trip-methods-feature {
    display: grid;
    grid-template-columns: minmax(0, 2.12fr) minmax(42mm, 0.88fr);
    gap: 5mm;
    align-items: start;
  }
  .trip-methods-feature__media {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2mm;
  }
  .trip-methods-view { aspect-ratio: 6 / 5; }
  .trip-methods-feature figcaption { padding-top: 3mm; font-size: 7.2pt; line-height: 1.35; }
  .trip-methods-feature figcaption strong { font-size: 16pt; }
  .trip-methods-feature figcaption p { margin-top: 2mm; }
}

/* Rc.83 — Team and gratitude become one documentary-facing report landmark. */
@media screen {
  .trip-team-thanks {
    --team-navy: #06284d;
    --team-cyan: #18c8d4;
    --team-coral: #c86340;
    --team-paper: #f5f0e7;
    overflow: hidden;
    margin: 0;
    border-top: 3px solid var(--team-navy);
    border-bottom: 3px solid var(--team-navy);
    background: var(--team-paper);
    color: var(--ink);
  }

  .trip-team-thanks__top {
    display: grid;
    grid-template-columns: minmax(0, 1.14fr) minmax(26rem, 0.86fr);
    min-height: 34rem;
    max-height: 34rem;
    overflow: hidden;
  }

  .trip-team-thanks__top > * { min-height: 0; }

  .trip-team-thanks__portrait {
    position: relative;
    min-height: 0;
    margin: 0;
    overflow: hidden;
    border-right: 3px solid var(--team-navy);
    background: var(--team-navy);
    height: 100%;
  }

  .trip-team-thanks__portrait > img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: 50% 52%;
  }

  .trip-team-thanks__portrait figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    max-width: 28rem;
    margin: 0;
    padding: 0.7rem 1rem 0.72rem;
    background: rgba(6, 40, 77, 0.9);
    color: #e9fbfa;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    line-height: 1.25;
    text-transform: uppercase;
  }

  .trip-team-thanks__markers {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .trip-team-thanks__markers li {
    position: absolute;
    top: var(--marker-y);
    left: var(--marker-x);
    transform: translate(-50%, -50%);
  }

  .trip-team-thanks__markers a {
    display: grid;
    width: 1.95rem;
    height: 1.95rem;
    place-items: center;
    border: 2px solid rgba(255, 250, 240, 0.95);
    border-radius: 50%;
    background: var(--team-navy);
    box-shadow: 0 0 0 3px rgba(6, 40, 77, 0.22);
    color: #fffaf0;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
  }

  .trip-team-thanks__markers a:hover,
  .trip-team-thanks__markers a:focus-visible {
    background: var(--team-coral);
    color: #fffaf0;
    outline: 2px solid #fffaf0;
    outline-offset: 0.15rem;
  }

  .trip-team-thanks__message {
    display: grid;
    grid-template-rows: 21.25rem 12.75rem;
    min-width: 0;
    min-height: 0;
    height: 100%;
  }

  .trip-team-thanks__gratitude {
    position: relative;
    display: grid;
    align-content: center;
    min-width: 0;
    padding: 2.7rem clamp(2.4rem, 4.2vw, 4.25rem);
    overflow: hidden;
    background: linear-gradient(to bottom, var(--team-navy) 0 61%, var(--team-cyan) 61% 100%);
    color: #fffaf0;
  }

  .trip-team-thanks__gratitude::after { display: none; }

  .trip-team-thanks__gratitude h2,
  .trip-team-thanks__gratitude p {
    position: relative;
    z-index: 1;
    margin: 0;
  }

  .trip-team-thanks__gratitude h2 {
    display: block;
    max-width: none;
    color: #fffaf0;
    font-family: var(--font-display);
    font-size: clamp(4.2rem, 6vw, 6rem);
    font-weight: 400;
    letter-spacing: -0.065em;
    line-height: 0.82;
    text-transform: uppercase;
  }

  .trip-team-thanks__gratitude h2 span { display: block; padding-left: 0.06em; }
  .trip-team-thanks__gratitude h2 b {
    display: block;
    margin-top: 0.53em;
    padding-left: 0.06em;
    color: var(--team-navy);
    font-weight: 400;
  }

  .trip-team-thanks__gratitude > p {
    position: absolute;
    top: 12.25rem;
    left: clamp(2.4rem, 4.2vw, 4.25rem);
    max-width: 20ch;
    margin: 0;
    color: #ffddcf;
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.25vw, 1.2rem);
    font-style: italic;
    font-weight: 300;
    line-height: 1.15;
  }

  .trip-team-thanks__community {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(12rem, 0.85fr);
    gap: 0;
    align-items: stretch;
    min-width: 0;
    background: var(--team-paper);
    min-height: 0;
    overflow: hidden;
  }

  .trip-team-thanks__community > p {
    align-self: center;
    max-width: none;
    margin: 0;
    padding: clamp(1.25rem, 2.2vw, 1.75rem);
    color: var(--ink);
    font-family: var(--font-display);
    font-size: clamp(1.36rem, 1.7vw, 1.62rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 0.99;
  }

  .trip-team-thanks__climate {
    display: grid;
    align-content: end;
    min-width: 0;
    padding: clamp(1.25rem, 2.2vw, 1.75rem);
    background: var(--team-coral);
    color: #fffaf0;
    min-height: 0;
  }

  .trip-team-thanks__climate h3 {
    margin: 0;
    color: #fffaf0;
    font-family: var(--font-body);
    font-size: clamp(0.72rem, 1.05vw, 0.9rem);
    font-weight: 800;
    letter-spacing: 0.095em;
    line-height: 1.18;
    text-transform: uppercase;
  }

  .trip-team-thanks__climate p {
    max-width: 23ch;
    margin: 0.8rem 0 0;
    color: #fffaf0;
    font-family: var(--font-display);
    font-size: clamp(0.94rem, 1.18vw, 1.16rem);
    font-weight: 400;
    line-height: 1.08;
  }

  .trip-team-thanks__hiseas {
    display: grid;
    grid-template-columns: minmax(9rem, 0.46fr) minmax(0, 1.74fr) auto;
    gap: clamp(1.25rem, 3vw, 3.5rem);
    align-items: center;
    padding: clamp(0.9rem, 1.45vw, 1.2rem) clamp(1.7rem, 4vw, 4.8rem);
    border-top: 3px solid var(--team-navy);
    background: #1e2631;
    color: #fffaf0;
  }

  .trip-team-thanks__hiseas p { margin: 0; }
  .trip-team-thanks__hiseas-name {
    color: var(--team-cyan);
    font-family: var(--font-display);
    font-size: clamp(1.25rem, 1.75vw, 1.7rem);
    letter-spacing: -0.035em;
    line-height: 0.95;
  }

  .trip-team-thanks__hiseas p:not(.trip-team-thanks__hiseas-name) {
    max-width: 68ch;
    color: #eef0eb;
    font-size: clamp(0.76rem, 0.92vw, 0.9rem);
    line-height: 1.48;
  }

  .trip-team-thanks__funding {
    display: block;
    margin-top: 0.42rem;
  }

  .trip-team-thanks__funding-link {
    color: var(--team-cyan);
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: color-mix(in oklch, var(--team-cyan) 48%, transparent);
    text-underline-offset: 0.16em;
  }

  .trip-team-thanks__funding-link:hover,
  .trip-team-thanks__funding-link:focus-visible {
    color: #fffaf0;
    text-decoration-color: currentColor;
  }

  .trip-team-thanks__funding-link:focus-visible {
    outline: 2px solid var(--team-cyan);
    outline-offset: 0.18rem;
  }

  .trip-team-thanks__project-link {
    padding-bottom: 0.26rem;
    border-bottom: 1px solid var(--team-coral);
    color: #fffaf0;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.095em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .trip-team-thanks__project-link:hover,
  .trip-team-thanks__project-link:focus-visible {
    border-color: var(--team-cyan);
    color: var(--team-cyan);
    outline: 0;
  }

  .trip-team-thanks__roster {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 0 clamp(1.7rem, 4vw, 4.8rem);
    list-style: none;
    background: #fffaf0;
  }

  .trip-team-thanks__roster li {
    position: relative;
    min-width: 0;
    padding: clamp(1.05rem, 1.7vw, 1.45rem) clamp(0.7rem, 1.25vw, 1.25rem) clamp(1.15rem, 1.9vw, 1.7rem) 0;
    border-top: 1px solid rgba(6, 40, 77, 0.55);
  }

  .trip-team-thanks__roster li + li { padding-left: clamp(0.7rem, 1.25vw, 1.25rem); }
  .trip-team-thanks__roster li:not(:last-child)::after {
    content: "";
    position: absolute;
    top: clamp(1.05rem, 1.7vw, 1.45rem);
    right: 0;
    bottom: clamp(1.15rem, 1.9vw, 1.7rem);
    border-right: 1px solid rgba(6, 40, 77, 0.26);
  }

  .trip-team-thanks__roster span {
    display: block;
    margin-bottom: 0.72rem;
    color: var(--team-coral);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    line-height: 1;
  }

  .trip-team-thanks__roster h3 {
    min-height: 2.1em;
    margin: 0;
    color: var(--team-navy);
    font-family: var(--font-display);
    font-size: clamp(1.02rem, 1.6vw, 1.45rem);
    font-weight: 400;
    line-height: 1.02;
  }

  .trip-team-thanks__roster p {
    min-height: 3.85em;
    margin: 0.55rem 0 0;
    color: var(--ink-soft);
    font-size: clamp(0.64rem, 0.75vw, 0.74rem);
    line-height: 1.38;
  }

  .trip-team-thanks__roster a {
    display: inline-block;
    max-width: 100%;
    margin-top: 0.65rem;
    overflow-wrap: anywhere;
    color: var(--team-navy);
    font-size: clamp(0.61rem, 0.7vw, 0.7rem);
    font-weight: 700;
    line-height: 1.25;
    text-decoration-color: var(--team-coral);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.22em;
  }

  .trip-team-thanks__roster a:focus-visible { outline: 2px solid var(--team-coral); outline-offset: 0.2rem; }

  .trip-team-thanks__pledge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.76fr);
    gap: clamp(2rem, 5vw, 6rem);
    align-items: end;
    min-width: 0;
    padding: clamp(1.8rem, 3.3vw, 2.75rem) clamp(1.7rem, 4vw, 4.8rem) clamp(1.9rem, 3.5vw, 2.85rem);
    background: var(--team-navy);
  }

  .trip-team-thanks__pledge p { margin: 0; }
  .trip-team-thanks__pledge p:first-child {
    max-width: 25ch;
    color: var(--team-cyan);
    font-family: var(--font-body);
    font-size: clamp(1rem, 1.5vw, 1.48rem);
    font-variant-caps: all-small-caps;
    font-weight: 700;
    letter-spacing: 0.075em;
    line-height: 1.2;
  }

  .trip-team-thanks__pledge p:last-child {
    max-width: 36ch;
    justify-self: end;
    color: #ffddcf;
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.4vw, 1.38rem);
    font-style: italic;
    font-weight: 300;
    line-height: 1.26;
  }
}

@media screen and (max-width: 1050px) {
  .trip-team-thanks__top { grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.85fr); }
  .trip-team-thanks__gratitude h2 { font-size: clamp(3.65rem, 6vw, 5.5rem); }
  .trip-team-thanks__community { grid-template-columns: minmax(0, 1fr); }
  .trip-team-thanks__community > p { max-width: 21ch; }
  .trip-team-thanks__climate { min-height: 11rem; }
  .trip-team-thanks__hiseas { grid-template-columns: minmax(9rem, 0.62fr) minmax(0, 1.38fr); }
  .trip-team-thanks__project-link { grid-column: 2; justify-self: start; }
  .trip-team-thanks__roster { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .trip-team-thanks__roster li:nth-child(5) { border-left: 0; }
  .trip-team-thanks__roster li:nth-child(n + 5) { border-top: 1px solid rgba(6, 40, 77, 0.55); }
  .trip-team-thanks__roster li:nth-child(4)::after,
  .trip-team-thanks__roster li:last-child::after { display: none; }
}

@media screen and (max-width: 720px) {
  .trip-team-thanks__top {
    display: block;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }
  .trip-team-thanks__portrait { height: min(125vw, 42rem); border-right: 0; }
  .trip-team-thanks__portrait > img { min-height: 0; }
  .trip-team-thanks__message { display: block; }
  .trip-team-thanks__gratitude { min-height: 21rem; padding: clamp(2rem, 9vw, 4rem); }
  .trip-team-thanks__gratitude h2 { font-size: min(20vw, 5.5rem); }
  .trip-team-thanks__gratitude > p { top: 11rem; left: clamp(2rem, 9vw, 4rem); }
  .trip-team-thanks__community { display: block; }
  .trip-team-thanks__community > p { max-width: 18ch; padding: 2.45rem 1.5rem 2.7rem; font-size: clamp(2rem, 9vw, 3.2rem); }
  .trip-team-thanks__climate { min-height: 15rem; padding: 2rem 1.5rem; }
  .trip-team-thanks__hiseas { display: block; padding: 2.1rem 1.5rem 2.3rem; }
  .trip-team-thanks__hiseas p:not(.trip-team-thanks__hiseas-name) { margin-top: 1rem; }
  .trip-team-thanks__project-link { display: inline-block; margin-top: 1.5rem; white-space: normal; }
  .trip-team-thanks__roster { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 1.5rem; }
  .trip-team-thanks__roster li { padding: 1.3rem 0.8rem 1.55rem 0; }
  .trip-team-thanks__roster li + li { padding-left: 0.8rem; }
  .trip-team-thanks__roster li:nth-child(n + 3) { border-top: 1px solid rgba(6, 40, 77, 0.55); }
  .trip-team-thanks__roster li:nth-child(even)::after { display: none; }
  .trip-team-thanks__roster h3 { min-height: 0; font-size: 1.34rem; }
  .trip-team-thanks__roster p { min-height: 0; font-size: 0.74rem; }
  .trip-team-thanks__roster a { font-size: 0.69rem; }
  .trip-team-thanks__pledge { display: block; padding: 2.6rem 1.5rem 2.8rem; }
  .trip-team-thanks__pledge p:first-child { font-size: 1.24rem; }
  .trip-team-thanks__pledge p:last-child { margin-top: 1.15rem; font-size: 1.1rem; }
}

@media print {
  .trip-site-media { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); }
  .trip-team-thanks {
    margin: 0;
    border-top: 1pt solid #06284d;
    border-bottom: 1pt solid #06284d;
    background: #fffaf0;
    color: #06284d;
    break-inside: avoid;
  }
  .trip-team-thanks__top { display: grid; grid-template-columns: 1.12fr 0.88fr; min-height: 89mm; }
  .trip-team-thanks__portrait {
    height: 89mm;
    min-height: 89mm;
    max-height: 89mm;
    overflow: hidden;
    border-right: 1pt solid #06284d;
  }
  .trip-team-thanks__portrait > img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: 50% 52%;
  }
  .trip-team-thanks__markers a { width: 5mm; height: 5mm; border-width: 0.6pt; font-size: 6pt; box-shadow: none; }
  .trip-team-thanks__portrait figcaption { max-width: 52mm; padding: 1.2mm 2mm; font-size: 5pt; }
  .trip-team-thanks__message { display: grid; grid-template-rows: 48mm 41mm; }
  .trip-team-thanks__gratitude { display: grid; align-content: center; padding: 7mm; }
  .trip-team-thanks__gratitude h2 { margin: 0; font-size: 32pt; line-height: 0.92; }
  .trip-team-thanks__gratitude > p { margin-top: 3mm; font-size: 9pt; }
  .trip-team-thanks__community { display: grid; grid-template-columns: 0.96fr 8mm 1.04fr; }
  .trip-team-thanks__community > p { align-self: center; margin: 0; padding: 3mm 4mm; font-size: 10pt; line-height: 1.12; }
  .trip-team-thanks__connector { display: grid; place-items: center; font-size: 18pt; line-height: 1; }
  .trip-team-thanks__climate { display: grid; align-content: center; padding: 5mm; }
  .trip-team-thanks__climate h3 { margin: 0; font-size: 5.5pt; }
  .trip-team-thanks__to { display: block; margin-bottom: 0.7mm; font-size: 4.5pt; font-style: italic; font-weight: 400; text-transform: none; }
  .trip-team-thanks__climate p { margin-top: 2mm; font-size: 7.2pt; line-height: 1.2; }
  .trip-team-thanks__hiseas { display: grid; grid-template-columns: 28mm 1fr; gap: 5mm; padding: 5mm 7mm; border-top-width: 1pt; }
  .trip-team-thanks__hiseas p { margin: 0; }
  .trip-team-thanks__hiseas-name { font-size: 15pt; }
  .trip-team-thanks__hiseas p:not(.trip-team-thanks__hiseas-name) { font-size: 6.4pt; }
  .trip-team-thanks__funding { display: block; margin-top: 1mm; }
  .trip-team-thanks__funding-link { color: inherit; font-weight: 700; }
  .trip-team-thanks__project-link { grid-column: 2; justify-self: start; margin-top: 1mm; font-size: 5.3pt; }
  .trip-team-thanks__roster { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); padding: 0 7mm; list-style: none; }
  .trip-team-thanks__roster li, .trip-team-thanks__roster li + li { padding: 3.5mm 2mm 4mm 0; border-top: 0.6pt solid rgba(6, 40, 77, 0.55); }
  .trip-team-thanks__roster li + li { padding-left: 2mm; }
  .trip-team-thanks__roster li:not(:last-child)::after { top: 3.5mm; right: 0; bottom: 4mm; display: block; }
  .trip-team-thanks__roster li:nth-child(4)::after { display: block; }
  .trip-team-thanks__roster span { margin-bottom: 2mm; font-size: 4.5pt; }
  .trip-team-thanks__roster h3 { min-height: 0; font-size: 7.2pt; }
  .trip-team-thanks__roster p { min-height: 0; margin-top: 1.6mm; font-size: 4.8pt; line-height: 1.25; }
  .trip-team-thanks__roster .trip-team-thanks__role { margin-top: 1mm; font-size: 4.2pt; font-weight: 700; }
  .trip-team-thanks__roster .trip-team-thanks__affiliation { margin-top: 1mm; }
  .trip-team-thanks__roster a { margin-top: 2mm; font-size: 4.5pt; }
  .trip-team-thanks__pledge { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 8mm; padding: 7mm; }
  .trip-team-thanks__pledge p:first-child { font-size: 8.4pt; }
  .trip-team-thanks__pledge p:last-child { font-size: 7.5pt; }
}

/* Rc.84 — Let the glossary finish as a field ledger, not a boxed matrix. */
@media screen {
  .trip-glossary {
    position: relative;
    grid-template-columns: minmax(18rem, 0.82fr) minmax(0, 1.18fr);
    gap: clamp(2.25rem, 5vw, 5.75rem);
    align-items: start;
    padding-top: clamp(4.25rem, 7vw, 7rem);
    padding-bottom: clamp(4.5rem, 8vw, 7.5rem);
    border-top: 1px solid rgba(30, 49, 84, 0.24);
    background: var(--trip-wash);
  }

  .trip-glossary > div { position: sticky; top: 8rem; }
  .trip-glossary .trip-section-label { color: var(--accent); }
  .trip-glossary .trip-section-label > span { color: var(--ink-soft); }
  .trip-glossary h2 {
    max-width: 9.5ch;
    margin-top: 0.8rem;
    color: var(--ink);
    font-size: clamp(3.75rem, 5.25vw, 5.25rem);
    letter-spacing: -0.035em;
    line-height: 0.95;
    text-wrap: balance;
  }

  .trip-glossary > div::after {
    content: "";
    display: block;
    width: 4rem;
    margin-top: 1.5rem;
    border-top: 3px solid #0c6d7e;
  }

  .trip-glossary dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 clamp(1.5rem, 3vw, 3.5rem);
    margin: 0;
    background: transparent;
  }

  .trip-glossary dl div {
    min-width: 0;
    padding: clamp(1.45rem, 2.6vw, 2.55rem) 0 clamp(1.65rem, 2.8vw, 2.7rem);
    border-top: 1px solid rgba(30, 49, 84, 0.48);
    background: transparent;
  }

  .trip-glossary dl div:nth-child(1),
  .trip-glossary dl div:nth-child(2) { border-top: 2px solid var(--ink); }
  .trip-glossary dl div:nth-child(4n + 1) { padding-right: clamp(0.5rem, 1.4vw, 1.6rem); }
  .trip-glossary dl div:nth-child(4n + 2) { padding-left: clamp(0.5rem, 1.4vw, 1.6rem); }
  .trip-glossary dl div:nth-child(4n + 3) { padding-right: clamp(0.5rem, 1.4vw, 1.6rem); }
  .trip-glossary dl div:nth-child(4n) { padding-left: clamp(0.5rem, 1.4vw, 1.6rem); }

  .trip-glossary dt {
    position: relative;
    padding-left: 1.4rem;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 1.85vw, 1.9rem);
    font-weight: 400;
    line-height: 1.04;
  }

  .trip-glossary dt::before {
    content: "";
    position: absolute;
    top: 0.12em;
    bottom: 0.14em;
    left: 0;
    border-left: 2px solid #c65d3d;
  }

  .trip-glossary dd {
    max-width: 41ch;
    margin: 0.7rem 0 0 1.4rem;
    color: var(--ink-soft);
    font-size: clamp(0.92rem, 1.1vw, 1.02rem);
    line-height: 1.5;
    text-wrap: pretty;
  }
}

@media screen and (max-width: 760px) {
  .trip-glossary { display: block; padding-block: 3.5rem 4rem; }
  .trip-glossary > div { position: static; }
  .trip-glossary h2 { max-width: 10ch; font-size: min(3.15rem, 14vw); }
  .trip-glossary dl { margin-top: 2.6rem; grid-template-columns: minmax(0, 1fr); }
  .trip-glossary dl div,
  .trip-glossary dl div:nth-child(n) { padding: 1.25rem 0 1.4rem; border-top: 1px solid rgba(30, 49, 84, 0.42); }
  .trip-glossary dl div:first-child { border-top: 2px solid var(--ink); }
  .trip-glossary dd { max-width: 42ch; margin-left: 1.2rem; }
}

@media print {
  .trip-site-media { grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); }
  .trip-glossary { grid-template-columns: minmax(0, 0.55fr) minmax(0, 1.45fr); gap: 8mm; padding: 0; background: white; }
  .trip-glossary > div { position: static; }
  .trip-glossary h2 { font-size: 25pt; line-height: 0.98; }
  .trip-glossary > div::after { width: 12mm; margin-top: 3mm; border-top-width: 1.2pt; }
  .trip-glossary dl { gap: 0 5mm; background: transparent; }
  .trip-glossary dl div, .trip-glossary dl div:nth-child(n) { padding: 3mm 0 4mm; border-top: 0.5pt solid rgba(30, 49, 84, 0.48); background: transparent; }
  .trip-glossary dt { padding-left: 4mm; font-size: 10pt; }
  .trip-glossary dt::before { border-left-width: 1pt; }
  .trip-glossary dd { margin: 1.5mm 0 0 4mm; font-size: 6.5pt; line-height: 1.3; }
}

/* Rc.85 — Bring Team & Thanks into closer geometric alignment with its approved target. */
@media screen {
  .trip-team-thanks__top {
    grid-template-columns: 2.75rem minmax(0, 1.15fr) minmax(26rem, 1fr);
  }

  .trip-team-thanks__rail {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    padding: 1.05rem 0 1.2rem;
    background: var(--team-navy);
    color: var(--team-cyan);
  }

  .trip-team-thanks__rail span:first-child {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1;
  }

  .trip-team-thanks__rail span:last-child {
    margin: auto 0;
    font-size: 0.61rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    line-height: 1;
    text-transform: uppercase;
    transform: rotate(-90deg);
    white-space: nowrap;
  }

  .trip-team-thanks__portrait { border-right-width: 0; }

  .trip-team-thanks__portrait figcaption {
    max-width: 26rem;
    padding: 0.58rem 0.82rem 0.62rem;
    background: rgba(6, 40, 77, 0.88);
    font-size: 0.66rem;
  }

  .trip-team-thanks__markers a {
    position: relative;
    width: 1.55rem;
    height: 1.55rem;
    border-width: 1.5px;
    background: var(--team-cyan);
    box-shadow: none;
    color: var(--team-navy);
    font-size: 0.68rem;
  }

  .trip-team-thanks__markers a::after {
    content: attr(data-team-name);
    position: absolute;
    top: calc(100% + 0.48rem);
    left: 50%;
    z-index: 3;
    width: max-content;
    max-width: 12rem;
    padding: 0.4rem 0.55rem 0.44rem;
    background: rgba(6, 40, 77, 0.96);
    color: #fffaf0;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.015em;
    line-height: 1.1;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -0.2rem);
    transition: opacity 140ms ease-out, transform 140ms ease-out;
    white-space: nowrap;
  }

  .trip-team-thanks__markers a:hover,
  .trip-team-thanks__markers a:focus-visible {
    background: var(--team-coral);
    color: #fffaf0;
  }

  .trip-team-thanks__markers a:hover::after,
  .trip-team-thanks__markers a:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, 0);
  }

  .trip-team-thanks__gratitude { padding: 0; }

  .trip-team-thanks__gratitude h2 {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-rows: 61% 39%;
    width: 100%;
    height: auto;
    font-size: clamp(4rem, 5.7vw, 5.8rem);
    letter-spacing: 0.2em;
    line-height: 1;
  }

  .trip-team-thanks__gratitude h2 span,
  .trip-team-thanks__gratitude h2 b {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    margin: 0;
    padding: 0 0 0 0.2em;
  }

  .trip-team-thanks__gratitude > p {
    top: 9.3rem;
    left: 0;
    width: 100%;
    max-width: none;
    padding: 0 1rem;
    color: #ff9b78;
    text-align: center;
  }

  .trip-team-thanks__community {
    grid-template-columns: minmax(0, 1fr) clamp(3rem, 4vw, 4.3rem) minmax(13rem, 1.08fr);
  }

  .trip-team-thanks__community > p {
    padding-inline: clamp(1.4rem, 2.4vw, 2.2rem);
    font-size: clamp(1.1rem, 1.3vw, 1.24rem);
    line-height: 1.08;
  }

  .trip-team-thanks__connector {
    display: grid;
    place-items: center;
    background: linear-gradient(to right, var(--team-coral) 0 50%, var(--team-paper) 50% 100%);
    color: var(--team-navy);
    font-family: var(--font-display);
    font-size: clamp(2.7rem, 3.8vw, 3.8rem);
    font-weight: 400;
    line-height: 1;
  }

  .trip-team-thanks__climate {
    align-content: center;
    padding-inline: clamp(1.5rem, 2.8vw, 2.6rem);
  }

  .trip-team-thanks__climate h3 {
    max-width: 18ch;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 1.55vw, 1.45rem);
    font-weight: 700;
    letter-spacing: 0.025em;
    line-height: 0.98;
  }

  .trip-team-thanks__climate p {
    max-width: 27ch;
    font-size: clamp(0.88rem, 1vw, 1rem);
    line-height: 1.2;
  }

  .trip-team-thanks__hiseas {
    grid-template-columns: minmax(7.5rem, 0.34fr) minmax(0, 1.66fr) auto;
    padding-block: clamp(0.68rem, 1vw, 0.88rem);
  }

  .trip-team-thanks__hiseas p:not(.trip-team-thanks__hiseas-name) {
    padding-left: clamp(1rem, 2vw, 2rem);
    border-left: 1px solid rgba(255, 250, 240, 0.42);
    font-size: clamp(0.7rem, 0.78vw, 0.78rem);
    line-height: 1.4;
  }

  .trip-team-thanks__hiseas-name {
    max-width: 8ch;
    color: var(--team-coral);
    font-family: var(--font-body);
    font-size: clamp(0.9rem, 1vw, 1rem);
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.12;
    text-transform: uppercase;
  }

  .trip-team-thanks__to {
    display: block;
    margin-bottom: 0.28rem;
    font-family: var(--font-display);
    font-size: 0.78rem;
    font-style: italic;
    font-weight: 300;
    letter-spacing: 0;
    line-height: 1;
    text-transform: none;
  }

  .trip-team-thanks__community > p .trip-team-thanks__to { color: var(--team-coral); }
  .trip-team-thanks__climate .trip-team-thanks__to { color: #fffaf0; }

  .trip-team-thanks__project-link {
    padding: 0.1rem 0 0.3rem clamp(1rem, 2vw, 2rem);
    border-bottom-color: var(--team-coral);
    border-left: 1px solid rgba(255, 250, 240, 0.42);
    color: var(--team-cyan);
    font-size: clamp(0.72rem, 0.86vw, 0.86rem);
    letter-spacing: 0.14em;
  }

  .trip-team-thanks__roster li {
    padding-top: 1.35rem;
    border-top: 0;
  }

  .trip-team-thanks__roster li + li { border-left: 0; }

  .trip-team-thanks__roster li:not(:last-child)::after {
    top: 2.05rem;
    right: 1rem;
    bottom: auto;
    left: 2.15rem;
    border: 0;
    border-top: 1px solid rgba(6, 40, 77, 0.36);
  }

  .trip-team-thanks__roster li:not(:last-child)::before {
    content: "";
    position: absolute;
    top: 1.88rem;
    right: 0.96rem;
    width: 0.34rem;
    height: 0.34rem;
    border-top: 1px solid rgba(6, 40, 77, 0.48);
    border-right: 1px solid rgba(6, 40, 77, 0.48);
    transform: rotate(45deg);
  }

  .trip-team-thanks__roster span {
    position: relative;
    z-index: 1;
    display: inline-block;
    margin-bottom: 0.82rem;
    padding-right: 0.45rem;
    background: #fffaf0;
    color: #087383;
  }

  .trip-team-thanks__roster h3 { font-size: clamp(1.08rem, 1.45vw, 1.36rem); }
  .trip-team-thanks__roster p { text-transform: uppercase; }
  .trip-team-thanks__roster .trip-team-thanks__role {
    min-height: 1.15em;
    margin-top: 0.38rem;
    color: var(--team-coral);
    font-size: clamp(0.56rem, 0.62vw, 0.63rem);
    font-weight: 800;
    letter-spacing: 0.075em;
    line-height: 1.15;
  }
  .trip-team-thanks__roster .trip-team-thanks__affiliation {
    margin-top: 0.35rem;
  }
  .trip-team-thanks__roster a { color: #087383; }

  .trip-team-thanks__pledge {
    display: block;
    padding-block: clamp(1.65rem, 2.8vw, 2.35rem);
    text-align: center;
  }

  .trip-team-thanks__pledge p:first-child {
    max-width: none;
    font-size: clamp(1.2rem, 2vw, 1.85rem);
    letter-spacing: 0.2em;
    white-space: nowrap;
  }

  .trip-team-thanks__pledge p:last-child {
    max-width: none;
    margin: 0.75rem auto 0;
    color: #ff9b78;
    font-size: clamp(1.05rem, 1.5vw, 1.4rem);
  }
}

@media screen and (min-width: 1181px) {
  .trip-team-thanks__top {
    grid-template-columns: 4.8rem minmax(0, calc(54.6% - 4.8rem)) minmax(26rem, 45.4%);
  }

  .trip-team-thanks__roster a {
    font-size: clamp(0.58rem, 0.64vw, 0.65rem);
    white-space: nowrap;
  }
}

@media screen and (max-width: 1180px) {
  .trip-team-thanks__top {
    grid-template-columns: 2.75rem minmax(0, 1fr);
    max-height: none;
    min-height: 0;
  }

  .trip-team-thanks__rail { grid-column: 1; grid-row: 1; }
  .trip-team-thanks__portrait {
    grid-column: 2;
    grid-row: 1;
    aspect-ratio: 4 / 3;
    height: auto;
  }
  .trip-team-thanks__message {
    grid-column: 1 / -1;
    grid-row: 2;
    height: 34rem;
  }
  .trip-team-thanks__gratitude h2 { font-size: clamp(4.8rem, 10vw, 6rem); }
  .trip-team-thanks__gratitude > p { top: 9.3rem; }
  .trip-team-thanks__community { grid-template-columns: minmax(0, 1fr) 3rem minmax(13rem, 1.08fr); }
  .trip-team-thanks__community > p { max-width: none; }
  .trip-team-thanks__climate { min-height: 0; }
  .trip-team-thanks__hiseas { grid-template-columns: minmax(7.5rem, 0.34fr) minmax(0, 1.66fr); }
  .trip-team-thanks__project-link { grid-column: 2; border-left: 1px solid rgba(255, 250, 240, 0.42); }
  .trip-team-thanks__pledge p:first-child { white-space: normal; }
}

@media screen and (min-width: 901px) and (max-width: 1180px) {
  .trip-team-thanks__top {
    grid-template-columns: 2.75rem minmax(0, calc(54.6% - 2.75rem)) minmax(0, 45.4%);
    grid-template-rows: 34rem;
    max-height: 34rem;
  }

  .trip-team-thanks__portrait {
    grid-column: 2;
    grid-row: 1;
    height: 100%;
    aspect-ratio: auto;
  }

  .trip-team-thanks__message {
    grid-column: 3;
    grid-row: 1;
    height: 100%;
  }

  .trip-team-thanks__gratitude h2 {
    font-size: clamp(3.4rem, 6.2vw, 4.6rem);
  }

  .trip-team-thanks__roster li:nth-child(4)::before,
  .trip-team-thanks__roster li:nth-child(4)::after { display: none; }
}

@media screen and (min-width: 721px) and (max-width: 900px) {
  .trip-team-thanks__roster {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-inline: clamp(1.5rem, 5vw, 2.5rem);
  }

  .trip-team-thanks__roster li,
  .trip-team-thanks__roster li + li {
    padding: 1.35rem 1rem 1.55rem 0;
    border-top: 0;
  }

  .trip-team-thanks__roster li + li { padding-left: 1rem; }
  .trip-team-thanks__roster li:nth-child(n + 3) { border-top: 1px solid rgba(6, 40, 77, 0.38); }
  .trip-team-thanks__roster li:not(:last-child)::before,
  .trip-team-thanks__roster li:not(:last-child)::after { display: block; }
  .trip-team-thanks__roster li:nth-child(even)::before,
  .trip-team-thanks__roster li:nth-child(even)::after { display: none; }
  .trip-team-thanks__roster h3 { min-height: 0; font-size: 1.35rem; }
  .trip-team-thanks__roster p { min-height: 0; font-size: 0.72rem; }
}

@media screen and (max-width: 720px) {
  .trip-team-thanks__top { display: block; }
  .trip-team-thanks__rail { display: none; }
  .trip-team-thanks__portrait {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .trip-team-thanks__message { display: block; height: auto; }
  .trip-team-thanks__gratitude {
    display: grid;
    min-height: 21rem;
    padding: 0;
  }
  .trip-team-thanks__gratitude h2 {
    height: 21rem;
    font-size: min(18vw, 4.8rem);
    letter-spacing: 0.13em;
  }
  .trip-team-thanks__gratitude > p { top: 9.3rem; left: 0; }
  .trip-team-thanks__community { display: block; }
  .trip-team-thanks__community > p { max-width: 18ch; }
  .trip-team-thanks__connector {
    height: 4rem;
    background: linear-gradient(to bottom, var(--team-coral) 0 50%, var(--team-paper) 50% 100%);
    font-size: 3.2rem;
  }
  .trip-team-thanks__climate { min-height: 15rem; }
  .trip-team-thanks__climate h3 { font-size: 1.65rem; }
  .trip-team-thanks__markers a::after { display: none; }
  .trip-team-thanks__hiseas p:not(.trip-team-thanks__hiseas-name),
  .trip-team-thanks__project-link {
    padding-left: 0;
    border-left: 0;
  }
  .trip-team-thanks__roster li:not(:last-child)::before { display: none; }
  .trip-team-thanks__roster li:not(:last-child)::after {
    top: 0;
    right: 0;
    left: 0;
    border-top-color: rgba(6, 40, 77, 0.38);
  }
  .trip-team-thanks__roster li:nth-child(2n)::after { display: none; }
  .trip-team-thanks__pledge { padding: 2.5rem 1.5rem 2.7rem; }
}

@media (prefers-reduced-motion: reduce) {
  .trip-team-thanks__markers a::after { transition: none; }
}

@media print {
  .trip-team-thanks__rail { display: none; }
}

/* Rc.91 — makatea explainer: the aerial and profile share one transect. */
.trip-makatea {
  --makatea-navy: #06284d;
  --makatea-cyan: #15b8d4;
  --makatea-clay: #c86645;
  --makatea-paper: #f5f0e5;
  position: relative;
  margin: clamp(4.5rem, 9vw, 8.5rem) 0 0;
  color: var(--makatea-navy);
  background: var(--makatea-paper);
  border-block: 1px solid rgba(6, 40, 77, 0.45);
}

.trip-makatea__aerial { margin: 0; }
.trip-makatea__aerial img {
  display: block;
  width: 100%;
  height: clamp(14rem, 22vw, 20.5rem);
  object-fit: cover;
  object-position: center 52%;
}
.trip-makatea__aerial figcaption {
  position: absolute;
  z-index: 2;
  top: 1rem;
  right: 1rem;
  max-width: 34ch;
  padding: 0.45rem 0.6rem;
  color: #fff;
  background: rgba(6, 40, 77, 0.82);
  font-size: 0.6rem;
  line-height: 1.35;
}

.trip-makatea__diagram {
  position: relative;
  height: clamp(13rem, 18vw, 17rem);
  overflow: hidden;
  border-bottom: 1px solid rgba(6, 40, 77, 0.35);
}
.trip-makatea__profile {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.trip-makatea__land-fill {
  fill: #e9deca;
}
.trip-makatea__water-fill {
  fill: rgba(21, 184, 212, 0.12);
}
.trip-makatea__topography-line {
  fill: none;
  stroke: var(--makatea-navy);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.trip-makatea__water-line {
  stroke: var(--makatea-cyan);
  stroke-width: 1.5;
}
.trip-makatea__zone-labels {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
}
.trip-makatea__zone {
  position: absolute;
  top: 0;
  bottom: var(--zone-line-bottom);
  display: grid;
  grid-template-rows: auto auto 0.35rem minmax(0, 1fr);
  width: max-content;
  max-width: 11rem;
  box-sizing: border-box;
  padding-top: var(--zone-label-top, 1.2rem);
  text-align: center;
  transform: translateX(-50%);
}
.trip-makatea__zone::after {
  content: "";
  position: static;
  grid-row: 4;
  justify-self: center;
  min-height: 0;
  border-left: 1px dashed rgba(6, 40, 77, 0.36);
}
.trip-makatea__zone b,
.trip-makatea__zone small { display: block; }
.trip-makatea__zone b {
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(0.72rem, 0.9vw, 0.95rem);
  font-weight: 650;
  line-height: 1.1;
}
.trip-makatea__zone small {
  margin-top: 0.16rem;
  color: #087a91;
  font-size: clamp(0.6rem, 0.72vw, 0.75rem);
  line-height: 1.05;
  font-style: italic;
  text-transform: none;
  letter-spacing: 0;
}
.trip-makatea__zone--ocean {
  left: 6%;
  --zone-line-bottom: 15.6%;
}
.trip-makatea__zone--crest {
  left: 25%;
  --zone-line-bottom: 63.3%;
}
.trip-makatea__zone--flat {
  left: 34%;
  --zone-line-bottom: 60%;
}
.trip-makatea__zone--backreef {
  left: 44.5%;
  --zone-label-top: 3.25rem;
  --zone-line-bottom: 29.4%;
}
.trip-makatea__zone--beach {
  left: 53.5%;
  --zone-line-bottom: 57.8%;
}
.trip-makatea__zone--fossil-crest {
  left: 63%;
  --zone-line-bottom: 64%;
}
.trip-makatea__zone--fossil-flat {
  left: 75%;
  --zone-line-bottom: 61.7%;
}
.trip-makatea__zone--forest {
  left: 93%;
  max-width: 8rem;
  --zone-line-bottom: 67.2%;
}
.trip-makatea__zone--crest { max-width: 9rem; }

.trip-makatea__markers line { stroke: var(--makatea-navy); stroke-width: 1.2; }
.trip-makatea__markers circle { fill: var(--makatea-navy); stroke: none; }
.trip-makatea__markers text {
  fill: #fff;
  font: 700 9px/1 var(--font-sans, sans-serif);
  text-anchor: middle;
}
.trip-makatea__notch {
  position: absolute;
  z-index: 3;
  left: 58%;
  margin: 0;
  font: italic 0.62rem/1.1 var(--font-sans, sans-serif);
  color: rgba(6, 40, 77, 0.72);
  white-space: nowrap;
  transform: translateY(-50%);
}
.trip-makatea__notch::before {
  content: "";
  display: inline-block;
  width: 2.4rem;
  margin-right: 0.4rem;
  border-top: 1px solid currentColor;
  vertical-align: middle;
}
.trip-makatea__notch--upper { top: 48.3%; }
.trip-makatea__notch--modern { top: 61.7%; color: var(--makatea-cyan); }

.trip-makatea__mobile-key { display: none; }
.trip-makatea__story,
.trip-makatea__evidence {
  width: min(90rem, calc(100% - clamp(3rem, 5vw, 5rem)));
  margin-inline: auto;
}
.trip-makatea__story {
  display: grid;
  grid-template-columns: minmax(25rem, 1.1fr) minmax(25rem, 1.15fr) minmax(13rem, 0.65fr);
  gap: clamp(1.25rem, 2.5vw, 2.5rem);
  padding-block: clamp(0.8rem, 1vw, 1rem);
  align-items: start;
}
.trip-makatea__eyebrow {
  margin: 0 0 0.45rem;
  color: var(--makatea-clay);
  font-size: 0.67rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.13em;
}
.trip-makatea__story h2 {
  margin: 0;
  max-width: none;
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(2rem, 2.55vw, 2.55rem);
  font-weight: 500;
  line-height: 0.94;
  letter-spacing: -0.035em;
}
.trip-makatea__subtitle {
  margin: 0.35rem 0 0;
  max-width: 24ch;
  color: var(--makatea-clay);
  font: italic 0.9rem/1.3 var(--font-display, Georgia, serif);
}
.trip-makatea__lede {
  margin: 0.35rem 0 0;
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(0.78rem, 0.9vw, 0.9rem);
  line-height: 1.42;
}
.trip-makatea__time {
  padding-left: clamp(1.2rem, 2.3vw, 2.2rem);
  border-left: 1px solid rgba(6, 40, 77, 0.35);
}
.trip-makatea__time dl { margin: 0; }
.trip-makatea__time dl > div + div { margin-top: 0.85rem; }
.trip-makatea__time dt {
  font-family: var(--font-display, Georgia, serif);
  font-size: 0.92rem;
  font-weight: 700;
}
.trip-makatea__time dd,
.trip-makatea__time > p {
  margin: 0.28rem 0 0;
  color: rgba(6, 40, 77, 0.76);
  font-size: 0.68rem;
  line-height: 1.48;
}
.trip-makatea__time > p { display: none; }

.trip-makatea__evidence {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 0;
  margin-bottom: clamp(2.3rem, 4vw, 3.5rem);
  padding: 0;
  list-style: none;
  border-block: 1px solid rgba(6, 40, 77, 0.35);
}
.trip-makatea__evidence li { min-width: 0; padding: 0.8rem 0.9rem 1rem; }
.trip-makatea__evidence li + li { border-left: 1px solid rgba(6, 40, 77, 0.35); }
.trip-makatea__evidence figure { margin: 0; }
.trip-makatea__evidence-image { position: relative; aspect-ratio: 1.85 / 1; overflow: hidden; }
.trip-makatea__evidence-image img { width: 100%; height: 100%; object-fit: cover; }
.trip-makatea__evidence-heading {
  display: flex;
  gap: 0.45rem;
  align-items: center;
}
.trip-makatea__evidence-heading > span {
  flex: 0 0 auto;
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  border-radius: 50%;
  color: var(--makatea-paper);
  background: var(--makatea-navy);
  font-size: 0.65rem;
  font-weight: 700;
}
.trip-makatea__evidence figcaption { padding-top: 0.7rem; }
.trip-makatea__evidence h3 {
  margin: 0;
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(0.9rem, 1.15vw, 1.1rem);
  line-height: 1.12;
}
.trip-makatea__evidence h3 i { color: var(--makatea-clay); font-size: 0.8em; font-weight: 500; }
.trip-makatea__evidence figcaption p {
  margin: 0.55rem 0 0;
  color: rgba(6, 40, 77, 0.76);
  font-size: 0.72rem;
  line-height: 1.45;
}

@media screen and (max-width: 900px) {
  .trip-makatea__zone b { font-size: 0.6rem; }
  .trip-makatea__zone small { font-size: 0.48rem; }
  .trip-makatea__story { grid-template-columns: minmax(15rem, 0.8fr) 1.2fr; }
  .trip-makatea__time { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: 1.5rem 0 0; border-left: 0; border-top: 1px solid rgba(6, 40, 77, 0.35); }
  .trip-makatea__time > p { margin: 0; padding: 0; border: 0; }
}

@media screen and (max-width: 720px) {
  .trip-makatea { margin-top: 4.5rem; }
  .trip-makatea__aerial img { height: auto; aspect-ratio: 16 / 9; }
  .trip-makatea__aerial figcaption { position: static; max-width: none; color: var(--makatea-navy); background: transparent; border-bottom: 1px solid rgba(6, 40, 77, 0.25); }
  .trip-makatea__diagram { height: 12rem; }
  .trip-makatea__zone-labels,
  .trip-makatea__notch { display: none; }
  .trip-makatea__mobile-key {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 1.25rem;
    gap: 0.8rem 1.2rem;
    border-bottom: 1px solid rgba(6, 40, 77, 0.35);
  }
  .trip-makatea__mobile-key div { min-width: 0; }
  .trip-makatea__mobile-key dt { overflow-wrap: anywhere; font-family: var(--font-display, Georgia, serif); font-size: 0.78rem; font-weight: 700; }
  .trip-makatea__mobile-key dd { margin: 0.15rem 0 0; color: rgba(6, 40, 77, 0.72); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.06em; }
  .trip-makatea__story,
  .trip-makatea__evidence { width: calc(100% - 2.5rem); }
  .trip-makatea__story { display: block; padding-block: 3rem; }
  .trip-makatea__story h2 { max-width: 9ch; }
  .trip-makatea__lede { margin-top: 2rem; }
  .trip-makatea__time { display: block; margin-top: 2rem; padding-top: 1.5rem; }
  .trip-makatea__time > p { margin-top: 1.5rem; }
  .trip-makatea__evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .trip-makatea__evidence li:nth-child(3) { border-left: 0; }
  .trip-makatea__evidence li:nth-child(n + 3) { border-top: 1px solid rgba(6, 40, 77, 0.35); }
}

@media screen and (max-width: 460px) {
  .trip-makatea__evidence { grid-template-columns: 1fr; }
  .trip-makatea__evidence li + li { border-left: 0; border-top: 1px solid rgba(6, 40, 77, 0.35); }
}

@media print {
  .trip-makatea { margin: 0; break-before: page; break-inside: avoid; }
  .trip-makatea__aerial img { height: 44mm; }
  .trip-makatea__aerial figcaption { display: none; }
  .trip-makatea__diagram { height: 43mm; }
  .trip-makatea__story { width: calc(100% - 12mm); grid-template-columns: 0.8fr 1.15fr 0.8fr; gap: 5mm; padding-block: 8mm; }
  .trip-makatea__story h2 { font-size: 25pt; }
  .trip-makatea__lede { margin-top: 1mm; font-size: 8pt; line-height: 1.4; }
  .trip-makatea__time { padding-left: 4mm; }
  .trip-makatea__time dt { font-size: 7.5pt; }
  .trip-makatea__time dd,
  .trip-makatea__time > p { font-size: 5.5pt; line-height: 1.3; }
  .trip-makatea__evidence { width: calc(100% - 12mm); margin-bottom: 0; }
  .trip-makatea__evidence li { padding: 2.5mm; }
  .trip-makatea__evidence figcaption { padding-top: 2mm; }
  .trip-makatea__evidence h3 { font-size: 7.5pt; }
  .trip-makatea__evidence figcaption p { font-size: 5pt; line-height: 1.25; }
}

/* Rc.93 — Four-pass HTML polish: clearer section gates, quieter figure type,
   viewport-aware pacing, and the approved field-campaign composition. */
@media screen {
  .trip-story-intro__photo--field::before { display: none; }
}

@container trip-report-shell (min-width: calc(73rem - 1px)) {
  /* Pass 1: early report landmarks should read as separate prepared sheets. */
  .trip-story-intro,
  .trip-team-thanks,
  .trip-methods {
    margin-top: clamp(2.75rem, 4vw, 4rem);
  }

  .trip-story-intro,
  .trip-methods,
  .trip-makatea {
    border-top: 3px solid var(--ink);
  }

  .trip-team-thanks { border-top-width: 3px; }

  /* Pass 2: one restrained figure-caption and annotation hierarchy. */
  .trip-story {
    --trip-figure-caption: 0.82rem;
    --trip-figure-meta: 0.75rem;
    --trip-figure-label: 0.72rem;
  }

  .trip-story-overview-map figcaption,
  .trip-story-hero-photo figcaption,
  .trip-story-intro__photo figcaption,
  .trip-island-visuals > figure > figcaption,
  .trip-site-media > figure > figcaption,
  .trip-site-media > .trip-site-locator > figcaption,
  .trip-site-media > .trip-media--site > figcaption,
  .trip-methods-feature figcaption,
  .trip-tide-story .tidal-report-plate figcaption {
    font-size: var(--trip-figure-caption);
    line-height: 1.38;
  }

  .trip-site-media > figure > figcaption :is(.trip-site-map-key, .trip-site-map-key__item, small),
  .trip-island-visuals > figure > figcaption :is(.trip-island-map-key, .trip-island-map-key__item, small),
  .trip-static-map figcaption small,
  .trip-site-locator figcaption small {
    font-size: var(--trip-figure-meta);
    line-height: 1.34;
  }

  .trip-model-label,
  .trip-methods-view__title,
  .trip-methods-view__legend,
  .trip-tide-story .tidal-report-feature__label,
  .trip-tide-story .tidal-report-ruler__axis-label,
  .trip-tide-story .tidal-report-trace__key {
    font-size: var(--trip-figure-label);
    line-height: 1.2;
  }

  .trip-model-label small { font-size: 0.68rem; }

  .trip-tide-story .tidal-report-plate figcaption {
    gap: 0.3rem;
    min-height: 3.35rem;
  }

  .trip-tide-story .tidal-report-plate figcaption strong {
    font-family: var(--font-body);
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .trip-tide-story .tidal-report-plate figcaption span {
    font-family: var(--font-display);
    font-size: 0.8rem;
    font-style: italic;
    line-height: 1.28;
  }

  /* Pass 3: reduce presentation scale without compressing the evidence. */
  .trip-methods {
    gap: clamp(1.35rem, 2vw, 1.9rem);
    padding-block: clamp(2.75rem, 4vw, 3.75rem);
  }

  .trip-methods .trip-section-heading h2 {
    max-width: 18ch;
    font-size: clamp(3.2rem, 4.2vw, 4.25rem);
    line-height: 0.98;
  }

  .trip-methods li,
  .trip-methods li + li { padding-block: 1.05rem 1.15rem; }
  .trip-methods h3 { font-size: clamp(1.4rem, 1.65vw, 1.7rem); }
  .trip-methods li p { font-size: 0.88rem; line-height: 1.44; }
  .trip-methods-feature { gap: clamp(1.25rem, 2.25vw, 2.25rem); }
  .trip-methods-view { aspect-ratio: 4 / 3; }
  .trip-methods-feature figcaption { padding-top: 0.9rem; }
  .trip-methods-feature figcaption strong {
    font-size: clamp(1.4rem, 1.8vw, 1.75rem);
    line-height: 1.08;
  }

  .trip-makatea { margin-top: clamp(3rem, 4vw, 4rem); }
  .trip-makatea__aerial img { height: clamp(14rem, 18vw, 17rem); }
  .trip-makatea__diagram { height: clamp(12.5rem, 15vw, 14.5rem); }

  .trip-island-hero__copy {
    padding-top: clamp(2.5rem, 3.5vw, 3.5rem);
    padding-bottom: clamp(1.75rem, 2.5vw, 2.5rem);
  }

  .trip-island-hero h2 { font-size: clamp(4rem, 6.4vw, 6.4rem); }
  .trip-island-hero:has(.trip-island-map) .trip-island-tally {
    margin-top: 1rem;
    padding-top: 0.85rem;
  }
  .trip-island-hero:has(.trip-island-map) .trip-island-stat {
    min-height: 4.4rem;
    padding-block: 0.55rem;
  }
  .trip-island-hero:has(.trip-island-map) .trip-island-stat strong {
    font-size: clamp(2.1rem, 3vw, 2.75rem);
  }
  .trip-island-hero:has(.trip-island-map) .trip-island-stat-separator { height: 4rem; }
  .trip-island-hero:has(.trip-island-map) .trip-island-visuals > figure > img {
    aspect-ratio: 16 / 9;
  }

  .trip-research {
    padding-block: clamp(2.75rem, 4vw, 3.75rem);
  }
  .trip-research .trip-section-heading {
    padding-bottom: clamp(1.1rem, 2vw, 1.65rem);
  }
  .trip-research h2 {
    font-size: clamp(3.15rem, 4.25vw, 4.25rem);
    line-height: 0.98;
  }
  .trip-research > ol > li,
  .trip-research > ol > li + li {
    padding-top: 1.2rem;
    padding-bottom: 1.35rem;
  }
  .trip-research > ol > li h3 { font-size: clamp(1.55rem, 1.9vw, 1.9rem); }
  .trip-research > ol > li p { margin-top: 0.75rem; font-size: 0.9rem; line-height: 1.48; }
  .trip-next-work { padding-block: 1rem; }
  .trip-next-work li { font-size: 0.86rem; line-height: 1.42; }
  .trip-research-sources { padding-top: 1.1rem; }
  .trip-research-sources li { padding-block: 0.55rem; }
  .trip-research .trip-research-sources li > span { font-size: 0.8rem; line-height: 1.38; }

  .trip-glossary {
    gap: clamp(2rem, 4vw, 4rem);
    padding-top: clamp(3.25rem, 4.5vw, 4.5rem);
    padding-bottom: clamp(3.5rem, 5vw, 4.75rem);
  }
  .trip-glossary h2 { font-size: clamp(3.4rem, 4.25vw, 4.25rem); }
  .trip-glossary dl div,
  .trip-glossary dl div:nth-child(n) { padding-block: 1.15rem 1.35rem; }
  .trip-glossary dt { font-size: clamp(1.2rem, 1.5vw, 1.5rem); }
  .trip-glossary dd { margin-top: 0.5rem; font-size: 0.9rem; line-height: 1.42; }

  /* Pass 4: implement the approved field-campaign target with real assets. */
  .trip-story-intro {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: clamp(2.75rem, 4vw, 4rem);
    border-top: 0;
    border-bottom: 3px solid var(--ink);
    background: var(--trip-paper);
  }

  .trip-story-intro__column {
    grid-template-rows: 19.5rem 22.8rem minmax(10.75rem, auto);
    background: var(--trip-paper);
    color: var(--ink);
  }

  .trip-story-intro__column--field { border-right: 1px solid rgba(30, 49, 84, 0.72); }

  .trip-story-intro__column > header {
    position: relative;
    padding: 3.25rem 1.5rem 1.5rem clamp(4.75rem, 6.5vw, 6.25rem);
  }

  .trip-story-intro__column > header::before {
    content: "";
    position: absolute;
    top: 3.25rem;
    bottom: 2.8rem;
    left: clamp(3.5rem, 4.5vw, 4.25rem);
    width: 1px;
    background: var(--campaign-orange);
  }

  .trip-story-intro__copy {
    padding: clamp(2.75rem, 3.5vw, 3.35rem) clamp(4.25rem, 8vw, 7.75rem) 1.5rem;
  }

  .trip-story-intro__column--field .trip-section-label,
  .trip-story-intro__column--field .trip-section-label > span,
  .trip-story-intro__column--field .trip-field-symbol { color: var(--campaign-cyan); }

  .trip-story-intro h2 {
    max-width: 18ch;
    margin-top: 1.4rem;
    color: var(--ink);
    font-size: clamp(3.45rem, 4.25vw, 4.25rem);
    letter-spacing: -0.025em;
    line-height: 0.98;
  }

  .trip-story-intro__copy p {
    font-size: clamp(0.875rem, 0.94vw, 0.9rem);
    line-height: 1.48;
  }
  .trip-story-intro__copy p + p { margin-top: 1rem; }

  .trip-story-intro__photo--field { margin-right: 0.2rem; }
  .trip-story-intro__photo--outreach {
    margin-left: 0.2rem;
    padding-top: 0;
    border-top: 0;
  }
  .trip-story-intro__photo--field img { object-position: 50% 54%; }
  .trip-story-intro__photo figcaption {
    position: relative;
    min-height: 3.3rem;
    padding: 0.65rem clamp(2.5rem, 5.6vw, 5.4rem) 0.65rem;
    color: var(--ink-soft);
    font-size: 0.76rem;
    line-height: 1.34;
  }
  .trip-story-intro__photo figcaption::before {
    content: "";
    position: absolute;
    top: 0.65rem;
    bottom: 0.65rem;
    left: clamp(2rem, 4.25vw, 4rem);
    width: 1px;
    background: var(--campaign-orange);
  }
  .trip-story-intro__photo--field figcaption { color: var(--ink-soft); }

  .trip-story-intro .trip-community-story,
  .trip-story-intro .trip-story-caution {
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: 0.875rem;
    padding: 1.55rem clamp(2.5rem, 4.5vw, 4.25rem) 1.65rem;
    border-top: 2px solid var(--ink);
    background: var(--trip-paper);
    color: var(--ink);
  }

  .trip-story-intro .trip-community-story > div,
  .trip-story-intro .trip-story-caution > div {
    padding-left: 1.5rem;
    border-left: 1px solid var(--campaign-orange);
  }

  .trip-story-intro .trip-story-caution .trip-field-symbol { color: var(--campaign-cyan); }
  .trip-story-intro .trip-community-story h3,
  .trip-story-intro .trip-story-caution h3 {
    color: var(--ink);
    font-size: clamp(1.45rem, 1.75vw, 1.7rem);
  }
  .trip-story-intro .trip-community-story p,
  .trip-story-intro .trip-story-caution p {
    margin-top: 0.55rem;
    color: var(--ink-soft);
    font-size: 0.88rem;
    line-height: 1.45;
  }
}

/* Rc.95 — Rarotonga coast-to-reef sequence. The comparison coast keeps its
   complete text and four photographs, but now resolves as one desktop spread. */
@container trip-report-shell (min-width: calc(73rem - 1px)) {
  #rarotonga {
    padding-bottom: 0;
  }

  #rarotonga .trip-island-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  #rarotonga .trip-island-hero__copy {
    display: grid;
    grid-template-columns: minmax(19rem, 0.31fr) minmax(0, 0.69fr);
    grid-template-areas:
      "label narrative"
      "title narrative"
      "date tally";
    column-gap: 2rem;
    align-items: start;
    min-height: 0;
    padding: 2rem 3rem 1.125rem;
  }

  #rarotonga .trip-island-hero__copy::after { display: none; }
  #rarotonga .trip-island-hero__copy > .trip-section-label { grid-area: label; }
  #rarotonga .trip-island-hero h2 {
    grid-area: title;
    align-self: center;
    font-size: clamp(3.6rem, 4.15vw, 4rem);
    line-height: 0.92;
  }
  #rarotonga .trip-island-date { grid-area: date; }

  #rarotonga .trip-island-narrative {
    grid-area: narrative;
    align-self: stretch;
    max-width: 34rem;
    margin: 0;
    padding-left: clamp(1.75rem, 2.5vw, 2.5rem);
    border-left: 1px solid color-mix(in oklch, var(--trip-paper) 64%, transparent);
    font-size: 0.86rem;
    line-height: 1.42;
  }

  #rarotonga .trip-island-tally--screen {
    grid-area: tally;
    align-self: end;
    margin: 0;
    padding-left: clamp(1.75rem, 2.5vw, 2.5rem);
    border-left: 1px solid color-mix(in oklch, var(--trip-paper) 64%, transparent);
    font-size: 0.76rem;
    line-height: 1.35;
  }

  #rarotonga .trip-island-visuals {
    display: block;
    padding: 0;
  }

  #rarotonga .trip-island-visuals > figure > img {
    width: 100%;
    height: clamp(14rem, 16.2vw, 15rem);
    aspect-ratio: auto;
    object-fit: cover;
    object-position: 50% 15%;
  }

  #rarotonga .trip-island-visuals > figure > figcaption {
    min-height: 2.15rem;
    padding: 0.45rem 3rem 0.5rem;
    border-bottom: 1px solid rgba(30, 49, 84, 0.24);
    color: var(--ink-soft);
    font-size: 0.76rem;
    line-height: 1.32;
  }

  #rarotonga .trip-rarotonga-evidence {
    grid-template-columns: minmax(0, 1.72fr) minmax(21rem, 1fr);
    gap: clamp(1.5rem, 2.5vw, 2.5rem);
    align-items: stretch;
    min-height: 24rem;
    margin-top: 0.85rem;
  }

  #rarotonga .trip-rarotonga-photos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.25vw, 1.25rem);
  }

  #rarotonga .trip-rarotonga-photos figure {
    display: grid;
    grid-template-rows: auto minmax(3.5rem, auto);
    align-content: start;
  }

  #rarotonga .trip-rarotonga-photos img { aspect-ratio: 4 / 3; }
  #rarotonga .trip-rarotonga-photos figcaption {
    padding-top: 0.65rem;
    font-size: 0.74rem;
    line-height: 1.34;
  }

  #rarotonga .trip-rarotonga-evidence > div:last-child {
    padding-left: clamp(1.5rem, 2.5vw, 2.5rem);
    border-left: 1px solid rgba(30, 49, 84, 0.58);
  }

  #rarotonga .trip-rarotonga-evidence h3 {
    margin: 0 0 0.75rem;
    color: var(--ink);
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 1.7vw, 1.65rem);
    font-weight: 600;
    line-height: 1.05;
  }

  #rarotonga .trip-rarotonga-evidence ul { margin: 0; padding-left: 1.15rem; }
  #rarotonga .trip-rarotonga-evidence li {
    margin-bottom: 0.6rem;
    font-size: 0.84rem;
    line-height: 1.42;
  }
}
