/* Section motion augments the approved layouts. The hero remains independently controlled. */
.page-motion-section{position:relative;isolation:isolate;background:#fff}
.page-motion-section>.section-wrap{position:relative;z-index:1}
.section-atmosphere{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.depth-ornament{position:absolute;width:95px;opacity:.065;filter:blur(1.5px);transform:translate3d(0,var(--depth-y,0px),0);will-change:transform}
.depth-ornament svg{display:block;width:100%;fill:#ff9c59;animation:section-drift var(--drift-duration,22s) ease-in-out var(--drift-delay,-7s) infinite alternate;transform-origin:50% 50%;will-change:transform}
.intro-distant{top:7%;right:-12px;width:110px;--drift-duration:23s;--drift-delay:-11s}
.process-distant{right:3%;bottom:4%;width:67px;opacity:.05;--drift-duration:19s;--drift-delay:-5s}
.cta-distant{right:32%;top:16%;width:75px;opacity:.055;--drift-duration:25s;--drift-delay:-16s}
@keyframes section-drift{from{transform:translate3d(-7px,4px,0) rotate(-4deg) scale(.97)}to{transform:translate3d(10px,-11px,0) rotate(5deg) scale(1.02)}}
.page-motion-ready .found-intro .intro-grid>div:first-child{transform:translate3d(0,var(--found-panel-y,0px),0)}
.page-motion-ready .found-intro .intro-grid>div:last-child{transform:translate3d(0,var(--found-copy-y,0px),0)}
/* The frame and evidence arrive as two planes; the numbers themselves never animate. */
.page-motion-ready .case-studies{perspective:1200px}
.page-motion-ready .case-studies.section-revealed .case-carousel{animation:case-frame-arrive .8s cubic-bezier(.2,.75,.2,1) both;transform-origin:50% 65%}
.page-motion-ready .case-studies.section-revealed .case-evidence{animation:evidence-arrive .65s cubic-bezier(.2,.75,.2,1) .14s both}
@keyframes case-frame-arrive{from{transform:translate3d(0,24px,-15px) rotateX(1.5deg)}to{transform:translate3d(0,0,0) rotateX(0)}}
@keyframes evidence-arrive{from{transform:translate3d(10px,13px,0)}to{transform:translate3d(0,0,0)}}
.case-carousel{position:relative}
.case-carousel:after{content:'';position:absolute;inset:1px;border-radius:14px;pointer-events:none;border:1px solid transparent;box-shadow:inset calc(var(--case-x,0px)*.35) calc(var(--case-y,0px)*.35) 12px #ff9c590c;transform:translate3d(var(--case-x,0px),var(--case-y,0px),0);z-index:2}
/* Headings and paragraphs stay upright as the process steps approach a common plane. */
.process-grid{position:relative;perspective:1100px;transform-style:preserve-3d}
.page-motion-ready .process-grid>article{transform:translate3d(0,var(--step-y,0px),var(--step-z,0px));transform-origin:center top}
.process-connection{display:none;position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,#ff7e26,#ff9c59);transform-origin:left center;transform:scaleX(var(--connection-progress,0));pointer-events:none;z-index:2}
.page-motion-ready .process-connection{display:block}
/* Quiet, one-time video-frame entrance. Never move a playing video. */
.page-motion-ready .testimonial-video.frame-revealed{animation:client-frame-arrive .65s cubic-bezier(.2,.75,.2,1) var(--frame-delay,0s) both}
.testimonial-video:nth-child(2){--frame-delay:.08s}.testimonial-video:nth-child(3){--frame-delay:.16s}
@keyframes client-frame-arrive{from{transform:translate3d(0,20px,0) scale(.99)}to{transform:translate3d(0,0,0) scale(1)}}
.page-motion-ready .testimonial-video.is-playing,.page-motion-ready .testimonial-video.frame-settled{animation:none!important;transform:none!important}
/* Final action settles once and then remains fixed. */
.page-motion-ready .review-request.section-revealed h2{animation:cta-heading-arrive .6s cubic-bezier(.2,.75,.2,1) both}
.page-motion-ready .review-request.section-revealed .button{animation:cta-button-arrive .5s cubic-bezier(.2,.75,.2,1) .08s both}
@keyframes cta-heading-arrive{from{transform:translate3d(-12px,0,0)}to{transform:translate3d(0,0,0)}}
@keyframes cta-button-arrive{from{transform:translate3d(0,8px,0)}to{transform:translate3d(0,0,0)}}
.page-motion-section:not(.motion-in-view) *,.page-motion-suspended .page-motion-section *{animation-play-state:paused!important}
.page-motion-section:not(.motion-in-view) .depth-ornament,.page-motion-section:not(.motion-in-view) .depth-ornament svg{will-change:auto}
.page-motion-reduced .page-motion-section *{animation:none!important}
.page-motion-reduced .found-intro .intro-grid>div,.page-motion-reduced .process-grid>article,.page-motion-reduced .depth-ornament,.page-motion-reduced .case-carousel:after{transform:none!important}
.page-motion-reduced .process-connection{transform:scaleX(1)}
@media(max-width:700px){
 .depth-ornament{opacity:.045;filter:blur(1px)}.intro-distant{width:72px;right:-15px;top:3%}.process-distant{display:none}.cta-distant{width:60px;right:0;top:10%}
 .process-connection{top:0;bottom:0;left:-11px;right:auto;width:1px;height:auto;transform-origin:center top;transform:scaleY(var(--connection-progress,0))}
 .testimonial-video:nth-child(n){--frame-delay:0s}.case-carousel:after{display:none}
 .page-motion-reduced .process-connection{transform:scaleY(1)}
 @keyframes case-frame-arrive{from{transform:translate3d(0,12px,0)}to{transform:translate3d(0,0,0)}}
 @keyframes evidence-arrive{from{transform:translate3d(0,8px,0)}to{transform:translate3d(0,0,0)}}
 @keyframes client-frame-arrive{from{transform:translate3d(0,12px,0)}to{transform:translate3d(0,0,0)}}
}
@media(prefers-reduced-motion:reduce){
 .page-motion-section *{animation:none!important}
 .page-motion-ready .found-intro .intro-grid>div,.page-motion-ready .process-grid>article,.depth-ornament,.case-carousel:after{transform:none!important}
 .process-connection{transform:scaleX(1)!important}
 @media(max-width:700px){.process-connection{transform:scaleY(1)!important}}
}
/* Scroll assembly replaces the earlier tiny one-time frame reveals. */
.page-motion-section{overflow:clip}
.page-motion-ready .case-studies.section-revealed .case-carousel{animation:none;transform:translate3d(0,var(--frame-y,0px),0)}
.page-motion-ready .case-studies.section-revealed .case-evidence{animation:none;transform:translate3d(var(--evidence-x,0px),0,0)}
.page-motion-ready .process-grid>article{position:relative;transform:translate3d(var(--step-x,0px),var(--step-y,0px),var(--step-z,0px)) rotateY(var(--step-turn,0deg));background:#fff}
.process-connection{height:2px;box-shadow:0 0 12px #ff7e2660;background:linear-gradient(90deg,#ff9c59,#ff7e26,#ffbd8d)}
.process-grid>article:before{content:'';position:absolute;top:-5px;left:0;width:9px;height:9px;background:#fff;border:2px solid #ff7e26;border-radius:50%;box-shadow:0 0 12px #ff7e2640}
.depth-ornament{opacity:.09}.intro-distant{right:3%;width:120px}.depth-ornament svg{--drift-duration:17s}
.case-footer>p{font-size:13px;color:#655e56}
@media(max-width:700px){.page-motion-ready .process-grid>article{transform:translate3d(0,var(--step-y,0px),0)}.process-connection{height:auto;width:2px}.process-grid>article:before{left:-14px;top:22px}.intro-distant{right:2%}}
.page-motion-reduced .case-carousel,.page-motion-reduced .case-evidence{transform:none!important}
@media(prefers-reduced-motion:reduce){.page-motion-ready .case-carousel,.page-motion-ready .case-evidence{transform:none!important}}
