.portal-modal[hidden] { display: none; }
.portal-modal { position: fixed; inset: 0; z-index: 10040; display: grid; place-items: center; padding: 1rem; }
.portal-modal__backdrop { position: absolute; inset: 0; background: rgba(46,16,101,.78); }
.portal-modal__dialog { --faster-member-accent: var(--brand-color, #ff1b75); position: relative; width: min(31rem, 100%); max-height: calc(100vh - 2rem); overflow: auto; border: 4px dashed #a855f7; border-radius: 2rem; background: #fff; color: #4c1d95; padding: 2rem; box-shadow: 0 26px 80px rgba(0,0,0,.35); }
.portal-modal__close { position: absolute; right: .75rem; top: .6rem; min-width: 44px; min-height: 44px; border: 0; border-radius: 999px; background: #fef08a; color: #581c87; font-size: 2rem; cursor: pointer; }
.portal-modal__logo { display: block; height: 72px; width: auto; margin: 0 auto 1.25rem; }
.portal-modal .faster-members { max-width: none; border: 0; padding: 0; }
.portal-modal .faster-members h2 { color: #581c87; font-family: 'Comic Sans MS', 'Comic Neue', cursive; }
.portal-modal .faster-members--signed-out > p:not(.faster-members__notice) { color: #6b21a8; }
.portal-modal .faster-members__signin { display: grid; grid-template-columns: 1fr; gap: .75rem; }
.portal-modal .faster-members input { min-height: 46px; border: 2px solid #d8b4fe; border-radius: 1rem; }
.portal-modal .faster-members input:focus { border-color: var(--faster-member-accent); box-shadow: 0 0 0 3px rgba(255,27,117,.2); outline: 0; }
.portal-modal .faster-members button { min-height: 46px; border: 0; border-radius: 999px; background: var(--faster-member-accent); color: #fff; padding: .75rem 1.1rem; font-weight: 900; }
.portal-modal .faster-members button:hover { filter: brightness(.92); }
.portal-modal .faster-members__notice { color: #6b21a8; }
.portal-modal .faster-members__badge { background: #f3e8ff; color: #581c87; }
.portal-modal .faster-members__actions button { width: 100%; }
