/* Turbo Frame loading state
 *
 * While a frame fetches its replacement its content is stale, so it dims in place rather than
 * emptying, which keeps its height and moves nothing around it.
 *
 * css-zero's reset gives a frame `display: contents`, so the frame has no box of its own to dim.
 * The rules dim its children instead, which works for any frame, with or without a layout class.
 */

turbo-frame > * {
  transition: opacity 150ms;
}

turbo-frame[busy] > * {
  opacity: 0.4;
}
