/* Approved homepage chapters, with one reading order after the flight. */
.reading-phrase{white-space:nowrap}
.heading-phrase{white-space:nowrap}
.motion-paused #space{display:none}
.motion-paused .flight-fallback{opacity:1}
.foundation-section{position:relative;z-index:1;padding:80px var(--pad) 100px}
.foundation-section .reading-heading{max-width:930px}
.foundation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1600px}
.foundation-grid article{min-width:0;padding:clamp(28px,2.8vw,44px);border:1px solid #d3b8fa2b;border-radius:10px;background:#100b1caa;backdrop-filter:blur(9px);box-shadow:inset 0 1px 0 #ffffff09,0 16px 50px #03010820}
.foundation-grid h3{font-size:clamp(32px,3.1vw,46px);line-height:1.05;margin-bottom:20px}
.foundation-grid p{font-size:var(--copy-size);line-height:1.65;color:#d0c7da;text-wrap:pretty}
.home-reading,.scene-ready .home-reading{position:relative;z-index:2;background:var(--surface);padding:var(--section-space) var(--pad);border-top:1px solid var(--line)}
.home-reading:nth-of-type(even),.scene-ready .home-reading:nth-of-type(even){background:var(--surface-alt)}
.home-reading-inner{max-width:1420px;margin:0 auto}
.home-reading h2{max-width:1080px;font-size:clamp(44px,5vw,80px);line-height:1.02;letter-spacing:-.015em;margin-bottom:36px;text-wrap:balance}
.home-reading .home-prose{max-width:820px}
.home-prose p,.home-prose li{font-size:var(--copy-size);line-height:1.7;color:#d0c7da;text-wrap:pretty}
.home-prose p+p{margin-top:20px}
.home-prose ul{padding-left:1.2em;margin:25px 0}
.home-prose li+li{margin-top:12px}
.home-prose .text-link{margin-top:32px}
.home-reading .eyebrow{margin-bottom:28px}
.home-reading .token-heading{display:block;font-size:clamp(95px,13vw,200px);line-height:.92;margin:30px 0 34px}
.home-reading .token-status{margin-top:35px;font-family:var(--mono);font-size:var(--label-size);color:var(--muted)}
.home-reading .manifesto-reading{max-width:920px}
.home-reading .manifesto-copy{max-width:820px}
.home-reading .partner-logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:35px;align-items:center;margin:55px 0 10px}
.home-reading .partner-logos img{display:block;max-width:100%;width:100%;height:55px;object-fit:contain}
.home-reading .home-cta{display:flex;flex-wrap:wrap;gap:28px;margin-top:34px}
.protocol-detail .reading-heading{max-width:920px}
.protocol-detail .engine-steps{display:block;margin:30px 0;padding:0 0 0 1.3em;max-width:760px;border:0}
.protocol-detail .engine-steps li{display:list-item;border:0;padding:6px 0;color:#d0c7da;font-family:var(--sans);font-size:var(--copy-size);line-height:1.6}
.protocol-detail .engine-steps li::before,.protocol-detail .engine-steps li::after{content:none}
.protocol-detail .protocol-engine{margin-top:56px!important}
.journey-top,.journey-bottom{display:none}
.journey-panel .chapter-no{display:block;margin-bottom:24px}
.journey-panel h2{text-wrap:balance}
.journey-panel>p{font-size:var(--copy-size);line-height:1.65;text-wrap:pretty}
.document-page .comparison-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);margin:32px 0;scrollbar-color:#78618f #17101f}
.document-page .comparison-scroll .comparison-table{display:table;width:max-content;min-width:100%;margin:0;border:0;overflow:visible}
.document-page .comparison-scroll th small{display:block;font-size:13px;line-height:1.5;margin-top:7px;max-width:170px}
.document-page .comparison-scroll td>span+span{display:block;margin-top:6px}
.document-page .comparison-primary{color:#dfc2ff}
.document-page .comparison-legend{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
.document-page .comparison-legend .feature-item{border:0;padding:0}
.document-page .comparison-legend span{margin-right:9px;color:#d8b9ff}
.document-page .comparison-scroll:focus-visible{outline:2px solid #b394da;outline-offset:4px}
@media(min-width:761px){
 .hero-copy .hero-statement{text-wrap:nowrap}
 .velocity-sticky{grid-template-columns:minmax(0,.66fr) minmax(0,.34fr);grid-template-rows:minmax(0,1fr) auto auto auto;padding-top:40px;padding-bottom:44px}
 .velocity-sticky>.section-meta{grid-row:2;margin-bottom:26px}
 .velocity-sticky .signal-stage{grid-row:1/5}
 .velocity-heading{width:100%;max-width:960px}
 .velocity-heading h2{font-size:clamp(62px,5.6vw,94px);line-height:1.03;max-width:960px;letter-spacing:-.015em}
 .velocity-heading>p{max-width:780px;margin-top:30px;line-height:1.7}
 .velocity-heading>p+p{margin-top:22px}
 .velocity-summary{grid-column:1/-1;width:100%;max-width:1360px;padding-top:42px}
 .velocity-sticky .metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
 .velocity-sticky .metric strong{font-size:clamp(48px,4vw,66px);margin-top:12px;margin-bottom:12px}
 .velocity-sticky .metric p{line-height:1.5}
 .velocity-sticky .metric small{margin-top:7px}
}
@media(min-width:761px) and (max-height:780px){
 .velocity-heading h2{font-size:clamp(52px,5.3vw,76px)}
 .velocity-heading>p{margin-top:22px;line-height:1.6}
 .velocity-heading>p+p{margin-top:16px}
 .velocity-summary{padding-top:28px}
 .velocity-sticky .metrics{gap:16px}
 .velocity-sticky .metric strong{font-size:48px;margin-top:8px;margin-bottom:8px}
}
.velocity-sticky .metric{
 padding:24px!important;border:1px solid #d3b8fa2b!important;border-radius:10px;
 background:#100b1caa;backdrop-filter:blur(9px);
 box-shadow:inset 0 1px 0 #ffffff09,0 16px 50px #03010820
}
@media(min-width:761px) and (max-width:1100px){
 .velocity-sticky .metric{padding:18px!important}
 .velocity-sticky .metrics{gap:14px}
 .velocity-sticky .metric-label{letter-spacing:.04em;font-size:12px}
 .velocity-heading{grid-column:1/-1;max-width:850px}
}
@media(max-width:760px){
 .velocity-sticky .metric{padding:18px 16px!important}
 .velocity-sticky .metrics{gap:14px}
}
@media(max-width:360px){
 .velocity-sticky .metrics{grid-template-columns:1fr}
 .velocity-sticky .metric{padding:22px!important}
 .velocity-sticky .metric strong{font-size:46px}
}
@media(max-width:1100px) and (min-width:761px){.foundation-grid{gap:28px}.hero>.hero-copy{font-size:19px}}
@media(max-width:760px){
 .foundation-section{padding:65px var(--pad)}
 .foundation-grid{grid-template-columns:minmax(0,1fr);gap:32px;max-width:540px}
 .foundation-grid h3{font-size:32px}
 .home-reading h2{font-size:clamp(36px,9vw,58px);margin-bottom:28px}
 .home-reading .partner-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 22px;margin-top:32px}
 .home-reading .partner-logos img{height:40px}
 .home-reading .home-cta{flex-direction:column;align-items:flex-start;gap:24px}
 .home-reading .token-heading{font-size:clamp(94px,25vw,155px)}
 .document-page .comparison-legend{grid-template-columns:minmax(0,1fr);gap:12px}
 .journey-panel .chapter-no{margin-bottom:20px}
}
@media(max-width:760px) and (max-height:650px){
 :where(html:not([data-scene-viewport])) .journey-panel h2{font-size:36px;line-height:1.05}
 :where(html:not([data-scene-viewport])) .journey-panel .chapter-no{margin-bottom:16px}
 :where(html:not([data-scene-viewport])) .journey-panel>p{line-height:1.5}
}
@media(max-width:760px){
 :where(html[data-scene-height-650]) .journey-panel h2{font-size:36px;line-height:1.05}
 :where(html[data-scene-height-650]) .journey-panel .chapter-no{margin-bottom:16px}
 :where(html[data-scene-height-650]) .journey-panel>p{line-height:1.5}
}

/* A single scrolling text layer. These rules replace the old chapter fades
   and chapter-specific centering, including on the shortest mobile screens. */
body.js-ready:not(.scene-fallback):not(.motion-paused) .journey-sticky{
 /* Keep stable scroll geometry, but let the real viewport reveal each line.
    A collapsed browser toolbar can expose pixels below the 100svh box. */
 height:calc(var(--flight-svh, 1svh) * 100);min-height:0;padding:0 var(--pad);overflow:visible
}
body.js-ready:not(.scene-fallback):not(.motion-paused) .journey-panels{
 height:100%;opacity:1;will-change:auto
}
body.js-ready:not(.scene-fallback):not(.motion-paused) .journey-panel[data-chapter]{
 position:absolute;top:0;left:0;width:100%;max-width:100%;margin:0;
 opacity:1;visibility:visible;transform:translate3d(0,var(--chapter-y,calc(var(--flight-svh, 1svh) * 100)),0);
 transition:none;will-change:transform
}
@media(max-width:760px){
 .journey-panels{max-width:540px}
 body .journey-panel[data-chapter] h2{
  font-size:clamp(40px,11.3vw,64px);line-height:1.02;max-width:100%;text-wrap:balance
 }
 body .journey-panel[data-chapter]>p{max-width:100%;line-height:1.6;margin-top:20px}
 body .journey-panel[data-chapter] .chapter-no{margin-bottom:20px}
 body.js-ready:not(.scene-fallback):not(.motion-paused) .velocity-sticky{grid-template-rows:minmax(70px,1fr) auto auto auto;padding-bottom:40px}
 body.js-ready:not(.scene-fallback):not(.motion-paused) .velocity-sticky>.section-meta{grid-row:2;margin-bottom:24px}
 body.js-ready:not(.scene-fallback):not(.motion-paused) .signal-stage{grid-row:1}
}
@media(max-width:760px) and (max-height:740px){
 :where(html:not([data-scene-viewport])) body.js-ready:not(.scene-fallback):not(.motion-paused) .velocity-sticky{grid-template-rows:112px auto auto auto}
}
@media(max-width:760px){
 :where(html[data-scene-height-740]) body.js-ready:not(.scene-fallback):not(.motion-paused) .velocity-sticky{grid-template-rows:112px auto auto auto}
}
@media(max-width:760px) and (max-height:650px){
 :where(html:not([data-scene-viewport])) body .journey-panel[data-chapter] h2{font-size:36px}
 :where(html:not([data-scene-viewport])) body .journey-panel[data-chapter]>p{line-height:1.5;margin-top:16px}
 :where(html:not([data-scene-viewport])) body .journey-panel[data-chapter] .chapter-no{margin-bottom:16px}
}
@media(max-width:760px){
 :where(html[data-scene-height-650]) body .journey-panel[data-chapter] h2{font-size:36px}
 :where(html[data-scene-height-650]) body .journey-panel[data-chapter]>p{line-height:1.5;margin-top:16px}
 :where(html[data-scene-height-650]) body .journey-panel[data-chapter] .chapter-no{margin-bottom:16px}
}
/* Longer reading blocks flow naturally instead of being squeezed into a
   viewport. Their whole passage still drives the same acceleration. */
body.js-ready:not(.scene-fallback):not(.motion-paused) .velocity-flow{height:auto}
body.js-ready:not(.scene-fallback):not(.motion-paused) .velocity-flow .velocity-sticky{
 position:relative;height:auto;grid-template-rows:112px auto auto auto
}

/* A complete first frame, then one fixed composition while browser chrome moves.
   The photograph alone is reserved for reduced-motion / unavailable WebGL. */
#space-stage{bottom:auto;height:var(--scene-height,100lvh);transition:none}
#space{visibility:hidden}
.scene-ready #space{visibility:visible}
.flight-fallback{visibility:hidden;transition:none}
:is(.scene-fallback,.motion-paused) .flight-fallback{visibility:visible}
