/* ============================================================
   Motion & micro-interactions · dralexandramora.com
   Additive, template-agnostic, accessibility-safe.
   Reveal is JS-gated (class added by motion.js): if JS fails,
   nothing is hidden. Disabled entirely under reduced-motion.
   v2 — hero stagger + selective reveal (sections & key figures,
   not every card). Editorial, slow, no bounce/parallax/zoom.
   ============================================================ */

@media (prefers-reduced-motion: no-preference){

  /* Scroll reveal — applied only to selective targets by motion.js */
  .am-reveal{
    opacity:0;
    transform:translateY(20px);
    transition:opacity .9s ease, transform .9s cubic-bezier(.16,.72,.28,1);
    will-change:opacity, transform;
  }
  .am-reveal.am-in{ opacity:1; transform:none; }

  /* Hero: each text line reveals in sequence (discreet stagger).
     motion.js tags the hero's lines .am-hline and sets --i order. */
  .am-hline{
    opacity:0;
    transform:translateY(14px);
    transition:opacity 1s ease, transform 1.05s cubic-bezier(.16,.72,.28,1);
    transition-delay:calc(var(--i, 0) * 140ms + 60ms);
    will-change:opacity, transform;
  }
  .am-hline.am-in{ opacity:1; transform:none; }

  /* Barely-there hero image settle on load (no parallax, no zoom loop) */
  .hero-media img{ transition:transform 1.6s cubic-bezier(.2,.7,.2,1); }
  .hero-media:hover img{ transform:scale(1.015); }

  /* Editorial figures: gentle lift of the whole figure on hover only */
  main figure{ transition:transform .6s cubic-bezier(.2,.7,.2,1); }
  main figure:hover{ transform:translateY(-2px); }
}

/* Micro-interactions (safe in all motion modes) ------------------ */
a.arrow{ transition:transform .28s cubic-bezier(.2,.7,.2,1); display:inline-block; }
a.arrow:hover{ transform:translateX(4px); }

.btn,.head-book,.pcard,.chan,.persp-item,.pri,.sec,.btn-wine{
  transition:transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, background-color .25s ease, color .25s ease;
}
.pcard:hover{ transform:translateY(-3px); }
.chan:hover{ transform:translateY(-2px); }
.btn:hover,.head-book:hover,.pri:hover,.sec:hover{ transform:translateY(-1px); }

/* Sticky header gains a hairline shadow once the page scrolls */
.site-head.am-scrolled,.bar.am-scrolled{
  box-shadow:0 10px 34px -26px rgba(27,26,24,.55);
  transition:box-shadow .35s ease;
}

/* Animated underline for inline editorial links inside prose */
main p a:not(.arrow):not(.btn):not(.pri):not(.sec){
  background-image:linear-gradient(currentColor,currentColor);
  background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat;
  transition:background-size .35s ease;
  padding-bottom:1px;
}
main p a:not(.arrow):not(.btn):not(.pri):not(.sec):hover{ background-size:100% 1px; }
