Lab
Book Opening
a book on a table, fourteen sheets deep. hovering fans every leaf off the spine and lays the front board out to the left.
key insight: one inherited custom property drives all fourteen transforms. the stage carries --book-open and each sheet is rotateY(calc(var(--book-open) * var(--sheet-angle))), so a frame is one setProperty and nothing in the component renders.
the lerp is of the fore-edge and not of the angle. even angles are not even paper: a sheet's free end sits at cos(angle) of the way out, so half the fan was slivers and half was wide open pages. spacing the edges and taking the angle back out with acos shows the same strip of every sheet.