/* Spacing utilities */
.mt-1 { margin-top: var(--space-1); }
.mt-2 { margin-top: var(--space-2); }
.mt-3 { margin-top: var(--space-3); }
.mt-4 { margin-top: var(--space-4); }
.mb-1 { margin-bottom: var(--space-1); }
.mb-2 { margin-bottom: var(--space-2); }
.mb-3 { margin-bottom: var(--space-3); }
.mb-4 { margin-bottom: var(--space-4); }
.p-2 { padding: var(--space-2); }
.p-3 { padding: var(--space-3); }
.p-4 { padding: var(--space-4); }

/* Flex */
.flex { display: flex; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: var(--space-1); }
.gap-2 { gap: var(--space-2); }
.gap-3 { gap: var(--space-3); }

/* Text */
.text-center { text-align: center; }

/* Width */
.w-full { width: 100%; }

/* =========================================
   SCROLL REVEAL ANIMATIONS
========================================= */
.fwi-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.fwi-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.fwi-reveal[data-delay="1"] { transition-delay: 80ms; }
.fwi-reveal[data-delay="2"] { transition-delay: 160ms; }
.fwi-reveal[data-delay="3"] { transition-delay: 240ms; }
.fwi-reveal[data-delay="4"] { transition-delay: 320ms; }

@media (prefers-reduced-motion: reduce) {
  .fwi-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

.link-inline {
  color: var(--color-accent-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
.link-inline:hover { opacity: .75; }
