/* 導入・旅路・VISION：固定ナビゲーションと月面背景を共有する演出 */

#jtb-space .page-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 13px;
  font-family: "JTB Space Inter", "JTB Space Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 1.6px;
}
#jtb-space .page-nav a {
  padding-block: 12px;
  white-space: nowrap;
}
#jtb-space .page-nav a + a::before {
  content: "/";
  display: inline-block;
  margin-right: 13px;
  pointer-events: none;
}
#jtb-space .page-nav a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 5px;
}
#jtb-space .fixed-page-navigation {
  position: fixed;
  z-index: 19;
  top: var(--jtb-space-header-height);
  left: 0;
  right: 0;
  height: var(--jtb-space-page-nav-height);
  padding-inline: 40px;
  justify-content: flex-end;
  background: transparent;
}
#jtb-space .jtb-space-main > section {
  scroll-margin-top: calc(var(--jtb-space-fixed-height) + 20px);
}
#jtb-space-vision {
  scroll-margin-top: 0;
}
/* 共有月面背景：38万kmからDOMAINの終端まで継続する。 */
#jtb-space .lunar-scope {
  position: relative;
  isolation: isolate;
  background: #000;
  /* sticky を維持したまま、延長した背景を DOMAIN の終端で切り取る。 */
  overflow: clip;
}
#jtb-space .lunar-backdrop {
  position: absolute;
  inset: 0;
  /* 最後の詳細を開閉しても、背景が親要素の下端に押し上げられないようにする。 */
  bottom: calc(-1 * var(--jtb-space-screen-height));
  z-index: -1;
  pointer-events: none;
}
#jtb-space .lunar-backdrop-stage {
  position: sticky;
  top: 0;
  height: var(--jtb-space-screen-height);
  overflow: hidden;
}
#jtb-space .lunar-background {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: translateY(-4vh) scale(1.565);
  transform-origin: 56% top;
  scale: 1;
}
#jtb-space .lunar-backdrop-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #0002;
}
#jtb-space .lunar-scope.has-animated-journey .lunar-backdrop-stage {
  opacity: 0;
}
#jtb-space .lunar-scope.has-animated-journey.is-travelling .lunar-backdrop-stage {
  transition: opacity 0.65s ease;
}
#jtb-space .lunar-scope.has-animated-journey.is-at-moon .lunar-backdrop-stage {
  opacity: 1;
}

/* FV・高度体験：JavaScript無効時も通常の縦並びで読める。 */
#jtb-space .hero,
#jtb-space .altitude-scene {
  position: relative;
  isolation: isolate;
  min-height: max(680px, var(--jtb-space-screen-height));
  display: grid;
  place-items: center;
  overflow: hidden;
}
#jtb-space .hero,
#jtb-space .altitude-scene:not([data-scene="5"]),
#jtb-space .earth-space {
  background: #000;
}
#jtb-space .scene-image,
#jtb-space .scene-shade,
#jtb-space .hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
#jtb-space .scene-image {
  object-fit: cover;
}
#jtb-space .altitude-scene .scene-image {
  scale: 1;
}
#jtb-space .scene-shade {
  background: #0002;
}
#jtb-space .hero-shade {
  background: #000;
  opacity: 0.76;
}
#jtb-space .hero-content {
  width: calc(100% - 48px);
  text-align: center;
  position: relative;
  padding-top: 100px;
}
#jtb-space .hero-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  /* ロゴの差し替え後も、見出しとの間隔を安定させる。 */
  min-height: 91.2px;
}
#jtb-space .hero-brand-image {
  width: min(362.73px, 100%);
  height: auto;
  aspect-ratio: 363 / 82;
  object-fit: contain;
}
#jtb-space .hero h1 {
  font-size: 31.764px;
  line-height: 46px;
  letter-spacing: 3.176px;
  margin-top: 30px;
}
#jtb-space .hero h1 > span {
  display: block;
}
#jtb-space .hero-english {
  font-size: 8px;
  line-height: 26px;
  letter-spacing: 0.5px;
  margin-top: 10px;
}
#jtb-space .scroll-cue {
  --jtb-space-scroll-arrow-size: 22px;
  --jtb-space-scroll-arrow-gap: 12px;
  display: none;
  position: absolute;
  z-index: 8;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 15.05px;
  line-height: 1.4;
  text-align: center;
  min-height: 44px;
  color: #fff;
}
#jtb-space .scroll-cue-arrows {
  display: block;
  position: relative;
  width: var(--jtb-space-scroll-arrow-size);
  height: var(--jtb-space-scroll-arrow-size);
  margin: 0 auto var(--jtb-space-scroll-arrow-gap);
  overflow: hidden;
}
#jtb-space .scroll-cue-arrow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(var(--jtb-space-scroll-arrow-size) * 0.1);
  opacity: 0;
  transform: scale(0.5);
  animation: jtb-space-scroll-cue-flow 3s ease-out infinite;
}
#jtb-space .scroll-cue-arrow:nth-child(1) {
  animation-delay: -2s;
}
#jtb-space .scroll-cue-arrow:nth-child(2) {
  animation-delay: -1s;
}
#jtb-space .scroll-cue-arrow::before,
#jtb-space .scroll-cue-arrow::after {
  content: "";
  position: absolute;
  top: 0;
  width: 51%;
  height: 100%;
  background: currentColor;
}
#jtb-space .scroll-cue-arrow::before {
  left: 0;
  transform: skewY(30deg);
  transform-origin: top left;
}
#jtb-space .scroll-cue-arrow::after {
  right: 0;
  transform: skewY(-30deg);
  transform-origin: top right;
}
@keyframes jtb-space-scroll-cue-flow {
  25% {
    opacity: 1;
  }
  33% {
    opacity: 1;
    transform: translateY(calc(var(--jtb-space-scroll-arrow-size) * 0.1));
  }
  67% {
    opacity: 1;
    transform: translateY(calc(var(--jtb-space-scroll-arrow-size) * 0.52));
  }
  100% {
    opacity: 0;
    transform: translateY(calc(var(--jtb-space-scroll-arrow-size) * 0.78)) scale(0.5);
  }
}
#jtb-space .journey-signature {
  display: none;
  position: absolute;
  right: 24px;
  top: 50%;
  font-family: var(--jtb-space-font-latin);
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: 1.4px;
  writing-mode: vertical-rl;
  z-index: 8;
}
#jtb-space .altitude-copy {
  text-align: center;
  max-width: calc(100% - 160px);
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-bottom: 125px;
}
#jtb-space .journey-stage {
  --jtb-space-altitude-readout-top: var(--jtb-space-altitude-content-center);
}
#jtb-space .altitude-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  order: 1;
}
#jtb-space .altitude-readout.altitude-measure {
  display: none;
}
#jtb-space .altitude-readout .altitude-value {
  width: 330px;
  flex-shrink: 0;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
