.imgCrop{
  width: calc(0.75 * var(--card-w));
  aspect-ratio: 1 / 1;
  margin: 0 auto;
  overflow: hidden; /* keeps things tidy even if you also clip */
  position: relative;
}

.imgCrop .card-image{
  width: 100%;
  height: 100%;
  /* object-fit: cover; */
}




.imgCrop.squircleFade{
  --soft: 10%;
  --r: 50%;

  -webkit-mask-image:
    radial-gradient(
      circle,
      rgba(0,0,0,1) 65%,
      rgba(0,0,0,0) 80%
    ),
    linear-gradient(to right,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%),
    linear-gradient(to bottom,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-position: center;

  /* WebKit: intersect each next layer with the current result */
  -webkit-mask-composite: source-in, source-in, source-in, source-in, source-in, source-in;

  mask-image:
    radial-gradient(
      circle,
      rgba(0,0,0,1) 65%,
      rgba(0,0,0,0) 80%
    ),
    linear-gradient(to right,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%),
    linear-gradient(to bottom,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%);
    

  mask-repeat: no-repeat;
  mask-size: 100% 100%;
  mask-position: center;

  /* Standards: intersect */
  mask-composite: intersect, intersect, intersect, intersect, intersect, intersect;
}



.imgCrop.squareFade{
  --soft: 10%;
  --r: 50%;

  -webkit-mask-image:
    linear-gradient(to right,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%),
    linear-gradient(to bottom,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%);

  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-position: center;

  /* WebKit: intersect each next layer with the current result */
  -webkit-mask-composite: source-in, source-in, source-in, source-in, source-in, source-in;

  mask-image:
    linear-gradient(to right,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%),
    linear-gradient(to bottom,transparent 0,#000 var(--soft),#000 calc(100% - var(--soft)),transparent 100%);
    

  mask-repeat: no-repeat;
  mask-size: 100% 100%;
  mask-position: center;

  /* Standards: intersect */
  mask-composite: intersect, intersect, intersect, intersect, intersect, intersect;
}




.imgCrop.circleFade{
  -webkit-mask-image: radial-gradient(
    circle,
    rgba(0,0,0,1) 55%,
    rgba(0,0,0,0) 71%
  );
  mask-image: radial-gradient(
    circle,
    rgba(0,0,0,1) 55%,
    rgba(0,0,0,0) 71%
  );
}


/* circular crop */
.imgCrop.circleBorder {

    --inner: 55%; /* where fully-visible used to end */
  --outer: 58%; /* where fade used to end */
  
  -webkit-mask-image: radial-gradient(circle, #000 0 var(--outer), transparent calc(var(--outer) + 0.5%));
          mask-image: radial-gradient(circle, #000 0 var(--outer), transparent calc(var(--outer) + 0.5%));


}



/* draw a real black ring exactly in the old fade band */
.imgCrop.circleBorder::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background: radial-gradient(
    circle,
    transparent 0 var(--inner),
    #000 var(--inner) var(--outer),
    transparent var(--outer)
  );
}


.imgCrop.squareBorder {
  --inner: 10%;   /* matches --soft */
  --outer: 12%;  /* border thickness */

  -webkit-mask-image:
    linear-gradient(to right,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    ),
    linear-gradient(to bottom,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    );

  mask-image:
    linear-gradient(to right,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    ),
    linear-gradient(to bottom,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    );

  -webkit-mask-composite: source-in;
          mask-composite: intersect;
}


.imgCrop.squareBorder::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background:
    linear-gradient(to right,
      transparent 0 var(--inner),
      #000 var(--inner) var(--outer),
      transparent var(--outer)
    ),
    linear-gradient(to right,
      transparent calc(100% - var(--outer)),
      #000 calc(100% - var(--outer)) calc(100% - var(--inner)),
      transparent calc(100% - var(--inner))
    ),
    linear-gradient(to bottom,
      transparent 0 var(--inner),
      #000 var(--inner) var(--outer),
      transparent var(--outer)
    ),
    linear-gradient(to bottom,
      transparent calc(100% - var(--outer)),
      #000 calc(100% - var(--outer)) calc(100% - var(--inner)),
      transparent calc(100% - var(--inner))
    );
}


.imgCrop.squircleBorder {
  --inner: 10%;
  --outer: 13%;

  -webkit-mask-image:
    radial-gradient(circle, #000 0 65%, transparent 66%),
    linear-gradient(to right,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    ),
    linear-gradient(to bottom,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    );

  mask-image:
    radial-gradient(circle, #000 0 65%, transparent 66%),
    linear-gradient(to right,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    ),
    linear-gradient(to bottom,
      transparent 0 var(--outer),
      #000 var(--outer) calc(100% - var(--outer)),
      transparent calc(100% - var(--outer))
    );

  -webkit-mask-composite: source-in, source-in;
          mask-composite: intersect, intersect;
}


.imgCrop.squircleBorder::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;

  background:
    radial-gradient(circle,
      transparent 0 65%,
      #000 65% 68%,
      transparent 68%
    ),
    linear-gradient(to right,
      transparent 0 var(--inner),
      #000 var(--inner) var(--outer),
      transparent var(--outer)
    ),
    linear-gradient(to right,
      transparent calc(100% - var(--outer)),
      #000 calc(100% - var(--outer)) calc(100% - var(--inner)),
      transparent calc(100% - var(--inner))
    ),
    linear-gradient(to bottom,
      transparent 0 var(--inner),
      #000 var(--inner) var(--outer),
      transparent var(--outer)
    ),
    linear-gradient(to bottom,
      transparent calc(100% - var(--outer)),
      #000 calc(100% - var(--outer)) calc(100% - var(--inner)),
      transparent calc(100% - var(--inner))
    );
}
