@mixin apply {
  html:focus-within & {
    scroll-behavior: smooth;
  }

  &,
  * {
    &,
    &::before,
    &::after {
      margin: 0;

      box-sizing: border-box;

      -moz-text-size-adjust: none;
      -webkit-text-size-adjust: none;
      text-size-adjust: none;
    }

    &:is(input, button, textarea, optgroup, select) {
      font: inherit;
    }
    &:is(th) {
      padding: 0;
    }

    /*! Based on modern-normalize v2.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

    /*
    Grouping content
    ================
    */

    /**
    1. Align the Firefox height with all other browsers.
    2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
    */

    &:is(hr) {
      height: 0; /* 1 */
      color: inherit; /* 2 */
    }

    /*
    Text-level semantics
    ====================
    */

    /**
    Add the correct text decoration in Chrome, Edge, and Safari.
    */

    &:is(abbr[title]) {
      text-decoration: underline dotted;
    }

    /**
    Add the correct font weight in Edge and Safari.
    */

    &:is(b, strong) {
      font-weight: bolder;
    }

    /**
    Add the correct font size in all browsers.
    */

    &:is(small) {
      font-size: 80%;
    }

    /**
    Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
    */

    &:is(sub, sup) {
      font-size: 75%;
      line-height: 0;
      position: relative;
      vertical-align: baseline;
    }

    &:is(sub) {
      bottom: -0.25em;
    }

    &:is(sup) {
      top: -0.5em;
    }

    /*
    Tabular data
    ============
    */

    /**
    1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
    2. Correct table border color inheritance in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
    */

    &:is(table) {
      text-indent: 0; /* 1 */
      border-color: inherit; /* 2 */
    }

    /*
    Forms
    =====
    */

    /**
    Remove the inheritance of text transform in Edge and Firefox.
    */

    &:is(button, select) {
      text-transform: none;
    }

    /**
    Correct the inability to style clickable types in iOS and Safari.
    */

    &:is(button, [type="button"], [type="reset"], [type="submit"]) {
      -webkit-appearance: button;
    }

    /**
    Remove the inner border and padding in Firefox.
    */

    &::-moz-focus-inner {
      border-style: none;
      padding: 0;
    }

    /**
    Restore the focus styles unset by the previous rule.
    */

    &:-moz-focusring {
      outline: 1px dotted ButtonText;
    }

    /**
    Remove the additional ':invalid' styles in Firefox.
    See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
    */

    &:-moz-ui-invalid {
      box-shadow: none;
    }

    /**
    Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
    */

    &:is(legend) {
      padding: 0;
    }

    /**
    Add the correct vertical alignment in Chrome and Firefox.
    */

    &:is(progress) {
      vertical-align: baseline;
    }

    /**
    Correct the cursor style of increment and decrement buttons in Safari.
    */

    &::-webkit-inner-spin-button,
    &::-webkit-outer-spin-button {
      height: auto;
    }

    /**
    1. Correct the odd appearance in Chrome and Safari.
    2. Correct the outline style in Safari.
    */

    &:is([type="search"]) {
      -webkit-appearance: textfield; /* 1 */
      outline-offset: -2px; /* 2 */
    }

    /**
    Remove the inner padding in Chrome and Safari on macOS.
    */

    &::-webkit-search-decoration {
      -webkit-appearance: none;
    }

    /**
    1. Correct the inability to style clickable types in iOS and Safari.
    2. Change font properties to 'inherit' in Safari.
    */

    &::-webkit-file-upload-button {
      -webkit-appearance: button; /* 1 */
      font: inherit; /* 2 */
    }

    /*
    Interactive
    ===========
    */

    /*
    Add the correct display in Chrome and Safari.
    */

    &:is(summary) {
      display: list-item;
    }
  }
}
