/* Aurora Flow — dark, living mesh seen through glass. (spec §4) */
.ion-theme-aurora {
  --ion-page-bg: #0a0a12;
  --ion-page-bg-2: #07070d;
  --ion-surface-bg: rgba(20,20,35,0.55);
  --ion-surface-bg-2: rgba(255,255,255,0.05);
  --ion-surface-fg: #f0f0f5;
  --ion-surface-border: rgba(167,139,250,0.22);
  --ion-input-border: rgba(167,139,250,0.50);
  --ion-glass-blur: 20px;
  --ion-glass-tint: rgba(20,20,35,0.55);
  --ion-backdrop-tint: rgba(5,5,12,0.6);
  --ion-accent: #8b5cf6;
  --ion-accent-soft: rgba(167,139,250,0.18);
  --ion-accent-fg: #ffffff;
  --ion-focus-ring: 0 0 0 3px rgba(167,139,250,0.5);
  --ion-ok: #34d399; --ion-warn: #fcd34d; --ion-err: #fb7185; --ion-muted: #9ca3af;
  --ion-radius-sm: 12px; --ion-radius-md: 16px; --ion-radius-lg: 22px; --ion-radius-xl: 30px;
  --ion-elev-1: 0 1px 3px rgba(0,0,0,0.4);
  --ion-elev-2: 0 8px 28px rgba(0,0,0,0.45);
  --ion-elev-3: 0 16px 44px rgba(0,0,0,0.5), 0 0 30px rgba(167,139,250,0.15);
  --ion-elev-4: 0 28px 70px rgba(0,0,0,0.6), 0 0 50px rgba(167,139,250,0.22);
  --ion-motion-spring: cubic-bezier(0.22, 1, 0.36, 1);
  --ion-text-shadow-glow: 0 0 20px rgba(167,139,250,0.3);
  --ion-scrollbar-thumb: rgba(167,139,250,0.3);
}
/* living mesh blobs (violet/blue/pink), blur 80px, slow drift ~30s */
.ion-theme-aurora body::before {
  opacity: 1;
  background-image:
    radial-gradient(38vw 38vw at 18% 22%, rgba(139,92,246,0.40), transparent 60%),
    radial-gradient(34vw 34vw at 82% 30%, rgba(56,124,246,0.34), transparent 60%),
    radial-gradient(40vw 40vw at 60% 88%, rgba(236,72,153,0.30), transparent 62%);
  filter: blur(80px); animation: ion-aurora-drift 30s ease-in-out infinite alternate;
}
@keyframes ion-aurora-drift {
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(-4%, 3%, 0) scale(1.08); }
  100% { transform: translate3d(3%, -3%, 0) scale(1.04); }
}
@media (prefers-reduced-motion: reduce) {
  .ion-theme-aurora body::before { animation: none; }
}
