/* ═══════════════════════════════════════════════════
   SCARS — animations.css
   All @keyframes in one place. Loaded last.
═══════════════════════════════════════════════════ */

/* ── UTILITY ── */
@keyframes up       { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }
@keyframes blink    { 0%,100%{opacity:1} 50%{opacity:.15} }
@keyframes pulseDot { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.3;transform:scale(.6)} }
@keyframes ndot     { 0%,100%{transform:scale(1)} 50%{transform:scale(1.3)} }

/* ── CHATBOT (placeholder) ── */
@keyframes cbPulse  { 0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent, var(--amber)) 55%, transparent)} 70%{box-shadow:0 0 0 9px transparent} 100%{box-shadow:0 0 0 0 transparent} }
@keyframes cbRise   { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
@keyframes cbTyping { 0%,60%,100%{transform:translateY(0);opacity:.4} 30%{transform:translateY(-4px);opacity:1} }
@keyframes cbBlink  { 0%,100%{opacity:1} 50%{opacity:.35} }
@keyframes cbBadgeBounce { 0%,100%{transform:scale(1)} 50%{transform:scale(1.18)} }
@keyframes cbConfetti {
  0%   { transform:translate(-50%,-50%) rotate(0deg) scale(1); opacity:1; }
  100% { transform:translate(calc(-50% + var(--cx)), calc(-50% + var(--cy))) rotate(var(--cr)) scale(.4); opacity:0; }
}
@keyframes sb       { 0%{top:-100%} 100%{top:200%} }
@keyframes plsweep  { 0%{left:-100%} 100%{left:100%} }

/* ── SHAPES (hero letter backgrounds) ── */
@keyframes floatShape { 0%{opacity:0;transform:translateY(0)} 20%{opacity:1} 50%{transform:translateY(-30px)} 80%{opacity:1} 100%{opacity:0;transform:translateY(0)} }

/* ── LETTER CARTOONS ── */
@keyframes snailWobble { 0%,100%{transform:rotate(-4deg)} 50%{transform:rotate(4deg)} }
@keyframes owlBob      { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)} }
@keyframes crownPulse  { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-6px) scale(1.04)} }
@keyframes rocketShake { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-2deg)} 75%{transform:rotate(2deg)} }
@keyframes ghostDrift  { 0%,100%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-9px) rotate(3deg)} }
@keyframes twinkle     { 0%,100%{opacity:.8;transform:scale(1)} 50%{opacity:.15;transform:scale(.4)} }
@keyframes zzzFloat    { 0%{opacity:.9;transform:translateY(0)} 100%{opacity:0;transform:translateY(-22px)} }

/* ── SCROLL BAR INDICATOR ── */
@keyframes sb { 0%{top:-100%} 100%{top:200%} }

/* ── ACCESSIBILITY ── */
@media(prefers-reduced-motion:no-preference) { html { scroll-behavior:smooth; } }
@media(prefers-reduced-motion:reduce)        { * { animation-duration:.01ms!important; transition-duration:.01ms!important; } }
