@tailwind base;
@tailwind components;
@tailwind utilities;

@layer components {
  .fancy-corners {
    position: relative;
    background-color: #fff;
    transform-style: preserve-3d;
  }

  .fancy-corners:after,
  .fancy-corners:before {
    position: absolute;
    width: 8em;
    height: 8em;
    background-color: theme('colors.primary');
    background-size: 100% 100%;
    background-position: 0 0;
    transform: translateZ(-1px);
    z-index: -1;
  }

  .fancy-corners[class*="--bottom"]:after,
  .fancy-corners[class*="--top"]:before {
    content: "";
  }

  .fancy-corners--large[class*="--top"]:before {
    top: -2.05882em;
  }

  .fancy-corners--large[class*="--bottom"]:after {
    bottom: -2.05882em;
  }

  .fancy-corners--large[class*="--bottom"][class*="--bottom-right"]:after {
    right: -2.05882em;
  }

  .fancy-corners[class*="--bottom"]:after {
    bottom: -1.17647em;
  }

  .fancy-corners[class*="--bottom"][class*="--bottom-right"]:after {
    right: -1.17647em;
  }

  .fancy-corners[class*="--top"]:before {
    top: -1.17647em;
  }

  .fancy-corners[class*="--top"][class*="--top-left"]:before {
    left: -1.17647em;
  }

  .fancy-corners--top-left:before {
    -webkit-mask-image: linear-gradient(-45deg, #fff 85.5%, transparent 0);
    mask-image: linear-gradient(-45deg, #fff 85.5%, transparent 0);
  }

  .fancy-corners--bottom-right:after {
    -webkit-mask-image: linear-gradient(-45deg, transparent 14.5%, #fff 0);
    mask-image: linear-gradient(-45deg, transparent 14.5%, #fff 0);
  }

  @screen lg {
    .fancy-corners--large:after,
    .fancy-corners--large:before {
      width: 14em;
      height: 14em;
    }

    .fancy-corners--large[class*="--top"][class*="--top-left"]:before {
      left: -2.05882em;
    }

    .fancy-corners--large[class*="--top"]:before {
      top: -2.05882em;
    }

    .fancy-corners--large[class*="--bottom"]:after {
      bottom: -2.05882em;
    }

    .fancy-corners--large[class*="--bottom"][class*="--bottom-right"]:after {
      right: -2.05882em;
    }
  }
}