#jtb-space .altitude-readout .altitude-label {
  flex-shrink: 0;
}

#jtb-space .altitude-measure {
  display: flex;
  align-items: baseline;
  justify-content: center;
  order: 3;
  gap: 8px;
}
#jtb-space .altitude-label {
  font-size: 25px;
  line-height: 1.4;
  transform: skewX(-10deg);
  order: 3;
}
#jtb-space .altitude-value {
  font-family: var(--jtb-space-font-latin);
  font-size: 50px;
  line-height: 1.2;
  font-weight: 600;
  transform: skewX(-10deg);
  order: 4;
}
#jtb-space .distance {
  font-size: 81.459px;
}
#jtb-space .altitude-english {
  font-size: 16px;
  color: var(--jtb-space-color-primary);
  letter-spacing: 0.06em;
  line-height: 1.8;
  order: 1;
}
#jtb-space .altitude-copy h2 {
  font-size: 34px;
  line-height: 1.5;
  letter-spacing: 0.08em;
  order: 2;
  margin-bottom: 10px;
}
#jtb-space .altitude-copy h2 > span {
  color: #000;
  background: #fff;
  padding: 3px 26px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
#jtb-space .altitude-note {
  font-size: 20px;
  line-height: 1.8;
  order: 5;
}
#jtb-space .altitude-note--long {
  font-size: 13px;
  max-width: 760px;
}
#jtb-space .altitude-nav {
  display: none;
  position: absolute;
  left: 62px;
  top: var(--jtb-space-altitude-content-center);
  transform: translateY(-50%);
  z-index: 10;
  width: 70px;
  gap: 12px;
  font-family: var(--jtb-space-font-latin);
  font-size: 13px;
  line-height: 1.2;
}
#jtb-space .altitude-nav > a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}
#jtb-space .altitude-nav a[aria-current="true"] {
  color: var(--jtb-space-color-primary);
}
#jtb-space .altitude-marker {
  position: absolute;
  width: 27px;
  height: 27px;
  left: -26px;
  top: 8px;
  transform: translateY(var(--jtb-space-marker-y, 0px)) rotate(45deg);
  transition: transform 0.6s ease;
}
#jtb-space .journey.is-animated {
  height: calc(var(--jtb-space-screen-height) * 8);
}
#jtb-space .is-animated .journey-stage {
  position: sticky;
  top: 0;
  height: var(--jtb-space-screen-height);
  min-height: 620px;
  isolation: isolate;
}
#jtb-space .is-animated .hero,
#jtb-space .is-animated .altitude-scene {
  position: absolute;
  inset: 0;
  min-height: 0;
  height: 100%;
  transition: opacity 0.65s ease;
  opacity: 0;
  pointer-events: none;
}
#jtb-space .is-animated .hero.is-current,
#jtb-space .is-animated .altitude-scene.is-current {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}
#jtb-space .scene-image.is-zooming,
#jtb-space .lunar-background.is-zooming {
  will-change: scale;
}
#jtb-space .is-animated .altitude-copy {
  position: absolute;
  top: var(--jtb-space-altitude-readout-top);
  left: 50%;
  display: block;
  width: min(var(--jtb-space-container-width), calc(100% - 160px));
  max-width: none;
  padding: 0;
  transform: translate(-50%, -50%);
}
#jtb-space .is-animated .altitude-copy .altitude-measure {
  visibility: hidden;
}
#jtb-space .is-animated .altitude-heading {
  position: absolute;
  bottom: calc(100% + 16px);
  left: 0;
  width: 100%;
}
#jtb-space .is-animated .altitude-note {
  position: absolute;
  top: calc(100% + 16px);
  left: 0;
  right: 0;
  margin-inline: auto;
}
#jtb-space .is-animated .altitude-note {
  opacity: 0;
  transform: translateY(25px);
  transition:
    opacity 0.55s ease,
    transform 0.75s cubic-bezier(0.22, 0.61, 0.36, 1);
}
#jtb-space .is-animated .is-current .altitude-note {
  opacity: 1;
  transform: none;
}
/* One shared value stays outside every scene's opacity/transform animation. */
#jtb-space .is-animated.is-travelling .altitude-readout {
  display: flex;
  position: absolute;
  top: var(--jtb-space-altitude-readout-top);
  left: 50%;
  z-index: 5;
  transform: translate(-50%, -50%);
  pointer-events: none;
  white-space: nowrap;
}
#jtb-space .is-animated .altitude-nav {
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s;
}
#jtb-space .is-animated.is-travelling .altitude-nav {
  opacity: 1;
  visibility: visible;
}
#jtb-space .is-animated .scroll-cue {
  display: block;
}
#jtb-space .is-animated.is-travelling .journey-signature {
  display: block;
}
#jtb-space .is-animated .hero h1 > span {
  animation: jtb-space-hero-copy 0.95s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
