.icon_button {
  position: relative;
  display: inline-block;

  button {
    display: block;
    position: relative;
    font-size: 4rem;
    line-height: 1;
    background: var(--white);
    border: 1px solid #999;
    padding: 1.5rem;
    border-radius: 0.5rem;
  }

  span {
    position: absolute;
    bottom: 0.25rem;
    right: 0.25rem;
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 0.125rem;
    pointer-events: none;
  }

  img {
    width: 1rem;
    height: 1rem;
  }
}

dialog {
  display: block;
  position: fixed;
  height: calc(100vh - 8rem);
  border-radius: 0.5rem;
  border: 1px solid black;
  pointer-events: none;
  opacity: 0;
  scale: 0.5;
  transition: scale 0.2s;
  &[open] {
    opacity: 1;
    pointer-events: all;
    scale: 1;
  }
  &::backdrop {
    background: rgb(0 0 0 / 0.4);
    backdrop-filter: blur(2px);
  }
}

@media (min-width: 744px) {
  :host {
    --num-columns: 12;
  }

  dialog {
    width: 524px;
  }
}
