.reveal-item{
    opacity:0;
    transform:translateY(16px);
    transition:opacity .55s ease, transform .55s ease;
    will-change:opacity, transform;
}
.reveal-item.is-visible{
    opacity:1;
    transform:translateY(0);
}
@media (prefers-reduced-motion: reduce){
    .reveal-item{
        opacity:1;
        transform:none;
        transition:none;
    }
}
.cta-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:9999px;
    font-weight:700;
    transition:transform .16s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
    box-shadow:0 8px 18px rgba(15, 23, 42, .12);
}
.cta-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 12px 24px rgba(15, 23, 42, .18);
}
.cta-btn:active{
    transform:translateY(1px) scale(.99);
    box-shadow:0 4px 10px rgba(15, 23, 42, .18);
}
.cta-btn:focus-visible{
    outline:3px solid #111827;
    outline-offset:2px;
}
.cta-primary{
    background:#111827;
    color:#fff;
}
.cta-primary:hover{
    background:#000;
}
.cta-accent{
    background:#eab308;
    color:#111827;
}
.cta-accent:hover{
    background:#facc15;
}
.cta-ghost{
    background:#fff;
    border:1px solid #d1d5db;
    color:#111827;
}
.cta-ghost:hover{
    border-color:#9ca3af;
    background:#fffbeb;
}
.sticky-cta{
    animation:stickyPulse 2.4s ease-in-out infinite;
}
@keyframes stickyPulse{
    0%, 100% { box-shadow:0 0 0 0 rgba(234, 179, 8, .35); }
    50% { box-shadow:0 0 0 8px rgba(234, 179, 8, 0); }
}