#jtb-space .is-animated .hero h1 > span:nth-child(2) {
  animation-delay: 0.17s;
}
#jtb-space .is-animated .hero-english {
  animation: jtb-space-hero-copy 0.8s 0.5s both;
}
@keyframes jtb-space-hero-copy {
  from {
    opacity: 0;
    transform: translateY(25px);
    clip-path: inset(100% 0 0);
  }
  to {
    opacity: 1;
    transform: none;
    clip-path: inset(0);
  }
}
/* VISION：スクロールに合わせた本文表示。 */
#jtb-space .vision {
  position: relative;
  margin-bottom: clamp(48px, 4.25vw, 64px);
}
#jtb-space .vision-stage {
  position: relative;
  isolation: isolate;
  min-height: 1000px;
  display: grid;
  place-items: center;
  overflow: hidden;
}
#jtb-space .vision-content {
  text-align: center;
  padding-block: calc(var(--jtb-space-fixed-height) + 24px) 24px;
}
#jtb-space .vision-content h2 {
  font-size: 21.83px;
  letter-spacing: 0.1em;
  color: var(--jtb-space-color-primary);
  line-height: 1.6;
  margin-bottom: 40px;
}
#jtb-space .vision-copy {
  font-size: 26px;
  line-height: var(--jtb-space-vision-line-height);
  letter-spacing: 0.05em;
}
#jtb-space .vision-paragraph + .vision-paragraph {
  margin-top: var(--jtb-space-vision-line-height);
}
#jtb-space .vision-year,
#jtb-space .vision-goal {
  font-size: 34px;
}
#jtb-space .vision.is-animated {
  height: calc(var(--jtb-space-vision-height, 1000px) + 150svh);
}
#jtb-space .vision.is-animated .vision-stage {
  position: sticky;
  top: 0;
  min-height: 0;
  height: var(--jtb-space-vision-height, 1000px);
}
#jtb-space .vision-character {
  color: #ffffff38;
}
#jtb-space .vision-character.is-read {
  color: #fff;
}

/* 画面幅別のナビゲーションと高度演出 */
@media (max-width: 1199px) {
  #jtb-space .fixed-page-navigation {
    padding-inline: 24px;
  }
  #jtb-space .altitude-nav {
    left: 20px;
  }
  #jtb-space .altitude-marker {
    left: -8px;
    width: 20px;
    height: 20px;
  }
  #jtb-space .altitude-copy h2 {
    font-size: 28px;
  }
}

@media (max-width: 767px) {
  #jtb-space .page-nav {
    font-size: clamp(12px, 3.6vw, 14px);
    letter-spacing: 0;
    gap: 4px;
    line-height: 18px;
  }
  #jtb-space .page-nav a {
    display: inline-block;
    min-width: 44px;
    min-height: 44px;
    padding-block: 13px;
    text-align: center;
  }
  #jtb-space .page-nav a + a::before {
    margin-right: 4px;
  }
  #jtb-space .fixed-page-navigation {
    justify-content: center;
    padding-inline: 8px;
  }
  #jtb-space .hero,
