/* ANIMATIONS — shared reveal/float utilities, glass cursor, reduced-motion */

/* ANIMATIONS — subtle & professional */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }
.reveal-delay-5 { transition-delay:.5s; }
.reveal-delay-6 { transition-delay:.6s; }
.reveal-delay-7 { transition-delay:.7s; }

@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
.float { animation:float 5s ease-in-out infinite; }
.float-delay { animation-delay:1.5s; }

/* GLASS CURSOR — a minimal frosted-glass orb that trails the pointer
   site-wide. Translucent circle, hairline white border, blur, and a
   thin dark-purple ring just inside the border for a touch of color —
   the inset shadow here has zero blur radius, so it reads as a crisp
   ring rather than a glow. No drop shadow, no bloom. */
.glass-cursor {
  position:fixed; top:0; left:0; width:20px; height:20px;
  border-radius:50%; pointer-events:none; z-index:150;
  background:rgba(255,255,255,.18);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 1px rgba(76,29,149,.4);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0; transition:opacity .35s var(--ease);
  will-change:transform;
}
.glass-cursor.active { opacity:.9; }

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
}
