.connect-purchase-overlay[hidden] { display: none; }
.connect-purchase-overlay { position: fixed; z-index: 10; inset: 0; display: grid; place-items: center; padding: 24px; background: #071521b8; backdrop-filter: blur(5px); cursor: progress; }
.connect-purchase-overlay:focus { outline: none; }
.connect-purchase-progress { box-sizing: border-box; width: min(380px, 100%); padding: 36px 30px 30px; text-align: center; border: 1px solid #426273; border-radius: 22px; background: linear-gradient(145deg, #1b3647, #142837); box-shadow: 0 24px 90px #0006; }
.connect-purchase-progress > strong { display: block; color: #eff8fa; font-size: 20px; line-height: 1.5; }
.connect-purchase-progress > p { margin: 10px 0 0; color: #a6c1cf; font-size: 13px; line-height: 1.8; }
.connect-purchase-spinner { position: relative; display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 24px; color: #8fdfd1; }
.connect-purchase-spinner::before, .connect-purchase-spinner::after { content: ''; position: absolute; inset: 0; border: 2px solid #8fdfd120; border-radius: 50%; }
.connect-purchase-spinner::after { border-color: #8fdfd1 transparent transparent transparent; animation: connect-purchase-spin 1.1s linear infinite; }
.connect-purchase-spinner svg { width: 27px; height: 35px; stroke: currentColor; stroke-width: 1.4; }
@keyframes connect-purchase-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .connect-purchase-spinner::after { animation: none; border-color: #8fdfd1 #8fdfd140 #8fdfd140; } }
