
/* CWI V74 — visible site-wide motion system */
:root{
  --cwi-motion-ease:cubic-bezier(.22,.61,.36,1);
  --cwi-motion-fast:300ms;
  --cwi-motion-med:760ms;
}

/* Stronger scroll reveal */
.cwiMotionReveal{
  opacity:0;
  transform:translate3d(0,52px,0) scale(.965);
  transition:
    opacity var(--cwi-motion-med) var(--cwi-motion-ease),
    transform var(--cwi-motion-med) var(--cwi-motion-ease);
  transition-delay:var(--cwi-motion-delay,0ms);
  will-change:opacity,transform;
}
.cwiMotionReveal.cwiMotionIn{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}

/* Cards visibly lift and breathe */
.cwiMotionCard{
  transform-origin:center;
  transition:
    transform var(--cwi-motion-fast) var(--cwi-motion-ease),
    box-shadow var(--cwi-motion-fast) ease,
    border-color var(--cwi-motion-fast) ease;
}
@media (prefers-reduced-motion:no-preference){
  .programDirectory article,
  .snapshotGrid article,
  .landingSteps article,
  .impactGrid article,
  .whyPoints article,
  .coreCard,
  .a39phase,
  .aboutHeroFeatureV47,
  .pipelineApprovedStage,
  .partnerEditorialRow,
  .oppBenefits article,
  .a36supportItem,
  .academyPathSteps article,
  .benefitPanel > div,
  .learnPanel,
  .supportPromises article{
    animation:cwiFloatV74 5.5s ease-in-out infinite alternate;
    will-change:transform;
  }

  .programDirectory article:nth-child(2n),
  .snapshotGrid article:nth-child(2n),
  .landingSteps article:nth-child(2n),
  .impactGrid article:nth-child(2n),
  .whyPoints article:nth-child(2n),
  .a39phase:nth-child(2n),
  .aboutHeroFeatureV47:nth-child(2n),
  .pipelineApprovedStage:nth-child(2n),
  .partnerEditorialRow:nth-child(2n),
  .oppBenefits article:nth-child(2n),
  .a36supportItem:nth-child(2n),
  .academyPathSteps article:nth-child(2n){
    animation-delay:-2.1s;
  }

  .programDirectory article:nth-child(3n),
  .snapshotGrid article:nth-child(3n),
  .landingSteps article:nth-child(3n),
  .impactGrid article:nth-child(3n),
  .whyPoints article:nth-child(3n),
  .a39phase:nth-child(3n),
  .aboutHeroFeatureV47:nth-child(3n),
  .pipelineApprovedStage:nth-child(3n),
  .partnerEditorialRow:nth-child(3n),
  .oppBenefits article:nth-child(3n),
  .a36supportItem:nth-child(3n),
  .academyPathSteps article:nth-child(3n){
    animation-delay:-3.4s;
  }
}
@keyframes cwiFloatV74{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(0,-7px,0)}
}

/* More visible picture motion that works even if JS does not */
.programHeroImage,
.pageHeroImage,
.academyHeroVisual,
.supportPhoto,
.partnerImage,
.imageFrame,
.pathwayImage,
.aboutHeroImageWrapV47,
.aboutFooterPhotoFrameV47,
.a36journeyCity{
  overflow:hidden;
}
@media (prefers-reduced-motion:no-preference){
  .programHeroImage img,
  .pageHeroImage img,
  .academyHeroVisual img,
  .supportPhoto img,
  .partnerImage img,
  .imageFrame img,
  .pathwayImage img,
  .aboutHeroImageWrapV47 img,
  .aboutFooterPhotoFrameV47 img{
    animation:cwiImageDriftV74 10s ease-in-out infinite alternate;
    transform-origin:center;
    will-change:transform;
  }

  /* CSS-background image sections */
  .a36journeyCity{
    animation:cwiBgDriftV74 10s ease-in-out infinite alternate;
    will-change:background-position;
  }
}
@keyframes cwiImageDriftV74{
  0%{transform:scale(1.00) translate3d(0,0,0)}
  100%{transform:scale(1.075) translate3d(-1.2%, -1%, 0)}
}
@keyframes cwiBgDriftV74{
  0%{background-position:center center}
  100%{background-position:54% 47%}
}

/* Hover adds a clear premium lift on desktop */
@media (hover:hover) and (pointer:fine){
  .cwiMotionCard:hover,
  .programDirectory article:hover,
  .snapshotGrid article:hover,
  .landingSteps article:hover,
  .impactGrid article:hover,
  .whyPoints article:hover,
  .a39phase:hover,
  .aboutHeroFeatureV47:hover,
  .pipelineApprovedStage:hover,
  .partnerEditorialRow:hover,
  .oppBenefits article:hover,
  .a36supportItem:hover,
  .academyPathSteps article:hover{
    animation-play-state:paused;
    transform:translate3d(0,-12px,0) scale(1.015)!important;
    box-shadow:0 22px 44px rgba(18,48,74,.16)!important;
  }
}

/* Accent numbers/icons visibly pop on reveal */
.cwiMotionIn .impactNumber,
.cwiMotionIn .pipelineApprovedNode b,
.cwiMotionIn .landingSteps article > b,
.cwiMotionIn .a39phaseNum,
.cwiMotionIn .oppStageIcon{
  animation:cwiPopV74 650ms var(--cwi-motion-ease) both;
}
@keyframes cwiPopV74{
  0%{transform:scale(.62) rotate(-5deg);opacity:.25}
  65%{transform:scale(1.12) rotate(1deg);opacity:1}
  100%{transform:scale(1) rotate(0);opacity:1}
}

/* Buttons are more responsive */
.button,
.aboutHeroBtnV47,
.aboutFooterBtnV47,
.cwiUnifiedFooter a{
  transition:
    transform 240ms var(--cwi-motion-ease),
    box-shadow 240ms ease,
    background-color 240ms ease,
    color 240ms ease,
    border-color 240ms ease;
}
@media (hover:hover) and (pointer:fine){
  .button:hover,
  .aboutHeroBtnV47:hover,
  .aboutFooterBtnV47:hover{
    transform:translate3d(0,-4px,0) scale(1.02);
    box-shadow:0 12px 26px rgba(14,111,116,.18);
  }
}

/* A very gentle hero-copy entrance */
@media (prefers-reduced-motion:no-preference){
  .academyHeroCopy,
  .programHeroGrid > div:first-child,
  .pageHeroGrid > div:first-child,
  .aboutHeroCopyV47{
    animation:cwiHeroInV74 900ms var(--cwi-motion-ease) both;
  }
}
@keyframes cwiHeroInV74{
  from{opacity:0;transform:translate3d(-34px,0,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* Accessibility */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation:none!important;
    transition-duration:.01ms!important;
  }
  .cwiMotionReveal{opacity:1!important;transform:none!important}
}
