createRenderRoot() {
      const { shadowRootOptions, elementStyles } = /** @type {TypeofLitElement} */ (
        this.constructor
      );

      const createdRoot = this.attachShadow(shadowRootOptions);
      if (supportsScopedRegistry()) {
        // @ts-expect-error
        this.renderOptions.creationScope = createdRoot;
      }

      if (createdRoot instanceof ShadowRoot) {
        adoptStyles(createdRoot, elementStyles);
        this.renderOptions.renderBefore = this.renderOptions.renderBefore || createdRoot.firstChild;
      }

      return createdRoot;
    }
Create a new registry if:
- the registry is not defined
- this class doesn't have its own registry *AND* has no shared registry
This is important specifically for superclasses/inheritance