/* NeXy motion layer. Transform and opacity only. Fully disabled under prefers-reduced-motion. */

/* --- scroll reveal --- */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.22,.7,.3,1),transform .6s cubic-bezier(.22,.7,.3,1)}
[data-reveal].in{opacity:1;transform:none}
[data-reveal][data-d="1"]{transition-delay:.08s}
[data-reveal][data-d="2"]{transition-delay:.16s}
[data-reveal][data-d="3"]{transition-delay:.24s}
[data-reveal][data-d="4"]{transition-delay:.32s}

/* --- hover life on cards and buttons --- */
.tcard,.bcard,.ppoint,.acard,.calc-in,.calc-out{transition:transform .35s cubic-bezier(.22,.7,.3,1),box-shadow .35s cubic-bezier(.22,.7,.3,1)}
.tcard:hover,.bcard:hover,.acard:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(10,11,20,.10)}
.btn-primary,.btn-ghost{transition:transform .25s ease,box-shadow .25s ease}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(94,107,255,.28)}
.btn-ghost:hover{transform:translateY(-2px)}
.btn-primary:active,.btn-ghost:active{transform:translateY(0)}

/* --- gentle parallax targets (JS drives --py) --- */
.px-drift{transform:translate3d(0,calc(var(--py,0)*1px),0);will-change:transform}

/* --- floating notification chips on the hero phone --- */
.float-chip{position:absolute;z-index:6;display:flex;align-items:center;gap:9px;background:#ffffff;border:1px solid rgba(20,22,34,.08);border-radius:12px;padding:10px 14px;box-shadow:0 14px 34px rgba(10,11,20,.16);font-size:12.5px;font-weight:600;color:#14161f;white-space:nowrap;opacity:0;pointer-events:none}
.float-chip .fc-dot{width:8px;height:8px;border-radius:50%;background:#5e6bff;flex-shrink:0;box-shadow:0 0 0 4px rgba(94,107,255,.14)}
.float-chip .fc-sub{display:block;font-size:10.5px;font-weight:500;color:#6c7180;margin-top:1px}
.float-chip.fc-a{top:12%;right:-46px}
.float-chip.fc-b{bottom:20%;left:-58px}
.float-chip.fc-in{position:absolute;z-index:6}
.float-chip.go.d1{animation:chipIn .7s cubic-bezier(.2,.9,.3,1.2) .5s forwards,chipFloat 5.5s ease-in-out 1.3s infinite}
.float-chip.go.d2{animation:chipIn .7s cubic-bezier(.2,.9,.3,1.2) 1.5s forwards,chipFloat 6.5s ease-in-out 2.3s infinite reverse}
@keyframes chipIn{from{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes chipFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(max-width:900px){.float-chip.fc-a{right:-8px}.float-chip.fc-b{left:-10px}}

/* --- stat count-up (dashboard mocks) --- */
.stat .sn{font-variant-numeric:tabular-nums}
.sd-wait{opacity:0;transform:translateY(5px)}
.sd-in{opacity:1;transform:translateY(0);transition:opacity .5s cubic-bezier(.22,.7,.3,1),transform .5s cubic-bezier(.22,.7,.3,1)}
@media (prefers-reduced-motion: reduce){.sd-wait,.sd-in{opacity:1 !important;transform:none !important;transition:none !important}}

/* --- calculator price tick --- */
.price-tick{animation:priceTick .45s cubic-bezier(.2,.8,.3,1)}
@keyframes priceTick{0%{opacity:.25;transform:translateY(7px)}100%{opacity:1;transform:translateY(0)}}

/* --- kill switch: reduced motion --- */
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
  .float-chip{animation:none !important;opacity:1}
  .px-drift{transform:none !important}
  .tcard,.bcard,.ppoint,.acard,.btn-primary,.btn-ghost{transition:none !important}
  .price-tick{animation:none !important}
}

/* --- integration logo wall --- */
.ichip{transition:transform .3s cubic-bezier(.22,.7,.3,1),box-shadow .3s cubic-bezier(.22,.7,.3,1)}
.ichip:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(10,11,20,.08)}
.ichips .ichip{animation:ichipBob 6s ease-in-out infinite}
.ichips .ichip:nth-child(2){animation-delay:.8s;animation-duration:6.8s}
.ichips .ichip:nth-child(3){animation-delay:1.6s;animation-duration:5.6s}
.ichips .ichip:nth-child(4){animation-delay:2.4s;animation-duration:7.2s}
.ichips .ichip:nth-child(5){animation-delay:3.2s;animation-duration:6.2s}
.ichips .ichip:nth-child(6){animation-delay:4s;animation-duration:6.6s}
@keyframes ichipBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.ichip:hover{animation-play-state:paused}
@media (prefers-reduced-motion: reduce){.ichips .ichip{animation:none !important}.ichip{transition:none !important}}
