/* FlowFraming — subtle motion. Everything is disabled for users who prefer reduced motion. */
@media (prefers-reduced-motion: no-preference) {
  .ffm .rv { opacity: 0; transform: translateY(22px); }
  .ffm .rv.rv-l { transform: translateX(-28px); }
  .ffm .rv.rv-r { transform: translateX(28px); }
  .ffm .rv.rv-s { transform: translateY(14px) scale(.975); }
  .ffm .rv.in, .ffm-done .rv {
    opacity: 1; transform: none;
    transition: opacity .8s cubic-bezier(.2,.65,.25,1), transform .9s cubic-bezier(.2,.65,.25,1);
    transition-delay: var(--d, 0s);
  }
  /* eyebrow rule draws in */
  .ffm .rv-line { width: 0 !important; transition: width .9s cubic-bezier(.2,.65,.25,1) .15s; }
  .ffm .rv-line.in, .ffm-done .rv-line { width: 22px !important; }

  /* header gains depth once you scroll */
  header { transition: box-shadow .35s ease, background-color .35s ease; }
  header.ff-scrolled { box-shadow: 0 6px 24px -14px rgba(42,31,20,.35); background: rgba(251,248,243,.97) !important; }

  /* hover polish */
  .ff-lift { transition: transform .35s cubic-bezier(.2,.65,.25,1), box-shadow .35s ease; }
  .ff-lift:hover { transform: translateY(-4px); box-shadow: 0 18px 38px -22px rgba(42,31,20,.45); }
  .ff-zoom { overflow: hidden; }
  .ff-zoom img { transition: transform 1.1s cubic-bezier(.2,.65,.25,1); }
  .ff-zoom:hover img { transform: scale(1.025); }
  a[style*="background:#8B5A2B"] { transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
  a[style*="background:#8B5A2B"]:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -12px rgba(139,90,43,.75); }

  /* hero visuals: gentle parallax driven by --py */
  .ff-par { translate: 0 var(--py, 0px); }
}
