.campaign-popup[hidden] { display: none; }
.campaign-popup { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 20px; background: rgba(19, 12, 26, .72); backdrop-filter: blur(7px); }
.campaign-popup__dialog { position: relative; width: min(520px, 92vw); max-height: 90vh; border-radius: 24px; padding: 12px; background: var(--campaign-card-bg, #fff); box-shadow: 0 28px 80px rgba(0,0,0,.4); animation: campaign-in .32s ease-out; }
.campaign-popup__dialog.is-transparent { padding: 0; box-shadow: none; }
.campaign-popup__image { display: block; width: 100%; max-height: calc(90vh - 24px); object-fit: contain; border-radius: 16px; }
.campaign-popup__close { position: absolute; top: -14px; right: -14px; width: 42px; height: 42px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #9d62ad; font: 28px/1 sans-serif; cursor: pointer; box-shadow: 0 5px 15px rgba(0,0,0,.3); }
.campaign-popup__count { position: absolute; left: 22px; bottom: 22px; padding: 3px 10px; border-radius: 20px; color: #fff; background: rgba(0,0,0,.55); font-size: 12px; }
.campaign-popup[data-close-mode="anywhere"] { cursor: pointer; }
body.campaign-popup-open { overflow: hidden; }
@keyframes campaign-in { from { opacity: 0; transform: translateY(18px) scale(.96); } }
@media (prefers-reduced-motion: reduce) { .campaign-popup__dialog { animation: none; } }
