.cta-dot-matrix{position:absolute;inset:0;z-index:0;pointer-events:none;background:url('/prototype-4/assets/cta-motion/dots-poster.svg?v=right-shift-1') center/100% 100% no-repeat}
.cta-dot-matrix canvas{display:block;width:100%;height:100%;opacity:0}
.nimbus-cta-content{z-index:1}
@media(prefers-reduced-motion:reduce){.cta-dot-matrix canvas{animation:none;transition:none}}

.cta-dot-matrix.is-ready{background-image:none}

/* Quick surface feedback; all movement is transform-only. */
.nimbus-cta-actions button{cursor:pointer;transition:background-color 140ms ease,box-shadow 140ms ease,transform 100ms cubic-bezier(.215,.61,.355,1);transform:translateY(0) scale(1)}
@media(hover:hover) and (pointer:fine){
 .nimbus-cta-actions .nimbus-primary:hover{background:#efedff;box-shadow:0 4px 16px rgb(0 0 70 / 20%);transform:translateY(-1px)}
 .nimbus-cta-actions .nimbus-secondary:hover{background:rgb(255 255 255 / 28%);border:0;box-shadow:none;transform:translateY(0) scale(1)}
}
.nimbus-cta-actions .nimbus-primary:active{background:#dcd7ff;box-shadow:inset 0 2px 5px rgb(5 0 80 / 18%);transform:translateY(1px) scale(.98);transition-duration:70ms}
.nimbus-cta-actions .nimbus-secondary:active{background:rgb(255 255 255 / 34%);box-shadow:inset 0 2px 5px rgb(0 0 65 / 24%),inset 0 0 0 1px rgb(255 255 255 / 28%);transform:translateY(1px) scale(.98);transition-duration:70ms}
@media(prefers-reduced-motion:reduce){.nimbus-cta-actions button{transition:none}.nimbus-cta-actions button:hover,.nimbus-cta-actions button:active{transform:none}}
