/* Shared background effects (used by public pages and admin) */
#fx { position: fixed; inset: 0; z-index: -1; pointer-events: none; }
.aurora { position: fixed; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.aurora i { position: absolute; width: 46vmax; height: 46vmax; border-radius: 50%; filter: blur(90px); opacity: .32; animation: drift 22s ease-in-out infinite alternate; }
.aurora i:nth-child(1) { background: var(--violet); top: -18vmax; right: -12vmax; }
.aurora i:nth-child(2) { background: var(--cyan); bottom: -22vmax; left: -14vmax; animation-duration: 28s; animation-delay: -6s; opacity: .22; }
.aurora i:nth-child(3) { background: #ec4899; top: 35%; left: 40%; width: 24vmax; height: 24vmax; opacity: .12; animation-duration: 34s; }
@keyframes drift { to { transform: translate3d(-8vmax, 6vmax, 0) scale(1.15); } }
@keyframes pulse { 50% { opacity: .35; transform: scale(.7); } }
