﻿/* DEVALS motion polish */
.reveal-on-scroll {
  opacity: 0;
  transform: translate3d(0, 78px, 0) scale(.985);
  filter: blur(5px);
  transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), filter .9s ease;
  will-change: opacity, transform, filter;
}
.reveal-on-scroll.is-in-view {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  filter: blur(0);
}
 .reveal-on-scroll.reveal-from-left:not(.is-in-view) { transform: translate3d(-66px, 30px, 0) scale(.985); }
.reveal-on-scroll.reveal-from-right:not(.is-in-view) { transform: translate3d(66px, 30px, 0) scale(.985); }
.reveal-on-scroll.reveal-pop:not(.is-in-view) { transform: translate3d(0, 30px, 0) scale(.88); }
#hero .hbadge { animation: hero-enter .8s .08s both; }
#hero .htitle { animation: hero-enter .9s .18s both; }
#hero .hdesc { animation: hero-enter .85s .32s both; }
#hero .d-flex.flex-wrap.gap-3.mb-2 { animation: hero-enter .8s .45s both; }
#hero .hstats { animation: hero-enter .8s .58s both; }
@keyframes hero-enter {
  from { opacity:0; transform:translate3d(0,34px,0); filter:blur(5px); }
  to { opacity:1; transform:translate3d(0,0,0); filter:blur(0); }
}
#hero .hcircle { animation: product-float 6s ease-in-out infinite; }
#hero .hs1 { animation: glow-drift 14s ease-in-out infinite alternate; }
#hero .hs2 { animation: glow-drift 18s ease-in-out infinite alternate-reverse; }
.mwrap { transition: transform .35s cubic-bezier(.2,.7,.2,1), filter .35s ease; }
.mwrap:hover { transform: translateY(-10px) scale(1.018); filter: drop-shadow(0 18px 24px rgba(26,26,26,.16)); }
.mwrap img { transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.mwrap:hover img { transform: scale(1.07); }
.btn-red, .nav-cta { position:relative; overflow:hidden; }
.btn-red::after, .nav-cta::after {
  content:""; position:absolute; inset:0 auto 0 -130%; width:70%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);
  transform:skewX(-18deg); transition:left .65s ease; pointer-events:none;
}
.btn-red:hover::after, .nav-cta:hover::after { left:150%; }
#btt { transition:opacity .35s ease, transform .35s ease, box-shadow .35s ease; }
#btt.show { box-shadow:0 8px 24px rgba(232,40,26,.35); }
@keyframes product-float { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-13px) } }
@keyframes glow-drift { from { transform:translate3d(-8px,0,0) scale(.98) } to { transform:translate3d(12px,-10px,0) scale(1.04) } }
@media (prefers-reduced-motion: reduce) {
  .reveal-on-scroll { opacity:1; transform:none; filter:none; transition:none; }
  #hero .hcircle, #hero .hs1, #hero .hs2, #hero .hbadge, #hero .htitle, #hero .hdesc, #hero .d-flex.flex-wrap.gap-3.mb-2, #hero .hstats { animation:none; }
  .mwrap, .mwrap img, .btn-red::after, .nav-cta::after { transition:none; }
}