@layer base {
  .content {
    max-width: 24rem;
    padding: var(--spacing-4);
    background-color: var(--popup);
    color: var(--popup-foreground);
    border-radius: var(--radius-md);
    font-size: 0.9375rem;
    line-height: 1.5;
    box-shadow: var(--shadow-lg);
    font-family: var(--font-family-base);
    border: 1px solid var(--border);
    z-index: var(--z-overlay);
    overflow-wrap: break-word;
    word-break: keep-all;

    /* Animation */
    animation-duration: var(--animation-duration-normal);
    animation-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform, opacity;
  }

  .content[data-state="open"][data-side="top"] {
    animation-name: slideDownAndFade;
  }

  .content[data-state="open"][data-side="bottom"] {
    animation-name: slideUpAndFade;
  }

  .content[data-state="open"][data-side="left"] {
    animation-name: slideRightAndFade;
  }

  .content[data-state="open"][data-side="right"] {
    animation-name: slideLeftAndFade;
  }

  @keyframes slideUpAndFade {
    from {
      opacity: 0;
      transform: translateY(8px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes slideDownAndFade {
    from {
      opacity: 0;
      transform: translateY(-8px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes slideLeftAndFade {
    from {
      opacity: 0;
      transform: translateX(8px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes slideRightAndFade {
    from {
      opacity: 0;
      transform: translateX(-8px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }
}
