/* ============================================================
   CodeAugs — animations.css
   Keyframes, scroll reveals, hover motion, parallax helpers
   ============================================================ */
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,229,255,.45)}50%{box-shadow:0 0 0 7px rgba(0,229,255,0)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes shimmer{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes drift{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(18px,-22px,0)}100%{transform:translate3d(0,0,0)}}

/* Scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal-left.visible{opacity:1;transform:none}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal-right.visible{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.95);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal-scale.visible{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.09s}
[data-delay="2"]{transition-delay:.18s}
[data-delay="3"]{transition-delay:.27s}
[data-delay="4"]{transition-delay:.36s}
[data-delay="5"]{transition-delay:.45s}

/* Hero entrance */
.hero-content > *{animation:fadeUp .85s var(--ease) both}
.hero-content > *:nth-child(2){animation-delay:.08s}
.hero-content > *:nth-child(3){animation-delay:.16s}
.hero-content > *:nth-child(4){animation-delay:.24s}
.hero-content > *:nth-child(5){animation-delay:.32s}

/* Typing headline */
.typed-cursor{display:inline-block;width:3px;height:.95em;background:var(--primary);margin-left:4px;vertical-align:-.08em;animation:blink 1s step-end infinite}

/* Float & parallax */
.float{animation:floaty 7s ease-in-out infinite}
.orb{position:absolute;border-radius:50%;filter:blur(56px);opacity:.4;pointer-events:none;animation:drift 16s ease-in-out infinite}
.orb.cyan{background:rgba(0,229,255,.5)}
.orb.violet{background:rgba(124,77,255,.5);animation-delay:-6s}
[data-parallax]{will-change:transform}

/* Hover lift */
.lift{transition:transform var(--t),box-shadow var(--t)}
.lift:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}

/* Animated gradient border */
.glow-border{position:relative}
.glow-border::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;
  background:linear-gradient(120deg,rgba(0,229,255,.7),rgba(124,77,255,.7),rgba(0,229,255,.7));
  background-size:200% 100%;animation:shimmer 6s linear infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity var(--t);
}
.glow-border:hover::before{opacity:1}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none}
}
