/* Public invitations reuse the site's typography and color roles. */
.invitation-status{position:relative;isolation:isolate;font-size:.875rem;line-height:1.5;font-weight:700;margin:16px 0;color:var(--accent-cyan,#53e1ff)}
.invitation-label,.invitation-glow{display:block;background:linear-gradient(100deg,var(--accent-magenta,#ed00ff) 0%,var(--accent-cyan,#53e1ff) 32%,var(--accent-magenta,#ed00ff) 65%,var(--accent-cyan,#53e1ff) 100%);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:invitation-color-flow 20s linear infinite alternate}
.invitation-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;filter:blur(4px);opacity:.45;animation:invitation-color-flow 20s linear infinite alternate-reverse,invitation-bloom 9s ease-in-out infinite}
@keyframes invitation-color-flow{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes invitation-bloom{0%,100%{opacity:.25}50%{opacity:.65}}
@media(prefers-reduced-motion:reduce){.invitation-label,.invitation-glow{animation:none;background-position:50% 50%}.invitation-glow{opacity:.25}}
@media(forced-colors:active){.invitation-label{background:none;color:CanvasText}.invitation-glow{display:none}}
footer .dojo-socials{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;margin:14px 0 0;font-size:.8rem;line-height:1.6;text-transform:none;letter-spacing:normal}
footer .dojo-socials>span{flex-basis:100%;font-weight:700}
footer .dojo-socials a{display:inline-flex;flex-wrap:wrap;gap:0 7px;padding:4px 0;min-width:0;overflow-wrap:anywhere;text-transform:none;letter-spacing:normal}
footer .dojo-socials small{font-size:inherit;color:inherit;opacity:.75}
footer.footer .dojo-socials{grid-column:1/-1;justify-content:flex-start}