#jtb-space .altitude-scene {
    min-height: max(700px, var(--jtb-space-screen-height));
  }
  #jtb-space .hero-shade {
    opacity: 1;
  }
  #jtb-space .hero-content {
    padding-top: 0;
    transform: translateY(-1px);
  }
  #jtb-space .hero-brand {
    min-height: 50.4px;
  }
  #jtb-space .hero-brand-image {
    /* SPではファーストビュー内での視認性を優先する。 */
    width: min(197.953125px, 100%);
  }
  #jtb-space .hero h1 {
    font-size: 19px;
    line-height: 34px;
    letter-spacing: 0.95px;
    margin-top: 30.5px;
  }
  #jtb-space .hero-english {
    font-size: 10px;
    line-height: 18px;
    letter-spacing: 0.2px;
    max-width: 325px;
    margin: 14px auto 0;
  }
  #jtb-space .scroll-cue {
    --jtb-space-scroll-arrow-size: 15.724px;
    --jtb-space-scroll-arrow-gap: 10px;
    bottom: 28px;
    font-size: 10.811px;
  }
  #jtb-space .journey-signature {
    right: 10px;
    top: 35%;
    font-size: 8px;
    letter-spacing: 0.6px;
  }
  #jtb-space .journey-stage {
    --jtb-space-altitude-readout-top: var(--jtb-space-altitude-content-center);
  }
  #jtb-space .is-animated .altitude-copy {
    width: calc(100% - 48px);
  }
  #jtb-space .altitude-copy {
    max-width: calc(100% - 48px);
    width: 345px;
    padding-bottom: 0;
    gap: 16px;
    transform: none;
  }
  #jtb-space .altitude-english {
    font-size: 10px;
    line-height: 18px;
    letter-spacing: 0.3px;
    max-width: 305px;
  }
  #jtb-space .altitude-copy h2 {
    font-size: 19px;
    line-height: 32px;
    letter-spacing: 0.95px;
    margin-bottom: 0;
  }
  #jtb-space .altitude-copy h2 > span {
    padding: 4px 14px;
    line-height: 32px;
  }
  #jtb-space .altitude-readout .altitude-value {
    width: 270px;
  }
  #jtb-space .altitude-measure {
    flex-direction: column;
    align-items: center;
    gap: 0;
  }
  #jtb-space .altitude-label {
    font-size: 18px;
    line-height: 28px;
  }
  #jtb-space .altitude-value {
    font-size: 38px;
    line-height: 78px;
    margin-top: 0;
  }
  #jtb-space .distance {
    font-size: 58px;
  }
  #jtb-space .altitude-note {
    font-size: 16px;
    line-height: 26px;
    max-width: 285px;
    width: calc(100% - 56px);
  }
  #jtb-space .altitude-note--long {
    font-size: 10px;
    line-height: 19px;
  }
  #jtb-space .altitude-scene[data-scene="1"] h2 {
    font-size: 17px;
  }
  #jtb-space .altitude-nav {
    left: 11px;
    top: auto;
    bottom: 26px;
    transform: none;
    width: 40px;
    gap: 0;
    font-size: 9.34px;
  }
  #jtb-space .altitude-marker {
    display: none;
  }
  #jtb-space .altitude-nav > a {
    min-height: 44px;
  }
  #jtb-space .scene-image {
    object-position: 50% center;
  }
  #jtb-space .altitude-scene[data-scene="4"] .scene-image {
    object-position: 55% center;
    transform: translateY(-4.8svh) scale(1.115);
    transform-origin: 55% center;
  }
  #jtb-space .journey:not(.is-animated) .altitude-scene[data-scene="5"] .altitude-copy {
    margin-top: -100px;
  }
  #jtb-space .lunar-background {
    object-position: 40% center;
    transform: none;
  }
  #jtb-space .is-animated .journey-stage {
    min-height: 0;
  }
  #jtb-space .vision-stage {
    min-height: 858px;
  }
  #jtb-space .vision-content {
    padding-block: calc(var(--jtb-space-fixed-height) + 24px) 24px;
  }
  #jtb-space .vision-content h2 {
    font-size: 12px;
    line-height: 20px;
    margin-bottom: 42px;
    letter-spacing: 0.8px;
  }
  #jtb-space .vision-copy {
    font-size: 16px;
    line-height: 36.4px;
    letter-spacing: 0;
  }
  #jtb-space .vision-year,
#jtb-space .vision-goal {
    font-size: 16px;
  }
  #jtb-space .vision-paragraph + .vision-paragraph {
    margin-top: 36.4px;
  }
  #jtb-space .vision-stage {
    align-items: start;
  }
  #jtb-space .bottom-navigation .page-nav {
    line-height: 22px;
    letter-spacing: 0.2px;
  }
}

