/* The scene stays behind normal document scrolling; every chapter is real text. */
.voice-journey {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 100%;
  background: var(--paper);
}
.journey-visual {
  grid-area: 1 / 1;
  position: sticky;
  top: 104px;
  align-self: start;
  height: calc(100svh - 104px);
  min-height: 600px;
  overflow: hidden;
  pointer-events: none;
}
.journey-halo {
  position: absolute;
  width: 72%;
  height: 100%;
  right: -12%;
  top: 0;
  background: radial-gradient(ellipse at 45% 48%, #d8e8ce 0%, #e8ebdb 36%, #f5f1e800 68%);
}
.sculpture-stage {
  position: absolute;
  right: -2%;
  top: 3%;
  width: 66%;
  height: 85%;
}
.voice-canvas, .sculpture-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.voice-canvas { opacity: 0; z-index: 1; transition: opacity 600ms; }
.sculpture-fallback {
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: opacity 600ms;
}
[data-scene="ready"] .voice-canvas { opacity: 1; }
[data-scene="ready"] .sculpture-fallback { opacity: 0; }
.sculpture-orbit {
  position: absolute;
  top: 20%;
  left: 15%;
  width: 69%;
  height: 60%;
  border: 1px solid #51765021;
  border-radius: 50%;
  transform: rotate(-24deg) scaleY(.65);
}
.orbit-b { transform: rotate(26deg) scaleY(.92); border-color: #51765014; }
.sculpture-caption {
  position: absolute;
  bottom: 6%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
  color: #4c6753;
  font-size: 11px;
  letter-spacing: .025em;
}
.journey-bottom {
  position: absolute;
  bottom: 24px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #626f5c;
  font-size: 9px;
  letter-spacing: .13em;
}
.journey-scroll { display: flex; align-items: center; gap: 12px; letter-spacing: .04em; }
.journey-scroll > span { font-size: 22px; }
.journey-counter { font-variant-numeric: tabular-nums; margin-right: 110px; }
.journey-panels.shell {
  grid-area: 1 / 1;
  width: min(1300px, calc(100% - 112px));
  z-index: 2;
  pointer-events: none;
}
.journey-chapter {
  display: flex;
  align-items: center;
  min-height: 92svh;
  padding-block: 130px;
}
.journey-chapter.hero {
  min-height: calc(100svh - 104px);
  padding-block: 50px 115px;
  gap: 0;
}
.journey-chapter .hero-copy, .chapter-copy {
  width: 47%;
  max-width: 575px;
  padding: 0;
  pointer-events: auto;
}
.journey-chapter h1 {
  font-size: clamp(90px, 8.5vw, 134px);
  letter-spacing: -.067em;
  line-height: .99;
}
.journey-chapter h1 em, .chapter-copy h2 em { color: #4a7552; }
.journey-chapter .hero-description {
  max-width: 375px;
  font-size: 16px;
  margin-top: 28px;
}
.journey-chapter .hero-actions { gap: 16px 22px; max-width: 390px; }
.journey-chapter .hero-actions > .text-link { font-size: 12px; }
.chapter-copy h2 { font-size: clamp(49px, 5.2vw, 80px); line-height: 1.04; }
.chapter-copy > p:not(.eyebrow) {
  max-width: 345px;
  font-size: 16px;
  line-height: 1.8;
  color: var(--muted);
  margin-top: 28px;
}
.chapter-copy > .text-link { margin-top: 30px; }
.chapter-number { color: #536c4c; }
.chapter-shortcut { display: flex; gap: 8px; align-items: center; margin-top: 28px; }
.chapter-shortcut kbd {
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  padding: 0 13px;
  font: 15px var(--sans);
  border: 1px solid #cfd5c5;
  border-bottom: 3px solid #c2cbb9;
  border-radius: 9px;
  background: #fcfaf3;
  box-shadow: 0 3px 8px #274a2f08;
}
.chapter-shortcut > span { font-size: 11px; color: #62705c; margin-left: 8px; }
/* App photography opens gently into place as it enters the viewport. */
.app-showcase { perspective: 1400px; }
.screenshot-stage { transform-origin: 50% 70%; will-change: auto; }
.is-enhanced:not(.motion-paused) .screenshot-stage {
  transform: perspective(1400px) rotateX(var(--showcase-tilt, 0deg)) rotateY(var(--showcase-turn, 0deg));
}
.demo-section { border-radius: 36px 36px 0 0; }
.download-box { border-radius: 30px; }
.download-box::after {
  content: "";
  position: absolute;
  width: 600px;
  height: 600px;
  right: -300px;
  top: -280px;
  border: 1px solid #bdecd127;
  border-radius: 50%;
  box-shadow: 0 0 0 50px #bdecd109, 0 0 0 100px #bdecd106;
  pointer-events: none;
}
@media (min-width: 1700px) {
  .sculpture-stage { right: 3%; width: 60%; }
}
@media (max-width: 1050px) and (min-width: 761px) {
  .journey-panels.shell { width: calc(100% - 64px); }
  .journey-chapter h1 { font-size: 86px; }
  .journey-chapter .hero-copy, .chapter-copy { width: 48%; }
  .journey-chapter .eyebrow { font-size: 9px; letter-spacing: .12em; }
}
@media (max-width: 760px) {
  .journey-visual { top: 88px; height: calc(100svh - 88px); min-height: 560px; }
  .journey-halo { top: 22%; width: 130%; right: -15%; height: 90%; }
  .sculpture-stage { top: 45%; right: -5%; width: 110%; height: 50%; }
  .sculpture-orbit { top: 10%; height: 80%; }
  .sculpture-caption { bottom: 3%; font-size: 9px; }
  .journey-panels.shell { width: calc(100% - 40px); }
  .journey-chapter { min-height: 100svh; align-items: flex-start; padding-block: 105px 0; }
  .journey-chapter.hero { min-height: calc(100svh - 88px); padding-block: 34px 0; }
  .journey-chapter .hero-copy, .chapter-copy { width: 100%; max-width: none; }
  .journey-chapter .hero-copy { padding: 0; }
  .journey-chapter h1 { font-size: clamp(64px, 16.6vw, 106px); line-height: 1.01; }
  .journey-chapter .hero-copy .eyebrow { margin-bottom: 20px; font-size: 8px; letter-spacing: .12em; }
  .journey-chapter .hero-description { font-size: 13px; margin-top: 20px; max-width: 330px; }
  .journey-chapter .hero-actions { margin-top: 23px; gap: 13px; max-width: none; }
  .journey-chapter .hero-actions .button { min-height: 48px; padding: 11px 17px; font-size: 12px; }
  .journey-chapter .hero-actions > .text-link { font-size: 11px; gap: 7px; }
  .journey-chapter .hero-copy .fine-print { font-size: 9px; margin-top: 12px; }
  .chapter-copy h2 { font-size: clamp(46px, 12vw, 74px); }
  .chapter-copy > p:not(.eyebrow) { font-size: 13px; max-width: 330px; margin-top: 20px; }
  .chapter-copy .eyebrow { margin-bottom: 20px; }
  .chapter-shortcut { margin-top: 20px; }
  .chapter-shortcut kbd { min-width: 37px; height: 37px; font-size: 12px; }
  .chapter-shortcut > span { font-size: 10px; }
  .journey-bottom { bottom: 14px; font-size: 8px; }
  .journey-bottom > span:first-child { display: none; }
  .sculpture-caption { bottom: 7%; }
  .demo-section { border-radius: 24px 24px 0 0; }
}
@media (max-width: 760px) and (max-height: 740px) {
  .journey-chapter.hero { min-height: 720px; }
  .sculpture-stage { top: 52%; height: 48%; }
  .sculpture-caption { display: none; }
  .journey-bottom { display: none; }
}
/* Without motion or JavaScript, use an ordinary illustrated introduction. */
html:not(.is-enhanced) .voice-journey, .motion-reduced .voice-journey { display: block; }
html:not(.is-enhanced) .journey-visual, .motion-reduced .journey-visual {
  position: absolute;
  top: 0;
  width: 100%;
  height: calc(100svh - 104px);
  min-height: 640px;
}
html:not(.is-enhanced) .journey-bottom, .motion-reduced .journey-bottom { display: none; }
html:not(.is-enhanced) .journey-chapter:not(.hero), .motion-reduced .journey-chapter:not(.hero) {
  min-height: auto;
  padding-block: 30px;
  width: 48%;
  display: inline-flex;
  vertical-align: top;
}
html:not(.is-enhanced) .chapter-copy, .motion-reduced .chapter-copy { width: 100%; }
html:not(.is-enhanced) .chapter-copy h2, .motion-reduced .chapter-copy h2 { font-size: 36px; }
html:not(.is-enhanced) .journey-panels, .motion-reduced .journey-panels { position: relative; padding-bottom: 45px; }
.motion-paused .sculpture-fallback { opacity: 1; }
.motion-paused .voice-canvas { opacity: 0; }
@media (max-width: 760px) {
  html:not(.is-enhanced) .journey-visual, .motion-reduced .journey-visual { height: 810px; }
  html:not(.is-enhanced) .journey-chapter.hero, .motion-reduced .journey-chapter.hero { min-height: 810px; }
  html:not(.is-enhanced) .journey-chapter:not(.hero), .motion-reduced .journey-chapter:not(.hero) { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .voice-canvas, .sculpture-fallback { transition: none; }
}
