/* ICAN|VOTE launch layer; the accepted ballot remains beneath it. */
body.launch-open { overflow: hidden; }
.launch-dialog { width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 0; overflow-x: hidden; overflow-y: auto; border: 1px solid #ffffff70; border-radius: 22px; background: var(--hot-white); color: var(--navy-blue); box-shadow: 0 32px 100px #0d1e4055, 0 3px 12px #0d1e4020; }
.launch-dialog[open] { animation: launch-focus 620ms cubic-bezier(.16,1,.3,1) both; }
.launch-dialog::backdrop { background: #0d1e403d; -webkit-backdrop-filter: blur(14px) saturate(.85); backdrop-filter: blur(14px) saturate(.85); animation: launch-backdrop 480ms ease-out both; }
.launch-dialog__brand-panel { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 112px; padding: 25px 34px; background: var(--navy-blue); color: var(--white); border-bottom: 3px solid var(--ican-red); }
/* Same proportional signature as ICAN VIP's vip-standard/standard.css:
   property type .14, spacing .12, vertical padding .065 of the logo width. */
.pilot-page .ican-vote-lockup { --lockup-width: 80px; display: inline-flex; align-items: center; gap: calc(var(--lockup-width) * .12); min-width: 0; flex-shrink: 0; color: var(--white); }
.pilot-page .ican-vote-lockup img { display: block; width: var(--lockup-width); height: auto; max-height: none; object-fit: contain; }
.pilot-page .ican-vote-lockup .ican-vote-lockup__property { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: calc(var(--lockup-width) * .14); font-weight: 500; line-height: 1; letter-spacing: .1em; text-transform: uppercase; border-left: 1px solid var(--ican-red); padding: calc(var(--lockup-width) * .065) 0 calc(var(--lockup-width) * .065) calc(var(--lockup-width) * .12); white-space: nowrap; color: inherit; }
.pilot-page .launch-wordmark { --lockup-width: 128px; }
/* Superscript BETA after the header lockup; opens the coverage explainer. */
.pilot-page .beta-badge { position: relative; align-self: flex-start; margin: -2px 0 0 calc(var(--lockup-width) * -.06); padding: 2px 4px 1px; border: 0; border-radius: 3px; background: var(--ican-red); color: var(--white); font: 700 8px/1.2 "Helvetica Neue", Helvetica, Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.pilot-page .beta-badge::before { content: ""; position: absolute; inset: -12px -8px; }
.pilot-page .beta-badge:hover { background: var(--crimson); }
.pilot-page .beta-badge:focus-visible { outline: 2px solid var(--white); outline-offset: 2px; }
.launch-dialog__date { align-self: flex-end; font-size: 10px; letter-spacing: .02em; padding-bottom: 3px; color: var(--cool-white); white-space: nowrap; }
.launch-dialog__close { position: absolute; top: 3px; right: 3px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; background: transparent; border: 0; color: var(--cool-white); font-size: 25px; cursor: pointer; }
.launch-dialog__close:focus-visible { outline-color: var(--white); outline-offset: -7px; }
.launch-dialog__body { padding: 32px 34px 24px; background: var(--hot-white); }
.launch-dialog__eyebrow { margin: 0 0 16px; color: var(--ican-red); font-size: 10px; line-height: 1.5; font-weight: 650; letter-spacing: .12em; text-transform: uppercase; }
.launch-dialog h2 { margin: 0; font-size: clamp(36px, 5vw, 48px); font-weight: 650; line-height: 1.05; letter-spacing: -.05em; }
.launch-dialog h2:focus { outline: none; }
.launch-dialog h2 span { color: var(--ican-red); }
.launch-dialog #launch-description { max-width: 440px; margin: 18px 0 24px; font-size: 15px; line-height: 1.6; color: var(--navy-blue); }
.launch-address-form { display: grid; gap: 8px; }
.launch-address-form label { font-size: 12px; font-weight: 600; }
.launch-address-form input:not([type="hidden"]), .launch-address-form select { display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; padding: 9px 10px; border: 1px solid #0d1e4033; border-radius: 6px; background: var(--white); color: var(--navy-blue); font-size: 16px; }
.launch-address-form input::placeholder { color: #53637b; opacity: 1; }
.launch-address-form button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 50px; padding: 14px 18px; border: 0; border-radius: 11px; background: var(--ican-red); color: var(--white); font-size: 14px; font-weight: 600; cursor: pointer; transition: background 160ms ease, transform 160ms ease; }
.launch-address-form button:hover { background: var(--crimson); }
.launch-address-form button:active { transform: scale(.985); }
.launch-address-form button span:last-child { font-size: 22px; line-height: 1; }
.launch-dialog__note { margin: 13px 0 23px; font-size: 11px; line-height: 1.6; color: #53637b; }
.launch-dialog__rollout { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 18px; border-top: 1px solid #0d1e4018; padding-top: 16px; font-size: 10px; color: #53637b; }
.launch-dialog__rollout span:first-child { color: var(--navy-blue); font-weight: 600; }
@keyframes launch-focus { from { opacity: 0; transform: translateY(16px) scale(.975); } to { opacity: 1; transform: none; } }
@keyframes launch-backdrop { from { opacity: 0; } to { opacity: 1; } }
@media (max-width:640px) {
  .launch-dialog { border-radius: 19px; }
  .launch-dialog__brand-panel { min-height: 92px; padding: 21px 24px; }
  .pilot-page .topbar__brand.ican-vote-lockup { --lockup-width: 72px; }
  .pilot-page .launch-wordmark { --lockup-width: 104px; }
  .launch-dialog__date { display: none; }
  .launch-dialog__body { padding: 26px 24px 22px; }
  .launch-dialog h2 { font-size: clamp(32px,9vw,40px); }
  .launch-dialog #launch-description { font-size: 14px; margin: 16px 0 22px; }
  .launch-dialog__eyebrow { font-size: 9px; letter-spacing: .1em; }
}
@media (prefers-reduced-motion:reduce) { .launch-dialog[open], .launch-dialog::backdrop { animation: none; } .launch-address-form button { transition: none; } }
@media print { .launch-dialog { display: none !important; } body.launch-open { overflow: visible; } }
