.campaign-dialog {
  border: 0;
  border-top: 5px solid var(--red);
  width: min(600px, calc(100% - 28px));
  max-height: calc(100dvh - 32px);
  overflow: auto;
  padding: 36px;
  background: var(--ash);
  color: var(--ink);
  box-shadow: 0 24px 80px #0006;
}
.campaign-dialog[open] { animation: campaign-enter 220ms ease-out; }
.campaign-dialog::backdrop { background: #111820b8; }
body:has(.campaign-dialog[open]) { overflow: hidden; }
.campaign-dialog h2 { padding-right: 20px; font-size: 2rem; margin-bottom: 16px; }
.campaign-dialog .eyebrow { padding-right: 30px; }
.campaign-close { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; border: 0; background: transparent; font-size: 28px; color: var(--ink); }
.campaign-close:hover { color: var(--interactive-red); background: #ffe7e9; }
.campaign-demo { font-size: .875rem; border-left: 3px solid var(--red); padding: 8px 12px; background: #e9e9e7; }
.campaign-consent { display: flex; flex-direction: row; align-items: flex-start; gap: 10px; margin: 20px 0; font-weight: 400; line-height: 1.5; }
.campaign-consent input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 2px; accent-color: var(--interactive-red); }
.campaign-consent span { color: var(--ink); }
.campaign-skip { background: transparent; border: 0; text-decoration: underline; text-underline-offset: 4px; padding: 14px; color: var(--muted); }
.campaign-skip:hover { color: var(--interactive-red); }
@keyframes campaign-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media(max-width: 560px) { .campaign-dialog { padding: 24px 20px; } .campaign-dialog .form-grid { grid-template-columns: 1fr; gap: 12px; } .campaign-dialog h2 { font-size: 1.65rem; } }
@media(prefers-reduced-motion: reduce) { .campaign-dialog[open] { animation: none; } }
