/* Deep Sea typography, 2026-09-15.
   Loaded only by dive.html. Surface, Beijing 2022, bottle handwriting,
   Contact numerals / CONNECT, and 100-inch measurement graphics are excluded.
   Keep original font sizes and all spatial / motion properties. */
.vertical-descent {
  --sea-type: 'Space Grotesk', 'IBM Plex Sans SC', sans-serif;
  --sea-meta: 'SF Mono', 'Roboto Mono', ui-monospace, 'IBM Plex Sans SC', monospace;
}

/* Explicit content roots prevent inheritance into locked reading views. */
.vertical-descent :is(.quiet-professional, .profile-coordinates, .vertical-case,
  .ltpo-rebuild, .media-lab-reading, .writing-reading,
  .writing-archive, .v2-writing-threshold, .v2-writing-piece,
  .v2-editorial-fragment, .v2-people-trace, .v2-editing-space, .v2-ending),
.vertical-descent :is(.quiet-professional, .profile-coordinates, .vertical-case,
  .ltpo-rebuild, .media-lab-reading, .writing-reading,
  .writing-archive, .v2-writing-threshold, .v2-writing-piece,
  .v2-editorial-fragment, .v2-people-trace, .v2-editing-space, .v2-ending) * {
  font-family: var(--sea-type) !important;
}

/* Small navigation / editorial labels retain their quiet monospaced voice.
   Plex supplies Chinese glyphs in mixed labels instead of system fallback. */
.vertical-descent :is(.dive-nav, .descent-depth, .lifeline-prompt,
  .quiet-professional > span, .profile-coordinate > span, .profile-coordinate em,
  .v2-site-index, .v2-site-enter, .v2-case-site--beijing > strong > i,
  .ltpo-v2-topbar, .ltpo-v2-section-label, .ltpo-v2-hero-meta,
  .media-lab-topbar, .media-lab-section-label,
  .writing-reading-topbar, .writing-reading-meta, .writing-reading-kicker,
  .writing-reading-label, .writing-archive-eyebrow,
  .seabed-cover-caption,
  .seabed-contact > small, .contact-status, .contact-cursor-label)
  :is(.water-word, .water-phrase, .water-glyph),
.vertical-descent :is(.dive-nav, .descent-depth, .lifeline-prompt,
  .quiet-professional > span, .profile-coordinate > span, .profile-coordinate em,
  .v2-site-index, .v2-site-enter, .v2-case-site--beijing > strong > i,
  .ltpo-v2-topbar, .ltpo-v2-section-label, .ltpo-v2-hero-meta,
  .media-lab-topbar, .media-lab-section-label,
  .writing-reading-topbar, .writing-reading-meta, .writing-reading-kicker,
  .writing-reading-label, .writing-archive-eyebrow,
  .seabed-cover-caption, .seabed-contact > small, .contact-status, .contact-cursor-label) {
  font-family: var(--sea-meta) !important;
}

.vertical-descent :is(.quiet-professional, .profile-coordinates) {
  font-weight: 400;
  letter-spacing: .04em;
}
.vertical-descent .quiet-professional :is(b, strong),
.vertical-descent .profile-coordinate b {
  font-weight: 500;
  letter-spacing: .08em;
}
.vertical-descent .vertical-case > strong {
  font-weight: 400;
}
.vertical-descent :is(.v2-case-site--media, .v2-case-site--beijing) > strong {
  font-weight: 500;
  letter-spacing: .02em;
}
.vertical-descent .v2-site-meta { font-weight: 400; letter-spacing: .06em; }
.vertical-descent .seabed-writing-heading { font-family: var(--sea-type); font-weight: 300; }

/* Use real 400 / 500 Chinese masters; avoid synthetic heavy headings. */
.vertical-descent :is(.ltpo-rebuild, .media-lab-reading, .writing-reading) :is(h1,h2,h3,h4,strong,b) {
  font-weight: 500 !important;
}
.vertical-descent :is(.ltpo-rebuild, .media-lab-reading, .writing-reading) :is(p,li) {
  font-weight: 400 !important;
}
.vertical-descent .media-lab-correspondence-word { font-weight: 500; }
.vertical-descent .media-lab-hero-copy h1 { letter-spacing: -.035em; }
.vertical-descent .media-lab-correspondence-word { letter-spacing: -.04em; }
.vertical-descent .writing-reading-heading h1 { letter-spacing: .015em; line-height: 1.15; }

/* Ordinary 100-inch copy participates; dimension graphics keep every original
   declaration. Do not change the root font or its custom properties. */
body.descent-body .vertical-descent .hundred-v4.hundred-v4 :is(h1,h2,h3,p,small,span,button,strong,i):not(
  .hundred-v4-opening-number, .hundred-v4-opening-number *,
  .hundred-v4-scale-98, .hundred-v4-scale-98 *,
  .hundred-v4-scale-100, .hundred-v4-scale-100 *,
  .hundred-v4-crt-readout, .hundred-v4-crt-readout *,
  .hundred-inch-screen, .hundred-inch-screen *) {
  font-family: var(--sea-type) !important;
}
body.descent-body .vertical-descent .hundred-v4.hundred-v4 :is(h1,h2,h3),
body.descent-body .vertical-descent .hundred-v4.hundred-v4 :is(h1,h2,h3) span,
body.descent-body .vertical-descent .hundred-v4.hundred-v4 .hundred-v4-question-copy strong {
  font-weight: 500 !important;
}
body.descent-body .vertical-descent .hundred-v4.hundred-v4 :is(h1,h2,h3) { letter-spacing: .01em; }

body.descent-body .vertical-descent .hundred-v4.hundred-v4 :is(.hundred-v4-opening-signal, .hundred-v4-verification-type) {
  font-family: var(--sea-type) !important;
  font-weight: 300 !important;
  font-stretch: normal;
}
body.descent-body .vertical-descent .hundred-v4.hundred-v4 .hundred-v4-display-en { font-stretch: normal; }

/* Plex's full-height CJK forms need space between stacked display lines. */
.vertical-descent .ltpo-rebuild :is(.ltpo-v2-question, .ltpo-v2-overview h2,
  .ltpo-v2-evidence-copy h3, .ltpo-v2-translation strong) {
  line-height: 1.06;
}