/* FVからVISIONまでの個別調整 */
/* Figma 2067:1229: revisions are scoped to FV through the end of VISION. */
#jtb-space .intro-scope {
  --jtb-space-intro-type: clamp(32px, min(4.83vw, 8.5svh), 73.031px);
  --jtb-space-intro-copy-height: calc(var(--jtb-space-intro-type) * 2.8);
  --jtb-space-altitude-size-scale: 0.75;
  position: relative;
  isolation: isolate;
  background: #020202;
  display: flow-root;
}
#jtb-space .intro-backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
#jtb-space .intro-backdrop-stage {
  position: sticky;
  top: 0;
  height: var(--jtb-space-screen-height);
  overflow: hidden;
}
#jtb-space .intro-lunar-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  scale: 1;
}
#jtb-space .has-animated-journey .intro-backdrop-stage {
  opacity: 0;
  transition: opacity 0.65s ease;
}
#jtb-space .is-at-moon .intro-backdrop-stage {
  opacity: 1;
}
#jtb-space .intro-scope .hero-shade {
  opacity: 0.85;
}
#jtb-space .intro-scope .hero-content {
  padding: 0;
  transform: translateY(19px);
}
#jtb-space .intro-scope .altitude-caption,
#jtb-space .intro-scope .altitude-message,
#jtb-space .intro-scope .vision-copy {
  font-family: "JTB Space Zen Old Mincho", serif;
}
#jtb-space .intro-scope .hero h1 {
  font-weight: 700;
}
#jtb-space .intro-scope .hero h1 {
  font-family: var(--jtb-space-font-body);
  font-size: var(--jtb-space-intro-type);
  line-height: 1.684;
  letter-spacing: 0.2em;
  margin-top: 15px;
}
#jtb-space .intro-scope .hero-english {
  font-size: clamp(10px, 0.91vw, 13.764px);
  line-height: 26px;
  letter-spacing: 0.4em;
  margin-top: 44px;
}
/* PC first-view composition: Figma 340:2 (1512 × 866). */
@media (min-width: 768px) {
  #jtb-space .intro-scope .hero-content {
    transform: translateY(min(9.6svh, 83px));
  }
  #jtb-space .intro-scope .hero h1 {
    font-size: clamp(28px, 2.5153vw, 38.031px);
    line-height: 1.65653;
    margin-top: 19px;
  }
  #jtb-space .intro-scope .hero-english {
    margin-top: 23px;
  }
}
#jtb-space .intro-scope .hero .scene-image,
#jtb-space .intro-scope .altitude-scene[data-scene="0"] .scene-image {
  object-position: 43.5% center;
  transform: none;
}
#jtb-space .intro-scope .altitude-scene[data-scene="2"] .scene-image {
  /* 添付の地球写真は正位置のまま、空と地平線を見せる。 */
  transform: none;
  object-position: center;
}
#jtb-space .altitude-image-credit {
  position: absolute;
  right: 24px;
  bottom: 20px;
  margin: 0;
  color: #fff;
  font-family: var(--jtb-space-font-body);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.06em;
  opacity: 0.85;
  text-shadow: 0 1px 4px #000;
}
#jtb-space .intro-scope .altitude-scene[data-scene="3"] .scene-image {
  transform: scale(1.255);
  transform-origin: center top;
}
#jtb-space .intro-scope .altitude-scene[data-scene="4"] .scene-image {
  transform: none;
  object-position: center;
}
#jtb-space .intro-scope .scene-shade {
  background: transparent;
}
#jtb-space .intro-scope .journey-stage {
  --jtb-space-altitude-readout-top: calc(50% + var(--jtb-space-intro-copy-height) / 2 + 112px);
}
#jtb-space .intro-scope .altitude-copy {
  width: min(1192px, calc(100% - 160px));
  max-width: none;
  padding: calc(var(--jtb-space-fixed-height) + 32px) 0 80px;
  gap: 30px;
}
#jtb-space .intro-scope .altitude-heading {
  gap: 19px;
}
#jtb-space .intro-scope .altitude-english {
  order: 3;
  color: #aaa;
  font-family: var(--jtb-space-font-body);
  font-size: 12.8px;
  font-weight: 700;
  line-height: 26px;
  letter-spacing: 0.1em;
}
#jtb-space .intro-scope .altitude-caption {
  order: 2;
  color: #fff;
  background: none;
  padding: 10px 11px;
  font-size: clamp(24px, 2.413333vw, 36.2px);
  font-weight: 400;
  line-height: 0.999447514;
  letter-spacing: 0.1em;
}
#jtb-space .intro-scope h2.altitude-message {
  display: flex;
  flex-direction: column;
  justify-content: center;
  order: 2;
  width: 100%;
  min-height: var(--jtb-space-intro-copy-height);
  /* Keep --jtb-space-intro-copy-height unchanged: it also anchors the distance readout. */
  font-size: calc(clamp(32px, min(4.833333vw, 8.5svh), 72.5px) - 5px);
  font-weight: 700;
  line-height: 1.399034483;
  letter-spacing: 0.117103448em;
  margin: 0;
}
#jtb-space .intro-scope h2.altitude-message > span {
  color: #fff;
  background: none;
  padding: 0;
  line-height: inherit;
}
#jtb-space .intro-scope .altitude-caption,
#jtb-space .intro-scope h2.altitude-message {
  font-family: var(--jtb-space-font-body);
}
#jtb-space .intro-scope .message-line {
  display: block;
}
#jtb-space .intro-scope .altitude-measure {
  /* Match Figma's ~1px bounds gap after the label/value skew (~10px). */
  gap: 11px;
}
#jtb-space .intro-scope .altitude-copy > .altitude-measure {
  order: 4;
}
#jtb-space .intro-scope .altitude-value {
  font-size: 40.7px;
  line-height: 54.56px;
}
#jtb-space .intro-scope .altitude-label {
  font-family: var(--jtb-space-font-body);
  font-size: 19.4px;
  font-weight: 700;
  line-height: 27.14px;
}
#jtb-space .intro-scope .distance {
  font-size: 62px;
  line-height: 83.13px;
  color: var(--jtb-space-color-primary);
}
#jtb-space .intro-scope .altitude-readout .altitude-value {
  width: auto;
}
#jtb-space .intro-scope .journey.is-animated .altitude-copy {
  top: 50%;
  padding: 0;
}
#jtb-space .intro-scope .is-animated .altitude-copy .altitude-measure {
  display: none;
}
#jtb-space .intro-scope .is-animated .altitude-heading {
  bottom: calc(100% + 19px);
}
#jtb-space .intro-scope .is-animated .altitude-english {
  position: absolute;
  top: calc(100% + 24px);
  left: 0;
  width: 100%;
}
#jtb-space .intro-scope .is-animated .message-character {
  opacity: 0;
  transition: opacity 0.36s ease;
}
#jtb-space .intro-scope .is-animated .is-current .message-character {
  opacity: 1;
  transition-delay: calc(var(--jtb-space-character-index) * 45ms);
}
#jtb-space .intro-scope .vision-content {
  width: 57%;
  max-width: none;
  margin-left: 41%;
  margin-right: 2%;
  text-align: left;
  padding-block: calc(var(--jtb-space-fixed-height) + 32px) 32px;
}
#jtb-space .intro-scope .vision-content h2 {
  margin: 0;
}
#jtb-space .intro-scope .vision-copy {
  font-family: var(--jtb-space-font-body);
  font-size: clamp(24px, 2.5vw, 38px);
  font-weight: 700;
  line-height: 1.9;
  letter-spacing: 0.1em;
}
#jtb-space .intro-scope .vision-year,
#jtb-space .intro-scope .vision-goal {
  font-size: inherit;
}
#jtb-space .intro-scope .vision-paragraph + .vision-paragraph {
  margin-top: 1.9em;
}
@media (max-width: 767px) {
  #jtb-space .intro-scope {
    --jtb-space-intro-type: clamp(27px, 8.154vw, 31.8px);
    --jtb-space-intro-copy-height: calc(var(--jtb-space-intro-type) * 3.04);
  }
  /* SP altitude composition: Figma 340:1776 (390 × 852). */
  #jtb-space.is-in-altitude .fixed-page-navigation {
    visibility: hidden;
    pointer-events: none;
  }
  #jtb-space .intro-scope .journey.is-animated .altitude-scene .scene-image {
    top: calc(var(--jtb-space-header-height) + 6px);
    height: calc(100% - var(--jtb-space-header-height));
  }
  #jtb-space .intro-scope .hero-content {
    transform: translateY(32px);
  }
  #jtb-space .intro-scope .hero h1 {
    font-size: clamp(19px, 5.35vw, 32px);
    line-height: 2.05;
    letter-spacing: 0.08em;
    margin-top: 32px;
  }
  #jtb-space .intro-scope .hero-english {
    font-size: 10px;
    letter-spacing: 0.12em;
    line-height: 20px;
    margin-top: 26px;
  }
  #jtb-space .intro-scope .altitude-copy,
