/* ═══ imagery.css — v3 module. Owner: B3 (IMAGERY). All motion gated on html.wa-anim
   and neutralised under prefers-reduced-motion. Loads AFTER hero.css (main.css order),
   so the slide-bg overrides below win by cascade — hero.css itself is untouched. ═══ */

/* ── Hero slide bg overrides (curation pass — see CHANGES.md B3 entries).
      Slide 1 (photo-1478760329108, dark abstract) is KEPT in hero.css — it is the
      LCP preload target; no override here so the preloaded URL stays byte-identical. ── */
.slide:nth-child(2) .slide-bg{background:url('https://images.unsplash.com/photo-1611974789855-9c2a0a7236a3?w=1200&q=70') center/cover no-repeat;}
.slide:nth-child(3) .slide-bg{background:url('https://images.unsplash.com/photo-1511818966892-d7d671e672a2?w=1200&q=70') center/cover no-repeat;}

/* ── Content image treatment: slow Ken-Burns drift (DESIGN_LAW #13).
      Uses the independent `scale` / `translate` properties, NOT `transform`, so it
      composes with the sections.css hover zoom (transform:scale(1.05)) instead of
      fighting it. Total drift 1.02 → 1.05 = 3% travel (≤5% law).
      The animation ships paused; imagery.js flips .wa-kb-run only while the image
      is in the viewport (IntersectionObserver), so off-screen images cost nothing.
      Zero CLS: every treated <img> already has width/height attrs + a fixed-height
      object-fit box, and scale/translate never affect layout. ── */
html.wa-anim .wa-kb{
  scale:1.02;                       /* base headroom so parallax never exposes edges */
  animation:wa-kb-drift 26s var(--ease-soft) infinite alternate;
  animation-play-state:paused;
}
html.wa-anim .wa-kb.wa-kb-run{animation-play-state:running;}
@keyframes wa-kb-drift{
  from{scale:1.02;}
  to{scale:1.05;}
}

/* ── Optional GSAP micro-parallax (imagery.js sets --wa-py, ±4px, scrubbed).
      Driven through a CSS var on `translate` so it stacks with both the KB `scale`
      animation and the hover `transform` — three independent channels, no thrash. ── */
html.wa-anim .wa-plx{translate:0 var(--wa-py,0px);}

/* ── Reduced motion: kill everything this module adds (tokens.css already
      neutralises durations globally; this removes the resting scale too). ── */
@media (prefers-reduced-motion: reduce){
  .wa-kb{animation:none!important;scale:none!important;}
  .wa-plx{translate:none!important;}
}
