/* One 10 kB AVIF texture, bounded paint areas and composited CSS drift. */
.ct-smoke-host{position:relative}
.ct-smoke-host>.elementor-container,.ct-service-hero.ct-smoke-host>:not(.ct-smoke){position:relative;z-index:2}
.ct-smoke{position:absolute;inset:0;z-index:1;overflow:hidden;contain:strict;pointer-events:none;user-select:none;mix-blend-mode:screen;mask-image:linear-gradient(transparent 8%,#000 46%,#000 88%,transparent)}
.ct-smoke::before,.ct-smoke::after{content:"";position:absolute;width:min(1050px,90vw);height:440px;left:-12%;bottom:-70px;opacity:0;transform-origin:50% 80%;background:url('/assets/effects/smoke.avif') center/100% 100% no-repeat;filter:sepia(.25);animation:ct-smoke-drift 24s ease-in-out infinite alternate;animation-play-state:paused}
.ct-smoke::after{left:auto;right:-18%;bottom:-25px;width:min(860px,76vw);height:400px;animation-name:ct-smoke-return;animation-duration:29s;animation-delay:-13s}
.ct-smoke.is-running::before,.ct-smoke.is-running::after{animation-play-state:running;will-change:transform,opacity}
.ct-smoke-footer .ct-smoke{mask-image:linear-gradient(transparent,#000 35%,#000 85%,transparent)}
.ct-smoke-footer .ct-smoke::before{bottom:0;height:430px}
.ct-smoke-footer .ct-smoke::after{bottom:9%;height:380px}
body.ct-dialog-open .ct-smoke::before,body.ct-dialog-open .ct-smoke::after{animation-play-state:paused;will-change:auto}
@keyframes ct-smoke-drift{0%{transform:translate3d(-4%,8%,0) scale(.94) rotate(-5deg);opacity:.42}50%{opacity:.65}100%{transform:translate3d(15%,-18%,0) scale(1.12) rotate(5deg);opacity:.48}}
@keyframes ct-smoke-return{0%{transform:translate3d(7%,12%,0) scale(1.05) rotate(4deg);opacity:.32}55%{opacity:.55}100%{transform:translate3d(-19%,-16%,0) scale(.96) rotate(-6deg);opacity:.42}}
@media(max-width:767px){.ct-smoke::before{width:125vw;height:300px;left:-20%}.ct-smoke::after{display:none}.ct-smoke-footer .ct-smoke::before{bottom:8%;height:330px}.ct-smoke{mask-image:linear-gradient(transparent 20%,#000 60%,#000 86%,transparent)}}
@media(prefers-reduced-motion:reduce){.ct-smoke{display:none}}
