registerTransformsProperties = () => {
  if (transformsPropertiesRegistered) return;
  validTransforms.forEach(t => {
    const isSkew = stringStartsWith(t, 'skew');
    const isScale = stringStartsWith(t, 'scale');
    const isRotate = stringStartsWith(t, 'rotate');
    const isTranslate = stringStartsWith(t, 'translate');
    const isAngle = isRotate || isSkew;
    const syntax = isAngle ? '<angle>' : isScale ? "<number>" : isTranslate ? "<length-percentage>" : "*";
    try {
      CSS.registerProperty({
        name: '--' + t,
        syntax,
        inherits: false,
        initialValue: isTranslate ? '0px' : isAngle ? '0deg' : isScale ? '1' : '0',
      });
    } catch {}  });
  transformsPropertiesRegistered = true;
}
@typedef {Record<String, WAAPIKeyframeValue | WAAPIAnimationOptions | Boolean | ScrollObserver | WAAPICallback | EasingParam | WAAPITweenOptions> & WAAPIAnimationOptions} WAAPIAnimationParams