An alpha matte and a feathered mask

A soft-edged shape cut from a layer: mask-image with a gradient from opaque to transparent, whose width is the feather; a disc here, grown by a maskSize track until it clears the frame. For any other shape with a feather, an SVG image is the mask, with the shape blurred by a filter inside the image, since a filter works in an image used this way, where an SVG <mask> referenced by id is not drawn in a render.

.disc { mask-image: radial-gradient(circle, #000 40%, transparent 70%); mask-position: center; mask-repeat: no-repeat; }
.cut  { mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='b'><feGaussianBlur stdDeviation='10'/></filter><path d='M 30 100 L 100 20 L 170 100 L 100 180 Z' fill='white' filter='url(%23b)'/></svg>");
        mask-size: 100% 100%; }
scene('iris', {
    keyframes: {
        disc: { maskSize: { at: [0.3, 1.5], to: ['20% 20%', '300% 300%'], ease: 'power2.in' } },
    },
});

No demo uses this pattern yet.