#jtb-space .intro-scope .is-animated .altitude-copy {
    width: calc(100% - 48px);
  }
  #jtb-space .intro-scope .journey-stage {
    --jtb-space-altitude-message-top: calc(50% - 38.5px);
    --jtb-space-altitude-readout-top: calc(var(--jtb-space-altitude-message-top) + 158px);
  }
  #jtb-space .intro-scope .journey.is-animated .altitude-copy {
    top: var(--jtb-space-altitude-message-top);
  }
  #jtb-space .intro-scope .altitude-heading {
    gap: 12px;
  }
  #jtb-space .intro-scope .altitude-english {
    font-size: 8px;
    line-height: 18px;
    letter-spacing: 0.02em;
  }
  #jtb-space .intro-scope .is-animated .altitude-english {
    top: calc(100% + 14.3px);
    max-width: none;
  }
  #jtb-space .intro-scope .altitude-caption {
    font-size: 17px;
    font-weight: 400;
    line-height: 24px;
    padding: 0;
  }
  #jtb-space .intro-scope h2.altitude-message {
    font-size: calc(clamp(22px, 6.666667vw, 26px) + 3px);
    font-weight: 700;
    line-height: 1.230769231;
    letter-spacing: 0.05em;
  }
  #jtb-space .intro-scope #jtb-space-altitude-title-ground,
#jtb-space .intro-scope #jtb-space-altitude-title-10km,
#jtb-space .intro-scope #jtb-space-altitude-title-25km {
    line-height: 1.48;
  }
  #jtb-space .intro-scope #jtb-space-altitude-title-ground {
    font-size: calc(clamp(22px, 6.820513vw, 26.6px) + 3px);
  }
  #jtb-space .intro-scope .altitude-measure {
    display: grid;
    grid-template-columns: max-content max-content;
    justify-content: center;
    gap: 0 12px;
    width: min(300px, calc(100% - 48px));
    align-items: center;
  }
  #jtb-space .intro-scope .altitude-readout {
    display: none;
  }
  #jtb-space .intro-scope .is-animated.is-travelling .altitude-readout {
    display: grid;
  }
  #jtb-space .intro-scope .altitude-label {
    display: contents;
  }
  #jtb-space .intro-scope .altitude-origin,
