hyperframes 0.6.99 → 0.6.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -50,7 +50,7 @@ var VERSION;
50
50
  var init_version = __esm({
51
51
  "src/version.ts"() {
52
52
  "use strict";
53
- VERSION = true ? "0.6.99" : "0.0.0-dev";
53
+ VERSION = true ? "0.6.100" : "0.0.0-dev";
54
54
  }
55
55
  });
56
56
 
@@ -10069,12 +10069,12 @@ var init_parent_node = __esm({
10069
10069
  parentNode = parentNode.parentNode;
10070
10070
  return parentNode === this;
10071
10071
  }
10072
- insertBefore(node, before2 = null) {
10073
- if (node === before2)
10072
+ insertBefore(node, before3 = null) {
10073
+ if (node === before3)
10074
10074
  return node;
10075
10075
  if (node === this)
10076
10076
  throw new Error("unable to append a node to itself");
10077
- const next = before2 || this[END];
10077
+ const next = before3 || this[END];
10078
10078
  switch (node.nodeType) {
10079
10079
  case ELEMENT_NODE:
10080
10080
  node.remove();
@@ -12892,7 +12892,7 @@ var require_CSSValueExpression = __commonJS({
12892
12892
  }
12893
12893
  };
12894
12894
  CSSOM.CSSValueExpression.prototype._parseJSRexExp = function(token, idx) {
12895
- var before2 = token.substring(0, idx).replace(/\s+$/, ""), legalRegx = [
12895
+ var before3 = token.substring(0, idx).replace(/\s+$/, ""), legalRegx = [
12896
12896
  /^$/,
12897
12897
  /\($/,
12898
12898
  /\[$/,
@@ -12919,7 +12919,7 @@ var require_CSSValueExpression = __commonJS({
12919
12919
  /void$/
12920
12920
  ];
12921
12921
  var isLegal = legalRegx.some(function(reg) {
12922
- return reg.test(before2);
12922
+ return reg.test(before3);
12923
12923
  });
12924
12924
  if (!isLegal) {
12925
12925
  return false;
@@ -17420,7 +17420,7 @@ var require_types = __commonJS({
17420
17420
  }
17421
17421
  return new ArrayType(Type2.from(value[0]));
17422
17422
  }
17423
- if (isObject.check(value)) {
17423
+ if (isObject2.check(value)) {
17424
17424
  return new ObjectType(Object.keys(value).map(function(name2) {
17425
17425
  return new Field(name2, Type2.from(value[name2], name2));
17426
17426
  }));
@@ -17466,7 +17466,7 @@ var require_types = __commonJS({
17466
17466
  var isFunction = defBuiltInType("function", function() {
17467
17467
  });
17468
17468
  var isArray4 = defBuiltInType("array", []);
17469
- var isObject = defBuiltInType("object", {});
17469
+ var isObject2 = defBuiltInType("object", {});
17470
17470
  var isRegExp = defBuiltInType("RegExp", /./);
17471
17471
  var isDate = defBuiltInType("Date", /* @__PURE__ */ new Date());
17472
17472
  var isNumber3 = defBuiltInType("number", 3);
@@ -17480,7 +17480,7 @@ var require_types = __commonJS({
17480
17480
  string: isString,
17481
17481
  function: isFunction,
17482
17482
  array: isArray4,
17483
- object: isObject,
17483
+ object: isObject2,
17484
17484
  RegExp: isRegExp,
17485
17485
  Date: isDate,
17486
17486
  number: isNumber3,
@@ -18814,7 +18814,7 @@ var require_path_visitor = __commonJS({
18814
18814
  var types5 = fork.use(types_1.default);
18815
18815
  var NodePath = fork.use(node_path_1.default);
18816
18816
  var isArray4 = types5.builtInTypes.array;
18817
- var isObject = types5.builtInTypes.object;
18817
+ var isObject2 = types5.builtInTypes.object;
18818
18818
  var isFunction = types5.builtInTypes.function;
18819
18819
  var undefined2;
18820
18820
  var PathVisitor = function PathVisitor2() {
@@ -18852,7 +18852,7 @@ var require_path_visitor = __commonJS({
18852
18852
  if (methods instanceof PathVisitor) {
18853
18853
  return methods;
18854
18854
  }
18855
- if (!isObject.check(methods)) {
18855
+ if (!isObject2.check(methods)) {
18856
18856
  return new PathVisitor();
18857
18857
  }
18858
18858
  var Visitor = function Visitor2() {
@@ -18952,7 +18952,7 @@ var require_path_visitor = __commonJS({
18952
18952
  var value = path2.value;
18953
18953
  if (isArray4.check(value)) {
18954
18954
  path2.each(visitor.visitWithoutReset, visitor);
18955
- } else if (!isObject.check(value)) {
18955
+ } else if (!isObject2.check(value)) {
18956
18956
  } else {
18957
18957
  var childNames = types5.getFieldNames(value);
18958
18958
  if (visitor._shouldVisitComments && value.comments && childNames.indexOf("comments") < 0) {
@@ -19110,7 +19110,7 @@ var require_equiv = __commonJS({
19110
19110
  var getFieldNames = types5.getFieldNames;
19111
19111
  var getFieldValue = types5.getFieldValue;
19112
19112
  var isArray4 = types5.builtInTypes.array;
19113
- var isObject = types5.builtInTypes.object;
19113
+ var isObject2 = types5.builtInTypes.object;
19114
19114
  var isDate = types5.builtInTypes.Date;
19115
19115
  var isRegExp = types5.builtInTypes.RegExp;
19116
19116
  var hasOwn3 = Object.prototype.hasOwnProperty;
@@ -19147,7 +19147,7 @@ var require_equiv = __commonJS({
19147
19147
  if (isArray4.check(a)) {
19148
19148
  return arraysAreEquivalent(a, b2, problemPath);
19149
19149
  }
19150
- if (isObject.check(a)) {
19150
+ if (isObject2.check(a)) {
19151
19151
  return objectsAreEquivalent(a, b2, problemPath);
19152
19152
  }
19153
19153
  if (isDate.check(a)) {
@@ -19187,8 +19187,8 @@ var require_equiv = __commonJS({
19187
19187
  return true;
19188
19188
  }
19189
19189
  function objectsAreEquivalent(a, b2, problemPath) {
19190
- isObject.assert(a);
19191
- if (!isObject.check(b2)) {
19190
+ isObject2.assert(a);
19191
+ if (!isObject2.check(b2)) {
19192
19192
  return false;
19193
19193
  }
19194
19194
  if (a.type !== b2.type) {
@@ -20739,7 +20739,7 @@ var require_util = __commonJS({
20739
20739
  return path2;
20740
20740
  }
20741
20741
  exports.normalize = normalize;
20742
- function join103(aRoot, aPath) {
20742
+ function join104(aRoot, aPath) {
20743
20743
  if (aRoot === "") {
20744
20744
  aRoot = ".";
20745
20745
  }
@@ -20771,7 +20771,7 @@ var require_util = __commonJS({
20771
20771
  }
20772
20772
  return joined;
20773
20773
  }
20774
- exports.join = join103;
20774
+ exports.join = join104;
20775
20775
  exports.isAbsolute = function(aPath) {
20776
20776
  return aPath.charAt(0) === "/" || urlRegexp.test(aPath);
20777
20777
  };
@@ -20944,7 +20944,7 @@ var require_util = __commonJS({
20944
20944
  parsed.path = parsed.path.substring(0, index + 1);
20945
20945
  }
20946
20946
  }
20947
- sourceURL = join103(urlGenerate(parsed), sourceURL);
20947
+ sourceURL = join104(urlGenerate(parsed), sourceURL);
20948
20948
  }
20949
20949
  return normalize(sourceURL);
20950
20950
  }
@@ -29740,7 +29740,7 @@ var require_comments = __commonJS({
29740
29740
  var types5 = tslib_1.__importStar(require_main());
29741
29741
  var n = types5.namedTypes;
29742
29742
  var isArray4 = types5.builtInTypes.array;
29743
- var isObject = types5.builtInTypes.object;
29743
+ var isObject2 = types5.builtInTypes.object;
29744
29744
  var lines_1 = require_lines();
29745
29745
  var util_1 = require_util2();
29746
29746
  var childNodesCache = /* @__PURE__ */ new WeakMap();
@@ -29770,7 +29770,7 @@ var require_comments = __commonJS({
29770
29770
  var names;
29771
29771
  if (isArray4.check(node)) {
29772
29772
  names = Object.keys(node);
29773
- } else if (isObject.check(node)) {
29773
+ } else if (isObject2.check(node)) {
29774
29774
  names = types5.getFieldNames(node);
29775
29775
  } else {
29776
29776
  return resultArray;
@@ -29990,7 +29990,7 @@ var require_parser = __commonJS({
29990
29990
  var tiny_invariant_1 = tslib_1.__importDefault(require_tiny_invariant_cjs());
29991
29991
  var types5 = tslib_1.__importStar(require_main());
29992
29992
  var b2 = types5.builders;
29993
- var isObject = types5.builtInTypes.object;
29993
+ var isObject2 = types5.builtInTypes.object;
29994
29994
  var isArray4 = types5.builtInTypes.array;
29995
29995
  var options_1 = require_options();
29996
29996
  var lines_1 = require_lines();
@@ -30091,7 +30091,7 @@ var require_parser = __commonJS({
30091
30091
  }, this);
30092
30092
  return copy_1;
30093
30093
  }
30094
- if (!isObject.check(node)) {
30094
+ if (!isObject2.check(node)) {
30095
30095
  return node;
30096
30096
  }
30097
30097
  util.fixFaultyLocations(node, this.lines);
@@ -30623,7 +30623,7 @@ var require_patcher = __commonJS({
30623
30623
  var SourceLocation3 = types5.namedTypes.SourceLocation;
30624
30624
  var util_1 = require_util2();
30625
30625
  var fast_path_1 = tslib_1.__importDefault(require_fast_path());
30626
- var isObject = types5.builtInTypes.object;
30626
+ var isObject2 = types5.builtInTypes.object;
30627
30627
  var isArray4 = types5.builtInTypes.array;
30628
30628
  var isString = types5.builtInTypes.string;
30629
30629
  var riskyAdjoiningCharExp = /[0-9a-z_$]/i;
@@ -30805,7 +30805,7 @@ var require_patcher = __commonJS({
30805
30805
  return true;
30806
30806
  if (isArray4.check(newNode))
30807
30807
  return findArrayReprints(newPath, oldPath, reprints);
30808
- if (isObject.check(newNode))
30808
+ if (isObject2.check(newNode))
30809
30809
  return findObjectReprints(newPath, oldPath, reprints);
30810
30810
  return false;
30811
30811
  }
@@ -30833,12 +30833,12 @@ var require_patcher = __commonJS({
30833
30833
  }
30834
30834
  function findObjectReprints(newPath, oldPath, reprints) {
30835
30835
  var newNode = newPath.getValue();
30836
- isObject.assert(newNode);
30836
+ isObject2.assert(newNode);
30837
30837
  if (newNode.original === null) {
30838
30838
  return false;
30839
30839
  }
30840
30840
  var oldNode = oldPath.getValue();
30841
- if (!isObject.check(oldNode))
30841
+ if (!isObject2.check(oldNode))
30842
30842
  return false;
30843
30843
  if (newNode === oldNode || newPath.valueIsDuplicate() || oldPath.valueIsDuplicate()) {
30844
30844
  return true;
@@ -30886,8 +30886,8 @@ var require_patcher = __commonJS({
30886
30886
  function findChildReprints(newPath, oldPath, reprints) {
30887
30887
  var newNode = newPath.getValue();
30888
30888
  var oldNode = oldPath.getValue();
30889
- isObject.assert(newNode);
30890
- isObject.assert(oldNode);
30889
+ isObject2.assert(newNode);
30890
+ isObject2.assert(oldNode);
30891
30891
  if (newNode.original === null) {
30892
30892
  return false;
30893
30893
  }
@@ -30938,13 +30938,13 @@ var require_printer = __commonJS({
30938
30938
  var util = tslib_1.__importStar(require_util2());
30939
30939
  var namedTypes = types5.namedTypes;
30940
30940
  var isString = types5.builtInTypes.string;
30941
- var isObject = types5.builtInTypes.object;
30941
+ var isObject2 = types5.builtInTypes.object;
30942
30942
  var PrintResult = function PrintResult2(code, sourceMap) {
30943
30943
  (0, tiny_invariant_1.default)(this instanceof PrintResult2);
30944
30944
  isString.assert(code);
30945
30945
  this.code = code;
30946
30946
  if (sourceMap) {
30947
- isObject.assert(sourceMap);
30947
+ isObject2.assert(sourceMap);
30948
30948
  this.map = sourceMap;
30949
30949
  }
30950
30950
  };
@@ -41038,10 +41038,10 @@ var require_lib2 = __commonJS({
41038
41038
  stopOnStartOfClassStaticBlock,
41039
41039
  errorTemplate = TSErrors.InvalidModifierOnTypeMember
41040
41040
  }, modified) {
41041
- const enforceOrder = (loc, modifier, before2, after2) => {
41042
- if (modifier === before2 && modified[after2]) {
41041
+ const enforceOrder = (loc, modifier, before3, after2) => {
41042
+ if (modifier === before3 && modified[after2]) {
41043
41043
  this.raise(TSErrors.InvalidModifiersOrder, loc, {
41044
- orderedModifiers: [before2, after2]
41044
+ orderedModifiers: [before3, after2]
41045
41045
  });
41046
41046
  }
41047
41047
  };
@@ -53537,7 +53537,7 @@ var RUNTIME_IIFE;
53537
53537
  var init_runtime_inline = __esm({
53538
53538
  "../core/src/generated/runtime-inline.ts"() {
53539
53539
  "use strict";
53540
- RUNTIME_IIFE = '"use strict";(()=>{var ms=Object.create;var bn=Object.defineProperty;var ps=Object.getOwnPropertyDescriptor;var hs=Object.getOwnPropertyNames;var xs=Object.getPrototypeOf,gs=Object.prototype.hasOwnProperty;var ys=(t,e,n)=>e in t?bn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ss=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of hs(e))!gs.call(t,r)&&r!==n&&bn(t,r,{get:()=>e[r],enumerable:!(i=ps(e,r))||i.enumerable});return t};var bs=(t,e,n)=>(n=t!=null?ms(xs(t)):{},Ss(e||!t||!t.__esModule?bn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ys(t,typeof e!="symbol"?e+"":e,n);var Yi=te((Tc,Tn)=>{var K=String,Qi=function(){return{isColorSupported:!1,reset:K,bold:K,dim:K,italic:K,underline:K,inverse:K,hidden:K,strikethrough:K,black:K,red:K,green:K,yellow:K,blue:K,magenta:K,cyan:K,white:K,gray:K,bgBlack:K,bgRed:K,bgGreen:K,bgYellow:K,bgBlue:K,bgMagenta:K,bgCyan:K,bgWhite:K,blackBright:K,redBright:K,greenBright:K,yellowBright:K,blueBright:K,magentaBright:K,cyanBright:K,whiteBright:K,bgBlackBright:K,bgRedBright:K,bgGreenBright:K,bgYellowBright:K,bgBlueBright:K,bgMagentaBright:K,bgCyanBright:K,bgWhiteBright:K}};Tn.exports=Qi();Tn.exports.createColors=Qi});var kn=te(()=>{});var Ut=te((vc,er)=>{"use strict";var Zi=Yi(),Xi=kn(),bt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Zi.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:h,red:f}=Zi.createColors(!0);r=x=>u(f(x)),i=x=>h(x),Xi&&(o=x=>Xi(x))}let s=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),c=String(a).length;return s.slice(l,a).map((u,h)=>{let f=l+1+h,x=" "+(" "+f).slice(-c)+" | ";if(f===this.line){if(u.length>160){let E=20,S=Math.max(0,this.column-E),D=Math.max(this.column+E,this.endColumn+E),L=u.slice(S,D),R=i(x.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,E-1)).replace(/[^\\t]/g," ");return r(">")+i(x)+o(L)+`\n `+R+r("^")}let F=i(x.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(x)+o(u)+`\n `+F+r("^")}return" "+i(x)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};er.exports=bt;bt.default=bt});var _n=te((Rc,nr)=>{"use strict";var Vs=/(<)(\\/?style\\b)/gi,Us=/(<)(!--)/g;function Ve(t){return typeof t!="string"||!t.includes("<")?t:t.replace(Vs,"\\\\3c $2").replace(Us,"\\\\3c $2")}var tr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function zs(t){return t[0].toUpperCase()+t.slice(1)}var At=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(Ve(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let l=0;l<o;l++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(Ve(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(Ve(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let l=n[s],a=this.raw(l,"before");a&&this.builder(o?a:Ve(a)),this.stringify(l,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(Ve("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(Ve(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return tr[i];let s=e.root(),l=s.rawCache||(s.rawCache={});if(typeof l[i]<"u")return l[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+zs(i);this[a]?r=this[a](s,e):s.walk(c=>{if(r=c.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=tr[i]),l[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:Ve(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(Ve(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};nr.exports=At;At.default=At});var Et=te((Lc,ir)=>{"use strict";var js=_n();function vn(t,e){new js(e).stringify(t)}ir.exports=vn;vn.default=vn});var zt=te((Dc,Rn)=>{"use strict";Rn.exports.isClean=Symbol("isClean");Rn.exports.my=Symbol("my")});var Nt=te((Bc,rr)=>{"use strict";var Gs=Ut(),$s=_n(),Ks=Et(),{isClean:Ft,my:Js}=zt();function Ln(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>Ln(s,n)):(o==="object"&&r!==null&&(r=Ln(r)),n[i]=r)}return n}function Oe(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var wt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[Ft]=!1,this[Js]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=Ln(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new Gs(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[Ft]=!0}markDirty(){if(this[Ft]){this[Ft]=!1;let e=this;for(;e=e.parent;)e[Ft]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Oe(i,this.source.start),Oe(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Oe(r,this.source.start),s=o+e;for(let l=o;l<s;l++)r[l]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Oe(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Oe(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Oe(n,this.source.start),Oe(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Oe(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Oe(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new $s().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let l=this[s];if(Array.isArray(l))i[s]=l.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof l=="object"&&l.toJSON)i[s]=l.toJSON(null,n);else if(s==="source"){if(l==null)continue;let a=n.get(l.input);a==null&&(a=o,n.set(l.input,o),o++),i[s]={end:l.end,inputId:a,start:l.start}}else i[s]=l}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ks){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};rr.exports=wt;wt.default=wt});var Mt=te((Ic,or)=>{"use strict";var Qs=Nt(),Ct=class extends Qs{constructor(e){super(e),this.type="comment"}};or.exports=Ct;Ct.default=Ct});var kt=te((Oc,sr)=>{"use strict";var Ys=Nt(),Tt=class extends Ys{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};sr.exports=Tt;Tt.default=Tt});var Ue=te((Pc,hr)=>{"use strict";var ar=Mt(),lr=kt(),Zs=Nt(),{isClean:ur,my:cr}=zt(),Dn,dr,fr,Bn;function mr(t){return t.map(e=>(e.nodes&&(e.nodes=mr(e.nodes)),delete e.source,e))}function pr(t){if(t[ur]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)pr(e)}var Re=class t extends Zs{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let l of o)this.proxyOf.nodes.splice(i,0,l);let s;for(let l in this.indexes)s=this.indexes[l],i<=s&&(this.indexes[l]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=mr(dr(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new lr(e)]}else if(e.selector||e.selectors)e=[new Bn(e)];else if(e.name)e=[new Dn(e)];else if(e.text)e=[new ar(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[cr]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[ur]&&pr(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};Re.registerParse=t=>{dr=t};Re.registerRule=t=>{Bn=t};Re.registerAtRule=t=>{Dn=t};Re.registerRoot=t=>{fr=t};hr.exports=Re;Re.default=Re;Re.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,Dn.prototype):t.type==="rule"?Object.setPrototypeOf(t,Bn.prototype):t.type==="decl"?Object.setPrototypeOf(t,lr.prototype):t.type==="comment"?Object.setPrototypeOf(t,ar.prototype):t.type==="root"&&Object.setPrototypeOf(t,fr.prototype),t[cr]=!0,t.nodes&&t.nodes.forEach(e=>{Re.rebuild(e)})}});var jt=te((Hc,gr)=>{"use strict";var xr=Ue(),nt=class extends xr{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};gr.exports=nt;nt.default=nt;xr.registerAtRule(nt)});var Gt=te((Wc,br)=>{"use strict";var Xs=Ue(),yr,Sr,Ye=class extends Xs{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new yr(new Sr,this,e).stringify()}};Ye.registerLazyResult=t=>{yr=t};Ye.registerProcessor=t=>{Sr=t};br.exports=Ye;Ye.default=Ye});var Er=te((qc,Ar)=>{var ea="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",ta=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},na=(t=21)=>{let e="",n=t|0;for(;n--;)e+=ea[Math.random()*64|0];return e};Ar.exports={nanoid:na,customAlphabet:ta}});var $t=te(()=>{});var Kt=te(()=>{});var In=te(()=>{});var Fr=te(()=>{});var Pn=te((Qc,Cr)=>{"use strict";var{existsSync:ia,readFileSync:ra}=Fr(),{dirname:On,join:oa}=$t(),{SourceMapConsumer:wr,SourceMapGenerator:Nr}=Kt();function sa(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var _t=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=On(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new wr(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let l=e.match(n)||e.match(i);if(l)return sa(e.substr(l[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=On(e),ia(e)))return this.mapFile=e,ra(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof wr)return Nr.fromSourceMap(n).toString();if(n instanceof Nr)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=oa(On(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};Cr.exports=_t;_t.default=_t});var vt=te((Yc,vr)=>{"use strict";var{nanoid:aa}=Er(),{isAbsolute:qn,resolve:Vn}=$t(),{SourceMapConsumer:la,SourceMapGenerator:ua}=Kt(),{fileURLToPath:Mr,pathToFileURL:Jt}=In(),Tr=Ut(),ca=Pn(),Hn=kn(),Wn=Symbol("lineToIndexCache"),da=!!(la&&ua),kr=!!(Vn&&qn);function _r(t){if(t[Wn])return t[Wn];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[Wn]=n,n}var it=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!kr||/^\\w+:\\/\\//.test(n.from)||qn(n.from)?this.file=n.from:this.file=Vn(n.from)),kr&&da){let i=new ca(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+aa(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,l,a,c;if(n&&typeof n=="object"){let h=n,f=i;if(typeof h.offset=="number"){a=h.offset;let x=this.fromOffset(a);n=x.line,i=x.col}else n=h.line,i=h.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){l=f.offset;let x=this.fromOffset(l);s=x.line,o=x.col}else s=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let h=this.fromOffset(a);n=h.line,i=h.col}let u=this.origin(n,i,s,o);return u?c=new Tr(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):c=new Tr(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),c.input={column:i,endColumn:o,endLine:s,endOffset:l,line:n,offset:a,source:this.css},this.file&&(Jt&&(c.input.url=Jt(this.file).toString()),c.input.file=this.file),c}fromLineAndColumn(e,n){return _r(this)[e-1]+n-1}fromOffset(e){let n=_r(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:Vn(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let l;typeof i=="number"&&(l=o.originalPositionFor({column:r,line:i}));let a;qn(s.source)?a=Jt(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||Jt(this.map.mapFile));let c={column:s.column,endColumn:l&&l.column,endLine:l&&l.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(Mr)c.file=Mr(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(c.source=u),c}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};vr.exports=it;it.default=it;Hn&&Hn.registerInput&&Hn.registerInput(it)});var rt=te((Zc,Br)=>{"use strict";var Rr=Ue(),Lr,Dr,ze=class extends Rr{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Lr(new Dr,this,e).stringify()}};ze.registerLazyResult=t=>{Lr=t};ze.registerProcessor=t=>{Dr=t};Br.exports=ze;ze.default=ze;Rr.registerRoot(ze)});var Un=te((Xc,Ir)=>{"use strict";var Rt={comma(t){return Rt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return Rt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,l=!1,a="",c=!1;for(let u of t)c?c=!1:u==="\\\\"?c=!0:l?u===a&&(l=!1):u===\'"\'||u==="\'"?(l=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};Ir.exports=Rt;Rt.default=Rt});var Qt=te((ed,Pr)=>{"use strict";var Or=Ue(),fa=Un(),ot=class extends Or{get selectors(){return fa.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};Pr.exports=ot;ot.default=ot;Or.registerRule(ot)});var Wr=te((td,Hr)=>{"use strict";var ma=jt(),pa=Mt(),ha=kt(),xa=vt(),ga=Pn(),ya=rt(),Sa=Qt();function Lt(t,e){if(Array.isArray(t))return t.map(r=>Lt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:xa.prototype};o.map&&(o.map={...o.map,__proto__:ga.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>Lt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new ya(i);if(i.type==="decl")return new ha(i);if(i.type==="rule")return new Sa(i);if(i.type==="comment")return new pa(i);if(i.type==="atrule")return new ma(i);throw new Error("Unknown node type: "+t.type)}Hr.exports=Lt;Lt.default=Lt});var jn=te((nd,Gr)=>{"use strict";var{dirname:Yt,relative:Vr,resolve:Ur,sep:zr}=$t(),{SourceMapConsumer:jr,SourceMapGenerator:Zt}=Kt(),{pathToFileURL:qr}=In(),ba=vt(),Aa=!!(jr&&Zt),Ea=!!(Yt&&Ur&&Vr&&zr),zn=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||Yt(e.file),r;this.mapOpts.sourcesContent===!1?(r=new jr(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Ea&&Aa&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=Zt.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new Zt({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new Zt({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(l,a,c)=>{if(this.css+=l,a&&c!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=l.match(/\\n/g),s?(e+=s.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,a&&c!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?Yt(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Yt(Ur(i,this.mapOpts.annotation)));let r=Vr(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ba(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(qr){let i=qr(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;zr==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Gr.exports=zn});var Jr=te((id,Kr)=>{"use strict";var Xt=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,en=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Fa=/.[\\r\\n"\'(/\\\\]/,$r=/[\\da-f]/i;Kr.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,l,a,c,u,h,f,x,F,E=i.length,S=0,D=[],L=[],R=-1;function ne(){return S}function q(N){throw e.error("Unclosed "+N,S)}function C(){return L.length===0&&S>=E}function g(N){if(L.length)return L.pop();if(S>=E)return;let w=N?N.ignoreUnclosed:!1;switch(o=i.charCodeAt(S),o){case 10:case 32:case 9:case 13:case 12:{a=S;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(S,a)],S=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let _=String.fromCharCode(o);u=[_,_,S];break}case 40:{if(F=D.length?D.pop()[1]:"",x=i.charCodeAt(S+1),F==="url"&&x!==39&&x!==34&&x!==32&&x!==10&&x!==9&&x!==12&&x!==13){a=S;do{if(h=!1,a=i.indexOf(")",a+1),a===-1)if(r||w){a=S;break}else q("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,h=!h}while(h);u=["brackets",i.slice(S,a+1),S,a],S=a}else S<=R?u=["(","(",S]:(a=i.indexOf(")",S+1),s=i.slice(S,a+1),a===-1||Fa.test(s)?(R=a===-1?E:a,u=["(","(",S]):(u=["brackets",s,S,a],S=a));break}case 39:case 34:{c=o===39?"\'":\'"\',a=S;do{if(h=!1,a=i.indexOf(c,a+1),a===-1)if(r||w){a=S+1;break}else q("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,h=!h}while(h);u=["string",i.slice(S,a+1),S,a],S=a;break}case 64:{Xt.lastIndex=S+1,Xt.test(i),Xt.lastIndex===0?a=i.length-1:a=Xt.lastIndex-2,u=["at-word",i.slice(S,a+1),S,a],S=a;break}case 92:{for(a=S,l=!0;i.charCodeAt(a+1)===92;)a+=1,l=!l;if(o=i.charCodeAt(a+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,$r.test(i.charAt(a)))){for(;$r.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(S,a+1),S,a],S=a;break}default:{o===47&&i.charCodeAt(S+1)===42?(a=i.indexOf("*/",S+2)+1,a===0&&(r||w?a=i.length:q("comment")),u=["comment",i.slice(S,a+1),S,a],S=a):(en.lastIndex=S+1,en.test(i),en.lastIndex===0?a=i.length-1:a=en.lastIndex-2,u=["word",i.slice(S,a+1),S,a],D.push(u),S=a);break}}return S++,u}function b(N){L.push(N)}return{back:b,endOfFile:C,nextToken:g,position:ne}}});var Xr=te((rd,Zr)=>{"use strict";var wa=jt(),Na=Mt(),Ca=kt(),Ma=rt(),Qr=Qt(),Ta=Jr(),Yr={empty:!0,space:!0};function ka(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Gn=class{constructor(e){this.input=e,this.root=new Ma,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new wa;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,l=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,l]of e.entries()){if(r=l,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Na;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=Ta(this.input)}decl(e,n){let i=new Ca;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||ka(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(o=e[c],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,c);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),h="";for(let f=c;f>0;f--){let x=u[f][0];if(h.trim().startsWith("!")&&x!=="space")break;h=u.pop()[1]+h}h.trim().startsWith("!")&&(i.important=!0,i.raws.important=h,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Qr;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],l=e[1].startsWith("--"),a=[],c=e;for(;c;){if(i=c[0],a.push(c),i==="("||i==="[")o||(o=c),s.push(i==="("?")":"]");else if(l&&r&&i==="{")o||(o=c),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,l);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!l)for(;a.length&&(c=a[a.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,l)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,l=i.length,a="",c=!0,u,h;for(let f=0;f<l;f+=1)o=i[f],s=o[0],s==="space"&&f===l-1&&!r?c=!1:s==="comment"?(h=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Yr[h]&&!Yr[u]?a.slice(-1)===","?c=!1:a+=o[1]:c=!1):a+=o[1];if(!c){let f=i.reduce((x,F)=>x+F[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Qr;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Zr.exports=Gn});var nn=te((od,eo)=>{"use strict";var _a=Ue(),va=vt(),Ra=Xr();function tn(t,e){let n=new va(t,e),i=new Ra(n);try{i.parse()}catch(r){throw r}return i.root}eo.exports=tn;tn.default=tn;_a.registerParse(tn)});var $n=te((sd,to)=>{"use strict";var Dt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};to.exports=Dt;Dt.default=Dt});var rn=te((ad,no)=>{"use strict";var La=$n(),Bt=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new La(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};no.exports=Bt;Bt.default=Bt});var Kn=te((ld,ro)=>{"use strict";var io={};ro.exports=function(e){io[e]||(io[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Yn=te((cd,lo)=>{"use strict";var Da=Ue(),Ba=Gt(),Ia=jn(),Oa=nn(),oo=rn(),Pa=rt(),Ha=Et(),{isClean:De,my:Wa}=zt(),ud=Kn(),qa={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Va={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Ua={Once:!0,postcssPlugin:!0,prepare:!0},st=0;function It(t){return typeof t=="object"&&typeof t.then=="function"}function ao(t){let e=!1,n=qa[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,st,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,st,n+"Exit"]:[n,n+"Exit"]}function so(t){let e;return t.type==="document"?e=["Document",st,"DocumentExit"]:t.type==="root"?e=["Root",st,"RootExit"]:e=ao(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Jn(t){return t[De]=!1,t.nodes&&t.nodes.forEach(e=>Jn(e)),t}var Qn={},je=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Jn(n);else if(n instanceof t||n instanceof oo)r=Jn(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=Oa;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[Wa]&&Da.rebuild(r)}this.result=new oo(e,r,i),this.helpers={...Qn,postcss:Qn,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!Va[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Ua[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(It(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[De];){e[De]=!0;let n=[so(e)];for(;n.length>0;){let i=this.visitTick(n);if(It(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return It(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=Ha;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,l=>{s+=l}),this.result.css=s,this.result}let o=new Ia(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(It(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[De];)e[De]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(It(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,l]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return l(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,l;for(;l=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!l[De]){l[De]=!0,e.push(so(l));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===st){i.nodes&&i.nodes.length&&(i[De]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[De]=!0;let n=ao(e);for(let i of n)if(i===st)e.nodes&&e.each(r=>{r[De]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};je.registerPostcss=t=>{Qn=t};lo.exports=je;je.default=je;Pa.registerLazyResult(je);Ba.registerLazyResult(je)});var co=te((fd,uo)=>{"use strict";var za=jn(),ja=nn(),Ga=rn(),$a=Et(),dd=Kn(),Ot=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=ja;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=$a;this.result=new Ga(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new za(r,void 0,this._opts,n);if(s.isMap()){let[l,a]=s.generate();l&&(this.result.css=l),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};uo.exports=Ot;Ot.default=Ot});var mo=te((md,fo)=>{"use strict";var Ka=Gt(),Ja=Yn(),Qa=co(),Ya=rt(),Ze=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Qa(this,e,n):new Ja(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};fo.exports=Ze;Ze.default=Ze;Ya.registerProcessor(Ze);Ka.registerProcessor(Ze)});var Ao=te((pd,bo)=>{"use strict";var po=jt(),ho=Mt(),Za=Ue(),Xa=Ut(),xo=kt(),go=Gt(),el=Wr(),tl=vt(),nl=Yn(),il=Un(),rl=Nt(),ol=nn(),Zn=mo(),sl=rn(),yo=rt(),So=Qt(),al=Et(),ll=$n();function re(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Zn(t)}re.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...s);return l.postcssPlugin=e,l.postcssVersion=new Zn().version,l}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,l,a){return re([r(a)]).process(s,l)},r};re.stringify=al;re.parse=ol;re.fromJSON=el;re.list=il;re.comment=t=>new ho(t);re.atRule=t=>new po(t);re.decl=t=>new xo(t);re.rule=t=>new So(t);re.root=t=>new yo(t);re.document=t=>new go(t);re.CssSyntaxError=Xa;re.Declaration=xo;re.Container=Za;re.Processor=Zn;re.Document=go;re.Comment=ho;re.Warning=ll;re.AtRule=po;re.Result=sl;re.Input=tl;re.Rule=So;re.Root=yo;re.Node=rl;nl.registerPostcss(re);bo.exports=re;re.default=re});function Ei(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=Ei(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}function Fi(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){t.onPlay();return}if(r==="pause"){t.onPause();return}if(r==="seek"){t.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="tick"){t.onTick();return}if(r==="set-muted"){t.onSetMuted(!!i.muted);return}if(r==="set-volume"){t.onSetVolume(Math.max(0,Math.min(1,Number(i.volume??1))));return}if(r==="set-media-output-muted"){t.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){t.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){t.onEnablePickMode();return}if(r==="disable-pick-mode"){t.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,s=i.duration||800;o&&As(o,s)}};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function As(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var An=null;function wi(t){An=t}function ft(t,e){if(An)try{An({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function Ni(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=(l,a)=>{for(let c of l){try{c.currentTime=a}catch(u){v("runtime.adapters.css.site1",u)}try{c.pause()}catch(u){v("runtime.adapters.css.site2",u)}}},r=l=>{for(let a of l)try{a.play()}catch(c){v("runtime.adapters.css.site3",c)}},o=l=>{for(let a of l)try{a.pause()}catch(c){v("runtime.adapters.css.site4",c)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let a of l){if(!(a instanceof HTMLElement))continue;let c=window.getComputedStyle(a);!c.animationName||c.animationName==="none"||e.push({el:a,baseDelay:a.style.animationDelay||"",basePlayState:a.style.animationPlayState||""})}},seek:l=>{let a=Number(l.time)||0;for(let c of e){if(!c.el.isConnected)continue;let u=t?.resolveStartSeconds?t.resolveStartSeconds(c.el):Number.parseFloat(c.el.getAttribute("data-start")??"0")||0,h=Math.max(0,a-u)*1e3,f=n(c.el);if(f.length>0){i(f,h);continue}c.el.style.animationPlayState="paused",c.el.style.animationDelay=`-${(h/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let a=n(l.el);a.length>0&&o(a),s(l)}},play:()=>{for(let l of e)l.el.isConnected&&(s(l),r(n(l.el)))},revert:()=>{e=[]}}}function Ci(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function Mi(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function _i(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(Ti(i))i.goToAndStop(e*1e3,!1);else if(ki(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(Ti(e)||ki(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{}}}function Ti(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function ki(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var En=-1;function Vt(t){if(t!==En){En=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function vi(t){En=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function Ri(){let t=null,e=0;return{name:"three",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfThreeTime=t,Vt(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Li(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,Vt(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Di(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function Bi(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Di(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Ii(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...l){let a=l.length-1,c=l[a];if(c instanceof HTMLVideoElement){let u=Di(c);u&&(l[a]=u)}return o.apply(this,l)};s.__hfVideoPatched=!0,i[r]=s}}}function Oi(){let t=!1,e=0,n=new WeakMap,i=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},r=l=>{let a=Number(l.currentTime);return Number.isFinite(a)&&a>0?a:0},o=(l,a)=>a<=0?l:l>=a?Math.max(0,l-a):l,s=(l,a)=>{let c=n.get(l);if(c)return c;let u={compositionTimeMs:a,animationTimeMs:t?o(r(l),a):r(l)};return n.set(l,u),u};return{name:"waapi",discover:()=>{t=!0;for(let l of i())s(l,e)},seek:l=>{let a=Math.max(0,(Number(l.time)||0)*1e3);e=a;for(let c of i()){let u=t?s(c,a):s(c,0),h=u.animationTimeMs+Math.max(0,a-u.compositionTimeMs);try{c.currentTime=h}catch(f){v("runtime.adapters.waapi.site1",f)}try{c.pause()}catch(f){v("runtime.adapters.waapi.site2",f)}}},pause:()=>{if(document.getAnimations)for(let l of document.getAnimations())try{l.pause()}catch(a){v("runtime.adapters.waapi.site3",a)}}}}function Pi(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Es(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),l=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),c=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=c;let u=1/Math.min(60,Math.max(1,i)),h=Math.max(0,r),f=Math.min(n,l),x=[];for(let E=h;E<=f+1e-6;E+=u){let S=Math.min(f,E);e(S);let D=Number(t.volume);if(!Number.isFinite(D))continue;let L=Math.max(0,Math.min(1,D)),R=x.at(-1);if((!R||Math.abs(R.volume-L)>1e-4||S===f)&&x.push({time:Number(S.toFixed(6)),volume:Number(L.toFixed(6))}),S===f)break}return x.some(E=>Math.abs(E.volume-c)>1e-4)?x:null}function Hi(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Es(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function ht(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function Wi(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let l=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(l))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,c=ht(s),u=s.loop,h=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&h!=null&&(f=Math.max(0,(h-a)/c));let x=Number.isFinite(f)&&f>0?l+f:Number.POSITIVE_INFINITY,F=Number.parseFloat(s.dataset.volume??""),E={el:s,start:l,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:x,volume:Number.isFinite(F)?F:null,playbackRate:c,loop:u,sourceDuration:h};i.push(E),s.tagName==="VIDEO"&&r.push(E),Number.isFinite(x)&&(o=Math.max(o,x))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Fn=new WeakMap,mt=new WeakMap,wn=new WeakSet,et=new WeakSet;function Fs(t){if(et.has(t))return;et.add(t);let e=()=>et.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Nn=new WeakMap;function pt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function qi(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let w=n.sourceDuration-n.mediaStart;w>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%w)}let s=pt(t.userVolume??1),l=pt(n.volume??1),a=Nn.get(i),c=pt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=pt(Pi(n.volumeKeyframes,r)):a===void 0||Math.abs(c-a)>1e-4?u=c:u=l;let h=pt(u*s);i.volume=h,Nn.set(i,h),t.onElementVolume?.(i,h),e&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(w){v("runtime.media.site1",w)}let f=.04,x=2,F=i.currentTime||0,E=Math.abs(F-r),S=r-F,D=Fn.get(i);Fn.set(i,S);let L=D===void 0,R=!L&&Math.abs(S-D)>.5,ne=E>3,q=E>.5&&(L||R||ne),C=i.tagName==="VIDEO"&&!i.paused,g=D!==void 0&&Math.abs(S-D)<.004,b=!1;if(!C&&!q&&!L&&g&&E>f){let w=(mt.get(i)??0)+1;mt.set(i,w),w>=x&&(b=!0,mt.set(i,0))}else E<=f&&mt.set(i,0);let N=!C&&t.forceSync&&E>.02;if(q||b||N){try{i.currentTime=r}catch(w){v("runtime.media.site2",w)}if(Math.abs(i.currentTime-r)>.5&&!wn.has(i)){wn.add(i),i.load();try{i.currentTime=r}catch(w){v("runtime.media.site3",w)}}et.delete(i)}t.playing&&i.paused&&!et.has(i)?(Fs(i),i.play().catch(w=>{et.delete(i),(w&&typeof w=="object"&&"name"in w?String(w.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Fn.delete(i),mt.delete(i),wn.delete(i),Nn.delete(i),i.paused||i.pause()}}var ws=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),Ns=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function Vi(t){let e=!1,n=null,i=null,r=null,o=null;function s(g,b){try{window.dispatchEvent(new CustomEvent(g,{detail:b}))}catch(N){v("runtime.picker.site1",N)}}function l(g){r=g,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(g){o=g,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function c(g){let b=g.ownerDocument.defaultView;if(!b)return!1;let N=g;for(;N&&N!==document.body&&N!==document.documentElement;){let w=b.getComputedStyle(N);if(w.display==="none"||w.visibility==="hidden"||w.pointerEvents==="none")return!0;let _=Number.parseFloat(w.opacity);if(Number.isFinite(_)&&_<=.01)return!0;N=N.parentElement}return!1}function u(g){if(!g||g===document.body||g===document.documentElement)return!1;let b=g.tagName.toLowerCase();return!(b==="script"||b==="style"||b==="link"||b==="meta"||g.classList.contains("__hf-pick-highlight")||g.closest(ws)||c(g))}function h(g){return!!g?.closest(Ns)}function f(g){let b=g;if(b.id)return`#${b.id}`;let N=g.getAttribute("data-composition-id");if(N)return`[data-composition-id="${N}"]`;let w=g.getAttribute("data-composition-src");if(w)return`[data-composition-src="${w}"]`;let _=g.getAttribute("data-track-index");if(_)return`[data-track-index="${_}"]`;let H=g.tagName.toLowerCase(),J=g.parentElement;if(!J)return H;let W=J.querySelectorAll(`:scope > ${H}`);if(W.length===1)return H;for(let T=0;T<W.length;T+=1)if(W[T]===g)return`${H}:nth-of-type(${T+1})`;return H}function x(g){let b=g.tagName.toLowerCase(),N=(g.textContent??"").trim().replace(/\\s+/g," "),w=(_,H)=>_.length>H?`${_.slice(0,H-1)}\\u2026`:_;return b==="h1"||b==="h2"||b==="h3"?"Heading":b==="p"||b==="span"||b==="div"?N.length>0?w(N,56):"Text":b==="img"?"Image":b==="video"?"Video":b==="audio"?"Audio":b==="svg"?"Shape":g.getAttribute("data-composition-src")?"Composition":b==="section"?"Section":`${b.charAt(0).toUpperCase()}${b.slice(1)}`}function F(g,b,N){let w=typeof N=="number"&&N>0?N:8,_=[];if(document.elementsFromPoint)_=document.elementsFromPoint(g,b);else if(document.elementFromPoint){let W=document.elementFromPoint(g,b);_=W?[W]:[]}if(h(_[0]??null))return[];let H={},J=[];for(let W=0;W<_.length;W+=1){let T=_[W];if(!u(T))continue;let de=`${T.tagName}::${T.id||""}::${W}`;if(!H[de]&&(H[de]=!0,J.push(T),J.length>=w))break}return J}function E(g){let b=g.getBoundingClientRect(),N={};for(let _=0;_<g.attributes.length;_+=1){let H=g.attributes[_];H.name.startsWith("data-")&&(N[H.name]=H.value)}return{id:g.id||null,tagName:g.tagName.toLowerCase(),selector:f(g),label:x(g),boundingBox:{x:b.left,y:b.top,width:b.width,height:b.height},textContent:g.textContent?g.textContent.trim().slice(0,200):null,src:g.getAttribute("src")||g.getAttribute("data-composition-src")||null,dataAttributes:N}}function S(g,b,N){return F(g,b,N).map(E)}function D(g){if(!e)return;let N=F(g.clientX,g.clientY,1)[0]??(g.target instanceof Element?g.target:null);if(!u(N)||n===N)return;n&&n.classList.remove("__hf-pick-highlight"),n=N,N.classList.add("__hf-pick-highlight");let w=E(N);l(w),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:w})}function L(g){if(!e)return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation();let b=S(g.clientX,g.clientY,8);b.length!==0&&(l(b[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:b,selectedIndex:0,point:{x:g.clientX,y:g.clientY}}))}function R(g){g.key==="Escape"&&(q(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function ne(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",D,!0),document.addEventListener("click",L,!0),document.addEventListener("keydown",R,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function q(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",D,!0),document.removeEventListener("click",L,!0),document.removeEventListener("keydown",R,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function C(){window.__HF_PICKER_API={enable:ne,disable:q,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(g,b,N)=>Number.isFinite(g)&&Number.isFinite(b)?S(g,b,N):[],pickAtPoint:(g,b,N)=>{if(!Number.isFinite(g)||!Number.isFinite(b))return null;let w=S(g,b,8);if(!w.length)return null;let _=Math.max(0,Math.min(w.length-1,Number(N??0))),H=w[_]??null;return H?(a(H),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:H}),q(),H):null},pickManyAtPoint:(g,b,N)=>{if(!Number.isFinite(g)||!Number.isFinite(b))return[];let w=S(g,b,8);if(!w.length)return[];let _=[],H=Array.isArray(N)?N:[0];for(let J of H){let W=Math.max(0,Math.min(w.length-1,Math.floor(Number(J)))),T=w[W];if(!T)continue;_.some(be=>be.selector===T.selector&&be.tagName===T.tagName)||_.push(T)}return _.length?(a(_[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:_}),q(),_):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:ne,disablePickMode:q,installPickerApi:C}}function tt(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function xt(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ve(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function gt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function Ui(t,e,n){let i=tt(e,n);return ve(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function Cs(t,e,n,i){let r=[];gt(t,e,o=>{ve(o,"play"),r.push(o)});try{return Ui(e,n,i)}finally{for(let o of r)try{ve(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ms(t,e){gt(t,e,n=>{ve(n,"play")})}function zi(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??xt(e,"duration",0))||0);n>0&&Math.max(0,xt(e,"time",0))>=n&&(ve(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ve(e,"play"),gt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ve(e,"pause"),gt(t.getTimelineRegistry?.(),e,i=>{ve(i,"pause")});let n=Math.max(0,xt(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=Cs(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play"),gt(t.getTimelineRegistry?.(),i,l=>{typeof l.timeScale=="function"&&l.timeScale(t.getPlaybackRate()),ve(l,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ms(t.getTimelineRegistry?.(),n),Ui(n,e,i)):tt(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>xt(t.getTimeline(),"time",0),getDuration:()=>xt(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function ji(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Ts="data-hf-authored-duration",ks="data-hf-authored-end";function Je(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function _s(t){return Je(t.getAttribute("data-duration"))}function vs(t){return Je(t.getAttribute("data-end"))}function Rs(t){return Je(t.getAttribute(Ts))}function Ls(t){return Je(t.getAttribute(ks))}function Ds(t){let e=(t??"").trim();if(!e)return null;let n=Je(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",l=Number.parseFloat(s),a=Number.isFinite(l)?Math.max(0,l):0,c=o==="-"?-a:a;return{kind:"reference",refId:r,offset:c}}function Qe(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let h=document.getElementById(u);return h||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},l=u=>{let h=r.get(u);if(h!==void 0)return h;let f=null,x=_s(u)??(n?Rs(u):null);if(x!=null&&x>0&&(f=x),f==null||f<=0){let F=vs(u)??(n?Ls(u):null);if(F!=null){let E=c(u,0),S=F-E;Number.isFinite(S)&&S>0&&(f=S)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let F=Je(u.getAttribute("data-playback-start"))??Je(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>F&&(f=(u.duration-F)/ht(u))}if(f==null||f<=0){let F=u.getAttribute("data-composition-id");if(F){let E=e[F]??null;if(E&&typeof E.duration=="function")try{let S=Number(E.duration());Number.isFinite(S)&&S>0&&(f=S)}catch(S){v("runtime.startResolver.site1",S)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,h)=>{if(u.hasAttribute("data-composition-id")){let x=u.parentElement?.closest("[data-composition-id]");return x?c(x,h):0}let f=u.closest("[data-composition-id]");return f?c(f,h):0},c=(u,h)=>{let f=i.get(u);if(f!==void 0)return f??h;if(o.has(u))return h;o.add(u);try{let x=Ds(u.getAttribute("data-start"));if(!x){if(u.hasAttribute("data-composition-id")){let L=u.parentElement;if(L&&(L.hasAttribute("data-composition-src")||L.hasAttribute("data-composition-id"))){let R=c(L,h);return i.set(u,R),R}}return i.set(u,h),h}if(x.kind==="absolute"){let L=Math.max(0,x.value),R=Math.max(0,a(u,h)+L);return i.set(u,R),R}let F=s(x.refId);if(!F)return i.set(u,h),h;let E=c(F,0),S=l(F);if(S==null||S<=0){let L=Math.max(0,E+x.offset);return i.set(u,L),L}let D=Math.max(0,E+S+x.offset);return i.set(u,D),D}finally{o.delete(u)}};return{resolveStartForElement:(u,h=0)=>c(u,Math.max(0,h)),resolveDurationForElement:u=>l(u)}}var Bs="data-hf-authored-duration",Is="data-hf-authored-end";function Fe(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function Cn(t){return Fe(t.getAttribute("data-duration"))??Fe(t.getAttribute(Bs))}function Gi(t){return Fe(t.getAttribute("data-end"))??Fe(t.getAttribute(Is))}function Mn(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var $i={composition:0,video:1,image:2,element:3,audio:4};function Os(t){if(t.length===0)return;let e=new Map;for(let s of t){let l=e.get(s.track)??new Set;l.add(s.kind),e.set(s.track,l)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,l)=>s-l);for(let s of o){let l=e.get(s);if(l.size===1)r.set(`${s}:${[...l][0]}`,i++);else{let a=[...l].sort((c,u)=>($i[c]??99)-($i[u]??99));for(let c of a)r.set(`${s}:${c}`,i++)}}for(let s of t){let l=`${s.track}:${s.kind}`,a=r.get(l);a!=null&&(s.track=a)}}function St(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Ki(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return St(e);let n=t.getAttribute("data-composition-src");if(n)return St(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?St(i.getAttribute("src")):null}function Ps(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Hs(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function Ws(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function yt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function qs(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return yt(r);let o=t.id;if(o)return yt(o);let s=Ps(t);if(s)return yt(s);let l=Hs(Ki(t));if(l)return yt(l);let a=Ws(t);return a||`${yt(e)} ${n+1}`}function Ji(t){let n=window.__timelines??{},i=Qe({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let k=n[O]??null;if(!k||typeof k.duration!="function")return null;try{let P=Number(k.duration());return Number.isFinite(P)&&P>0?P:null}catch{return null}},o=O=>{let k=Fe(O.getAttribute("data-duration"));if(k!=null&&k>0)return k;let P=Fe(O.getAttribute("data-playback-start"))??Fe(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>P?Math.max(0,(O.duration-P)/ht(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let k=0;for(let P of O){let ie=P.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(P,0):Math.max(0,Number(P.getAttribute("data-start")??0)||0);if(!Number.isFinite(ie))continue;let ae=o(P);ae==null||ae<=0||(k=Math.max(k,Math.max(0,ie)+ae))}return k>0?k:null},l=O=>{let k=O.trim().toLowerCase();return!(!k||k==="main"||k.includes("caption")||k.includes("ambient"))},a=(O,k)=>{let P=[],ie=null,ae=null,z=null,U=O.parentElement;for(;U;){let $=U.getAttribute("data-composition-id");$&&(P.push($),!z&&U!==k&&(z=$),ie==null&&(ie=i.resolveStartForElement(U,0)),ae==null&&(ae=Fe(U.getAttribute("data-duration"))??r($)??null)),U=U.parentElement}return{parentCompositionId:z,compositionAncestors:P.reverse(),inheritedStart:ie,inheritedDuration:ae}},c=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),h=c?.getAttribute("data-composition-id")??null,f=c?i.resolveStartForElement(c,0):0,x=s(),F=x!=null?Math.max(0,x-Math.max(0,f)):null,E=r(h),S=Cn(c??document.body),D=Mn(...u.filter(O=>O!==c).map(O=>{let k=i.resolveStartForElement(O,0),P=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(k)||P==null||P<=0?null:Math.max(0,k)+P})),L=D!=null?Math.max(0,D-Math.max(0,f)):null,R=typeof E=="number"&&Number.isFinite(E)&&E>0?E:null,ne=typeof S=="number"&&Number.isFinite(S)&&S>0?S:null,q=typeof F=="number"&&Number.isFinite(F)&&F>0?F:null,C=typeof L=="number"&&Number.isFinite(L)&&L>0?L:null,g=Mn(q,C),b=R!=null&&g!=null&&R>g+1,w=ne??(b?g:Mn(R,q,C))??null,H=(w!=null?f+w:null)??(typeof x=="number"&&Number.isFinite(x)&&x>0?x:null),J=(O,k)=>!Number.isFinite(k)||k<=0?0:H==null||!Number.isFinite(H)?k:!Number.isFinite(O)||O>=H?0:Math.max(0,Math.min(k,H-O)),W=[],T=[],de=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),be=0;for(let O=0;O<de.length;O+=1){let k=de[O];if(k===c||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(k.tagName))continue;let P=a(k,c),ie=i.resolveStartForElement(k,P.inheritedStart??0),ae=k.getAttribute("data-composition-id"),z=Cn(k);if((z==null||z<=0)&&ae&&ae!==h&&(z=r(ae)),(z==null||z<=0)&&k instanceof HTMLMediaElement){let ye=Fe(k.getAttribute("data-playback-start"))??Fe(k.getAttribute("data-media-start"))??0;Number.isFinite(k.duration)&&k.duration>0&&(z=Math.max(0,k.duration-ye))}if(z==null||z<=0){let ye=P.inheritedDuration;if(ye!=null&&ye>0){let Be=(P.inheritedStart??0)+ye;z=Math.max(0,Be-ie)}}if(z==null||z<=0||(z=J(ie,z),z<=0))continue;let U=ie+z;be=Math.max(be,U);let $=k.tagName.toLowerCase(),Ne=ae&&ae!==h?"composition":$==="video"?"video":$==="audio"?"audio":$==="img"?"image":"element";W.push({id:k.id||ae||null,label:qs(k,Ne,W.length),start:ie,duration:z,track:Number.parseInt(k.getAttribute("data-track-index")??k.getAttribute("data-track")??String(O),10)||0,kind:Ne,tagName:$,compositionId:k.getAttribute("data-composition-id"),compositionAncestors:P.compositionAncestors,parentCompositionId:P.parentCompositionId,nodePath:null,compositionSrc:St(k.getAttribute("data-composition-src")),assetUrl:Ki(k),timelineRole:k.getAttribute("data-timeline-role"),timelineLabel:k.getAttribute("data-timeline-label"),timelineGroup:k.getAttribute("data-timeline-group"),timelinePriority:Fe(k.getAttribute("data-timeline-priority"))})}let G=new Set(W.map(O=>O.id)),Q=c?.getAttribute("data-composition-id")??null,V=Q?n[Q]??null:null;if(V&&c){let O=V;if(typeof O.getChildren=="function")try{let k=O.getChildren(!0,!0,!1)??[],P=new Map;for(let z of c.children){let U=z;if(!U.id)continue;let $=U.tagName.toLowerCase();$==="script"||$==="style"||$==="link"||P.set(U,{id:U.id,start:1/0,end:-1/0})}let ie=z=>{let U=z;for(;U;){if(P.has(U))return U;if(U===c)return null;U=U.parentElement}return null};for(let z of k){if(typeof z.targets!="function"||typeof z.startTime!="function"||typeof z.duration!="function")continue;let U=z.startTime(),$=z.parent;for(;$&&$!==V&&typeof $.startTime=="function";)U+=$.startTime(),$=$.parent;let Ne=U+z.duration();if(!(!Number.isFinite(U)||!Number.isFinite(Ne)))for(let ye of z.targets()){if(!(ye instanceof Element))continue;let He=ie(ye);if(!He)continue;let Be=P.get(He);Be&&(Be.start=Math.min(Be.start,U),Be.end=Math.max(Be.end,Ne))}}let ae=W.length>0?Math.max(...W.map(z=>z.track))+1:0;for(let[z,U]of P){if(U.start===1/0||U.end===-1/0)continue;let $=z;if(G.has($.id))continue;let Ne=Math.max(0,U.end-U.start);if(Ne<=0)continue;let ye=J(U.start,Ne);ye<=0||(be=Math.max(be,U.start+ye),W.push({id:$.id,label:$.getAttribute("data-timeline-label")??$.getAttribute("data-label")??$.getAttribute("aria-label")??$.id,start:U.start,duration:ye,track:Number.parseInt($.getAttribute("data-track-index")??$.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:$.tagName.toLowerCase(),compositionId:$.getAttribute("data-composition-id"),compositionAncestors:Q?[Q]:[],parentCompositionId:Q,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:$.getAttribute("data-timeline-role"),timelineLabel:$.getAttribute("data-timeline-label"),timelineGroup:$.getAttribute("data-timeline-group"),timelinePriority:Fe($.getAttribute("data-timeline-priority"))}),G.add($.id))}}catch(k){v("runtime.timeline.site1",k)}}if(c&&w!=null&&w>0){let O=W.length>0?Math.max(...W.map(k=>k.track))+1:0;for(let k of c.children){let P=k;if(!P.id||G.has(P.id))continue;let ie=P.getAttribute("data-timeline-role");if(ie!=="overlay"&&ie!=="persistent-overlay")continue;let ae=P.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(P).display==="none")continue;let U=J(0,w);U<=0||(be=Math.max(be,U),W.push({id:P.id,label:P.getAttribute("data-timeline-label")??P.getAttribute("data-label")??P.getAttribute("aria-label")??P.id,start:0,duration:U,track:Number.parseInt(P.getAttribute("data-track-index")??P.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:Q?[Q]:[],parentCompositionId:Q,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:ie,timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:Fe(P.getAttribute("data-timeline-priority"))}),G.add(P.id))}}Os(W);for(let O of u){if(O===c)continue;let k=O.getAttribute("data-composition-id");if(!k||!l(k))continue;let P=i.resolveStartForElement(O,0),ie=Cn(O);if((ie==null||ie<=0)&&Gi(O)!=null){let $=Gi(O);ie=Math.max(0,$-P)}let ae=r(k),z=ie&&ie>0?ie:ae;if(z==null||z<=0)continue;let U=J(P,z);U<=0||T.push({id:k,label:O.getAttribute("data-label")??k,start:P,duration:U,thumbnailUrl:St(O.getAttribute("data-thumbnail-url")),avatarName:null})}let Y=Math.max(1,be||1,w??0);return{source:"hf-preview",type:"timeline",durationInFrames:b&&ne==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(Y*Math.max(1,t.canonicalFps))),clips:W,scenes:T,compositionWidth:Fe(c?.getAttribute("data-width"))??1920,compositionHeight:Fe(c?.getAttribute("data-height"))??1080}}var ue=bs(Ao(),1),Eo=ue.default,hd=ue.default.stringify,xd=ue.default.fromJSON,gd=ue.default.plugin,yd=ue.default.parse,Sd=ue.default.list,bd=ue.default.document,Ad=ue.default.comment,Ed=ue.default.atRule,Fd=ue.default.rule,wd=ue.default.decl,Nd=ue.default.root,Cd=ue.default.CssSyntaxError,Md=ue.default.Declaration,Td=ue.default.Container,kd=ue.default.Processor,_d=ue.default.Document,vd=ue.default.Comment,Rd=ue.default.Warning,Ld=ue.default.AtRule,Dd=ue.default.Result,Bd=ue.default.Input,Id=ue.default.Rule,Od=ue.default.Root,Pd=ue.default.Node;var Xn="data-hf-authored-id";function ei(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function ti(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function ul(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Fo(t){let e=t.trim();return e?Array.from(new Set([e,ul(e)])).filter(Boolean):[]}function cl(t){return!!t&&/[\\w-]/.test(t)}function dl(t,e,n){let i=Fo(e).sort((l,a)=>a.length-l.length);if(i.length===0)return t;let r="",o=0,s=null;for(let l=0;l<t.length;l+=1){let a=t[l],c=l>0?t[l-1]:"";if(s){r+=a,a===s&&c!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(h=>t.startsWith(h,l+1));if(u){let h=t[l+1+u.length];if(!cl(h)){r+=n,l+=u.length;continue}}}r+=a}return r}function fl(t,e){let n=e?.trim();return n?dl(t,n,`[${Xn}="${ti(n)}"]`):t}function ml(t,e,n,i,r){let o=fl(t,i),s=pl(o,e,n),l=s.trim();if(!l||/^(html|body|:root|\\*)$/i.test(l))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${ei(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(l))return s.replace(a,e);let c=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let h=i?`[${Xn}="${ti(i)}"]`:null;if(h&&l.startsWith(h)){let f=l.slice(h.length);return`${c}${e}${h}${f}${u}`}}return`${c}${e} ${l}${u}`}function pl(t,e,n){let i=ei(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var hl=new Set(["keyframes","-webkit-keyframes","font-face"]);function xl(t){return t?.type==="atrule"}function gl(t){let e=t.parent;for(;e;){if(xl(e)&&hl.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function ni(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${ti(o)}"]`,l=Eo.parse(t);return l.walkRules(a=>{gl(a)||(a.selectors=a.selectors.map(c=>ml(c,s,o,i,r?.compoundAuthoredRoot)))}),l.toResult({map:!1}).css}function wo(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),l=JSON.stringify(r),a=JSON.stringify(n),c=ei(e),u=JSON.stringify(o?.trim()||null),h=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${c}"|\'${c}\')\\s*\\]`),x=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),F=JSON.stringify(Fo(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(Xn)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${h} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${x};\n var __hfAuthoredRootIdForms = ${F};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function No(){if(typeof document>"u")return{};let t=ii(document.documentElement),e=yl();return{...t,...e}}function ii(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function yl(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var Sl=8e3,bl=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/;function Al(t,e){return`${t}__hf${e}`}var El=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),Sl)});function ri(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var Fl=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function wl(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of Fl)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function Co(t,e){let n=t.trim();if(!n)return t;try{return bl.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function Nl(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function on(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function Cl(t){let e=new Map;for(let n of t){let i=on(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function Mo(t){let e=on(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function Ml(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function Tl(t){return t.hasAttribute("data-composition-src")?!0:Mo(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:Ml(t):!1}function si(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:Mo(e))}function To(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(si().map(n=>on(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function ko(t,e=Cl(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=on(r),l=Tl(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,c=s||o;if(l){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),c=a?Al(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",c),s&&s!==c&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:c})}return i}async function oi(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(x=>x.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let x=f.getAttribute("href")||"";x&&(document.head.querySelector(`link[href="${CSS.escape(x)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=ni(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let l=Array.from(n.querySelectorAll("style"));for(let f of l){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=ni(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let a=[];if(t.headScripts)for(let f of t.headScripts){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=Co(F,t.compositionUrl);a.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&a.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}}let c=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of c){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=Co(F,t.compositionUrl);u.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&u.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let h=Array.from(n.querySelectorAll("style"));for(let f of h)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),x=e.getAttribute("data-height"),F=t.parseDimensionPx(f),E=t.parseDimensionPx(x);f&&t.host.setAttribute("data-width",f),x&&t.host.setAttribute("data-height",x),F&&t.host instanceof HTMLElement&&(t.host.style.width=F),E&&t.host instanceof HTMLElement&&(t.host.style.height=E),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(wl(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...Nl(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let x=document.createElement("script");if(f.type&&(x.type=f.type),x.async=!1,f.kind==="external"?x.src=f.src:f.type.toLowerCase()==="module"?x.textContent=f.content:f.scopeCompositionId?x.textContent=wo(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):x.textContent=`(function(){${f.content}})();`,document.body.appendChild(x),t.injectedScripts.push(x),f.kind==="external"){let F=await El(x);F.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:F.status,elapsedMs:F.elapsedMs}})}}}async function _o(t){let e=si();if(To(),e.length===0)return;let n=ko(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let l=document.querySelector(`template#${CSS.escape(s)}-template`);ri(r),await oi({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function vo(t){let e=si();if(To(),e.length===0)return;let n=ko(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),l=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||l||null,c=null;try{c=new URL(o,document.baseURI)}catch{c=null}ri(r);try{let u=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(u){await oi({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let h=await fetch(o);if(!h.ok)throw new Error(`HTTP ${h.status}`);let f=await h.text(),F=new DOMParser().parseFromString(f,"text/html"),E=(l?F.querySelector(`template#${CSS.escape(l)}-template`):null)??F.querySelector("template"),S=E?E.content:F.body,D=E?void 0:Array.from(F.head.querySelectorAll("style")),L=E?void 0:Array.from(F.head.querySelectorAll("script")),R=E?void 0:Array.from(F.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await oi({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:S,hasTemplate:!!E,fallbackBodyInnerHtml:F.body.innerHTML,compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:D,headScripts:L,headLinks:R,declaredVariableDefaults:ii(F.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),ri(r)}}))}function kl(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function _l(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function vl(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function ai(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=_l();for(let i of e){let r=null;if(i.wordId&&(r=kl(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,h)=>u.startTime()-h.startTime()),c=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===c?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let l=vl(r);t.set(l,o)}}}).catch(()=>{})}var sn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Ro(t){return!Number.isFinite(t)||t<=0?1:t}function Rl(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,l=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return l&&u<=0?!1:(l?t.start(0,n+i,u):t.start(0,n+i),!0)}let c=-n/o;return l?t.start(r+c,i,a):t.start(r+c,i),!0}var an=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;try{let i=await fetch(n);if(!i.ok)return this._failedSrcs.add(n),v("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;let r=await i.arrayBuffer(),o=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,o),o}catch(i){return this._failedSrcs.add(n),v("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,l,a=1,c=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let u=Ro(a),h=this._ctx.createBufferSource();h.buffer=n,h.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,h.connect(f),f.connect(this._masterGain);let x=o-i,F=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=F,this._rateAnchorComp=o,!Rl(h,{elapsed:x,mediaStart:r,scheduledAt:F,safeRate:u,clipDuration:c}))return h.disconnect(),f.disconnect(),null;let E=e.muted;e.muted=!0;let S={el:e,sourceNode:h,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:F,priorMuted:E,bounded:Number.isFinite(c)&&c>0};return this._activeSources.push(S),this._paused=!1,h.addEventListener("ended",()=>{let D=this._activeSources.indexOf(S);D!==-1&&(this._activeSources.splice(D,1),e.muted=E,this._activeSources.length===0&&(this._paused=!0))}),S}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Ro(e);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Lo="data-hf-authored-duration",Do="data-hf-authored-end";function Bo(){let t=ji(),e=null,n=null,i=[],r=new Set,o=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let s=d=>{i.push(d)},l=(d,p,m)=>{let y=m??`${d}:${JSON.stringify(p)}`;r.has(y)||(r.add(y),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},a=d=>{let p={scale:1,focusX:960,focusY:540},m=[],y=[],A={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>m,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>y,getRenderState:()=>({...A,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},c=1/60,u=.75,h=2,f=.05,x=100,F=240,E=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},S=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},D=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},L=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.length===0?null:p.find(m=>!m.parentElement?.closest("[data-composition-id]"))??p[0]??null},R=()=>{let d=L();if(!d)return;let p=D(d.getAttribute("data-width")),m=D(d.getAttribute("data-height"));p&&(d.style.width=p),m&&(d.style.height=m),p&&d.style.setProperty("--comp-width",p),m&&d.style.setProperty("--comp-height",m)},ne=()=>{let d=L(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(m=>m.hasAttribute("data-duration")||m.hasAttribute("data-end"));for(let m of p){if(d&&m===d)continue;let y=m.getAttribute("data-duration"),A=m.getAttribute("data-end");y!=null&&!m.hasAttribute(Lo)&&m.setAttribute(Lo,y),A!=null&&!m.hasAttribute(Do)&&m.setAttribute(Do,A),m.removeAttribute("data-duration"),m.removeAttribute("data-end")}},q=()=>{let d=L();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=D(d.getAttribute("data-width")),m=D(d.getAttribute("data-height"));p&&(d.style.width=p),m&&(d.style.height=m);let y=Array.from(d.children);for(let A of y){let M=A.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!A.hasAttribute("data-start"))continue;let B=(A.style.top==="0px"||A.style.top==="0")&&(A.style.left==="0px"||A.style.left==="0")&&A.style.width==="100%"&&A.style.height==="100%",j=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(A.style.transform);if(B&&j&&!A.hasAttribute("data-width")&&!A.hasAttribute("data-height")){let qe=A.style.top,he=A.style.left,dt=A.style.width,se=A.style.height;A.style.top="",A.style.left="",A.style.width="",A.style.height="";let X=window.getComputedStyle(A);X.top!=="auto"||X.bottom!=="auto"||X.left!=="auto"||X.right!=="auto"||X.width!=="0px"||X.height!=="0px"||(A.style.top=qe,A.style.left=he,A.style.width=dt,A.style.height=se)}let Z=window.getComputedStyle(A),ee=Z.position;if(ee!=="absolute"&&ee!=="fixed"&&(A.style.position="absolute"),!!A.style.top||!!A.style.bottom||Z.top!=="auto"||Z.bottom!=="auto"||(A.style.top="0"),!!A.style.left||!!A.style.right||Z.left!=="auto"||Z.right!=="auto"||(A.style.left="0"),M!=="audio"){let qe=D(A.getAttribute("data-width")),he=D(A.getAttribute("data-height")),dt=Z.width!=="0px"&&Z.width!=="auto",se=Z.height!=="0px"&&Z.height!=="auto";qe?!A.style.width&&!dt&&(A.style.width=qe):!A.style.width&&Z.width==="0px"&&(A.style.width="100%"),he?!A.style.height&&!se&&(A.style.height=he):!A.style.height&&Z.height==="0px"&&(A.style.height="100%")}}},C=(d,p=0,m)=>Qe({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:m?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),g=(d,p)=>Qe({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),b=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0):C(d,p),N=(d,p)=>{let m=d.parentElement;for(;m&&m!==p;){if(m.hasAttribute("data-start"))return m;m=m.parentElement}return null},w=(d,p)=>{let m=d.tagName.toLowerCase();if(m==="script"||m==="style"||m==="link"||m==="meta")return!1;let y=m==="video"||m==="audio"?b(d,0):C(d,0),A=g(d),M=d.getAttribute("data-composition-id");if(M){let j=(window.__timelines??{})[M],Z=null;if(j&&typeof j.duration=="function"){let oe=Number(j.duration());Number.isFinite(oe)&&oe>0&&(Z=oe)}let ee=d.hasAttribute("data-composition-src")||d.hasAttribute("data-composition-file");A!=null&&A>0&&Z!=null&&!ee?A=Math.min(A,Z):(A==null||A<=0)&&Z!=null&&(A=Z)}let B=A!=null&&A>0?y+A:Number.POSITIVE_INFINITY;return p>=y&&(Number.isFinite(B)?p<=B:!0)},_=!!document.querySelector("[data-composition-src]"),H=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let m=p.getAttribute("data-composition-id");if(m&&p.children.length===0&&document.querySelector(`template#${CSS.escape(m)}-template`)){H=!0;break}}}let J=!_&&!H,W=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},T=d=>typeof d=="number"&&Number.isFinite(d)&&d>c,de=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let m=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),y=Number.isFinite(m)?Math.max(0,m):0;return Number.isFinite(d.duration)&&d.duration>y?Math.max(0,d.duration-y):null},be=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let m of d){let y=b(m,0);if(!Number.isFinite(y))continue;let A=de(m);A==null||A<=c||(p=Math.max(p,Math.max(0,y)+A))}return p>c?p:null},G=()=>{let d=L();if(!d)return null;let p=window.__timelines??{},m=Qe({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),y=0,A=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(A)&&A>0&&(y=A);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let B of M){if(!(B instanceof Element)||B.parentElement?.closest("[data-composition-id]")!==d)continue;let Z=m.resolveStartForElement(B,0),ee=m.resolveDurationForElement(B);!Number.isFinite(Z)||ee==null||ee<=0||(y=Math.max(y,Math.max(0,Z)+ee))}return y>c?y:null},Q=()=>{let d=be();return typeof d!="number"||!Number.isFinite(d)||d<=c?null:d},V=d=>T(d)?Math.max(c,d*u):c,Y=(d,p=0)=>{let m=W(d),y=Q(),A=G(),M=Math.max(y??0,A??0),B=Number.isFinite(p)&&p>c?p:0,j=0;return T(m)?j=Math.max(m,M,B):T(M)?j=Math.max(M,B):j=B,j>0?Math.max(0,j):0},we=()=>{let d=window.__timelines??{},p=Qe({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),m=Q(),y=G(),A=Math.max(m??0,y??0)||null,M=V(A),B=se=>{let X=document.querySelector(`[data-composition-id="${CSS.escape(se)}"]`);return X?p.resolveStartForElement(X,0):0},j=se=>{let X=window.gsap;if(!X||typeof X.timeline!="function")return null;let fe=X.timeline({paused:!0});for(let xe of se)fe.add(xe.timeline,B(xe.compositionId));return fe},Z=(se,X)=>{if(!T(se))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let xe=fe.timeline({paused:!0});if(X)try{xe.add(X,0)}catch(le){v("runtime.init.site2",le)}let Se=xe;if(typeof Se.to=="function")try{Se.to({},{duration:se})}catch(le){v("runtime.init.site3",le)}return xe},ee=(se,X)=>{let fe=se;if(typeof fe.getChildren!="function")return[];try{let xe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(xe))return[];let Se=[];for(let le of X)if(!xe.some(_e=>_e===le.timeline))try{let _e=B(le.compositionId);se.add(le.timeline,_e),Se.push(le.compositionId)}catch(_e){v("runtime.init.site4",_e)}return Se}catch{return[]}},oe=L(),ce=oe?.getAttribute("data-composition-id")??null;if(!ce)return{timeline:null};let Ce=d[ce]??null,he=(()=>{if(!oe)return[];let se=new Set,X=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let xe of X){let Se=xe.getAttribute("data-composition-id");if(!Se||Se===ce||se.has(Se))continue;se.add(Se);let le=d[Se]??null;if(!le||typeof le.play!="function"||typeof le.pause!="function")continue;let Me=W(le);fe.push({compositionId:Se,timeline:le,durationSeconds:Me??0})}return fe})(),dt=se=>{for(let X of se){let fe=X.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(xe){v("runtime.init.site5",xe)}}};if(he.length>0&&dt(he),Ce){let se=he.length>0?ee(Ce,he):[];if((he.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+ce+"\'])"))&&(Ae=!0),se.length>0)try{let le=Ce.time();Ce.seek(le,!1)}catch{}let X=W(Ce);if(!T(X)&&he.length>0){let le=he.map(fs=>fs.compositionId),Me=j(he),_e=W(Me);if(Me&&T(_e))return{timeline:Me,selectedTimelineIds:le,selectedDurationSeconds:_e,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:ce,rootDurationSeconds:X,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:_e,mediaDurationFloorSeconds:m,authoredCompositionDurationFloorSeconds:y,selectedTimelineIds:le,autoNestedChildren:se}}};let yn=Z(A??0,Ce),Sn=W(yn);if(yn&&T(Sn))return{timeline:yn,selectedTimelineIds:[ce],selectedDurationSeconds:Sn,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:ce,rootDurationSeconds:X,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:m,authoredCompositionDurationFloorSeconds:y,selectedDurationSeconds:Sn,selectedTimelineIds:[ce],autoNestedChildren:se}}}}if(!T(X)&&he.length===0){let le=Z(A??0,Ce),Me=W(le);if(le&&T(Me))return{timeline:le,selectedTimelineIds:[ce],selectedDurationSeconds:Me,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:ce,rootDurationSeconds:X,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:m,authoredCompositionDurationFloorSeconds:y,selectedDurationSeconds:Me,selectedTimelineIds:[ce]}}}}let fe=oe?.getAttribute("data-duration"),xe=fe?parseFloat(fe):null,Se=Math.max(T(xe)?xe:0,y??0);if(Se>0&&T(Se)&&T(X)&&Se>=X+.5){let le=Ce;if(typeof le.to=="function")try{le.to({},{duration:0},Se)}catch(_e){v("runtime.init.site6",_e)}let Me=W(Ce);if(T(Me))return{timeline:Ce,selectedTimelineIds:[ce],selectedDurationSeconds:Me,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:ce,rootDurationSeconds:X,rootDeclaredDur:xe,authoredCompositionDurationFloorSeconds:y,newDur:Me}}}}return{timeline:Ce,selectedTimelineIds:[ce],selectedDurationSeconds:X,mediaDurationFloorSeconds:m,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:ce,selectedDurationSeconds:X,autoNestedChildren:se}}:void 0}}if(he.length>0){let se=he.map(xe=>xe.compositionId),X=j(he),fe=W(X);if(X)return{timeline:X,selectedTimelineIds:se,selectedDurationSeconds:fe,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:ce,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:fe,mediaDurationFloorSeconds:m,selectedTimelineIds:se}}}}return{timeline:null}},Ae=!1,O=()=>{if(!J)return!1;let d=t.capturedTimeline,p=W(d),m=T(p);if(d&&m&&Ae)return!1;let y=we();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=y.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let A=Y(t.capturedTimeline,0);if(A>0){try{I.setDuration(A)}catch{}t.capturedTimeline.pause();let M=Math.max(0,t.currentTime||0);typeof t.capturedTimeline.totalTime=="function"&&t.capturedTimeline.totalTime(M,!1);let B=window.__hfStudioManualEditsApply;typeof B=="function"&&B()}if(y.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=L(),B=A>0?A:0,j=String(B>0?B:1),Z=new Set;if(t.capturedTimeline.getChildren)try{for(let ee of t.capturedTimeline.getChildren(!0))if(typeof ee.targets=="function")for(let oe of ee.targets())oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||N(oe,M)||Z.has(oe)||(Z.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",j)))}catch{}if(M instanceof HTMLElement)for(let ee of M.querySelectorAll("[id]"))ee instanceof HTMLElement&&ee!==M&&(ee.hasAttribute("data-start")||N(ee,M)||Z.has(ee)||ee.tagName==="SCRIPT"||ee.tagName==="STYLE"||ee.tagName==="LINK"||(Z.add(ee),ee.setAttribute("data-start","0"),ee.setAttribute("data-duration",j)))}for(let M of Ne)ye.delete(M),xi(M);return!0};window.__hfForceTimelineRebind=()=>{Ae=!1,O()};let k=()=>{let d=L();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),m=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),A=window.getComputedStyle(d),M=Number.isFinite(m)&&m>0&&Number.isFinite(y)&&y>0,B=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!B||l("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:m,declaredHeight:y,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:A.display,visibility:A.visibility,overflow:A.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},P=()=>{t.tornDown||(o!=null&&window.cancelAnimationFrame(o),o=window.requestAnimationFrame(()=>{o=null,k()}))},ie=()=>{e=d=>{let p=E(d.error??d.message).slice(0,F);if(!p)return;let m=S(p);Ee({source:"hf-preview",type:"diagnostic",code:m.code,details:{category:m.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},n=d=>{let p=E(d.reason).slice(0,F);if(!p)return;let m=S(p);Ee({source:"hf-preview",type:"diagnostic",code:`${m.code}_unhandled_rejection`,details:{category:`${m.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",e),window.addEventListener("unhandledrejection",n)},ae=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let m of d){let y=()=>{if(!(m instanceof Element))return;let A=m.tagName.toLowerCase(),M=m.getAttribute("src")??m.getAttribute("href")??m.getAttribute("poster")??null,B=A==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";l(B,{tagName:A,assetUrl:M,currentSrc:(m instanceof HTMLImageElement||m instanceof HTMLMediaElement)&&m.currentSrc||null,readyState:m instanceof HTMLMediaElement?m.readyState:null,networkState:m instanceof HTMLMediaElement?m.networkState:null},`${B}:${A}:${M??"unknown"}`)};m.addEventListener("error",y),s(()=>{m.removeEventListener("error",y)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let m=Array.from(p).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);m.length!==0&&l("runtime_font_load_issue",{failedFamilies:m,totalFaces:Array.from(p).length},`runtime-font-load-issue:${m.join("|")}`)}).catch(()=>{})},z=(d,p)=>{if(!d.timeline)return!1;let m=t.capturedTimeline;if(m&&m===d.timeline)return!1;let y=Math.max(0,t.currentTime||0),A=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(y,!1),A&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},U=null,$=!1,Ne=new Set,ye=new WeakMap,He=()=>{t.tornDown||(U!=null&&window.clearTimeout(U),U=window.setTimeout(()=>{if(t.tornDown)return;U=null;let d=we();if(!d.timeline||!T(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){O()&&(Xe(),Te(!0));return}if($)return;let m=W(t.capturedTimeline),y=d.selectedDurationSeconds??W(d.timeline);T(y)&&(!T(m)||y>=m+f)&&z(d,"manual")&&($=!0,Ee({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:m??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),Xe(),Te(!0))},x))},Be=()=>{for(let d of Ne)d.removeEventListener("loadedmetadata",He),d.removeEventListener("durationchange",He);Ne.clear()},mn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(Ne.has(p))continue;Ne.add(p);let m=Number.parseFloat(p.dataset.volume??"");Number.isFinite(m)&&(p.volume=Math.max(0,Math.min(1,m))),p.addEventListener("loadedmetadata",He),p.addEventListener("durationchange",He),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),xi(p)}},xi=d=>{ye.has(d)||Hi(d,t.capturedTimeline,Y(t.capturedTimeline,0),ye)},We=()=>{let d=M=>{let B=M.closest("[data-composition-id]"),j=B?C(B,0):null,Z=B?g(B,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:B,inheritedStart:j,inheritedDuration:Z}},p=Wi({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let B=d(M);return b(M,B.inheritedStart??0)},resolveDurationSeconds:M=>{let B=d(M),j=b(M,B.inheritedStart??0),Z=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,ee=B.inheritedStart!=null&&B.inheritedDuration!=null&&B.inheritedDuration>0?Math.max(0,B.inheritedStart+B.inheritedDuration-j):null,oe=Number.isFinite(M.duration)&&M.duration>Z?Math.max(0,M.duration-Z):null,ce=Number.parseFloat(M.dataset.duration??""),Ce=Number.isFinite(ce)&&ce>0?ce:null,qe=[oe,ee,Ce].filter(he=>he!=null);return qe.length>0?Math.min(...qe):null}});for(let M of p.mediaClips){let B=ye.get(M.el);B&&(M.volumeKeyframes=B)}let m=t.mediaForceSyncNextTick;m&&(t.mediaForceSyncNextTick=!1),qi({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||pe.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:m,onElementVolume:(M,B)=>pe.setElementVolume(M,B),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let y=Array.from(document.querySelectorAll("[data-start]")),A=L();for(let M of y){if(!(M instanceof HTMLElement))continue;let B=w(M,t.currentTime);if(B&&window.parent!==window){let j=M.parentElement;for(;j&&j!==A;){if(j instanceof HTMLElement&&j.hasAttribute("data-start")&&!w(j,t.currentTime)){B=!1;break}j=j.parentElement}}M.style.visibility=B?"visible":"hidden"}},Te=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),m=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||m-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=m,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},Xe=()=>{ne(),R(),q();let d=L();if(d){let m=D(d.getAttribute("data-width")),y=D(d.getAttribute("data-height")),A=m?parseInt(m,10):0,M=y?parseInt(y,10):0;A>0&&M>0&&Ee({source:"hf-preview",type:"stage-size",width:A,height:M})}O();let p=Ji({canonicalFps:t.canonicalFps});window.__clipManifest=p,Ee(p),P()},Ie=(d,p=0)=>{for(let m of t.deterministicAdapters){try{d==="discover"&&m.discover(),d==="pause"&&m.pause(),d==="play"&&m.play&&m.play()}catch(y){v("runtime.init.site8",y)}if(d==="discover")try{m.seek({time:p})}catch(y){v("runtime.init.site9",y)}}},ct=()=>{window.__renderReady=!1};if(J)ai();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:D,onDiagnostic:({code:p,details:m})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:m})}};vo(d).then(()=>_o(d)).finally(()=>{J=!0,mn(),ae(),ai(),ct()})}let Wt=Vi({postMessage:d=>Ee(d)});Wt.installPickerApi();let pn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let m=document.querySelectorAll("video, audio");for(let y of m)if(y instanceof HTMLMediaElement)try{y.playbackRate=t.playbackRate}catch(A){v("runtime.init.site10",A)}},me=zi({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:pn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,We()},onStatePost:Te,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(m){v("runtime.init.site11",m)}},onDeterministicPause:()=>Ie("pause"),onDeterministicPlay:()=>Ie("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>Y(t.capturedTimeline,0)});window.__player=a(me),window.__playerReady=!0,wi(Ee),ft("composition_loaded",{duration:me.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=Fi({onPlay:()=>{me.play(),ft("composition_played",{time:me.getTime()})},onPause:()=>{me.pause(),ft("composition_paused",{time:me.getTime()})},onSeek:(d,p)=>{let m=Math.max(0,d)/t.canonicalFps;me.seek(m),ft("composition_seeked",{time:m})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;pe.setMuted(p);let m=document.querySelectorAll("video, audio");for(let y of m)y instanceof HTMLMediaElement&&(y.muted=p||y.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,pe.setVolume(d);let p=document.querySelectorAll("video, audio");for(let m of p){if(!(m instanceof HTMLMediaElement))continue;let y=parseFloat(m.dataset.volume??""),A=Number.isFinite(y)?y:1;m.volume=A*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;pe.setMuted(p);let m=document.querySelectorAll("video, audio");for(let y of m)y instanceof HTMLMediaElement&&(y.muted=p||y.defaultMuted)},onSetPlaybackRate:d=>{pn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),bi()},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,Ke(d),I.reachedEnd()){pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),Ie("pause"),We(),Te(!0)}},onEnablePickMode:()=>Wt.enablePickMode(),onDisablePickMode:()=>Wt.disablePickMode()}),t.deterministicAdapters=[Oi(),Ni({resolveStartSeconds:d=>C(d,0)}),Mi(),_i(),Ri(),Li(),Ci({getTimeline:()=>t.capturedTimeline})],Bi(),Ii(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,vi(p)},ie(),mn(),Ie("discover");let I=new sn;t.transportClock=I;let pe=new an,hn=!1;pe.init().then(d=>{hn=d});let ls=()=>{let d=t.capturedTimeline,p=O();t.capturedTimeline&&(p||t.capturedTimeline!==d||!me._timeline)&&(me._timeline=t.capturedTimeline);let m=Y(t.capturedTimeline,0);m>0&&I.setDuration(m),Ie("discover",t.currentTime),window.__renderReady=!0,Xe(),Te(!0)};if(ct=()=>{if(!J||window.__hfTimelinesBuilding){window.__renderReady=!1;return}ls()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),ct()};window.addEventListener("hf-timelines-built",d)}ct(),J&&setTimeout(()=>{ct()},0);let qt=0,xn=!1,us=(d,p,m)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(y){v(m,y)}},cs=d=>{let p=window.__timelines??{},m=L()?.getAttribute("data-composition-id")??null;for(let[y,A]of Object.entries(p)){if(!A||y===m)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(y)}"]`);if(!M)continue;let B=C(M,0);if(!Number.isFinite(B))continue;let j=g(M,{includeAuthoredTimingAttrs:!0}),Z=W(A),ee=j!=null&&j>0?j:Z,oe=Math.max(0,ee!=null&&ee>0?Math.min(ee,d-B):d-B);us(A,oe,"runtime.init.transport.childTimeline")}},ds=d=>{let p=window.__timelines??{};for(let m of Object.values(p))if(!(!m||m===d))try{m.play()}catch(y){v("runtime.init.activateSiblings",y)}},Ke=(d,p)=>{let m=t.capturedTimeline;if(m){p?.activateChildren&&ds(m);try{typeof m.totalTime=="function"?m.totalTime(d,!1):m.seek(d,!1)}catch(y){v("runtime.init.transport.seek",y)}}else cs(d);for(let y of t.deterministicAdapters)try{y.seek({time:d})}catch(A){v("runtime.init.transport.adapter",A)}},gi=()=>{if(!(t.tornDown||xn)){xn=!0;try{if(t.transportRafId=window.requestAnimationFrame(gi),qt+=1,qt%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<h)){let m=t.capturedTimeline;if(O()){t.capturedTimeline&&!me._timeline&&(me._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==m&&t.capturedTimeline.pause();let y=Y(t.capturedTimeline,0);y>0&&I.setDuration(y),Xe()}}if(qt%20===0&&Xe(),qt%30===0&&mn(),t.capturedTimeline){let p=Y(t.capturedTimeline,0);p>0&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(pe.isActive()&&pe.context){let p=pe.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),m=!1;for(let y of p){if(!(y instanceof HTMLMediaElement)||!y.isConnected)continue;let A=Number.parseFloat(y.dataset.start??""),M=Number.parseFloat(y.dataset.duration??""),B=Number.isFinite(M)&&M>0?A+M:1/0,j=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0;if(Number.isFinite(A)&&t.currentTime>=A&&t.currentTime<=B){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),m=!0):(I.attachAudioSource({el:y,compositionStart:A,mediaStart:j}),m=!0);break}}!m&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,Ke(d),I.isPlaying()&&I.reachedEnd()){pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),Ie("pause"),We(),Te(!0);return}I.isPlaying()&&We(),Te(!1)}finally{xn=!1}}},yi=d=>{let p=document.querySelectorAll("video, audio");for(let m of p){if(!(m instanceof HTMLMediaElement)||!m.isConnected)continue;let y=Number.parseFloat(m.dataset.start??"");if(!Number.isFinite(y))continue;let A=Number.parseFloat(m.dataset.duration??""),M=Number.isFinite(A)&&A>0?y+A:1/0;if(d<y||d>=M)continue;let B=Number.parseFloat(m.dataset.playbackStart??m.dataset.mediaStart??"0")||0,j=d-y+B;if(j>=0)try{m.currentTime=j}catch{}}},Si=()=>{let d=pe.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let m of p){if(!(m instanceof HTMLMediaElement)||!m.isConnected)continue;let y=Number.parseFloat(m.dataset.start??"");if(!Number.isFinite(y))continue;let A=Number.parseFloat(m.dataset.playbackStart??m.dataset.mediaStart??"0")||0,M=Number.parseFloat(m.dataset.volume??""),B=Number.isFinite(M)?M:1,j=Number.parseFloat(m.dataset.duration??""),Z=Number.isFinite(j)&&j>0?j:Number.POSITIVE_INFINITY,ee=m.closest("[data-composition-id]");if(ee){let oe=C(ee,0),ce=g(ee,{includeAuthoredTimingAttrs:!0});ce!=null&&ce>0&&(Z=Math.min(Z,Math.max(0,oe+ce-y)))}pe.decodeAudioElement(m).then(oe=>{!oe||!I.isPlaying()||pe.schedulePlayback(m,oe,y,A,I.now(),B*t.bridgeVolume,d,t.playbackRate,Z)})}},bi=()=>{pe.setRate(t.playbackRate)&&hn&&I.isPlaying()&&pe.hasBoundedActiveSources()&&(pe.stopAll(),Si())};if(me.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Y(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,Ke(0));else{let m=L(),y=Number(m?.getAttribute("data-duration")??0);y>0&&I.setDuration(y)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,yi(I.now()),hn&&Si(),Ie("play"),We(),Te(!0))},me.pause=()=>{if(!I.isPlaying())return;pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,yi(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Ie("pause"),We(),Te(!0)},me.seek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);pe.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let y=t.capturedTimeline;y&&y.pause(),Ke(t.currentTime),Ie("pause"),We(),Te(!0)},me.renderSeek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,Ke(t.currentTime,{activateChildren:!0}),We(),Te(!0)},me.getTime=()=>I.now(),me.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},me.isPlaying=()=>I.isPlaying(),me.setPlaybackRate=d=>{pn(d),I.setRate(t.playbackRate),bi()},t.capturedTimeline){let d=Y(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let Ai=window.__player;if(Ai){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(Ai,p,{get:()=>me[p],set:m=>{me[p]=m},configurable:!0})}t.transportRafId=window.requestAnimationFrame(gi),Xe(),Te(!0);let gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,pe.destroy(),U!=null&&(window.clearTimeout(U),U=null),o!=null&&(window.cancelAnimationFrame(o),o=null),Be(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),e&&(window.removeEventListener("error",e),e=null),n&&(window.removeEventListener("unhandledrejection",n),n=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),Wt.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of i.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=gn,t.beforeUnloadHandler=gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Io=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],li=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Ll(t){if(t<=255)return Io[t];let e=0,n=li.length-1;for(;e<=n;){let i=e+n>>1,r=li[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function Dl(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let c=0;c<e;){let u=t.charCodeAt(c),h=u,f=1;if(u>=55296&&u<=56319&&c+1<e){let F=t.charCodeAt(c+1);F>=56320&&F<=57343&&(h=(u-55296<<10)+(F-56320)+65536,f=2)}let x=Ll(h);(x==="R"||x==="AL"||x==="AN")&&(i=!0);for(let F=0;F<f;F++)n[c+F]=x;c+=f}if(!i)return null;let r=0;for(let c=0;c<e;c++){let u=n[c];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let c=0;c<e;c++)o[c]=r;let s=r&1?"R":"L",l=s,a=l;for(let c=0;c<e;c++)n[c]==="NSM"?n[c]=a:a=n[c];a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let c=0;c<e;c++)n[c]==="AL"&&(n[c]="R");for(let c=1;c<e-1;c++)n[c]==="ES"&&n[c-1]==="EN"&&n[c+1]==="EN"&&(n[c]="EN"),n[c]==="CS"&&(n[c-1]==="EN"||n[c-1]==="AN")&&n[c+1]===n[c-1]&&(n[c]=n[c-1]);for(let c=0;c<e;c++){if(n[c]!=="EN")continue;let u;for(u=c-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=c+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let c=0;c<e;c++){let u=n[c];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[c]="ON")}a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let c=0;c<e;c++){if(n[c]!=="ON")continue;let u=c+1;for(;u<e&&n[u]==="ON";)u++;let h=c>0?n[c-1]:l,f=u<e?n[u]:l,x=h!=="L"?"R":"L";if(x===(f!=="L"?"R":"L"))for(let E=c;E<u;E++)n[E]=x;c=u-1}for(let c=0;c<e;c++)n[c]==="ON"&&(n[c]=s);for(let c=0;c<e;c++){let u=n[c];(o[c]&1)===0?u==="R"?o[c]++:(u==="AN"||u==="EN")&&(o[c]+=2):(u==="L"||u==="AN"||u==="EN")&&o[c]++}return o}function Oo(t,e){let n=Dl(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var Bl=/[ \\t\\n\\r\\f]+/g,Il=/[\\t\\n\\r\\f]| {2,}|^ | $/;function Ol(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function Pl(t){if(!Il.test(t))return t;let e=t.replace(Bl," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function Hl(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var ui=null,Wl;function ql(){return ui===null&&(ui=new Intl.Segmenter(Wl,{granularity:"word"})),ui}var Vl=/\\p{Script=Arabic}/u,ln=/\\p{M}/u,jo=/\\p{Nd}/u;function Po(t){return Vl.test(t)}function Ho(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function Le(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(Ho(r))return!0;e++;continue}}if(Ho(n))return!0}}return!1}function Ul(t){let e=dn(t);return e!==null&&(cn.has(e)||Ge.has(e))}var zl=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function jl(t){return Le(t)}function Gl(t){let e=dn(t);return e!==null&&zl.has(e)}function un(t){return!Ul(t)&&!Gl(t)}var cn=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),Ht=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),di=new Set(["\'","\\u2019"]),Ge=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),$l=new Set([":",".","\\u060C","\\u061B"]),Kl=new Set(["\\u104F"]),Jl=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ql(t){if(fi(t))return!0;let e=!1;for(let n of t){if(Ge.has(n)){e=!0;continue}if(!(e&&ln.test(n)))return!1}return e}function Yl(t){for(let e of t)if(!cn.has(e)&&!Ge.has(e))return!1;return t.length>0}function Zl(t){if(fi(t))return!0;for(let e of t)if(!Ht.has(e)&&!di.has(e)&&!ln.test(e))return!1;return t.length>0}function fi(t){let e=!1;for(let n of t)if(!(n==="\\\\"||ln.test(n))){if(Ht.has(n)||Ge.has(n)||di.has(n)){e=!0;continue}return!1}return e}function Go(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function dn(t){if(t.length===0)return null;let e=Go(t,t.length);return t.slice(e)}function Xl(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(ln.test(i)){n--;continue}if(Ht.has(i)||di.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function eu(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function Wo(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let l=r.repeat(s);return t[i]=l,l}function qo(t,e){return t&&e!==null&&$l.has(e)}function tu(t){let e=dn(t);return e!==null&&Kl.has(e)}function nu(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function fn(t){let e=t.length;for(;e>0;){let n=Go(t,e),i=t.slice(n,e);if(Jl.has(i))return!0;if(!Ge.has(i))return!1;e=n}return!1}function iu(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var ru=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function ke(t){return t.length===1?t[0]:t.join("")}function ou(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),ke(n)}function su(t,e,n,i){if(!ru.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],l=n,a=!1,c=0;for(let u of t){let h=iu(u,i),f=h==="text"&&e;if(o!==null&&h===o&&f===a){s.push(u),c+=u.length;continue}o!==null&&r.push({text:ke(s),isWordLike:a,kind:o,start:l}),o=h,s=[u],l=n+c,a=f,c+=u.length}return o!==null&&r.push({text:ke(s),isWordLike:a,kind:o,start:l}),r}function ci(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var au=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function lu(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:au.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function uu(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function cu(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!lu(t,s))continue;let l=[e[s]],a=s+1;for(;a<t.len&&!ci(i[a]);){l.push(e[a]),n[s]=!0;let c=e[a].includes("?");if(i[a]="text",e[a]="",a++,c)break}e[s]=ke(l)}let o=0;for(let s=0;s<e.length;s++){let l=e[s];l.length!==0&&(o!==s&&(e[o]=l,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function du(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!uu(s))continue;let l=o+1;if(l>=t.len||ci(t.kinds[l]))continue;let a=[],c=t.starts[l],u=l;for(;u<t.len&&!ci(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(ke(a)),n.push(!0),i.push("text"),r.push(c),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var fu=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Vo=/^[A-Za-z0-9_]+[,:;]*$/,Uo=/[,:;]+$/;function $o(t){for(let e of t)if(jo.test(e))return!0;return!1}function Pt(t){if(t.length===0)return!1;for(let e of t)if(!(jo.test(e)||fu.has(e)))return!1;return!0}function mu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o];if(l==="text"&&Pt(s)&&$o(s)){let a=[s],c=o+1;for(;c<t.len&&t.kinds[c]==="text"&&Pt(t.texts[c]);)a.push(t.texts[c]),c++;e.push(ke(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=c-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function pu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o],a=t.isWordLike[o];if(l==="text"&&a&&Vo.test(s)){let c=[s],u=Uo.test(s),h=o+1;for(;u&&h<t.len&&t.kinds[h]==="text"&&t.isWordLike[h]&&Vo.test(t.texts[h]);){let f=t.texts[h];c.push(f),u=Uo.test(f),h++}e.push(ke(c)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=h-1;continue}e.push(s),n.push(a),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function hu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let l=s.split("-"),a=l.length>1;for(let c=0;c<l.length;c++){let u=l[c];if(!a)break;(u.length===0||!$o(u)||!Pt(u))&&(a=!1)}if(a){let c=0;for(let u=0;u<l.length;u++){let h=l[u],f=u<l.length-1?`${h}-`:h;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+c),c+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function xu(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],l=t.isWordLike[o],a=t.kinds[o],c=t.starts[o];if(a==="glue"){let u=[s[0]],h=c;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=ke(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),l=t.isWordLike[o],a="text",c=h,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(h);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let h=ke(u);if(o<t.len&&t.kinds[o]==="text"){s.push(h,t.texts[o]),l=l||t.isWordLike[o],o++;continue}s.push(h)}e.push(ke(s)),n.push(l),i.push(a),r.push(c)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function gu(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Le(e[o])||!Le(e[o+1]))continue;let s=Xl(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function zo(t,e,n){let i=ql(),r=0,o=[],s=[],l=[],a=[],c=[],u=[],h=[],f=[],x=[],F=[],E=[],S=[];for(let C of i.segment(t))for(let g of su(C.segment,C.isWordLike??!1,C.index,n)){let de=function(){u[T]!==null&&(s[T]=[Wo(o,u,h,T)],u[T]=null),s[T].push(g.text),l[T]=l[T]||g.isWordLike,f[T]=f[T]||w,x[T]=x[T]||_,F[T]=J,E[T]=W,S[T]=qo(x[T],H)},b=g.kind==="text",N=eu(g.text,g.isWordLike,g.kind),w=Le(g.text),_=Po(g.text),H=dn(g.text),J=fn(g.text),W=tu(g.text),T=r-1;e.carryCJKAfterClosingQuote&&b&&r>0&&a[T]==="text"&&w&&f[T]&&F[T]||b&&r>0&&a[T]==="text"&&Yl(g.text)&&f[T]||b&&r>0&&a[T]==="text"&&E[T]?de():b&&r>0&&a[T]==="text"&&g.isWordLike&&_&&S[T]?(de(),l[T]=!0):N!==null&&r>0&&a[T]==="text"&&u[T]===N?h[T]=(h[T]??1)+1:b&&!g.isWordLike&&r>0&&a[T]==="text"&&(Ql(g.text)||g.text==="-"&&l[T])?de():(o[r]=g.text,s[r]=[g.text],l[r]=g.isWordLike,a[r]=g.kind,c[r]=g.start,u[r]=N,h[r]=N===null?0:1,f[r]=w,x[r]=_,F[r]=J,E[r]=W,S[r]=qo(_,H),r++)}for(let C=0;C<r;C++){if(u[C]!==null){o[C]=Wo(o,u,h,C);continue}o[C]=ke(s[C])}for(let C=1;C<r;C++)a[C]==="text"&&!l[C]&&fi(o[C])&&a[C-1]==="text"&&(o[C-1]+=o[C],l[C-1]=l[C-1]||l[C],o[C]="");let D=Array.from({length:r},()=>null),L=-1;for(let C=r-1;C>=0;C--){let g=o[C];if(g.length!==0){if(a[C]==="text"&&!l[C]&&Zl(g)&&L>=0&&a[L]==="text"){let b=D[L]??[];b.push(g),D[L]=b,c[L]=c[C],o[C]="";continue}L=C}}for(let C=0;C<r;C++){let g=D[C];g!=null&&(o[C]=ou(g,o[C]))}let R=0;for(let C=0;C<r;C++){let g=o[C];g.length!==0&&(R!==C&&(o[R]=g,l[R]=l[C],a[R]=a[C],c[R]=c[C]),R++)}o.length=R,l.length=R,a.length=R,c.length=R;let ne=xu({len:R,texts:o,isWordLike:l,kinds:a,starts:c}),q=gu(pu(hu(mu(du(cu(ne))))));for(let C=0;C<q.len-1;C++){let g=nu(q.texts[C]);g!==null&&(q.kinds[C]!=="space"&&q.kinds[C]!=="preserved-space"||q.kinds[C+1]!=="text"||!Po(q.texts[C+1])||(q.texts[C]=g.space,q.isWordLike[C]=!1,q.kinds[C]=q.kinds[C]==="preserved-space"?"preserved-space":"space",q.texts[C+1]=g.marks+q.texts[C+1],q.starts[C+1]=q.starts[C]+g.space.length))}return q}function yu(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function Su(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,l=0,a=!1,c=!1;function u(){o!==null&&(e.push(ke(o)),n.push(s),i.push("text"),r.push(l),o=null)}for(let h=0;h<t.len;h++){let f=t.texts[h],x=t.kinds[h],F=t.isWordLike[h],E=t.starts[h];if(x==="text"){let S=jl(f),D=un(f);if(o!==null&&a&&c){o.push(f),s=s||F,a=a||S,c=D;continue}u(),o=[f],s=F,l=E,a=S,c=D;continue}u(),e.push(f),n.push(F),i.push(x),r.push(E)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ko(t,e,n="normal",i="normal"){let r=Ol(n),o=r.mode==="pre-wrap"?Hl(t):Pl(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?Su(zo(o,e,r)):zo(o,e,r);return{normalized:o,chunks:yu(s,r),...s}}var at=null,Jo=new Map,lt=null,bu=96,Au=/\\p{Emoji_Presentation}/u,Eu=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,mi=null,Qo=new Map;function pi(){if(at!==null)return at;if(typeof OffscreenCanvas<"u")return at=new OffscreenCanvas(1,1).getContext("2d"),at;if(typeof document<"u")return at=document.createElement("canvas").getContext("2d"),at;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Fu(t){let e=Jo.get(t);return e||(e=new Map,Jo.set(t,e)),e}function Pe(t,e){let n=e.get(t);return n===void 0&&(n={width:pi().measureText(t).width,containsCJK:Le(t)},e.set(t,n)),n}function ut(){if(lt!==null)return lt;if(typeof navigator>"u")return lt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},lt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return lt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},lt}function wu(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function Yo(){return mi===null&&(mi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),mi}function Nu(t){return Au.test(t)||t.includes("\\uFE0F")}function Zo(t){return Eu.test(t)}function Cu(t,e){let n=Qo.get(t);if(n!==void 0)return n;let i=pi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return Qo.set(t,n),n}function Mu(t){let e=0,n=Yo();for(let i of n.segment(t))Nu(i.segment)&&e++;return e}function Tu(t,e){return e.emojiCount===void 0&&(e.emojiCount=Mu(t)),e.emojiCount}function $e(t,e,n){return n===0?e.width:e.width-Tu(t,e)*n}function Xo(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=Yo(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let h of s){let f=Pe(h,n);u.push($e(h,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>bu){let u=[],h=null,f=0;for(let x of s){let F=Pe(x,n),E=$e(x,F,i);if(h===null)u.push(E);else{let S=h+x,D=Pe(S,n);u.push($e(S,D,i)-f)}h=x,f=E}return e.breakableFitAdvances=u,e.breakableFitAdvances}let l=[],a="",c=0;for(let u of s){a+=u;let h=Pe(a,n),f=$e(a,h,i);l.push(f-c),c=f}return e.breakableFitAdvances=l,e.breakableFitAdvances}function es(t,e){let n=pi();n.font=t;let i=Fu(t),r=wu(t),o=e?Cu(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function ku(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function _u(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function vu(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let l=s+t[o];if((o+1<t.length?l+r:l)>n+i)break;s=l,o++}return{fitCount:o,fittedWidth:s}}function ts(t,e){return t.simpleLineWalkFastPath?ns(t,e):is(t,e)}function ns(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let l=ut().lineFitEpsilon,a=e+l,c=0,u=0,h=!1,f=0,x=0,F=0,E=0,S=-1,D=0;function L(){S=-1,D=0}function R(N=F,w=E,_=u){c++,n?.({startSegmentIndex:f,startGraphemeIndex:x,endSegmentIndex:N,endGraphemeIndex:w,width:_}),u=0,h=!1,L()}function ne(N,w){h=!0,f=N,x=0,F=N+1,E=0,u=w}function q(N,w,_){h=!0,f=N,x=w,F=N,E=w+1,u=_}function C(N,w){if(!h){ne(N,w);return}u+=w,F=N+1,E=0}function g(N,w){let _=o[N];for(let H=w;H<_.length;H++){let J=_[H];h?u+J>a?(R(),q(N,H,J)):(u+=J,F=N,E=H+1):q(N,H,J)}h&&F===N&&E===_.length&&(F=N+1,E=0)}let b=0;for(;b<i.length&&!(!h&&(b=ku(t,b),b>=i.length));){let N=i[b],w=r[b],_=w==="space"||w==="preserved-space"||w==="tab"||w==="zero-width-break"||w==="soft-hyphen";if(!h){N>e&&o[b]!==null?g(b,0):ne(b,N),_&&(S=b+1,D=u-N),b++;continue}if(u+N>a){if(_){C(b,N),R(b+1,0,u-N),b++;continue}if(S>=0){if(F>S||F===S&&E>0){R();continue}R(S,0,D);continue}if(N>e&&o[b]!==null){R(),g(b,0),b++;continue}R();continue}C(b,N),_&&(S=b+1,D=u-N),b++}return h&&R(),c}function is(t,e,n){if(t.simpleLineWalkFastPath)return ns(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:a,tabStopAdvance:c,chunks:u}=t;if(i.length===0||u.length===0)return 0;let h=ut(),f=h.lineFitEpsilon,x=e+f,F=0,E=0,S=!1,D=0,L=0,R=0,ne=0,q=-1,C=0,g=0,b=null;function N(){q=-1,C=0,g=0,b=null}function w(G=R,Q=ne,V=E){F++,n?.({startSegmentIndex:D,startGraphemeIndex:L,endSegmentIndex:G,endGraphemeIndex:Q,width:V}),E=0,S=!1,N()}function _(G,Q){S=!0,D=G,L=0,R=G+1,ne=0,E=Q}function H(G,Q,V){S=!0,D=G,L=Q,R=G,ne=Q+1,E=V}function J(G,Q){if(!S){_(G,Q);return}E+=Q,R=G+1,ne=0}function W(G,Q,V,Y){if(!Q)return;let we=G==="tab"?0:r[V],Ae=G==="tab"?Y:o[V];q=V+1,C=E-Y+we,g=E-Y+Ae,b=G}function T(G,Q){let V=l[G];for(let Y=Q;Y<V.length;Y++){let we=V[Y];S?E+we>x?(w(),H(G,Y,we)):(E+=we,R=G,ne=Y+1):H(G,Y,we)}S&&R===G&&ne===V.length&&(R=G+1,ne=0)}function de(G){if(b!=="soft-hyphen")return!1;let Q=l[G];if(Q==null)return!1;let{fitCount:V,fittedWidth:Y}=vu(Q,E,e,f,a);return V===0?!1:(E=Y,R=G,ne=V,N(),V===Q.length?(R=G+1,ne=0,!0):(w(G,V,Y+a),T(G,V),!0))}function be(G){F++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),N()}for(let G=0;G<u.length;G++){let Q=u[G];if(Q.startSegmentIndex===Q.endSegmentIndex){be(Q);continue}S=!1,E=0,D=Q.startSegmentIndex,L=0,R=Q.startSegmentIndex,ne=0,N();let V=Q.startSegmentIndex;for(;V<Q.endSegmentIndex;){let Y=s[V],we=Y==="space"||Y==="preserved-space"||Y==="tab"||Y==="zero-width-break"||Y==="soft-hyphen",Ae=Y==="tab"?_u(E,c):i[V];if(Y==="soft-hyphen"){S&&(R=V+1,ne=0,q=V+1,C=E+a,g=E+a,b=Y),V++;continue}if(!S){Ae>e&&l[V]!==null?T(V,0):_(V,Ae),W(Y,we,V,Ae),V++;continue}if(E+Ae>x){let k=E+(Y==="tab"?0:r[V]),P=E+(Y==="tab"?Ae:o[V]);if(b==="soft-hyphen"&&h.preferEarlySoftHyphenBreak&&C<=x){w(q,0,g);continue}if(b==="soft-hyphen"&&de(V)){V++;continue}if(we&&k<=x){J(V,Ae),w(V+1,0,P),V++;continue}if(q>=0&&C<=x){if(R>q||R===q&&ne>0){w();continue}let ie=q;w(ie,0,g),V=ie;continue}if(Ae>e&&l[V]!==null){w(),T(V,0),V++;continue}w();continue}J(V,Ae),W(Y,we,V,Ae),V++}if(S){let Y=q===Q.consumedEndSegmentIndex?g:E;w(Q.consumedEndSegmentIndex,0,Y)}}return F}var hi=null;function Ru(){return hi===null&&(hi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),hi}function Lu(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Du(t,e){let n=[],i=[],r=0,o=!1,s=!1,l=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,l=!1)}function c(h,f,x){i=[h],r=f,o=x,s=fn(h),l=Ht.has(h)}function u(h,f){i.push(h),o=o||f;let x=fn(h);h.length===1&&Ge.has(h)?s=s||x:s=x,l=!1}for(let h of Ru().segment(t)){let f=h.segment,x=Le(f);if(i.length===0){c(f,h.index,x);continue}if(l||cn.has(f)||Ge.has(f)||e.carryCJKAfterClosingQuote&&x&&s){u(f,x);continue}if(!o&&!x){u(f,x);continue}a(),c(f,h.index,x)}return a(),n}function Bu(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=Le(t[0].text),o=un(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let l=1;l<t.length;l++){let a=t[l],c=Le(a.text),u=un(a.text);if(r&&o){n.push(a.text),r=r||c,o=u;continue}s(),n=[a.text],i=a.start,r=c,o=u}return s(),e}function Iu(t,e,n,i){let r=ut(),{cache:o,emojiCorrection:s}=es(e,Zo(t.normalized)),l=$e("-",Pe("-",o),s),c=$e(" ",Pe(" ",o),s)*8;if(t.len===0)return Lu(n);let u=[],h=[],f=[],x=[],F=t.chunks.length<=1,E=n?[]:null,S=[],D=n?[]:null,L=Array.from({length:t.len});function R(g,b,N,w,_,H,J){_!=="text"&&_!=="space"&&_!=="zero-width-break"&&(F=!1),u.push(b),h.push(N),f.push(w),x.push(_),E?.push(H),S.push(J),D!==null&&D.push(g)}function ne(g,b,N,w,_){let H=Pe(g,o),J=$e(g,H,s),W=b==="space"||b==="preserved-space"||b==="zero-width-break"?0:J,T=b==="space"||b==="zero-width-break"?0:J;if(_&&w&&g.length>1){let de="sum-graphemes";Pt(g)?de="pair-context":r.preferPrefixWidthsForBreakableRuns&&(de="segment-prefixes");let be=Xo(g,H,o,s,de);R(g,J,W,T,b,N,be);return}R(g,J,W,T,b,N,null)}for(let g=0;g<t.len;g++){L[g]=u.length;let b=t.texts[g],N=t.isWordLike[g],w=t.kinds[g],_=t.starts[g];if(w==="soft-hyphen"){R(b,0,l,l,w,_,null);continue}if(w==="hard-break"){R(b,0,0,0,w,_,null);continue}if(w==="tab"){R(b,0,0,0,w,_,null);continue}let H=Pe(b,o);if(w==="text"&&H.containsCJK){let J=Du(b,r),W=i==="keep-all"?Bu(J):J;for(let T=0;T<W.length;T++){let de=W[T];ne(de.text,"text",_+de.start,N,i==="keep-all"||!Le(de.text))}continue}ne(b,w,_,N,!0)}let q=Ou(t.chunks,L,u.length),C=E===null?null:Oo(t.normalized,E);return D!==null?{widths:u,lineEndFitAdvances:h,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:C,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q,segments:D}:{widths:u,lineEndFitAdvances:h,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:C,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q}}function Ou(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,l=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:l,consumedEndSegmentIndex:a})}return i}function Pu(t,e,n,i){let r=i?.wordBreak??"normal",o=Ko(t,ut(),i?.whiteSpace,r);return Iu(o,e,n,r)}function rs(t,e,n){return Pu(t,e,!1,n)}function os(t,e,n){let i=ts(t,e);return{lineCount:i,height:i*n}}var Hu={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function ss(t,e){let n={...Hu,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=rs(t,o),{lineCount:l}=os(s,n.maxWidth,r*i);if(l<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:ss,getVariables:No};function as(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Bo())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",as,{once:!0}):as();})();\n';
53540
+ RUNTIME_IIFE = '"use strict";(()=>{var hs=Object.create;var bn=Object.defineProperty;var xs=Object.getOwnPropertyDescriptor;var gs=Object.getOwnPropertyNames;var ys=Object.getPrototypeOf,Ss=Object.prototype.hasOwnProperty;var bs=(t,e,n)=>e in t?bn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var As=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of gs(e))!Ss.call(t,r)&&r!==n&&bn(t,r,{get:()=>e[r],enumerable:!(i=xs(e,r))||i.enumerable});return t};var Es=(t,e,n)=>(n=t!=null?hs(ys(t)):{},As(e||!t||!t.__esModule?bn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>bs(t,typeof e!="symbol"?e+"":e,n);var Yi=te((_c,Tn)=>{var K=String,Qi=function(){return{isColorSupported:!1,reset:K,bold:K,dim:K,italic:K,underline:K,inverse:K,hidden:K,strikethrough:K,black:K,red:K,green:K,yellow:K,blue:K,magenta:K,cyan:K,white:K,gray:K,bgBlack:K,bgRed:K,bgGreen:K,bgYellow:K,bgBlue:K,bgMagenta:K,bgCyan:K,bgWhite:K,blackBright:K,redBright:K,greenBright:K,yellowBright:K,blueBright:K,magentaBright:K,cyanBright:K,whiteBright:K,bgBlackBright:K,bgRedBright:K,bgGreenBright:K,bgYellowBright:K,bgBlueBright:K,bgMagentaBright:K,bgCyanBright:K,bgWhiteBright:K}};Tn.exports=Qi();Tn.exports.createColors=Qi});var kn=te(()=>{});var Vt=te((Lc,er)=>{"use strict";var Zi=Yi(),Xi=kn(),bt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Zi.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:h,red:f}=Zi.createColors(!0);r=x=>u(f(x)),i=x=>h(x),Xi&&(o=x=>Xi(x))}let s=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),c=String(a).length;return s.slice(l,a).map((u,h)=>{let f=l+1+h,x=" "+(" "+f).slice(-c)+" | ";if(f===this.line){if(u.length>160){let E=20,S=Math.max(0,this.column-E),D=Math.max(this.column+E,this.endColumn+E),L=u.slice(S,D),R=i(x.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,E-1)).replace(/[^\\t]/g," ");return r(">")+i(x)+o(L)+`\n `+R+r("^")}let F=i(x.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(x)+o(u)+`\n `+F+r("^")}return" "+i(x)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};er.exports=bt;bt.default=bt});var _n=te((Dc,nr)=>{"use strict";var zs=/(<)(\\/?style\\b)/gi,js=/(<)(!--)/g;function Ue(t){return typeof t!="string"||!t.includes("<")?t:t.replace(zs,"\\\\3c $2").replace(js,"\\\\3c $2")}var tr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Gs(t){return t[0].toUpperCase()+t.slice(1)}var At=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(Ue(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let l=0;l<o;l++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(Ue(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(Ue(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let l=n[s],a=this.raw(l,"before");a&&this.builder(o?a:Ue(a)),this.stringify(l,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(Ue("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(Ue(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return tr[i];let s=e.root(),l=s.rawCache||(s.rawCache={});if(typeof l[i]<"u")return l[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+Gs(i);this[a]?r=this[a](s,e):s.walk(c=>{if(r=c.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=tr[i]),l[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:Ue(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(Ue(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};nr.exports=At;At.default=At});var Et=te((Bc,ir)=>{"use strict";var $s=_n();function vn(t,e){new $s(e).stringify(t)}ir.exports=vn;vn.default=vn});var zt=te((Ic,Rn)=>{"use strict";Rn.exports.isClean=Symbol("isClean");Rn.exports.my=Symbol("my")});var Nt=te((Oc,rr)=>{"use strict";var Ks=Vt(),Js=_n(),Qs=Et(),{isClean:Ft,my:Ys}=zt();function Ln(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>Ln(s,n)):(o==="object"&&r!==null&&(r=Ln(r)),n[i]=r)}return n}function Oe(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var wt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[Ft]=!1,this[Ys]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=Ln(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new Ks(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[Ft]=!0}markDirty(){if(this[Ft]){this[Ft]=!1;let e=this;for(;e=e.parent;)e[Ft]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Oe(i,this.source.start),Oe(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Oe(r,this.source.start),s=o+e;for(let l=o;l<s;l++)r[l]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Oe(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Oe(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Oe(n,this.source.start),Oe(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Oe(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Oe(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new Js().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let l=this[s];if(Array.isArray(l))i[s]=l.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof l=="object"&&l.toJSON)i[s]=l.toJSON(null,n);else if(s==="source"){if(l==null)continue;let a=n.get(l.input);a==null&&(a=o,n.set(l.input,o),o++),i[s]={end:l.end,inputId:a,start:l.start}}else i[s]=l}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Qs){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};rr.exports=wt;wt.default=wt});var Mt=te((Pc,or)=>{"use strict";var Zs=Nt(),Ct=class extends Zs{constructor(e){super(e),this.type="comment"}};or.exports=Ct;Ct.default=Ct});var kt=te((Hc,sr)=>{"use strict";var Xs=Nt(),Tt=class extends Xs{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};sr.exports=Tt;Tt.default=Tt});var Ve=te((Wc,hr)=>{"use strict";var ar=Mt(),lr=kt(),ea=Nt(),{isClean:ur,my:cr}=zt(),Dn,dr,fr,Bn;function mr(t){return t.map(e=>(e.nodes&&(e.nodes=mr(e.nodes)),delete e.source,e))}function pr(t){if(t[ur]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)pr(e)}var Re=class t extends ea{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let l of o)this.proxyOf.nodes.splice(i,0,l);let s;for(let l in this.indexes)s=this.indexes[l],i<=s&&(this.indexes[l]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=mr(dr(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new lr(e)]}else if(e.selector||e.selectors)e=[new Bn(e)];else if(e.name)e=[new Dn(e)];else if(e.text)e=[new ar(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[cr]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[ur]&&pr(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};Re.registerParse=t=>{dr=t};Re.registerRule=t=>{Bn=t};Re.registerAtRule=t=>{Dn=t};Re.registerRoot=t=>{fr=t};hr.exports=Re;Re.default=Re;Re.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,Dn.prototype):t.type==="rule"?Object.setPrototypeOf(t,Bn.prototype):t.type==="decl"?Object.setPrototypeOf(t,lr.prototype):t.type==="comment"?Object.setPrototypeOf(t,ar.prototype):t.type==="root"&&Object.setPrototypeOf(t,fr.prototype),t[cr]=!0,t.nodes&&t.nodes.forEach(e=>{Re.rebuild(e)})}});var jt=te((qc,gr)=>{"use strict";var xr=Ve(),nt=class extends xr{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};gr.exports=nt;nt.default=nt;xr.registerAtRule(nt)});var Gt=te((Uc,br)=>{"use strict";var ta=Ve(),yr,Sr,Ye=class extends ta{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new yr(new Sr,this,e).stringify()}};Ye.registerLazyResult=t=>{yr=t};Ye.registerProcessor=t=>{Sr=t};br.exports=Ye;Ye.default=Ye});var Er=te((Vc,Ar)=>{var na="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",ia=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},ra=(t=21)=>{let e="",n=t|0;for(;n--;)e+=na[Math.random()*64|0];return e};Ar.exports={nanoid:ra,customAlphabet:ia}});var $t=te(()=>{});var Kt=te(()=>{});var In=te(()=>{});var Fr=te(()=>{});var Pn=te((Zc,Cr)=>{"use strict";var{existsSync:oa,readFileSync:sa}=Fr(),{dirname:On,join:aa}=$t(),{SourceMapConsumer:wr,SourceMapGenerator:Nr}=Kt();function la(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var _t=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=On(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new wr(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let l=e.match(n)||e.match(i);if(l)return la(e.substr(l[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=On(e),oa(e)))return this.mapFile=e,sa(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof wr)return Nr.fromSourceMap(n).toString();if(n instanceof Nr)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=aa(On(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};Cr.exports=_t;_t.default=_t});var vt=te((Xc,vr)=>{"use strict";var{nanoid:ua}=Er(),{isAbsolute:qn,resolve:Un}=$t(),{SourceMapConsumer:ca,SourceMapGenerator:da}=Kt(),{fileURLToPath:Mr,pathToFileURL:Jt}=In(),Tr=Vt(),fa=Pn(),Hn=kn(),Wn=Symbol("lineToIndexCache"),ma=!!(ca&&da),kr=!!(Un&&qn);function _r(t){if(t[Wn])return t[Wn];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[Wn]=n,n}var it=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!kr||/^\\w+:\\/\\//.test(n.from)||qn(n.from)?this.file=n.from:this.file=Un(n.from)),kr&&ma){let i=new fa(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+ua(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,l,a,c;if(n&&typeof n=="object"){let h=n,f=i;if(typeof h.offset=="number"){a=h.offset;let x=this.fromOffset(a);n=x.line,i=x.col}else n=h.line,i=h.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){l=f.offset;let x=this.fromOffset(l);s=x.line,o=x.col}else s=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let h=this.fromOffset(a);n=h.line,i=h.col}let u=this.origin(n,i,s,o);return u?c=new Tr(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):c=new Tr(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),c.input={column:i,endColumn:o,endLine:s,endOffset:l,line:n,offset:a,source:this.css},this.file&&(Jt&&(c.input.url=Jt(this.file).toString()),c.input.file=this.file),c}fromLineAndColumn(e,n){return _r(this)[e-1]+n-1}fromOffset(e){let n=_r(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:Un(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let l;typeof i=="number"&&(l=o.originalPositionFor({column:r,line:i}));let a;qn(s.source)?a=Jt(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||Jt(this.map.mapFile));let c={column:s.column,endColumn:l&&l.column,endLine:l&&l.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(Mr)c.file=Mr(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(c.source=u),c}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};vr.exports=it;it.default=it;Hn&&Hn.registerInput&&Hn.registerInput(it)});var rt=te((ed,Br)=>{"use strict";var Rr=Ve(),Lr,Dr,ze=class extends Rr{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Lr(new Dr,this,e).stringify()}};ze.registerLazyResult=t=>{Lr=t};ze.registerProcessor=t=>{Dr=t};Br.exports=ze;ze.default=ze;Rr.registerRoot(ze)});var Vn=te((td,Ir)=>{"use strict";var Rt={comma(t){return Rt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return Rt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,l=!1,a="",c=!1;for(let u of t)c?c=!1:u==="\\\\"?c=!0:l?u===a&&(l=!1):u===\'"\'||u==="\'"?(l=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};Ir.exports=Rt;Rt.default=Rt});var Qt=te((nd,Pr)=>{"use strict";var Or=Ve(),pa=Vn(),ot=class extends Or{get selectors(){return pa.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};Pr.exports=ot;ot.default=ot;Or.registerRule(ot)});var Wr=te((id,Hr)=>{"use strict";var ha=jt(),xa=Mt(),ga=kt(),ya=vt(),Sa=Pn(),ba=rt(),Aa=Qt();function Lt(t,e){if(Array.isArray(t))return t.map(r=>Lt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:ya.prototype};o.map&&(o.map={...o.map,__proto__:Sa.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>Lt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new ba(i);if(i.type==="decl")return new ga(i);if(i.type==="rule")return new Aa(i);if(i.type==="comment")return new xa(i);if(i.type==="atrule")return new ha(i);throw new Error("Unknown node type: "+t.type)}Hr.exports=Lt;Lt.default=Lt});var jn=te((rd,Gr)=>{"use strict";var{dirname:Yt,relative:Ur,resolve:Vr,sep:zr}=$t(),{SourceMapConsumer:jr,SourceMapGenerator:Zt}=Kt(),{pathToFileURL:qr}=In(),Ea=vt(),Fa=!!(jr&&Zt),wa=!!(Yt&&Vr&&Ur&&zr),zn=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||Yt(e.file),r;this.mapOpts.sourcesContent===!1?(r=new jr(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),wa&&Fa&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=Zt.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new Zt({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new Zt({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(l,a,c)=>{if(this.css+=l,a&&c!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=l.match(/\\n/g),s?(e+=s.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,a&&c!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?Yt(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Yt(Vr(i,this.mapOpts.annotation)));let r=Ur(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new Ea(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(qr){let i=qr(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;zr==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Gr.exports=zn});var Jr=te((od,Kr)=>{"use strict";var Xt=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,en=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Na=/.[\\r\\n"\'(/\\\\]/,$r=/[\\da-f]/i;Kr.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,l,a,c,u,h,f,x,F,E=i.length,S=0,D=[],L=[],R=-1;function ne(){return S}function q(N){throw e.error("Unclosed "+N,S)}function C(){return L.length===0&&S>=E}function g(N){if(L.length)return L.pop();if(S>=E)return;let w=N?N.ignoreUnclosed:!1;switch(o=i.charCodeAt(S),o){case 10:case 32:case 9:case 13:case 12:{a=S;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(S,a)],S=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let _=String.fromCharCode(o);u=[_,_,S];break}case 40:{if(F=D.length?D.pop()[1]:"",x=i.charCodeAt(S+1),F==="url"&&x!==39&&x!==34&&x!==32&&x!==10&&x!==9&&x!==12&&x!==13){a=S;do{if(h=!1,a=i.indexOf(")",a+1),a===-1)if(r||w){a=S;break}else q("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,h=!h}while(h);u=["brackets",i.slice(S,a+1),S,a],S=a}else S<=R?u=["(","(",S]:(a=i.indexOf(")",S+1),s=i.slice(S,a+1),a===-1||Na.test(s)?(R=a===-1?E:a,u=["(","(",S]):(u=["brackets",s,S,a],S=a));break}case 39:case 34:{c=o===39?"\'":\'"\',a=S;do{if(h=!1,a=i.indexOf(c,a+1),a===-1)if(r||w){a=S+1;break}else q("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,h=!h}while(h);u=["string",i.slice(S,a+1),S,a],S=a;break}case 64:{Xt.lastIndex=S+1,Xt.test(i),Xt.lastIndex===0?a=i.length-1:a=Xt.lastIndex-2,u=["at-word",i.slice(S,a+1),S,a],S=a;break}case 92:{for(a=S,l=!0;i.charCodeAt(a+1)===92;)a+=1,l=!l;if(o=i.charCodeAt(a+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,$r.test(i.charAt(a)))){for(;$r.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(S,a+1),S,a],S=a;break}default:{o===47&&i.charCodeAt(S+1)===42?(a=i.indexOf("*/",S+2)+1,a===0&&(r||w?a=i.length:q("comment")),u=["comment",i.slice(S,a+1),S,a],S=a):(en.lastIndex=S+1,en.test(i),en.lastIndex===0?a=i.length-1:a=en.lastIndex-2,u=["word",i.slice(S,a+1),S,a],D.push(u),S=a);break}}return S++,u}function b(N){L.push(N)}return{back:b,endOfFile:C,nextToken:g,position:ne}}});var Xr=te((sd,Zr)=>{"use strict";var Ca=jt(),Ma=Mt(),Ta=kt(),ka=rt(),Qr=Qt(),_a=Jr(),Yr={empty:!0,space:!0};function va(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Gn=class{constructor(e){this.input=e,this.root=new ka,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Ca;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,l=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,l]of e.entries()){if(r=l,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new Ma;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=_a(this.input)}decl(e,n){let i=new Ta;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||va(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(o=e[c],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,c);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),h="";for(let f=c;f>0;f--){let x=u[f][0];if(h.trim().startsWith("!")&&x!=="space")break;h=u.pop()[1]+h}h.trim().startsWith("!")&&(i.important=!0,i.raws.important=h,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Qr;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],l=e[1].startsWith("--"),a=[],c=e;for(;c;){if(i=c[0],a.push(c),i==="("||i==="[")o||(o=c),s.push(i==="("?")":"]");else if(l&&r&&i==="{")o||(o=c),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,l);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!l)for(;a.length&&(c=a[a.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,l)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,l=i.length,a="",c=!0,u,h;for(let f=0;f<l;f+=1)o=i[f],s=o[0],s==="space"&&f===l-1&&!r?c=!1:s==="comment"?(h=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Yr[h]&&!Yr[u]?a.slice(-1)===","?c=!1:a+=o[1]:c=!1):a+=o[1];if(!c){let f=i.reduce((x,F)=>x+F[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Qr;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Zr.exports=Gn});var nn=te((ad,eo)=>{"use strict";var Ra=Ve(),La=vt(),Da=Xr();function tn(t,e){let n=new La(t,e),i=new Da(n);try{i.parse()}catch(r){throw r}return i.root}eo.exports=tn;tn.default=tn;Ra.registerParse(tn)});var $n=te((ld,to)=>{"use strict";var Dt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};to.exports=Dt;Dt.default=Dt});var rn=te((ud,no)=>{"use strict";var Ba=$n(),Bt=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new Ba(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};no.exports=Bt;Bt.default=Bt});var Kn=te((cd,ro)=>{"use strict";var io={};ro.exports=function(e){io[e]||(io[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Yn=te((fd,lo)=>{"use strict";var Ia=Ve(),Oa=Gt(),Pa=jn(),Ha=nn(),oo=rn(),Wa=rt(),qa=Et(),{isClean:De,my:Ua}=zt(),dd=Kn(),Va={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},za={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},ja={Once:!0,postcssPlugin:!0,prepare:!0},st=0;function It(t){return typeof t=="object"&&typeof t.then=="function"}function ao(t){let e=!1,n=Va[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,st,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,st,n+"Exit"]:[n,n+"Exit"]}function so(t){let e;return t.type==="document"?e=["Document",st,"DocumentExit"]:t.type==="root"?e=["Root",st,"RootExit"]:e=ao(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Jn(t){return t[De]=!1,t.nodes&&t.nodes.forEach(e=>Jn(e)),t}var Qn={},je=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Jn(n);else if(n instanceof t||n instanceof oo)r=Jn(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=Ha;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[Ua]&&Ia.rebuild(r)}this.result=new oo(e,r,i),this.helpers={...Qn,postcss:Qn,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!za[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ja[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(It(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[De];){e[De]=!0;let n=[so(e)];for(;n.length>0;){let i=this.visitTick(n);if(It(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return It(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=qa;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,l=>{s+=l}),this.result.css=s,this.result}let o=new Pa(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(It(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[De];)e[De]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(It(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,l]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return l(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,l;for(;l=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!l[De]){l[De]=!0,e.push(so(l));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===st){i.nodes&&i.nodes.length&&(i[De]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[De]=!0;let n=ao(e);for(let i of n)if(i===st)e.nodes&&e.each(r=>{r[De]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};je.registerPostcss=t=>{Qn=t};lo.exports=je;je.default=je;Wa.registerLazyResult(je);Oa.registerLazyResult(je)});var co=te((pd,uo)=>{"use strict";var Ga=jn(),$a=nn(),Ka=rn(),Ja=Et(),md=Kn(),Ot=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=$a;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=Ja;this.result=new Ka(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new Ga(r,void 0,this._opts,n);if(s.isMap()){let[l,a]=s.generate();l&&(this.result.css=l),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};uo.exports=Ot;Ot.default=Ot});var mo=te((hd,fo)=>{"use strict";var Qa=Gt(),Ya=Yn(),Za=co(),Xa=rt(),Ze=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Za(this,e,n):new Ya(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};fo.exports=Ze;Ze.default=Ze;Xa.registerProcessor(Ze);Qa.registerProcessor(Ze)});var Ao=te((xd,bo)=>{"use strict";var po=jt(),ho=Mt(),el=Ve(),tl=Vt(),xo=kt(),go=Gt(),nl=Wr(),il=vt(),rl=Yn(),ol=Vn(),sl=Nt(),al=nn(),Zn=mo(),ll=rn(),yo=rt(),So=Qt(),ul=Et(),cl=$n();function re(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Zn(t)}re.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...s);return l.postcssPlugin=e,l.postcssVersion=new Zn().version,l}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,l,a){return re([r(a)]).process(s,l)},r};re.stringify=ul;re.parse=al;re.fromJSON=nl;re.list=ol;re.comment=t=>new ho(t);re.atRule=t=>new po(t);re.decl=t=>new xo(t);re.rule=t=>new So(t);re.root=t=>new yo(t);re.document=t=>new go(t);re.CssSyntaxError=tl;re.Declaration=xo;re.Container=el;re.Processor=Zn;re.Document=go;re.Comment=ho;re.Warning=cl;re.AtRule=po;re.Result=ll;re.Input=il;re.Rule=So;re.Root=yo;re.Node=sl;rl.registerPostcss(re);bo.exports=re;re.default=re});function Ei(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=Ei(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}function Fi(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){t.onPlay();return}if(r==="pause"){t.onPause();return}if(r==="seek"){t.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="tick"){t.onTick();return}if(r==="set-muted"){t.onSetMuted(!!i.muted);return}if(r==="set-volume"){t.onSetVolume(Math.max(0,Math.min(1,Number(i.volume??1))));return}if(r==="set-media-output-muted"){t.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){t.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){t.onEnablePickMode();return}if(r==="disable-pick-mode"){t.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,s=i.duration||800;o&&Fs(o,s)}};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Fs(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var An=null;function wi(t){An=t}function ft(t,e){if(An)try{An({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function Ni(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=(l,a)=>{for(let c of l){try{c.currentTime=a}catch(u){v("runtime.adapters.css.site1",u)}try{c.pause()}catch(u){v("runtime.adapters.css.site2",u)}}},r=l=>{for(let a of l)try{a.play()}catch(c){v("runtime.adapters.css.site3",c)}},o=l=>{for(let a of l)try{a.pause()}catch(c){v("runtime.adapters.css.site4",c)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let a of l){if(!(a instanceof HTMLElement))continue;let c=window.getComputedStyle(a);!c.animationName||c.animationName==="none"||e.push({el:a,baseDelay:a.style.animationDelay||"",basePlayState:a.style.animationPlayState||""})}},seek:l=>{let a=Number(l.time)||0;for(let c of e){if(!c.el.isConnected)continue;let u=t?.resolveStartSeconds?t.resolveStartSeconds(c.el):Number.parseFloat(c.el.getAttribute("data-start")??"0")||0,h=Math.max(0,a-u)*1e3,f=n(c.el);if(f.length>0){i(f,h);continue}c.el.style.animationPlayState="paused",c.el.style.animationDelay=`-${(h/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let a=n(l.el);a.length>0&&o(a),s(l)}},play:()=>{for(let l of e)l.el.isConnected&&(s(l),r(n(l.el)))},revert:()=>{e=[]}}}function Ci(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function Mi(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function _i(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(Ti(i))i.goToAndStop(e*1e3,!1);else if(ki(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(Ti(e)||ki(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{}}}function Ti(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function ki(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var En=-1;function Ut(t){if(t!==En){En=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function vi(t){En=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function Ri(){let t=null,e=0;return{name:"three",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfThreeTime=t,Ut(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Li(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,Ut(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Di(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function Bi(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Di(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Ii(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...l){let a=l.length-1,c=l[a];if(c instanceof HTMLVideoElement){let u=Di(c);u&&(l[a]=u)}return o.apply(this,l)};s.__hfVideoPatched=!0,i[r]=s}}}function Oi(){let t=!1,e=0,n=new WeakMap,i=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},r=l=>{let a=Number(l.currentTime);return Number.isFinite(a)&&a>0?a:0},o=(l,a)=>a<=0?l:l>=a?Math.max(0,l-a):l,s=(l,a)=>{let c=n.get(l);if(c)return c;let u={compositionTimeMs:a,animationTimeMs:t?o(r(l),a):r(l)};return n.set(l,u),u};return{name:"waapi",discover:()=>{t=!0;for(let l of i())s(l,e)},seek:l=>{let a=Math.max(0,(Number(l.time)||0)*1e3);e=a;for(let c of i()){let u=t?s(c,a):s(c,0),h=u.animationTimeMs+Math.max(0,a-u.compositionTimeMs);try{c.currentTime=h}catch(f){v("runtime.adapters.waapi.site1",f)}try{c.pause()}catch(f){v("runtime.adapters.waapi.site2",f)}}},pause:()=>{if(document.getAnimations)for(let l of document.getAnimations())try{l.pause()}catch(a){v("runtime.adapters.waapi.site3",a)}}}}function Pi(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function ws(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),l=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),c=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=c;let u=1/Math.min(60,Math.max(1,i)),h=Math.max(0,r),f=Math.min(n,l),x=[];for(let E=h;E<=f+1e-6;E+=u){let S=Math.min(f,E);e(S);let D=Number(t.volume);if(!Number.isFinite(D))continue;let L=Math.max(0,Math.min(1,D)),R=x.at(-1);if((!R||Math.abs(R.volume-L)>1e-4||S===f)&&x.push({time:Number(S.toFixed(6)),volume:Number(L.toFixed(6))}),S===f)break}return x.some(E=>Math.abs(E.volume-c)>1e-4)?x:null}function Hi(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=ws(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function ht(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function Wi(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let l=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(l))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,c=ht(s),u=s.loop,h=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&h!=null&&(f=Math.max(0,(h-a)/c));let x=Number.isFinite(f)&&f>0?l+f:Number.POSITIVE_INFINITY,F=Number.parseFloat(s.dataset.volume??""),E={el:s,start:l,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:x,volume:Number.isFinite(F)?F:null,playbackRate:c,loop:u,sourceDuration:h};i.push(E),s.tagName==="VIDEO"&&r.push(E),Number.isFinite(x)&&(o=Math.max(o,x))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Fn=new WeakMap,mt=new WeakMap,wn=new WeakSet,et=new WeakSet;function Ns(t){if(et.has(t))return;et.add(t);let e=()=>et.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Nn=new WeakMap;function pt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function qi(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let w=n.sourceDuration-n.mediaStart;w>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%w)}let s=pt(t.userVolume??1),l=pt(n.volume??1),a=Nn.get(i),c=pt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=pt(Pi(n.volumeKeyframes,r)):a===void 0||Math.abs(c-a)>1e-4?u=c:u=l;let h=pt(u*s);i.volume=h,Nn.set(i,h),t.onElementVolume?.(i,h),e&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(w){v("runtime.media.site1",w)}let f=.04,x=2,F=i.currentTime||0,E=Math.abs(F-r),S=r-F,D=Fn.get(i);Fn.set(i,S);let L=D===void 0,R=!L&&Math.abs(S-D)>.5,ne=E>3,q=E>.5&&(L||R||ne),C=i.tagName==="VIDEO"&&!i.paused,g=D!==void 0&&Math.abs(S-D)<.004,b=!1;if(!C&&!q&&!L&&g&&E>f){let w=(mt.get(i)??0)+1;mt.set(i,w),w>=x&&(b=!0,mt.set(i,0))}else E<=f&&mt.set(i,0);let N=!C&&t.forceSync&&E>.02;if(q||b||N){try{i.currentTime=r}catch(w){v("runtime.media.site2",w)}if(Math.abs(i.currentTime-r)>.5&&!wn.has(i)){wn.add(i),i.load();try{i.currentTime=r}catch(w){v("runtime.media.site3",w)}}et.delete(i)}t.playing&&i.paused&&!et.has(i)?(Ns(i),i.play().catch(w=>{et.delete(i),(w&&typeof w=="object"&&"name"in w?String(w.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Fn.delete(i),mt.delete(i),wn.delete(i),Nn.delete(i),i.paused||i.pause()}}var Cs=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),Ms=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function Ui(t){let e=!1,n=null,i=null,r=null,o=null;function s(g,b){try{window.dispatchEvent(new CustomEvent(g,{detail:b}))}catch(N){v("runtime.picker.site1",N)}}function l(g){r=g,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(g){o=g,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function c(g){let b=g.ownerDocument.defaultView;if(!b)return!1;let N=g;for(;N&&N!==document.body&&N!==document.documentElement;){let w=b.getComputedStyle(N);if(w.display==="none"||w.visibility==="hidden"||w.pointerEvents==="none")return!0;let _=Number.parseFloat(w.opacity);if(Number.isFinite(_)&&_<=.01)return!0;N=N.parentElement}return!1}function u(g){if(!g||g===document.body||g===document.documentElement)return!1;let b=g.tagName.toLowerCase();return!(b==="script"||b==="style"||b==="link"||b==="meta"||g.classList.contains("__hf-pick-highlight")||g.closest(Cs)||c(g))}function h(g){return!!g?.closest(Ms)}function f(g){let b=g;if(b.id)return`#${b.id}`;let N=g.getAttribute("data-composition-id");if(N)return`[data-composition-id="${N}"]`;let w=g.getAttribute("data-composition-src");if(w)return`[data-composition-src="${w}"]`;let _=g.getAttribute("data-track-index");if(_)return`[data-track-index="${_}"]`;let H=g.tagName.toLowerCase(),J=g.parentElement;if(!J)return H;let W=J.querySelectorAll(`:scope > ${H}`);if(W.length===1)return H;for(let T=0;T<W.length;T+=1)if(W[T]===g)return`${H}:nth-of-type(${T+1})`;return H}function x(g){let b=g.tagName.toLowerCase(),N=(g.textContent??"").trim().replace(/\\s+/g," "),w=(_,H)=>_.length>H?`${_.slice(0,H-1)}\\u2026`:_;return b==="h1"||b==="h2"||b==="h3"?"Heading":b==="p"||b==="span"||b==="div"?N.length>0?w(N,56):"Text":b==="img"?"Image":b==="video"?"Video":b==="audio"?"Audio":b==="svg"?"Shape":g.getAttribute("data-composition-src")?"Composition":b==="section"?"Section":`${b.charAt(0).toUpperCase()}${b.slice(1)}`}function F(g,b,N){let w=typeof N=="number"&&N>0?N:8,_=[];if(document.elementsFromPoint)_=document.elementsFromPoint(g,b);else if(document.elementFromPoint){let W=document.elementFromPoint(g,b);_=W?[W]:[]}if(h(_[0]??null))return[];let H={},J=[];for(let W=0;W<_.length;W+=1){let T=_[W];if(!u(T))continue;let de=`${T.tagName}::${T.id||""}::${W}`;if(!H[de]&&(H[de]=!0,J.push(T),J.length>=w))break}return J}function E(g){let b=g.getBoundingClientRect(),N={};for(let _=0;_<g.attributes.length;_+=1){let H=g.attributes[_];H.name.startsWith("data-")&&(N[H.name]=H.value)}return{id:g.id||null,tagName:g.tagName.toLowerCase(),selector:f(g),label:x(g),boundingBox:{x:b.left,y:b.top,width:b.width,height:b.height},textContent:g.textContent?g.textContent.trim().slice(0,200):null,src:g.getAttribute("src")||g.getAttribute("data-composition-src")||null,dataAttributes:N}}function S(g,b,N){return F(g,b,N).map(E)}function D(g){if(!e)return;let N=F(g.clientX,g.clientY,1)[0]??(g.target instanceof Element?g.target:null);if(!u(N)||n===N)return;n&&n.classList.remove("__hf-pick-highlight"),n=N,N.classList.add("__hf-pick-highlight");let w=E(N);l(w),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:w})}function L(g){if(!e)return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation();let b=S(g.clientX,g.clientY,8);b.length!==0&&(l(b[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:b,selectedIndex:0,point:{x:g.clientX,y:g.clientY}}))}function R(g){g.key==="Escape"&&(q(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function ne(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",D,!0),document.addEventListener("click",L,!0),document.addEventListener("keydown",R,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function q(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",D,!0),document.removeEventListener("click",L,!0),document.removeEventListener("keydown",R,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function C(){window.__HF_PICKER_API={enable:ne,disable:q,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(g,b,N)=>Number.isFinite(g)&&Number.isFinite(b)?S(g,b,N):[],pickAtPoint:(g,b,N)=>{if(!Number.isFinite(g)||!Number.isFinite(b))return null;let w=S(g,b,8);if(!w.length)return null;let _=Math.max(0,Math.min(w.length-1,Number(N??0))),H=w[_]??null;return H?(a(H),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:H}),q(),H):null},pickManyAtPoint:(g,b,N)=>{if(!Number.isFinite(g)||!Number.isFinite(b))return[];let w=S(g,b,8);if(!w.length)return[];let _=[],H=Array.isArray(N)?N:[0];for(let J of H){let W=Math.max(0,Math.min(w.length-1,Math.floor(Number(J)))),T=w[W];if(!T)continue;_.some(be=>be.selector===T.selector&&be.tagName===T.tagName)||_.push(T)}return _.length?(a(_[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:_}),q(),_):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:ne,disablePickMode:q,installPickerApi:C}}function tt(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function xt(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ve(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function gt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function Vi(t,e,n){let i=tt(e,n);return ve(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function Ts(t,e,n,i){let r=[];gt(t,e,o=>{ve(o,"play"),r.push(o)});try{return Vi(e,n,i)}finally{for(let o of r)try{ve(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function ks(t,e){gt(t,e,n=>{ve(n,"play")})}function zi(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??xt(e,"duration",0))||0);n>0&&Math.max(0,xt(e,"time",0))>=n&&(ve(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ve(e,"play"),gt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ve(e,"pause"),gt(t.getTimelineRegistry?.(),e,i=>{ve(i,"pause")});let n=Math.max(0,xt(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=Ts(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play"),gt(t.getTimelineRegistry?.(),i,l=>{typeof l.timeScale=="function"&&l.timeScale(t.getPlaybackRate()),ve(l,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(ks(t.getTimelineRegistry?.(),n),Vi(n,e,i)):tt(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>xt(t.getTimeline(),"time",0),getDuration:()=>xt(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function ji(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var _s="data-hf-authored-duration",vs="data-hf-authored-end";function Je(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function Rs(t){return Je(t.getAttribute("data-duration"))}function Ls(t){return Je(t.getAttribute("data-end"))}function Ds(t){return Je(t.getAttribute(_s))}function Bs(t){return Je(t.getAttribute(vs))}function Is(t){let e=(t??"").trim();if(!e)return null;let n=Je(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",l=Number.parseFloat(s),a=Number.isFinite(l)?Math.max(0,l):0,c=o==="-"?-a:a;return{kind:"reference",refId:r,offset:c}}function Qe(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let h=document.getElementById(u);return h||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},l=u=>{let h=r.get(u);if(h!==void 0)return h;let f=null,x=Rs(u)??(n?Ds(u):null);if(x!=null&&x>0&&(f=x),f==null||f<=0){let F=Ls(u)??(n?Bs(u):null);if(F!=null){let E=c(u,0),S=F-E;Number.isFinite(S)&&S>0&&(f=S)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let F=Je(u.getAttribute("data-playback-start"))??Je(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>F&&(f=(u.duration-F)/ht(u))}if(f==null||f<=0){let F=u.getAttribute("data-composition-id");if(F){let E=e[F]??null;if(E&&typeof E.duration=="function")try{let S=Number(E.duration());Number.isFinite(S)&&S>0&&(f=S)}catch(S){v("runtime.startResolver.site1",S)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,h)=>{if(u.hasAttribute("data-composition-id")){let x=u.parentElement?.closest("[data-composition-id]");return x?c(x,h):0}let f=u.closest("[data-composition-id]");return f?c(f,h):0},c=(u,h)=>{let f=i.get(u);if(f!==void 0)return f??h;if(o.has(u))return h;o.add(u);try{let x=Is(u.getAttribute("data-start"));if(!x){if(u.hasAttribute("data-composition-id")){let L=u.parentElement;if(L&&(L.hasAttribute("data-composition-src")||L.hasAttribute("data-composition-id"))){let R=c(L,h);return i.set(u,R),R}}return i.set(u,h),h}if(x.kind==="absolute"){let L=Math.max(0,x.value),R=Math.max(0,a(u,h)+L);return i.set(u,R),R}let F=s(x.refId);if(!F)return i.set(u,h),h;let E=c(F,0),S=l(F);if(S==null||S<=0){let L=Math.max(0,E+x.offset);return i.set(u,L),L}let D=Math.max(0,E+S+x.offset);return i.set(u,D),D}finally{o.delete(u)}};return{resolveStartForElement:(u,h=0)=>c(u,Math.max(0,h)),resolveDurationForElement:u=>l(u)}}var Os="data-hf-authored-duration",Ps="data-hf-authored-end";function Fe(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function Cn(t){return Fe(t.getAttribute("data-duration"))??Fe(t.getAttribute(Os))}function Gi(t){return Fe(t.getAttribute("data-end"))??Fe(t.getAttribute(Ps))}function Mn(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var $i={composition:0,video:1,image:2,element:3,audio:4};function Hs(t){if(t.length===0)return;let e=new Map;for(let s of t){let l=e.get(s.track)??new Set;l.add(s.kind),e.set(s.track,l)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,l)=>s-l);for(let s of o){let l=e.get(s);if(l.size===1)r.set(`${s}:${[...l][0]}`,i++);else{let a=[...l].sort((c,u)=>($i[c]??99)-($i[u]??99));for(let c of a)r.set(`${s}:${c}`,i++)}}for(let s of t){let l=`${s.track}:${s.kind}`,a=r.get(l);a!=null&&(s.track=a)}}function St(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Ki(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return St(e);let n=t.getAttribute("data-composition-src");if(n)return St(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?St(i.getAttribute("src")):null}function Ws(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function qs(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function Us(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function yt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function Vs(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return yt(r);let o=t.id;if(o)return yt(o);let s=Ws(t);if(s)return yt(s);let l=qs(Ki(t));if(l)return yt(l);let a=Us(t);return a||`${yt(e)} ${n+1}`}function Ji(t){let n=window.__timelines??{},i=Qe({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let k=n[O]??null;if(!k||typeof k.duration!="function")return null;try{let P=Number(k.duration());return Number.isFinite(P)&&P>0?P:null}catch{return null}},o=O=>{let k=Fe(O.getAttribute("data-duration"));if(k!=null&&k>0)return k;let P=Fe(O.getAttribute("data-playback-start"))??Fe(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>P?Math.max(0,(O.duration-P)/ht(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let k=0;for(let P of O){let ie=P.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(P,0):Math.max(0,Number(P.getAttribute("data-start")??0)||0);if(!Number.isFinite(ie))continue;let ae=o(P);ae==null||ae<=0||(k=Math.max(k,Math.max(0,ie)+ae))}return k>0?k:null},l=O=>{let k=O.trim().toLowerCase();return!(!k||k==="main"||k.includes("caption")||k.includes("ambient"))},a=(O,k)=>{let P=[],ie=null,ae=null,z=null,V=O.parentElement;for(;V;){let $=V.getAttribute("data-composition-id");$&&(P.push($),!z&&V!==k&&(z=$),ie==null&&(ie=i.resolveStartForElement(V,0)),ae==null&&(ae=Fe(V.getAttribute("data-duration"))??r($)??null)),V=V.parentElement}return{parentCompositionId:z,compositionAncestors:P.reverse(),inheritedStart:ie,inheritedDuration:ae}},c=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),h=c?.getAttribute("data-composition-id")??null,f=c?i.resolveStartForElement(c,0):0,x=s(),F=x!=null?Math.max(0,x-Math.max(0,f)):null,E=r(h),S=Cn(c??document.body),D=Mn(...u.filter(O=>O!==c).map(O=>{let k=i.resolveStartForElement(O,0),P=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(k)||P==null||P<=0?null:Math.max(0,k)+P})),L=D!=null?Math.max(0,D-Math.max(0,f)):null,R=typeof E=="number"&&Number.isFinite(E)&&E>0?E:null,ne=typeof S=="number"&&Number.isFinite(S)&&S>0?S:null,q=typeof F=="number"&&Number.isFinite(F)&&F>0?F:null,C=typeof L=="number"&&Number.isFinite(L)&&L>0?L:null,g=Mn(q,C),b=R!=null&&g!=null&&R>g+1,w=ne??(b?g:Mn(R,q,C))??null,H=(w!=null?f+w:null)??(typeof x=="number"&&Number.isFinite(x)&&x>0?x:null),J=(O,k)=>!Number.isFinite(k)||k<=0?0:H==null||!Number.isFinite(H)?k:!Number.isFinite(O)||O>=H?0:Math.max(0,Math.min(k,H-O)),W=[],T=[],de=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),be=0;for(let O=0;O<de.length;O+=1){let k=de[O];if(k===c||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(k.tagName))continue;let P=a(k,c),ie=i.resolveStartForElement(k,P.inheritedStart??0),ae=k.getAttribute("data-composition-id"),z=Cn(k);if((z==null||z<=0)&&ae&&ae!==h&&(z=r(ae)),(z==null||z<=0)&&k instanceof HTMLMediaElement){let ye=Fe(k.getAttribute("data-playback-start"))??Fe(k.getAttribute("data-media-start"))??0;Number.isFinite(k.duration)&&k.duration>0&&(z=Math.max(0,k.duration-ye))}if(z==null||z<=0){let ye=P.inheritedDuration;if(ye!=null&&ye>0){let Be=(P.inheritedStart??0)+ye;z=Math.max(0,Be-ie)}}if(z==null||z<=0||(z=J(ie,z),z<=0))continue;let V=ie+z;be=Math.max(be,V);let $=k.tagName.toLowerCase(),Ne=ae&&ae!==h?"composition":$==="video"?"video":$==="audio"?"audio":$==="img"?"image":"element";W.push({id:k.id||ae||null,label:Vs(k,Ne,W.length),start:ie,duration:z,track:Number.parseInt(k.getAttribute("data-track-index")??k.getAttribute("data-track")??String(O),10)||0,kind:Ne,tagName:$,compositionId:k.getAttribute("data-composition-id"),compositionAncestors:P.compositionAncestors,parentCompositionId:P.parentCompositionId,nodePath:null,compositionSrc:St(k.getAttribute("data-composition-src")),assetUrl:Ki(k),timelineRole:k.getAttribute("data-timeline-role"),timelineLabel:k.getAttribute("data-timeline-label"),timelineGroup:k.getAttribute("data-timeline-group"),timelinePriority:Fe(k.getAttribute("data-timeline-priority"))})}let G=new Set(W.map(O=>O.id)),Q=c?.getAttribute("data-composition-id")??null,U=Q?n[Q]??null:null;if(U&&c){let O=U;if(typeof O.getChildren=="function")try{let k=O.getChildren(!0,!0,!1)??[],P=new Map;for(let z of c.children){let V=z;if(!V.id)continue;let $=V.tagName.toLowerCase();$==="script"||$==="style"||$==="link"||P.set(V,{id:V.id,start:1/0,end:-1/0})}let ie=z=>{let V=z;for(;V;){if(P.has(V))return V;if(V===c)return null;V=V.parentElement}return null};for(let z of k){if(typeof z.targets!="function"||typeof z.startTime!="function"||typeof z.duration!="function")continue;let V=z.startTime(),$=z.parent;for(;$&&$!==U&&typeof $.startTime=="function";)V+=$.startTime(),$=$.parent;let Ne=V+z.duration();if(!(!Number.isFinite(V)||!Number.isFinite(Ne)))for(let ye of z.targets()){if(!(ye instanceof Element))continue;let He=ie(ye);if(!He)continue;let Be=P.get(He);Be&&(Be.start=Math.min(Be.start,V),Be.end=Math.max(Be.end,Ne))}}let ae=W.length>0?Math.max(...W.map(z=>z.track))+1:0;for(let[z,V]of P){if(V.start===1/0||V.end===-1/0)continue;let $=z;if(G.has($.id))continue;let Ne=Math.max(0,V.end-V.start);if(Ne<=0)continue;let ye=J(V.start,Ne);ye<=0||(be=Math.max(be,V.start+ye),W.push({id:$.id,label:$.getAttribute("data-timeline-label")??$.getAttribute("data-label")??$.getAttribute("aria-label")??$.id,start:V.start,duration:ye,track:Number.parseInt($.getAttribute("data-track-index")??$.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:$.tagName.toLowerCase(),compositionId:$.getAttribute("data-composition-id"),compositionAncestors:Q?[Q]:[],parentCompositionId:Q,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:$.getAttribute("data-timeline-role"),timelineLabel:$.getAttribute("data-timeline-label"),timelineGroup:$.getAttribute("data-timeline-group"),timelinePriority:Fe($.getAttribute("data-timeline-priority"))}),G.add($.id))}}catch(k){v("runtime.timeline.site1",k)}}if(c&&w!=null&&w>0){let O=W.length>0?Math.max(...W.map(k=>k.track))+1:0;for(let k of c.children){let P=k;if(!P.id||G.has(P.id))continue;let ie=P.getAttribute("data-timeline-role");if(ie!=="overlay"&&ie!=="persistent-overlay")continue;let ae=P.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(P).display==="none")continue;let V=J(0,w);V<=0||(be=Math.max(be,V),W.push({id:P.id,label:P.getAttribute("data-timeline-label")??P.getAttribute("data-label")??P.getAttribute("aria-label")??P.id,start:0,duration:V,track:Number.parseInt(P.getAttribute("data-track-index")??P.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:Q?[Q]:[],parentCompositionId:Q,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:ie,timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:Fe(P.getAttribute("data-timeline-priority"))}),G.add(P.id))}}Hs(W);for(let O of u){if(O===c)continue;let k=O.getAttribute("data-composition-id");if(!k||!l(k))continue;let P=i.resolveStartForElement(O,0),ie=Cn(O);if((ie==null||ie<=0)&&Gi(O)!=null){let $=Gi(O);ie=Math.max(0,$-P)}let ae=r(k),z=ie&&ie>0?ie:ae;if(z==null||z<=0)continue;let V=J(P,z);V<=0||T.push({id:k,label:O.getAttribute("data-label")??k,start:P,duration:V,thumbnailUrl:St(O.getAttribute("data-thumbnail-url")),avatarName:null})}let Y=Math.max(1,be||1,w??0);return{source:"hf-preview",type:"timeline",durationInFrames:b&&ne==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(Y*Math.max(1,t.canonicalFps))),clips:W,scenes:T,compositionWidth:Fe(c?.getAttribute("data-width"))??1920,compositionHeight:Fe(c?.getAttribute("data-height"))??1080}}var ue=Es(Ao(),1),Eo=ue.default,gd=ue.default.stringify,yd=ue.default.fromJSON,Sd=ue.default.plugin,bd=ue.default.parse,Ad=ue.default.list,Ed=ue.default.document,Fd=ue.default.comment,wd=ue.default.atRule,Nd=ue.default.rule,Cd=ue.default.decl,Md=ue.default.root,Td=ue.default.CssSyntaxError,kd=ue.default.Declaration,_d=ue.default.Container,vd=ue.default.Processor,Rd=ue.default.Document,Ld=ue.default.Comment,Dd=ue.default.Warning,Bd=ue.default.AtRule,Id=ue.default.Result,Od=ue.default.Input,Pd=ue.default.Rule,Hd=ue.default.Root,Wd=ue.default.Node;var Xn="data-hf-authored-id";function ei(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function ti(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function dl(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Fo(t){let e=t.trim();return e?Array.from(new Set([e,dl(e)])).filter(Boolean):[]}function fl(t){return!!t&&/[\\w-]/.test(t)}function ml(t,e,n){let i=Fo(e).sort((l,a)=>a.length-l.length);if(i.length===0)return t;let r="",o=0,s=null;for(let l=0;l<t.length;l+=1){let a=t[l],c=l>0?t[l-1]:"";if(s){r+=a,a===s&&c!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(h=>t.startsWith(h,l+1));if(u){let h=t[l+1+u.length];if(!fl(h)){r+=n,l+=u.length;continue}}}r+=a}return r}function pl(t,e){let n=e?.trim();return n?ml(t,n,`[${Xn}="${ti(n)}"]`):t}function hl(t,e,n,i,r){let o=pl(t,i),s=xl(o,e,n),l=s.trim();if(!l||/^(html|body|:root|\\*)$/i.test(l))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${ei(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(l))return s.replace(a,e);let c=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let h=i?`[${Xn}="${ti(i)}"]`:null;if(h&&l.startsWith(h)){let f=l.slice(h.length);return`${c}${e}${h}${f}${u}`}}return`${c}${e} ${l}${u}`}function xl(t,e,n){let i=ei(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var gl=new Set(["keyframes","-webkit-keyframes","font-face"]);function yl(t){return t?.type==="atrule"}function Sl(t){let e=t.parent;for(;e;){if(yl(e)&&gl.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function ni(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${ti(o)}"]`,l=Eo.parse(t);return l.walkRules(a=>{Sl(a)||(a.selectors=a.selectors.map(c=>hl(c,s,o,i,r?.compoundAuthoredRoot)))}),l.toResult({map:!1}).css}function wo(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),l=JSON.stringify(r),a=JSON.stringify(n),c=ei(e),u=JSON.stringify(o?.trim()||null),h=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${c}"|\'${c}\')\\s*\\]`),x=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),F=JSON.stringify(Fo(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(Xn)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${h} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${x};\n var __hfAuthoredRootIdForms = ${F};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function No(){if(typeof document>"u")return{};let t=ii(document.documentElement),e=bl();return{...t,...e}}function ii(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function bl(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var Al=8e3,El=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/;function Fl(t,e){return`${t}__hf${e}`}var wl=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),Al)});function ri(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var Nl=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function Cl(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of Nl)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function Co(t,e){let n=t.trim();if(!n)return t;try{return El.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function Ml(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function on(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function Tl(t){let e=new Map;for(let n of t){let i=on(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function Mo(t){let e=on(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function kl(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function _l(t){return t.hasAttribute("data-composition-src")?!0:Mo(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:kl(t):!1}function si(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:Mo(e))}function To(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(si().map(n=>on(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function ko(t,e=Tl(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=on(r),l=_l(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,c=s||o;if(l){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),c=a?Fl(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",c),s&&s!==c&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:c})}return i}async function oi(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(x=>x.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let x=f.getAttribute("href")||"";x&&(document.head.querySelector(`link[href="${CSS.escape(x)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=ni(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let l=Array.from(n.querySelectorAll("style"));for(let f of l){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=ni(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let a=[];if(t.headScripts)for(let f of t.headScripts){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=Co(F,t.compositionUrl);a.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&a.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}}let c=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of c){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=Co(F,t.compositionUrl);u.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&u.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let h=Array.from(n.querySelectorAll("style"));for(let f of h)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),x=e.getAttribute("data-height"),F=t.parseDimensionPx(f),E=t.parseDimensionPx(x);f&&t.host.setAttribute("data-width",f),x&&t.host.setAttribute("data-height",x),F&&t.host instanceof HTMLElement&&(t.host.style.width=F),E&&t.host instanceof HTMLElement&&(t.host.style.height=E),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(Cl(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...Ml(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let x=document.createElement("script");if(f.type&&(x.type=f.type),x.async=!1,f.kind==="external"?x.src=f.src:f.type.toLowerCase()==="module"?x.textContent=f.content:f.scopeCompositionId?x.textContent=wo(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):x.textContent=`(function(){${f.content}})();`,document.body.appendChild(x),t.injectedScripts.push(x),f.kind==="external"){let F=await wl(x);F.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:F.status,elapsedMs:F.elapsedMs}})}}}async function _o(t){let e=si();if(To(),e.length===0)return;let n=ko(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let l=document.querySelector(`template#${CSS.escape(s)}-template`);ri(r),await oi({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function vo(t){let e=si();if(To(),e.length===0)return;let n=ko(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),l=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||l||null,c=null;try{c=new URL(o,document.baseURI)}catch{c=null}ri(r);try{let u=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(u){await oi({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let h=await fetch(o);if(!h.ok)throw new Error(`HTTP ${h.status}`);let f=await h.text(),F=new DOMParser().parseFromString(f,"text/html"),E=(l?F.querySelector(`template#${CSS.escape(l)}-template`):null)??F.querySelector("template"),S=E?E.content:F.body,D=E?void 0:Array.from(F.head.querySelectorAll("style")),L=E?void 0:Array.from(F.head.querySelectorAll("script")),R=E?void 0:Array.from(F.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await oi({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:S,hasTemplate:!!E,fallbackBodyInnerHtml:F.body.innerHTML,compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:D,headScripts:L,headLinks:R,declaredVariableDefaults:ii(F.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),ri(r)}}))}function vl(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function Rl(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function Ll(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function ai(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=Rl();for(let i of e){let r=null;if(i.wordId&&(r=vl(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,h)=>u.startTime()-h.startTime()),c=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===c?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let l=Ll(r);t.set(l,o)}}}).catch(()=>{})}var sn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Ro(t){return!Number.isFinite(t)||t<=0?1:t}function Dl(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,l=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return l&&u<=0?!1:(l?t.start(0,n+i,u):t.start(0,n+i),!0)}let c=-n/o;return l?t.start(r+c,i,a):t.start(r+c,i),!0}var an=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;try{let i=await fetch(n);if(!i.ok)return this._failedSrcs.add(n),v("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;let r=await i.arrayBuffer(),o=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,o),o}catch(i){return this._failedSrcs.add(n),v("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,l,a=1,c=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let u=Ro(a),h=this._ctx.createBufferSource();h.buffer=n,h.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,h.connect(f),f.connect(this._masterGain);let x=o-i,F=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=F,this._rateAnchorComp=o,!Dl(h,{elapsed:x,mediaStart:r,scheduledAt:F,safeRate:u,clipDuration:c}))return h.disconnect(),f.disconnect(),null;let E=e.muted;e.muted=!0;let S={el:e,sourceNode:h,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:F,priorMuted:E,bounded:Number.isFinite(c)&&c>0};return this._activeSources.push(S),this._paused=!1,h.addEventListener("ended",()=>{let D=this._activeSources.indexOf(S);D!==-1&&(this._activeSources.splice(D,1),e.muted=E,this._activeSources.length===0&&(this._paused=!0))}),S}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Ro(e);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Lo="data-hf-studio-manual-edit-gesture";var Do="data-hf-authored-duration",Bo="data-hf-authored-end";function Io(){let t=ji(),e=null,n=null,i=[],r=new Set,o=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let s=d=>{i.push(d)},l=(d,p,m)=>{let y=m??`${d}:${JSON.stringify(p)}`;r.has(y)||(r.add(y),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},a=d=>{let p={scale:1,focusX:960,focusY:540},m=[],y=[],A={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>m,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>y,getRenderState:()=>({...A,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},c=1/60,u=.75,h=2,f=.05,x=100,F=240,E=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},S=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},D=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},L=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.length===0?null:p.find(m=>!m.parentElement?.closest("[data-composition-id]"))??p[0]??null},R=()=>{let d=L();if(!d)return;let p=D(d.getAttribute("data-width")),m=D(d.getAttribute("data-height"));p&&(d.style.width=p),m&&(d.style.height=m),p&&d.style.setProperty("--comp-width",p),m&&d.style.setProperty("--comp-height",m)},ne=()=>{let d=L(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(m=>m.hasAttribute("data-duration")||m.hasAttribute("data-end"));for(let m of p){if(d&&m===d)continue;let y=m.getAttribute("data-duration"),A=m.getAttribute("data-end");y!=null&&!m.hasAttribute(Do)&&m.setAttribute(Do,y),A!=null&&!m.hasAttribute(Bo)&&m.setAttribute(Bo,A),m.removeAttribute("data-duration"),m.removeAttribute("data-end")}},q=()=>{let d=L();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=D(d.getAttribute("data-width")),m=D(d.getAttribute("data-height"));p&&(d.style.width=p),m&&(d.style.height=m);let y=Array.from(d.children);for(let A of y){let M=A.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!A.hasAttribute("data-start"))continue;let B=(A.style.top==="0px"||A.style.top==="0")&&(A.style.left==="0px"||A.style.left==="0")&&A.style.width==="100%"&&A.style.height==="100%",j=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(A.style.transform);if(B&&j&&!A.hasAttribute("data-width")&&!A.hasAttribute("data-height")){let qe=A.style.top,he=A.style.left,dt=A.style.width,se=A.style.height;A.style.top="",A.style.left="",A.style.width="",A.style.height="";let X=window.getComputedStyle(A);X.top!=="auto"||X.bottom!=="auto"||X.left!=="auto"||X.right!=="auto"||X.width!=="0px"||X.height!=="0px"||(A.style.top=qe,A.style.left=he,A.style.width=dt,A.style.height=se)}let Z=window.getComputedStyle(A),ee=Z.position;if(ee!=="absolute"&&ee!=="fixed"&&(A.style.position="absolute"),!!A.style.top||!!A.style.bottom||Z.top!=="auto"||Z.bottom!=="auto"||(A.style.top="0"),!!A.style.left||!!A.style.right||Z.left!=="auto"||Z.right!=="auto"||(A.style.left="0"),M!=="audio"){let qe=D(A.getAttribute("data-width")),he=D(A.getAttribute("data-height")),dt=Z.width!=="0px"&&Z.width!=="auto",se=Z.height!=="0px"&&Z.height!=="auto";qe?!A.style.width&&!dt&&(A.style.width=qe):!A.style.width&&Z.width==="0px"&&(A.style.width="100%"),he?!A.style.height&&!se&&(A.style.height=he):!A.style.height&&Z.height==="0px"&&(A.style.height="100%")}}},C=(d,p=0,m)=>Qe({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:m?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),g=(d,p)=>Qe({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),b=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0):C(d,p),N=(d,p)=>{let m=d.parentElement;for(;m&&m!==p;){if(m.hasAttribute("data-start"))return m;m=m.parentElement}return null},w=(d,p)=>{let m=d.tagName.toLowerCase();if(m==="script"||m==="style"||m==="link"||m==="meta")return!1;let y=m==="video"||m==="audio"?b(d,0):C(d,0),A=g(d),M=d.getAttribute("data-composition-id");if(M){let j=(window.__timelines??{})[M],Z=null;if(j&&typeof j.duration=="function"){let oe=Number(j.duration());Number.isFinite(oe)&&oe>0&&(Z=oe)}let ee=d.hasAttribute("data-composition-src")||d.hasAttribute("data-composition-file");A!=null&&A>0&&Z!=null&&!ee?A=Math.min(A,Z):(A==null||A<=0)&&Z!=null&&(A=Z)}let B=A!=null&&A>0?y+A:Number.POSITIVE_INFINITY;return p>=y&&(Number.isFinite(B)?p<=B:!0)},_=!!document.querySelector("[data-composition-src]"),H=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let m=p.getAttribute("data-composition-id");if(m&&p.children.length===0&&document.querySelector(`template#${CSS.escape(m)}-template`)){H=!0;break}}}let J=!_&&!H,W=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},T=d=>typeof d=="number"&&Number.isFinite(d)&&d>c,de=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let m=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),y=Number.isFinite(m)?Math.max(0,m):0;return Number.isFinite(d.duration)&&d.duration>y?Math.max(0,d.duration-y):null},be=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let m of d){let y=b(m,0);if(!Number.isFinite(y))continue;let A=de(m);A==null||A<=c||(p=Math.max(p,Math.max(0,y)+A))}return p>c?p:null},G=()=>{let d=L();if(!d)return null;let p=window.__timelines??{},m=Qe({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),y=0,A=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(A)&&A>0&&(y=A);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let B of M){if(!(B instanceof Element)||B.parentElement?.closest("[data-composition-id]")!==d)continue;let Z=m.resolveStartForElement(B,0),ee=m.resolveDurationForElement(B);!Number.isFinite(Z)||ee==null||ee<=0||(y=Math.max(y,Math.max(0,Z)+ee))}return y>c?y:null},Q=()=>{let d=be();return typeof d!="number"||!Number.isFinite(d)||d<=c?null:d},U=d=>T(d)?Math.max(c,d*u):c,Y=(d,p=0)=>{let m=W(d),y=Q(),A=G(),M=Math.max(y??0,A??0),B=Number.isFinite(p)&&p>c?p:0,j=0;return T(m)?j=Math.max(m,M,B):T(M)?j=Math.max(M,B):j=B,j>0?Math.max(0,j):0},we=()=>{let d=window.__timelines??{},p=Qe({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),m=Q(),y=G(),A=Math.max(m??0,y??0)||null,M=U(A),B=se=>{let X=document.querySelector(`[data-composition-id="${CSS.escape(se)}"]`);return X?p.resolveStartForElement(X,0):0},j=se=>{let X=window.gsap;if(!X||typeof X.timeline!="function")return null;let fe=X.timeline({paused:!0});for(let xe of se)fe.add(xe.timeline,B(xe.compositionId));return fe},Z=(se,X)=>{if(!T(se))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let xe=fe.timeline({paused:!0});if(X)try{xe.add(X,0)}catch(le){v("runtime.init.site2",le)}let Se=xe;if(typeof Se.to=="function")try{Se.to({},{duration:se})}catch(le){v("runtime.init.site3",le)}return xe},ee=(se,X)=>{let fe=se;if(typeof fe.getChildren!="function")return[];try{let xe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(xe))return[];let Se=[];for(let le of X)if(!xe.some(_e=>_e===le.timeline))try{let _e=B(le.compositionId);se.add(le.timeline,_e),Se.push(le.compositionId)}catch(_e){v("runtime.init.site4",_e)}return Se}catch{return[]}},oe=L(),ce=oe?.getAttribute("data-composition-id")??null;if(!ce)return{timeline:null};let Ce=d[ce]??null,he=(()=>{if(!oe)return[];let se=new Set,X=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let xe of X){let Se=xe.getAttribute("data-composition-id");if(!Se||Se===ce||se.has(Se))continue;se.add(Se);let le=d[Se]??null;if(!le||typeof le.play!="function"||typeof le.pause!="function")continue;let Me=W(le);fe.push({compositionId:Se,timeline:le,durationSeconds:Me??0})}return fe})(),dt=se=>{for(let X of se){let fe=X.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(xe){v("runtime.init.site5",xe)}}};if(he.length>0&&dt(he),Ce){let se=he.length>0?ee(Ce,he):[];if((he.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+ce+"\'])"))&&(Ae=!0),se.length>0)try{let le=Ce.time();Ce.seek(le,!1)}catch{}let X=W(Ce);if(!T(X)&&he.length>0){let le=he.map(ps=>ps.compositionId),Me=j(he),_e=W(Me);if(Me&&T(_e))return{timeline:Me,selectedTimelineIds:le,selectedDurationSeconds:_e,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:ce,rootDurationSeconds:X,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:_e,mediaDurationFloorSeconds:m,authoredCompositionDurationFloorSeconds:y,selectedTimelineIds:le,autoNestedChildren:se}}};let yn=Z(A??0,Ce),Sn=W(yn);if(yn&&T(Sn))return{timeline:yn,selectedTimelineIds:[ce],selectedDurationSeconds:Sn,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:ce,rootDurationSeconds:X,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:m,authoredCompositionDurationFloorSeconds:y,selectedDurationSeconds:Sn,selectedTimelineIds:[ce],autoNestedChildren:se}}}}if(!T(X)&&he.length===0){let le=Z(A??0,Ce),Me=W(le);if(le&&T(Me))return{timeline:le,selectedTimelineIds:[ce],selectedDurationSeconds:Me,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:ce,rootDurationSeconds:X,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:m,authoredCompositionDurationFloorSeconds:y,selectedDurationSeconds:Me,selectedTimelineIds:[ce]}}}}let fe=oe?.getAttribute("data-duration"),xe=fe?parseFloat(fe):null,Se=Math.max(T(xe)?xe:0,y??0);if(Se>0&&T(Se)&&T(X)&&Se>=X+.5){let le=Ce;if(typeof le.to=="function")try{le.to({},{duration:0},Se)}catch(_e){v("runtime.init.site6",_e)}let Me=W(Ce);if(T(Me))return{timeline:Ce,selectedTimelineIds:[ce],selectedDurationSeconds:Me,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:ce,rootDurationSeconds:X,rootDeclaredDur:xe,authoredCompositionDurationFloorSeconds:y,newDur:Me}}}}return{timeline:Ce,selectedTimelineIds:[ce],selectedDurationSeconds:X,mediaDurationFloorSeconds:m,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:ce,selectedDurationSeconds:X,autoNestedChildren:se}}:void 0}}if(he.length>0){let se=he.map(xe=>xe.compositionId),X=j(he),fe=W(X);if(X)return{timeline:X,selectedTimelineIds:se,selectedDurationSeconds:fe,mediaDurationFloorSeconds:m,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:ce,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:fe,mediaDurationFloorSeconds:m,selectedTimelineIds:se}}}}return{timeline:null}},Ae=!1,O=()=>{if(!J)return!1;let d=t.capturedTimeline,p=W(d),m=T(p);if(d&&m&&Ae)return!1;let y=we();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=y.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let A=Y(t.capturedTimeline,0);if(A>0){try{I.setDuration(A)}catch{}t.capturedTimeline.pause();let M=Math.max(0,t.currentTime||0);typeof t.capturedTimeline.totalTime=="function"&&t.capturedTimeline.totalTime(M,!1);let B=window.__hfStudioManualEditsApply;typeof B=="function"&&B()}if(y.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=L(),B=A>0?A:0,j=String(B>0?B:1),Z=new Set;if(t.capturedTimeline.getChildren)try{for(let ee of t.capturedTimeline.getChildren(!0))if(typeof ee.targets=="function")for(let oe of ee.targets())oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||N(oe,M)||Z.has(oe)||(Z.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",j)))}catch{}if(M instanceof HTMLElement)for(let ee of M.querySelectorAll("[id]"))ee instanceof HTMLElement&&ee!==M&&(ee.hasAttribute("data-start")||N(ee,M)||Z.has(ee)||ee.tagName==="SCRIPT"||ee.tagName==="STYLE"||ee.tagName==="LINK"||(Z.add(ee),ee.setAttribute("data-start","0"),ee.setAttribute("data-duration",j)))}for(let M of Ne)ye.delete(M),xi(M);return!0};window.__hfForceTimelineRebind=()=>{Ae=!1,O()};let k=()=>{let d=L();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),m=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),A=window.getComputedStyle(d),M=Number.isFinite(m)&&m>0&&Number.isFinite(y)&&y>0,B=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!B||l("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:m,declaredHeight:y,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:A.display,visibility:A.visibility,overflow:A.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},P=()=>{t.tornDown||(o!=null&&window.cancelAnimationFrame(o),o=window.requestAnimationFrame(()=>{o=null,k()}))},ie=()=>{e=d=>{let p=E(d.error??d.message).slice(0,F);if(!p)return;let m=S(p);Ee({source:"hf-preview",type:"diagnostic",code:m.code,details:{category:m.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},n=d=>{let p=E(d.reason).slice(0,F);if(!p)return;let m=S(p);Ee({source:"hf-preview",type:"diagnostic",code:`${m.code}_unhandled_rejection`,details:{category:`${m.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",e),window.addEventListener("unhandledrejection",n)},ae=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let m of d){let y=()=>{if(!(m instanceof Element))return;let A=m.tagName.toLowerCase(),M=m.getAttribute("src")??m.getAttribute("href")??m.getAttribute("poster")??null,B=A==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";l(B,{tagName:A,assetUrl:M,currentSrc:(m instanceof HTMLImageElement||m instanceof HTMLMediaElement)&&m.currentSrc||null,readyState:m instanceof HTMLMediaElement?m.readyState:null,networkState:m instanceof HTMLMediaElement?m.networkState:null},`${B}:${A}:${M??"unknown"}`)};m.addEventListener("error",y),s(()=>{m.removeEventListener("error",y)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let m=Array.from(p).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);m.length!==0&&l("runtime_font_load_issue",{failedFamilies:m,totalFaces:Array.from(p).length},`runtime-font-load-issue:${m.join("|")}`)}).catch(()=>{})},z=(d,p)=>{if(!d.timeline)return!1;let m=t.capturedTimeline;if(m&&m===d.timeline)return!1;let y=Math.max(0,t.currentTime||0),A=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(y,!1),A&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},V=null,$=!1,Ne=new Set,ye=new WeakMap,He=()=>{t.tornDown||(V!=null&&window.clearTimeout(V),V=window.setTimeout(()=>{if(t.tornDown)return;V=null;let d=we();if(!d.timeline||!T(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){O()&&(Xe(),Te(!0));return}if($)return;let m=W(t.capturedTimeline),y=d.selectedDurationSeconds??W(d.timeline);T(y)&&(!T(m)||y>=m+f)&&z(d,"manual")&&($=!0,Ee({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:m??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),Xe(),Te(!0))},x))},Be=()=>{for(let d of Ne)d.removeEventListener("loadedmetadata",He),d.removeEventListener("durationchange",He);Ne.clear()},mn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(Ne.has(p))continue;Ne.add(p);let m=Number.parseFloat(p.dataset.volume??"");Number.isFinite(m)&&(p.volume=Math.max(0,Math.min(1,m))),p.addEventListener("loadedmetadata",He),p.addEventListener("durationchange",He),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),xi(p)}},xi=d=>{ye.has(d)||Hi(d,t.capturedTimeline,Y(t.capturedTimeline,0),ye)},We=()=>{let d=M=>{let B=M.closest("[data-composition-id]"),j=B?C(B,0):null,Z=B?g(B,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:B,inheritedStart:j,inheritedDuration:Z}},p=Wi({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let B=d(M);return b(M,B.inheritedStart??0)},resolveDurationSeconds:M=>{let B=d(M),j=b(M,B.inheritedStart??0),Z=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,ee=B.inheritedStart!=null&&B.inheritedDuration!=null&&B.inheritedDuration>0?Math.max(0,B.inheritedStart+B.inheritedDuration-j):null,oe=Number.isFinite(M.duration)&&M.duration>Z?Math.max(0,M.duration-Z):null,ce=Number.parseFloat(M.dataset.duration??""),Ce=Number.isFinite(ce)&&ce>0?ce:null,qe=[oe,ee,Ce].filter(he=>he!=null);return qe.length>0?Math.min(...qe):null}});for(let M of p.mediaClips){let B=ye.get(M.el);B&&(M.volumeKeyframes=B)}let m=t.mediaForceSyncNextTick;m&&(t.mediaForceSyncNextTick=!1),qi({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||pe.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:m,onElementVolume:(M,B)=>pe.setElementVolume(M,B),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let y=Array.from(document.querySelectorAll("[data-start]")),A=L();for(let M of y){if(!(M instanceof HTMLElement))continue;let B=w(M,t.currentTime);if(B&&window.parent!==window){let j=M.parentElement;for(;j&&j!==A;){if(j instanceof HTMLElement&&j.hasAttribute("data-start")&&!w(j,t.currentTime)){B=!1;break}j=j.parentElement}}M.style.visibility=B?"visible":"hidden"}},Te=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),m=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||m-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=m,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},Xe=()=>{ne(),R(),q();let d=L();if(d){let m=D(d.getAttribute("data-width")),y=D(d.getAttribute("data-height")),A=m?parseInt(m,10):0,M=y?parseInt(y,10):0;A>0&&M>0&&Ee({source:"hf-preview",type:"stage-size",width:A,height:M})}O();let p=Ji({canonicalFps:t.canonicalFps});window.__clipManifest=p,Ee(p),P()},Ie=(d,p=0)=>{for(let m of t.deterministicAdapters){try{d==="discover"&&m.discover(),d==="pause"&&m.pause(),d==="play"&&m.play&&m.play()}catch(y){v("runtime.init.site8",y)}if(d==="discover")try{m.seek({time:p})}catch(y){v("runtime.init.site9",y)}}},ct=()=>{window.__renderReady=!1};if(J)ai();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:D,onDiagnostic:({code:p,details:m})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:m})}};vo(d).then(()=>_o(d)).finally(()=>{J=!0,mn(),ae(),ai(),ct()})}let Wt=Ui({postMessage:d=>Ee(d)});Wt.installPickerApi();let pn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let m=document.querySelectorAll("video, audio");for(let y of m)if(y instanceof HTMLMediaElement)try{y.playbackRate=t.playbackRate}catch(A){v("runtime.init.site10",A)}},me=zi({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:pn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,We()},onStatePost:Te,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(m){v("runtime.init.site11",m)}},onDeterministicPause:()=>Ie("pause"),onDeterministicPlay:()=>Ie("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>Y(t.capturedTimeline,0)});window.__player=a(me),window.__playerReady=!0,wi(Ee),ft("composition_loaded",{duration:me.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=Fi({onPlay:()=>{me.play(),ft("composition_played",{time:me.getTime()})},onPause:()=>{me.pause(),ft("composition_paused",{time:me.getTime()})},onSeek:(d,p)=>{let m=Math.max(0,d)/t.canonicalFps;me.seek(m),ft("composition_seeked",{time:m})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;pe.setMuted(p);let m=document.querySelectorAll("video, audio");for(let y of m)y instanceof HTMLMediaElement&&(y.muted=p||y.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,pe.setVolume(d);let p=document.querySelectorAll("video, audio");for(let m of p){if(!(m instanceof HTMLMediaElement))continue;let y=parseFloat(m.dataset.volume??""),A=Number.isFinite(y)?y:1;m.volume=A*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;pe.setMuted(p);let m=document.querySelectorAll("video, audio");for(let y of m)y instanceof HTMLMediaElement&&(y.muted=p||y.defaultMuted)},onSetPlaybackRate:d=>{pn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),bi()},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,Ke(d),I.reachedEnd()){pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),Ie("pause"),We(),Te(!0)}},onEnablePickMode:()=>Wt.enablePickMode(),onDisablePickMode:()=>Wt.disablePickMode()}),t.deterministicAdapters=[Oi(),Ni({resolveStartSeconds:d=>C(d,0)}),Mi(),_i(),Ri(),Li(),Ci({getTimeline:()=>t.capturedTimeline})],Bi(),Ii(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,vi(p)},ie(),mn(),Ie("discover");let I=new sn;t.transportClock=I;let pe=new an,hn=!1;pe.init().then(d=>{hn=d});let us=()=>{let d=t.capturedTimeline,p=O();t.capturedTimeline&&(p||t.capturedTimeline!==d||!me._timeline)&&(me._timeline=t.capturedTimeline);let m=Y(t.capturedTimeline,0);m>0&&I.setDuration(m),Ie("discover",t.currentTime),window.__renderReady=!0,Xe(),Te(!0)};if(ct=()=>{if(!J||window.__hfTimelinesBuilding){window.__renderReady=!1;return}us()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),ct()};window.addEventListener("hf-timelines-built",d)}ct(),J&&setTimeout(()=>{ct()},0);let qt=0,xn=!1,cs=(d,p,m)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(y){v(m,y)}},ds=d=>{let p=window.__timelines??{},m=L()?.getAttribute("data-composition-id")??null;for(let[y,A]of Object.entries(p)){if(!A||y===m)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(y)}"]`);if(!M)continue;let B=C(M,0);if(!Number.isFinite(B))continue;let j=g(M,{includeAuthoredTimingAttrs:!0}),Z=W(A),ee=j!=null&&j>0?j:Z,oe=Math.max(0,ee!=null&&ee>0?Math.min(ee,d-B):d-B);cs(A,oe,"runtime.init.transport.childTimeline")}},fs=d=>{let p=window.__timelines??{};for(let m of Object.values(p))if(!(!m||m===d))try{m.play()}catch(y){v("runtime.init.activateSiblings",y)}},Ke=(d,p)=>{let m=t.capturedTimeline;if(m){p?.activateChildren&&fs(m);try{typeof m.totalTime=="function"?m.totalTime(d,!1):m.seek(d,!1)}catch(y){v("runtime.init.transport.seek",y)}}else ds(d);for(let y of t.deterministicAdapters)try{y.seek({time:d})}catch(A){v("runtime.init.transport.adapter",A)}},ms=()=>{try{return document.querySelector(`[${Lo}]`)!=null}catch{return!1}},gi=()=>{if(!(t.tornDown||xn)){xn=!0;try{if(t.transportRafId=window.requestAnimationFrame(gi),qt+=1,qt%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<h)){let m=t.capturedTimeline;if(O()){t.capturedTimeline&&!me._timeline&&(me._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==m&&t.capturedTimeline.pause();let y=Y(t.capturedTimeline,0);y>0&&I.setDuration(y),Xe()}}if(qt%20===0&&Xe(),qt%30===0&&mn(),t.capturedTimeline){let p=Y(t.capturedTimeline,0);p>0&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(pe.isActive()&&pe.context){let p=pe.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),m=!1;for(let y of p){if(!(y instanceof HTMLMediaElement)||!y.isConnected)continue;let A=Number.parseFloat(y.dataset.start??""),M=Number.parseFloat(y.dataset.duration??""),B=Number.isFinite(M)&&M>0?A+M:1/0,j=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0;if(Number.isFinite(A)&&t.currentTime>=A&&t.currentTime<=B){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),m=!0):(I.attachAudioSource({el:y,compositionStart:A,mediaStart:j}),m=!0);break}}!m&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!ms())&&Ke(d),I.isPlaying()&&I.reachedEnd()){pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),Ie("pause"),We(),Te(!0);return}I.isPlaying()&&We(),Te(!1)}finally{xn=!1}}},yi=d=>{let p=document.querySelectorAll("video, audio");for(let m of p){if(!(m instanceof HTMLMediaElement)||!m.isConnected)continue;let y=Number.parseFloat(m.dataset.start??"");if(!Number.isFinite(y))continue;let A=Number.parseFloat(m.dataset.duration??""),M=Number.isFinite(A)&&A>0?y+A:1/0;if(d<y||d>=M)continue;let B=Number.parseFloat(m.dataset.playbackStart??m.dataset.mediaStart??"0")||0,j=d-y+B;if(j>=0)try{m.currentTime=j}catch{}}},Si=()=>{let d=pe.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let m of p){if(!(m instanceof HTMLMediaElement)||!m.isConnected)continue;let y=Number.parseFloat(m.dataset.start??"");if(!Number.isFinite(y))continue;let A=Number.parseFloat(m.dataset.playbackStart??m.dataset.mediaStart??"0")||0,M=Number.parseFloat(m.dataset.volume??""),B=Number.isFinite(M)?M:1,j=Number.parseFloat(m.dataset.duration??""),Z=Number.isFinite(j)&&j>0?j:Number.POSITIVE_INFINITY,ee=m.closest("[data-composition-id]");if(ee){let oe=C(ee,0),ce=g(ee,{includeAuthoredTimingAttrs:!0});ce!=null&&ce>0&&(Z=Math.min(Z,Math.max(0,oe+ce-y)))}pe.decodeAudioElement(m).then(oe=>{!oe||!I.isPlaying()||pe.schedulePlayback(m,oe,y,A,I.now(),B*t.bridgeVolume,d,t.playbackRate,Z)})}},bi=()=>{pe.setRate(t.playbackRate)&&hn&&I.isPlaying()&&pe.hasBoundedActiveSources()&&(pe.stopAll(),Si())};if(me.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Y(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,Ke(0));else{let m=L(),y=Number(m?.getAttribute("data-duration")??0);y>0&&I.setDuration(y)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,yi(I.now()),hn&&Si(),Ie("play"),We(),Te(!0))},me.pause=()=>{if(!I.isPlaying())return;pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,yi(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Ie("pause"),We(),Te(!0)},me.seek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);pe.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let y=t.capturedTimeline;y&&y.pause(),Ke(t.currentTime),Ie("pause"),We(),Te(!0)},me.renderSeek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,Ke(t.currentTime,{activateChildren:!0}),We(),Te(!0)},me.getTime=()=>I.now(),me.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},me.isPlaying=()=>I.isPlaying(),me.setPlaybackRate=d=>{pn(d),I.setRate(t.playbackRate),bi()},t.capturedTimeline){let d=Y(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let Ai=window.__player;if(Ai){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(Ai,p,{get:()=>me[p],set:m=>{me[p]=m},configurable:!0})}t.transportRafId=window.requestAnimationFrame(gi),Xe(),Te(!0);let gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,pe.destroy(),V!=null&&(window.clearTimeout(V),V=null),o!=null&&(window.cancelAnimationFrame(o),o=null),Be(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),e&&(window.removeEventListener("error",e),e=null),n&&(window.removeEventListener("unhandledrejection",n),n=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),Wt.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of i.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=gn,t.beforeUnloadHandler=gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Oo=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],li=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Bl(t){if(t<=255)return Oo[t];let e=0,n=li.length-1;for(;e<=n;){let i=e+n>>1,r=li[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function Il(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let c=0;c<e;){let u=t.charCodeAt(c),h=u,f=1;if(u>=55296&&u<=56319&&c+1<e){let F=t.charCodeAt(c+1);F>=56320&&F<=57343&&(h=(u-55296<<10)+(F-56320)+65536,f=2)}let x=Bl(h);(x==="R"||x==="AL"||x==="AN")&&(i=!0);for(let F=0;F<f;F++)n[c+F]=x;c+=f}if(!i)return null;let r=0;for(let c=0;c<e;c++){let u=n[c];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let c=0;c<e;c++)o[c]=r;let s=r&1?"R":"L",l=s,a=l;for(let c=0;c<e;c++)n[c]==="NSM"?n[c]=a:a=n[c];a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let c=0;c<e;c++)n[c]==="AL"&&(n[c]="R");for(let c=1;c<e-1;c++)n[c]==="ES"&&n[c-1]==="EN"&&n[c+1]==="EN"&&(n[c]="EN"),n[c]==="CS"&&(n[c-1]==="EN"||n[c-1]==="AN")&&n[c+1]===n[c-1]&&(n[c]=n[c-1]);for(let c=0;c<e;c++){if(n[c]!=="EN")continue;let u;for(u=c-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=c+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let c=0;c<e;c++){let u=n[c];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[c]="ON")}a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let c=0;c<e;c++){if(n[c]!=="ON")continue;let u=c+1;for(;u<e&&n[u]==="ON";)u++;let h=c>0?n[c-1]:l,f=u<e?n[u]:l,x=h!=="L"?"R":"L";if(x===(f!=="L"?"R":"L"))for(let E=c;E<u;E++)n[E]=x;c=u-1}for(let c=0;c<e;c++)n[c]==="ON"&&(n[c]=s);for(let c=0;c<e;c++){let u=n[c];(o[c]&1)===0?u==="R"?o[c]++:(u==="AN"||u==="EN")&&(o[c]+=2):(u==="L"||u==="AN"||u==="EN")&&o[c]++}return o}function Po(t,e){let n=Il(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var Ol=/[ \\t\\n\\r\\f]+/g,Pl=/[\\t\\n\\r\\f]| {2,}|^ | $/;function Hl(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function Wl(t){if(!Pl.test(t))return t;let e=t.replace(Ol," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function ql(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var ui=null,Ul;function Vl(){return ui===null&&(ui=new Intl.Segmenter(Ul,{granularity:"word"})),ui}var zl=/\\p{Script=Arabic}/u,ln=/\\p{M}/u,Go=/\\p{Nd}/u;function Ho(t){return zl.test(t)}function Wo(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function Le(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(Wo(r))return!0;e++;continue}}if(Wo(n))return!0}}return!1}function jl(t){let e=dn(t);return e!==null&&(cn.has(e)||Ge.has(e))}var Gl=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function $l(t){return Le(t)}function Kl(t){let e=dn(t);return e!==null&&Gl.has(e)}function un(t){return!jl(t)&&!Kl(t)}var cn=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),Ht=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),di=new Set(["\'","\\u2019"]),Ge=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Jl=new Set([":",".","\\u060C","\\u061B"]),Ql=new Set(["\\u104F"]),Yl=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Zl(t){if(fi(t))return!0;let e=!1;for(let n of t){if(Ge.has(n)){e=!0;continue}if(!(e&&ln.test(n)))return!1}return e}function Xl(t){for(let e of t)if(!cn.has(e)&&!Ge.has(e))return!1;return t.length>0}function eu(t){if(fi(t))return!0;for(let e of t)if(!Ht.has(e)&&!di.has(e)&&!ln.test(e))return!1;return t.length>0}function fi(t){let e=!1;for(let n of t)if(!(n==="\\\\"||ln.test(n))){if(Ht.has(n)||Ge.has(n)||di.has(n)){e=!0;continue}return!1}return e}function $o(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function dn(t){if(t.length===0)return null;let e=$o(t,t.length);return t.slice(e)}function tu(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(ln.test(i)){n--;continue}if(Ht.has(i)||di.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function nu(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function qo(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let l=r.repeat(s);return t[i]=l,l}function Uo(t,e){return t&&e!==null&&Jl.has(e)}function iu(t){let e=dn(t);return e!==null&&Ql.has(e)}function ru(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function fn(t){let e=t.length;for(;e>0;){let n=$o(t,e),i=t.slice(n,e);if(Yl.has(i))return!0;if(!Ge.has(i))return!1;e=n}return!1}function ou(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var su=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function ke(t){return t.length===1?t[0]:t.join("")}function au(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),ke(n)}function lu(t,e,n,i){if(!su.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],l=n,a=!1,c=0;for(let u of t){let h=ou(u,i),f=h==="text"&&e;if(o!==null&&h===o&&f===a){s.push(u),c+=u.length;continue}o!==null&&r.push({text:ke(s),isWordLike:a,kind:o,start:l}),o=h,s=[u],l=n+c,a=f,c+=u.length}return o!==null&&r.push({text:ke(s),isWordLike:a,kind:o,start:l}),r}function ci(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var uu=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function cu(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:uu.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function du(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function fu(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!cu(t,s))continue;let l=[e[s]],a=s+1;for(;a<t.len&&!ci(i[a]);){l.push(e[a]),n[s]=!0;let c=e[a].includes("?");if(i[a]="text",e[a]="",a++,c)break}e[s]=ke(l)}let o=0;for(let s=0;s<e.length;s++){let l=e[s];l.length!==0&&(o!==s&&(e[o]=l,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function mu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!du(s))continue;let l=o+1;if(l>=t.len||ci(t.kinds[l]))continue;let a=[],c=t.starts[l],u=l;for(;u<t.len&&!ci(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(ke(a)),n.push(!0),i.push("text"),r.push(c),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var pu=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Vo=/^[A-Za-z0-9_]+[,:;]*$/,zo=/[,:;]+$/;function Ko(t){for(let e of t)if(Go.test(e))return!0;return!1}function Pt(t){if(t.length===0)return!1;for(let e of t)if(!(Go.test(e)||pu.has(e)))return!1;return!0}function hu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o];if(l==="text"&&Pt(s)&&Ko(s)){let a=[s],c=o+1;for(;c<t.len&&t.kinds[c]==="text"&&Pt(t.texts[c]);)a.push(t.texts[c]),c++;e.push(ke(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=c-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function xu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o],a=t.isWordLike[o];if(l==="text"&&a&&Vo.test(s)){let c=[s],u=zo.test(s),h=o+1;for(;u&&h<t.len&&t.kinds[h]==="text"&&t.isWordLike[h]&&Vo.test(t.texts[h]);){let f=t.texts[h];c.push(f),u=zo.test(f),h++}e.push(ke(c)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=h-1;continue}e.push(s),n.push(a),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function gu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let l=s.split("-"),a=l.length>1;for(let c=0;c<l.length;c++){let u=l[c];if(!a)break;(u.length===0||!Ko(u)||!Pt(u))&&(a=!1)}if(a){let c=0;for(let u=0;u<l.length;u++){let h=l[u],f=u<l.length-1?`${h}-`:h;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+c),c+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function yu(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],l=t.isWordLike[o],a=t.kinds[o],c=t.starts[o];if(a==="glue"){let u=[s[0]],h=c;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=ke(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),l=t.isWordLike[o],a="text",c=h,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(h);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let h=ke(u);if(o<t.len&&t.kinds[o]==="text"){s.push(h,t.texts[o]),l=l||t.isWordLike[o],o++;continue}s.push(h)}e.push(ke(s)),n.push(l),i.push(a),r.push(c)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Su(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Le(e[o])||!Le(e[o+1]))continue;let s=tu(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function jo(t,e,n){let i=Vl(),r=0,o=[],s=[],l=[],a=[],c=[],u=[],h=[],f=[],x=[],F=[],E=[],S=[];for(let C of i.segment(t))for(let g of lu(C.segment,C.isWordLike??!1,C.index,n)){let de=function(){u[T]!==null&&(s[T]=[qo(o,u,h,T)],u[T]=null),s[T].push(g.text),l[T]=l[T]||g.isWordLike,f[T]=f[T]||w,x[T]=x[T]||_,F[T]=J,E[T]=W,S[T]=Uo(x[T],H)},b=g.kind==="text",N=nu(g.text,g.isWordLike,g.kind),w=Le(g.text),_=Ho(g.text),H=dn(g.text),J=fn(g.text),W=iu(g.text),T=r-1;e.carryCJKAfterClosingQuote&&b&&r>0&&a[T]==="text"&&w&&f[T]&&F[T]||b&&r>0&&a[T]==="text"&&Xl(g.text)&&f[T]||b&&r>0&&a[T]==="text"&&E[T]?de():b&&r>0&&a[T]==="text"&&g.isWordLike&&_&&S[T]?(de(),l[T]=!0):N!==null&&r>0&&a[T]==="text"&&u[T]===N?h[T]=(h[T]??1)+1:b&&!g.isWordLike&&r>0&&a[T]==="text"&&(Zl(g.text)||g.text==="-"&&l[T])?de():(o[r]=g.text,s[r]=[g.text],l[r]=g.isWordLike,a[r]=g.kind,c[r]=g.start,u[r]=N,h[r]=N===null?0:1,f[r]=w,x[r]=_,F[r]=J,E[r]=W,S[r]=Uo(_,H),r++)}for(let C=0;C<r;C++){if(u[C]!==null){o[C]=qo(o,u,h,C);continue}o[C]=ke(s[C])}for(let C=1;C<r;C++)a[C]==="text"&&!l[C]&&fi(o[C])&&a[C-1]==="text"&&(o[C-1]+=o[C],l[C-1]=l[C-1]||l[C],o[C]="");let D=Array.from({length:r},()=>null),L=-1;for(let C=r-1;C>=0;C--){let g=o[C];if(g.length!==0){if(a[C]==="text"&&!l[C]&&eu(g)&&L>=0&&a[L]==="text"){let b=D[L]??[];b.push(g),D[L]=b,c[L]=c[C],o[C]="";continue}L=C}}for(let C=0;C<r;C++){let g=D[C];g!=null&&(o[C]=au(g,o[C]))}let R=0;for(let C=0;C<r;C++){let g=o[C];g.length!==0&&(R!==C&&(o[R]=g,l[R]=l[C],a[R]=a[C],c[R]=c[C]),R++)}o.length=R,l.length=R,a.length=R,c.length=R;let ne=yu({len:R,texts:o,isWordLike:l,kinds:a,starts:c}),q=Su(xu(gu(hu(mu(fu(ne))))));for(let C=0;C<q.len-1;C++){let g=ru(q.texts[C]);g!==null&&(q.kinds[C]!=="space"&&q.kinds[C]!=="preserved-space"||q.kinds[C+1]!=="text"||!Ho(q.texts[C+1])||(q.texts[C]=g.space,q.isWordLike[C]=!1,q.kinds[C]=q.kinds[C]==="preserved-space"?"preserved-space":"space",q.texts[C+1]=g.marks+q.texts[C+1],q.starts[C+1]=q.starts[C]+g.space.length))}return q}function bu(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function Au(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,l=0,a=!1,c=!1;function u(){o!==null&&(e.push(ke(o)),n.push(s),i.push("text"),r.push(l),o=null)}for(let h=0;h<t.len;h++){let f=t.texts[h],x=t.kinds[h],F=t.isWordLike[h],E=t.starts[h];if(x==="text"){let S=$l(f),D=un(f);if(o!==null&&a&&c){o.push(f),s=s||F,a=a||S,c=D;continue}u(),o=[f],s=F,l=E,a=S,c=D;continue}u(),e.push(f),n.push(F),i.push(x),r.push(E)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Jo(t,e,n="normal",i="normal"){let r=Hl(n),o=r.mode==="pre-wrap"?ql(t):Wl(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?Au(jo(o,e,r)):jo(o,e,r);return{normalized:o,chunks:bu(s,r),...s}}var at=null,Qo=new Map,lt=null,Eu=96,Fu=/\\p{Emoji_Presentation}/u,wu=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,mi=null,Yo=new Map;function pi(){if(at!==null)return at;if(typeof OffscreenCanvas<"u")return at=new OffscreenCanvas(1,1).getContext("2d"),at;if(typeof document<"u")return at=document.createElement("canvas").getContext("2d"),at;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Nu(t){let e=Qo.get(t);return e||(e=new Map,Qo.set(t,e)),e}function Pe(t,e){let n=e.get(t);return n===void 0&&(n={width:pi().measureText(t).width,containsCJK:Le(t)},e.set(t,n)),n}function ut(){if(lt!==null)return lt;if(typeof navigator>"u")return lt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},lt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return lt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},lt}function Cu(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function Zo(){return mi===null&&(mi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),mi}function Mu(t){return Fu.test(t)||t.includes("\\uFE0F")}function Xo(t){return wu.test(t)}function Tu(t,e){let n=Yo.get(t);if(n!==void 0)return n;let i=pi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return Yo.set(t,n),n}function ku(t){let e=0,n=Zo();for(let i of n.segment(t))Mu(i.segment)&&e++;return e}function _u(t,e){return e.emojiCount===void 0&&(e.emojiCount=ku(t)),e.emojiCount}function $e(t,e,n){return n===0?e.width:e.width-_u(t,e)*n}function es(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=Zo(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let h of s){let f=Pe(h,n);u.push($e(h,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>Eu){let u=[],h=null,f=0;for(let x of s){let F=Pe(x,n),E=$e(x,F,i);if(h===null)u.push(E);else{let S=h+x,D=Pe(S,n);u.push($e(S,D,i)-f)}h=x,f=E}return e.breakableFitAdvances=u,e.breakableFitAdvances}let l=[],a="",c=0;for(let u of s){a+=u;let h=Pe(a,n),f=$e(a,h,i);l.push(f-c),c=f}return e.breakableFitAdvances=l,e.breakableFitAdvances}function ts(t,e){let n=pi();n.font=t;let i=Nu(t),r=Cu(t),o=e?Tu(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function vu(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function Ru(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function Lu(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let l=s+t[o];if((o+1<t.length?l+r:l)>n+i)break;s=l,o++}return{fitCount:o,fittedWidth:s}}function ns(t,e){return t.simpleLineWalkFastPath?is(t,e):rs(t,e)}function is(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let l=ut().lineFitEpsilon,a=e+l,c=0,u=0,h=!1,f=0,x=0,F=0,E=0,S=-1,D=0;function L(){S=-1,D=0}function R(N=F,w=E,_=u){c++,n?.({startSegmentIndex:f,startGraphemeIndex:x,endSegmentIndex:N,endGraphemeIndex:w,width:_}),u=0,h=!1,L()}function ne(N,w){h=!0,f=N,x=0,F=N+1,E=0,u=w}function q(N,w,_){h=!0,f=N,x=w,F=N,E=w+1,u=_}function C(N,w){if(!h){ne(N,w);return}u+=w,F=N+1,E=0}function g(N,w){let _=o[N];for(let H=w;H<_.length;H++){let J=_[H];h?u+J>a?(R(),q(N,H,J)):(u+=J,F=N,E=H+1):q(N,H,J)}h&&F===N&&E===_.length&&(F=N+1,E=0)}let b=0;for(;b<i.length&&!(!h&&(b=vu(t,b),b>=i.length));){let N=i[b],w=r[b],_=w==="space"||w==="preserved-space"||w==="tab"||w==="zero-width-break"||w==="soft-hyphen";if(!h){N>e&&o[b]!==null?g(b,0):ne(b,N),_&&(S=b+1,D=u-N),b++;continue}if(u+N>a){if(_){C(b,N),R(b+1,0,u-N),b++;continue}if(S>=0){if(F>S||F===S&&E>0){R();continue}R(S,0,D);continue}if(N>e&&o[b]!==null){R(),g(b,0),b++;continue}R();continue}C(b,N),_&&(S=b+1,D=u-N),b++}return h&&R(),c}function rs(t,e,n){if(t.simpleLineWalkFastPath)return is(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:a,tabStopAdvance:c,chunks:u}=t;if(i.length===0||u.length===0)return 0;let h=ut(),f=h.lineFitEpsilon,x=e+f,F=0,E=0,S=!1,D=0,L=0,R=0,ne=0,q=-1,C=0,g=0,b=null;function N(){q=-1,C=0,g=0,b=null}function w(G=R,Q=ne,U=E){F++,n?.({startSegmentIndex:D,startGraphemeIndex:L,endSegmentIndex:G,endGraphemeIndex:Q,width:U}),E=0,S=!1,N()}function _(G,Q){S=!0,D=G,L=0,R=G+1,ne=0,E=Q}function H(G,Q,U){S=!0,D=G,L=Q,R=G,ne=Q+1,E=U}function J(G,Q){if(!S){_(G,Q);return}E+=Q,R=G+1,ne=0}function W(G,Q,U,Y){if(!Q)return;let we=G==="tab"?0:r[U],Ae=G==="tab"?Y:o[U];q=U+1,C=E-Y+we,g=E-Y+Ae,b=G}function T(G,Q){let U=l[G];for(let Y=Q;Y<U.length;Y++){let we=U[Y];S?E+we>x?(w(),H(G,Y,we)):(E+=we,R=G,ne=Y+1):H(G,Y,we)}S&&R===G&&ne===U.length&&(R=G+1,ne=0)}function de(G){if(b!=="soft-hyphen")return!1;let Q=l[G];if(Q==null)return!1;let{fitCount:U,fittedWidth:Y}=Lu(Q,E,e,f,a);return U===0?!1:(E=Y,R=G,ne=U,N(),U===Q.length?(R=G+1,ne=0,!0):(w(G,U,Y+a),T(G,U),!0))}function be(G){F++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),N()}for(let G=0;G<u.length;G++){let Q=u[G];if(Q.startSegmentIndex===Q.endSegmentIndex){be(Q);continue}S=!1,E=0,D=Q.startSegmentIndex,L=0,R=Q.startSegmentIndex,ne=0,N();let U=Q.startSegmentIndex;for(;U<Q.endSegmentIndex;){let Y=s[U],we=Y==="space"||Y==="preserved-space"||Y==="tab"||Y==="zero-width-break"||Y==="soft-hyphen",Ae=Y==="tab"?Ru(E,c):i[U];if(Y==="soft-hyphen"){S&&(R=U+1,ne=0,q=U+1,C=E+a,g=E+a,b=Y),U++;continue}if(!S){Ae>e&&l[U]!==null?T(U,0):_(U,Ae),W(Y,we,U,Ae),U++;continue}if(E+Ae>x){let k=E+(Y==="tab"?0:r[U]),P=E+(Y==="tab"?Ae:o[U]);if(b==="soft-hyphen"&&h.preferEarlySoftHyphenBreak&&C<=x){w(q,0,g);continue}if(b==="soft-hyphen"&&de(U)){U++;continue}if(we&&k<=x){J(U,Ae),w(U+1,0,P),U++;continue}if(q>=0&&C<=x){if(R>q||R===q&&ne>0){w();continue}let ie=q;w(ie,0,g),U=ie;continue}if(Ae>e&&l[U]!==null){w(),T(U,0),U++;continue}w();continue}J(U,Ae),W(Y,we,U,Ae),U++}if(S){let Y=q===Q.consumedEndSegmentIndex?g:E;w(Q.consumedEndSegmentIndex,0,Y)}}return F}var hi=null;function Du(){return hi===null&&(hi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),hi}function Bu(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Iu(t,e){let n=[],i=[],r=0,o=!1,s=!1,l=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,l=!1)}function c(h,f,x){i=[h],r=f,o=x,s=fn(h),l=Ht.has(h)}function u(h,f){i.push(h),o=o||f;let x=fn(h);h.length===1&&Ge.has(h)?s=s||x:s=x,l=!1}for(let h of Du().segment(t)){let f=h.segment,x=Le(f);if(i.length===0){c(f,h.index,x);continue}if(l||cn.has(f)||Ge.has(f)||e.carryCJKAfterClosingQuote&&x&&s){u(f,x);continue}if(!o&&!x){u(f,x);continue}a(),c(f,h.index,x)}return a(),n}function Ou(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=Le(t[0].text),o=un(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let l=1;l<t.length;l++){let a=t[l],c=Le(a.text),u=un(a.text);if(r&&o){n.push(a.text),r=r||c,o=u;continue}s(),n=[a.text],i=a.start,r=c,o=u}return s(),e}function Pu(t,e,n,i){let r=ut(),{cache:o,emojiCorrection:s}=ts(e,Xo(t.normalized)),l=$e("-",Pe("-",o),s),c=$e(" ",Pe(" ",o),s)*8;if(t.len===0)return Bu(n);let u=[],h=[],f=[],x=[],F=t.chunks.length<=1,E=n?[]:null,S=[],D=n?[]:null,L=Array.from({length:t.len});function R(g,b,N,w,_,H,J){_!=="text"&&_!=="space"&&_!=="zero-width-break"&&(F=!1),u.push(b),h.push(N),f.push(w),x.push(_),E?.push(H),S.push(J),D!==null&&D.push(g)}function ne(g,b,N,w,_){let H=Pe(g,o),J=$e(g,H,s),W=b==="space"||b==="preserved-space"||b==="zero-width-break"?0:J,T=b==="space"||b==="zero-width-break"?0:J;if(_&&w&&g.length>1){let de="sum-graphemes";Pt(g)?de="pair-context":r.preferPrefixWidthsForBreakableRuns&&(de="segment-prefixes");let be=es(g,H,o,s,de);R(g,J,W,T,b,N,be);return}R(g,J,W,T,b,N,null)}for(let g=0;g<t.len;g++){L[g]=u.length;let b=t.texts[g],N=t.isWordLike[g],w=t.kinds[g],_=t.starts[g];if(w==="soft-hyphen"){R(b,0,l,l,w,_,null);continue}if(w==="hard-break"){R(b,0,0,0,w,_,null);continue}if(w==="tab"){R(b,0,0,0,w,_,null);continue}let H=Pe(b,o);if(w==="text"&&H.containsCJK){let J=Iu(b,r),W=i==="keep-all"?Ou(J):J;for(let T=0;T<W.length;T++){let de=W[T];ne(de.text,"text",_+de.start,N,i==="keep-all"||!Le(de.text))}continue}ne(b,w,_,N,!0)}let q=Hu(t.chunks,L,u.length),C=E===null?null:Po(t.normalized,E);return D!==null?{widths:u,lineEndFitAdvances:h,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:C,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q,segments:D}:{widths:u,lineEndFitAdvances:h,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:C,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q}}function Hu(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,l=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:l,consumedEndSegmentIndex:a})}return i}function Wu(t,e,n,i){let r=i?.wordBreak??"normal",o=Jo(t,ut(),i?.whiteSpace,r);return Pu(o,e,n,r)}function os(t,e,n){return Wu(t,e,!1,n)}function ss(t,e,n){let i=ns(t,e);return{lineCount:i,height:i*n}}var qu={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function as(t,e){let n={...qu,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=os(t,o),{lineCount:l}=ss(s,n.maxWidth,r*i);if(l<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:as,getVariables:No};function ls(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Io())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ls,{once:!0}):ls();})();\n';
53541
53541
  }
53542
53542
  });
53543
53543
 
@@ -54787,9 +54787,9 @@ function computeBidiLevels(str) {
54787
54787
  let end = i2 + 1;
54788
54788
  while (end < len && types5[end] === "ON")
54789
54789
  end++;
54790
- const before2 = i2 > 0 ? types5[i2 - 1] : sor;
54790
+ const before3 = i2 > 0 ? types5[i2 - 1] : sor;
54791
54791
  const after2 = end < len ? types5[end] : sor;
54792
- const bDir = before2 !== "L" ? "R" : "L";
54792
+ const bDir = before3 !== "L" ? "R" : "L";
54793
54793
  const aDir = after2 !== "L" ? "R" : "L";
54794
54794
  if (bDir === aDir) {
54795
54795
  for (let j3 = i2; j3 < end; j3++)
@@ -79408,13 +79408,13 @@ var require_parser2 = __commonJS({
79408
79408
  return this.error("Unexpected '|'.", this.currToken[tokenize_1.FIELDS.START_POS]);
79409
79409
  };
79410
79410
  Parser6.prototype.namespace = function() {
79411
- var before2 = this.prevToken && this.content(this.prevToken) || true;
79411
+ var before3 = this.prevToken && this.content(this.prevToken) || true;
79412
79412
  if (this.nextToken[tokenize_1.FIELDS.TYPE] === tokens.word) {
79413
79413
  this.position++;
79414
- return this.word(before2);
79414
+ return this.word(before3);
79415
79415
  } else if (this.nextToken[tokenize_1.FIELDS.TYPE] === tokens.asterisk) {
79416
79416
  this.position++;
79417
- return this.universal(before2);
79417
+ return this.universal(before3);
79418
79418
  }
79419
79419
  this.unexpectedPipe();
79420
79420
  };
@@ -91802,7 +91802,7 @@ async function compositeHdrFrame(ctx, canvas, time, fullStacking, elementFilter,
91802
91802
  for (const [layerIdx, layer] of layers.entries()) {
91803
91803
  if (layer.type === "hdr") {
91804
91804
  if (layer.element.opacity <= 0) continue;
91805
- const before2 = shouldLog ? countNonZeroRgb48(canvas) : 0;
91805
+ const before3 = shouldLog ? countNonZeroRgb48(canvas) : 0;
91806
91806
  const isHdrImage = nativeHdrImageIds.has(layer.element.id);
91807
91807
  const hdrTargetTransfer = compositeTransfer === "srgb" ? void 0 : compositeTransfer;
91808
91808
  if (isHdrImage) {
@@ -91843,7 +91843,7 @@ async function compositeHdrFrame(ctx, canvas, time, fullStacking, elementFilter,
91843
91843
  layerIdx,
91844
91844
  id: layer.element.id,
91845
91845
  kind: "image",
91846
- pixelsAdded: after2 - before2,
91846
+ pixelsAdded: after2 - before3,
91847
91847
  totalNonZero: after2,
91848
91848
  bufferDecoded: !!buf,
91849
91849
  bufferDims: buf ? `${buf.width}x${buf.height}` : null
@@ -91858,7 +91858,7 @@ async function compositeHdrFrame(ctx, canvas, time, fullStacking, elementFilter,
91858
91858
  layerIdx,
91859
91859
  id: layer.element.id,
91860
91860
  kind: "video",
91861
- pixelsAdded: after2 - before2,
91861
+ pixelsAdded: after2 - before3,
91862
91862
  totalNonZero: after2,
91863
91863
  startTime,
91864
91864
  localTime: localTime.toFixed(3),
@@ -91903,7 +91903,7 @@ async function compositeHdrFrame(ctx, canvas, time, fullStacking, elementFilter,
91903
91903
  );
91904
91904
  try {
91905
91905
  const { data: domRgba } = timeHdrPhase(hdrPerf, "domPngDecodeMs", () => decodePng(domPng));
91906
- const before2 = shouldLog ? countNonZeroRgb48(canvas) : 0;
91906
+ const before3 = shouldLog ? countNonZeroRgb48(canvas) : 0;
91907
91907
  const alphaPixels = shouldLog ? countNonZeroAlpha(domRgba) : 0;
91908
91908
  timeHdrPhase(
91909
91909
  hdrPerf,
@@ -91922,7 +91922,7 @@ async function compositeHdrFrame(ctx, canvas, time, fullStacking, elementFilter,
91922
91922
  hideCount: hideIds.length,
91923
91923
  pngBytes: domPng.length,
91924
91924
  alphaPixels,
91925
- pixelsAdded: after2 - before2,
91925
+ pixelsAdded: after2 - before3,
91926
91926
  totalNonZero: after2,
91927
91927
  dumpPath
91928
91928
  });
@@ -103229,6 +103229,303 @@ var init_layoutAudit = __esm({
103229
103229
  }
103230
103230
  });
103231
103231
 
103232
+ // src/utils/motionAudit.ts
103233
+ function ambiguousIssue(selector) {
103234
+ return {
103235
+ code: "motion_selector_ambiguous",
103236
+ severity: "error",
103237
+ time: 0,
103238
+ selector,
103239
+ message: `${selector} matches multiple elements \u2014 use a more specific selector so the assertion targets exactly one`,
103240
+ rect: ZERO_RECT,
103241
+ fixHint: "Use #id or :nth-child() instead of a class selector when multiple elements share the same class."
103242
+ };
103243
+ }
103244
+ function round(value) {
103245
+ return Math.round(value * 100) / 100;
103246
+ }
103247
+ function everMatched(frames, selector) {
103248
+ return frames.some((frame) => frame.data[selector] != null);
103249
+ }
103250
+ function firstAppear(frames, selector) {
103251
+ for (const frame of frames) {
103252
+ const sample = frame.data[selector];
103253
+ if (sample && sample.visible && sample.opacity >= APPEAR_OPACITY) {
103254
+ return { time: frame.time, rect: sample.rect };
103255
+ }
103256
+ }
103257
+ return null;
103258
+ }
103259
+ function missingIssue(selector, time) {
103260
+ return {
103261
+ code: "motion_selector_missing",
103262
+ severity: "error",
103263
+ time,
103264
+ selector,
103265
+ message: `${selector} matched no element in any sampled frame \u2014 check the selector`,
103266
+ rect: ZERO_RECT,
103267
+ fixHint: "Verify the selector exists in the composition and is spelled correctly."
103268
+ };
103269
+ }
103270
+ function appearsBy(frames, selector, bySec) {
103271
+ if (!everMatched(frames, selector)) return [missingIssue(selector, 0)];
103272
+ const appear = firstAppear(frames, selector);
103273
+ if (appear && appear.time <= bySec) return [];
103274
+ return [
103275
+ {
103276
+ code: "motion_appears_late",
103277
+ severity: "error",
103278
+ time: appear ? appear.time : bySec,
103279
+ selector,
103280
+ message: appear ? `appears at ${round(appear.time)}s but should be visible by ${round(bySec)}s (check its entrance reveal fires under seek)` : `never reaches visible opacity but should be visible by ${round(bySec)}s (check its entrance reveal fires under seek)`,
103281
+ rect: appear ? appear.rect : ZERO_RECT,
103282
+ fixHint: "The renderer seeks a paused timeline; a forward-only reveal can be skipped. Ensure the entrance is applied at this time, not only played through."
103283
+ }
103284
+ ];
103285
+ }
103286
+ function before2(frames, a, b2) {
103287
+ const issues = [];
103288
+ if (!everMatched(frames, a)) issues.push(missingIssue(a, 0));
103289
+ if (!everMatched(frames, b2)) issues.push(missingIssue(b2, 0));
103290
+ if (issues.length > 0) return issues;
103291
+ const appearA = firstAppear(frames, a);
103292
+ const appearB = firstAppear(frames, b2);
103293
+ const timeA = appearA ? appearA.time : Number.POSITIVE_INFINITY;
103294
+ const timeB = appearB ? appearB.time : Number.POSITIVE_INFINITY;
103295
+ if (timeA < timeB) return [];
103296
+ const label2 = (t2) => Number.isFinite(t2) ? `${round(t2)}s` : "never";
103297
+ return [
103298
+ {
103299
+ code: "motion_out_of_order",
103300
+ severity: "error",
103301
+ time: Number.isFinite(timeA) ? timeA : 0,
103302
+ selector: a,
103303
+ message: `${a} should appear before ${b2}, but ${a} appears at ${label2(timeA)} and ${b2} at ${label2(timeB)} \u2014 reorder the entrances`,
103304
+ rect: appearA ? appearA.rect : ZERO_RECT,
103305
+ fixHint: `Make ${a}'s entrance land before ${b2}'s on the timeline.`
103306
+ }
103307
+ ];
103308
+ }
103309
+ function isOffFrame(r2, canvas) {
103310
+ return r2.left < -FRAME_TOLERANCE || r2.top < -FRAME_TOLERANCE || r2.right > canvas.width + FRAME_TOLERANCE || r2.bottom > canvas.height + FRAME_TOLERANCE;
103311
+ }
103312
+ function staysInFrame(frames, selector, canvas) {
103313
+ if (!everMatched(frames, selector)) return [missingIssue(selector, 0)];
103314
+ const appear = firstAppear(frames, selector);
103315
+ if (!appear) return [];
103316
+ for (const frame of frames) {
103317
+ const sample = frame.data[selector];
103318
+ if (frame.time < appear.time || !sample || !sample.visible) continue;
103319
+ if (!isOffFrame(sample.rect, canvas)) continue;
103320
+ const r2 = sample.rect;
103321
+ return [
103322
+ {
103323
+ code: "motion_off_frame",
103324
+ severity: "error",
103325
+ time: frame.time,
103326
+ selector,
103327
+ message: `${selector} drifts off the ${canvas.width}\xD7${canvas.height} canvas at ${round(frame.time)}s (box ${r2.left},${r2.top}\u2192${r2.right},${r2.bottom})`,
103328
+ rect: r2,
103329
+ fixHint: "Clamp the element's motion so its box stays within the canvas for the whole shot."
103330
+ }
103331
+ ];
103332
+ }
103333
+ return [];
103334
+ }
103335
+ function keepsMoving(frames, within, maxStaticSec) {
103336
+ const scope = within ?? "*";
103337
+ if (within && frames.every((frame) => !frame.liveness[scope])) {
103338
+ return [missingIssue(within, 0)];
103339
+ }
103340
+ const issues = [];
103341
+ const first = frames[0];
103342
+ if (!first) return issues;
103343
+ let runStart = first.time;
103344
+ let runSig = first.liveness[scope] ?? "";
103345
+ const flush2 = (endTime) => {
103346
+ const span = endTime - runStart;
103347
+ if (span > maxStaticSec) {
103348
+ issues.push({
103349
+ code: "motion_frozen",
103350
+ severity: "error",
103351
+ time: runStart,
103352
+ selector: within ?? "composition",
103353
+ message: `nothing moves${within ? ` within ${within}` : ""} between ${round(runStart)}s and ${round(endTime)}s (${round(span)}s static) \u2014 should keep moving`,
103354
+ rect: ZERO_RECT,
103355
+ fixHint: "Add or extend motion so no shot freezes for this long, or shorten the static hold."
103356
+ });
103357
+ }
103358
+ };
103359
+ let lastTime = runStart;
103360
+ for (const frame of frames.slice(1)) {
103361
+ lastTime = frame.time;
103362
+ const sig = frame.liveness[scope] ?? "";
103363
+ if (sig !== runSig) {
103364
+ flush2(frame.time);
103365
+ runStart = frame.time;
103366
+ runSig = sig;
103367
+ }
103368
+ }
103369
+ flush2(lastTime);
103370
+ return issues;
103371
+ }
103372
+ function evaluateMotion(frames, assertions, canvas) {
103373
+ if (frames.length === 0) return [];
103374
+ return assertions.flatMap((assertion) => {
103375
+ switch (assertion.kind) {
103376
+ case "appearsBy":
103377
+ return appearsBy(frames, assertion.selector, assertion.bySec);
103378
+ case "before":
103379
+ return before2(frames, assertion.a, assertion.b);
103380
+ case "staysInFrame":
103381
+ return staysInFrame(frames, assertion.selector, canvas);
103382
+ case "keepsMoving":
103383
+ return keepsMoving(
103384
+ frames,
103385
+ assertion.withinSelector,
103386
+ assertion.maxStaticSec ?? DEFAULT_MAX_STATIC_SEC
103387
+ );
103388
+ }
103389
+ });
103390
+ }
103391
+ function collectSamplingTargets(assertions) {
103392
+ const selectors = /* @__PURE__ */ new Set();
103393
+ const scopes = /* @__PURE__ */ new Set();
103394
+ for (const assertion of assertions) {
103395
+ switch (assertion.kind) {
103396
+ case "appearsBy":
103397
+ case "staysInFrame":
103398
+ selectors.add(assertion.selector);
103399
+ break;
103400
+ case "before":
103401
+ selectors.add(assertion.a);
103402
+ selectors.add(assertion.b);
103403
+ break;
103404
+ case "keepsMoving":
103405
+ scopes.add(assertion.withinSelector ?? "*");
103406
+ break;
103407
+ }
103408
+ }
103409
+ return { selectors: [...selectors], livenessScopes: [...scopes] };
103410
+ }
103411
+ var APPEAR_OPACITY, FRAME_TOLERANCE, DEFAULT_MAX_STATIC_SEC, ZERO_RECT;
103412
+ var init_motionAudit = __esm({
103413
+ "src/utils/motionAudit.ts"() {
103414
+ "use strict";
103415
+ APPEAR_OPACITY = 0.5;
103416
+ FRAME_TOLERANCE = 1;
103417
+ DEFAULT_MAX_STATIC_SEC = 2;
103418
+ ZERO_RECT = { left: 0, top: 0, right: 0, bottom: 0, width: 0, height: 0 };
103419
+ }
103420
+ });
103421
+
103422
+ // src/utils/motionSpec.ts
103423
+ import { existsSync as existsSync63, readFileSync as readFileSync50, readdirSync as readdirSync26 } from "fs";
103424
+ import { basename as basename14, join as join73 } from "path";
103425
+ function isObject(value) {
103426
+ return typeof value === "object" && value !== null && !Array.isArray(value);
103427
+ }
103428
+ function isSelector(value) {
103429
+ return typeof value === "string" && value.trim().length > 0;
103430
+ }
103431
+ function isPositive(value) {
103432
+ return typeof value === "number" && Number.isFinite(value) && value > 0;
103433
+ }
103434
+ function validateAssertion(raw, index) {
103435
+ const at4 = `assertions[${index}]`;
103436
+ if (!isObject(raw)) return `${at4}: must be an object`;
103437
+ const validator = typeof raw.kind === "string" ? VALIDATORS[raw.kind] : void 0;
103438
+ if (!validator) return `${at4}: unknown assertion kind ${JSON.stringify(raw.kind)}`;
103439
+ return validator(raw, at4);
103440
+ }
103441
+ function parseMotionSpec(raw) {
103442
+ if (!isObject(raw)) return { ok: false, errors: ["spec must be a JSON object"] };
103443
+ if (raw.version !== void 0 && raw.version !== 1)
103444
+ return {
103445
+ ok: false,
103446
+ errors: [`spec version ${raw.version} is not supported \u2014 upgrade the hyperframes CLI`]
103447
+ };
103448
+ if (!Array.isArray(raw.assertions))
103449
+ return { ok: false, errors: ['spec must have an "assertions" array'] };
103450
+ if (raw.duration !== void 0 && (typeof raw.duration !== "number" || !Number.isFinite(raw.duration) || raw.duration <= 0))
103451
+ return { ok: false, errors: ['"duration" must be a positive number when present'] };
103452
+ const assertions = [];
103453
+ const errors = [];
103454
+ raw.assertions.forEach((entry, index) => {
103455
+ const result = validateAssertion(entry, index);
103456
+ if (typeof result === "string") errors.push(result);
103457
+ else assertions.push(result);
103458
+ });
103459
+ if (errors.length > 0) return { ok: false, errors };
103460
+ if (assertions.length === 0) return { ok: false, errors: ["spec has no assertions"] };
103461
+ const spec = { assertions };
103462
+ if (typeof raw.duration === "number") spec.duration = raw.duration;
103463
+ return { ok: true, spec };
103464
+ }
103465
+ function findMotionSpec(projectDir) {
103466
+ if (!existsSync63(projectDir)) return null;
103467
+ const entries2 = readdirSync26(projectDir);
103468
+ const sidecars = entries2.filter((name) => name.endsWith(".motion.json")).sort();
103469
+ if (!sidecars[0]) return null;
103470
+ if (sidecars.length === 1) return join73(projectDir, sidecars[0]);
103471
+ const htmlBases = new Set(
103472
+ entries2.filter((name) => name.endsWith(".html")).map((name) => basename14(name, ".html"))
103473
+ );
103474
+ const matched = sidecars.filter((name) => htmlBases.has(basename14(name, ".motion.json")));
103475
+ if (matched.length > 1) {
103476
+ throw new Error(
103477
+ `ambiguous motion sidecars in ${projectDir}: ${matched.join(", ")} each match a composition \u2014 remove the sidecars you do not need, or use one composition per project`
103478
+ );
103479
+ }
103480
+ return join73(projectDir, matched[0] ?? sidecars[0]);
103481
+ }
103482
+ function readMotionSpec(path2) {
103483
+ let raw;
103484
+ try {
103485
+ raw = JSON.parse(readFileSync50(path2, "utf-8"));
103486
+ } catch (err) {
103487
+ return { ok: false, errors: [`could not read ${basename14(path2)}: ${err.message}`] };
103488
+ }
103489
+ return parseMotionSpec(raw);
103490
+ }
103491
+ var VALIDATORS;
103492
+ var init_motionSpec = __esm({
103493
+ "src/utils/motionSpec.ts"() {
103494
+ "use strict";
103495
+ VALIDATORS = {
103496
+ appearsBy: (raw, at4) => {
103497
+ if (!isSelector(raw.selector))
103498
+ return `${at4} (appearsBy): "selector" must be a non-empty string`;
103499
+ if (typeof raw.bySec !== "number" || !Number.isFinite(raw.bySec) || raw.bySec < 0)
103500
+ return `${at4} (appearsBy): "bySec" must be a number >= 0`;
103501
+ return { kind: "appearsBy", selector: raw.selector, bySec: raw.bySec };
103502
+ },
103503
+ before: (raw, at4) => {
103504
+ if (!isSelector(raw.a)) return `${at4} (before): "a" must be a non-empty string`;
103505
+ if (!isSelector(raw.b)) return `${at4} (before): "b" must be a non-empty string`;
103506
+ return { kind: "before", a: raw.a, b: raw.b };
103507
+ },
103508
+ staysInFrame: (raw, at4) => {
103509
+ if (!isSelector(raw.selector))
103510
+ return `${at4} (staysInFrame): "selector" must be a non-empty string`;
103511
+ return { kind: "staysInFrame", selector: raw.selector };
103512
+ },
103513
+ keepsMoving: (raw, at4) => {
103514
+ if (raw.withinSelector !== void 0 && !isSelector(raw.withinSelector))
103515
+ return `${at4} (keepsMoving): "withinSelector" must be a non-empty string when present`;
103516
+ if (raw.withinSelector === "*")
103517
+ return `${at4} (keepsMoving): "withinSelector" cannot be "*" \u2014 omit it for whole-composition liveness`;
103518
+ if (raw.maxStaticSec !== void 0 && !isPositive(raw.maxStaticSec))
103519
+ return `${at4} (keepsMoving): "maxStaticSec" must be a number > 0 when present`;
103520
+ const assertion = { kind: "keepsMoving" };
103521
+ if (isSelector(raw.withinSelector)) assertion.withinSelector = raw.withinSelector;
103522
+ if (isPositive(raw.maxStaticSec)) assertion.maxStaticSec = raw.maxStaticSec;
103523
+ return assertion;
103524
+ }
103525
+ };
103526
+ }
103527
+ });
103528
+
103232
103529
  // src/commands/layout.ts
103233
103530
  var layout_exports = {};
103234
103531
  __export(layout_exports, {
@@ -103236,9 +103533,15 @@ __export(layout_exports, {
103236
103533
  default: () => layout_default,
103237
103534
  examples: () => examples10
103238
103535
  });
103239
- import { existsSync as existsSync63, readFileSync as readFileSync50 } from "fs";
103240
- import { dirname as dirname30, join as join73 } from "path";
103536
+ import { existsSync as existsSync64, readFileSync as readFileSync51 } from "fs";
103537
+ import { dirname as dirname30, join as join74 } from "path";
103241
103538
  import { fileURLToPath as fileURLToPath9 } from "url";
103539
+ function buildMotionSampleTimes(duration) {
103540
+ if (!Number.isFinite(duration) || duration <= 0) return [];
103541
+ const count = Math.min(MOTION_MAX_SAMPLES, Math.max(2, Math.ceil(duration * MOTION_FPS) + 1));
103542
+ const step = duration / (count - 1);
103543
+ return Array.from({ length: count }, (_, index) => Math.round(index * step * 1e3) / 1e3);
103544
+ }
103242
103545
  async function getCompositionDuration2(page) {
103243
103546
  return page.evaluate(() => {
103244
103547
  const win = window;
@@ -103394,28 +103697,20 @@ async function runLayoutAudit(projectDir, opts) {
103394
103697
  transitionSamplesDropped = transitions.dropped;
103395
103698
  }
103396
103699
  const samples = mergeSampleTimes(baseSamples, transitionSamples);
103397
- if (samples.length === 0) {
103398
- return { duration, samples, transitionSamples, transitionSamplesDropped, rawIssues: [] };
103399
- }
103400
- await page.addScriptTag({ content: loadLayoutAuditScript() });
103401
- const issues = [];
103402
- for (const time of samples) {
103403
- await seekTo(page, time);
103404
- const sampleIssues = await page.evaluate(
103405
- (auditOptions) => {
103406
- const win = window;
103407
- return win.__hyperframesLayoutAudit?.(auditOptions) ?? [];
103408
- },
103409
- { time, tolerance: opts.tolerance }
103410
- );
103411
- issues.push(...sampleIssues);
103700
+ const issues = await collectLayoutIssues(page, samples, opts.tolerance);
103701
+ let motionSamples = 0;
103702
+ if (opts.motion) {
103703
+ const motion = await runMotionPass(page, opts.motion, duration);
103704
+ issues.push(...motion.issues);
103705
+ motionSamples = motion.sampleCount;
103412
103706
  }
103413
103707
  return {
103414
103708
  duration,
103415
103709
  samples,
103416
103710
  transitionSamples,
103417
103711
  transitionSamplesDropped,
103418
- rawIssues: dedupeLayoutIssues(issues)
103712
+ rawIssues: dedupeLayoutIssues(issues),
103713
+ motionSamples
103419
103714
  };
103420
103715
  } finally {
103421
103716
  await chromeBrowser?.close().catch(() => {
@@ -103423,15 +103718,101 @@ async function runLayoutAudit(projectDir, opts) {
103423
103718
  await server.close();
103424
103719
  }
103425
103720
  }
103426
- function loadLayoutAuditScript() {
103427
- const candidates = [
103428
- join73(__dirname2, "layout-audit.browser.js"),
103429
- join73(__dirname2, "commands", "layout-audit.browser.js")
103430
- ];
103721
+ function loadBrowserScript(name) {
103722
+ const candidates = [join74(__dirname2, name), join74(__dirname2, "commands", name)];
103431
103723
  for (const candidate of candidates) {
103432
- if (existsSync63(candidate)) return readFileSync50(candidate, "utf-8");
103724
+ if (existsSync64(candidate)) return readFileSync51(candidate, "utf-8");
103725
+ }
103726
+ throw new Error(`Missing browser script ${name}`);
103727
+ }
103728
+ function loadLayoutAuditScript() {
103729
+ return loadBrowserScript("layout-audit.browser.js");
103730
+ }
103731
+ async function collectLayoutIssues(page, samples, tolerance) {
103732
+ if (samples.length === 0) return [];
103733
+ await page.addScriptTag({ content: loadLayoutAuditScript() });
103734
+ const issues = [];
103735
+ for (const time of samples) {
103736
+ await seekTo(page, time);
103737
+ const sampleIssues = await page.evaluate(
103738
+ (auditOptions) => {
103739
+ const win = window;
103740
+ return win.__hyperframesLayoutAudit?.(auditOptions) ?? [];
103741
+ },
103742
+ { time, tolerance }
103743
+ );
103744
+ issues.push(...sampleIssues);
103745
+ }
103746
+ return issues;
103747
+ }
103748
+ async function findAmbiguousSelectors(page, selectors) {
103749
+ if (selectors.length === 0) return [];
103750
+ const multiMatch = await page.evaluate(
103751
+ (sels) => sels.filter((sel) => {
103752
+ try {
103753
+ return document.querySelectorAll(sel).length > 1;
103754
+ } catch {
103755
+ return false;
103756
+ }
103757
+ }),
103758
+ selectors
103759
+ );
103760
+ return multiMatch.map(ambiguousIssue);
103761
+ }
103762
+ async function collectMotionFrames(page, times, selectors, livenessScopes) {
103763
+ const frames = [];
103764
+ for (const time of times) {
103765
+ await seekTo(page, time);
103766
+ const sample = await page.evaluate(
103767
+ (options) => {
103768
+ const win = window;
103769
+ return win.__hyperframesMotionSample?.(options) ?? { data: {}, liveness: {} };
103770
+ },
103771
+ { selectors, livenessScopes }
103772
+ );
103773
+ frames.push({ time, data: sample.data, liveness: sample.liveness });
103433
103774
  }
103434
- throw new Error("Missing layout audit browser script");
103775
+ return frames;
103776
+ }
103777
+ async function runMotionPass(page, spec, duration) {
103778
+ const times = buildMotionSampleTimes(spec.duration ?? duration);
103779
+ if (times.length === 0) return { issues: [], sampleCount: 0 };
103780
+ const { selectors, livenessScopes } = collectSamplingTargets(spec.assertions);
103781
+ const ambiguous = await findAmbiguousSelectors(page, selectors);
103782
+ if (ambiguous.length > 0) return { issues: ambiguous, sampleCount: 0 };
103783
+ const canvas = await page.evaluate(() => ({
103784
+ width: window.innerWidth,
103785
+ height: window.innerHeight
103786
+ }));
103787
+ await page.addScriptTag({ content: loadBrowserScript("motion-sample.browser.js") });
103788
+ const frames = await collectMotionFrames(page, times, selectors, livenessScopes);
103789
+ return { issues: evaluateMotion(frames, spec.assertions, canvas), sampleCount: frames.length };
103790
+ }
103791
+ function resolveMotionSpec(specPath, json) {
103792
+ const parsed = readMotionSpec(specPath);
103793
+ if (parsed.ok) return parsed.spec;
103794
+ const message = `Invalid motion spec ${specPath}: ${parsed.errors.join("; ")}`;
103795
+ if (json) {
103796
+ console.log(
103797
+ JSON.stringify(
103798
+ withMeta({
103799
+ schemaVersion: INSPECT_SCHEMA_VERSION,
103800
+ ok: false,
103801
+ error: message,
103802
+ issues: [],
103803
+ errorCount: 0,
103804
+ warningCount: 0,
103805
+ infoCount: 0,
103806
+ issueCount: 0
103807
+ }),
103808
+ null,
103809
+ 2
103810
+ )
103811
+ );
103812
+ } else {
103813
+ console.error(`${c2.error("\u2717")} ${message}`);
103814
+ }
103815
+ process.exit(1);
103435
103816
  }
103436
103817
  function parseAt(value) {
103437
103818
  if (!value) return void 0;
@@ -103442,7 +103823,7 @@ function createInspectCommand(commandName) {
103442
103823
  return defineCommand({
103443
103824
  meta: {
103444
103825
  name: commandName,
103445
- description: "Inspect rendered composition layout for text and container overflow"
103826
+ description: "Inspect rendered composition layout for text/container overflow, plus optional motion verification via a *.motion.json sidecar"
103446
103827
  },
103447
103828
  args: {
103448
103829
  dir: { type: "positional", description: "Project directory", required: false },
@@ -103503,11 +103884,14 @@ function createInspectCommand(commandName) {
103503
103884
  const maxTransitionSamples = Number.isFinite(maxTransitionSamplesRaw) && maxTransitionSamplesRaw > 0 ? maxTransitionSamplesRaw : void 0;
103504
103885
  const strict = !!args.strict;
103505
103886
  const collapseStatic = args["collapse-static"] !== false;
103887
+ const motionSpecPath = findMotionSpec(project.dir);
103888
+ const motionSpec = motionSpecPath ? resolveMotionSpec(motionSpecPath, !!args.json) : void 0;
103506
103889
  if (!args.json) {
103507
103890
  const baseLabel = at4 ? `${at4.length} explicit timestamp(s)` : `${samples} timeline samples`;
103508
103891
  const sampleLabel = atTransitions ? `${baseLabel} + transition boundaries` : baseLabel;
103892
+ const motionLabel = motionSpec ? ` + motion spec (${motionSpec.assertions.length} assertion(s))` : "";
103509
103893
  console.log(
103510
- `${c2.accent("\u25C6")} Inspecting layout for ${c2.accent(project.name)} (${sampleLabel})`
103894
+ `${c2.accent("\u25C6")} Inspecting layout for ${c2.accent(project.name)} (${sampleLabel}${motionLabel})`
103511
103895
  );
103512
103896
  }
103513
103897
  try {
@@ -103517,7 +103901,8 @@ function createInspectCommand(commandName) {
103517
103901
  atTransitions,
103518
103902
  maxTransitionSamples,
103519
103903
  timeout,
103520
- tolerance
103904
+ tolerance,
103905
+ motion: motionSpec
103521
103906
  });
103522
103907
  if (!args.json && result.transitionSamplesDropped > 0) {
103523
103908
  console.log(
@@ -103540,6 +103925,8 @@ function createInspectCommand(commandName) {
103540
103925
  tolerance,
103541
103926
  strict,
103542
103927
  collapseStatic,
103928
+ motionSpec: motionSpec ? motionSpecPath : void 0,
103929
+ motionSamples: motionSpec ? result.motionSamples : void 0,
103543
103930
  ...summary,
103544
103931
  totalIssueCount: limited.totalIssueCount,
103545
103932
  truncated: limited.truncated,
@@ -103607,7 +103994,7 @@ function createInspectCommand(commandName) {
103607
103994
  }
103608
103995
  });
103609
103996
  }
103610
- var __filename, __dirname2, SEEK_SETTLE_MS, INSPECT_SCHEMA_VERSION, examples10, layout_default;
103997
+ var __filename, __dirname2, SEEK_SETTLE_MS, INSPECT_SCHEMA_VERSION, MOTION_FPS, MOTION_MAX_SAMPLES, examples10, layout_default;
103611
103998
  var init_layout2 = __esm({
103612
103999
  "src/commands/layout.ts"() {
103613
104000
  "use strict";
@@ -103617,10 +104004,14 @@ var init_layout2 = __esm({
103617
104004
  init_staticProjectServer();
103618
104005
  init_updateCheck();
103619
104006
  init_layoutAudit();
104007
+ init_motionAudit();
104008
+ init_motionSpec();
103620
104009
  __filename = fileURLToPath9(import.meta.url);
103621
104010
  __dirname2 = dirname30(__filename);
103622
104011
  SEEK_SETTLE_MS = 120;
103623
104012
  INSPECT_SCHEMA_VERSION = 1;
104013
+ MOTION_FPS = 20;
104014
+ MOTION_MAX_SAMPLES = 300;
103624
104015
  examples10 = [
103625
104016
  ["Inspect visual layout across the current composition", "hyperframes layout"],
103626
104017
  ["Inspect a specific project", "hyperframes layout ./my-video"],
@@ -103629,6 +104020,10 @@ var init_layout2 = __esm({
103629
104020
  [
103630
104021
  "Also sample at tween boundaries to catch transient overlaps",
103631
104022
  "hyperframes layout --at-transitions"
104023
+ ],
104024
+ [
104025
+ "Verify motion intent (add a *.motion.json sidecar next to the composition)",
104026
+ "hyperframes layout --json"
103632
104027
  ]
103633
104028
  ];
103634
104029
  layout_default = createInspectCommand("layout");
@@ -103655,6 +104050,10 @@ var init_inspect = __esm({
103655
104050
  "Also sample at tween boundaries to catch transient overlaps",
103656
104051
  "hyperframes inspect --at-transitions"
103657
104052
  ],
104053
+ [
104054
+ "Verify motion intent (add a *.motion.json sidecar next to the composition)",
104055
+ "hyperframes inspect --json"
104056
+ ],
103658
104057
  ["Run the compatibility alias", "hyperframes layout --json"]
103659
104058
  ];
103660
104059
  inspect_default = createInspectCommand("inspect");
@@ -103667,12 +104066,12 @@ __export(info_exports, {
103667
104066
  default: () => info_default,
103668
104067
  examples: () => examples12
103669
104068
  });
103670
- import { readFileSync as readFileSync51, readdirSync as readdirSync26, statSync as statSync22 } from "fs";
103671
- import { join as join74 } from "path";
104069
+ import { readFileSync as readFileSync52, readdirSync as readdirSync27, statSync as statSync22 } from "fs";
104070
+ import { join as join75 } from "path";
103672
104071
  function totalSize(dir) {
103673
104072
  let total = 0;
103674
- for (const entry of readdirSync26(dir, { withFileTypes: true })) {
103675
- const path2 = join74(dir, entry.name);
104073
+ for (const entry of readdirSync27(dir, { withFileTypes: true })) {
104074
+ const path2 = join75(dir, entry.name);
103676
104075
  if (entry.isDirectory()) {
103677
104076
  total += totalSize(path2);
103678
104077
  } else {
@@ -103704,7 +104103,7 @@ var init_info = __esm({
103704
104103
  },
103705
104104
  async run({ args }) {
103706
104105
  const project = resolveProject(args.dir);
103707
- const html = readFileSync51(project.indexPath, "utf-8");
104106
+ const html = readFileSync52(project.indexPath, "utf-8");
103708
104107
  ensureDOMParser();
103709
104108
  const parsed = parseHtml(html);
103710
104109
  const tracks = new Set(parsed.elements.map((el) => el.zIndex));
@@ -103762,7 +104161,7 @@ __export(compositions_exports, {
103762
104161
  examples: () => examples13,
103763
104162
  parseSubComposition: () => parseSubComposition
103764
104163
  });
103765
- import { existsSync as existsSync64, readFileSync as readFileSync52 } from "fs";
104164
+ import { existsSync as existsSync65, readFileSync as readFileSync53 } from "fs";
103766
104165
  import { resolve as resolve43, dirname as dirname31 } from "path";
103767
104166
  function countRenderableDescendants(root) {
103768
104167
  return Array.from(root.querySelectorAll("*")).filter(
@@ -103796,8 +104195,8 @@ function parseCompositions(html, baseDir) {
103796
104195
  const compositionSrc = div.getAttribute("data-composition-src");
103797
104196
  if (compositionSrc) {
103798
104197
  const subPath = resolve43(baseDir, compositionSrc);
103799
- if (existsSync64(subPath)) {
103800
- const subHtml = readFileSync52(subPath, "utf-8");
104198
+ if (existsSync65(subPath)) {
104199
+ const subHtml = readFileSync53(subPath, "utf-8");
103801
104200
  const subInfo = parseSubComposition(subHtml, id, width, height);
103802
104201
  compositions.push({ ...subInfo, source: compositionSrc });
103803
104202
  return;
@@ -103900,7 +104299,7 @@ var init_compositions = __esm({
103900
104299
  },
103901
104300
  async run({ args }) {
103902
104301
  const project = resolveProject(args.dir);
103903
- const html = readFileSync52(project.indexPath, "utf-8");
104302
+ const html = readFileSync53(project.indexPath, "utf-8");
103904
104303
  ensureDOMParser();
103905
104304
  const compositions = parseCompositions(html, dirname31(project.indexPath));
103906
104305
  if (compositions.length === 0) {
@@ -103938,8 +104337,8 @@ __export(benchmark_exports, {
103938
104337
  default: () => benchmark_default,
103939
104338
  examples: () => examples14
103940
104339
  });
103941
- import { existsSync as existsSync65, statSync as statSync23 } from "fs";
103942
- import { resolve as resolve44, join as join75 } from "path";
104340
+ import { existsSync as existsSync66, statSync as statSync23 } from "fs";
104341
+ import { resolve as resolve44, join as join76 } from "path";
103943
104342
  var examples14, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
103944
104343
  var init_benchmark = __esm({
103945
104344
  "src/commands/benchmark.ts"() {
@@ -104017,7 +104416,7 @@ var init_benchmark = __esm({
104017
104416
  s2?.start(`Benchmarking ${config.label}...`);
104018
104417
  for (let i2 = 0; i2 < runsPerConfig; i2++) {
104019
104418
  s2?.message(`${config.label} \u2014 run ${i2 + 1}/${runsPerConfig}`);
104020
- const outputPath = join75(
104419
+ const outputPath = join76(
104021
104420
  benchDir,
104022
104421
  `${config.label.replace(/[^a-zA-Z0-9]/g, "_")}_run${i2}.mp4`
104023
104422
  );
@@ -104031,7 +104430,7 @@ var init_benchmark = __esm({
104031
104430
  await producer.executeRenderJob(job, project.dir, outputPath);
104032
104431
  const elapsedMs = Date.now() - startTime;
104033
104432
  let fileSize = null;
104034
- if (existsSync65(outputPath)) {
104433
+ if (existsSync66(outputPath)) {
104035
104434
  const stat3 = statSync23(outputPath);
104036
104435
  fileSize = stat3.size;
104037
104436
  }
@@ -104285,9 +104684,9 @@ __export(manager_exports3, {
104285
104684
  modelPath: () => modelPath,
104286
104685
  selectProviders: () => selectProviders
104287
104686
  });
104288
- import { existsSync as existsSync66, mkdirSync as mkdirSync37 } from "fs";
104687
+ import { existsSync as existsSync67, mkdirSync as mkdirSync37 } from "fs";
104289
104688
  import { homedir as homedir9, platform as platform8, arch } from "os";
104290
- import { join as join76 } from "path";
104689
+ import { join as join77 } from "path";
104291
104690
  function isDevice(value) {
104292
104691
  return typeof value === "string" && DEVICES.includes(value);
104293
104692
  }
@@ -104327,15 +104726,15 @@ function listAvailableProviders() {
104327
104726
  return out;
104328
104727
  }
104329
104728
  function modelPath(model = DEFAULT_MODEL2) {
104330
- return join76(MODELS_DIR2, `${model}.onnx`);
104729
+ return join77(MODELS_DIR2, `${model}.onnx`);
104331
104730
  }
104332
104731
  async function ensureModel2(model = DEFAULT_MODEL2, options) {
104333
104732
  const dest = modelPath(model);
104334
- if (existsSync66(dest)) return dest;
104733
+ if (existsSync67(dest)) return dest;
104335
104734
  mkdirSync37(MODELS_DIR2, { recursive: true });
104336
104735
  options?.onProgress?.(`Downloading ${model} weights (~168 MB)...`);
104337
104736
  await downloadFile(MODEL_URLS[model], dest);
104338
- if (!existsSync66(dest)) {
104737
+ if (!existsSync67(dest)) {
104339
104738
  throw new Error(`Model download failed: ${model}`);
104340
104739
  }
104341
104740
  return dest;
@@ -104345,7 +104744,7 @@ var init_manager3 = __esm({
104345
104744
  "src/background-removal/manager.ts"() {
104346
104745
  "use strict";
104347
104746
  init_download();
104348
- MODELS_DIR2 = join76(homedir9(), ".cache", "hyperframes", "background-removal", "models");
104747
+ MODELS_DIR2 = join77(homedir9(), ".cache", "hyperframes", "background-removal", "models");
104349
104748
  DEFAULT_MODEL2 = "u2net_human_seg";
104350
104749
  MODEL_URLS = {
104351
104750
  u2net_human_seg: "https://github.com/danielgatis/rembg/releases/download/v0.0.0/u2net_human_seg.onnx"
@@ -104827,12 +105226,12 @@ __export(remove_background_exports, {
104827
105226
  examples: () => examples16
104828
105227
  });
104829
105228
  import { resolve as resolve45 } from "path";
104830
- import { existsSync as existsSync67 } from "fs";
105229
+ import { existsSync as existsSync68 } from "fs";
104831
105230
  async function showInfo(json) {
104832
105231
  const { selectProviders: selectProviders2, listAvailableProviders: listAvailableProviders2, DEFAULT_MODEL: DEFAULT_MODEL4, MODEL_MEMORY_MB: MODEL_MEMORY_MB2, modelPath: modelPath2 } = await Promise.resolve().then(() => (init_manager3(), manager_exports3));
104833
105232
  const providers = listAvailableProviders2();
104834
105233
  const auto = selectProviders2("auto");
104835
- const cached2 = existsSync67(modelPath2());
105234
+ const cached2 = existsSync68(modelPath2());
104836
105235
  if (json) {
104837
105236
  console.log(
104838
105237
  JSON.stringify({
@@ -105039,8 +105438,8 @@ __export(transcribe_exports2, {
105039
105438
  default: () => transcribe_default,
105040
105439
  examples: () => examples17
105041
105440
  });
105042
- import { existsSync as existsSync68, writeFileSync as writeFileSync30 } from "fs";
105043
- import { resolve as resolve46, join as join77, extname as extname11, dirname as dirname32 } from "path";
105441
+ import { existsSync as existsSync69, writeFileSync as writeFileSync30 } from "fs";
105442
+ import { resolve as resolve46, join as join78, extname as extname11, dirname as dirname32 } from "path";
105044
105443
  async function importTranscript(inputPath, dir, json) {
105045
105444
  const { loadTranscript: loadTranscript2, patchCaptionHtml: patchCaptionHtml2 } = await Promise.resolve().then(() => (init_normalize(), normalize_exports));
105046
105445
  const { words, format } = loadTranscript2(inputPath);
@@ -105048,7 +105447,7 @@ async function importTranscript(inputPath, dir, json) {
105048
105447
  console.error(c2.error("No words found in transcript."));
105049
105448
  process.exit(1);
105050
105449
  }
105051
- const outPath = join77(dir, "transcript.json");
105450
+ const outPath = join78(dir, "transcript.json");
105052
105451
  writeFileSync30(outPath, JSON.stringify(words, null, 2));
105053
105452
  patchCaptionHtml2(dir, words);
105054
105453
  if (json) {
@@ -105075,9 +105474,9 @@ async function transcribeAudio(inputPath, dir, opts) {
105075
105474
  });
105076
105475
  let { words } = loadTranscript2(result.transcriptPath);
105077
105476
  if (result.speechOnsetSeconds != null) {
105078
- const before2 = words.length;
105477
+ const before3 = words.length;
105079
105478
  words = stripBeforeOnset2(words, result.speechOnsetSeconds);
105080
- const stripped = before2 - words.length;
105479
+ const stripped = before3 - words.length;
105081
105480
  if (stripped > 0 && !opts.json) {
105082
105481
  spin?.message(
105083
105482
  `Stripped ${stripped} words before speech onset at ${result.speechOnsetSeconds.toFixed(1)}s`
@@ -105165,7 +105564,7 @@ var init_transcribe2 = __esm({
105165
105564
  },
105166
105565
  async run({ args }) {
105167
105566
  const inputPath = resolve46(args.input);
105168
- if (!existsSync68(inputPath)) {
105567
+ if (!existsSync69(inputPath)) {
105169
105568
  console.error(c2.error(`File not found: ${args.input}`));
105170
105569
  process.exit(1);
105171
105570
  }
@@ -105186,9 +105585,9 @@ var init_transcribe2 = __esm({
105186
105585
  });
105187
105586
 
105188
105587
  // src/tts/manager.ts
105189
- import { existsSync as existsSync69, mkdirSync as mkdirSync38 } from "fs";
105588
+ import { existsSync as existsSync70, mkdirSync as mkdirSync38 } from "fs";
105190
105589
  import { homedir as homedir10 } from "os";
105191
- import { join as join78 } from "path";
105590
+ import { join as join79 } from "path";
105192
105591
  function inferLangFromVoiceId(voiceId) {
105193
105592
  const first = voiceId.charAt(0).toLowerCase();
105194
105593
  return VOICE_PREFIX_LANG[first] ?? "en-us";
@@ -105197,8 +105596,8 @@ function isSupportedLang(value) {
105197
105596
  return SUPPORTED_LANGS.includes(value);
105198
105597
  }
105199
105598
  async function ensureModel3(model = DEFAULT_MODEL3, options) {
105200
- const modelPath2 = join78(MODELS_DIR3, `${model}.onnx`);
105201
- if (existsSync69(modelPath2)) return modelPath2;
105599
+ const modelPath2 = join79(MODELS_DIR3, `${model}.onnx`);
105600
+ if (existsSync70(modelPath2)) return modelPath2;
105202
105601
  const url = MODEL_URLS2[model];
105203
105602
  if (!url) {
105204
105603
  throw new Error(
@@ -105208,18 +105607,18 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
105208
105607
  mkdirSync38(MODELS_DIR3, { recursive: true });
105209
105608
  options?.onProgress?.(`Downloading TTS model ${model} (~311 MB)...`);
105210
105609
  await downloadFile(url, modelPath2);
105211
- if (!existsSync69(modelPath2)) {
105610
+ if (!existsSync70(modelPath2)) {
105212
105611
  throw new Error(`Model download failed: ${model}`);
105213
105612
  }
105214
105613
  return modelPath2;
105215
105614
  }
105216
105615
  async function ensureVoices(options) {
105217
- const voicesPath = join78(VOICES_DIR, "voices-v1.0.bin");
105218
- if (existsSync69(voicesPath)) return voicesPath;
105616
+ const voicesPath = join79(VOICES_DIR, "voices-v1.0.bin");
105617
+ if (existsSync70(voicesPath)) return voicesPath;
105219
105618
  mkdirSync38(VOICES_DIR, { recursive: true });
105220
105619
  options?.onProgress?.("Downloading voice data (~27 MB)...");
105221
105620
  await downloadFile(VOICES_URL, voicesPath);
105222
- if (!existsSync69(voicesPath)) {
105621
+ if (!existsSync70(voicesPath)) {
105223
105622
  throw new Error("Voice data download failed");
105224
105623
  }
105225
105624
  return voicesPath;
@@ -105229,9 +105628,9 @@ var init_manager4 = __esm({
105229
105628
  "src/tts/manager.ts"() {
105230
105629
  "use strict";
105231
105630
  init_download();
105232
- CACHE_DIR3 = join78(homedir10(), ".cache", "hyperframes", "tts");
105233
- MODELS_DIR3 = join78(CACHE_DIR3, "models");
105234
- VOICES_DIR = join78(CACHE_DIR3, "voices");
105631
+ CACHE_DIR3 = join79(homedir10(), ".cache", "hyperframes", "tts");
105632
+ MODELS_DIR3 = join79(CACHE_DIR3, "models");
105633
+ VOICES_DIR = join79(CACHE_DIR3, "voices");
105235
105634
  DEFAULT_MODEL3 = "kokoro-v1.0";
105236
105635
  MODEL_URLS2 = {
105237
105636
  "kokoro-v1.0": "https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/kokoro-v1.0.onnx"
@@ -105292,8 +105691,8 @@ __export(synthesize_exports, {
105292
105691
  synthesize: () => synthesize
105293
105692
  });
105294
105693
  import { execFileSync as execFileSync9 } from "child_process";
105295
- import { existsSync as existsSync70, writeFileSync as writeFileSync31, mkdirSync as mkdirSync39, readdirSync as readdirSync27, unlinkSync as unlinkSync7 } from "fs";
105296
- import { join as join79, dirname as dirname33, basename as basename14 } from "path";
105694
+ import { existsSync as existsSync71, writeFileSync as writeFileSync31, mkdirSync as mkdirSync39, readdirSync as readdirSync28, unlinkSync as unlinkSync7 } from "fs";
105695
+ import { join as join80, dirname as dirname33, basename as basename15 } from "path";
105297
105696
  import { homedir as homedir11 } from "os";
105298
105697
  function findPython() {
105299
105698
  for (const name of ["python3", "python"]) {
@@ -105329,15 +105728,15 @@ function hasPythonPackage(python, pkg) {
105329
105728
  }
105330
105729
  }
105331
105730
  function ensureSynthScript() {
105332
- if (!existsSync70(SCRIPT_PATH)) {
105731
+ if (!existsSync71(SCRIPT_PATH)) {
105333
105732
  mkdirSync39(SCRIPT_DIR, { recursive: true });
105334
105733
  writeFileSync31(SCRIPT_PATH, SYNTH_SCRIPT);
105335
- const currentName = basename14(SCRIPT_PATH);
105734
+ const currentName = basename15(SCRIPT_PATH);
105336
105735
  try {
105337
- for (const entry of readdirSync27(SCRIPT_DIR)) {
105736
+ for (const entry of readdirSync28(SCRIPT_DIR)) {
105338
105737
  if (entry !== currentName && /^synth(-v\d+)?\.py$/.test(entry)) {
105339
105738
  try {
105340
- unlinkSync7(join79(SCRIPT_DIR, entry));
105739
+ unlinkSync7(join80(SCRIPT_DIR, entry));
105341
105740
  } catch {
105342
105741
  }
105343
105742
  }
@@ -105383,7 +105782,7 @@ async function synthesize(text, outputPath, options) {
105383
105782
  stdio: ["pipe", "pipe", "pipe"]
105384
105783
  }
105385
105784
  );
105386
- if (!existsSync70(outputPath)) {
105785
+ if (!existsSync71(outputPath)) {
105387
105786
  throw new Error("Synthesis completed but no output file was created");
105388
105787
  }
105389
105788
  const lines = stdout2.trim().split("\n");
@@ -105396,7 +105795,7 @@ async function synthesize(text, outputPath, options) {
105396
105795
  langApplied: result.langApplied
105397
105796
  };
105398
105797
  } catch (err) {
105399
- if (err instanceof SyntaxError && existsSync70(outputPath)) {
105798
+ if (err instanceof SyntaxError && existsSync71(outputPath)) {
105400
105799
  throw new Error(
105401
105800
  "Speech was generated but metadata could not be read. Check the output file manually."
105402
105801
  );
@@ -105447,8 +105846,8 @@ print(json.dumps({
105447
105846
  "langApplied": bool(lang and supports_lang),
105448
105847
  }))
105449
105848
  `;
105450
- SCRIPT_DIR = join79(homedir11(), ".cache", "hyperframes", "tts");
105451
- SCRIPT_PATH = join79(SCRIPT_DIR, "synth-v2.py");
105849
+ SCRIPT_DIR = join80(homedir11(), ".cache", "hyperframes", "tts");
105850
+ SCRIPT_PATH = join80(SCRIPT_DIR, "synth-v2.py");
105452
105851
  }
105453
105852
  });
105454
105853
 
@@ -105458,7 +105857,7 @@ __export(tts_exports, {
105458
105857
  default: () => tts_default,
105459
105858
  examples: () => examples18
105460
105859
  });
105461
- import { existsSync as existsSync71, readFileSync as readFileSync53 } from "fs";
105860
+ import { existsSync as existsSync72, readFileSync as readFileSync54 } from "fs";
105462
105861
  import { resolve as resolve47, extname as extname12 } from "path";
105463
105862
  function listVoices(json) {
105464
105863
  const rows = BUNDLED_VOICES.map((v2) => ({ ...v2, defaultLang: inferLangFromVoiceId(v2.id) }));
@@ -105568,8 +105967,8 @@ var init_tts = __esm({
105568
105967
  }
105569
105968
  let text;
105570
105969
  const maybeFile = resolve47(args.input);
105571
- if (existsSync71(maybeFile) && extname12(maybeFile).toLowerCase() === ".txt") {
105572
- text = readFileSync53(maybeFile, "utf-8").trim();
105970
+ if (existsSync72(maybeFile) && extname12(maybeFile).toLowerCase() === ".txt") {
105971
+ text = readFileSync54(maybeFile, "utf-8").trim();
105573
105972
  if (!text) {
105574
105973
  console.error(c2.error("File is empty."));
105575
105974
  process.exit(1);
@@ -105661,15 +106060,15 @@ __export(docs_exports, {
105661
106060
  default: () => docs_default,
105662
106061
  examples: () => examples19
105663
106062
  });
105664
- import { readFileSync as readFileSync54, existsSync as existsSync72 } from "fs";
105665
- import { resolve as resolve48, dirname as dirname34, join as join80 } from "path";
106063
+ import { readFileSync as readFileSync55, existsSync as existsSync73 } from "fs";
106064
+ import { resolve as resolve48, dirname as dirname34, join as join81 } from "path";
105666
106065
  import { fileURLToPath as fileURLToPath10 } from "url";
105667
106066
  function docsDir() {
105668
106067
  const thisFile = fileURLToPath10(import.meta.url);
105669
106068
  const dir = dirname34(thisFile);
105670
106069
  const devPath = resolve48(dir, "..", "docs");
105671
106070
  const builtPath = resolve48(dir, "docs");
105672
- return existsSync72(devPath) ? devPath : builtPath;
106071
+ return existsSync73(devPath) ? devPath : builtPath;
105673
106072
  }
105674
106073
  function formatInlineCode(line) {
105675
106074
  return line.replace(/`([^`]+)`/g, (_match, code) => c2.accent(code));
@@ -105766,12 +106165,12 @@ var init_docs = __esm({
105766
106165
  }
105767
106166
  process.exit(1);
105768
106167
  }
105769
- const filePath = join80(docsDir(), entry.file);
105770
- if (!existsSync72(filePath)) {
106168
+ const filePath = join81(docsDir(), entry.file);
106169
+ if (!existsSync73(filePath)) {
105771
106170
  console.error(c2.error(`Doc file not found: ${filePath}`));
105772
106171
  process.exit(1);
105773
106172
  }
105774
- const content = readFileSync54(filePath, "utf-8");
106173
+ const content = readFileSync55(filePath, "utf-8");
105775
106174
  console.log();
105776
106175
  renderMarkdown(content);
105777
106176
  }
@@ -106299,8 +106698,8 @@ __export(validate_exports, {
106299
106698
  default: () => validate_default,
106300
106699
  shouldIgnoreRequestFailure: () => shouldIgnoreRequestFailure
106301
106700
  });
106302
- import { existsSync as existsSync73, readFileSync as readFileSync55 } from "fs";
106303
- import { join as join81, dirname as dirname35 } from "path";
106701
+ import { existsSync as existsSync74, readFileSync as readFileSync56 } from "fs";
106702
+ import { join as join82, dirname as dirname35 } from "path";
106304
106703
  import { fileURLToPath as fileURLToPath11 } from "url";
106305
106704
  function shouldIgnoreRequestFailure(url, errorText) {
106306
106705
  if (errorText !== "net::ERR_ABORTED") return false;
@@ -106352,11 +106751,11 @@ async function runContrastAudit(page) {
106352
106751
  }
106353
106752
  function loadContrastAuditScript() {
106354
106753
  const candidates = [
106355
- join81(__dirname3, "contrast-audit.browser.js"),
106356
- join81(__dirname3, "commands", "contrast-audit.browser.js")
106754
+ join82(__dirname3, "contrast-audit.browser.js"),
106755
+ join82(__dirname3, "commands", "contrast-audit.browser.js")
106357
106756
  ];
106358
106757
  for (const candidate of candidates) {
106359
- if (existsSync73(candidate)) return readFileSync55(candidate, "utf-8");
106758
+ if (existsSync74(candidate)) return readFileSync56(candidate, "utf-8");
106360
106759
  }
106361
106760
  throw new Error("Missing contrast audit browser script");
106362
106761
  }
@@ -106556,8 +106955,8 @@ __export(contactSheet_exports, {
106556
106955
  createSvgContactSheet: () => createSvgContactSheet
106557
106956
  });
106558
106957
  import sharp from "sharp";
106559
- import { readdirSync as readdirSync28, readFileSync as readFileSync56, writeFileSync as writeFileSync32, unlinkSync as unlinkSync8, existsSync as existsSync74 } from "fs";
106560
- import { join as join82, extname as extname13, basename as basename15, dirname as dirname36 } from "path";
106958
+ import { readdirSync as readdirSync29, readFileSync as readFileSync57, writeFileSync as writeFileSync32, unlinkSync as unlinkSync8, existsSync as existsSync75 } from "fs";
106959
+ import { join as join83, extname as extname13, basename as basename16, dirname as dirname36 } from "path";
106561
106960
  async function createContactSheet(imagePaths, outputPath, opts = {}) {
106562
106961
  const {
106563
106962
  cols = 3,
@@ -106590,7 +106989,7 @@ async function createContactSheet(imagePaths, outputPath, opts = {}) {
106590
106989
  overlays.push({ input: resized, left: x3, top: y + labelH });
106591
106990
  let labelText = `${i2 + 1}`;
106592
106991
  if (labelMode === "filename") {
106593
- labelText = `${i2 + 1}. ${basename15(files[i2]).replace(extname13(files[i2]), "")}`;
106992
+ labelText = `${i2 + 1}. ${basename16(files[i2]).replace(extname13(files[i2]), "")}`;
106594
106993
  } else if (labelMode === "custom" && labels?.[i2]) {
106595
106994
  labelText = `${i2 + 1}. ${labels[i2]}`;
106596
106995
  }
@@ -106636,10 +107035,10 @@ async function createContactSheetPages(imagePaths, outputBasePath, opts = {}, la
106636
107035
  return results;
106637
107036
  }
106638
107037
  async function createScrollContactSheet(screenshotsDir, outputPath) {
106639
- if (!existsSync74(screenshotsDir)) return [];
106640
- const scrollFiles = readdirSync28(screenshotsDir).filter((f3) => f3.startsWith("scroll-") && f3.endsWith(".png")).sort();
107038
+ if (!existsSync75(screenshotsDir)) return [];
107039
+ const scrollFiles = readdirSync29(screenshotsDir).filter((f3) => f3.startsWith("scroll-") && f3.endsWith(".png")).sort();
106641
107040
  if (scrollFiles.length === 0) return [];
106642
- const paths = scrollFiles.map((f3) => join82(screenshotsDir, f3));
107041
+ const paths = scrollFiles.map((f3) => join83(screenshotsDir, f3));
106643
107042
  const labels = scrollFiles.map((f3) => {
106644
107043
  const m2 = f3.match(/scroll-(\d+)\.png/);
106645
107044
  return m2 ? `${m2[1]}% scroll` : f3;
@@ -106653,10 +107052,10 @@ async function createScrollContactSheet(screenshotsDir, outputPath) {
106653
107052
  );
106654
107053
  }
106655
107054
  async function createSnapshotContactSheet(snapshotsDir, outputPath) {
106656
- if (!existsSync74(snapshotsDir)) return [];
106657
- const snapshotFiles = readdirSync28(snapshotsDir).filter((f3) => f3.startsWith("frame-") && f3.endsWith(".png")).sort();
107055
+ if (!existsSync75(snapshotsDir)) return [];
107056
+ const snapshotFiles = readdirSync29(snapshotsDir).filter((f3) => f3.startsWith("frame-") && f3.endsWith(".png")).sort();
106658
107057
  if (snapshotFiles.length === 0) return [];
106659
- const paths = snapshotFiles.map((f3) => join82(snapshotsDir, f3));
107058
+ const paths = snapshotFiles.map((f3) => join83(snapshotsDir, f3));
106660
107059
  const labels = snapshotFiles.map((f3) => {
106661
107060
  const m2 = f3.match(/at-([\d.]+)s/);
106662
107061
  return m2 ? `${m2[1]}s` : f3;
@@ -106670,11 +107069,11 @@ async function createSnapshotContactSheet(snapshotsDir, outputPath) {
106670
107069
  );
106671
107070
  }
106672
107071
  async function createAssetContactSheet(assetsDir, outputPath) {
106673
- if (!existsSync74(assetsDir)) return [];
107072
+ if (!existsSync75(assetsDir)) return [];
106674
107073
  const imageExts = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".webp"]);
106675
- const assetFiles = readdirSync28(assetsDir).filter((f3) => imageExts.has(extname13(f3).toLowerCase()) && !f3.includes("contact-sheet")).sort();
107074
+ const assetFiles = readdirSync29(assetsDir).filter((f3) => imageExts.has(extname13(f3).toLowerCase()) && !f3.includes("contact-sheet")).sort();
106676
107075
  if (assetFiles.length === 0) return [];
106677
- const paths = assetFiles.map((f3) => join82(assetsDir, f3));
107076
+ const paths = assetFiles.map((f3) => join83(assetsDir, f3));
106678
107077
  return createContactSheetPages(paths, outputPath, {
106679
107078
  cols: 4,
106680
107079
  cellWidth: 480,
@@ -106684,16 +107083,16 @@ async function createAssetContactSheet(assetsDir, outputPath) {
106684
107083
  }
106685
107084
  async function createSvgContactSheet(svgsDir, outputPath, assetsRootDir) {
106686
107085
  const dirsToScan = [svgsDir, assetsRootDir].filter(
106687
- (d2) => d2 !== void 0 && existsSync74(d2)
107086
+ (d2) => d2 !== void 0 && existsSync75(d2)
106688
107087
  );
106689
107088
  if (dirsToScan.length === 0) return [];
106690
107089
  const seen = /* @__PURE__ */ new Set();
106691
107090
  const svgPaths = [];
106692
107091
  for (const dir of dirsToScan) {
106693
- for (const f3 of readdirSync28(dir).filter((f4) => f4.endsWith(".svg")).sort()) {
107092
+ for (const f3 of readdirSync29(dir).filter((f4) => f4.endsWith(".svg")).sort()) {
106694
107093
  if (!seen.has(f3)) {
106695
107094
  seen.add(f3);
106696
- svgPaths.push(join82(dir, f3));
107095
+ svgPaths.push(join83(dir, f3));
106697
107096
  }
106698
107097
  }
106699
107098
  }
@@ -106705,9 +107104,9 @@ async function createSvgContactSheet(svgsDir, outputPath, assetsRootDir) {
106705
107104
  const labels = [];
106706
107105
  for (let i2 = 0; i2 < svgPaths.length; i2++) {
106707
107106
  const svgPath = svgPaths[i2];
106708
- const tmpPath = join82(tmpDir, `.thumb-${i2}.png`);
107107
+ const tmpPath = join83(tmpDir, `.thumb-${i2}.png`);
106709
107108
  try {
106710
- const svgBuf = readFileSync56(svgPath);
107109
+ const svgBuf = readFileSync57(svgPath);
106711
107110
  const thumb = await sharp(svgBuf).resize(thumbSize, thumbSize, {
106712
107111
  fit: "contain",
106713
107112
  background: { r: 245, g: 245, b: 245, alpha: 1 }
@@ -108400,11 +108799,11 @@ var require_ponyfill_es2018 = __commonJS({
108400
108799
  throw new TypeError(`${context} is not a function.`);
108401
108800
  }
108402
108801
  }
108403
- function isObject(x3) {
108802
+ function isObject2(x3) {
108404
108803
  return typeof x3 === "object" && x3 !== null || typeof x3 === "function";
108405
108804
  }
108406
108805
  function assertObject(x3, context) {
108407
- if (!isObject(x3)) {
108806
+ if (!isObject2(x3)) {
108408
108807
  throw new TypeError(`${context} is not an object.`);
108409
108808
  }
108410
108809
  }
@@ -112908,7 +113307,7 @@ var require_node_domexception = __commonJS({
112908
113307
 
112909
113308
  // ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
112910
113309
  import { statSync as statSync24, createReadStream as createReadStream2, promises as fs2 } from "fs";
112911
- import { basename as basename16 } from "path";
113310
+ import { basename as basename17 } from "path";
112912
113311
  var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
112913
113312
  var init_from = __esm({
112914
113313
  "../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js"() {
@@ -112932,7 +113331,7 @@ var init_from = __esm({
112932
113331
  size: stat3.size,
112933
113332
  lastModified: stat3.mtimeMs,
112934
113333
  start: 0
112935
- })], basename16(path2), { type, lastModified: stat3.mtimeMs });
113334
+ })], basename17(path2), { type, lastModified: stat3.mtimeMs });
112936
113335
  BlobDataItem = class _BlobDataItem {
112937
113336
  #path;
112938
113337
  #start;
@@ -115187,7 +115586,7 @@ var require_bignumber = __commonJS({
115187
115586
  intCheck(b2, 2, ALPHABET.length, "Base");
115188
115587
  if (b2 == 10 && alphabetHasNormalDecimalDigits) {
115189
115588
  x3 = new BigNumber2(v2);
115190
- return round(x3, DECIMAL_PLACES + x3.e + 1, ROUNDING_MODE);
115589
+ return round2(x3, DECIMAL_PLACES + x3.e + 1, ROUNDING_MODE);
115191
115590
  }
115192
115591
  str = String(v2);
115193
115592
  if (isNum = typeof v2 == "number") {
@@ -115679,7 +116078,7 @@ var require_bignumber = __commonJS({
115679
116078
  }
115680
116079
  if (base2 == BASE) {
115681
116080
  for (i2 = 1, s2 = qc[0]; s2 >= 10; s2 /= 10, i2++) ;
115682
- round(q2, dp + (q2.e = i2 + e3 * LOG_BASE - 1) + 1, rm, more);
116081
+ round2(q2, dp + (q2.e = i2 + e3 * LOG_BASE - 1) + 1, rm, more);
115683
116082
  } else {
115684
116083
  q2.e = e3;
115685
116084
  q2.r = +more;
@@ -115698,7 +116097,7 @@ var require_bignumber = __commonJS({
115698
116097
  str = coeffToString(n.c);
115699
116098
  str = id == 1 || id == 2 && (ne2 <= TO_EXP_NEG || ne2 >= TO_EXP_POS) ? toExponential(str, ne2) : toFixedPoint(str, ne2, "0");
115700
116099
  } else {
115701
- n = round(new BigNumber2(n), i2, rm);
116100
+ n = round2(new BigNumber2(n), i2, rm);
115702
116101
  e3 = n.e;
115703
116102
  str = coeffToString(n.c);
115704
116103
  len = str.length;
@@ -115771,7 +116170,7 @@ var require_bignumber = __commonJS({
115771
116170
  x3.c = x3.e = null;
115772
116171
  };
115773
116172
  })();
115774
- function round(x3, sd, rm, r2) {
116173
+ function round2(x3, sd, rm, r2) {
115775
116174
  var d2, i2, j3, k2, n, ni, rd, xc = x3.c, pows10 = POWS_TEN;
115776
116175
  if (xc) {
115777
116176
  out: {
@@ -115878,7 +116277,7 @@ var require_bignumber = __commonJS({
115878
116277
  intCheck(dp, 0, MAX);
115879
116278
  if (rm == null) rm = ROUNDING_MODE;
115880
116279
  else intCheck(rm, 0, 8);
115881
- return round(new BigNumber2(x3), dp + x3.e + 1, rm);
116280
+ return round2(new BigNumber2(x3), dp + x3.e + 1, rm);
115882
116281
  }
115883
116282
  if (!(c3 = x3.c)) return null;
115884
116283
  n = ((v2 = c3.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
@@ -115941,7 +116340,7 @@ var require_bignumber = __commonJS({
115941
116340
  nIsOdd = i2 % 2;
115942
116341
  } else {
115943
116342
  n = n.times(half);
115944
- round(n, n.e + 1, 1);
116343
+ round2(n, n.e + 1, 1);
115945
116344
  if (n.e > 14) {
115946
116345
  nIsOdd = isOdd(n);
115947
116346
  } else {
@@ -115959,13 +116358,13 @@ var require_bignumber = __commonJS({
115959
116358
  }
115960
116359
  if (isModExp) return y;
115961
116360
  if (nIsNeg) y = ONE.div(y);
115962
- return m2 ? y.mod(m2) : k2 ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
116361
+ return m2 ? y.mod(m2) : k2 ? round2(y, POW_PRECISION, ROUNDING_MODE, more) : y;
115963
116362
  };
115964
116363
  P2.integerValue = function(rm) {
115965
116364
  var n = new BigNumber2(this);
115966
116365
  if (rm == null) rm = ROUNDING_MODE;
115967
116366
  else intCheck(rm, 0, 8);
115968
- return round(n, n.e + 1, rm);
116367
+ return round2(n, n.e + 1, rm);
115969
116368
  };
115970
116369
  P2.isEqualTo = P2.eq = function(y, b2) {
115971
116370
  return compare(this, new BigNumber2(y, b2)) === 0;
@@ -116198,7 +116597,7 @@ var require_bignumber = __commonJS({
116198
116597
  intCheck(sd, 1, MAX);
116199
116598
  if (rm == null) rm = ROUNDING_MODE;
116200
116599
  else intCheck(rm, 0, 8);
116201
- return round(new BigNumber2(x3), sd, rm);
116600
+ return round2(new BigNumber2(x3), sd, rm);
116202
116601
  }
116203
116602
  if (!(c3 = x3.c)) return null;
116204
116603
  v2 = c3.length - 1;
@@ -116247,7 +116646,7 @@ var require_bignumber = __commonJS({
116247
116646
  n = n.slice(s2 - 3, s2 + 1);
116248
116647
  if (n == "9999" || !rep && n == "4999") {
116249
116648
  if (!rep) {
116250
- round(t2, t2.e + DECIMAL_PLACES + 2, 0);
116649
+ round2(t2, t2.e + DECIMAL_PLACES + 2, 0);
116251
116650
  if (t2.times(t2).eq(x3)) {
116252
116651
  r2 = t2;
116253
116652
  break;
@@ -116258,7 +116657,7 @@ var require_bignumber = __commonJS({
116258
116657
  rep = 1;
116259
116658
  } else {
116260
116659
  if (!+n || !+n.slice(1) && n.charAt(0) == "5") {
116261
- round(r2, r2.e + DECIMAL_PLACES + 2, 1);
116660
+ round2(r2, r2.e + DECIMAL_PLACES + 2, 1);
116262
116661
  m2 = !r2.times(r2).eq(x3);
116263
116662
  }
116264
116663
  break;
@@ -116266,7 +116665,7 @@ var require_bignumber = __commonJS({
116266
116665
  }
116267
116666
  }
116268
116667
  }
116269
- return round(r2, r2.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m2);
116668
+ return round2(r2, r2.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m2);
116270
116669
  };
116271
116670
  P2.toExponential = function(dp, rm) {
116272
116671
  if (dp != null) {
@@ -116382,7 +116781,7 @@ var require_bignumber = __commonJS({
116382
116781
  if (b2 == null) {
116383
116782
  str = e3 <= TO_EXP_NEG || e3 >= TO_EXP_POS ? toExponential(coeffToString(n.c), e3) : toFixedPoint(coeffToString(n.c), e3, "0");
116384
116783
  } else if (b2 === 10 && alphabetHasNormalDecimalDigits) {
116385
- n = round(new BigNumber2(n), DECIMAL_PLACES + e3 + 1, ROUNDING_MODE);
116784
+ n = round2(new BigNumber2(n), DECIMAL_PLACES + e3 + 1, ROUNDING_MODE);
116386
116785
  str = toFixedPoint(coeffToString(n.c), n.e, "0");
116387
116786
  } else {
116388
116787
  intCheck(b2, 2, ALPHABET.length, "Base");
@@ -119936,11 +120335,11 @@ var require_verify_stream = __commonJS({
119936
120335
  var toString3 = require_tostring();
119937
120336
  var util = __require("util");
119938
120337
  var JWS_REGEX = /^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/;
119939
- function isObject(thing) {
120338
+ function isObject2(thing) {
119940
120339
  return Object.prototype.toString.call(thing) === "[object Object]";
119941
120340
  }
119942
120341
  function safeJsonParse(thing) {
119943
- if (isObject(thing))
120342
+ if (isObject2(thing))
119944
120343
  return thing;
119945
120344
  try {
119946
120345
  return JSON.parse(thing);
@@ -146485,12 +146884,12 @@ __export(snapshot_exports, {
146485
146884
  examples: () => examples24
146486
146885
  });
146487
146886
  import { spawn as spawn16 } from "child_process";
146488
- import { existsSync as existsSync75, mkdtempSync as mkdtempSync5, readFileSync as readFileSync57, mkdirSync as mkdirSync40, rmSync as rmSync17, writeFileSync as writeFileSync33 } from "fs";
146887
+ import { existsSync as existsSync76, mkdtempSync as mkdtempSync5, readFileSync as readFileSync58, mkdirSync as mkdirSync40, rmSync as rmSync17, writeFileSync as writeFileSync33 } from "fs";
146489
146888
  import { tmpdir as tmpdir6 } from "os";
146490
- import { resolve as resolve49, join as join83, relative as relative14, isAbsolute as isAbsolute12 } from "path";
146889
+ import { resolve as resolve49, join as join84, relative as relative14, isAbsolute as isAbsolute12 } from "path";
146491
146890
  async function extractVideoFrameToBuffer(videoPath, timeSeconds, useVp9AlphaDecoder = false) {
146492
- const tmp = mkdtempSync5(join83(tmpdir6(), "hf-snapshot-frame-"));
146493
- const outPath = join83(tmp, "frame.png");
146891
+ const tmp = mkdtempSync5(join84(tmpdir6(), "hf-snapshot-frame-"));
146892
+ const outPath = join84(tmp, "frame.png");
146494
146893
  try {
146495
146894
  const ffmpegPath = findFFmpeg();
146496
146895
  if (!ffmpegPath) return null;
@@ -146532,8 +146931,8 @@ async function extractVideoFrameToBuffer(videoPath, timeSeconds, useVp9AlphaDeco
146532
146931
  });
146533
146932
  }
146534
146933
  );
146535
- if (result.code !== 0 || result.timedOut || !existsSync75(outPath)) return null;
146536
- return readFileSync57(outPath);
146934
+ if (result.code !== 0 || result.timedOut || !existsSync76(outPath)) return null;
146935
+ return readFileSync58(outPath);
146537
146936
  } finally {
146538
146937
  try {
146539
146938
  rmSync17(tmp, { recursive: true, force: true });
@@ -146631,13 +147030,13 @@ async function captureSnapshots(projectDir, opts) {
146631
147030
  return [];
146632
147031
  }
146633
147032
  const positions = opts.at?.length ? opts.at : numFrames === 1 ? [duration / 2] : Array.from({ length: numFrames }, (_, i2) => i2 / (numFrames - 1) * duration);
146634
- const snapshotDir = join83(projectDir, "snapshots");
147033
+ const snapshotDir = join84(projectDir, "snapshots");
146635
147034
  mkdirSync40(snapshotDir, { recursive: true });
146636
147035
  try {
146637
- const { readdirSync: readdirSync34 } = await import("fs");
146638
- for (const file of readdirSync34(snapshotDir)) {
147036
+ const { readdirSync: readdirSync35 } = await import("fs");
147037
+ for (const file of readdirSync35(snapshotDir)) {
146639
147038
  if (/\.(png|jpg|jpeg)$/i.test(file)) {
146640
- rmSync17(join83(snapshotDir, file), { force: true });
147039
+ rmSync17(join84(snapshotDir, file), { force: true });
146641
147040
  }
146642
147041
  }
146643
147042
  } catch {
@@ -146718,7 +147117,7 @@ async function captureSnapshots(projectDir, opts) {
146718
147117
  const decodedPath = decodeURIComponent(url.pathname).replace(/^\//, "");
146719
147118
  const candidate = resolve49(projectDir, decodedPath);
146720
147119
  const rel = relative14(projectDir, candidate);
146721
- if (!rel.startsWith("..") && !isAbsolute12(rel) && existsSync75(candidate)) {
147120
+ if (!rel.startsWith("..") && !isAbsolute12(rel) && existsSync76(candidate)) {
146722
147121
  filePath = candidate;
146723
147122
  }
146724
147123
  } catch {
@@ -146748,7 +147147,7 @@ async function captureSnapshots(projectDir, opts) {
146748
147147
  }
146749
147148
  const timeLabel = `${time.toFixed(1)}s`;
146750
147149
  const filename = `frame-${String(i2).padStart(2, "0")}-at-${timeLabel}.png`;
146751
- const framePath = join83(snapshotDir, filename);
147150
+ const framePath = join84(snapshotDir, filename);
146752
147151
  await page.screenshot({ path: framePath, type: "png" });
146753
147152
  savedPaths.push(`snapshots/${filename}`);
146754
147153
  }
@@ -146829,10 +147228,10 @@ ${c2.success("\u25C7")} ${paths.length} snapshots saved to snapshots/`);
146829
147228
  }
146830
147229
  try {
146831
147230
  const { createSnapshotContactSheet: createSnapshotContactSheet2 } = await Promise.resolve().then(() => (init_contactSheet(), contactSheet_exports));
146832
- const snapshotDir = join83(project.dir, "snapshots");
147231
+ const snapshotDir = join84(project.dir, "snapshots");
146833
147232
  const sheets = await createSnapshotContactSheet2(
146834
147233
  snapshotDir,
146835
- join83(snapshotDir, "contact-sheet.jpg")
147234
+ join84(snapshotDir, "contact-sheet.jpg")
146836
147235
  );
146837
147236
  if (sheets.length > 0) {
146838
147237
  const label3 = sheets.length === 1 ? "contact-sheet.jpg" : `contact-sheet-1..${sheets.length}.jpg`;
@@ -146850,7 +147249,7 @@ ${c2.success("\u25C7")} ${paths.length} snapshots saved to snapshots/`);
146850
147249
  const { GoogleGenAI: GoogleGenAI2 } = await Promise.resolve().then(() => (init_node4(), node_exports));
146851
147250
  const ai = new GoogleGenAI2({ apiKey: geminiKey });
146852
147251
  const model = process.env.HYPERFRAMES_GEMINI_MODEL || "gemini-3.1-flash-lite-preview";
146853
- const snapshotDir = join83(project.dir, "snapshots");
147252
+ const snapshotDir = join84(project.dir, "snapshots");
146854
147253
  const customQuestion = describeArg === "true" ? "Describe this video composition frame in 1-2 sentences. Be specific and factual: what elements are visible, what text appears, is the frame blank/black/loading, what is the composition. Flag any obvious problems." : describeArg;
146855
147254
  const descriptions = [
146856
147255
  `# Snapshot Frame Descriptions`,
@@ -146869,9 +147268,9 @@ ${c2.success("\u25C7")} ${paths.length} snapshots saved to snapshots/`);
146869
147268
  const results = await Promise.allSettled(
146870
147269
  paths.map(async (p2) => {
146871
147270
  const filename = p2.replace("snapshots/", "");
146872
- const filePath = join83(snapshotDir, filename);
146873
- if (!existsSync75(filePath)) return { filename, desc: "file not found" };
146874
- const raw = readFileSync57(filePath);
147271
+ const filePath = join84(snapshotDir, filename);
147272
+ if (!existsSync76(filePath)) return { filename, desc: "file not found" };
147273
+ const raw = readFileSync58(filePath);
146875
147274
  let imageData;
146876
147275
  let mimeType = "image/png";
146877
147276
  if (sharpFn) {
@@ -146907,7 +147306,7 @@ ${c2.success("\u25C7")} ${paths.length} snapshots saved to snapshots/`);
146907
147306
  descriptions.push(`## (error)`, `Gemini call failed: ${errMsg.slice(0, 120)}`, ``);
146908
147307
  }
146909
147308
  }
146910
- const descPath = join83(snapshotDir, "descriptions.md");
147309
+ const descPath = join84(snapshotDir, "descriptions.md");
146911
147310
  writeFileSync33(descPath, descriptions.join("\n"));
146912
147311
  console.log(` ${c2.dim("descriptions.md")} (Gemini frame analysis)`);
146913
147312
  }
@@ -146929,18 +147328,18 @@ ${c2.error("\u2717")} Snapshot failed: ${msg}`);
146929
147328
 
146930
147329
  // src/capture/assetDownloader.ts
146931
147330
  import { writeFileSync as writeFileSync34, mkdirSync as mkdirSync41 } from "fs";
146932
- import { join as join84, extname as extname14 } from "path";
147331
+ import { join as join85, extname as extname14 } from "path";
146933
147332
  import { createHash as createHash12 } from "crypto";
146934
147333
  function svgContentHashSlug(svgSource, isLogo) {
146935
147334
  const hash2 = createHash12("sha1").update(svgSource).digest("hex").slice(0, 8);
146936
147335
  return isLogo ? `logo-${hash2}` : `svg-${hash2}`;
146937
147336
  }
146938
147337
  async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks) {
146939
- const assetsDir = join84(outputDir, "assets");
147338
+ const assetsDir = join85(outputDir, "assets");
146940
147339
  mkdirSync41(assetsDir, { recursive: true });
146941
147340
  const assets = [];
146942
147341
  const downloadedUrls = /* @__PURE__ */ new Set();
146943
- mkdirSync41(join84(outputDir, "assets", "svgs"), { recursive: true });
147342
+ mkdirSync41(join85(outputDir, "assets", "svgs"), { recursive: true });
146944
147343
  const usedSvgNames = /* @__PURE__ */ new Set();
146945
147344
  for (let i2 = 0; i2 < tokens.svgs.length && i2 < 30; i2++) {
146946
147345
  const svg = tokens.svgs[i2];
@@ -146956,7 +147355,7 @@ async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks)
146956
147355
  const name = `${finalSlug}.svg`;
146957
147356
  const localPath = `assets/svgs/${name}`;
146958
147357
  try {
146959
- writeFileSync34(join84(outputDir, localPath), svg.outerHTML, "utf-8");
147358
+ writeFileSync34(join85(outputDir, localPath), svg.outerHTML, "utf-8");
146960
147359
  assets.push({ url: "", localPath, type: "svg" });
146961
147360
  } catch {
146962
147361
  }
@@ -146969,7 +147368,7 @@ async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks)
146969
147368
  const localPath = `assets/${name}`;
146970
147369
  const buffer = await fetchBuffer(icon.href);
146971
147370
  if (buffer) {
146972
- writeFileSync34(join84(outputDir, localPath), buffer);
147371
+ writeFileSync34(join85(outputDir, localPath), buffer);
146973
147372
  assets.push({ url: icon.href, localPath, type: "favicon" });
146974
147373
  break;
146975
147374
  }
@@ -147034,7 +147433,7 @@ async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks)
147034
147433
  const name = `${slug}${ext}`;
147035
147434
  usedNames.add(slug);
147036
147435
  const localPath = `assets/${name}`;
147037
- writeFileSync34(join84(outputDir, localPath), buffer);
147436
+ writeFileSync34(join85(outputDir, localPath), buffer);
147038
147437
  assets.push({ url, localPath, type: "image" });
147039
147438
  imgIdx++;
147040
147439
  } catch {
@@ -147047,7 +147446,7 @@ async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks)
147047
147446
  const localPath = `assets/og-image${ext}`;
147048
147447
  const buffer = await fetchBuffer(tokens.ogImage);
147049
147448
  if (buffer && buffer.length > 5e3) {
147050
- writeFileSync34(join84(outputDir, localPath), buffer);
147449
+ writeFileSync34(join85(outputDir, localPath), buffer);
147051
147450
  assets.push({ url: tokens.ogImage, localPath, type: "image" });
147052
147451
  }
147053
147452
  } catch {
@@ -147070,7 +147469,7 @@ function normalizeUrl(u) {
147070
147469
  }
147071
147470
  }
147072
147471
  async function downloadAndRewriteFonts(css, outputDir) {
147073
- const assetsDir = join84(outputDir, "assets", "fonts");
147472
+ const assetsDir = join85(outputDir, "assets", "fonts");
147074
147473
  mkdirSync41(assetsDir, { recursive: true });
147075
147474
  const fontUrlRegex = /url\(['"]?(https?:\/\/[^'")\s]+\.(?:woff2?|ttf|otf)[^'")\s]*?)['"]?\)/g;
147076
147475
  const fontUrls = /* @__PURE__ */ new Set();
@@ -147106,7 +147505,7 @@ async function downloadAndRewriteFonts(css, outputDir) {
147106
147505
  try {
147107
147506
  const urlObj = new URL(fontUrl);
147108
147507
  const filename = urlObj.pathname.split("/").pop() || `font-${count}.woff2`;
147109
- const localPath = join84(assetsDir, filename);
147508
+ const localPath = join85(assetsDir, filename);
147110
147509
  const relativePath = `assets/fonts/${filename}`;
147111
147510
  const buffer = await fetchBuffer(fontUrl);
147112
147511
  if (buffer) {
@@ -147259,14 +147658,13 @@ var video_exports = {};
147259
147658
  __export(video_exports, {
147260
147659
  MAX_VIDEO_BYTES: () => MAX_VIDEO_BYTES,
147261
147660
  VIDEO_CONTENT_TYPE_RE: () => VIDEO_CONTENT_TYPE_RE,
147262
- default: () => video_default,
147263
- examples: () => examples25,
147264
147661
  findFilenameCollision: () => findFilenameCollision,
147265
147662
  pickManifestEntry: () => pickManifestEntry,
147663
+ runVideoMode: () => runVideoMode,
147266
147664
  safeFilename: () => safeFilename
147267
147665
  });
147268
- import { createWriteStream as createWriteStream4, existsSync as existsSync76, mkdirSync as mkdirSync42, readFileSync as readFileSync58, unlinkSync as unlinkSync9 } from "fs";
147269
- import { resolve as resolve50, join as join85, basename as basename18 } from "path";
147666
+ import { createWriteStream as createWriteStream4, existsSync as existsSync77, mkdirSync as mkdirSync42, readFileSync as readFileSync59, unlinkSync as unlinkSync9 } from "fs";
147667
+ import { resolve as resolve50, join as join86, basename as basename19 } from "path";
147270
147668
  async function streamToFile(url, destPath) {
147271
147669
  const r2 = await safeFetch(url, {
147272
147670
  signal: AbortSignal.timeout(12e4),
@@ -147344,9 +147742,9 @@ function safeFilename(name) {
147344
147742
  return decoded.replace(/[^A-Za-z0-9._-]+/g, "_");
147345
147743
  }
147346
147744
  function findFilenameCollision(manifest, selected) {
147347
- const selectedName = safeFilename(selected.filename || basename18(selected.url));
147745
+ const selectedName = safeFilename(selected.filename || basename19(selected.url));
147348
147746
  return manifest.filter(
147349
- (e3) => e3.index !== selected.index && safeFilename(e3.filename || basename18(e3.url)) === selectedName
147747
+ (e3) => e3.index !== selected.index && safeFilename(e3.filename || basename19(e3.url)) === selectedName
147350
147748
  );
147351
147749
  }
147352
147750
  function pickManifestEntry(manifest, args) {
@@ -147383,138 +147781,100 @@ function pickManifestEntry(manifest, args) {
147383
147781
  message: "specify --index <N> or --url <URL> (or --list to see what's in the manifest)"
147384
147782
  };
147385
147783
  }
147386
- var examples25, MAX_VIDEO_BYTES, VIDEO_CONTENT_TYPE_RE, video_default;
147784
+ async function runVideoMode(args) {
147785
+ const projectDir = resolve50(args.project);
147786
+ const directPath = join86(projectDir, "extracted", "video-manifest.json");
147787
+ const w2hPath = join86(projectDir, "capture", "extracted", "video-manifest.json");
147788
+ const manifestPath = existsSync77(directPath) ? directPath : w2hPath;
147789
+ const isW2hLayout = manifestPath === w2hPath;
147790
+ if (!existsSync77(manifestPath)) {
147791
+ console.error(
147792
+ `${c2.error("\u2717")} no video-manifest.json at ${directPath} or ${w2hPath}
147793
+ Was this directory produced by \`hyperframes capture\`?`
147794
+ );
147795
+ process.exitCode = 1;
147796
+ return;
147797
+ }
147798
+ let manifest;
147799
+ try {
147800
+ manifest = JSON.parse(readFileSync59(manifestPath, "utf-8"));
147801
+ } catch (e3) {
147802
+ console.error(`${c2.error("\u2717")} video-manifest.json is malformed: ${e3.message}`);
147803
+ process.exitCode = 1;
147804
+ return;
147805
+ }
147806
+ if (args.list) {
147807
+ if (manifest.length === 0) {
147808
+ console.log(c2.dim("(manifest is empty \u2014 no <video> elements on the captured page)"));
147809
+ return;
147810
+ }
147811
+ console.log(
147812
+ `${manifest.length} video entr${manifest.length === 1 ? "y" : "ies"} in ${manifestPath}:`
147813
+ );
147814
+ for (const e3 of manifest) {
147815
+ console.log(
147816
+ ` ${c2.bold(`[${e3.index}]`)} ${e3.filename} \u2014 ${e3.width}\xD7${e3.height}` + (e3.heading ? `
147817
+ heading: "${e3.heading}"` : "") + `
147818
+ url: ${e3.url}`
147819
+ );
147820
+ }
147821
+ return;
147822
+ }
147823
+ const pick = pickManifestEntry(manifest, args);
147824
+ if (!pick.ok) {
147825
+ console.error(
147826
+ `${c2.error("\u2717")} ${pick.message}` + (pick.code === "no-match-url" ? `
147827
+ Run with --list to see what's available.` : "")
147828
+ );
147829
+ process.exitCode = 1;
147830
+ return;
147831
+ }
147832
+ const entry = pick.entry;
147833
+ const collisions = findFilenameCollision(manifest, entry);
147834
+ if (collisions.length > 0) {
147835
+ console.error(
147836
+ `${c2.error("\u2717")} filename "${safeFilename(entry.filename || basename19(entry.url))}" collides with manifest entr${collisions.length === 1 ? "y" : "ies"} ${collisions.map((co) => `[${co.index}]`).join(", ")}. Refusing to download \u2014 the on-disk file's bytes would not match the requested entry.`
147837
+ );
147838
+ process.exitCode = 1;
147839
+ return;
147840
+ }
147841
+ const outDir = isW2hLayout ? join86(projectDir, "capture", "assets", "videos") : join86(projectDir, "assets", "videos");
147842
+ mkdirSync42(outDir, { recursive: true });
147843
+ const fname = safeFilename(entry.filename || basename19(entry.url));
147844
+ const outPath = join86(outDir, fname);
147845
+ const relPath = isW2hLayout ? `capture/assets/videos/${fname}` : `assets/videos/${fname}`;
147846
+ console.log(
147847
+ `${c2.accent("\u25B8")} downloading [${entry.index}] ${entry.filename} (${entry.width}\xD7${entry.height})`
147848
+ );
147849
+ console.log(` from: ${entry.url}`);
147850
+ try {
147851
+ const bytes = await streamToFile(entry.url, outPath);
147852
+ const sizeKb = Math.round(bytes / 1024);
147853
+ const sizeStr = sizeKb > 1024 ? `${(sizeKb / 1024).toFixed(1)}MB` : `${sizeKb}KB`;
147854
+ console.log(`${c2.success("\u25C7")} wrote ${relPath} (${sizeStr})`);
147855
+ const snippetId = `video-${entry.index}`;
147856
+ console.log(
147857
+ ` Reference it from a beat composition as:
147858
+ <video id="${snippetId}" src="${relPath}" data-start="0" data-duration="${entry.width === entry.height ? 5 : 4}" data-track-index="0" autoplay muted loop></video>`
147859
+ );
147860
+ } catch (e3) {
147861
+ if (e3.code === "EEXIST") {
147862
+ console.log(`${c2.warn("\u26A0")} already downloaded: ${relPath} (skipping)`);
147863
+ console.log(` Delete the file and re-run to refetch.`);
147864
+ return;
147865
+ }
147866
+ console.error(`${c2.error("\u2717")} download failed: ${e3.message}`);
147867
+ process.exitCode = 1;
147868
+ }
147869
+ }
147870
+ var MAX_VIDEO_BYTES, VIDEO_CONTENT_TYPE_RE;
147387
147871
  var init_video = __esm({
147388
147872
  "src/commands/capture/video.ts"() {
147389
147873
  "use strict";
147390
- init_dist();
147391
147874
  init_colors();
147392
147875
  init_assetDownloader();
147393
- examples25 = [
147394
- [
147395
- "Download the hero video (index 0) from a captured project's manifest",
147396
- "capture video ./my-project --index 0"
147397
- ],
147398
- [
147399
- "Download a specific video by exact URL",
147400
- "capture video ./my-project --url https://cdn.example.com/hero.mp4"
147401
- ],
147402
- ["List entries in the manifest without downloading", "capture video ./my-project --list"]
147403
- ];
147404
147876
  MAX_VIDEO_BYTES = 250 * 1024 * 1024;
147405
147877
  VIDEO_CONTENT_TYPE_RE = /^(video\/|application\/(mp4|octet-stream|x-mpegurl))/i;
147406
- video_default = defineCommand({
147407
- meta: {
147408
- name: "video",
147409
- description: "Download a video referenced in capture/extracted/video-manifest.json (on-demand; the capture pipeline only writes the manifest + preview PNGs)"
147410
- },
147411
- args: {
147412
- project: {
147413
- type: "positional",
147414
- description: "Path to the captured project directory",
147415
- required: true
147416
- },
147417
- index: {
147418
- type: "string",
147419
- description: "Manifest entry index to download (0-based)"
147420
- },
147421
- url: {
147422
- type: "string",
147423
- description: "Exact video URL to download (must match a manifest entry)"
147424
- },
147425
- list: {
147426
- type: "boolean",
147427
- description: "List manifest entries (index, dimensions, heading) and exit"
147428
- }
147429
- },
147430
- // fallow-ignore-next-line complexity
147431
- async run({ args }) {
147432
- const projectDir = resolve50(String(args.project));
147433
- const directPath = join85(projectDir, "extracted", "video-manifest.json");
147434
- const w2hPath = join85(projectDir, "capture", "extracted", "video-manifest.json");
147435
- const manifestPath = existsSync76(directPath) ? directPath : w2hPath;
147436
- const isW2hLayout = manifestPath === w2hPath;
147437
- if (!existsSync76(manifestPath)) {
147438
- console.error(
147439
- `${c2.error("\u2717")} no video-manifest.json at ${directPath} or ${w2hPath}
147440
- Was this directory produced by \`hyperframes capture\`?`
147441
- );
147442
- process.exitCode = 1;
147443
- return;
147444
- }
147445
- let manifest;
147446
- try {
147447
- manifest = JSON.parse(readFileSync58(manifestPath, "utf-8"));
147448
- } catch (e3) {
147449
- console.error(`${c2.error("\u2717")} video-manifest.json is malformed: ${e3.message}`);
147450
- process.exitCode = 1;
147451
- return;
147452
- }
147453
- if (args.list) {
147454
- if (manifest.length === 0) {
147455
- console.log(c2.dim("(manifest is empty \u2014 no <video> elements on the captured page)"));
147456
- return;
147457
- }
147458
- console.log(
147459
- `${manifest.length} video entr${manifest.length === 1 ? "y" : "ies"} in ${manifestPath}:`
147460
- );
147461
- for (const e3 of manifest) {
147462
- console.log(
147463
- ` ${c2.bold(`[${e3.index}]`)} ${e3.filename} \u2014 ${e3.width}\xD7${e3.height}` + (e3.heading ? `
147464
- heading: "${e3.heading}"` : "") + `
147465
- url: ${e3.url}`
147466
- );
147467
- }
147468
- return;
147469
- }
147470
- const pick = pickManifestEntry(manifest, args);
147471
- if (!pick.ok) {
147472
- console.error(
147473
- `${c2.error("\u2717")} ${pick.message}` + (pick.code === "no-match-url" ? `
147474
- Run with --list to see what's available.` : "")
147475
- );
147476
- process.exitCode = 1;
147477
- return;
147478
- }
147479
- const entry = pick.entry;
147480
- const collisions = findFilenameCollision(manifest, entry);
147481
- if (collisions.length > 0) {
147482
- console.error(
147483
- `${c2.error("\u2717")} filename "${safeFilename(entry.filename || basename18(entry.url))}" collides with manifest entr${collisions.length === 1 ? "y" : "ies"} ${collisions.map((co) => `[${co.index}]`).join(", ")}. Refusing to download \u2014 the on-disk file's bytes would not match the requested entry.`
147484
- );
147485
- process.exitCode = 1;
147486
- return;
147487
- }
147488
- const outDir = isW2hLayout ? join85(projectDir, "capture", "assets", "videos") : join85(projectDir, "assets", "videos");
147489
- mkdirSync42(outDir, { recursive: true });
147490
- const fname = safeFilename(entry.filename || basename18(entry.url));
147491
- const outPath = join85(outDir, fname);
147492
- const relPath = isW2hLayout ? `capture/assets/videos/${fname}` : `assets/videos/${fname}`;
147493
- console.log(
147494
- `${c2.accent("\u25B8")} downloading [${entry.index}] ${entry.filename} (${entry.width}\xD7${entry.height})`
147495
- );
147496
- console.log(` from: ${entry.url}`);
147497
- try {
147498
- const bytes = await streamToFile(entry.url, outPath);
147499
- const sizeKb = Math.round(bytes / 1024);
147500
- const sizeStr = sizeKb > 1024 ? `${(sizeKb / 1024).toFixed(1)}MB` : `${sizeKb}KB`;
147501
- console.log(`${c2.success("\u25C7")} wrote ${relPath} (${sizeStr})`);
147502
- const snippetId = `video-${entry.index}`;
147503
- console.log(
147504
- ` Reference it from a beat composition as:
147505
- <video id="${snippetId}" src="${relPath}" data-start="0" data-duration="${entry.width === entry.height ? 5 : 4}" data-track-index="0" autoplay muted loop></video>`
147506
- );
147507
- } catch (e3) {
147508
- if (e3.code === "EEXIST") {
147509
- console.log(`${c2.warn("\u26A0")} already downloaded: ${relPath} (skipping)`);
147510
- console.log(` Delete the file and re-run to refetch.`);
147511
- return;
147512
- }
147513
- console.error(`${c2.error("\u2717")} download failed: ${e3.message}`);
147514
- process.exitCode = 1;
147515
- }
147516
- }
147517
- });
147518
147878
  }
147519
147879
  });
147520
147880
 
@@ -148509,8 +148869,8 @@ var init_designStyleExtractor = __esm({
148509
148869
  });
148510
148870
 
148511
148871
  // src/capture/fontMetadataExtractor.ts
148512
- import { readdirSync as readdirSync29, readFileSync as readFileSync59, writeFileSync as writeFileSync35, existsSync as existsSync77 } from "fs";
148513
- import { join as join86 } from "path";
148872
+ import { readdirSync as readdirSync30, readFileSync as readFileSync60, writeFileSync as writeFileSync35, existsSync as existsSync78 } from "fs";
148873
+ import { join as join87 } from "path";
148514
148874
  import * as fontkit from "fontkit";
148515
148875
  function isFontCollection(value) {
148516
148876
  return value.type === "TTC" || value.type === "DFont";
@@ -148518,10 +148878,10 @@ function isFontCollection(value) {
148518
148878
  function extractFontMetadata(fontsDir, outputPath) {
148519
148879
  const files = [];
148520
148880
  const unidentified = [];
148521
- if (existsSync77(fontsDir)) {
148522
- const fontFiles = readdirSync29(fontsDir).filter((f3) => /\.(woff2?|ttf|otf)$/i.test(f3));
148881
+ if (existsSync78(fontsDir)) {
148882
+ const fontFiles = readdirSync30(fontsDir).filter((f3) => /\.(woff2?|ttf|otf)$/i.test(f3));
148523
148883
  for (const filename of fontFiles) {
148524
- const fullPath = join86(fontsDir, filename);
148884
+ const fullPath = join87(fontsDir, filename);
148525
148885
  const meta = readSingleFont(fullPath, filename);
148526
148886
  if (meta.identified) {
148527
148887
  files.push(meta);
@@ -148559,7 +148919,7 @@ function readSingleFont(fullPath, filename) {
148559
148919
  identified: false
148560
148920
  };
148561
148921
  try {
148562
- const buf = readFileSync59(fullPath);
148922
+ const buf = readFileSync60(fullPath);
148563
148923
  const created = fontkit.create(buf);
148564
148924
  const font = isFontCollection(created) ? created.fonts[0] : created;
148565
148925
  if (!font) return empty2;
@@ -148815,8 +149175,8 @@ var init_animationCataloger = __esm({
148815
149175
  });
148816
149176
 
148817
149177
  // src/capture/mediaCapture.ts
148818
- import { mkdirSync as mkdirSync43, writeFileSync as writeFileSync36, readdirSync as readdirSync30, readFileSync as readFileSync60, statSync as statSync25 } from "fs";
148819
- import { join as join87, extname as extname15 } from "path";
149178
+ import { mkdirSync as mkdirSync43, writeFileSync as writeFileSync36, readdirSync as readdirSync31, readFileSync as readFileSync61, statSync as statSync25 } from "fs";
149179
+ import { join as join88, extname as extname15 } from "path";
148820
149180
  async function saveLottieAnimations(discoveredLotties, lottieDir) {
148821
149181
  let savedCount = 0;
148822
149182
  const savedHashes = /* @__PURE__ */ new Set();
@@ -148848,7 +149208,7 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
148848
149208
  const hash2 = buf.toString("base64").slice(0, 100);
148849
149209
  if (savedHashes.has(hash2)) continue;
148850
149210
  savedHashes.add(hash2);
148851
- writeFileSync36(join87(lottieDir, `animation-${savedCount}.lottie`), buf);
149211
+ writeFileSync36(join88(lottieDir, `animation-${savedCount}.lottie`), buf);
148852
149212
  savedCount++;
148853
149213
  continue;
148854
149214
  }
@@ -148866,7 +149226,7 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
148866
149226
  } catch {
148867
149227
  continue;
148868
149228
  }
148869
- writeFileSync36(join87(lottieDir, `animation-${savedCount}.json`), jsonData, "utf-8");
149229
+ writeFileSync36(join88(lottieDir, `animation-${savedCount}.json`), jsonData, "utf-8");
148870
149230
  savedCount++;
148871
149231
  }
148872
149232
  } catch {
@@ -148876,22 +149236,22 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
148876
149236
  }
148877
149237
  async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
148878
149238
  const manifest = [];
148879
- const previewDir = join87(lottieDir, "previews");
149239
+ const previewDir = join88(lottieDir, "previews");
148880
149240
  mkdirSync43(previewDir, { recursive: true });
148881
- for (const file of readdirSync30(lottieDir)) {
149241
+ for (const file of readdirSync31(lottieDir)) {
148882
149242
  if (!file.endsWith(".json")) continue;
148883
149243
  try {
148884
- const raw = JSON.parse(readFileSync60(join87(lottieDir, file), "utf-8"));
149244
+ const raw = JSON.parse(readFileSync61(join88(lottieDir, file), "utf-8"));
148885
149245
  const fr = raw.fr || 30;
148886
149246
  const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
148887
149247
  const previewName = file.replace(".json", "-preview.png");
148888
- const fileSize = statSync25(join87(lottieDir, file)).size;
149248
+ const fileSize = statSync25(join88(lottieDir, file)).size;
148889
149249
  if (fileSize > 2e6) continue;
148890
149250
  let previewPage;
148891
149251
  try {
148892
149252
  previewPage = await chromeBrowser.newPage();
148893
149253
  await previewPage.setViewport({ width: 400, height: 400 });
148894
- const animData = JSON.parse(readFileSync60(join87(lottieDir, file), "utf-8"));
149254
+ const animData = JSON.parse(readFileSync61(join88(lottieDir, file), "utf-8"));
148895
149255
  const midFrame = Math.floor(((raw.op || 0) - (raw.ip || 0)) * 0.3);
148896
149256
  await previewPage.setContent(
148897
149257
  `<!DOCTYPE html>
@@ -148921,7 +149281,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
148921
149281
  await previewPage.waitForFunction(() => window.__READY === true, { timeout: 5e3 }).catch(() => {
148922
149282
  });
148923
149283
  await previewPage.screenshot({
148924
- path: join87(previewDir, previewName),
149284
+ path: join88(previewDir, previewName),
148925
149285
  type: "png",
148926
149286
  omitBackground: true
148927
149287
  });
@@ -148945,7 +149305,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
148945
149305
  }
148946
149306
  if (manifest.length > 0) {
148947
149307
  writeFileSync36(
148948
- join87(outputDir, "extracted", "lottie-manifest.json"),
149308
+ join88(outputDir, "extracted", "lottie-manifest.json"),
148949
149309
  JSON.stringify(manifest, null, 2),
148950
149310
  "utf-8"
148951
149311
  );
@@ -148980,7 +149340,7 @@ async function downloadVideoBody(srcUrl, filename, videosDir) {
148980
149340
  }
148981
149341
  if (total < 1024) return null;
148982
149342
  const safe = /\.[a-z0-9]+$/i.test(filename) ? filename.replace(/[^\w.-]/g, "_") : `video${ext}`;
148983
- writeFileSync36(join87(videosDir, safe), Buffer.concat(chunks));
149343
+ writeFileSync36(join88(videosDir, safe), Buffer.concat(chunks));
148984
149344
  return `assets/videos/${safe}`;
148985
149345
  } catch {
148986
149346
  return null;
@@ -149040,9 +149400,9 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
149040
149400
  }
149041
149401
  const merged = [...byKey.values()];
149042
149402
  if (merged.length === 0) return;
149043
- const videoManifestDir = join87(outputDir, "assets", "videos");
149403
+ const videoManifestDir = join88(outputDir, "assets", "videos");
149044
149404
  mkdirSync43(videoManifestDir, { recursive: true });
149045
- const previewDir = join87(videoManifestDir, "previews");
149405
+ const previewDir = join88(videoManifestDir, "previews");
149046
149406
  mkdirSync43(previewDir, { recursive: true });
149047
149407
  const videoManifest = [];
149048
149408
  const dlStart = Date.now();
@@ -149065,7 +149425,7 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
149065
149425
  if (rect && rect.width >= 10) {
149066
149426
  await new Promise((r2) => setTimeout(r2, 200));
149067
149427
  await page.screenshot({
149068
- path: join87(previewDir, previewName),
149428
+ path: join88(previewDir, previewName),
149069
149429
  clip: {
149070
149430
  x: Math.max(0, rect.x),
149071
149431
  y: Math.max(0, rect.y),
@@ -149095,7 +149455,7 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
149095
149455
  }
149096
149456
  if (videoManifest.length > 0) {
149097
149457
  writeFileSync36(
149098
- join87(outputDir, "extracted", "video-manifest.json"),
149458
+ join88(outputDir, "extracted", "video-manifest.json"),
149099
149459
  JSON.stringify(videoManifest, null, 2),
149100
149460
  "utf-8"
149101
149461
  );
@@ -149157,8 +149517,8 @@ var init_mediaCapture = __esm({
149157
149517
  });
149158
149518
 
149159
149519
  // src/capture/contentExtractor.ts
149160
- import { existsSync as existsSync78, readdirSync as readdirSync31, statSync as statSync26, readFileSync as readFileSync61 } from "fs";
149161
- import { join as join88 } from "path";
149520
+ import { existsSync as existsSync79, readdirSync as readdirSync32, statSync as statSync26, readFileSync as readFileSync62 } from "fs";
149521
+ import { join as join89 } from "path";
149162
149522
  import sharp2 from "sharp";
149163
149523
  async function detectLibraries(page, capturedShaders) {
149164
149524
  let detectedLibraries = [];
@@ -149279,7 +149639,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
149279
149639
  try {
149280
149640
  const { GoogleGenAI: GoogleGenAI2 } = await Promise.resolve().then(() => (init_node4(), node_exports));
149281
149641
  const ai = new GoogleGenAI2({ apiKey: geminiKey });
149282
- const imageFiles = readdirSync31(join88(outputDir, "assets")).filter(
149642
+ const imageFiles = readdirSync32(join89(outputDir, "assets")).filter(
149283
149643
  (f3) => /\.(png|jpg|jpeg|webp|gif)$/i.test(f3)
149284
149644
  );
149285
149645
  const model = process.env.HYPERFRAMES_GEMINI_MODEL || "gemini-3.1-flash-lite-preview";
@@ -149288,10 +149648,10 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
149288
149648
  const batch = imageFiles.slice(i2, i2 + BATCH_SIZE);
149289
149649
  const results = await Promise.allSettled(
149290
149650
  batch.map(async (file) => {
149291
- const filePath = join88(outputDir, "assets", file);
149651
+ const filePath = join89(outputDir, "assets", file);
149292
149652
  const stat3 = statSync26(filePath);
149293
149653
  if (stat3.size > 4e6) return { file, caption: "" };
149294
- const buffer = readFileSync61(filePath);
149654
+ const buffer = readFileSync62(filePath);
149295
149655
  const base64 = buffer.toString("base64");
149296
149656
  const ext = file.split(".").pop()?.toLowerCase() || "png";
149297
149657
  const mimeType = ext === "jpg" ? "image/jpeg" : `image/${ext}`;
@@ -149328,13 +149688,13 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
149328
149688
  }
149329
149689
  progress("design", `${Object.keys(geminiCaptions).length} images captioned with Gemini`);
149330
149690
  const svgFiles = [];
149331
- const assetsDir = join88(outputDir, "assets");
149332
- for (const f3 of readdirSync31(assetsDir)) {
149691
+ const assetsDir = join89(outputDir, "assets");
149692
+ for (const f3 of readdirSync32(assetsDir)) {
149333
149693
  if (/\.svg$/i.test(f3)) svgFiles.push({ file: f3, relPath: f3 });
149334
149694
  }
149335
- const svgsSubdir = join88(assetsDir, "svgs");
149336
- if (existsSync78(svgsSubdir)) {
149337
- for (const f3 of readdirSync31(svgsSubdir)) {
149695
+ const svgsSubdir = join89(assetsDir, "svgs");
149696
+ if (existsSync79(svgsSubdir)) {
149697
+ for (const f3 of readdirSync32(svgsSubdir)) {
149338
149698
  if (/\.svg$/i.test(f3)) svgFiles.push({ file: f3, relPath: `svgs/${f3}` });
149339
149699
  }
149340
149700
  }
@@ -149347,10 +149707,10 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
149347
149707
  const batch = svgFiles.slice(i2, i2 + SVG_BATCH);
149348
149708
  const results = await Promise.allSettled(
149349
149709
  batch.map(async ({ relPath }) => {
149350
- const filePath = join88(assetsDir, relPath);
149710
+ const filePath = join89(assetsDir, relPath);
149351
149711
  let pngBase64;
149352
149712
  try {
149353
- const svgSource = readFileSync61(filePath, "utf-8");
149713
+ const svgSource = readFileSync62(filePath, "utf-8");
149354
149714
  const lightFillHits = (svgSource.match(/fill\s*=\s*["'](#fff(fff)?|white|#[ef][ef][ef]|#[ef]{6})["']/gi) || []).length;
149355
149715
  const darkFillHits = (svgSource.match(/fill\s*=\s*["'](#000(000)?|black|#[0-3]{6}|#[0-3]{3})["']/gi) || []).length;
149356
149716
  const bg = lightFillHits > darkFillHits ? { r: 32, g: 32, b: 32 } : { r: 255, g: 255, b: 255 };
@@ -149414,11 +149774,11 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
149414
149774
  const uncaptionedLines = [];
149415
149775
  const svgLines = [];
149416
149776
  const fontLines = [];
149417
- const assetsPath = join88(outputDir, "assets");
149777
+ const assetsPath = join89(outputDir, "assets");
149418
149778
  try {
149419
- for (const file of readdirSync31(assetsPath)) {
149779
+ for (const file of readdirSync32(assetsPath)) {
149420
149780
  if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
149421
- const filePath = join88(assetsPath, file);
149781
+ const filePath = join89(assetsPath, file);
149422
149782
  const stat3 = statSync26(filePath);
149423
149783
  if (!stat3.isFile()) continue;
149424
149784
  const sizeKb = Math.round(stat3.size / 1024);
@@ -149447,8 +149807,8 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
149447
149807
  } catch {
149448
149808
  }
149449
149809
  try {
149450
- const svgsPath = join88(assetsPath, "svgs");
149451
- for (const file of readdirSync31(svgsPath)) {
149810
+ const svgsPath = join89(assetsPath, "svgs");
149811
+ for (const file of readdirSync32(svgsPath)) {
149452
149812
  if (!file.endsWith(".svg")) continue;
149453
149813
  const svgMatch = tokens.svgs.find(
149454
149814
  (s2) => s2.label && file.includes(
@@ -149466,8 +149826,8 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
149466
149826
  } catch {
149467
149827
  }
149468
149828
  try {
149469
- const fontsPath = join88(assetsPath, "fonts");
149470
- for (const file of readdirSync31(fontsPath)) {
149829
+ const fontsPath = join89(assetsPath, "fonts");
149830
+ for (const file of readdirSync32(fontsPath)) {
149471
149831
  fontLines.push(`fonts/${file} \u2014 font file`);
149472
149832
  }
149473
149833
  } catch {
@@ -149485,8 +149845,8 @@ var agentPromptGenerator_exports = {};
149485
149845
  __export(agentPromptGenerator_exports, {
149486
149846
  generateAgentPrompt: () => generateAgentPrompt
149487
149847
  });
149488
- import { writeFileSync as writeFileSync37, readdirSync as readdirSync32, existsSync as existsSync79 } from "fs";
149489
- import { join as join89 } from "path";
149848
+ import { writeFileSync as writeFileSync37, readdirSync as readdirSync33, existsSync as existsSync80 } from "fs";
149849
+ import { join as join90 } from "path";
149490
149850
  function inferColorRole(hex) {
149491
149851
  const r2 = parseInt(hex.slice(1, 3), 16) / 255;
149492
149852
  const g = parseInt(hex.slice(3, 5), 16) / 255;
@@ -149505,9 +149865,9 @@ function inferColorRole(hex) {
149505
149865
  }
149506
149866
  function generateAgentPrompt(outputDir, url, tokens, _animations, hasScreenshot, hasLottie, hasShaders, _catalogedAssets, _detectedLibraries) {
149507
149867
  const prompt = buildPrompt(outputDir, url, tokens, hasScreenshot, hasLottie, hasShaders);
149508
- writeFileSync37(join89(outputDir, "AGENTS.md"), prompt, "utf-8");
149509
- writeFileSync37(join89(outputDir, "CLAUDE.md"), prompt, "utf-8");
149510
- writeFileSync37(join89(outputDir, ".cursorrules"), prompt, "utf-8");
149868
+ writeFileSync37(join90(outputDir, "AGENTS.md"), prompt, "utf-8");
149869
+ writeFileSync37(join90(outputDir, "CLAUDE.md"), prompt, "utf-8");
149870
+ writeFileSync37(join90(outputDir, ".cursorrules"), prompt, "utf-8");
149511
149871
  }
149512
149872
  function buildPrompt(outputDir, url, tokens, hasScreenshot, hasLottie, hasShaders) {
149513
149873
  const title = tokens.title || new URL(url).hostname.replace(/^www\./, "");
@@ -149516,12 +149876,12 @@ function buildPrompt(outputDir, url, tokens, hasScreenshot, hasLottie, hasShader
149516
149876
  (f3) => f3.family + (f3.variable && f3.weightRange ? ` (${f3.weightRange[0]}-${f3.weightRange[1]} variable)` : f3.weights.length > 0 ? ` (${f3.weights.join(",")})` : "")
149517
149877
  ).join(", ") || "none detected";
149518
149878
  function contactSheetRows(dir, baseFile, label2) {
149519
- const fullDir = join89(outputDir, dir);
149520
- if (!existsSync79(fullDir)) return [];
149879
+ const fullDir = join90(outputDir, dir);
149880
+ if (!existsSync80(fullDir)) return [];
149521
149881
  const baseName = baseFile.replace(/\.jpg$/, "");
149522
149882
  const escapedBase = baseName.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
149523
149883
  const paginatedRe = new RegExp(`^${escapedBase}(?:-(\\d+))?\\.jpg$`);
149524
- const all = readdirSync32(fullDir).filter((f3) => paginatedRe.test(f3)).map((f3) => ({ name: f3, page: parseInt(f3.match(paginatedRe)?.[1] ?? "0", 10) })).sort((a, b2) => a.page - b2.page).map((entry) => entry.name);
149884
+ const all = readdirSync33(fullDir).filter((f3) => paginatedRe.test(f3)).map((f3) => ({ name: f3, page: parseInt(f3.match(paginatedRe)?.[1] ?? "0", 10) })).sort((a, b2) => a.page - b2.page).map((entry) => entry.name);
149525
149885
  if (all.length === 0) return [];
149526
149886
  if (all.length === 1) {
149527
149887
  return [`| \`${dir}/${all[0]}\` | ${label2} |`];
@@ -149549,7 +149909,7 @@ function buildPrompt(outputDir, url, tokens, hasScreenshot, hasLottie, hasShader
149549
149909
  tableRows.push(
149550
149910
  `| \`extracted/tokens.json\` | Design tokens: ${tokens.colors.length} colors, ${tokens.fonts.length} fonts, ${tokens.headings?.length ?? 0} headings, ${tokens.ctas?.length ?? 0} CTAs |`
149551
149911
  );
149552
- if (existsSync79(join89(outputDir, "extracted", "design-styles.json"))) {
149912
+ if (existsSync80(join90(outputDir, "extracted", "design-styles.json"))) {
149553
149913
  tableRows.push(
149554
149914
  "| `extracted/design-styles.json` | Computed styles from live DOM: typography hierarchy, button/card/nav styles, spacing scale, border-radius, box shadows. Primary data source for DESIGN.md. |"
149555
149915
  );
@@ -149620,15 +149980,15 @@ var init_agentPromptGenerator = __esm({
149620
149980
  });
149621
149981
 
149622
149982
  // src/capture/scaffolding.ts
149623
- import { existsSync as existsSync80, writeFileSync as writeFileSync38, readFileSync as readFileSync62 } from "fs";
149624
- import { join as join90, resolve as resolve51 } from "path";
149983
+ import { existsSync as existsSync81, writeFileSync as writeFileSync38, readFileSync as readFileSync63 } from "fs";
149984
+ import { join as join91, resolve as resolve51 } from "path";
149625
149985
  function loadEnvFile(startDir) {
149626
149986
  try {
149627
149987
  let dir = resolve51(startDir);
149628
149988
  for (let i2 = 0; i2 < 5; i2++) {
149629
149989
  const envPath = resolve51(dir, ".env");
149630
149990
  try {
149631
- const envContent = readFileSync62(envPath, "utf-8");
149991
+ const envContent = readFileSync63(envPath, "utf-8");
149632
149992
  for (const line of envContent.split("\n")) {
149633
149993
  const trimmed = line.trim();
149634
149994
  if (!trimmed || trimmed.startsWith("#")) continue;
@@ -149647,8 +150007,8 @@ function loadEnvFile(startDir) {
149647
150007
  }
149648
150008
  }
149649
150009
  async function generateProjectScaffold(outputDir, url, tokens, animationCatalog, hasScreenshots, hasLotties, hasShaders, catalogedAssets, progress, warnings, detectedLibraries) {
149650
- const metaPath = join90(outputDir, "meta.json");
149651
- if (!existsSync80(metaPath)) {
150010
+ const metaPath = join91(outputDir, "meta.json");
150011
+ if (!existsSync81(metaPath)) {
149652
150012
  const hostname = new URL(url).hostname.replace(/^www\./, "");
149653
150013
  writeFileSync38(
149654
150014
  metaPath,
@@ -149686,9 +150046,9 @@ __export(screenshotCapture_exports, {
149686
150046
  captureScrollScreenshots: () => captureScrollScreenshots
149687
150047
  });
149688
150048
  import { writeFileSync as writeFileSync39, mkdirSync as mkdirSync44 } from "fs";
149689
- import { join as join91 } from "path";
150049
+ import { join as join92 } from "path";
149690
150050
  async function captureScrollScreenshots(page, outputDir) {
149691
- const screenshotsDir = join91(outputDir, "screenshots");
150051
+ const screenshotsDir = join92(outputDir, "screenshots");
149692
150052
  mkdirSync44(screenshotsDir, { recursive: true });
149693
150053
  const MAX_SCREENSHOTS = 20;
149694
150054
  const filePaths = [];
@@ -149780,7 +150140,7 @@ async function captureScrollScreenshots(page, outputDir) {
149780
150140
  finalPositions[i2] / Math.max(1, scrollHeight - viewportHeight) * 100
149781
150141
  );
149782
150142
  const filename = `scroll-${String(Math.min(pct, 100)).padStart(3, "0")}.png`;
149783
- const filePath = join91(screenshotsDir, filename);
150143
+ const filePath = join92(screenshotsDir, filename);
149784
150144
  const buffer = await page.screenshot({ type: "png" });
149785
150145
  writeFileSync39(filePath, buffer);
149786
150146
  filePaths.push(`screenshots/${filename}`);
@@ -150129,8 +150489,8 @@ var capture_exports = {};
150129
150489
  __export(capture_exports, {
150130
150490
  captureWebsite: () => captureWebsite
150131
150491
  });
150132
- import { mkdirSync as mkdirSync45, writeFileSync as writeFileSync40, existsSync as existsSync81 } from "fs";
150133
- import { join as join92 } from "path";
150492
+ import { mkdirSync as mkdirSync45, writeFileSync as writeFileSync40, existsSync as existsSync82 } from "fs";
150493
+ import { join as join93 } from "path";
150134
150494
  async function captureWebsite(opts, onProgress) {
150135
150495
  const {
150136
150496
  url,
@@ -150147,9 +150507,9 @@ async function captureWebsite(opts, onProgress) {
150147
150507
  onProgress?.(stage, detail);
150148
150508
  };
150149
150509
  loadEnvFile(outputDir);
150150
- mkdirSync45(join92(outputDir, "extracted"), { recursive: true });
150151
- mkdirSync45(join92(outputDir, "screenshots"), { recursive: true });
150152
- mkdirSync45(join92(outputDir, "assets"), { recursive: true });
150510
+ mkdirSync45(join93(outputDir, "extracted"), { recursive: true });
150511
+ mkdirSync45(join93(outputDir, "screenshots"), { recursive: true });
150512
+ mkdirSync45(join93(outputDir, "assets"), { recursive: true });
150153
150513
  progress("browser", "Launching headless Chrome...");
150154
150514
  const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
150155
150515
  const browser = await ensureBrowser2();
@@ -150309,7 +150669,7 @@ async function captureWebsite(opts, onProgress) {
150309
150669
  } catch {
150310
150670
  }
150311
150671
  if (discoveredLotties.length > 0) {
150312
- const lottieDir = join92(outputDir, "assets", "lottie");
150672
+ const lottieDir = join93(outputDir, "assets", "lottie");
150313
150673
  mkdirSync45(lottieDir, { recursive: true });
150314
150674
  const savedCount = await saveLottieAnimations(discoveredLotties, lottieDir);
150315
150675
  if (savedCount > 0) {
@@ -150329,7 +150689,7 @@ async function captureWebsite(opts, onProgress) {
150329
150689
  });
150330
150690
  capturedShaders = unique;
150331
150691
  writeFileSync40(
150332
- join92(outputDir, "extracted", "shaders.json"),
150692
+ join93(outputDir, "extracted", "shaders.json"),
150333
150693
  JSON.stringify(unique, null, 2),
150334
150694
  "utf-8"
150335
150695
  );
@@ -150344,7 +150704,7 @@ async function captureWebsite(opts, onProgress) {
150344
150704
  svgs: tokens.svgs.map(({ outerHTML: _, ...rest }) => rest)
150345
150705
  };
150346
150706
  writeFileSync40(
150347
- join92(outputDir, "extracted", "tokens.json"),
150707
+ join93(outputDir, "extracted", "tokens.json"),
150348
150708
  JSON.stringify(tokensForDisk, null, 2),
150349
150709
  "utf-8"
150350
150710
  );
@@ -150352,7 +150712,7 @@ async function captureWebsite(opts, onProgress) {
150352
150712
  try {
150353
150713
  const designStyles = await extractDesignStyles(page1);
150354
150714
  writeFileSync40(
150355
- join92(outputDir, "extracted", "design-styles.json"),
150715
+ join93(outputDir, "extracted", "design-styles.json"),
150356
150716
  JSON.stringify(designStyles, null, 2),
150357
150717
  "utf-8"
150358
150718
  );
@@ -150431,8 +150791,8 @@ ${err.stack}` : String(err);
150431
150791
  extracted.headHtml = await downloadAndRewriteFonts(extracted.headHtml, outputDir);
150432
150792
  try {
150433
150793
  const fontsManifest = extractFontMetadata(
150434
- join92(outputDir, "assets", "fonts"),
150435
- join92(outputDir, "extracted", "fonts-manifest.json")
150794
+ join93(outputDir, "assets", "fonts"),
150795
+ join93(outputDir, "extracted", "fonts-manifest.json")
150436
150796
  );
150437
150797
  if (fontsManifest.families.length > 0) {
150438
150798
  const summary = fontsManifest.families.map((f3) => `${f3.family}${f3.variable ? " (variable)" : ""} \xD7 ${f3.fileCount}`).join(", ");
@@ -150462,7 +150822,7 @@ ${err.stack}` : String(err);
150462
150822
  representativeAnimations: representativeAnims
150463
150823
  };
150464
150824
  writeFileSync40(
150465
- join92(outputDir, "extracted", "animations.json"),
150825
+ join93(outputDir, "extracted", "animations.json"),
150466
150826
  JSON.stringify(leanCatalog, null, 2),
150467
150827
  "utf-8"
150468
150828
  );
@@ -150493,7 +150853,7 @@ ${err.stack}` : String(err);
150493
150853
  svgs: tokens.svgs.map(({ outerHTML: _, ...rest }) => rest)
150494
150854
  };
150495
150855
  writeFileSync40(
150496
- join92(outputDir, "extracted", "tokens.json"),
150856
+ join93(outputDir, "extracted", "tokens.json"),
150497
150857
  JSON.stringify(tokensForDisk2, null, 2),
150498
150858
  "utf-8"
150499
150859
  );
@@ -150509,12 +150869,12 @@ ${extracted.bodyHtml}
150509
150869
  </body>
150510
150870
  </html>
150511
150871
  `;
150512
- writeFileSync40(join92(outputDir, "extracted", "page.html"), pageHtml, "utf-8");
150872
+ writeFileSync40(join93(outputDir, "extracted", "page.html"), pageHtml, "utf-8");
150513
150873
  } catch (err) {
150514
150874
  warnings.push(`page.html write failed: ${err}`);
150515
150875
  }
150516
150876
  if (visibleTextContent) {
150517
- writeFileSync40(join92(outputDir, "extracted", "visible-text.txt"), visibleTextContent, "utf-8");
150877
+ writeFileSync40(join93(outputDir, "extracted", "visible-text.txt"), visibleTextContent, "utf-8");
150518
150878
  }
150519
150879
  const geminiCaptions = await captionImagesWithGemini(outputDir, progress, warnings);
150520
150880
  progress("design", "Generating asset descriptions...");
@@ -150524,7 +150884,7 @@ ${extracted.bodyHtml}
150524
150884
  const hasGeminiKey = !!(process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY);
150525
150885
  const header = hasGeminiKey ? "# Asset Descriptions\n\nOne line per file. Read this instead of opening every image individually.\n\nTo find a specific brand or icon, **grep this file for the brand name in the description text** (e.g. `grep -i 'autodesk' asset-descriptions.md`). The Gemini Vision captions identify what's actually in each file \u2014 that's the agent's selector.\n\nThe `logo-<hash>.svg` filename prefix is a cheap structural hint (DOM said this SVG was inside a `<header>`, home-link `<a>`, or had an aria-label matching the page brand). It is NOT a content claim \u2014 many `logo-*` files are nav icons or decorative shapes. Trust the captions, not the filename prefix.\n\n" : "# Asset Descriptions\n\n\u26A0\uFE0F GEMINI_API_KEY not set \u2014 descriptions below are catalog-derived (alt text, headings, section context, filename) instead of Vision-generated. To get richer Vision descriptions on the next capture, set GEMINI_API_KEY (or GOOGLE_API_KEY) and re-run.\n\nThe `logo-<hash>.svg` filename prefix is a structural hint (DOM said this SVG was inside a `<header>`, home-link `<a>`, or had an aria-label matching the page brand). To pick the actual brand logo without Vision, open the `logo-*` candidates in a previewer or rasterize them with `sharp` before referencing \u2014 composing a fake logo ships off-brand in the final video.\n\n";
150526
150886
  writeFileSync40(
150527
- join92(outputDir, "extracted", "asset-descriptions.md"),
150887
+ join93(outputDir, "extracted", "asset-descriptions.md"),
150528
150888
  header + lines.map((l) => "- " + l).join("\n") + "\n",
150529
150889
  "utf-8"
150530
150890
  );
@@ -150539,19 +150899,19 @@ ${extracted.bodyHtml}
150539
150899
  try {
150540
150900
  const { createScrollContactSheet: createScrollContactSheet2, createAssetContactSheet: createAssetContactSheet2, createSvgContactSheet: createSvgContactSheet2 } = await Promise.resolve().then(() => (init_contactSheet(), contactSheet_exports));
150541
150901
  const scrollSheets = await createScrollContactSheet2(
150542
- join92(outputDir, "screenshots"),
150543
- join92(outputDir, "screenshots", "contact-sheet.jpg")
150902
+ join93(outputDir, "screenshots"),
150903
+ join93(outputDir, "screenshots", "contact-sheet.jpg")
150544
150904
  );
150545
150905
  if (scrollSheets.length > 0)
150546
150906
  progress(
150547
150907
  "design",
150548
150908
  `Screenshot contact sheet generated (${scrollSheets.length} page${scrollSheets.length > 1 ? "s" : ""})`
150549
150909
  );
150550
- const assetsImgDir = join92(outputDir, "assets");
150551
- if (existsSync81(assetsImgDir)) {
150910
+ const assetsImgDir = join93(outputDir, "assets");
150911
+ if (existsSync82(assetsImgDir)) {
150552
150912
  const assetSheets = await createAssetContactSheet2(
150553
150913
  assetsImgDir,
150554
- join92(outputDir, "assets", "contact-sheet.jpg")
150914
+ join93(outputDir, "assets", "contact-sheet.jpg")
150555
150915
  );
150556
150916
  if (assetSheets.length > 0)
150557
150917
  progress(
@@ -150559,9 +150919,9 @@ ${extracted.bodyHtml}
150559
150919
  `Asset contact sheet generated (${assetSheets.length} page${assetSheets.length > 1 ? "s" : ""})`
150560
150920
  );
150561
150921
  }
150562
- const svgsDir = join92(outputDir, "assets", "svgs");
150563
- const assetsRootDir = join92(outputDir, "assets");
150564
- const svgOutputPath = existsSync81(svgsDir) ? join92(outputDir, "assets", "svgs", "contact-sheet.jpg") : join92(outputDir, "assets", "contact-sheet-svgs.jpg");
150922
+ const svgsDir = join93(outputDir, "assets", "svgs");
150923
+ const assetsRootDir = join93(outputDir, "assets");
150924
+ const svgOutputPath = existsSync82(svgsDir) ? join93(outputDir, "assets", "svgs", "contact-sheet.jpg") : join93(outputDir, "assets", "contact-sheet-svgs.jpg");
150565
150925
  const svgSheets = await createSvgContactSheet2(svgsDir, svgOutputPath, assetsRootDir);
150566
150926
  if (svgSheets.length > 0)
150567
150927
  progress(
@@ -150577,7 +150937,7 @@ ${extracted.bodyHtml}
150577
150937
  animationCatalog,
150578
150938
  screenshots.length > 0,
150579
150939
  discoveredLotties.length > 0,
150580
- existsSync81(join92(outputDir, "extracted", "shaders.json")),
150940
+ existsSync82(join93(outputDir, "extracted", "shaders.json")),
150581
150941
  catalogedAssets,
150582
150942
  progress,
150583
150943
  warnings,
@@ -150619,21 +150979,25 @@ var init_capture = __esm({
150619
150979
  var capture_exports2 = {};
150620
150980
  __export(capture_exports2, {
150621
150981
  default: () => capture_default,
150622
- examples: () => examples26
150982
+ examples: () => examples25
150623
150983
  });
150624
150984
  import { resolve as resolve52 } from "path";
150625
- var examples26, capture_default;
150985
+ var examples25, capture_default;
150626
150986
  var init_capture2 = __esm({
150627
150987
  "src/commands/capture.ts"() {
150628
150988
  "use strict";
150629
150989
  init_dist();
150630
- examples26 = [
150990
+ examples25 = [
150631
150991
  ["Capture a website", "hyperframes capture https://stripe.com"],
150632
150992
  ["Capture to a specific directory", "hyperframes capture https://linear.app -o linear-video"],
150633
150993
  ["JSON output for AI agents", "hyperframes capture https://example.com --json"],
150634
150994
  [
150635
150995
  "Pull a video from the captured manifest by index",
150636
- "hyperframes capture video ./linear-video --index 0"
150996
+ "hyperframes capture --video ./linear-video --index 0"
150997
+ ],
150998
+ [
150999
+ "List videos referenced in the captured manifest",
151000
+ "hyperframes capture --video ./linear-video --list"
150637
151001
  ]
150638
151002
  ];
150639
151003
  capture_default = defineCommand({
@@ -150641,14 +151005,11 @@ var init_capture2 = __esm({
150641
151005
  name: "capture",
150642
151006
  description: "Capture a website as editable HyperFrames components"
150643
151007
  },
150644
- subCommands: {
150645
- video: () => Promise.resolve().then(() => (init_video(), video_exports)).then((m2) => m2.default)
150646
- },
150647
151008
  args: {
150648
151009
  url: {
150649
151010
  type: "positional",
150650
- description: "Website URL to capture",
150651
- required: true
151011
+ description: "Website URL to capture (omit when using --video)",
151012
+ required: false
150652
151013
  },
150653
151014
  output: {
150654
151015
  type: "string",
@@ -150672,11 +151033,43 @@ var init_capture2 = __esm({
150672
151033
  type: "boolean",
150673
151034
  description: "Output JSON (for AI agents / programmatic use)",
150674
151035
  default: false
151036
+ },
151037
+ video: {
151038
+ type: "string",
151039
+ description: "Switch to video-download mode: path to a captured project directory whose video-manifest.json should be read. Pair with --index, --video-url, or --list."
151040
+ },
151041
+ index: {
151042
+ type: "string",
151043
+ description: "(--video mode) Manifest entry index to download (0-based)"
151044
+ },
151045
+ "video-url": {
151046
+ type: "string",
151047
+ description: "(--video mode) Exact video URL to download (must match a manifest entry)"
151048
+ },
151049
+ list: {
151050
+ type: "boolean",
151051
+ description: "(--video mode) List manifest entries and exit",
151052
+ default: false
150675
151053
  }
150676
151054
  },
150677
151055
  async run({ args }) {
151056
+ if (args.video) {
151057
+ const { runVideoMode: runVideoMode2 } = await Promise.resolve().then(() => (init_video(), video_exports));
151058
+ await runVideoMode2({
151059
+ project: args.video,
151060
+ index: args.index ?? null,
151061
+ url: args["video-url"] ?? null,
151062
+ list: args.list
151063
+ });
151064
+ return;
151065
+ }
150678
151066
  const url = args.url;
150679
- if (url === "video") return;
151067
+ if (!url) {
151068
+ console.error(
151069
+ "Missing URL. Pass a website URL, or use --video <project> for video download."
151070
+ );
151071
+ process.exit(1);
151072
+ }
150680
151073
  try {
150681
151074
  new URL(url);
150682
151075
  } catch {
@@ -150813,10 +151206,10 @@ __export(state_exports, {
150813
151206
  stateFilePath: () => stateFilePath,
150814
151207
  writeStackOutputs: () => writeStackOutputs
150815
151208
  });
150816
- import { existsSync as existsSync82, mkdirSync as mkdirSync46, readdirSync as readdirSync33, readFileSync as readFileSync63, rmSync as rmSync18, writeFileSync as writeFileSync41 } from "fs";
150817
- import { dirname as dirname37, join as join93 } from "path";
151209
+ import { existsSync as existsSync83, mkdirSync as mkdirSync46, readdirSync as readdirSync34, readFileSync as readFileSync64, rmSync as rmSync18, writeFileSync as writeFileSync41 } from "fs";
151210
+ import { dirname as dirname37, join as join94 } from "path";
150818
151211
  function stateFilePath(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
150819
- return join93(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
151212
+ return join94(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
150820
151213
  }
150821
151214
  function writeStackOutputs(outputs, cwd = process.cwd()) {
150822
151215
  const path2 = stateFilePath(outputs.stackName, cwd);
@@ -150826,21 +151219,21 @@ function writeStackOutputs(outputs, cwd = process.cwd()) {
150826
151219
  }
150827
151220
  function readStackOutputs(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
150828
151221
  const path2 = stateFilePath(stackName, cwd);
150829
- if (!existsSync82(path2)) return null;
151222
+ if (!existsSync83(path2)) return null;
150830
151223
  try {
150831
- return JSON.parse(readFileSync63(path2, "utf-8"));
151224
+ return JSON.parse(readFileSync64(path2, "utf-8"));
150832
151225
  } catch {
150833
151226
  return null;
150834
151227
  }
150835
151228
  }
150836
151229
  function deleteStackOutputs(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
150837
151230
  const path2 = stateFilePath(stackName, cwd);
150838
- if (existsSync82(path2)) rmSync18(path2);
151231
+ if (existsSync83(path2)) rmSync18(path2);
150839
151232
  }
150840
151233
  function listStackNames(cwd = process.cwd()) {
150841
- const dir = join93(cwd, STATE_DIR_NAME);
150842
- if (!existsSync82(dir)) return [];
150843
- return readdirSync33(dir).filter((f3) => f3.startsWith(STATE_FILE_PREFIX) && f3.endsWith(".json")).map((f3) => f3.slice(STATE_FILE_PREFIX.length, -".json".length));
151234
+ const dir = join94(cwd, STATE_DIR_NAME);
151235
+ if (!existsSync83(dir)) return [];
151236
+ return readdirSync34(dir).filter((f3) => f3.startsWith(STATE_FILE_PREFIX) && f3.endsWith(".json")).map((f3) => f3.slice(STATE_FILE_PREFIX.length, -".json".length));
150844
151237
  }
150845
151238
  function requireStack(stackName, cwd = process.cwd()) {
150846
151239
  const stack = readStackOutputs(stackName, cwd);
@@ -150869,8 +151262,8 @@ var init_state = __esm({
150869
151262
 
150870
151263
  // src/commands/lambda/sam.ts
150871
151264
  import { execFileSync as execFileSync11, spawnSync as spawnSync4 } from "child_process";
150872
- import { existsSync as existsSync83 } from "fs";
150873
- import { join as join94 } from "path";
151265
+ import { existsSync as existsSync84 } from "fs";
151266
+ import { join as join95 } from "path";
150874
151267
  function assertSamAvailable() {
150875
151268
  try {
150876
151269
  execFileSync11("sam", ["--version"], { stdio: "ignore" });
@@ -150890,8 +151283,8 @@ function assertAwsCliAvailable() {
150890
151283
  }
150891
151284
  }
150892
151285
  function locateSamTemplate(repoRoot2) {
150893
- const candidate = join94(repoRoot2, "examples", "aws-lambda", "template.yaml");
150894
- if (!existsSync83(candidate)) {
151286
+ const candidate = join95(repoRoot2, "examples", "aws-lambda", "template.yaml");
151287
+ if (!existsSync84(candidate)) {
150895
151288
  throw new Error(
150896
151289
  `[lambda] SAM template not found at ${candidate}. If you're running from an installed package, point --sam-template at your local copy of examples/aws-lambda/template.yaml.`
150897
151290
  );
@@ -150924,7 +151317,7 @@ function samDeploy(opts) {
150924
151317
  if (opts.awsProfile) {
150925
151318
  args.push("--profile", opts.awsProfile);
150926
151319
  }
150927
- const samDir = join94(opts.repoRoot, "examples", "aws-lambda");
151320
+ const samDir = join95(opts.repoRoot, "examples", "aws-lambda");
150928
151321
  const result = spawnSync4("sam", args, { cwd: samDir, stdio: opts.stdio ?? "inherit" });
150929
151322
  if (result.status !== 0) {
150930
151323
  throw new Error(`[lambda] sam deploy exited with code ${result.status ?? "unknown"}`);
@@ -150936,7 +151329,7 @@ function samDelete(opts) {
150936
151329
  if (opts.awsProfile) {
150937
151330
  args.push("--profile", opts.awsProfile);
150938
151331
  }
150939
- const samDir = join94(opts.repoRoot, "examples", "aws-lambda");
151332
+ const samDir = join95(opts.repoRoot, "examples", "aws-lambda");
150940
151333
  const result = spawnSync4("sam", args, { cwd: samDir, stdio: opts.stdio ?? "inherit" });
150941
151334
  if (result.status !== 0) {
150942
151335
  throw new Error(`[lambda] sam delete exited with code ${result.status ?? "unknown"}`);
@@ -150986,17 +151379,17 @@ var init_sam = __esm({
150986
151379
  });
150987
151380
 
150988
151381
  // src/commands/lambda/repoRoot.ts
150989
- import { existsSync as existsSync84 } from "fs";
151382
+ import { existsSync as existsSync85 } from "fs";
150990
151383
  import { dirname as dirname38, resolve as resolve53 } from "path";
150991
151384
  import { fileURLToPath as fileURLToPath12 } from "url";
150992
151385
  function repoRoot() {
150993
151386
  const override = process.env.HYPERFRAMES_REPO_ROOT;
150994
- if (override && existsSync84(resolve53(override, "packages", "aws-lambda", "package.json"))) {
151387
+ if (override && existsSync85(resolve53(override, "packages", "aws-lambda", "package.json"))) {
150995
151388
  return override;
150996
151389
  }
150997
151390
  let dir = dirname38(fileURLToPath12(import.meta.url));
150998
151391
  for (let depth = 0; depth < 12; depth++) {
150999
- if (existsSync84(resolve53(dir, "packages", "aws-lambda", "package.json"))) {
151392
+ if (existsSync85(resolve53(dir, "packages", "aws-lambda", "package.json"))) {
151000
151393
  return dir;
151001
151394
  }
151002
151395
  const parent = dirname38(dir);
@@ -151019,8 +151412,8 @@ __export(deploy_exports, {
151019
151412
  runDeploy: () => runDeploy
151020
151413
  });
151021
151414
  import { spawnSync as spawnSync5 } from "child_process";
151022
- import { existsSync as existsSync85 } from "fs";
151023
- import { join as join95, resolve as resolve54 } from "path";
151415
+ import { existsSync as existsSync86 } from "fs";
151416
+ import { join as join96, resolve as resolve54 } from "path";
151024
151417
  async function runDeploy(args = {}) {
151025
151418
  const resolved = {
151026
151419
  stackName: args.stackName ?? DEFAULT_STACK_NAME,
@@ -151037,8 +151430,8 @@ async function runDeploy(args = {}) {
151037
151430
  console.log(c2.dim("\u2192 Building handler ZIP"));
151038
151431
  buildHandlerZip(root);
151039
151432
  } else {
151040
- const zip = join95(root, "packages", "aws-lambda", "dist", "handler.zip");
151041
- if (!existsSync85(zip)) {
151433
+ const zip = join96(root, "packages", "aws-lambda", "dist", "handler.zip");
151434
+ if (!existsSync86(zip)) {
151042
151435
  throw new Error(
151043
151436
  `--skip-build set but ${zip} does not exist. Run \`bun run --cwd packages/aws-lambda build:zip\` first or drop --skip-build.`
151044
151437
  );
@@ -151081,7 +151474,7 @@ async function runDeploy(args = {}) {
151081
151474
  function buildHandlerZip(root) {
151082
151475
  const result = spawnSync5(
151083
151476
  "bun",
151084
- ["run", "--cwd", join95(root, "packages", "aws-lambda"), "build:zip"],
151477
+ ["run", "--cwd", join96(root, "packages", "aws-lambda"), "build:zip"],
151085
151478
  { stdio: "inherit" }
151086
151479
  );
151087
151480
  if (result.status !== 0) {
@@ -151150,14 +151543,14 @@ var init_sites = __esm({
151150
151543
  });
151151
151544
 
151152
151545
  // src/commands/lambda/_dimensions.ts
151153
- import { readFileSync as readFileSync64 } from "fs";
151154
- import { join as join96 } from "path";
151546
+ import { readFileSync as readFileSync65 } from "fs";
151547
+ import { join as join97 } from "path";
151155
151548
  function warnOnDimensionMismatch(args) {
151156
151549
  if (args.quiet) return;
151157
151550
  if (args.outputResolution) return;
151158
151551
  let html;
151159
151552
  try {
151160
- html = readFileSync64(join96(args.projectDir, "index.html"), "utf-8");
151553
+ html = readFileSync65(join97(args.projectDir, "index.html"), "utf-8");
151161
151554
  } catch {
151162
151555
  return;
151163
151556
  }
@@ -151185,8 +151578,8 @@ var render_exports2 = {};
151185
151578
  __export(render_exports2, {
151186
151579
  runRender: () => runRender
151187
151580
  });
151188
- import { existsSync as existsSync86 } from "fs";
151189
- import { join as join97, resolve as resolvePath2 } from "path";
151581
+ import { existsSync as existsSync87 } from "fs";
151582
+ import { join as join98, resolve as resolvePath2 } from "path";
151190
151583
  async function loadSDK2() {
151191
151584
  return import("@hyperframes/aws-lambda/sdk");
151192
151585
  }
@@ -151202,8 +151595,8 @@ async function runRender(args) {
151202
151595
  });
151203
151596
  const variables = resolveVariablesArg(args.variables, args.variablesFile);
151204
151597
  if (variables && Object.keys(variables).length > 0) {
151205
- const indexPath = join97(projectDir, "index.html");
151206
- if (existsSync86(indexPath)) {
151598
+ const indexPath = join98(projectDir, "index.html");
151599
+ if (existsSync87(indexPath)) {
151207
151600
  const issues = validateVariablesAgainstProject(indexPath, variables);
151208
151601
  reportVariableIssues(issues, { strict: args.strictVariables ?? false, quiet: args.json });
151209
151602
  } else if (args.strictVariables && !args.json) {
@@ -151327,8 +151720,8 @@ __export(render_batch_exports, {
151327
151720
  runRenderBatch: () => runRenderBatch,
151328
151721
  runWithConcurrencyLimit: () => runWithConcurrencyLimit
151329
151722
  });
151330
- import { existsSync as existsSync87, readFileSync as readFileSync65 } from "fs";
151331
- import { join as join98, resolve as resolvePath3 } from "path";
151723
+ import { existsSync as existsSync88, readFileSync as readFileSync66 } from "fs";
151724
+ import { join as join99, resolve as resolvePath3 } from "path";
151332
151725
  async function loadSDK3() {
151333
151726
  return import("@hyperframes/aws-lambda/sdk");
151334
151727
  }
@@ -151336,7 +151729,7 @@ async function runRenderBatch(args) {
151336
151729
  const projectDir = resolvePath3(args.projectDir);
151337
151730
  const stack = requireStack(args.stackName);
151338
151731
  const batchPath = resolvePath3(args.batch);
151339
- if (!existsSync87(batchPath)) {
151732
+ if (!existsSync88(batchPath)) {
151340
151733
  errorBox("Batch file not found", `No such file: ${batchPath}`);
151341
151734
  process.exit(1);
151342
151735
  }
@@ -151352,7 +151745,7 @@ async function runRenderBatch(args) {
151352
151745
  outputResolution: args.outputResolution,
151353
151746
  quiet: args.json
151354
151747
  });
151355
- const schema = loadProjectVariableSchema(join98(projectDir, "index.html"));
151748
+ const schema = loadProjectVariableSchema(join99(projectDir, "index.html"));
151356
151749
  const strict = args.strictVariables ?? false;
151357
151750
  let hadStrictIssue = false;
151358
151751
  for (const { entry, lineNumber } of entries2) {
@@ -151480,7 +151873,7 @@ function makePlaceholderSiteHandle(siteId, bucketName) {
151480
151873
  };
151481
151874
  }
151482
151875
  function parseBatchFile(path2) {
151483
- const raw = readFileSync65(path2, "utf8");
151876
+ const raw = readFileSync66(path2, "utf8");
151484
151877
  const lines = raw.split(/\r?\n/);
151485
151878
  const out = [];
151486
151879
  for (let i2 = 0; i2 < lines.length; i2++) {
@@ -151674,7 +152067,7 @@ __export(policies_exports, {
151674
152067
  runPolicies: () => runPolicies,
151675
152068
  validatePolicy: () => validatePolicy
151676
152069
  });
151677
- import { readFileSync as readFileSync66 } from "fs";
152070
+ import { readFileSync as readFileSync67 } from "fs";
151678
152071
  function allRequiredActions() {
151679
152072
  const set = /* @__PURE__ */ new Set();
151680
152073
  for (const group of Object.values(REQUIRED_ACTIONS)) {
@@ -151780,7 +152173,7 @@ async function runPolicies(args) {
151780
152173
  }
151781
152174
  }
151782
152175
  function validatePolicy(policyPath) {
151783
- const raw = readFileSync66(policyPath, "utf-8");
152176
+ const raw = readFileSync67(policyPath, "utf-8");
151784
152177
  const parsed = JSON.parse(raw);
151785
152178
  const statements = Array.isArray(parsed.Statement) ? parsed.Statement : parsed.Statement ? [
151786
152179
  parsed.Statement
@@ -151947,7 +152340,7 @@ var init_policies = __esm({
151947
152340
  var lambda_exports = {};
151948
152341
  __export(lambda_exports, {
151949
152342
  default: () => lambda_default,
151950
- examples: () => examples27
152343
+ examples: () => examples26
151951
152344
  });
151952
152345
  function parseIntFlag(raw) {
151953
152346
  if (raw === void 0 || raw === null || raw === "") return void 0;
@@ -151976,14 +152369,14 @@ function parseOutputResolution(raw) {
151976
152369
  `[lambda render] --output-resolution must be one of ${VALID_CANVAS_RESOLUTIONS.join("|")} (or an alias: 1080p, 4k, uhd, hd, 1080p-portrait, portrait-1080p, 4k-portrait, 1080p-square, square-1080p, 4k-square); got ${String(raw)}`
151977
152370
  );
151978
152371
  }
151979
- var examples27, HELP, lambda_default, FORMATS, CODECS, QUALITIES2, CHROME_SOURCES, parseFormat, parseCodec, parseQuality, parseChromeSource;
152372
+ var examples26, HELP, lambda_default, FORMATS, CODECS, QUALITIES2, CHROME_SOURCES, parseFormat, parseCodec, parseQuality, parseChromeSource;
151980
152373
  var init_lambda = __esm({
151981
152374
  "src/commands/lambda.ts"() {
151982
152375
  "use strict";
151983
152376
  init_dist();
151984
152377
  init_src();
151985
152378
  init_colors();
151986
- examples27 = [
152379
+ examples26 = [
151987
152380
  ["Deploy the Lambda render stack to AWS", "hyperframes lambda deploy"],
151988
152381
  [
151989
152382
  "Render a composition on the deployed stack",
@@ -152370,18 +152763,18 @@ ${HELP}`);
152370
152763
  var cloudrun_exports = {};
152371
152764
  __export(cloudrun_exports, {
152372
152765
  default: () => cloudrun_default,
152373
- examples: () => examples28
152766
+ examples: () => examples27
152374
152767
  });
152375
152768
  import { spawnSync as spawnSync6 } from "child_process";
152376
152769
  import { createRequire as createRequire4 } from "module";
152377
- import { existsSync as existsSync88, mkdirSync as mkdirSync47, readFileSync as readFileSync67, writeFileSync as writeFileSync42 } from "fs";
152770
+ import { existsSync as existsSync89, mkdirSync as mkdirSync47, readFileSync as readFileSync68, writeFileSync as writeFileSync42 } from "fs";
152378
152771
  import { homedir as homedir12 } from "os";
152379
- import { dirname as dirname39, join as join99, resolve as resolve55 } from "path";
152772
+ import { dirname as dirname39, join as join100, resolve as resolve55 } from "path";
152380
152773
  function stateDir() {
152381
- return join99(homedir12(), ".hyperframes");
152774
+ return join100(homedir12(), ".hyperframes");
152382
152775
  }
152383
152776
  function statePath() {
152384
- return join99(stateDir(), "cloudrun-state.json");
152777
+ return join100(stateDir(), "cloudrun-state.json");
152385
152778
  }
152386
152779
  function writeState(state) {
152387
152780
  mkdirSync47(stateDir(), { recursive: true });
@@ -152393,9 +152786,9 @@ function readState(args) {
152393
152786
  region: args.region
152394
152787
  };
152395
152788
  let base2 = {};
152396
- if (existsSync88(statePath())) {
152789
+ if (existsSync89(statePath())) {
152397
152790
  try {
152398
- base2 = JSON.parse(readFileSync67(statePath(), "utf8"));
152791
+ base2 = JSON.parse(readFileSync68(statePath(), "utf8"));
152399
152792
  } catch {
152400
152793
  }
152401
152794
  }
@@ -152415,7 +152808,7 @@ function stripUndefined2(o) {
152415
152808
  function terraformDir() {
152416
152809
  const require3 = createRequire4(import.meta.url);
152417
152810
  const pkgJson = require3.resolve("@hyperframes/gcp-cloud-run/package.json");
152418
- return join99(dirname39(pkgJson), "terraform");
152811
+ return join100(dirname39(pkgJson), "terraform");
152419
152812
  }
152420
152813
  function run(cmd, cmdArgs, opts = {}) {
152421
152814
  const res = spawnSync6(cmd, cmdArgs, { stdio: "inherit", cwd: opts.cwd });
@@ -152542,11 +152935,11 @@ function machineVars(args, project, region, image) {
152542
152935
  }
152543
152936
  function findRepoRoot(tfDir) {
152544
152937
  const candidate = resolve55(tfDir, "..", "..", "..");
152545
- if (existsSync88(join99(candidate, "packages", "gcp-cloud-run", "Dockerfile"))) return candidate;
152938
+ if (existsSync89(join100(candidate, "packages", "gcp-cloud-run", "Dockerfile"))) return candidate;
152546
152939
  return null;
152547
152940
  }
152548
152941
  function writeCloudBuildConfig(image) {
152549
- const cfgPath = join99(stateDir(), "cloudrun-cloudbuild.yaml");
152942
+ const cfgPath = join100(stateDir(), "cloudrun-cloudbuild.yaml");
152550
152943
  mkdirSync47(stateDir(), { recursive: true });
152551
152944
  writeFileSync42(
152552
152945
  cfgPath,
@@ -152693,7 +153086,7 @@ async function runRenderBatch2(args) {
152693
153086
  console.error(`[cloudrun render-batch] --fps must be 24, 30, or 60; got ${fps}.`);
152694
153087
  process.exit(1);
152695
153088
  }
152696
- if (!existsSync88(resolve55(batchPath))) {
153089
+ if (!existsSync89(resolve55(batchPath))) {
152697
153090
  console.error(`[cloudrun render-batch] batch file not found: ${batchPath}`);
152698
153091
  process.exit(1);
152699
153092
  }
@@ -152760,7 +153153,7 @@ async function runRenderBatch2(args) {
152760
153153
  if (failed.length > 0) process.exit(1);
152761
153154
  }
152762
153155
  function parseBatchFile2(path2) {
152763
- const lines = readFileSync67(path2, "utf8").split(/\r?\n/);
153156
+ const lines = readFileSync68(path2, "utf8").split(/\r?\n/);
152764
153157
  const entries2 = [];
152765
153158
  lines.forEach((line, idx) => {
152766
153159
  const trimmed = line.trim();
@@ -152784,7 +153177,7 @@ function parseBatchFile2(path2) {
152784
153177
  }
152785
153178
  function runDestroy2(args) {
152786
153179
  const tfDir = terraformDir();
152787
- const state = existsSync88(statePath()) ? JSON.parse(readFileSync67(statePath(), "utf8")) : {};
153180
+ const state = existsSync89(statePath()) ? JSON.parse(readFileSync68(statePath(), "utf8")) : {};
152788
153181
  const project = args.project ?? state.projectId;
152789
153182
  const region = args.region ?? state.region ?? "us-central1";
152790
153183
  const image = args.image ?? "unused:latest";
@@ -152832,8 +153225,8 @@ function resolveAndValidateVariables(args, projectDir) {
152832
153225
  args["variables-file"]
152833
153226
  );
152834
153227
  if (variables && Object.keys(variables).length > 0) {
152835
- const indexPath = join99(projectDir, "index.html");
152836
- if (existsSync88(indexPath)) {
153228
+ const indexPath = join100(projectDir, "index.html");
153229
+ if (existsSync89(indexPath)) {
152837
153230
  const issues = validateVariablesAgainstProject(indexPath, variables);
152838
153231
  reportVariableIssues(issues, {
152839
153232
  strict: Boolean(args["strict-variables"]),
@@ -152870,7 +153263,7 @@ function parseEnum2(raw, allowed, errorPrefix, defaultValue) {
152870
153263
  if (allowed.includes(s2)) return s2;
152871
153264
  throw new Error(`${errorPrefix} must be ${allowed.join("|")}; got ${s2}`);
152872
153265
  }
152873
- var examples28, HELP2, cloudrun_default, DEFAULT_BATCH_MAX_CONCURRENT, FORMATS2, CODECS2, QUALITIES3, parseFormat2, parseCodec2, parseQuality2;
153266
+ var examples27, HELP2, cloudrun_default, DEFAULT_BATCH_MAX_CONCURRENT, FORMATS2, CODECS2, QUALITIES3, parseFormat2, parseCodec2, parseQuality2;
152874
153267
  var init_cloudrun = __esm({
152875
153268
  "src/commands/cloudrun.ts"() {
152876
153269
  "use strict";
@@ -152878,7 +153271,7 @@ var init_cloudrun = __esm({
152878
153271
  init_src();
152879
153272
  init_colors();
152880
153273
  init_variables();
152881
- examples28 = [
153274
+ examples27 = [
152882
153275
  ["Deploy the Cloud Run render stack", "hyperframes cloudrun deploy --project my-gcp-project"],
152883
153276
  [
152884
153277
  "Render a composition on the deployed stack",
@@ -153062,7 +153455,7 @@ ${HELP2}`);
153062
153455
  });
153063
153456
 
153064
153457
  // src/cloud/detectAspectRatio.ts
153065
- import { readFileSync as readFileSync68 } from "fs";
153458
+ import { readFileSync as readFileSync69 } from "fs";
153066
153459
  function extractAttributeNumber(tag, re2) {
153067
153460
  const match = tag.match(re2);
153068
153461
  if (!match) return null;
@@ -153074,7 +153467,7 @@ function extractAttributeNumber(tag, re2) {
153074
153467
  function detectAspectRatioFromHtml(entryHtmlPath) {
153075
153468
  let html;
153076
153469
  try {
153077
- html = readFileSync68(entryHtmlPath, "utf-8");
153470
+ html = readFileSync69(entryHtmlPath, "utf-8");
153078
153471
  } catch (err) {
153079
153472
  return { kind: "read-error", error: err instanceof Error ? err.message : String(err) };
153080
153473
  }
@@ -153817,14 +154210,14 @@ var init_browser2 = __esm({
153817
154210
 
153818
154211
  // src/auth/paths.ts
153819
154212
  import { homedir as homedir13 } from "os";
153820
- import { join as join100 } from "path";
154213
+ import { join as join101 } from "path";
153821
154214
  function configDir() {
153822
154215
  const override = process.env["HEYGEN_CONFIG_DIR"];
153823
154216
  if (override && override.length > 0) return override;
153824
- return join100(homedir13(), ".heygen");
154217
+ return join101(homedir13(), ".heygen");
153825
154218
  }
153826
154219
  function credentialPath() {
153827
- return join100(configDir(), CREDENTIAL_FILENAME);
154220
+ return join101(configDir(), CREDENTIAL_FILENAME);
153828
154221
  }
153829
154222
  var CREDENTIAL_FILENAME;
153830
154223
  var init_paths2 = __esm({
@@ -154534,12 +154927,12 @@ var init_statusColor = __esm({
154534
154927
  var render_exports3 = {};
154535
154928
  __export(render_exports3, {
154536
154929
  default: () => render_default2,
154537
- examples: () => examples29,
154930
+ examples: () => examples28,
154538
154931
  resolveAspectRatioForSubmit: () => resolveAspectRatioForSubmit,
154539
154932
  validateResolutionFormatCombo: () => validateResolutionFormatCombo
154540
154933
  });
154541
154934
  import { isAbsolute as isAbsolute13, resolve as resolvePath4 } from "path";
154542
- import { existsSync as existsSync89 } from "fs";
154935
+ import { existsSync as existsSync90 } from "fs";
154543
154936
  function parsePollIntervalMs(raw) {
154544
154937
  const n = parseNumericFlag(raw, { flag: "--poll-interval", min: 1 });
154545
154938
  return n === void 0 ? DEFAULT_POLL_INTERVAL_MS : Math.round(n * 1e3);
@@ -154581,7 +154974,7 @@ function resolveAspectRatioForSubmit(project, compositionArg, explicit, asJson)
154581
154974
  const dir = project.dir ?? ".";
154582
154975
  const entryRelative = compositionArg ?? "index.html";
154583
154976
  const entryPath = resolvePath4(dir, entryRelative);
154584
- if (!existsSync89(entryPath)) {
154977
+ if (!existsSync90(entryPath)) {
154585
154978
  errorBox(
154586
154979
  "Composition not found",
154587
154980
  `Entry file "${entryRelative}" does not exist in ${dir}.`,
@@ -154806,7 +155199,7 @@ async function streamVideo(url, destPath, asJson) {
154806
155199
  process.exit(1);
154807
155200
  }
154808
155201
  }
154809
- var VALID_QUALITY2, VALID_FORMAT2, VALID_RESOLUTION, VALID_ASPECT_RATIO, FORMAT_EXT2, examples29, render_default2, IDEMPOTENCY_KEY_RE, ASPECT_FALLBACK_HINT;
155202
+ var VALID_QUALITY2, VALID_FORMAT2, VALID_RESOLUTION, VALID_ASPECT_RATIO, FORMAT_EXT2, examples28, render_default2, IDEMPOTENCY_KEY_RE, ASPECT_FALLBACK_HINT;
154810
155203
  var init_render4 = __esm({
154811
155204
  "src/commands/cloud/render.ts"() {
154812
155205
  "use strict";
@@ -154827,7 +155220,7 @@ var init_render4 = __esm({
154827
155220
  VALID_RESOLUTION = ["1080p", "4k"];
154828
155221
  VALID_ASPECT_RATIO = ["16:9", "9:16", "1:1"];
154829
155222
  FORMAT_EXT2 = { mp4: ".mp4", webm: ".webm", mov: ".mov" };
154830
- examples29 = [
155223
+ examples28 = [
154831
155224
  ["Render the current directory in the cloud", "hyperframes cloud render"],
154832
155225
  [
154833
155226
  "Pick a specific composition + output path",
@@ -155352,15 +155745,15 @@ var init_delete = __esm({
155352
155745
  var cloud_exports = {};
155353
155746
  __export(cloud_exports, {
155354
155747
  default: () => cloud_default,
155355
- examples: () => examples30
155748
+ examples: () => examples29
155356
155749
  });
155357
- var examples30, HELP3, cloud_default;
155750
+ var examples29, HELP3, cloud_default;
155358
155751
  var init_cloud2 = __esm({
155359
155752
  "src/commands/cloud.ts"() {
155360
155753
  "use strict";
155361
155754
  init_dist();
155362
155755
  init_colors();
155363
- examples30 = [
155756
+ examples29 = [
155364
155757
  ["Render the current directory in the cloud", "hyperframes cloud render"],
155365
155758
  ["Render a specific project", "hyperframes cloud render ./my-video"],
155366
155759
  [
@@ -155895,15 +156288,15 @@ var init_refresh = __esm({
155895
156288
  var auth_exports = {};
155896
156289
  __export(auth_exports, {
155897
156290
  default: () => auth_default,
155898
- examples: () => examples31
156291
+ examples: () => examples30
155899
156292
  });
155900
- var examples31, HELP4, auth_default;
156293
+ var examples30, HELP4, auth_default;
155901
156294
  var init_auth3 = __esm({
155902
156295
  "src/commands/auth.ts"() {
155903
156296
  "use strict";
155904
156297
  init_dist();
155905
156298
  init_colors();
155906
- examples31 = [
156299
+ examples30 = [
155907
156300
  ["Sign in via browser (OAuth)", "hyperframes auth login"],
155908
156301
  ["Save an API key (interactive)", "hyperframes auth login --api-key"],
155909
156302
  ["Save an API key from stdin", "echo $HEYGEN_API_KEY | hyperframes auth login --api-key"],
@@ -156081,7 +156474,7 @@ __export(autoUpdate_exports, {
156081
156474
  import { spawn as spawn17 } from "child_process";
156082
156475
  import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync49, openSync as openSync3 } from "fs";
156083
156476
  import { homedir as homedir14 } from "os";
156084
- import { join as join101 } from "path";
156477
+ import { join as join102 } from "path";
156085
156478
  import { compareVersions as compareVersions3 } from "compare-versions";
156086
156479
  function isAutoInstallDisabled() {
156087
156480
  if (isDevMode()) return true;
@@ -156104,7 +156497,7 @@ function log(line) {
156104
156497
  }
156105
156498
  function launchDetachedInstall(installCommand, version2) {
156106
156499
  mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
156107
- const configFile = join101(CONFIG_DIR2, "config.json");
156500
+ const configFile = join102(CONFIG_DIR2, "config.json");
156108
156501
  const nodeScript = `
156109
156502
  const { exec } = require("node:child_process");
156110
156503
  const { readFileSync, renameSync, writeFileSync } = require("node:fs");
@@ -156223,8 +156616,8 @@ var init_autoUpdate = __esm({
156223
156616
  init_config();
156224
156617
  init_env();
156225
156618
  init_installerDetection();
156226
- CONFIG_DIR2 = join101(homedir14(), ".hyperframes");
156227
- LOG_FILE = join101(CONFIG_DIR2, "auto-update.log");
156619
+ CONFIG_DIR2 = join102(homedir14(), ".hyperframes");
156620
+ LOG_FILE = join102(CONFIG_DIR2, "auto-update.log");
156228
156621
  PENDING_TIMEOUT_MS = 10 * 60 * 1e3;
156229
156622
  }
156230
156623
  });
@@ -156236,8 +156629,8 @@ __export(help_exports, {
156236
156629
  });
156237
156630
  async function loadExamples(name, parentName) {
156238
156631
  if (parentName && parentName !== "hyperframes") {
156239
- const examples32 = await tryLoadExamples(`./commands/${parentName}/${name}.js`);
156240
- if (examples32) return examples32;
156632
+ const examples31 = await tryLoadExamples(`./commands/${parentName}/${name}.js`);
156633
+ if (examples31) return examples31;
156241
156634
  }
156242
156635
  return await tryLoadExamples(`./commands/${name}.js`);
156243
156636
  }
@@ -156275,10 +156668,10 @@ function renderRootHelp() {
156275
156668
  lines.push(`Run ${c2.cyan("hyperframes <command> --help")} for more information about a command.`);
156276
156669
  return lines.join("\n");
156277
156670
  }
156278
- function formatExamples(examples32) {
156671
+ function formatExamples(examples31) {
156279
156672
  const lines = [];
156280
156673
  lines.push(c2.bold("Examples:"));
156281
- for (const [comment, command2] of examples32) {
156674
+ for (const [comment, command2] of examples31) {
156282
156675
  lines.push(` ${c2.gray(`# ${comment}`)}`);
156283
156676
  lines.push(` ${command2}`);
156284
156677
  lines.push("");
@@ -156297,9 +156690,9 @@ async function showUsage2(cmd, parent) {
156297
156690
  if (name) {
156298
156691
  const parentMeta = await (typeof parent.meta === "function" ? parent.meta() : parent.meta);
156299
156692
  const parentName = parentMeta?.name;
156300
- const examples32 = STATIC_EXAMPLES[name] ?? await loadExamples(name, parentName);
156301
- if (examples32) {
156302
- console.log(formatExamples(examples32) + "\n");
156693
+ const examples31 = STATIC_EXAMPLES[name] ?? await loadExamples(name, parentName);
156694
+ if (examples31) {
156695
+ console.log(formatExamples(examples31) + "\n");
156303
156696
  }
156304
156697
  }
156305
156698
  }
@@ -156398,9 +156791,9 @@ var init_help = __esm({
156398
156791
  // src/cli.ts
156399
156792
  init_version();
156400
156793
  init_dist();
156401
- import { dirname as dirname42, join as join102 } from "path";
156794
+ import { dirname as dirname42, join as join103 } from "path";
156402
156795
  import { fileURLToPath as fileURLToPath13 } from "url";
156403
- import { existsSync as existsSync90 } from "fs";
156796
+ import { existsSync as existsSync91 } from "fs";
156404
156797
  var commandFailed = false;
156405
156798
  for (const stream of [process.stdout, process.stderr]) {
156406
156799
  stream.on("error", (err) => {
@@ -156412,8 +156805,8 @@ for (const stream of [process.stdout, process.stderr]) {
156412
156805
  }
156413
156806
  (() => {
156414
156807
  const here = dirname42(fileURLToPath13(import.meta.url));
156415
- const shader = join102(here, "shaderTransitionWorker.js");
156416
- if (!process.env.HF_SHADER_WORKER_ENTRY && existsSync90(shader)) {
156808
+ const shader = join103(here, "shaderTransitionWorker.js");
156809
+ if (!process.env.HF_SHADER_WORKER_ENTRY && existsSync91(shader)) {
156417
156810
  process.env.HF_SHADER_WORKER_ENTRY = shader;
156418
156811
  }
156419
156812
  })();
@@ -156425,10 +156818,10 @@ if (rootVersionRequested) {
156425
156818
  process.exit(0);
156426
156819
  }
156427
156820
  try {
156428
- const { readFileSync: readFileSync69 } = await import("fs");
156821
+ const { readFileSync: readFileSync70 } = await import("fs");
156429
156822
  const { resolve: resolve56 } = await import("path");
156430
156823
  const envPath = resolve56(process.cwd(), ".env");
156431
- const envContent = readFileSync69(envPath, "utf-8");
156824
+ const envContent = readFileSync70(envPath, "utf-8");
156432
156825
  for (const rawLine of envContent.split("\n")) {
156433
156826
  let line = rawLine.trim();
156434
156827
  if (!line || line.startsWith("#")) continue;