@utility swap {
  cursor: var(--cursor-pointer, pointer);
  display: inline-grid;

  > :where(*) {
    transition-property: var(--default-transition-property);
    transition-timing-function: var(--ease-in-out);
    transition-duration: var(--default-transition-duration);
    grid-area: 1/-1;
    opacity: 0%;
  }

  > [aria-hidden="false"],
  input:not(:checked, :indeterminate) + :where(*),
  input:indeterminate ~ :where(*:nth-last-child(2)),
  input:checked ~ :where(*:last-child) {
    scale: none;
    translate: none;
    rotate: none;
    opacity: 100%;
  }
}
