/* CM360 visible animation system — loaded after all theme styles */
:root{--motion-gold:#eac579}
/* Continuous, deliberately visible homepage animation */
body:not(.theme-white-corporate) .hero{position:relative;isolation:isolate}
body:not(.theme-white-corporate) .hero .devices{animation:cm-stage-float 4.8s ease-in-out infinite!important;transform-origin:50% 52%;}
body:not(.theme-white-corporate) .hero .device.front{animation:cm-phone-front 5.1s ease-in-out infinite!important;transform-origin:center center;}
body:not(.theme-white-corporate) .hero .device.back{animation:cm-phone-back 6.3s ease-in-out infinite!important;transform-origin:center center;}
body:not(.theme-white-corporate) .hero .ring{animation:cm-ring-spin 16s linear infinite!important;}
body:not(.theme-white-corporate) .hero .ring.two{animation:cm-ring-spin-reverse 23s linear infinite!important;}
body:not(.theme-white-corporate) .hero-orbit-points i{width:9px;height:9px;background:#f4d38d;box-shadow:0 0 18px 8px #e7b35f55;animation:cm-spark 3.4s ease-in-out infinite alternate!important;}
body:not(.theme-white-corporate) .hero-orbit-points i:nth-child(2){animation-delay:-1.7s!important}
body:not(.theme-white-corporate) .hero-orbit-points i:nth-child(3){animation-delay:-2.6s!important}
/* Visible shimmering CTA */
.button.gold,.btn-primary{position:relative;overflow:hidden;isolation:isolate}
.button.gold::after,.btn-primary::after{content:"";position:absolute;top:-50%;left:-90%;width:55%;height:210%;background:linear-gradient(90deg,transparent,#fff9,transparent);transform:rotate(24deg);animation:cm-button-shine 5.4s ease-in-out infinite;pointer-events:none}
/* Inner page 3D banner motion and orbit, with clearly visible decor */
body.theme-white-corporate .page-hero:before{animation:cm-inner-halo 9s ease-in-out infinite alternate!important}
body.theme-white-corporate .page-hero:after{border:2px solid #e9bc72aa!important;box-shadow:0 0 0 26px #eac78417,0 0 0 58px #eac7840d!important;animation:cm-inner-orbit 8s ease-in-out infinite alternate!important}
/* Add layered ornament on inner pages and hero content */
.cm-banner-orb{position:absolute;right:12%;top:16%;height:170px;width:170px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f8d69288,#dca55520 35%,transparent 72%);filter:blur(2px);z-index:0;pointer-events:none;animation:cm-orb-drift 5.3s ease-in-out infinite alternate}
.cm-banner-line{position:absolute;width:410px;height:410px;border-radius:50%;right:3%;top:-55%;border:1px dashed #e7c17d88;pointer-events:none;animation:cm-line-rotate 28s linear infinite}
/* Legal hero visual: lift the 3D object noticeably */
.legal-card.main{animation:floatCardMain 4.3s ease-in-out infinite!important}
.legal-card.floating.top{animation:floatCardSub 4.8s ease-in-out infinite!important}
.legal-card.floating.bottom{animation:floatCardSub 5.5s ease-in-out infinite reverse!important}
.legal-rings{animation:tiltFloat 5.5s ease-in-out infinite!important}
/* Scroll reveal: no content is hidden by default; JS opts in once observer supported */
html.cm-motion-ready .cm-reveal{opacity:.22;transform:translateY(34px);filter:blur(3px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1),filter .85s ease;will-change:opacity,transform,filter}
html.cm-motion-ready .cm-reveal.cm-visible{opacity:1;transform:none;filter:none}
/* Interactive cards stay in place until hover */
.module-card,.price-card,.capability,.feature-card,.admin-window{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease!important}
.module-card:hover,.price-card:hover,.capability:hover,.feature-card:hover,.admin-window:hover{transform:translateY(-9px)!important;box-shadow:0 25px 50px #001c134d!important;border-color:#d9b66d!important}
@keyframes cm-stage-float{0%,100%{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-18px) rotate(.7deg)}}
@keyframes cm-phone-front{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-14px) rotate(1.5deg)}}
@keyframes cm-phone-back{0%,100%{transform:translateY(-5px) rotate(1.2deg)}50%{transform:translateY(13px) rotate(-1.4deg)}}
@keyframes cm-ring-spin{0%{transform:rotate(-14deg) scale(.98)}50%{transform:rotate(9deg) scale(1.07)}100%{transform:rotate(346deg) scale(.98)}}
@keyframes cm-ring-spin-reverse{0%{transform:rotate(14deg) scale(1.04)}50%{transform:rotate(-8deg) scale(.96)}100%{transform:rotate(-346deg) scale(1.04)}}
@keyframes cm-spark{from{transform:translate3d(-10px,18px,0) scale(.7);opacity:.3}to{transform:translate3d(24px,-28px,0) scale(1.35);opacity:1}}
@keyframes cm-button-shine{0%,62%{left:-90%;opacity:0}68%{opacity:1}88%,100%{left:145%;opacity:0}}
@keyframes cm-inner-halo{from{transform:rotate(-12deg) scale(.9);opacity:.4}to{transform:rotate(13deg) scale(1.12);opacity:1}}
@keyframes cm-inner-orbit{from{transform:perspective(700px) rotateX(63deg) rotateZ(-29deg) translateY(15px)}to{transform:perspective(700px) rotateX(48deg) rotateZ(29deg) translateY(-22px)}}
@keyframes cm-orb-drift{from{transform:translate(0,20px) scale(.8);opacity:.5}to{transform:translate(-28px,-14px) scale(1.2);opacity:1}}
@keyframes cm-line-rotate{to{transform:rotate(360deg)}}
/* Pause offscreen animation for performance and motion-sensitive visitors */
@media (prefers-reduced-motion:reduce){
  html.cm-motion-ready .cm-reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  .hero *, .hero::before,.hero::after,.page-hero *, .page-hero::before,.page-hero::after,.legal-hero *, .legal-hero::before,.legal-hero::after,.button.gold::after,.btn-primary::after{animation:none!important}
}
@media(max-width:700px){.cm-banner-line{width:200px;height:200px;right:-40px;top:-20px}.cm-banner-orb{right:0;top:10%;width:120px;height:120px}body:not(.theme-white-corporate) .hero .devices{animation:cm-stage-float 5.5s ease-in-out infinite!important}}
