/* Reality Lab HOME: all styles are scoped to the Lab document/root. */
body.rl-page {
  margin: 0;
  background: #ffffff;
  color: #333333;
}

.rl-root {
  --rl-navy: #001961;
  --rl-red: #c81529;
  --rl-text: #333333;
  --rl-surface: #ffffff;
  --rl-border: #d9dde6;
  --rl-surface-muted: #f5f5f5;
  --rl-gutter: 20px;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
  font-family: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
  color: var(--rl-text);
  font-size: 16px;
  line-height: 1.8;
  letter-spacing: 0.03em;
  overflow-wrap: anywhere;
  line-break: strict;
}

.rl-root,
.rl-root *,
.rl-root *::before,
.rl-root *::after {
  box-sizing: border-box;
}

.rl-root :where(h1, h2, h3, p, ul, ol, dl, dd, figure) {
  margin: 0;
}

.rl-root :where(a) {
  color: var(--rl-navy);
  text-underline-offset: 0.25em;
}

.rl-root :where(a):hover {
  text-decoration-thickness: 2px;
}

.rl-root :where(a, [tabindex]):focus-visible {
  outline: 2px solid var(--rl-navy);
  outline-offset: 4px;
}

.rl-container {
  width: 100%;
  max-width: 1180px;
  margin-inline: auto;
  padding-inline: var(--rl-gutter);
}

.rl-skip-link {
  position: absolute;
  top: 12px;
  left: var(--rl-gutter);
  z-index: 10;
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 16px;
  background: var(--rl-surface);
  clip-path: inset(50%);
}

.rl-skip-link:focus {
  clip-path: none;
}

.rl-header {
  border-bottom: 1px solid var(--rl-border);
}

.rl-header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding-block: 24px;
}

.rl-brand {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  min-width: 0;
}

.rl-brand > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  text-decoration: none;
}

.rl-brand-name:hover {
  text-decoration: underline;
}

.rl-brand-logo {
  display: block;
  width: 104px;
  max-width: 100%;
  height: auto;
}

.rl-brand-name {
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-return-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  gap: 8px;
}

.rl-main {
  flex: 1;
  padding-block: 48px 64px;
}

.rl-home-hero {
  display: grid;
  gap: 48px;
  align-items: start;
}

.rl-home-hero > *,
.rl-observation-detail > * {
  min-width: 0;
}

.rl-demo-label {
  display: inline-block;
  max-width: 100%;
  padding: 4px 10px;
  border: 1px solid currentColor;
  color: var(--rl-red);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.rl-title {
  color: var(--rl-navy);
  font-size: clamp(1.125rem, 1.6vw, 1.375rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.rl-statement {
  margin-top: 24px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.875rem, 3vw, 2.5rem);
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: 0.04em;
}

.rl-root .rl-statement-phrase {
  white-space: nowrap;
}

/* Leave room for the first Japanese phrase at narrow mobile widths. */
@media (max-width: 767px) {
  .rl-root .rl-statement {
    font-size: clamp(1.75rem, 7.7vw, 1.875rem);
  }
}

.rl-description {
  max-width: 25em;
  margin-top: 24px;
}

.rl-observation-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 44px;
  max-width: 100%;
  margin-top: 28px;
  padding-block: 8px;
  font-weight: 600;
}

.rl-eyebrow {
  color: var(--rl-navy);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
}

.rl-current-title {
  margin-top: 12px;
  color: var(--rl-navy);
  font-size: clamp(1.5rem, 2.2vw, 1.875rem);
  font-weight: 600;
  line-height: 1.65;
}

.rl-observation-figure {
  margin-top: 24px;
  border-top: 2px solid var(--rl-navy);
  border-bottom: 1px solid var(--rl-border);
}

.rl-figure-caption {
  padding-block: 20px;
}

.rl-figure-title {
  margin-top: 16px;
  color: var(--rl-navy);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
}

.rl-figure-scope {
  margin-top: 4px;
  font-size: 14px;
}

.rl-visit-layers {
  padding: 20px 16px 0;
  background: var(--rl-surface-muted);
}

.rl-same-visit {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--rl-navy);
  color: var(--rl-navy);
  font-size: 18px;
  font-weight: 600;
}

.rl-same-visit [lang="en"] {
  font-size: 12px;
  letter-spacing: 0.12em;
}

/* A single spine ties all three information layers to the same visit. */
.rl-source-comparison {
  border-left: 1px solid var(--rl-border);
}

.rl-source-layer {
  position: relative;
  padding: 24px 0 24px 20px;
}

.rl-source-layer::before {
  content: "";
  position: absolute;
  top: 36px;
  left: -1px;
  width: 12px;
  border-top: 1px solid var(--rl-navy);
}

.rl-source-field,
.rl-source-unknown {
  border-top: 1px solid var(--rl-border);
}

.rl-source-label {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.rl-source-note {
  color: var(--rl-text);
  font-weight: 400;
  letter-spacing: 0.02em;
}

.rl-record-value,
.rl-unknown-value {
  margin-top: 8px;
  color: var(--rl-navy);
  font-size: 22px;
  font-weight: 500;
  line-height: 1.65;
}

.rl-action-timeline {
  display: grid;
  gap: 16px;
  margin-top: 20px;
  padding: 0;
  list-style: none;
}

.rl-action-step {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  min-width: 0;
  min-height: 44px;
}

.rl-action-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 28px;
  left: 14px;
  height: calc(100% - 28px + 16px);
  border-left: 1px solid var(--rl-navy);
}

.rl-step-index {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--rl-navy);
  color: var(--rl-navy);
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.rl-step-text {
  padding-top: 2px;
  font-size: 15px;
  line-height: 1.7;
}

.rl-source-unknown {
  padding-block: 28px;
  border-top: 1px dashed var(--rl-navy);
}

.rl-source-unknown::before {
  top: 40px;
  border-top-style: dashed;
}

.rl-unknown-value {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px 16px;
  margin-top: 16px;
  font-size: 24px;
  font-weight: 600;
}

.rl-unknown-status {
  padding: 4px 10px;
  border: 1px dashed var(--rl-navy);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}

.rl-figure-context {
  padding-block: 16px 20px;
  font-size: 14px;
}

.rl-observation-detail {
  margin-top: 48px;
  padding-block: 24px;
  border-top: 1px solid var(--rl-navy);
  border-bottom: 1px solid var(--rl-border);
  scroll-margin-top: 5rem;
}

.rl-conditions-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
}

