/* ==========================================================================
   Micro-animations — Subtle interaction feedback
   Respects prefers-reduced-motion via reset.css blanket rule
   ========================================================================== */

/* ── Button press ──────────────────────────────────────────────────────── */
.btn:active {
  transform: scale(0.97);
}

/* ── Input focus glow pulse ────────────────────────────────────────────── */
@keyframes focus-pulse {
  0%   { box-shadow: 0 0 0 0 var(--color-focus-ring); }
  70%  { box-shadow: 0 0 0 6px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}

.form__input:focus,
.form__select:focus,
.form__textarea:focus {
  animation: focus-pulse 0.4s ease-out;
}

/* ── Underline draw on link hover ──────────────────────────────────────── */
.anim-underline {
  position: relative;
  display: inline-block;
}

.anim-underline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--color-accent);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--duration-normal) var(--ease-default);
}

.anim-underline:hover::after,
.anim-underline:focus-visible::after,
.anim-underline.is-active::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* ── Hero scroll bounce ────────────────────────────────────────────────── */
@keyframes scroll-bounce {
  0%, 100% { transform: translateY(0);   opacity: 0.5; }
  50%       { transform: translateY(6px); opacity: 0.9; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__scroll-icon { animation: none; }
}