#jtb-space .intro-scope .altitude-approx {
    transform: skewX(-10deg);
    justify-self: start;
    padding-left: 8px;
    white-space: nowrap;
    color: var(--jtb-space-color-text);
  }
  #jtb-space .intro-scope .altitude-origin {
    grid-column: 1 / -1;
    grid-row: 1;
    font-size: 17.3px;
    line-height: 24.37px;
  }
  #jtb-space .intro-scope .altitude-approx {
    grid-column: 1;
    grid-row: 2;
    padding-left: 0;
    font-size: 27.4px;
    line-height: 27.42px;
    align-self: center;
  }
  #jtb-space .intro-scope .altitude-value {
    grid-column: 2;
    grid-row: 2;
    position: relative;
    top: -6px;
    font-size: clamp(34px, 9.641026vw, 37.6px);
    line-height: 1.39787234;
    text-align: left;
    white-space: nowrap;
  }
  #jtb-space .intro-scope .distance {
    font-size: clamp(48px, 14.128205vw, 55.1px);
    line-height: 1.401270417;
    /* Reserve the widest count (including values such as 37.9万). */
    display: inline-block;
    width: 3.2em;
    text-align: center;
    font-variant-numeric: tabular-nums;
  }
  #jtb-space .intro-scope .altitude-readout .altitude-value {
    width: auto;
  }
  #jtb-space .intro-scope .altitude-nav {
    left: max(17px, env(safe-area-inset-left, 0px));
    bottom: calc(42px + var(--jtb-space-safe-bottom));
    width: 56px;
    font-family: "JTB Space Inter", sans-serif;
    font-size: 13.056px;
    line-height: 16px;
  }
  #jtb-space .intro-scope .altitude-nav > a {
    min-height: 31px;
  }
  #jtb-space .intro-scope .journey-signature,
#jtb-space .intro-scope .is-animated.is-travelling .journey-signature {
    display: none;
  }
  #jtb-space .intro-scope .journey.is-travelling .scroll-cue {
    --jtb-space-scroll-arrow-size: 15.158px;
    --jtb-space-scroll-arrow-gap: 8px;
    font-family: "JTB Space Inter", sans-serif;
    font-size: 10.421px;
    font-weight: 400;
    bottom: calc(30px + var(--jtb-space-safe-bottom));
  }
  #jtb-space .intro-scope .intro-lunar-image {
    object-position: 40% center;
  }
  #jtb-space .intro-scope .journey:not(.is-animated) [data-scene="5"] .altitude-copy {
    margin-top: 0;
  }
  #jtb-space .intro-scope .vision-content {
    width: calc(100% - 48px);
    margin-inline: 24px;
    padding-block: calc(var(--jtb-space-fixed-height) + 32px) 32px;
  }
  #jtb-space .intro-scope .vision-copy {
    font-size: clamp(17px, 4.4vw, 24px);
    line-height: 1.9;
    letter-spacing: 0.05em;
  }
}

#jtb-space .mobile-journey-backdrop {
  display: none;
}
@media (max-width: 767px) {
  /* 負のmarginを持つsticky背景をVISIONの終端で切り取り、DOMAINへ重ねない。 */
  #jtb-space .intro-scope.has-mobile-backdrop {
    overflow: clip;
  }
  /* 各区間内に重なり順を閉じ、背面のsticky層もリンク操作できるようにする。 */
  #jtb-space .has-mobile-backdrop .journey,
#jtb-space .has-mobile-backdrop .vision {
    isolation: isolate;
  }
  /* Safariの単色補完を避け、固定位置はブラウザーのstickyに任せる。 */
  #jtb-space .has-mobile-backdrop .journey-stage,
#jtb-space .has-mobile-backdrop .vision-stage {
    z-index: -1;
  }
  #jtb-space .has-mobile-backdrop .mobile-journey-backdrop {
    display: block;
    position: sticky;
    top: 0;
    width: 100%;
    height: 100vh;
    height: 100lvh;
    /* 背景の高さを本文のスクロール距離に加算しない。 */
    margin-bottom: -100vh;
    margin-bottom: -100lvh;
    overflow: hidden;
    pointer-events: none;
    background: #000;
    z-index: -1;
  }
  /* 月からVISIONまで同じ背景を使い、別のsticky月面を重ねない。 */
  #jtb-space .has-mobile-backdrop .intro-backdrop {
    display: none;
  }
  #jtb-space .has-mobile-backdrop .hero,
#jtb-space .has-mobile-backdrop .altitude-scene {
    background: transparent;
  }
  #jtb-space .has-mobile-backdrop .scene-image,
#jtb-space .has-mobile-backdrop .hero-shade {
    visibility: hidden;
  }
  #jtb-space .mobile-journey-image {
    position: absolute;
    top: var(--jtb-space-header-height);
    left: 0;
    width: 100%;
    height: calc(100% - var(--jtb-space-header-height));
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.65s ease;
  }
  #jtb-space .mobile-journey-image.is-current {
    opacity: 1;
  }
  #jtb-space .mobile-journey-image[data-scene="-1"],
#jtb-space .mobile-journey-image[data-scene="0"] {
    object-position: 43.5% center;
  }
  #jtb-space .mobile-journey-image[data-scene="2"] {
    transform: none;
    object-position: center;
  }
  #jtb-space .altitude-image-credit {
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: calc(16px + var(--jtb-space-safe-bottom));
    font-size: 10px;
  }
  #jtb-space .mobile-journey-image[data-scene="3"] {
    transform: scale(1.255);
    transform-origin: center top;
  }
  #jtb-space .mobile-journey-image[data-scene="5"] {
    object-position: 40% center;
  }
  #jtb-space .mobile-journey-backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background: #000;
    opacity: var(--jtb-space-mobile-shade, 0);
  }
}

/* 短い・狭いスマホでは左ナビの領域を避け、高度表示だけを縮める。 */
@media (max-width: 767px) and (max-height: 740px), (max-width: 374px) {
  #jtb-space .intro-scope .altitude-measure {
    width: min(220px, calc(100% - 170px));
    column-gap: 4px;
  }
  #jtb-space .intro-scope .altitude-origin,
