/* Minimal support styles for framer-shim.js. Framer's own inline CSS drives all
   layout; this only smooths a couple of shim-driven interactions. */
html { scroll-behavior: smooth; }

/* caption overlay fade on thumbnail hover (opacity is toggled by the shim) */
[data-shim-caption] { transition: opacity 0.25s ease; }

/* marquee tracks never wrap while the shim clones/animates them */
ul[style*="translateX"] { flex-wrap: nowrap !important; }

/* Smooth cross-document fade between pages (Chrome/Edge 126+; every page opts in
   because every page loads this stylesheet). Other browsers just do a normal nav.
   Honours prefers-reduced-motion via the UA's default handling. */
@view-transition { navigation: auto; }

/* Framer marks hundreds of elements `will-change: transform`, and each one is
   promoted to its own GPU compositor layer — permanently. That's a large idle memory
   cost and makes every scroll frame composite hundreds of layers (the main cause of
   the lingering jank). Drop the idle hint everywhere EXCEPT the marquee tracks, which
   animate continuously and genuinely benefit; the browser still promotes a layer
   on-demand for real hover/reveal transitions, so nothing loses its animation. */
[style*="will-change"]:not(ul) { will-change: auto !important; }