.rl-conditions-title {
  color: var(--rl-navy);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.rl-conditions-subtitle {
  display: block;
  margin-top: 4px;
  color: var(--rl-text);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.rl-observation-notes {
  display: grid;
  gap: 24px;
  margin-top: 24px;
}

.rl-observation-note {
  min-width: 0;
  padding-top: 16px;
  border-top: 1px solid var(--rl-border);
}

.rl-observation-note dt {
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-observation-note dd {
  margin-top: 8px;
  font-size: 18px;
  line-height: 1.7;
}

.rl-limitation {
  margin-top: 24px;
  font-size: 14px;
}

/* One scene, read through three layers; then placed back into the visit. */
.rl-root .rl-featured {
  margin-top: 64px;
}

.rl-root .rl-anatomy {
  margin-top: 56px;
}

.rl-root .rl-editorial-title {
  margin-top: 16px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 600;
  line-height: 1.7;
}

.rl-root .rl-editorial-intro {
  max-width: 42em;
  margin-top: 20px;
}

.rl-root .rl-featured-scene {
  margin-top: 32px;
  border-top: 1px solid var(--rl-navy);
  border-bottom: 1px solid var(--rl-border);
}

.rl-root .rl-scene-caption {
  position: relative;
  padding: 32px 16px 48px;
  background: var(--rl-surface-muted);
  text-align: center;
}

.rl-root .rl-scene-caption::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  height: 24px;
  border-left: 1px solid var(--rl-navy);
}

.rl-root .rl-scene-context {
  margin-top: 12px;
  font-size: 14px;
}

.rl-root .rl-scene-action {
  margin-top: 28px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.rl-root .rl-scene-position {
  margin-top: 16px;
  color: var(--rl-navy);
  font-size: 14px;
}

.rl-root .rl-reading-layers {
  max-width: 880px;
  margin-inline: auto;
}

.rl-root .rl-reading-layer {
  display: grid;
  gap: 16px;
  padding-block: 28px;
}

.rl-root .rl-reading-layer + .rl-reading-layer {
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-reading-layer > dt {
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-reading-layer > dt [lang="en"] {
  letter-spacing: 0.08em;
}

.rl-root .rl-reading-layer > dd {
  min-width: 0;
}

.rl-root .rl-reading-value {
  color: var(--rl-navy);
  font-size: 20px;
  line-height: 1.8;
}

.rl-root .rl-reading-note {
  margin-top: 12px;
  font-size: 14px;
}

.rl-root .rl-reading-state {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-reading-layer.rl-reading-unknown {
  border-top: 1px dashed var(--rl-navy);
}

.rl-root .rl-reading-unknown .rl-reading-value {
  font-weight: 600;
}

.rl-root .rl-anatomy-context {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 20px;
  margin-top: 28px;
  font-size: 14px;
}

.rl-root :where(.rl-anatomy-guide, .rl-anatomy-limit) {
  max-width: 60em;
  margin-top: 20px;
  font-size: 14px;
}

.rl-root .rl-anatomy-timeline {
  margin-top: 32px;
  padding: 0;
  list-style: none;
}

.rl-root .rl-anatomy-step {
  position: relative;
  min-width: 0;
  padding: 0 0 20px 52px;
}

.rl-root .rl-anatomy-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 36px;
  bottom: 0;
  left: 18px;
  border-left: 1px solid var(--rl-border);
}

.rl-root .rl-anatomy-number {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--rl-navy);
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.rl-root .rl-anatomy-unset .rl-anatomy-number {
  border-style: dashed;
}

.rl-root .rl-anatomy-step-body {
  padding: 8px 12px;
}

.rl-root .rl-anatomy-stage {
  color: var(--rl-navy);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.6;
}

.rl-root .rl-anatomy-status {
  margin-top: 4px;
  font-size: 14px;
}

.rl-root .rl-anatomy-focus .rl-anatomy-number {
  border-width: 2px;
}

.rl-root .rl-anatomy-focus .rl-anatomy-step-body {
  border-left: 2px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}

.rl-root .rl-anatomy-panel {
  display: grid;
  gap: 32px;
  margin-top: 24px;
  padding: 28px 20px;
  border-top: 2px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}

.rl-root .rl-anatomy-panel > * {
  min-width: 0;
}

.rl-root .rl-anatomy-panel-title {
  margin-top: 12px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 600;
  line-height: 1.6;
}

.rl-root .rl-anatomy-panel-intro {
  max-width: 20em;
  margin-top: 16px;
}

.rl-root .rl-anatomy-context-label {
  margin-top: 28px;
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-anatomy-neighbors {
  margin-top: 16px;
  padding: 0;
  list-style: none;
}

.rl-root .rl-anatomy-neighbors li {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding-bottom: 28px;
}

.rl-root .rl-anatomy-neighbors li:last-child {
  padding-bottom: 0;
}

.rl-root .rl-anatomy-neighbors li:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 10px;
  bottom: 8px;
  width: 6px;
  height: 6px;
  border-right: 1px solid var(--rl-navy);
  border-bottom: 1px solid var(--rl-navy);
  transform: rotate(45deg);
}

.rl-root .rl-anatomy-neighbor-index {
  min-width: 28px;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.rl-root .rl-anatomy-neighbor-focus {
  color: var(--rl-navy);
  font-weight: 600;
}

.rl-root .rl-anatomy-neighbor-note {
  display: block;
  font-size: 14px;
}

.rl-root .rl-anatomy-focus-notes > div + div {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-anatomy-focus-notes dt {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-anatomy-focus-notes dd {
  margin-top: 12px;
  color: var(--rl-navy);
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  line-height: 1.8;
}

.rl-root .rl-anatomy-unresolved {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px dashed var(--rl-navy);
  font-size: 14px;
}

.rl-root .rl-anatomy-unresolved-title {
  margin: 0 0 8px;
  color: var(--rl-navy);
  font-size: 16px;
  font-weight: 600;
}

.rl-root .rl-anatomy-domains {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 16px;
  padding: 0;
  list-style: none;
  color: var(--rl-navy);
  font-size: 16px;
}

.rl-root .rl-anatomy-unresolved-note {
  margin-top: 16px;
}

.rl-footer {
  border-top: 1px solid var(--rl-border);
}

.rl-footer-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding-block: 24px;
}

.rl-footer-name,
.rl-copyright {
  font-size: 12px;
}

@media (min-width: 768px) {
  .rl-root .rl-anatomy-panel {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 40px;
    padding: 40px 32px;
  }

  .rl-root .rl-featured {
    margin-top: 80px;
  }

  .rl-root .rl-anatomy {
    margin-top: 72px;
  }

  .rl-root .rl-scene-caption {
    padding-block: 40px 56px;
  }

  .rl-root .rl-reading-layer {
    grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
    gap: 32px;
    padding-block: 32px;
  }

  .rl-root {
    --rl-gutter: 24px;
  }

  .rl-main {
    padding-block: 64px 80px;
  }

  .rl-observation-detail {
    margin-top: 64px;
    padding-block: 32px;
  }

  .rl-observation-notes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .rl-root {
    --rl-gutter: 32px;
  }

  .rl-home-hero {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
    gap: 40px;
  }

  .rl-identity {
    padding-top: 40px;
  }

  .rl-visit-layers {
    padding-inline: 24px;
  }

  .rl-observation-notes {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .rl-observation-note {
    padding-top: 0;
    border-top: 0;
  }

  .rl-observation-note + .rl-observation-note {
    padding-left: 20px;
    border-left: 1px solid var(--rl-border);
  }

  .rl-action-timeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }

  .rl-action-step {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .rl-action-step:not(:last-child)::before {
    top: 14px;
    left: 28px;
    width: calc(100% - 28px + 12px);
    height: 0;
    border-top: 1px solid var(--rl-navy);
    border-left: 0;
  }
}

/* Keep the full vertical sequence until seven readable stages fit in one row. */
@media (min-width: 1180px) {
  .rl-root .rl-anatomy-timeline {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  .rl-root .rl-anatomy-step {
    padding: 52px 0 0;
  }

  .rl-root .rl-anatomy-step:not(:last-child)::before {
    top: 18px;
    bottom: auto;
    left: 36px;
    width: calc(100% - 36px);
    border-top: 1px solid var(--rl-border);
    border-left: 0;
  }

  .rl-root .rl-anatomy-step-body {
    padding: 12px;
  }

  .rl-root .rl-anatomy-focus .rl-anatomy-step-body {
    border-top: 2px solid var(--rl-navy);
    border-left: 0;
    padding-top: 10px;
  }
}

/* Both views share one visit and one unresolved question, without a score. */
.rl-root .rl-input-comparison {
  margin-top: 80px;
}

.rl-root .rl-comparison-caption {
  text-align: center;
}

.rl-root .rl-comparison-question-label {
  margin-top: 28px;
  color: var(--rl-navy);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
}

.rl-root .rl-comparison-premise {
  margin-top: 16px;
  font-size: 16px;
}

.rl-root .rl-comparison-disclosure {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px 20px;
  margin-top: 24px;
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-comparison-assumption {
  max-width: 58em;
  margin-top: 12px;
  margin-inline: auto;
  font-size: 14px;
}

.rl-root .rl-comparison-axis {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 20px;
  margin-top: 28px;
  padding: 16px;
  border-top: 2px solid var(--rl-navy);
  border-bottom: 1px solid var(--rl-border);
  background: var(--rl-surface-muted);
  color: var(--rl-navy);
  font-size: 14px;
}

.rl-root .rl-comparison-axis [lang="en"] {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
}

.rl-root .rl-comparison-views {
  position: relative;
  border-left: 1px solid var(--rl-border);
}

.rl-root .rl-comparison-views::after {
  content: "";
  position: absolute;
  bottom: -24px;
  left: 50%;
  height: 24px;
  border-left: 1px solid var(--rl-navy);
}

.rl-root .rl-comparison-view {
  position: relative;
  min-width: 0;
  padding: 24px 0 8px 20px;
}

.rl-root .rl-comparison-view + .rl-comparison-view {
  border-top: 1px solid var(--rl-navy);
}

.rl-root .rl-comparison-view::before {
  content: "";
  position: absolute;
  top: 40px;
  left: -1px;
  width: 12px;
  border-top: 1px solid var(--rl-navy);
}

.rl-root .rl-comparison-view-title {
  color: var(--rl-navy);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.04em;
}

.rl-root .rl-comparison-rows {
  margin-top: 20px;
}

.rl-root .rl-comparison-row {
  padding-block: 20px;
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-comparison-row dt {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-comparison-row dt [lang="en"] {
  font-size: 12px;
  letter-spacing: 0.08em;
}

.rl-root .rl-comparison-row dd {
  margin-top: 12px;
}

.rl-root .rl-comparison-record {
  color: var(--rl-navy);
  font-size: 24px;
  font-weight: 500;
}

.rl-root .rl-comparison-actions {
  display: grid;
  gap: 4px 20px;
  padding: 0;
  list-style: none;
  color: var(--rl-navy);
  font-size: 18px;
}

.rl-root .rl-comparison-unknown-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  padding: 0;
  list-style: none;
  color: var(--rl-navy);
  font-size: 18px;
}

.rl-root .rl-comparison-note {
  max-width: 56em;
  margin-top: 12px;
  font-size: 14px;
}

.rl-root .rl-comparison-shared {
  position: relative;
  margin-top: 24px;
  padding: 32px 16px;
  border-top: 1px solid var(--rl-navy);
  border-bottom: 1px dashed var(--rl-navy);
  background: var(--rl-surface-muted);
  text-align: center;
}

.rl-root .rl-comparison-shared-title {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 16px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-comparison-shared-title [lang="en"] {
  letter-spacing: 0.08em;
}

.rl-root .rl-comparison-shared-question {
  margin-top: 20px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.375rem, 3vw, 2.25rem);
  font-weight: 600;
  line-height: 1.7;
}

.rl-root .rl-comparison-shared-status {
  margin-top: 20px;
}

.rl-root .rl-comparison-shared-note {
  max-width: 50em;
  margin-top: 24px;
  margin-inline: auto;
  font-size: 14px;
}

.rl-root .rl-comparison-insight {
  position: relative;
  padding-top: 48px;
  text-align: center;
}

.rl-root .rl-comparison-insight::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  height: 24px;
  border-left: 1px solid var(--rl-navy);
}

.rl-root .rl-comparison-insight .rl-comparison-note {
  max-width: 38em;
  margin: 20px auto 0;
}

.rl-root .rl-comparison-insight-text {
  margin-top: 16px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.25rem, 2.4vw, 2rem);
  font-weight: 600;
  line-height: 1.8;
}

.rl-root .rl-comparison-insight-phrase {
  display: inline-block;
  max-width: 100%;
}

@media (min-width: 768px) {
  .rl-root .rl-input-comparison {
    margin-top: 104px;
  }
}

@media (min-width: 1024px) {
  .rl-root .rl-comparison-views {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(4, auto);
    border-left: 0;
  }

  .rl-root .rl-comparison-view {
    display: grid;
    grid-row: span 4;
    grid-template-rows: subgrid;
    padding: 24px 28px 8px;
  }

  .rl-root .rl-comparison-rows {
    display: grid;
    grid-row: span 3;
    grid-template-rows: subgrid;
  }

  .rl-root .rl-comparison-view + .rl-comparison-view {
    border-top: 0;
    border-left: 1px solid var(--rl-border);
  }

  .rl-root .rl-comparison-view::before {
    display: none;
  }

  .rl-root .rl-comparison-views::after {
    bottom: -28px;
    left: 25%;
    width: 50%;
    height: 28px;
    border-right: 1px solid var(--rl-navy);
    border-bottom: 1px solid var(--rl-navy);
  }

  .rl-root .rl-comparison-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rl-root .rl-comparison-shared {
    margin-top: 56px;
    padding: 36px 28px;
  }

  .rl-root .rl-comparison-shared::before {
    content: "";
    position: absolute;
    top: -29px;
    left: 50%;
    height: 28px;
    border-left: 1px solid var(--rl-navy);
  }
}

/* Editorial questions and future scope stay distinct from observed facts. */
.rl-root :where(.rl-reality-insight, .rl-map-index-concept) {
  margin-top: 80px;
}

.rl-root .rl-insight-spread {
  display: grid;
  gap: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--rl-navy);
}

.rl-root .rl-insight-spread > * {
  min-width: 0;
}

.rl-root .rl-insight-question {
  margin-top: 20px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 600;
  line-height: 1.8;
}

.rl-root :where(.rl-insight-question-phrase, .rl-concept-title-phrase) {
  display: inline-block;
  max-width: 100%;
}

.rl-root .rl-insight-intro {
  max-width: 26em;
  margin-top: 20px;
}

.rl-root .rl-insight-caption .rl-demo-label {
  margin-top: 24px;
}

.rl-root .rl-insight-scope {
  margin-top: 12px;
  font-size: 14px;
}

.rl-root .rl-insight-evidence {
  border-left: 1px solid var(--rl-border);
  padding-left: 20px;
}

.rl-root .rl-insight-label {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 16px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-insight-label [lang="en"] {
  letter-spacing: 0.08em;
}

.rl-root :where(.rl-insight-facts, .rl-insight-unknowns) {
  display: grid;
  gap: 4px 24px;
  margin-top: 16px;
  padding: 0;
  list-style: none;
  font-size: 18px;
  color: var(--rl-navy);
}

.rl-root .rl-insight-note {
  max-width: 60em;
  margin-top: 16px;
  font-size: 14px;
}

.rl-root .rl-insight-unknown {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px dashed var(--rl-navy);
}

.rl-root .rl-insight-next {
  padding: 28px 20px;
  border-top: 2px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}

.rl-root .rl-insight-questions {
  display: grid;
  gap: 20px 40px;
  margin-top: 24px;
}

.rl-root .rl-insight-questions > div {
  min-width: 0;
  padding-top: 16px;
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-insight-questions dt {
  color: var(--rl-navy);
  font-size: 16px;
  font-weight: 600;
}

.rl-root .rl-insight-questions dd {
  margin-top: 8px;
}

.rl-root .rl-insight-editorial-text {
  max-width: 38em;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.125rem, 1.8vw, 1.375rem);
  font-weight: 600;
  line-height: 1.9;
}

.rl-root .rl-concept-caption {
  max-width: 52em;
}

.rl-root .rl-concept-status {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  max-width: 100%;
  margin-top: 20px;
  padding: 4px 12px;
  border: 1px dashed var(--rl-navy);
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-concept-intro {
  margin-top: 20px;
}

.rl-root .rl-concept-directions {
  margin-top: 32px;
  border-top: 2px solid var(--rl-navy);
  border-bottom: 1px solid var(--rl-border);
}

.rl-root .rl-concept-track {
  display: grid;
  gap: 24px;
  padding-block: 28px;
}

.rl-root .rl-concept-track + .rl-concept-track {
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-concept-track-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 16px;
  color: var(--rl-navy);
  font-size: 16px;
  font-weight: 600;
}

.rl-root .rl-concept-track-title [lang="en"] {
  font-size: 22px;
  letter-spacing: 0.06em;
}

.rl-root .rl-concept-path {
  padding: 0;
  list-style: none;
}

.rl-root .rl-concept-path li {
  position: relative;
  min-width: 0;
  padding: 0 0 28px 28px;
}

.rl-root .rl-concept-path li:last-child {
  padding-bottom: 0;
}

.rl-root .rl-concept-path li::after {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 10px;
  height: 10px;
  border: 1px solid var(--rl-navy);
  border-radius: 50%;
}

.rl-root .rl-concept-path li:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 18px;
  bottom: -8px;
  left: 5px;
  border-left: 1px solid var(--rl-border);
}

.rl-root .rl-concept-path li > span {
  display: block;
  color: var(--rl-navy);
  font-size: 20px;
  font-weight: 500;
}

.rl-root .rl-concept-path small {
  display: block;
  margin-top: 4px;
  font-size: 14px;
}

.rl-root .rl-concept-possibility {
  max-width: 52em;
  margin-top: 24px;
}

.rl-root .rl-concept-limit {
  max-width: 60em;
  margin-top: 16px;
  font-size: 14px;
}

@media (min-width: 768px) {
  .rl-root :where(.rl-reality-insight, .rl-map-index-concept) {
    margin-top: 104px;
  }

  .rl-root .rl-insight-questions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rl-root .rl-insight-next {
    padding: 32px;
  }
}

@media (min-width: 1024px) {
  .rl-root .rl-insight-spread {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 40px;
    padding-top: 40px;
  }

  .rl-root :where(.rl-insight-next, .rl-insight-editorial) {
    grid-column: 1 / -1;
  }

  .rl-root .rl-insight-evidence {
    padding-left: 32px;
  }

  .rl-root .rl-concept-track {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 2.2fr);
    gap: 40px;
    padding-block: 36px;
  }

  .rl-root .rl-concept-path {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
  }

  .rl-root .rl-concept-path li {
    padding: 24px 0 0;
  }

  .rl-root .rl-concept-path li::after {
    top: 0;
  }

  .rl-root .rl-concept-path li:not(:last-child)::before {
    top: 5px;
    bottom: auto;
    left: 10px;
    right: -20px;
    border-left: 0;
    border-top: 1px solid var(--rl-border);
  }
}

/* Close the HOME with method, limits and a future media entry. */
.rl-root .rl-reference-entry {
  display: grid;
  gap: 48px;
  margin-top: 64px;
  padding-top: 32px;
  border-top: 1px solid var(--rl-navy);
}

.rl-root .rl-reference-entry > * {
  min-width: 0;
}

.rl-root .rl-methodology {
  scroll-margin-top: 48px;
}

.rl-root .rl-reference-title {
  margin-top: 16px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.5rem, 2.4vw, 1.875rem);
  font-weight: 600;
  line-height: 1.8;
}

.rl-root .rl-reference-phrase {
  display: inline-block;
  max-width: 100%;
}

.rl-root .rl-reference-intro {
  max-width: 36em;
  margin-top: 20px;
}

.rl-root .rl-method-heading .rl-demo-label {
  margin-top: 20px;
}

.rl-root .rl-method-layer {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-reference-label {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  align-items: baseline;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root .rl-reference-label [lang="en"],
.rl-root .rl-reference-label[lang="en"] {
  letter-spacing: 0.08em;
}

.rl-root .rl-method-notes {
  display: grid;
  gap: 16px;
  margin-top: 20px;
}

.rl-root :where(.rl-method-notes, .rl-media-materials) dt {
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}

.rl-root :where(.rl-method-notes, .rl-media-materials) dd {
  margin-top: 4px;
}

.rl-root .rl-method-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 20px;
  padding: 0;
  list-style: none;
}

.rl-root .rl-reference-note {
  margin-top: 16px;
  font-size: 14px;
}

.rl-root .rl-method-limitations {
  border-top-style: dashed;
}

.rl-root .rl-method-limit-intro {
  margin-top: 16px;
}

.rl-root .rl-method-unconfirmed {
  display: grid;
  gap: 4px 24px;
  margin-top: 12px;
  padding-left: 1.25em;
}

.rl-root .rl-method-boundary {
  margin-top: 20px;
  padding-left: 16px;
  border-left: 2px solid var(--rl-navy);
  color: var(--rl-navy);
}

.rl-root .rl-principle-statement {
  margin-top: 16px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.9;
}

.rl-root .rl-media-entry {
  padding-top: 32px;
  border-top: 1px solid var(--rl-border);
}

.rl-root .rl-media-audience {
  margin-top: 16px;
  font-size: 14px;
}

.rl-root .rl-media-plan {
  margin-top: 32px;
  padding: 24px 20px;
  background: var(--rl-surface-muted);
}

.rl-root .rl-media-materials {
  display: grid;
  gap: 20px;
  margin-top: 20px;
}

.rl-root .rl-media-rights {
  margin-top: 24px;
}

.rl-root .rl-method-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  max-width: 100%;
  min-height: 44px;
  margin-top: 24px;
  padding-block: 8px;
  font-weight: 600;
}

@media (min-width: 768px) {
  .rl-root .rl-reference-entry {
    margin-top: 80px;
    padding-top: 40px;
  }

  .rl-root .rl-method-unconfirmed {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .rl-root .rl-reference-entry {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    gap: 48px;
  }

  .rl-root .rl-media-entry {
    padding-top: 0;
    padding-left: 40px;
    border-top: 0;
    border-left: 1px solid var(--rl-border);
  }
}

/* Keep the adjacent conditions strip quiet without dropping its DEMO disclosure. */
.rl-root .rl-conditions-header .rl-demo-label {
  padding: 0;
  border: 0;
  color: var(--rl-navy);
}

/* English system labels wrap at spaces rather than inside a word. */
.rl-root [lang="en"] {
  overflow-wrap: normal;
  word-break: normal;
}

.rl-root .rl-title-phrase {
  display: inline-block;
  max-width: 100%;
}

/* Full Anatomy only. HOME selectors and declarations above remain unchanged. */
.rl-root .rl-full-anatomy .rl-full-title {
  max-width: 26em;
  margin-block: 16px 28px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.75rem, 3.2vw, 2.75rem);
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-full-anatomy .rl-full-conditions {
  display: grid;
  gap: 20px 32px;
  margin-top: 32px;
  padding-block: 24px;
  border-block: 1px solid var(--rl-border);
}
.rl-root .rl-full-anatomy .rl-full-conditions dt {
  margin-bottom: 4px;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}
.rl-root .rl-full-anatomy .rl-full-note {
  max-width: 60em;
  margin-top: 16px;
  font-size: 14px;
}
.rl-root .rl-full-anatomy .rl-full-journey {
  margin-top: 64px;
}
.rl-root .rl-full-anatomy .rl-full-timeline {
  margin-top: 32px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-full-anatomy .rl-full-step {
  position: relative;
  padding: 0 0 28px 48px;
}
.rl-root .rl-full-anatomy .rl-full-step:not(:last-child)::before {
  content: "";
  position: absolute;
  top: 36px;
  bottom: 0;
  left: 17px;
  border-left: 1px solid var(--rl-border);
}
.rl-root .rl-full-anatomy .rl-full-number {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--rl-navy);
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.rl-root .rl-full-anatomy .rl-full-unset .rl-full-number {
  border-style: dashed;
}
.rl-root .rl-full-anatomy .rl-full-step-content {
  padding: 4px 0 24px;
  border-bottom: 1px solid var(--rl-border);
}
.rl-root .rl-full-anatomy .rl-full-step-heading h3 {
  color: var(--rl-navy);
  font-size: 22px;
  font-weight: 600;
}
.rl-root .rl-full-anatomy .rl-full-status {
  margin-top: 4px;
  color: var(--rl-navy);
  font-size: 14px;
}
.rl-root .rl-full-anatomy .rl-full-reading {
  display: grid;
  gap: 20px;
  margin-top: 20px;
}
.rl-root .rl-full-anatomy .rl-full-reading dt {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin-bottom: 6px;
  color: var(--rl-navy);
  font-size: 13px;
}
.rl-root .rl-full-anatomy .rl-full-reading dt [lang="en"] {
  font-weight: 600;
  letter-spacing: 0.08em;
}
.rl-root .rl-full-anatomy .rl-full-focus .rl-full-number {
  border-width: 2px;
}
.rl-root .rl-full-anatomy .rl-full-focus .rl-full-step-content {
  padding: 16px;
  border-top: 2px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-full-anatomy .rl-full-focus-preview {
  display: grid;
  gap: 28px;
  margin-top: 24px;
  padding: 28px 24px;
  border-top: 2px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-full-anatomy .rl-full-focus-title {
  margin-top: 12px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(2rem, 3.5vw, 2.75rem);
}
.rl-root .rl-full-anatomy .rl-full-evidence > p + p {
  margin-top: 12px;
}
@media (min-width: 768px) {
  .rl-root .rl-full-anatomy .rl-full-conditions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rl-root .rl-full-anatomy .rl-full-step {
    padding-left: 72px;
  }
  .rl-root .rl-full-anatomy .rl-full-step-content {
    display: grid;
    grid-template-columns: minmax(140px, 0.65fr) minmax(0, 2fr);
    gap: 24px;
  }
  .rl-root .rl-full-anatomy .rl-full-reading {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 0;
  }
  .rl-root .rl-full-anatomy .rl-full-focus-preview {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    align-items: center;
    padding: 40px;
  }
}

/* Static Focus Lens: every new rule is confined to the Anatomy lens. */
.rl-root .rl-focus-lens {
  margin-block: 48px 40px;
  border-top: 2px solid var(--rl-navy);
  color: var(--rl-navy);
}
.rl-root .rl-focus-lens .rl-lens-header {
  padding-top: 28px;
}
.rl-root .rl-focus-lens .rl-lens-disclosure {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: 16px;
  font-size: 14px;
}
.rl-root .rl-focus-lens .rl-lens-hero {
  display: grid;
  gap: 28px;
  margin-top: 28px;
}
.rl-root .rl-focus-lens .rl-lens-number {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 20px;
  font-size: clamp(4rem, 7vw, 6rem);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.rl-root .rl-focus-lens .rl-lens-number span {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
}
.rl-root .rl-focus-lens .rl-lens-title,
.rl-root .rl-focus-lens .rl-lens-observation,
.rl-root .rl-focus-lens .rl-lens-question {
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-focus-lens .rl-lens-title {
  margin-top: 12px;
  font-size: clamp(2rem, 3.5vw, 3rem);
}
.rl-root .rl-focus-lens .rl-lens-observation {
  margin-block: 12px 16px;
  font-size: clamp(1.375rem, 2.3vw, 2rem);
}
.rl-root .rl-focus-lens .rl-lens-heading {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-focus-lens .rl-lens-heading > span {
  display: block;
  margin-bottom: 8px;
  font-family: sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
}
.rl-root .rl-focus-lens .rl-lens-note {
  max-width: 64em;
  margin-top: 16px;
  font-size: 14px;
}
.rl-root .rl-focus-lens .rl-lens-context {
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid var(--rl-border);
}
.rl-root .rl-focus-lens .rl-lens-steps {
  display: grid;
  margin-top: 20px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-focus-lens .rl-lens-step {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 16px;
  padding: 20px;
  border-left: 1px solid var(--rl-navy);
}
.rl-root .rl-focus-lens .rl-lens-step h4 {
  font-size: 22px;
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-step-number {
  font-size: 24px;
  font-variant-numeric: tabular-nums;
  line-height: 1.6;
}
.rl-root .rl-focus-lens .rl-lens-step-focus {
  border-left-width: 3px;
  background: var(--rl-surface-muted);
}
.rl-root .rl-focus-lens .rl-lens-step-unset {
  border-left-style: dashed;
}
.rl-root .rl-focus-lens .rl-lens-status {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 500;
}
.rl-root .rl-focus-lens .rl-lens-step-record {
  margin-top: 12px;
}
.rl-root .rl-focus-lens .rl-lens-boundary {
  display: grid;
  gap: 28px;
  margin-top: 28px;
}
.rl-root .rl-focus-lens .rl-lens-known,
.rl-root .rl-focus-lens .rl-lens-unknown {
  padding: 24px;
  border-top: 1px solid var(--rl-navy);
}
.rl-root .rl-focus-lens .rl-lens-unknown {
  border: 1px dashed var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-focus-lens .rl-lens-records {
  margin-top: 16px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-focus-lens .rl-lens-records li + li {
  margin-top: 4px;
}
.rl-root .rl-focus-lens .rl-lens-records strong {
  font-size: 20px;
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-caption {
  margin-top: 20px;
  font-size: 13px;
}
.rl-root .rl-focus-lens .rl-lens-caption > span {
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-touchpoints,
.rl-root .rl-focus-lens .rl-lens-sources,
.rl-root .rl-focus-lens .rl-lens-next {
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--rl-border);
}
.rl-root .rl-focus-lens .rl-lens-touchpoint-list {
  margin-top: 24px;
}
.rl-root .rl-focus-lens .rl-lens-touchpoint {
  display: grid;
  gap: 16px;
  padding-block: 24px;
  border-top: 1px solid var(--rl-border);
}
.rl-root .rl-focus-lens .rl-lens-touchpoint-unconfirmed {
  border-top-style: dashed;
}
.rl-root .rl-focus-lens .rl-lens-touchpoint dt {
  font-size: 20px;
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-touchpoint dd p + p {
  margin-top: 12px;
}
.rl-root .rl-focus-lens .rl-lens-detail-label {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-sources {
  display: grid;
  gap: 36px;
}
.rl-root .rl-focus-lens .rl-lens-evidence-list > div {
  margin-top: 20px;
}
.rl-root .rl-focus-lens .rl-lens-evidence-list dt {
  margin-bottom: 6px;
  font-size: 13px;
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-next {
  border-top-color: var(--rl-navy);
}
.rl-root .rl-focus-lens .rl-lens-question {
  margin-block: 16px;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}
.rl-root .rl-focus-lens .rl-lens-next h4 {
  margin-top: 28px;
  font-size: 14px;
  font-weight: 600;
}
.rl-root .rl-focus-lens .rl-lens-next-topics {
  display: grid;
  gap: 8px 24px;
  margin-top: 16px;
  padding: 0;
  list-style: none;
}
@media (min-width: 768px) {
  .rl-root .rl-focus-lens .rl-lens-hero {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    align-items: center;
    gap: 40px;
  }
  .rl-root .rl-focus-lens .rl-lens-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .rl-root .rl-focus-lens .rl-lens-step {
    display: block;
    border-left: 0;
    border-top: 1px solid var(--rl-navy);
  }
  .rl-root .rl-focus-lens .rl-lens-step-focus {
    border-top-width: 3px;
  }
  .rl-root .rl-focus-lens .rl-lens-step-unset {
    border-top-style: dashed;
  }
  .rl-root .rl-focus-lens .rl-lens-step-number {
    margin-bottom: 8px;
  }
  .rl-root .rl-focus-lens .rl-lens-boundary,
  .rl-root .rl-focus-lens .rl-lens-sources {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .rl-root .rl-focus-lens .rl-lens-touchpoint {
    grid-template-columns: minmax(140px, 0.65fr) minmax(0, 2fr);
    gap: 32px;
  }
  .rl-root .rl-focus-lens .rl-lens-next-topics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Dashboard only: editorial rows, never a card grid or a KPI summary. */
.rl-root .rl-dashboard .rl-dashboard-title,
.rl-root .rl-dashboard .rl-dashboard-question,
.rl-root .rl-dashboard .rl-dashboard-pattern-title,
.rl-root .rl-dashboard .rl-dashboard-shared-statement,
.rl-root .rl-dashboard .rl-dashboard-selected-question {
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-dashboard .rl-dashboard-title {
  margin-block: 16px 24px;
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
}
.rl-root .rl-dashboard .rl-dashboard-intro {
  max-width: 36em;
  margin-bottom: 24px;
}
.rl-root .rl-dashboard .rl-dashboard-note,
.rl-root .rl-dashboard .rl-dashboard-scope,
.rl-root .rl-dashboard .rl-dashboard-pattern-limit {
  max-width: 64em;
  margin-top: 12px;
  font-size: 14px;
}
.rl-root .rl-dashboard .rl-dashboard-field,
.rl-root .rl-dashboard .rl-dashboard-pattern,
.rl-root .rl-dashboard .rl-dashboard-selected,
.rl-root .rl-dashboard .rl-dashboard-method {
  margin-top: 56px;
  padding-top: 28px;
  border-top: 1px solid var(--rl-navy);
}
.rl-root .rl-dashboard .rl-dashboard-question {
  max-width: 28em;
  margin-top: 16px;
  font-size: clamp(1.375rem, 2.4vw, 2rem);
}
.rl-root .rl-dashboard .rl-dashboard-field-rows {
  margin-top: 28px;
}
.rl-root .rl-dashboard .rl-dashboard-field-row {
  display: grid;
  gap: 24px;
  padding-block: 28px;
  border-top: 1px solid var(--rl-border);
}
.rl-root .rl-dashboard .rl-dashboard-field-row > * {
  min-width: 0;
}
.rl-root .rl-dashboard .rl-dashboard-theme {
  margin-top: 8px;
  color: var(--rl-navy);
  font-size: 14px;
}
.rl-root .rl-dashboard .rl-dashboard-row-question {
  margin-top: 12px;
  color: var(--rl-navy);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-dashboard .rl-dashboard-row-heading .rl-demo-label {
  margin-top: 12px;
  padding: 0;
  border: 0;
  font-size: 12px;
}
.rl-root .rl-dashboard .rl-dashboard-observed,
.rl-root .rl-dashboard .rl-dashboard-unknown {
  min-width: 0;
  padding: 20px;
  border-top: 1px solid var(--rl-navy);
}
.rl-root .rl-dashboard .rl-dashboard-unknown {
  border-top-style: dashed;
  background: var(--rl-surface-muted);
}
.rl-root .rl-dashboard .rl-dashboard-label {
  margin: 0;
  color: var(--rl-navy);
  font-size: 18px;
  font-weight: 600;
}
.rl-root .rl-dashboard .rl-dashboard-label > span {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  letter-spacing: 0.1em;
}
.rl-root .rl-dashboard .rl-dashboard-actions,
.rl-root .rl-dashboard .rl-dashboard-unknowns {
  margin-top: 16px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-dashboard .rl-dashboard-actions li {
  padding: 4px 0 4px 12px;
  border-left: 1px solid var(--rl-navy);
}
.rl-root .rl-dashboard .rl-dashboard-unknowns li + li {
  margin-top: 4px;
}
.rl-root .rl-dashboard .rl-dashboard-pattern-title {
  max-width: 28em;
  margin-top: 20px;
  font-size: clamp(1.5rem, 2.8vw, 2.25rem);
}
.rl-root .rl-dashboard .rl-dashboard-pattern-sources {
  display: grid;
  gap: 24px;
  margin-top: 28px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-dashboard .rl-dashboard-pattern-sources li {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--rl-border);
}
.rl-root .rl-dashboard .rl-dashboard-pattern-sources a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.06em;
}
.rl-root .rl-dashboard .rl-dashboard-status {
  margin-top: 6px;
  color: var(--rl-navy);
  font-size: 14px;
}
.rl-root .rl-dashboard .rl-dashboard-shared-unknown {
  margin-top: 28px;
  padding: 28px 20px;
  border-block: 1px dashed var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-dashboard .rl-dashboard-shared-statement {
  max-width: 22em;
  margin-block: 16px;
  font-size: clamp(1.5rem, 3.2vw, 2.5rem);
}
.rl-root .rl-dashboard .rl-dashboard-section-title {
  margin-block: 12px 20px;
  color: var(--rl-navy);
  font-size: 24px;
  font-weight: 600;
}
.rl-root .rl-dashboard .rl-dashboard-selected-label {
  margin-top: 28px;
}
.rl-root .rl-dashboard .rl-dashboard-selected-question {
  max-width: 28em;
  margin-block: 12px 20px;
  font-size: clamp(1.375rem, 2.4vw, 2rem);
}
.rl-root .rl-dashboard .rl-dashboard-selected .rl-observation-link {
  display: flex;
  width: fit-content;
}
.rl-root .rl-dashboard .rl-dashboard-method > p + p {
  margin-top: 16px;
}
.rl-root .rl-dashboard .rl-dashboard-unavailable {
  margin-block: 40px;
}
@media (min-width: 768px) {
  .rl-root .rl-dashboard .rl-dashboard-field-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }
  .rl-root .rl-dashboard .rl-dashboard-row-heading {
    grid-column: 1 / -1;
  }
  .rl-root .rl-dashboard .rl-dashboard-pattern-sources {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .rl-root .rl-dashboard .rl-dashboard-shared-unknown {
    padding: 36px;
  }
}
@media (min-width: 1024px) {
  .rl-root .rl-dashboard .rl-dashboard-field-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 28px;
  }
  .rl-root .rl-dashboard .rl-dashboard-row-heading {
    grid-column: auto;
  }
}

/* AI / HUMAN: one visit, two views, distinct observation and input states. */
.rl-root .rl-ai-human .rl-ai-title,
.rl-root .rl-ai-human .rl-ai-question,
.rl-root .rl-ai-human .rl-ai-record,
.rl-root .rl-ai-human .rl-ai-shared-question {
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-ai-human .rl-ai-title {
  margin-block: 16px 20px;
  font-size: clamp(1.375rem, 3vw, 2.5rem);
}
.rl-root .rl-ai-human .rl-ai-subtitle {
  color: var(--rl-navy);
  font-size: 12px;
  letter-spacing: 0.08em;
}
.rl-root .rl-ai-human .rl-ai-intro {
  max-width: 36em;
  margin-block: 20px;
}
.rl-root .rl-ai-human .rl-ai-comparison {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--rl-navy);
}
.rl-root .rl-ai-human .rl-ai-scope {
  margin-block: 8px 16px;
}
.rl-root .rl-ai-human .rl-ai-question {
  margin-top: 8px;
  font-size: clamp(1.375rem, 2.3vw, 1.875rem);
}
.rl-root .rl-ai-human .rl-ai-disclosure {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 20px;
  margin-top: 16px;
  font-size: 14px;
}
.rl-root .rl-ai-human .rl-ai-note {
  max-width: 64em;
  margin-top: 12px;
  font-size: 14px;
}
.rl-root .rl-ai-human .rl-ai-views {
  display: grid;
  gap: 32px;
  margin-top: 28px;
}
.rl-root .rl-ai-human .rl-ai-view {
  display: grid;
  gap: 0;
  min-width: 0;
}
.rl-root .rl-ai-human .rl-ai-view-title {
  margin: 0;
  padding-block: 12px;
  border-block: 1px solid var(--rl-navy);
  color: var(--rl-navy);
  font-size: 18px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-input,
.rl-root .rl-ai-human .rl-ai-visible {
  min-width: 0;
  padding-block: 16px;
  border-bottom: 1px solid var(--rl-border);
}
.rl-root .rl-ai-human .rl-ai-label {
  margin: 0;
  color: var(--rl-navy);
  font-size: 14px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-label > span {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  letter-spacing: 0.06em;
}
.rl-root .rl-ai-human .rl-ai-source {
  margin-top: 8px;
  font-size: 18px;
}
.rl-root .rl-ai-human .rl-ai-state {
  margin-top: 8px;
  color: var(--rl-navy);
  font-size: 13px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-record {
  margin-top: 16px;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
}
.rl-root .rl-ai-human .rl-ai-actions {
  margin-top: 16px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-ai-human .rl-ai-actions li {
  padding: 3px 0 3px 16px;
  border-left: 1px solid var(--rl-navy);
}
.rl-root .rl-ai-human .rl-ai-boundary {
  margin-top: 16px;
  padding: 16px;
  border-left: 2px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-ai-human .rl-ai-unobserved {
  border-left-style: dashed;
}
.rl-root .rl-ai-human .rl-ai-unknowns {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: 12px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-ai-human .rl-ai-shared {
  margin-top: 28px;
  padding: 24px 20px;
  border-block: 1px dashed var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-ai-human .rl-ai-shared-question {
  margin-top: 12px;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}
.rl-root .rl-ai-human .rl-ai-method {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--rl-border);
}
.rl-root .rl-ai-human .rl-ai-method-title {
  margin-block: 12px 20px;
  color: var(--rl-navy);
  font-size: 24px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-method > p + p {
  max-width: 64em;
  margin-top: 16px;
}
.rl-root .rl-ai-human .rl-ai-home {
  margin-top: 16px;
}
@media (min-width: 1024px) {
  .rl-root .rl-ai-human .rl-ai-views {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 32px;
    row-gap: 0;
    border-top: 1px solid var(--rl-navy);
  }
  .rl-root .rl-ai-human .rl-ai-view {
    grid-row: 1 / span 4;
    grid-template-rows: auto auto 1fr auto;
  }
  .rl-root .rl-ai-human .rl-ai-view:first-child {
    grid-column: 1;
  }
  .rl-root .rl-ai-human .rl-ai-view:last-child {
    grid-column: 2;
  }
  .rl-root .rl-ai-human .rl-ai-view-title {
    border-top: 0;
  }
  @supports (grid-template-rows: subgrid) {
    .rl-root .rl-ai-human .rl-ai-view {
      grid-template-rows: subgrid;
    }
  }
  .rl-root .rl-ai-human .rl-ai-shared {
    padding-inline: 28px;
  }
}

/* AI / HUMAN continuation: editorial sequence, not measured events. */
.rl-root .rl-ai-human .rl-ai-process,
.rl-root .rl-ai-human .rl-ai-future {
  margin-top: 72px;
  padding-top: 32px;
  border-top: 1px solid var(--rl-navy);
}
.rl-root .rl-ai-human .rl-ai-editorial-title {
  max-width: 26em;
  margin-block: 12px 20px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 600;
  line-height: 1.7;
}
.rl-root .rl-ai-human .rl-ai-process-intro {
  max-width: 52em;
}
.rl-root .rl-ai-human .rl-ai-process-list {
  margin-top: 28px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-ai-human .rl-ai-process-step {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  column-gap: 12px;
  row-gap: 12px;
  padding-block: 20px;
  border-top: 1px solid var(--rl-border);
  scroll-margin-top: 24px;
}
.rl-root .rl-ai-human .rl-ai-process-step::before {
  position: absolute;
  top: 50px;
  bottom: -12px;
  left: 12px;
  border-left: 1px solid var(--rl-border);
  content: "";
}
.rl-root .rl-ai-human .rl-ai-process-step:last-child::before {
  border-left-style: dashed;
  bottom: 20px;
}
.rl-root .rl-ai-human .rl-ai-process-number {
  padding-top: 2px;
  color: var(--rl-navy);
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.rl-root .rl-ai-human .rl-ai-process-name {
  color: var(--rl-navy);
  font-size: 19px;
  font-weight: 600;
  line-height: 1.6;
}
.rl-root .rl-ai-human .rl-ai-process-name > span {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  letter-spacing: 0.06em;
}
.rl-root .rl-ai-human .rl-ai-process-description {
  grid-column: 2;
  min-width: 0;
}
.rl-root .rl-ai-human .rl-ai-cycle-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 8px;
  gap: 8px;
  font-size: 14px;
}
.rl-root .rl-ai-human .rl-ai-process-context {
  display: grid;
  gap: 24px;
  margin-top: 12px;
  padding-block: 20px;
  border-block: 1px dashed var(--rl-navy);
}
.rl-root .rl-ai-human .rl-ai-process-context p {
  margin-top: 8px;
}
.rl-root .rl-ai-human .rl-ai-editorial-note {
  margin-top: 28px;
}
.rl-root .rl-ai-human .rl-ai-editorial-line {
  margin-block: 8px;
  color: var(--rl-navy);
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
  font-size: 22px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-editorial-note > p:last-child {
  max-width: 54em;
}
.rl-root .rl-ai-human .rl-ai-concept-note {
  margin-top: 16px;
  padding-left: 16px;
  border-left: 2px solid var(--rl-navy);
  font-size: 14px;
}
.rl-root .rl-ai-human .rl-ai-future-flow {
  display: grid;
  gap: 20px;
  margin-block: 28px;
  padding: 0;
  list-style: none;
}
.rl-root .rl-ai-human .rl-ai-future-flow > li {
  min-width: 0;
  padding: 8px 0 8px 16px;
  border-left: 1px solid var(--rl-navy);
}
.rl-root .rl-ai-human .rl-ai-future-flow > li:last-child {
  border-left-style: dashed;
}
.rl-root .rl-ai-human .rl-ai-future-flow span {
  color: var(--rl-navy);
  font-size: 13px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-future-flow p {
  margin-top: 4px;
}
.rl-root .rl-ai-human .rl-ai-future-context > div {
  display: grid;
  gap: 8px;
  padding-block: 20px;
  border-top: 1px solid var(--rl-border);
}
.rl-root .rl-ai-human .rl-ai-future-context dt {
  color: var(--rl-navy);
  font-size: 18px;
  font-weight: 600;
}
.rl-root .rl-ai-human .rl-ai-next {
  margin-top: 48px;
  padding: 28px 20px;
  border-block: 1px solid var(--rl-navy);
  background: var(--rl-surface-muted);
}
.rl-root .rl-ai-human .rl-ai-next .rl-ai-editorial-title {
  margin-bottom: 0;
}
@media (min-width: 1024px) {
  .rl-root .rl-ai-human .rl-ai-process-step {
    grid-template-columns: 32px minmax(240px, 0.8fr) minmax(0, 1.5fr);
    column-gap: 24px;
    align-items: start;
    padding-block: 14px;
  }
  .rl-root .rl-ai-human .rl-ai-process-description {
    grid-column: 3;
  }
  .rl-root .rl-ai-human .rl-ai-process-step::before {
    top: 42px;
  }
  .rl-root .rl-ai-human .rl-ai-process-context {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px;
  }
  .rl-root .rl-ai-human .rl-ai-future-flow {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
  .rl-root .rl-ai-human .rl-ai-future-flow > li {
    padding: 16px 0 0;
    border-left: 0;
    border-top: 1px solid var(--rl-navy);
  }
  .rl-root .rl-ai-human .rl-ai-future-flow > li:last-child {
    border-top-style: dashed;
  }
  .rl-root .rl-ai-human .rl-ai-future-context > div {
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 32px;
  }
  .rl-root .rl-ai-human .rl-ai-next {
    padding: 32px;
  }
}
