/* ═══════════════════════════════════════════════════════════
   AEROV — Premium interaction layer (aurora, glow, reveals)
   Pairs with assets/js/premium.js. All effects degrade gracefully.
   ═══════════════════════════════════════════════════════════ */

/* ---------- Aurora animated backdrop ---------- */
[data-aurora] { position: relative; isolation: isolate; }
[data-aurora] > :not(.aurora) { position: relative; z-index: 1; }

.aurora { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; border-radius: inherit; }
.aurora__blob {
  position: absolute;
  width: 46vmax; height: 46vmax;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.45;
  mix-blend-mode: screen;
  will-change: transform;
}
.aurora__blob.a { background: #37B7F0; top: -12%; left: -6%; animation: aurora-a 22s ease-in-out infinite; }
.aurora__blob.b { background: #1D5C97; bottom: -18%; right: -10%; animation: aurora-b 27s ease-in-out infinite; }
.aurora__blob.c { background: #9FE0FA; top: 18%; right: 12%; width: 30vmax; height: 30vmax; opacity: 0.3; animation: aurora-c 19s ease-in-out infinite; }
@keyframes aurora-a { 50% { transform: translate(14vw, 10vh) rotate(50deg); } }
@keyframes aurora-b { 50% { transform: translate(-12vw, -8vh) rotate(-40deg); } }
@keyframes aurora-c { 50% { transform: translate(-10vw, 12vh) scale(1.15); } }
@media (prefers-reduced-motion: reduce) { .aurora__blob { animation: none; } }

/* ---------- Card pointer-follow glow ---------- */
[data-glow] { position: relative; }
[data-glow]::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s ease;
  background: radial-gradient(240px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, 0.12), transparent 62%);
  z-index: 2;
}
[data-glow]:hover::after { opacity: 1; }

/* ---------- Masked line reveal (dormant until [data-split] added) ---------- */
.ln { display: block; overflow: hidden; }
.ln-w { display: inline-block; }
