/* Animations & keyframes */

@keyframes fade-up {
  from { opacity: 0; transform: translateY(40px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fade-in {
  from { opacity: 0; } to { opacity: 1; }
}
@keyframes blob-drift {
  0%   { transform: translate(0, 0) scale(1); }
  50%  { transform: translate(40px, -25px) scale(1.06); }
  100% { transform: translate(-20px, 30px) scale(0.98); }
}
@keyframes scan-line {
  0%   { transform: translateY(-40vh); opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translateY(40vh); opacity: 0; }
}
@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); box-shadow: 0 0 0 0 rgba(var(--c-accent-rgb), 0.6); }
  70%      { opacity: 0.6; transform: scale(0.85); box-shadow: 0 0 0 10px rgba(var(--c-accent-rgb), 0); }
}
@keyframes cursor-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}
@keyframes bounce-down {
  0%, 100% { transform: translateY(0); opacity: 0.6; }
  50%      { transform: translateY(8px); opacity: 1; }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes border-glow {
  0%, 100% { box-shadow: 0 0 30px rgba(var(--c-accent-rgb), 0.18), 0 0 0 1px rgba(var(--c-accent-rgb), 0.4); }
  50%      { box-shadow: 0 0 60px rgba(var(--c-accent-rgb), 0.35), 0 0 0 1px rgba(var(--c-accent-rgb), 0.7); }
}

/* Hero stagger */
.hero__eyebrow   { animation: fade-up 0.8s 0.1s both var(--t-ease-out); }
.hero__headline  { animation: fade-up 0.9s 0.2s both var(--t-ease-out); }
.hero__sub       { animation: fade-up 0.9s 0.4s both var(--t-ease-out); }
.hero__cta-row   { animation: fade-up 0.9s 0.55s both var(--t-ease-out); }
.hero__platforms { animation: fade-up 0.9s 0.7s both var(--t-ease-out); }
.hero__scroll-hint { animation: fade-up 1s 1.1s both var(--t-ease-out); }
.hero__phone-frame { animation: fade-up 1.1s 0.3s both var(--t-ease-out); }