#jtb-space .intro-scope .altitude-approx {
    padding-left: 0;
  }
  #jtb-space .intro-scope .altitude-approx {
    font-size: 16px;
  }
  #jtb-space .intro-scope .altitude-value {
    font-size: clamp(18px, calc(10.9091vw - 16.9091px), 24px);
    top: 0;
  }
  #jtb-space .intro-scope .distance {
    font-size: clamp(28px, calc(21.8182vw - 41.8182px), 40px);
  }
}

/* 以前は縦並びに切り替えていた低い画面だけ、固定演出の余白を調整する。 */
#jtb-space .journey.is-animated.is-compact .journey-stage {
  min-height: 0;
}
@media (min-width: 768px) {
  #jtb-space .intro-scope .journey.is-compact {
    --jtb-space-intro-type: clamp(
      24px,
      min(4.83vw, calc((var(--jtb-space-screen-height) - var(--jtb-space-fixed-height)) * 0.085)),
      46px
    );
    --jtb-space-intro-copy-height: calc(var(--jtb-space-intro-type) * 2.8);
  }
  #jtb-space .intro-scope .journey.is-compact .journey-stage {
    --jtb-space-compact-copy-center: calc(
      var(--jtb-space-fixed-height) + (100% - var(--jtb-space-fixed-height) - 80px) / 2 - 38px
    );
    --jtb-space-altitude-readout-top: calc(
      var(--jtb-space-compact-copy-center) + var(--jtb-space-intro-copy-height) / 2 + 76px
    );
  }
  #jtb-space .intro-scope .journey.is-compact .hero-content {
    transform: translateY(calc(var(--jtb-space-fixed-height) / 2 - 30px));
  }
  #jtb-space .intro-scope .journey.is-compact .hero-brand {
    min-height: 0;
  }
  #jtb-space .intro-scope .journey.is-compact .hero-brand-image {
    width: min(280px, 100%);
  }
  #jtb-space .intro-scope .journey.is-compact .hero h1 {
    font-size: clamp(22px, min(2.5153vw, 4.8svh), 34px);
    line-height: 1.6;
    margin-top: 14px;
  }
  #jtb-space .intro-scope .journey.is-compact .hero-english {
    margin-top: 14px;
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-copy {
    top: var(--jtb-space-compact-copy-center);
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-message {
    font-size: var(--jtb-space-intro-type);
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-heading {
    bottom: calc(100% + 12px);
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-caption {
    padding: 0;
    font-size: clamp(18px, 3.5svh, 24px);
    line-height: 1.2;
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-english {
    top: calc(100% + 12px);
    font-size: 11px;
    line-height: 20px;
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-label {
    font-size: 17px;
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-value {
    font-size: 30px;
    line-height: 42px;
  }
  #jtb-space .intro-scope .journey.is-compact .distance {
    font-size: 46px;
    line-height: 62px;
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-nav {
    top: calc(var(--jtb-space-fixed-height) + (100% - var(--jtb-space-fixed-height) - 80px) / 2);
    gap: 4px;
  }
  #jtb-space .intro-scope .journey.is-compact .altitude-nav > a {
    min-height: clamp(
      32px,
      calc((var(--jtb-space-screen-height) - var(--jtb-space-fixed-height) - 116px) / 6),
      40px
    );
  }
}
@media (max-width: 767px) {
  #jtb-space .intro-scope .journey.is-compact h2.altitude-message,
#jtb-space .intro-scope .journey.is-compact #jtb-space-altitude-title-ground {
    font-size: clamp(20px, 6.4vw, 26px);
  }
}

/* 配置を維持したまま、OSが不要としている動きだけを止める。 */
#jtb-space .lunar-scope.is-reduced-motion .intro-scope *,
#jtb-space .lunar-scope.is-reduced-motion .lunar-backdrop-stage {
  animation: none !important;
  transition: none !important;
}
#jtb-space .lunar-scope.is-reduced-motion .message-character {
  opacity: 1 !important;
}
#jtb-space .lunar-scope.is-reduced-motion .scroll-cue-arrow {
  opacity: 1;
  transform: translateY(calc(var(--jtb-space-scroll-arrow-size) * 0.35));
}
#jtb-space .lunar-scope.is-reduced-motion .scroll-cue-arrow:nth-child(n + 2) {
  display: none;
}
#jtb-space .lunar-scope.is-reduced-motion :is(
  .scene-image, .intro-lunar-image, .lunar-background, .mobile-journey-image
) {
  scale: 1 !important;
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  #jtb-space .scroll-cue-arrow {
    animation: none;
    opacity: 1;
    transform: translateY(calc(var(--jtb-space-scroll-arrow-size) * 0.35));
  }
  #jtb-space .scroll-cue-arrow:nth-child(n + 2) {
    display: none;
  }
  #jtb-space .intro-lunar-image {
    scale: 1 !important;
  }
  #jtb-space .intro-scope .message-character {
    opacity: 1;
    transition: none;
  }
  #jtb-space .hero h1 > span,
#jtb-space .hero-english {
    animation: none;
  }
  #jtb-space .altitude-scene .scene-image,
#jtb-space .lunar-background {
    scale: 1 !important;
    will-change: auto;
  }
}
