 :root {
  --gxe-bg:#111;
  --gxe-text:#fff;
  --gxe-accent:#FF4DA6;
}
.gxe-open { overflow: hidden; }
.gxe-modal { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; }
.gxe-modal[aria-hidden="true"] { display: none; }
.gxe-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.gxe-dialog { position: relative; max-width: 520px; width: calc(100% - 32px); background: var(--gxe-bg); color: var(--gxe-text); border-radius: 16px; padding: 24px 22px; box-shadow: 0 20px 60px rgba(0,0,0,.45); }
.gxe-close { position: absolute; top: 10px; right: 12px; background: transparent; border: 0; color: #aaa; font-size: 24px; cursor: pointer; }
.gxe-badge { display: inline-block; font-size: 12px; text-transform: uppercase; opacity: .8; letter-spacing: .08em; margin-bottom: 6px; }
.gxe-title { margin: 4px 0 8px; font-size: 24px; }
.gxe-sub { margin: 0 0 12px; opacity: .9; }
.gxe-features { margin: 10px 0 14px; padding-left: 18px; }
.gxe-features li { margin: 5px 0; }
.gxe-cta { display: inline-block; text-align: center; width: 100%; border-radius: 12px; padding: 12px 16px; text-decoration: none; background: var(--gxe-accent); color: #111; font-weight: 700; }
.gxe-cta:hover { filter: brightness(1.05); }
.gxe-note { font-size: 12px; opacity: .8; margin: 10px 2px; }
.gxe-never { display: flex; align-items: center; gap: 8px; font-size: 12px; opacity: .8; margin-top: 8px; }
.gxe-scarcity { margin: 6px 0 10px; font-size: 13px; opacity: .9; }
@media (max-width: 420px){
  .gxe-dialog { padding: 18px 16px; }
  .gxe-title { font-size: 20px; }
}
