var csso = (() => {
  var Bl = Object.create;
  var Bt = Object.defineProperty;
  var _l = Object.getOwnPropertyDescriptor;
  var Ul = Object.getOwnPropertyNames;
  var jl = Object.getPrototypeOf,
    ql = Object.prototype.hasOwnProperty;
  var Ue = (e, t) => () => (
      t || e((t = { exports: {} }).exports, t), t.exports
    ),
    b = (e, t) => {
      for (var r in t) Bt(e, r, { get: t[r], enumerable: !0 });
    },
    Ui = (e, t, r, n) => {
      if ((t && typeof t == 'object') || typeof t == 'function')
        for (let o of Ul(t))
          !ql.call(e, o) &&
            o !== r &&
            Bt(e, o, {
              get: () => t[o],
              enumerable: !(n = _l(t, o)) || n.enumerable,
            });
      return e;
    };
  var Hl = (e, t, r) => (
      (r = e != null ? Bl(jl(e)) : {}),
      Ui(
        t || !e || !e.__esModule ?
          Bt(r, 'default', { value: e, enumerable: !0 })
        : r,
        e
      )
    ),
    Wl = (e) => Ui(Bt({}, '__esModule', { value: !0 }), e);
  var ta = Ue((Nr) => {
    var ea =
      'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(
        ''
      );
    Nr.encode = function (e) {
      if (0 <= e && e < ea.length) return ea[e];
      throw new TypeError('Must be between 0 and 63: ' + e);
    };
    Nr.decode = function (e) {
      var t = 65,
        r = 90,
        n = 97,
        o = 122,
        i = 48,
        a = 57,
        l = 43,
        c = 47,
        s = 26,
        u = 52;
      return (
        t <= e && e <= r ? e - t
        : n <= e && e <= o ? e - n + s
        : i <= e && e <= a ? e - i + u
        : e == l ? 62
        : e == c ? 63
        : -1
      );
    };
  });
  var aa = Ue((Rr) => {
    var ra = ta(),
      Mr = 5,
      na = 1 << Mr,
      oa = na - 1,
      ia = na;
    function rc(e) {
      return e < 0 ? (-e << 1) + 1 : (e << 1) + 0;
    }
    function nc(e) {
      var t = (e & 1) === 1,
        r = e >> 1;
      return t ? -r : r;
    }
    Rr.encode = function (t) {
      var r = '',
        n,
        o = rc(t);
      do (n = o & oa), (o >>>= Mr), o > 0 && (n |= ia), (r += ra.encode(n));
      while (o > 0);
      return r;
    };
    Rr.decode = function (t, r, n) {
      var o = t.length,
        i = 0,
        a = 0,
        l,
        c;
      do {
        if (r >= o)
          throw new Error('Expected more digits in base 64 VLQ value.');
        if (((c = ra.decode(t.charCodeAt(r++))), c === -1))
          throw new Error('Invalid base64 digit: ' + t.charAt(r - 1));
        (l = !!(c & ia)), (c &= oa), (i = i + (c << a)), (a += Mr);
      } while (l);
      (n.value = nc(i)), (n.rest = r);
    };
  });
  var Kt = Ue((X) => {
    function oc(e, t, r) {
      if (t in e) return e[t];
      if (arguments.length === 3) return r;
      throw new Error('"' + t + '" is a required argument.');
    }
    X.getArg = oc;
    var sa = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,
      ic = /^data:.+\,.+$/;
    function dt(e) {
      var t = e.match(sa);
      return t ?
          { scheme: t[1], auth: t[2], host: t[3], port: t[4], path: t[5] }
        : null;
    }
    X.urlParse = dt;
    function Ve(e) {
      var t = '';
      return (
        e.scheme && (t += e.scheme + ':'),
        (t += '//'),
        e.auth && (t += e.auth + '@'),
        e.host && (t += e.host),
        e.port && (t += ':' + e.port),
        e.path && (t += e.path),
        t
      );
    }
    X.urlGenerate = Ve;
    var ac = 32;
    function sc(e) {
      var t = [];
      return function (r) {
        for (var n = 0; n < t.length; n++)
          if (t[n].input === r) {
            var o = t[0];
            return (t[0] = t[n]), (t[n] = o), t[0].result;
          }
        var i = e(r);
        return t.unshift({ input: r, result: i }), t.length > ac && t.pop(), i;
      };
    }
    var zr = sc(function (t) {
      var r = t,
        n = dt(t);
      if (n) {
        if (!n.path) return t;
        r = n.path;
      }
      for (var o = X.isAbsolute(r), i = [], a = 0, l = 0; ; )
        if (((a = l), (l = r.indexOf('/', a)), l === -1)) {
          i.push(r.slice(a));
          break;
        } else for (i.push(r.slice(a, l)); l < r.length && r[l] === '/'; ) l++;
      for (var c, s = 0, l = i.length - 1; l >= 0; l--)
        (c = i[l]),
          c === '.' ? i.splice(l, 1)
          : c === '..' ? s++
          : s > 0 &&
            (c === '' ? (i.splice(l + 1, s), (s = 0)) : (i.splice(l, 2), s--));
      return (
        (r = i.join('/')),
        r === '' && (r = o ? '/' : '.'),
        n ? ((n.path = r), Ve(n)) : r
      );
    });
    X.normalize = zr;
    function la(e, t) {
      e === '' && (e = '.'), t === '' && (t = '.');
      var r = dt(t),
        n = dt(e);
      if ((n && (e = n.path || '/'), r && !r.scheme))
        return n && (r.scheme = n.scheme), Ve(r);
      if (r || t.match(ic)) return t;
      if (n && !n.host && !n.path) return (n.host = t), Ve(n);
      var o = t.charAt(0) === '/' ? t : zr(e.replace(/\/+$/, '') + '/' + t);
      return n ? ((n.path = o), Ve(n)) : o;
    }
    X.join = la;
    X.isAbsolute = function (e) {
      return e.charAt(0) === '/' || sa.test(e);
    };
    function lc(e, t) {
      e === '' && (e = '.'), (e = e.replace(/\/$/, ''));
      for (var r = 0; t.indexOf(e + '/') !== 0; ) {
        var n = e.lastIndexOf('/');
        if (n < 0 || ((e = e.slice(0, n)), e.match(/^([^\/]+:\/)?\/*$/)))
          return t;
        ++r;
      }
      return Array(r + 1).join('../') + t.substr(e.length + 1);
    }
    X.relative = lc;
    var ca = (function () {
      var e = Object.create(null);
      return !('__proto__' in e);
    })();
    function ua(e) {
      return e;
    }
    function cc(e) {
      return pa(e) ? '$' + e : e;
    }
    X.toSetString = ca ? ua : cc;
    function uc(e) {
      return pa(e) ? e.slice(1) : e;
    }
    X.fromSetString = ca ? ua : uc;
    function pa(e) {
      if (!e) return !1;
      var t = e.length;
      if (
        t < 9 ||
        e.charCodeAt(t - 1) !== 95 ||
        e.charCodeAt(t - 2) !== 95 ||
        e.charCodeAt(t - 3) !== 111 ||
        e.charCodeAt(t - 4) !== 116 ||
        e.charCodeAt(t - 5) !== 111 ||
        e.charCodeAt(t - 6) !== 114 ||
        e.charCodeAt(t - 7) !== 112 ||
        e.charCodeAt(t - 8) !== 95 ||
        e.charCodeAt(t - 9) !== 95
      )
        return !1;
      for (var r = t - 10; r >= 0; r--) if (e.charCodeAt(r) !== 36) return !1;
      return !0;
    }
    function pc(e, t, r) {
      var n = we(e.source, t.source);
      return (
          n !== 0 ||
            ((n = e.originalLine - t.originalLine), n !== 0) ||
            ((n = e.originalColumn - t.originalColumn), n !== 0 || r) ||
            ((n = e.generatedColumn - t.generatedColumn), n !== 0) ||
            ((n = e.generatedLine - t.generatedLine), n !== 0)
        ) ?
          n
        : we(e.name, t.name);
    }
    X.compareByOriginalPositions = pc;
    function hc(e, t, r) {
      var n;
      return (
        (n = e.originalLine - t.originalLine),
        (
          n !== 0 ||
          ((n = e.originalColumn - t.originalColumn), n !== 0 || r) ||
          ((n = e.generatedColumn - t.generatedColumn), n !== 0) ||
          ((n = e.generatedLine - t.generatedLine), n !== 0)
        ) ?
          n
        : we(e.name, t.name)
      );
    }
    X.compareByOriginalPositionsNoSource = hc;
    function fc(e, t, r) {
      var n = e.generatedLine - t.generatedLine;
      return (
          n !== 0 ||
            ((n = e.generatedColumn - t.generatedColumn), n !== 0 || r) ||
            ((n = we(e.source, t.source)), n !== 0) ||
            ((n = e.originalLine - t.originalLine), n !== 0) ||
            ((n = e.originalColumn - t.originalColumn), n !== 0)
        ) ?
          n
        : we(e.name, t.name);
    }
    X.compareByGeneratedPositionsDeflated = fc;
    function mc(e, t, r) {
      var n = e.generatedColumn - t.generatedColumn;
      return (
          n !== 0 ||
            r ||
            ((n = we(e.source, t.source)), n !== 0) ||
            ((n = e.originalLine - t.originalLine), n !== 0) ||
            ((n = e.originalColumn - t.originalColumn), n !== 0)
        ) ?
          n
        : we(e.name, t.name);
    }
    X.compareByGeneratedPositionsDeflatedNoLine = mc;
    function we(e, t) {
      return (
        e === t ? 0
        : e === null ? 1
        : t === null ? -1
        : e > t ? 1
        : -1
      );
    }
    function dc(e, t) {
      var r = e.generatedLine - t.generatedLine;
      return (
          r !== 0 ||
            ((r = e.generatedColumn - t.generatedColumn), r !== 0) ||
            ((r = we(e.source, t.source)), r !== 0) ||
            ((r = e.originalLine - t.originalLine), r !== 0) ||
            ((r = e.originalColumn - t.originalColumn), r !== 0)
        ) ?
          r
        : we(e.name, t.name);
    }
    X.compareByGeneratedPositionsInflated = dc;
    function gc(e) {
      return JSON.parse(e.replace(/^\)]}'[^\n]*\n/, ''));
    }
    X.parseSourceMapInput = gc;
    function bc(e, t, r) {
      if (
        ((t = t || ''),
        e &&
          (e[e.length - 1] !== '/' && t[0] !== '/' && (e += '/'), (t = e + t)),
        r)
      ) {
        var n = dt(r);
        if (!n) throw new Error('sourceMapURL could not be parsed');
        if (n.path) {
          var o = n.path.lastIndexOf('/');
          o >= 0 && (n.path = n.path.substring(0, o + 1));
        }
        t = la(Ve(n), t);
      }
      return zr(t);
    }
    X.computeSourceURL = bc;
  });
  var fa = Ue((ha) => {
    var Fr = Kt(),
      Br = Object.prototype.hasOwnProperty,
      ze = typeof Map < 'u';
    function ve() {
      (this._array = []), (this._set = ze ? new Map() : Object.create(null));
    }
    ve.fromArray = function (t, r) {
      for (var n = new ve(), o = 0, i = t.length; o < i; o++) n.add(t[o], r);
      return n;
    };
    ve.prototype.size = function () {
      return ze ? this._set.size : Object.getOwnPropertyNames(this._set).length;
    };
    ve.prototype.add = function (t, r) {
      var n = ze ? t : Fr.toSetString(t),
        o = ze ? this.has(t) : Br.call(this._set, n),
        i = this._array.length;
      (!o || r) && this._array.push(t),
        o || (ze ? this._set.set(t, i) : (this._set[n] = i));
    };
    ve.prototype.has = function (t) {
      if (ze) return this._set.has(t);
      var r = Fr.toSetString(t);
      return Br.call(this._set, r);
    };
    ve.prototype.indexOf = function (t) {
      if (ze) {
        var r = this._set.get(t);
        if (r >= 0) return r;
      } else {
        var n = Fr.toSetString(t);
        if (Br.call(this._set, n)) return this._set[n];
      }
      throw new Error('"' + t + '" is not in the set.');
    };
    ve.prototype.at = function (t) {
      if (t >= 0 && t < this._array.length) return this._array[t];
      throw new Error('No element indexed by ' + t);
    };
    ve.prototype.toArray = function () {
      return this._array.slice();
    };
    ha.ArraySet = ve;
  });
  var ga = Ue((da) => {
    var ma = Kt();
    function yc(e, t) {
      var r = e.generatedLine,
        n = t.generatedLine,
        o = e.generatedColumn,
        i = t.generatedColumn;
      return (
        n > r ||
        (n == r && i >= o) ||
        ma.compareByGeneratedPositionsInflated(e, t) <= 0
      );
    }
    function Qt() {
      (this._array = []),
        (this._sorted = !0),
        (this._last = { generatedLine: -1, generatedColumn: 0 });
    }
    Qt.prototype.unsortedForEach = function (t, r) {
      this._array.forEach(t, r);
    };
    Qt.prototype.add = function (t) {
      yc(this._last, t) ?
        ((this._last = t), this._array.push(t))
      : ((this._sorted = !1), this._array.push(t));
    };
    Qt.prototype.toArray = function () {
      return (
        this._sorted ||
          (this._array.sort(ma.compareByGeneratedPositionsInflated),
          (this._sorted = !0)),
        this._array
      );
    };
    da.MappingList = Qt;
  });
  var ya = Ue((ba) => {
    var gt = aa(),
      Y = Kt(),
      $t = fa().ArraySet,
      xc = ga().MappingList;
    function se(e) {
      e || (e = {}),
        (this._file = Y.getArg(e, 'file', null)),
        (this._sourceRoot = Y.getArg(e, 'sourceRoot', null)),
        (this._skipValidation = Y.getArg(e, 'skipValidation', !1)),
        (this._sources = new $t()),
        (this._names = new $t()),
        (this._mappings = new xc()),
        (this._sourcesContents = null);
    }
    se.prototype._version = 3;
    se.fromSourceMap = function (t) {
      var r = t.sourceRoot,
        n = new se({ file: t.file, sourceRoot: r });
      return (
        t.eachMapping(function (o) {
          var i = {
            generated: { line: o.generatedLine, column: o.generatedColumn },
          };
          o.source != null &&
            ((i.source = o.source),
            r != null && (i.source = Y.relative(r, i.source)),
            (i.original = { line: o.originalLine, column: o.originalColumn }),
            o.name != null && (i.name = o.name)),
            n.addMapping(i);
        }),
        t.sources.forEach(function (o) {
          var i = o;
          r !== null && (i = Y.relative(r, o)),
            n._sources.has(i) || n._sources.add(i);
          var a = t.sourceContentFor(o);
          a != null && n.setSourceContent(o, a);
        }),
        n
      );
    };
    se.prototype.addMapping = function (t) {
      var r = Y.getArg(t, 'generated'),
        n = Y.getArg(t, 'original', null),
        o = Y.getArg(t, 'source', null),
        i = Y.getArg(t, 'name', null);
      this._skipValidation || this._validateMapping(r, n, o, i),
        o != null &&
          ((o = String(o)), this._sources.has(o) || this._sources.add(o)),
        i != null &&
          ((i = String(i)), this._names.has(i) || this._names.add(i)),
        this._mappings.add({
          generatedLine: r.line,
          generatedColumn: r.column,
          originalLine: n != null && n.line,
          originalColumn: n != null && n.column,
          source: o,
          name: i,
        });
    };
    se.prototype.setSourceContent = function (t, r) {
      var n = t;
      this._sourceRoot != null && (n = Y.relative(this._sourceRoot, n)),
        r != null ?
          (this._sourcesContents ||
            (this._sourcesContents = Object.create(null)),
          (this._sourcesContents[Y.toSetString(n)] = r))
        : this._sourcesContents &&
          (delete this._sourcesContents[Y.toSetString(n)],
          Object.keys(this._sourcesContents).length === 0 &&
            (this._sourcesContents = null));
    };
    se.prototype.applySourceMap = function (t, r, n) {
      var o = r;
      if (r == null) {
        if (t.file == null)
          throw new Error(
            `SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`
          );
        o = t.file;
      }
      var i = this._sourceRoot;
      i != null && (o = Y.relative(i, o));
      var a = new $t(),
        l = new $t();
      this._mappings.unsortedForEach(function (c) {
        if (c.source === o && c.originalLine != null) {
          var s = t.originalPositionFor({
            line: c.originalLine,
            column: c.originalColumn,
          });
          s.source != null &&
            ((c.source = s.source),
            n != null && (c.source = Y.join(n, c.source)),
            i != null && (c.source = Y.relative(i, c.source)),
            (c.originalLine = s.line),
            (c.originalColumn = s.column),
            s.name != null && (c.name = s.name));
        }
        var u = c.source;
        u != null && !a.has(u) && a.add(u);
        var p = c.name;
        p != null && !l.has(p) && l.add(p);
      }, this),
        (this._sources = a),
        (this._names = l),
        t.sources.forEach(function (c) {
          var s = t.sourceContentFor(c);
          s != null &&
            (n != null && (c = Y.join(n, c)),
            i != null && (c = Y.relative(i, c)),
            this.setSourceContent(c, s));
        }, this);
    };
    se.prototype._validateMapping = function (t, r, n, o) {
      if (r && typeof r.line != 'number' && typeof r.column != 'number')
        throw new Error(
          'original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.'
        );
      if (
        !(
          t &&
          'line' in t &&
          'column' in t &&
          t.line > 0 &&
          t.column >= 0 &&
          !r &&
          !n &&
          !o
        )
      ) {
        if (
          t &&
          'line' in t &&
          'column' in t &&
          r &&
          'line' in r &&
          'column' in r &&
          t.line > 0 &&
          t.column >= 0 &&
          r.line > 0 &&
          r.column >= 0 &&
          n
        )
          return;
        throw new Error(
          'Invalid mapping: ' +
            JSON.stringify({ generated: t, source: n, original: r, name: o })
        );
      }
    };
    se.prototype._serializeMappings = function () {
      for (
        var t = 0,
          r = 1,
          n = 0,
          o = 0,
          i = 0,
          a = 0,
          l = '',
          c,
          s,
          u,
          p,
          h = this._mappings.toArray(),
          m = 0,
          y = h.length;
        m < y;
        m++
      ) {
        if (((s = h[m]), (c = ''), s.generatedLine !== r))
          for (t = 0; s.generatedLine !== r; ) (c += ';'), r++;
        else if (m > 0) {
          if (!Y.compareByGeneratedPositionsInflated(s, h[m - 1])) continue;
          c += ',';
        }
        (c += gt.encode(s.generatedColumn - t)),
          (t = s.generatedColumn),
          s.source != null &&
            ((p = this._sources.indexOf(s.source)),
            (c += gt.encode(p - a)),
            (a = p),
            (c += gt.encode(s.originalLine - 1 - o)),
            (o = s.originalLine - 1),
            (c += gt.encode(s.originalColumn - n)),
            (n = s.originalColumn),
            s.name != null &&
              ((u = this._names.indexOf(s.name)),
              (c += gt.encode(u - i)),
              (i = u))),
          (l += c);
      }
      return l;
    };
    se.prototype._generateSourcesContent = function (t, r) {
      return t.map(function (n) {
        if (!this._sourcesContents) return null;
        r != null && (n = Y.relative(r, n));
        var o = Y.toSetString(n);
        return Object.prototype.hasOwnProperty.call(this._sourcesContents, o) ?
            this._sourcesContents[o]
          : null;
      }, this);
    };
    se.prototype.toJSON = function () {
      var t = {
        version: this._version,
        sources: this._sources.toArray(),
        names: this._names.toArray(),
        mappings: this._serializeMappings(),
      };
      return (
        this._file != null && (t.file = this._file),
        this._sourceRoot != null && (t.sourceRoot = this._sourceRoot),
        this._sourcesContents &&
          (t.sourcesContent = this._generateSourcesContent(
            t.sources,
            t.sourceRoot
          )),
        t
      );
    };
    se.prototype.toString = function () {
      return JSON.stringify(this.toJSON());
    };
    ba.SourceMapGenerator = se;
  });
  var kd = {};
  b(kd, {
    minify: () => yd,
    minifyBlock: () => xd,
    syntax: () => Cr,
    utils: () => Bi,
    version: () => ji,
  });
  var ji = '5.0.4';
  var Cr = {};
  b(Cr, {
    compress: () => Fi,
    find: () => cd,
    findAll: () => pd,
    findLast: () => ud,
    fromPlainObject: () => hd,
    generate: () => sd,
    lexer: () => od,
    parse: () => ad,
    specificity: () => wr,
    toPlainObject: () => fd,
    tokenize: () => id,
    walk: () => ld,
  });
  var Ee = {};
  b(Ee, {
    AtKeyword: () => M,
    BadString: () => Ne,
    BadUrl: () => K,
    CDC: () => W,
    CDO: () => pe,
    Colon: () => R,
    Comma: () => Q,
    Comment: () => I,
    Delim: () => g,
    Dimension: () => k,
    EOF: () => st,
    Function: () => x,
    Hash: () => A,
    Ident: () => f,
    LeftCurlyBracket: () => _,
    LeftParenthesis: () => P,
    LeftSquareBracket: () => H,
    Number: () => d,
    Percentage: () => L,
    RightCurlyBracket: () => G,
    RightParenthesis: () => S,
    RightSquareBracket: () => $,
    Semicolon: () => q,
    String: () => V,
    Url: () => U,
    WhiteSpace: () => v,
  });
  var st = 0,
    f = 1,
    x = 2,
    M = 3,
    A = 4,
    V = 5,
    Ne = 6,
    U = 7,
    K = 8,
    g = 9,
    d = 10,
    L = 11,
    k = 12,
    v = 13,
    pe = 14,
    W = 15,
    R = 16,
    q = 17,
    Q = 18,
    H = 19,
    $ = 20,
    P = 21,
    S = 22,
    _ = 23,
    G = 24,
    I = 25;
  function j(e) {
    return e >= 48 && e <= 57;
  }
  function oe(e) {
    return j(e) || (e >= 65 && e <= 70) || (e >= 97 && e <= 102);
  }
  function Ut(e) {
    return e >= 65 && e <= 90;
  }
  function Yl(e) {
    return e >= 97 && e <= 122;
  }
  function Vl(e) {
    return Ut(e) || Yl(e);
  }
  function Gl(e) {
    return e >= 128;
  }
  function _t(e) {
    return Vl(e) || Gl(e) || e === 95;
  }
  function lt(e) {
    return _t(e) || j(e) || e === 45;
  }
  function Kl(e) {
    return (e >= 0 && e <= 8) || e === 11 || (e >= 14 && e <= 31) || e === 127;
  }
  function ct(e) {
    return e === 10 || e === 13 || e === 12;
  }
  function he(e) {
    return ct(e) || e === 32 || e === 9;
  }
  function re(e, t) {
    return !(e !== 92 || ct(t) || t === 0);
  }
  function je(e, t, r) {
    return (
      e === 45 ? _t(t) || t === 45 || re(t, r)
      : _t(e) ? !0
      : e === 92 ? re(e, t)
      : !1
    );
  }
  function jt(e, t, r) {
    return (
      e === 43 || e === 45 ?
        j(t) ? 2
        : t === 46 && j(r) ? 3
        : 0
      : e === 46 ?
        j(t) ? 2
        : 0
      : j(e) ? 1
      : 0
    );
  }
  function qt(e) {
    return e === 65279 || e === 65534 ? 1 : 0;
  }
  var Ar = new Array(128),
    Ql = 128,
    ut = 130,
    Er = 131,
    Ht = 132,
    Tr = 133;
  for (let e = 0; e < Ar.length; e++)
    Ar[e] =
      (he(e) && ut) ||
      (j(e) && Er) ||
      (_t(e) && Ht) ||
      (Kl(e) && Tr) ||
      e ||
      Ql;
  function Wt(e) {
    return e < 128 ? Ar[e] : Ht;
  }
  function qe(e, t) {
    return t < e.length ? e.charCodeAt(t) : 0;
  }
  function Yt(e, t, r) {
    return r === 13 && qe(e, t + 1) === 10 ? 2 : 1;
  }
  function xe(e, t, r) {
    let n = e.charCodeAt(t);
    return Ut(n) && (n = n | 32), n === r;
  }
  function ke(e, t, r, n) {
    if (r - t !== n.length || t < 0 || r > e.length) return !1;
    for (let o = t; o < r; o++) {
      let i = n.charCodeAt(o - t),
        a = e.charCodeAt(o);
      if ((Ut(a) && (a = a | 32), a !== i)) return !1;
    }
    return !0;
  }
  function qi(e, t) {
    for (; t >= 0 && he(e.charCodeAt(t)); t--);
    return t + 1;
  }
  function pt(e, t) {
    for (; t < e.length && he(e.charCodeAt(t)); t++);
    return t;
  }
  function Lr(e, t) {
    for (; t < e.length && j(e.charCodeAt(t)); t++);
    return t;
  }
  function fe(e, t) {
    if (((t += 2), oe(qe(e, t - 1)))) {
      for (let n = Math.min(e.length, t + 5); t < n && oe(qe(e, t)); t++);
      let r = qe(e, t);
      he(r) && (t += Yt(e, t, r));
    }
    return t;
  }
  function ht(e, t) {
    for (; t < e.length; t++) {
      let r = e.charCodeAt(t);
      if (!lt(r)) {
        if (re(r, qe(e, t + 1))) {
          t = fe(e, t) - 1;
          continue;
        }
        break;
      }
    }
    return t;
  }
  function Me(e, t) {
    let r = e.charCodeAt(t);
    if (
      ((r === 43 || r === 45) && (r = e.charCodeAt((t += 1))),
      j(r) && ((t = Lr(e, t + 1)), (r = e.charCodeAt(t))),
      r === 46 && j(e.charCodeAt(t + 1)) && ((t += 2), (t = Lr(e, t))),
      xe(e, t, 101))
    ) {
      let n = 0;
      (r = e.charCodeAt(t + 1)),
        (r === 45 || r === 43) && ((n = 1), (r = e.charCodeAt(t + 2))),
        j(r) && (t = Lr(e, t + 1 + n + 1));
    }
    return t;
  }
  function Vt(e, t) {
    for (; t < e.length; t++) {
      let r = e.charCodeAt(t);
      if (r === 41) {
        t++;
        break;
      }
      re(r, qe(e, t + 1)) && (t = fe(e, t));
    }
    return t;
  }
  function ft(e) {
    if (e.length === 1 && !oe(e.charCodeAt(0))) return e[0];
    let t = parseInt(e, 16);
    return (
      (t === 0 || (t >= 55296 && t <= 57343) || t > 1114111) && (t = 65533),
      String.fromCodePoint(t)
    );
  }
  var He = [
    'EOF-token',
    'ident-token',
    'function-token',
    'at-keyword-token',
    'hash-token',
    'string-token',
    'bad-string-token',
    'url-token',
    'bad-url-token',
    'delim-token',
    'number-token',
    'percentage-token',
    'dimension-token',
    'whitespace-token',
    'CDO-token',
    'CDC-token',
    'colon-token',
    'semicolon-token',
    'comma-token',
    '[-token',
    ']-token',
    '(-token',
    ')-token',
    '{-token',
    '}-token',
  ];
  function We(e = null, t) {
    return e === null || e.length < t ?
        new Uint32Array(Math.max(t + 1024, 16384))
      : e;
  }
  var Hi = 10,
    $l = 12,
    Wi = 13;
  function Yi(e) {
    let t = e.source,
      r = t.length,
      n = t.length > 0 ? qt(t.charCodeAt(0)) : 0,
      o = We(e.lines, r),
      i = We(e.columns, r),
      a = e.startLine,
      l = e.startColumn;
    for (let c = n; c < r; c++) {
      let s = t.charCodeAt(c);
      (o[c] = a),
        (i[c] = l++),
        (s === Hi || s === Wi || s === $l) &&
          (s === Wi &&
            c + 1 < r &&
            t.charCodeAt(c + 1) === Hi &&
            (c++, (o[c] = a), (i[c] = l)),
          a++,
          (l = 1));
    }
    (o[r] = a), (i[r] = l), (e.lines = o), (e.columns = i), (e.computed = !0);
  }
  var Gt = class {
    constructor() {
      (this.lines = null), (this.columns = null), (this.computed = !1);
    }
    setSource(t, r = 0, n = 1, o = 1) {
      (this.source = t),
        (this.startOffset = r),
        (this.startLine = n),
        (this.startColumn = o),
        (this.computed = !1);
    }
    getLocation(t, r) {
      return (
        this.computed || Yi(this),
        {
          source: r,
          offset: this.startOffset + t,
          line: this.lines[t],
          column: this.columns[t],
        }
      );
    }
    getLocationRange(t, r, n) {
      return (
        this.computed || Yi(this),
        {
          source: n,
          start: {
            offset: this.startOffset + t,
            line: this.lines[t],
            column: this.columns[t],
          },
          end: {
            offset: this.startOffset + r,
            line: this.lines[r],
            column: this.columns[r],
          },
        }
      );
    }
  };
  var ae = 16777215,
    Te = 24,
    Xl = new Map([
      [2, 22],
      [21, 22],
      [19, 20],
      [23, 24],
    ]),
    mt = class {
      constructor(t, r) {
        this.setSource(t, r);
      }
      reset() {
        (this.eof = !1),
          (this.tokenIndex = -1),
          (this.tokenType = 0),
          (this.tokenStart = this.firstCharOffset),
          (this.tokenEnd = this.firstCharOffset);
      }
      setSource(t = '', r = () => {}) {
        t = String(t || '');
        let n = t.length,
          o = We(this.offsetAndType, t.length + 1),
          i = We(this.balance, t.length + 1),
          a = 0,
          l = 0,
          c = 0,
          s = -1;
        for (
          this.offsetAndType = null,
            this.balance = null,
            r(t, (u, p, h) => {
              switch (u) {
                default:
                  i[a] = n;
                  break;
                case l: {
                  let m = c & ae;
                  for (c = i[m], l = c >> Te, i[a] = m, i[m++] = a; m < a; m++)
                    i[m] === n && (i[m] = a);
                  break;
                }
                case 21:
                case 2:
                case 19:
                case 23:
                  (i[a] = c), (l = Xl.get(u)), (c = (l << Te) | a);
                  break;
              }
              (o[a++] = (u << Te) | h), s === -1 && (s = p);
            }),
            o[a] = (0 << Te) | n,
            i[a] = n,
            i[n] = n;
          c !== 0;

        ) {
          let u = c & ae;
          (c = i[u]), (i[u] = n);
        }
        (this.source = t),
          (this.firstCharOffset = s === -1 ? 0 : s),
          (this.tokenCount = a),
          (this.offsetAndType = o),
          (this.balance = i),
          this.reset(),
          this.next();
      }
      lookupType(t) {
        return (
          (t += this.tokenIndex),
          t < this.tokenCount ? this.offsetAndType[t] >> Te : 0
        );
      }
      lookupOffset(t) {
        return (
          (t += this.tokenIndex),
          t < this.tokenCount ?
            this.offsetAndType[t - 1] & ae
          : this.source.length
        );
      }
      lookupValue(t, r) {
        return (
          (t += this.tokenIndex),
          t < this.tokenCount ?
            ke(
              this.source,
              this.offsetAndType[t - 1] & ae,
              this.offsetAndType[t] & ae,
              r
            )
          : !1
        );
      }
      getTokenStart(t) {
        return (
          t === this.tokenIndex ? this.tokenStart
          : t > 0 ?
            t < this.tokenCount ?
              this.offsetAndType[t - 1] & ae
            : this.offsetAndType[this.tokenCount] & ae
          : this.firstCharOffset
        );
      }
      substrToCursor(t) {
        return this.source.substring(t, this.tokenStart);
      }
      isBalanceEdge(t) {
        return this.balance[this.tokenIndex] < t;
      }
      isDelim(t, r) {
        return r ?
            this.lookupType(r) === 9 &&
              this.source.charCodeAt(this.lookupOffset(r)) === t
          : this.tokenType === 9 &&
              this.source.charCodeAt(this.tokenStart) === t;
      }
      skip(t) {
        let r = this.tokenIndex + t;
        r < this.tokenCount ?
          ((this.tokenIndex = r),
          (this.tokenStart = this.offsetAndType[r - 1] & ae),
          (r = this.offsetAndType[r]),
          (this.tokenType = r >> Te),
          (this.tokenEnd = r & ae))
        : ((this.tokenIndex = this.tokenCount), this.next());
      }
      next() {
        let t = this.tokenIndex + 1;
        t < this.tokenCount ?
          ((this.tokenIndex = t),
          (this.tokenStart = this.tokenEnd),
          (t = this.offsetAndType[t]),
          (this.tokenType = t >> Te),
          (this.tokenEnd = t & ae))
        : ((this.eof = !0),
          (this.tokenIndex = this.tokenCount),
          (this.tokenType = 0),
          (this.tokenStart = this.tokenEnd = this.source.length));
      }
      skipSC() {
        for (; this.tokenType === 13 || this.tokenType === 25; ) this.next();
      }
      skipUntilBalanced(t, r) {
        let n = t,
          o,
          i;
        e: for (; n < this.tokenCount; n++) {
          if (((o = this.balance[n]), o < t)) break e;
          switch (
            ((i =
              n > 0 ? this.offsetAndType[n - 1] & ae : this.firstCharOffset),
            r(this.source.charCodeAt(i)))
          ) {
            case 1:
              break e;
            case 2:
              n++;
              break e;
            default:
              this.balance[o] === n && (n = o);
          }
        }
        this.skip(n - this.tokenIndex);
      }
      forEachToken(t) {
        for (let r = 0, n = this.firstCharOffset; r < this.tokenCount; r++) {
          let o = n,
            i = this.offsetAndType[r],
            a = i & ae,
            l = i >> Te;
          (n = a), t(l, o, a, r);
        }
      }
      dump() {
        let t = new Array(this.tokenCount);
        return (
          this.forEachToken((r, n, o, i) => {
            t[i] = {
              idx: i,
              type: He[r],
              chunk: this.source.substring(n, o),
              balance: this.balance[i],
            };
          }),
          t
        );
      }
    };
  function Le(e, t) {
    function r(p) {
      return p < l ? e.charCodeAt(p) : 0;
    }
    function n() {
      if (((s = Me(e, s)), je(r(s), r(s + 1), r(s + 2)))) {
        (u = 12), (s = ht(e, s));
        return;
      }
      if (r(s) === 37) {
        (u = 11), s++;
        return;
      }
      u = 10;
    }
    function o() {
      let p = s;
      if (((s = ht(e, s)), ke(e, p, s, 'url') && r(s) === 40)) {
        if (((s = pt(e, s + 1)), r(s) === 34 || r(s) === 39)) {
          (u = 2), (s = p + 4);
          return;
        }
        a();
        return;
      }
      if (r(s) === 40) {
        (u = 2), s++;
        return;
      }
      u = 1;
    }
    function i(p) {
      for (p || (p = r(s++)), u = 5; s < e.length; s++) {
        let h = e.charCodeAt(s);
        switch (Wt(h)) {
          case p:
            s++;
            return;
          case ut:
            if (ct(h)) {
              (s += Yt(e, s, h)), (u = 6);
              return;
            }
            break;
          case 92:
            if (s === e.length - 1) break;
            let m = r(s + 1);
            ct(m) ? (s += Yt(e, s + 1, m)) : re(h, m) && (s = fe(e, s) - 1);
            break;
        }
      }
    }
    function a() {
      for (u = 7, s = pt(e, s); s < e.length; s++) {
        let p = e.charCodeAt(s);
        switch (Wt(p)) {
          case 41:
            s++;
            return;
          case ut:
            if (((s = pt(e, s)), r(s) === 41 || s >= e.length)) {
              s < e.length && s++;
              return;
            }
            (s = Vt(e, s)), (u = 8);
            return;
          case 34:
          case 39:
          case 40:
          case Tr:
            (s = Vt(e, s)), (u = 8);
            return;
          case 92:
            if (re(p, r(s + 1))) {
              s = fe(e, s) - 1;
              break;
            }
            (s = Vt(e, s)), (u = 8);
            return;
        }
      }
    }
    e = String(e || '');
    let l = e.length,
      c = qt(r(0)),
      s = c,
      u;
    for (; s < l; ) {
      let p = e.charCodeAt(s);
      switch (Wt(p)) {
        case ut:
          (u = 13), (s = pt(e, s + 1));
          break;
        case 34:
          i();
          break;
        case 35:
          lt(r(s + 1)) || re(r(s + 1), r(s + 2)) ?
            ((u = 4), (s = ht(e, s + 1)))
          : ((u = 9), s++);
          break;
        case 39:
          i();
          break;
        case 40:
          (u = 21), s++;
          break;
        case 41:
          (u = 22), s++;
          break;
        case 43:
          jt(p, r(s + 1), r(s + 2)) ? n() : ((u = 9), s++);
          break;
        case 44:
          (u = 18), s++;
          break;
        case 45:
          jt(p, r(s + 1), r(s + 2)) ? n()
          : r(s + 1) === 45 && r(s + 2) === 62 ? ((u = 15), (s = s + 3))
          : je(p, r(s + 1), r(s + 2)) ? o()
          : ((u = 9), s++);
          break;
        case 46:
          jt(p, r(s + 1), r(s + 2)) ? n() : ((u = 9), s++);
          break;
        case 47:
          r(s + 1) === 42 ?
            ((u = 25),
            (s = e.indexOf('*/', s + 2)),
            (s = s === -1 ? e.length : s + 2))
          : ((u = 9), s++);
          break;
        case 58:
          (u = 16), s++;
          break;
        case 59:
          (u = 17), s++;
          break;
        case 60:
          r(s + 1) === 33 && r(s + 2) === 45 && r(s + 3) === 45 ?
            ((u = 14), (s = s + 4))
          : ((u = 9), s++);
          break;
        case 64:
          je(r(s + 1), r(s + 2), r(s + 3)) ?
            ((u = 3), (s = ht(e, s + 1)))
          : ((u = 9), s++);
          break;
        case 91:
          (u = 19), s++;
          break;
        case 92:
          re(p, r(s + 1)) ? o() : ((u = 9), s++);
          break;
        case 93:
          (u = 20), s++;
          break;
        case 123:
          (u = 23), s++;
          break;
        case 125:
          (u = 24), s++;
          break;
        case Er:
          n();
          break;
        case Ht:
          o();
          break;
        default:
          (u = 9), s++;
      }
      t(u, c, (c = s));
    }
  }
  var Ye = null,
    w = class {
      static createItem(t) {
        return { prev: null, next: null, data: t };
      }
      constructor() {
        (this.head = null), (this.tail = null), (this.cursor = null);
      }
      createItem(t) {
        return w.createItem(t);
      }
      allocateCursor(t, r) {
        let n;
        return (
          Ye !== null ?
            ((n = Ye),
            (Ye = Ye.cursor),
            (n.prev = t),
            (n.next = r),
            (n.cursor = this.cursor))
          : (n = { prev: t, next: r, cursor: this.cursor }),
          (this.cursor = n),
          n
        );
      }
      releaseCursor() {
        let { cursor: t } = this;
        (this.cursor = t.cursor),
          (t.prev = null),
          (t.next = null),
          (t.cursor = Ye),
          (Ye = t);
      }
      updateCursors(t, r, n, o) {
        let { cursor: i } = this;
        for (; i !== null; )
          i.prev === t && (i.prev = r),
            i.next === n && (i.next = o),
            (i = i.cursor);
      }
      *[Symbol.iterator]() {
        for (let t = this.head; t !== null; t = t.next) yield t.data;
      }
      get size() {
        let t = 0;
        for (let r = this.head; r !== null; r = r.next) t++;
        return t;
      }
      get isEmpty() {
        return this.head === null;
      }
      get first() {
        return this.head && this.head.data;
      }
      get last() {
        return this.tail && this.tail.data;
      }
      fromArray(t) {
        let r = null;
        this.head = null;
        for (let n of t) {
          let o = w.createItem(n);
          r !== null ? (r.next = o) : (this.head = o), (o.prev = r), (r = o);
        }
        return (this.tail = r), this;
      }
      toArray() {
        return [...this];
      }
      toJSON() {
        return [...this];
      }
      forEach(t, r = this) {
        let n = this.allocateCursor(null, this.head);
        for (; n.next !== null; ) {
          let o = n.next;
          (n.next = o.next), t.call(r, o.data, o, this);
        }
        this.releaseCursor();
      }
      forEachRight(t, r = this) {
        let n = this.allocateCursor(this.tail, null);
        for (; n.prev !== null; ) {
          let o = n.prev;
          (n.prev = o.prev), t.call(r, o.data, o, this);
        }
        this.releaseCursor();
      }
      reduce(t, r, n = this) {
        let o = this.allocateCursor(null, this.head),
          i = r,
          a;
        for (; o.next !== null; )
          (a = o.next), (o.next = a.next), (i = t.call(n, i, a.data, a, this));
        return this.releaseCursor(), i;
      }
      reduceRight(t, r, n = this) {
        let o = this.allocateCursor(this.tail, null),
          i = r,
          a;
        for (; o.prev !== null; )
          (a = o.prev), (o.prev = a.prev), (i = t.call(n, i, a.data, a, this));
        return this.releaseCursor(), i;
      }
      some(t, r = this) {
        for (let n = this.head; n !== null; n = n.next)
          if (t.call(r, n.data, n, this)) return !0;
        return !1;
      }
      map(t, r = this) {
        let n = new w();
        for (let o = this.head; o !== null; o = o.next)
          n.appendData(t.call(r, o.data, o, this));
        return n;
      }
      filter(t, r = this) {
        let n = new w();
        for (let o = this.head; o !== null; o = o.next)
          t.call(r, o.data, o, this) && n.appendData(o.data);
        return n;
      }
      nextUntil(t, r, n = this) {
        if (t === null) return;
        let o = this.allocateCursor(null, t);
        for (; o.next !== null; ) {
          let i = o.next;
          if (((o.next = i.next), r.call(n, i.data, i, this))) break;
        }
        this.releaseCursor();
      }
      prevUntil(t, r, n = this) {
        if (t === null) return;
        let o = this.allocateCursor(t, null);
        for (; o.prev !== null; ) {
          let i = o.prev;
          if (((o.prev = i.prev), r.call(n, i.data, i, this))) break;
        }
        this.releaseCursor();
      }
      clear() {
        (this.head = null), (this.tail = null);
      }
      copy() {
        let t = new w();
        for (let r of this) t.appendData(r);
        return t;
      }
      prepend(t) {
        return (
          this.updateCursors(null, t, this.head, t),
          this.head !== null ?
            ((this.head.prev = t), (t.next = this.head))
          : (this.tail = t),
          (this.head = t),
          this
        );
      }
      prependData(t) {
        return this.prepend(w.createItem(t));
      }
      append(t) {
        return this.insert(t);
      }
      appendData(t) {
        return this.insert(w.createItem(t));
      }
      insert(t, r = null) {
        if (r !== null)
          if ((this.updateCursors(r.prev, t, r, t), r.prev === null)) {
            if (this.head !== r)
              throw new Error("before doesn't belong to list");
            (this.head = t),
              (r.prev = t),
              (t.next = r),
              this.updateCursors(null, t);
          } else
            (r.prev.next = t), (t.prev = r.prev), (r.prev = t), (t.next = r);
        else
          this.updateCursors(this.tail, t, null, t),
            this.tail !== null ?
              ((this.tail.next = t), (t.prev = this.tail))
            : (this.head = t),
            (this.tail = t);
        return this;
      }
      insertData(t, r) {
        return this.insert(w.createItem(t), r);
      }
      remove(t) {
        if ((this.updateCursors(t, t.prev, t, t.next), t.prev !== null))
          t.prev.next = t.next;
        else {
          if (this.head !== t) throw new Error("item doesn't belong to list");
          this.head = t.next;
        }
        if (t.next !== null) t.next.prev = t.prev;
        else {
          if (this.tail !== t) throw new Error("item doesn't belong to list");
          this.tail = t.prev;
        }
        return (t.prev = null), (t.next = null), t;
      }
      push(t) {
        this.insert(w.createItem(t));
      }
      pop() {
        return this.tail !== null ? this.remove(this.tail) : null;
      }
      unshift(t) {
        this.prepend(w.createItem(t));
      }
      shift() {
        return this.head !== null ? this.remove(this.head) : null;
      }
      prependList(t) {
        return this.insertList(t, this.head);
      }
      appendList(t) {
        return this.insertList(t);
      }
      insertList(t, r) {
        return t.head === null ?
            this
          : (r != null ?
              (this.updateCursors(r.prev, t.tail, r, t.head),
              r.prev !== null ?
                ((r.prev.next = t.head), (t.head.prev = r.prev))
              : (this.head = t.head),
              (r.prev = t.tail),
              (t.tail.next = r))
            : (this.updateCursors(this.tail, t.tail, null, t.head),
              this.tail !== null ?
                ((this.tail.next = t.head), (t.head.prev = this.tail))
              : (this.head = t.head),
              (this.tail = t.tail)),
            (t.head = null),
            (t.tail = null),
            this);
      }
      replace(t, r) {
        'head' in r ? this.insertList(r, t) : this.insert(r, t), this.remove(t);
      }
    };
  function Re(e, t) {
    let r = Object.create(SyntaxError.prototype),
      n = new Error();
    return Object.assign(r, {
      name: e,
      message: t,
      get stack() {
        return (n.stack || '').replace(
          /^(.+\n){1,3}/,
          `${e}: ${t}
`
        );
      },
    });
  }
  var Pr = 100,
    Vi = 60,
    Gi = '    ';
  function Ki({ source: e, line: t, column: r }, n) {
    function o(u, p) {
      return i
        .slice(u, p)
        .map((h, m) => String(u + m + 1).padStart(c) + ' |' + h).join(`
`);
    }
    let i = e.split(/\r\n?|\n|\f/),
      a = Math.max(1, t - n) - 1,
      l = Math.min(t + n, i.length + 1),
      c = Math.max(4, String(l).length) + 1,
      s = 0;
    (r +=
      (Gi.length - 1) * (i[t - 1].substr(0, r - 1).match(/\t/g) || []).length),
      r > Pr && ((s = r - Vi + 3), (r = Vi - 2));
    for (let u = a; u <= l; u++)
      u >= 0 &&
        u < i.length &&
        ((i[u] = i[u].replace(/\t/g, Gi)),
        (i[u] =
          (s > 0 && i[u].length > s ? '\u2026' : '') +
          i[u].substr(s, Pr - 2) +
          (i[u].length > s + Pr - 1 ? '\u2026' : '')));
    return [o(a, t), new Array(r + c + 2).join('-') + '^', o(t, l)].filter(
      Boolean
    ).join(`
`);
  }
  function Ir(e, t, r, n, o) {
    return Object.assign(Re('SyntaxError', e), {
      source: t,
      offset: r,
      line: n,
      column: o,
      sourceFragment(a) {
        return Ki({ source: t, line: n, column: o }, isNaN(a) ? 0 : a);
      },
      get formattedMessage() {
        return (
          `Parse error: ${e}
` + Ki({ source: t, line: n, column: o }, 2)
        );
      },
    });
  }
  function Qi(e) {
    let t = this.createList(),
      r = !1,
      n = { recognizer: e };
    for (; !this.eof; ) {
      switch (this.tokenType) {
        case 25:
          this.next();
          continue;
        case 13:
          (r = !0), this.next();
          continue;
      }
      let o = e.getNode.call(this, n);
      if (o === void 0) break;
      r && (e.onWhiteSpace && e.onWhiteSpace.call(this, o, t, n), (r = !1)),
        t.push(o);
    }
    return r && e.onWhiteSpace && e.onWhiteSpace.call(this, null, t, n), t;
  }
  var $i = () => {},
    Zl = 33,
    Jl = 35,
    Or = 59,
    Xi = 123,
    Zi = 0;
  function ec(e) {
    return function () {
      return this[e]();
    };
  }
  function Dr(e) {
    let t = Object.create(null);
    for (let r in e) {
      let n = e[r],
        o = n.parse || n;
      o && (t[r] = o);
    }
    return t;
  }
  function tc(e) {
    let t = {
      context: Object.create(null),
      scope: Object.assign(Object.create(null), e.scope),
      atrule: Dr(e.atrule),
      pseudo: Dr(e.pseudo),
      node: Dr(e.node),
    };
    for (let r in e.parseContext)
      switch (typeof e.parseContext[r]) {
        case 'function':
          t.context[r] = e.parseContext[r];
          break;
        case 'string':
          t.context[r] = ec(e.parseContext[r]);
          break;
      }
    return { config: t, ...t, ...t.node };
  }
  function Ji(e) {
    let t = '',
      r = '<unknown>',
      n = !1,
      o = $i,
      i = !1,
      a = new Gt(),
      l = Object.assign(new mt(), tc(e || {}), {
        parseAtrulePrelude: !0,
        parseRulePrelude: !0,
        parseValue: !0,
        parseCustomProperty: !1,
        readSequence: Qi,
        consumeUntilBalanceEnd: () => 0,
        consumeUntilLeftCurlyBracket(s) {
          return s === Xi ? 1 : 0;
        },
        consumeUntilLeftCurlyBracketOrSemicolon(s) {
          return s === Xi || s === Or ? 1 : 0;
        },
        consumeUntilExclamationMarkOrSemicolon(s) {
          return s === Zl || s === Or ? 1 : 0;
        },
        consumeUntilSemicolonIncluded(s) {
          return s === Or ? 2 : 0;
        },
        createList() {
          return new w();
        },
        createSingleNodeList(s) {
          return new w().appendData(s);
        },
        getFirstListNode(s) {
          return s && s.first;
        },
        getLastListNode(s) {
          return s && s.last;
        },
        parseWithFallback(s, u) {
          let p = this.tokenIndex;
          try {
            return s.call(this);
          } catch (h) {
            if (i) throw h;
            let m = u.call(this, p);
            return (i = !0), o(h, m), (i = !1), m;
          }
        },
        lookupNonWSType(s) {
          let u;
          do if (((u = this.lookupType(s++)), u !== 13)) return u;
          while (u !== Zi);
          return Zi;
        },
        charCodeAt(s) {
          return s >= 0 && s < t.length ? t.charCodeAt(s) : 0;
        },
        substring(s, u) {
          return t.substring(s, u);
        },
        substrToCursor(s) {
          return this.source.substring(s, this.tokenStart);
        },
        cmpChar(s, u) {
          return xe(t, s, u);
        },
        cmpStr(s, u, p) {
          return ke(t, s, u, p);
        },
        consume(s) {
          let u = this.tokenStart;
          return this.eat(s), this.substrToCursor(u);
        },
        consumeFunctionName() {
          let s = t.substring(this.tokenStart, this.tokenEnd - 1);
          return this.eat(2), s;
        },
        consumeNumber(s) {
          let u = t.substring(this.tokenStart, Me(t, this.tokenStart));
          return this.eat(s), u;
        },
        eat(s) {
          if (this.tokenType !== s) {
            let u = He[s]
                .slice(0, -6)
                .replace(/-/g, ' ')
                .replace(/^./, (m) => m.toUpperCase()),
              p = `${/[[\](){}]/.test(u) ? `"${u}"` : u} is expected`,
              h = this.tokenStart;
            switch (s) {
              case 1:
                this.tokenType === 2 || this.tokenType === 7 ?
                  ((h = this.tokenEnd - 1),
                  (p = 'Identifier is expected but function found'))
                : (p = 'Identifier is expected');
                break;
              case 4:
                this.isDelim(Jl) &&
                  (this.next(), h++, (p = 'Name is expected'));
                break;
              case 11:
                this.tokenType === 10 &&
                  ((h = this.tokenEnd), (p = 'Percent sign is expected'));
                break;
            }
            this.error(p, h);
          }
          this.next();
        },
        eatIdent(s) {
          (this.tokenType !== 1 || this.lookupValue(0, s) === !1) &&
            this.error(`Identifier "${s}" is expected`),
            this.next();
        },
        eatDelim(s) {
          this.isDelim(s) ||
            this.error(`Delim "${String.fromCharCode(s)}" is expected`),
            this.next();
        },
        getLocation(s, u) {
          return n ? a.getLocationRange(s, u, r) : null;
        },
        getLocationFromList(s) {
          if (n) {
            let u = this.getFirstListNode(s),
              p = this.getLastListNode(s);
            return a.getLocationRange(
              u !== null ? u.loc.start.offset - a.startOffset : this.tokenStart,
              p !== null ? p.loc.end.offset - a.startOffset : this.tokenStart,
              r
            );
          }
          return null;
        },
        error(s, u) {
          let p =
            typeof u < 'u' && u < t.length ? a.getLocation(u)
            : this.eof ? a.getLocation(qi(t, t.length - 1))
            : a.getLocation(this.tokenStart);
          throw new Ir(s || 'Unexpected input', t, p.offset, p.line, p.column);
        },
      });
    return Object.assign(
      function (s, u) {
        (t = s),
          (u = u || {}),
          l.setSource(t, Le),
          a.setSource(t, u.offset, u.line, u.column),
          (r = u.filename || '<unknown>'),
          (n = Boolean(u.positions)),
          (o = typeof u.onParseError == 'function' ? u.onParseError : $i),
          (i = !1),
          (l.parseAtrulePrelude =
            'parseAtrulePrelude' in u ? Boolean(u.parseAtrulePrelude) : !0),
          (l.parseRulePrelude =
            'parseRulePrelude' in u ? Boolean(u.parseRulePrelude) : !0),
          (l.parseValue = 'parseValue' in u ? Boolean(u.parseValue) : !0),
          (l.parseCustomProperty =
            'parseCustomProperty' in u ? Boolean(u.parseCustomProperty) : !1);
        let { context: p = 'default', onComment: h } = u;
        if (!(p in l.context)) throw new Error('Unknown context `' + p + '`');
        typeof h == 'function' &&
          l.forEachToken((y, T, N) => {
            if (y === 25) {
              let C = l.getLocation(T, N),
                D =
                  ke(t, N - 2, N, '*/') ?
                    t.slice(T + 2, N - 2)
                  : t.slice(T + 2, N);
              h(D, C);
            }
          });
        let m = l.context[p].call(l, u);
        return l.eof || l.error(), m;
      },
      { SyntaxError: Ir, config: l.config }
    );
  }
  var ka = Hl(ya(), 1),
    xa = new Set(['Atrule', 'Selector', 'Declaration']);
  function wa(e) {
    let t = new ka.SourceMapGenerator(),
      r = { line: 1, column: 0 },
      n = { line: 0, column: 0 },
      o = { line: 1, column: 0 },
      i = { generated: o },
      a = 1,
      l = 0,
      c = !1,
      s = e.node;
    e.node = function (h) {
      if (h.loc && h.loc.start && xa.has(h.type)) {
        let m = h.loc.start.line,
          y = h.loc.start.column - 1;
        (n.line !== m || n.column !== y) &&
          ((n.line = m),
          (n.column = y),
          (r.line = a),
          (r.column = l),
          c &&
            ((c = !1),
            (r.line !== o.line || r.column !== o.column) && t.addMapping(i)),
          (c = !0),
          t.addMapping({ source: h.loc.source, original: n, generated: r }));
      }
      s.call(this, h), c && xa.has(h.type) && ((o.line = a), (o.column = l));
    };
    let u = e.emit;
    e.emit = function (h, m, y) {
      for (let T = 0; T < h.length; T++)
        h.charCodeAt(T) === 10 ? (a++, (l = 0)) : l++;
      u(h, m, y);
    };
    let p = e.result;
    return (
      (e.result = function () {
        return c && t.addMapping(i), { css: p(), map: t };
      }),
      e
    );
  }
  var Xt = {};
  b(Xt, { safe: () => Ur, spec: () => Sc });
  var kc = 43,
    wc = 45,
    _r = (e, t) => {
      if ((e === 9 && (e = t), typeof e == 'string')) {
        let r = e.charCodeAt(0);
        return r > 127 ? 32768 : r << 8;
      }
      return e;
    },
    va = [
      [1, 1],
      [1, 2],
      [1, 7],
      [1, 8],
      [1, '-'],
      [1, 10],
      [1, 11],
      [1, 12],
      [1, 15],
      [1, 21],
      [3, 1],
      [3, 2],
      [3, 7],
      [3, 8],
      [3, '-'],
      [3, 10],
      [3, 11],
      [3, 12],
      [3, 15],
      [4, 1],
      [4, 2],
      [4, 7],
      [4, 8],
      [4, '-'],
      [4, 10],
      [4, 11],
      [4, 12],
      [4, 15],
      [12, 1],
      [12, 2],
      [12, 7],
      [12, 8],
      [12, '-'],
      [12, 10],
      [12, 11],
      [12, 12],
      [12, 15],
      ['#', 1],
      ['#', 2],
      ['#', 7],
      ['#', 8],
      ['#', '-'],
      ['#', 10],
      ['#', 11],
      ['#', 12],
      ['#', 15],
      ['-', 1],
      ['-', 2],
      ['-', 7],
      ['-', 8],
      ['-', '-'],
      ['-', 10],
      ['-', 11],
      ['-', 12],
      ['-', 15],
      [10, 1],
      [10, 2],
      [10, 7],
      [10, 8],
      [10, 10],
      [10, 11],
      [10, 12],
      [10, '%'],
      [10, 15],
      ['@', 1],
      ['@', 2],
      ['@', 7],
      ['@', 8],
      ['@', '-'],
      ['@', 15],
      ['.', 10],
      ['.', 11],
      ['.', 12],
      ['+', 10],
      ['+', 11],
      ['+', 12],
      ['/', '*'],
    ],
    vc = va.concat([
      [1, 4],
      [12, 4],
      [4, 4],
      [3, 21],
      [3, 5],
      [3, 16],
      [11, 11],
      [11, 12],
      [11, 2],
      [11, '-'],
      [22, 1],
      [22, 2],
      [22, 11],
      [22, 12],
      [22, 4],
      [22, '-'],
    ]);
  function Sa(e) {
    let t = new Set(e.map(([r, n]) => (_r(r) << 16) | _r(n)));
    return function (r, n, o) {
      let i = _r(n, o),
        a = o.charCodeAt(0);
      return (
        ((a === wc && n !== 1 && n !== 2 && n !== 15) || a === kc ?
          t.has((r << 16) | (a << 8))
        : t.has((r << 16) | i)) && this.emit(' ', 13, !0),
        i
      );
    };
  }
  var Sc = Sa(va),
    Ur = Sa(vc);
  var Cc = 92;
  function Ac(e, t) {
    if (typeof t == 'function') {
      let r = null;
      e.children.forEach((n) => {
        r !== null && t.call(this, r), this.node(n), (r = n);
      });
      return;
    }
    e.children.forEach(this.node, this);
  }
  function Ec(e) {
    Le(e, (t, r, n) => {
      this.token(t, e.slice(r, n));
    });
  }
  function Ca(e) {
    let t = new Map();
    for (let r in e.node) {
      let n = e.node[r];
      typeof (n.generate || n) == 'function' && t.set(r, n.generate || n);
    }
    return function (r, n) {
      let o = '',
        i = 0,
        a = {
          node(c) {
            if (t.has(c.type)) t.get(c.type).call(l, c);
            else throw new Error('Unknown node type: ' + c.type);
          },
          tokenBefore: Ur,
          token(c, s) {
            (i = this.tokenBefore(i, c, s)),
              this.emit(s, c, !1),
              c === 9 &&
                s.charCodeAt(0) === Cc &&
                this.emit(
                  `
`,
                  13,
                  !0
                );
          },
          emit(c) {
            o += c;
          },
          result() {
            return o;
          },
        };
      n &&
        (typeof n.decorator == 'function' && (a = n.decorator(a)),
        n.sourceMap && (a = wa(a)),
        n.mode in Xt && (a.tokenBefore = Xt[n.mode]));
      let l = {
        node: (c) => a.node(c),
        children: Ac,
        token: (c, s) => a.token(c, s),
        tokenize: Ec,
      };
      return a.node(r), a.result();
    };
  }
  function Aa(e) {
    return {
      fromPlainObject(t) {
        return (
          e(t, {
            enter(r) {
              r.children &&
                !(r.children instanceof w) &&
                (r.children = new w().fromArray(r.children));
            },
          }),
          t
        );
      },
      toPlainObject(t) {
        return (
          e(t, {
            leave(r) {
              r.children &&
                r.children instanceof w &&
                (r.children = r.children.toArray());
            },
          }),
          t
        );
      },
    };
  }
  var { hasOwnProperty: jr } = Object.prototype,
    bt = function () {};
  function Ea(e) {
    return typeof e == 'function' ? e : bt;
  }
  function Ta(e, t) {
    return function (r, n, o) {
      r.type === t && e.call(this, r, n, o);
    };
  }
  function Tc(e, t) {
    let r = t.structure,
      n = [];
    for (let o in r) {
      if (jr.call(r, o) === !1) continue;
      let i = r[o],
        a = { name: o, type: !1, nullable: !1 };
      Array.isArray(i) || (i = [i]);
      for (let l of i)
        l === null ? (a.nullable = !0)
        : typeof l == 'string' ? (a.type = 'node')
        : Array.isArray(l) && (a.type = 'list');
      a.type && n.push(a);
    }
    return n.length ? { context: t.walkContext, fields: n } : null;
  }
  function Lc(e) {
    let t = {};
    for (let r in e.node)
      if (jr.call(e.node, r)) {
        let n = e.node[r];
        if (!n.structure)
          throw new Error(
            'Missed `structure` field in `' + r + '` node type definition'
          );
        t[r] = Tc(r, n);
      }
    return t;
  }
  function La(e, t) {
    let r = e.fields.slice(),
      n = e.context,
      o = typeof n == 'string';
    return (
      t && r.reverse(),
      function (i, a, l, c) {
        let s;
        o && ((s = a[n]), (a[n] = i));
        for (let u of r) {
          let p = i[u.name];
          if (!u.nullable || p) {
            if (u.type === 'list') {
              if (t ? p.reduceRight(c, !1) : p.reduce(c, !1)) return !0;
            } else if (l(p)) return !0;
          }
        }
        o && (a[n] = s);
      }
    );
  }
  function Pa({
    StyleSheet: e,
    Atrule: t,
    Rule: r,
    Block: n,
    DeclarationList: o,
  }) {
    return {
      Atrule: { StyleSheet: e, Atrule: t, Rule: r, Block: n },
      Rule: { StyleSheet: e, Atrule: t, Rule: r, Block: n },
      Declaration: {
        StyleSheet: e,
        Atrule: t,
        Rule: r,
        Block: n,
        DeclarationList: o,
      },
    };
  }
  function Ia(e) {
    let t = Lc(e),
      r = {},
      n = {},
      o = Symbol('break-walk'),
      i = Symbol('skip-node');
    for (let s in t)
      jr.call(t, s) &&
        t[s] !== null &&
        ((r[s] = La(t[s], !1)), (n[s] = La(t[s], !0)));
    let a = Pa(r),
      l = Pa(n),
      c = function (s, u) {
        function p(C, D, Ae) {
          let B = h.call(N, C, D, Ae);
          return (
            B === o ? !0
            : B === i ? !1
            : !!(
                (y.hasOwnProperty(C.type) && y[C.type](C, N, p, T)) ||
                m.call(N, C, D, Ae) === o
              )
          );
        }
        let h = bt,
          m = bt,
          y = r,
          T = (C, D, Ae, B) => C || p(D, Ae, B),
          N = {
            break: o,
            skip: i,
            root: s,
            stylesheet: null,
            atrule: null,
            atrulePrelude: null,
            rule: null,
            selector: null,
            block: null,
            declaration: null,
            function: null,
          };
        if (typeof u == 'function') h = u;
        else if (
          u &&
          ((h = Ea(u.enter)), (m = Ea(u.leave)), u.reverse && (y = n), u.visit)
        ) {
          if (a.hasOwnProperty(u.visit))
            y = u.reverse ? l[u.visit] : a[u.visit];
          else if (!t.hasOwnProperty(u.visit))
            throw new Error(
              'Bad value `' +
                u.visit +
                '` for `visit` option (should be: ' +
                Object.keys(t).sort().join(', ') +
                ')'
            );
          (h = Ta(h, u.visit)), (m = Ta(m, u.visit));
        }
        if (h === bt && m === bt)
          throw new Error(
            "Neither `enter` nor `leave` walker handler is set or both aren't a function"
          );
        p(s);
      };
    return (
      (c.break = o),
      (c.skip = i),
      (c.find = function (s, u) {
        let p = null;
        return (
          c(s, function (h, m, y) {
            if (u.call(this, h, m, y)) return (p = h), o;
          }),
          p
        );
      }),
      (c.findLast = function (s, u) {
        let p = null;
        return (
          c(s, {
            reverse: !0,
            enter(h, m, y) {
              if (u.call(this, h, m, y)) return (p = h), o;
            },
          }),
          p
        );
      }),
      (c.findAll = function (s, u) {
        let p = [];
        return (
          c(s, function (h, m, y) {
            u.call(this, h, m, y) && p.push(h);
          }),
          p
        );
      }),
      c
    );
  }
  function Pc(e) {
    return e;
  }
  function Ic(e) {
    let { min: t, max: r, comma: n } = e;
    return (
      t === 0 && r === 0 ?
        n ? '#?'
        : '*'
      : t === 0 && r === 1 ? '?'
      : t === 1 && r === 0 ?
        n ? '#'
        : '+'
      : t === 1 && r === 1 ? ''
      : (n ? '#' : '') +
        (t === r ? '{' + t + '}' : '{' + t + ',' + (r !== 0 ? r : '') + '}')
    );
  }
  function Oc(e) {
    switch (e.type) {
      case 'Range':
        return (
          ' [' +
          (e.min === null ? '-\u221E' : e.min) +
          ',' +
          (e.max === null ? '\u221E' : e.max) +
          ']'
        );
      default:
        throw new Error('Unknown node type `' + e.type + '`');
    }
  }
  function Dc(e, t, r, n) {
    let o = e.combinator === ' ' || n ? e.combinator : ' ' + e.combinator + ' ',
      i = e.terms.map((a) => qr(a, t, r, n)).join(o);
    return e.explicit || r ?
        (n || i[0] === ',' ? '[' : '[ ') + i + (n ? ']' : ' ]')
      : i;
  }
  function qr(e, t, r, n) {
    let o;
    switch (e.type) {
      case 'Group':
        o = Dc(e, t, r, n) + (e.disallowEmpty ? '!' : '');
        break;
      case 'Multiplier':
        return qr(e.term, t, r, n) + t(Ic(e), e);
      case 'Type':
        o = '<' + e.name + (e.opts ? t(Oc(e.opts), e.opts) : '') + '>';
        break;
      case 'Property':
        o = "<'" + e.name + "'>";
        break;
      case 'Keyword':
        o = e.name;
        break;
      case 'AtKeyword':
        o = '@' + e.name;
        break;
      case 'Function':
        o = e.name + '(';
        break;
      case 'String':
      case 'Token':
        o = e.value;
        break;
      case 'Comma':
        o = ',';
        break;
      default:
        throw new Error('Unknown node type `' + e.type + '`');
    }
    return t(o, e);
  }
  function Ge(e, t) {
    let r = Pc,
      n = !1,
      o = !1;
    return (
      typeof t == 'function' ?
        (r = t)
      : t &&
        ((n = Boolean(t.forceBraces)),
        (o = Boolean(t.compact)),
        typeof t.decorate == 'function' && (r = t.decorate)),
      qr(e, r, n, o)
    );
  }
  var Oa = { offset: 0, line: 1, column: 1 };
  function Nc(e, t) {
    let r = e.tokens,
      n = e.longestMatch,
      o = (n < r.length && r[n].node) || null,
      i = o !== t ? o : null,
      a = 0,
      l = 0,
      c = 0,
      s = '',
      u,
      p;
    for (let h = 0; h < r.length; h++) {
      let m = r[h].value;
      h === n && ((l = m.length), (a = s.length)),
        i !== null && r[h].node === i && (h <= n ? c++ : (c = 0)),
        (s += m);
    }
    return (
      n === r.length || c > 1 ?
        ((u = Zt(i || t, 'end') || yt(Oa, s)), (p = yt(u)))
      : ((u = Zt(i, 'start') || yt(Zt(t, 'start') || Oa, s.slice(0, a))),
        (p = Zt(i, 'end') || yt(u, s.substr(a, l)))),
      { css: s, mismatchOffset: a, mismatchLength: l, start: u, end: p }
    );
  }
  function Zt(e, t) {
    let r = e && e.loc && e.loc[t];
    return (
      r ?
        'line' in r ?
          yt(r)
        : r
      : null
    );
  }
  function yt({ offset: e, line: t, column: r }, n) {
    let o = { offset: e, line: t, column: r };
    if (n) {
      let i = n.split(/\n|\r\n?|\f/);
      (o.offset += n.length),
        (o.line += i.length - 1),
        (o.column = i.length === 1 ? o.column + n.length : i.pop().length + 1);
    }
    return o;
  }
  var Ke = function (e, t) {
      let r = Re('SyntaxReferenceError', e + (t ? ' `' + t + '`' : ''));
      return (r.reference = t), r;
    },
    Da = function (e, t, r, n) {
      let o = Re('SyntaxMatchError', e),
        {
          css: i,
          mismatchOffset: a,
          mismatchLength: l,
          start: c,
          end: s,
        } = Nc(n, r);
      return (
        (o.rawMessage = e),
        (o.syntax = t ? Ge(t) : '<generic>'),
        (o.css = i),
        (o.mismatchOffset = a),
        (o.mismatchLength = l),
        (o.message =
          e +
          `
  syntax: ` +
          o.syntax +
          `
   value: ` +
          (i || '<empty string>') +
          `
  --------` +
          new Array(o.mismatchOffset + 1).join('-') +
          '^'),
        Object.assign(o, c),
        (o.loc = {
          source: (r && r.loc && r.loc.source) || '<unknown>',
          start: c,
          end: s,
        }),
        o
      );
    };
  var Jt = new Map(),
    Qe = new Map(),
    er = 45,
    Z = Mc,
    me = Rc;
  function tr(e, t) {
    return (
      (t = t || 0),
      e.length - t >= 2 && e.charCodeAt(t) === er && e.charCodeAt(t + 1) === er
    );
  }
  function Na(e, t) {
    if (
      ((t = t || 0),
      e.length - t >= 3 && e.charCodeAt(t) === er && e.charCodeAt(t + 1) !== er)
    ) {
      let r = e.indexOf('-', t + 2);
      if (r !== -1) return e.substring(t, r + 1);
    }
    return '';
  }
  function Mc(e) {
    if (Jt.has(e)) return Jt.get(e);
    let t = e.toLowerCase(),
      r = Jt.get(t);
    if (r === void 0) {
      let n = tr(t, 0),
        o = n ? '' : Na(t, 0);
      r = Object.freeze({
        basename: t.substr(o.length),
        name: t,
        prefix: o,
        vendor: o,
        custom: n,
      });
    }
    return Jt.set(e, r), r;
  }
  function Rc(e) {
    if (Qe.has(e)) return Qe.get(e);
    let t = e,
      r = e[0];
    r === '/' ?
      (r = e[1] === '/' ? '//' : '/')
    : r !== '_' &&
      r !== '*' &&
      r !== '$' &&
      r !== '#' &&
      r !== '+' &&
      r !== '&' &&
      (r = '');
    let n = tr(t, r.length);
    if (!n && ((t = t.toLowerCase()), Qe.has(t))) {
      let l = Qe.get(t);
      return Qe.set(e, l), l;
    }
    let o = n ? '' : Na(t, r.length),
      i = t.substr(0, r.length + o.length),
      a = Object.freeze({
        basename: t.substr(i.length),
        name: t.substr(r.length),
        hack: r,
        vendor: o,
        prefix: i,
        custom: n,
      });
    return Qe.set(e, a), a;
  }
  var rr = ['initial', 'inherit', 'unset', 'revert', 'revert-layer'];
  var kt = 43,
    de = 45,
    Hr = 110,
    $e = !0,
    Fc = !1;
  function Yr(e, t) {
    return e !== null && e.type === 9 && e.value.charCodeAt(0) === t;
  }
  function xt(e, t, r) {
    for (; e !== null && (e.type === 13 || e.type === 25); ) e = r(++t);
    return t;
  }
  function Pe(e, t, r, n) {
    if (!e) return 0;
    let o = e.value.charCodeAt(t);
    if (o === kt || o === de) {
      if (r) return 0;
      t++;
    }
    for (; t < e.value.length; t++) if (!j(e.value.charCodeAt(t))) return 0;
    return n + 1;
  }
  function Wr(e, t, r) {
    let n = !1,
      o = xt(e, t, r);
    if (((e = r(o)), e === null)) return t;
    if (e.type !== 10)
      if (Yr(e, kt) || Yr(e, de)) {
        if (
          ((n = !0),
          (o = xt(r(++o), o, r)),
          (e = r(o)),
          e === null || e.type !== 10)
        )
          return 0;
      } else return t;
    if (!n) {
      let i = e.value.charCodeAt(0);
      if (i !== kt && i !== de) return 0;
    }
    return Pe(e, n ? 0 : 1, n, o);
  }
  function Vr(e, t) {
    let r = 0;
    if (!e) return 0;
    if (e.type === 10) return Pe(e, 0, Fc, r);
    if (e.type === 1 && e.value.charCodeAt(0) === de) {
      if (!xe(e.value, 1, Hr)) return 0;
      switch (e.value.length) {
        case 2:
          return Wr(t(++r), r, t);
        case 3:
          return e.value.charCodeAt(2) !== de ?
              0
            : ((r = xt(t(++r), r, t)), (e = t(r)), Pe(e, 0, $e, r));
        default:
          return e.value.charCodeAt(2) !== de ? 0 : Pe(e, 3, $e, r);
      }
    } else if (e.type === 1 || (Yr(e, kt) && t(r + 1).type === 1)) {
      if ((e.type !== 1 && (e = t(++r)), e === null || !xe(e.value, 0, Hr)))
        return 0;
      switch (e.value.length) {
        case 1:
          return Wr(t(++r), r, t);
        case 2:
          return e.value.charCodeAt(1) !== de ?
              0
            : ((r = xt(t(++r), r, t)), (e = t(r)), Pe(e, 0, $e, r));
        default:
          return e.value.charCodeAt(1) !== de ? 0 : Pe(e, 2, $e, r);
      }
    } else if (e.type === 12) {
      let n = e.value.charCodeAt(0),
        o = n === kt || n === de ? 1 : 0,
        i = o;
      for (; i < e.value.length && j(e.value.charCodeAt(i)); i++);
      return (
        i === o || !xe(e.value, i, Hr) ? 0
        : i + 1 === e.value.length ? Wr(t(++r), r, t)
        : e.value.charCodeAt(i + 1) !== de ? 0
        : i + 2 === e.value.length ?
          ((r = xt(t(++r), r, t)), (e = t(r)), Pe(e, 0, $e, r))
        : Pe(e, i + 2, $e, r)
      );
    }
    return 0;
  }
  var Bc = 43,
    Ma = 45,
    Ra = 63,
    _c = 117;
  function Gr(e, t) {
    return e !== null && e.type === 9 && e.value.charCodeAt(0) === t;
  }
  function Uc(e, t) {
    return e.value.charCodeAt(0) === t;
  }
  function wt(e, t, r) {
    let n = 0;
    for (let o = t; o < e.value.length; o++) {
      let i = e.value.charCodeAt(o);
      if (i === Ma && r && n !== 0) return wt(e, t + n + 1, !1), 6;
      if (!oe(i) || ++n > 6) return 0;
    }
    return n;
  }
  function nr(e, t, r) {
    if (!e) return 0;
    for (; Gr(r(t), Ra); ) {
      if (++e > 6) return 0;
      t++;
    }
    return t;
  }
  function Kr(e, t) {
    let r = 0;
    if (
      e === null ||
      e.type !== 1 ||
      !xe(e.value, 0, _c) ||
      ((e = t(++r)), e === null)
    )
      return 0;
    if (Gr(e, Bc))
      return (
        (e = t(++r)),
        e === null ? 0
        : e.type === 1 ? nr(wt(e, 0, !0), ++r, t)
        : Gr(e, Ra) ? nr(1, ++r, t)
        : 0
      );
    if (e.type === 10) {
      let n = wt(e, 1, !0);
      return n === 0 ? 0 : (
          ((e = t(++r)),
          e === null ? r
          : e.type === 12 || e.type === 10 ?
            !Uc(e, Ma) || !wt(e, 1, !1) ?
              0
            : r + 1
          : nr(n, r, t))
        );
    }
    return e.type === 12 ? nr(wt(e, 1, !0), ++r, t) : 0;
  }
  var jc = ['calc(', '-moz-calc(', '-webkit-calc('],
    Qr = new Map([
      [2, 22],
      [21, 22],
      [19, 20],
      [23, 24],
    ]),
    qc = [
      'cm',
      'mm',
      'q',
      'in',
      'pt',
      'pc',
      'px',
      'em',
      'rem',
      'ex',
      'rex',
      'cap',
      'rcap',
      'ch',
      'rch',
      'ic',
      'ric',
      'lh',
      'rlh',
      'vw',
      'svw',
      'lvw',
      'dvw',
      'vh',
      'svh',
      'lvh',
      'dvh',
      'vi',
      'svi',
      'lvi',
      'dvi',
      'vb',
      'svb',
      'lvb',
      'dvb',
      'vmin',
      'svmin',
      'lvmin',
      'dvmin',
      'vmax',
      'svmax',
      'lvmax',
      'dvmax',
      'cqw',
      'cqh',
      'cqi',
      'cqb',
      'cqmin',
      'cqmax',
    ],
    Hc = ['deg', 'grad', 'rad', 'turn'],
    Wc = ['s', 'ms'],
    Yc = ['hz', 'khz'],
    Vc = ['dpi', 'dpcm', 'dppx', 'x'],
    Gc = ['fr'],
    Kc = ['db'],
    Qc = ['st'];
  function ue(e, t) {
    return t < e.length ? e.charCodeAt(t) : 0;
  }
  function Fa(e, t) {
    return ke(e, 0, e.length, t);
  }
  function Ba(e, t) {
    for (let r = 0; r < t.length; r++) if (Fa(e, t[r])) return !0;
    return !1;
  }
  function _a(e, t) {
    return t !== e.length - 2 ? !1 : ue(e, t) === 92 && j(ue(e, t + 1));
  }
  function or(e, t, r) {
    if (e && e.type === 'Range') {
      let n = Number(r !== void 0 && r !== t.length ? t.substr(0, r) : t);
      if (
        isNaN(n) ||
        (e.min !== null && n < e.min && typeof e.min != 'string') ||
        (e.max !== null && n > e.max && typeof e.max != 'string')
      )
        return !0;
    }
    return !1;
  }
  function $c(e, t) {
    let r = 0,
      n = [],
      o = 0;
    e: do {
      switch (e.type) {
        case 24:
        case 22:
        case 20:
          if (e.type !== r) break e;
          if (((r = n.pop()), n.length === 0)) {
            o++;
            break e;
          }
          break;
        case 2:
        case 21:
        case 19:
        case 23:
          n.push(r), (r = Qr.get(e.type));
          break;
      }
      o++;
    } while ((e = t(o)));
    return o;
  }
  function le(e) {
    return function (t, r, n) {
      return (
        t === null ? 0
        : t.type === 2 && Ba(t.value, jc) ? $c(t, r)
        : e(t, r, n)
      );
    };
  }
  function z(e) {
    return function (t) {
      return t === null || t.type !== e ? 0 : 1;
    };
  }
  function Xc(e) {
    if (e === null || e.type !== 1) return 0;
    let t = e.value.toLowerCase();
    return Ba(t, rr) || Fa(t, 'default') ? 0 : 1;
  }
  function Zc(e) {
    return (
        e === null ||
          e.type !== 1 ||
          ue(e.value, 0) !== 45 ||
          ue(e.value, 1) !== 45
      ) ?
        0
      : 1;
  }
  function Jc(e) {
    if (e === null || e.type !== 4) return 0;
    let t = e.value.length;
    if (t !== 4 && t !== 5 && t !== 7 && t !== 9) return 0;
    for (let r = 1; r < t; r++) if (!oe(ue(e.value, r))) return 0;
    return 1;
  }
  function eu(e) {
    return (
        e === null ||
          e.type !== 4 ||
          !je(ue(e.value, 1), ue(e.value, 2), ue(e.value, 3))
      ) ?
        0
      : 1;
  }
  function tu(e, t) {
    if (!e) return 0;
    let r = 0,
      n = [],
      o = 0;
    e: do {
      switch (e.type) {
        case 6:
        case 8:
          break e;
        case 24:
        case 22:
        case 20:
          if (e.type !== r) break e;
          r = n.pop();
          break;
        case 17:
          if (r === 0) break e;
          break;
        case 9:
          if (r === 0 && e.value === '!') break e;
          break;
        case 2:
        case 21:
        case 19:
        case 23:
          n.push(r), (r = Qr.get(e.type));
          break;
      }
      o++;
    } while ((e = t(o)));
    return o;
  }
  function ru(e, t) {
    if (!e) return 0;
    let r = 0,
      n = [],
      o = 0;
    e: do {
      switch (e.type) {
        case 6:
        case 8:
          break e;
        case 24:
        case 22:
        case 20:
          if (e.type !== r) break e;
          r = n.pop();
          break;
        case 2:
        case 21:
        case 19:
        case 23:
          n.push(r), (r = Qr.get(e.type));
          break;
      }
      o++;
    } while ((e = t(o)));
    return o;
  }
  function Se(e) {
    return (
      e && (e = new Set(e)),
      function (t, r, n) {
        if (t === null || t.type !== 12) return 0;
        let o = Me(t.value, 0);
        if (e !== null) {
          let i = t.value.indexOf('\\', o),
            a =
              i === -1 || !_a(t.value, i) ?
                t.value.substr(o)
              : t.value.substring(o, i);
          if (e.has(a.toLowerCase()) === !1) return 0;
        }
        return or(n, t.value, o) ? 0 : 1;
      }
    );
  }
  function nu(e, t, r) {
    return e === null || e.type !== 11 || or(r, e.value, e.value.length - 1) ?
        0
      : 1;
  }
  function za(e) {
    return (
      typeof e != 'function' &&
        (e = function () {
          return 0;
        }),
      function (t, r, n) {
        return t !== null && t.type === 10 && Number(t.value) === 0 ?
            1
          : e(t, r, n);
      }
    );
  }
  function ou(e, t, r) {
    if (e === null) return 0;
    let n = Me(e.value, 0);
    return (!(n === e.value.length) && !_a(e.value, n)) || or(r, e.value, n) ?
        0
      : 1;
  }
  function iu(e, t, r) {
    if (e === null || e.type !== 10) return 0;
    let n = ue(e.value, 0) === 43 || ue(e.value, 0) === 45 ? 1 : 0;
    for (; n < e.value.length; n++) if (!j(ue(e.value, n))) return 0;
    return or(r, e.value, n) ? 0 : 1;
  }
  var $r = {
    'ident-token': z(1),
    'function-token': z(2),
    'at-keyword-token': z(3),
    'hash-token': z(4),
    'string-token': z(5),
    'bad-string-token': z(6),
    'url-token': z(7),
    'bad-url-token': z(8),
    'delim-token': z(9),
    'number-token': z(10),
    'percentage-token': z(11),
    'dimension-token': z(12),
    'whitespace-token': z(13),
    'CDO-token': z(14),
    'CDC-token': z(15),
    'colon-token': z(16),
    'semicolon-token': z(17),
    'comma-token': z(18),
    '[-token': z(19),
    ']-token': z(20),
    '(-token': z(21),
    ')-token': z(22),
    '{-token': z(23),
    '}-token': z(24),
    string: z(5),
    ident: z(1),
    'custom-ident': Xc,
    'custom-property-name': Zc,
    'hex-color': Jc,
    'id-selector': eu,
    'an-plus-b': Vr,
    urange: Kr,
    'declaration-value': tu,
    'any-value': ru,
    dimension: le(Se(null)),
    angle: le(Se(Hc)),
    decibel: le(Se(Kc)),
    frequency: le(Se(Yc)),
    flex: le(Se(Gc)),
    length: le(za(Se(qc))),
    resolution: le(Se(Vc)),
    semitones: le(Se(Qc)),
    time: le(Se(Wc)),
    percentage: le(nu),
    zero: za(),
    number: le(ou),
    integer: le(iu),
  };
  function Xr(e, t, r) {
    return Object.assign(Re('SyntaxError', e), {
      input: t,
      offset: r,
      rawMessage: e,
      message:
        e +
        `
  ` +
        t +
        `
--` +
        new Array((r || t.length) + 1).join('-') +
        '^',
    });
  }
  var au = 9,
    su = 10,
    lu = 12,
    cu = 13,
    uu = 32,
    ir = class {
      constructor(t) {
        (this.str = t), (this.pos = 0);
      }
      charCodeAt(t) {
        return t < this.str.length ? this.str.charCodeAt(t) : 0;
      }
      charCode() {
        return this.charCodeAt(this.pos);
      }
      nextCharCode() {
        return this.charCodeAt(this.pos + 1);
      }
      nextNonWsCode(t) {
        return this.charCodeAt(this.findWsEnd(t));
      }
      findWsEnd(t) {
        for (; t < this.str.length; t++) {
          let r = this.str.charCodeAt(t);
          if (r !== cu && r !== su && r !== lu && r !== uu && r !== au) break;
        }
        return t;
      }
      substringToPos(t) {
        return this.str.substring(this.pos, (this.pos = t));
      }
      eat(t) {
        this.charCode() !== t &&
          this.error('Expect `' + String.fromCharCode(t) + '`'),
          this.pos++;
      }
      peek() {
        return this.pos < this.str.length ? this.str.charAt(this.pos++) : '';
      }
      error(t) {
        throw new Xr(t, this.str, this.pos);
      }
    };
  var pu = 9,
    hu = 10,
    fu = 12,
    mu = 13,
    du = 32,
    Ga = 33,
    en = 35,
    Ua = 38,
    ar = 39,
    Ka = 40,
    gu = 41,
    Qa = 42,
    tn = 43,
    rn = 44,
    ja = 45,
    nn = 60,
    $a = 62,
    Jr = 63,
    bu = 64,
    ur = 91,
    on = 93,
    sr = 123,
    qa = 124,
    Ha = 125,
    Wa = 8734,
    vt = new Uint8Array(128).map((e, t) =>
      /[a-zA-Z0-9\-]/.test(String.fromCharCode(t)) ? 1 : 0
    ),
    Ya = { ' ': 1, '&&': 2, '||': 3, '|': 4 };
  function lr(e) {
    return e.substringToPos(e.findWsEnd(e.pos));
  }
  function Xe(e) {
    let t = e.pos;
    for (; t < e.str.length; t++) {
      let r = e.str.charCodeAt(t);
      if (r >= 128 || vt[r] === 0) break;
    }
    return e.pos === t && e.error('Expect a keyword'), e.substringToPos(t);
  }
  function cr(e) {
    let t = e.pos;
    for (; t < e.str.length; t++) {
      let r = e.str.charCodeAt(t);
      if (r < 48 || r > 57) break;
    }
    return e.pos === t && e.error('Expect a number'), e.substringToPos(t);
  }
  function yu(e) {
    let t = e.str.indexOf("'", e.pos + 1);
    return (
      t === -1 && ((e.pos = e.str.length), e.error('Expect an apostrophe')),
      e.substringToPos(t + 1)
    );
  }
  function Va(e) {
    let t = null,
      r = null;
    return (
      e.eat(sr),
      (t = cr(e)),
      e.charCode() === rn ?
        (e.pos++, e.charCode() !== Ha && (r = cr(e)))
      : (r = t),
      e.eat(Ha),
      { min: Number(t), max: r ? Number(r) : 0 }
    );
  }
  function xu(e) {
    let t = null,
      r = !1;
    switch (e.charCode()) {
      case Qa:
        e.pos++, (t = { min: 0, max: 0 });
        break;
      case tn:
        e.pos++, (t = { min: 1, max: 0 });
        break;
      case Jr:
        e.pos++, (t = { min: 0, max: 1 });
        break;
      case en:
        e.pos++,
          (r = !0),
          e.charCode() === sr ? (t = Va(e))
          : e.charCode() === Jr ? (e.pos++, (t = { min: 0, max: 0 }))
          : (t = { min: 1, max: 0 });
        break;
      case sr:
        t = Va(e);
        break;
      default:
        return null;
    }
    return { type: 'Multiplier', comma: r, min: t.min, max: t.max, term: null };
  }
  function Ze(e, t) {
    let r = xu(e);
    return r !== null ?
        ((r.term = t),
        e.charCode() === en && e.charCodeAt(e.pos - 1) === tn ? Ze(e, r) : r)
      : t;
  }
  function Zr(e) {
    let t = e.peek();
    return t === '' ? null : { type: 'Token', value: t };
  }
  function ku(e) {
    let t;
    return (
      e.eat(nn),
      e.eat(ar),
      (t = Xe(e)),
      e.eat(ar),
      e.eat($a),
      Ze(e, { type: 'Property', name: t })
    );
  }
  function wu(e) {
    let t = null,
      r = null,
      n = 1;
    return (
      e.eat(ur),
      e.charCode() === ja && (e.peek(), (n = -1)),
      n == -1 && e.charCode() === Wa ?
        e.peek()
      : ((t = n * Number(cr(e))), vt[e.charCode()] !== 0 && (t += Xe(e))),
      lr(e),
      e.eat(rn),
      lr(e),
      e.charCode() === Wa ?
        e.peek()
      : ((n = 1),
        e.charCode() === ja && (e.peek(), (n = -1)),
        (r = n * Number(cr(e))),
        vt[e.charCode()] !== 0 && (r += Xe(e))),
      e.eat(on),
      { type: 'Range', min: t, max: r }
    );
  }
  function vu(e) {
    let t,
      r = null;
    return (
      e.eat(nn),
      (t = Xe(e)),
      e.charCode() === Ka &&
        e.nextCharCode() === gu &&
        ((e.pos += 2), (t += '()')),
      e.charCodeAt(e.findWsEnd(e.pos)) === ur && (lr(e), (r = wu(e))),
      e.eat($a),
      Ze(e, { type: 'Type', name: t, opts: r })
    );
  }
  function Su(e) {
    let t = Xe(e);
    return e.charCode() === Ka ?
        (e.pos++, { type: 'Function', name: t })
      : Ze(e, { type: 'Keyword', name: t });
  }
  function Cu(e, t) {
    function r(o, i) {
      return {
        type: 'Group',
        terms: o,
        combinator: i,
        disallowEmpty: !1,
        explicit: !1,
      };
    }
    let n;
    for (t = Object.keys(t).sort((o, i) => Ya[o] - Ya[i]); t.length > 0; ) {
      n = t.shift();
      let o = 0,
        i = 0;
      for (; o < e.length; o++) {
        let a = e[o];
        a.type === 'Combinator' &&
          (a.value === n ?
            (i === -1 && (i = o - 1), e.splice(o, 1), o--)
          : (i !== -1 &&
              o - i > 1 &&
              (e.splice(i, o - i, r(e.slice(i, o), n)), (o = i + 1)),
            (i = -1)));
      }
      i !== -1 && t.length && e.splice(i, o - i, r(e.slice(i, o), n));
    }
    return n;
  }
  function Xa(e) {
    let t = [],
      r = {},
      n,
      o = null,
      i = e.pos;
    for (; (n = Eu(e)); )
      n.type !== 'Spaces' &&
        (n.type === 'Combinator' ?
          ((o === null || o.type === 'Combinator') &&
            ((e.pos = i), e.error('Unexpected combinator')),
          (r[n.value] = !0))
        : o !== null &&
          o.type !== 'Combinator' &&
          ((r[' '] = !0), t.push({ type: 'Combinator', value: ' ' })),
        t.push(n),
        (o = n),
        (i = e.pos));
    return (
      o !== null &&
        o.type === 'Combinator' &&
        ((e.pos -= i), e.error('Unexpected combinator')),
      {
        type: 'Group',
        terms: t,
        combinator: Cu(t, r) || ' ',
        disallowEmpty: !1,
        explicit: !1,
      }
    );
  }
  function Au(e) {
    let t;
    return (
      e.eat(ur),
      (t = Xa(e)),
      e.eat(on),
      (t.explicit = !0),
      e.charCode() === Ga && (e.pos++, (t.disallowEmpty = !0)),
      t
    );
  }
  function Eu(e) {
    let t = e.charCode();
    if (t < 128 && vt[t] === 1) return Su(e);
    switch (t) {
      case on:
        break;
      case ur:
        return Ze(e, Au(e));
      case nn:
        return e.nextCharCode() === ar ? ku(e) : vu(e);
      case qa:
        return {
          type: 'Combinator',
          value: e.substringToPos(e.pos + (e.nextCharCode() === qa ? 2 : 1)),
        };
      case Ua:
        return e.pos++, e.eat(Ua), { type: 'Combinator', value: '&&' };
      case rn:
        return e.pos++, { type: 'Comma' };
      case ar:
        return Ze(e, { type: 'String', value: yu(e) });
      case du:
      case pu:
      case hu:
      case mu:
      case fu:
        return { type: 'Spaces', value: lr(e) };
      case bu:
        return (
          (t = e.nextCharCode()),
          t < 128 && vt[t] === 1 ?
            (e.pos++, { type: 'AtKeyword', name: Xe(e) })
          : Zr(e)
        );
      case Qa:
      case tn:
      case Jr:
      case en:
      case Ga:
        break;
      case sr:
        if (((t = e.nextCharCode()), t < 48 || t > 57)) return Zr(e);
        break;
      default:
        return Zr(e);
    }
  }
  function St(e) {
    let t = new ir(e),
      r = Xa(t);
    return (
      t.pos !== e.length && t.error('Unexpected input'),
      r.terms.length === 1 && r.terms[0].type === 'Group' ? r.terms[0] : r
    );
  }
  var Ct = function () {};
  function Za(e) {
    return typeof e == 'function' ? e : Ct;
  }
  function an(e, t, r) {
    function n(a) {
      switch ((o.call(r, a), a.type)) {
        case 'Group':
          a.terms.forEach(n);
          break;
        case 'Multiplier':
          n(a.term);
          break;
        case 'Type':
        case 'Property':
        case 'Keyword':
        case 'AtKeyword':
        case 'Function':
        case 'String':
        case 'Token':
        case 'Comma':
          break;
        default:
          throw new Error('Unknown type: ' + a.type);
      }
      i.call(r, a);
    }
    let o = Ct,
      i = Ct;
    if (
      (typeof t == 'function' ?
        (o = t)
      : t && ((o = Za(t.enter)), (i = Za(t.leave))),
      o === Ct && i === Ct)
    )
      throw new Error(
        "Neither `enter` nor `leave` walker handler is set or both aren't a function"
      );
    n(e, r);
  }
  var Lu = {
    decorator(e) {
      let t = [],
        r = null;
      return {
        ...e,
        node(n) {
          let o = r;
          (r = n), e.node.call(this, n), (r = o);
        },
        emit(n, o, i) {
          t.push({ type: o, value: n, node: i ? null : r });
        },
        result() {
          return t;
        },
      };
    },
  };
  function Pu(e) {
    let t = [];
    return (
      Le(e, (r, n, o) => t.push({ type: r, value: e.slice(n, o), node: null })),
      t
    );
  }
  function Ja(e, t) {
    return typeof e == 'string' ? Pu(e) : t.generate(e, Lu);
  }
  var E = { type: 'Match' },
    O = { type: 'Mismatch' },
    pr = { type: 'DisallowEmpty' },
    Iu = 40,
    Ou = 41;
  function ee(e, t, r) {
    return (t === E && r === O) || (e === E && t === E && r === E) ?
        e
      : (e.type === 'If' &&
          e.else === O &&
          t === E &&
          ((t = e.then), (e = e.match)),
        { type: 'If', match: e, then: t, else: r });
  }
  function ts(e) {
    return (
      e.length > 2 &&
      e.charCodeAt(e.length - 2) === Iu &&
      e.charCodeAt(e.length - 1) === Ou
    );
  }
  function es(e) {
    return (
      e.type === 'Keyword' ||
      e.type === 'AtKeyword' ||
      e.type === 'Function' ||
      (e.type === 'Type' && ts(e.name))
    );
  }
  function sn(e, t, r) {
    switch (e) {
      case ' ': {
        let n = E;
        for (let o = t.length - 1; o >= 0; o--) {
          let i = t[o];
          n = ee(i, n, O);
        }
        return n;
      }
      case '|': {
        let n = O,
          o = null;
        for (let i = t.length - 1; i >= 0; i--) {
          let a = t[i];
          if (
            es(a) &&
            (o === null &&
              i > 0 &&
              es(t[i - 1]) &&
              ((o = Object.create(null)),
              (n = ee({ type: 'Enum', map: o }, E, n))),
            o !== null)
          ) {
            let l = (ts(a.name) ? a.name.slice(0, -1) : a.name).toLowerCase();
            if (!(l in o)) {
              o[l] = a;
              continue;
            }
          }
          (o = null), (n = ee(a, E, n));
        }
        return n;
      }
      case '&&': {
        if (t.length > 5) return { type: 'MatchOnce', terms: t, all: !0 };
        let n = O;
        for (let o = t.length - 1; o >= 0; o--) {
          let i = t[o],
            a;
          t.length > 1 ?
            (a = sn(
              e,
              t.filter(function (l) {
                return l !== i;
              }),
              !1
            ))
          : (a = E),
            (n = ee(i, a, n));
        }
        return n;
      }
      case '||': {
        if (t.length > 5) return { type: 'MatchOnce', terms: t, all: !1 };
        let n = r ? E : O;
        for (let o = t.length - 1; o >= 0; o--) {
          let i = t[o],
            a;
          t.length > 1 ?
            (a = sn(
              e,
              t.filter(function (l) {
                return l !== i;
              }),
              !0
            ))
          : (a = E),
            (n = ee(i, a, n));
        }
        return n;
      }
    }
  }
  function Du(e) {
    let t = E,
      r = ln(e.term);
    if (e.max === 0)
      (r = ee(r, pr, O)),
        (t = ee(r, null, O)),
        (t.then = ee(E, E, t)),
        e.comma && (t.then.else = ee({ type: 'Comma', syntax: e }, t, O));
    else
      for (let n = e.min || 1; n <= e.max; n++)
        e.comma && t !== E && (t = ee({ type: 'Comma', syntax: e }, t, O)),
          (t = ee(r, ee(E, E, t), O));
    if (e.min === 0) t = ee(E, E, t);
    else
      for (let n = 0; n < e.min - 1; n++)
        e.comma && t !== E && (t = ee({ type: 'Comma', syntax: e }, t, O)),
          (t = ee(r, t, O));
    return t;
  }
  function ln(e) {
    if (typeof e == 'function') return { type: 'Generic', fn: e };
    switch (e.type) {
      case 'Group': {
        let t = sn(e.combinator, e.terms.map(ln), !1);
        return e.disallowEmpty && (t = ee(t, pr, O)), t;
      }
      case 'Multiplier':
        return Du(e);
      case 'Type':
      case 'Property':
        return { type: e.type, name: e.name, syntax: e };
      case 'Keyword':
        return { type: e.type, name: e.name.toLowerCase(), syntax: e };
      case 'AtKeyword':
        return { type: e.type, name: '@' + e.name.toLowerCase(), syntax: e };
      case 'Function':
        return { type: e.type, name: e.name.toLowerCase() + '(', syntax: e };
      case 'String':
        return e.value.length === 3 ?
            { type: 'Token', value: e.value.charAt(1), syntax: e }
          : {
              type: e.type,
              value: e.value.substr(1, e.value.length - 2).replace(/\\'/g, "'"),
              syntax: e,
            };
      case 'Token':
        return { type: e.type, value: e.value, syntax: e };
      case 'Comma':
        return { type: e.type, syntax: e };
      default:
        throw new Error('Unknown node type:', e.type);
    }
  }
  function hr(e, t) {
    return (
      typeof e == 'string' && (e = St(e)),
      { type: 'MatchGraph', match: ln(e), syntax: t || null, source: e }
    );
  }
  var { hasOwnProperty: rs } = Object.prototype,
    Nu = 0,
    Mu = 1,
    un = 2,
    ss = 3,
    ns = 'Match',
    Ru = 'Mismatch',
    zu =
      'Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)',
    os = 15e3,
    Fu = 0;
  function Bu(e) {
    let t = null,
      r = null,
      n = e;
    for (; n !== null; ) (r = n.prev), (n.prev = t), (t = n), (n = r);
    return t;
  }
  function cn(e, t) {
    if (e.length !== t.length) return !1;
    for (let r = 0; r < e.length; r++) {
      let n = t.charCodeAt(r),
        o = e.charCodeAt(r);
      if ((o >= 65 && o <= 90 && (o = o | 32), o !== n)) return !1;
    }
    return !0;
  }
  function _u(e) {
    return e.type !== 9 ? !1 : e.value !== '?';
  }
  function is(e) {
    return e === null ? !0 : (
        e.type === 18 ||
          e.type === 2 ||
          e.type === 21 ||
          e.type === 19 ||
          e.type === 23 ||
          _u(e)
      );
  }
  function as(e) {
    return e === null ? !0 : (
        e.type === 22 ||
          e.type === 20 ||
          e.type === 24 ||
          (e.type === 9 && e.value === '/')
      );
  }
  function Uu(e, t, r) {
    function n() {
      do D++, (C = D < e.length ? e[D] : null);
      while (C !== null && (C.type === 13 || C.type === 25));
    }
    function o(ce) {
      let ye = D + ce;
      return ye < e.length ? e[ye] : null;
    }
    function i(ce, ye) {
      return {
        nextState: ce,
        matchStack: B,
        syntaxStack: p,
        thenStack: h,
        tokenIndex: D,
        prev: ye,
      };
    }
    function a(ce) {
      h = { nextState: ce, matchStack: B, syntaxStack: p, prev: h };
    }
    function l(ce) {
      m = i(ce, m);
    }
    function c() {
      (B = { type: Mu, syntax: t.syntax, token: C, prev: B }),
        n(),
        (y = null),
        D > Ae && (Ae = D);
    }
    function s() {
      (p = {
        syntax: t.syntax,
        opts: t.syntax.opts || (p !== null && p.opts) || null,
        prev: p,
      }),
        (B = { type: un, syntax: t.syntax, token: B.token, prev: B });
    }
    function u() {
      B.type === un ?
        (B = B.prev)
      : (B = { type: ss, syntax: p.syntax, token: B.token, prev: B }),
        (p = p.prev);
    }
    let p = null,
      h = null,
      m = null,
      y = null,
      T = 0,
      N = null,
      C = null,
      D = -1,
      Ae = 0,
      B = { type: Nu, syntax: null, token: null, prev: null };
    for (n(); N === null && ++T < os; )
      switch (t.type) {
        case 'Match':
          if (h === null) {
            if (
              C !== null &&
              (D !== e.length - 1 || (C.value !== '\\0' && C.value !== '\\9'))
            ) {
              t = O;
              break;
            }
            N = ns;
            break;
          }
          if (((t = h.nextState), t === pr))
            if (h.matchStack === B) {
              t = O;
              break;
            } else t = E;
          for (; h.syntaxStack !== p; ) u();
          h = h.prev;
          break;
        case 'Mismatch':
          if (y !== null && y !== !1)
            (m === null || D > m.tokenIndex) && ((m = y), (y = !1));
          else if (m === null) {
            N = Ru;
            break;
          }
          (t = m.nextState),
            (h = m.thenStack),
            (p = m.syntaxStack),
            (B = m.matchStack),
            (D = m.tokenIndex),
            (C = D < e.length ? e[D] : null),
            (m = m.prev);
          break;
        case 'MatchGraph':
          t = t.match;
          break;
        case 'If':
          t.else !== O && l(t.else), t.then !== E && a(t.then), (t = t.match);
          break;
        case 'MatchOnce':
          t = { type: 'MatchOnceBuffer', syntax: t, index: 0, mask: 0 };
          break;
        case 'MatchOnceBuffer': {
          let J = t.syntax.terms;
          if (t.index === J.length) {
            if (t.mask === 0 || t.syntax.all) {
              t = O;
              break;
            }
            t = E;
            break;
          }
          if (t.mask === (1 << J.length) - 1) {
            t = E;
            break;
          }
          for (; t.index < J.length; t.index++) {
            let te = 1 << t.index;
            if ((t.mask & te) === 0) {
              l(t),
                a({
                  type: 'AddMatchOnce',
                  syntax: t.syntax,
                  mask: t.mask | te,
                }),
                (t = J[t.index++]);
              break;
            }
          }
          break;
        }
        case 'AddMatchOnce':
          t = {
            type: 'MatchOnceBuffer',
            syntax: t.syntax,
            index: 0,
            mask: t.mask,
          };
          break;
        case 'Enum':
          if (C !== null) {
            let J = C.value.toLowerCase();
            if (
              (J.indexOf('\\') !== -1 && (J = J.replace(/\\[09].*$/, '')),
              rs.call(t.map, J))
            ) {
              t = t.map[J];
              break;
            }
          }
          t = O;
          break;
        case 'Generic': {
          let J = p !== null ? p.opts : null,
            te = D + Math.floor(t.fn(C, o, J));
          if (!isNaN(te) && te > D) {
            for (; D < te; ) c();
            t = E;
          } else t = O;
          break;
        }
        case 'Type':
        case 'Property': {
          let J = t.type === 'Type' ? 'types' : 'properties',
            te = rs.call(r, J) ? r[J][t.name] : null;
          if (!te || !te.match)
            throw new Error(
              'Bad syntax reference: ' +
                (t.type === 'Type' ? '<' + t.name + '>' : "<'" + t.name + "'>")
            );
          if (
            y !== !1 &&
            C !== null &&
            t.type === 'Type' &&
            ((t.name === 'custom-ident' && C.type === 1) ||
              (t.name === 'length' && C.value === '0'))
          ) {
            y === null && (y = i(t, m)), (t = O);
            break;
          }
          s(), (t = te.match);
          break;
        }
        case 'Keyword': {
          let J = t.name;
          if (C !== null) {
            let te = C.value;
            if (
              (te.indexOf('\\') !== -1 && (te = te.replace(/\\[09].*$/, '')),
              cn(te, J))
            ) {
              c(), (t = E);
              break;
            }
          }
          t = O;
          break;
        }
        case 'AtKeyword':
        case 'Function':
          if (C !== null && cn(C.value, t.name)) {
            c(), (t = E);
            break;
          }
          t = O;
          break;
        case 'Token':
          if (C !== null && C.value === t.value) {
            c(), (t = E);
            break;
          }
          t = O;
          break;
        case 'Comma':
          C !== null && C.type === 18 ?
            is(B.token) ? (t = O)
            : (c(), (t = as(C) ? O : E))
          : (t = is(B.token) || as(C) ? E : O);
          break;
        case 'String':
          let ce = '',
            ye = D;
          for (; ye < e.length && ce.length < t.value.length; ye++)
            ce += e[ye].value;
          if (cn(ce, t.value)) {
            for (; D < ye; ) c();
            t = E;
          } else t = O;
          break;
        default:
          throw new Error('Unknown node type: ' + t.type);
      }
    switch (((Fu += T), N)) {
      case null:
        console.warn('[csstree-match] BREAK after ' + os + ' iterations'),
          (N = zu),
          (B = null);
        break;
      case ns:
        for (; p !== null; ) u();
        break;
      default:
        B = null;
    }
    return { tokens: e, reason: N, iterations: T, match: B, longestMatch: Ae };
  }
  function pn(e, t, r) {
    let n = Uu(e, t, r || {});
    if (n.match === null) return n;
    let o = n.match,
      i = (n.match = { syntax: t.syntax || null, match: [] }),
      a = [i];
    for (o = Bu(o).prev; o !== null; ) {
      switch (o.type) {
        case un:
          i.match.push((i = { syntax: o.syntax, match: [] })), a.push(i);
          break;
        case ss:
          a.pop(), (i = a[a.length - 1]);
          break;
        default:
          i.match.push({
            syntax: o.syntax || null,
            token: o.token.value,
            node: o.token.node,
          });
      }
      o = o.prev;
    }
    return n;
  }
  var fn = {};
  b(fn, {
    getTrace: () => ls,
    isKeyword: () => Hu,
    isProperty: () => qu,
    isType: () => ju,
  });
  function ls(e) {
    function t(o) {
      return o === null ? !1 : (
          o.type === 'Type' || o.type === 'Property' || o.type === 'Keyword'
        );
    }
    function r(o) {
      if (Array.isArray(o.match)) {
        for (let i = 0; i < o.match.length; i++)
          if (r(o.match[i])) return t(o.syntax) && n.unshift(o.syntax), !0;
      } else if (o.node === e) return (n = t(o.syntax) ? [o.syntax] : []), !0;
      return !1;
    }
    let n = null;
    return this.matched !== null && r(this.matched), n;
  }
  function ju(e, t) {
    return hn(this, e, (r) => r.type === 'Type' && r.name === t);
  }
  function qu(e, t) {
    return hn(this, e, (r) => r.type === 'Property' && r.name === t);
  }
  function Hu(e) {
    return hn(this, e, (t) => t.type === 'Keyword');
  }
  function hn(e, t, r) {
    let n = ls.call(e, t);
    return n === null ? !1 : n.some(r);
  }
  function cs(e) {
    return 'node' in e ? e.node : cs(e.match[0]);
  }
  function us(e) {
    return 'node' in e ? e.node : us(e.match[e.match.length - 1]);
  }
  function mn(e, t, r, n, o) {
    function i(l) {
      if (l.syntax !== null && l.syntax.type === n && l.syntax.name === o) {
        let c = cs(l),
          s = us(l);
        e.syntax.walk(t, function (u, p, h) {
          if (u === c) {
            let m = new w();
            do {
              if ((m.appendData(p.data), p.data === s)) break;
              p = p.next;
            } while (p !== null);
            a.push({ parent: h, nodes: m });
          }
        });
      }
      Array.isArray(l.match) && l.match.forEach(i);
    }
    let a = [];
    return r.matched !== null && i(r.matched), a;
  }
  var { hasOwnProperty: At } = Object.prototype;
  function dn(e) {
    return typeof e == 'number' && isFinite(e) && Math.floor(e) === e && e >= 0;
  }
  function ps(e) {
    return Boolean(e) && dn(e.offset) && dn(e.line) && dn(e.column);
  }
  function Wu(e, t) {
    return function (n, o) {
      if (!n || n.constructor !== Object)
        return o(n, 'Type of node should be an Object');
      for (let i in n) {
        let a = !0;
        if (At.call(n, i) !== !1) {
          if (i === 'type')
            n.type !== e &&
              o(n, 'Wrong node type `' + n.type + '`, expected `' + e + '`');
          else if (i === 'loc') {
            if (n.loc === null) continue;
            if (n.loc && n.loc.constructor === Object)
              if (typeof n.loc.source != 'string') i += '.source';
              else if (!ps(n.loc.start)) i += '.start';
              else if (!ps(n.loc.end)) i += '.end';
              else continue;
            a = !1;
          } else if (t.hasOwnProperty(i)) {
            a = !1;
            for (let l = 0; !a && l < t[i].length; l++) {
              let c = t[i][l];
              switch (c) {
                case String:
                  a = typeof n[i] == 'string';
                  break;
                case Boolean:
                  a = typeof n[i] == 'boolean';
                  break;
                case null:
                  a = n[i] === null;
                  break;
                default:
                  typeof c == 'string' ?
                    (a = n[i] && n[i].type === c)
                  : Array.isArray(c) && (a = n[i] instanceof w);
              }
            }
          } else o(n, 'Unknown field `' + i + '` for ' + e + ' node type');
          a || o(n, 'Bad value for `' + e + '.' + i + '`');
        }
      }
      for (let i in t)
        At.call(t, i) &&
          At.call(n, i) === !1 &&
          o(n, 'Field `' + e + '.' + i + '` is missed');
    };
  }
  function Yu(e, t) {
    let r = t.structure,
      n = { type: String, loc: !0 },
      o = { type: '"' + e + '"' };
    for (let i in r) {
      if (At.call(r, i) === !1) continue;
      let a = [],
        l = (n[i] = Array.isArray(r[i]) ? r[i].slice() : [r[i]]);
      for (let c = 0; c < l.length; c++) {
        let s = l[c];
        if (s === String || s === Boolean) a.push(s.name);
        else if (s === null) a.push('null');
        else if (typeof s == 'string') a.push('<' + s + '>');
        else if (Array.isArray(s)) a.push('List');
        else
          throw new Error(
            'Wrong value `' +
              s +
              '` in `' +
              e +
              '.' +
              i +
              '` structure definition'
          );
      }
      o[i] = a.join(' | ');
    }
    return { docs: o, check: Wu(e, n) };
  }
  function hs(e) {
    let t = {};
    if (e.node) {
      for (let r in e.node)
        if (At.call(e.node, r)) {
          let n = e.node[r];
          if (n.structure) t[r] = Yu(r, n);
          else
            throw new Error(
              'Missed `structure` field in `' + r + '` node type definition'
            );
        }
    }
    return t;
  }
  var Vu = hr(rr.join(' | '));
  function gn(e, t, r) {
    let n = {};
    for (let o in e)
      e[o].syntax && (n[o] = r ? e[o].syntax : Ge(e[o].syntax, { compact: t }));
    return n;
  }
  function Gu(e, t, r) {
    let n = {};
    for (let [o, i] of Object.entries(e))
      n[o] = {
        prelude:
          i.prelude &&
          (r ? i.prelude.syntax : Ge(i.prelude.syntax, { compact: t })),
        descriptors: i.descriptors && gn(i.descriptors, t, r),
      };
    return n;
  }
  function Ku(e) {
    for (let t = 0; t < e.length; t++)
      if (e[t].value.toLowerCase() === 'var(') return !0;
    return !1;
  }
  function ge(e, t, r) {
    return { matched: e, iterations: r, error: t, ...fn };
  }
  function Je(e, t, r, n) {
    let o = Ja(r, e.syntax),
      i;
    return Ku(o) ?
        ge(null, new Error('Matching for a tree with var() is not supported'))
      : (n && (i = pn(o, e.cssWideKeywordsSyntax, e)),
        (!n || !i.match) && ((i = pn(o, t.match, e)), !i.match) ?
          ge(null, new Da(i.reason, t.syntax, r, i), i.iterations)
        : ge(i.match, null, i.iterations));
  }
  var et = class {
    constructor(t, r, n) {
      if (
        ((this.cssWideKeywordsSyntax = Vu),
        (this.syntax = r),
        (this.generic = !1),
        (this.atrules = Object.create(null)),
        (this.properties = Object.create(null)),
        (this.types = Object.create(null)),
        (this.structure = n || hs(t)),
        t)
      ) {
        if (t.types) for (let o in t.types) this.addType_(o, t.types[o]);
        if (t.generic) {
          this.generic = !0;
          for (let o in $r) this.addType_(o, $r[o]);
        }
        if (t.atrules)
          for (let o in t.atrules) this.addAtrule_(o, t.atrules[o]);
        if (t.properties)
          for (let o in t.properties) this.addProperty_(o, t.properties[o]);
      }
    }
    checkStructure(t) {
      function r(i, a) {
        o.push({ node: i, message: a });
      }
      let n = this.structure,
        o = [];
      return (
        this.syntax.walk(t, function (i) {
          n.hasOwnProperty(i.type) ?
            n[i.type].check(i, r)
          : r(i, 'Unknown node type `' + i.type + '`');
        }),
        o.length ? o : !1
      );
    }
    createDescriptor(t, r, n, o = null) {
      let i = { type: r, name: n },
        a = {
          type: r,
          name: n,
          parent: o,
          serializable:
            typeof t == 'string' || (t && typeof t.type == 'string'),
          syntax: null,
          match: null,
        };
      return (
        typeof t == 'function' ?
          (a.match = hr(t, i))
        : (typeof t == 'string' ?
            Object.defineProperty(a, 'syntax', {
              get() {
                return (
                  Object.defineProperty(a, 'syntax', { value: St(t) }), a.syntax
                );
              },
            })
          : (a.syntax = t),
          Object.defineProperty(a, 'match', {
            get() {
              return (
                Object.defineProperty(a, 'match', { value: hr(a.syntax, i) }),
                a.match
              );
            },
          })),
        a
      );
    }
    addAtrule_(t, r) {
      !r ||
        (this.atrules[t] = {
          type: 'Atrule',
          name: t,
          prelude:
            r.prelude ?
              this.createDescriptor(r.prelude, 'AtrulePrelude', t)
            : null,
          descriptors:
            r.descriptors ?
              Object.keys(r.descriptors).reduce(
                (n, o) => (
                  (n[o] = this.createDescriptor(
                    r.descriptors[o],
                    'AtruleDescriptor',
                    o,
                    t
                  )),
                  n
                ),
                Object.create(null)
              )
            : null,
        });
    }
    addProperty_(t, r) {
      !r || (this.properties[t] = this.createDescriptor(r, 'Property', t));
    }
    addType_(t, r) {
      !r || (this.types[t] = this.createDescriptor(r, 'Type', t));
    }
    checkAtruleName(t) {
      if (!this.getAtrule(t)) return new Ke('Unknown at-rule', '@' + t);
    }
    checkAtrulePrelude(t, r) {
      let n = this.checkAtruleName(t);
      if (n) return n;
      let o = this.getAtrule(t);
      if (!o.prelude && r)
        return new SyntaxError(
          'At-rule `@' + t + '` should not contain a prelude'
        );
      if (o.prelude && !r && !Je(this, o.prelude, '', !1).matched)
        return new SyntaxError('At-rule `@' + t + '` should contain a prelude');
    }
    checkAtruleDescriptorName(t, r) {
      let n = this.checkAtruleName(t);
      if (n) return n;
      let o = this.getAtrule(t),
        i = Z(r);
      if (!o.descriptors)
        return new SyntaxError('At-rule `@' + t + '` has no known descriptors');
      if (!o.descriptors[i.name] && !o.descriptors[i.basename])
        return new Ke('Unknown at-rule descriptor', r);
    }
    checkPropertyName(t) {
      if (!this.getProperty(t)) return new Ke('Unknown property', t);
    }
    matchAtrulePrelude(t, r) {
      let n = this.checkAtrulePrelude(t, r);
      return n ? ge(null, n) : Je(this, this.getAtrule(t).prelude, r || '', !1);
    }
    matchAtruleDescriptor(t, r, n) {
      let o = this.checkAtruleDescriptorName(t, r);
      if (o) return ge(null, o);
      let i = this.getAtrule(t),
        a = Z(r);
      return Je(
        this,
        i.descriptors[a.name] || i.descriptors[a.basename],
        n,
        !1
      );
    }
    matchDeclaration(t) {
      return t.type !== 'Declaration' ?
          ge(null, new Error('Not a Declaration node'))
        : this.matchProperty(t.property, t.value);
    }
    matchProperty(t, r) {
      if (me(t).custom)
        return ge(
          null,
          new Error("Lexer matching doesn't applicable for custom properties")
        );
      let n = this.checkPropertyName(t);
      return n ? ge(null, n) : Je(this, this.getProperty(t), r, !0);
    }
    matchType(t, r) {
      let n = this.getType(t);
      return n ? Je(this, n, r, !1) : ge(null, new Ke('Unknown type', t));
    }
    match(t, r) {
      return typeof t != 'string' && (!t || !t.type) ?
          ge(null, new Ke('Bad syntax'))
        : ((typeof t == 'string' || !t.match) &&
            (t = this.createDescriptor(t, 'Type', 'anonymous')),
          Je(this, t, r, !1));
    }
    findValueFragments(t, r, n, o) {
      return mn(this, r, this.matchProperty(t, r), n, o);
    }
    findDeclarationValueFragments(t, r, n) {
      return mn(this, t.value, this.matchDeclaration(t), r, n);
    }
    findAllFragments(t, r, n) {
      let o = [];
      return (
        this.syntax.walk(t, {
          visit: 'Declaration',
          enter: (i) => {
            o.push.apply(o, this.findDeclarationValueFragments(i, r, n));
          },
        }),
        o
      );
    }
    getAtrule(t, r = !0) {
      let n = Z(t);
      return (
        (n.vendor && r ?
          this.atrules[n.name] || this.atrules[n.basename]
        : this.atrules[n.name]) || null
      );
    }
    getAtrulePrelude(t, r = !0) {
      let n = this.getAtrule(t, r);
      return (n && n.prelude) || null;
    }
    getAtruleDescriptor(t, r) {
      return (
        (this.atrules.hasOwnProperty(t) &&
          this.atrules.declarators &&
          this.atrules[t].declarators[r]) ||
        null
      );
    }
    getProperty(t, r = !0) {
      let n = me(t);
      return (
        (n.vendor && r ?
          this.properties[n.name] || this.properties[n.basename]
        : this.properties[n.name]) || null
      );
    }
    getType(t) {
      return hasOwnProperty.call(this.types, t) ? this.types[t] : null;
    }
    validate() {
      function t(o, i, a, l) {
        if (a.has(i)) return a.get(i);
        a.set(i, !1),
          l.syntax !== null &&
            an(
              l.syntax,
              function (c) {
                if (c.type !== 'Type' && c.type !== 'Property') return;
                let s = c.type === 'Type' ? o.types : o.properties,
                  u = c.type === 'Type' ? r : n;
                (!hasOwnProperty.call(s, c.name) ||
                  t(o, c.name, u, s[c.name])) &&
                  a.set(i, !0);
              },
              this
            );
      }
      let r = new Map(),
        n = new Map();
      for (let o in this.types) t(this, o, r, this.types[o]);
      for (let o in this.properties) t(this, o, n, this.properties[o]);
      return (
        (r = [...r.keys()].filter((o) => r.get(o))),
        (n = [...n.keys()].filter((o) => n.get(o))),
        r.length || n.length ? { types: r, properties: n } : null
      );
    }
    dump(t, r) {
      return {
        generic: this.generic,
        types: gn(this.types, !r, t),
        properties: gn(this.properties, !r, t),
        atrules: Gu(this.atrules, !r, t),
      };
    }
    toString() {
      return JSON.stringify(this.dump());
    }
  };
  var { hasOwnProperty: tt } = Object.prototype,
    Qu = {
      generic: !0,
      types: bn,
      atrules: { prelude: ms, descriptors: ms },
      properties: bn,
      parseContext: $u,
      scope: gs,
      atrule: ['parse'],
      pseudo: ['parse'],
      node: ['name', 'structure', 'parse', 'generate', 'walkContext'],
    };
  function fr(e) {
    return e && e.constructor === Object;
  }
  function ds(e) {
    return fr(e) ? { ...e } : e;
  }
  function $u(e, t) {
    return Object.assign(e, t);
  }
  function gs(e, t) {
    for (let r in t)
      tt.call(t, r) && (fr(e[r]) ? gs(e[r], t[r]) : (e[r] = ds(t[r])));
    return e;
  }
  function fs(e, t) {
    return (
      typeof t == 'string' && /^\s*\|/.test(t) ?
        typeof e == 'string' ?
          e + t
        : t.replace(/^\s*\|\s*/, '')
      : t || null
    );
  }
  function bn(e, t) {
    if (typeof t == 'string') return fs(e, t);
    let r = { ...e };
    for (let n in t)
      tt.call(t, n) && (r[n] = fs(tt.call(e, n) ? e[n] : void 0, t[n]));
    return r;
  }
  function ms(e, t) {
    let r = bn(e, t);
    return !fr(r) || Object.keys(r).length ? r : null;
  }
  function Et(e, t, r) {
    for (let n in r)
      if (tt.call(r, n) !== !1) {
        if (r[n] === !0) tt.call(t, n) && (e[n] = ds(t[n]));
        else if (r[n]) {
          if (typeof r[n] == 'function') {
            let o = r[n];
            (e[n] = o({}, e[n])), (e[n] = o(e[n] || {}, t[n]));
          } else if (fr(r[n])) {
            let o = {};
            for (let i in e[n]) o[i] = Et({}, e[n][i], r[n]);
            for (let i in t[n]) o[i] = Et(o[i] || {}, t[n][i], r[n]);
            e[n] = o;
          } else if (Array.isArray(r[n])) {
            let o = {},
              i = r[n].reduce(function (a, l) {
                return (a[l] = !0), a;
              }, {});
            for (let [a, l] of Object.entries(e[n] || {}))
              (o[a] = {}), l && Et(o[a], l, i);
            for (let a in t[n])
              tt.call(t[n], a) &&
                (o[a] || (o[a] = {}), t[n] && t[n][a] && Et(o[a], t[n][a], i));
            e[n] = o;
          }
        }
      }
    return e;
  }
  var mr = (e, t) => Et(e, t, Qu);
  function bs(e) {
    let t = Ji(e),
      r = Ia(e),
      n = Ca(e),
      { fromPlainObject: o, toPlainObject: i } = Aa(r),
      a = {
        lexer: null,
        createLexer: (l) => new et(l, a, a.lexer.structure),
        tokenize: Le,
        parse: t,
        generate: n,
        walk: r,
        find: r.find,
        findLast: r.findLast,
        findAll: r.findAll,
        fromPlainObject: o,
        toPlainObject: i,
        fork(l) {
          let c = mr({}, e);
          return bs(typeof l == 'function' ? l(c, Object.assign) : mr(c, l));
        },
      };
    return (
      (a.lexer = new et(
        {
          generic: !0,
          types: e.types,
          atrules: e.atrules,
          properties: e.properties,
          node: e.node,
        },
        a
      )),
      a
    );
  }
  var yn = (e) => bs(mr({}, e));
  var ys = {
    generic: !0,
    types: {
      'absolute-size':
        'xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large',
      'alpha-value': '<number>|<percentage>',
      'angle-percentage': '<angle>|<percentage>',
      'angular-color-hint': '<angle-percentage>',
      'angular-color-stop': '<color>&&<color-stop-angle>?',
      'angular-color-stop-list':
        '[<angular-color-stop> [, <angular-color-hint>]?]# , <angular-color-stop>',
      'animateable-feature': 'scroll-position|contents|<custom-ident>',
      attachment: 'scroll|fixed|local',
      'attr()': 'attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )',
      'attr-matcher': "['~'|'|'|'^'|'$'|'*']? '='",
      'attr-modifier': 'i|s',
      'attribute-selector':
        "'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'",
      'auto-repeat':
        'repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )',
      'auto-track-list':
        '[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?',
      'baseline-position': '[first|last]? baseline',
      'basic-shape': '<inset()>|<circle()>|<ellipse()>|<polygon()>|<path()>',
      'bg-image': 'none|<image>',
      'bg-layer':
        '<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>',
      'bg-position':
        '[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]',
      'bg-size': '[<length-percentage>|auto]{1,2}|cover|contain',
      'blur()': 'blur( <length> )',
      'blend-mode':
        'normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity',
      box: 'border-box|padding-box|content-box',
      'brightness()': 'brightness( <number-percentage> )',
      'calc()': 'calc( <calc-sum> )',
      'calc-sum': "<calc-product> [['+'|'-'] <calc-product>]*",
      'calc-product': "<calc-value> ['*' <calc-value>|'/' <number>]*",
      'calc-value': '<number>|<dimension>|<percentage>|( <calc-sum> )',
      'cf-final-image': '<image>|<color>',
      'cf-mixing-image': '<percentage>?&&<image>',
      'circle()': 'circle( [<shape-radius>]? [at <position>]? )',
      'clamp()': 'clamp( <calc-sum>#{3} )',
      'class-selector': "'.' <ident-token>",
      'clip-source': '<url>',
      color:
        '<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<hex-color>|<named-color>|currentcolor|<deprecated-system-color>',
      'color-stop': '<color-stop-length>|<color-stop-angle>',
      'color-stop-angle': '<angle-percentage>{1,2}',
      'color-stop-length': '<length-percentage>{1,2}',
      'color-stop-list':
        '[<linear-color-stop> [, <linear-color-hint>]?]# , <linear-color-stop>',
      combinator: "'>'|'+'|'~'|['||']",
      'common-lig-values': '[common-ligatures|no-common-ligatures]',
      'compat-auto':
        'searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button',
      'composite-style':
        'clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor',
      'compositing-operator': 'add|subtract|intersect|exclude',
      'compound-selector':
        '[<type-selector>? <subclass-selector>* [<pseudo-element-selector> <pseudo-class-selector>*]*]!',
      'compound-selector-list': '<compound-selector>#',
      'complex-selector':
        '<compound-selector> [<combinator>? <compound-selector>]*',
      'complex-selector-list': '<complex-selector>#',
      'conic-gradient()':
        'conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )',
      'contextual-alt-values': '[contextual|no-contextual]',
      'content-distribution': 'space-between|space-around|space-evenly|stretch',
      'content-list':
        '[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+',
      'content-position': 'center|start|end|flex-start|flex-end',
      'content-replacement': '<image>',
      'contrast()': 'contrast( [<number-percentage>] )',
      counter: '<counter()>|<counters()>',
      'counter()': 'counter( <counter-name> , <counter-style>? )',
      'counter-name': '<custom-ident>',
      'counter-style': '<counter-style-name>|symbols( )',
      'counter-style-name': '<custom-ident>',
      'counters()': 'counters( <counter-name> , <string> , <counter-style>? )',
      'cross-fade()': 'cross-fade( <cf-mixing-image> , <cf-final-image>? )',
      'cubic-bezier-timing-function':
        'ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )',
      'deprecated-system-color':
        'ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText',
      'discretionary-lig-values':
        '[discretionary-ligatures|no-discretionary-ligatures]',
      'display-box': 'contents|none',
      'display-inside': 'flow|flow-root|table|flex|grid|ruby',
      'display-internal':
        'table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container',
      'display-legacy':
        'inline-block|inline-list-item|inline-table|inline-flex|inline-grid',
      'display-listitem': '<display-outside>?&&[flow|flow-root]?&&list-item',
      'display-outside': 'block|inline|run-in',
      'drop-shadow()': 'drop-shadow( <length>{2,3} <color>? )',
      'east-asian-variant-values':
        '[jis78|jis83|jis90|jis04|simplified|traditional]',
      'east-asian-width-values': '[full-width|proportional-width]',
      'element()':
        'element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )',
      'ellipse()': 'ellipse( [<shape-radius>{2}]? [at <position>]? )',
      'ending-shape': 'circle|ellipse',
      'env()': 'env( <custom-ident> , <declaration-value>? )',
      'explicit-track-list': '[<line-names>? <track-size>]+ <line-names>?',
      'family-name': '<string>|<custom-ident>+',
      'feature-tag-value': '<string> [<integer>|on|off]?',
      'feature-type':
        '@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation',
      'feature-value-block':
        "<feature-type> '{' <feature-value-declaration-list> '}'",
      'feature-value-block-list': '<feature-value-block>+',
      'feature-value-declaration': '<custom-ident> : <integer>+ ;',
      'feature-value-declaration-list': '<feature-value-declaration>',
      'feature-value-name': '<custom-ident>',
      'fill-rule': 'nonzero|evenodd',
      'filter-function':
        '<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>',
      'filter-function-list': '[<filter-function>|<url>]+',
      'final-bg-layer':
        "<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<box>||<box>",
      'fit-content()': 'fit-content( [<length>|<percentage>] )',
      'fixed-breadth': '<length-percentage>',
      'fixed-repeat':
        'repeat( [<integer [1,\u221E]>] , [<line-names>? <fixed-size>]+ <line-names>? )',
      'fixed-size':
        '<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )',
      'font-stretch-absolute':
        'normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>',
      'font-variant-css21': '[normal|small-caps]',
      'font-weight-absolute': 'normal|bold|<number [1,1000]>',
      'frequency-percentage': '<frequency>|<percentage>',
      'general-enclosed':
        '[<function-token> <any-value> )]|( <ident> <any-value> )',
      'generic-family':
        'serif|sans-serif|cursive|fantasy|monospace|-apple-system',
      'generic-name': 'serif|sans-serif|cursive|fantasy|monospace',
      'geometry-box': '<shape-box>|fill-box|stroke-box|view-box',
      gradient:
        '<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>',
      'grayscale()': 'grayscale( <number-percentage> )',
      'grid-line':
        'auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]',
      'historical-lig-values': '[historical-ligatures|no-historical-ligatures]',
      'hsl()':
        'hsl( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )',
      'hsla()':
        'hsla( <hue> <percentage> <percentage> [/ <alpha-value>]? )|hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )',
      hue: '<number>|<angle>',
      'hue-rotate()': 'hue-rotate( <angle> )',
      'hwb()':
        'hwb( [<hue>|none] [<percentage>|none] [<percentage>|none] [/ [<alpha-value>|none]]? )',
      image:
        '<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>',
      'image()': 'image( <image-tags>? [<image-src>? , <color>?]! )',
      'image-set()': 'image-set( <image-set-option># )',
      'image-set-option': '[<image>|<string>] [<resolution>||type( <string> )]',
      'image-src': '<url>|<string>',
      'image-tags': 'ltr|rtl',
      'inflexible-breadth':
        '<length>|<percentage>|min-content|max-content|auto',
      'inset()': "inset( <length-percentage>{1,4} [round <'border-radius'>]? )",
      'invert()': 'invert( <number-percentage> )',
      'keyframes-name': '<custom-ident>|<string>',
      'keyframe-block': '<keyframe-selector># { <declaration-list> }',
      'keyframe-block-list': '<keyframe-block>+',
      'keyframe-selector': 'from|to|<percentage>',
      'layer()': 'layer( <layer-name> )',
      'layer-name': "<ident> ['.' <ident>]*",
      'leader()': 'leader( <leader-type> )',
      'leader-type': 'dotted|solid|space|<string>',
      'length-percentage': '<length>|<percentage>',
      'line-names': "'[' <custom-ident>* ']'",
      'line-name-list': '[<line-names>|<name-repeat>]+',
      'line-style':
        'none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset',
      'line-width': '<length>|thin|medium|thick',
      'linear-color-hint': '<length-percentage>',
      'linear-color-stop': '<color> <color-stop-length>?',
      'linear-gradient()':
        'linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )',
      'mask-layer':
        '<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>',
      'mask-position':
        '[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?',
      'mask-reference': 'none|<image>|<mask-source>',
      'mask-source': '<url>',
      'masking-mode': 'alpha|luminance|match-source',
      'matrix()': 'matrix( <number>#{6} )',
      'matrix3d()': 'matrix3d( <number>#{16} )',
      'max()': 'max( <calc-sum># )',
      'media-and': '<media-in-parens> [and <media-in-parens>]+',
      'media-condition': '<media-not>|<media-and>|<media-or>|<media-in-parens>',
      'media-condition-without-or': '<media-not>|<media-and>|<media-in-parens>',
      'media-feature': '( [<mf-plain>|<mf-boolean>|<mf-range>] )',
      'media-in-parens':
        '( <media-condition> )|<media-feature>|<general-enclosed>',
      'media-not': 'not <media-in-parens>',
      'media-or': '<media-in-parens> [or <media-in-parens>]+',
      'media-query':
        '<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?',
      'media-query-list': '<media-query>#',
      'media-type': '<ident>',
      'mf-boolean': '<mf-name>',
      'mf-name': '<ident>',
      'mf-plain': '<mf-name> : <mf-value>',
      'mf-range':
        "<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>",
      'mf-value': '<number>|<dimension>|<ident>|<ratio>',
      'min()': 'min( <calc-sum># )',
      'minmax()':
        'minmax( [<length>|<percentage>|min-content|max-content|auto] , [<length>|<percentage>|<flex>|min-content|max-content|auto] )',
      'name-repeat':
        'repeat( [<integer [1,\u221E]>|auto-fill] , <line-names>+ )',
      'named-color':
        'transparent|aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|<-non-standard-color>',
      'namespace-prefix': '<ident>',
      'ns-prefix': "[<ident-token>|'*']? '|'",
      'number-percentage': '<number>|<percentage>',
      'numeric-figure-values': '[lining-nums|oldstyle-nums]',
      'numeric-fraction-values': '[diagonal-fractions|stacked-fractions]',
      'numeric-spacing-values': '[proportional-nums|tabular-nums]',
      nth: '<an-plus-b>|even|odd',
      'opacity()': 'opacity( [<number-percentage>] )',
      'overflow-position': 'unsafe|safe',
      'outline-radius': '<length>|<percentage>',
      'page-body':
        '<declaration>? [; <page-body>]?|<page-margin-box> <page-body>',
      'page-margin-box': "<page-margin-box-type> '{' <declaration-list> '}'",
      'page-margin-box-type':
        '@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom',
      'page-selector-list': '[<page-selector>#]?',
      'page-selector': '<pseudo-page>+|<ident> <pseudo-page>*',
      'page-size': 'A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger',
      'path()': 'path( [<fill-rule> ,]? <string> )',
      'paint()': 'paint( <ident> , <declaration-value>? )',
      'perspective()': 'perspective( <length> )',
      'polygon()':
        'polygon( <fill-rule>? , [<length-percentage> <length-percentage>]# )',
      position:
        '[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]',
      'pseudo-class-selector':
        "':' <ident-token>|':' <function-token> <any-value> ')'",
      'pseudo-element-selector': "':' <pseudo-class-selector>",
      'pseudo-page': ': [left|right|first|blank]',
      quote: 'open-quote|close-quote|no-open-quote|no-close-quote',
      'radial-gradient()':
        'radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )',
      'relative-selector': '<combinator>? <complex-selector>',
      'relative-selector-list': '<relative-selector>#',
      'relative-size': 'larger|smaller',
      'repeat-style': 'repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}',
      'repeating-conic-gradient()':
        'repeating-conic-gradient( [from <angle>]? [at <position>]? , <angular-color-stop-list> )',
      'repeating-linear-gradient()':
        'repeating-linear-gradient( [<angle>|to <side-or-corner>]? , <color-stop-list> )',
      'repeating-radial-gradient()':
        'repeating-radial-gradient( [<ending-shape>||<size>]? [at <position>]? , <color-stop-list> )',
      'rgb()':
        'rgb( <percentage>{3} [/ <alpha-value>]? )|rgb( <number>{3} [/ <alpha-value>]? )|rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )',
      'rgba()':
        'rgba( <percentage>{3} [/ <alpha-value>]? )|rgba( <number>{3} [/ <alpha-value>]? )|rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )',
      'rotate()': 'rotate( [<angle>|<zero>] )',
      'rotate3d()':
        'rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )',
      'rotateX()': 'rotateX( [<angle>|<zero>] )',
      'rotateY()': 'rotateY( [<angle>|<zero>] )',
      'rotateZ()': 'rotateZ( [<angle>|<zero>] )',
      'saturate()': 'saturate( <number-percentage> )',
      'scale()': 'scale( <number> , <number>? )',
      'scale3d()': 'scale3d( <number> , <number> , <number> )',
      'scaleX()': 'scaleX( <number> )',
      'scaleY()': 'scaleY( <number> )',
      'scaleZ()': 'scaleZ( <number> )',
      'self-position':
        'center|start|end|self-start|self-end|flex-start|flex-end',
      'shape-radius': '<length-percentage>|closest-side|farthest-side',
      'skew()': 'skew( [<angle>|<zero>] , [<angle>|<zero>]? )',
      'skewX()': 'skewX( [<angle>|<zero>] )',
      'skewY()': 'skewY( [<angle>|<zero>] )',
      'sepia()': 'sepia( <number-percentage> )',
      shadow: 'inset?&&<length>{2,4}&&<color>?',
      'shadow-t': '[<length>{2,3}&&<color>?]',
      shape:
        'rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )',
      'shape-box': '<box>|margin-box',
      'side-or-corner': '[left|right]||[top|bottom]',
      'single-animation':
        '<time>||<easing-function>||<time>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]',
      'single-animation-direction':
        'normal|reverse|alternate|alternate-reverse',
      'single-animation-fill-mode': 'none|forwards|backwards|both',
      'single-animation-iteration-count': 'infinite|<number>',
      'single-animation-play-state': 'running|paused',
      'single-animation-timeline': 'auto|none|<timeline-name>',
      'single-transition':
        '[none|<single-transition-property>]||<time>||<easing-function>||<time>',
      'single-transition-property': 'all|<custom-ident>',
      size: 'closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}',
      'step-position': 'jump-start|jump-end|jump-none|jump-both|start|end',
      'step-timing-function':
        'step-start|step-end|steps( <integer> [, <step-position>]? )',
      'subclass-selector':
        '<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>',
      'supports-condition':
        'not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*',
      'supports-in-parens':
        '( <supports-condition> )|<supports-feature>|<general-enclosed>',
      'supports-feature': '<supports-decl>|<supports-selector-fn>',
      'supports-decl': '( <declaration> )',
      'supports-selector-fn': 'selector( <complex-selector> )',
      symbol: '<string>|<image>|<custom-ident>',
      target: '<target-counter()>|<target-counters()>|<target-text()>',
      'target-counter()':
        'target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )',
      'target-counters()':
        'target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )',
      'target-text()':
        'target-text( [<string>|<url>] , [content|before|after|first-letter]? )',
      'time-percentage': '<time>|<percentage>',
      'timeline-name': '<custom-ident>|<string>',
      'easing-function':
        'linear|<cubic-bezier-timing-function>|<step-timing-function>',
      'track-breadth':
        '<length-percentage>|<flex>|min-content|max-content|auto',
      'track-list':
        '[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?',
      'track-repeat':
        'repeat( [<integer [1,\u221E]>] , [<line-names>? <track-size>]+ <line-names>? )',
      'track-size':
        '<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( [<length>|<percentage>] )',
      'transform-function':
        '<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>',
      'transform-list': '<transform-function>+',
      'translate()': 'translate( <length-percentage> , <length-percentage>? )',
      'translate3d()':
        'translate3d( <length-percentage> , <length-percentage> , <length> )',
      'translateX()': 'translateX( <length-percentage> )',
      'translateY()': 'translateY( <length-percentage> )',
      'translateZ()': 'translateZ( <length> )',
      'type-or-unit':
        'string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%',
      'type-selector': "<wq-name>|<ns-prefix>? '*'",
      'var()': 'var( <custom-property-name> , <declaration-value>? )',
      'viewport-length': 'auto|<length-percentage>',
      'visual-box': 'content-box|padding-box|border-box',
      'wq-name': '<ns-prefix>? <ident-token>',
      '-legacy-gradient':
        '<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>',
      '-legacy-linear-gradient':
        '-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )',
      '-legacy-repeating-linear-gradient':
        '-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )',
      '-legacy-linear-gradient-arguments':
        '[<angle>|<side-or-corner>]? , <color-stop-list>',
      '-legacy-radial-gradient':
        '-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )',
      '-legacy-repeating-radial-gradient':
        '-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )',
      '-legacy-radial-gradient-arguments':
        '[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>',
      '-legacy-radial-gradient-size':
        'closest-side|closest-corner|farthest-side|farthest-corner|contain|cover',
      '-legacy-radial-gradient-shape': 'circle|ellipse',
      '-non-standard-font':
        '-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body',
      '-non-standard-color':
        '-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text',
      '-non-standard-image-rendering':
        'optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast',
      '-non-standard-overflow':
        '-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable',
      '-non-standard-width':
        'fill-available|min-intrinsic|intrinsic|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content|-webkit-min-content|-webkit-max-content',
      '-webkit-gradient()':
        '-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )',
      '-webkit-gradient-color-stop':
        'from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )',
      '-webkit-gradient-point':
        '[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]',
      '-webkit-gradient-radius': '<length>|<percentage>',
      '-webkit-gradient-type': 'linear|radial',
      '-webkit-mask-box-repeat': 'repeat|stretch|round',
      '-webkit-mask-clip-style':
        'border|border-box|padding|padding-box|content|content-box|text',
      '-ms-filter-function-list': '<-ms-filter-function>+',
      '-ms-filter-function':
        '<-ms-filter-function-progid>|<-ms-filter-function-legacy>',
      '-ms-filter-function-progid':
        "'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]",
      '-ms-filter-function-legacy':
        '<ident-token>|<function-token> <any-value>? )',
      '-ms-filter': '<string>',
      age: 'child|young|old',
      'attr-name': '<wq-name>',
      'attr-fallback': '<any-value>',
      'bg-clip': '<box>|border|text',
      'border-radius': '<length-percentage>{1,2}',
      bottom: '<length>|auto',
      'generic-voice': '[<age>? <gender> <integer>?]',
      gender: 'male|female|neutral',
      'lab()':
        'lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )',
      'lch()':
        'lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )',
      left: '<length>|auto',
      'mask-image': '<mask-reference>#',
      paint: 'none|<color>|<url> [none|<color>]?|context-fill|context-stroke',
      ratio: '<number [0,\u221E]> [/ <number [0,\u221E]>]?',
      'reversed-counter-name': 'reversed( <counter-name> )',
      right: '<length>|auto',
      'svg-length': '<percentage>|<length>|<number>',
      'svg-writing-mode': 'lr-tb|rl-tb|tb-rl|lr|rl|tb',
      top: '<length>|auto',
      'track-group':
        "'(' [<string>* <track-minmax> <string>*]+ ')' ['[' <positive-integer> ']']?|<track-minmax>",
      'track-list-v0': '[<string>* <track-group> <string>*]+|none',
      'track-minmax':
        'minmax( <track-breadth> , <track-breadth> )|auto|<track-breadth>|fit-content',
      x: '<number>',
      y: '<number>',
      declaration: "<ident-token> : <declaration-value>? ['!' important]?",
      'declaration-list': "[<declaration>? ';']* <declaration>?",
      url: 'url( <string> <url-modifier>* )|<url-token>',
      'url-modifier': '<ident>|<function-token> <any-value> )',
      'number-zero-one': '<number [0,1]>',
      'number-one-or-greater': '<number [1,\u221E]>',
      'positive-integer': '<integer [0,\u221E]>',
      '-non-standard-display':
        '-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box',
    },
    properties: {
      '--*': '<declaration-value>',
      '-ms-accelerator': 'false|true',
      '-ms-block-progression': 'tb|rl|bt|lr',
      '-ms-content-zoom-chaining': 'none|chained',
      '-ms-content-zooming': 'none|zoom',
      '-ms-content-zoom-limit':
        "<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>",
      '-ms-content-zoom-limit-max': '<percentage>',
      '-ms-content-zoom-limit-min': '<percentage>',
      '-ms-content-zoom-snap':
        "<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>",
      '-ms-content-zoom-snap-points':
        'snapInterval( <percentage> , <percentage> )|snapList( <percentage># )',
      '-ms-content-zoom-snap-type': 'none|proximity|mandatory',
      '-ms-filter': '<string>',
      '-ms-flow-from': '[none|<custom-ident>]#',
      '-ms-flow-into': '[none|<custom-ident>]#',
      '-ms-grid-columns': 'none|<track-list>|<auto-track-list>',
      '-ms-grid-rows': 'none|<track-list>|<auto-track-list>',
      '-ms-high-contrast-adjust': 'auto|none',
      '-ms-hyphenate-limit-chars': 'auto|<integer>{1,3}',
      '-ms-hyphenate-limit-lines': 'no-limit|<integer>',
      '-ms-hyphenate-limit-zone': '<percentage>|<length>',
      '-ms-ime-align': 'auto|after',
      '-ms-overflow-style': 'auto|none|scrollbar|-ms-autohiding-scrollbar',
      '-ms-scrollbar-3dlight-color': '<color>',
      '-ms-scrollbar-arrow-color': '<color>',
      '-ms-scrollbar-base-color': '<color>',
      '-ms-scrollbar-darkshadow-color': '<color>',
      '-ms-scrollbar-face-color': '<color>',
      '-ms-scrollbar-highlight-color': '<color>',
      '-ms-scrollbar-shadow-color': '<color>',
      '-ms-scrollbar-track-color': '<color>',
      '-ms-scroll-chaining': 'chained|none',
      '-ms-scroll-limit':
        "<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>",
      '-ms-scroll-limit-x-max': 'auto|<length>',
      '-ms-scroll-limit-x-min': '<length>',
      '-ms-scroll-limit-y-max': 'auto|<length>',
      '-ms-scroll-limit-y-min': '<length>',
      '-ms-scroll-rails': 'none|railed',
      '-ms-scroll-snap-points-x':
        'snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )',
      '-ms-scroll-snap-points-y':
        'snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )',
      '-ms-scroll-snap-type': 'none|proximity|mandatory',
      '-ms-scroll-snap-x':
        "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>",
      '-ms-scroll-snap-y':
        "<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>",
      '-ms-scroll-translation': 'none|vertical-to-horizontal',
      '-ms-text-autospace':
        'none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space',
      '-ms-touch-select': 'grippers|none',
      '-ms-user-select': 'none|element|text',
      '-ms-wrap-flow': 'auto|both|start|end|maximum|clear',
      '-ms-wrap-margin': '<length>',
      '-ms-wrap-through': 'wrap|none',
      '-moz-appearance':
        'none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized',
      '-moz-binding': '<url>|none',
      '-moz-border-bottom-colors': '<color>+|none',
      '-moz-border-left-colors': '<color>+|none',
      '-moz-border-right-colors': '<color>+|none',
      '-moz-border-top-colors': '<color>+|none',
      '-moz-context-properties':
        'none|[fill|fill-opacity|stroke|stroke-opacity]#',
      '-moz-float-edge': 'border-box|content-box|margin-box|padding-box',
      '-moz-force-broken-image-icon': '0|1',
      '-moz-image-region': '<shape>|auto',
      '-moz-orient': 'inline|block|horizontal|vertical',
      '-moz-outline-radius': '<outline-radius>{1,4} [/ <outline-radius>{1,4}]?',
      '-moz-outline-radius-bottomleft': '<outline-radius>',
      '-moz-outline-radius-bottomright': '<outline-radius>',
      '-moz-outline-radius-topleft': '<outline-radius>',
      '-moz-outline-radius-topright': '<outline-radius>',
      '-moz-stack-sizing': 'ignore|stretch-to-fit',
      '-moz-text-blink': 'none|blink',
      '-moz-user-focus':
        'ignore|normal|select-after|select-before|select-menu|select-same|select-all|none',
      '-moz-user-input': 'auto|none|enabled|disabled',
      '-moz-user-modify': 'read-only|read-write|write-only',
      '-moz-window-dragging': 'drag|no-drag',
      '-moz-window-shadow': 'default|menu|tooltip|sheet|none',
      '-webkit-appearance':
        'none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button',
      '-webkit-border-before': "<'border-width'>||<'border-style'>||<color>",
      '-webkit-border-before-color': '<color>',
      '-webkit-border-before-style': "<'border-style'>",
      '-webkit-border-before-width': "<'border-width'>",
      '-webkit-box-reflect': '[above|below|right|left]? <length>? <image>?',
      '-webkit-line-clamp': 'none|<integer>',
      '-webkit-mask':
        '[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<box>|border|padding|content|text]||[<box>|border|padding|content]]#',
      '-webkit-mask-attachment': '<attachment>#',
      '-webkit-mask-clip': '[<box>|border|padding|content|text]#',
      '-webkit-mask-composite': '<composite-style>#',
      '-webkit-mask-image': '<mask-reference>#',
      '-webkit-mask-origin': '[<box>|border|padding|content]#',
      '-webkit-mask-position': '<position>#',
      '-webkit-mask-position-x': '[<length-percentage>|left|center|right]#',
      '-webkit-mask-position-y': '[<length-percentage>|top|center|bottom]#',
      '-webkit-mask-repeat': '<repeat-style>#',
      '-webkit-mask-repeat-x': 'repeat|no-repeat|space|round',
      '-webkit-mask-repeat-y': 'repeat|no-repeat|space|round',
      '-webkit-mask-size': '<bg-size>#',
      '-webkit-overflow-scrolling': 'auto|touch',
      '-webkit-tap-highlight-color': '<color>',
      '-webkit-text-fill-color': '<color>',
      '-webkit-text-stroke': '<length>||<color>',
      '-webkit-text-stroke-color': '<color>',
      '-webkit-text-stroke-width': '<length>',
      '-webkit-touch-callout': 'default|none',
      '-webkit-user-modify': 'read-only|read-write|read-write-plaintext-only',
      'accent-color': 'auto|<color>',
      'align-content':
        'normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>',
      'align-items':
        'normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]',
      'align-self':
        'auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>',
      'align-tracks':
        '[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#',
      all: 'initial|inherit|unset|revert|revert-layer',
      animation: '<single-animation>#',
      'animation-delay': '<time>#',
      'animation-direction': '<single-animation-direction>#',
      'animation-duration': '<time>#',
      'animation-fill-mode': '<single-animation-fill-mode>#',
      'animation-iteration-count': '<single-animation-iteration-count>#',
      'animation-name': '[none|<keyframes-name>]#',
      'animation-play-state': '<single-animation-play-state>#',
      'animation-timing-function': '<easing-function>#',
      'animation-timeline': '<single-animation-timeline>#',
      appearance: 'none|auto|textfield|menulist-button|<compat-auto>',
      'aspect-ratio': 'auto|<ratio>',
      azimuth:
        '<angle>|[[left-side|far-left|left|center-left|center|center-right|right|far-right|right-side]||behind]|leftwards|rightwards',
      'backdrop-filter': 'none|<filter-function-list>',
      'backface-visibility': 'visible|hidden',
      background: '[<bg-layer> ,]* <final-bg-layer>',
      'background-attachment': '<attachment>#',
      'background-blend-mode': '<blend-mode>#',
      'background-clip': '<bg-clip>#',
      'background-color': '<color>',
      'background-image': '<bg-image>#',
      'background-origin': '<box>#',
      'background-position': '<bg-position>#',
      'background-position-x':
        '[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#',
      'background-position-y':
        '[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#',
      'background-repeat': '<repeat-style>#',
      'background-size': '<bg-size>#',
      'block-overflow': 'clip|ellipsis|<string>',
      'block-size': "<'width'>",
      border: '<line-width>||<line-style>||<color>',
      'border-block': "<'border-top-width'>||<'border-top-style'>||<color>",
      'border-block-color': "<'border-top-color'>{1,2}",
      'border-block-style': "<'border-top-style'>",
      'border-block-width': "<'border-top-width'>",
      'border-block-end': "<'border-top-width'>||<'border-top-style'>||<color>",
      'border-block-end-color': "<'border-top-color'>",
      'border-block-end-style': "<'border-top-style'>",
      'border-block-end-width': "<'border-top-width'>",
      'border-block-start':
        "<'border-top-width'>||<'border-top-style'>||<color>",
      'border-block-start-color': "<'border-top-color'>",
      'border-block-start-style': "<'border-top-style'>",
      'border-block-start-width': "<'border-top-width'>",
      'border-bottom': '<line-width>||<line-style>||<color>',
      'border-bottom-color': "<'border-top-color'>",
      'border-bottom-left-radius': '<length-percentage>{1,2}',
      'border-bottom-right-radius': '<length-percentage>{1,2}',
      'border-bottom-style': '<line-style>',
      'border-bottom-width': '<line-width>',
      'border-collapse': 'collapse|separate',
      'border-color': '<color>{1,4}',
      'border-end-end-radius': '<length-percentage>{1,2}',
      'border-end-start-radius': '<length-percentage>{1,2}',
      'border-image':
        "<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>",
      'border-image-outset': '[<length>|<number>]{1,4}',
      'border-image-repeat': '[stretch|repeat|round|space]{1,2}',
      'border-image-slice': '<number-percentage>{1,4}&&fill?',
      'border-image-source': 'none|<image>',
      'border-image-width': '[<length-percentage>|<number>|auto]{1,4}',
      'border-inline': "<'border-top-width'>||<'border-top-style'>||<color>",
      'border-inline-end':
        "<'border-top-width'>||<'border-top-style'>||<color>",
      'border-inline-color': "<'border-top-color'>{1,2}",
      'border-inline-style': "<'border-top-style'>",
      'border-inline-width': "<'border-top-width'>",
      'border-inline-end-color': "<'border-top-color'>",
      'border-inline-end-style': "<'border-top-style'>",
      'border-inline-end-width': "<'border-top-width'>",
      'border-inline-start':
        "<'border-top-width'>||<'border-top-style'>||<color>",
      'border-inline-start-color': "<'border-top-color'>",
      'border-inline-start-style': "<'border-top-style'>",
      'border-inline-start-width': "<'border-top-width'>",
      'border-left': '<line-width>||<line-style>||<color>',
      'border-left-color': '<color>',
      'border-left-style': '<line-style>',
      'border-left-width': '<line-width>',
      'border-radius': '<length-percentage>{1,4} [/ <length-percentage>{1,4}]?',
      'border-right': '<line-width>||<line-style>||<color>',
      'border-right-color': '<color>',
      'border-right-style': '<line-style>',
      'border-right-width': '<line-width>',
      'border-spacing': '<length> <length>?',
      'border-start-end-radius': '<length-percentage>{1,2}',
      'border-start-start-radius': '<length-percentage>{1,2}',
      'border-style': '<line-style>{1,4}',
      'border-top': '<line-width>||<line-style>||<color>',
      'border-top-color': '<color>',
      'border-top-left-radius': '<length-percentage>{1,2}',
      'border-top-right-radius': '<length-percentage>{1,2}',
      'border-top-style': '<line-style>',
      'border-top-width': '<line-width>',
      'border-width': '<line-width>{1,4}',
      bottom: '<length>|<percentage>|auto',
      'box-align': 'start|center|end|baseline|stretch',
      'box-decoration-break': 'slice|clone',
      'box-direction': 'normal|reverse|inherit',
      'box-flex': '<number>',
      'box-flex-group': '<integer>',
      'box-lines': 'single|multiple',
      'box-ordinal-group': '<integer>',
      'box-orient': 'horizontal|vertical|inline-axis|block-axis|inherit',
      'box-pack': 'start|center|end|justify',
      'box-shadow': 'none|<shadow>#',
      'box-sizing': 'content-box|border-box',
      'break-after':
        'auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region',
      'break-before':
        'auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region',
      'break-inside': 'auto|avoid|avoid-page|avoid-column|avoid-region',
      'caption-side':
        'top|bottom|block-start|block-end|inline-start|inline-end',
      'caret-color': 'auto|<color>',
      clear: 'none|left|right|both|inline-start|inline-end',
      clip: '<shape>|auto',
      'clip-path': '<clip-source>|[<basic-shape>||<geometry-box>]|none',
      color: '<color>',
      'print-color-adjust': 'economy|exact',
      'color-scheme': 'normal|[light|dark|<custom-ident>]+&&only?',
      'column-count': '<integer>|auto',
      'column-fill': 'auto|balance|balance-all',
      'column-gap': 'normal|<length-percentage>',
      'column-rule':
        "<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>",
      'column-rule-color': '<color>',
      'column-rule-style': "<'border-style'>",
      'column-rule-width': "<'border-width'>",
      'column-span': 'none|all',
      'column-width': '<length>|auto',
      columns: "<'column-width'>||<'column-count'>",
      contain: 'none|strict|content|[size||layout||style||paint]',
      content:
        'normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?',
      'content-visibility': 'visible|auto|hidden',
      'counter-increment': '[<counter-name> <integer>?]+|none',
      'counter-reset':
        '[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none',
      'counter-set': '[<counter-name> <integer>?]+|none',
      cursor:
        '[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]',
      direction: 'ltr|rtl',
      display:
        '[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>',
      'empty-cells': 'show|hide',
      filter: 'none|<filter-function-list>|<-ms-filter-function-list>',
      flex: "none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]",
      'flex-basis': "content|<'width'>",
      'flex-direction': 'row|row-reverse|column|column-reverse',
      'flex-flow': "<'flex-direction'>||<'flex-wrap'>",
      'flex-grow': '<number>',
      'flex-shrink': '<number>',
      'flex-wrap': 'nowrap|wrap|wrap-reverse',
      float: 'left|right|none|inline-start|inline-end',
      font: "[[<'font-style'>||<font-variant-css21>||<'font-weight'>||<'font-stretch'>]? <'font-size'> [/ <'line-height'>]? <'font-family'>]|caption|icon|menu|message-box|small-caption|status-bar",
      'font-family': '[<family-name>|<generic-family>]#',
      'font-feature-settings': 'normal|<feature-tag-value>#',
      'font-kerning': 'auto|normal|none',
      'font-language-override': 'normal|<string>',
      'font-optical-sizing': 'auto|none',
      'font-variation-settings': 'normal|[<string> <number>]#',
      'font-size': '<absolute-size>|<relative-size>|<length-percentage>',
      'font-size-adjust':
        'none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]',
      'font-smooth': 'auto|never|always|<absolute-size>|<length>',
      'font-stretch': '<font-stretch-absolute>',
      'font-style': 'normal|italic|oblique <angle>?',
      'font-synthesis': 'none|[weight||style||small-caps]',
      'font-variant':
        'normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]',
      'font-variant-alternates':
        'normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]',
      'font-variant-caps':
        'normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps',
      'font-variant-east-asian':
        'normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]',
      'font-variant-ligatures':
        'normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]',
      'font-variant-numeric':
        'normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]',
      'font-variant-position': 'normal|sub|super',
      'font-weight': '<font-weight-absolute>|bolder|lighter',
      'forced-color-adjust': 'auto|none',
      gap: "<'row-gap'> <'column-gap'>?",
      grid: "<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>",
      'grid-area': '<grid-line> [/ <grid-line>]{0,3}',
      'grid-auto-columns': '<track-size>+',
      'grid-auto-flow': '[row|column]||dense',
      'grid-auto-rows': '<track-size>+',
      'grid-column': '<grid-line> [/ <grid-line>]?',
      'grid-column-end': '<grid-line>',
      'grid-column-gap': '<length-percentage>',
      'grid-column-start': '<grid-line>',
      'grid-gap': "<'grid-row-gap'> <'grid-column-gap'>?",
      'grid-row': '<grid-line> [/ <grid-line>]?',
      'grid-row-end': '<grid-line>',
      'grid-row-gap': '<length-percentage>',
      'grid-row-start': '<grid-line>',
      'grid-template':
        "none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?",
      'grid-template-areas': 'none|<string>+',
      'grid-template-columns':
        'none|<track-list>|<auto-track-list>|subgrid <line-name-list>?',
      'grid-template-rows':
        'none|<track-list>|<auto-track-list>|subgrid <line-name-list>?',
      'hanging-punctuation': 'none|[first||[force-end|allow-end]||last]',
      height:
        'auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )',
      'hyphenate-character': 'auto|<string>',
      hyphens: 'none|manual|auto',
      'image-orientation': 'from-image|<angle>|[<angle>? flip]',
      'image-rendering':
        'auto|crisp-edges|pixelated|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>',
      'image-resolution': '[from-image||<resolution>]&&snap?',
      'ime-mode': 'auto|normal|active|inactive|disabled',
      'initial-letter': 'normal|[<number> <integer>?]',
      'initial-letter-align': '[auto|alphabetic|hanging|ideographic]',
      'inline-size': "<'width'>",
      'input-security': 'auto|none',
      inset: "<'top'>{1,4}",
      'inset-block': "<'top'>{1,2}",
      'inset-block-end': "<'top'>",
      'inset-block-start': "<'top'>",
      'inset-inline': "<'top'>{1,2}",
      'inset-inline-end': "<'top'>",
      'inset-inline-start': "<'top'>",
      isolation: 'auto|isolate',
      'justify-content':
        'normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]',
      'justify-items':
        'normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]',
      'justify-self':
        'auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]',
      'justify-tracks':
        '[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#',
      left: '<length>|<percentage>|auto',
      'letter-spacing': 'normal|<length-percentage>',
      'line-break': 'auto|loose|normal|strict|anywhere',
      'line-clamp': 'none|<integer>',
      'line-height': 'normal|<number>|<length>|<percentage>',
      'line-height-step': '<length>',
      'list-style':
        "<'list-style-type'>||<'list-style-position'>||<'list-style-image'>",
      'list-style-image': '<image>|none',
      'list-style-position': 'inside|outside',
      'list-style-type': '<counter-style>|<string>|none',
      margin: '[<length>|<percentage>|auto]{1,4}',
      'margin-block': "<'margin-left'>{1,2}",
      'margin-block-end': "<'margin-left'>",
      'margin-block-start': "<'margin-left'>",
      'margin-bottom': '<length>|<percentage>|auto',
      'margin-inline': "<'margin-left'>{1,2}",
      'margin-inline-end': "<'margin-left'>",
      'margin-inline-start': "<'margin-left'>",
      'margin-left': '<length>|<percentage>|auto',
      'margin-right': '<length>|<percentage>|auto',
      'margin-top': '<length>|<percentage>|auto',
      'margin-trim': 'none|in-flow|all',
      mask: '<mask-layer>#',
      'mask-border':
        "<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>",
      'mask-border-mode': 'luminance|alpha',
      'mask-border-outset': '[<length>|<number>]{1,4}',
      'mask-border-repeat': '[stretch|repeat|round|space]{1,2}',
      'mask-border-slice': '<number-percentage>{1,4} fill?',
      'mask-border-source': 'none|<image>',
      'mask-border-width': '[<length-percentage>|<number>|auto]{1,4}',
      'mask-clip': '[<geometry-box>|no-clip]#',
      'mask-composite': '<compositing-operator>#',
      'mask-image': '<mask-reference>#',
      'mask-mode': '<masking-mode>#',
      'mask-origin': '<geometry-box>#',
      'mask-position': '<position>#',
      'mask-repeat': '<repeat-style>#',
      'mask-size': '<bg-size>#',
      'mask-type': 'luminance|alpha',
      'masonry-auto-flow': '[pack|next]||[definite-first|ordered]',
      'math-style': 'normal|compact',
      'max-block-size': "<'max-width'>",
      'max-height':
        'none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )',
      'max-inline-size': "<'max-width'>",
      'max-lines': 'none|<integer>',
      'max-width':
        'none|<length-percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>',
      'min-block-size': "<'min-width'>",
      'min-height':
        'auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )',
      'min-inline-size': "<'min-width'>",
      'min-width':
        'auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|<-non-standard-width>',
      'mix-blend-mode': '<blend-mode>|plus-lighter',
      'object-fit': 'fill|contain|cover|none|scale-down',
      'object-position': '<position>',
      offset:
        "[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?",
      'offset-anchor': 'auto|<position>',
      'offset-distance': '<length-percentage>',
      'offset-path':
        'none|ray( [<angle>&&<size>&&contain?] )|<path()>|<url>|[<basic-shape>||<geometry-box>]',
      'offset-position': 'auto|<position>',
      'offset-rotate': '[auto|reverse]||<angle>',
      opacity: '<alpha-value>',
      order: '<integer>',
      orphans: '<integer>',
      outline: "[<'outline-color'>||<'outline-style'>||<'outline-width'>]",
      'outline-color': '<color>|invert',
      'outline-offset': '<length>',
      'outline-style': "auto|<'border-style'>",
      'outline-width': '<line-width>',
      overflow:
        '[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>',
      'overflow-anchor': 'auto|none',
      'overflow-block': 'visible|hidden|clip|scroll|auto',
      'overflow-clip-box': 'padding-box|content-box',
      'overflow-clip-margin': '<visual-box>||<length [0,\u221E]>',
      'overflow-inline': 'visible|hidden|clip|scroll|auto',
      'overflow-wrap': 'normal|break-word|anywhere',
      'overflow-x': 'visible|hidden|clip|scroll|auto',
      'overflow-y': 'visible|hidden|clip|scroll|auto',
      'overscroll-behavior': '[contain|none|auto]{1,2}',
      'overscroll-behavior-block': 'contain|none|auto',
      'overscroll-behavior-inline': 'contain|none|auto',
      'overscroll-behavior-x': 'contain|none|auto',
      'overscroll-behavior-y': 'contain|none|auto',
      padding: '[<length>|<percentage>]{1,4}',
      'padding-block': "<'padding-left'>{1,2}",
      'padding-block-end': "<'padding-left'>",
      'padding-block-start': "<'padding-left'>",
      'padding-bottom': '<length>|<percentage>',
      'padding-inline': "<'padding-left'>{1,2}",
      'padding-inline-end': "<'padding-left'>",
      'padding-inline-start': "<'padding-left'>",
      'padding-left': '<length>|<percentage>',
      'padding-right': '<length>|<percentage>',
      'padding-top': '<length>|<percentage>',
      'page-break-after': 'auto|always|avoid|left|right|recto|verso',
      'page-break-before': 'auto|always|avoid|left|right|recto|verso',
      'page-break-inside': 'auto|avoid',
      'paint-order': 'normal|[fill||stroke||markers]',
      perspective: 'none|<length>',
      'perspective-origin': '<position>',
      'place-content': "<'align-content'> <'justify-content'>?",
      'place-items': "<'align-items'> <'justify-items'>?",
      'place-self': "<'align-self'> <'justify-self'>?",
      'pointer-events':
        'auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit',
      position: 'static|relative|absolute|sticky|fixed|-webkit-sticky',
      quotes: 'none|auto|[<string> <string>]+',
      resize: 'none|both|horizontal|vertical|block|inline',
      right: '<length>|<percentage>|auto',
      rotate: 'none|<angle>|[x|y|z|<number>{3}]&&<angle>',
      'row-gap': 'normal|<length-percentage>',
      'ruby-align': 'start|center|space-between|space-around',
      'ruby-merge': 'separate|collapse|auto',
      'ruby-position': '[alternate||[over|under]]|inter-character',
      scale: 'none|<number>{1,3}',
      'scrollbar-color': 'auto|<color>{2}',
      'scrollbar-gutter': 'auto|stable&&both-edges?',
      'scrollbar-width': 'auto|thin|none',
      'scroll-behavior': 'auto|smooth',
      'scroll-margin': '<length>{1,4}',
      'scroll-margin-block': '<length>{1,2}',
      'scroll-margin-block-start': '<length>',
      'scroll-margin-block-end': '<length>',
      'scroll-margin-bottom': '<length>',
      'scroll-margin-inline': '<length>{1,2}',
      'scroll-margin-inline-start': '<length>',
      'scroll-margin-inline-end': '<length>',
      'scroll-margin-left': '<length>',
      'scroll-margin-right': '<length>',
      'scroll-margin-top': '<length>',
      'scroll-padding': '[auto|<length-percentage>]{1,4}',
      'scroll-padding-block': '[auto|<length-percentage>]{1,2}',
      'scroll-padding-block-start': 'auto|<length-percentage>',
      'scroll-padding-block-end': 'auto|<length-percentage>',
      'scroll-padding-bottom': 'auto|<length-percentage>',
      'scroll-padding-inline': '[auto|<length-percentage>]{1,2}',
      'scroll-padding-inline-start': 'auto|<length-percentage>',
      'scroll-padding-inline-end': 'auto|<length-percentage>',
      'scroll-padding-left': 'auto|<length-percentage>',
      'scroll-padding-right': 'auto|<length-percentage>',
      'scroll-padding-top': 'auto|<length-percentage>',
      'scroll-snap-align': '[none|start|end|center]{1,2}',
      'scroll-snap-coordinate': 'none|<position>#',
      'scroll-snap-destination': '<position>',
      'scroll-snap-points-x': 'none|repeat( <length-percentage> )',
      'scroll-snap-points-y': 'none|repeat( <length-percentage> )',
      'scroll-snap-stop': 'normal|always',
      'scroll-snap-type': 'none|[x|y|block|inline|both] [mandatory|proximity]?',
      'scroll-snap-type-x': 'none|mandatory|proximity',
      'scroll-snap-type-y': 'none|mandatory|proximity',
      'shape-image-threshold': '<alpha-value>',
      'shape-margin': '<length-percentage>',
      'shape-outside': 'none|[<shape-box>||<basic-shape>]|<image>',
      'tab-size': '<integer>|<length>',
      'table-layout': 'auto|fixed',
      'text-align': 'start|end|left|right|center|justify|match-parent',
      'text-align-last': 'auto|start|end|left|right|center|justify',
      'text-combine-upright': 'none|all|[digits <integer>?]',
      'text-decoration':
        "<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>",
      'text-decoration-color': '<color>',
      'text-decoration-line':
        'none|[underline||overline||line-through||blink]|spelling-error|grammar-error',
      'text-decoration-skip':
        'none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]',
      'text-decoration-skip-ink': 'auto|all|none',
      'text-decoration-style': 'solid|double|dotted|dashed|wavy',
      'text-decoration-thickness': 'auto|from-font|<length>|<percentage>',
      'text-emphasis': "<'text-emphasis-style'>||<'text-emphasis-color'>",
      'text-emphasis-color': '<color>',
      'text-emphasis-position': '[over|under]&&[right|left]',
      'text-emphasis-style':
        'none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>',
      'text-indent': '<length-percentage>&&hanging?&&each-line?',
      'text-justify': 'auto|inter-character|inter-word|none',
      'text-orientation': 'mixed|upright|sideways',
      'text-overflow': '[clip|ellipsis|<string>]{1,2}',
      'text-rendering':
        'auto|optimizeSpeed|optimizeLegibility|geometricPrecision',
      'text-shadow': 'none|<shadow-t>#',
      'text-size-adjust': 'none|auto|<percentage>',
      'text-transform':
        'none|capitalize|uppercase|lowercase|full-width|full-size-kana',
      'text-underline-offset': 'auto|<length>|<percentage>',
      'text-underline-position': 'auto|from-font|[under||[left|right]]',
      top: '<length>|<percentage>|auto',
      'touch-action':
        'auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation',
      transform: 'none|<transform-list>',
      'transform-box': 'content-box|border-box|fill-box|stroke-box|view-box',
      'transform-origin':
        '[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?',
      'transform-style': 'flat|preserve-3d',
      transition: '<single-transition>#',
      'transition-delay': '<time>#',
      'transition-duration': '<time>#',
      'transition-property': 'none|<single-transition-property>#',
      'transition-timing-function': '<easing-function>#',
      translate: 'none|<length-percentage> [<length-percentage> <length>?]?',
      'unicode-bidi':
        'normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext',
      'user-select': 'auto|text|none|contain|all',
      'vertical-align':
        'baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>',
      visibility: 'visible|hidden|collapse',
      'white-space': 'normal|pre|nowrap|pre-wrap|pre-line|break-spaces',
      widows: '<integer>',
      width:
        'auto|<length>|<percentage>|min-content|max-content|fit-content|fit-content( <length-percentage> )|fill|stretch|intrinsic|-moz-max-content|-webkit-max-content|-moz-fit-content|-webkit-fit-content',
      'will-change': 'auto|<animateable-feature>#',
      'word-break': 'normal|break-all|keep-all|break-word',
      'word-spacing': 'normal|<length>',
      'word-wrap': 'normal|break-word',
      'writing-mode':
        'horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>',
      'z-index': 'auto|<integer>',
      zoom: 'normal|reset|<number>|<percentage>',
      '-moz-background-clip': 'padding|border',
      '-moz-border-radius-bottomleft': "<'border-bottom-left-radius'>",
      '-moz-border-radius-bottomright': "<'border-bottom-right-radius'>",
      '-moz-border-radius-topleft': "<'border-top-left-radius'>",
      '-moz-border-radius-topright': "<'border-bottom-right-radius'>",
      '-moz-control-character-visibility': 'visible|hidden',
      '-moz-osx-font-smoothing': 'auto|grayscale',
      '-moz-user-select': 'none|text|all|-moz-none',
      '-ms-flex-align': 'start|end|center|baseline|stretch',
      '-ms-flex-item-align': 'auto|start|end|center|baseline|stretch',
      '-ms-flex-line-pack': 'start|end|center|justify|distribute|stretch',
      '-ms-flex-negative': "<'flex-shrink'>",
      '-ms-flex-pack': 'start|end|center|justify|distribute',
      '-ms-flex-order': '<integer>',
      '-ms-flex-positive': "<'flex-grow'>",
      '-ms-flex-preferred-size': "<'flex-basis'>",
      '-ms-interpolation-mode': 'nearest-neighbor|bicubic',
      '-ms-grid-column-align': 'start|end|center|stretch',
      '-ms-grid-row-align': 'start|end|center|stretch',
      '-ms-hyphenate-limit-last': 'none|always|column|page|spread',
      '-webkit-background-clip': '[<box>|border|padding|content|text]#',
      '-webkit-column-break-after': 'always|auto|avoid',
      '-webkit-column-break-before': 'always|auto|avoid',
      '-webkit-column-break-inside': 'always|auto|avoid',
      '-webkit-font-smoothing': 'auto|none|antialiased|subpixel-antialiased',
      '-webkit-mask-box-image':
        '[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?',
      '-webkit-print-color-adjust': 'economy|exact',
      '-webkit-text-security': 'none|circle|disc|square',
      '-webkit-user-drag': 'none|element|auto',
      '-webkit-user-select': 'auto|none|text|all',
      'alignment-baseline':
        'auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical',
      'baseline-shift': 'baseline|sub|super|<svg-length>',
      behavior: '<url>+',
      'clip-rule': 'nonzero|evenodd',
      cue: "<'cue-before'> <'cue-after'>?",
      'cue-after': '<url> <decibel>?|none',
      'cue-before': '<url> <decibel>?|none',
      'dominant-baseline':
        'auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge',
      fill: '<paint>',
      'fill-opacity': '<number-zero-one>',
      'fill-rule': 'nonzero|evenodd',
      'glyph-orientation-horizontal': '<angle>',
      'glyph-orientation-vertical': '<angle>',
      kerning: 'auto|<svg-length>',
      marker: 'none|<url>',
      'marker-end': 'none|<url>',
      'marker-mid': 'none|<url>',
      'marker-start': 'none|<url>',
      pause: "<'pause-before'> <'pause-after'>?",
      'pause-after': '<time>|none|x-weak|weak|medium|strong|x-strong',
      'pause-before': '<time>|none|x-weak|weak|medium|strong|x-strong',
      rest: "<'rest-before'> <'rest-after'>?",
      'rest-after': '<time>|none|x-weak|weak|medium|strong|x-strong',
      'rest-before': '<time>|none|x-weak|weak|medium|strong|x-strong',
      'shape-rendering': 'auto|optimizeSpeed|crispEdges|geometricPrecision',
      src: '[<url> [format( <string># )]?|local( <family-name> )]#',
      speak: 'auto|none|normal',
      'speak-as':
        'normal|spell-out||digits||[literal-punctuation|no-punctuation]',
      stroke: '<paint>',
      'stroke-dasharray': 'none|[<svg-length>+]#',
      'stroke-dashoffset': '<svg-length>',
      'stroke-linecap': 'butt|round|square',
      'stroke-linejoin': 'miter|round|bevel',
      'stroke-miterlimit': '<number-one-or-greater>',
      'stroke-opacity': '<number-zero-one>',
      'stroke-width': '<svg-length>',
      'text-anchor': 'start|middle|end',
      'unicode-range': '<urange>#',
      'voice-balance': '<number>|left|center|right|leftwards|rightwards',
      'voice-duration': 'auto|<time>',
      'voice-family':
        '[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve',
      'voice-pitch':
        '<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]',
      'voice-range':
        '<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]',
      'voice-rate': '[normal|x-slow|slow|medium|fast|x-fast]||<percentage>',
      'voice-stress': 'normal|strong|moderate|none|reduced',
      'voice-volume': 'silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]',
    },
    atrules: {
      charset: { prelude: '<string>', descriptors: null },
      'counter-style': {
        prelude: '<counter-style-name>',
        descriptors: {
          'additive-symbols': '[<integer>&&<symbol>]#',
          fallback: '<counter-style-name>',
          negative: '<symbol> <symbol>?',
          pad: '<integer>&&<symbol>',
          prefix: '<symbol>',
          range: '[[<integer>|infinite]{2}]#|auto',
          'speak-as':
            'auto|bullets|numbers|words|spell-out|<counter-style-name>',
          suffix: '<symbol>',
          symbols: '<symbol>+',
          system:
            'cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]',
        },
      },
      document: {
        prelude:
          '[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#',
        descriptors: null,
      },
      'font-face': {
        prelude: null,
        descriptors: {
          'ascent-override': 'normal|<percentage>',
          'descent-override': 'normal|<percentage>',
          'font-display': '[auto|block|swap|fallback|optional]',
          'font-family': '<family-name>',
          'font-feature-settings': 'normal|<feature-tag-value>#',
          'font-variation-settings': 'normal|[<string> <number>]#',
          'font-stretch': '<font-stretch-absolute>{1,2}',
          'font-style': 'normal|italic|oblique <angle>{0,2}',
          'font-weight': '<font-weight-absolute>{1,2}',
          'font-variant':
            'normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]',
          'line-gap-override': 'normal|<percentage>',
          'size-adjust': '<percentage>',
          src: '[<url> [format( <string># )]?|local( <family-name> )]#',
          'unicode-range': '<urange>#',
        },
      },
      'font-feature-values': { prelude: '<family-name>#', descriptors: null },
      import: {
        prelude:
          '[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?',
        descriptors: null,
      },
      keyframes: { prelude: '<keyframes-name>', descriptors: null },
      layer: { prelude: '[<layer-name>#|<layer-name>?]', descriptors: null },
      media: { prelude: '<media-query-list>', descriptors: null },
      namespace: {
        prelude: '<namespace-prefix>? [<string>|<url>]',
        descriptors: null,
      },
      page: {
        prelude: '<page-selector-list>',
        descriptors: {
          bleed: 'auto|<length>',
          marks: 'none|[crop||cross]',
          size: '<length>{1,2}|auto|[<page-size>||[portrait|landscape]]',
        },
      },
      property: {
        prelude: '<custom-property-name>',
        descriptors: {
          syntax: '<string>',
          inherits: 'true|false',
          'initial-value': '<string>',
        },
      },
      'scroll-timeline': { prelude: '<timeline-name>', descriptors: null },
      supports: { prelude: '<supports-condition>', descriptors: null },
      viewport: {
        prelude: null,
        descriptors: {
          height: '<viewport-length>{1,2}',
          'max-height': '<viewport-length>',
          'max-width': '<viewport-length>',
          'max-zoom': 'auto|<number>|<percentage>',
          'min-height': '<viewport-length>',
          'min-width': '<viewport-length>',
          'min-zoom': 'auto|<number>|<percentage>',
          orientation: 'auto|portrait|landscape',
          'user-zoom': 'zoom|fixed',
          'viewport-fit': 'auto|contain|cover',
          width: '<viewport-length>{1,2}',
          zoom: 'auto|<number>|<percentage>',
        },
      },
    },
  };
  var It = {};
  b(It, {
    AnPlusB: () => wn,
    Atrule: () => Sn,
    AtrulePrelude: () => An,
    AttributeSelector: () => Ln,
    Block: () => In,
    Brackets: () => Dn,
    CDC: () => Mn,
    CDO: () => zn,
    ClassSelector: () => Bn,
    Combinator: () => Un,
    Comment: () => qn,
    Declaration: () => Wn,
    DeclarationList: () => Vn,
    Dimension: () => Kn,
    Function: () => $n,
    Hash: () => Zn,
    IdSelector: () => ro,
    Identifier: () => eo,
    MediaFeature: () => oo,
    MediaQuery: () => ao,
    MediaQueryList: () => lo,
    Nth: () => uo,
    Number: () => ho,
    Operator: () => mo,
    Parentheses: () => bo,
    Percentage: () => xo,
    PseudoClassSelector: () => wo,
    PseudoElementSelector: () => So,
    Ratio: () => Ao,
    Raw: () => To,
    Rule: () => Po,
    Selector: () => Oo,
    SelectorList: () => No,
    String: () => Fo,
    StyleSheet: () => _o,
    TypeSelector: () => qo,
    UnicodeRange: () => Yo,
    Url: () => $o,
    Value: () => Zo,
    WhiteSpace: () => ei,
  });
  var wn = {};
  b(wn, {
    generate: () => ep,
    name: () => Zu,
    parse: () => kn,
    structure: () => Ju,
  });
  var be = 43,
    ie = 45,
    dr = 110,
    Fe = !0,
    Xu = !1;
  function gr(e, t) {
    let r = this.tokenStart + e,
      n = this.charCodeAt(r);
    for (
      (n === be || n === ie) &&
      (t && this.error('Number sign is not allowed'), r++);
      r < this.tokenEnd;
      r++
    )
      j(this.charCodeAt(r)) || this.error('Integer is expected', r);
  }
  function rt(e) {
    return gr.call(this, 0, e);
  }
  function Ie(e, t) {
    if (!this.cmpChar(this.tokenStart + e, t)) {
      let r = '';
      switch (t) {
        case dr:
          r = 'N is expected';
          break;
        case ie:
          r = 'HyphenMinus is expected';
          break;
      }
      this.error(r, this.tokenStart + e);
    }
  }
  function xn() {
    let e = 0,
      t = 0,
      r = this.tokenType;
    for (; r === 13 || r === 25; ) r = this.lookupType(++e);
    if (r !== 10)
      if (this.isDelim(be, e) || this.isDelim(ie, e)) {
        t = this.isDelim(be, e) ? be : ie;
        do r = this.lookupType(++e);
        while (r === 13 || r === 25);
        r !== 10 && (this.skip(e), rt.call(this, Fe));
      } else return null;
    return (
      e > 0 && this.skip(e),
      t === 0 &&
        ((r = this.charCodeAt(this.tokenStart)),
        r !== be && r !== ie && this.error('Number sign is expected')),
      rt.call(this, t !== 0),
      t === ie ? '-' + this.consume(10) : this.consume(10)
    );
  }
  var Zu = 'AnPlusB',
    Ju = { a: [String, null], b: [String, null] };
  function kn() {
    let e = this.tokenStart,
      t = null,
      r = null;
    if (this.tokenType === 10) rt.call(this, Xu), (r = this.consume(10));
    else if (this.tokenType === 1 && this.cmpChar(this.tokenStart, ie))
      switch (
        ((t = '-1'), Ie.call(this, 1, dr), this.tokenEnd - this.tokenStart)
      ) {
        case 2:
          this.next(), (r = xn.call(this));
          break;
        case 3:
          Ie.call(this, 2, ie),
            this.next(),
            this.skipSC(),
            rt.call(this, Fe),
            (r = '-' + this.consume(10));
          break;
        default:
          Ie.call(this, 2, ie),
            gr.call(this, 3, Fe),
            this.next(),
            (r = this.substrToCursor(e + 2));
      }
    else if (
      this.tokenType === 1 ||
      (this.isDelim(be) && this.lookupType(1) === 1)
    ) {
      let n = 0;
      switch (
        ((t = '1'),
        this.isDelim(be) && ((n = 1), this.next()),
        Ie.call(this, 0, dr),
        this.tokenEnd - this.tokenStart)
      ) {
        case 1:
          this.next(), (r = xn.call(this));
          break;
        case 2:
          Ie.call(this, 1, ie),
            this.next(),
            this.skipSC(),
            rt.call(this, Fe),
            (r = '-' + this.consume(10));
          break;
        default:
          Ie.call(this, 1, ie),
            gr.call(this, 2, Fe),
            this.next(),
            (r = this.substrToCursor(e + n + 1));
      }
    } else if (this.tokenType === 12) {
      let n = this.charCodeAt(this.tokenStart),
        o = n === be || n === ie,
        i = this.tokenStart + o;
      for (; i < this.tokenEnd && j(this.charCodeAt(i)); i++);
      i === this.tokenStart + o &&
        this.error('Integer is expected', this.tokenStart + o),
        Ie.call(this, i - this.tokenStart, dr),
        (t = this.substring(e, i)),
        i + 1 === this.tokenEnd ?
          (this.next(), (r = xn.call(this)))
        : (Ie.call(this, i - this.tokenStart + 1, ie),
          i + 2 === this.tokenEnd ?
            (this.next(),
            this.skipSC(),
            rt.call(this, Fe),
            (r = '-' + this.consume(10)))
          : (gr.call(this, i - this.tokenStart + 2, Fe),
            this.next(),
            (r = this.substrToCursor(i + 1))));
    } else this.error();
    return (
      t !== null && t.charCodeAt(0) === be && (t = t.substr(1)),
      r !== null && r.charCodeAt(0) === be && (r = r.substr(1)),
      { type: 'AnPlusB', loc: this.getLocation(e, this.tokenStart), a: t, b: r }
    );
  }
  function ep(e) {
    if (e.a) {
      let t =
        (e.a === '+1' && 'n') ||
        (e.a === '1' && 'n') ||
        (e.a === '-1' && '-n') ||
        e.a + 'n';
      if (e.b) {
        let r = e.b[0] === '-' || e.b[0] === '+' ? e.b : '+' + e.b;
        this.tokenize(t + r);
      } else this.tokenize(t);
    } else this.tokenize(e.b);
  }
  var Sn = {};
  b(Sn, {
    generate: () => ip,
    name: () => rp,
    parse: () => vn,
    structure: () => op,
    walkContext: () => np,
  });
  function xs(e) {
    return this.Raw(e, this.consumeUntilLeftCurlyBracketOrSemicolon, !0);
  }
  function tp() {
    for (let e = 1, t; (t = this.lookupType(e)); e++) {
      if (t === 24) return !0;
      if (t === 23 || t === 3) return !1;
    }
    return !1;
  }
  var rp = 'Atrule',
    np = 'atrule',
    op = {
      name: String,
      prelude: ['AtrulePrelude', 'Raw', null],
      block: ['Block', null],
    };
  function vn() {
    let e = this.tokenStart,
      t,
      r,
      n = null,
      o = null;
    switch (
      (this.eat(3),
      (t = this.substrToCursor(e + 1)),
      (r = t.toLowerCase()),
      this.skipSC(),
      this.eof === !1 &&
        this.tokenType !== 23 &&
        this.tokenType !== 17 &&
        (this.parseAtrulePrelude ?
          (n = this.parseWithFallback(this.AtrulePrelude.bind(this, t), xs))
        : (n = xs.call(this, this.tokenIndex)),
        this.skipSC()),
      this.tokenType)
    ) {
      case 17:
        this.next();
        break;
      case 23:
        (
          hasOwnProperty.call(this.atrule, r) &&
          typeof this.atrule[r].block == 'function'
        ) ?
          (o = this.atrule[r].block.call(this))
        : (o = this.Block(tp.call(this)));
        break;
    }
    return {
      type: 'Atrule',
      loc: this.getLocation(e, this.tokenStart),
      name: t,
      prelude: n,
      block: o,
    };
  }
  function ip(e) {
    this.token(3, '@' + e.name),
      e.prelude !== null && this.node(e.prelude),
      e.block ? this.node(e.block) : this.token(17, ';');
  }
  var An = {};
  b(An, {
    generate: () => cp,
    name: () => ap,
    parse: () => Cn,
    structure: () => lp,
    walkContext: () => sp,
  });
  var ap = 'AtrulePrelude',
    sp = 'atrulePrelude',
    lp = { children: [[]] };
  function Cn(e) {
    let t = null;
    return (
      e !== null && (e = e.toLowerCase()),
      this.skipSC(),
      (
        hasOwnProperty.call(this.atrule, e) &&
        typeof this.atrule[e].prelude == 'function'
      ) ?
        (t = this.atrule[e].prelude.call(this))
      : (t = this.readSequence(this.scope.AtrulePrelude)),
      this.skipSC(),
      this.eof !== !0 &&
        this.tokenType !== 23 &&
        this.tokenType !== 17 &&
        this.error('Semicolon or block is expected'),
      { type: 'AtrulePrelude', loc: this.getLocationFromList(t), children: t }
    );
  }
  function cp(e) {
    this.children(e);
  }
  var Ln = {};
  b(Ln, {
    generate: () => bp,
    name: () => dp,
    parse: () => Tn,
    structure: () => gp,
  });
  var up = 36,
    ks = 42,
    br = 61,
    pp = 94,
    En = 124,
    hp = 126;
  function fp() {
    this.eof && this.error('Unexpected end of input');
    let e = this.tokenStart,
      t = !1;
    return (
      this.isDelim(ks) ?
        ((t = !0), this.next())
      : this.isDelim(En) || this.eat(1),
      this.isDelim(En) ?
        this.charCodeAt(this.tokenStart + 1) !== br ?
          (this.next(), this.eat(1))
        : t && this.error('Identifier is expected', this.tokenEnd)
      : t && this.error('Vertical line is expected'),
      {
        type: 'Identifier',
        loc: this.getLocation(e, this.tokenStart),
        name: this.substrToCursor(e),
      }
    );
  }
  function mp() {
    let e = this.tokenStart,
      t = this.charCodeAt(e);
    return (
      t !== br &&
        t !== hp &&
        t !== pp &&
        t !== up &&
        t !== ks &&
        t !== En &&
        this.error('Attribute selector (=, ~=, ^=, $=, *=, |=) is expected'),
      this.next(),
      t !== br &&
        (this.isDelim(br) || this.error('Equal sign is expected'), this.next()),
      this.substrToCursor(e)
    );
  }
  var dp = 'AttributeSelector',
    gp = {
      name: 'Identifier',
      matcher: [String, null],
      value: ['String', 'Identifier', null],
      flags: [String, null],
    };
  function Tn() {
    let e = this.tokenStart,
      t,
      r = null,
      n = null,
      o = null;
    return (
      this.eat(19),
      this.skipSC(),
      (t = fp.call(this)),
      this.skipSC(),
      this.tokenType !== 20 &&
        (this.tokenType !== 1 &&
          ((r = mp.call(this)),
          this.skipSC(),
          (n = this.tokenType === 5 ? this.String() : this.Identifier()),
          this.skipSC()),
        this.tokenType === 1 && ((o = this.consume(1)), this.skipSC())),
      this.eat(20),
      {
        type: 'AttributeSelector',
        loc: this.getLocation(e, this.tokenStart),
        name: t,
        matcher: r,
        value: n,
        flags: o,
      }
    );
  }
  function bp(e) {
    this.token(9, '['),
      this.node(e.name),
      e.matcher !== null && (this.tokenize(e.matcher), this.node(e.value)),
      e.flags !== null && this.token(1, e.flags),
      this.token(9, ']');
  }
  var In = {};
  b(In, {
    generate: () => Sp,
    name: () => kp,
    parse: () => Pn,
    structure: () => vp,
    walkContext: () => wp,
  });
  function vs(e) {
    return this.Raw(e, null, !0);
  }
  function yp() {
    return this.parseWithFallback(this.Rule, vs);
  }
  function ws(e) {
    return this.Raw(e, this.consumeUntilSemicolonIncluded, !0);
  }
  function xp() {
    if (this.tokenType === 17) return ws.call(this, this.tokenIndex);
    let e = this.parseWithFallback(this.Declaration, ws);
    return this.tokenType === 17 && this.next(), e;
  }
  var kp = 'Block',
    wp = 'block',
    vp = { children: [['Atrule', 'Rule', 'Declaration']] };
  function Pn(e) {
    let t = e ? xp : yp,
      r = this.tokenStart,
      n = this.createList();
    this.eat(23);
    e: for (; !this.eof; )
      switch (this.tokenType) {
        case 24:
          break e;
        case 13:
        case 25:
          this.next();
          break;
        case 3:
          n.push(this.parseWithFallback(this.Atrule, vs));
          break;
        default:
          n.push(t.call(this));
      }
    return (
      this.eof || this.eat(24),
      { type: 'Block', loc: this.getLocation(r, this.tokenStart), children: n }
    );
  }
  function Sp(e) {
    this.token(23, '{'),
      this.children(e, (t) => {
        t.type === 'Declaration' && this.token(17, ';');
      }),
      this.token(24, '}');
  }
  var Dn = {};
  b(Dn, {
    generate: () => Ep,
    name: () => Cp,
    parse: () => On,
    structure: () => Ap,
  });
  var Cp = 'Brackets',
    Ap = { children: [[]] };
  function On(e, t) {
    let r = this.tokenStart,
      n = null;
    return (
      this.eat(19),
      (n = e.call(this, t)),
      this.eof || this.eat(20),
      {
        type: 'Brackets',
        loc: this.getLocation(r, this.tokenStart),
        children: n,
      }
    );
  }
  function Ep(e) {
    this.token(9, '['), this.children(e), this.token(9, ']');
  }
  var Mn = {};
  b(Mn, {
    generate: () => Pp,
    name: () => Tp,
    parse: () => Nn,
    structure: () => Lp,
  });
  var Tp = 'CDC',
    Lp = [];
  function Nn() {
    let e = this.tokenStart;
    return (
      this.eat(15), { type: 'CDC', loc: this.getLocation(e, this.tokenStart) }
    );
  }
  function Pp() {
    this.token(15, '-->');
  }
  var zn = {};
  b(zn, {
    generate: () => Dp,
    name: () => Ip,
    parse: () => Rn,
    structure: () => Op,
  });
  var Ip = 'CDO',
    Op = [];
  function Rn() {
    let e = this.tokenStart;
    return (
      this.eat(14), { type: 'CDO', loc: this.getLocation(e, this.tokenStart) }
    );
  }
  function Dp() {
    this.token(14, '<!--');
  }
  var Bn = {};
  b(Bn, {
    generate: () => zp,
    name: () => Mp,
    parse: () => Fn,
    structure: () => Rp,
  });
  var Np = 46,
    Mp = 'ClassSelector',
    Rp = { name: String };
  function Fn() {
    return (
      this.eatDelim(Np),
      {
        type: 'ClassSelector',
        loc: this.getLocation(this.tokenStart - 1, this.tokenEnd),
        name: this.consume(1),
      }
    );
  }
  function zp(e) {
    this.token(9, '.'), this.token(1, e.name);
  }
  var Un = {};
  b(Un, {
    generate: () => qp,
    name: () => Up,
    parse: () => _n,
    structure: () => jp,
  });
  var Fp = 43,
    Ss = 47,
    Bp = 62,
    _p = 126,
    Up = 'Combinator',
    jp = { name: String };
  function _n() {
    let e = this.tokenStart,
      t;
    switch (this.tokenType) {
      case 13:
        t = ' ';
        break;
      case 9:
        switch (this.charCodeAt(this.tokenStart)) {
          case Bp:
          case Fp:
          case _p:
            this.next();
            break;
          case Ss:
            this.next(), this.eatIdent('deep'), this.eatDelim(Ss);
            break;
          default:
            this.error('Combinator is expected');
        }
        t = this.substrToCursor(e);
        break;
    }
    return {
      type: 'Combinator',
      loc: this.getLocation(e, this.tokenStart),
      name: t,
    };
  }
  function qp(e) {
    this.tokenize(e.name);
  }
  var qn = {};
  b(qn, {
    generate: () => Gp,
    name: () => Yp,
    parse: () => jn,
    structure: () => Vp,
  });
  var Hp = 42,
    Wp = 47,
    Yp = 'Comment',
    Vp = { value: String };
  function jn() {
    let e = this.tokenStart,
      t = this.tokenEnd;
    return (
      this.eat(25),
      t - e + 2 >= 2 &&
        this.charCodeAt(t - 2) === Hp &&
        this.charCodeAt(t - 1) === Wp &&
        (t -= 2),
      {
        type: 'Comment',
        loc: this.getLocation(e, this.tokenStart),
        value: this.substring(e + 2, t),
      }
    );
  }
  function Gp(e) {
    this.token(25, '/*' + e.value + '*/');
  }
  var Wn = {};
  b(Wn, {
    generate: () => ih,
    name: () => rh,
    parse: () => Hn,
    structure: () => oh,
    walkContext: () => nh,
  });
  var As = 33,
    Kp = 35,
    Qp = 36,
    $p = 38,
    Xp = 42,
    Zp = 43,
    Cs = 47;
  function Jp(e) {
    return this.Raw(e, this.consumeUntilExclamationMarkOrSemicolon, !0);
  }
  function eh(e) {
    return this.Raw(e, this.consumeUntilExclamationMarkOrSemicolon, !1);
  }
  function th() {
    let e = this.tokenIndex,
      t = this.Value();
    return (
      t.type !== 'Raw' &&
        this.eof === !1 &&
        this.tokenType !== 17 &&
        this.isDelim(As) === !1 &&
        this.isBalanceEdge(e) === !1 &&
        this.error(),
      t
    );
  }
  var rh = 'Declaration',
    nh = 'declaration',
    oh = {
      important: [Boolean, String],
      property: String,
      value: ['Value', 'Raw'],
    };
  function Hn() {
    let e = this.tokenStart,
      t = this.tokenIndex,
      r = ah.call(this),
      n = tr(r),
      o = n ? this.parseCustomProperty : this.parseValue,
      i = n ? eh : Jp,
      a = !1,
      l;
    this.skipSC(), this.eat(16);
    let c = this.tokenIndex;
    if (
      (n || this.skipSC(),
      o ?
        (l = this.parseWithFallback(th, i))
      : (l = i.call(this, this.tokenIndex)),
      n && l.type === 'Value' && l.children.isEmpty)
    ) {
      for (let s = c - this.tokenIndex; s <= 0; s++)
        if (this.lookupType(s) === 13) {
          l.children.appendData({ type: 'WhiteSpace', loc: null, value: ' ' });
          break;
        }
    }
    return (
      this.isDelim(As) && ((a = sh.call(this)), this.skipSC()),
      this.eof === !1 &&
        this.tokenType !== 17 &&
        this.isBalanceEdge(t) === !1 &&
        this.error(),
      {
        type: 'Declaration',
        loc: this.getLocation(e, this.tokenStart),
        important: a,
        property: r,
        value: l,
      }
    );
  }
  function ih(e) {
    this.token(1, e.property),
      this.token(16, ':'),
      this.node(e.value),
      e.important &&
        (this.token(9, '!'),
        this.token(1, e.important === !0 ? 'important' : e.important));
  }
  function ah() {
    let e = this.tokenStart;
    if (this.tokenType === 9)
      switch (this.charCodeAt(this.tokenStart)) {
        case Xp:
        case Qp:
        case Zp:
        case Kp:
        case $p:
          this.next();
          break;
        case Cs:
          this.next(), this.isDelim(Cs) && this.next();
          break;
      }
    return (
      this.tokenType === 4 ? this.eat(4) : this.eat(1), this.substrToCursor(e)
    );
  }
  function sh() {
    this.eat(9), this.skipSC();
    let e = this.consume(1);
    return e === 'important' ? !0 : e;
  }
  var Vn = {};
  b(Vn, {
    generate: () => ph,
    name: () => ch,
    parse: () => Yn,
    structure: () => uh,
  });
  function lh(e) {
    return this.Raw(e, this.consumeUntilSemicolonIncluded, !0);
  }
  var ch = 'DeclarationList',
    uh = { children: [['Declaration']] };
  function Yn() {
    let e = this.createList();
    e: for (; !this.eof; )
      switch (this.tokenType) {
        case 13:
        case 25:
        case 17:
          this.next();
          break;
        default:
          e.push(this.parseWithFallback(this.Declaration, lh));
      }
    return {
      type: 'DeclarationList',
      loc: this.getLocationFromList(e),
      children: e,
    };
  }
  function ph(e) {
    this.children(e, (t) => {
      t.type === 'Declaration' && this.token(17, ';');
    });
  }
  var Kn = {};
  b(Kn, {
    generate: () => mh,
    name: () => hh,
    parse: () => Gn,
    structure: () => fh,
  });
  var hh = 'Dimension',
    fh = { value: String, unit: String };
  function Gn() {
    let e = this.tokenStart,
      t = this.consumeNumber(12);
    return {
      type: 'Dimension',
      loc: this.getLocation(e, this.tokenStart),
      value: t,
      unit: this.substring(e + t.length, this.tokenStart),
    };
  }
  function mh(e) {
    this.token(12, e.value + e.unit);
  }
  var $n = {};
  b($n, {
    generate: () => yh,
    name: () => dh,
    parse: () => Qn,
    structure: () => bh,
    walkContext: () => gh,
  });
  var dh = 'Function',
    gh = 'function',
    bh = { name: String, children: [[]] };
  function Qn(e, t) {
    let r = this.tokenStart,
      n = this.consumeFunctionName(),
      o = n.toLowerCase(),
      i;
    return (
      (i = t.hasOwnProperty(o) ? t[o].call(this, t) : e.call(this, t)),
      this.eof || this.eat(22),
      {
        type: 'Function',
        loc: this.getLocation(r, this.tokenStart),
        name: n,
        children: i,
      }
    );
  }
  function yh(e) {
    this.token(2, e.name + '('), this.children(e), this.token(22, ')');
  }
  var Zn = {};
  b(Zn, {
    generate: () => vh,
    name: () => kh,
    parse: () => Xn,
    structure: () => wh,
    xxx: () => xh,
  });
  var xh = 'XXX',
    kh = 'Hash',
    wh = { value: String };
  function Xn() {
    let e = this.tokenStart;
    return (
      this.eat(4),
      {
        type: 'Hash',
        loc: this.getLocation(e, this.tokenStart),
        value: this.substrToCursor(e + 1),
      }
    );
  }
  function vh(e) {
    this.token(4, '#' + e.value);
  }
  var eo = {};
  b(eo, {
    generate: () => Ah,
    name: () => Sh,
    parse: () => Jn,
    structure: () => Ch,
  });
  var Sh = 'Identifier',
    Ch = { name: String };
  function Jn() {
    return {
      type: 'Identifier',
      loc: this.getLocation(this.tokenStart, this.tokenEnd),
      name: this.consume(1),
    };
  }
  function Ah(e) {
    this.token(1, e.name);
  }
  var ro = {};
  b(ro, {
    generate: () => Lh,
    name: () => Eh,
    parse: () => to,
    structure: () => Th,
  });
  var Eh = 'IdSelector',
    Th = { name: String };
  function to() {
    let e = this.tokenStart;
    return (
      this.eat(4),
      {
        type: 'IdSelector',
        loc: this.getLocation(e, this.tokenStart),
        name: this.substrToCursor(e + 1),
      }
    );
  }
  function Lh(e) {
    this.token(9, '#' + e.name);
  }
  var oo = {};
  b(oo, {
    generate: () => Oh,
    name: () => Ph,
    parse: () => no,
    structure: () => Ih,
  });
  var Ph = 'MediaFeature',
    Ih = {
      name: String,
      value: ['Identifier', 'Number', 'Dimension', 'Ratio', null],
    };
  function no() {
    let e = this.tokenStart,
      t,
      r = null;
    if (
      (this.eat(21),
      this.skipSC(),
      (t = this.consume(1)),
      this.skipSC(),
      this.tokenType !== 22)
    ) {
      switch ((this.eat(16), this.skipSC(), this.tokenType)) {
        case 10:
          this.lookupNonWSType(1) === 9 ?
            (r = this.Ratio())
          : (r = this.Number());
          break;
        case 12:
          r = this.Dimension();
          break;
        case 1:
          r = this.Identifier();
          break;
        default:
          this.error('Number, dimension, ratio or identifier is expected');
      }
      this.skipSC();
    }
    return (
      this.eat(22),
      {
        type: 'MediaFeature',
        loc: this.getLocation(e, this.tokenStart),
        name: t,
        value: r,
      }
    );
  }
  function Oh(e) {
    this.token(21, '('),
      this.token(1, e.name),
      e.value !== null && (this.token(16, ':'), this.node(e.value)),
      this.token(22, ')');
  }
  var ao = {};
  b(ao, {
    generate: () => Mh,
    name: () => Dh,
    parse: () => io,
    structure: () => Nh,
  });
  var Dh = 'MediaQuery',
    Nh = { children: [['Identifier', 'MediaFeature', 'WhiteSpace']] };
  function io() {
    let e = this.createList(),
      t = null;
    this.skipSC();
    e: for (; !this.eof; ) {
      switch (this.tokenType) {
        case 25:
        case 13:
          this.next();
          continue;
        case 1:
          t = this.Identifier();
          break;
        case 21:
          t = this.MediaFeature();
          break;
        default:
          break e;
      }
      e.push(t);
    }
    return (
      t === null && this.error('Identifier or parenthesis is expected'),
      { type: 'MediaQuery', loc: this.getLocationFromList(e), children: e }
    );
  }
  function Mh(e) {
    this.children(e);
  }
  var lo = {};
  b(lo, {
    generate: () => Fh,
    name: () => Rh,
    parse: () => so,
    structure: () => zh,
  });
  var Rh = 'MediaQueryList',
    zh = { children: [['MediaQuery']] };
  function so() {
    let e = this.createList();
    for (
      this.skipSC();
      !this.eof && (e.push(this.MediaQuery()), this.tokenType === 18);

    )
      this.next();
    return {
      type: 'MediaQueryList',
      loc: this.getLocationFromList(e),
      children: e,
    };
  }
  function Fh(e) {
    this.children(e, () => this.token(18, ','));
  }
  var uo = {};
  b(uo, {
    generate: () => Uh,
    name: () => Bh,
    parse: () => co,
    structure: () => _h,
  });
  var Bh = 'Nth',
    _h = { nth: ['AnPlusB', 'Identifier'], selector: ['SelectorList', null] };
  function co() {
    this.skipSC();
    let e = this.tokenStart,
      t = e,
      r = null,
      n;
    return (
      this.lookupValue(0, 'odd') || this.lookupValue(0, 'even') ?
        (n = this.Identifier())
      : (n = this.AnPlusB()),
      (t = this.tokenStart),
      this.skipSC(),
      this.lookupValue(0, 'of') &&
        (this.next(), (r = this.SelectorList()), (t = this.tokenStart)),
      { type: 'Nth', loc: this.getLocation(e, t), nth: n, selector: r }
    );
  }
  function Uh(e) {
    this.node(e.nth),
      e.selector !== null && (this.token(1, 'of'), this.node(e.selector));
  }
  var ho = {};
  b(ho, {
    generate: () => Hh,
    name: () => jh,
    parse: () => po,
    structure: () => qh,
  });
  var jh = 'Number',
    qh = { value: String };
  function po() {
    return {
      type: 'Number',
      loc: this.getLocation(this.tokenStart, this.tokenEnd),
      value: this.consume(10),
    };
  }
  function Hh(e) {
    this.token(10, e.value);
  }
  var mo = {};
  b(mo, {
    generate: () => Vh,
    name: () => Wh,
    parse: () => fo,
    structure: () => Yh,
  });
  var Wh = 'Operator',
    Yh = { value: String };
  function fo() {
    let e = this.tokenStart;
    return (
      this.next(),
      {
        type: 'Operator',
        loc: this.getLocation(e, this.tokenStart),
        value: this.substrToCursor(e),
      }
    );
  }
  function Vh(e) {
    this.tokenize(e.value);
  }
  var bo = {};
  b(bo, {
    generate: () => Qh,
    name: () => Gh,
    parse: () => go,
    structure: () => Kh,
  });
  var Gh = 'Parentheses',
    Kh = { children: [[]] };
  function go(e, t) {
    let r = this.tokenStart,
      n = null;
    return (
      this.eat(21),
      (n = e.call(this, t)),
      this.eof || this.eat(22),
      {
        type: 'Parentheses',
        loc: this.getLocation(r, this.tokenStart),
        children: n,
      }
    );
  }
  function Qh(e) {
    this.token(21, '('), this.children(e), this.token(22, ')');
  }
  var xo = {};
  b(xo, {
    generate: () => Zh,
    name: () => $h,
    parse: () => yo,
    structure: () => Xh,
  });
  var $h = 'Percentage',
    Xh = { value: String };
  function yo() {
    return {
      type: 'Percentage',
      loc: this.getLocation(this.tokenStart, this.tokenEnd),
      value: this.consumeNumber(11),
    };
  }
  function Zh(e) {
    this.token(11, e.value + '%');
  }
  var wo = {};
  b(wo, {
    generate: () => rf,
    name: () => Jh,
    parse: () => ko,
    structure: () => tf,
    walkContext: () => ef,
  });
  var Jh = 'PseudoClassSelector',
    ef = 'function',
    tf = { name: String, children: [['Raw'], null] };
  function ko() {
    let e = this.tokenStart,
      t = null,
      r,
      n;
    return (
      this.eat(16),
      this.tokenType === 2 ?
        ((r = this.consumeFunctionName()),
        (n = r.toLowerCase()),
        hasOwnProperty.call(this.pseudo, n) ?
          (this.skipSC(), (t = this.pseudo[n].call(this)), this.skipSC())
        : ((t = this.createList()),
          t.push(this.Raw(this.tokenIndex, null, !1))),
        this.eat(22))
      : (r = this.consume(1)),
      {
        type: 'PseudoClassSelector',
        loc: this.getLocation(e, this.tokenStart),
        name: r,
        children: t,
      }
    );
  }
  function rf(e) {
    this.token(16, ':'),
      e.children === null ?
        this.token(1, e.name)
      : (this.token(2, e.name + '('), this.children(e), this.token(22, ')'));
  }
  var So = {};
  b(So, {
    generate: () => sf,
    name: () => nf,
    parse: () => vo,
    structure: () => af,
    walkContext: () => of,
  });
  var nf = 'PseudoElementSelector',
    of = 'function',
    af = { name: String, children: [['Raw'], null] };
  function vo() {
    let e = this.tokenStart,
      t = null,
      r,
      n;
    return (
      this.eat(16),
      this.eat(16),
      this.tokenType === 2 ?
        ((r = this.consumeFunctionName()),
        (n = r.toLowerCase()),
        hasOwnProperty.call(this.pseudo, n) ?
          (this.skipSC(), (t = this.pseudo[n].call(this)), this.skipSC())
        : ((t = this.createList()),
          t.push(this.Raw(this.tokenIndex, null, !1))),
        this.eat(22))
      : (r = this.consume(1)),
      {
        type: 'PseudoElementSelector',
        loc: this.getLocation(e, this.tokenStart),
        name: r,
        children: t,
      }
    );
  }
  function sf(e) {
    this.token(16, ':'),
      this.token(16, ':'),
      e.children === null ?
        this.token(1, e.name)
      : (this.token(2, e.name + '('), this.children(e), this.token(22, ')'));
  }
  var Ao = {};
  b(Ao, {
    generate: () => hf,
    name: () => uf,
    parse: () => Co,
    structure: () => pf,
  });
  var lf = 47,
    cf = 46;
  function Es() {
    this.skipSC();
    let e = this.consume(10);
    for (let t = 0; t < e.length; t++) {
      let r = e.charCodeAt(t);
      !j(r) &&
        r !== cf &&
        this.error(
          'Unsigned number is expected',
          this.tokenStart - e.length + t
        );
    }
    return (
      Number(e) === 0 &&
        this.error('Zero number is not allowed', this.tokenStart - e.length),
      e
    );
  }
  var uf = 'Ratio',
    pf = { left: String, right: String };
  function Co() {
    let e = this.tokenStart,
      t = Es.call(this),
      r;
    return (
      this.skipSC(),
      this.eatDelim(lf),
      (r = Es.call(this)),
      {
        type: 'Ratio',
        loc: this.getLocation(e, this.tokenStart),
        left: t,
        right: r,
      }
    );
  }
  function hf(e) {
    this.token(10, e.left), this.token(9, '/'), this.token(10, e.right);
  }
  var To = {};
  b(To, {
    generate: () => gf,
    name: () => mf,
    parse: () => Eo,
    structure: () => df,
  });
  function ff() {
    return (
      this.tokenIndex > 0 && this.lookupType(-1) === 13 ?
        this.tokenIndex > 1 ?
          this.getTokenStart(this.tokenIndex - 1)
        : this.firstCharOffset
      : this.tokenStart
    );
  }
  var mf = 'Raw',
    df = { value: String };
  function Eo(e, t, r) {
    let n = this.getTokenStart(e),
      o;
    return (
      this.skipUntilBalanced(e, t || this.consumeUntilBalanceEnd),
      r && this.tokenStart > n ? (o = ff.call(this)) : (o = this.tokenStart),
      { type: 'Raw', loc: this.getLocation(n, o), value: this.substring(n, o) }
    );
  }
  function gf(e) {
    this.tokenize(e.value);
  }
  var Po = {};
  b(Po, {
    generate: () => wf,
    name: () => yf,
    parse: () => Lo,
    structure: () => kf,
    walkContext: () => xf,
  });
  function Ts(e) {
    return this.Raw(e, this.consumeUntilLeftCurlyBracket, !0);
  }
  function bf() {
    let e = this.SelectorList();
    return (
      e.type !== 'Raw' &&
        this.eof === !1 &&
        this.tokenType !== 23 &&
        this.error(),
      e
    );
  }
  var yf = 'Rule',
    xf = 'rule',
    kf = { prelude: ['SelectorList', 'Raw'], block: ['Block'] };
  function Lo() {
    let e = this.tokenIndex,
      t = this.tokenStart,
      r,
      n;
    return (
      this.parseRulePrelude ?
        (r = this.parseWithFallback(bf, Ts))
      : (r = Ts.call(this, e)),
      (n = this.Block(!0)),
      {
        type: 'Rule',
        loc: this.getLocation(t, this.tokenStart),
        prelude: r,
        block: n,
      }
    );
  }
  function wf(e) {
    this.node(e.prelude), this.node(e.block);
  }
  var Oo = {};
  b(Oo, {
    generate: () => Cf,
    name: () => vf,
    parse: () => Io,
    structure: () => Sf,
  });
  var vf = 'Selector',
    Sf = {
      children: [
        [
          'TypeSelector',
          'IdSelector',
          'ClassSelector',
          'AttributeSelector',
          'PseudoClassSelector',
          'PseudoElementSelector',
          'Combinator',
          'WhiteSpace',
        ],
      ],
    };
  function Io() {
    let e = this.readSequence(this.scope.Selector);
    return (
      this.getFirstListNode(e) === null && this.error('Selector is expected'),
      { type: 'Selector', loc: this.getLocationFromList(e), children: e }
    );
  }
  function Cf(e) {
    this.children(e);
  }
  var No = {};
  b(No, {
    generate: () => Lf,
    name: () => Af,
    parse: () => Do,
    structure: () => Tf,
    walkContext: () => Ef,
  });
  var Af = 'SelectorList',
    Ef = 'selector',
    Tf = { children: [['Selector', 'Raw']] };
  function Do() {
    let e = this.createList();
    for (; !this.eof; ) {
      if ((e.push(this.Selector()), this.tokenType === 18)) {
        this.next();
        continue;
      }
      break;
    }
    return {
      type: 'SelectorList',
      loc: this.getLocationFromList(e),
      children: e,
    };
  }
  function Lf(e) {
    this.children(e, () => this.token(18, ','));
  }
  var Fo = {};
  b(Fo, {
    generate: () => Of,
    name: () => Pf,
    parse: () => zo,
    structure: () => If,
  });
  var nt = {};
  b(nt, { decode: () => Tt, encode: () => Ro });
  var Mo = 92,
    Ls = 34,
    Ps = 39;
  function Tt(e) {
    let t = e.length,
      r = e.charCodeAt(0),
      n = r === Ls || r === Ps ? 1 : 0,
      o = n === 1 && t > 1 && e.charCodeAt(t - 1) === r ? t - 2 : t - 1,
      i = '';
    for (let a = n; a <= o; a++) {
      let l = e.charCodeAt(a);
      if (l === Mo) {
        if (a === o) {
          a !== t - 1 && (i = e.substr(a + 1));
          break;
        }
        if (((l = e.charCodeAt(++a)), re(Mo, l))) {
          let c = a - 1,
            s = fe(e, c);
          (a = s - 1), (i += ft(e.substring(c + 1, s)));
        } else l === 13 && e.charCodeAt(a + 1) === 10 && a++;
      } else i += e[a];
    }
    return i;
  }
  function Ro(e, t) {
    let r = t ? "'" : '"',
      n = t ? Ps : Ls,
      o = '',
      i = !1;
    for (let a = 0; a < e.length; a++) {
      let l = e.charCodeAt(a);
      if (l === 0) {
        o += '\uFFFD';
        continue;
      }
      if (l <= 31 || l === 127) {
        (o += '\\' + l.toString(16)), (i = !0);
        continue;
      }
      l === n || l === Mo ?
        ((o += '\\' + e.charAt(a)), (i = !1))
      : (i && (oe(l) || he(l)) && (o += ' '), (o += e.charAt(a)), (i = !1));
    }
    return r + o + r;
  }
  var Pf = 'String',
    If = { value: String };
  function zo() {
    return {
      type: 'String',
      loc: this.getLocation(this.tokenStart, this.tokenEnd),
      value: Tt(this.consume(5)),
    };
  }
  function Of(e) {
    this.token(5, Ro(e.value));
  }
  var _o = {};
  b(_o, {
    generate: () => zf,
    name: () => Nf,
    parse: () => Bo,
    structure: () => Rf,
    walkContext: () => Mf,
  });
  var Df = 33;
  function Is(e) {
    return this.Raw(e, null, !1);
  }
  var Nf = 'StyleSheet',
    Mf = 'stylesheet',
    Rf = { children: [['Comment', 'CDO', 'CDC', 'Atrule', 'Rule', 'Raw']] };
  function Bo() {
    let e = this.tokenStart,
      t = this.createList(),
      r;
    e: for (; !this.eof; ) {
      switch (this.tokenType) {
        case 13:
          this.next();
          continue;
        case 25:
          if (this.charCodeAt(this.tokenStart + 2) !== Df) {
            this.next();
            continue;
          }
          r = this.Comment();
          break;
        case 14:
          r = this.CDO();
          break;
        case 15:
          r = this.CDC();
          break;
        case 3:
          r = this.parseWithFallback(this.Atrule, Is);
          break;
        default:
          r = this.parseWithFallback(this.Rule, Is);
      }
      t.push(r);
    }
    return {
      type: 'StyleSheet',
      loc: this.getLocation(e, this.tokenStart),
      children: t,
    };
  }
  function zf(e) {
    this.children(e);
  }
  var qo = {};
  b(qo, {
    generate: () => Uf,
    name: () => Bf,
    parse: () => jo,
    structure: () => _f,
  });
  var Ff = 42,
    Os = 124;
  function Uo() {
    this.tokenType !== 1 &&
      this.isDelim(Ff) === !1 &&
      this.error('Identifier or asterisk is expected'),
      this.next();
  }
  var Bf = 'TypeSelector',
    _f = { name: String };
  function jo() {
    let e = this.tokenStart;
    return (
      this.isDelim(Os) ?
        (this.next(), Uo.call(this))
      : (Uo.call(this), this.isDelim(Os) && (this.next(), Uo.call(this))),
      {
        type: 'TypeSelector',
        loc: this.getLocation(e, this.tokenStart),
        name: this.substrToCursor(e),
      }
    );
  }
  function Uf(e) {
    this.tokenize(e.name);
  }
  var Yo = {};
  b(Yo, {
    generate: () => Yf,
    name: () => Hf,
    parse: () => Wo,
    structure: () => Wf,
  });
  var Ds = 43,
    Ns = 45,
    Ho = 63;
  function Lt(e, t) {
    let r = 0;
    for (let n = this.tokenStart + e; n < this.tokenEnd; n++) {
      let o = this.charCodeAt(n);
      if (o === Ns && t && r !== 0) return Lt.call(this, e + r + 1, !1), -1;
      oe(o) ||
        this.error(
          t && r !== 0 ?
            'Hyphen minus' + (r < 6 ? ' or hex digit' : '') + ' is expected'
          : r < 6 ? 'Hex digit is expected'
          : 'Unexpected input',
          n
        ),
        ++r > 6 && this.error('Too many hex digits', n);
    }
    return this.next(), r;
  }
  function yr(e) {
    let t = 0;
    for (; this.isDelim(Ho); )
      ++t > e && this.error('Too many question marks'), this.next();
  }
  function jf(e) {
    this.charCodeAt(this.tokenStart) !== e &&
      this.error((e === Ds ? 'Plus sign' : 'Hyphen minus') + ' is expected');
  }
  function qf() {
    let e = 0;
    switch (this.tokenType) {
      case 10:
        if (((e = Lt.call(this, 1, !0)), this.isDelim(Ho))) {
          yr.call(this, 6 - e);
          break;
        }
        if (this.tokenType === 12 || this.tokenType === 10) {
          jf.call(this, Ns), Lt.call(this, 1, !1);
          break;
        }
        break;
      case 12:
        (e = Lt.call(this, 1, !0)), e > 0 && yr.call(this, 6 - e);
        break;
      default:
        if ((this.eatDelim(Ds), this.tokenType === 1)) {
          (e = Lt.call(this, 0, !0)), e > 0 && yr.call(this, 6 - e);
          break;
        }
        if (this.isDelim(Ho)) {
          this.next(), yr.call(this, 5);
          break;
        }
        this.error('Hex digit or question mark is expected');
    }
  }
  var Hf = 'UnicodeRange',
    Wf = { value: String };
  function Wo() {
    let e = this.tokenStart;
    return (
      this.eatIdent('u'),
      qf.call(this),
      {
        type: 'UnicodeRange',
        loc: this.getLocation(e, this.tokenStart),
        value: this.substrToCursor(e),
      }
    );
  }
  function Yf(e) {
    this.tokenize(e.value);
  }
  var $o = {};
  b($o, {
    generate: () => Zf,
    name: () => $f,
    parse: () => Qo,
    structure: () => Xf,
  });
  var Pt = {};
  b(Pt, { decode: () => Go, encode: () => Ko });
  var Vf = 32,
    Vo = 92,
    Gf = 34,
    Kf = 39,
    Qf = 40,
    Ms = 41;
  function Go(e) {
    let t = e.length,
      r = 4,
      n = e.charCodeAt(t - 1) === Ms ? t - 2 : t - 1,
      o = '';
    for (; r < n && he(e.charCodeAt(r)); ) r++;
    for (; r < n && he(e.charCodeAt(n)); ) n--;
    for (let i = r; i <= n; i++) {
      let a = e.charCodeAt(i);
      if (a === Vo) {
        if (i === n) {
          i !== t - 1 && (o = e.substr(i + 1));
          break;
        }
        if (((a = e.charCodeAt(++i)), re(Vo, a))) {
          let l = i - 1,
            c = fe(e, l);
          (i = c - 1), (o += ft(e.substring(l + 1, c)));
        } else a === 13 && e.charCodeAt(i + 1) === 10 && i++;
      } else o += e[i];
    }
    return o;
  }
  function Ko(e) {
    let t = '',
      r = !1;
    for (let n = 0; n < e.length; n++) {
      let o = e.charCodeAt(n);
      if (o === 0) {
        t += '\uFFFD';
        continue;
      }
      if (o <= 31 || o === 127) {
        (t += '\\' + o.toString(16)), (r = !0);
        continue;
      }
      o === Vf || o === Vo || o === Gf || o === Kf || o === Qf || o === Ms ?
        ((t += '\\' + e.charAt(n)), (r = !1))
      : (r && oe(o) && (t += ' '), (t += e.charAt(n)), (r = !1));
    }
    return 'url(' + t + ')';
  }
  var $f = 'Url',
    Xf = { value: String };
  function Qo() {
    let e = this.tokenStart,
      t;
    switch (this.tokenType) {
      case 7:
        t = Go(this.consume(7));
        break;
      case 2:
        this.cmpStr(this.tokenStart, this.tokenEnd, 'url(') ||
          this.error('Function name must be `url`'),
          this.eat(2),
          this.skipSC(),
          (t = Tt(this.consume(5))),
          this.skipSC(),
          this.eof || this.eat(22);
        break;
      default:
        this.error('Url or Function is expected');
    }
    return { type: 'Url', loc: this.getLocation(e, this.tokenStart), value: t };
  }
  function Zf(e) {
    this.token(7, Ko(e.value));
  }
  var Zo = {};
  b(Zo, {
    generate: () => tm,
    name: () => Jf,
    parse: () => Xo,
    structure: () => em,
  });
  var Jf = 'Value',
    em = { children: [[]] };
  function Xo() {
    let e = this.tokenStart,
      t = this.readSequence(this.scope.Value);
    return {
      type: 'Value',
      loc: this.getLocation(e, this.tokenStart),
      children: t,
    };
  }
  function tm(e) {
    this.children(e);
  }
  var ei = {};
  b(ei, {
    generate: () => im,
    name: () => nm,
    parse: () => Jo,
    structure: () => om,
  });
  var rm = Object.freeze({ type: 'WhiteSpace', loc: null, value: ' ' }),
    nm = 'WhiteSpace',
    om = { value: String };
  function Jo() {
    return this.eat(13), rm;
  }
  function im(e) {
    this.token(13, e.value);
  }
  var Rs = { generic: !0, ...ys, node: It };
  var ti = {};
  b(ti, { AtrulePrelude: () => Fs, Selector: () => _s, Value: () => Hs });
  var am = 35,
    sm = 42,
    zs = 43,
    lm = 45,
    cm = 47,
    um = 117;
  function Ot(e) {
    switch (this.tokenType) {
      case 4:
        return this.Hash();
      case 18:
        return this.Operator();
      case 21:
        return this.Parentheses(this.readSequence, e.recognizer);
      case 19:
        return this.Brackets(this.readSequence, e.recognizer);
      case 5:
        return this.String();
      case 12:
        return this.Dimension();
      case 11:
        return this.Percentage();
      case 10:
        return this.Number();
      case 2:
        return this.cmpStr(this.tokenStart, this.tokenEnd, 'url(') ?
            this.Url()
          : this.Function(this.readSequence, e.recognizer);
      case 7:
        return this.Url();
      case 1:
        return (
            this.cmpChar(this.tokenStart, um) &&
              this.cmpChar(this.tokenStart + 1, zs)
          ) ?
            this.UnicodeRange()
          : this.Identifier();
      case 9: {
        let t = this.charCodeAt(this.tokenStart);
        if (t === cm || t === sm || t === zs || t === lm)
          return this.Operator();
        t === am &&
          this.error('Hex or identifier is expected', this.tokenStart + 1);
        break;
      }
    }
  }
  var Fs = { getNode: Ot };
  var pm = 35,
    hm = 42,
    fm = 43,
    mm = 47,
    Bs = 46,
    dm = 62,
    gm = 124,
    bm = 126;
  function ym(e, t) {
    t.last !== null &&
      t.last.type !== 'Combinator' &&
      e !== null &&
      e.type !== 'Combinator' &&
      t.push({ type: 'Combinator', loc: null, name: ' ' });
  }
  function xm() {
    switch (this.tokenType) {
      case 19:
        return this.AttributeSelector();
      case 4:
        return this.IdSelector();
      case 16:
        return this.lookupType(1) === 16 ?
            this.PseudoElementSelector()
          : this.PseudoClassSelector();
      case 1:
        return this.TypeSelector();
      case 10:
      case 11:
        return this.Percentage();
      case 12:
        this.charCodeAt(this.tokenStart) === Bs &&
          this.error('Identifier is expected', this.tokenStart + 1);
        break;
      case 9: {
        switch (this.charCodeAt(this.tokenStart)) {
          case fm:
          case dm:
          case bm:
          case mm:
            return this.Combinator();
          case Bs:
            return this.ClassSelector();
          case hm:
          case gm:
            return this.TypeSelector();
          case pm:
            return this.IdSelector();
        }
        break;
      }
    }
  }
  var _s = { onWhiteSpace: ym, getNode: xm };
  function Us() {
    return this.createSingleNodeList(this.Raw(this.tokenIndex, null, !1));
  }
  function js() {
    let e = this.createList();
    if (
      (this.skipSC(),
      e.push(this.Identifier()),
      this.skipSC(),
      this.tokenType === 18)
    ) {
      e.push(this.Operator());
      let t = this.tokenIndex,
        r =
          this.parseCustomProperty ?
            this.Value(null)
          : this.Raw(
              this.tokenIndex,
              this.consumeUntilExclamationMarkOrSemicolon,
              !1
            );
      if (r.type === 'Value' && r.children.isEmpty) {
        for (let n = t - this.tokenIndex; n <= 0; n++)
          if (this.lookupType(n) === 13) {
            r.children.appendData({
              type: 'WhiteSpace',
              loc: null,
              value: ' ',
            });
            break;
          }
      }
      e.push(r);
    }
    return e;
  }
  function qs(e) {
    return (
      e !== null &&
      e.type === 'Operator' &&
      (e.value[e.value.length - 1] === '-' ||
        e.value[e.value.length - 1] === '+')
    );
  }
  var Hs = {
    getNode: Ot,
    onWhiteSpace(e, t) {
      qs(e) && (e.value = ' ' + e.value), qs(t.last) && (t.last.value += ' ');
    },
    expression: Us,
    var: js,
  };
  var Ws = {
    parse: {
      prelude: null,
      block() {
        return this.Block(!0);
      },
    },
  };
  var Ys = {
    parse: {
      prelude() {
        let e = this.createList();
        switch ((this.skipSC(), this.tokenType)) {
          case 5:
            e.push(this.String());
            break;
          case 7:
          case 2:
            e.push(this.Url());
            break;
          default:
            this.error('String or url() is expected');
        }
        return (
          (this.lookupNonWSType(0) === 1 || this.lookupNonWSType(0) === 21) &&
            e.push(this.MediaQueryList()),
          e
        );
      },
      block: null,
    },
  };
  var Vs = {
    parse: {
      prelude() {
        return this.createSingleNodeList(this.MediaQueryList());
      },
      block() {
        return this.Block(!1);
      },
    },
  };
  var Gs = {
    parse: {
      prelude() {
        return this.createSingleNodeList(this.SelectorList());
      },
      block() {
        return this.Block(!0);
      },
    },
  };
  function km() {
    return this.createSingleNodeList(this.Raw(this.tokenIndex, null, !1));
  }
  function wm() {
    return (
      this.skipSC(),
      this.tokenType === 1 && this.lookupNonWSType(1) === 16 ?
        this.createSingleNodeList(this.Declaration())
      : Ks.call(this)
    );
  }
  function Ks() {
    let e = this.createList(),
      t;
    this.skipSC();
    e: for (; !this.eof; ) {
      switch (this.tokenType) {
        case 25:
        case 13:
          this.next();
          continue;
        case 2:
          t = this.Function(km, this.scope.AtrulePrelude);
          break;
        case 1:
          t = this.Identifier();
          break;
        case 21:
          t = this.Parentheses(wm, this.scope.AtrulePrelude);
          break;
        default:
          break e;
      }
      e.push(t);
    }
    return e;
  }
  var Qs = {
    parse: {
      prelude() {
        let e = Ks.call(this);
        return (
          this.getFirstListNode(e) === null &&
            this.error('Condition is expected'),
          e
        );
      },
      block() {
        return this.Block(!1);
      },
    },
  };
  var $s = { 'font-face': Ws, import: Ys, media: Vs, page: Gs, supports: Qs };
  var Be = {
      parse() {
        return this.createSingleNodeList(this.SelectorList());
      },
    },
    vm = {
      parse() {
        return this.createSingleNodeList(this.Selector());
      },
    },
    Xs = {
      parse() {
        return this.createSingleNodeList(this.Identifier());
      },
    },
    xr = {
      parse() {
        return this.createSingleNodeList(this.Nth());
      },
    },
    Zs = {
      dir: Xs,
      has: Be,
      lang: Xs,
      matches: Be,
      is: Be,
      '-moz-any': Be,
      '-webkit-any': Be,
      where: Be,
      not: Be,
      'nth-child': xr,
      'nth-last-child': xr,
      'nth-last-of-type': xr,
      'nth-of-type': xr,
      slotted: vm,
    };
  var ri = {};
  b(ri, {
    AnPlusB: () => kn,
    Atrule: () => vn,
    AtrulePrelude: () => Cn,
    AttributeSelector: () => Tn,
    Block: () => Pn,
    Brackets: () => On,
    CDC: () => Nn,
    CDO: () => Rn,
    ClassSelector: () => Fn,
    Combinator: () => _n,
    Comment: () => jn,
    Declaration: () => Hn,
    DeclarationList: () => Yn,
    Dimension: () => Gn,
    Function: () => Qn,
    Hash: () => Xn,
    IdSelector: () => to,
    Identifier: () => Jn,
    MediaFeature: () => no,
    MediaQuery: () => io,
    MediaQueryList: () => so,
    Nth: () => co,
    Number: () => po,
    Operator: () => fo,
    Parentheses: () => go,
    Percentage: () => yo,
    PseudoClassSelector: () => ko,
    PseudoElementSelector: () => vo,
    Ratio: () => Co,
    Raw: () => Eo,
    Rule: () => Lo,
    Selector: () => Io,
    SelectorList: () => Do,
    String: () => zo,
    StyleSheet: () => Bo,
    TypeSelector: () => jo,
    UnicodeRange: () => Wo,
    Url: () => Qo,
    Value: () => Xo,
    WhiteSpace: () => Jo,
  });
  var Js = {
    parseContext: {
      default: 'StyleSheet',
      stylesheet: 'StyleSheet',
      atrule: 'Atrule',
      atrulePrelude(e) {
        return this.AtrulePrelude(e.atrule ? String(e.atrule) : null);
      },
      mediaQueryList: 'MediaQueryList',
      mediaQuery: 'MediaQuery',
      rule: 'Rule',
      selectorList: 'SelectorList',
      selector: 'Selector',
      block() {
        return this.Block(!0);
      },
      declarationList: 'DeclarationList',
      declaration: 'Declaration',
      value: 'Value',
    },
    scope: ti,
    atrule: $s,
    pseudo: Zs,
    node: ri,
  };
  var el = { node: It };
  var tl = yn({ ...Rs, ...Js, ...el });
  function Dt(e) {
    let t = {};
    for (let r in e) {
      let n = e[r];
      n &&
        (Array.isArray(n) || n instanceof w ?
          (n = n.map(Dt))
        : n.constructor === Object && (n = Dt(n))),
        (t[r] = n);
    }
    return t;
  }
  var {
    tokenize: Fx,
    parse: rl,
    generate: ne,
    lexer: kr,
    createLexer: Bx,
    walk: F,
    find: _x,
    findLast: Ux,
    findAll: jx,
    toPlainObject: qx,
    fromPlainObject: Hx,
    fork: nl,
  } = tl;
  var { hasOwnProperty: Cm } = Object.prototype;
  function ni(e, t) {
    let r = Object.create(null);
    if (!Array.isArray(e)) return null;
    for (let n of e) t && (n = n.toLowerCase()), (r[n] = !0);
    return r;
  }
  function ol(e) {
    if (!e) return null;
    let t = ni(e.tags, !0),
      r = ni(e.ids),
      n = ni(e.classes);
    return t === null && r === null && n === null ?
        null
      : { tags: t, ids: r, classes: n };
  }
  function il(e) {
    let t = !1;
    if (e.scopes && Array.isArray(e.scopes)) {
      t = Object.create(null);
      for (let r = 0; r < e.scopes.length; r++) {
        let n = e.scopes[r];
        if (!n || !Array.isArray(n)) throw new Error('Wrong usage format');
        for (let o of n) {
          if (Cm.call(t, o))
            throw new Error(`Class can't be used for several scopes: ${o}`);
          t[o] = r + 1;
        }
      }
    }
    return { whitelist: ol(e), blacklist: ol(e.blacklist), scopes: t };
  }
  function Ce(e) {
    return !e || !e.children || e.children.isEmpty;
  }
  function oi(e, t) {
    return e !== null && e.children === t;
  }
  function ii(e, t, r) {
    if (
      e.block &&
      (this.stylesheet !== null && (this.stylesheet.firstAtrulesAllowed = !1),
      Ce(e.block))
    ) {
      r.remove(t);
      return;
    }
    switch (e.name) {
      case 'charset':
        if (Ce(e.prelude)) {
          r.remove(t);
          return;
        }
        if (t.prev) {
          r.remove(t);
          return;
        }
        break;
      case 'import':
        if (this.stylesheet === null || !this.stylesheet.firstAtrulesAllowed) {
          r.remove(t);
          return;
        }
        r.prevUntil(
          t.prev,
          function (n) {
            if (
              !(
                n.type === 'Atrule' &&
                (n.name === 'import' || n.name === 'charset')
              )
            )
              return (this.root.firstAtrulesAllowed = !1), r.remove(t), !0;
          },
          this
        );
        break;
      default: {
        let n = Z(e.name).basename;
        (n === 'keyframes' || n === 'media' || n === 'supports') &&
          (Ce(e.prelude) || Ce(e.block)) &&
          r.remove(t);
      }
    }
  }
  function ai(e, t, r) {
    r.remove(t);
  }
  function si(e, t, r) {
    if (e.value.children && e.value.children.isEmpty) {
      r.remove(t);
      return;
    }
    me(e.property).custom &&
      /\S/.test(e.value.value) &&
      (e.value.value = e.value.value.trim());
  }
  function li(e, t, r) {
    (oi(this.stylesheet, r) || oi(this.block, r)) && r.remove(t);
  }
  var { hasOwnProperty: ot } = Object.prototype,
    Am = new Set(['keyframes']);
  function al(e, t) {
    return (
      e.children.forEach((r, n, o) => {
        let i = !1;
        F(r, function (a) {
          if (this.selector === null || this.selector === e)
            switch (a.type) {
              case 'SelectorList':
                (this.function === null ||
                  this.function.name.toLowerCase() !== 'not') &&
                  al(a, t) &&
                  (i = !0);
                break;
              case 'ClassSelector':
                t.whitelist !== null &&
                  t.whitelist.classes !== null &&
                  !ot.call(t.whitelist.classes, a.name) &&
                  (i = !0),
                  t.blacklist !== null &&
                    t.blacklist.classes !== null &&
                    ot.call(t.blacklist.classes, a.name) &&
                    (i = !0);
                break;
              case 'IdSelector':
                t.whitelist !== null &&
                  t.whitelist.ids !== null &&
                  !ot.call(t.whitelist.ids, a.name) &&
                  (i = !0),
                  t.blacklist !== null &&
                    t.blacklist.ids !== null &&
                    ot.call(t.blacklist.ids, a.name) &&
                    (i = !0);
                break;
              case 'TypeSelector':
                a.name.charAt(a.name.length - 1) !== '*' &&
                  (t.whitelist !== null &&
                    t.whitelist.tags !== null &&
                    !ot.call(t.whitelist.tags, a.name.toLowerCase()) &&
                    (i = !0),
                  t.blacklist !== null &&
                    t.blacklist.tags !== null &&
                    ot.call(t.blacklist.tags, a.name.toLowerCase()) &&
                    (i = !0));
                break;
            }
        }),
          i && o.remove(n);
      }),
      e.children.isEmpty
    );
  }
  function ci(e, t, r, n) {
    if (Ce(e.prelude) || Ce(e.block)) {
      r.remove(t);
      return;
    }
    if (this.atrule && Am.has(Z(this.atrule.name).basename)) return;
    let { usage: o } = n;
    if (
      o &&
      (o.whitelist !== null || o.blacklist !== null) &&
      (al(e.prelude, o), Ce(e.prelude))
    ) {
      r.remove(t);
      return;
    }
  }
  function ui(e, t, r) {
    if (t.data.name !== '*') return;
    let o = t.next && t.next.data.type;
    (o === 'IdSelector' ||
      o === 'ClassSelector' ||
      o === 'AttributeSelector' ||
      o === 'PseudoClassSelector' ||
      o === 'PseudoElementSelector') &&
      r.remove(t);
  }
  function pi(e, t, r) {
    r.remove(t);
  }
  var sl = {
    Atrule: ii,
    Comment: ai,
    Declaration: si,
    Raw: li,
    Rule: ci,
    TypeSelector: ui,
    WhiteSpace: pi,
  };
  function ll(e, t) {
    F(e, {
      leave(r, n, o) {
        sl.hasOwnProperty(r.type) && sl[r.type].call(this, r, n, o, t);
      },
    });
  }
  function cl(e) {
    e.block.children.forEach((t) => {
      t.prelude.children.forEach((r) => {
        r.children.forEach((n, o) => {
          n.type === 'Percentage' && n.value === '100' ?
            (o.data = { type: 'TypeSelector', loc: n.loc, name: 'to' })
          : n.type === 'TypeSelector' &&
            n.name === 'from' &&
            (o.data = { type: 'Percentage', loc: n.loc, value: '0' });
        });
      });
    });
  }
  function ul(e) {
    Z(e.name).basename === 'keyframes' && cl(e);
  }
  var Em =
    /^(-?\d|--)|[\u0000-\u002c\u002e\u002f\u003A-\u0040\u005B-\u005E\u0060\u007B-\u009f]/;
  function Tm(e) {
    return e === '' || e === '-' ? !1 : !Em.test(e);
  }
  function pl(e) {
    let t = e.value;
    !t ||
      t.type !== 'String' ||
      (Tm(t.value) &&
        (e.value = { type: 'Identifier', loc: t.loc, name: t.value }));
  }
  function hi(e) {
    let t = e.children;
    t.forEachRight(function (r, n) {
      if (r.type === 'Identifier') {
        if (r.name === 'bold')
          n.data = { type: 'Number', loc: r.loc, value: '700' };
        else if (r.name === 'normal') {
          let o = n.prev;
          o &&
            o.data.type === 'Operator' &&
            o.data.value === '/' &&
            this.remove(o),
            this.remove(n);
        }
      }
    }),
      t.isEmpty &&
        t.insert(t.createItem({ type: 'Identifier', name: 'normal' }));
  }
  function fi(e) {
    let t = e.children.head.data;
    if (t.type === 'Identifier')
      switch (t.name) {
        case 'normal':
          e.children.head.data = { type: 'Number', loc: t.loc, value: '400' };
          break;
        case 'bold':
          e.children.head.data = { type: 'Number', loc: t.loc, value: '700' };
          break;
      }
  }
  function mi(e) {
    function t() {
      n.length ||
        n.unshift(
          { type: 'Number', loc: null, value: '0' },
          { type: 'Number', loc: null, value: '0' }
        ),
        r.push.apply(r, n),
        (n = []);
    }
    let r = [],
      n = [];
    e.children.forEach((o) => {
      if (o.type === 'Operator' && o.value === ',') {
        t(), r.push(o);
        return;
      }
      (o.type === 'Identifier' &&
        (o.name === 'transparent' ||
          o.name === 'none' ||
          o.name === 'repeat' ||
          o.name === 'scroll')) ||
        n.push(o);
    }),
      t(),
      (e.children = new w().fromArray(r));
  }
  function Nt(e) {
    e.children.forEach((t, r, n) => {
      t.type === 'Identifier' &&
        t.name.toLowerCase() === 'none' &&
        (n.head === n.tail ?
          (r.data = { type: 'Number', loc: t.loc, value: '0' })
        : n.remove(r));
    });
  }
  var hl = {
    font: hi,
    'font-weight': fi,
    background: mi,
    border: Nt,
    outline: Nt,
  };
  function di(e) {
    if (!this.declaration) return;
    let t = me(this.declaration.property);
    hl.hasOwnProperty(t.basename) && hl[t.basename](e);
  }
  var Lm = /^(?:\+|(-))?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/,
    Pm = /^([\+\-])?0*(\d*)(?:\.0*|(\.\d*?)0*)?$/,
    Im = new Set([
      'Dimension',
      'Hash',
      'Identifier',
      'Number',
      'Raw',
      'UnicodeRange',
    ]);
  function _e(e, t) {
    let r = t && t.prev !== null && Im.has(t.prev.data.type) ? Pm : Lm;
    return (
      (e = String(e).replace(r, '$1$2$3')),
      (e === '' || e === '-') && (e = '0'),
      e
    );
  }
  function fl(e) {
    e.value = _e(e.value);
  }
  var Om = new Set(['calc', 'min', 'max', 'clamp']),
    Dm = new Set([
      'px',
      'mm',
      'cm',
      'in',
      'pt',
      'pc',
      'em',
      'ex',
      'ch',
      'rem',
      'vh',
      'vw',
      'vmin',
      'vmax',
      'vm',
    ]);
  function gi(e, t) {
    let r = _e(e.value);
    if (
      ((e.value = r),
      r === '0' && this.declaration !== null && this.atrulePrelude === null)
    ) {
      let n = e.unit.toLowerCase();
      if (
        !Dm.has(n) ||
        this.declaration.property === '-ms-flex' ||
        this.declaration.property === 'flex' ||
        (this.function && Om.has(this.function.name))
      )
        return;
      t.data = { type: 'Number', loc: e.loc, value: r };
    }
  }
  var Nm = new Set([
    'width',
    'min-width',
    'max-width',
    'height',
    'min-height',
    'max-height',
    'flex',
    '-ms-flex',
  ]);
  function bi(e, t) {
    (e.value = _e(e.value)),
      e.value === '0' &&
        this.declaration &&
        !Nm.has(this.declaration.property) &&
        ((t.data = { type: 'Number', loc: e.loc, value: e.value }),
        kr.matchDeclaration(this.declaration).isType(t.data, 'length') ||
          (t.data = e));
  }
  function ml(e) {
    e.value = e.value.replace(/\\/g, '/');
  }
  var dl = {
      aliceblue: 'f0f8ff',
      antiquewhite: 'faebd7',
      aqua: '0ff',
      aquamarine: '7fffd4',
      azure: 'f0ffff',
      beige: 'f5f5dc',
      bisque: 'ffe4c4',
      black: '000',
      blanchedalmond: 'ffebcd',
      blue: '00f',
      blueviolet: '8a2be2',
      brown: 'a52a2a',
      burlywood: 'deb887',
      cadetblue: '5f9ea0',
      chartreuse: '7fff00',
      chocolate: 'd2691e',
      coral: 'ff7f50',
      cornflowerblue: '6495ed',
      cornsilk: 'fff8dc',
      crimson: 'dc143c',
      cyan: '0ff',
      darkblue: '00008b',
      darkcyan: '008b8b',
      darkgoldenrod: 'b8860b',
      darkgray: 'a9a9a9',
      darkgrey: 'a9a9a9',
      darkgreen: '006400',
      darkkhaki: 'bdb76b',
      darkmagenta: '8b008b',
      darkolivegreen: '556b2f',
      darkorange: 'ff8c00',
      darkorchid: '9932cc',
      darkred: '8b0000',
      darksalmon: 'e9967a',
      darkseagreen: '8fbc8f',
      darkslateblue: '483d8b',
      darkslategray: '2f4f4f',
      darkslategrey: '2f4f4f',
      darkturquoise: '00ced1',
      darkviolet: '9400d3',
      deeppink: 'ff1493',
      deepskyblue: '00bfff',
      dimgray: '696969',
      dimgrey: '696969',
      dodgerblue: '1e90ff',
      firebrick: 'b22222',
      floralwhite: 'fffaf0',
      forestgreen: '228b22',
      fuchsia: 'f0f',
      gainsboro: 'dcdcdc',
      ghostwhite: 'f8f8ff',
      gold: 'ffd700',
      goldenrod: 'daa520',
      gray: '808080',
      grey: '808080',
      green: '008000',
      greenyellow: 'adff2f',
      honeydew: 'f0fff0',
      hotpink: 'ff69b4',
      indianred: 'cd5c5c',
      indigo: '4b0082',
      ivory: 'fffff0',
      khaki: 'f0e68c',
      lavender: 'e6e6fa',
      lavenderblush: 'fff0f5',
      lawngreen: '7cfc00',
      lemonchiffon: 'fffacd',
      lightblue: 'add8e6',
      lightcoral: 'f08080',
      lightcyan: 'e0ffff',
      lightgoldenrodyellow: 'fafad2',
      lightgray: 'd3d3d3',
      lightgrey: 'd3d3d3',
      lightgreen: '90ee90',
      lightpink: 'ffb6c1',
      lightsalmon: 'ffa07a',
      lightseagreen: '20b2aa',
      lightskyblue: '87cefa',
      lightslategray: '789',
      lightslategrey: '789',
      lightsteelblue: 'b0c4de',
      lightyellow: 'ffffe0',
      lime: '0f0',
      limegreen: '32cd32',
      linen: 'faf0e6',
      magenta: 'f0f',
      maroon: '800000',
      mediumaquamarine: '66cdaa',
      mediumblue: '0000cd',
      mediumorchid: 'ba55d3',
      mediumpurple: '9370db',
      mediumseagreen: '3cb371',
      mediumslateblue: '7b68ee',
      mediumspringgreen: '00fa9a',
      mediumturquoise: '48d1cc',
      mediumvioletred: 'c71585',
      midnightblue: '191970',
      mintcream: 'f5fffa',
      mistyrose: 'ffe4e1',
      moccasin: 'ffe4b5',
      navajowhite: 'ffdead',
      navy: '000080',
      oldlace: 'fdf5e6',
      olive: '808000',
      olivedrab: '6b8e23',
      orange: 'ffa500',
      orangered: 'ff4500',
      orchid: 'da70d6',
      palegoldenrod: 'eee8aa',
      palegreen: '98fb98',
      paleturquoise: 'afeeee',
      palevioletred: 'db7093',
      papayawhip: 'ffefd5',
      peachpuff: 'ffdab9',
      peru: 'cd853f',
      pink: 'ffc0cb',
      plum: 'dda0dd',
      powderblue: 'b0e0e6',
      purple: '800080',
      rebeccapurple: '639',
      red: 'f00',
      rosybrown: 'bc8f8f',
      royalblue: '4169e1',
      saddlebrown: '8b4513',
      salmon: 'fa8072',
      sandybrown: 'f4a460',
      seagreen: '2e8b57',
      seashell: 'fff5ee',
      sienna: 'a0522d',
      silver: 'c0c0c0',
      skyblue: '87ceeb',
      slateblue: '6a5acd',
      slategray: '708090',
      slategrey: '708090',
      snow: 'fffafa',
      springgreen: '00ff7f',
      steelblue: '4682b4',
      tan: 'd2b48c',
      teal: '008080',
      thistle: 'd8bfd8',
      tomato: 'ff6347',
      turquoise: '40e0d0',
      violet: 'ee82ee',
      wheat: 'f5deb3',
      white: 'fff',
      whitesmoke: 'f5f5f5',
      yellow: 'ff0',
      yellowgreen: '9acd32',
    },
    gl = {
      8e5: 'maroon',
      800080: 'purple',
      808e3: 'olive',
      808080: 'gray',
      '00ffff': 'cyan',
      f0ffff: 'azure',
      f5f5dc: 'beige',
      ffe4c4: 'bisque',
      '000000': 'black',
      '0000ff': 'blue',
      a52a2a: 'brown',
      ff7f50: 'coral',
      ffd700: 'gold',
      '008000': 'green',
      '4b0082': 'indigo',
      fffff0: 'ivory',
      f0e68c: 'khaki',
      '00ff00': 'lime',
      faf0e6: 'linen',
      '000080': 'navy',
      ffa500: 'orange',
      da70d6: 'orchid',
      cd853f: 'peru',
      ffc0cb: 'pink',
      dda0dd: 'plum',
      f00: 'red',
      ff0000: 'red',
      fa8072: 'salmon',
      a0522d: 'sienna',
      c0c0c0: 'silver',
      fffafa: 'snow',
      d2b48c: 'tan',
      '008080': 'teal',
      ff6347: 'tomato',
      ee82ee: 'violet',
      f5deb3: 'wheat',
      ffffff: 'white',
      ffff00: 'yellow',
    };
  function yi(e, t, r) {
    return (
      r < 0 && (r += 1),
      r > 1 && (r -= 1),
      r < 1 / 6 ? e + (t - e) * 6 * r
      : r < 1 / 2 ? t
      : r < 2 / 3 ? e + (t - e) * (2 / 3 - r) * 6
      : e
    );
  }
  function bl(e, t, r, n) {
    let o, i, a;
    if (t === 0) o = i = a = r;
    else {
      let l = r < 0.5 ? r * (1 + t) : r + t - r * t,
        c = 2 * r - l;
      (o = yi(c, l, e + 1 / 3)), (i = yi(c, l, e)), (a = yi(c, l, e - 1 / 3));
    }
    return [Math.round(o * 255), Math.round(i * 255), Math.round(a * 255), n];
  }
  function xi(e) {
    return (e = e.toString(16)), e.length === 1 ? '0' + e : e;
  }
  function ki(e, t, r) {
    let n = e.head,
      o = [],
      i = !1;
    for (; n !== null; ) {
      let { type: a, value: l } = n.data;
      switch (a) {
        case 'Number':
        case 'Percentage':
          if (i) return;
          (i = !0), o.push({ type: a, value: Number(l) });
          break;
        case 'Operator':
          if (l === ',') {
            if (!i) return;
            i = !1;
          } else if (i || l !== '+') return;
          break;
        default:
          return;
      }
      n = n.next;
    }
    if (o.length === t) {
      if (o.length === 4) {
        if (o[3].type !== 'Number') return;
        o[3].type = 'Alpha';
      }
      if (r) {
        if (o[0].type !== o[1].type || o[0].type !== o[2].type) return;
      } else {
        if (
          o[0].type !== 'Number' ||
          o[1].type !== 'Percentage' ||
          o[2].type !== 'Percentage'
        )
          return;
        o[0].type = 'Angle';
      }
      return o.map(function (a) {
        let l = Math.max(0, a.value);
        switch (a.type) {
          case 'Number':
            l = Math.min(l, 255);
            break;
          case 'Percentage':
            if (((l = Math.min(l, 100) / 100), !r)) return l;
            l = 255 * l;
            break;
          case 'Angle':
            return (((l % 360) + 360) % 360) / 360;
          case 'Alpha':
            return Math.min(l, 1);
        }
        return Math.round(l);
      });
    }
  }
  function yl(e, t) {
    let r = e.name,
      n;
    if (r === 'rgba' || r === 'hsla') {
      if (((n = ki(e.children, 4, r === 'rgba')), !n)) return;
      if ((r === 'hsla' && ((n = bl(...n)), (e.name = 'rgba')), n[3] === 0)) {
        let o = this.function && this.function.name;
        if (
          (n[0] === 0 && n[1] === 0 && n[2] === 0) ||
          !/^(?:to|from|color-stop)$|gradient$/i.test(o)
        ) {
          t.data = { type: 'Identifier', loc: e.loc, name: 'transparent' };
          return;
        }
      }
      if (n[3] !== 1) {
        e.children.forEach((o, i, a) => {
          if (o.type === 'Operator') {
            o.value !== ',' && a.remove(i);
            return;
          }
          i.data = { type: 'Number', loc: o.loc, value: _e(n.shift()) };
        });
        return;
      }
      r = 'rgb';
    }
    if (r === 'hsl') {
      if (((n = n || ki(e.children, 3, !1)), !n)) return;
      (n = bl(...n)), (r = 'rgb');
    }
    if (r === 'rgb') {
      if (((n = n || ki(e.children, 3, !0)), !n)) return;
      (t.data = {
        type: 'Hash',
        loc: e.loc,
        value: xi(n[0]) + xi(n[1]) + xi(n[2]),
      }),
        wi(t.data, t);
    }
  }
  function xl(e, t) {
    if (this.declaration === null) return;
    let r = e.name.toLowerCase();
    if (
      dl.hasOwnProperty(r) &&
      kr.matchDeclaration(this.declaration).isType(e, 'color')
    ) {
      let n = dl[r];
      n.length + 1 <= r.length ?
        (t.data = { type: 'Hash', loc: e.loc, value: n })
      : (r === 'grey' && (r = 'gray'), (e.name = r));
    }
  }
  function wi(e, t) {
    let r = e.value.toLowerCase();
    r.length === 6 &&
      r[0] === r[1] &&
      r[2] === r[3] &&
      r[4] === r[5] &&
      (r = r[0] + r[2] + r[4]),
      gl[r] ?
        (t.data = { type: 'Identifier', loc: e.loc, name: gl[r] })
      : (e.value = r);
  }
  var kl = {
    Atrule: ul,
    AttributeSelector: pl,
    Value: di,
    Dimension: gi,
    Percentage: bi,
    Number: fl,
    Url: ml,
    Hash: wi,
    Identifier: xl,
    Function: yl,
  };
  function wl(e) {
    F(e, {
      leave(t, r, n) {
        kl.hasOwnProperty(t.type) && kl[t.type].call(this, t, r, n);
      },
    });
  }
  var vi = class {
    constructor() {
      this.map = new Map();
    }
    resolve(t) {
      let r = this.map.get(t);
      return r === void 0 && ((r = this.map.size + 1), this.map.set(t, r)), r;
    }
  };
  function Si() {
    let e = new vi();
    return function (r) {
      let n = ne(r);
      return (
        (r.id = e.resolve(n)), (r.length = n.length), (r.fingerprint = null), r
      );
    };
  }
  function Mm(e) {
    return e.type === 'Raw' ? rl(e.value, { context: 'selectorList' }) : e;
  }
  function Rm(e, t) {
    for (let r = 0; r < 3; r++) if (e[r] !== t[r]) return e[r] > t[r] ? e : t;
    return e;
  }
  function vl(e) {
    return Mm(e).children.reduce((t, r) => Rm(Sl(r), t), [0, 0, 0]);
  }
  function Sl(e) {
    let t = 0,
      r = 0,
      n = 0;
    return (
      e.children.forEach((o) => {
        switch (o.type) {
          case 'IdSelector':
            t++;
            break;
          case 'ClassSelector':
          case 'AttributeSelector':
            r++;
            break;
          case 'PseudoClassSelector':
            switch (o.name.toLowerCase()) {
              case 'not':
              case 'has':
              case 'is':
              case 'matches':
              case '-webkit-any':
              case '-moz-any': {
                let [i, a, l] = vl(o.children.first);
                (t += i), (r += a), (n += l);
                break;
              }
              case 'nth-child':
              case 'nth-last-child': {
                let i = o.children.first;
                if (i.type === 'Nth' && i.selector) {
                  let [a, l, c] = vl(i.selector);
                  (t += a), (r += l + 1), (n += c);
                } else r++;
                break;
              }
              case 'where':
                break;
              case 'before':
              case 'after':
              case 'first-line':
              case 'first-letter':
                n++;
                break;
              default:
                r++;
            }
            break;
          case 'TypeSelector':
            o.name.endsWith('*') || n++;
            break;
          case 'PseudoElementSelector':
            n++;
            break;
        }
      }),
      [t, r, n]
    );
  }
  var wr = Sl;
  var zm = new Set(['first-letter', 'first-line', 'after', 'before']),
    Fm = new Set([
      'link',
      'visited',
      'hover',
      'active',
      'first-letter',
      'first-line',
      'after',
      'before',
    ]);
  function Mt(e, t) {
    let r = new Set();
    e.prelude.children.forEach(function (n) {
      let o = '*',
        i = 0;
      n.children.forEach(function (a) {
        switch (a.type) {
          case 'ClassSelector':
            if (t && t.scopes) {
              let l = t.scopes[a.name] || 0;
              if (i !== 0 && l !== i)
                throw new Error(
                  "Selector can't has classes from different scopes: " + ne(n)
                );
              i = l;
            }
            break;
          case 'PseudoClassSelector': {
            let l = a.name.toLowerCase();
            Fm.has(l) || r.add(`:${l}`);
            break;
          }
          case 'PseudoElementSelector': {
            let l = a.name.toLowerCase();
            zm.has(l) || r.add(`::${l}`);
            break;
          }
          case 'TypeSelector':
            o = a.name.toLowerCase();
            break;
          case 'AttributeSelector':
            a.flags && r.add(`[${a.flags.toLowerCase()}]`);
            break;
          case 'Combinator':
            o = '*';
            break;
        }
      }),
        (n.compareMarker = wr(n).toString()),
        (n.id = null),
        (n.id = ne(n)),
        i && (n.compareMarker += ':' + i),
        o !== '*' && (n.compareMarker += ',' + o);
    }),
      (e.pseudoSignature = r.size > 0 ? [...r].sort().join(',') : !1);
  }
  function Ci(e, t) {
    let r = Si();
    return (
      F(e, {
        visit: 'Rule',
        enter(n) {
          n.block.children.forEach(r), Mt(n, t.usage);
        },
      }),
      F(e, {
        visit: 'Atrule',
        enter(n) {
          n.prelude && ((n.prelude.id = null), (n.prelude.id = ne(n.prelude))),
            Z(n.name).basename === 'keyframes' &&
              ((n.block.avoidRulesMerge = !0),
              n.block.children.forEach(function (o) {
                o.prelude.children.forEach(function (i) {
                  i.compareMarker = i.id;
                });
              }));
        },
      }),
      { declaration: r }
    );
  }
  var { hasOwnProperty: Cl } = Object.prototype;
  function Al(e, t, r, n) {
    let o = t.data,
      i = Z(o.name).basename,
      a = o.name.toLowerCase() + '/' + (o.prelude ? o.prelude.id : null);
    Cl.call(e, i) || (e[i] = Object.create(null)),
      n && delete e[i][a],
      Cl.call(e[i], a) || (e[i][a] = new w()),
      e[i][a].append(r.remove(t));
  }
  function Bm(e, t) {
    let r = Object.create(null),
      n = null;
    e.children.forEach(function (o, i, a) {
      if (o.type === 'Atrule') {
        let l = Z(o.name).basename;
        switch (l) {
          case 'keyframes':
            Al(r, i, a, !0);
            return;
          case 'media':
            if (t.forceMediaMerge) {
              Al(r, i, a, !1);
              return;
            }
            break;
        }
        n === null && l !== 'charset' && l !== 'import' && (n = i);
      } else n === null && (n = i);
    });
    for (let o in r)
      for (let i in r[o])
        e.children.insertList(r[o][i], o === 'media' ? null : n);
  }
  function El(e) {
    return e.type === 'Atrule' && e.name === 'media';
  }
  function _m(e, t, r) {
    if (!El(e)) return;
    let n = t.prev && t.prev.data;
    !n ||
      !El(n) ||
      (e.prelude &&
        n.prelude &&
        e.prelude.id === n.prelude.id &&
        (n.block.children.appendList(e.block.children), r.remove(t)));
  }
  function Ai(e, t) {
    Bm(e, t), F(e, { visit: 'Atrule', reverse: !0, enter: _m });
  }
  var { hasOwnProperty: Um } = Object.prototype;
  function Rt(e, t) {
    let r = e.head,
      n = t.head;
    for (; r !== null && n !== null && r.data.id === n.data.id; )
      (r = r.next), (n = n.next);
    return r === null && n === null;
  }
  function zt(e, t) {
    let r = e.head,
      n = t.head;
    for (; r !== null && n !== null && r.data.id === n.data.id; )
      (r = r.next), (n = n.next);
    return r === null && n === null;
  }
  function Ei(e, t) {
    let r = { eq: [], ne1: [], ne2: [], ne2overrided: [] },
      n = Object.create(null),
      o = Object.create(null);
    for (let i = t.head; i; i = i.next) o[i.data.id] = !0;
    for (let i = e.head; i; i = i.next) {
      let a = i.data;
      a.fingerprint && (n[a.fingerprint] = a.important),
        o[a.id] ? ((o[a.id] = !1), r.eq.push(a)) : r.ne1.push(a);
    }
    for (let i = t.head; i; i = i.next) {
      let a = i.data;
      o[a.id] &&
        ((!Um.call(n, a.fingerprint) || (!n[a.fingerprint] && a.important)) &&
          r.ne2.push(a),
        r.ne2overrided.push(a));
    }
    return r;
  }
  function Oe(e, t) {
    return (
      t.forEach((r) => {
        let n = r.id,
          o = e.head;
        for (; o; ) {
          let i = o.data.id;
          if (i === n) return;
          if (i > n) break;
          o = o.next;
        }
        e.insert(e.createItem(r), o);
      }),
      e
    );
  }
  function vr(e, t) {
    let r = e.head;
    for (; r !== null; ) {
      let n = t.head;
      for (; n !== null; ) {
        if (r.data.compareMarker === n.data.compareMarker) return !0;
        n = n.next;
      }
      r = r.next;
    }
    return !1;
  }
  function De(e) {
    switch (e.type) {
      case 'Rule':
        return vr(e.prelude.children, this);
      case 'Atrule':
        if (e.block) return e.block.children.some(De, this);
        break;
      case 'Declaration':
        return !1;
    }
    return !0;
  }
  function jm(e, t, r) {
    let n = e.prelude.children,
      o = e.block.children;
    r.prevUntil(t.prev, function (i) {
      if (i.type !== 'Rule') return De.call(n, i);
      let a = i.prelude.children,
        l = i.block.children;
      if (e.pseudoSignature === i.pseudoSignature) {
        if (Rt(a, n)) return l.appendList(o), r.remove(t), !0;
        if (zt(o, l)) return Oe(a, n), r.remove(t), !0;
      }
      return vr(n, a);
    });
  }
  function Ti(e) {
    F(e, { visit: 'Rule', enter: jm });
  }
  function qm(e, t, r) {
    let n = e.prelude.children;
    for (; n.head !== n.tail; ) {
      let o = new w();
      o.insert(n.remove(n.head)),
        r.insert(
          r.createItem({
            type: 'Rule',
            loc: e.loc,
            prelude: { type: 'SelectorList', loc: e.prelude.loc, children: o },
            block: {
              type: 'Block',
              loc: e.block.loc,
              children: e.block.children.copy(),
            },
            pseudoSignature: e.pseudoSignature,
          }),
          t
        );
    }
  }
  function Li(e) {
    F(e, { visit: 'Rule', reverse: !0, enter: qm });
  }
  var Pl = 1,
    Hm = 2,
    it = 0,
    Ft = 1,
    Pi = 2,
    Sr = 3,
    Tl = ['top', 'right', 'bottom', 'left'],
    Wm = {
      'margin-top': 'top',
      'margin-right': 'right',
      'margin-bottom': 'bottom',
      'margin-left': 'left',
      'padding-top': 'top',
      'padding-right': 'right',
      'padding-bottom': 'bottom',
      'padding-left': 'left',
      'border-top-color': 'top',
      'border-right-color': 'right',
      'border-bottom-color': 'bottom',
      'border-left-color': 'left',
      'border-top-width': 'top',
      'border-right-width': 'right',
      'border-bottom-width': 'bottom',
      'border-left-width': 'left',
      'border-top-style': 'top',
      'border-right-style': 'right',
      'border-bottom-style': 'bottom',
      'border-left-style': 'left',
    },
    Ll = {
      margin: 'margin',
      'margin-top': 'margin',
      'margin-right': 'margin',
      'margin-bottom': 'margin',
      'margin-left': 'margin',
      padding: 'padding',
      'padding-top': 'padding',
      'padding-right': 'padding',
      'padding-bottom': 'padding',
      'padding-left': 'padding',
      'border-color': 'border-color',
      'border-top-color': 'border-color',
      'border-right-color': 'border-color',
      'border-bottom-color': 'border-color',
      'border-left-color': 'border-color',
      'border-width': 'border-width',
      'border-top-width': 'border-width',
      'border-right-width': 'border-width',
      'border-bottom-width': 'border-width',
      'border-left-width': 'border-width',
      'border-style': 'border-style',
      'border-top-style': 'border-style',
      'border-right-style': 'border-style',
      'border-bottom-style': 'border-style',
      'border-left-style': 'border-style',
    },
    Ii = class {
      constructor(t) {
        (this.name = t),
          (this.loc = null),
          (this.iehack = void 0),
          (this.sides = { top: null, right: null, bottom: null, left: null });
      }
      getValueSequence(t, r) {
        let n = [],
          o = '';
        return (
            t.value.type !== 'Value' ||
              t.value.children.some(function (a) {
                let l = !1;
                switch (a.type) {
                  case 'Identifier':
                    switch (a.name) {
                      case '\\0':
                      case '\\9':
                        o = a.name;
                        return;
                      case 'inherit':
                      case 'initial':
                      case 'unset':
                      case 'revert':
                        l = a.name;
                        break;
                    }
                    break;
                  case 'Dimension':
                    switch (a.unit) {
                      case 'rem':
                      case 'vw':
                      case 'vh':
                      case 'vmin':
                      case 'vmax':
                      case 'vm':
                        l = a.unit;
                        break;
                    }
                    break;
                  case 'Hash':
                  case 'Number':
                  case 'Percentage':
                    break;
                  case 'Function':
                    if (a.name === 'var') return !0;
                    l = a.name;
                    break;
                  default:
                    return !0;
                }
                n.push({ node: a, special: l, important: t.important });
              }) ||
              n.length > r ||
              (typeof this.iehack == 'string' && this.iehack !== o)
          ) ?
            !1
          : ((this.iehack = o), n);
      }
      canOverride(t, r) {
        let n = this.sides[t];
        return !n || (r.important && !n.important);
      }
      add(t, r) {
        function n() {
          let o = this.sides,
            i = Wm[t];
          if (i) {
            if (!(i in o)) return !1;
            let a = this.getValueSequence(r, 1);
            if (!a || !a.length) return !1;
            for (let l in o)
              if (o[l] !== null && o[l].special !== a[0].special) return !1;
            return this.canOverride(i, a[0]) && (o[i] = a[0]), !0;
          } else if (t === this.name) {
            let a = this.getValueSequence(r, 4);
            if (!a || !a.length) return !1;
            switch (a.length) {
              case 1:
                (a[Ft] = a[it]), (a[Pi] = a[it]), (a[Sr] = a[it]);
                break;
              case 2:
                (a[Pi] = a[it]), (a[Sr] = a[Ft]);
                break;
              case 3:
                a[Sr] = a[Ft];
                break;
            }
            for (let l = 0; l < 4; l++)
              for (let c in o)
                if (o[c] !== null && o[c].special !== a[l].special) return !1;
            for (let l = 0; l < 4; l++)
              this.canOverride(Tl[l], a[l]) && (o[Tl[l]] = a[l]);
            return !0;
          }
        }
        return n.call(this) ? (this.loc || (this.loc = r.loc), !0) : !1;
      }
      isOkToMinimize() {
        let t = this.sides.top,
          r = this.sides.right,
          n = this.sides.bottom,
          o = this.sides.left;
        if (t && r && n && o) {
          let i = t.important + r.important + n.important + o.important;
          return i === 0 || i === 4;
        }
        return !1;
      }
      getValue() {
        let t = new w(),
          r = this.sides,
          n = [r.top, r.right, r.bottom, r.left],
          o = [
            ne(r.top.node),
            ne(r.right.node),
            ne(r.bottom.node),
            ne(r.left.node),
          ];
        o[Sr] === o[Ft] &&
          (n.pop(), o[Pi] === o[it] && (n.pop(), o[Ft] === o[it] && n.pop()));
        for (let i = 0; i < n.length; i++) t.appendData(n[i].node);
        return (
          this.iehack &&
            t.appendData({ type: 'Identifier', loc: null, name: this.iehack }),
          { type: 'Value', loc: null, children: t }
        );
      }
      getDeclaration() {
        return {
          type: 'Declaration',
          loc: this.loc,
          important: this.sides.top.important,
          property: this.name,
          value: this.getValue(),
        };
      }
    };
  function Ym(e, t, r, n) {
    let o = e.block.children,
      i = e.prelude.children.first.id;
    return (
      e.block.children.forEachRight(function (a, l) {
        let c = a.property;
        if (!Ll.hasOwnProperty(c)) return;
        let s = Ll[c],
          u,
          p;
        if (
          ((!n || i === n) && s in t && ((p = Hm), (u = t[s])),
          (!u || !u.add(c, a)) && ((p = Pl), (u = new Ii(s)), !u.add(c, a)))
        ) {
          n = null;
          return;
        }
        (t[s] = u),
          r.push({ operation: p, block: o, item: l, shorthand: u }),
          (n = i);
      }),
      n
    );
  }
  function Vm(e, t) {
    e.forEach(function (r) {
      let n = r.shorthand;
      !n.isOkToMinimize() ||
        (r.operation === Pl ?
          (r.item.data = t(n.getDeclaration()))
        : r.block.remove(r.item));
    });
  }
  function Oi(e, t) {
    let r = {},
      n = [];
    F(e, {
      visit: 'Rule',
      reverse: !0,
      enter(o) {
        let i = this.block || this.stylesheet,
          a = (o.pseudoSignature || '') + '|' + o.prelude.children.first.id,
          l,
          c;
        r.hasOwnProperty(i.id) ?
          (l = r[i.id])
        : ((l = { lastShortSelector: null }), (r[i.id] = l)),
          l.hasOwnProperty(a) ? (c = l[a]) : ((c = {}), (l[a] = c)),
          (l.lastShortSelector = Ym.call(this, o, c, n, l.lastShortSelector));
      },
    }),
      Vm(n, t.declaration);
  }
  var Gm = 1,
    Km = new Set(['src']),
    Il = {
      display: /table|ruby|flex|-(flex)?box$|grid|contents|run-in/i,
      'text-align': /^(start|end|match-parent|justify-all)$/i,
    },
    Ol = {
      cursor: [
        'auto',
        'crosshair',
        'default',
        'move',
        'text',
        'wait',
        'help',
        'n-resize',
        'e-resize',
        's-resize',
        'w-resize',
        'ne-resize',
        'nw-resize',
        'se-resize',
        'sw-resize',
        'pointer',
        'progress',
        'not-allowed',
        'no-drop',
        'vertical-text',
        'all-scroll',
        'col-resize',
        'row-resize',
      ],
      overflow: ['hidden', 'visible', 'scroll', 'auto'],
      position: ['static', 'relative', 'absolute', 'fixed'],
    },
    Dl = {
      'border-width': ['border'],
      'border-style': ['border'],
      'border-color': ['border'],
      'border-top': ['border'],
      'border-right': ['border'],
      'border-bottom': ['border'],
      'border-left': ['border'],
      'border-top-width': ['border-top', 'border-width', 'border'],
      'border-right-width': ['border-right', 'border-width', 'border'],
      'border-bottom-width': ['border-bottom', 'border-width', 'border'],
      'border-left-width': ['border-left', 'border-width', 'border'],
      'border-top-style': ['border-top', 'border-style', 'border'],
      'border-right-style': ['border-right', 'border-style', 'border'],
      'border-bottom-style': ['border-bottom', 'border-style', 'border'],
      'border-left-style': ['border-left', 'border-style', 'border'],
      'border-top-color': ['border-top', 'border-color', 'border'],
      'border-right-color': ['border-right', 'border-color', 'border'],
      'border-bottom-color': ['border-bottom', 'border-color', 'border'],
      'border-left-color': ['border-left', 'border-color', 'border'],
      'margin-top': ['margin'],
      'margin-right': ['margin'],
      'margin-bottom': ['margin'],
      'margin-left': ['margin'],
      'padding-top': ['padding'],
      'padding-right': ['padding'],
      'padding-bottom': ['padding'],
      'padding-left': ['padding'],
      'font-style': ['font'],
      'font-variant': ['font'],
      'font-weight': ['font'],
      'font-size': ['font'],
      'font-family': ['font'],
      'list-style-type': ['list-style'],
      'list-style-position': ['list-style'],
      'list-style-image': ['list-style'],
    };
  function Nl(e, t, r) {
    let n = me(e).basename;
    if (n === 'background') return e + ':' + ne(t.value);
    let o = t.id,
      i = r[o];
    if (!i) {
      switch (t.value.type) {
        case 'Value':
          let a = {},
            l = '',
            c = '',
            s = !1;
          t.value.children.forEach(function u(p) {
            switch (p.type) {
              case 'Value':
              case 'Brackets':
              case 'Parentheses':
                p.children.forEach(u);
                break;
              case 'Raw':
                s = !0;
                break;
              case 'Identifier': {
                let { name: h } = p;
                l || (l = Z(h).vendor),
                  /\\[09]/.test(h) && (c = RegExp.lastMatch),
                  Ol.hasOwnProperty(n) ?
                    Ol[n].indexOf(h) === -1 && (a[h] = !0)
                  : Il.hasOwnProperty(n) && Il[n].test(h) && (a[h] = !0);
                break;
              }
              case 'Function': {
                let { name: h } = p;
                l || (l = Z(h).vendor),
                  h === 'rect' &&
                    (p.children.some(
                      (y) => y.type === 'Operator' && y.value === ','
                    ) ||
                      (h = 'rect-backward')),
                  (a[h + '()'] = !0),
                  p.children.forEach(u);
                break;
              }
              case 'Dimension': {
                let { unit: h } = p;
                switch ((/\\[09]/.test(h) && (c = RegExp.lastMatch), h)) {
                  case 'rem':
                  case 'vw':
                  case 'vh':
                  case 'vmin':
                  case 'vmax':
                  case 'vm':
                    a[h] = !0;
                    break;
                }
                break;
              }
            }
          }),
            (i = s ? '!' + Gm++ : '!' + Object.keys(a).sort() + '|' + c + l);
          break;
        case 'Raw':
          i = '!' + t.value.value;
          break;
        default:
          i = ne(t.value);
      }
      r[o] = i;
    }
    return e + i;
  }
  function Qm(e, t, r) {
    let n = me(t.property);
    if (Dl.hasOwnProperty(n.basename)) {
      let o = Dl[n.basename];
      for (let i of o) {
        let a = Nl(n.prefix + i, t, r),
          l = e.hasOwnProperty(a) ? e[a] : null;
        if (l && (!t.important || l.item.data.important)) return l;
      }
    }
  }
  function $m(e, t, r, n, o) {
    let i = e.block.children;
    i.forEachRight(function (a, l) {
      let { property: c } = a,
        s = Nl(c, a, o),
        u = n[s];
      u && !Km.has(c) ?
        a.important && !u.item.data.important ?
          ((n[s] = { block: i, item: l }), u.block.remove(u.item))
        : i.remove(l)
      : Qm(n, a, o) ? i.remove(l)
      : ((a.fingerprint = s), (n[s] = { block: i, item: l }));
    }),
      i.isEmpty && r.remove(t);
  }
  function Di(e) {
    let t = {},
      r = Object.create(null);
    F(e, {
      visit: 'Rule',
      reverse: !0,
      enter(n, o, i) {
        let a = this.block || this.stylesheet,
          l = (n.pseudoSignature || '') + '|' + n.prelude.children.first.id,
          c,
          s;
        t.hasOwnProperty(a.id) ? (c = t[a.id]) : ((c = {}), (t[a.id] = c)),
          c.hasOwnProperty(l) ? (s = c[l]) : ((s = {}), (c[l] = s)),
          $m.call(this, n, o, i, s, r);
      },
    });
  }
  function Xm(e, t, r) {
    let n = e.prelude.children,
      o = e.block.children,
      i = n.first.compareMarker,
      a = {};
    r.nextUntil(t.next, function (l, c) {
      if (l.type !== 'Rule') return De.call(n, l);
      if (e.pseudoSignature !== l.pseudoSignature) return !0;
      let s = l.prelude.children.head,
        u = l.block.children,
        p = s.data.compareMarker;
      if (p in a) return !0;
      if (n.head === n.tail && n.first.id === s.data.id) {
        o.appendList(u), r.remove(c);
        return;
      }
      if (zt(o, u)) {
        let h = s.data.id;
        n.some((m, y) => {
          let T = m.id;
          if (h < T) return n.insert(s, y), !0;
          if (!y.next) return n.insert(s), !0;
        }),
          r.remove(c);
        return;
      }
      if (p === i) return !0;
      a[p] = !0;
    });
  }
  function Ni(e) {
    F(e, { visit: 'Rule', enter: Xm });
  }
  function Mi(e) {
    return e.reduce((t, r) => t + r.id.length + 1, 0) - 1;
  }
  function Ri(e) {
    let t = 0;
    for (let r of e) t += r.length;
    return t + e.length - 1;
  }
  function Zm(e, t, r) {
    let n = this.block !== null ? this.block.avoidRulesMerge : !1,
      o = e.prelude.children,
      i = e.block,
      a = Object.create(null),
      l = !0,
      c = !0;
    r.prevUntil(t.prev, function (s, u) {
      let p = s.block,
        h = s.type;
      if (h !== 'Rule') {
        let T = De.call(o, s);
        return (
          !T &&
            h === 'Atrule' &&
            p &&
            F(p, {
              visit: 'Rule',
              enter(N) {
                N.prelude.children.forEach((C) => {
                  a[C.compareMarker] = !0;
                });
              },
            }),
          T
        );
      }
      if (e.pseudoSignature !== s.pseudoSignature) return !0;
      let m = s.prelude.children;
      if (((c = !m.some((T) => T.compareMarker in a)), !c && !l)) return !0;
      if (l && Rt(m, o))
        return p.children.appendList(i.children), r.remove(t), !0;
      let y = Ei(i.children, p.children);
      if (y.eq.length) {
        if (!y.ne1.length && !y.ne2.length)
          return c && (Oe(o, m), r.remove(u)), !0;
        if (!n)
          if (y.ne1.length && !y.ne2.length) {
            let T = Mi(o),
              N = Ri(y.eq);
            l && T < N && (Oe(m, o), i.children.fromArray(y.ne1));
          } else if (!y.ne1.length && y.ne2.length) {
            let T = Mi(m),
              N = Ri(y.eq);
            c && T < N && (Oe(o, m), p.children.fromArray(y.ne2));
          } else {
            let T = {
                type: 'SelectorList',
                loc: null,
                children: Oe(m.copy(), o),
              },
              N = Mi(T.children) + 2;
            if (Ri(y.eq) >= N) {
              let D = r.createItem({
                type: 'Rule',
                loc: null,
                prelude: T,
                block: {
                  type: 'Block',
                  loc: null,
                  children: new w().fromArray(y.eq),
                },
                pseudoSignature: e.pseudoSignature,
              });
              return (
                i.children.fromArray(y.ne1),
                p.children.fromArray(y.ne2overrided),
                l ? r.insert(D, u) : r.insert(D, t),
                !0
              );
            }
          }
      }
      l &&
        (l = !m.some((T) =>
          o.some((N) => N.compareMarker === T.compareMarker)
        )),
        m.forEach((T) => {
          a[T.compareMarker] = !0;
        });
    });
  }
  function zi(e) {
    F(e, { visit: 'Rule', reverse: !0, enter: Zm });
  }
  function Ml(e, t) {
    let r = Ci(e, t);
    t.logger('prepare', e),
      Ai(e, t),
      t.logger('mergeAtrule', e),
      Ti(e),
      t.logger('initialMergeRuleset', e),
      Li(e),
      t.logger('disjoinRuleset', e),
      Oi(e, r),
      t.logger('restructShorthand', e),
      Di(e),
      t.logger('restructBlock', e),
      Ni(e),
      t.logger('mergeRuleset', e),
      zi(e),
      t.logger('restructRuleset', e);
  }
  function Jm(e, t) {
    let r = new w(),
      n = !1,
      o;
    return (
      e.nextUntil(e.head, (i, a, l) => {
        if (i.type === 'Comment') {
          if (!t || i.value.charAt(0) !== '!') {
            l.remove(a);
            return;
          }
          if (n || o) return !0;
          l.remove(a), (o = i);
          return;
        }
        i.type !== 'WhiteSpace' && (n = !0), r.insert(l.remove(a));
      }),
      { comment: o, stylesheet: { type: 'StyleSheet', loc: null, children: r } }
    );
  }
  function ed(e, t, r, n) {
    n.logger(`Compress block #${r}`, null, !0);
    let o = 1;
    return (
      e.type === 'StyleSheet' && ((e.firstAtrulesAllowed = t), (e.id = o++)),
      F(e, {
        visit: 'Atrule',
        enter(i) {
          i.block !== null && (i.block.id = o++);
        },
      }),
      n.logger('init', e),
      ll(e, n),
      n.logger('clean', e),
      wl(e, n),
      n.logger('replace', e),
      n.restructuring && Ml(e, n),
      e
    );
  }
  function td(e) {
    let t = 'comments' in e ? e.comments : 'exclamation';
    return (
      typeof t == 'boolean' ?
        (t = t ? 'exclamation' : !1)
      : t !== 'exclamation' && t !== 'first-exclamation' && (t = !1),
      t
    );
  }
  function rd(e) {
    return (
      'restructure' in e ? e.restructure
      : 'restructuring' in e ? e.restructuring
      : !0
    );
  }
  function nd(e) {
    return new w().appendData({
      type: 'Rule',
      loc: null,
      prelude: {
        type: 'SelectorList',
        loc: null,
        children: new w().appendData({
          type: 'Selector',
          loc: null,
          children: new w().appendData({
            type: 'TypeSelector',
            loc: null,
            name: 'x',
          }),
        }),
      },
      block: e,
    });
  }
  function Fi(e, t) {
    (e = e || { type: 'StyleSheet', loc: null, children: new w() }),
      (t = t || {});
    let r = {
        logger: typeof t.logger == 'function' ? t.logger : function () {},
        restructuring: rd(t),
        forceMediaMerge: Boolean(t.forceMediaMerge),
        usage: t.usage ? il(t.usage) : !1,
      },
      n = new w(),
      o = td(t),
      i = !0,
      a,
      l,
      c = 1,
      s;
    t.clone && (e = Dt(e)),
      e.type === 'StyleSheet' ?
        ((a = e.children), (e.children = n))
      : (a = nd(e));
    do {
      if (
        ((l = Jm(a, Boolean(o))),
        ed(l.stylesheet, i, c++, r),
        (s = l.stylesheet.children),
        l.comment &&
          (n.isEmpty ||
            n.insert(
              w.createItem({
                type: 'Raw',
                value: `
`,
              })
            ),
          n.insert(w.createItem(l.comment)),
          s.isEmpty ||
            n.insert(
              w.createItem({
                type: 'Raw',
                value: `
`,
              })
            )),
        i && !s.isEmpty)
      ) {
        let u = s.last;
        (u.type !== 'Atrule' ||
          (u.name !== 'import' && u.name !== 'charset')) &&
          (i = !1);
      }
      o !== 'exclamation' && (o = !1), n.appendList(s);
    } while (!a.isEmpty);
    return { ast: e };
  }
  function Rl(e) {
    let t = nt.encode(e, !0),
      r = nt.encode(e);
    return t.length < r.length ? t : r;
  }
  var {
    lexer: od,
    tokenize: id,
    parse: ad,
    generate: sd,
    walk: ld,
    find: cd,
    findLast: ud,
    findAll: pd,
    fromPlainObject: hd,
    toPlainObject: fd,
  } = nl({
    node: {
      String: {
        generate(e) {
          this.token(Ee.String, Rl(e.value));
        },
      },
      Url: {
        generate(e) {
          let t = Pt.encode(e.value),
            r = Rl(e.value);
          this.token(Ee.Url, t.length <= r.length + 5 ? t : 'url(' + r + ')');
        },
      },
    },
  });
  var Bi = {};
  b(Bi, {
    addSelectors: () => Oe,
    compareDeclarations: () => Ei,
    hasSimilarSelectors: () => vr,
    isEqualDeclarations: () => zt,
    isEqualSelectors: () => Rt,
    processSelector: () => Mt,
    unsafeToSkipNode: () => De,
  });
  var { parse: md, generate: _i, compress: dd } = Cr;
  function at(e, t, r, n) {
    return (
      t.debug &&
        console.error(
          `## ${e} done in %d ms
`,
          Date.now() - r
        ),
      n
    );
  }
  function gd(e) {
    let t;
    return function (n, o) {
      let i = n;
      if (
        (o && (i = `[${((Date.now() - t) / 1e3).toFixed(3)}s] ${i}`),
        e > 1 && o)
      ) {
        let a = _i(o);
        e === 2 && a.length > 256 && (a = a.substr(0, 256) + '...'),
          (i += `
  ${a}
`);
      }
      console.error(i), (t = Date.now());
    };
  }
  function bd(e) {
    return (
      (e = { ...e }),
      typeof e.logger != 'function' && e.debug && (e.logger = gd(e.debug)),
      e
    );
  }
  function zl(e, t, r) {
    Array.isArray(r) || (r = [r]), r.forEach((n) => n(e, t));
  }
  function Fl(e, t, r) {
    r = r || {};
    let n = r.filename || '<unknown>',
      o,
      i = at(
        'parsing',
        r,
        Date.now(),
        md(t, { context: e, filename: n, positions: Boolean(r.sourceMap) })
      );
    r.beforeCompress &&
      at('beforeCompress', r, Date.now(), zl(i, r, r.beforeCompress));
    let a = at('compress', r, Date.now(), dd(i, bd(r)));
    return (
      r.afterCompress &&
        at('afterCompress', r, Date.now(), zl(a, r, r.afterCompress)),
      r.sourceMap ?
        (o = at(
          'generate(sourceMap: true)',
          r,
          Date.now(),
          (() => {
            let l = _i(a.ast, { sourceMap: !0 });
            return (l.map._file = n), l.map.setSourceContent(n, t), l;
          })()
        ))
      : (o = at('generate', r, Date.now(), { css: _i(a.ast), map: null })),
      o
    );
  }
  function yd(e, t) {
    return Fl('stylesheet', e, t);
  }
  function xd(e, t) {
    return Fl('declarationList', e, t);
  }
  return Wl(kd);
})();
