/* Celebration popup modal (newsletter etc.) — always dark, works in both themes. */
.popup-overlay {
    position: fixed;
    inset: 0;
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background: rgba(5, 8, 18, 0.7);
    backdrop-filter: blur(6px);
    animation: popupFadeIn 0.25s ease-out;
}
.popup-overlay.hide { opacity: 0; transition: opacity 0.3s; }
.popup-card {
    position: relative;
    width: min(420px, 100%);
    text-align: center;
    padding: 2.5rem 2rem 2rem;
    border-radius: 20px;
    color: #f1f5f9;
    background: linear-gradient(160deg, #141b31 0%, #0d1322 100%);
    border: 1px solid rgba(99, 102, 241, 0.45);
    box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.15), 0 30px 80px rgba(0, 0, 0, 0.55), 0 0 60px rgba(99, 102, 241, 0.18);
    animation: popupPop 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.popup-card h3 { color: #fff; margin: 1rem 0 0.5rem; font-size: 1.4rem; }
.popup-card p { color: rgba(241, 245, 249, 0.78); font-size: 0.95rem; line-height: 1.6; margin: 0 0 1.5rem; }
.popup-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 800;
    color: #fff;
    animation: popupPop 0.45s 0.1s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
}
.popup-icon.ok { background: linear-gradient(135deg, #10b981, #059669); box-shadow: 0 0 30px rgba(16, 185, 129, 0.5); }
.popup-icon.err { background: linear-gradient(135deg, #ef4444, #dc2626); box-shadow: 0 0 30px rgba(239, 68, 68, 0.5); }
.popup-x {
    position: absolute;
    top: 0.7rem;
    right: 0.9rem;
    background: transparent;
    border: none;
    color: rgba(255, 255, 255, 0.6);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 0.3rem;
}
.popup-x:hover { color: #fff; }
.popup-btn { width: 100%; justify-content: center; }
@keyframes popupFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes popupPop { from { opacity: 0; transform: scale(0.7); } to { opacity: 1; transform: scale(1); } }
