/* ============================================================
   WriteALine — Maintenance
   animations.css · fade-in, cursor blink, reduced motion
   ============================================================ */

:root {
  --duration-fade: 0.9s;
  --duration-blink: 1.1s;
}

/* ---- Fade-in entrance ---- */

.brand,
.hero__eyebrow,
.hero__title,
.hero__subtitle,
.social,
.footer {
  opacity: 0;
  animation: fade-in var(--duration-fade) var(--ease-smooth) forwards;
}

.brand { animation-delay: 0.05s; }
.hero__eyebrow { animation-delay: 0.2s; }
.hero__title { animation-delay: 0.35s; }
.hero__subtitle { animation-delay: 0.5s; }
.social { animation-delay: 0.7s; }
.footer { animation-delay: 0.9s; }

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---- Cursor blink ---- */

.typewriter__cursor {
  animation: cursor-blink var(--duration-blink) steps(2, start) infinite;
}

@keyframes cursor-blink {
  to {
    visibility: hidden;
  }
}

/* ---- Reduced motion (WCAG 2.3.3) ---- */

@media (prefers-reduced-motion: reduce) {
  .brand,
  .hero__eyebrow,
  .hero__title,
  .hero__subtitle,
  .social,
  .footer {
    opacity: 1;
    animation: none;
  }

  .typewriter__cursor {
    animation: none;
  }

  .social__link,
  .social__link svg {
    transition: none;
  }
}
