/* Fixed precision release core with the family's bounded center pulse/halo.
 * Shared product CSS retains all outer hero/grid/figure sizing. */
.cbn-hero-pulse-core{background:transparent;overflow:visible}
.cbn-hero-pulse-core::before,.cbn-hero-pulse-core::after{display:none}
.cbn-hero-pulse-core>.cbn-pulse-core-art{display:block;width:100%;height:100%;pointer-events:none}
.cbn-hero-pulse-core .cbn-pulse-core-logo{transform-box:fill-box;transform-origin:center;animation:cbnReleaseCorePulse 3.6s ease-in-out infinite;animation-play-state:paused}
.cbn-hero-pulse-core .cbn-pulse-core-ripple{transform-box:fill-box;transform-origin:center;opacity:0;animation:cbnReleaseCoreHalo 3.6s ease-out infinite;animation-play-state:paused}
.cbn-hero-pulse-core .cbn-pulse-core-signal{stroke-dasharray:8 92;stroke-dashoffset:100;opacity:0;animation:cbnReleaseCoreSignal 14s linear infinite;animation-delay:var(--cbn-pulse-core-delay);animation-play-state:paused}
.cbn-hero-pulse-core.ip-animation-active :is(.cbn-pulse-core-logo,.cbn-pulse-core-ripple,.cbn-pulse-core-signal){animation-play-state:running}
@keyframes cbnReleaseCorePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes cbnReleaseCoreHalo{0%,50%{opacity:0;transform:scale(1.015)}55%{opacity:.4;transform:scale(1.025)}95%,100%{opacity:0;transform:scale(1.18)}}
@keyframes cbnReleaseCoreSignal{0%,8%{stroke-dashoffset:100;opacity:0}18%,65%{opacity:.55}78%,100%{stroke-dashoffset:8;opacity:0}}
@media(prefers-reduced-motion:reduce){
 .cbn-hero-pulse-core :is(.cbn-pulse-core-logo,.cbn-pulse-core-ripple,.cbn-pulse-core-signal){animation:none}
 .cbn-hero-pulse-core .cbn-pulse-core-logo{transform:none}
 .cbn-hero-pulse-core :is(.cbn-pulse-core-ripple,.cbn-pulse-core-signal){display:none;opacity:0}
}
