#connect-dialog{width:min(470px,calc(100vw - 28px));padding:42px 36px 28px;box-sizing:border-box}.invite-dialog-content{display:flex;flex-direction:column;min-height:485px}.invite-dialog-content h2{margin:18px 0 22px;line-height:1.3}.invite-dialog-content>p:not(.invite-safety-note){margin:0 0 16px;color:#999;line-height:1.7}.invite-dialog-content .access-label{margin-top:20px;margin-bottom:12px}.invite-dialog-content .access-returning{padding-top:24px;margin-top:30px;margin-bottom:26px}.invite-dialog-content .invite-safety-note{margin: auto 0 0;padding-top:28px;font-size:12px;line-height:1.8;color:#888}.invite-code-input{text-align:center;font-size:20px;font-weight:600;letter-spacing:.12em;min-height:56px;transition:border-color .18s,box-shadow .18s,background .18s}.invite-code-input:focus-visible{outline:0;box-shadow:0 0 0 3px #ffffff0c}.invite-code-input.is-rejected{border-color:#e47878;box-shadow:0 0 0 3px #e4787815;animation:invite-shake .3s ease-in-out}.invite-code-input.is-rejected:focus-visible{box-shadow:0 0 0 3px #e4787825}.invite-code-input.is-accepted{border-color:#83cba8;box-shadow:0 0 0 3px #83cba822;background:#83cba809}.invite-dialog-content:has(.is-accepted) .button.full{color:#a7dfbf;border-color:#83cba855;transition:color .2s,border-color .2s}.catalogue-teaser{margin-top:55px}.catalogue-locked-stage{min-height:970px}.ghost-catalogue{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;filter:blur(6px);opacity:.35;mask-image:linear-gradient(#000, #000 65%,transparent)}.ghost-item{min-height:265px;padding:20px}.ghost-item-art{height:165px;display:grid;place-items:center}.ghost-item-art svg{height:130px;width:130px}.ghost-item .ghost-metrics{margin-top:28px}.ghost-item .ghost-line.short{width:85%;height:20px;margin:0}.catalogue-locked-stage>.locked-access{top:32%;max-width:460px}.catalogue-locked-stage .locked-access small{color:#888;font-size:11px}.catalogue-teaser .section-heading h2{font-size:30px}@keyframes invite-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}50%{transform:translateX(5px)}75%{transform:translateX(-3px)}}@media(max-width:900px){.ghost-catalogue{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){#connect-dialog{padding:30px 24px 24px}.invite-dialog-content{min-height:460px}.ghost-catalogue{grid-template-columns:repeat(2,1fr);gap:12px}.catalogue-locked-stage{min-height:1200px}.catalogue-locked-stage>.locked-access{top:25%}}@media(prefers-reduced-motion:reduce){.invite-code-input.is-rejected{animation:none}.invite-code-input{transition:none}}
/* Explicit keyframes also animate when the account dialog redraws its input. */
.invite-code-input.is-accepted{animation:invite-accept .65s cubic-bezier(.2,.7,.25,1) both}
.invite-dialog-content:has(.is-accepted) .button.full{animation:invite-confirm .4s ease-out both}
@keyframes invite-accept{
 0%{border-color:#3a3a3a;background:#151515;box-shadow:0 0 0 0 #83cba800}
 55%{border-color:#83cba8;background:#83cba80d;box-shadow:0 0 0 4px #83cba81c,0 0 20px #83cba812}
 100%{border-color:#83cba8;background:#83cba809;box-shadow:0 0 0 3px #83cba822}
}
@keyframes invite-confirm{
 from{color:#eee;border-color:#484848}
 to{color:#a7dfbf;border-color:#83cba855}
}
@media(prefers-reduced-motion:reduce){
 .invite-code-input.is-accepted,.invite-dialog-content:has(.is-accepted) .button.full{animation:none;transition:none}
}
