 /* Overlay backdrop */
 .popup-overlay {
     display: none;
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: rgba(0, 0, 0, 0.6);
     backdrop-filter: blur(4px);
     z-index: 9998;
     animation: fadeIn 0.3s ease-out;
 }

 .popup-overlay.active {
     display: flex;
     justify-content: center;
     align-items: center;
 }

 /* Popup container */
 .popup-container {
     position: relative;
     background: #ffffff;
     border-radius: 20px;
     box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
     max-width: 480px;
     width: 90%;
     max-height: 90vh;
     overflow: hidden;
     animation: slideUp 0.4s ease-out;
 }

 /* Close button */
 .popup-close {
     position: absolute;
     top: 16px;
     right: 16px;
     width: 32px;
     height: 32px;
     border: none;
     background: rgba(0, 0, 0, 0.05);
     border-radius: 50%;
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     transition: all 0.2s ease;
     z-index: 10;
 }

 .popup-close:hover {
     background: rgba(0, 0, 0, 0.1);
     transform: rotate(90deg);
 }

 .popup-close::before,
 .popup-close::after {
     content: '';
     position: absolute;
     width: 16px;
     height: 2px;
     background: #333;
     border-radius: 1px;
 }

 .popup-close::before {
     transform: rotate(45deg);
 }

 .popup-close::after {
     transform: rotate(-45deg);
 }

 /* Popup content */
 .popup-content {
     padding: 40px 32px 32px;
 }

 /* Icon/Image area */
 .popup-icon {
     text-align: center;
     margin-bottom: 24px;
 }

 .popup-icon svg {
     width: 64px;
     height: 64px;
 }

 /* For image-based announcement */
 .popup-image {
     width: 100%;
     height: auto;
     border-radius: 12px;
     margin-bottom: 24px;
 }

 /* Text content */
 .popup-header {
     font-size: 28px;
     font-weight: 700;
     color: #1a1a1a;
     margin-bottom: 12px;
     line-height: 1.2;
     text-align: center;
 }

 .popup-text {
     font-size: 16px;
     color: #666;
     line-height: 1.6;
     margin-bottom: 28px;
     text-align: center;
 }

 /* CTA Button */
 .popup-cta {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     width: 100%;
     padding: 16px 24px;
     background: #000;
     color: #fff;
     text-decoration: none;
     border-radius: 12px;
     font-size: 16px;
     font-weight: 600;
     transition: all 0.3s ease;
     border: none;
     cursor: pointer;
 }

 .popup-cta:hover {
     background: #333;
     transform: translateY(-2px);
     box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
 }

 .popup-cta svg {
     width: 24px;
     height: 24px;
 }

 /* Animations */
 @keyframes fadeIn {
     from {
         opacity: 0;
     }

     to {
         opacity: 1;
     }
 }

 @keyframes slideUp {
     from {
         opacity: 0;
         transform: translateY(40px) scale(0.95);
     }

     to {
         opacity: 1;
         transform: translateY(0) scale(1);
     }
 }

 /* Responsive */
 @media (max-width: 576px) {
     .popup-container {
         width: 95%;
         border-radius: 16px;
     }

     .popup-content {
         padding: 32px 24px 24px;
     }

     .popup-header {
         font-size: 24px;
     }

     .popup-text {
         font-size: 15px;
     }
 }

 /* Demo page styles */
 body {
     font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
     padding: 40px;
     background: #f5f5f5;
 }

 .demo-button {
     padding: 12px 24px;
     background: #007bff;
     color: white;
     border: none;
     border-radius: 8px;
     cursor: pointer;
     font-size: 16px;
 }

 .demo-info {
     margin-top: 20px;
     padding: 16px;
     background: #fff;
     border-radius: 8px;
     border-left: 4px solid #28a745;
 }