/* Proposed motion language: precise travel, constant scale, and readable holds. */
[data-motion-family] [data-piece]{--motion:1;--entry:1}
@media(prefers-reduced-motion:no-preference){
 .story-ready [data-motion-family] [data-piece]{transform:none!important;opacity:var(--piece,1)!important;translate:none!important;scale:none!important;transition:none!important}
 .story-ready [data-motion-family] [data-story-heading]{translate:none!important}
 /* The product parts assemble along separate rails, at their final size. */
 .story-ready [data-motion-family="assemble"] [data-piece]{transform:translate3d(calc(var(--entry)*(1 - var(--motion))*46px),0,0) rotateY(calc(var(--entry)*(1 - var(--motion))*8deg))!important}
 .story-ready [data-motion-family="assemble"] [data-piece]:nth-child(2){clip-path:inset(calc((1 - var(--motion))*100%) 0 0 0)}
 /* Two responsibilities move towards the shared centre. */
 .story-ready [data-motion-family="align"] [data-piece]{transform:translate3d(calc(var(--entry)*(1 - var(--motion))*68px),0,0)!important}
 .scene-roles .object-stage::after{content:'';position:absolute;left:50%;top:15%;height:60%;width:1px;background:#4A8482;transform:scaleY(var(--story));transform-origin:center;opacity:.55}
 .scene-roles .object-stage{position:relative}
 /* Survey cards reveal across a plane; no card zoom or lift. */
 .story-ready [data-motion-family="survey"] [data-piece]{clip-path:inset(0 calc((1 - var(--motion))*100%) 0 0)}
 /* Founding spots arrive as one cohort; the exchange follows. */
 .story-ready [data-motion-family="place"] [data-piece]{transform:translate3d(0,calc((var(--motion) - 1)*24px),0)!important}
 /* The process line advances; the cards themselves remain grounded. */
 .scene-process [data-piece]{position:relative}
 .scene-process [data-piece]::before{background:transparent}
 .scene-process [data-piece]::after{transform:scaleX(var(--motion));transform-origin:left;background:#4A8482}
 .scene-process [data-piece] .journey-image{transform:translateX(calc((1 - var(--motion))*-20px));opacity:var(--piece)}
 .scene-process [data-piece] .step-label{color:#FFFFFF}
 .scene-process [data-piece]{border-top:2px solid rgba(74,132,130,calc(.2 + var(--motion)*.8))}
 /* Ownership and model panels open from the centre, holding the frame. */
 .story-ready [data-motion-family="frame"] [data-piece]{clip-path:inset(calc((1 - var(--motion))*50%) 0 calc((1 - var(--motion))*50%) 0)}
 /* Principles draw into the grid in diagonal groups. */
 .story-ready [data-motion-family="grid"] [data-piece]{clip-path:polygon(0 0,calc(var(--motion)*125%) 0,calc(var(--motion)*125% - 25%) 100%,0 100%)}
 /* FAQs, evidence and navigation get a quiet reveal for readability. */
 .story-ready [data-motion-family="quiet"] [data-piece]{transform:none!important}
 /* The final statement resolves in place, then the invitation appears. */
 .story-ready [data-motion-family="resolve"] h2[data-piece]{clip-path:inset(0 0 calc((1 - var(--motion))*100%) 0)}
 .story-ready [data-motion-family="resolve"] .btn[data-piece]{transform:translateY(calc((1 - var(--motion))*10px))!important}
}
/* Mobile uses smaller travel; all longer stories stay in normal flow. */
@media(max-width:899.98px) and (prefers-reduced-motion:no-preference){
 .story-ready [data-motion-family="assemble"] [data-piece]{transform:translateX(calc(var(--entry)*(1 - var(--motion))*18px))!important}
 .story-ready [data-motion-family="align"] [data-piece]{transform:translateX(calc(var(--entry)*(1 - var(--motion))*24px))!important}
 .story-ready [data-motion-family="place"] [data-piece]{transform:translateY(calc((var(--motion) - 1)*14px))!important}
 .scene-roles .object-stage::after{top:5%;height:75%}
 .scene-process [data-piece]::after{display:block;left:50%;right:auto;top:100%;width:2px;height:18px;transform:scaleY(var(--motion));transform-origin:top}
 .scene-process [data-piece]:last-child::after{display:none}
}
@media(prefers-reduced-motion:reduce){[data-motion-family] [data-piece]{clip-path:none!important;transform:none!important;opacity:1!important}.scene-roles .object-stage::after{display:none}}

/* Mobile reading continuity. Desktop and engine choreography are unchanged. */
.mobile-engine-reading{display:none}
@media(max-width:899.98px){
 .sticky-cta{display:none!important}
 .mobile-engine-reading{display:block;padding:44px 0 52px;background:#E4EDEB;color:#0B2A3A}
 .mobile-engine-reading h2{font-size:27px;line-height:1.12;margin:0 0 24px}
 .engine-reading-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}
 .engine-reading-list li{display:flex;align-items:flex-start;gap:16px;padding:18px;background:#fff;border:1px solid #CFDAD7;border-left:3px solid #4A8482;border-radius:4px}
 .engine-reading-list li>span{font-size:12px;font-weight:600;letter-spacing:.08em;color:#245C5B;padding-top:4px}
 .engine-reading-list h3{font-size:18px;line-height:1.3;margin:0 0 5px}
 .engine-reading-list p{font-size:15px;line-height:1.5;margin:0;color:#2C3D47}
 .story-ready .scene-models{min-height:0}
 .story-ready .scene-models .scene-sticky{position:static;top:auto;height:auto;min-height:0;padding:48px 20px!important;gap:24px}
 .scene-models .model-grid{display:grid;grid-template-columns:minmax(0,1fr);height:auto;gap:20px;perspective:none}
 .scene-models .model-card{position:relative;inset:auto;height:auto;min-height:0;max-height:none;overflow:visible}
}
