/* Five chapters, one continuous spatial scene. */
.orbit-story { position:relative; height:560svh; color:var(--text); background:var(--bg); }
.orbit-sticky { position:sticky; top:0; height:100svh; min-height:650px; overflow:hidden; isolation:isolate; background:radial-gradient(ellipse at 75% 45%,#E3EBD8 0%,#F2F3EB 55%); }
.orbit-canvas-wrap { position:absolute; inset:0; z-index:-2; }
#orbit-canvas { width:100%; height:100%; display:block; opacity:0; transition:opacity 1.2s ease; }
.orbit-ready #orbit-canvas { opacity:1; }
.orbit-grain { position:absolute; z-index:-1; inset:0; pointer-events:none; opacity:.13; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.orbit-chapters { position:absolute; inset:0; pointer-events:none; }
.orbit-chapter { position:absolute; left:clamp(24px,5.5vw,105px); top:50%; width:min(40%,560px); transform:translateY(-45%); opacity:0; visibility:hidden; pointer-events:none; will-change:transform,opacity; }
.orbit-chapter.is-active { opacity:1; visibility:visible; pointer-events:auto; }
.orbit-kicker { display:block; color:var(--muted); font:9px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; margin-bottom:32px; }
.orbit-chapter h1, .orbit-chapter h2 { margin:0 0 27px; font-size:clamp(60px,6.2vw,100px); line-height:.99; font-weight:500; letter-spacing:-.066em; }
.orbit-chapter h1 em, .orbit-chapter h2 em { color:var(--text); font-family:"Instrument Serif",serif; font-weight:400; letter-spacing:-.035em; text-decoration:none; }
.orbit-chapter h1 em { position:relative; }
.orbit-chapter h1 em::after { content:""; position:absolute; left:0; right:-4px; bottom:6px; height:5px; background:var(--blue); z-index:-1; }
.orbit-chapter p { max-width:390px; color:var(--muted); font-size:14px; line-height:1.8; margin:0; }
.orbit-actions { display:flex; align-items:center; flex-wrap:wrap; gap:23px; margin-top:27px; }
.orbit-actions .button { min-height:46px; padding-inline:20px; font-size:11px; }
.orbit-text-link { display:inline-block; width:fit-content; font-size:10px; text-decoration:none; border-bottom:1px solid var(--line-strong); padding-bottom:5px; }
.orbit-chapter > .orbit-text-link { margin-top:25px; }
.orbit-tags { margin-top:25px; display:flex; flex-wrap:wrap; gap:10px 20px; }
.orbit-tags span { display:inline-flex; gap:7px; align-items:center; color:var(--muted); font:7px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.06em; }
.orbit-tags span::before { content:""; width:4px; height:4px; background:var(--text); border-radius:50%; }
.orbit-scene-label { position:absolute; right:7%; bottom:110px; display:flex; align-items:center; gap:11px; font:8px "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--text); }
.orbit-scene-label small { color:var(--muted); font-size:6px; }
.orbit-scene-label i { width:18px; height:1px; background:var(--muted-2); }
.orbit-footer { position:absolute; bottom:28px; left:clamp(24px,5.5vw,105px); right:clamp(24px,5.5vw,105px); display:flex; align-items:center; gap:32px; }
.orbit-progress { display:flex; gap:13px; }
.orbit-progress button { display:grid; grid-template-columns:18px 50px; align-items:center; gap:7px; border:0; background:none; color:var(--muted-2); padding:10px 0; cursor:pointer; font:7px "DM Mono",monospace; }
.orbit-progress button i { width:50px; height:1px; background:var(--line); position:relative; overflow:hidden; }
.orbit-progress button i::after { content:""; display:block; width:100%; height:100%; background:var(--text); transform:scaleX(var(--chapter-fill,0)); transform-origin:left; }
.orbit-progress button.is-active { color:var(--text); }
.orbit-scroll-note { margin-left:auto; display:flex; align-items:center; gap:18px; font:8px "DM Mono",monospace; color:var(--muted); letter-spacing:.05em; }
.orbit-scroll-note b { font-size:18px; font-weight:400; animation:scrollNudge 2s ease-in-out infinite; }
.orbit-pause { color:var(--muted); border:0; background:none; border-bottom:1px solid var(--line); padding:8px 0; font:7px "DM Mono",monospace; cursor:pointer; }
.orbit-fallback { position:absolute; left:54%; top:18%; width:min(44vw,600px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 30% 28%,#52796B,#163F3A 47%,#0C2424 78%); box-shadow:inset -20px -18px 70px rgba(0,0,0,.25),0 45px 90px rgba(16,45,44,.12); transition:opacity .8s; }
.orbit-ready .orbit-fallback { opacity:0; }
.orbit-fallback i { position:absolute; inset:0; border:1px solid rgba(201,234,133,.2); border-radius:50%; transform:rotateY(65deg) rotateZ(-25deg); }
.orbit-fallback i:nth-child(2) { transform:rotateX(65deg) rotateZ(20deg); }
.orbit-fallback i:nth-child(3) { transform:rotateY(-40deg) rotateZ(45deg); }
.orbit-story + .problem-band { position:relative; z-index:1; background:var(--bg); border-top:1px solid var(--line); }
.orbit-no-webgl .orbit-fallback { opacity:1; }
@media(min-width:1700px) { .orbit-chapter { width:40%; } .orbit-chapter p { max-width:460px; font-size:16px; } }
@media(max-width:1100px) {
  .orbit-chapter { left:40px; width:43%; }
  .orbit-chapter h1,.orbit-chapter h2 { font-size:clamp(57px,6.5vw,75px); }
  .orbit-chapter p { font-size:12px; max-width:340px; }
  .orbit-kicker { font-size:8px; margin-bottom:25px; }
  .orbit-footer { left:40px; right:40px; gap:20px; }
  .orbit-progress { gap:10px; }
  .orbit-progress button { grid-template-columns:14px 35px; }
  .orbit-progress button i { width:35px; }
}
@media(max-width:760px) {
  .orbit-story { height:490svh; }
  .orbit-sticky { min-height:640px; }
  .orbit-chapter { top:112px; left:24px; right:24px; width:auto; transform:none; }
  .orbit-kicker { font-size:7px; margin-bottom:18px; }
  .orbit-chapter h1,.orbit-chapter h2 { font-size:clamp(42px,10.5vw,61px); line-height:1; margin-bottom:16px; }
  .orbit-chapter h1 br:nth-of-type(2) { display:none; }
  .orbit-chapter p { width:100%; max-width:430px; font-size:11px; line-height:1.65; }
  .orbit-actions { margin-top:18px; gap:20px; }
  .orbit-actions .button { font-size:10px; min-height:40px; padding-inline:15px; }
  .orbit-text-link { font-size:9px; }
  .orbit-tags { margin-top:16px; gap:9px 15px; }
  .orbit-tags span { font-size:6px; }
  .orbit-scene-label { bottom:76px; left:24px; right:auto; font-size:7px; }
  .orbit-scene-label small { font-size:5px; }
  .orbit-footer { left:24px; right:24px; bottom:18px; gap:10px; }
  .orbit-progress { gap:8px; }
  .orbit-progress button { grid-template-columns:11px 25px; gap:4px; font-size:6px; }
  .orbit-progress button i { width:25px; }
  .orbit-scroll-note { display:none; }
  .orbit-pause { margin-left:auto; font-size:6px; }
  .orbit-fallback { left:25%; top:auto; bottom:110px; width:70vw; max-width:340px; }
}
@media(max-height:700px) and (min-width:761px) {
  .orbit-chapter h1,.orbit-chapter h2 { font-size:62px; }
  .orbit-kicker { margin-bottom:20px; }
  .orbit-chapter p { font-size:12px; }
  .orbit-scene-label { bottom:90px; }
}
@media(prefers-reduced-motion:reduce) {
  .orbit-scroll-note b { animation:none; }
  #orbit-canvas { transition:none; }
}
