@import url("./dive-deck.css");

/* Cinematic Stream — cinematic, full-width media with quiet instrumentation. */
body[data-rvns-layout="into-blue"] {
  --dd-width: 1180px;
}

body,
body[data-rvns-layout] { background: var(--t-bg); }
body::before { display: none; }
.rvns-mast {
  position: absolute;
  z-index: 8;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  color: var(--t-on-media, #fffdf7);
  border: 0;
}

.rvns-dive-deck { width: 100%; }
.rvns-dive-hero {
  min-height: max(620px, 92vh);
  place-items: center;
  padding: 90px 24px 120px;
  text-align: center;
  border: 0;
}
.rvns-dive-hero::after {
  background: linear-gradient(0deg, rgba(0, 0, 0, .76) 0, rgba(0, 0, 0, .12) 48%, rgba(0, 0, 0, .38) 100%);
}
.rvns-dive-hero-content { align-self: center; max-width: 850px; }
.rvns-dive-eyebrow { color: var(--t-on-media, #fffdf7); font-size: 10px; }
.rvns-dive-hero h1 {
  max-width: 850px;
  font-size: clamp(58px, 10vw, 122px);
  font-style: normal;
  font-weight: 400;
  line-height: .86;
  letter-spacing: -.06em;
  text-shadow: 0 4px 34px rgba(0, 0, 0, .42);
  color: var(--t-on-media, #fffdf7);
}
.rvns-dive-hero-description {
  max-width: 38rem;
  margin: 30px auto 0;
  font-size: clamp(18px, 2vw, 23px);
  font-style: italic;
  color: var(--t-on-media, #fffdf7);
  opacity: .88;
}
.rvns-dive-hero-site { color: var(--t-on-media, #fffdf7); font-family: var(--t-font-heading, Georgia, serif); font-style: italic; }
.rvns-dive-hero-date { color: var(--t-on-media, #fffdf7); opacity: .66; }

.rvns-dive-summary {
  position: relative;
  z-index: 2;
  margin-top: 0;
  padding: 0 24px 64px;
  border: 0;
  background: var(--t-bg);
}
.rvns-dive-summary .rvns-dive-module-head { display: none; }
.rvns-dive-summary-grid {
  width: min(680px, 100%);
  margin-inline: auto;
  border: 0;
  background: transparent;
}
.rvns-dive-summary-grid .rvns-dive-stat {
  min-height: 110px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px;
  border: 0;
  text-align: center;
}
.rvns-dive-summary-grid .rvns-dive-stat dt { order: 2; color: var(--t-accent); font-size: 9px; }
.rvns-dive-summary-grid .rvns-dive-stat dd { order: 1; margin: 0; color: var(--t-text); font-size: clamp(28px, 4vw, 44px); }

/* One quiet instrument panel keeps the dive facts subordinate to the story.
   Every child remains a canonical dive-deck module; this wrapper only composes
   them for Cinematic Stream's suggested wide layout. */
.rvns-dive-instruments {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  width: min(var(--dd-width), calc(100% - 48px));
  margin: clamp(22px, 4vw, 52px) auto clamp(72px, 8vw, 112px);
  padding: 1px;
  border: 1px solid var(--dd-line);
  background: var(--dd-line);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .22);
}
.rvns-dive-instruments > .rvns-dive-module {
  min-width: 0;
  margin: 0;
  padding: clamp(26px, 3vw, 40px);
  border: 0;
  background: var(--t-bg-elevated);
}
.rvns-dive-instruments > :is(.rvns-dive-profile, .rvns-dive-conditions, .rvns-dive-provenance) {
  grid-column: 1 / -1;
}
.rvns-dive-instruments:not(:has(.rvns-dive-gear)) > .rvns-dive-site,
.rvns-dive-instruments:not(:has(.rvns-dive-site)) > .rvns-dive-gear { grid-column: 1 / -1; }
.rvns-dive-instruments .rvns-dive-module-head {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: baseline;
  margin-bottom: 22px;
}
.rvns-dive-instruments .rvns-dive-module-head > p {
  color: var(--dd-aqua);
  font-size: 9px;
}
.rvns-dive-instruments .rvns-dive-module-head h2 {
  font: 400 clamp(22px, 2.4vw, 32px)/1 var(--t-font-heading, Georgia, serif);
  letter-spacing: -.025em;
}

.rvns-dive-instruments .rvns-dive-profile-meta { display: none; }
.rvns-dive-instruments .rvns-dive-profile {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 24px;
}
.rvns-dive-instruments .rvns-dive-profile > :is(.rvns-dive-module-head, .rvns-dive-profile-chart) {
  grid-column: 1 / -1;
}
.rvns-dive-instruments .rvns-dive-profile-chart {
  padding: 14px 16px 10px;
  border-color: var(--dd-profile-axis);
  background: var(--dd-profile-surface);
  box-shadow: none;
}
.rvns-dive-instruments .rvns-dive-profile-svg { height: 138px; }
.rvns-dive-instruments .rvns-dive-profile-readout { margin-top: 5px; font-size: 14px; }
.rvns-dive-instruments .rvns-dive-profile-source { margin: 9px 0 0; font-size: 11px; }
.rvns-dive-profile-record {
  grid-column: 2;
  align-self: start;
  margin-right: calc(-1 * clamp(26px, 3vw, 40px));
  margin-top: 9px;
  color: var(--dd-muted);
  font-size: 11px;
  line-height: 1.5;
  text-align: right;
}
.rvns-dive-profile-record > p {
  margin: 0 0 4px;
  color: var(--dd-aqua);
  font: 700 9px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.rvns-dive-profile-record ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 2px 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.rvns-dive-instruments .rvns-dive-conditions-grid {
  border: 0;
  background: transparent;
}
.rvns-dive-instruments .rvns-dive-conditions-grid .rvns-dive-stat {
  min-height: 82px;
  padding: 10px 18px;
  justify-content: center;
  gap: 10px;
}
.rvns-dive-instruments .rvns-dive-conditions-grid .rvns-dive-stat dd {
  margin: 0;
  color: var(--dd-foam);
  font-size: clamp(20px, 2.2vw, 28px);
}
.rvns-dive-instruments .rvns-dive-attribution { margin: 12px 0 0; font-size: 11px; }

.rvns-dive-instruments .rvns-dive-site,
.rvns-dive-instruments .rvns-dive-gear { height: 100%; }
@media (min-width: 761px) {
  /* Keep the paired instrument panels within the cinematic desktop measure;
     the gear column already provides the intended overflow affordance. */
  .rvns-dive-instruments:has(.rvns-dive-site) > :is(.rvns-dive-site, .rvns-dive-gear) {
    max-height: 540px;
  }
}
.rvns-dive-instruments:has(.rvns-dive-site) .rvns-dive-gear {
  contain: size;
  display: flex;
  min-height: 0;
  flex-direction: column;
}
.rvns-dive-instruments .rvns-dive-site-layout { grid-template-columns: 1fr; gap: 20px; }
.rvns-dive-instruments .rvns-dive-site-copy { min-height: 0; }
.rvns-dive-instruments .rvns-dive-site-copy h3 { font-size: clamp(25px, 3vw, 36px); }
.rvns-dive-instruments .rvns-dive-site-copy .rvns-dive-coordinates { margin-top: 15px; }
.rvns-dive-instruments .rvns-dive-map iframe { min-height: 190px; }
.rvns-dive-instruments .rvns-dive-map p { font-size: 11px; }
.rvns-dive-instruments .rvns-dive-gear-grid {
  grid-template-columns: 1fr;
  min-height: 0;
  border: 0;
  overflow-y: auto;
  scrollbar-color: var(--dd-aqua) var(--t-bg-subtle);
  scrollbar-gutter: stable;
  background: var(--t-border);
}
.rvns-dive-instruments .rvns-dive-gear-item {
  min-height: 0;
  padding: 13px 16px;
  background: var(--t-bg-elevated);
}
.rvns-dive-instruments .rvns-dive-gear-item dt { margin-bottom: 6px; font-size: 9px; }
.rvns-dive-instruments .rvns-dive-gear-item dd { font-size: 15px; }

.rvns-dive-instruments .rvns-dive-provenance {
  display: grid;
  grid-template-columns: minmax(180px, .34fr) 1fr;
  gap: 28px;
  align-items: start;
}
.rvns-dive-instruments .rvns-dive-provenance .rvns-dive-module-head {
  display: block;
  margin: 0;
}
.rvns-dive-instruments .rvns-dive-provenance .rvns-dive-module-head > p { margin-bottom: 8px; }
.rvns-dive-instruments .rvns-dive-provenance-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 24px;
  max-width: none;
  margin: 0;
  font-size: 13px;
}

.rvns-dive-narrative-head {
  width: min(620px, calc(100% - 40px));
  padding: 46px 0 24px;
  text-align: center;
}
.rvns-dive-narrative-head > p,
.rvns-dive-narrative-head h2 { display: none; }
.rvns-dive-narrative > .story { max-width: none; padding: 0; }
.rvns-dive-narrative .block-paragraph,
.rvns-dive-narrative .block-heading,
.rvns-dive-narrative .block-quote,
.rvns-dive-narrative .block-impact {
  width: min(620px, calc(100% - 40px));
  max-width: none;
  margin: 32px auto 64px;
  color: var(--t-text);
  font: 400 clamp(18px, 2.3vw, 25px)/1.65 var(--t-font-heading, Georgia, serif);
  text-align: center;
}
.rvns-dive-narrative .block-image:not([data-size]),
.rvns-dive-narrative .block-video:not([data-size]) {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
}
/* Suggested media is this template's cinematic default. Override the shared
   wide-layout 1200px ceiling only when the author has not chosen an explicit
   size; medium/small/wide/bleed remain deliberate editor decisions. */
body[data-rvns-layout="into-blue"] .rvns-dive-narrative .story > :is(.block-image, .block-video):not([data-size]) {
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
}
.rvns-dive-narrative .block-image img,
.rvns-dive-narrative .block-video video {
  display: block;
  width: 100%;
  min-height: min(78vh, 760px);
  max-height: 900px;
  object-fit: cover;
}
.rvns-dive-narrative .block-image figcaption,
.rvns-dive-narrative .block-video figcaption {
  position: absolute;
  z-index: 2;
  left: clamp(18px, 4vw, 56px);
  right: clamp(18px, 4vw, 56px);
  bottom: clamp(18px, 4vw, 42px);
  margin: 0;
  color: var(--t-on-media, #fffdf7);
  font: 400 14px/1.5 var(--t-font-heading, Georgia, serif);
  text-shadow: 0 2px 12px #000;
}
.rvns-dive-narrative .block-image::after,
.rvns-dive-narrative .block-video::after {
  content: "";
  position: absolute;
  pointer-events: none;
  inset: 55% 0 0;
  background: linear-gradient(transparent, rgba(0, 0, 0, .56));
}

.rvns-dive-after-narrative { width: 100%; margin-top: 0; }
.rvns-dive-after-narrative .rvns-dive-module {
  width: min(var(--dd-width), calc(100% - 40px));
  margin-inline: auto;
}
.rvns-dive-after-narrative .rvns-dive-site { width: 100%; padding-inline: max(20px, calc((100vw - var(--dd-width)) / 2)); box-sizing: border-box; background: var(--t-bg-subtle); }
.rvns-dive-after-narrative .rvns-dive-site-layout { grid-template-columns: minmax(320px, 1.3fr) minmax(260px, .7fr); }
.rvns-dive-after-narrative .rvns-dive-map { order: -1; }
.rvns-dive-after-narrative .rvns-dive-conditions,
.rvns-dive-after-narrative .rvns-dive-gear { padding-block: 52px; }
.rvns-dive-after-narrative .rvns-dive-module-head h2 { font-size: clamp(30px, 4vw, 46px); }

.story-credits { max-width: 620px; margin-inline: auto; }

/* Generic-story adapter: prose keeps a readable measure while suggested
   visual media becomes the cinematic stream. Explicit author sizes remain
   authoritative through data-size. */
body[data-rvns-layout="into-blue"] > .story {
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
  padding-top: clamp(36px, 7vw, 80px);
  padding-bottom: clamp(56px, 9vw, 112px);
}
body[data-rvns-layout="into-blue"] > .story > .story-head {
  padding-top: 0;
  padding-bottom: clamp(28px, 5vw, 56px);
  text-align: center;
}
body[data-rvns-layout="into-blue"] > .story > .story-head .story-deck { margin-inline: auto; }
body[data-rvns-layout="into-blue"] > .story > :is(.story-head, .block-paragraph, .block-heading, .block-quote, .block-impact) {
  width: min(var(--t-content-width, 620px), calc(100% - 40px));
  max-width: none;
  margin-inline: auto;
}
body[data-rvns-layout="into-blue"] > .story > :is(.block-image, .block-video):not([data-size]) {
  position: relative;
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
}
body[data-rvns-layout="into-blue"] > .story > :is(.block-image, .block-video):not([data-size]) :is(img, video) {
  display: block;
  width: 100%;
  min-height: min(78vh, 760px);
  max-height: 900px;
  object-fit: cover;
}

@media (max-width: 760px) {
  .rvns-mast { width: calc(100% - 28px); }
  .rvns-dive-hero { min-height: 680px; padding: 110px 20px 100px; }
  .rvns-dive-summary { margin-top: 0; padding-inline: 10px; }
  .rvns-dive-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rvns-dive-summary-grid .rvns-dive-stat { min-height: 86px; padding: 8px 4px; border: 0; }
  .rvns-dive-summary-grid .rvns-dive-stat dd { font-size: 25px; }
  .rvns-dive-summary-grid .rvns-dive-stat dd span { display: block; margin-top: 3px; font-size: 10px; }
  .rvns-dive-instruments {
    grid-template-columns: 1fr;
    width: calc(100% - 28px);
    margin-top: 10px;
    margin-bottom: 56px;
  }
  .rvns-dive-instruments > .rvns-dive-module,
  .rvns-dive-instruments > :is(.rvns-dive-profile, .rvns-dive-conditions, .rvns-dive-provenance) {
    grid-column: 1;
    padding: 25px 20px;
  }
  .rvns-dive-instruments .rvns-dive-module-head { margin-bottom: 18px; }
  .rvns-dive-instruments .rvns-dive-profile { grid-template-columns: 1fr; }
  .rvns-dive-instruments .rvns-dive-profile > :is(.rvns-dive-module-head, .rvns-dive-profile-chart) { grid-column: 1; }
  .rvns-dive-profile-record { grid-column: 1; margin-right: -20px; text-align: right; }
  .rvns-dive-instruments .rvns-dive-profile-svg { height: 112px; }
  .rvns-dive-instruments .rvns-dive-conditions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rvns-dive-instruments .rvns-dive-conditions-grid .rvns-dive-stat { min-height: 76px; padding: 10px; }
  .rvns-dive-instruments .rvns-dive-provenance { display: block; }
  .rvns-dive-instruments .rvns-dive-provenance .rvns-dive-module-head { margin-bottom: 18px; }
  .rvns-dive-instruments .rvns-dive-provenance-list { grid-template-columns: 1fr; }
  .rvns-dive-instruments:has(.rvns-dive-site) .rvns-dive-gear { contain: none; height: auto; }
  .rvns-dive-instruments .rvns-dive-gear-grid { overflow-y: visible; }
  .rvns-dive-narrative .block-image img,
  .rvns-dive-narrative .block-video video { min-height: 66vh; }
  .rvns-dive-after-narrative .rvns-dive-site-layout { grid-template-columns: 1fr; }
}
