@layer components {
  .bento-card {
    position: relative;
    overflow: hidden;
    border-radius: 1rem;
  }
  .bento-card.focus, .bento-card:focus-visible {
    outline: 0.125rem solid var(--theme-focus-primary);
    outline-offset: 0.25rem;
  }
  .bento-card {
    aspect-ratio: 4/5;
  }
  @media (min-width: 768px) {
    .bento-card {
      aspect-ratio: 1/1;
    }
  }
  @media (min-width: 1024px) {
    .bento-card {
      aspect-ratio: auto;
      flex: 7;
      border-radius: 1.5rem;
      transition: flex-grow 0.45s cubic-bezier(0.5, 0, 0, 1);
    }
    .bento-card[data-active] {
      flex: 11;
    }
  }
  .bento-card__image {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  .bento-card__image picture {
    display: block;
    width: 100%;
    height: 100%;
  }
  .bento-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .bento-card__gradient {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, transparent 60%);
    pointer-events: none;
    display: none;
  }
  @media (min-width: 1024px) {
    .bento-card__gradient {
      display: block;
      opacity: 0;
      transition: opacity 0.45s cubic-bezier(0.5, 0, 0, 1);
    }
  }
  @media (min-width: 1024px) {
    .bento-card[data-active] > .bento-card__gradient {
      opacity: 1;
    }
  }
  .bento-card__swatch {
    display: block;
    height: 10rem;
    inset: 0;
    margin: auto;
    position: absolute;
    width: 10rem;
    z-index: 5;
    touch-action: manipulation;
  }
  @media (max-width: 1023px) {
    .bento-card__swatch {
      width: 100%;
      height: 100%;
      margin: 0;
    }
  }
  .bento-card__swatch .color-swatch-card {
    width: 100%;
    height: 100%;
  }
  .bento-card__ctas {
    display: none;
  }
  @media (min-width: 1024px) {
    .bento-card__ctas {
      position: absolute;
      inset-block-end: 0;
      inset-inline: 0;
      z-index: 10;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1rem;
      padding: 2rem;
      opacity: 0;
      visibility: hidden;
      transform: scale(0.97);
      transition: opacity 0.45s cubic-bezier(0.5, 0, 0, 1), visibility 0.45s cubic-bezier(0.5, 0, 0, 1), transform 0.45s cubic-bezier(0.5, 0, 0, 1);
      transition-delay: 50ms;
    }
  }
  @media (min-width: 1024px) {
    .bento-card[data-active] > .bento-card__ctas {
      opacity: 1;
      visibility: visible;
      transform: scale(1);
    }
  }
  @media (max-width: 1023px) {
    .bento-card:has(.color-swatch-card[data-state=open])::after {
      border: 2px solid var(--theme-border-primary);
      border-radius: 1rem;
      content: "";
      inset: 0;
      pointer-events: none;
      position: absolute;
      z-index: 5;
    }
  }
  @media (prefers-reduced-motion: reduce) {
    .bento-card, .bento-card__gradient, .bento-card__ctas {
      transition-duration: 0ms;
      transition-delay: 0ms;
    }
  }
  @media (forced-colors: active) {
    .bento-card {
      border: 1px solid CanvasText;
    }
  }
}