hyperframes 0.8.17 → 0.8.18

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.8.17" : "0.0.0-dev";
53
+ VERSION = true ? "0.8.18" : "0.0.0-dev";
54
54
  }
55
55
  });
56
56
 
@@ -809,11 +809,11 @@ function __metadata(metadataKey, metadataValue) {
809
809
  }
810
810
  function __awaiter(thisArg, _arguments, P2, generator) {
811
811
  function adopt(value) {
812
- return value instanceof P2 ? value : new P2(function(resolve79) {
813
- resolve79(value);
812
+ return value instanceof P2 ? value : new P2(function(resolve80) {
813
+ resolve80(value);
814
814
  });
815
815
  }
816
- return new (P2 || (P2 = Promise))(function(resolve79, reject2) {
816
+ return new (P2 || (P2 = Promise))(function(resolve80, reject2) {
817
817
  function fulfilled(value) {
818
818
  try {
819
819
  step(generator.next(value));
@@ -829,7 +829,7 @@ function __awaiter(thisArg, _arguments, P2, generator) {
829
829
  }
830
830
  }
831
831
  function step(result) {
832
- result.done ? resolve79(result.value) : adopt(result.value).then(fulfilled, rejected);
832
+ result.done ? resolve80(result.value) : adopt(result.value).then(fulfilled, rejected);
833
833
  }
834
834
  step((generator = generator.apply(thisArg, _arguments || [])).next());
835
835
  });
@@ -1020,14 +1020,14 @@ function __asyncValues(o) {
1020
1020
  }, i2);
1021
1021
  function verb(n2) {
1022
1022
  i2[n2] = o[n2] && function(v2) {
1023
- return new Promise(function(resolve79, reject2) {
1024
- v2 = o[n2](v2), settle(resolve79, reject2, v2.done, v2.value);
1023
+ return new Promise(function(resolve80, reject2) {
1024
+ v2 = o[n2](v2), settle(resolve80, reject2, v2.done, v2.value);
1025
1025
  });
1026
1026
  };
1027
1027
  }
1028
- function settle(resolve79, reject2, d2, v2) {
1028
+ function settle(resolve80, reject2, d2, v2) {
1029
1029
  Promise.resolve(v2).then(function(v3) {
1030
- resolve79({ value: v3, done: d2 });
1030
+ resolve80({ value: v3, done: d2 });
1031
1031
  }, reject2);
1032
1032
  }
1033
1033
  }
@@ -41855,8 +41855,8 @@ var init_custom_element_registry = __esm({
41855
41855
  } : (element) => element.localName === localName;
41856
41856
  registry.set(localName, { Class, check });
41857
41857
  if (waiting.has(localName)) {
41858
- for (const resolve79 of waiting.get(localName))
41859
- resolve79(Class);
41858
+ for (const resolve80 of waiting.get(localName))
41859
+ resolve80(Class);
41860
41860
  waiting.delete(localName);
41861
41861
  }
41862
41862
  ownerDocument.querySelectorAll(
@@ -41896,13 +41896,13 @@ var init_custom_element_registry = __esm({
41896
41896
  */
41897
41897
  whenDefined(localName) {
41898
41898
  const { registry, waiting } = this;
41899
- return new Promise((resolve79) => {
41899
+ return new Promise((resolve80) => {
41900
41900
  if (registry.has(localName))
41901
- resolve79(registry.get(localName).Class);
41901
+ resolve80(registry.get(localName).Class);
41902
41902
  else {
41903
41903
  if (!waiting.has(localName))
41904
41904
  waiting.set(localName, []);
41905
- waiting.get(localName).push(resolve79);
41905
+ waiting.get(localName).push(resolve80);
41906
41906
  }
41907
41907
  });
41908
41908
  }
@@ -52269,14 +52269,14 @@ function inlineHelper(call, ctx) {
52269
52269
  };
52270
52270
  return expandBody(fn.body.body, bindings, prov, ctx);
52271
52271
  }
52272
- function assignStep(update2, resolve79) {
52273
- if (update2.operator === "+=") return asNum(resolve79(update2.right));
52272
+ function assignStep(update2, resolve80) {
52273
+ if (update2.operator === "+=") return asNum(resolve80(update2.right));
52274
52274
  if (update2.operator === "-=") {
52275
- const s2 = asNum(resolve79(update2.right));
52275
+ const s2 = asNum(resolve80(update2.right));
52276
52276
  return s2 === void 0 ? void 0 : -s2;
52277
52277
  }
52278
52278
  if (update2.operator === "=" && update2.right?.type === "BinaryExpression") {
52279
- return asNum(resolve79(update2.right.right));
52279
+ return asNum(resolve80(update2.right.right));
52280
52280
  }
52281
52281
  return void 0;
52282
52282
  }
@@ -52285,10 +52285,10 @@ function updatedVarName(update2) {
52285
52285
  if (update2?.type === "AssignmentExpression") return update2.left?.name ?? null;
52286
52286
  return null;
52287
52287
  }
52288
- function loopStep(update2, varName, resolve79) {
52288
+ function loopStep(update2, varName, resolve80) {
52289
52289
  if (updatedVarName(update2) !== varName) return void 0;
52290
52290
  if (update2.type === "UpdateExpression") return update2.operator === "++" ? 1 : -1;
52291
- return assignStep(update2, resolve79);
52291
+ return assignStep(update2, resolve80);
52292
52292
  }
52293
52293
  function asNum(v2) {
52294
52294
  return typeof v2 === "number" && Number.isFinite(v2) ? v2 : void 0;
@@ -52305,13 +52305,13 @@ function forInitVar(init) {
52305
52305
  const d2 = init.declarations[0];
52306
52306
  return d2.id?.type === "Identifier" ? { name: d2.id.name, initExpr: d2.init } : null;
52307
52307
  }
52308
- function parseForHeader(stmt, resolve79) {
52308
+ function parseForHeader(stmt, resolve80) {
52309
52309
  const iv = forInitVar(stmt.init);
52310
52310
  const test = stmt.test;
52311
52311
  if (!iv || test?.type !== "BinaryExpression" || test.left?.name !== iv.name) return null;
52312
- const start = asNum(resolve79(iv.initExpr));
52313
- const end = asNum(resolve79(test.right));
52314
- const step = loopStep(stmt.update, iv.name, resolve79);
52312
+ const start = asNum(resolve80(iv.initExpr));
52313
+ const end = asNum(resolve80(test.right));
52314
+ const step = loopStep(stmt.update, iv.name, resolve80);
52315
52315
  if (start === void 0 || end === void 0 || !step) return null;
52316
52316
  return { v: iv.name, start, end, op: test.operator, step };
52317
52317
  }
@@ -52423,12 +52423,12 @@ function expandStatements(stmts, ctx) {
52423
52423
  }
52424
52424
  return out;
52425
52425
  }
52426
- function inlineComputedTimelines(ast, timelineVar, resolve79) {
52426
+ function inlineComputedTimelines(ast, timelineVar, resolve80) {
52427
52427
  const helpers = collectInlinableHelpers(ast, timelineVar);
52428
52428
  const ctx = {
52429
52429
  helpers,
52430
52430
  timelineVar,
52431
- resolve: resolve79,
52431
+ resolve: resolve80,
52432
52432
  depth: 0,
52433
52433
  site: { n: 0 },
52434
52434
  order: { n: 0 }
@@ -58784,7 +58784,7 @@ var RUNTIME_IIFE;
58784
58784
  var init_runtime_inline = __esm({
58785
58785
  "../core/dist/generated/runtime-inline.js"() {
58786
58786
  "use strict";
58787
- RUNTIME_IIFE = '"use strict";(()=>{var Dm=Object.create;var Yi=Object.defineProperty;var Im=Object.getOwnPropertyDescriptor;var Pm=Object.getOwnPropertyNames;var Om=Object.getPrototypeOf,Hm=Object.prototype.hasOwnProperty;var Gm=(e,t,n)=>t in e?Yi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ie=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Pm(t))!Hm.call(e,i)&&i!==n&&Yi(e,i,{get:()=>t[i],enumerable:!(r=Im(t,i))||r.enumerable});return e};var Um=(e,t,n)=>(n=e!=null?Dm(Om(e)):{},Bm(t||!e||!e.__esModule?Yi(n,"default",{value:e,enumerable:!0}):n,e));var ge=(e,t,n)=>Gm(e,typeof t!="symbol"?t+"":t,n);var _u=ie((YS,jo)=>{var Z=String,Cu=function(){return{isColorSupported:!1,reset:Z,bold:Z,dim:Z,italic:Z,underline:Z,inverse:Z,hidden:Z,strikethrough:Z,black:Z,red:Z,green:Z,yellow:Z,blue:Z,magenta:Z,cyan:Z,white:Z,gray:Z,bgBlack:Z,bgRed:Z,bgGreen:Z,bgYellow:Z,bgBlue:Z,bgMagenta:Z,bgCyan:Z,bgWhite:Z,blackBright:Z,redBright:Z,greenBright:Z,yellowBright:Z,blueBright:Z,magentaBright:Z,cyanBright:Z,whiteBright:Z,bgBlackBright:Z,bgRedBright:Z,bgGreenBright:Z,bgYellowBright:Z,bgBlueBright:Z,bgMagentaBright:Z,bgCyanBright:Z,bgWhiteBright:Z}};jo.exports=Cu();jo.exports.createColors=Cu});var Ko=ie(()=>{});var jr=ie((QS,ku)=>{"use strict";var Tu=_u(),Ru=Ko(),Hn=class e extends Error{constructor(t,n,r,i,o,a){super(t),this.name="CssSyntaxError",this.reason=t,o&&(this.file=o),i&&(this.source=i),a&&(this.plugin=a),typeof n<"u"&&typeof r<"u"&&(typeof n=="number"?(this.line=n,this.column=r):(this.line=n.line,this.column=n.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}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(t){if(!this.source)return"";let n=this.source;t==null&&(t=Tu.isColorSupported);let r=c=>c,i=c=>c,o=c=>c;if(t){let{bold:c,gray:m,red:f}=Tu.createColors(!0);i=p=>c(f(p)),r=p=>m(p),Ru&&(o=p=>Ru(p))}let a=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),u=String(s).length;return a.slice(l,s).map((c,m)=>{let f=l+1+m,p=" "+(" "+f).slice(-u)+" | ";if(f===this.line){if(c.length>160){let v=20,x=Math.max(0,this.column-v),_=Math.max(this.column+v,this.endColumn+v),R=c.slice(x,_),T=r(p.replace(/\\d/g," "))+c.slice(0,Math.min(this.column-1,v-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(R)+`\n `+T+i("^")}let b=r(p.replace(/\\d/g," "))+c.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(c)+`\n `+b+i("^")}return" "+r(p)+o(c)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};ku.exports=Hn;Hn.default=Hn});var Yo=ie((ZS,Fu)=>{"use strict";var o0=/(<)(\\/?style\\b)/gi,a0=/(<)(!--)/g;function ht(e){return typeof e!="string"||!e.includes("<")?e:e.replace(o0,"\\\\3c $2").replace(a0,"\\\\3c $2")}var Mu={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function s0(e){return e[0].toUpperCase()+e.slice(1)}var Gn=class{constructor(t){this.builder=t}atrule(t,n){let r=t.raws,i="@"+t.name,o=t.params?this.rawValue(t,"params"):"";if(typeof r.afterName<"u"?i+=r.afterName:o&&(i+=" "),t.nodes)this.block(t,i+o);else{let a=(r.between||"")+(n?";":"");this.builder(ht(i+o+a),t)}}beforeAfter(t,n){let r;t.type==="decl"?r=this.raw(t,null,"beforeDecl"):t.type==="comment"?r=this.raw(t,null,"beforeComment"):n==="before"?r=this.raw(t,null,"beforeRule"):r=this.raw(t,null,"beforeClose");let i=t.parent,o=0;for(;i&&i.type!=="root";)o+=1,i=i.parent;if(r.includes(`\n`)){let a=this.raw(t,null,"indent");if(a.length)for(let l=0;l<o;l++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(ht(n+r)+"{",t,"start");let i;t.nodes&&t.nodes.length?(this.body(t),i=this.raw(t,"after")):i=this.raw(t,"after","emptyBody"),i&&this.builder(ht(i)),this.builder("}",t,"end")}body(t){let n=t.nodes,r=n.length-1;for(;r>0&&n[r].type==="comment";)r-=1;let i=this.raw(t,"semicolon"),o=t.type==="document";for(let a=0;a<n.length;a++){let l=n[a],s=this.raw(l,"before");s&&this.builder(o?s:ht(s)),this.stringify(l,r!==a||i)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(ht("/*"+n+t.text+r+"*/"),t)}decl(t,n){let r=t.raws,i=this.raw(t,"between","colon"),o=t.prop+i+this.rawValue(t,"value");t.important&&(o+=r.important||" !important"),n&&(o+=";"),this.builder(ht(o),t)}document(t){this.body(t)}raw(t,n,r){let i;if(r||(r=n),n&&(i=t.raws[n],typeof i<"u"))return i;let o=t.parent;if(r==="before"&&(!o||o.type==="root"&&o.first===t||o&&o.type==="document"))return"";if(!o)return Mu[r];let a=t.root(),l=a.rawCache||(a.rawCache={});if(typeof l[r]<"u")return l[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+s0(r);this[s]?i=this[s](a,t):a.walk(u=>{if(i=u.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=Mu[r]),l[r]=i,i}rawBeforeClose(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<"u")return n=r.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(t,n){let r;return t.walkComments(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeDecl"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeDecl(t,n){let r;return t.walkDecls(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeRule"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeOpen(t){let n;return t.walk(r=>{if(r.type!=="decl"&&(n=r.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(r=>{if(r.nodes&&(r.parent!==t||t.first!==r)&&typeof r.raws.before<"u")return n=r.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(t){let n;return t.walkDecls(r=>{if(typeof r.raws.between<"u")return n=r.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length===0&&(n=r.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(r=>{let i=r.parent;if(i&&i!==t&&i.parent&&i.parent===t&&typeof r.raws.before<"u"){let o=r.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type==="decl"&&(n=r.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let r=t[n],i=t.raws[n];return i&&i.value===r?i.raw:r}root(t){if(this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:ht(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(ht(t.raws.ownSemicolon),t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};Fu.exports=Gn;Gn.default=Gn});var Bn=ie((eA,Nu)=>{"use strict";var l0=Yo();function Xo(e,t){new l0(t).stringify(e)}Nu.exports=Xo;Xo.default=Xo});var Kr=ie((tA,Jo)=>{"use strict";Jo.exports.isClean=Symbol("isClean");Jo.exports.my=Symbol("my")});var Vn=ie((nA,Lu)=>{"use strict";var u0=jr(),c0=Yo(),d0=Bn(),{isClean:Un,my:f0}=Kr();function Qo(e,t){let n=new e.constructor;for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r)||r==="proxyCache")continue;let i=e[r],o=typeof i;r==="parent"&&o==="object"?t&&(n[r]=t):r==="source"?n[r]=i:Array.isArray(i)?n[r]=i.map(a=>Qo(a,n)):(o==="object"&&i!==null&&(i=Qo(i)),n[r]=i)}return n}function nt(e,t){if(t&&typeof t.offset<"u")return t.offset;let n=1,r=1,i=0;for(let o=0;o<e.length;o++){if(r===t.line&&n===t.column){i=o;break}e[o]===`\n`?(n=1,r+=1):n+=1}return i}var Wn=class{get proxyOf(){return this}constructor(t={}){this.raws={},this[Un]=!1,this[f0]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"?this.append(r.clone()):this.append(r)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\\n\\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=Qo(this);for(let r in t)n[r]=t[r];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:r,start:i}=this.rangeBy(n);return this.source.input.error(t,{column:i.column,line:i.line},{column:r.column,line:r.line},n)}return new u0(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[Un]=!0}markDirty(){if(this[Un]){this[Un]=!1;let t=this;for(;t=t.parent;)t[Un]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t={}){let n=this.source.start;if(t.index)n=this.positionInside(t.index);else if(t.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,o=r.slice(nt(r,this.source.start),nt(r,this.source.end)).indexOf(t.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(t){let n=this.source.start.column,r=this.source.start.line,i="document"in this.source.input?this.source.input.document:this.source.input.css,o=nt(i,this.source.start),a=o+t;for(let l=o;l<a;l++)i[l]===`\n`?(n=1,r+=1):n+=1;return{column:n,line:r,offset:a}}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}rangeBy(t={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,r={column:this.source.start.column,line:this.source.start.line,offset:nt(n,this.source.start)},i=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:nt(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(nt(n,this.source.start),nt(n,this.source.end)).indexOf(t.word);a!==-1&&(r=this.positionInside(a),i=this.positionInside(a+t.word.length))}else t.start?r={column:t.start.column,line:t.start.line,offset:nt(n,t.start)}:t.index&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:nt(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):t.index&&(i=this.positionInside(t.index+1));return(i.line<r.line||i.line===r.line&&i.column<=r.column)&&(i={column:r.column+1,line:r.line,offset:r.offset+1}),{end:i,start:r}}raw(t,n){return new c0().raw(this,t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...t){if(this.parent){let n=this,r=!1;for(let i of t)i===this?r=!0:r?(this.parent.insertAfter(n,i),n=i):this.parent.insertBefore(n,i);r||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,n){let r={},i=n==null;n=n||new Map;let o=0;for(let a in this){if(!Object.prototype.hasOwnProperty.call(this,a)||a==="parent"||a==="proxyCache")continue;let l=this[a];if(Array.isArray(l))r[a]=l.map(s=>typeof s=="object"&&s.toJSON?s.toJSON(null,n):s);else if(typeof l=="object"&&l.toJSON)r[a]=l.toJSON(null,n);else if(a==="source"){if(l==null)continue;let s=n.get(l.input);s==null&&(s=o,n.set(l.input,o),o++),r[a]={end:l.end,inputId:s,start:l.start}}else r[a]=l}return i&&(r.inputs=[...n.keys()].map(a=>a.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=d0){t.stringify&&(t=t.stringify);let n="";return t(this,r=>{n+=r}),n}warn(t,n,r={}){let i={node:this};for(let o in r)i[o]=r[o];return t.warn(n,i)}};Lu.exports=Wn;Wn.default=Wn});var qn=ie((rA,Du)=>{"use strict";var m0=Vn(),zn=class extends m0{constructor(t){super(t),this.type="comment"}};Du.exports=zn;zn.default=zn});var jn=ie((iA,Iu)=>{"use strict";var p0=Vn(),$n=class extends p0{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}};Iu.exports=$n;$n.default=$n});var gt=ie((oA,zu)=>{"use strict";var Pu=qn(),Ou=jn(),h0=Vn(),{isClean:Hu,my:Gu}=Kr(),Zo,Bu,Uu,ea;function Wu(e){return e.map(t=>(t.nodes&&(t.nodes=Wu(t.nodes)),delete t.source,t))}function Vu(e){if(e[Hu]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Vu(t)}var Ue=class e extends h0{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(...t){for(let n of t){let r=this.normalize(n,this.last);for(let i of r)this.proxyOf.nodes.push(i)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),r,i;for(;this.indexes[n]<this.proxyOf.nodes.length&&(r=this.indexes[n],i=t(this.proxyOf.nodes[r],r),i!==!1);)this.indexes[n]+=1;return delete this.indexes[n],i}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:t[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...r)=>t[n](...r.map(i=>typeof i=="function"?(o,a)=>i(o.toProxy(),a):i)):n==="every"||n==="some"?r=>t[n]((i,...o)=>r(i.toProxy(),...o)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(r=>r.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let r=this.index(t),i=this.normalize(n,this.proxyOf.nodes[r]).reverse();r=this.index(t);for(let a of i)this.proxyOf.nodes.splice(r+1,0,a);let o;for(let a in this.indexes)o=this.indexes[a],r<o&&(this.indexes[a]=o+i.length);return this.markDirty(),this}insertBefore(t,n){let r=this.index(t),i=r===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[r],i).reverse();r=this.index(t);for(let l of o)this.proxyOf.nodes.splice(r,0,l);let a;for(let l in this.indexes)a=this.indexes[l],r<=a&&(this.indexes[l]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=Wu(Bu(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new Ou(t)]}else if(t.selector||t.selectors)t=[new ea(t)];else if(t.name)t=[new Zo(t)];else if(t.text)t=[new Pu(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[Gu]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Hu]&&Vu(i),i.raws||(i.raws={}),typeof i.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(i.raws.before=n.raws.before.replace(/\\S/g,"")),i.parent=this.proxyOf,i))}prepend(...t){t=t.reverse();for(let n of t){let r=this.normalize(n,this.first,"prepend").reverse();for(let i of r)this.proxyOf.nodes.unshift(i);for(let i in this.indexes)this.indexes[i]=this.indexes[i]+r.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let r in this.indexes)n=this.indexes[r],n>=t&&(this.indexes[r]=n-1);return this.markDirty(),this}replaceValues(t,n,r){return r||(r=n,n={}),this.walkDecls(i=>{n.props&&!n.props.includes(i.prop)||n.fast&&!i.value.includes(n.fast)||(i.value=i.value.replace(t,r))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,r)=>{let i;try{i=t(n,r)}catch(o){throw n.addToError(o)}return i!==!1&&n.walk&&(i=n.walk(t)),i})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="atrule"&&t.test(r.name))return n(r,i)}):this.walk((r,i)=>{if(r.type==="atrule"&&r.name===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="atrule")return n(r,i)}))}walkComments(t){return this.walk((n,r)=>{if(n.type==="comment")return t(n,r)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="decl"&&t.test(r.prop))return n(r,i)}):this.walk((r,i)=>{if(r.type==="decl"&&r.prop===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="decl")return n(r,i)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="rule"&&t.test(r.selector))return n(r,i)}):this.walk((r,i)=>{if(r.type==="rule"&&r.selector===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="rule")return n(r,i)}))}};Ue.registerParse=e=>{Bu=e};Ue.registerRule=e=>{ea=e};Ue.registerAtRule=e=>{Zo=e};Ue.registerRoot=e=>{Uu=e};zu.exports=Ue;Ue.default=Ue;Ue.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Zo.prototype):e.type==="rule"?Object.setPrototypeOf(e,ea.prototype):e.type==="decl"?Object.setPrototypeOf(e,Ou.prototype):e.type==="comment"?Object.setPrototypeOf(e,Pu.prototype):e.type==="root"&&Object.setPrototypeOf(e,Uu.prototype),e[Gu]=!0,e.nodes&&e.nodes.forEach(t=>{Ue.rebuild(t)})}});var Yr=ie((aA,$u)=>{"use strict";var qu=gt(),Xt=class extends qu{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};$u.exports=Xt;Xt.default=Xt;qu.registerAtRule(Xt)});var Xr=ie((sA,Yu)=>{"use strict";var g0=gt(),ju,Ku,Mt=class extends g0{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new ju(new Ku,this,t).stringify()}};Mt.registerLazyResult=e=>{ju=e};Mt.registerProcessor=e=>{Ku=e};Yu.exports=Mt;Mt.default=Mt});var Ju=ie((lA,Xu)=>{var b0="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",x0=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i--;)r+=e[Math.random()*e.length|0];return r},y0=(e=21)=>{let t="",n=e|0;for(;n--;)t+=b0[Math.random()*64|0];return t};Xu.exports={nanoid:y0,customAlphabet:x0}});var Jr=ie(()=>{});var Qr=ie(()=>{});var ta=ie(()=>{});var Qu=ie(()=>{});var ra=ie((bA,tc)=>{"use strict";var{existsSync:v0,readFileSync:S0}=Qu(),{dirname:na,join:A0}=Jr(),{SourceMapConsumer:Zu,SourceMapGenerator:ec}=Qr();function E0(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Kn=class{constructor(t,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let r=n.map?n.map.prev:void 0,i=this.loadMap(n.from,r);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=na(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new Zu(this.json||this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\\/json;charset=utf-?8;base64,/,r=/^data:application\\/json;base64,/,i=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,a=t.match(i)||t.match(o);if(a)return decodeURIComponent(t.substr(a[0].length));let l=t.match(n)||t.match(r);if(l)return E0(t.substr(l[0].length));let s=t.slice(22);throw s=s.slice(0,s.indexOf(",")),new Error("Unsupported source map encoding "+s)}getAnnotationURL(t){return t.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let r=t.lastIndexOf(n.pop()),i=t.indexOf("*/",r);r>-1&&i>-1&&(this.annotation=this.getAnnotationURL(t.substring(r,i)))}loadFile(t,n,r){if(!(!r&&!this.unsafeMap&&!/\\.map$/i.test(t))&&(this.root=na(t),v0(t)))return this.mapFile=t,S0(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let r=n(t);if(r){let i=this.loadFile(r,t,!0);if(!i)throw new Error("Unable to load previous source map: "+r.toString());return i}}else{if(n instanceof Zu)return ec.fromSourceMap(n).toString();if(n instanceof ec)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 r=this.annotation;t&&(r=A0(na(t),r));let i=this.loadFile(r,t,!1);if(i)try{this.json=JSON.parse(i.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return i}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};tc.exports=Kn;Kn.default=Kn});var Yn=ie((xA,ac)=>{"use strict";var{nanoid:w0}=Ju(),{isAbsolute:aa,resolve:sa}=Jr(),{SourceMapConsumer:C0,SourceMapGenerator:_0}=Qr(),{fileURLToPath:nc,pathToFileURL:Zr}=ta(),rc=jr(),T0=ra(),ia=Ko(),oa=Symbol("lineToIndexCache"),R0=!!(C0&&_0),ic=!!(sa&&aa);function oc(e){if(e[oa])return e[oa];let t=e.css.split(`\n`),n=new Array(t.length),r=0;for(let i=0,o=t.length;i<o;i++)n[i]=r,r+=t[i].length+1;return e[oa]=n,n}var Jt=class{get from(){return this.file||this.id}constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.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&&(!ic||/^\\w+:\\/\\//.test(n.from)||aa(n.from)?this.file=n.from:this.file=sa(n.from)),ic&&R0){let r=new T0(this.css,n);if(r.text){this.map=r;let i=r.consumer().file;!this.file&&i&&(this.file=this.mapResolve(i))}}this.file||(this.id="<input css "+w0(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,l,s,u;if(n&&typeof n=="object"){let m=n,f=r;if(typeof m.offset=="number"){s=m.offset;let p=this.fromOffset(s);n=p.line,r=p.col}else n=m.line,r=m.column,s=this.fromLineAndColumn(n,r);if(typeof f.offset=="number"){l=f.offset;let p=this.fromOffset(l);a=p.line,o=p.col}else a=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(r)s=this.fromLineAndColumn(n,r);else{s=n;let m=this.fromOffset(s);n=m.line,r=m.col}let c=this.origin(n,r,a,o);return c?u=new rc(t,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,i.plugin):u=new rc(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),u.input={column:r,endColumn:o,endLine:a,endOffset:l,line:n,offset:s,source:this.css},this.file&&(Zr&&(u.input.url=Zr(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(t,n){return oc(this)[t-1]+n-1}fromOffset(t){let n=oc(this),r=n[n.length-1],i=0;if(t>=r)i=n.length-1;else{let o=n.length-2,a;for(;i<o;)if(a=i+(o-i>>1),t<n[a])o=a-1;else if(t>=n[a+1])i=a+1;else{i=a;break}}return{col:t-n[i]+1,line:i+1}}mapResolve(t){return/^\\w+:\\/\\//.test(t)?t:sa(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,r,i){if(!this.map)return!1;let o=this.map.consumer(),a=o.originalPositionFor({column:n,line:t});if(!a.source)return!1;let l;typeof r=="number"&&(l=o.originalPositionFor({column:i,line:r}));let s;aa(a.source)?s=Zr(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Zr(this.map.mapFile));let u={column:a.column,endColumn:l&&l.column,endLine:l&&l.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(nc)u.file=nc(s);else throw new Error("file: protocol is not available in this PostCSS build");let c=o.sourceContentFor(a.source);return c&&(u.source=c),u}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}};ac.exports=Jt;Jt.default=Jt;ia&&ia.registerInput&&ia.registerInput(Jt)});var Qt=ie((yA,cc)=>{"use strict";var sc=gt(),lc,uc,bt=class extends sc{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=super.normalize(t);if(n){if(r==="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 i)o.raws.before=n.raws.before}return i}removeChild(t,n){let r=this.index(t);return!n&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(t)}toResult(t={}){return new lc(new uc,this,t).stringify()}};bt.registerLazyResult=e=>{lc=e};bt.registerProcessor=e=>{uc=e};cc.exports=bt;bt.default=bt;sc.registerRoot(bt)});var la=ie((vA,dc)=>{"use strict";var Xn={comma(e){return Xn.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return Xn.split(e,t)},split(e,t,n){let r=[],i="",o=!1,a=0,l=!1,s="",u=!1;for(let c of e)u?u=!1:c==="\\\\"?u=!0:l?c===s&&(l=!1):c===\'"\'||c==="\'"?(l=!0,s=c):c==="("?a+=1:c===")"?a>0&&(a-=1):a===0&&t.includes(c)&&(o=!0),o?(i!==""&&r.push(i.trim()),i="",o=!1):i+=c;return(n||i!=="")&&r.push(i.trim()),r}};dc.exports=Xn;Xn.default=Xn});var ei=ie((SA,mc)=>{"use strict";var fc=gt(),k0=la(),Zt=class extends fc{get selectors(){return k0.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\\s*/):null,r=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(r)}constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}};mc.exports=Zt;Zt.default=Zt;fc.registerRule(Zt)});var hc=ie((AA,pc)=>{"use strict";var M0=Yr(),F0=qn(),N0=jn(),L0=Yn(),D0=ra(),I0=Qt(),P0=ei();function Jn(e,t){if(Array.isArray(e))return e.map(i=>Jn(i));let{inputs:n,...r}=e;if(n){t=[];for(let i of n){let o={...i,__proto__:L0.prototype};o.map&&(o.map={...o.map,__proto__:D0.prototype}),t.push(o)}}if(r.nodes&&(r.nodes=e.nodes.map(i=>Jn(i,t))),r.source){let{inputId:i,...o}=r.source;r.source=o,i!=null&&(r.source.input=t[i])}if(r.type==="root")return new I0(r);if(r.type==="decl")return new N0(r);if(r.type==="rule")return new P0(r);if(r.type==="comment")return new F0(r);if(r.type==="atrule")return new M0(r);throw new Error("Unknown node type: "+e.type)}pc.exports=Jn;Jn.default=Jn});var ca=ie((EA,Sc)=>{"use strict";var{dirname:ti,relative:bc,resolve:xc,sep:yc}=Jr(),{SourceMapConsumer:vc,SourceMapGenerator:ni}=Qr(),{pathToFileURL:gc}=ta(),O0=Yn(),H0=!!(vc&&ni),G0=!!(ti&&xc&&bc&&yc),ua=class{constructor(t,n,r,i){this.stringify=t,this.mapOpts=r.map||{},this.root=n,this.opts=r,this.css=i,this.originalCSS=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),r=t.root||ti(t.file),i;this.mapOpts.sourcesContent===!1?(i=new vc(t.text),i.sourcesContent&&(i.sourcesContent=null)):i=t.consumer(),this.map.applySourceMap(i,n,this.toUrl(this.path(r)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let t;for(;(t=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",t+3);if(n===-1)break;for(;t>0&&this.css[t-1]===`\n`;)t--;this.css=this.css.slice(0,t)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),G0&&H0&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=ni.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new ni({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 ni({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,r="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,a;this.stringify(this.root,(l,s,u)=>{if(this.css+=l,s&&u!=="end"&&(i.generated.line=t,i.generated.column=n-1,s.source&&s.source.start?(i.source=this.sourcePath(s),i.original.line=s.source.start.line,i.original.column=s.source.start.column-1,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,this.map.addMapping(i))),a=l.match(/\\n/g),a?(t+=a.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,s&&u!=="start"){let c=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==c.last||c.raws.semicolon)&&(s.source&&s.source.end?(i.source=this.sourcePath(s),i.original.line=s.source.end.line,i.original.column=s.source.end.column-1,i.generated.line=t,i.generated.column=n-2,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,i.generated.line=t,i.generated.column=n-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!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(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\\w+:\\/\\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let r=this.opts.to?ti(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=ti(xc(r,this.mapOpts.annotation)));let i=bc(r,t);return this.memoizedPaths.set(t,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new O0(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let r=n.source.input.from;if(r&&!t[r]){t[r]=!0;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,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(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(gc){let r=gc(t).toString();return this.memoizedFileURLs.set(t,r),r}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;yc==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Sc.exports=ua});var wc=ie((wA,Ec)=>{"use strict";var ri=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,ii=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,B0=/.[\\r\\n"\'(/\\\\]/,Ac=/[\\da-f]/i;Ec.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,l,s,u,c,m,f,p,b,v=r.length,x=0,_=[],R=[],T=-1;function M(){return x}function F(C){throw t.error("Unclosed "+C,x)}function E(){return R.length===0&&x>=v}function S(C){if(R.length)return R.pop();if(x>=v)return;let N=C?C.ignoreUnclosed:!1;switch(o=r.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{s=x;do s+=1,o=r.charCodeAt(s);while(o===32||o===10||o===9||o===13||o===12);c=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let I=String.fromCharCode(o);c=[I,I,x];break}case 40:{if(b=_.length?_.pop()[1]:"",p=r.charCodeAt(x+1),b==="url"&&p!==39&&p!==34&&p!==32&&p!==10&&p!==9&&p!==12&&p!==13){s=x;do{if(m=!1,s=r.indexOf(")",s+1),s===-1)if(i||N){s=x;break}else F("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["brackets",r.slice(x,s+1),x,s],x=s}else x<=T?c=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||B0.test(a)?(T=s===-1?v:s,c=["(","(",x]):(c=["brackets",a,x,s],x=s));break}case 39:case 34:{u=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(u,s+1),s===-1)if(i||N){s=x+1;break}else F("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{ri.lastIndex=x+1,ri.test(r),ri.lastIndex===0?s=r.length-1:s=ri.lastIndex-2,c=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,l=!0;r.charCodeAt(s+1)===92;)s+=1,l=!l;if(o=r.charCodeAt(s+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Ac.test(r.charAt(s)))){for(;Ac.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}c=["word",r.slice(x,s+1),x,s],x=s;break}default:{o===47&&r.charCodeAt(x+1)===42?(s=r.indexOf("*/",x+2)+1,s===0&&(i||N?s=r.length:F("comment")),c=["comment",r.slice(x,s+1),x,s],x=s):(ii.lastIndex=x+1,ii.test(r),ii.lastIndex===0?s=r.length-1:s=ii.lastIndex-2,c=["word",r.slice(x,s+1),x,s],_.push(c),x=s);break}}return x++,c}function A(C){R.push(C)}return{back:A,endOfFile:E,nextToken:S,position:M}}});var Rc=ie((CA,Tc)=>{"use strict";var U0=Yr(),W0=qn(),V0=jn(),z0=Qt(),Cc=ei(),q0=wc(),_c={empty:!0,space:!0};function $0(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}var da=class{constructor(t){this.input=t,this.root=new z0,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new U0;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,l=!1,s=[],u=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?u.push(r==="("?")":"]"):r==="{"&&u.length>0?u.push("}"):r===u[u.length-1]&&u.pop(),u.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){l=!0;break}else if(r==="}"){if(s.length>0){for(o=s.length-1,i=s[o];i&&i[0]==="space";)i=s[--o];i&&(n.source.end=this.getPosition(i[3]||i[2]),n.source.end.offset++)}this.end(t);break}else s.push(t);else s.push(t);if(this.tokenizer.endOfFile()){a=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(s),s.length?(n.raws.afterName=this.spacesAndCommentsFromStart(s),this.raw(n,"params",s),a&&(t=s[s.length-1],n.source.end=this.getPosition(t[3]||t[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(t){let n=this.colon(t);if(n===!1)return;let r=0,i;for(let o=n-1;o>=0&&(i=t[o],!(i[0]!=="space"&&(r+=1,r===2)));o--);throw this.input.error("Missed semicolon",i[0]==="word"?i[3]+1:i[2])}colon(t){let n=0,r,i,o;for(let[a,l]of t.entries()){if(i=l,o=i[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!r)this.doubleColon(i);else{if(r[0]==="word"&&r[1]==="progid")continue;return a}r=i}return!1}comment(t){let n=new W0;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let r=t[1].slice(2,-2);if(!r.trim())n.text="",n.raws.left=r,n.raws.right="";else{let i=r.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=i[2],n.raws.left=i[1],n.raws.right=i[3]}}createTokenizer(){this.tokenizer=q0(this.input)}decl(t,n){let r=new V0;this.init(r,t[0][2]);let i=t[t.length-1];for(i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||$0(t)),r.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),r.raws.before+=t.shift()[1];for(r.source.start=this.getPosition(t[0][2]),r.prop="";t.length;){let u=t[0][0];if(u===":"||u==="space"||u==="comment")break;r.prop+=t.shift()[1]}r.raws.between="";let o;for(;t.length;)if(o=t.shift(),o[0]===":"){r.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),r.raws.between+=o[1];(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let a=[],l;for(;t.length&&(l=t[0][0],!(l!=="space"&&l!=="comment"));)a.push(t.shift());this.precheckMissedSemicolon(t);for(let u=t.length-1;u>=0;u--){if(o=t[u],o[1].toLowerCase()==="!important"){r.important=!0;let c=this.stringFrom(t,u);c=this.spacesFromEnd(t)+c,c!==" !important"&&(r.raws.important=c);break}else if(o[1].toLowerCase()==="important"){let c=t.slice(0),m="";for(let f=u;f>0;f--){let p=c[f][0];if(m.trim().startsWith("!")&&p!=="space")break;m=c.pop()[1]+m}m.trim().startsWith("!")&&(r.important=!0,r.raws.important=m,t=c)}if(o[0]!=="space"&&o[0]!=="comment")break}t.some(u=>u[0]!=="space"&&u[0]!=="comment")&&(r.raws.between+=a.map(u=>u[1]).join(""),a=[]),this.raw(r,"value",a.concat(t),n),r.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new Cc;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){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(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}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(t){if(this.spaces+=t[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(t[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,r=null,i=!1,o=null,a=[],l=t[1].startsWith("--"),s=[],u=t;for(;u;){if(r=u[0],s.push(u),r==="("||r==="[")o||(o=u),a.push(r==="("?")":"]");else if(l&&i&&r==="{")o||(o=u),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,l);return}else break;else if(r==="{"){this.rule(s);return}else if(r==="}"){this.tokenizer.back(s.pop()),n=!0;break}else r===":"&&(i=!0);else r===a[a.length-1]&&(a.pop(),a.length===0&&(o=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!l)for(;s.length&&(u=s[s.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,l)}else this.unknownWord(s)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,r,i){let o,a,l=r.length,s="",u=!0,c,m;for(let f=0;f<l;f+=1)o=r[f],a=o[0],a==="space"&&f===l-1&&!i?u=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",c=r[f+1]?r[f+1][0]:"empty",!_c[m]&&!_c[c]?s.slice(-1)===","?u=!1:s+=o[1]:u=!1):s+=o[1];if(!u){let f=r.reduce((p,b)=>p+b[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new Cc;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)r=t.pop()[1]+r;return r}spacesAndCommentsFromStart(t){let n,r="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)r+=t.shift()[1];return r}spacesFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],n==="space");)r=t.pop()[1]+r;return r}stringFrom(t,n){let r="";for(let i=n;i<t.length;i++)r+=t[i][1];return t.splice(n,t.length-n),r}unclosedBlock(){let t=this.current.source.start;throw this.input.error("Unclosed block",t.line,t.column)}unclosedBracket(t){throw this.input.error("Unclosed bracket",{offset:t[2]},{offset:t[2]+1})}unexpectedClose(t){throw this.input.error("Unexpected }",{offset:t[2]},{offset:t[2]+1})}unknownWord(t){throw this.input.error("Unknown word "+t[0][1],{offset:t[0][2]},{offset:t[0][2]+t[0][1].length})}unnamedAtrule(t,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Tc.exports=da});var ai=ie((_A,kc)=>{"use strict";var j0=gt(),K0=Yn(),Y0=Rc();function oi(e,t){let n=new K0(e,t),r=new Y0(n);try{r.parse()}catch(i){throw i}return r.root}kc.exports=oi;oi.default=oi;j0.registerParse(oi)});var fa=ie((TA,Mc)=>{"use strict";var Qn=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let r=n.node.rangeBy(n);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in n)this[r]=n[r]}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}};Mc.exports=Qn;Qn.default=Qn});var si=ie((RA,Fc)=>{"use strict";var X0=fa(),Zn=class{get content(){return this.css}constructor(t,n,r){this.processor=t,this.messages=[],this.root=n,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let r=new X0(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};Fc.exports=Zn;Zn.default=Zn});var ma=ie((kA,Lc)=>{"use strict";var Nc={};Lc.exports=function(t){Nc[t]||(Nc[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var ga=ie((FA,Oc)=>{"use strict";var J0=gt(),Q0=Xr(),Z0=ca(),eg=ai(),Dc=si(),tg=Qt(),ng=Bn(),{isClean:Ye,my:rg}=Kr(),MA=ma(),ig={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},og={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},ag={Once:!0,postcssPlugin:!0,prepare:!0},en=0;function er(e){return typeof e=="object"&&typeof e.then=="function"}function Pc(e){let t=!1,n=ig[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,en,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,en,n+"Exit"]:[n,n+"Exit"]}function Ic(e){let t;return e.type==="document"?t=["Document",en,"DocumentExit"]:e.type==="root"?t=["Root",en,"RootExit"]:t=Pc(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function pa(e){return e[Ye]=!1,e.nodes&&e.nodes.forEach(t=>pa(t)),e}var ha={},xt=class e{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(t,n,r){this.stringified=!1,this.processed=!1;let i;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))i=pa(n);else if(n instanceof e||n instanceof Dc)i=pa(n.root),n.map&&(typeof r.map>"u"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=n.map);else{let o=eg;r.syntax&&(o=r.syntax.parse),r.parser&&(o=r.parser),o.parse&&(o=o.parse);try{i=o(n,r)}catch(a){this.processed=!0,this.error=a}i&&!i[rg]&&J0.rebuild(i)}this.result=new Dc(t,i,r),this.helpers={...ha,postcss:ha,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(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let r=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=r.postcssPlugin,t.setMessage()):r.postcssVersion}catch(i){console&&console.error&&console.error(i)}return t}prepareVisitors(){this.listeners={};let t=(n,r,i)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([n,i])};for(let n of this.plugins)if(typeof n=="object")for(let r in n){if(!og[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ag[r])if(typeof n[r]=="object")for(let i in n[r])i==="*"?t(n,r,n[r][i]):t(n,r+"-"+i.toLowerCase(),n[r][i]);else typeof n[r]=="function"&&t(n,r,n[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let n=this.plugins[t],r=this.runOnRoot(n);if(er(r))try{await r}catch(i){throw this.handleError(i)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];){t[Ye]=!0;let n=[Ic(t)];for(;n.length>0;){let r=this.visitTick(n);if(er(r))try{await r}catch(i){let o=n[n.length-1].node;throw this.handleError(i,o)}}}if(this.listeners.OnceExit)for(let[n,r]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let i=t.nodes.map(o=>r(o,this.helpers));await Promise.all(i)}else await r(t,this.helpers)}catch(i){throw this.handleError(i)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(r=>t.Once(r,this.helpers));return er(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(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 t=this.result.opts,n=ng;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let r=this.result.root.source;if(t.map===void 0&&!(r&&r.input&&r.input.map)){let a="";return n(this.result.root,l=>{a+=l}),this.result.css=a,this.result}let o=new Z0(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 t of this.plugins){let n=this.runOnRoot(t);if(er(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];)t[Ye]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[r,i]of t){this.result.lastPlugin=r;let o;try{o=i(n,this.helpers)}catch(a){throw this.handleError(a,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(er(o))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:r,visitors:i}=n;if(r.type!=="root"&&r.type!=="document"&&!r.parent){t.pop();return}if(i.length>0&&n.visitorIndex<i.length){let[a,l]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return l(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator,l;for(;l=r.nodes[r.indexes[a]];)if(r.indexes[a]+=1,!l[Ye]){l[Ye]=!0,t.push(Ic(l));return}n.iterator=0,delete r.indexes[a]}let o=n.events;for(;n.eventIndex<o.length;){let a=o[n.eventIndex];if(n.eventIndex+=1,a===en){r.nodes&&r.nodes.length&&(r[Ye]=!0,n.iterator=r.getIterator());return}else if(this.listeners[a]){n.visitors=this.listeners[a];return}}t.pop()}walkSync(t){t[Ye]=!0;let n=Pc(t);for(let r of n)if(r===en)t.nodes&&t.each(i=>{i[Ye]||this.walkSync(i)});else{let i=this.listeners[r];if(i&&this.visitSync(i,t.toProxy()))return}}warnings(){return this.sync().warnings()}};xt.registerPostcss=e=>{ha=e};Oc.exports=xt;xt.default=xt;tg.registerLazyResult(xt);Q0.registerLazyResult(xt)});var Gc=ie((LA,Hc)=>{"use strict";var sg=ca(),lg=ai(),ug=si(),cg=Bn(),NA=ma(),tr=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 t,n=lg;try{t=n(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(t,n,r){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=r,this._map=void 0;let i=cg;this.result=new ug(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new sg(i,void 0,this._opts,n);if(a.isMap()){let[l,s]=a.generate();l&&(this.result.css=l),s&&(this.result.map=s)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}};Hc.exports=tr;tr.default=tr});var Uc=ie((DA,Bc)=>{"use strict";var dg=Xr(),fg=ga(),mg=Gc(),pg=Qt(),Ft=class{constructor(t=[]){this.version="8.5.14",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let r of t)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r=="object"&&Array.isArray(r.plugins))n=n.concat(r.plugins);else if(typeof r=="object"&&r.postcssPlugin)n.push(r);else if(typeof r=="function")n.push(r);else if(!(typeof r=="object"&&(r.parse||r.stringify)))throw new Error(r+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new mg(this,t,n):new fg(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Bc.exports=Ft;Ft.default=Ft;pg.registerProcessor(Ft);dg.registerProcessor(Ft)});var Yc=ie((IA,Kc)=>{"use strict";var Wc=Yr(),Vc=qn(),hg=gt(),gg=jr(),zc=jn(),qc=Xr(),bg=hc(),xg=Yn(),yg=ga(),vg=la(),Sg=Vn(),Ag=ai(),ba=Uc(),Eg=si(),$c=Qt(),jc=ei(),wg=Bn(),Cg=fa();function ue(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new ba(e)}ue.plugin=function(t,n){let r=!1;function i(...a){console&&console.warn&&!r&&(r=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...a);return l.postcssPlugin=t,l.postcssVersion=new ba().version,l}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,l,s){return ue([i(s)]).process(a,l)},i};ue.stringify=wg;ue.parse=Ag;ue.fromJSON=bg;ue.list=vg;ue.comment=e=>new Vc(e);ue.atRule=e=>new Wc(e);ue.decl=e=>new zc(e);ue.rule=e=>new jc(e);ue.root=e=>new $c(e);ue.document=e=>new qc(e);ue.CssSyntaxError=gg;ue.Declaration=zc;ue.Container=hg;ue.Processor=ba;ue.Document=qc;ue.Comment=Vc;ue.Warning=Cg;ue.AtRule=Wc;ue.Result=Eg;ue.Input=xg;ue.Rule=jc;ue.Root=$c;ue.Node=Sg;yg.registerPostcss(ue);Kc.exports=ue;ue.default=ue});function Ar(){return globalThis}function L(e,t){if(typeof window>"u")return;let n=Ar(),r=n.__hf?.onSwallowed;if(r)try{r({label:e,error:t})}catch(i){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}var Wm=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function Vm(e,t){let n=Math.abs(e),r=Math.abs(t);for(;r!==0;){let i=n%r;n=r,r=i}return n||1}function zm(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=Vm(r,n);return{numerator:r/i,denominator:n/i}}function Xi(e){if(typeof e!="object"||e===null)return null;let t=e;return!Number.isFinite(t.numerator)||!Number.isFinite(t.denominator)||(t.numerator??0)<=0||(t.denominator??0)<=0?null:Number(t.numerator)/Number(t.denominator)}function Er(e){return{protocolVersion:1,capabilities:Wm,fps:zm(e)}}function qm(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Fs(e,t=30){if(typeof e!="object"||e===null)return{status:"legacy",fps:t};let n=e;if(n.protocolVersion===void 0)return{status:"legacy",fps:t};if(n.protocolVersion!==1)return{status:"unsupported",code:"unsupported_protocol_version",receivedVersion:n.protocolVersion};let r=Xi(n.fps);return r===null||!qm(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var Ns=30;function Ls(e){Ns=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...Er(Ns)},"*")}catch(t){L("bridge.postMessage",t)}}var $m={play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(jm(e,t),e.seekMode??"commit"),tick:(e,t)=>t.onTick(),"set-muted":(e,t)=>t.onSetMuted(!!e.muted),"set-volume":(e,t)=>t.onSetVolume(Math.max(0,Math.min(1,Number(e.volume??1)))),"set-media-output-muted":(e,t)=>t.onSetMediaOutputMuted(!!e.muted),"set-native-media-sync-disabled":(e,t)=>t.onSetNativeMediaSyncDisabled(!!e.disabled),"set-web-audio-media-disabled":(e,t)=>t.onSetWebAudioMediaDisabled(!!e.disabled),"set-playback-rate":(e,t)=>t.onSetPlaybackRate(Number(e.playbackRate??1)),"set-root-duration":(e,t)=>t.onSetRootDuration(Number(e.durationSeconds??0)),"set-color-grading":(e,t)=>t.onSetColorGrading(e.target??null,e.grading??null),"set-color-grading-compare":(e,t)=>t.onSetColorGradingCompare(e.target??null,e.compare??null),"enable-pick-mode":(e,t)=>t.onEnablePickMode(),"disable-pick-mode":(e,t)=>t.onDisablePickMode(),"flash-elements":e=>Ym(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel)}};function jm(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Xi(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function Km(e){let t=Fs(e);return t.status!=="unsupported"?!1:(xe({source:"hf-preview",type:"diagnostic",code:`runtime.protocol.${t.code}`,details:{receivedVersion:typeof t.receivedVersion=="string"||typeof t.receivedVersion=="number"?t.receivedVersion:null}}),!0)}function Ym(e){let t=e.selectors,n=e.duration||800;t&&Xm(t,n)}function Ds(e){let t=n=>{let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||Km(r))return;let i=r.action;if(typeof i!="string")return;let o=$m[i];o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function Xm(e,t){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 ${t}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 e)try{document.querySelectorAll(n).forEach(i=>{i.classList.add("__hf-flash"),setTimeout(()=>i.classList.remove("__hf-flash"),t)})}catch(r){L("bridge.flashElements.querySelector",r)}}var Ji=null;function Is(e){Ji=e}function Ne(e,t){if(Ji)try{Ji({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){L("runtime.analytics.site1",n)}}function Jm(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-"),n=0,r=t.length;for(;n<r&&t[n]==="-";)n++;for(;r>n&&t[r-1]==="-";)r--;let i=t.slice(n,r);return i.length>0?i:"node"}function Ot(e){return`--${Jm(e)}`}function Ps(e){let t=new Map;for(let n of e){let r=Ot(n),i=t.get(r);i?i.includes(n)||i.push(n):t.set(r,[n])}return[...t.values()].filter(n=>n.length>1)}function Hs(){if(typeof document>"u")return{};let e=new Set;document.documentElement?.hasAttribute("data-composition-variables")&&e.add(document.documentElement);for(let i of Array.from(document.querySelectorAll("[data-composition-variables]")))e.add(i);let t={};for(let i of e)Object.assign(t,bn(i));let n=Cr(),r={...t,...n};for(let i of e)Zi(i,r);return r}var Os=new Set;function Gs(e){let t=e?.getAttribute("data-composition-variables");if(!t)return[];let n;try{n=JSON.parse(t)}catch{return[]}return Array.isArray(n)?n.filter(r=>!!r&&typeof r=="object"):[]}function Qm(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function Zm(e){return Array.isArray(e.options)?e.options.map(t=>t&&typeof t=="object"?t.value:t).filter(t=>typeof t=="string"||typeof t=="number"):[]}function ep(e,t){if(typeof e.id!="string")return null;let n=t[e.id];if(n==null||"default"in e&&String(n)===String(e.default))return null;let r=Zm(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function Zi(e,t,n){if(!e)return;let r=Gs(e);if(r.length===0)return;let i=Qm(e,n);for(let o of r){let a=ep(o,t);if(!a)continue;let l=`${i}|${a.id}|${String(a.value)}`;if(Os.has(l))continue;Os.add(l);let s="default"in o?JSON.stringify(o.default):"the composition default";console.warn(`[hyperframes] runtime_unknown_enum_value: ${i} variable "${a.id}" got ${JSON.stringify(a.value)}, which is not a declared option (${a.allowed.join(", ")}). Rendering ${s} instead.`)}}function bn(e){let t={};for(let n of Gs(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Qi="data-hf-css-vars";function wr(e){return"style"in e&&typeof e.style?.setProperty=="function"}function eo(e,t){if(!wr(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=Ot(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Qi,n.join(" "))}function Bs(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=Ot(i);((wr(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function Us(e){if(!wr(e))return;let t=e.getAttribute(Qi);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Qi)}}function Ws(e){let t=new Set;e.documentElement?.hasAttribute("data-composition-variables")&&t.add(e.documentElement);for(let i of Array.from(e.querySelectorAll("[data-composition-variables]")))t.add(i);let n=Cr(),r=[];for(let i of t)r.push(...tp(i,n,e.defaultView));for(let i of Ps(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${Ot(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function tp(e,t,n){if(!wr(e))return[];let r=bn(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let l=Ot(o);(e.style.getPropertyValue(l)||(n?n.getComputedStyle(e).getPropertyValue(l):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return eo(e,i),Object.keys(r)}function Vs(e){let t=e.getAttribute("data-variable-values");if(!t)return{};let n;try{n=JSON.parse(t)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Cr(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}function zs(e){let t=[],n=u=>{if(typeof u.getAnimations!="function")return[];try{return u.getAnimations()}catch{return[]}},r=u=>e?.resolveStartSeconds?e.resolveStartSeconds(u):Number.parseFloat(u.getAttribute("data-start")??"0")||0,i=(u,c)=>{let m=null;try{m=u.effect?.getComputedTiming?.()??null}catch(p){L("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:c+f/1e3}:{unbounded:!0}},o=(u,c)=>{for(let m of u){try{m.currentTime=c}catch(f){L("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){L("runtime.adapters.css.site2",f)}}},a=u=>{for(let c of u)try{c.play()}catch(m){L("runtime.adapters.css.site3",m)}},l=u=>{for(let c of u)try{c.pause()}catch(m){L("runtime.adapters.css.site4",m)}},s=u=>{u.baseDelay?u.el.style.animationDelay=u.baseDelay:u.el.style.removeProperty("animation-delay"),u.basePlayState?u.el.style.animationPlayState=u.basePlayState:u.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let u=document.querySelectorAll("*");for(let c of u){if(!(c instanceof HTMLElement))continue;let m=window.getComputedStyle(c);!m.animationName||m.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||"",animations:n(c)})}},getInferredDurationSeconds:()=>{let u=0;for(let c of t){if(!c.el.isConnected)continue;let m=r(c.el);for(let f of n(c.el)){let p=i(f,m);p.endSeconds!=null&&(u=Math.max(u,p.endSeconds))}}return u>0?u:null},seek:u=>{let c=Number(u.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,c-f)*1e3,b=m.animations;if(b.length>0){o(b,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let u of t){if(!u.el.isConnected)continue;let c=u.animations;c.length>0&&l(c),s(u)}},play:()=>{for(let u of t)u.el.isConnected&&(s(u),a(u.animations))},revert:()=>{t=[]}}}function qs(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let r=Math.max(0,Number(t.time)||0),i=t.suppressEvents===!0;typeof n.totalTime=="function"?(n.totalTime(r+.001,!0),n.totalTime(r,i)):n.seek(r,i)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function $s(){return{name:"animejs",discover:()=>{try{let e=window.anime;if(!e||typeof e.running>"u")return;let t=e.running;if(!Array.isArray(t)||t.length===0)return;let n=window.__hfAnime??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfAnime=n}catch(e){L("runtime.adapters.animejs.site1",e)}},seek:e=>{let t=Math.max(0,(Number(e.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let r of n)try{typeof r.seek=="function"&&r.seek(t)}catch(i){L("runtime.adapters.animejs.site2",i)}},pause:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.pause=="function"&&t.pause()}catch(n){L("runtime.adapters.animejs.site3",n)}},play:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.play=="function"&&t.play()}catch(n){L("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ks(){return{name:"lottie",discover:()=>{try{let e=window.lottie;if(e&&typeof e.getRegisteredAnimations=="function"){let t=e.getRegisteredAnimations();if(Array.isArray(t)&&t.length>0){let n=window.__hfLottie??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfLottie=n}}}catch(e){L("runtime.adapters.lottie.site1",e)}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let r of n)try{if(to(r))r.goToAndStop(t*1e3,!1);else if(no(r)){if(typeof r.setCurrentRawFrameValue=="function"){let i=r.totalFrames??0,o=r.frameRate??30,a=t*o;i>0&&r.setCurrentRawFrameValue(Math.min(a,i-1))}else if(typeof r.seek=="function"){let i=r.duration??1,o=Math.min(100,t/i*100);r.seek(o)}}}catch(i){L("runtime.adapters.lottie.site2",i)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(to(t)||no(t))&&t.pause()}catch(n){L("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let e=window.__hfLottie;if(!e||e.length===0)return null;let t=0,n=!1;for(let r of e){let i=null;try{i=np(r)}catch(o){L("runtime.adapters.lottie.site4",o)}i!=null&&(n=!0,t=Math.max(t,i))}return n?t:null}}}function js(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function np(e){return to(e)?js(e.totalFrames,e.frameRate):no(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:js(e.totalFrames,e.frameRate):null}function to(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function no(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var ro=-1,_r=new Set,Ht,io=0;function Ys(e){let t=[],n=!0,r={time:e,waitUntil:o=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(o)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(o){L("runtime.adapters.seek-dispatch.site1",o)}finally{n=!1}if(t.length===0)return;let i=Promise.all(t).then(()=>({status:"fulfilled"})).catch(o=>({status:"rejected",reason:o}));_r.add(i),i.then(o=>{_r.delete(i)&&o.status==="rejected"&&Ht===void 0&&(Ht={reason:o.reason})})}function Tr(e){e!==ro&&(ro=e,Ys(e))}function Rr(e){ro=e,Ys(e)}function Xs(){return io>0}async function oo(){io+=1;let e=Ht;try{for(await Promise.resolve();_r.size>0;){let r=(await Promise.all([..._r])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=Ht;if(e===void 0&&(e=t),Ht===t&&(Ht=void 0),e)throw e.reason}finally{io-=1}}function Js(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let c=window.THREE?.DefaultLoadingManager;return!c||typeof c!="object"||typeof c.itemsLoaded!="number"||typeof c.itemsTotal!="number"?null:c},l=u=>{o||u.itemsTotal<=u.itemsLoaded||(o=new Promise(c=>{u.onLoad=function(){try{i?.call(this)}finally{o=null,u.onLoad=i??null,c()}}}))},s=u=>{n!==u&&(n=u,r=u.onStart??null,i=u.onLoad??null,u.onStart=function(c,m,f){try{r?.call(this,c,m,f)}finally{l(u)}})};return{name:"three",discover:()=>{let u=a();u&&(s(u),l(u))},seek:u=>{e=Math.max(0,Number(u.time)||0),t=e,window.__hfThreeTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let u=a();return!u||u.itemsTotal<=u.itemsLoaded?null:(o||l(u),o)}}}function $e(e){let t=null,n=new WeakSet;return{name:e.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let r=e.getInstances();if(r.length===0)return null;let i=r.filter(o=>!n.has(o));return i.length===0?null:t||(t=Promise.allSettled(i.map(o=>e.waitFor(o).then(()=>{n.add(o)}))).then(()=>{t=null}),t)}}}function Qs(){return $e({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMapbox;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function Zs(){return $e({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfLeaflet;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>e.whenReady(t))})}function el(){return $e({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfGoogleMaps;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{let n=e.addListener("tilesloaded",()=>{n.remove(),t()})})})}function tl(){return $e({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMaplibre;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function nl(){return $e({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var rp=250;function rl(){let e=null,t=0,n=null,r=()=>{n!==null&&(window.clearInterval(n),n=null)},i=()=>{n===null&&document.querySelector("[data-composition-id][data-requires-webgpu]")&&(n=window.setInterval(()=>{e!==null&&(Xs()||(window.__hfTypegpuTime=e,Rr(e)))},rp))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var xn="data-hf-render-id",il="data-hf-group-render-id";function ip(e){return e.getAttribute(xn)||e.id||null}var op="__render_frame_",ap="__";function sp(e){return`${op}${e}${ap}`}function lp(e){let t=ip(e);return t?sp(t):null}function ut(e){let t=lp(e);if(!t)return null;let n=document.getElementById(t);return n instanceof HTMLImageElement?n:null}function ol(e){let t=e.nextElementSibling;if(t instanceof HTMLImageElement&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=ut(e);return n&&n.complete&&n.naturalWidth>0?n:null}function al(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(n?.source instanceof HTMLVideoElement){let o=ol(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function sl(){let e=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],t=["texImage2D","texSubImage2D"];for(let n of e){let r=n?.prototype;if(r)for(let i of t){let o=r[i];if(typeof o!="function"||o.__hfVideoPatched)continue;let a=function(...l){let s=l.length-1,u=l[s];if(u instanceof HTMLVideoElement){let c=ol(u);c&&(l[s]=c)}return o.apply(this,l)};a.__hfVideoPatched=!0,r[i]=a}}}function ll(){let e=!1,t=0,n=!1,r,i,o,a=new Set,l=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},u=x=>{let _=Number(x.currentTime);return Number.isFinite(_)&&_>0?_:0},c=(x,_)=>_<=0?x:x>=_?Math.max(0,x-_):x,m=(x,_)=>{let R=l.get(x);if(R)return R;let T={compositionTimeMs:_,animationTimeMs:e?c(u(x),_):u(x)};return l.set(x,T),T},f=(x,_)=>{if(!a.has(x)){a.add(x);let R=()=>{a.delete(x)};try{x.addEventListener("finish",R,{once:!0}),x.addEventListener("cancel",R,{once:!0})}catch(T){L("runtime.adapters.waapi.site4",T)}}m(x,_)},p=(x,_)=>{for(let R of x)f(R,_)},b=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let _=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:_,configurable:!0});let R=function(...T){let M=_.apply(this,T);return f(M,t),M};x.animate=R,r=x,i=_,o=R,n=!0}catch{}},v=x=>{let _=null;try{_=x.effect?.getComputedTiming?.()??null}catch(M){L("runtime.adapters.waapi.site4",M)}if(!_)return{};let R=Number(_.endTime);return Number.isFinite(R)?{endSeconds:(l.get(x)?.compositionTimeMs??0)/1e3+R/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,b(),p(s(),t)},seek:x=>{let _=Math.max(0,(Number(x.time)||0)*1e3);t=_,(!e||a.size>0)&&p(s(),e?_:0);for(let R of a){let T=e?m(R,_):m(R,0),M=T.animationTimeMs+Math.max(0,_-T.compositionTimeMs);try{R.currentTime=M}catch(F){L("runtime.adapters.waapi.site1",F)}try{R.pause()}catch(F){L("runtime.adapters.waapi.site2",F)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(_){L("runtime.adapters.waapi.site3",_)}},revert:()=>{if(a.clear(),l=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){L("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let _ of s()){let R=v(_);R.endSeconds!=null&&(x=Math.max(x,R.endSeconds))}return x>0?x:null}}}var ao=3.981071705534972;function Le(e){return Number.isFinite(e)?Math.max(0,Math.min(ao,e)):1}function kr(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function ul(e,t){let n=typeof HTMLMediaElement>"u"?void 0:Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"volume"),r=n?.get,i=n?.set;if(!r||!i)return t();let o=Number(r.call(e));Object.defineProperty(e,"volume",{configurable:!0,get:()=>o,set:a=>{o=Number(a),i.call(e,kr(o))}});try{return t()}finally{delete e.volume,i.call(e,kr(o))}}var Gt=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),lv=Object.freeze([Gt.start,Gt.duration,Gt.trackIndex]),uv=Object.freeze([Gt.derivedEnd]),cv=Object.freeze([Gt.derivedEnd,Gt.legacyTrack]);function Bt(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var dl=/^[A-Za-z0-9_.:-]+$/;function fl(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function cl(e,t){let n=t;for(;n>=0&&fl(e,n);)n--;return n}function up(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function cp(e){let t=e.length-1;if(!fl(e,t))return null;let n=cl(e,t);return e[n]==="."&&(n=cl(e,n-1)),n+1}function dp(e){let t=cp(e);if(t==null)return null;let n=up(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!dl.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function so(e){let t=(e??"").trim();if(!t)return null;let n=Bt(t);if(n!=null)return{kind:"absolute",value:n};if(dl.test(t))return{kind:"reference",refId:t,offset:0};let r=dp(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}function ml(e){return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function ve(e){return Bt(e)}function Ce(e){let t=Number.parseFloat(e.getAttribute("data-playback-rate")??""),n=Number.isFinite(t)&&t>0?t:typeof HTMLMediaElement<"u"&&e instanceof HTMLMediaElement?e.defaultPlaybackRate:1;return ml(n)}function yn(e){let t=n=>{let r=ve(n);return r==null?null:Number.isFinite(r)&&r>=0?r:null};return t(e.getAttribute("data-playback-start"))??t(e.getAttribute("data-media-start"))??0}function Ze(e,t){return fp(t,yn(e),Ce(e))}function fp(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ml(n):null}function mp(e,t,n){let r=e.filter(o=>Number.isFinite(o.time)&&Number.isFinite(o.volume)).map(o=>({time:Math.max(0,o.time-t),volume:Le(o.volume)})).sort((o,a)=>o.time-a.time),i=[];for(let o of r){let a=i.at(-1);a&&Math.abs(a.time-o.time)<1e-9?a.volume=o.volume:i.push(o)}return i.length===0||i[0].time>0&&i.unshift({time:0,volume:Le(n)}),i}function pl(e,t){if(e.length===0)return 1;let n=0;for(;n<e.length-2&&t>=e[n+1].time;)n+=1;let r=e[n],i=e[n+1]??r,o=i.time-r.time,a=o<=0?0:Math.min(1,Math.max(0,(t-r.time)/o));return r.volume+(i.volume-r.volume)*a}function pp(e,t,n,r){let i=e.at(-1);!i||Math.abs(i.volume-n.volume)>1e-4?(i&&t&&t.time>i.time&&e.push(t),e.push(n)):r&&n.time>i.time&&e.push(n)}function hp(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function hl(e,t){let n=ve(e.dataset.start)??0,r=ve(e.dataset.end)??void 0,i=ve(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=hp(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Le(a)}}function gp(e,t,n,r){let{start:i,end:o,staticVolume:a}=hl(e,n),l=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),u=Math.min(n,o),c=ul(e,()=>{e.volume=a;let f=[],p;for(let b=s;b<=u+1e-6;b=Math.min(u,b+l)){t(b);let v=Number(e.volume);if(Number.isFinite(v)){let x={time:Number(b.toFixed(6)),volume:Number(Le(v).toFixed(6))};pp(f,p,x,b===u),p=x}if(b===u)break}return f});return c.some(f=>Math.abs(f.volume-a)>1e-4)?c:null}function gl(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!(e instanceof HTMLAudioElement)&&!(e instanceof HTMLVideoElement)||n<=0)return;let o=s=>{try{typeof t.totalTime=="function"?t.totalTime(s,!0):typeof t.seek=="function"&&t.seek(s,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,l=gp(e,o,n,60);if(Number.isFinite(a)&&o(a),l){let{start:s,staticVolume:u}=hl(e,n),c=mp(l,s,u);c.length>0&&r.set(e,c)}}var Rt="data-fx-chain",vv=Rt.slice(5),bl=1,vn=(e="frequency",t="Frequency",n=1e3,r=20,i=2e4)=>({kind:"number",key:e,label:t,unit:"Hz",min:r,max:i,step:1,default:n,scale:"log",automatable:!0}),lo=(e=.707,t="Bandwidth \\u2014 higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:e,scale:"log",automatable:!0,hint:t}),Mr=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),xl={kind:"enum",key:"poles",label:"Slope",options:[{value:"1",label:"6 dB/oct"},{value:"2",label:"12 dB/oct"}],default:"2",hint:"Two poles is the usual biquad; one pole is gentler."},vl=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[Mr(-60,12,0)],web:"gain-node"},{id:"peaking",label:"Peaking EQ",group:"filter",description:"Boost or cut a band, leaving everything either side alone.",params:[vn("frequency","Frequency",1e3),Mr(-40,40,0),lo(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[vn("frequency","Frequency",200,20,2e3),Mr(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[vn("frequency","Frequency",4e3,500,2e4),Mr(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies \\u2014 the usual fix for rumble on a voice.",params:[vn("frequency","Cutoff",300,20,2e4),lo(.707),xl],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[vn("frequency","Cutoff",8e3,100,2e4),lo(.707),xl],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling \\u2014 nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"gate",label:"Noise Gate",group:"dynamics",description:"Silence the track when it drops below the threshold.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-80,max:0,step:.5,default:-35},{kind:"number",key:"range",label:"Range",unit:"dB",min:-80,max:0,step:.5,default:-24,hint:"How far down the gate pulls when closed."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:10},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:9e3,step:.1,default:1,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:100,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83}],web:"worklet-gate"},{id:"saturate",label:"Saturation",group:"nonlinear",description:"Soft-clip the waveform for warmth or outright distortion.",params:[{kind:"enum",key:"type",label:"Curve",options:[{value:"tanh",label:"Tanh"},{value:"atan",label:"Arctan"},{value:"cubic",label:"Cubic"},{value:"exp",label:"Exponential"},{value:"alg",label:"Algebraic"},{value:"quintic",label:"Quintic"},{value:"sin",label:"Sine"},{value:"erf",label:"Error function"},{value:"hard",label:"Hard clip"}],default:"tanh"},{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-40,max:0,step:.1,default:-6},{kind:"number",key:"output",automatable:!0,label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0},{kind:"number",key:"oversample",label:"Oversample",unit:"x",min:1,max:8,step:1,default:4,hint:"Higher costs more but keeps aliasing down."}],web:"waveshaper"},{id:"bitcrush",label:"Bitcrush",group:"nonlinear",description:"Drop bit depth and sample rate for a lo-fi, digital sound.",params:[{kind:"number",key:"bits",label:"Bit depth",unit:"bit",min:1,max:32,step:.1,default:8},{kind:"number",key:"samples",label:"Sample hold",unit:"x",min:1,max:250,step:1,default:1,hint:"Repeats each sample N times \\u2014 a crude downsample."},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-bitcrush"},{id:"pitchshift",label:"Pitch shift",group:"time",description:"Shifts pitch up or down without changing playback speed. Adds ~50 ms of latency.",params:[{kind:"number",key:"semitones",label:"Semitones",unit:"st",min:-12,max:12,step:1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-pitchshift"},{id:"delay",label:"Delay",group:"time",description:"Repeating echoes behind the dry signal.",params:[{kind:"number",key:"time",automatable:!0,label:"Time",unit:"ms",min:1,max:5e3,step:1,default:250,scale:"log"},{kind:"number",key:"feedback",automatable:!0,label:"Feedback",unit:"",min:.01,max:.95,step:.01,default:.35},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.4}],web:"delay-feedback"},{id:"chorus",label:"Chorus",group:"time",description:"Detuned copies of the signal for width and thickness.",params:[{kind:"number",key:"delay",automatable:!0,label:"Delay",unit:"ms",min:1,max:100,step:.1,default:7},{kind:"number",key:"depth",automatable:!0,label:"Depth",unit:"ms",min:0,max:10,step:.01,default:2},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.01,max:10,step:.01,default:1},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.5}],web:"chorus-lfo"},{id:"phaser",label:"Phaser",group:"time",description:"Sweeping notches moving through the spectrum.",params:[{kind:"number",key:"in_gain",automatable:!0,label:"Input",unit:"",min:0,max:1,step:.01,default:.4},{kind:"number",key:"out_gain",automatable:!0,label:"Output",unit:"",min:0,max:2,step:.01,default:.74},{kind:"number",key:"delay",label:"Delay",unit:"ms",min:.1,max:5,step:.1,default:3},{kind:"number",key:"decay",label:"Decay",unit:"",min:0,max:.99,step:.01,default:.4},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.1,max:2,step:.01,default:.5},{kind:"enum",key:"type",label:"Waveform",options:[{value:"0",label:"Triangular"},{value:"1",label:"Sinusoidal"}],default:"0"}],web:"allpass-phaser"},{id:"reverb",label:"Reverb",group:"time",description:"Room tail. Both ends convolve the same generated impulse, so preview matches render.",params:[{kind:"number",key:"size",label:"Room size",unit:"",min:.05,max:1,step:.01,default:.7},{kind:"number",key:"damping",label:"Damping",unit:"",min:0,max:1,step:.01,default:.5,hint:"Higher rolls the top off the tail faster."},{kind:"number",key:"wet",automatable:!0,label:"Wet",unit:"",min:0,max:1,step:.01,default:.35},{kind:"number",key:"dry",automatable:!0,label:"Dry",unit:"",min:0,max:1,step:.01,default:.7}],web:"convolver"}],uo=new Map(vl.map(e=>[e.id,e]));function Sn(e){return uo.get(e)}var Sv=vl.map(e=>e.id);function An(e,t){let n=uo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let l=i.options.some(s=>s.value===o);r[i.key]=l?o:i.default;continue}let a=typeof o=="number"?o:typeof o=="string"&&o.trim()!==""?Number(o):Number.NaN;r[i.key]=Number.isFinite(a)?Math.min(i.max,Math.max(i.min,a)):i.default}return r}var ct=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function Sl(e){let t;try{t=JSON.parse(e)}catch(i){throw new ct(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new ct("Chain file must be a JSON object.");let n=t;if(n.version!==bl)throw new ct(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new ct("Chain file is missing a `nodes` array.");let r=n.nodes.map(bp);return{version:bl,nodes:r}}function En(e){return e.nodes.filter(t=>t.enabled!==!1)}function bp(e,t){if(typeof e!="object"||e===null)throw new ct(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!uo.has(n.type))throw new ct(`Node ${t} has unknown effect type: ${String(n.type)}`);return yp({type:n.type,id:Fr(n.id),fromCarve:yl(n.fromCarve),fromPreset:Fr(n.fromPreset),label:Fr(n.label),fromEq:Fr(n.fromEq),fromLeveller:yl(n.fromLeveller),presetAmount:xp(n.presetAmount),enabled:n.enabled!==!1,params:An(n.type,n.params??void 0)})}function Fr(e){return typeof e=="string"&&e?e:void 0}function yl(e){return e===!0?!0:void 0}function xp(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function yp(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var tt="data-automation",Cv=tt.slice(5),Nr=1,vp=512,et=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},Ut="volume";function Cn(e){if(e===Ut)return{kind:"volume"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===Sp){let i=t[2];return i?{kind:"preset",presetId:i}:null}if(t.length!==3||t[0]!=="fx")return null;let[,n,r]=t;return!n||!r?null:{kind:"fx",nodeId:n,param:r}}var Sp="preset";var Ap={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},Lr={min:0,max:ao,step:.01,unit:"",label:"Volume",scale:"linear",default:1};function co(e,t){let n=Cn(e);if(!n)return null;if(n.kind==="volume")return Lr;if(n.kind==="preset")return t?.nodes.some(l=>l.fromPreset===n.presetId)?{...Ap,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Sn(r.type),o=i?.params.find(a=>a.key===n.param);return!o||o.kind!=="number"?null:{min:o.min,max:o.max,step:o.step,unit:o.unit,label:`${i?.label??r.type} \\xB7 ${o.label}`,scale:o.scale==="log"&&o.min>0?"log":"linear",default:o.default}}function wn(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ep(e){let t=wn(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function Al(e,t){let n=wn(e),r=wn(t);if(n===null||r===null)return null;let i=l=>Math.min(.999,Math.max(.001,l)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function wp(e){let t=Ep(e?.curve),n=Al(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function Cp(e,t){let n=wn(e?.t),r=wn(e?.v);if(n===null||r===null)return null;let i=t?Math.min(t.max,Math.max(t.min,r)):r;return{t:Math.max(0,n),v:i,...wp(e)}}function El(e,t){let n=e.map(i=>Cp(i,t)).filter(i=>i!==null).sort((i,o)=>i.t-o.t),r=[];for(let i of n)r.length>0&&r[r.length-1].t===i.t?r[r.length-1]=i:r.push(i);return r.slice(0,vp)}function _p(e){let t=[];for(let n of e.lanes){if(!Cn(n.target))continue;let r=n.target===Ut?Lr:null,i=El(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:Nr,lanes:t}}function wl(e,t){let n=[];for(let r of e.lanes){let i=co(r.target,t);if(!i)continue;let o=El(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:Nr,lanes:n}}function Dr(e){let t;try{t=JSON.parse(e)}catch(i){throw new et(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new et("Automation must be a JSON object.");let n=t;if(n.version!==Nr)throw new et(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new et("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new et(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!Cn(a.target))throw new et(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new et(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return _p({version:Nr,lanes:r})}function Tp(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function Rp(e,t){let n=e-.5,r=t-.5,i=.999,o=1e6,a=n>0?n/(i-e):n<0?-n/(e-(1-i)):0,l=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,l));return{cx:e+n/s,cy:t+r/s,w:s}}function kp(e,t,n){let{cx:r,cy:i,w:o}=Rp(t,n),a=2-2*o,l=e*a-1+2*o*r,s=-e*a-2*o*r,u=Mp(l,s,e),c=1-u,m=c*c+2*o*u*c+u*u;return m>0?(2*o*i*u*c+u*u)/m:e}function Mp(e,t,n){if(Math.abs(e)<1e-12)return Math.abs(t)<1e-12?n:-n/t;let r=Math.sqrt(Math.max(0,t*t-4*e*n)),i=(-t+r)/(2*e),o=(-t-r)/(2*e),a=l=>l>=-1e-9&&l<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function Fp(e,t){let n=Al(t.viaX,t.viaY);return n?kp(Math.min(1,Math.max(0,e)),n.x,n.y):Tp(e,t.curve)}function Np(e,t,n,r){return r==="log"&&e>0&&t>0?Math.exp(Math.log(e)+(Math.log(t)-Math.log(e))*n):e+(t-e)*n}function _n(e,t,n="linear"){let r=e.points;if(r.length===0)return 0;let i=r[0];if(t<=i.t)return i.v;let o=r[r.length-1];if(t>=o.t)return o.v;let a=0,l=r.length-1;for(;l-a>1;){let m=a+l>>1;r[m].t<=t?a=m:l=m}let s=r[a],u=r[l],c=u.t-s.t;return c<=0?u.v:Np(s.v,u.v,Fp((t-s.t)/c,s),n)}function Cl(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function _l(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),l=n-t;for(let s=0;s<o;s+=1)a[s]=_n(e,t+l*s/(o-1),i);return a}var Ir=new Map,Lp=64;function Dp(e){let t=Ir.get(e);if(t!==void 0)return t;let n=null;try{n=Dr(e).lanes.find(r=>r.target===Ut)??null}catch{n=null}return Ir.size>Lp&&Ir.clear(),Ir.set(e,n),n}function Tl(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return null;let r=Dp(n);return!r||r.points.length===0?null:_n(r,t)}var Wt="hf-audio-group",Pr="data-audio-group";function fo(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function mo(e,t){let n=Array.from(e?.querySelectorAll?.(`${Wt}[${xn}]`)??[]).find(i=>i.getAttribute(xn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===Wt?r:null}function Or(e,t){let n=t?.getAttribute?.(il)??t?.getAttribute?.(Pr);return n?mo(e,n)?.hasAttribute("data-hidden")??!1:!1}function Rl(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Pr)||null}function kl(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${Wt}{display:none!important}`,e.head.appendChild(n)}function je(e){return yn(e)}function Ml(e){let t=e.isVideo?e.explicitDuration??e.sourceDuration:e.sourceDuration,n=(e.isVideo?[t,e.hostRemaining]:[t,e.hostRemaining,e.explicitDuration]).filter(r=>r!=null&&Number.isFinite(r)&&r>=0);return n.length>0?Math.min(...n):null}function Fl(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(a=>e.shouldIncludeElement?.(a)):t.filter(a=>a.hasAttribute("data-start")),r=[],i=[],o=0;for(let a of n){let l=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(l))continue;let s=je(a),u=Ce(a),c=a.loop,m=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,f=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(f)||f<0)&&m!=null&&(f=Math.max(0,(m-s)/u));let p=Number.isFinite(f)&&f>=0,b=p?l+f:Number.POSITIVE_INFINITY,v=Number.parseFloat(a.dataset.volume??""),x={el:a,start:l,mediaStart:s,duration:p?f:Number.POSITIVE_INFINITY,end:b,volume:Number.isFinite(v)?v:null,playbackRate:u,loop:c,sourceDuration:m};r.push(x),a.tagName==="VIDEO"&&i.push(x),Number.isFinite(b)&&(o=Math.max(o,b))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var ho=new WeakMap,Hr=new WeakMap,Tn=new WeakMap,go=new WeakSet,Vt=new WeakSet;function Ip(e){if(Vt.has(e))return;Vt.add(e);let t=()=>Vt.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Pp=3;function Op(e){return e.error!=null||e.networkState===Pp}var bo=new WeakMap;function po(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function xo(e){ho.delete(e),Hr.delete(e),Tn.delete(e),go.delete(e),bo.delete(e)}function Nl(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart,o=r.tagName==="VIDEO"&&!n.loop,a=o&&n.sourceDuration!=null&&i>=n.sourceDuration&&e.timeSeconds>=n.start&&e.timeSeconds<n.end;a&&n.sourceDuration!=null&&(i=n.sourceDuration);let l=Hr.get(r),s=r.tagName==="AUDIO"&&(l===void 0||i<l-.04),u=!n.loop&&n.sourceDuration!=null&&i>=n.mediaStart&&i<n.sourceDuration&&(o||s);if(e.timeSeconds>=n.start&&e.timeSeconds<n.end&&i>=0&&(!r.ended||n.loop||a||u)){if(Hr.set(r,i),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let H=n.sourceDuration-n.mediaStart;H>0&&i>=n.sourceDuration&&(i=n.mediaStart+(i-n.mediaStart)%H)}let f=po(e.userVolume??1),p=Le(n.volume??1),b=bo.get(r),v=po(r.volume),x,_=Tl(r,e.timeSeconds-n.start);if(_!==null)x=Le(_);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let H=e.timeSeconds-n.start;x=Le(pl(n.volumeKeyframes,H))}else e.isWebAudioRouted?.(r)?x=p:b===void 0?x=p>1?p:v:Math.abs(v-b)>1e-4?x=v:x=p;let T=r.closest("[data-hidden]")!==null||Or(r.ownerDocument,r)?0:po(x*f);r.volume=T,bo.set(r,T),e.onElementVolume?.(r,T,x),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=n.playbackRate*e.playbackRate}catch(H){L("runtime.media.site1",H)}let M=.04,F=2,E=r.currentTime||0,S=Math.abs(E-i),A=i-E,C=ho.get(r);ho.set(r,A);let N=C===void 0,I=!N&&Math.abs(A-C)>.5,W=S>3,U=r.tagName==="AUDIO"&&N&&E-i>M,oe=a&&S>.001||r.ended&&u&&S>.001||U||S>.5&&(N||I||W),k=r.tagName==="VIDEO"&&!r.paused,V=C!==void 0&&Math.abs(A-C)<.004,Q=!1;if(!k&&!oe&&!N&&V&&S>M){let H=(Tn.get(r)??0)+1;Tn.set(r,H),H>=F&&(Q=!0,Tn.set(r,0))}else S<=M&&Tn.set(r,0);let G=!k&&e.forceSync&&S>.02;if(oe||Q||G){if(!(r.tagName==="VIDEO"&&!!ut(r))){try{r.currentTime=i}catch(z){L("runtime.media.site2",z)}if(Math.abs(r.currentTime-i)>.5&&!go.has(r)){go.add(r),r.load();try{r.currentTime=i}catch(z){L("runtime.media.site3",z)}}}Vt.delete(r)}a?r.paused||r.pause():e.playing&&r.paused&&!Vt.has(r)&&!Op(r)?(Ip(r),r.play().catch(H=>{Vt.delete(r),(H&&typeof H=="object"&&"name"in H?String(H.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let m=e.timeSeconds>=n.start&&e.timeSeconds<n.end;xo(r),m&&Hr.set(r,i),r.paused||r.pause()}}var Hp="hf-proxy",Ll="runtime_media_proxy_fallback",Dl="runtime_media_proxy_unavailable",Rn=new WeakSet,Il=new WeakSet;function Gr(e){return e.currentSrc||e.src}function yo(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:e instanceof HTMLVideoElement&&!!ut(e)}function vo(e){let t=Gr(e);if(!t)return null;let n;try{n=new URL(t,document.baseURI)}catch{return null}if(n.origin!==window.location.origin)return null;try{return decodeURIComponent(n.pathname)}catch{return n.pathname}}function Gp(e,t){let n=null;for(let r of Object.keys(t))e.endsWith(r)&&(n===null||r.length>n.length)&&(n=r);return n?t[n]??null:null}function Bp(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,l]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=l,o=!1):s.length===r&&(o=!0))}return o?null:i}function So(e,t){return t[e]??Gp(e,t)??Bp(e,t)}function Up(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Hp,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var Wp={cross_origin:"video reports zero decodable width but its source is cross-origin; no local proxy can be served for it",proxy_playback_failed:"the authoring proxy itself failed to decode; render output is unaffected",browser_safe_codec:"the file errored but its codec is browser-decodable; a proxy cannot help (the file itself is likely corrupt)",invalid_source_url:"the media source URL is malformed and cannot be proxied"};function kt(e,t,n){if(Il.has(e))return;Il.add(e);let r=Wp[t];xe({source:"hf-preview",type:"diagnostic",code:Dl,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${Dl}: "${n}" (${t}): ${r}`)}function Ao(e,t=null,n="reactive"){if(Rn.has(e))return;let r=Gr(e),i;try{i=Up(r,t)}catch(l){L("runtime.mediaProxy.swap",l),kt(e,"invalid_source_url",r);return}Rn.add(e),xo(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:Ll,details:{asset:r,codecName:o,trigger:n,note:"render output is unaffected; only this preview element was swapped to an authoring proxy"}}),console.info(`[hyperframes] ${Ll}: "${r}" uses a codec (${o??"unknown"}) this browser can\'t decode; auto-swapped to an authoring proxy for this preview only. Render output is unaffected.`)}function Pl(e){if(yo(e)||!(e instanceof HTMLVideoElement)||Rn.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=vo(e);if(n===null)return;let r=So(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Ao(e,r,"proactive")}function Ol(e){if(yo(e)||!(e instanceof HTMLVideoElement)||e.videoWidth!==0)return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"reactive")}function Hl(e){if(yo(e)||!(e instanceof HTMLVideoElement))return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"tertiary")}var Se=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},Vp=[0,0,0],zp=[1,1,1],Br=64;function qp(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===\'"\'&&(t=!t),r==="#"&&!t)return e.slice(0,n)}return e}function dt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Se(`Invalid number "${e}"`,t);return n}function Gl(e,t,n){if(e.length!==3)throw new Se(`${t} expects three numbers`,n);return[dt(e[0],n),dt(e[1],n),dt(e[2],n)]}function Bl(e,t,n){if(!e)throw new Se(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Se(`${t} must be an integer greater than 1`,n);return r}function $p(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Se("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function jp(e){let t=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(e);if(t)return t[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(e);return n&&(n[1]??"").trim()||null}function Kp(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function Ul(e,t={}){let n=t.maxSize??Br,r=null,i=Vp,o=zp,a=null,l=null,s=[],u=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<u.length;m++){let f=m+1,p=qp(u[m]??"").trim();if(!p)continue;let b=p.split(/\\s+/),v=(b[0]??"").toUpperCase(),x=b.slice(1);if(v==="TITLE"){r=jp(p);continue}if(v==="DOMAIN_MIN"){i=Gl(x,v,f);continue}if(v==="DOMAIN_MAX"){o=Gl(x,v,f);continue}if(v==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Se(`${v} expects two numbers`,f);let _=dt(x[0],f),R=dt(x[1],f);if(R<=_)throw new Se("LUT_3D_INPUT_RANGE max must exceed min",f);i=[_,_,_],o=[R,R,R];continue}if(v==="LUT_1D_SIZE"){a=Bl(x[0],v,f);continue}if(v==="LUT_3D_SIZE"){if(l=Bl(x[0],v,f),l>n)throw new Se(`LUT_3D_SIZE ${l} exceeds max ${n}`,f);continue}if(!Kp(v)){if(v.startsWith("LUT_"))throw new Se(`Unsupported cube keyword ${v}`,f);continue}if(!l)throw a?new Se("1D cube LUTs are not supported yet",f):new Se("LUT data appears before LUT_3D_SIZE",f);if(b.length!==3)throw new Se("LUT data rows must contain three numbers",f);s.push(dt(b[0],f),dt(b[1],f),dt(b[2],f))}if(a&&l)throw new Se("Mixed 1D and 3D cube LUTs are not supported yet");if(!l)throw a?new Se("1D cube LUTs are not supported yet"):new Se("Missing LUT_3D_SIZE");$p(i,o);let c=l*l*l;if(s.length!==c*3)throw new Se(`Expected ${c} LUT rows for size ${l}, found ${s.length/3}`);return{title:r,size:l,domainMin:i,domainMax:o,data:new Float32Array(s)}}function Yp(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function kn(e){return Math.round(Yp(e)*255)}function Eo(e){let t=e.size,n=t*t,r=t,i=new Uint8Array(n*r*4);for(let o=0;o<t;o++)for(let a=0;a<t;a++)for(let l=0;l<t;l++){let s=((o*t+a)*t+l)*3,u=(a*n+o*t+l)*4;i[u]=kn(e.data[s]??0),i[u+1]=kn(e.data[s+1]??0),i[u+2]=kn(e.data[s+2]??0),i[u+3]=255}return{width:n,height:r,data:i}}var Wl="rec709";var me={hueDegrees:{min:0,max:360,inclusiveMax:!1},unit:{min:0,max:1},signedUnit:{min:-1,max:1},secondaryHueRange:{min:0,max:180},secondaryHueSoftness:{min:0,max:180},secondaryHueCombinedMax:180,secondarySoftRangeSoftness:{min:0,max:.5},secondaryHueShift:{min:-180,max:180},effects:{asciiStyle:{min:0,max:7},bloom:{min:0,max:3},bloomRadius:{min:1,max:100},monoScreenShape:{min:0,max:4}}};var Vl=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],zl=["shadows","midtones","highlights"],ql=["master","red","green","blue"],$l=["hueVsHue","hueVsSaturation","hueVsLuma"];var jl=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],Kl=["blur","pixelate","chromaBleed","tapeDamage","tapeTracking","tapeNoise","tapeSpeed","filmArtifacts","halftone","halftoneSize","twoInkPrint","twoInkPrintSize","ascii","asciiSize","asciiInvert","asciiStyle","asciiColor","asciiRotation","dither","ditherSize","bloom","bloomRadius","monoScreen","monoScreenSize","monoScreenAngle","monoScreenSpread","monoScreenShape","monoScreenInvert","scanlines","scanlineCount","scanlineSoftness","chromaticAberration","chromaticAngle","crtCurvature","digitalGlitch","digitalGlitchColorSplit","digitalGlitchLineTear","digitalGlitchPixelate","digitalGlitchBlockAmount","digitalGlitchBlockDisplacement","digitalGlitchBlockOpacity","digitalGlitchSpeed","engraving","engravingSpacing","engravingMinThickness","engravingMaxThickness","engravingAngle","engravingContrast","engravingSharpness","engravingWave","engravingWaveFrequency","crosshatch","crosshatchSpacing","crosshatchThickness","crosshatchAngle","crosshatchContrast","crosshatchEdges","crosshatchLineWeight","crosshatchWave","crosshatchWaveFrequency","kuwahara","kuwaharaRadius","kuwaharaSharpness","kuwaharaSaturation"];var Yv=me.unit,Xv=me.signedUnit,Jv=me.effects;var Ke=1024,Mn=16;function Yl(e,t,n,r){let i=((2*e+t)*n-e*r)/(e+t);return Math.sign(i)!==Math.sign(n)?0:Math.sign(n)!==Math.sign(r)&&Math.abs(i)>3*Math.abs(n)?3*n:i}function Ae(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function Xp(e){let t=[],n=[],r=Ae(e,0);for(let a of e.slice(1)){let l=a[0]-r[0];t.push(l),n.push((a[1]-r[1])/l),r=a}let i=Ae(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=Yl(Ae(t,0),Ae(t,1),i,Ae(n,1)),o[o.length-1]=Yl(Ae(t,t.length-1),Ae(t,t.length-2),Ae(n,n.length-1),Ae(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let l=Ae(n,a-1),s=Ae(n,a);if(l===0||s===0||Math.sign(l)!==Math.sign(s)){o[a]=0;continue}let u=Ae(t,a-1),c=Ae(t,a),m=2*c+u,f=c+2*u;o[a]=(m+f)/(m/l+f/s)}return o}function Xl(e,t){if(e.length<2)throw new RangeError("A color curve requires at least two points");if(!Number.isInteger(t)||t<2)throw new RangeError("Curve LUT size must be at least 2");let n=Number.NEGATIVE_INFINITY;for(let[r,i]of e){if(!Number.isFinite(r)||!Number.isFinite(i))throw new TypeError("Color curve points must be finite");if(r<=n)throw new RangeError("Color curve inputs must be strictly increasing");n=r}}function Jp(e,t,n){if(!Number.isFinite(t)||!Number.isFinite(n)||t>=n)throw new RangeError("Curve output bounds must be finite and increasing");if(e.some(([,r])=>r<t||r>n))throw new RangeError(`Curve outputs must be between ${t} and ${n}`)}function Qp(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),l=a*a,s=l*a;return(2*s-3*l+1)*t[1]+(s-2*l+a)*o*r+(-2*s+3*l)*n[1]+(s-l)*o*i}function Jl(e,t,n,r,i){Jp(e,r,i);let o=Xp(e),a=new Float32Array(t),l=0;for(let s=0;s<t;s+=1){let u=n(s);for(;l<e.length-2&&u>Ae(e,l+1)[0];)l+=1;let c=Ae(e,l),m=Ae(e,l+1),f=Qp(u,c,m,Ae(o,l),Ae(o,l+1));a[s]=Math.min(i,Math.max(r,f))}return a}function zt(e,t=Ke){if(Xl(e,t),e.length>Mn)throw new RangeError(`A color curve supports at most ${Mn} points`);if(e.some(([n])=>n<0||n>1))throw new RangeError("Color curve inputs must be between 0 and 1");if(e[0]?.[0]!==0||e[e.length-1]?.[0]!==1)throw new RangeError("Color curves must include input endpoints 0 and 1");return Jl(e,t,n=>n/(t-1),0,1)}function Co(e,t,n,r=Ke){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>Mn)throw new RangeError(`A hue curve supports at most ${Mn} points`);let i=[...e].sort((s,u)=>s[0]-u[0]);for(let s=0;s<i.length;s+=1){let u=i[s];if(!u||u[0]<0||u[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&u[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,u])=>[s-360,u]),a=i.slice(0,2).map(([s,u])=>[s+360,u]),l=[...o,...i,...a];return Xl(l,r),Jl(l,r,s=>s/r*360,t,n)}var Fn="data-color-grading",Nn="data-hf-color-grading-source-hidden",Vr="data-hf-authored-opacity",nu="__hf_color_grading_",eh=Wl,Ro={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},ko={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Mo={blur:0,pixelate:0,chromaBleed:0,tapeDamage:0,tapeTracking:0,tapeNoise:1,tapeSpeed:.5,filmArtifacts:0,halftone:0,halftoneSize:0,twoInkPrint:0,twoInkPrintSize:0,ascii:0,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0,dither:0,ditherSize:0,bloom:0,bloomRadius:8,monoScreen:0,monoScreenSize:0,monoScreenAngle:0,monoScreenSpread:0,monoScreenShape:0,monoScreenInvert:0,scanlines:0,scanlineCount:0,scanlineSoftness:0,chromaticAberration:0,chromaticAngle:0,crtCurvature:0,digitalGlitch:0,digitalGlitchColorSplit:0,digitalGlitchLineTear:0,digitalGlitchPixelate:0,digitalGlitchBlockAmount:0,digitalGlitchBlockDisplacement:0,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:0,engraving:0,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9,crosshatch:0,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9,kuwahara:0,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5};var zr=Vl,ru=zl,iu=ql,ou=$l,No=jl,Lo=Kl,Ql={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},Zl={vignette:.18};function Ee(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Ro,...n},details:{...ko,...r},effects:{...Mo,...i}}}var Do=[Ee("neutral","Neutral"),Ee("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Ee("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Ee("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Ee("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Ee("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Ee("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Ee("vintage-wash","Vintage Wash",Ql,Zl),Ee("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Ee("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Ee("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Ee("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Ee("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Ee("creator-camcorder","Creator Camcorder",{contrast:.08,highlights:-.05,shadows:.02,whites:.03,blacks:-.04,temperature:-.03,tint:-.015,vibrance:-.03,saturation:-.06},{vignette:.06,grain:.08,grainSize:.18,grainRoughness:.58},{chromaBleed:.55},.72),Ee("vhs-playback","VHS Playback",{contrast:-.04,saturation:-.08},{grain:.16,grainSize:.12,grainRoughness:.72},{tapeDamage:.82,tapeTracking:.85,tapeNoise:.3,tapeSpeed:.5,chromaBleed:.5,chromaticAberration:.18,scanlines:.35,scanlineCount:.17,scanlineSoftness:1,digitalGlitch:.32,digitalGlitchLineTear:.08,digitalGlitchSpeed:.5}),Ee("home-movie-8mm","8mm Home Movie",Ql,{...Zl,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Ee("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Ee("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],th=new Map(Do.map(e=>[e.id,e])),nh=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,rh={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},vibrance:{min:-1,max:1},saturation:{min:-1,max:1}},qt={hue:0,amount:0,level:0},eu={amount:me.unit,level:me.signedUnit},ft=[[0,0],[1,1]],$t=[],ih={hueVsHue:me.secondaryHueShift,hueVsSaturation:me.signedUnit,hueVsLuma:me.signedUnit},_o={center:0,range:180,softness:0},To={min:0,max:1,softness:.05},oh={vignette:me.unit,vignetteMidpoint:me.unit,vignetteRoundness:me.signedUnit,vignetteFeather:me.unit,grain:me.unit,grainSize:me.unit,grainRoughness:me.unit},Fo=me.unit,ah=me.effects,au=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var sh=Do.filter(e=>au.some(t=>e.effects[t]>1e-4)),oS=Do.filter(e=>!sh.includes(e)),aS={blur:{blur:.45},pixelate:{pixelate:.55},bloom:{bloom:.55,bloomRadius:8},chromaBleed:{chromaBleed:.55},tapeDamage:{tapeDamage:.65,tapeTracking:.55,tapeNoise:.25,tapeSpeed:.5},filmArtifacts:{filmArtifacts:.55},scanlines:{scanlines:.35,scanlineCount:.17,scanlineSoftness:1},chromaticAberration:{chromaticAberration:.15,chromaticAngle:0},crtCurvature:{crtCurvature:.2},digitalGlitch:{digitalGlitch:.55,digitalGlitchColorSplit:.25,digitalGlitchLineTear:.25,digitalGlitchPixelate:.15,digitalGlitchBlockAmount:.5,digitalGlitchBlockDisplacement:.25,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:.5},halftone:{halftone:.94,halftoneSize:.36},twoInkPrint:{twoInkPrint:1,twoInkPrintSize:.42},ascii:{ascii:1,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0},dither:{dither:1,ditherSize:.5},monoScreen:{monoScreen:1,monoScreenSize:.35,monoScreenAngle:.25,monoScreenSpread:.3,monoScreenShape:0,monoScreenInvert:0},engraving:{engraving:1,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9},crosshatch:{crosshatch:1,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9},kuwahara:{kuwahara:1,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5}},su=[{path:"intensity",name:"--hf-color-grading-intensity",min:0,max:1},{path:"lut.intensity",name:"--hf-color-grading-lut-intensity",min:0,max:1},{path:"adjust.exposure",name:"--hf-color-grading-exposure",min:-2,max:2},{path:"effects.blur",name:"--hf-color-grading-blur",min:0,max:1},{path:"effects.bloom",name:"--hf-color-grading-bloom",min:0,max:3},{path:"effects.kuwahara",name:"--hf-color-grading-kuwahara",min:0,max:1},{path:"effects.pixelate",name:"--hf-color-grading-pixelate",min:0,max:1},{path:"effects.ascii",name:"--hf-color-grading-ascii",min:0,max:1},{path:"effects.dither",name:"--hf-color-grading-dither",min:0,max:1}];var lh=/^#[0-9a-f]{6}$/i;function uh(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&lh.test(t))?null:e.map(t=>t.toLowerCase())}function _e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Wr(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function lu(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function Te(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Wr(n,t.min,t.max):0}function Io(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function ch(e){let t=_e(e)?e:{};return ru.reduce((n,r)=>{let i=_e(t[r])?t[r]:{};return n[r]={hue:Io(i.hue,qt.hue),amount:Te(i.amount??qt.amount,eu.amount),level:Te(i.level??qt.level,eu.level)},n},{shadows:{...qt},midtones:{...qt},highlights:{...qt}})}function dh(e){if(!Array.isArray(e)||e.length!==2)return null;let t=Number(e[0]),n=Number(e[1]);return Number.isFinite(t)&&Number.isFinite(n)?[Wr(t,0,1),Wr(n,0,1)]:null}function uu(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function fh(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function mh(e){if(!Array.isArray(e)||e.length<2)return ft;let t=[];for(let n of e){let r=dh(n);if(!r)return ft;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),uu(t)||(fh(t),t.length>16)?ft:t}function ph(e){let t=_e(e)?e:{};return iu.reduce((n,r)=>(n[r]=mh(t[r]),n),{master:ft,red:ft,green:ft,blue:ft})}function hh(e,t){if(!Array.isArray(e)||e.length!==2)return null;let n=Number(e[0]),r=Number(e[1]);return Number.isFinite(n)&&Number.isFinite(r)?[Io(n),Wr(r,t.min,t.max)]:null}function gh(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return $t;let n=[];for(let r of e){let i=hh(r,t);if(!i)return $t;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),uu(n)?$t:n}function bh(e){let t=_e(e)?e:{};return ou.reduce((n,r)=>(n[r]=gh(t[r],ih[r]),n),{hueVsHue:$t,hueVsSaturation:$t,hueVsLuma:$t})}function tu(e){let t=_e(e)?e:{},n=Te(t.min??To.min,Fo),r=Te(t.max??To.max,Fo);return{min:Math.min(n,r),max:Math.max(n,r),softness:Te(t.softness??To.softness,me.secondarySoftRangeSoftness)}}function xh(e){let t=_e(e)?e:{},n=Te(t.range??_o.range,me.secondaryHueRange);return{center:Io(t.center,_o.center),range:n,softness:Te(t.softness??_o.softness,{min:me.secondaryHueSoftness.min,max:me.secondaryHueCombinedMax-n})}}function yh(e){return{hueShift:Te(e.hueShift??0,me.secondaryHueShift),saturation:Te(e.saturation??0,me.signedUnit),luma:Te(e.luma??0,me.signedUnit),temperature:Te(e.temperature??0,me.signedUnit),tint:Te(e.tint??0,me.signedUnit)}}function vh(e){return!_e(e)||!_e(e.key)||!_e(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:xh(e.key.hue),saturation:tu(e.key.saturation),luma:tu(e.key.luma)},correction:yh(e.correction)}}function Sh(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=vh(n);r&&t.push(r)}return t}function Ah(e){if(e==null)return null;let t=String(e).trim();return t||null}function Eh(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!_e(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:lu(e.intensity,1)}}function wh(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return _e(n)?n:null}catch{return null}return{preset:t}}return _e(e)?e:null}function Ch(e,t){let n=e.trim().match(nh);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Ur(e,t){if(typeof e=="string"){let r=Ch(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Ur(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Ur(r,t));if(!_e(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Ur(i,t);return n}function _h(e){return e?th.get(e)??null:null}function qr(e){let t=wh(e);if(!t||t.enabled===!1)return null;let n=Ah(t.preset),r=_h(n),i=r?.adjust??Ro,o=r?.details??ko,a=r?.effects??Mo,l=_e(t.adjust)?t.adjust:{},s=_e(t.details)?t.details:{},u=_e(t.effects)?t.effects:{},c=zr.reduce((p,b)=>(p[b]=Te(l[b]??i[b],rh[b]),p),{...Ro}),m=No.reduce((p,b)=>(p[b]=Te(s[b]??o[b],oh[b]),p),{...ko}),f=Lo.reduce((p,b)=>(p[b]=Te(u[b]??a[b],ah[b]??Fo),p),{...Mo});return{enabled:!0,preset:n,intensity:lu(t.intensity,r?.intensity??1),adjust:c,wheels:ch(t.wheels),curves:ph(t.curves),hueCurves:bh(t.hueCurves),secondaries:Sh(t.secondaries),details:m,effects:f,palette:uh(t.palette),lut:Eh(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():eh}}function cu(e,t){return qr(Ur(e,t))}function Th(e){return ru.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function Po(e){return iu.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function Oo(e){return ou.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function Ho(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function du(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||au.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:zr.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?Th(e.wheels):!1)||(e.curves?Po(e.curves):!1)||(e.hueCurves?Oo(e.hueCurves):!1)||(e.secondaries?Ho(e.secondaries):!1):!1}var Rh=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),kh=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function fu(e){let t=!1,n=null,r=null,i=null,o=null;function a(S,A){try{window.dispatchEvent(new CustomEvent(S,{detail:A}))}catch(C){L("runtime.picker.site1",C)}}function l(S){i=S,a("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function s(S){o=S,a("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function u(S){let A=S.ownerDocument.defaultView;if(!A)return!1;let C=S;for(;C&&C!==document.body&&C!==document.documentElement;){let N=A.getComputedStyle(C);if(N.display==="none"||N.visibility==="hidden"||N.pointerEvents==="none")return!0;let I=Number.parseFloat(N.opacity);if(Number.isFinite(I)&&I<=.01&&!C.hasAttribute(Nn))return!0;C=C.parentElement}return!1}function c(S){if(!S||S===document.body||S===document.documentElement)return!1;let A=S.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Rh)||u(S))}function m(S){return!!S?.closest(kh)}function f(S){let A=S;if(A.id)return`#${CSS.escape(A.id)}`;let C=S.getAttribute("data-composition-id");if(C)return`[data-composition-id="${CSS.escape(C)}"]`;let N=S.getAttribute("data-composition-src");if(N)return`[data-composition-src="${CSS.escape(N)}"]`;let I=S.getAttribute("data-track-index");if(I)return`[data-track-index="${CSS.escape(I)}"]`;let W=S.tagName.toLowerCase(),U=S.parentElement;if(!U)return W;let oe=U.querySelectorAll(`:scope > ${W}`);if(oe.length===1)return W;for(let k=0;k<oe.length;k+=1)if(oe[k]===S)return`${W}:nth-of-type(${k+1})`;return W}function p(S){let A=S.tagName.toLowerCase(),C=(S.textContent??"").trim().replace(/\\s+/g," "),N=(I,W)=>I.length>W?`${I.slice(0,W-1)}\\u2026`:I;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?C.length>0?N(C,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function b(S,A,C){let N=typeof C=="number"&&C>0?C:8,I=[];if(document.elementsFromPoint)I=document.elementsFromPoint(S,A);else if(document.elementFromPoint){let oe=document.elementFromPoint(S,A);I=oe?[oe]:[]}if(m(I[0]??null))return[];let W={},U=[];for(let[oe,k]of I.entries()){if(!c(k))continue;let V=`${k.tagName}::${k.id||""}::${oe}`;if(!W[V]&&(W[V]=!0,U.push(k),U.length>=N))break}return U}function v(S){let A=S.getBoundingClientRect(),C={};for(let I of Array.from(S.attributes))I.name.startsWith("data-")&&(C[I.name]=I.value);return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:p(S),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:C}}function x(S,A,C){return b(S,A,C).map(v)}function _(S){if(!t)return;let C=b(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!c(C)||n===C)return;n&&n.classList.remove("__hf-pick-highlight"),n=C,C.classList.add("__hf-pick-highlight");let N=v(C);l(N),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:N})}function R(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let A=x(S.clientX,S.clientY,8);A.length!==0&&(l(A[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function T(S){S.key==="Escape"&&(F(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function M(){t||(t=!0,r=document.createElement("style"),r.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(r),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",_,!0),document.addEventListener("click",R,!0),document.addEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function F(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),r&&(r.remove(),r=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",_,!0),document.removeEventListener("click",R,!0),document.removeEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function E(){window.__HF_PICKER_API={enable:M,disable:F,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(S,A,C)=>Number.isFinite(S)&&Number.isFinite(A)?x(S,A,C):[],pickAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return null;let N=x(S,A,8);if(!N.length)return null;let I=Math.max(0,Math.min(N.length-1,Number(C??0))),W=N[I]??null;return W?(s(W),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:W}),F(),W):null},pickManyAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return[];let N=x(S,A,8);if(!N.length)return[];let I=[],W=Array.isArray(C)?C:[0];for(let U of W){let oe=Math.max(0,Math.min(N.length-1,Math.floor(Number(U)))),k=N[oe];if(!k)continue;I.some(Q=>Q.selector===k.selector&&Q.tagName===k.tagName)||I.push(k)}return I.length?(s(I[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:I}),F(),I):[]}},a("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:M,disablePickMode:F,installPickerApi:E}}var Mh=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function jt(e,t){let n=Number.isFinite(t)&&t>0?t:30,r=Number.isFinite(e)&&e>0?e:0;return Math.floor(r*n+1e-9)/n}function mu(e,t,n=Mh){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function Ln(e,t,n){let r=e?.[t];return typeof r=="function"?Number(r.call(e))||n:typeof r=="number"&&Number.isFinite(r)?r:(r!=null&&L("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function Be(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&L("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function Dn(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){L("runtime.player.site1",i)}}}function pu(e,t,n,r){let i=jt(t,n),o=r?.suppressEvents===!0;return Be(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function Fh(e,t,n,r,i){let o=[];Dn(e,t,a=>{Be(a,"play"),o.push(a)});try{return pu(t,n,r,i)}finally{for(let a of o)try{Be(a,"pause")}catch(l){L("runtime.player.site2",l)}}}function Nh(e,t){Dn(e,t,n=>{Be(n,"play")})}function hu(e){let t=e.transport;return t?{_timeline:null,play:()=>t.play(),pause:()=>t.pause(),seek:(n,r)=>t.seek(n,r),renderSeek:(n,r)=>t.renderSeek(n,r),getTime:()=>t.getTime(),getDuration:()=>t.getDuration(),isPlaying:()=>t.isPlaying(),setPlaybackRate:n=>t.setPlaybackRate(n),getPlaybackRate:()=>t.getPlaybackRate()}:{_timeline:null,play:()=>{let n=e.getTimeline();if(!n||e.getIsPlaying())return;let r=Math.max(0,Number(e.getSafeDuration?.()??Ln(n,"duration",0))||0);r>0&&Math.max(0,Ln(n,"time",0))>=r&&(Be(n,"pause"),typeof n.seek=="function"&&n.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof n.timeScale=="function"&&n.timeScale(e.getPlaybackRate()),Be(n,"play"),Dn(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;Be(n,"pause"),Dn(e.getTimelineRegistry?.(),n,i=>{Be(i,"pause")});let r=Math.max(0,Ln(n,"time",0));e.onDeterministicSeek(r),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},seek:(n,r)=>{let i=e.getTimeline();if(!i)return;let o=Math.max(0,Number(n)||0),a=e.getIsPlaying(),l=Fh(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(l),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play"),Dn(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),Be(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(l,!0)):(e.setIsPlaying(!1),e.onSyncMedia(l,!1)),e.onRenderFrameSeek(l),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(Nh(e.getTimelineRegistry?.(),i),pu(i,n,o,r)):jt(Math.max(0,Number(n)||0),o);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>Ln(e.getTimeline(),"time",0),getDuration:()=>Ln(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function gu(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],injectedCompLinks:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Lh=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Go(e){return e.id||e.getAttribute("data-hf-id")||null}function Dh(e){return ve(e)}function Ih(e,t){let n=e.getAttribute("data-composition-id");if(!n)return null;let r=Number(t[n]?.duration?.());return Number.isFinite(r)&&r>0?r:null}function Ph(e){return!(e instanceof HTMLMediaElement)||!Number.isFinite(e.duration)?null:Ze(e,e.duration)}function Oh(e,t,n,r){let i=Dh(e.getAttribute("data-duration"));return i!=null&&i>0?i:Ih(e,t)??Ph(e)??Math.max(0,n-r)}function Hh(e){for(let[t,n]of e){let r=t.parentElement;for(;r;){let i=e.get(r);if(i){n.parentId=i.id,i.children.push(n);break}r=r.parentElement}}}function bu(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let l of document.querySelectorAll("[data-start]")){if(l===o||Lh.has(l.tagName))continue;let s=t.resolveStartForElement(l,0);if(Oh(l,n,r,s)<=0)continue;let u={id:Go(l)??`__clip-${a++}`,element:l,parentId:null,children:[]};i.set(l,u)}return Hh(i),{roots:Array.from(i.values()).filter(l=>l.parentId===null)}}function In(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function Kt(e){let t=In(e.start);if(t==null)return null;let n=Math.max(0,t),r=In(e.duration),i=In(e.authoredDuration),o=r!=null&&r>0?r:i!=null&&i>0?i:null;if(o!=null)return{start:n,duration:o,end:n+o};let a=In(e.end),l=In(e.authoredEnd),s=a!=null&&a>n?a:l!=null&&l>n?l:null;return{start:n,duration:s==null?null:s-n,end:s}}var Bo="css:root",xu=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Gh=new Set([...xu,"contain","isolation","mask-border","mix-blend-mode","opacity"]),Bh=new Set(["absolute","relative"]),Uh=new Set(["flex","inline-flex","grid","inline-grid"]),Wh=new Set(["layout","paint","strict","content"]),Vh=new Set(["size","inline-size"]);function zh(e){return e.position==="fixed"||e.position==="sticky"}function qh(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(Bh.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&Uh.has(n)}function $h(e){let t=Number.parseFloat(e.opacity);if(Number.isFinite(t)&&t<1||e.getPropertyValue("isolation")==="isolate")return!0;let n=e.getPropertyValue("mix-blend-mode");return n&&n!=="normal"?!0:xu.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function jh(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>Wh.has(n))?!0:Vh.has(e.getPropertyValue("container-type"))}function Kh(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Gh.has(t))}function Yh(e,t){return zh(t)||qh(e,t)||$h(t)||jh(t)?!0:Kh(t)}function Xh(e){let t=[],n=e;for(;n?.parentElement;)t.push(Array.prototype.indexOf.call(n.parentElement.children,n)),n=n.parentElement;return`css:${t.reverse().join(".")}`}function $r(e){let t=e.ownerDocument.defaultView;if(!t)return Bo;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(Yh(n,t.getComputedStyle(n)))return Xh(n)}catch{return Bo}n=n.parentElement}return Bo}function mt(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,l=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=f.ownerDocument.defaultView?.HTMLMediaElement;return p?f instanceof p:typeof HTMLMediaElement<"u"&&f instanceof HTMLMediaElement},u=f=>{let p=o.get(f);if(p!==void 0)return p;let b=null,v=Kt({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(v?.duration!=null&&v.duration>0&&(b=v.duration),b==null||b<=0){let x=m(f,0),_=Kt({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});_?.duration!=null&&_.duration>0&&(b=_.duration)}if((b==null||b<=0)&&s(f)){let x=yn(f);Number.isFinite(f.duration)&&f.duration>x&&(b=(f.duration-x)/Ce(f))}if(b==null||b<=0){let x=f.getAttribute("data-composition-id");if(x){let _=t[x]??null;if(_&&typeof _.duration=="function")try{let R=Number(_.duration());Number.isFinite(R)&&R>0&&(b=R)}catch(R){L("runtime.startResolver.site1",R)}}}return b!=null&&Number.isFinite(b)&&b>0?(o.set(f,b),b):(o.set(f,null),null)},c=(f,p)=>{if(f.hasAttribute("data-composition-id")){let v=f.parentElement?.closest("[data-composition-id]");return v?m(v,p):0}let b=f.closest("[data-composition-id]");return b?m(b,p):0},m=(f,p)=>{let b=i.get(f);if(b!==void 0)return b??p;if(a.has(f))return p;a.add(f);try{let v=so(f.getAttribute("data-start"));if(!v){if(f.hasAttribute("data-composition-id")){let M=f.parentElement;if(M&&(M.hasAttribute("data-composition-src")||M.hasAttribute("data-composition-id")||M.hasAttribute("data-composition-file"))){let F=m(M,p);return i.set(f,F),F}}return i.set(f,p),p}if(v.kind==="absolute"){let M=Math.max(0,v.value),F=Math.max(0,c(f,p)+M);return i.set(f,F),F}let x=l(v.refId);if(!x)return i.set(f,p),p;let _=m(x,0),R=u(x);if(R==null||R<=0){let M=Math.max(0,_+v.offset);return i.set(f,M),M}let T=Math.max(0,_+R+v.offset);return i.set(f,T),T}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>m(f,Math.max(0,p)),resolveDurationForElement:f=>u(f)}}function Uo(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}function pt(e){return ve(e)}function Wo(e){let t=e.getAttribute("data-duration"),n=e.getAttribute("data-hf-authored-duration"),r=Kt({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(pt).some(o=>o!=null&&o<=0)?0:null)}function yu(e){return Kt({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute("data-hf-authored-end")})?.end??null}function Vo(e){try{let t=e.style?.zIndex;if(t&&t!=="auto"){let n=parseInt(t,10);if(Number.isFinite(n))return n}return 0}catch{return 0}}function zo(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function qo(e,t){let n=e.getAttribute("data-track-index")??e.getAttribute("data-track");if(n==null)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)?r:t}function On(e){let t=String(e??"").trim();if(!t)return null;let n=t.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(t,document.baseURI).toString()}catch{return t}}function vu(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return On(t);let n=e.getAttribute("data-composition-src");if(n)return On(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?On(r.getAttribute("src")):null}function Qh(e){let t=e.className;return typeof t!="string"?null:t.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Zh(e){if(!e)return null;try{return new URL(e,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return e.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function e0(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function Pn(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function t0(e,t,n){let r=e.getAttribute("data-timeline-label")??e.getAttribute("data-label")??e.getAttribute("aria-label")??null;if(r?.trim())return r.trim();let i=e.getAttribute("data-composition-id");if(i)return Pn(i);let o=e.id;if(o)return Pn(o);let a=Qh(e);if(a)return Pn(a);let l=Zh(vu(e));if(l)return Pn(l);let s=e0(e);return s||`${Pn(t)} ${n+1}`}function Su(e){let n=window.__timelines??{},r=mt({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=q=>{if(!q)return null;let P=n[q]??null;if(!P||typeof P.duration!="function")return null;try{let O=Number(P.duration());return Number.isFinite(O)&&O>0?O:null}catch{return null}},o=q=>{let P=pt(q.getAttribute("data-duration"));return P!=null&&P>0?P:Number.isFinite(q.duration)?Ze(q,q.duration):null},a=()=>{let q=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(q.length===0)return null;let P=0;for(let O of q){let j=O.hasAttribute("data-hf-auto-start")?r.resolveStartForElement(O,0):Math.max(0,Number(O.getAttribute("data-start")??0)||0);if(!Number.isFinite(j))continue;let le=o(O);le==null||le<=0||(P=Math.max(P,Math.max(0,j)+le))}return P>0?P:null},l=(q,P)=>{let O=[],j=null,le=null,ee=null,K=q.parentElement;for(;K;){let Y=K.getAttribute("data-composition-id");Y&&(O.push(Y),!ee&&K!==P&&(ee=Y),j==null&&(j=r.resolveStartForElement(K,0)),le==null&&(le=pt(K.getAttribute("data-duration"))??i(Y)??null)),K=K.parentElement}return{parentCompositionId:ee,compositionAncestors:O.reverse(),inheritedStart:j,inheritedDuration:le}},s=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),c=s?.getAttribute("data-composition-id")??null,m=s?r.resolveStartForElement(s,0):0,f=a(),p=f!=null?Math.max(0,f-Math.max(0,m)):null,b=i(c),v=Wo(s??document.body),x=zo(...u.filter(q=>q!==s).map(q=>{let P=r.resolveStartForElement(q,0),O=r.resolveDurationForElement(q)??i(q.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||O==null||O<=0?null:Math.max(0,P)+O})),_=x!=null?Math.max(0,x-Math.max(0,m)):null,R=typeof b=="number"&&Number.isFinite(b)&&b>0?b:null,T=typeof v=="number"&&Number.isFinite(v)&&v>0?v:null,M=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,F=typeof _=="number"&&Number.isFinite(_)&&_>0?_:null,E=zo(M,F),S=R!=null&&E!=null&&R>E+1,C=T??(S?E:zo(R,M,F))??null,I=(C!=null?m+C:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),W=(q,P)=>!Number.isFinite(P)||P<=0?0:I==null||!Number.isFinite(I)?P:!Number.isFinite(q)||q>=I?0:Math.max(0,Math.min(P,I-q)),U=[],oe=[],k=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),V=0;for(let[q,P]of k.entries()){if(P===s||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let O=l(P,s),j=r.resolveStartForElement(P,O.inheritedStart??0),le=P.getAttribute("data-composition-id"),ee=Wo(P);if(ee==null&&le&&le!==c&&(ee=i(le)),ee==null&&P instanceof HTMLMediaElement&&Number.isFinite(P.duration)&&(ee=Ze(P,P.duration)),ee==null){let Fe=O.inheritedDuration;if(Fe!=null&&Fe>0){let ze=(O.inheritedStart??0)+Fe;ee=Math.max(0,ze-j)}}if(ee==null||ee<=0||(ee=W(j,ee),ee<=0))continue;let K=j+ee;V=Math.max(V,K);let Y=P.tagName.toLowerCase(),Ve=le&&le!==c?"composition":Y==="video"?"video":Y==="audio"?"audio":Y==="img"?"image":"element";U.push({id:Go(P)??le??null,label:t0(P,Ve,U.length),start:j,duration:ee,track:qo(P,q),zIndex:Vo(P),stackingContextId:$r(P),kind:Ve,tagName:Y,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:On(P.getAttribute("data-composition-src")),playbackStart:je(P),playbackRate:Ce(P),assetUrl:vu(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:pt(P.getAttribute("data-timeline-priority"))})}let Q=new Set(U.map(q=>q.id)),G=s?.getAttribute("data-composition-id")??null,H=G?n[G]??null:null;if(H&&s){let q=H;if(typeof q.getChildren=="function")try{let P=q.getChildren(!0,!0,!1)??[],O=new Map;for(let ee of s.children){let K=ee;if(!K.id)continue;let Y=K.tagName.toLowerCase();Y==="script"||Y==="style"||Y==="link"||O.set(K,{id:K.id,start:1/0,end:-1/0})}let j=ee=>{let K=ee;for(;K;){if(O.has(K))return K;if(K===s)return null;K=K.parentElement}return null};for(let ee of P){if(typeof ee.targets!="function"||typeof ee.startTime!="function"||typeof ee.duration!="function")continue;let K=ee.startTime(),Y=ee.parent;for(;Y&&Y!==H&&typeof Y.startTime=="function";)K+=Y.startTime(),Y=Y.parent;let Ve=K+ee.duration();if(!(!Number.isFinite(K)||!Number.isFinite(Ve)))for(let Fe of ee.targets()){if(!(Fe instanceof Element))continue;let Re=j(Fe);if(!Re)continue;let ze=O.get(Re);ze&&(ze.start=Math.min(ze.start,K),ze.end=Math.max(ze.end,Ve))}}let le=U.length>0?Math.max(...U.map(ee=>ee.track))+1:0;for(let[ee,K]of O){if(K.start===1/0||K.end===-1/0)continue;let Y=ee;if(Q.has(Y.id))continue;let Ve=Math.max(0,K.end-K.start);if(Ve<=0)continue;let Fe=W(K.start,Ve);Fe<=0||(V=Math.max(V,K.start+Fe),U.push({id:Y.id,label:Y.getAttribute("data-timeline-label")??Y.getAttribute("data-label")??Y.getAttribute("aria-label")??Y.id,start:K.start,duration:Fe,track:qo(Y,le),zIndex:Vo(Y),stackingContextId:$r(Y),kind:"element",tagName:Y.tagName.toLowerCase(),compositionId:Y.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(Y),playbackRate:Ce(Y),assetUrl:null,timelineRole:Y.getAttribute("data-timeline-role"),timelineLabel:Y.getAttribute("data-timeline-label"),timelineGroup:Y.getAttribute("data-timeline-group"),timelinePriority:pt(Y.getAttribute("data-timeline-priority"))}),Q.add(Y.id))}}catch(P){L("runtime.timeline.site1",P)}}if(s&&C!=null&&C>0){let q=U.length>0?Math.max(...U.map(P=>P.track))+1:0;for(let P of s.children){let O=P;if(!O.id||Q.has(O.id))continue;let j=O.getAttribute("data-timeline-role");if(j!=="overlay"&&j!=="persistent-overlay")continue;let le=O.tagName.toLowerCase();if(le==="script"||le==="style"||le==="link"||le==="meta"||window.getComputedStyle(O).display==="none")continue;let K=W(0,C);K<=0||(V=Math.max(V,K),U.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:K,track:qo(O,q),zIndex:Vo(O),stackingContextId:$r(O),kind:"element",tagName:le,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(O),playbackRate:Ce(O),assetUrl:null,timelineRole:j,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:pt(O.getAttribute("data-timeline-priority"))}),Q.add(O.id))}}for(let q of u){if(q===s)continue;let P=q.getAttribute("data-composition-id");if(!P||!Uo(P))continue;let O=r.resolveStartForElement(q,0),j=Wo(q);if((j==null||j<=0)&&yu(q)!=null){let Y=yu(q);j=Math.max(0,Y-O)}let le=i(P),ee=j&&j>0?j:le;if(ee==null||ee<=0)continue;let K=W(O,ee);K<=0||oe.push({id:P,label:q.getAttribute("data-label")??P,start:O,duration:K,thumbnailUrl:On(q.getAttribute("data-thumbnail-url")),avatarName:null})}let z=Math.max(1,V||1,C??0),X=S&&T==null,we=X?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(z*Math.max(1,e.canonicalFps)));return{...Er(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:X?Number.POSITIVE_INFINITY:z,durationInFrames:we,clips:U,scenes:oe,compositionWidth:pt(s?.getAttribute("data-width"))??1920,compositionHeight:pt(s?.getAttribute("data-height"))??1080}}var $o="data-composition-id",n0="data-composition-src",r0=`[${$o}]`,jS=`[${n0}]`,Au="style",Eu="script",i0=\'link[rel="stylesheet"], link[rel="preconnect"]\';function Yt(e){return e?Array.from(e):[]}function wu(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=Yt(t.querySelectorAll(r0)),l=o?a.find(c=>c.getAttribute($o)===o)??null:a[0]??null,s=(l??a[0])?.getAttribute($o)?.trim()||"",u=i?null:n??null;return{innerRoot:l,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:l?.getAttribute("id")?.trim()||null,styleSources:[...Yt(u?.querySelectorAll(Au)),...Yt(t.querySelectorAll(Au))],scriptSources:[...Yt(u?.querySelectorAll(Eu)),...Yt(t.querySelectorAll(Eu))],linkSources:Yt(n?.querySelectorAll(i0)),variableDefaultCarriers:[r,l].filter(c=>c!=null)}}var pe=Um(Yc(),1),Xc=pe.default,PA=pe.default.stringify,OA=pe.default.fromJSON,HA=pe.default.plugin,GA=pe.default.parse,BA=pe.default.list,UA=pe.default.document,WA=pe.default.comment,VA=pe.default.atRule,zA=pe.default.rule,qA=pe.default.decl,$A=pe.default.root,jA=pe.default.CssSyntaxError,KA=pe.default.Declaration,YA=pe.default.Container,XA=pe.default.Processor,JA=pe.default.Document,QA=pe.default.Comment,ZA=pe.default.Warning,eE=pe.default.AtRule,tE=pe.default.Result,nE=pe.default.Input,rE=pe.default.Rule,iE=pe.default.Root,oE=pe.default.Node;var xa="data-hf-authored-id",Jc="data-hf-inner-root";function ya(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function va(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function _g(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Zc(e){let t=e.trim();return t?Array.from(new Set([t,_g(t)])).filter(Boolean):[]}function Tg(e){return!!e&&/[\\w-]/.test(e)}function Rg(e,t,n){let r=Zc(t).sort((l,s)=>s.length-l.length);if(r.length===0)return e;let i="",o=0,a=null;for(let l=0;l<e.length;l+=1){let s=e[l],u=l>0?e[l-1]:"";if(a){i+=s,s===a&&u!=="\\\\"&&(a=null);continue}if(s===\'"\'||s==="\'"){a=s,i+=s;continue}if(s==="["){o+=1,i+=s;continue}if(s==="]"){o=Math.max(0,o-1),i+=s;continue}if(s==="#"&&o===0){let c=r.find(m=>e.startsWith(m,l+1));if(c){let m=e[l+1+c.length];if(!Tg(m)){i+=n,l+=c.length;continue}}}i+=s}return i}function kg(e,t){let n=t?.trim();return n?Rg(e,n,`[${xa}="${va(n)}"]`):e}function Qc(e){return`${e}:not(:has([${Jc}])), ${e} > [${Jc}]`}function Mg(e,t,n,r,i,o){let a=kg(e,r),l=Fg(a,t,n),s=l.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?Qc(t):e;let u=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${ya(n)}\\\\1\\\\s*\\\\]`,"g");if(u.test(s))return s.replace(u,"").trim()===""?Qc(t):l.replace(u,t);let c=l.match(/^\\s*/)?.[0]??"",m=l.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${xa}="${va(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${c}${t}${f}${p}${m}`}}return`${c}${t} ${s}${m}`}function Fg(e,t,n){let r=ya(n),i=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${r}"|\'${r}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return e.replace(new RegExp(`${i}(?:${o})+`,"g"),t).replace(new RegExp(`(?:${o})+${i}`,"g"),t)}var Ng=new Set(["keyframes","-webkit-keyframes","font-face"]);function Lg(e){return e?.type==="atrule"}function Dg(e){let t=e.parent;for(;t;){if(Lg(t)&&Ng.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Ig(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function ed(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${va(o)}"]`,l=Xc.parse(e);return l.walkRules(s=>{Dg(s)||Ig(s)||(s.selectors=s.selectors.map(u=>Mg(u,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),l.toResult({map:!1}).css}function rt(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}function td(e,t,n="[HyperFrames] composition script error:",r,i=t,o){let a=rt(t),l=rt(i),s=rt(n),u=ya(t),c=rt(o?.trim()||null),m=rt(r??null),f=rt(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${u}"|\'${u}\')\\s*\\]`),p=rt(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),b=rt(Zc(o?.trim()||""));return`(function(){\n var __hfCompId = ${a};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${s};\n var __hfAuthoredRootId = ${c};\n var __hfAuthoredRootAttr = ${rt(xa)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${p};\n var __hfAuthoredRootIdForms = ${b};\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 if (prop !== __hfCompId) {\n return Reflect.get(target, prop, target);\n }\n var authoredValue = Reflect.get(target, prop, target);\n return authoredValue === undefined\n ? Reflect.get(target, __hfTimelineCompId, target)\n : authoredValue;\n },\n set: function(target, prop, value, receiver) {\n if (prop !== __hfCompId) {\n return Reflect.set(target, prop, value, target);\n }\n // The authored node remains in the compiled DOM when its local id\n // differs from the runtime mount id, so readiness legitimately sees\n // both compositions. Publish the same timeline under both identities\n // instead of replacing one with the other.\n var authoredSet = Reflect.set(target, __hfCompId, value, target);\n var runtimeSet = Reflect.set(target, __hfTimelineCompId, value, target);\n return authoredSet && runtimeSet;\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 // Inside a sub-composition, __hyperframes is passed as a bare script\n // param bound to the SCOPED variant (per-comp getVariables). But\n // authors routinely write the documented window.__hyperframes.\n // getVariables() form, which would otherwise fall through to the host\n // page\'s base __hyperframes and return the WRONG (or empty) variables\n // for this instance. Route it to the scoped variant too so both\n // spellings resolve to this composition\'s own variables.\n // (__hfScopedHyperframes is a hoisted var assigned below, before any\n // sub-comp script -- the only code that reads this -- runs.)\n if (prop === "__hyperframes") return __hfScopedHyperframes;\n // Native window methods must stay bound to the real window. Handed\n // back unbound, "this" at call time is this Proxy and Chrome rejects\n // it with "Illegal invocation", which broke window.addEventListener,\n // setTimeout, matchMedia and getComputedStyle inside every\n // sub-composition -- including the window.addEventListener("hf-seek",\n // ...) form the Three.js and TypeGPU adapters document. The sibling\n // document and gsap proxies here already bind.\n //\n // Only bind non-constructors. Function.prototype.bind drops static\n // members, so binding a class exposed on window (window.Texts and\n // friends) would silently strip its statics. Built-in methods have\n // no .prototype; classes and constructor functions do.\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" && value.prototype === undefined\n ? value.bind(target)\n : value;\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n // Common authoring boilerplate assigns the registry back to\n // itself (window.__timelines = window.__timelines || {}). The\n // getter above returns our proxy; do not replace the canonical\n // registry with that proxy or later wrappers will stack proxies.\n if (value === __hfTimelineRegistryProxy) return true;\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${e.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})();`}var Pg=["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 nd(e){let t=e.getAttribute("id")?.trim();for(let n of Pg)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Og=8e3,Hg=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Gg=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Bg=["src","href"];function Ug(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function od(e,t){if(!t)return e;let n=e.trim();if(Ug(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function ad(e,t){return!t||!e?e:e.replace(Gg,(n,r,i)=>{let o=od(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function Wg(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of Bg){let i=n.getAttribute(r);if(i==null)continue;let o=od(i,t);o!==i&&n.setAttribute(r,o)}}function Vg(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=ad(r,t);i!==r&&n.setAttribute("style",i)}}function zg(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=ad(r,t);i!==r&&(n.textContent=i)}}function sd(e,t){if(t){Wg(e,t),Vg(e,t),zg(e,t);for(let n of Array.from(e.querySelectorAll("template")))sd(n.content,t)}}function qg(e,t){return`${e}__hf${t}`}var $g=e=>new Promise(t=>{let n=!1,r=Date.now(),i=null,o=a=>{n||(n=!0,i!=null&&window.clearTimeout(i),t({status:a,elapsedMs:Math.max(0,Date.now()-r)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),i=window.setTimeout(()=>o("timeout"),Og)});function Sa(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function rd(e){for(let t of Array.from(e.querySelectorAll("style, script")))t.remove()}function jg(e){let t=document.importNode(e,!0);nd(t);let n=t.getAttribute("data-width"),r=t.getAttribute("data-height");return t.style.width=n?`${n}px`:"100%",t.style.height=r?`${r}px`:"100%",t}function Kg(e,t){let n=e.trim();if(!n)return e;try{return Hg.test(n)&&!n.startsWith("#")&&!n.startsWith("?")?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}function id(e,t){try{let n=new URL(e),r=new URL(t);return n.search="",n.hash="",r.search="",r.hash="",n.href===r.href}catch{return!1}}function li(e){let t=(e.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(e.getAttribute("data-hf-original-composition-id")||t||"").trim()||null,runtimeCompositionId:t}}function Yg(e){let t=new Map;for(let n of e){let r=li(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function ld(e){let t=li(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Xg(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Jg(e){return e.hasAttribute("data-composition-src")?!0:ld(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Xg(e):!1}function Ea(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:ld(t))}function ud(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Ea().map(n=>li(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function cd(e,t=Yg(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=li(i),l=Jg(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,u=a||o;if(l){let c=s?(n.get(o)||0)+1:0;s&&n.set(o,c),u=s?qg(o,c):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",u),a&&a!==u&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:u})}return r}async function Aa(e){let t=wu({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=t.innerRoot instanceof HTMLElement?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,l=t.authoredRootId,s=a?`[data-composition-id="${CSS.escape(a)}"]`:void 0;for(let f of t.linkSources){let p=(f.getAttribute("href")||"").trim();if(!p)continue;let b=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&id(b,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(b)}"]`))continue;let v=f.cloneNode(!0);v instanceof HTMLLinkElement&&(v.href=b,document.head.appendChild(v),e.injectedLinks.push(v))}(f=>{for(let p of f){let b=p.cloneNode(!0);b instanceof HTMLStyleElement&&(i&&(b.textContent=ed(b.textContent||"",i,s,l,{scopeRootSelectors:!0})),document.head.appendChild(b),e.injectedStyles.push(b))}})(t.styleSources);let c=f=>{let p=f.getAttribute("type")?.trim()??"",b=f.getAttribute("src")?.trim()??"";if(b){let x=Kg(b,e.compositionUrl);return e.compositionUrl&&id(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let v=f.textContent?.trim()??"";return v?{kind:"inline",content:v,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(c).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),b=e.parseDimensionPx(f),v=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),b&&e.host instanceof HTMLElement&&(e.host.style.width=b),v&&e.host instanceof HTMLElement&&(e.host.style.height=v),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=jg(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),rd(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);rd(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml;a&&Qg(e,r,a);for(let f of m){let p=document.createElement("script");if(f.type&&(p.type=f.type),p.async=!1,f.kind==="external"?p.src=f.src:f.type.toLowerCase()==="module"?p.textContent=f.content:f.scopeCompositionId?p.textContent=td(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,l):p.textContent=`(function(){${f.content}})();`,document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let b=await $g(p);b.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:b.status,elapsedMs:b.elapsedMs}})}}}async function dd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>{if(i.hasAttribute("data-composition-src")||i.children.length>0)return!1;let o=n.get(i)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(r.length!==0)for(let i of r){let o=n.get(i),a=o?.authoredCompositionId;if(!a)continue;let l=document.querySelector(`template#${CSS.escape(a)}-template`);Sa(i),await Aa({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function fd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>i.hasAttribute("data-composition-src"));r.length!==0&&await Promise.all(r.map(async i=>{let o=i.getAttribute("data-composition-src");if(!o)return;let a=n.get(i),l=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||l||null,u=null;try{u=new URL(o,document.baseURI)}catch{u=null}Sa(i);try{let c=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(c){await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),b=new DOMParser().parseFromString(f,"text/html");sd(b,u);let v=(l?b.querySelector(`template#${CSS.escape(l)}-template`):null)??b.querySelector("template"),x=v?v.content:b.body;await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!v,fallbackBodyInnerHtml:b.body.innerHTML,compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:b.head,declaredVariableDefaults:bn(b.documentElement),variableDeclarer:b.documentElement,onDiagnostic:e.onDiagnostic})}catch(c){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:c instanceof Error?c.message:"unknown_error"}}),Sa(i)}}))}function Qg(e,t,n){let i={...e.declaredVariableDefaults??(t instanceof Element?bn(t):{}),...Vs(e.host)};Zi(e.variableDeclarer??(t instanceof Element?t:null),i,n),Us(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,eo(e.host,{...Bs(e.host,i,window),...Cr()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function wa(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function Zg(e){return e instanceof HTMLElement?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function eb(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!(r instanceof HTMLElement))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function tb(e){let t=e.parentElement;if(t?.dataset.captionWrapper==="true")return t;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",e.parentNode?.insertBefore(n,e),n.appendChild(e),n}function Ca(){let e=window.gsap;e&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(t=>t.ok?t.json():null).then(t=>{if(!t||!Array.isArray(t)||t.length===0)return;let n=eb();for(let r of t){let i=null;if(r.wordId&&(i=Zg(document.getElementById(r.wordId))),!i&&r.wordIndex!==void 0&&(i=n[r.wordIndex]??null),!i)continue;let o={},a={};if(r.x!==void 0&&(o.x=r.x),r.y!==void 0&&(o.y=r.y),r.scale!==void 0&&(o.scale=r.scale),r.rotation!==void 0&&(o.rotation=r.rotation),r.opacity!==void 0&&(a.opacity=r.opacity),r.fontSize!==void 0&&(a.fontSize=`${r.fontSize}px`),r.fontWeight!==void 0&&(a.fontWeight=r.fontWeight),r.fontFamily!==void 0&&(a.fontFamily=r.fontFamily),r.activeColor||r.dimColor){let s=e.getTweensOf(i).filter(m=>m.vars.color!==void 0).sort((m,f)=>m.startTime()-f.startTime()),u=s.find(m=>wa(m)==="dim")??s.find(m=>wa(m)===void 0),c=u?String(u.vars.color):"";for(let m of s)(wa(m)??(String(m.vars.color)===c?"dim":"active"))==="dim"?r.dimColor&&(m.vars.color=r.dimColor):r.activeColor&&(m.vars.color=r.activeColor);r.dimColor&&e.set(i,{color:r.dimColor})}if(Object.keys(a).length>0&&e.set(i,a),Object.keys(o).length>0){let l=tb(i);e.set(l,o)}}}).catch(()=>{})}var Ta="data-hf-edit-base-x",Ra="data-hf-edit-base-y",tn="data-hf-edit-original-translate",ui=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},nb=e=>{let t=[],n=0,r="";for(let i of e.trim())i==="("&&(n+=1),i===")"&&(n=Math.max(0,n-1)),/\\s/.test(i)&&n===0?(r&&t.push(r),r=""):r+=i;return r&&t.push(r),t},md=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,_a=(e,t)=>md.test(e)&&md.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,rb=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=nb(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${_a(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${_a(r,t)} ${_a(i,n)}${a}`},ib=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},ob=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let n=e.ownerDocument.defaultView,r=n?n.getComputedStyle(e).getPropertyValue("translate").trim():"";return r==="none"?"":r}catch{return""}},ka=new WeakMap;function ab(e,t){let n=ka.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ne("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=ui(e.getAttribute("data-x"))-ui(e.getAttribute(Ta)),i=ui(e.getAttribute("data-y"))-ui(e.getAttribute(Ra));e.hasAttribute(tn)||e.setAttribute(tn,ob(e)),n===void 0&&ib(e);let o=e.getAttribute(tn)??"",a=rb(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),ka.set(e,e.style.getPropertyValue("translate"))}function ci(e,t){let n=e.defaultView?.HTMLElement,r=e.defaultView?.SVGElement,i=s=>n||r?n!==void 0&&s instanceof n||r!==void 0&&s instanceof r:typeof s.style?.setProperty=="function",o=e.querySelectorAll(`[${tn}]:not([${Ta}]):not([${Ra}])`);for(let s=0;s<o.length;s++){let u=o[s];if(u===void 0||!i(u))continue;let c=u.getAttribute(tn)??"";c===""?u.style.removeProperty("translate"):u.style.setProperty("translate",c),u.removeAttribute(tn),ka.delete(u)}let a=e.querySelectorAll(`[${Ta}], [${Ra}]`),l=0;for(let s=0;s<a.length;s++){let u=a[s];u===void 0||!i(u)||(ab(u,t),l+=1)}return l}var pd="__hfPositionEditsSeekReapplyWrapped",hd=new WeakSet,gd=new WeakMap,bd=new WeakMap;function xd(e){let t=e,n=()=>{try{ci(t.document)}catch{}},r=m=>typeof m=="function"&&(hd.has(m)||!!m[pd]),i=m=>{hd.add(m);try{Object.defineProperty(m,pd,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let b=m.apply(this,p);return n(),b};return i(f),f},a=(m,f)=>{let p=gd.get(m);if(p?.has(f))return!0;let b=Object.getOwnPropertyDescriptor(m,f);if(b?.configurable===!1){let _=m[f];return typeof _=="function"&&(m[f]=o(_),n()),!1}let v=m[f],x=b?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>v,set:_=>{v=o(_),x?.call(m,_)}}),v=o(v),p??(p=new Set),p.add(f),gd.set(m,p),n(),!0},l=(m,f)=>{let p=bd.get(t),b=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(b?.configurable===!1){let _=t[m];return _?a(_,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>x,set:_=>{x=_,x&&a(x,f)}}),p??(p=new Set),p.add(m),bd.set(t,p)}let v=t[m];return v?a(v,f):!1},s=()=>{let m=l("__hf","seek"),f=l("__player","renderSeek");return m&&f};if(s())return;let u=120,c=t.setInterval(()=>{if(s()){t.clearInterval(c);return}u-=1,u<=0&&t.clearInterval(c)},50)}function di(e){let t=window,r=e.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",i=r?t.__hfVariablesByComp?.[r]:void 0;if(i)return i;let o=t.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:t.__hfVariables??{}}function fi(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ma(e){let t=e.replace(/[\\u0000-\\u0020]/g,""),n=/^([a-z][a-z0-9+.-]*):/i.exec(t);if(!n)return!0;let r=n[1]?.toLowerCase();return r?r==="https"||r==="http"||r==="blob"?!0:r==="data"?/^data:image\\//i.test(t):!1:!1}var yd=new Set(["img","video","audio","source"]);function sb(e){if(typeof e=="string"&&e.length>0)return e;if(e!==null&&typeof e=="object"){let t=e.url;if(typeof t=="string"&&t.length>0)return t}return null}function lb(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function ub(e){if(fi(e))return String(e);if(e!==null&&typeof e=="object"){let t=e.name;if(typeof t=="string"&&t.length>0)return t}return null}function Fa(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=di(e);return t.set(n,i),i}function cb(e,t){if(e.childElementCount===0){e.textContent=t;return}let n=!1;for(let r of Array.from(e.childNodes))r.nodeType===Node.TEXT_NODE&&(r.nodeValue=n?"":t,n=!0);n||e.insertBefore(e.ownerDocument.createTextNode(t),e.firstChild)}function db(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function fb(e,t){let n=new Set,r=db(e);r&&n.add(r);for(let i of Array.from(e.querySelectorAll("[data-composition-id]")))n.add(i);for(let i of n){let o=Fa(i,t);for(let[a,l]of Object.entries(o)){let s=ub(l);s!==null&&i instanceof HTMLElement&&i.style.setProperty(`--${a}`,lb(s))}}}function Na(e){let t=new Map;fb(e,t);for(let n of Array.from(e.querySelectorAll("[data-var-src]"))){let r=n.getAttribute("data-var-src")?.trim();if(!r)continue;if(!yd.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(yd).join("/")}.`);continue}let i=sb(Fa(n,t)[r]);if(i!==null){if(!Ma(i)){console.warn(`[hyperframes] Ignoring data-var-src="${r}": unsafe URL protocol.`);continue}n.setAttribute("src",i)}}for(let n of Array.from(e.querySelectorAll("[data-var-text]"))){let r=n.getAttribute("data-var-text")?.trim();if(!r)continue;let i=Fa(n,t)[r];fi(i)&&cb(n,String(i))}}var it=new Map,mb="data-hf-color-grading-canvas",pb="__hf_color_grading_canvas__";function Md(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{r instanceof HTMLElement&&(r.hasAttribute(Vr)||r.setAttribute(Vr,r.style.opacity))},n=r=>{if(r instanceof Element){r.matches("video, img")&&t(r);for(let i of r.querySelectorAll("video, img"))t(i)}};n(e),new MutationObserver(r=>{for(let i of r)for(let o of i.addedNodes)n(o)}).observe(e,{childList:!0,subtree:!0})}var hb=16,gb=4,rn={enabled:!1,position:.5,softness:0,lineWidth:2},La=["#000000","#ffffff"],bb=["#1a1a1a","#f5f5dc"],sr=3,xb=sr-1,yb=5,Da=`${Ke}.0`,vd=`${Ke-1}.0`,vb=`${sr}.0`,Sb=`${(xb+.5)/sr}`;function mi(e){let t=e.getAttribute(Fn);return t==null?null:cu(t,di(e))}var Ab=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Eb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform sampler2D u_bloomSource;","uniform sampler2D u_kuwaharaSource;","uniform sampler2D u_lut;","uniform sampler2D u_advanced;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_bloomReady;","uniform float u_kuwaharaReady;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform vec3 u_shadowWheel;","uniform vec3 u_midtoneWheel;","uniform vec3 u_highlightWheel;","uniform float u_rgbCurvesEnabled;","uniform float u_hueCurvesEnabled;","uniform float u_secondaryCount;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_vibrance;","uniform float u_saturation;","uniform float u_vignette;","uniform float u_vignetteMidpoint;","uniform float u_vignetteRoundness;","uniform float u_vignetteFeather;","uniform float u_grain;","uniform float u_grainSize;","uniform float u_grainRoughness;","uniform float u_grainSeed;","uniform float u_effectTime;","uniform float u_blur;","uniform float u_bloom;","uniform float u_kuwahara;","uniform float u_pixelate;","uniform float u_chromaBleed;","uniform float u_tapeDamage;","uniform float u_tapeTracking;","uniform float u_tapeNoise;","uniform float u_tapeSpeed;","uniform float u_filmArtifacts;","uniform float u_halftone;","uniform float u_halftoneSize;","uniform float u_twoInkPrint;","uniform float u_twoInkPrintSize;","uniform float u_ascii;","uniform float u_asciiSize;","uniform float u_asciiInvert;","uniform float u_asciiStyle;","uniform float u_asciiColor;","uniform float u_asciiRotation;","uniform float u_dither;","uniform float u_ditherSize;","uniform float u_monoScreen;","uniform float u_monoScreenSize;","uniform float u_monoScreenAngle;","uniform float u_monoScreenSpread;","uniform float u_monoScreenShape;","uniform float u_monoScreenInvert;","uniform float u_scanlines;","uniform float u_scanlineCount;","uniform float u_scanlineSoftness;","uniform float u_chromaticAberration;","uniform float u_chromaticAngle;","uniform float u_crtCurvature;","uniform float u_digitalGlitch;","uniform float u_digitalGlitchColorSplit;","uniform float u_digitalGlitchLineTear;","uniform float u_digitalGlitchPixelate;","uniform float u_digitalGlitchBlockAmount;","uniform float u_digitalGlitchBlockDisplacement;","uniform float u_digitalGlitchBlockOpacity;","uniform float u_digitalGlitchSpeed;","uniform float u_engraving;","uniform float u_engravingSpacing;","uniform float u_engravingMinThickness;","uniform float u_engravingMaxThickness;","uniform float u_engravingAngle;","uniform float u_engravingContrast;","uniform float u_engravingSharpness;","uniform float u_engravingWave;","uniform float u_engravingWaveFrequency;","uniform float u_crosshatch;","uniform float u_crosshatchSpacing;","uniform float u_crosshatchThickness;","uniform float u_crosshatchAngle;","uniform float u_crosshatchContrast;","uniform float u_crosshatchEdges;","uniform float u_crosshatchLineWeight;","uniform float u_crosshatchWave;","uniform float u_crosshatchWaveFrequency;","uniform float u_paletteSize;","uniform vec3 u_palette0;","uniform vec3 u_palette1;","uniform vec3 u_palette2;","uniform vec3 u_palette3;","uniform vec3 u_palette4;","uniform vec3 u_palette5;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","const float PI = 3.14159265359;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","float bt601Luma(vec3 c){ return dot(c, vec3(0.299, 0.587, 0.114)); }","float grainHash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }","float digitalHash(vec2 p){"," vec2 q = mod(floor(p), 251.0);"," float x = mod(q.x * q.x * 157.0 + q.x * 89.0, 251.0);"," float y = mod(q.y * q.y * 113.0 + q.y * 47.0, 251.0);"," float xy = mod(q.x * q.y * 71.0, 251.0);"," return mod(x + y + xy + 19.0, 251.0) / 251.0;","}","float colorSaturation(vec3 c){ return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b); }","vec2 clampUv(vec2 uv){ return clamp(uv, vec2(0.0), vec2(1.0)); }","vec2 applyCrtWarp(vec2 uv){"," vec2 centered = uv * 2.0 - 1.0;"," float curvature = clamp(u_crtCurvature, 0.0, 1.0) * 0.5;"," float dist = dot(centered, centered);"," centered *= 1.0 + curvature * dist;"," return centered * 0.5 + 0.5;","}","vec4 sampleSource(vec2 uv){ return texture2D(u_source, clampUv(uv)); }","vec4 sampleBlur(vec2 uv){ return texture2D(u_blurSource, clampUv(uv)); }","vec3 sampleBloom(vec2 uv){ return texture2D(u_bloomSource, clampUv(uv)).rgb; }","vec3 sampleKuwahara(vec2 uv){"," vec2 displayUv = uv * u_uvScale + u_uvOffset;"," return texture2D(u_kuwaharaSource, clampUv(displayUv)).rgb;","}","vec4 samplePrepared(vec2 uv){"," vec4 base = sampleSource(uv);"," float blur = clamp(u_blur, 0.0, 1.0);"," if (blur > 0.0 && u_blurReady > 0.5) base = mix(base, sampleBlur(uv), blur);"," float kuwahara = clamp(u_kuwahara, 0.0, 1.0);"," if (kuwahara > 0.0 && u_kuwaharaReady > 0.5) {"," base.rgb = mix(base.rgb, sampleKuwahara(uv), kuwahara);"," }"," return base;","}","float tapeTrackingBand(float y, float center, float width){"," float offset = fract(y - center + 0.5) - 0.5;"," float triangle = max(0.0, 1.0 - abs(offset) / max(width, 0.0001));"," return triangle * triangle * (3.0 - 2.0 * triangle);","}","vec4 sampleMedia(vec2 uv){"," float pixel = clamp(u_pixelate, 0.0, 1.0);"," vec2 sampleUv = uv;"," if (pixel > 0.0) {"," float blockSize = mix(1.0, 48.0, pixel);"," vec2 cells = max(u_resolution / blockSize, vec2(1.0));"," sampleUv = (floor(clamp(uv, vec2(0.0), vec2(0.999999)) * cells) + 0.5) / cells;"," }"," float tapeDamage = clamp(u_tapeDamage, 0.0, 1.0);"," float tapeTracking = clamp(u_tapeTracking, 0.0, 1.0);"," float tapeNoise = clamp(u_tapeNoise, 0.0, 1.0);"," float tapeTime = u_effectTime * mix(0.0, 2.0, clamp(u_tapeSpeed, 0.0, 1.0));"," float tapeFrame = floor(tapeTime * 60.0);"," float tapeLine = floor(sampleUv.y * u_resolution.y * 0.5);"," float lineJitter = (digitalHash(vec2(tapeLine, floor(tapeFrame * 0.5))) - 0.5) * 1.8 * tapeNoise;"," float slowWobble = sin(sampleUv.y * 32.0 + tapeTime * 2.6) * 0.55;"," float headSwitch = smoothstep(0.88, 1.0, sampleUv.y) * sin(sampleUv.y * 240.0 + tapeTime * 8.0) * 4.0;"," float trackingShift = tapeTrackingBand(sampleUv.y, fract(0.08 + tapeTime * 0.083), 0.035);"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.28 + tapeTime * 0.061), 0.03) * 0.8;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.5 + tapeTime * 0.047), 0.04) * 0.75;"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.72 + tapeTime * 0.037), 0.028) * 0.65;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.89 + tapeTime * 0.029), 0.032) * 0.55;"," trackingShift *= tapeTracking * 48.0;"," float tapeShift = (lineJitter + slowWobble + headSwitch + trackingShift) * tapeDamage;"," float texelX = 1.0 / max(u_resolution.x * max(u_uvScale.x, 0.00001), 1.0);"," vec2 tapeUv = sampleUv + vec2(tapeShift * texelX, 0.0);"," vec4 base = samplePrepared(tapeUv);"," if (tapeDamage > 0.0) {"," vec2 lumaStep = vec2(texelX * mix(1.0, 3.5, tapeDamage), 0.0);"," vec3 leftTape = samplePrepared(tapeUv - lumaStep).rgb;"," vec3 rightTape = samplePrepared(tapeUv + lumaStep).rgb;"," float tapeLuma = (bt601Luma(leftTape) + bt601Luma(base.rgb) * 2.0 + bt601Luma(rightTape)) * 0.25;"," vec3 centerChroma = base.rgb - vec3(bt601Luma(base.rgb));"," vec3 tapeColor = vec3(tapeLuma) + centerChroma;"," vec3 ghost = samplePrepared(tapeUv - vec2(texelX * 12.0, 0.0)).rgb;"," tapeColor = mix(tapeColor, ghost, 0.045 * tapeDamage);"," float fineNoise = digitalHash(floor(gl_FragCoord.xy) + vec2(tapeFrame * 17.0, tapeFrame * 3.0)) - 0.5;"," float band = digitalHash(vec2(floor(sampleUv.y * 92.0), floor(tapeFrame / 3.0)));"," float dropout = smoothstep(0.985, 1.0, band) * (digitalHash(vec2(floor(sampleUv.x * 18.0), tapeLine)) - 0.5);"," tapeColor += (fineNoise * 0.035 + dropout * 0.12) * tapeDamage * tapeNoise;"," base.rgb = mix(base.rgb, clamp(tapeColor, 0.0, 1.0), tapeDamage);"," }"," float chromaBleed = clamp(u_chromaBleed, 0.0, 1.0);"," if (chromaBleed > 0.0) {"," float radius = mix(1.0, 4.0, chromaBleed);"," vec2 stepUv = vec2(texelX * radius, 0.0);"," vec3 c0 = base.rgb;"," vec3 c1 = samplePrepared(tapeUv - stepUv).rgb;"," vec3 c2 = samplePrepared(tapeUv + stepUv).rgb;"," vec3 c3 = samplePrepared(tapeUv - stepUv * 2.0).rgb;"," vec3 c4 = samplePrepared(tapeUv + stepUv * 2.0).rgb;"," float centerLuma = lumaOf(base.rgb);"," vec3 blurredChroma = ((c0 - vec3(lumaOf(c0))) * 6.0 + (c1 - vec3(lumaOf(c1))) * 4.0 + (c2 - vec3(lumaOf(c2))) * 4.0 + (c3 - vec3(lumaOf(c3))) + (c4 - vec3(lumaOf(c4)))) / 16.0;"," base.rgb = mix(base.rgb, clamp(vec3(centerLuma) + blurredChroma, 0.0, 1.0), chromaBleed);"," }"," return base;","}","vec4 sampleChromaticMedia(vec2 uv, vec4 center){"," float amount = clamp(u_chromaticAberration, 0.0, 1.0);"," if (amount <= 0.0) return center;"," float angle = clamp(u_chromaticAngle, 0.0, 1.0) * PI * 2.0;"," vec2 offset = vec2(cos(angle), sin(angle)) * amount * 0.02;"," vec4 positive = sampleMedia(uv + offset);"," vec4 negative = sampleMedia(uv - offset);"," vec3 split = vec3(positive.r, center.g, negative.b);"," return vec4(split, center.a);","}","vec3 sampleDigitalSplit(vec2 uv, vec2 block, float time, float amount){"," float split = amount * 0.06;"," float direction = digitalHash(block * 0.4 + vec2(floor(time * 3.7), floor(time * 5.3)));"," vec2 axis = direction > 0.66 ? vec2(1.0, 0.0) : direction > 0.33 ? vec2(0.0, 1.0) : vec2(0.7071);"," vec4 center = sampleMedia(uv);"," return vec3(sampleMedia(uv + axis * split).r, center.g, sampleMedia(uv - axis * split).b);","}","vec3 applyDigitalGlitch(vec2 uv, vec3 source){"," float amount = clamp(u_digitalGlitch, 0.0, 1.0);"," if (amount <= 0.0) return source;"," float colorSplit = clamp(u_digitalGlitchColorSplit, 0.0, 1.0) * 2.0;"," float lineTear = clamp(u_digitalGlitchLineTear, 0.0, 1.0) * 2.0;"," float pixelate = clamp(u_digitalGlitchPixelate, 0.0, 1.0) * 2.0;"," float blockAmount = clamp(u_digitalGlitchBlockAmount, 0.0, 1.0);"," float blockDisplacement = clamp(u_digitalGlitchBlockDisplacement, 0.0, 1.0) * 2.0;"," float blockOpacity = clamp(u_digitalGlitchBlockOpacity, 0.0, 1.0);"," float speed = clamp(u_digitalGlitchSpeed, 0.0, 1.0) * 2.0;"," float time = u_effectTime * speed;"," float blockCount = 8.0 + blockAmount * 60.0;"," vec2 block = floor(uv * blockCount);"," float randomA = digitalHash(block + vec2(floor(time * 7.3), floor(time * 11.1)));"," float randomB = digitalHash(block * 0.7 + vec2(17.3 + floor(time * 6.6), 29.1));"," float randomC = digitalHash(block + vec2(floor(time * 5.7) * 13.0, 41.0));"," float randomD = digitalHash(block * 1.3 + vec2(7.0, floor(time * 3.2) * 7.0));"," vec2 displaced = uv;"," if (blockDisplacement > 0.0 && blockOpacity > 0.0) {"," float threshold = 1.0 - blockDisplacement * 0.4;"," if (randomA > threshold) {"," displaced += vec2((randomB - 0.5) * blockDisplacement * 0.5, (randomC - 0.5) * blockDisplacement * 0.3);"," }"," if (randomD > 0.92 && blockDisplacement > 0.5) {"," displaced.x += (digitalHash(vec2(block.y, floor(time * 8.0))) - 0.5) * blockDisplacement;"," }"," displaced = mix(uv, displaced, blockOpacity);"," }"," if (lineTear > 0.0) {"," float row = floor(uv.y * (50.0 + lineTear * 150.0));"," float tearA = digitalHash(vec2(row * 7.3 + floor(time * 12.0 + row * 0.1) * 3.7, 13.0));"," float tearB = digitalHash(vec2(row * 13.7 + floor(time * 8.3) * 5.1, 31.0));"," if (tearA > 1.0 - lineTear * 0.5) displaced.x += (tearB - 0.5) * lineTear * 0.4;"," if (tearB > 0.95 && lineTear > 0.3) displaced.x += (tearA - 0.5) * lineTear * 0.8;"," }"," if (pixelate > 0.0) {"," float pixelRandom = digitalHash(block * 0.5 + vec2(floor(time * 4.9), 53.0));"," if (pixelRandom > 1.0 - pixelate * 0.35) {"," float cells = 4.0 + (1.0 - pixelRandom) * pixelate * 40.0;"," displaced = (floor(clampUv(displaced) * cells) + 0.5) / cells;"," }"," }"," displaced = clampUv(displaced);"," vec3 glitch = sampleDigitalSplit(displaced, block, time, colorSplit);"," if (blockDisplacement > 0.2 && blockOpacity > 0.0) {"," float corruption = digitalHash(block * 1.1 + vec2(floor(time * 11.9), 67.0));"," vec3 changed = glitch;"," if (corruption > 0.9) changed = 1.0 - glitch;"," else if (corruption > 0.85) changed = corruption > 0.875 ? glitch.gbr : glitch.brg;"," else if (corruption > 0.8) {"," float channel = digitalHash(block + vec2(73.0));"," if (channel > 0.66) changed.r = min(changed.r * 2.0, 1.0);"," else if (channel > 0.33) changed.g = min(changed.g * 2.0, 1.0);"," else changed.b = min(changed.b * 2.0, 1.0);"," }"," glitch = mix(glitch, changed, blockOpacity);"," }"," if (blockOpacity > 0.0) {"," float flash = digitalHash(block * 0.8 + vec2(floor(time * 14.7), 83.0));"," vec3 flashed = flash > 0.97 ? min(glitch * 1.8, vec3(1.0)) : flash > 0.94 ? glitch * 0.3 : glitch;"," glitch = mix(glitch, flashed, blockOpacity * 0.6);"," }"," if (lineTear > 0.1) {"," float interference = pow(sin(uv.y * (300.0 + randomA * 200.0) + time * 30.0) * 0.5 + 0.5, 6.0);"," glitch -= interference * 0.08 * lineTear;"," }"," return mix(source, clamp(glitch, 0.0, 1.0), amount);","}","float dustMask(vec2 uv, float frameBucket){"," vec2 grid = vec2(128.0, 72.0);"," vec2 cell = floor(uv * grid);"," vec2 local = fract(uv * grid) - 0.5;"," float chance = grainHash(cell + frameBucket * 19.13);"," float radius = mix(0.05, 0.34, grainHash(cell + 7.1));"," return step(0.9975, chance) * (1.0 - smoothstep(radius, radius + 0.08, length(local)));","}","float screenDot(vec2 p, float ink, float angle, float sharpness){"," float c = cos(angle);"," float s = sin(angle);"," vec2 q = mat2(c, -s, s, c) * p;"," vec2 d = fract(q) - 0.5;"," float radius = sqrt(clamp(ink, 0.0, 1.0)) * 0.68;"," float edge = mix(0.16, 0.025, sharpness);"," return 1.0 - smoothstep(radius - edge, radius + edge, length(d));","}","vec3 paletteColor(float index);","float monoScreenMask(vec2 local, float radius, float shape, float softness){"," vec2 centered = local - 0.5;"," float distanceToInk = length(centered);"," if (shape > 0.5 && shape < 1.5) distanceToInk = max(abs(centered.x), abs(centered.y));"," if (shape > 1.5 && shape < 2.5) distanceToInk = abs(centered.x) + abs(centered.y);"," if (shape > 2.5 && shape < 3.5) distanceToInk = max(abs(centered.x) * 0.86 + centered.y * 0.5, -centered.y);"," if (shape > 3.5) distanceToInk = abs(centered.y);"," float shapeRadius = shape > 3.5 ? radius * 0.45 : radius;"," return 1.0 - smoothstep(shapeRadius, shapeRadius + softness, distanceToInk);","}","vec3 applyMonoScreen(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float invert = step(0.5, u_monoScreenInvert);"," float coverage = mix(1.0 - lumaOf(source), lumaOf(source), invert);"," coverage = pow(clamp(coverage, 0.0, 1.0), mix(1.7, 0.58, clamp(u_monoScreenSpread, 0.0, 1.0)));"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellPx = mix(4.0, 18.0, clamp(u_monoScreenSize, 0.0, 1.0)) * scale;"," float angle = clamp(u_monoScreenAngle, 0.0, 1.0) * PI * 0.5;"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 point = mat2(cosine, -sine, sine, cosine) * gl_FragCoord.xy / max(cellPx, 1.0);"," float radius = sqrt(coverage) * 0.68;"," float inkMask = monoScreenMask(fract(point), radius, floor(u_monoScreenShape + 0.5), 0.035);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","vec3 applyEngraving(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(3.0, 20.0, clamp(u_engravingSpacing, 0.0, 1.0));"," float minThickness = mix(0.0, 2.0, clamp(u_engravingMinThickness, 0.0, 1.0));"," float maxThickness = mix(1.0, 8.0, clamp(u_engravingMaxThickness, 0.0, 1.0));"," float angle = clamp(u_engravingAngle, 0.0, 1.0) * PI;"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(gl_FragCoord.xy, alongAxis);"," float across = dot(gl_FragCoord.xy, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_engravingWaveFrequency, 0.0, 1.0));"," float wave = sin(along * frequency * 0.01);"," across += wave * clamp(u_engravingWave, 0.0, 1.0) * 3.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float lineDistance = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float contrast = mix(0.5, 2.0, clamp(u_engravingContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," float variation = mix(0.88, 1.12, digitalHash(vec2(lineIndex, 73.0)));"," float thickness = mix(minThickness, maxThickness, darkness) * variation;"," float edge = mix(1.0, 0.3, clamp(u_engravingSharpness, 0.0, 1.0));"," float inkMask = 1.0 - smoothstep(max(thickness * 0.5 - edge, 0.0), thickness * 0.5 + edge, lineDistance);"," inkMask *= smoothstep(0.015, 0.12, darkness);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","float crosshatchLine(vec2 pixel, float angle, float spacing, float thickness, float seed){"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(pixel, alongAxis);"," float across = dot(pixel, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_crosshatchWaveFrequency, 0.0, 1.0));"," across += sin(along * frequency * 0.02 + u_effectTime + seed) * clamp(u_crosshatchWave, 0.0, 1.0) * 5.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float distanceToLine = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float variation = mix(1.0, 0.5 + digitalHash(vec2(lineIndex, seed)), clamp(u_crosshatchLineWeight, 0.0, 1.0));"," float halfWidth = thickness * variation * 0.5;"," return 1.0 - smoothstep(max(halfWidth - 0.5, 0.0), halfWidth + 0.5, distanceToLine);","}","float crosshatchEdge(vec2 uv){"," vec2 texel = 1.0 / max(u_resolution * u_uvScale, vec2(1.0));"," float tl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, -1.0)).rgb);"," float tc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, -1.0)).rgb);"," float tr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, -1.0)).rgb);"," float ml = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 0.0)).rgb);"," float mr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 0.0)).rgb);"," float bl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 1.0)).rgb);"," float bc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, 1.0)).rgb);"," float br = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 1.0)).rgb);"," float gx = -tl - 2.0 * ml - bl + tr + 2.0 * mr + br;"," float gy = -tl - 2.0 * tc - tr + bl + 2.0 * bc + br;"," return length(vec2(gx, gy));","}","vec3 applyCrosshatch(vec2 uv, vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(5.0, 30.0, clamp(u_crosshatchSpacing, 0.0, 1.0));"," float thickness = mix(1.0, 5.0, clamp(u_crosshatchThickness, 0.0, 1.0));"," float baseAngle = -clamp(u_crosshatchAngle, 0.0, 1.0) * PI;"," float contrast = mix(0.5, 2.0, clamp(u_crosshatchContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," vec3 result = paper;"," float layer = crosshatchLine(gl_FragCoord.xy, baseAngle, spacing, thickness, 1.0) * smoothstep(0.2, 0.4, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.5, spacing * 0.95, thickness * 0.9, 2.0) * smoothstep(0.4, 0.6, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.25, spacing * 0.9, thickness * 0.8, 3.0) * smoothstep(0.6, 0.8, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle - PI * 0.25, spacing * 0.85, thickness * 0.7, 4.0) * smoothstep(0.75, 0.9, darkness);"," result = mix(result, ink, layer);"," result = mix(result, ink, smoothstep(0.9, 1.0, darkness) * 0.8);"," float edgeStrength = mix(0.0, 2.0, clamp(u_crosshatchEdges, 0.0, 1.0));"," float edge = smoothstep(0.1, 0.3, crosshatchEdge(uv)) * edgeStrength;"," result = mix(result, ink, clamp(edge, 0.0, 1.0));"," return mix(source, result, amount);","}","vec3 applyHalftone(vec3 source, float amount){"," if (amount <= 0.0) return source;"," vec3 cmy = 1.0 - source;"," float k = min(cmy.r, min(cmy.g, cmy.b));"," vec3 inks = max(cmy - vec3(k * 0.72), 0.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(5.0, 14.0, clamp(u_halftoneSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float cyan = screenDot(p, inks.r, 0.261799, 0.78);"," float magenta = screenDot(p, inks.g, 1.308997, 0.78);"," float yellow = screenDot(p, inks.b, 0.0, 0.78);"," float blackInk = screenDot(p, k, 0.785398, 0.82);"," vec3 printColor = vec3(0.975, 0.962, 0.925);"," printColor *= mix(vec3(1.0), vec3(0.05, 0.79, 0.86), cyan);"," printColor *= mix(vec3(1.0), vec3(0.91, 0.08, 0.48), magenta);"," printColor *= mix(vec3(1.0), vec3(0.98, 0.83, 0.08), yellow);"," printColor *= mix(vec3(1.0), vec3(0.035), blackInk * 0.92);"," return mix(source, printColor, amount);","}","vec3 applyTwoInkPrint(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float sourceLuma = lumaOf(source);"," float darkness = 1.0 - sourceLuma;"," float warmBias = clamp(source.r - (source.g + source.b) * 0.5, -0.35, 0.35);"," float coolBias = clamp((source.g + source.b) * 0.5 - source.r, -0.35, 0.35);"," float redTone = smoothstep(0.08, 0.72, darkness) * (1.0 - 0.68 * smoothstep(0.66, 1.0, darkness));"," float tealTone = smoothstep(0.30, 0.92, darkness);"," float redCoverage = clamp(redTone + warmBias * 1.35 - coolBias * 0.35, 0.0, 1.0);"," float tealCoverage = clamp(tealTone + coolBias * 1.1 - warmBias * 0.45, 0.0, 1.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(4.5, 12.0, clamp(u_twoInkPrintSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float redDot = screenDot(p, redCoverage, 0.261799, 0.84);"," float tealDot = screenDot(p + vec2(0.12, -0.08), tealCoverage, 1.308997, 0.84);"," float paperNoise = grainHash(floor(gl_FragCoord.xy * 0.5)) - 0.5;"," vec3 paper = vec3(0.955, 0.910, 0.795) + paperNoise * 0.018;"," vec3 vermilion = vec3(0.88, 0.13, 0.075);"," vec3 teal = vec3(0.035, 0.285, 0.355);"," vec3 overprint = vec3(0.045, 0.055, 0.052);"," vec3 printColor = paper * (1.0 - redDot) * (1.0 - tealDot);"," printColor += vermilion * redDot * (1.0 - tealDot);"," printColor += teal * (1.0 - redDot) * tealDot;"," printColor += overprint * redDot * tealDot;"," return mix(source, clamp(printColor, 0.0, 1.0), amount);","}","vec3 paletteColor(float index){"," if (index < 0.5) return u_palette0;"," if (index < 1.5) return u_palette1;"," if (index < 2.5) return u_palette2;"," if (index < 3.5) return u_palette3;"," if (index < 4.5) return u_palette4;"," return u_palette5;","}","float bayer4(vec2 point){"," vec2 cell = mod(floor(point), 4.0);"," if (cell.y < 0.5) {"," if (cell.x < 0.5) return 0.5 / 16.0;"," if (cell.x < 1.5) return 8.5 / 16.0;"," if (cell.x < 2.5) return 2.5 / 16.0;"," return 10.5 / 16.0;"," }"," if (cell.y < 1.5) {"," if (cell.x < 0.5) return 12.5 / 16.0;"," if (cell.x < 1.5) return 4.5 / 16.0;"," if (cell.x < 2.5) return 14.5 / 16.0;"," return 6.5 / 16.0;"," }"," if (cell.y < 2.5) {"," if (cell.x < 0.5) return 3.5 / 16.0;"," if (cell.x < 1.5) return 11.5 / 16.0;"," if (cell.x < 2.5) return 1.5 / 16.0;"," return 9.5 / 16.0;"," }"," if (cell.x < 0.5) return 15.5 / 16.0;"," if (cell.x < 1.5) return 7.5 / 16.0;"," if (cell.x < 2.5) return 13.5 / 16.0;"," return 5.5 / 16.0;","}","float standardAsciiSample(float brightness, vec2 grid){"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.3) return grid.x == 2.0 && (grid.y == 2.0 || grid.y == 4.0) ? 1.0 : 0.0;"," if (brightness < 0.4) return (grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) {"," bool cross = (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0);"," bool diagonals = (grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0);"," return cross || diagonals ? 1.0 : 0.0;"," }"," if (brightness < 0.6) {"," bool ring = ((grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y == 3.0);"," return ring ? 1.0 : 0.0;"," }"," bool outline = ((grid.y == 1.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 0.0 || grid.x == 4.0) && grid.y >= 2.0 && grid.y <= 4.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y >= 1.0 && grid.y <= 5.0);"," if (brightness < 0.7) return outline ? 1.0 : 0.0;"," if (brightness < 0.8) {"," bool slash = abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.x >= 1.0 && grid.x <= 3.0;"," return outline || slash ? 1.0 : 0.0;"," }"," if (brightness < 0.9) {"," bool loops = ((grid.y == 1.0 || grid.y == 3.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0));"," return loops ? 1.0 : 0.0;"," }"," return 1.0;","}","float asciiStyleSample(float style, float brightness, vec2 uv){"," vec2 grid = floor(uv * vec2(5.0, 7.0));"," if (style < 0.5) return standardAsciiSample(brightness, grid);"," if (style < 1.5) {"," float checker = mod(grid.x + grid.y, 2.0);"," float ruled = mod(grid.x, 2.0) == 0.0 || mod(grid.y, 2.0) == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return checker == 0.0 ? 0.5 : 0.0;"," if (brightness < 0.375) return ruled * 0.6;"," if (brightness < 0.5) return checker == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return ruled > 0.5 ? 1.0 : 0.3;"," if (brightness < 0.75) return checker == 0.0 ? 1.0 : 0.7;"," if (brightness < 0.875) return ruled > 0.5 ? 1.0 : 0.85;"," return 1.0;"," }"," if (style < 2.5) {"," if (brightness < 0.14) return 0.0;"," if (brightness < 0.28) return grid.x == 2.0 && grid.y == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.42) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.56) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.7) return (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0) ? 1.0 : 0.0;"," if (brightness < 0.84) return abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.y >= 2.0 && grid.y <= 4.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 3.5) return grid.y >= 6.0 - brightness * 7.0 ? 1.0 : 0.0;"," if (style < 4.5) {"," vec2 dots = floor(uv * vec2(2.0, 4.0));"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return dots.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return dots.y >= 2.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return dots.y >= 1.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return dots.y >= 1.0 || dots.x == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return 1.0;"," if (brightness < 0.875) return mod(grid.x + grid.y, 2.0) < 1.5 ? 1.0 : 0.7;"," return 1.0;"," }"," if (style < 5.5) {"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return grid.x == 2.0 && grid.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return grid.x + grid.y == 5.0 || grid.x + grid.y == 6.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return grid.x == 2.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return abs(grid.x - grid.y / 1.4) < 0.7 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.875) return grid.x == 2.0 || grid.y == 3.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 6.5) {"," bool top = grid.y == 0.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool topLeft = grid.x == 1.0 && grid.y <= 3.0;"," bool topRight = grid.x == 3.0 && grid.y <= 3.0;"," bool middle = grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool bottomLeft = grid.x == 1.0 && grid.y >= 3.0;"," bool bottomRight = grid.x == 3.0 && grid.y >= 3.0;"," bool bottom = grid.y == 6.0 && grid.x >= 1.0 && grid.x <= 3.0;"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.3) return top || topRight || middle || bottomLeft || bottom ? 1.0 : 0.0;"," if (brightness < 0.4) return top || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.5) return topLeft || middle || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.6) return top || topLeft || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.7) return top || topLeft || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.8) return top || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.9) return top || topLeft || topRight || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," return top || topLeft || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," }"," float slash = grid.x - grid.y;"," float backslash = grid.x + grid.y;"," if (brightness < 0.16) return 0.0;"," if (brightness < 0.33) return mod(slash, 3.0) < 0.5 ? 1.0 : 0.0;"," if (brightness < 0.5) return mod(slash, 2.0) < 0.5 ? 1.0 : 0.0;"," bool diagonalA = mod(slash, 2.0) < 0.5;"," bool diagonalB = mod(backslash, 2.0) < 0.5;"," if (brightness < 0.66) return diagonalA || diagonalB ? 1.0 : 0.0;"," if (brightness < 0.83) return mod(slash, 1.5) < 0.5 || mod(backslash, 1.5) < 0.5 ? 1.0 : 0.2;"," return mod(slash, 1.0) < 0.6 || mod(backslash, 1.0) < 0.6 ? 1.0 : 0.5;","}","vec3 rgbToHsv(vec3 color){"," float maximum = max(max(color.r, color.g), color.b);"," float minimum = min(min(color.r, color.g), color.b);"," float delta = maximum - minimum;"," float hue = 0.0;"," if (delta > 0.00001) {"," if (maximum == color.r) hue = mod((color.g - color.b) / delta, 6.0);"," else if (maximum == color.g) hue = (color.b - color.r) / delta + 2.0;"," else hue = (color.r - color.g) / delta + 4.0;"," hue = fract(hue / 6.0);"," }"," return vec3(hue, maximum > 0.00001 ? delta / maximum : 0.0, maximum);","}","vec3 hsvToRgb(vec3 color){"," vec3 bands = abs(fract(color.xxx + vec3(0.0, 0.6666667, 0.3333333)) * 6.0 - 3.0);"," return color.z * mix(vec3(1.0), clamp(bands - 1.0, 0.0, 1.0), color.y);","}","vec4 sampleAdvancedCurve(float coordinate, float row){",` float position = clamp(coordinate, 0.0, 1.0) * ${vd};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${vd});`,` float y = (row + 0.5) / ${vb};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Da}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Da}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Da}, ${Sb}));`,"}","vec3 wheelDirection(float hue){"," vec3 direction = hsvToRgb(vec3(fract(hue), 1.0, 1.0));"," direction -= vec3(lumaOf(direction));"," return direction / max(max(max(abs(direction.r), abs(direction.g)), abs(direction.b)), 0.0001);","}","vec3 applyTonalWheels(vec3 color){"," float luma = lumaOf(color);"," float shadows = 1.0 - smoothstep(0.0, 0.6, luma);"," float highlights = smoothstep(0.4, 1.0, luma);"," float midtones = max(0.0, 1.0 - shadows - highlights);"," float total = max(shadows + midtones + highlights, 0.0001);"," vec3 weights = vec3(shadows, midtones, highlights) / total;"," color += wheelDirection(u_shadowWheel.x) * u_shadowWheel.y * weights.x * 0.18;"," color += wheelDirection(u_midtoneWheel.x) * u_midtoneWheel.y * weights.y * 0.18;"," color += wheelDirection(u_highlightWheel.x) * u_highlightWheel.y * weights.z * 0.18;"," color += u_shadowWheel.z * weights.x * 0.25;"," color += u_midtoneWheel.z * weights.y * 0.25;"," color += u_highlightWheel.z * weights.z * 0.25;"," return color;","}","vec3 applyRgbCurves(vec3 color){"," if (u_rgbCurvesEnabled < 0.5) return color;"," vec3 master = vec3("," sampleAdvancedCurve(color.r, 0.0).a,"," sampleAdvancedCurve(color.g, 0.0).a,"," sampleAdvancedCurve(color.b, 0.0).a"," );"," return vec3("," sampleAdvancedCurve(master.r, 0.0).r,"," sampleAdvancedCurve(master.g, 0.0).g,"," sampleAdvancedCurve(master.b, 0.0).b"," );","}","float decodeSigned(float value){ return (value * 255.0 - 128.0) / 127.0; }","vec3 applyHueCurves(vec3 color){"," if (u_hueCurvesEnabled < 0.5) return color;"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," vec3 curves = sampleAdvancedCurve(hsv.x, 1.0).rgb;"," float originalLuma = lumaOf(color);"," hsv.x = fract(hsv.x + decodeSigned(curves.r) * 0.5);"," hsv.y = clamp(hsv.y * max(0.0, 1.0 + decodeSigned(curves.g)), 0.0, 1.0);"," vec3 shifted = hsvToRgb(hsv);"," shifted += vec3(originalLuma - lumaOf(shifted) + decodeSigned(curves.b));"," return shifted;","}","float softRangeMask(float value, float minimum, float maximum, float softness){"," if (value < minimum) {"," if (softness <= 0.0) return 0.0;"," return smoothstep(minimum - softness, minimum, value);"," }"," if (value > maximum) {"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(maximum, maximum + softness, value);"," }"," return 1.0;","}","float hueRangeMask(float hue, float saturation, vec3 key){"," float distance = abs(fract(hue - key.x + 0.5) - 0.5) * 360.0;"," float range = key.y * 180.0;"," float softness = key.z * 180.0;"," if (range < 179.999 && saturation < 0.001) return 0.0;"," if (distance <= range) return 1.0;"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(range, range + softness, distance);","}","vec3 applySecondary(vec3 color, float index){"," float base = index * 5.0;"," vec4 hueKey = advancedConfig(base);"," vec4 saturationKey = advancedConfig(base + 1.0);"," vec4 lumaKey = advancedConfig(base + 2.0);"," vec4 correction = advancedConfig(base + 3.0);"," vec4 tintCorrection = advancedConfig(base + 4.0);"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," float luma = lumaOf(color);"," float mask = hueRangeMask(hsv.x, hsv.y, hueKey.rgb);"," mask *= softRangeMask(hsv.y, saturationKey.x, saturationKey.y, saturationKey.z * 0.5);"," mask *= softRangeMask(luma, lumaKey.x, lumaKey.y, lumaKey.z * 0.5);"," if (mask <= 0.0) return color;"," hsv.x = fract(hsv.x + decodeSigned(correction.x) * 0.5);"," vec3 corrected = hsvToRgb(hsv);"," float correctedLuma = lumaOf(corrected);"," corrected = mix(vec3(correctedLuma), corrected, max(0.0, 1.0 + decodeSigned(correction.y)));"," corrected += vec3(decodeSigned(correction.z));"," float temperature = decodeSigned(correction.w);"," float tint = decodeSigned(tintCorrection.x);"," corrected.r += temperature * 0.08 + tint * 0.04;"," corrected.b -= temperature * 0.08 - tint * 0.04;"," corrected.g -= tint * 0.08;"," return mix(color, corrected, mask);","}","vec3 applyAdvancedGrade(vec3 color){"," color = applyTonalWheels(color);"," color = applyRgbCurves(color);"," color = applyHueCurves(color);"," if (u_secondaryCount > 0.5) color = applySecondary(color, 0.0);"," if (u_secondaryCount > 1.5) color = applySecondary(color, 1.0);"," if (u_secondaryCount > 2.5) color = applySecondary(color, 2.0);"," if (u_secondaryCount > 3.5) color = applySecondary(color, 3.0);"," return color;","}","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","vec3 applyPrimaryGrade(vec3 color){"," color *= pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," float blackPoint = clamp(u_blacks * 0.18, -0.18, 0.18);"," float whitePoint = clamp(1.0 - u_whites * 0.18, 0.82, 1.18);"," color = (color - blackPoint) / max(whitePoint - blackPoint, 0.2);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," float currentSat = clamp(colorSaturation(color), 0.0, 1.0);"," float skinLike = smoothstep(0.02, 0.18, color.r - color.g) * smoothstep(0.0, 0.16, color.g - color.b) * smoothstep(0.18, 0.82, satLuma);"," float vibranceWeight = (1.0 - currentSat * 0.72) * mix(1.0, 0.55, skinLike);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_vibrance * vibranceWeight));"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," return color;","}","vec3 applyColorGrade(vec3 color){"," color = applyPrimaryGrade(color);"," color = applyAdvancedGrade(color);"," return clamp(applyLut(clamp(color, 0.0, 1.0)), 0.0, 1.0);","}","vec3 applyDither(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float pixelSize = mix(1.0, 5.0, clamp(u_ditherSize, 0.0, 1.0)) * scale;"," vec2 block = floor(gl_FragCoord.xy / max(pixelSize, 1.0));"," float levels = clamp(u_paletteSize, 2.0, 6.0);"," float index = floor(clamp(lumaOf(source) * (levels - 1.0) + bayer4(block), 0.0, levels - 1.0));"," return mix(source, paletteColor(index), amount);","}","vec2 asciiEdgeDirection(vec2 uv, vec2 stepUv){"," float topLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, -stepUv.y)).rgb);"," float top = bt601Luma(sampleMedia(uv + vec2(0.0, -stepUv.y)).rgb);"," float topRight = bt601Luma(sampleMedia(uv + vec2(stepUv.x, -stepUv.y)).rgb);"," float left = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, 0.0)).rgb);"," float right = bt601Luma(sampleMedia(uv + vec2(stepUv.x, 0.0)).rgb);"," float bottomLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, stepUv.y)).rgb);"," float bottom = bt601Luma(sampleMedia(uv + vec2(0.0, stepUv.y)).rgb);"," float bottomRight = bt601Luma(sampleMedia(uv + stepUv).rgb);"," float x = -topLeft - 2.0 * left - bottomLeft + topRight + 2.0 * right + bottomRight;"," float y = -topLeft - 2.0 * top - topRight + bottomLeft + 2.0 * bottom + bottomRight;"," return vec2(x, y);","}","vec2 rotateAsciiUv(vec2 uv, float angle){"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 centered = uv - 0.5;"," return vec2(centered.x * cosine - centered.y * sine, centered.x * sine + centered.y * cosine) + 0.5;","}","vec3 applyAscii(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellHeight = mix(4.0, 80.0, clamp(u_asciiSize, 0.0, 1.0)) * scale;"," vec2 cellSize = vec2(cellHeight);"," vec2 cell = floor(gl_FragCoord.xy / cellSize);"," vec2 cellVuv = (cell + 0.5) * cellSize / max(u_resolution, vec2(1.0));"," vec2 cellUv = (cellVuv - u_uvOffset) / u_uvScale;"," cellUv = applyCrtWarp(cellUv);"," vec3 cellColor = applyColorGrade(sampleMedia(cellUv).rgb);"," float brightness = bt601Luma(cellColor);"," float invert = step(0.5, u_asciiInvert);"," brightness = mix(brightness, 1.0 - brightness, invert);"," vec2 glyphUv = fract(gl_FragCoord.xy / cellSize);"," float rotation = clamp(u_asciiRotation, 0.0, 1.0);"," if (rotation > 0.0) {"," vec2 cellStepUv = cellSize / max(u_resolution * u_uvScale, vec2(1.0));"," vec2 edge = asciiEdgeDirection(cellUv, cellStepUv);"," if (length(edge) > 0.1) glyphUv = mix(glyphUv, rotateAsciiUv(glyphUv, atan(edge.y, edge.x)), rotation);"," }"," float ink = asciiStyleSample(floor(u_asciiStyle + 0.5), brightness, glyphUv);"," vec3 background = paletteColor(0.0);"," vec3 inkColor = mix(paletteColor(max(u_paletteSize - 1.0, 1.0)), cellColor, clamp(u_asciiColor, 0.0, 1.0));"," vec3 asciiColor = mix(background, inkColor, ink);"," return mix(source, asciiColor, amount);","}","vec3 applyScanlines(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float count = mix(50.0, 500.0, clamp(u_scanlineCount, 0.0, 1.0));"," float softness = clamp(u_scanlineSoftness, 0.0, 1.0);"," float wave = 0.5 + 0.5 * sin(v_uv.y * count * PI);"," float line = mix(1.0 - wave, pow(1.0 - wave, 2.2), softness);"," return source * (1.0 - line * amount);","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 originalSample = sampleSource(uv);"," uv = applyCrtWarp(uv);"," vec2 displayEdge = smoothstep(vec2(0.0), vec2(0.006), uv) * (1.0 - smoothstep(vec2(0.994), vec2(1.0), uv));"," float displayMask = displayEdge.x * displayEdge.y;"," vec4 sampleColor = sampleMedia(uv);"," sampleColor = sampleChromaticMedia(uv, sampleColor);"," sampleColor.rgb = applyDigitalGlitch(uv, sampleColor.rgb);"," vec3 original = originalSample.rgb;"," vec3 color = mix(sampleColor.rgb, applyColorGrade(sampleColor.rgb), u_intensity);"," float grainAmount = clamp(u_grain, 0.0, 1.0);"," if (grainAmount > 0.0) {"," float grainPixelSize = mix(1.0, 6.0, clamp(u_grainSize, 0.0, 1.0));"," vec2 grainCoord = floor(gl_FragCoord.xy / grainPixelSize) + vec2(u_grainSeed, u_grainSeed * 1.37);"," float grainBase = grainHash(grainCoord) - grainHash(grainCoord + vec2(19.19, 73.31));"," float grainFine = grainHash(gl_FragCoord.xy + vec2(u_grainSeed * 2.11, u_grainSeed * 0.71)) - 0.5;"," float grain = mix(grainBase * 0.7, grainBase + grainFine * 0.35, clamp(u_grainRoughness, 0.0, 1.0));"," float grainLuma = lumaOf(color);"," float grainMask = smoothstep(0.02, 0.55, grainLuma) * (1.0 - smoothstep(0.88, 1.0, grainLuma));"," color += grain * grainAmount * mix(0.025, 0.08, grainMask);"," }"," float filmArtifacts = clamp(u_filmArtifacts, 0.0, 1.0);"," if (filmArtifacts > 0.0) {"," float filmFrame = floor(u_grainSeed);"," float dust = dustMask(v_uv, floor(filmFrame / 3.0));"," float dustTone = grainHash(vec2(floor(filmFrame / 3.0), 8.0));"," color = mix(color, vec3(dustTone > 0.5 ? 0.95 : 0.02), dust * 0.72 * filmArtifacts);"," float scratchBucket = floor(filmFrame / 12.0);"," float scratchX = grainHash(vec2(scratchBucket, 4.2));"," float scratchLife = step(0.78, grainHash(vec2(scratchBucket, 8.4)));"," float scratch = (1.0 - smoothstep(0.0, 1.4 / max(u_resolution.x, 1.0), abs(v_uv.x - scratchX))) * scratchLife;"," color = mix(color, vec3(0.94, 0.88, 0.76), scratch * 0.28 * filmArtifacts);"," }"," color = applyMonoScreen(clamp(color, 0.0, 1.0), clamp(u_monoScreen, 0.0, 1.0));"," color = applyEngraving(clamp(color, 0.0, 1.0), clamp(u_engraving, 0.0, 1.0));"," color = applyCrosshatch(uv, clamp(color, 0.0, 1.0), clamp(u_crosshatch, 0.0, 1.0));"," color = applyHalftone(clamp(color, 0.0, 1.0), clamp(u_halftone, 0.0, 1.0));"," color = applyTwoInkPrint(clamp(color, 0.0, 1.0), clamp(u_twoInkPrint, 0.0, 1.0));"," color = applyDither(clamp(color, 0.0, 1.0), clamp(u_dither, 0.0, 1.0));"," color = applyAscii(clamp(color, 0.0, 1.0), clamp(u_ascii, 0.0, 1.0));"," if (u_bloomReady > 0.5 && u_bloom > 0.0) color += sampleBloom(uv) * u_bloom;"," color = applyScanlines(clamp(color, 0.0, 1.0), clamp(u_scanlines, 0.0, 1.0));"," vec2 vignetteAspect = u_resolution.x > u_resolution.y"," ? vec2(u_resolution.x / max(u_resolution.y, 1.0), 1.0)"," : vec2(1.0, u_resolution.y / max(u_resolution.x, 1.0));"," vec2 vignetteUv = abs((v_uv - vec2(0.5)) * 2.0) * vignetteAspect;"," float vignettePower = mix(8.0, 1.8, clamp(u_vignetteRoundness * 0.5 + 0.5, 0.0, 1.0));"," float vignetteDistance = pow(pow(vignetteUv.x, vignettePower) + pow(vignetteUv.y, vignettePower), 1.0 / vignettePower);"," float vignetteMidpoint = mix(0.22, 1.08, clamp(u_vignetteMidpoint, 0.0, 1.0));"," float vignetteFeather = mix(0.08, 0.72, clamp(u_vignetteFeather, 0.0, 1.0));"," float vignetteMask = smoothstep(vignetteMidpoint, vignetteMidpoint + vignetteFeather, vignetteDistance);"," color *= 1.0 - vignetteMask * clamp(u_vignette, 0.0, 1.0) * 0.75;"," float warpActive = step(0.0001, u_crtCurvature);"," color *= mix(1.0, displayMask, warpActive);"," vec3 graded = clamp(color, 0.0, 1.0);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`),wb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform vec2 u_resolution;","uniform vec2 u_direction;","uniform float u_radius;","uniform float u_bloomPass;","uniform float u_threshold;","vec4 readSource(vec2 uv){"," vec4 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0)));"," if (u_bloomPass > 0.5) {"," float luminance = dot(color.rgb, vec3(0.299, 0.587, 0.114));"," if (u_threshold >= 0.0 && luminance <= u_threshold) color.rgb = vec3(0.0);"," return vec4(color.rgb, 1.0);"," }"," color.rgb *= color.a;"," return color;","}","void main(){"," if (u_bloomPass > 0.5) {"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) * 0.5;"," vec4 bloom = readSource(v_uv) * 0.227027;"," bloom += readSource(v_uv + stepUv) * 0.1945946;"," bloom += readSource(v_uv - stepUv) * 0.1945946;"," bloom += readSource(v_uv + stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv - stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv + stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv - stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv + stepUv * 4.0) * 0.016216;"," bloom += readSource(v_uv - stepUv * 4.0) * 0.016216;"," gl_FragColor = bloom;"," return;"," }"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) / 12.0;"," vec4 color = readSource(v_uv) * 0.08077993;"," color += readSource(v_uv + stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv - stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv + stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv - stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv + stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv - stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv + stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv - stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv + stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv - stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv + stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv - stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv + stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv - stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv + stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv - stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv + stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv - stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv + stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv - stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv + stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv - stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv + stepUv * 12.0) * 0.00453456;"," color += readSource(v_uv - stepUv * 12.0) * 0.00453456;"," if (color.a > 0.0001) color.rgb /= color.a;"," gl_FragColor = color;","}"].join(`\n`),Cb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform vec2 u_texel;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_blur;","uniform float u_kuwaharaRadius;","vec3 readPrepared(vec2 displayUv){"," vec2 uv = (displayUv - u_uvOffset) / u_uvScale;"," vec3 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," if (u_blurReady > 0.5 && u_blur > 0.0) {"," vec3 blurred = texture2D(u_blurSource, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," color = mix(color, blurred, clamp(u_blur, 0.0, 1.0));"," }"," return color;","}","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec3 sum = vec3(0.0);"," float sumSquares = 0.0;"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec3 color = readPrepared(v_uv + vec2(float(offset), 0.0) * u_texel);"," sum += color;"," sumSquares += dot(color, color) / 3.0;"," count += 1.0;"," }"," gl_FragColor = vec4(sum / count, sumSquares / count);","}"].join(`\n`),_b=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_kuwaharaMoments;","uniform vec2 u_texel;","uniform float u_kuwaharaRadius;","uniform float u_kuwaharaSharpness;","uniform float u_kuwaharaSaturation;","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec2 origins[4];"," origins[0] = vec2(-radius, -radius);"," origins[1] = vec2(0.0, -radius);"," origins[2] = vec2(-radius, 0.0);"," origins[3] = vec2(0.0, 0.0);"," vec3 means[4];"," float variances[4];"," float minVariance = 1.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," vec4 moment = vec4(0.0);"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec2 sampleOffset = origins[quadrant] + vec2(0.0, float(offset));"," moment += texture2D(u_kuwaharaMoments, clamp(v_uv + sampleOffset * u_texel, vec2(0.0), vec2(1.0)));"," count += 1.0;"," }"," moment /= count;"," vec3 mean = moment.rgb;"," float meanSquare = moment.a * 3.0;"," float variance = max(meanSquare - dot(mean, mean), 0.0);"," means[quadrant] = mean;"," variances[quadrant] = variance;"," minVariance = min(minVariance, variance);"," }"," float exponent = 1.0 + clamp(u_kuwaharaSharpness, 0.0, 1.0) * 8.0;"," vec3 result = vec3(0.0);"," float totalWeight = 0.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," float weight = pow((minVariance + 0.0001) / (variances[quadrant] + 0.0001), exponent);"," result += means[quadrant] * weight;"," totalWeight += weight;"," }"," result /= max(totalWeight, 0.0001);"," float luma = dot(result, vec3(0.2126, 0.7152, 0.0722));"," float saturation = clamp(u_kuwaharaSaturation, 0.0, 1.0) * 2.0;"," gl_FragColor = vec4(clamp(mix(vec3(luma), result, saturation), 0.0, 1.0), 1.0);","}"].join(`\n`);function Lt(e){return e instanceof HTMLVideoElement||e instanceof HTMLImageElement}function Sd(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function Ad(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(L("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function xi(e,t=Eb){let n=Ad(e,Ab,e.VERTEX_SHADER),r=Ad(e,t,e.FRAGMENT_SHADER);if(!n||!r)return n&&e.deleteShader(n),r&&e.deleteShader(r),null;let i=e.createProgram();return i?(e.attachShader(i,n),e.attachShader(i,r),e.linkProgram(i),e.deleteShader(n),e.deleteShader(r),e.getProgramParameter(i,e.LINK_STATUS)?i:(L("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function pi(e,t=e.LINEAR,n=e.UNSIGNED_BYTE){let r=e.createTexture();return r?(e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,n,null),r):null}function Tb(e,t){let n=xi(e,wb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),resolution:e.getUniformLocation(n,"u_resolution"),direction:e.getUniformLocation(n,"u_direction"),radius:e.getUniformLocation(n,"u_radius"),bloomPass:e.getUniformLocation(n,"u_bloomPass"),threshold:e.getUniformLocation(n,"u_threshold")}:null}function Rb(e,t){let n=xi(e,Cb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),blurSource:e.getUniformLocation(n,"u_blurSource"),texel:e.getUniformLocation(n,"u_texel"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),blurReady:e.getUniformLocation(n,"u_blurReady"),blur:e.getUniformLocation(n,"u_blur"),radius:e.getUniformLocation(n,"u_kuwaharaRadius")}:null}function kb(e,t){let n=xi(e,_b);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),moments:e.getUniformLocation(n,"u_kuwaharaMoments"),texel:e.getUniformLocation(n,"u_texel"),radius:e.getUniformLocation(n,"u_kuwaharaRadius"),sharpness:e.getUniformLocation(n,"u_kuwaharaSharpness"),saturation:e.getUniformLocation(n,"u_kuwaharaSaturation")}:null}function ir(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=pi(e,n,t),i=e.createFramebuffer();if(!r||!i)return r&&e.deleteTexture(r),i&&e.deleteFramebuffer(i),null;e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),o!==e.FRAMEBUFFER_COMPLETE?(e.deleteTexture(r),e.deleteFramebuffer(i),null):{texture:r,framebuffer:i,type:t,width:1,height:1}}function gi(e,t,n,r){t.width===n&&t.height===r||(t.width=n,t.height=r,e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,r,0,e.RGBA,t.type,null))}function Ia(e,t,n){let r=[];for(let i of n){let o=e.getUniformLocation(t,`u_${i}`);o!==null&&r.push([i,o])}return r}function Ed(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function Ga(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=xi(t),r=pi(t),i=pi(t,t.NEAREST),o=pi(t,t.NEAREST);if(!n||!r||!i||!o)return Ed(t,n,[r,i,o]),null;let a=t.createBuffer();return a?(t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),{gl:t,program:{program:n,texture:r,lutTexture:i,advancedTexture:o,advancedSignature:null,quad:a,position:t.getAttribLocation(n,"a_pos"),source:t.getUniformLocation(n,"u_source"),blurSource:t.getUniformLocation(n,"u_blurSource"),bloomSource:t.getUniformLocation(n,"u_bloomSource"),kuwaharaSource:t.getUniformLocation(n,"u_kuwaharaSource"),lut:t.getUniformLocation(n,"u_lut"),advanced:t.getUniformLocation(n,"u_advanced"),resolution:t.getUniformLocation(n,"u_resolution"),uvScale:t.getUniformLocation(n,"u_uvScale"),uvOffset:t.getUniformLocation(n,"u_uvOffset"),blurReady:t.getUniformLocation(n,"u_blurReady"),bloomReady:t.getUniformLocation(n,"u_bloomReady"),kuwaharaReady:t.getUniformLocation(n,"u_kuwaharaReady"),lutEnabled:t.getUniformLocation(n,"u_lutEnabled"),lutSize:t.getUniformLocation(n,"u_lutSize"),lutTextureSize:t.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:t.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:t.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:t.getUniformLocation(n,"u_lutIntensity"),shadowWheel:t.getUniformLocation(n,"u_shadowWheel"),midtoneWheel:t.getUniformLocation(n,"u_midtoneWheel"),highlightWheel:t.getUniformLocation(n,"u_highlightWheel"),rgbCurvesEnabled:t.getUniformLocation(n,"u_rgbCurvesEnabled"),hueCurvesEnabled:t.getUniformLocation(n,"u_hueCurvesEnabled"),secondaryCount:t.getUniformLocation(n,"u_secondaryCount"),adjustUniforms:Ia(t,n,zr),detailUniforms:Ia(t,n,No),effectUniforms:Ia(t,n,Lo),grainSeed:t.getUniformLocation(n,"u_grainSeed"),effectTime:t.getUniformLocation(n,"u_effectTime"),paletteSize:t.getUniformLocation(n,"u_paletteSize"),palette0:t.getUniformLocation(n,"u_palette0"),palette1:t.getUniformLocation(n,"u_palette1"),palette2:t.getUniformLocation(n,"u_palette2"),palette3:t.getUniformLocation(n,"u_palette3"),palette4:t.getUniformLocation(n,"u_palette4"),palette5:t.getUniformLocation(n,"u_palette5"),intensity:t.getUniformLocation(n,"u_intensity"),compareEnabled:t.getUniformLocation(n,"u_compareEnabled"),comparePosition:t.getUniformLocation(n,"u_comparePosition"),compareSoftness:t.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:t.getUniformLocation(n,"u_compareLineWidth")}}):(Ed(t,n,[r,i,o]),null)}function Mb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fb(e){if(!Mb(e))return{...rn};let t=(n,r,i,o)=>{let a=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(i,Number.isFinite(a)?a:r))};return{enabled:e.enabled===!0,position:t(e.position,rn.position,0,1),softness:t(e.softness,rn.softness,0,.25),lineWidth:t(e.lineWidth,rn.lineWidth,0,12)}}function Fd(e){try{let t=new URL(e,document.baseURI);return t.protocol==="data:"?{href:t.href}:t.protocol!=="http:"&&t.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:t.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:t.href}}catch{return{error:"Invalid LUT URL"}}}function yi(e){return e instanceof Error?e.message:"LUT failed to load"}function Nb(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)%1e4}function Nd(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return Nb(t)}function Ba(e){let t=Fd(e);if("error"in t)return{state:"error",message:t.error};let n=it.get(t.href);if(n)return n;let r=fetch(t.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ul(o,{maxSize:Br})),i={state:"pending",promise:r};for(;it.size>=hb;){let o=it.keys().next().value;if(!o)break;it.delete(o)}return it.set(t.href,i),r.then(o=>{it.get(t.href)===i&&it.set(t.href,{state:"ready",lut:o})},o=>{it.get(t.href)===i&&it.set(t.href,{state:"error",message:yi(o)})}),i}function wd(e,t,n){if(e.lut?.src===t)return e.lut;let r=Eo(n),{gl:i,program:o}=e;try{return Ld(i,o.lutTexture,r),e.lut={src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height},e.lutError=null,e.lutLoadingSrc=null,e.lut}catch(a){return e.lut=null,e.lutError=yi(a),e.lutLoadingSrc=null,L("runtime.colorGrading.uploadLut",a),null}}async function Lb(e){let t=Ba(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function Ld(e,t,n){e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)}function Db(e,t,n){let r=Eo(n),{gl:i,program:o}=e;return Ld(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function Je(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function Ua(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),Je(e.gl,t.scratch),Je(e.gl,t.blur),t.bloom&&Je(e.gl,t.bloom),e.effectTargets=null)}function Wa(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),Je(e.gl,t.moments),Je(e.gl,t.output),e.kuwaharaTargets=null)}function hi(e,t=!1){Ua(e),Wa(e),Ib(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function Ib(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function Pb(e){let t=Ga(e.canvas);return t?(hi(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function Ha(e){if(!e.sourceHidden)return;e.element.removeAttribute(Nn);let t=e.element.style.getPropertyValue("opacity"),n=e.element.style.getPropertyPriority("opacity");t==="0"&&n==="important"&&(e.sourceInlineOpacity===null?e.element.style.removeProperty("opacity"):e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority)),e.sourceHidden=!1}function Ob(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=Tb(t,e.program.quad),r=ir(t),i=ir(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&Je(t,r),i&&Je(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function Hb(e,t){return t.bloom||(t.bloom=ir(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function Cd(e){let t=e.effectTargets;t?.bloom&&(Je(e.gl,t.bloom),t.bloom=null)}function Gb(e){if(e.kuwaharaTargets)return e.kuwaharaTargets;let{gl:t}=e,n=t.getExtension("OES_texture_half_float"),r=t.getExtension("EXT_color_buffer_half_float");if(!n||!r)return e.effectError="Kuwahara requires half-float framebuffer support",null;let i=Rb(t,e.program.quad),o=kb(t,e.program.quad),a=ir(t,n.HALF_FLOAT_OES,t.NEAREST),l=ir(t);return!i||!o||!a||!l?(Bb(t,i,o,a,l),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:l},e.kuwaharaTargets)}function Bb(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&Je(e,r),i&&Je(e,i)}function Dd(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return gi(e,t,o,a),gi(e,n,o,a),{width:o,height:a}}function bi(e,t,n,r,i,o,a,l=!1,s=-1){e.bindFramebuffer(e.FRAMEBUFFER,r.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(t.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t.source,0),e.uniform2f(t.resolution,i.width,i.height),e.uniform2f(t.direction,o.x,o.y),e.uniform1f(t.radius,a),e.uniform1f(t.bloomPass,l?1:0),e.uniform1f(t.threshold,s),or(e,t)}function Ub(e,t,n,r,i,o,a){let l=Dd(e,t.scratch,r,i/2,o/2),s=a/2;bi(e,t.blurProgram,n,t.scratch,l,{x:1,y:0},s,!0,.5),bi(e,t.blurProgram,t.scratch.texture,r,l,{x:0,y:1},s,!0)}function Wb(e,t,n,r,i,o,a){let l=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)bi(e,t.blurProgram,l,t.scratch,i,{x:1,y:0},o),bi(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),l=r.texture}function or(e,t){e.bindBuffer(e.ARRAY_BUFFER,t.quad),e.enableVertexAttribArray(t.position),e.vertexAttribPointer(t.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLE_STRIP,0,4)}function Vb(e,t,n,r,i,o,a,l){gi(e,t.moments,i.width,i.height),gi(e,t.output,i.width,i.height);let s=t.horizontalProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.moments.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(s.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,r),e.uniform1i(s.source,0),e.uniform1i(s.blurSource,1),e.uniform2f(s.texel,1/i.width,1/i.height),e.uniform2f(s.uvScale,o.scaleX,o.scaleY),e.uniform2f(s.uvOffset,o.offsetX,o.offsetY),e.uniform1f(s.blurReady,a?1:0),e.uniform1f(s.blur,l.blur),e.uniform1f(s.radius,l.kuwaharaRadius),or(e,s);let u=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(u.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(u.moments,0),e.uniform2f(u.texel,1/i.width,1/i.height),e.uniform1f(u.radius,l.kuwaharaRadius),e.uniform1f(u.sharpness,l.kuwaharaSharpness),e.uniform1f(u.saturation,l.kuwaharaSaturation),or(e,u)}function zb(e,t,n,r){if(n<=0)return!1;let i=Dd(e.gl,t.scratch,t.blur,r.width,r.height);return Wb(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function qb(e,t,n,r,i,o){if(n<=0)return Cd(e),null;o||Cd(e);let a=o?Hb(e,t):t.blur;return a?(Ub(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function $b(e,t,n,r){let{program:i}=e,o=t.effects.blur,a=t.effects.bloom;if(o<=0&&a<=0)return e.effectTargets&&r&&Ua(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let l=Ob(e);if(!l)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=zb(e,l,o,n),u=qb(e,l,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:u!==null,blurTexture:l.blur.texture,bloomTexture:u??i.texture}}function jb(e,t,n,r,i,o,a){let l=t.effects.kuwahara;if(l<=0&&!o)return e.kuwaharaTargets&&a&&Wa(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=Gb(e);return!s||l<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(Vb(e.gl,s,e.program.texture,e.effectTargets?.blur.texture??e.program.texture,n,r,i,t.effects),{kuwaharaReady:!0,kuwaharaTexture:s.output.texture})}function Id(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=$b(e,t,n,o),l=jb(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...l}}function Kb(e){let t=e.grading.lut?.src.trim()??"",n=e.grading.lut?.intensity??1;if(!t||n<=0)return e.lut=null,e.lutLoadingSrc=null,e.lutError=null,null;let r=Fd(t);if("error"in r)return e.lut=null,e.lutLoadingSrc=null,e.lutError=r.error,null;if(e.lut?.src===r.href)return e.lut;e.lut=null;let i=Ba(t);return i.state==="ready"?wd(e,r.href,i.lut):i.state==="error"?(e.lutError=i.message,e.lutLoadingSrc=null,null):(e.lutLoadingSrc!==r.href&&(e.lutLoadingSrc=r.href,e.lutError=null,i.promise.then(o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(wd(e,r.href,o),De(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=yi(o),e.lutLoadingSrc=null,De(e))})),null)}function nr(e){if(!e)return null;if(typeof e=="string"){let t=e.trim();if(!t)return null;let n=document.getElementById(t.replace(/^#/,""));if(n&&Lt(n))return n;try{let r=document.querySelector(t);return r&&Lt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Lt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Lt(t))return t}if(!e.selector)return null;try{let t=Array.from(document.querySelectorAll(e.selector)),n=Math.max(0,Math.floor(Number(e.selectorIndex??0)||0)),r=t[n]??null;return r&&Lt(r)?r:null}catch{return null}}function Pd(e){return e instanceof HTMLVideoElement?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:e instanceof HTMLImageElement&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Od(e){return e instanceof HTMLVideoElement?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:e instanceof HTMLImageElement?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function Hd(e){let t=ut(e);return t&&Od(t)?t:null}function _d(e){if(!(e instanceof HTMLVideoElement))return!1;let t=Hd(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function Yb(e){return e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")}function Xb(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Gd(e){if(e instanceof HTMLVideoElement){let t=Hd(e);if(t)return t}return Od(e)?e:null}function Td(e,t){let n=e.toLowerCase();if(n==="center")return .5;if(t==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let r=Number.parseFloat(n);return Number.isFinite(r)?r/100:null}return null}function Jb(e){let t=e.trim().split(/\\s+/).filter(Boolean),n=.5,r=.5;for(let i=0;i<t.length;i++){let o=t[i]??"",a=Td(o,"x"),l=Td(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(l!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=l;continue}}return{x:n,y:r}}function Bd(e,t,n,r,i,o){if(e<=0||t<=0||n<=0||r<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let a=i||"fill",l=e,s=t;if(a==="contain"||a==="cover"||a==="scale-down"){let f=a==="cover"?Math.max(e/n,t/r):Math.min(e/n,t/r);l=n*f,s=r*f,a==="scale-down"&&l>n&&s>r&&(l=n,s=r)}else a==="none"&&(l=n,s=r);let u=Jb(o||"center"),c=(e-l)*u.x/e,m=(t-s)*u.y/t;return{scaleX:l/e,scaleY:s/t,offsetX:c,offsetY:m}}function Qb(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Rd(e,t){return Math.max(0,Math.round(e>0?e:t))}function Zb(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&Qb(e,i);let o=window.getComputedStyle(t);mu(r.style,o),r.style.pointerEvents="none",r.style.position="absolute",r.style.inset="auto",r.style.left=`${n.offsetLeft}px`,r.style.top=`${n.offsetTop}px`,r.style.right="auto",r.style.bottom="auto",r.style.width=`${n.offsetWidth}px`,r.style.height=`${n.offsetHeight}px`,r.style.display="block",r.style.opacity=e.sourceOpacityForCanvas,r.style.visibility=e.sourceVisibleForCanvas?"visible":"hidden";let a=n.getBoundingClientRect(),l=Rd(n.offsetWidth,a.width),s=Rd(n.offsetHeight,a.height);if(l<=0||s<=0)return r.style.display="none",null;let u=Math.max(1,window.devicePixelRatio||1),c=Math.round(l*u),m=Math.round(s*u);return r.width!==c&&(r.width=c),r.height!==m&&(r.height=m),{width:c,height:m}}function nn(e,t,n){e.uniform3f(t,Number.parseInt(n.slice(1,3),16)/255,Number.parseInt(n.slice(3,5),16)/255,Number.parseInt(n.slice(5,7),16)/255)}function Dt(e,t,n,r){e.set(r,(t*Ke+n)*4)}function yt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Pa(e,t,n){return e.length>=3?Co(e,t,n):new Float32Array(Ke)}function Nt(e,t){return e[t]??0}function ex(e,t,n){let r=zt(t.red),i=zt(t.green),o=zt(t.blue),a=zt(t.master),l=Pa(n.hueVsHue,-180,180),s=Pa(n.hueVsSaturation,-1,1),u=Pa(n.hueVsLuma,-1,1);for(let c=0;c<Ke;c+=1)Dt(e,0,c,[Nt(r,c),Nt(i,c),Nt(o,c),Nt(a,c)]),Dt(e,1,c,[yt(Nt(l,c),180),yt(Nt(s,c),1),yt(Nt(u,c),1),1])}function tx(e,t,n){let r=n*yb;Dt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Dt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Dt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Dt(e,2,r+3,[yt(t.correction.hueShift,180),yt(t.correction.saturation,1),yt(t.correction.luma,1),yt(t.correction.temperature,1)]),Dt(e,2,r+4,[yt(t.correction.tint,1),.5,.5,1])}function nx(e,t,n){let r=new Float32Array(Ke*sr*4);ex(r,e,t);let i=0;for(let o of n)o.enabled&&(tx(r,o,i),i+=1);return r}var kd=new WeakMap;function rx(e,t,n){let r=kd.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return kd.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function ix(e,t,n,r){let{curves:i,hueCurves:o}=n,a=rx(i,o,r);if(t.advancedSignature===a)return;let l=Uint8Array.from(nx(i,o,r),kn);e.activeTexture(e.TEXTURE5),e.bindTexture(e.TEXTURE_2D,t.advancedTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,Ke,sr,0,e.RGBA,e.UNSIGNED_BYTE,l),t.advancedSignature=a}function Oa(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Ud(e,t,n,r,i,o,a,l,s,u,c,m){e.uniform1i(t.source,0),e.uniform1i(t.blurSource,1),e.uniform1i(t.lut,2),e.uniform1i(t.kuwaharaSource,3),e.uniform1i(t.bloomSource,4),e.uniform1i(t.advanced,5),e.uniform2f(t.resolution,s.width,s.height),e.uniform2f(t.uvScale,u.scaleX,u.scaleY),e.uniform2f(t.uvOffset,u.offsetX,u.offsetY),e.uniform1f(t.blurReady,i?1:0),e.uniform1f(t.bloomReady,o?1:0),e.uniform1f(t.kuwaharaReady,a?1:0),e.uniform1f(t.lutEnabled,r?1:0),e.uniform1f(t.lutSize,r?.size??2),e.uniform2f(t.lutTextureSize,r?.textureWidth??1,r?.textureHeight??1),e.uniform3f(t.lutDomainMin,r?.domainMin[0]??0,r?.domainMin[1]??0,r?.domainMin[2]??0),e.uniform3f(t.lutDomainMax,r?.domainMax[0]??1,r?.domainMax[1]??1,r?.domainMax[2]??1),e.uniform1f(t.lutIntensity,n.lut?.intensity??0);let{curves:f,hueCurves:p,secondaries:b}=n,v=Po(f),x=Oo(p),_=Ho(b)?b.reduce((M,F)=>M+Number(F.enabled),0):0;(v||x||_>0)&&ix(e,t,n,b),Oa(e,t.shadowWheel,n.wheels.shadows),Oa(e,t.midtoneWheel,n.wheels.midtones),Oa(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,v?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,_);for(let[M,F]of t.adjustUniforms)e.uniform1f(F,n.adjust[M]);for(let[M,F]of t.detailUniforms)e.uniform1f(F,n.details[M]);e.uniform1f(t.grainSeed,c),e.uniform1f(t.effectTime,m);for(let[M,F]of t.effectUniforms)e.uniform1f(F,n.effects[M]);let R=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?bb:La),T=R[R.length-1]??La[1];e.uniform1f(t.paletteSize,R.length),nn(e,t.palette0,R[0]??La[0]),nn(e,t.palette1,R[1]??T),nn(e,t.palette2,R[2]??T),nn(e,t.palette3,R[3]??T),nn(e,t.palette4,R[4]??T),nn(e,t.palette5,R[5]??T),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,l.enabled?1:0),e.uniform1f(t.comparePosition,l.position),e.uniform1f(t.compareSoftness,l.softness),e.uniform1f(t.compareLineWidth,l.lineWidth)}function ox(e){if(!e.sourceHidden){let t=e.element.getAttribute(Vr);t!==null?(e.sourceInlineOpacity=t===""?null:t,e.sourceInlineOpacityPriority=""):(e.sourceInlineOpacity=e.element.style.getPropertyValue("opacity")||null,e.sourceInlineOpacityPriority=e.element.style.getPropertyPriority("opacity"))}e.element.setAttribute(Nn,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function ot(e){let t=su.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Wd=ot("intensity"),Vd=ot("lut.intensity"),zd=ot("adjust.exposure"),qd=ot("effects.kuwahara"),$d=[["blur",ot("effects.blur")],["bloom",ot("effects.bloom")],["kuwahara",qd],["pixelate",ot("effects.pixelate")],["ascii",ot("effects.ascii")],["dither",ot("effects.dither")]],jd=[Wd,Vd,zd,...$d.map(([,e])=>e)];function It(e,t){let n=e.style.getPropertyValue(t.name);if(!n)return null;let r=Number(n);return Number.isFinite(r)?Math.min(t.max,Math.max(t.min,r)):null}function rr(e,t){return t!==null&&(du(t)||jd.some(n=>It(e,n)!==null))}function ax(e,t){let n=null;for(let[r,i]of $d){let o=It(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function sx(e){let{element:t,grading:n}=e,r=It(t,Wd),i=It(t,Vd),o=It(t,zd),a=ax(t,n);if(![r,i,o].some(u=>u!==null)&&a===null)return n;let s={...n,adjust:o===null?n.adjust:{...n.adjust,exposure:o},effects:a??n.effects};return r!==null&&(s.intensity=r),n.lut&&i!==null&&(s.lut={...n.lut,intensity:i}),s}function Kd(e,t,n){e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}function Yd(e,t,n){let r=[t.texture,n.blurTexture,t.lutTexture,n.kuwaharaTexture,n.bloomTexture,t.advancedTexture];for(let[i,o]of r.entries())e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,o)}function De(e){if(e.destroyed||e.contextLost)return!1;let t=Gd(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Pd(t);if(!n)return!1;let r=t instanceof HTMLElement?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",l=e.element.style.getPropertyValue("visibility"),s=Yb(t);s&&Xb(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let u=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=u.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||l!=="hidden")&&u.visibility!=="hidden";let c=Zb(e,r);if(!c)return!1;let m=window.getComputedStyle(r),f=Bd(c.width,c.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:b}=e;try{let v=sx(e),x=Kb(e);Kd(p,b.texture,t);let _=It(e.element,qd)!==null,R=Id(e,v,c,f,{preserveKuwahara:_});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,c.width,c.height),p.useProgram(b.program),Yd(p,b,R);let T=window.__player?.getTime?.(),M=typeof T=="number"&&Number.isFinite(T)?Math.max(0,T):e.element instanceof HTMLVideoElement?Math.max(0,e.element.currentTime):0,F=e.grainSeed+Math.floor(M*60);return Ud(p,b,v,x,R.blurReady,R.bloomReady,R.kuwaharaReady,e.compare,c,f,F,M),or(p,b),ox(e),e.hasDrawn=!0,e.drawError=null,!0}catch(v){return e.drawError=v instanceof Error?v.message:"Shader draw failed",L("runtime.colorGrading.drawEntry",v),!1}}function lx(e,t,n){let r=e.getBoundingClientRect(),i=e.offsetWidth||r.width||t.width,o=e.offsetHeight||r.height||t.height,a=Math.min(320,Math.max(64,Math.round(n??160))),l=i>0&&o>0?i/o:t.width/t.height;return l>=1?{width:a,height:Math.max(1,Math.round(a/l))}:{width:Math.max(1,Math.round(a*l)),height:a}}function ux(){let e=document.createElement("canvas"),t=Ga(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function cx(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):e instanceof HTMLVideoElement?Math.max(0,e.currentTime):0}function dx(e,t,n,r){let i=Gd(t);if(!i)return null;let o=Pd(i);if(!o)return null;let a=lx(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let l=i instanceof HTMLElement?i:t,s=window.getComputedStyle(l),u=Bd(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Kd(e.gl,e.program.texture,i),{dimensions:a,uv:u,effectTime:cx(t,r),grainSeed:Nd(t)+(t instanceof HTMLVideoElement?Math.floor(t.currentTime*60):0)}}async function fx(e,t,n,r,i=!1){let o=dx(e,t,r,i);if(!o)return null;let{dimensions:a,uv:l,grainSeed:s,effectTime:u}=o,c=[];for(let m of n.slice(0,32)){let f=qr(m.grading);if(!f){c.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=Db(e,f.lut.src,await Lb(f.lut.src))),p=e.lut),c.push({id:m.id,dataUrl:mx(e,f,p,a,l,s,u)})}catch(b){c.push({id:m.id,dataUrl:null,error:yi(b)})}}return{...a,images:c}}function mx(e,t,n,r,i,o,a){let{canvas:l,gl:s,program:u}=e,c=Id(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(u.program),Yd(s,u,c),n||(e.lut=null),Ud(s,u,t,n,c.blurReady,c.bloomReady,c.kuwaharaReady,rn,r,i,o,a),or(s,u),l.toDataURL("image/png")}function Xe(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function px(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&e.element instanceof HTMLVideoElement&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function ar(e){if(e.destroyed||!(e.element instanceof HTMLVideoElement)||e.videoFrameHandle!==null||e.animationFrame!==null)return;let t=e.element,n=t;if(typeof n.requestVideoFrameCallback=="function"){e.videoFrameHandle=n.requestVideoFrameCallback(()=>{e.videoFrameHandle=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)})}function hx(e){let t=()=>{De(e)};if(Xe(e,e.element,"load",t),Xe(e,e.element,"loadedmetadata",t),Xe(e,e.element,"loadeddata",t),Xe(e,e.element,"seeked",t),Xe(e,e.element,"timeupdate",t),Xe(e,window,"resize",t),e.element instanceof HTMLVideoElement&&(Xe(e,e.element,"play",()=>ar(e)),Xe(e,e.element,"pause",t)),Xe(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",Ha(e)}),Xe(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!Pb(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",Ha(e);return}e.drawError=null,De(e)}),typeof ResizeObserver<"u"&&(e.resizeObserver=new ResizeObserver(t),e.resizeObserver.observe(e.element)),typeof MutationObserver<"u"){let n=()=>{let a=e.element.style;return`${a.transform}|${a.translate}|${a.rotate}|${a.scale}|${a.left}|${a.top}|${a.width}|${a.height}`},r=n(),i=!1,o=new MutationObserver(()=>{i||n()!==r&&(i=!0,requestAnimationFrame(()=>{i=!1,r=n(),De(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function gx(e){if(e.destroyed)return null;e.destroyed=!0,px(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),Ua(e),Wa(e),Ha(e),e.touchedParent&&(e.parentInlinePosition===null?e.touchedParent.style.removeProperty("position"):e.touchedParent.style.position=e.parentInlinePosition),{canvas:e.canvas,gl:e.gl,program:e.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}function Xd(e,t){return e.removeAttribute("style"),t.id?e.id=`${nu}${t.id}`:e.removeAttribute("id"),e.className=pb,e.setAttribute(mb,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function bx(e){return Xd(document.createElement("canvas"),e)}function Jd(){let e=new WeakMap,t=new Set,n=[],r=null,i=null,o=Promise.resolve(),a=!1,l=(E,S,A)=>{let C=e.get(E);if(C)return C.grading=S,C.source=A,De(C),E instanceof HTMLVideoElement&&!E.paused&&ar(C),!0;let N=n.pop();if(N)Xd(N.canvas,E);else{let W=bx(E),U=Ga(W);if(!U)return W.remove(),!1;N={canvas:W,gl:U.gl,program:U.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let I={element:E,...N,grading:S,compare:{...rn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:A,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(E).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(E).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Nd(E),destroyed:!1};return e.set(E,I),t.add(E),hx(I),De(I),E instanceof HTMLVideoElement&&!E.paused&&ar(I),!0},s=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=e.get(A);if(!C){let N=mi(A);if(!rr(A,N)||!l(A,N,"attribute"))return!1;C=e.get(A)}return C?(C.compare=Fb(S),De(C),!0):!1},u=E=>{let S=e.get(E);if(!S)return;let A=gx(S);A&&(S.contextLost||n.length>=gb?hi(A,!0):n.push(A)),e.delete(E),t.delete(E)},c=()=>{if(a)return 0;let E=new Set;document.querySelectorAll(`video[${Fn}], img[${Fn}]`).forEach(A=>{if(!Lt(A))return;E.add(A);let C=mi(A);rr(A,C)&&(Sd(A)||_d(A))?l(A,C,"attribute"):u(A)});for(let A of t){let C=e.get(A);C&&(!A.isConnected||C.source==="attribute"&&!E.has(A))&&u(A)}return t.size},m=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);A&&De(A)&&(E+=1)}return E},f=async()=>{let E=new Set;for(let S of t){let A=e.get(S)?.grading.lut;if(!A?.src.trim()||(A.intensity??1)<=0)continue;let C=Ba(A.src);C.state==="pending"&&E.add(C.promise)}return E.size>0&&await Promise.allSettled(E),m(),E.size},p=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);!A||!jd.some(N=>It(S,N)!==null)||S instanceof HTMLVideoElement&&!S.paused&&!S.ended||De(A)&&(E+=1)}return E},b=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=qr(S);return rr(A,C)?l(A,C,"live"):(u(A),!0)},v=(E,S)=>{if(!Lt(E))return!1;let A=e.get(E);if(!A){if(!S)return!1;let C=mi(E);return rr(E,C)&&l(E,C,"attribute")}return A.sourceVisibleForCanvas=S,!S&&A.source==="attribute"&&u(E),!0},x=E=>{let S=nr(E);if(!S)return{state:"missing",message:"Media not found"};let A=e.get(S);if(A)return A.effectError?{state:"unavailable",message:A.effectError}:A.drawError?{state:"unavailable",message:A.drawError}:A.lutError?{state:"unavailable",message:`LUT error: ${A.lutError}`}:A.grading.lut&&A.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:A.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:A.lut?"Shader + LUT active":"Shader active"};let C=mi(S);return rr(S,C)?!Sd(S)&&!_d(S)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},_=async(E,S,A)=>{let C=async()=>{if(a||S.length===0)return null;let I=nr(E);return!I||(i??(i=ux()),!i)?null:fx(i,I,S,A?.maxDimension,A?.useMediaTime)},N=o.then(C,C);return o=N.then(()=>{},()=>{}),N},R=E=>{let S=nr(E);if(!(S instanceof HTMLVideoElement))return null;if(!S.paused)return()=>{};let A=S.currentTime,C=S.loop,N=S.muted;return S.loop=!0,S.muted=!0,(S.ended||Number.isFinite(S.duration)&&A>=S.duration)&&(S.currentTime=0),S.play().catch(()=>{}),()=>{S.pause(),S.loop=C,S.muted=N,S.currentTime=A}},T=()=>{if(!a){a=!0,r?.disconnect(),r=null;for(let E of t)u(E);for(let E of n)hi(E,!0);n.length=0,i&&(hi(i,!0),i=null)}};document.body&&(r=new MutationObserver(()=>c()),r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Fn]}));let M={refresh:c,redraw:m,redrawAnimated:p,waitForActiveLuts:f,setGrading:b,setCompare:s,setSourceVisibility:v,getStatus:x,renderPreviews:_,startPreviewPlayback:R,destroy:T},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=M,c(),M}var vi=class{constructor(t){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=t?.initialTime??0,this._rate=t?.rate??1,this._duration=t?.duration??1/0,this._nowMs=t?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let r=null;if("currentTimeSeconds"in this._audioSource)r=this._audioSource.currentTimeSeconds;else{let{el:i,compositionStart:o,mediaStart:a}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}let t=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+t*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(t){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(t,this._duration)):Math.max(0,t);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(t){let n=Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(t){this._duration=Number.isFinite(t)&&t>0?t:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(t){this._audioSource=t}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:t}=this._audioSource;if(!t.paused&&Number.isFinite(t.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}};var xx=100,yx=8,vx=4096,Va=e=>e;function Sx(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function Ax(e){let t=Math.ceil(e*xx);return Math.min(vx,Math.max(yx,t))}function Ex(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:l}=r,s=i??Va,u=R=>o+(R-a)/l,c=e.points[t],m=e.points[t+1],f=u(m.t);if(f<=o)return null;let p=Math.max(o,u(c.t)),b=f-p;if(b<=0)return null;if(Sx(c,n,i))return{kind:"ramp",time:f,value:s(m.v)};let v=Ax(b),x=_l(e,Math.max(c.t,a),m.t,v,n),_=new Float32Array(v);for(let R=0;R<v;R+=1)_[R]=s(x[R]??0);return{kind:"curve",time:p,duration:b,values:_}}function wx(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let l=Ex(e,a,t,n,r);l&&i.push(l)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??Va)(_n(e,n.elapsed,t))}),i}function Cx(e,t){for(let n of t)if(n.kind==="set")e.setValueAtTime(n.value,n.time);else if(n.kind==="ramp")e.linearRampToValueAtTime(n.value,n.time);else try{e.setValueCurveAtTime(n.values,n.time,n.duration)}catch{let r=n.values[n.values.length-1]??0;e.linearRampToValueAtTime(r,n.time+n.duration)}}function lr(e){for(let t of e)t.param.cancelScheduledValues(0)}function on(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function za(e,t,n,r){if(t.points.length!==0)for(let i of e){if(lr([i]),Cl(t)){let o=(i.map??Va)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}Cx(i.param,wx(t,n,r,i.map))}}function Qd(e,t,n,r,i){let o=new Map(n.filter(l=>l.id).map(l=>[l.id,l.handle])),a=[];for(let l of e.lanes){let s=Cn(l.target);if(!s)continue;let u=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!u||u.length===0)continue;let c=co(l.target,t);c&&(za(u,l,c.scale,r),a.push(...u))}return a}function Zd(e){return e.lanes.find(t=>t.target===Ut)??null}var _x=`\nconst dbToLin = (db) => Math.pow(10, db / 20);\n\n/**\n * One-pole envelope followers, one per channel.\n *\n * Per channel matters: the followers advance once per sample, so a single shared\n * follower stepped once per channel per sample. On stereo that ran a 20 ms attack\n * as 10 ms, and gave the right channel a gain computed from an envelope that had\n * already traversed the left \\u2014 so the two channels ducked by different amounts\n * from the same input and the image pumped.\n */\nclass EnvBank {\n constructor(attackMs, releaseMs) { this.set(attackMs, releaseMs); this.values = []; }\n set(attackMs, releaseMs) {\n this.a = Math.exp(-1 / (sampleRate * Math.max(1e-5, attackMs / 1000)));\n this.r = Math.exp(-1 / (sampleRate * Math.max(1e-5, releaseMs / 1000)));\n }\n push(ch, x) {\n const prev = this.values[ch] ?? 0;\n const m = Math.abs(x);\n const c = m > prev ? this.a : this.r;\n const next = m + c * (prev - m);\n this.values[ch] = next;\n return next;\n }\n}\n\n/** Soft-knee gain computer in dB, matching acompressor\'s shape. */\nfunction kneeGain(envDb, thresholdDb, ratio, kneeDb) {\n const over = envDb - thresholdDb;\n if (kneeDb > 0 && over > -kneeDb && over < kneeDb) {\n const t = (over + kneeDb) / (2 * kneeDb);\n return -((1 - 1 / ratio) * kneeDb * t * t);\n }\n return over > 0 ? -(over * (1 - 1 / ratio)) : 0;\n}\n\n// log10/exp per sample is the single most expensive thing a dynamics processor\n// can do on the audio thread, and every sample below the knee needs neither:\n// its gain is exactly unity. Comparing envelopes in the linear domain lets the\n// quiet majority of samples skip the transcendentals entirely.\nconst LN10_OVER_20 = Math.LN10 / 20;\nconst dbToLinFast = (db) => Math.exp(db * LN10_OVER_20);\n\nclass HfCompressor extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 20, this.p.release ?? 250);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 20, this.p.release ?? 250);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const makeup = dbToLin(p.makeup ?? 0);\n const mix = p.mix ?? 1;\n // Knee is expressed as a ratio in FFmpeg; convert to dB width.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const thresholdDb = p.threshold ?? -24;\n const ratio = p.ratio ?? 4;\n // Below this the gain computer returns unity, so the sample needs no\n // logarithm at all.\n const kneeStartLin = dbToLin(thresholdDb - kneeDb);\n const dry = 1 - mix;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n // Per-channel follower, and the sub-knee shortcut: below the knee the\n // gain is exactly unity, so the sample needs no logarithm at all.\n const env = this.env.push(ch, x);\n if (env <= kneeStartLin) {\n out[n] = x * makeup * mix + x * dry;\n continue;\n }\n const envDb = 20 * Math.log10(env);\n const g = dbToLinFast(kneeGain(envDb, thresholdDb, ratio, kneeDb));\n out[n] = x * g * makeup * mix + x * dry;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-compressor", HfCompressor);\n\nclass HfLimiter extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 5, this.p.release ?? 50);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 5, this.p.release ?? 50);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const ceiling = dbToLin(this.p.limit ?? -1);\n const outGain = dbToLin(this.p.level_out ?? 0);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n // Only ever attenuate: a limiter that can raise level is a compressor.\n const g = env > ceiling ? ceiling / env : 1;\n out[n] = x * g * outGain;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-limiter", HfLimiter);\n\nclass HfGate extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 1, this.p.release ?? 100);\n this.gains = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 1, this.p.release ?? 100);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const threshold = dbToLin(p.threshold ?? -35);\n const floor = dbToLin(p.range ?? -24);\n const ratio = p.ratio ?? 10;\n // Knee is declared in the registry as a ratio, like the compressor\'s; a\n // hard threshold ignored it and chattered on material sitting right at the\n // gate point.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const kneeLin = dbToLin((p.threshold ?? -35) + kneeDb);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n let target = 1;\n // Above the threshold the gate is fully open; skip the pow entirely.\n if (env < threshold) {\n const under = env > 1e-9 ? threshold / env : 1e9;\n target = Math.max(floor, 1 / Math.pow(under, ratio - 1));\n if (!isFinite(target)) target = floor;\n }\n // Smooth toward the target so the gate does not click on every sample.\n const held = this.gains[ch] ?? 1;\n const c = target < held ? this.env.r : this.env.a;\n const smoothed = target + c * (held - target);\n this.gains[ch] = smoothed;\n out[n] = x * smoothed;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-gate", HfGate);\n\nclass HfBitcrush extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.holds = [];\n this.held = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const levels = Math.pow(2, (p.bits ?? 8) - 1);\n const step = Math.max(1, Math.round(p.samples ?? 1));\n const mix = p.mix ?? 1;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n if (this.held[ch] === undefined) this.held[ch] = 0;\n if (this.holds[ch] === undefined) this.holds[ch] = 0;\n for (let n = 0; n < inp.length; n++) {\n // Per channel: advancing one shared counter only on the last channel\n // left every earlier channel either unheld or frozen for a whole\n // 128-sample quantum, clicking once a block.\n if (this.holds[ch] === 0) this.held[ch] = Math.round(inp[n] * levels) / levels;\n out[n] = this.held[ch] * mix + inp[n] * (1 - mix);\n this.holds[ch] = (this.holds[ch] + 1) % step;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-bitcrush", HfBitcrush);\n\n/** Linear-interpolated read, \\`delaySamples\\` behind the write head. */\nfunction readTap(ring, write, delaySamples) {\n const len = ring.length;\n const pos = (write - 1 - delaySamples + len) % len;\n const i0 = Math.floor(pos);\n const frac = pos - i0;\n const i1 = (i0 + 1) % len;\n return ring[i0] * (1 - frac) + ring[i1] * frac;\n}\n\n/** Equal-power-ish crossfade, zero at a tap\'s reset point \\u2014 hides the splice. */\nfunction xfade(phase) {\n return Math.sin(Math.PI * phase);\n}\n\n/**\n * Dual-tap granular delay line: two read taps 180\\xB0 apart in a 100 ms grain,\n * each sweeping at a speed relative to the write head that shifts pitch\n * without changing duration. One tap is always fading in as the other fades\n * out, which hides the splice each tap makes when it wraps.\n *\n * write/phase are block-level state, advanced once per SAMPLE across all\n * channels together (not once per channel) \\u2014 advancing them inside the\n * per-channel loop would move the tap 2x/4x too fast on a stereo/quad input.\n */\nclass HfPitchshift extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.grain = Math.round(sampleRate * 0.1);\n this.buf = [];\n this.write = 0;\n this.phase = 0;\n // Samples written so far, capped at one grain. The taps read up to a grain\n // behind the write head, so until this fills they would read the ring\'s\n // zeros \\u2014 the head of every clip came out attenuated or silent.\n this.filled = 0;\n // How much of the wet (pitch-shifted) path is currently in the output, and\n // where it is heading. Crossing between dry and wet is a ~50 ms jump in the\n // signal, so it is RAMPED rather than switched: a hard swap either way is a\n // click. Ramping in both directions is also what lets a node return to true\n // bypass at semitones 0 \\u2014 a one-way latch left preview stuck with the delay\n // that the render, building a fresh node from the attribute, does not have.\n this.wet = 0;\n this.wetTarget = 0;\n // ~15 ms one-pole, short enough to feel immediate on a slider drag and long\n // enough that the splice is inaudible.\n this.wetCoef = Math.exp(-1 / (sampleRate * 0.015));\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const semitones = Math.max(-12, Math.min(12, p.semitones ?? 0));\n const mix = Math.max(0, Math.min(1, p.mix ?? 1));\n const grain = this.grain;\n const ringLen = grain * 2;\n const n = i[0] ? i[0].length : 0;\n for (let ch = 0; ch < i.length; ch++) {\n if (!this.buf[ch]) this.buf[ch] = new Float32Array(ringLen);\n }\n\n // Nothing to shift, or mixed fully out. The grain delay is ~grain/2\n // whatever the ratio, so at semitones=0 this degenerated into a pure 50 ms\n // delay of the signal \\u2014 while the copy for that exact setting reads\n // "Unchanged pitch".\n this.wetTarget = semitones === 0 ? 0 : mix;\n\n // Fully dry AND settled: take the cheap transparent path. The ring keeps\n // filling, so a later shift does not start cold.\n if (this.wetTarget === 0 && this.wet < 1e-4) {\n this.wet = 0;\n let w = this.write;\n for (let s = 0; s < n; s++) {\n for (let ch = 0; ch < i.length; ch++) {\n const x = i[ch][s];\n this.buf[ch][w] = x;\n o[ch][s] = x;\n }\n w = (w + 1) % ringLen;\n }\n this.write = w;\n this.filled = Math.min(grain, this.filled + n);\n return true;\n }\n\n const ratio = Math.pow(2, semitones / 12);\n const inc = (1 - ratio) / grain;\n let write = this.write, phase = this.phase, filled = this.filled, wetNow = this.wet;\n const target = this.wetTarget, coef = this.wetCoef;\n for (let s = 0; s < n; s++) {\n phase += inc;\n phase -= Math.floor(phase);\n const phaseB = (phase + 0.5) % 1;\n const gA = xfade(phase), gB = xfade(phaseB);\n // Ramp the wet path in as the ring fills rather than reading zeros:\n // 100 ms of unshifted audio at the head of a clip beats 50 ms of silence.\n const warm = filled >= grain ? 1 : filled / grain;\n wetNow = target + coef * (wetNow - target);\n const wetMix = wetNow * warm;\n for (let ch = 0; ch < i.length; ch++) {\n const ring = this.buf[ch];\n const inp = i[ch], out = o[ch];\n const x = inp[s];\n ring[write] = x;\n const wet =\n readTap(ring, write, phase * grain) * gA + readTap(ring, write, phaseB * grain) * gB;\n out[s] = x * (1 - wetMix) + wet * wetMix;\n }\n write = (write + 1) % ringLen;\n if (filled < grain) filled++;\n }\n this.write = write;\n this.phase = phase;\n this.filled = filled;\n this.wet = wetNow;\n return true;\n }\n}\nregisterProcessor("hf-pitchshift", HfPitchshift);\n`,qa=new WeakMap;function $a(e){return ef.has(e)}var ef=new WeakSet;function ja(e){let t=qa.get(e);return t||(t=(async()=>{if(!e.audioWorklet)throw new Error("AudioWorklet is unavailable \\u2014 the page needs a secure context (https, localhost or file://)");let n=`data:text/javascript;base64,${btoa(String.fromCharCode(...new TextEncoder().encode(_x)))}`;await e.audioWorklet.addModule(n),ef.add(e)})().catch(n=>{throw qa.delete(e),n}),qa.set(e,t)),t}function Tx(e,t,n){let r=.6+Math.max(0,Math.min(1,t))*2.6,i=Math.max(1,Math.floor(e*r)),o=new Float32Array(i),a=Math.round(t*1e3)*2654435761+Math.round(n*1e3)*40503>>>0,l=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),u=0,c=0;for(let f=0;f<i;f++){u+=s*(l()-u);let p=u*Math.pow(1-f/i,2.5);o[f]=p,c+=p*p}let m=Math.sqrt(c);if(m>0)for(let f=0;f<i;f++)o[f]=(o[f]??0)/m;return o}var ce=e=>typeof e=="number"?e:Number(e??0),Ka=e=>e/1e3;function of(e,t,n,r){let i=Math.max(1,Math.round(e.sampleRate)),o=e.createBuffer(1,i,e.sampleRate),a=o.getChannelData(0);for(let u=0;u<i;u++){let c=u/i;a[u]=t==="sine"?Math.sin(2*Math.PI*c):4*Math.abs((c+.75)%1-.5)-1}let l=e.createBufferSource();l.buffer=o,l.loop=!0,l.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return l.start(typeof e.currentTime=="number"?e.currentTime:0,s),l}function af(e){try{e.stop()}catch{}e.disconnect()}function Ya(e,t){return[{param:e},{param:t,map:n=>1-n}]}function sf(e,t,n){e.gain.value=n,t.gain.value=1-n}function Xa(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var Rx=new Set(["peaking","highpass","lowpass"]),tf=e=>Math.pow(10,e/20),kx=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=tf(ce(i.gain))};return r(t),Xa(n,r,{gain:[{param:n.gain,map:tf}]})};function ur(e,t){return(n,r)=>{let i=n.createBiquadFilter();i.type=e;let o=a=>{i.frequency.value=ce(a.frequency),a.q!==void 0&&(i.Q.value=ce(a.q)),t&&(i.gain.value=ce(a.gain))};return o(r),Xa(i,o,{frequency:[{param:i.frequency}],...Rx.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function Mx(e){return(t,n)=>{let r=Math.tan(Math.PI*ce(n.frequency)/t.sampleRate),i=e==="highpass"?t.createIIRFilter([1/(1+r),-1/(1+r)],[1,(r-1)/(r+1)]):t.createIIRFilter([r/(1+r),r/(1+r)],[1,(r-1)/(r+1)]);return Xa(i,()=>{})}}function cr(e){return(t,n)=>{let r=new AudioWorkletNode(t,e,{processorOptions:{...n}});return{input:r,output:r,update:i=>r.port.postMessage({...i}),dispose:()=>{r.port.postMessage({__hfDispose:!0}),r.disconnect()}}}}var Fx={tanh:Math.tanh,atan:e=>2/Math.PI*Math.atan(Math.PI/2*e),cubic:e=>Math.abs(e)>=1?Math.sign(e):e-e**3/3,exp:e=>Math.sign(e)*(1-Math.exp(-Math.abs(e))),alg:e=>e/Math.sqrt(1+e*e),quintic:e=>Math.abs(e)>=1?Math.sign(e):e-e**5/5,sin:e=>Math.abs(e)>=1?Math.sign(e):Math.sin(Math.PI/2*e),erf:e=>Math.tanh(1.20211*e),hard:e=>Math.max(-1,Math.min(1,e))},Nx=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let l=Fx[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),u=8192,c=new Float32Array(u);for(let m=0;m<u;m++){let f=m/(u-1)*2-1;c[m]=l(f/Math.max(1e-6,s))*s}n.curve=c,n.oversample=ce(a.oversample)>=4?"4x":ce(a.oversample)>=2?"2x":"none",i.gain.value=Math.pow(10,ce(a.output)/20)};return o(t),{input:r,output:i,update:o,automation:{output:[{param:i.gain,map:a=>Math.pow(10,a/20)}]},dispose:()=>{r.disconnect(),n.disconnect(),i.disconnect()}}},Lx=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),l=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(l).connect(r);let s=u=>{i.delayTime.value=Math.min(5,ce(u.time)/1e3),o.gain.value=ce(u.feedback),sf(a,l,ce(u.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:u=>Math.min(5,Ka(u))}],feedback:[{param:o.gain}],mix:Ya(a.gain,l.gain)},dispose:()=>[n,r,i,o,a,l].forEach(u=>u.disconnect())}},Dx=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=of(e,"sine",ce(t.speed),n),l=e.createGain(),s=e.createGain(),u=e.createGain();a.connect(l).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(u).connect(i);let c=m=>{o.delayTime.value=ce(m.delay)/1e3,l.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),sf(s,u,ce(m.mix))};return c(t),{input:r,output:i,update:c,automation:{delay:[{param:o.delayTime,map:Ka}],depth:[{param:l.gain,map:Ka}],speed:[{param:a.playbackRate}],mix:Ya(s.gain,u.gain)},dispose:()=>{af(a),[r,i,o,l,s,u].forEach(m=>m.disconnect())}}},Ix=6,Px=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),l=of(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),u=e.createGain(),c=e.createGain(),m=[];r.connect(o);let f=o;for(let b=0;b<Ix;b++){let v=e.createBiquadFilter();v.type="allpass",v.Q.value=.7071,s.connect(v.frequency),f.connect(v),f=v,m.push(v)}l.connect(s),f.connect(u).connect(a),o.connect(c).connect(a),a.connect(i);let p=b=>{let v=1e3/Math.max(.1,ce(b.delay));for(let x of m)x.frequency.value=v;s.gain.value=v*ce(b.decay),l.playbackRate.value=ce(b.speed),o.gain.value=ce(b.in_gain),a.gain.value=ce(b.out_gain),u.gain.value=1,c.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:l.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{af(l),[r,i,o,a,s,u,c,...m].forEach(b=>b.disconnect())}}},Ox=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createConvolver(),o=e.createGain(),a=e.createGain();i.normalize=!1,n.connect(i).connect(o).connect(r),n.connect(a).connect(r);let l="",s=u=>{let c=`${ce(u.size)}:${ce(u.damping)}`;if(c!==l){let m=Tx(e.sampleRate,ce(u.size),ce(u.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,l=c}o.gain.value=ce(u.wet),a.gain.value=ce(u.dry)};return s(t),{input:n,output:r,update:s,automation:{wet:[{param:o.gain}],dry:[{param:a.gain}]},dispose:()=>[n,r,i,o,a].forEach(u=>u.disconnect())}},Hx={"gain-node":kx,"biquad-peaking":ur("peaking",!0),"biquad-lowshelf":ur("lowshelf",!0),"biquad-highshelf":ur("highshelf",!0),"biquad-highpass":ur("highpass",!1),"biquad-lowpass":ur("lowpass",!1),"worklet-compressor":cr("hf-compressor"),"worklet-limiter":cr("hf-limiter"),"worklet-gate":cr("hf-gate"),"worklet-bitcrush":cr("hf-bitcrush"),"worklet-pitchshift":cr("hf-pitchshift"),waveshaper:Nx,"delay-feedback":Lx,"chorus-lfo":Dx,"allpass-phaser":Px,convolver:Ox};function lf(e){return e.nodes.some(t=>Sn(t.type)?.web.startsWith("worklet-")??!1)}function Gx(e,t,n,r=0){let i=Sn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=An(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return Mx(t)(e,o,r);let a=Hx[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function nf(e){let t=[];for(let n of e){let r=n.fromPreset,i=t.at(-1);if(i&&i.preset===r)i.nodes.push(n);else{let o=typeof n.presetAmount=="number"?n.presetAmount:1;t.push({...r?{preset:r}:{},amount:Math.min(1,Math.max(0,o)),nodes:[n]})}}return t}function rf(e){return En(e).map(t=>{let n=An(t.type,t.params),r=n.poles!==void 0?`:${n.poles}`:"",i=String(n.poles)==="1"?`@${n.frequency}`:"",o=t.type==="phaser"?`~${n.type}`:"",a=t.fromPreset?`%${t.fromPreset}`:"";return`${t.type}${r}${i}${o}${a}`}).join("|")}function uf(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],l=nf(En(t)),s=r;for(let f of l){let p=null;if(f.preset){let b=e.createGain(),v=e.createGain(),x=e.createGain(),_=e.createGain();x.gain.value=f.amount,v.gain.value=1-f.amount,s.connect(b),b.connect(v).connect(_),p={entry:b,wet:x,dry:v,join:_},s=b}for(let b of f.nodes){let v=Gx(e,b.type,b.params??{},n);s.connect(v.input),s=v.output,o.push({...b.id?{id:b.id}:{},type:b.type,handle:v})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let u=rf(t),c={};for(let f of a)(c[m=f.id]??(c[m]=[])).push(...Ya(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:c,nodes:o,update(f){if(rf(f)!==u)return!1;En(f).forEach((b,v)=>{let x=o[v];x&&(x.handle.update(An(b.type,b.params)),b.id===void 0?delete x.id:x.id=b.id)});let p=0;for(let b of nf(En(f))){if(!b.preset)continue;let v=a[p++];!v||v.id!==b.preset||(v.wet.gain.value=b.amount,v.dry.gain.value=1-b.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:b,join:v}of a)f.disconnect(),p.disconnect(),b.disconnect(),v.disconnect();r.disconnect(),i.disconnect()}}}var cf={version:1,nodes:[]},df={version:1,lanes:[]};function ff(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return df;try{return wl(Dr(n),t)}catch{return df}}function an(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Rt):null)??"";if(!t)return{chain:cf,raw:""};try{return{chain:Sl(t),raw:t}}catch{return{chain:cf,raw:""}}}function mf(e){return ff(e,an(e).chain)}function Si(e,t,n,r,i){let{chain:o}=an(t),a=null,l=[],s=!1,u=0,c=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(T,M)=>{if(T.nodes.length===0){n.connect(r);return}if(lf(T)&&!$a(e)){n.connect(r);let F=++u;ja(e).then(()=>{s||F!==u||x(an(t).chain)}).catch(()=>{});return}try{let F=uf(e,T,M);n.connect(F.input),F.output.connect(r),a=F}catch{n.connect(r)}},f=(T,M)=>{l=M&&a?Qd(ff(t,T),T,a.nodes,M,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let b=()=>{if(!p)return null;let T=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:T,elapsed:p.elapsed+(T-p.scheduledAt)*p.rate,rate:p.rate}},v=T=>{let M=b();M&&(on(l,M.scheduledAt),f(T,M))},x=T=>{let M=b();on(l,M?.scheduledAt??0),c(),m(T,M?.elapsed??0),f(T,M)},_=null,R=t;return typeof MutationObserver<"u"&&typeof R?.nodeType=="number"&&(_=new MutationObserver(()=>{let T=an(t);l.length>0&&lr(l),!a||!a.update(T.chain)?x(T.chain):v(T.chain)}),_.observe(R,{attributes:!0,attributeFilter:[Rt,tt]})),{reanchor:T=>{if(s)return;let M=b();M&&on(l,M.scheduledAt),p={...T},f(an(t).chain,p)},setRate:T=>{let M=b();s||!M||!Number.isFinite(T)||T<=0||T===M.rate||(p={...M,rate:T},on(l,M.scheduledAt),f(an(t).chain,p))},dispose:()=>{s=!0,_?.disconnect(),l.length>0&&on(l,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}var pf="runtime_web_audio_bypass";function Ja(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function dr(e,t){return Ja(e,t)!==null}function Bx(e){return dr(e,"crossorigin")?!0:e.crossOrigin!=null}function Ux(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function Wx(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=Ja(e,"src");if(n)return[n];if(typeof e.querySelectorAll!="function")return[];let r=[];for(let i of Array.from(e.querySelectorAll("source"))){let o=i.getAttribute("src");o&&r.push(o)}return r}function Vx(e,t){if(typeof window>"u")return!1;let n;try{n=new URL(e,Ux(t))}catch{return!1}return n.protocol!=="http:"&&n.protocol!=="https:"||n.origin===window.location.origin?!1:!Bx(t)}function gf(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:dr(e,"src")}function sn(e){for(let t of Wx(e))if(Vx(t,e))return{kind:"decode-only",reason:"cross_origin_no_cors",asset:t};return{kind:"web-audio"}}function zx(e){let t=[];dr(e,Rt)&&t.push("fx-chain"),dr(e,tt)&&t.push("automation"),dr(e,Pr)&&t.push("audio-group");let n=Number.parseFloat(Ja(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function qx(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var hf=new WeakSet;function ln(e,t){if(t.kind==="web-audio"||qx()||hf.has(e))return;let n=zx(e);hf.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead"};xe({source:"hf-preview",type:"diagnostic",code:pf,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 proxy or download the asset to a same-origin URL to keep it.`:"";console.info(`[hyperframes] ${pf}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function Qa(e){return!Number.isFinite(e)||e<=0?1:e}function bf(e){return Le(e)}function $x(e,t){t||e.paused||!Ar().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function jx(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:l}=t,s=Number.isFinite(l)&&l>0,u=l*a;if(n>=0){let m=n*a,f=u-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let c=-n/o;return s?e.start(i+c,r,u):e.start(i+c,r),!0}function Ai(e,t,n){let r=Zd(mf(e));r&&za([{param:t.gain}],r,Lr.scale,n)}function fr(e){return e.sourceKind==="buffer"}var Ei=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_mediaElementSources",new WeakMap);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_masterVolume",1);ge(this,"_masterMuted",!1);ge(this,"_groups",new Map);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),this.applyMasterGain(),!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(t){let n=t.currentSrc||t.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;let r;try{let i=await fetch(n,{cache:"no-store"});if(!i.ok)return L("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return L("webAudioTransport.fetch",i),null}try{let i=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,i),i}catch(i){return this._failedSrcs.add(n),L("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}acquireMediaElementSource(t){let n=this._mediaElementSources.get(t);if(n){let o=sn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),ln(t,o),null}return n}if(!this._ctx)return null;let r=sn(t);if(r.kind!=="web-audio")return ln(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,l=1){if(!this._ctx||!this._masterGain||a!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),a!==this._playGeneration)return null;let s=this.acquireMediaElementSource(t);if(!s)return null;let u=Qa(l),c=this._ctx.createGain();c.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:u},b=Si(this._ctx,t,s,c,p);c.connect(this.resolveDestination(t,m,i,u)??this._masterGain),Ai(t,c,p),this._rate=u,this._rateAnchorCtx=m,this._rateAnchorComp=i;let v={fx:b,el:t,sourceNode:s,sourceKind:"media-element",gainNode:c,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Ce(t),bounded:!1};return t.volume=1,this._activeSources.push(v),this._paused=!1,v}catch(s){return L("webAudioTransport.mediaElementSource",s),null}}groupInput(t,n,r){let i=this._groups.get(t);if(i){if(i.generation!==this._playGeneration)try{i.reanchor(r),i.generation=this._playGeneration}catch(f){L("webAudioTransport.groupReanchor",f)}return i.input}if(!this._ctx||!this._masterGain)return null;let o=this._ctx.createGain(),a=this._ctx.createGain();a.connect(this._masterGain);let l=()=>mo(n,t),s=l(),u=this._ctx.createGain();u.gain.value=s?.hasAttribute("data-hidden")?0:1,u.connect(a);let c=this._ctx.createGain();c.gain.value=bf(fo(s)),c.connect(u);let m=Si(this._ctx,s??{getAttribute:()=>null},o,c,r);return s&&Ai(s,c,r),this._groups.set(t,{input:o,fader:c,muteGain:u,fx:m,generation:this._playGeneration,reanchor:f=>{lr([{param:c.gain}]);let p=l();c.gain.value=bf(fo(p)),u.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&Ai(p,c,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),c.disconnect(),u.disconnect(),a.disconnect()}catch{}}}),o}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){L("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Rl(t);if(!o)return this._masterGain;let a={scheduledAt:n,elapsed:r,rate:i};return this.groupInput(o,t.ownerDocument,a)??this._masterGain}handleSourceEnded(t,n,r,i){let o=this._activeSources.indexOf(n);if(o!==-1){this._activeSources.splice(o,1),r.muted=i;try{t.disconnect(),n.fx?.dispose(),n.gainNode.disconnect()}catch{}this._activeSources.length===0&&(this._paused=!0)}}async schedulePlayback(t,n,r,i,o,a,l,s=1,u=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 c=Qa(s),m=Ce(t),f=c*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let b=this._ctx.createGain();b.gain.value=a;let v=o-r,x=this._ctx.currentTime,_={scheduledAt:x,elapsed:v,rate:c},R=Si(this._ctx,t,p,b,_);if(b.connect(this.resolveDestination(t,x,o,c)??this._masterGain),Ai(t,b,_),this._rate=c,this._rateAnchorCtx=x,this._rateAnchorComp=o,!jx(p,{elapsed:v,mediaStart:i,scheduledAt:x,globalRate:c,mediaRate:m,clipDuration:u}))return p.disconnect(),R?.dispose(),b.disconnect(),null;let T=t.muted;t.muted=!0,$x(t,T);let M={fx:R,el:t,sourceNode:p,sourceKind:"buffer",gainNode:b,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:T,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(u)&&u>0};return this._activeSources.push(M),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,M,t,T)),M}catch(c){return L("webAudioTransport.schedule",c),null}}setRate(t){let n=Qa(t);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let r of this._activeSources)try{fr(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>fr(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{fr(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}fr(t)?t.el.muted=t.priorMuted:t.el.volume=t.priorVolume}this._activeSources=[],this._paused=!0}setVolume(t){this._masterVolume=Math.max(0,Math.min(1,t)),this.applyMasterGain()}setElementVolume(t,n){let r=Le(n);for(let i of this._activeSources)if(i.el===t)try{i.sourceKind==="media-element"&&(i.el.volume=1),i.gainNode.gain.value=r}catch(o){L("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._masterGain&&(this._masterGain.gain.value=this._masterMuted?0:this._masterVolume)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t&&fr(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll();for(let t of this._groups.values())t.dispose();if(this._groups.clear(),this._bufferCache.clear(),this._failedSrcs.clear(),this._mediaElementSources=new WeakMap,this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null,this._masterVolume=1,this._masterMuted=!1}};var xf="data-hf-studio-manual-edit-gesture";function yf(e){return!Number.isInteger(e.tick)||e.tick<=0||e.tick%60!==0?!1:!(e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2)}var Kx=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function vf(e){return Math.max(0,Math.min(1,e))}function Sf(e){let t=Kx.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?vf(n):null}function Af(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=vf(t),r=12-n*6,i=Math.PI*2*(1+n*1.5),o=1-Math.exp(-r)*Math.cos(i);return(1-Math.exp(-r*e)*Math.cos(i*e))/o}var Yx=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,Xx=Math.PI*2;function Jx(e){let t=Yx.exec(e);if(!t)return null;let n=Number(t[1]);if(!Number.isSafeInteger(n)||n<1)return null;let r=t[2];if(r!=="easeOut"&&r!=="easeInOut"&&r!=="anticipate"&&r!=="uniform")return null;if(t[3]===void 0)return{wiggles:n,type:r};let i=Number(t[3]);return!Number.isFinite(i)||i<0||i>1?null:{wiggles:n,type:r,amplitude:i}}function Qx(e,t,n,r){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let i=r??(n==="easeInOut"?.08:n==="uniform"?.14:n==="anticipate"?.12:.16),o=n==="easeInOut"?i*Math.sin(Math.PI*e):n==="uniform"?i:i*(1-e);return e+(n==="anticipate"?-1:1)*o*Math.sin(Xx*t*e)}function Ef(e,t){let n=Jx(e);if(!n)return null;let r=`${n.wiggles}:${n.type}:${n.amplitude??"default"}`,i=t?.get(r);if(i)return i;let o=a=>Qx(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var Zx=24,wf=e=>e>=1?1:0,ey=e=>e,wi=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,ty=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${wi}\\s*,\\s*${wi}\\s+${wi}\\s*,\\s*${wi}\\s+1\\s*,\\s*1\\s*$`,"i");function Cf(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function ny(e,t,n,r,i){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let o=0,a=1;for(let l=0;l<Zx;l+=1){let s=(o+a)/2;Cf(s,t,r)<e?o=s:a=s}return Cf((o+a)/2,n,i)}function ry(e){let t=ty.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=Number(t[4]);return Math.min(n,i)<0||Math.max(n,i)>1?null:a=>ny(a,n,r,i,o)}function iy(e,t){if(!e.startsWith("spring("))return null;let n=Sf(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>Af(o,n);return t.set(n,i),i}function oy(e,t){if(!e.startsWith("custom(")||!e.endsWith(")"))return null;let n=e.slice(7,-1),r=t.get(n);if(r)return r;let i=ry(n);return i&&t.set(n,i),i}function _f(e){if(e.__hfCustomEaseInstalled)return!0;let t=e.parseEase;if(!t)return!1;let n=new Map,r=new Map,i=new Map,o=s=>typeof s!="string"?null:s==="hold"?wf:Ef(s,i)??iy(s,r)??oy(s,n),a=(s,u,c=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ne("custom_ease_parse_failed",{ease:s}),t.call(u,s,...c)??ey)};e.parseEase=function(u,...c){return a(u,this,c)};let l=e.registerEase;if(typeof l=="function"){l("hold",wf);let s=u=>{let c=m=>m;c.config=(...m)=>a(`${u}(${m.join(",")})`,e),l(u,c)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var _i=new Map,Ci=new Map,Tf=()=>{};function Za(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function es(e,t){let n=Ci.get(e);if(n)try{n(t)}catch(r){Tf(e,r)}}function Rf(e){Tf=e}function Ti(e,t){Za(e)&&(_i.set(e,t),es(e,t))}function Ri(e){Za(e)&&(_i.delete(e),es(e,void 0))}function kf(e,t){if(!Za(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);return Ci.set(e,t),_i.has(e)&&es(e,_i.get(e)),()=>{Ci.get(e)===t&&Ci.delete(e)}}var ts="data-hf-authored-duration",ns="data-hf-authored-end",Mf=!1;function at(e){if(e){if(typeof e.pause!="function"){Mf||(Mf=!0,Ne("timeline_missing_pause",{}));return}try{e.pause()}catch(t){L("runtime.timeline.pause",t)}}}function ay(){let e=window.__HF_EXPORT_RENDER_SEEK_CONFIG,t=e?.fps,n=e?.fpsSource,r=Number(t);return!e||t==null?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"missing"}:!Number.isFinite(r)||r<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"invalid"}:{fps:r,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:t,fallbackReason:e.fpsFallbackReason}}function Ff(){let e=gu();Is(xe),Rf((d,h)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:d,message:h instanceof Error?h.message:String(h)})}),ci(document),Na(document),kl(document);let t=ay();e.canonicalFps=t.fps??e.canonicalFps,Ls(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:t.source,rawFpsSource:t.rawFpsSource,rawFps:t.rawFps,fallbackReason:t.fallbackReason});let n=null,r=null,i=null,o=[],a=new Set,l=null,s=new Set,u=(d,h,g)=>{s.has(d)||(s.add(d),Ne(h,g))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){L("runtime.init.site1",d)}let c=new vi;e.transportClock=c;let m=new Ei,f=!1;m.init().then(d=>{f=d}),window.__hf=window.__hf||{};let p=d=>d.closest("[data-hidden]")!==null||Or(d.ownerDocument,d),b=()=>{let d=window.gsap,h=window;if(!(!d?.registerPlugin||h.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(g){u("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),L("runtime.autoMarker.install",g)}},v=()=>{let d=window.gsap;if(!d){u("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{_f(d)||u("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){u("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),L("runtime.customEase.install",h)}};b(),v(),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");try{Ws(document)}catch(d){L("runtime.init.cssVariables",d)}window.__timelines=window.__timelines||{};let x=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(g=>!g.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,h=x()?.getAttribute("data-composition-id")??"root",g={};if(d.length===1)g[h]=d[0];else for(let y=0;y<d.length;y++)g[`tl-${y}`]=d[y];window.__timelines=g}let _=x();_&&!_.hasAttribute("data-start")&&_.setAttribute("data-start","0");let R=d=>{o.push(d)},T=(d,h,g)=>{let y=g??`${d}:${JSON.stringify(h)}`;a.has(y)||(a.add(y),xe({source:"hf-preview",type:"diagnostic",code:d,details:h}))},M=d=>{let h={scale:1,focusX:960,focusY:540},g=[],y=[],w={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:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>g,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:()=>({...w,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},F=1/60,E=.75,S=.05,A=100,C=240,N=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??"")}},I=d=>{let h=d.toLowerCase();return h.includes("cannot read properties of null")||h.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:h.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:h.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},W=d=>{if(d==null||d.trim()==="")return null;let h=Number.parseFloat(d);return!Number.isFinite(h)||h<=0?null:`${h}px`},U=()=>x(),oe=()=>{let d=U();if(!d)return;let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g),h&&d.style.setProperty("--comp-width",h),g&&d.style.setProperty("--comp-height",g)},k=()=>{let d=U(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(g=>g.hasAttribute("data-duration")||g.hasAttribute("data-end"));for(let g of h){if(d&&g===d)continue;let y=g.getAttribute("data-duration"),w=g.getAttribute("data-end");y!=null&&!g.hasAttribute(ts)&&g.setAttribute(ts,y),w!=null&&!g.hasAttribute(ns)&&g.setAttribute(ns,w),g.removeAttribute("data-duration"),g.removeAttribute("data-end")}},V=()=>{let d=U();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g);let y=Array.from(d.children);for(let w of y){let D=w.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!w.hasAttribute("data-start")||w.hasAttribute("data-hf-autostamped"))continue;let B=(w.style.top==="0px"||w.style.top==="0")&&(w.style.left==="0px"||w.style.left==="0")&&w.style.width==="100%"&&w.style.height==="100%",ne=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(w.style.transform);if(B&&ne&&!w.hasAttribute("data-width")&&!w.hasAttribute("data-height")){let te=w.style.top,Tt=w.style.left,ye=w.style.width,gn=w.style.height;w.style.top="",w.style.left="",w.style.width="",w.style.height="";let ae=window.getComputedStyle(w);ae.top!=="auto"||ae.bottom!=="auto"||ae.left!=="auto"||ae.right!=="auto"||ae.width!=="0px"||ae.height!=="0px"||(w.style.top=te,w.style.left=Tt,w.style.width=ye,w.style.height=gn)}let $=window.getComputedStyle(w),de=$.position;if(de!=="absolute"&&de!=="fixed"&&(w.style.position="absolute"),!!w.style.top||!!w.style.bottom||$.top!=="auto"||$.bottom!=="auto"||(w.style.top="0"),!!w.style.left||!!w.style.right||$.left!=="auto"||$.right!=="auto"||(w.style.left="0"),D!=="audio"){let te=W(w.getAttribute("data-width")),Tt=W(w.getAttribute("data-height")),ye=$.width!=="0px"&&$.width!=="auto",gn=$.height!=="0px"&&$.height!=="auto";te?!w.style.width&&!ye&&(w.style.width=te):!w.style.width&&$.width==="0px"&&(w.style.width="100%"),Tt?!w.style.height&&!gn&&(w.style.height=Tt):!w.style.height&&$.height==="0px"&&(w.style.height="100%")}}},Q=(d,h=0,g)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:g?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,h),G=(d,h)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),H=d=>{let h=d.closest("[data-composition-id]"),g=h?Q(h,0):null,y=h?G(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:g,inheritedDuration:y}},z=d=>{let h=H(d),g=h.inheritedStart??0,y=Bt(d.getAttribute("data-start"));if(d.hasAttribute("data-hf-auto-start")||y==null||g<=0)return Q(d,g);let w=ve(d.getAttribute("data-duration")),D=h.inheritedDuration,B=D!=null&&D>0?g+D:null,ne=w!=null&&w>0?y+w:y;return(B==null?y>=g:y<B&&(ne>g||y===g))?y:g+y};window.__hfResolveMediaStartSeconds=z,o.push(()=>{window.__hfResolveMediaStartSeconds===z&&delete window.__hfResolveMediaStartSeconds});let X=(d,h)=>{let g=d.tagName.toLowerCase();if(g==="script"||g==="style"||g==="link"||g==="meta")return!1;let w=g==="video"||g==="audio"?z(d):Q(d,0),D=G(d),B=d.getAttribute("data-composition-id");if(B){let $=(window.__timelines??{})[B],de=null;if($&&typeof $.duration=="function"){let Me=Number($.duration());Number.isFinite(Me)&&Me>0&&(de=Me)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(ts)||d.hasAttribute(ns))&&(D==null||D<=0)&&de!=null&&(D=de)}let ne=D!=null&&D>0?w+D:Number.POSITIVE_INFINITY;return h>=w&&(Number.isFinite(ne)?h<ne:!0)},we=!!document.querySelector("[data-composition-src]"),q=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of d){let g=h.getAttribute("data-composition-id");if(g&&h.children.length===0&&document.querySelector(`template#${CSS.escape(g)}-template`)){q=!0;break}}}let P=!we&&!q,O=d=>{if(!d||typeof d.duration!="function")return null;try{let h=Number(d.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},j=d=>typeof d=="number"&&Number.isFinite(d)&&d>F,le=d=>{let h=ve(d.getAttribute("data-duration"));return h!=null&&h>0?h:Number.isFinite(d.duration)?Ze(d,d.duration):null},ee=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let h=0;for(let g of d){let y=z(g);if(!Number.isFinite(y))continue;let w=le(g);w==null||w<=F||(h=Math.max(h,Math.max(0,y)+w))}return h>F?h:null},K=()=>{let d=U();if(!d)return null;let h=window.__timelines??{},g=mt({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),y=0,w=ve(d.getAttribute("data-duration"));w!=null&&w>0&&(y=w);let D=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let B of D){if(!(B instanceof Element)||B.parentElement?.closest("[data-composition-id]")!==d)continue;let $=g.resolveStartForElement(B,0),de=g.resolveDurationForElement(B);!Number.isFinite($)||de==null||de<=0||(y=Math.max(y,Math.max(0,$)+de))}return y>F?y:null},Y=()=>{let d=ee();return typeof d!="number"||!Number.isFinite(d)||d<=F?null:d},Ve=d=>j(d)?Math.max(F,d*E):F,Fe=()=>{let d=0;for(let h of e.deterministicAdapters){let g=h.getInferredDurationSeconds;if(typeof g!="function")continue;let y=null;try{y=g()}catch(w){L("runtime.init.adapterDuration",w)}typeof y=="number"&&Number.isFinite(y)&&y>0&&(d=Math.max(d,y))}return d>F?d:null},Re=(d,h=0)=>{let g=O(d),y=Y(),w=K(),D=Fe(),B=Math.max(y??0,w??0,D??0),ne=Number.isFinite(h)&&h>F?h:0,$=0;return j(g)?$=Math.max(g,B,ne):j(B)?$=Math.max(B,ne):$=ne,$>0?Math.max(0,$):0},ze=()=>{let d=window.__timelines??{},h=ae=>{let re=Object.entries(d).filter(se=>!!se[1]&&typeof se[1].play=="function"&&typeof se[1].pause=="function");if(re.length!==1)return{timeline:null};let he=re[0];if(!he)return{timeline:null};let[be,fe]=he;return{timeline:fe,selectedTimelineIds:[be],selectedDurationSeconds:O(fe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ae,soleTimelineId:be}}}},g=mt({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),y=Y(),w=K(),D=Math.max(y??0,w??0)||null,B=Ve(D),ne=ae=>{let re=document.querySelector(`[data-composition-id="${CSS.escape(ae)}"]`);return re?g.resolveStartForElement(re,0):0},$=ae=>{let re=window.gsap;if(!re||typeof re.timeline!="function")return null;let he=re.timeline({paused:!0});for(let be of ae)he.add(be.timeline,ne(be.compositionId));return he},de=(ae,re)=>{if(!j(ae))return null;let he=window.gsap;if(!he||typeof he.timeline!="function")return null;let be=he.timeline({paused:!0});if(re)try{be.add(re,0)}catch(se){L("runtime.init.site2",se)}let fe=be;if(typeof fe.to=="function")try{fe.to({},{duration:ae})}catch(se){L("runtime.init.site3",se)}return be},Ge=(ae,re)=>{let he=ae;if(typeof he.getChildren!="function")return[];try{let be=he.getChildren(!0,!0,!0)??[];if(!Array.isArray(be))return[];let fe=[];for(let se of re)if(!be.some(Qe=>Qe===se.timeline))try{let Qe=ne(se.compositionId);ae.add(se.timeline,Qe),fe.push(se.compositionId)}catch(Qe){L("runtime.init.site4",Qe)}return fe}catch{return[]}},Me=U(),J=Me?.getAttribute("data-composition-id")??null;if(!J)return h("root_missing_composition_id");let te=d[J]??null,ye=(()=>{if(!Me)return[];let ae=new Set,re=Array.from(Me.querySelectorAll("[data-composition-id]")),he=[];for(let be of re){let fe=be.getAttribute("data-composition-id");if(!fe||fe===J||ae.has(fe))continue;ae.add(fe);let se=d[fe]??null;if(!se||typeof se.play!="function"||typeof se.pause!="function")continue;let lt=O(se);he.push({compositionId:fe,timeline:se,durationSeconds:lt??0})}return he})(),gn=ae=>{for(let re of ae){let he=re.timeline;if(typeof he.paused=="function")try{he.paused(!1)}catch(be){L("runtime.init.site5",be)}}};if(ye.length>0&&gn(ye),te){let ae=ye.length>0?Ge(te,ye):[];if((ye.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+J+"\'])"))&&(Pi=!0),ae.length>0)try{let fe=te.time();te.seek(fe,!1)}catch{}let re=O(te);if(!j(re)&&ye.length>0){let fe=ye.map(Lm=>Lm.compositionId),se=$(ye),lt=O(se);if(se&&j(lt))return{timeline:se,selectedTimelineIds:fe,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:B,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:fe,autoNestedChildren:ae}}};let Qe=de(D??0,te),Ki=O(Qe);if(Qe&&j(Ki))return{timeline:Qe,selectedTimelineIds:[J],selectedDurationSeconds:Ki,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Ki,selectedTimelineIds:[J],autoNestedChildren:ae}}}}if(!j(re)&&ye.length===0){let fe=de(D??0,te),se=O(fe);if(fe&&j(se))return{timeline:fe,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:se,selectedTimelineIds:[J]}}}}let he=ve(Me?.getAttribute("data-duration")),be=Math.max(j(he)?he:0,w??0);if(be>0&&j(be)&&j(re)&&be>=re+.5){let fe=te;if(typeof fe.to=="function")try{fe.to({},{duration:0},be)}catch(lt){L("runtime.init.site6",lt)}let se=O(te);if(j(se))return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:J,rootDurationSeconds:re,rootDeclaredDur:he,authoredCompositionDurationFloorSeconds:w,newDur:se}}}}return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:re,mediaDurationFloorSeconds:y,diagnostics:ae.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:J,selectedDurationSeconds:re,autoNestedChildren:ae}}:void 0}}if(ye.length>0){let ae=ye.map(be=>be.compositionId),re=$(ye),he=O(re);if(re)return{timeline:re,selectedTimelineIds:ae,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:J,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:B,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,selectedTimelineIds:ae}}}}return h("root_composition_id_unmatched_in_registry")},Pi=!1,fm=d=>{let h=window.gsap,g=d;if(!(!g||typeof g.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let y of g.getChildren(!0,!0,!0)){let w=y,D=w.timeline;if(!D||!("_ease"in D)||typeof D._ease=="function")continue;let B=w.vars?.keyframes,$=(B&&!Array.isArray(B)?B.ease:void 0)??w.vars?.ease??"none";try{let de=h.parseEase($);typeof de=="function"&&(D._ease=de)}catch(de){Ne("keyframe_ease_repair_failed",{ease:typeof $=="string"?$:String($)}),L("runtime.keyframeEase.repair",de)}}},dn=()=>{if(v(),!P)return!1;let d=e.capturedTimeline,h=O(d),g=j(h);if(d&&g&&Pi)return!1;let y=ze();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(e.playbackRate),!1;e.capturedTimeline=y.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),fm(e.capturedTimeline);let w=Re(e.capturedTimeline,0);if(w<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),at(e.capturedTimeline)),w>0){try{c.setDuration(w)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let B=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(B,!1),at(e.capturedTimeline)}let D=window.__hfStudioManualEditsApply;typeof D=="function"&&D(),ci(document)}if(y.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let D=U(),B=w>0?w:0,ne=String(B>0?B:1),$=new Set,de=J=>J.tagName.toLowerCase()===Wt,Ge=new Set(document.querySelectorAll("[data-start]")),Me=J=>{let te=J.parentElement;for(;te&&te!==D;){if(Ge.has(te))return!0;te=te.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let J of e.capturedTimeline.getChildren(!0))if(typeof J.targets=="function")for(let te of J.targets())te instanceof HTMLElement&&te!==D&&(de(te)||te.hasAttribute("data-start")||Me(te)||$.has(te)||($.add(te),te.setAttribute("data-start","0"),te.setAttribute("data-duration",ne),te.setAttribute("data-hf-autostamped","1")))}catch{}if(D instanceof HTMLElement)for(let J of D.querySelectorAll("[id]"))J instanceof HTMLElement&&J!==D&&(J.hasAttribute("data-start")||Me(J)||$.has(J)||J.tagName==="SCRIPT"||J.tagName==="STYLE"||J.tagName==="LINK"||de(J)||($.add(J),J.setAttribute("data-start","0"),J.setAttribute("data-duration",ne),J.setAttribute("data-hf-autostamped","1")))}for(let D of fn)hr.delete(D),xs(D);return!0};window.__hfForceTimelineRebind=()=>{Pi=!1,dn(),Ui(e.currentTime)};let mm=()=>{let d=U();if(!(d instanceof HTMLElement))return;let h=d.getBoundingClientRect(),g=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),w=window.getComputedStyle(d),D=Number.isFinite(g)&&g>0&&Number.isFinite(y)&&y>0,B=h.width<=0||h.height<=0||d.clientWidth<=0||d.clientHeight<=0;!D||!B||T("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:g,declaredHeight:y,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:w.display,visibility:w.visibility,overflow:w.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},pm=()=>{e.tornDown||(l!=null&&window.cancelAnimationFrame(l),l=window.requestAnimationFrame(()=>{l=null,mm()}))},hm=()=>{r=d=>{let h=N(d.error??d.message).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:g.code,details:{category:g.category,message:h,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},i=d=>{let h=N(d.reason).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:`${g.code}_unhandled_rejection`,details:{category:`${g.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",r),window.addEventListener("unhandledrejection",i)},gm=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let g of d){let y=()=>{if(!(g instanceof Element))return;let w=g.tagName.toLowerCase(),D=g.getAttribute("src")??g.getAttribute("href")??g.getAttribute("poster")??null,B=w==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";T(B,{tagName:w,assetUrl:D,currentSrc:(g instanceof HTMLImageElement||g instanceof HTMLMediaElement)&&g.currentSrc||null,readyState:g instanceof HTMLMediaElement?g.readyState:null,networkState:g instanceof HTMLMediaElement?g.networkState:null},`${B}:${w}:${D??"unknown"}`)};g.addEventListener("error",y),R(()=>{g.removeEventListener("error",y)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let g=Array.from(h).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);g.length!==0&&T("runtime_font_load_issue",{failedFamilies:g,totalFaces:Array.from(h).length},`runtime-font-load-issue:${g.join("|")}`)}).catch(()=>{})},bm=(d,h)=>{if(!d.timeline)return!1;let g=e.capturedTimeline;if(g&&g===d.timeline)return!1;let y=Math.max(0,e.currentTime||0),w=e.isPlaying;e.capturedTimeline=d.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{at(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(y,!1),w&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(D){L("runtime.init.site7",D)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Et=null,fs=!1,ms=!1,fn=new Set,hr=new WeakMap,gr=()=>{e.tornDown||(Et!=null&&window.clearTimeout(Et),Et=window.setTimeout(()=>{if(e.tornDown||(Et=null,ms&&window.__HF_EXPORT_RENDER_SEEK_CONFIG))return;let d=ze();if(!d.timeline||!j(d.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){dn()&&(wt(),ke(!0));return}if(fs)return;let g=O(e.capturedTimeline),y=d.selectedDurationSeconds??O(d.timeline);j(y)&&(!j(g)||y>=g+S)&&bm(d,"manual")&&(fs=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:g??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),wt(),ke(!0))},A))},ps=d=>{d.currentTarget instanceof HTMLMediaElement&&Ol(d.currentTarget)},hs=d=>{d.currentTarget instanceof HTMLMediaElement&&Hl(d.currentTarget)},gs=d=>{d instanceof HTMLAudioElement&&gf(d)&&ln(d,sn(d))},bs=d=>{let h=d.currentTarget;h instanceof HTMLMediaElement&&gs(h)},xm=()=>{for(let d of fn)d.removeEventListener("loadedmetadata",gr),d.removeEventListener("durationchange",gr),d.removeEventListener("loadedmetadata",ps),d.removeEventListener("loadedmetadata",bs),d.removeEventListener("error",hs);fn.clear()},Oi=()=>{if(e.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let h of d){if(fn.has(h))continue;fn.add(h);let g=Number.parseFloat(h.dataset.volume??"");Number.isFinite(g)&&(h.volume=Math.max(0,Math.min(1,g))),h.addEventListener("loadedmetadata",gr),h.addEventListener("durationchange",gr),h.addEventListener("loadedmetadata",bs),gs(h),h.addEventListener("loadedmetadata",ps),h.addEventListener("error",hs),Pl(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),xs(h)}},xs=d=>{hr.has(d)||gl(d,e.capturedTimeline,Re(e.capturedTimeline,0),hr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Hi=new WeakMap,ys=d=>{let h=Hi.get(d);if(h!==void 0)return h;let g=window.getComputedStyle(d).position,y=g==="static"||g==="relative"||g==="sticky";return Hi.set(d,y),y},Gi=new WeakMap,ym=d=>{let h=Gi.get(d);if(h!==void 0)return h;let g=d.querySelector("[data-start]")===null;return Gi.set(d,g),g},vm=()=>{Hi=new WeakMap,Gi=new WeakMap},Bi=new WeakMap,br=new WeakSet,xr=!1,vs=d=>d.matches("audio[data-start]")||d.querySelector("audio[data-start]")!==null,Ss=new WeakMap,yr=!0,Sm=()=>{if(yr){yr=!1;for(let d of document.querySelectorAll(Wt)){let h=d.hasAttribute("data-hidden");Ss.get(d)!==h&&(Ss.set(d,h),d.id&&m.setGroupMuted(d.id,h))}}},Ui=(d,h=Array.from(document.querySelectorAll("[data-start]")))=>{let g=U();for(let y of h){if(!(y instanceof HTMLElement))continue;if(y.hasAttribute("data-hidden")){br.has(y)||(Bi.set(y,y.style.getPropertyValue("display")),br.add(y),vs(y)&&(xr=!0),yr=!0),y.style.display="none",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,!1);continue}if(br.has(y)){let D=Bi.get(y);D?y.style.display=D:y.style.removeProperty("display"),Bi.delete(y),br.delete(y),vs(y)&&(xr=!0),yr=!0}let w=X(y,d);if(w){let D=y.parentElement;for(;D&&D!==g;){if(D instanceof HTMLElement&&D.hasAttribute("data-start")&&!X(D,d)){w=!1;break}D=D.parentElement}}y.style.visibility=w?"visible":"hidden",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,w),w?ys(y)&&y.style.removeProperty("display"):ys(y)&&ym(y)&&(y.style.display="none")}xr&&c.isPlaying()&&(m.stopAll(),$i()),xr=!1,Sm()},Pe=()=>{let d=Fl({shouldIncludeElement:g=>g.hasAttribute("data-start")||!!H(g).compositionRoot,resolveStartSeconds:g=>z(g),resolveDurationSeconds:g=>{let y=H(g),w=z(g),D=y.inheritedStart!=null&&y.inheritedDuration!=null&&y.inheritedDuration>0?Math.max(0,y.inheritedStart+y.inheritedDuration-w):null,B=Number.isFinite(g.duration)?Ze(g,g.duration):null,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:null;return Ml({isVideo:g.tagName==="VIDEO",sourceDuration:B,hostRemaining:D,explicitDuration:$})}});for(let g of d.mediaClips){let y=hr.get(g.el);y&&(g.volumeKeyframes=y)}let h=e.mediaForceSyncNextTick;h&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||Nl({clips:d.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:h,onElementVolume:(g,y,w)=>m.setElementVolume(g,w),isWebAudioOwned:g=>m.ownsElement(g),isWebAudioRouted:g=>m.routesElement(g),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),Ui(e.currentTime)},ke=d=>{let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),g=Date.now();(d||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||g-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=g,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Wi="",As=0,Am=()=>{let d="";for(let h of document.querySelectorAll("[data-start]"))d+=`${h.id}:${h.tagName}|`;return d},wt=()=>{k(),oe(),V();let d=U();if(d){let y=W(d.getAttribute("data-width")),w=W(d.getAttribute("data-height")),D=y?parseInt(y,10):0,B=w?parseInt(w,10):0;D>0&&B>0&&xe({source:"hf-preview",type:"stage-size",width:D,height:B})}dn();let h=Su({canonicalFps:e.canonicalFps});window.__clipManifest=h;let g=Am();if(Wi!==g&&vm(),!window.__clipTree||Wi!==g){let y=window;window.__clipTree=bu({startResolver:mt({timelineRegistry:y.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:y.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Wi=g}xe(h),pm()},Vi=d=>typeof d=="number"&&Number.isFinite(d)&&d>0?d:0,Em=d=>{let h=Vi(Number(d));if(h<=0)return;let g=U(),y=Vi(ve(g?.getAttribute("data-duration"))),w=Math.max(As,Vi(c.getDuration()),y);h<=w||(As=h,g?.setAttribute("data-duration",String(h)),c.setDuration(h),wt(),ke(!0))},Oe=(d,h=0)=>{for(let g of e.deterministicAdapters){try{d==="discover"&&g.discover(),d==="pause"&&g.pause(),d==="play"&&g.play&&g.play()}catch(y){L("runtime.init.site8",y)}if(d==="discover")try{g.seek({time:h,suppressEvents:!0})}catch(y){L("runtime.init.site9",y)}}},Ct=()=>{window.__renderReady=!1},mn=null,pn=!0,wm=()=>{let d=[];for(let h of e.deterministicAdapters){let g=h.getReadyPromise;if(typeof g=="function")try{let y=g();y&&d.push(y)}catch(y){L("runtime.init.adapterReady",y)}}return d},Cm=()=>{let d=wm();if(d.length===0)return mn=null,pn=!0,!0;let h=d[0];if(!h)return!0;let g=d.length===1?h:Promise.all(d);return g!==mn&&(mn=g,pn=!1,Promise.resolve(g).then(()=>{mn===g&&(pn=!0,Ct())},y=>{mn===g&&(pn=!0,L("runtime.init.adapterReady",y),Ct())})),pn};if(P)Ca();else{let d={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:W,onDiagnostic:({code:h,details:g})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:g})}};fd(d).then(()=>dd(d)).finally(()=>{P=!0,Oi(),gm(),Ca(),Na(document),Ct()})}let vr=fu({postMessage:d=>xe(d)});vr.installPickerApi(),Ui(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let qe=Jd();n=qe,R(()=>{qe.destroy(),n=null});let zi=d=>{let h=Number(d);!Number.isFinite(h)||h<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,h)),e.mediaForceSyncNextTick=!0,e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let g=document.querySelectorAll("video, audio");for(let y of g)if(y instanceof HTMLMediaElement)try{y.playbackRate=e.playbackRate}catch(w){L("runtime.init.site10",w)}},Es={play:()=>{let d=e.capturedTimeline;if(c.isPlaying())return;let h=Re(d,0);if(h>0)c.setDuration(h),c.reachedEnd()&&(c.seek(0),e.currentTime=0,_t(0));else{let g=U(),y=Number(g?.getAttribute("data-duration")??0);y>0&&c.setDuration(y)}at(d),c.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,ks(c.now()),f&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&$i(),Oe("play"),Pe(),qe.redraw(),ke(!0))},pause:()=>{if(!c.isPlaying())return;m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1,e.currentTime=c.now(),e.mediaForceSyncNextTick=!0,ks(e.currentTime);let d=e.capturedTimeline;at(d),Oe("pause"),Pe(),qe.redraw(),ke(!0)},seek:(d,h)=>{let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource();let y=c.isPlaying();y&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let w=e.capturedTimeline;if(at(w),_t(e.currentTime),Oe("pause"),h?.keepPlaying&&y){Es.play();return}Pe(),qe.redraw(),ke(!0)},renderSeek:(d,h)=>{ms=!0;let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource(),c.isPlaying()&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,_t(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),Oe("pause"),Pe(),qe.redraw(),ke(!0)},getTime:()=>c.now(),getDuration:()=>{let d=c.getDuration();return Number.isFinite(d)?d:0},isPlaying:()=>c.isPlaying(),setPlaybackRate:d=>{zi(d),c.setRate(e.playbackRate),Ms()},getPlaybackRate:()=>e.playbackRate},ws=Re(e.capturedTimeline,0);ws>0&&c.setDuration(ws);let He=hu({getTimeline:()=>e.capturedTimeline,setTimeline:d=>{e.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:d=>{e.isPlaying!==d&&(e.mediaForceSyncNextTick=!0),e.isPlaying=d},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:zi,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(d,h)=>{e.currentTime=Math.max(0,Number(d)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,Pe()},onStatePost:ke,onDeterministicSeek:(d,h)=>{for(let g of e.deterministicAdapters)if(!(g.name==="gsap"&&e.capturedTimeline))try{g.seek({time:Number(d)||0,suppressEvents:h?.suppressEvents})}catch(y){L("runtime.init.site11",y)}},onDeterministicPause:()=>Oe("pause"),onDeterministicPlay:()=>Oe("play"),onRenderFrameSeek:()=>{qe.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Re(e.capturedTimeline,0),transport:Es});window.__player=M(He),window.__playerReady=!0,Ne("composition_loaded",{duration:He.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[ll(),zs({resolveStartSeconds:d=>Q(d,0)}),$s(),Ks(),Js(),Qs(),Zs(),el(),tl(),nl(),rl(),qs({getTimeline:()=>e.capturedTimeline})],al(),sl(),window.__hfReseekGpu=d=>{let h=Math.max(0,Number(d)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,Rr(h)},window.__hfWaitForSeekCompletion=oo,o.push(()=>{window.__hfWaitForSeekCompletion===oo&&delete window.__hfWaitForSeekCompletion}),hm(),Oi(),Oe("discover");let _m=()=>{let d=e.capturedTimeline,h=dn();e.capturedTimeline&&(h||e.capturedTimeline!==d||!He._timeline)&&(He._timeline=e.capturedTimeline);let g=Re(e.capturedTimeline,0);if(g>0&&c.setDuration(g),Oe("discover",e.currentTime),!e.capturedTimeline){let y=window.__timelines??{},w=Object.keys(y).filter(D=>y[D]);if(w.length>0){let B=U()?.getAttribute("data-composition-id")??null;T("root_timeline_unbound_registry_present",{reason:B?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:B,registeredTimelineKeys:w},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(B?`Root data-composition-id is "${B}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${w.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${B??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,wt(),ke(!0)},Pt=null,Tm=()=>{if(Pt)return;let d=()=>{window.removeEventListener("hf-timelines-built",d),Pt=null,Ct()};Pt=d,window.addEventListener("hf-timelines-built",d)};R(()=>{Pt&&(window.removeEventListener("hf-timelines-built",Pt),Pt=null)}),Ct=()=>{if(!P){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,Tm();return}if(Oe("discover",e.currentTime),!Cm()){window.__renderReady=!1;return}_m()},Ct(),P&&setTimeout(()=>{Ct()},0);let Sr=0,qi=!1,Rm=(d,h,g,y)=>{try{let w=y?.suppressEvents===!0;at(d),typeof d.totalTime=="function"?d.totalTime(h,w):d.seek(h,w)}catch(w){L(g,w)}},km=(d,h)=>{let g=window.__timelines??{},y=U()?.getAttribute("data-composition-id")??null;for(let[w,D]of Object.entries(g)){if(!D||w===y)continue;let B=document.querySelector(`[data-composition-id="${CSS.escape(w)}"]`);if(!B)continue;let ne=Q(B,0);if(!Number.isFinite(ne))continue;let $=O(D),de=je(B)+Math.max(0,d-ne)*Ce(B),Ge=Math.max(0,$!=null&&$>0?Math.min($,de):de);Rm(D,Ge,"runtime.init.transport.childTimeline",h)}},Cs=d=>{let h=window.__timelines??{};for(let g of Object.values(h))if(!(!g||g===d))try{g.play()}catch(y){L("runtime.init.activateSiblings",y)}},_s=d=>typeof d=="object"&&d!==null,hn=new WeakMap,Mm=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Ts=(d,h)=>{let g=d[h];if(typeof g!="function")return null;try{let y=Number(g.call(d));return Number.isFinite(y)?y:null}catch(y){return L("runtime.init.gsapCallbackDuration",y),null}},Fm=d=>{let h=hn.get(d);if(h!=null)return h;if(!("getChildren"in d)||typeof d.getChildren!="function")return!1;let g;try{g=d.getChildren(!0,!0,!0)}catch(y){return L("runtime.init.gsapCallbackChildren",y),hn.set(d,!1),!1}if(!Array.isArray(g))return hn.set(d,!1),!1;for(let y of g){if(!_s(y))continue;let w=y.vars;if(!_s(w)||!Mm.some($=>typeof w[$]=="function"))continue;let ne=Ts(y,"totalDuration")??Ts(y,"duration");if(ne!=null&&ne<=1e-6)return hn.set(d,!0),!0}return hn.set(d,!1),!1};function _t(d,h){let g=e.capturedTimeline,y=h?.suppressEvents===!0;if(g){h?.activateChildren&&Cs(g);let w=g,D=d;if(typeof w.totalDuration=="function")try{let B=Number(w.totalDuration());Number.isFinite(B)&&B>0&&d>B&&(D=B)}catch(B){L("runtime.init.transport.clampDuration",B)}try{typeof g.totalTime=="function"?(g.totalTime(D,y),!y&&!Fm(g)&&(g.totalTime(D+.001,!0),g.totalTime(D,!0))):g.seek(D,y)}catch(B){L("runtime.init.transport.seek",B)}}km(d,h),g&&h?.activateChildren&&Cs(g);for(let w of e.deterministicAdapters)if(!(w.name==="gsap"&&g))try{w.seek({time:d,suppressEvents:y})}catch(D){L("runtime.init.transport.adapter",D)}}let Nm=()=>{try{return document.querySelector(`[${xf}]`)!=null}catch{return!1}},Rs=()=>{if(!(e.tornDown||qi)){qi=!0;try{if(e.transportRafId=window.requestAnimationFrame(Rs),Sr+=1,yf({tick:Sr,isPlaying:c.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:c.now()})){let h=e.capturedTimeline;if(dn()){e.capturedTimeline&&!He._timeline&&(He._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==h&&at(e.capturedTimeline);let g=Re(e.capturedTimeline,0);g>0&&c.setDuration(g),wt()}}if(Sr%20===0&&wt(),Sr%30===0&&Oi(),e.capturedTimeline){let h=Re(e.capturedTimeline,0);h>0&&(!c.isPlaying()||h>=c.getDuration())&&c.setDuration(h)}if(c.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&m.isActive()&&m.context){let h=m.getTime();h>=0&&c.attachAudioSource({currentTimeSeconds:h})}else{let h=document.querySelectorAll("audio[data-start]"),g=!1;for(let y of h){if(!(y instanceof HTMLMediaElement)||!y.isConnected||p(y))continue;let w=Number.parseFloat(y.dataset.start??""),D=ve(y.dataset.duration),B=D!=null&&D>0?w+D:1/0,ne=je(y);if(Number.isFinite(w)&&e.currentTime>=w&&e.currentTime<B){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(c.attachAudioSource({currentTimeSeconds:e.currentTime}),g=!0):(c.attachAudioSource({el:y,compositionStart:w,mediaStart:ne}),g=!0);break}}!g&&c.hasAudioSource()&&c.detachAudioSource()}else c.hasAudioSource()&&c.detachAudioSource();let d=c.now();if(e.currentTime=d,(c.isPlaying()||!Nm())&&_t(d),c.isPlaying()&&qe.redrawAnimated(),c.isPlaying()&&c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0);return}c.isPlaying()&&Pe(),ke(!1)}finally{qi=!1}}},ks=d=>{let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected)continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=ve(g.dataset.duration),D=w!=null&&w>0?y+w:1/0;if(d<y||d>=D)continue;let B=je(g),ne=d-y+B;if(ne>=0)try{g.currentTime=ne}catch{}}},$i=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let d=m.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected||p(g))continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=je(g),D=Number.parseFloat(g.dataset.volume??""),B=Number.isFinite(D)?D:1,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:Number.POSITIVE_INFINITY,de=g.closest("[data-composition-id]");if(de){let J=Q(de,0),te=G(de,{includeAuthoredTimingAttrs:!0});te!=null&&te>0&&($=Math.min($,Math.max(0,J+te-y)))}let Ge=sn(g);ln(g,Ge),(Ge.kind==="web-audio"?m.scheduleMediaElementPlayback(g,y,w,c.now(),B,d,e.playbackRate):Promise.resolve(null)).then(J=>{if(J||!c.isPlaying())return;let te=e.playbackRate*Ce(g),Tt=g.hasAttribute("data-fx-chain")||g.hasAttribute("data-automation");if(Math.abs(te-1)>1e-9){Ge.kind==="web-audio"&&Tt&&(g.muted=!0);return}m.decodeAudioElement(g).then(ye=>{!ye||!c.isPlaying()||m.schedulePlayback(g,ye,y,w,c.now(),B,d,e.playbackRate,$)})})}};function Ms(){m.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f&&c.isPlaying()&&m.hasBoundedActiveSources()&&(m.stopAll(),$i())}if(e.capturedTimeline){let d=Re(e.capturedTimeline,0);d>0&&c.setDuration(d),at(e.capturedTimeline)}xd(window),e.transportRafId=window.requestAnimationFrame(Rs),wt(),ke(!0),e.controlBridgeHandler=Ds({onPlay:()=>{He.play(),Ne("composition_played",{time:He.getTime()})},onPause:()=>{He.pause(),Ne("composition_paused",{time:He.getTime()})},onStopMedia:()=>{m.stopAll();let d=document.querySelectorAll("video, audio");for(let h of d)h instanceof HTMLMediaElement&&!h.paused&&h.pause()},onSeek:(d,h)=>{He.seek(d),Ne("composition_seeked",{time:d})},onSetMuted:d=>{e.bridgeMuted=d;let h=d||e.mediaOutputMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetVolume:d=>{e.bridgeVolume=d,m.setVolume(d);let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement))continue;let y=parseFloat(g.dataset.volume??""),w=Number.isFinite(y)?y:1;g.volume=kr(w*d)}},onSetMediaOutputMuted:d=>{e.mediaOutputMuted=d;let h=d||e.bridgeMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{e.nativeMediaSyncDisabled!==d&&(e.nativeMediaSyncDisabled=d,e.mediaForceSyncNextTick=!0,d?(m.stopAll(),c.detachAudioSource()):Pe())},onSetWebAudioMediaDisabled:d=>{e.webAudioMediaDisabled!==d&&(e.webAudioMediaDisabled=d,e.mediaForceSyncNextTick=!0,d&&(m.stopAll(),c.detachAudioSource()),Pe())},onSetPlaybackRate:d=>{zi(d),e.transportClock&&e.transportClock.setRate(e.playbackRate),Ms()},onSetRootDuration:Em,onSetColorGrading:(d,h)=>{qe.setGrading(d,h)},onSetColorGradingCompare:(d,h)=>{qe.setCompare(d,h)},onTick:()=>{if(e.tornDown||!c.isPlaying())return;let d=c.now();if(e.currentTime=d,_t(d),c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0)}},onEnablePickMode:()=>vr.enablePickMode(),onDisablePickMode:()=>vr.disablePickMode(),onSetRuntimeData:Ti,onClearRuntimeData:Ri,getCanonicalFps:()=>e.canonicalFps});let ji=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),e.transportClock=null,m.destroy(),Et!=null&&(window.clearTimeout(Et),Et=null),l!=null&&(window.cancelAnimationFrame(l),l=null),xm(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),r&&(window.removeEventListener("error",r),r=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),vr.disablePickMode();for(let d of e.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(h){L("runtime.init.site12",h)}e.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(h){L("runtime.init.site13",h)}for(let d of e.injectedCompStyles)try{d.remove()}catch(h){L("runtime.init.site14",h)}e.injectedCompStyles=[];for(let d of e.injectedCompLinks)try{d.remove()}catch(h){L("runtime.init.site15",h)}e.injectedCompLinks=[];for(let d of e.injectedCompScripts)try{d.remove()}catch(h){L("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,window.__hfRuntimeTeardown===ji&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=ji,e.beforeUnloadHandler=ji,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Nf=["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"],rs=[[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 sy(e){if(e<=255)return Nf[e];let t=0,n=rs.length-1;for(;t<=n;){let r=t+n>>1,i=rs[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function ly(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let u=0;u<t;){let c=e.charCodeAt(u),m=c,f=1;if(c>=55296&&c<=56319&&u+1<t){let b=e.charCodeAt(u+1);b>=56320&&b<=57343&&(m=(c-55296<<10)+(b-56320)+65536,f=2)}let p=sy(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let b=0;b<f;b++)n[u+b]=p;u+=f}if(!r)return null;let i=0;for(let u=0;u<t;u++){let c=n[u];if(c==="L"){i=0;break}if(c==="R"||c==="AL"){i=1;break}}let o=new Int8Array(t);for(let u=0;u<t;u++)o[u]=i;let a=i&1?"R":"L",l=a,s=l;for(let u=0;u<t;u++)n[u]==="NSM"?n[u]=s:s=n[u];s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="AL"?"AN":"EN":(c==="R"||c==="L"||c==="AL")&&(s=c)}for(let u=0;u<t;u++)n[u]==="AL"&&(n[u]="R");for(let u=1;u<t-1;u++)n[u]==="ES"&&n[u-1]==="EN"&&n[u+1]==="EN"&&(n[u]="EN"),n[u]==="CS"&&(n[u-1]==="EN"||n[u-1]==="AN")&&n[u+1]===n[u-1]&&(n[u]=n[u-1]);for(let u=0;u<t;u++){if(n[u]!=="EN")continue;let c;for(c=u-1;c>=0&&n[c]==="ET";c--)n[c]="EN";for(c=u+1;c<t&&n[c]==="ET";c++)n[c]="EN"}for(let u=0;u<t;u++){let c=n[u];(c==="WS"||c==="ES"||c==="ET"||c==="CS")&&(n[u]="ON")}s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="L"?"L":"EN":(c==="R"||c==="L")&&(s=c)}for(let u=0;u<t;u++){if(n[u]!=="ON")continue;let c=u+1;for(;c<t&&n[c]==="ON";)c++;let m=u>0?n[u-1]:l,f=c<t?n[c]:l,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let v=u;v<c;v++)n[v]=p;u=c-1}for(let u=0;u<t;u++)n[u]==="ON"&&(n[u]=a);for(let u=0;u<t;u++){let c=n[u];(o[u]&1)===0?c==="R"?o[u]++:(c==="AN"||c==="EN")&&(o[u]+=2):(c==="L"||c==="AN"||c==="EN")&&o[u]++}return o}function Lf(e,t){let n=ly(e);if(n===null)return null;let r=new Int8Array(t.length);for(let i=0;i<t.length;i++)r[i]=n[t[i]];return r}var uy=/[ \\t\\n\\r\\f]+/g,cy=/[\\t\\n\\r\\f]| {2,}|^ | $/;function dy(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function fy(e){if(!cy.test(e))return e;let t=e.replace(uy," ");return t.charCodeAt(0)===32&&(t=t.slice(1)),t.length>0&&t.charCodeAt(t.length-1)===32&&(t=t.slice(0,-1)),t}function my(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var is=null,py;function hy(){return is===null&&(is=new Intl.Segmenter(py,{granularity:"word"})),is}var gy=/\\p{Script=Arabic}/u,ki=/\\p{M}/u,Uf=/\\p{Nd}/u;function Df(e){return gy.test(e)}function If(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=183984&&e<=191471||e>=191472&&e<=192093||e>=194560&&e<=195103||e>=196608&&e<=201551||e>=201552&&e<=205743||e>=205744&&e<=210041||e>=63744&&e<=64255||e>=12288&&e<=12351||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=44032&&e<=55215||e>=65280&&e<=65519}function We(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(n<12288)){if(n>=55296&&n<=56319&&t+1<e.length){let r=e.charCodeAt(t+1);if(r>=56320&&r<=57343){let i=(n-55296<<10)+(r-56320)+65536;if(If(i))return!0;t++;continue}}if(If(n))return!0}}return!1}function by(e){let t=Ni(e);return t!==null&&(Fi.has(t)||vt.has(t))}var xy=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function yy(e){return We(e)}function vy(e){let t=Ni(e);return t!==null&&xy.has(t)}function Mi(e){return!by(e)&&!vy(e)}var Fi=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"]),pr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),as=new Set(["\'","\\u2019"]),vt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Sy=new Set([":",".","\\u060C","\\u061B"]),Ay=new Set(["\\u104F"]),Ey=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function wy(e){if(ss(e))return!0;let t=!1;for(let n of e){if(vt.has(n)){t=!0;continue}if(!(t&&ki.test(n)))return!1}return t}function Cy(e){for(let t of e)if(!Fi.has(t)&&!vt.has(t))return!1;return e.length>0}function _y(e){if(ss(e))return!0;for(let t of e)if(!pr.has(t)&&!as.has(t)&&!ki.test(t))return!1;return e.length>0}function ss(e){let t=!1;for(let n of e)if(!(n==="\\\\"||ki.test(n))){if(pr.has(n)||vt.has(n)||as.has(n)){t=!0;continue}return!1}return t}function Wf(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let r=e.charCodeAt(n);if(r<56320||r>57343)return n;let i=n-1;if(i<0)return n;let o=e.charCodeAt(i);return o>=55296&&o<=56319?i:n}function Ni(e){if(e.length===0)return null;let t=Wf(e,e.length);return e.slice(t)}function Ty(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(ki.test(r)){n--;continue}if(pr.has(r)||as.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function Ry(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Pf(e,t,n,r){let i=t[r],o=e[r];if(i==null)return o;let a=n[r];if(o.length===a)return o;let l=i.repeat(a);return e[r]=l,l}function Of(e,t){return e&&t!==null&&Sy.has(t)}function ky(e){let t=Ni(e);return t!==null&&Ay.has(t)}function My(e){if(e.length<2||e[0]!==" ")return null;let t=e.slice(1);return/^\\p{M}+$/u.test(t)?{space:" ",marks:t}:null}function Li(e){let t=e.length;for(;t>0;){let n=Wf(e,t),r=e.slice(n,t);if(Ey.has(r))return!0;if(!vt.has(r))return!1;t=n}return!1}function Fy(e,t){if(t.preserveOrdinarySpaces||t.preserveHardBreaks){if(e===" ")return"preserved-space";if(e===" ")return"tab";if(t.preserveHardBreaks&&e===`\n`)return"hard-break"}return e===" "?"space":e==="\\xA0"||e==="\\u202F"||e==="\\u2060"||e==="\\uFEFF"?"glue":e==="\\u200B"?"zero-width-break":e==="\\xAD"?"soft-hyphen":"text"}var Ny=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ie(e){return e.length===1?e[0]:e.join("")}function Ly(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),Ie(n)}function Dy(e,t,n,r){if(!Ny.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],l=n,s=!1,u=0;for(let c of e){let m=Fy(c,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(c),u+=c.length;continue}o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),o=m,a=[c],l=n+u,s=f,u+=c.length}return o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),i}function os(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Iy=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Py(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:Iy.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function Oy(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function Hy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let a=0;a<e.len;a++){if(r[a]!=="text"||!Py(e,a))continue;let l=[t[a]],s=a+1;for(;s<e.len&&!os(r[s]);){l.push(t[s]),n[a]=!0;let u=t[s].includes("?");if(r[s]="text",t[s]="",s++,u)break}t[a]=Ie(l)}let o=0;for(let a=0;a<t.length;a++){let l=t[a];l.length!==0&&(o!==a&&(t[o]=l,n[o]=n[a],r[o]=r[a],i[o]=i[a]),o++)}return t.length=o,n.length=o,r.length=o,i.length=o,{len:o,texts:t,isWordLike:n,kinds:r,starts:i}}function Gy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o]),!Oy(a))continue;let l=o+1;if(l>=e.len||os(e.kinds[l]))continue;let s=[],u=e.starts[l],c=l;for(;c<e.len&&!os(e.kinds[c]);)s.push(e.texts[c]),c++;s.length>0&&(t.push(Ie(s)),n.push(!0),r.push("text"),i.push(u),o=c-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var By=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Hf=/^[A-Za-z0-9_]+[,:;]*$/,Gf=/[,:;]+$/;function Vf(e){for(let t of e)if(Uf.test(t))return!0;return!1}function mr(e){if(e.length===0)return!1;for(let t of e)if(!(Uf.test(t)||By.has(t)))return!1;return!0}function Uy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o];if(l==="text"&&mr(a)&&Vf(a)){let s=[a],u=o+1;for(;u<e.len&&e.kinds[u]==="text"&&mr(e.texts[u]);)s.push(e.texts[u]),u++;t.push(Ie(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=u-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Wy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o],s=e.isWordLike[o];if(l==="text"&&s&&Hf.test(a)){let u=[a],c=Gf.test(a),m=o+1;for(;c&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&Hf.test(e.texts[m]);){let f=e.texts[m];u.push(f),c=Gf.test(f),m++}t.push(Ie(u)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Vy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(e.kinds[o]==="text"&&a.includes("-")){let l=a.split("-"),s=l.length>1;for(let u=0;u<l.length;u++){let c=l[u];if(!s)break;(c.length===0||!Vf(c)||!mr(c))&&(s=!1)}if(s){let u=0;for(let c=0;c<l.length;c++){let m=l[c],f=c<l.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+u),u+=f.length}continue}}t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zy(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],l=e.isWordLike[o],s=e.kinds[o],u=e.starts[o];if(s==="glue"){let c=[a[0]],m=u;for(o++;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let f=Ie(c);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),l=e.isWordLike[o],s="text",u=m,o++;else{t.push(f),n.push(!1),r.push("glue"),i.push(m);continue}}else o++;if(s==="text")for(;o<e.len&&e.kinds[o]==="glue";){let c=[];for(;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let m=Ie(c);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),l=l||e.isWordLike[o],o++;continue}a.push(m)}t.push(Ie(a)),n.push(l),r.push(s),i.push(u)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function qy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let o=0;o<t.length-1;o++){if(r[o]!=="text"||r[o+1]!=="text"||!We(t[o])||!We(t[o+1]))continue;let a=Ty(t[o]);a!==null&&(t[o]=a.head,t[o+1]=a.tail+t[o+1],i[o+1]=i[o]+a.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Bf(e,t,n){let r=hy(),i=0,o=[],a=[],l=[],s=[],u=[],c=[],m=[],f=[],p=[],b=[],v=[],x=[];for(let E of r.segment(e))for(let S of Dy(E.segment,E.isWordLike??!1,E.index,n)){let V=function(){c[k]!==null&&(a[k]=[Pf(o,c,m,k)],c[k]=null),a[k].push(S.text),l[k]=l[k]||S.isWordLike,f[k]=f[k]||N,p[k]=p[k]||I,b[k]=U,v[k]=oe,x[k]=Of(p[k],W)},A=S.kind==="text",C=Ry(S.text,S.isWordLike,S.kind),N=We(S.text),I=Df(S.text),W=Ni(S.text),U=Li(S.text),oe=ky(S.text),k=i-1;t.carryCJKAfterClosingQuote&&A&&i>0&&s[k]==="text"&&N&&f[k]&&b[k]||A&&i>0&&s[k]==="text"&&Cy(S.text)&&f[k]||A&&i>0&&s[k]==="text"&&v[k]?V():A&&i>0&&s[k]==="text"&&S.isWordLike&&I&&x[k]?(V(),l[k]=!0):C!==null&&i>0&&s[k]==="text"&&c[k]===C?m[k]=(m[k]??1)+1:A&&!S.isWordLike&&i>0&&s[k]==="text"&&(wy(S.text)||S.text==="-"&&l[k])?V():(o[i]=S.text,a[i]=[S.text],l[i]=S.isWordLike,s[i]=S.kind,u[i]=S.start,c[i]=C,m[i]=C===null?0:1,f[i]=N,p[i]=I,b[i]=U,v[i]=oe,x[i]=Of(I,W),i++)}for(let E=0;E<i;E++){if(c[E]!==null){o[E]=Pf(o,c,m,E);continue}o[E]=Ie(a[E])}for(let E=1;E<i;E++)s[E]==="text"&&!l[E]&&ss(o[E])&&s[E-1]==="text"&&(o[E-1]+=o[E],l[E-1]=l[E-1]||l[E],o[E]="");let _=Array.from({length:i},()=>null),R=-1;for(let E=i-1;E>=0;E--){let S=o[E];if(S.length!==0){if(s[E]==="text"&&!l[E]&&_y(S)&&R>=0&&s[R]==="text"){let A=_[R]??[];A.push(S),_[R]=A,u[R]=u[E],o[E]="";continue}R=E}}for(let E=0;E<i;E++){let S=_[E];S!=null&&(o[E]=Ly(S,o[E]))}let T=0;for(let E=0;E<i;E++){let S=o[E];S.length!==0&&(T!==E&&(o[T]=S,l[T]=l[E],s[T]=s[E],u[T]=u[E]),T++)}o.length=T,l.length=T,s.length=T,u.length=T;let M=zy({len:T,texts:o,isWordLike:l,kinds:s,starts:u}),F=qy(Wy(Vy(Uy(Gy(Hy(M))))));for(let E=0;E<F.len-1;E++){let S=My(F.texts[E]);S!==null&&(F.kinds[E]!=="space"&&F.kinds[E]!=="preserved-space"||F.kinds[E+1]!=="text"||!Df(F.texts[E+1])||(F.texts[E]=S.space,F.isWordLike[E]=!1,F.kinds[E]=F.kinds[E]==="preserved-space"?"preserved-space":"space",F.texts[E+1]=S.marks+F.texts[E+1],F.starts[E+1]=F.starts[E]+S.space.length))}return F}function $y(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],r=0;for(let i=0;i<e.len;i++)e.kinds[i]==="hard-break"&&(n.push({startSegmentIndex:r,endSegmentIndex:i,consumedEndSegmentIndex:i+1}),r=i+1);return r<e.len&&n.push({startSegmentIndex:r,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function jy(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,l=0,s=!1,u=!1;function c(){o!==null&&(t.push(Ie(o)),n.push(a),r.push("text"),i.push(l),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],b=e.isWordLike[m],v=e.starts[m];if(p==="text"){let x=yy(f),_=Mi(f);if(o!==null&&s&&u){o.push(f),a=a||b,s=s||x,u=_;continue}c(),o=[f],a=b,l=v,s=x,u=_;continue}c(),t.push(f),n.push(b),r.push(p),i.push(v)}return c(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zf(e,t,n="normal",r="normal"){let i=dy(n),o=i.mode==="pre-wrap"?my(e):fy(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?jy(Bf(o,t,i)):Bf(o,t,i);return{normalized:o,chunks:$y(a,i),...a}}var un=null,qf=new Map,cn=null,Ky=96,Yy=/\\p{Emoji_Presentation}/u,Xy=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,ls=null,$f=new Map;function us(){if(un!==null)return un;if(typeof OffscreenCanvas<"u")return un=new OffscreenCanvas(1,1).getContext("2d"),un;if(typeof document<"u")return un=document.createElement("canvas").getContext("2d"),un;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Jy(e){let t=qf.get(e);return t||(t=new Map,qf.set(e,t)),t}function st(e,t){let n=t.get(e);return n===void 0&&(n={width:us().measureText(e).width,containsCJK:We(e)},t.set(e,n)),n}function At(){if(cn!==null)return cn;if(typeof navigator>"u")return cn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},cn;let e=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&e.includes("Safari/")&&!e.includes("Chrome/")&&!e.includes("Chromium/")&&!e.includes("CriOS/")&&!e.includes("FxiOS/")&&!e.includes("EdgiOS/"),r=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return cn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},cn}function Qy(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function jf(){return ls===null&&(ls=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ls}function Zy(e){return Yy.test(e)||e.includes("\\uFE0F")}function Kf(e){return Xy.test(e)}function e1(e,t){let n=$f.get(e);if(n!==void 0)return n;let r=us();r.font=e;let i=r.measureText("\\u{1F600}").width;if(n=0,i>t+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=e,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let a=o.getBoundingClientRect().width;document.body.removeChild(o),i-a>.5&&(n=i-a)}return $f.set(e,n),n}function t1(e){let t=0,n=jf();for(let r of n.segment(e))Zy(r.segment)&&t++;return t}function n1(e,t){return t.emojiCount===void 0&&(t.emojiCount=t1(e)),t.emojiCount}function St(e,t,n){return n===0?t.width:t.width-n1(e,t)*n}function Yf(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=jf(),a=[];for(let c of o.segment(e))a.push(c.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let c=[];for(let m of a){let f=st(m,n);c.push(St(m,f,r))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(i==="pair-context"||a.length>Ky){let c=[],m=null,f=0;for(let p of a){let b=st(p,n),v=St(p,b,r);if(m===null)c.push(v);else{let x=m+p,_=st(x,n);c.push(St(x,_,r)-f)}m=p,f=v}return t.breakableFitAdvances=c,t.breakableFitAdvances}let l=[],s="",u=0;for(let c of a){s+=c;let m=st(s,n),f=St(s,m,r);l.push(f-u),u=f}return t.breakableFitAdvances=l,t.breakableFitAdvances}function Xf(e,t){let n=us();n.font=e;let r=Jy(e),i=Qy(e),o=t?e1(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function r1(e,t){for(;t<e.widths.length;){let n=e.kinds[t];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;t++}return t}function Jf(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function Qf(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let l=a+e[o];if((o+1<e.length?l+i:l)>n+r)break;a=l,o++}return{fitCount:o,fittedWidth:a}}function i1(e,t){let n=0,r=e.chunks.length;for(;n<r;){let i=Math.floor((n+r)/2);t<e.chunks[i].consumedEndSegmentIndex?r=i:n=i+1}return n<e.chunks.length?n:-1}function Zf(e,t,n){let r=n.segmentIndex;if(n.graphemeIndex>0)return t;let i=e.chunks[t];if(i.startSegmentIndex===i.endSegmentIndex&&r===i.startSegmentIndex)return n.segmentIndex=r,n.graphemeIndex=0,t;for(r<i.startSegmentIndex&&(r=i.startSegmentIndex);r<i.endSegmentIndex;){let o=e.kinds[r];if(o!=="space"&&o!=="zero-width-break"&&o!=="soft-hyphen")return n.segmentIndex=r,n.graphemeIndex=0,t;r++}return i.consumedEndSegmentIndex>=e.widths.length?-1:(n.segmentIndex=i.consumedEndSegmentIndex,n.graphemeIndex=0,t+1)}function em(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=i1(e,t.segmentIndex);return n<0?-1:Zf(e,n,t)}function o1(e,t,n){if(n.segmentIndex>=e.widths.length)return-1;let r=t;for(;r<e.chunks.length&&n.segmentIndex>=e.chunks[r].consumedEndSegmentIndex;)r++;return r>=e.chunks.length?-1:Zf(e,r,n)}function tm(e,t){return e.simpleLineWalkFastPath?nm(e,t):cs(e,t)}function nm(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let l=At().lineFitEpsilon,s=t+l,u=0,c=0,m=!1,f=0,p=0,b=0,v=0,x=-1,_=0;function R(){x=-1,_=0}function T(C=b,N=v,I=c){u++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:C,endGraphemeIndex:N,width:I}),c=0,m=!1,R()}function M(C,N){m=!0,f=C,p=0,b=C+1,v=0,c=N}function F(C,N,I){m=!0,f=C,p=N,b=C,v=N+1,c=I}function E(C,N){if(!m){M(C,N);return}c+=N,b=C+1,v=0}function S(C,N){let I=o[C];for(let W=N;W<I.length;W++){let U=I[W];m?c+U>s?(T(),F(C,W,U)):(c+=U,b=C,v=W+1):F(C,W,U)}m&&b===C&&v===I.length&&(b=C+1,v=0)}let A=0;for(;A<r.length&&!(!m&&(A=r1(e,A),A>=r.length));){let C=r[A],N=i[A],I=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!m){C>t&&o[A]!==null?S(A,0):M(A,C),I&&(x=A+1,_=c-C),A++;continue}if(c+C>s){if(I){E(A,C),T(A+1,0,c-C),A++;continue}if(x>=0){if(b>x||b===x&&v>0){T();continue}T(x,0,_);continue}if(C>t&&o[A]!==null){T(),S(A,0),A++;continue}T();continue}E(A,C),I&&(x=A+1,_=c-C),A++}return m&&T(),u}function cs(e,t,n){if(e.simpleLineWalkFastPath)return nm(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:l,discretionaryHyphenWidth:s,tabStopAdvance:u,chunks:c}=e;if(r.length===0||c.length===0)return 0;let m=At(),f=m.lineFitEpsilon,p=t+f,b=0,v=0,x=!1,_=0,R=0,T=0,M=0,F=-1,E=0,S=0,A=null;function C(){F=-1,E=0,S=0,A=null}function N(G=T,H=M,z=v){b++,n?.({startSegmentIndex:_,startGraphemeIndex:R,endSegmentIndex:G,endGraphemeIndex:H,width:z}),v=0,x=!1,C()}function I(G,H){x=!0,_=G,R=0,T=G+1,M=0,v=H}function W(G,H,z){x=!0,_=G,R=H,T=G,M=H+1,v=z}function U(G,H){if(!x){I(G,H);return}v+=H,T=G+1,M=0}function oe(G,H,z,X){if(!H)return;let we=G==="tab"?0:i[z],q=G==="tab"?X:o[z];F=z+1,E=v-X+we,S=v-X+q,A=G}function k(G,H){let z=l[G];for(let X=H;X<z.length;X++){let we=z[X];x?v+we>p?(N(),W(G,X,we)):(v+=we,T=G,M=X+1):W(G,X,we)}x&&T===G&&M===z.length&&(T=G+1,M=0)}function V(G){if(A!=="soft-hyphen")return!1;let H=l[G];if(H==null)return!1;let{fitCount:z,fittedWidth:X}=Qf(H,v,t,f,s);return z===0?!1:(v=X,T=G,M=z,C(),z===H.length?(T=G+1,M=0,!0):(N(G,z,X+s),k(G,z),!0))}function Q(G){b++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),C()}for(let G=0;G<c.length;G++){let H=c[G];if(H.startSegmentIndex===H.endSegmentIndex){Q(H);continue}x=!1,v=0,_=H.startSegmentIndex,R=0,T=H.startSegmentIndex,M=0,C();let z=H.startSegmentIndex;for(;z<H.endSegmentIndex;){let X=a[z],we=X==="space"||X==="preserved-space"||X==="tab"||X==="zero-width-break"||X==="soft-hyphen",q=X==="tab"?Jf(v,u):r[z];if(X==="soft-hyphen"){x&&(T=z+1,M=0,F=z+1,E=v+s,S=v+s,A=X),z++;continue}if(!x){q>t&&l[z]!==null?k(z,0):I(z,q),oe(X,we,z,q),z++;continue}if(v+q>p){let O=v+(X==="tab"?0:i[z]),j=v+(X==="tab"?q:o[z]);if(A==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&E<=p){N(F,0,S);continue}if(A==="soft-hyphen"&&V(z)){z++;continue}if(we&&O<=p){U(z,q),N(z+1,0,j),z++;continue}if(F>=0&&E<=p){if(T>F||T===F&&M>0){N();continue}let le=F;N(le,0,S),z=le;continue}if(q>t&&l[z]!==null){N(),k(z,0),z++;continue}N();continue}U(z,q),oe(X,we,z,q),z++}if(x){let X=F===H.consumedEndSegmentIndex?S:v;N(H.consumedEndSegmentIndex,0,X)}}return b}function rm(e,t,n,r){let i=e.chunks[n];if(i.startSegmentIndex===i.endSegmentIndex)return t.segmentIndex=i.consumedEndSegmentIndex,t.graphemeIndex=0,0;let{widths:o,lineEndFitAdvances:a,lineEndPaintAdvances:l,kinds:s,breakableFitAdvances:u,discretionaryHyphenWidth:c,tabStopAdvance:m}=e,f=At(),p=f.lineFitEpsilon,b=r+p,v=0,x=!1,_=t.segmentIndex,R=t.graphemeIndex,T=-1,M=0,F=0,E=null;function S(){T=-1,M=0,F=0,E=null}function A(k=_,V=R,Q=v){return x?(t.segmentIndex=k,t.graphemeIndex=V,Q):null}function C(k,V){x=!0,_=k+1,R=0,v=V}function N(k,V,Q){x=!0,_=k,R=V+1,v=Q}function I(k,V){if(!x){C(k,V);return}v+=V,_=k+1,R=0}function W(k,V,Q,G){if(!V)return;let H=k==="tab"?0:a[Q],z=k==="tab"?G:l[Q];T=Q+1,M=v-G+H,F=v-G+z,E=k}function U(k,V){let Q=u[k];for(let G=V;G<Q.length;G++){let H=Q[G];if(!x)N(k,G,H);else{if(v+H>b)return A();v+=H,_=k,R=G+1}}return x&&_===k&&R===Q.length&&(_=k+1,R=0),null}function oe(k){if(E!=="soft-hyphen"||T<0)return null;let V=u[k]??null;if(V!==null){let{fitCount:Q,fittedWidth:G}=Qf(V,v,r,p,c);if(Q===V.length)return v=G,_=k+1,R=0,S(),null;if(Q>0)return A(k,Q,G+c)}return M<=b?A(T,0,F):null}for(let k=t.segmentIndex;k<i.endSegmentIndex;k++){let V=s[k],Q=V==="space"||V==="preserved-space"||V==="tab"||V==="zero-width-break"||V==="soft-hyphen",G=k===t.segmentIndex?t.graphemeIndex:0,H=V==="tab"?Jf(v,m):o[k];if(V==="soft-hyphen"&&G===0){x&&(_=k+1,R=0,T=k+1,M=v+c,F=v+c,E=V);continue}if(!x){if(G>0){let X=U(k,G);if(X!==null)return X}else if(H>r&&u[k]!==null){let X=U(k,0);if(X!==null)return X}else C(k,H);W(V,Q,k,H);continue}if(v+H>b){let X=v+(V==="tab"?0:a[k]),we=v+(V==="tab"?H:l[k]);if(E==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&M<=b)return A(T,0,F);let q=oe(k);if(q!==null)return q;if(Q&&X<=b)return I(k,H),A(k+1,0,we);if(T>=0&&M<=b)return _>T||_===T&&R>0?A():A(T,0,F);if(H>r&&u[k]!==null){let P=A();if(P!==null)return P;let O=U(k,0);if(O!==null)return O}return A()}I(k,H),W(V,Q,k,H)}return T===i.consumedEndSegmentIndex&&R===0?A(i.consumedEndSegmentIndex,0,F):A(i.consumedEndSegmentIndex,0,v)}function a1(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,l=At().lineFitEpsilon,s=n+l,u=0,c=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,b=0;for(let v=t.segmentIndex;v<r.length;v++){let x=r[v],_=i[v],R=_==="space"||_==="preserved-space"||_==="tab"||_==="zero-width-break"||_==="soft-hyphen",T=v===t.segmentIndex?t.graphemeIndex:0,M=o[v];if(!c){if(T>0||x>n&&M!==null){let F=M,E=F[T];c=!0,u=E,m=v,f=T+1;for(let S=T+1;S<F.length;S++){let A=F[S];if(u+A>s)return t.segmentIndex=m,t.graphemeIndex=f,u;u+=A,m=v,f=S+1}m===v&&f===F.length&&(m=v+1,f=0)}else c=!0,u=x,m=v+1,f=0;R&&(p=v+1,b=u-x);continue}if(u+x>s)return R?(t.segmentIndex=v+1,t.graphemeIndex=0,u):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,u):(t.segmentIndex=p,t.graphemeIndex=0,b):(t.segmentIndex=m,t.graphemeIndex=f,u);u+=x,m=v+1,f=0,R&&(p=v+1,b=u-x)}return c?(t.segmentIndex=m,t.graphemeIndex=f,u):null}function s1(e,t,n){let r=em(e,t);return r<0?null:e.simpleLineWalkFastPath?a1(e,t,n):rm(e,t,r,n)}function im(e,t){if(e.widths.length===0)return{lineCount:0,maxLineWidth:0};let n={segmentIndex:0,graphemeIndex:0},r=0,i=0;if(!e.simpleLineWalkFastPath){let o=em(e,n);for(;o>=0;){let a=rm(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=o1(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=s1(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var ds=null;function l1(){return ds===null&&(ds=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ds}function u1(e){return e?{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 c1(e,t){let n=[],r=[],i=0,o=!1,a=!1,l=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,l=!1)}function u(m,f,p){r=[m],i=f,o=p,a=Li(m),l=pr.has(m)}function c(m,f){r.push(m),o=o||f;let p=Li(m);m.length===1&&vt.has(m)?a=a||p:a=p,l=!1}for(let m of l1().segment(e)){let f=m.segment,p=We(f);if(r.length===0){u(f,m.index,p);continue}if(l||Fi.has(f)||vt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){c(f,p);continue}if(!o&&!p){c(f,p);continue}s(),u(f,m.index,p)}return s(),n}function d1(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=We(e[0].text),o=Mi(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let l=1;l<e.length;l++){let s=e[l],u=We(s.text),c=Mi(s.text);if(i&&o){n.push(s.text),i=i||u,o=c;continue}a(),n=[s.text],r=s.start,i=u,o=c}return a(),t}function f1(e,t,n,r){let i=At(),{cache:o,emojiCorrection:a}=Xf(t,Kf(e.normalized)),l=St("-",st("-",o),a),u=St(" ",st(" ",o),a)*8;if(e.len===0)return u1(n);let c=[],m=[],f=[],p=[],b=e.chunks.length<=1,v=n?[]:null,x=[],_=n?[]:null,R=Array.from({length:e.len});function T(S,A,C,N,I,W,U){I!=="text"&&I!=="space"&&I!=="zero-width-break"&&(b=!1),c.push(A),m.push(C),f.push(N),p.push(I),v?.push(W),x.push(U),_!==null&&_.push(S)}function M(S,A,C,N,I){let W=st(S,o),U=St(S,W,a),oe=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:U,k=A==="space"||A==="zero-width-break"?0:U;if(I&&N&&S.length>1){let V="sum-graphemes";mr(S)?V="pair-context":i.preferPrefixWidthsForBreakableRuns&&(V="segment-prefixes");let Q=Yf(S,W,o,a,V);T(S,U,oe,k,A,C,Q);return}T(S,U,oe,k,A,C,null)}for(let S=0;S<e.len;S++){R[S]=c.length;let A=e.texts[S],C=e.isWordLike[S],N=e.kinds[S],I=e.starts[S];if(N==="soft-hyphen"){T(A,0,l,l,N,I,null);continue}if(N==="hard-break"){T(A,0,0,0,N,I,null);continue}if(N==="tab"){T(A,0,0,0,N,I,null);continue}let W=st(A,o);if(N==="text"&&W.containsCJK){let U=c1(A,i),oe=r==="keep-all"?d1(U):U;for(let k=0;k<oe.length;k++){let V=oe[k];M(V.text,"text",I+V.start,C,r==="keep-all"||!We(V.text))}continue}M(A,N,I,C,!0)}let F=m1(e.chunks,R,c.length),E=v===null?null:Lf(e.normalized,v);return _!==null?{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F,segments:_}:{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F}}function m1(e,t,n){let r=[];for(let i=0;i<e.length;i++){let o=e[i],a=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,l=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:l,consumedEndSegmentIndex:s})}return r}function om(e,t,n,r){let i=r?.wordBreak??"normal",o=zf(e,At(),r?.whiteSpace,i);return f1(o,t,n,i)}function Di(e,t,n){return om(e,t,!1,n)}function am(e,t,n){return om(e,t,!0,n)}function Ii(e,t,n){let r=tm(e,t);return{lineCount:r,height:r*n}}function p1(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function h1(e,t,n){return e.widths.length===0?0:cs(e,t,r=>{n(p1(r))})}function sm(e,t){return im(e,t)}function lm(e){let t=0;return h1(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var g1={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function um(e,t){let n={...g1,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=Di(e,o),{lineCount:l}=Ii(a,n.maxWidth,i*r);if(l<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var cm={prepare:Di,layout:Ii,prepareWithSegments:am,measureLineStats:sm,measureNaturalWidth:lm};window.__timelines=window.__timelines||{};Md();window.__hyperframes={fitTextFontSize:um,getVariables:Hs,pretext:cm,registerRuntimeDataHandler:kf,setRuntimeData:Ti,clearRuntimeData:Ri};function dm(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ff())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",dm,{once:!0}):dm();})();\n';
58787
+ RUNTIME_IIFE = '"use strict";(()=>{var Dm=Object.create;var Yi=Object.defineProperty;var Im=Object.getOwnPropertyDescriptor;var Pm=Object.getOwnPropertyNames;var Om=Object.getPrototypeOf,Hm=Object.prototype.hasOwnProperty;var Gm=(e,t,n)=>t in e?Yi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ie=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Bm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Pm(t))!Hm.call(e,i)&&i!==n&&Yi(e,i,{get:()=>t[i],enumerable:!(r=Im(t,i))||r.enumerable});return e};var Um=(e,t,n)=>(n=e!=null?Dm(Om(e)):{},Bm(t||!e||!e.__esModule?Yi(n,"default",{value:e,enumerable:!0}):n,e));var ge=(e,t,n)=>Gm(e,typeof t!="symbol"?t+"":t,n);var _u=ie((YS,jo)=>{var Z=String,Cu=function(){return{isColorSupported:!1,reset:Z,bold:Z,dim:Z,italic:Z,underline:Z,inverse:Z,hidden:Z,strikethrough:Z,black:Z,red:Z,green:Z,yellow:Z,blue:Z,magenta:Z,cyan:Z,white:Z,gray:Z,bgBlack:Z,bgRed:Z,bgGreen:Z,bgYellow:Z,bgBlue:Z,bgMagenta:Z,bgCyan:Z,bgWhite:Z,blackBright:Z,redBright:Z,greenBright:Z,yellowBright:Z,blueBright:Z,magentaBright:Z,cyanBright:Z,whiteBright:Z,bgBlackBright:Z,bgRedBright:Z,bgGreenBright:Z,bgYellowBright:Z,bgBlueBright:Z,bgMagentaBright:Z,bgCyanBright:Z,bgWhiteBright:Z}};jo.exports=Cu();jo.exports.createColors=Cu});var Ko=ie(()=>{});var jr=ie((QS,ku)=>{"use strict";var Tu=_u(),Ru=Ko(),Hn=class e extends Error{constructor(t,n,r,i,o,a){super(t),this.name="CssSyntaxError",this.reason=t,o&&(this.file=o),i&&(this.source=i),a&&(this.plugin=a),typeof n<"u"&&typeof r<"u"&&(typeof n=="number"?(this.line=n,this.column=r):(this.line=n.line,this.column=n.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}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(t){if(!this.source)return"";let n=this.source;t==null&&(t=Tu.isColorSupported);let r=c=>c,i=c=>c,o=c=>c;if(t){let{bold:c,gray:m,red:f}=Tu.createColors(!0);i=p=>c(f(p)),r=p=>m(p),Ru&&(o=p=>Ru(p))}let a=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),u=String(s).length;return a.slice(l,s).map((c,m)=>{let f=l+1+m,p=" "+(" "+f).slice(-u)+" | ";if(f===this.line){if(c.length>160){let v=20,x=Math.max(0,this.column-v),_=Math.max(this.column+v,this.endColumn+v),R=c.slice(x,_),T=r(p.replace(/\\d/g," "))+c.slice(0,Math.min(this.column-1,v-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(R)+`\n `+T+i("^")}let b=r(p.replace(/\\d/g," "))+c.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(c)+`\n `+b+i("^")}return" "+r(p)+o(c)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};ku.exports=Hn;Hn.default=Hn});var Yo=ie((ZS,Fu)=>{"use strict";var o0=/(<)(\\/?style\\b)/gi,a0=/(<)(!--)/g;function ht(e){return typeof e!="string"||!e.includes("<")?e:e.replace(o0,"\\\\3c $2").replace(a0,"\\\\3c $2")}var Mu={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function s0(e){return e[0].toUpperCase()+e.slice(1)}var Gn=class{constructor(t){this.builder=t}atrule(t,n){let r=t.raws,i="@"+t.name,o=t.params?this.rawValue(t,"params"):"";if(typeof r.afterName<"u"?i+=r.afterName:o&&(i+=" "),t.nodes)this.block(t,i+o);else{let a=(r.between||"")+(n?";":"");this.builder(ht(i+o+a),t)}}beforeAfter(t,n){let r;t.type==="decl"?r=this.raw(t,null,"beforeDecl"):t.type==="comment"?r=this.raw(t,null,"beforeComment"):n==="before"?r=this.raw(t,null,"beforeRule"):r=this.raw(t,null,"beforeClose");let i=t.parent,o=0;for(;i&&i.type!=="root";)o+=1,i=i.parent;if(r.includes(`\n`)){let a=this.raw(t,null,"indent");if(a.length)for(let l=0;l<o;l++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(ht(n+r)+"{",t,"start");let i;t.nodes&&t.nodes.length?(this.body(t),i=this.raw(t,"after")):i=this.raw(t,"after","emptyBody"),i&&this.builder(ht(i)),this.builder("}",t,"end")}body(t){let n=t.nodes,r=n.length-1;for(;r>0&&n[r].type==="comment";)r-=1;let i=this.raw(t,"semicolon"),o=t.type==="document";for(let a=0;a<n.length;a++){let l=n[a],s=this.raw(l,"before");s&&this.builder(o?s:ht(s)),this.stringify(l,r!==a||i)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(ht("/*"+n+t.text+r+"*/"),t)}decl(t,n){let r=t.raws,i=this.raw(t,"between","colon"),o=t.prop+i+this.rawValue(t,"value");t.important&&(o+=r.important||" !important"),n&&(o+=";"),this.builder(ht(o),t)}document(t){this.body(t)}raw(t,n,r){let i;if(r||(r=n),n&&(i=t.raws[n],typeof i<"u"))return i;let o=t.parent;if(r==="before"&&(!o||o.type==="root"&&o.first===t||o&&o.type==="document"))return"";if(!o)return Mu[r];let a=t.root(),l=a.rawCache||(a.rawCache={});if(typeof l[r]<"u")return l[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+s0(r);this[s]?i=this[s](a,t):a.walk(u=>{if(i=u.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=Mu[r]),l[r]=i,i}rawBeforeClose(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<"u")return n=r.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(t,n){let r;return t.walkComments(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeDecl"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeDecl(t,n){let r;return t.walkDecls(i=>{if(typeof i.raws.before<"u")return r=i.raws.before,r.includes(`\n`)&&(r=r.replace(/[^\\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(n,null,"beforeRule"):r&&(r=r.replace(/\\S/g,"")),r}rawBeforeOpen(t){let n;return t.walk(r=>{if(r.type!=="decl"&&(n=r.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(r=>{if(r.nodes&&(r.parent!==t||t.first!==r)&&typeof r.raws.before<"u")return n=r.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(t){let n;return t.walkDecls(r=>{if(typeof r.raws.between<"u")return n=r.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length===0&&(n=r.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(r=>{let i=r.parent;if(i&&i!==t&&i.parent&&i.parent===t&&typeof r.raws.before<"u"){let o=r.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type==="decl"&&(n=r.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let r=t[n],i=t.raws[n];return i&&i.value===r?i.raw:r}root(t){if(this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:ht(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(ht(t.raws.ownSemicolon),t,"end")}stringify(t,n){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,n)}};Fu.exports=Gn;Gn.default=Gn});var Bn=ie((eA,Nu)=>{"use strict";var l0=Yo();function Xo(e,t){new l0(t).stringify(e)}Nu.exports=Xo;Xo.default=Xo});var Kr=ie((tA,Jo)=>{"use strict";Jo.exports.isClean=Symbol("isClean");Jo.exports.my=Symbol("my")});var Vn=ie((nA,Lu)=>{"use strict";var u0=jr(),c0=Yo(),d0=Bn(),{isClean:Un,my:f0}=Kr();function Qo(e,t){let n=new e.constructor;for(let r in e){if(!Object.prototype.hasOwnProperty.call(e,r)||r==="proxyCache")continue;let i=e[r],o=typeof i;r==="parent"&&o==="object"?t&&(n[r]=t):r==="source"?n[r]=i:Array.isArray(i)?n[r]=i.map(a=>Qo(a,n)):(o==="object"&&i!==null&&(i=Qo(i)),n[r]=i)}return n}function nt(e,t){if(t&&typeof t.offset<"u")return t.offset;let n=1,r=1,i=0;for(let o=0;o<e.length;o++){if(r===t.line&&n===t.column){i=o;break}e[o]===`\n`?(n=1,r+=1):n+=1}return i}var Wn=class{get proxyOf(){return this}constructor(t={}){this.raws={},this[Un]=!1,this[f0]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"?this.append(r.clone()):this.append(r)}else this[n]=t[n]}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\\n\\s{4}at /.test(t.stack)){let n=this.source;t.stack=t.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return t}after(t){return this.parent.insertAfter(this,t),this}assign(t={}){for(let n in t)this[n]=t[n];return this}before(t){return this.parent.insertBefore(this,t),this}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}clone(t={}){let n=Qo(this);for(let r in t)n[r]=t[r];return n}cloneAfter(t={}){let n=this.clone(t);return this.parent.insertAfter(this,n),n}cloneBefore(t={}){let n=this.clone(t);return this.parent.insertBefore(this,n),n}error(t,n={}){if(this.source){let{end:r,start:i}=this.rangeBy(n);return this.source.input.error(t,{column:i.column,line:i.line},{column:r.column,line:r.line},n)}return new u0(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[Un]=!0}markDirty(){if(this[Un]){this[Un]=!1;let t=this;for(;t=t.parent;)t[Un]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t={}){let n=this.source.start;if(t.index)n=this.positionInside(t.index);else if(t.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,o=r.slice(nt(r,this.source.start),nt(r,this.source.end)).indexOf(t.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(t){let n=this.source.start.column,r=this.source.start.line,i="document"in this.source.input?this.source.input.document:this.source.input.css,o=nt(i,this.source.start),a=o+t;for(let l=o;l<a;l++)i[l]===`\n`?(n=1,r+=1):n+=1;return{column:n,line:r,offset:a}}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}rangeBy(t={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,r={column:this.source.start.column,line:this.source.start.line,offset:nt(n,this.source.start)},i=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:nt(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(nt(n,this.source.start),nt(n,this.source.end)).indexOf(t.word);a!==-1&&(r=this.positionInside(a),i=this.positionInside(a+t.word.length))}else t.start?r={column:t.start.column,line:t.start.line,offset:nt(n,t.start)}:t.index&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:nt(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):t.index&&(i=this.positionInside(t.index+1));return(i.line<r.line||i.line===r.line&&i.column<=r.column)&&(i={column:r.column+1,line:r.line,offset:r.offset+1}),{end:i,start:r}}raw(t,n){return new c0().raw(this,t,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...t){if(this.parent){let n=this,r=!1;for(let i of t)i===this?r=!0:r?(this.parent.insertAfter(n,i),n=i):this.parent.insertBefore(n,i);r||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,n){let r={},i=n==null;n=n||new Map;let o=0;for(let a in this){if(!Object.prototype.hasOwnProperty.call(this,a)||a==="parent"||a==="proxyCache")continue;let l=this[a];if(Array.isArray(l))r[a]=l.map(s=>typeof s=="object"&&s.toJSON?s.toJSON(null,n):s);else if(typeof l=="object"&&l.toJSON)r[a]=l.toJSON(null,n);else if(a==="source"){if(l==null)continue;let s=n.get(l.input);s==null&&(s=o,n.set(l.input,o),o++),r[a]={end:l.end,inputId:s,start:l.start}}else r[a]=l}return i&&(r.inputs=[...n.keys()].map(a=>a.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=d0){t.stringify&&(t=t.stringify);let n="";return t(this,r=>{n+=r}),n}warn(t,n,r={}){let i={node:this};for(let o in r)i[o]=r[o];return t.warn(n,i)}};Lu.exports=Wn;Wn.default=Wn});var qn=ie((rA,Du)=>{"use strict";var m0=Vn(),zn=class extends m0{constructor(t){super(t),this.type="comment"}};Du.exports=zn;zn.default=zn});var jn=ie((iA,Iu)=>{"use strict";var p0=Vn(),$n=class extends p0{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(t){t&&typeof t.value<"u"&&typeof t.value!="string"&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}};Iu.exports=$n;$n.default=$n});var gt=ie((oA,zu)=>{"use strict";var Pu=qn(),Ou=jn(),h0=Vn(),{isClean:Hu,my:Gu}=Kr(),Zo,Bu,Uu,ea;function Wu(e){return e.map(t=>(t.nodes&&(t.nodes=Wu(t.nodes)),delete t.source,t))}function Vu(e){if(e[Hu]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Vu(t)}var Ue=class e extends h0{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(...t){for(let n of t){let r=this.normalize(n,this.last);for(let i of r)this.proxyOf.nodes.push(i)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),r,i;for(;this.indexes[n]<this.proxyOf.nodes.length&&(r=this.indexes[n],i=t(this.proxyOf.nodes[r],r),i!==!1);)this.indexes[n]+=1;return delete this.indexes[n],i}every(t){return this.nodes.every(t)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:t[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...r)=>t[n](...r.map(i=>typeof i=="function"?(o,a)=>i(o.toProxy(),a):i)):n==="every"||n==="some"?r=>t[n]((i,...o)=>r(i.toProxy(),...o)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(r=>r.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,r){return t[n]===r||(t[n]=r,(n==="name"||n==="params"||n==="selector")&&t.markDirty()),!0}}}index(t){return typeof t=="number"?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}insertAfter(t,n){let r=this.index(t),i=this.normalize(n,this.proxyOf.nodes[r]).reverse();r=this.index(t);for(let a of i)this.proxyOf.nodes.splice(r+1,0,a);let o;for(let a in this.indexes)o=this.indexes[a],r<o&&(this.indexes[a]=o+i.length);return this.markDirty(),this}insertBefore(t,n){let r=this.index(t),i=r===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[r],i).reverse();r=this.index(t);for(let l of o)this.proxyOf.nodes.splice(r,0,l);let a;for(let l in this.indexes)a=this.indexes[l],r<=a&&(this.indexes[l]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=Wu(Bu(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let i of t)i.parent&&i.parent.removeChild(i,"ignore")}else if(t.type)t=[t];else if(t.prop){if(typeof t.value>"u")throw new Error("Value field is missed in node creation");typeof t.value!="string"&&(t.value=String(t.value)),t=[new Ou(t)]}else if(t.selector||t.selectors)t=[new ea(t)];else if(t.name)t=[new Zo(t)];else if(t.text)t=[new Pu(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[Gu]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[Hu]&&Vu(i),i.raws||(i.raws={}),typeof i.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(i.raws.before=n.raws.before.replace(/\\S/g,"")),i.parent=this.proxyOf,i))}prepend(...t){t=t.reverse();for(let n of t){let r=this.normalize(n,this.first,"prepend").reverse();for(let i of r)this.proxyOf.nodes.unshift(i);for(let i in this.indexes)this.indexes[i]=this.indexes[i]+r.length}return this.markDirty(),this}push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(t){t=this.index(t),this.proxyOf.nodes[t].parent=void 0,this.proxyOf.nodes.splice(t,1);let n;for(let r in this.indexes)n=this.indexes[r],n>=t&&(this.indexes[r]=n-1);return this.markDirty(),this}replaceValues(t,n,r){return r||(r=n,n={}),this.walkDecls(i=>{n.props&&!n.props.includes(i.prop)||n.fast&&!i.value.includes(n.fast)||(i.value=i.value.replace(t,r))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,r)=>{let i;try{i=t(n,r)}catch(o){throw n.addToError(o)}return i!==!1&&n.walk&&(i=n.walk(t)),i})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="atrule"&&t.test(r.name))return n(r,i)}):this.walk((r,i)=>{if(r.type==="atrule"&&r.name===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="atrule")return n(r,i)}))}walkComments(t){return this.walk((n,r)=>{if(n.type==="comment")return t(n,r)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="decl"&&t.test(r.prop))return n(r,i)}):this.walk((r,i)=>{if(r.type==="decl"&&r.prop===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="decl")return n(r,i)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((r,i)=>{if(r.type==="rule"&&t.test(r.selector))return n(r,i)}):this.walk((r,i)=>{if(r.type==="rule"&&r.selector===t)return n(r,i)}):(n=t,this.walk((r,i)=>{if(r.type==="rule")return n(r,i)}))}};Ue.registerParse=e=>{Bu=e};Ue.registerRule=e=>{ea=e};Ue.registerAtRule=e=>{Zo=e};Ue.registerRoot=e=>{Uu=e};zu.exports=Ue;Ue.default=Ue;Ue.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,Zo.prototype):e.type==="rule"?Object.setPrototypeOf(e,ea.prototype):e.type==="decl"?Object.setPrototypeOf(e,Ou.prototype):e.type==="comment"?Object.setPrototypeOf(e,Pu.prototype):e.type==="root"&&Object.setPrototypeOf(e,Uu.prototype),e[Gu]=!0,e.nodes&&e.nodes.forEach(t=>{Ue.rebuild(t)})}});var Yr=ie((aA,$u)=>{"use strict";var qu=gt(),Xt=class extends qu{constructor(t){super(t),this.type="atrule"}append(...t){return this.proxyOf.nodes||(this.nodes=[]),super.append(...t)}prepend(...t){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...t)}};$u.exports=Xt;Xt.default=Xt;qu.registerAtRule(Xt)});var Xr=ie((sA,Yu)=>{"use strict";var g0=gt(),ju,Ku,Mt=class extends g0{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new ju(new Ku,this,t).stringify()}};Mt.registerLazyResult=e=>{ju=e};Mt.registerProcessor=e=>{Ku=e};Yu.exports=Mt;Mt.default=Mt});var Ju=ie((lA,Xu)=>{var b0="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",x0=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i--;)r+=e[Math.random()*e.length|0];return r},y0=(e=21)=>{let t="",n=e|0;for(;n--;)t+=b0[Math.random()*64|0];return t};Xu.exports={nanoid:y0,customAlphabet:x0}});var Jr=ie(()=>{});var Qr=ie(()=>{});var ta=ie(()=>{});var Qu=ie(()=>{});var ra=ie((bA,tc)=>{"use strict";var{existsSync:v0,readFileSync:S0}=Qu(),{dirname:na,join:A0}=Jr(),{SourceMapConsumer:Zu,SourceMapGenerator:ec}=Qr();function E0(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Kn=class{constructor(t,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let r=n.map?n.map.prev:void 0,i=this.loadMap(n.from,r);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=na(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new Zu(this.json||this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\\/json;charset=utf-?8;base64,/,r=/^data:application\\/json;base64,/,i=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,a=t.match(i)||t.match(o);if(a)return decodeURIComponent(t.substr(a[0].length));let l=t.match(n)||t.match(r);if(l)return E0(t.substr(l[0].length));let s=t.slice(22);throw s=s.slice(0,s.indexOf(",")),new Error("Unsupported source map encoding "+s)}getAnnotationURL(t){return t.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(t){return typeof t!="object"?!1:typeof t.mappings=="string"||typeof t._mappings=="string"||Array.isArray(t.sections)}loadAnnotation(t){let n=t.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let r=t.lastIndexOf(n.pop()),i=t.indexOf("*/",r);r>-1&&i>-1&&(this.annotation=this.getAnnotationURL(t.substring(r,i)))}loadFile(t,n,r){if(!(!r&&!this.unsafeMap&&!/\\.map$/i.test(t))&&(this.root=na(t),v0(t)))return this.mapFile=t,S0(t,"utf-8").toString().trim()}loadMap(t,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let r=n(t);if(r){let i=this.loadFile(r,t,!0);if(!i)throw new Error("Unable to load previous source map: "+r.toString());return i}}else{if(n instanceof Zu)return ec.fromSourceMap(n).toString();if(n instanceof ec)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 r=this.annotation;t&&(r=A0(na(t),r));let i=this.loadFile(r,t,!1);if(i)try{this.json=JSON.parse(i.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return i}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};tc.exports=Kn;Kn.default=Kn});var Yn=ie((xA,ac)=>{"use strict";var{nanoid:w0}=Ju(),{isAbsolute:aa,resolve:sa}=Jr(),{SourceMapConsumer:C0,SourceMapGenerator:_0}=Qr(),{fileURLToPath:nc,pathToFileURL:Zr}=ta(),rc=jr(),T0=ra(),ia=Ko(),oa=Symbol("lineToIndexCache"),R0=!!(C0&&_0),ic=!!(sa&&aa);function oc(e){if(e[oa])return e[oa];let t=e.css.split(`\n`),n=new Array(t.length),r=0;for(let i=0,o=t.length;i<o;i++)n[i]=r,r+=t[i].length+1;return e[oa]=n,n}var Jt=class{get from(){return this.file||this.id}constructor(t,n={}){if(t===null||typeof t>"u"||typeof t=="object"&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.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&&(!ic||/^\\w+:\\/\\//.test(n.from)||aa(n.from)?this.file=n.from:this.file=sa(n.from)),ic&&R0){let r=new T0(this.css,n);if(r.text){this.map=r;let i=r.consumer().file;!this.file&&i&&(this.file=this.mapResolve(i))}}this.file||(this.id="<input css "+w0(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,l,s,u;if(n&&typeof n=="object"){let m=n,f=r;if(typeof m.offset=="number"){s=m.offset;let p=this.fromOffset(s);n=p.line,r=p.col}else n=m.line,r=m.column,s=this.fromLineAndColumn(n,r);if(typeof f.offset=="number"){l=f.offset;let p=this.fromOffset(l);a=p.line,o=p.col}else a=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(r)s=this.fromLineAndColumn(n,r);else{s=n;let m=this.fromOffset(s);n=m.line,r=m.col}let c=this.origin(n,r,a,o);return c?u=new rc(t,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,i.plugin):u=new rc(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),u.input={column:r,endColumn:o,endLine:a,endOffset:l,line:n,offset:s,source:this.css},this.file&&(Zr&&(u.input.url=Zr(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(t,n){return oc(this)[t-1]+n-1}fromOffset(t){let n=oc(this),r=n[n.length-1],i=0;if(t>=r)i=n.length-1;else{let o=n.length-2,a;for(;i<o;)if(a=i+(o-i>>1),t<n[a])o=a-1;else if(t>=n[a+1])i=a+1;else{i=a;break}}return{col:t-n[i]+1,line:i+1}}mapResolve(t){return/^\\w+:\\/\\//.test(t)?t:sa(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,r,i){if(!this.map)return!1;let o=this.map.consumer(),a=o.originalPositionFor({column:n,line:t});if(!a.source)return!1;let l;typeof r=="number"&&(l=o.originalPositionFor({column:i,line:r}));let s;aa(a.source)?s=Zr(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Zr(this.map.mapFile));let u={column:a.column,endColumn:l&&l.column,endLine:l&&l.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(nc)u.file=nc(s);else throw new Error("file: protocol is not available in this PostCSS build");let c=o.sourceContentFor(a.source);return c&&(u.source=c),u}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}};ac.exports=Jt;Jt.default=Jt;ia&&ia.registerInput&&ia.registerInput(Jt)});var Qt=ie((yA,cc)=>{"use strict";var sc=gt(),lc,uc,bt=class extends sc{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=super.normalize(t);if(n){if(r==="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 i)o.raws.before=n.raws.before}return i}removeChild(t,n){let r=this.index(t);return!n&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(t)}toResult(t={}){return new lc(new uc,this,t).stringify()}};bt.registerLazyResult=e=>{lc=e};bt.registerProcessor=e=>{uc=e};cc.exports=bt;bt.default=bt;sc.registerRoot(bt)});var la=ie((vA,dc)=>{"use strict";var Xn={comma(e){return Xn.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return Xn.split(e,t)},split(e,t,n){let r=[],i="",o=!1,a=0,l=!1,s="",u=!1;for(let c of e)u?u=!1:c==="\\\\"?u=!0:l?c===s&&(l=!1):c===\'"\'||c==="\'"?(l=!0,s=c):c==="("?a+=1:c===")"?a>0&&(a-=1):a===0&&t.includes(c)&&(o=!0),o?(i!==""&&r.push(i.trim()),i="",o=!1):i+=c;return(n||i!=="")&&r.push(i.trim()),r}};dc.exports=Xn;Xn.default=Xn});var ei=ie((SA,mc)=>{"use strict";var fc=gt(),k0=la(),Zt=class extends fc{get selectors(){return k0.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\\s*/):null,r=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(r)}constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}};mc.exports=Zt;Zt.default=Zt;fc.registerRule(Zt)});var hc=ie((AA,pc)=>{"use strict";var M0=Yr(),F0=qn(),N0=jn(),L0=Yn(),D0=ra(),I0=Qt(),P0=ei();function Jn(e,t){if(Array.isArray(e))return e.map(i=>Jn(i));let{inputs:n,...r}=e;if(n){t=[];for(let i of n){let o={...i,__proto__:L0.prototype};o.map&&(o.map={...o.map,__proto__:D0.prototype}),t.push(o)}}if(r.nodes&&(r.nodes=e.nodes.map(i=>Jn(i,t))),r.source){let{inputId:i,...o}=r.source;r.source=o,i!=null&&(r.source.input=t[i])}if(r.type==="root")return new I0(r);if(r.type==="decl")return new N0(r);if(r.type==="rule")return new P0(r);if(r.type==="comment")return new F0(r);if(r.type==="atrule")return new M0(r);throw new Error("Unknown node type: "+e.type)}pc.exports=Jn;Jn.default=Jn});var ca=ie((EA,Sc)=>{"use strict";var{dirname:ti,relative:bc,resolve:xc,sep:yc}=Jr(),{SourceMapConsumer:vc,SourceMapGenerator:ni}=Qr(),{pathToFileURL:gc}=ta(),O0=Yn(),H0=!!(vc&&ni),G0=!!(ti&&xc&&bc&&yc),ua=class{constructor(t,n,r,i){this.stringify=t,this.mapOpts=r.map||{},this.root=n,this.opts=r,this.css=i,this.originalCSS=i,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let t;this.isInline()?t="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?t=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?t=this.mapOpts.annotation(this.opts.to,this.root):t=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+t+" */"}applyPrevMaps(){for(let t of this.previous()){let n=this.toUrl(this.path(t.file)),r=t.root||ti(t.file),i;this.mapOpts.sourcesContent===!1?(i=new vc(t.text),i.sourcesContent&&(i.sourcesContent=null)):i=t.consumer(),this.map.applySourceMap(i,n,this.toUrl(this.path(r)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let t;for(;(t=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",t+3);if(n===-1)break;for(;t>0&&this.css[t-1]===`\n`;)t--;this.css=this.css.slice(0,t)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),G0&&H0&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,n=>{t+=n}),[t]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=ni.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new ni({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 ni({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,r="<no source>",i={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,a;this.stringify(this.root,(l,s,u)=>{if(this.css+=l,s&&u!=="end"&&(i.generated.line=t,i.generated.column=n-1,s.source&&s.source.start?(i.source=this.sourcePath(s),i.original.line=s.source.start.line,i.original.column=s.source.start.column-1,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,this.map.addMapping(i))),a=l.match(/\\n/g),a?(t+=a.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,s&&u!=="start"){let c=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==c.last||c.raws.semicolon)&&(s.source&&s.source.end?(i.source=this.sourcePath(s),i.original.line=s.source.end.line,i.original.column=s.source.end.column-1,i.generated.line=t,i.generated.column=n-2,this.map.addMapping(i)):(i.source=r,i.original.line=1,i.original.column=0,i.generated.line=t,i.generated.column=n-1,this.map.addMapping(i)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(t=>t.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let t=this.mapOpts.annotation;return typeof t<"u"&&t!==!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(t=>t.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(t){if(this.mapOpts.absolute||t.charCodeAt(0)===60||/^\\w+:\\/\\//.test(t))return t;let n=this.memoizedPaths.get(t);if(n)return n;let r=this.opts.to?ti(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=ti(xc(r,this.mapOpts.annotation)));let i=bc(r,t);return this.memoizedPaths.set(t,i),i}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(t=>{if(t.source&&t.source.input.map){let n=t.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let t=new O0(this.originalCSS,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}setSourcesContent(){let t={};if(this.root)this.root.walk(n=>{if(n.source){let r=n.source.input.from;if(r&&!t[r]){t[r]=!0;let i=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(i,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(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}toFileUrl(t){let n=this.memoizedFileURLs.get(t);if(n)return n;if(gc){let r=gc(t).toString();return this.memoizedFileURLs.set(t,r),r}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(t){let n=this.memoizedURLs.get(t);if(n)return n;yc==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Sc.exports=ua});var wc=ie((wA,Ec)=>{"use strict";var ri=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,ii=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,B0=/.[\\r\\n"\'(/\\\\]/,Ac=/[\\da-f]/i;Ec.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,l,s,u,c,m,f,p,b,v=r.length,x=0,_=[],R=[],T=-1;function M(){return x}function F(C){throw t.error("Unclosed "+C,x)}function E(){return R.length===0&&x>=v}function S(C){if(R.length)return R.pop();if(x>=v)return;let N=C?C.ignoreUnclosed:!1;switch(o=r.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{s=x;do s+=1,o=r.charCodeAt(s);while(o===32||o===10||o===9||o===13||o===12);c=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let I=String.fromCharCode(o);c=[I,I,x];break}case 40:{if(b=_.length?_.pop()[1]:"",p=r.charCodeAt(x+1),b==="url"&&p!==39&&p!==34&&p!==32&&p!==10&&p!==9&&p!==12&&p!==13){s=x;do{if(m=!1,s=r.indexOf(")",s+1),s===-1)if(i||N){s=x;break}else F("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["brackets",r.slice(x,s+1),x,s],x=s}else x<=T?c=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||B0.test(a)?(T=s===-1?v:s,c=["(","(",x]):(c=["brackets",a,x,s],x=s));break}case 39:case 34:{u=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(u,s+1),s===-1)if(i||N){s=x+1;break}else F("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);c=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{ri.lastIndex=x+1,ri.test(r),ri.lastIndex===0?s=r.length-1:s=ri.lastIndex-2,c=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,l=!0;r.charCodeAt(s+1)===92;)s+=1,l=!l;if(o=r.charCodeAt(s+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Ac.test(r.charAt(s)))){for(;Ac.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}c=["word",r.slice(x,s+1),x,s],x=s;break}default:{o===47&&r.charCodeAt(x+1)===42?(s=r.indexOf("*/",x+2)+1,s===0&&(i||N?s=r.length:F("comment")),c=["comment",r.slice(x,s+1),x,s],x=s):(ii.lastIndex=x+1,ii.test(r),ii.lastIndex===0?s=r.length-1:s=ii.lastIndex-2,c=["word",r.slice(x,s+1),x,s],_.push(c),x=s);break}}return x++,c}function A(C){R.push(C)}return{back:A,endOfFile:E,nextToken:S,position:M}}});var Rc=ie((CA,Tc)=>{"use strict";var U0=Yr(),W0=qn(),V0=jn(),z0=Qt(),Cc=ei(),q0=wc(),_c={empty:!0,space:!0};function $0(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}var da=class{constructor(t){this.input=t,this.root=new z0,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:t,start:{column:1,line:1,offset:0}}}atrule(t){let n=new U0;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,l=!1,s=[],u=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?u.push(r==="("?")":"]"):r==="{"&&u.length>0?u.push("}"):r===u[u.length-1]&&u.pop(),u.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){l=!0;break}else if(r==="}"){if(s.length>0){for(o=s.length-1,i=s[o];i&&i[0]==="space";)i=s[--o];i&&(n.source.end=this.getPosition(i[3]||i[2]),n.source.end.offset++)}this.end(t);break}else s.push(t);else s.push(t);if(this.tokenizer.endOfFile()){a=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(s),s.length?(n.raws.afterName=this.spacesAndCommentsFromStart(s),this.raw(n,"params",s),a&&(t=s[s.length-1],n.source.end=this.getPosition(t[3]||t[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(t){let n=this.colon(t);if(n===!1)return;let r=0,i;for(let o=n-1;o>=0&&(i=t[o],!(i[0]!=="space"&&(r+=1,r===2)));o--);throw this.input.error("Missed semicolon",i[0]==="word"?i[3]+1:i[2])}colon(t){let n=0,r,i,o;for(let[a,l]of t.entries()){if(i=l,o=i[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!r)this.doubleColon(i);else{if(r[0]==="word"&&r[1]==="progid")continue;return a}r=i}return!1}comment(t){let n=new W0;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let r=t[1].slice(2,-2);if(!r.trim())n.text="",n.raws.left=r,n.raws.right="";else{let i=r.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=i[2],n.raws.left=i[1],n.raws.right=i[3]}}createTokenizer(){this.tokenizer=q0(this.input)}decl(t,n){let r=new V0;this.init(r,t[0][2]);let i=t[t.length-1];for(i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||$0(t)),r.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),r.raws.before+=t.shift()[1];for(r.source.start=this.getPosition(t[0][2]),r.prop="";t.length;){let u=t[0][0];if(u===":"||u==="space"||u==="comment")break;r.prop+=t.shift()[1]}r.raws.between="";let o;for(;t.length;)if(o=t.shift(),o[0]===":"){r.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),r.raws.between+=o[1];(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let a=[],l;for(;t.length&&(l=t[0][0],!(l!=="space"&&l!=="comment"));)a.push(t.shift());this.precheckMissedSemicolon(t);for(let u=t.length-1;u>=0;u--){if(o=t[u],o[1].toLowerCase()==="!important"){r.important=!0;let c=this.stringFrom(t,u);c=this.spacesFromEnd(t)+c,c!==" !important"&&(r.raws.important=c);break}else if(o[1].toLowerCase()==="important"){let c=t.slice(0),m="";for(let f=u;f>0;f--){let p=c[f][0];if(m.trim().startsWith("!")&&p!=="space")break;m=c.pop()[1]+m}m.trim().startsWith("!")&&(r.important=!0,r.raws.important=m,t=c)}if(o[0]!=="space"&&o[0]!=="comment")break}t.some(u=>u[0]!=="space"&&u[0]!=="comment")&&(r.raws.between+=a.map(u=>u[1]).join(""),a=[]),this.raw(r,"value",a.concat(t),n),r.value.includes(":")&&!n&&this.checkMissedSemicolon(t)}doubleColon(t){throw this.input.error("Double colon",{offset:t[2]},{offset:t[2]+t[1].length})}emptyRule(t){let n=new Cc;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){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(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}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(t){if(this.spaces+=t[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(t[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,r=null,i=!1,o=null,a=[],l=t[1].startsWith("--"),s=[],u=t;for(;u;){if(r=u[0],s.push(u),r==="("||r==="[")o||(o=u),a.push(r==="("?")":"]");else if(l&&i&&r==="{")o||(o=u),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,l);return}else break;else if(r==="{"){this.rule(s);return}else if(r==="}"){this.tokenizer.back(s.pop()),n=!0;break}else r===":"&&(i=!0);else r===a[a.length-1]&&(a.pop(),a.length===0&&(o=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!l)for(;s.length&&(u=s[s.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,l)}else this.unknownWord(s)}parse(){let t;for(;!this.tokenizer.endOfFile();)switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}precheckMissedSemicolon(){}raw(t,n,r,i){let o,a,l=r.length,s="",u=!0,c,m;for(let f=0;f<l;f+=1)o=r[f],a=o[0],a==="space"&&f===l-1&&!i?u=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",c=r[f+1]?r[f+1][0]:"empty",!_c[m]&&!_c[c]?s.slice(-1)===","?u=!1:s+=o[1]:u=!1):s+=o[1];if(!u){let f=r.reduce((p,b)=>p+b[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new Cc;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)r=t.pop()[1]+r;return r}spacesAndCommentsFromStart(t){let n,r="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)r+=t.shift()[1];return r}spacesFromEnd(t){let n,r="";for(;t.length&&(n=t[t.length-1][0],n==="space");)r=t.pop()[1]+r;return r}stringFrom(t,n){let r="";for(let i=n;i<t.length;i++)r+=t[i][1];return t.splice(n,t.length-n),r}unclosedBlock(){let t=this.current.source.start;throw this.input.error("Unclosed block",t.line,t.column)}unclosedBracket(t){throw this.input.error("Unclosed bracket",{offset:t[2]},{offset:t[2]+1})}unexpectedClose(t){throw this.input.error("Unexpected }",{offset:t[2]},{offset:t[2]+1})}unknownWord(t){throw this.input.error("Unknown word "+t[0][1],{offset:t[0][2]},{offset:t[0][2]+t[0][1].length})}unnamedAtrule(t,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Tc.exports=da});var ai=ie((_A,kc)=>{"use strict";var j0=gt(),K0=Yn(),Y0=Rc();function oi(e,t){let n=new K0(e,t),r=new Y0(n);try{r.parse()}catch(i){throw i}return r.root}kc.exports=oi;oi.default=oi;j0.registerParse(oi)});var fa=ie((TA,Mc)=>{"use strict";var Qn=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let r=n.node.rangeBy(n);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in n)this[r]=n[r]}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}};Mc.exports=Qn;Qn.default=Qn});var si=ie((RA,Fc)=>{"use strict";var X0=fa(),Zn=class{get content(){return this.css}constructor(t,n,r){this.processor=t,this.messages=[],this.root=n,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(t,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let r=new X0(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};Fc.exports=Zn;Zn.default=Zn});var ma=ie((kA,Lc)=>{"use strict";var Nc={};Lc.exports=function(t){Nc[t]||(Nc[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var ga=ie((FA,Oc)=>{"use strict";var J0=gt(),Q0=Xr(),Z0=ca(),eg=ai(),Dc=si(),tg=Qt(),ng=Bn(),{isClean:Ye,my:rg}=Kr(),MA=ma(),ig={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},og={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},ag={Once:!0,postcssPlugin:!0,prepare:!0},en=0;function er(e){return typeof e=="object"&&typeof e.then=="function"}function Pc(e){let t=!1,n=ig[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,en,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,en,n+"Exit"]:[n,n+"Exit"]}function Ic(e){let t;return e.type==="document"?t=["Document",en,"DocumentExit"]:e.type==="root"?t=["Root",en,"RootExit"]:t=Pc(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function pa(e){return e[Ye]=!1,e.nodes&&e.nodes.forEach(t=>pa(t)),e}var ha={},xt=class e{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(t,n,r){this.stringified=!1,this.processed=!1;let i;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))i=pa(n);else if(n instanceof e||n instanceof Dc)i=pa(n.root),n.map&&(typeof r.map>"u"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=n.map);else{let o=eg;r.syntax&&(o=r.syntax.parse),r.parser&&(o=r.parser),o.parse&&(o=o.parse);try{i=o(n,r)}catch(a){this.processed=!0,this.error=a}i&&!i[rg]&&J0.rebuild(i)}this.result=new Dc(t,i,r),this.helpers={...ha,postcss:ha,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(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,n){let r=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=r.postcssPlugin,t.setMessage()):r.postcssVersion}catch(i){console&&console.error&&console.error(i)}return t}prepareVisitors(){this.listeners={};let t=(n,r,i)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([n,i])};for(let n of this.plugins)if(typeof n=="object")for(let r in n){if(!og[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!ag[r])if(typeof n[r]=="object")for(let i in n[r])i==="*"?t(n,r,n[r][i]):t(n,r+"-"+i.toLowerCase(),n[r][i]);else typeof n[r]=="function"&&t(n,r,n[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let t=0;t<this.plugins.length;t++){let n=this.plugins[t],r=this.runOnRoot(n);if(er(r))try{await r}catch(i){throw this.handleError(i)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];){t[Ye]=!0;let n=[Ic(t)];for(;n.length>0;){let r=this.visitTick(n);if(er(r))try{await r}catch(i){let o=n[n.length-1].node;throw this.handleError(i,o)}}}if(this.listeners.OnceExit)for(let[n,r]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let i=t.nodes.map(o=>r(o,this.helpers));await Promise.all(i)}else await r(t,this.helpers)}catch(i){throw this.handleError(i)}}}return this.processed=!0,this.stringify()}runOnRoot(t){this.result.lastPlugin=t;try{if(typeof t=="object"&&t.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(r=>t.Once(r,this.helpers));return er(n[0])?Promise.all(n):n}return t.Once(this.result.root,this.helpers)}else if(typeof t=="function")return t(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 t=this.result.opts,n=ng;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let r=this.result.root.source;if(t.map===void 0&&!(r&&r.input&&r.input.map)){let a="";return n(this.result.root,l=>{a+=l}),this.result.css=a,this.result}let o=new Z0(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 t of this.plugins){let n=this.runOnRoot(t);if(er(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[Ye];)t[Ye]=!0,this.walkSync(t);if(this.listeners.OnceExit)if(t.type==="document")for(let n of t.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,t)}return this.result}then(t,n){return this.async().then(t,n)}toString(){return this.css}visitSync(t,n){for(let[r,i]of t){this.result.lastPlugin=r;let o;try{o=i(n,this.helpers)}catch(a){throw this.handleError(a,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(er(o))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:r,visitors:i}=n;if(r.type!=="root"&&r.type!=="document"&&!r.parent){t.pop();return}if(i.length>0&&n.visitorIndex<i.length){let[a,l]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return l(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator,l;for(;l=r.nodes[r.indexes[a]];)if(r.indexes[a]+=1,!l[Ye]){l[Ye]=!0,t.push(Ic(l));return}n.iterator=0,delete r.indexes[a]}let o=n.events;for(;n.eventIndex<o.length;){let a=o[n.eventIndex];if(n.eventIndex+=1,a===en){r.nodes&&r.nodes.length&&(r[Ye]=!0,n.iterator=r.getIterator());return}else if(this.listeners[a]){n.visitors=this.listeners[a];return}}t.pop()}walkSync(t){t[Ye]=!0;let n=Pc(t);for(let r of n)if(r===en)t.nodes&&t.each(i=>{i[Ye]||this.walkSync(i)});else{let i=this.listeners[r];if(i&&this.visitSync(i,t.toProxy()))return}}warnings(){return this.sync().warnings()}};xt.registerPostcss=e=>{ha=e};Oc.exports=xt;xt.default=xt;tg.registerLazyResult(xt);Q0.registerLazyResult(xt)});var Gc=ie((LA,Hc)=>{"use strict";var sg=ca(),lg=ai(),ug=si(),cg=Bn(),NA=ma(),tr=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 t,n=lg;try{t=n(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(t,n,r){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=r,this._map=void 0;let i=cg;this.result=new ug(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new sg(i,void 0,this._opts,n);if(a.isMap()){let[l,s]=a.generate();l&&(this.result.css=l),s&&(this.result.map=s)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}sync(){if(this.error)throw this.error;return this.result}then(t,n){return this.async().then(t,n)}toString(){return this._css}warnings(){return[]}};Hc.exports=tr;tr.default=tr});var Uc=ie((DA,Bc)=>{"use strict";var dg=Xr(),fg=ga(),mg=Gc(),pg=Qt(),Ft=class{constructor(t=[]){this.version="8.5.14",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let r of t)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r=="object"&&Array.isArray(r.plugins))n=n.concat(r.plugins);else if(typeof r=="object"&&r.postcssPlugin)n.push(r);else if(typeof r=="function")n.push(r);else if(!(typeof r=="object"&&(r.parse||r.stringify)))throw new Error(r+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new mg(this,t,n):new fg(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Bc.exports=Ft;Ft.default=Ft;pg.registerProcessor(Ft);dg.registerProcessor(Ft)});var Yc=ie((IA,Kc)=>{"use strict";var Wc=Yr(),Vc=qn(),hg=gt(),gg=jr(),zc=jn(),qc=Xr(),bg=hc(),xg=Yn(),yg=ga(),vg=la(),Sg=Vn(),Ag=ai(),ba=Uc(),Eg=si(),$c=Qt(),jc=ei(),wg=Bn(),Cg=fa();function ue(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new ba(e)}ue.plugin=function(t,n){let r=!1;function i(...a){console&&console.warn&&!r&&(r=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...a);return l.postcssPlugin=t,l.postcssVersion=new ba().version,l}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,l,s){return ue([i(s)]).process(a,l)},i};ue.stringify=wg;ue.parse=Ag;ue.fromJSON=bg;ue.list=vg;ue.comment=e=>new Vc(e);ue.atRule=e=>new Wc(e);ue.decl=e=>new zc(e);ue.rule=e=>new jc(e);ue.root=e=>new $c(e);ue.document=e=>new qc(e);ue.CssSyntaxError=gg;ue.Declaration=zc;ue.Container=hg;ue.Processor=ba;ue.Document=qc;ue.Comment=Vc;ue.Warning=Cg;ue.AtRule=Wc;ue.Result=Eg;ue.Input=xg;ue.Rule=jc;ue.Root=$c;ue.Node=Sg;yg.registerPostcss(ue);Kc.exports=ue;ue.default=ue});function Ar(){return globalThis}function L(e,t){if(typeof window>"u")return;let n=Ar(),r=n.__hf?.onSwallowed;if(r)try{r({label:e,error:t})}catch(i){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}var Wm=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function Vm(e,t){let n=Math.abs(e),r=Math.abs(t);for(;r!==0;){let i=n%r;n=r,r=i}return n||1}function zm(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=Vm(r,n);return{numerator:r/i,denominator:n/i}}function Xi(e){if(typeof e!="object"||e===null)return null;let t=e;return!Number.isFinite(t.numerator)||!Number.isFinite(t.denominator)||(t.numerator??0)<=0||(t.denominator??0)<=0?null:Number(t.numerator)/Number(t.denominator)}function Er(e){return{protocolVersion:1,capabilities:Wm,fps:zm(e)}}function qm(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Fs(e,t=30){if(typeof e!="object"||e===null)return{status:"legacy",fps:t};let n=e;if(n.protocolVersion===void 0)return{status:"legacy",fps:t};if(n.protocolVersion!==1)return{status:"unsupported",code:"unsupported_protocol_version",receivedVersion:n.protocolVersion};let r=Xi(n.fps);return r===null||!qm(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var Ns=30;function Ls(e){Ns=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...Er(Ns)},"*")}catch(t){L("bridge.postMessage",t)}}var $m={play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(jm(e,t),e.seekMode??"commit"),tick:(e,t)=>t.onTick(),"set-muted":(e,t)=>t.onSetMuted(!!e.muted),"set-volume":(e,t)=>t.onSetVolume(Math.max(0,Math.min(1,Number(e.volume??1)))),"set-media-output-muted":(e,t)=>t.onSetMediaOutputMuted(!!e.muted),"set-native-media-sync-disabled":(e,t)=>t.onSetNativeMediaSyncDisabled(!!e.disabled),"set-web-audio-media-disabled":(e,t)=>t.onSetWebAudioMediaDisabled(!!e.disabled),"set-playback-rate":(e,t)=>t.onSetPlaybackRate(Number(e.playbackRate??1)),"set-root-duration":(e,t)=>t.onSetRootDuration(Number(e.durationSeconds??0)),"set-color-grading":(e,t)=>t.onSetColorGrading(e.target??null,e.grading??null),"set-color-grading-compare":(e,t)=>t.onSetColorGradingCompare(e.target??null,e.compare??null),"enable-pick-mode":(e,t)=>t.onEnablePickMode(),"disable-pick-mode":(e,t)=>t.onDisablePickMode(),"flash-elements":e=>Ym(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel)}};function jm(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Xi(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function Km(e){let t=Fs(e);return t.status!=="unsupported"?!1:(xe({source:"hf-preview",type:"diagnostic",code:`runtime.protocol.${t.code}`,details:{receivedVersion:typeof t.receivedVersion=="string"||typeof t.receivedVersion=="number"?t.receivedVersion:null}}),!0)}function Ym(e){let t=e.selectors,n=e.duration||800;t&&Xm(t,n)}function Ds(e){let t=n=>{let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||Km(r))return;let i=r.action;if(typeof i!="string")return;let o=$m[i];o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function Xm(e,t){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 ${t}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 e)try{document.querySelectorAll(n).forEach(i=>{i.classList.add("__hf-flash"),setTimeout(()=>i.classList.remove("__hf-flash"),t)})}catch(r){L("bridge.flashElements.querySelector",r)}}var Ji=null;function Is(e){Ji=e}function Ne(e,t){if(Ji)try{Ji({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){L("runtime.analytics.site1",n)}}function Jm(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-"),n=0,r=t.length;for(;n<r&&t[n]==="-";)n++;for(;r>n&&t[r-1]==="-";)r--;let i=t.slice(n,r);return i.length>0?i:"node"}function Ot(e){return`--${Jm(e)}`}function Ps(e){let t=new Map;for(let n of e){let r=Ot(n),i=t.get(r);i?i.includes(n)||i.push(n):t.set(r,[n])}return[...t.values()].filter(n=>n.length>1)}function Hs(){if(typeof document>"u")return{};let e=new Set;document.documentElement?.hasAttribute("data-composition-variables")&&e.add(document.documentElement);for(let i of Array.from(document.querySelectorAll("[data-composition-variables]")))e.add(i);let t={};for(let i of e)Object.assign(t,bn(i));let n=Cr(),r={...t,...n};for(let i of e)Zi(i,r);return r}var Os=new Set;function Gs(e){let t=e?.getAttribute("data-composition-variables");if(!t)return[];let n;try{n=JSON.parse(t)}catch{return[]}return Array.isArray(n)?n.filter(r=>!!r&&typeof r=="object"):[]}function Qm(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function Zm(e){return Array.isArray(e.options)?e.options.map(t=>t&&typeof t=="object"?t.value:t).filter(t=>typeof t=="string"||typeof t=="number"):[]}function ep(e,t){if(typeof e.id!="string")return null;let n=t[e.id];if(n==null||"default"in e&&String(n)===String(e.default))return null;let r=Zm(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function Zi(e,t,n){if(!e)return;let r=Gs(e);if(r.length===0)return;let i=Qm(e,n);for(let o of r){let a=ep(o,t);if(!a)continue;let l=`${i}|${a.id}|${String(a.value)}`;if(Os.has(l))continue;Os.add(l);let s="default"in o?JSON.stringify(o.default):"the composition default";console.warn(`[hyperframes] runtime_unknown_enum_value: ${i} variable "${a.id}" got ${JSON.stringify(a.value)}, which is not a declared option (${a.allowed.join(", ")}). Rendering ${s} instead.`)}}function bn(e){let t={};for(let n of Gs(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Qi="data-hf-css-vars";function wr(e){return"style"in e&&typeof e.style?.setProperty=="function"}function eo(e,t){if(!wr(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=Ot(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Qi,n.join(" "))}function Bs(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=Ot(i);((wr(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function Us(e){if(!wr(e))return;let t=e.getAttribute(Qi);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Qi)}}function Ws(e){let t=new Set;e.documentElement?.hasAttribute("data-composition-variables")&&t.add(e.documentElement);for(let i of Array.from(e.querySelectorAll("[data-composition-variables]")))t.add(i);let n=Cr(),r=[];for(let i of t)r.push(...tp(i,n,e.defaultView));for(let i of Ps(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${Ot(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function tp(e,t,n){if(!wr(e))return[];let r=bn(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let l=Ot(o);(e.style.getPropertyValue(l)||(n?n.getComputedStyle(e).getPropertyValue(l):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return eo(e,i),Object.keys(r)}function Vs(e){let t=e.getAttribute("data-variable-values");if(!t)return{};let n;try{n=JSON.parse(t)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Cr(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}function zs(e){let t=[],n=u=>{if(typeof u.getAnimations!="function")return[];try{return u.getAnimations()}catch{return[]}},r=u=>e?.resolveStartSeconds?e.resolveStartSeconds(u):Number.parseFloat(u.getAttribute("data-start")??"0")||0,i=(u,c)=>{let m=null;try{m=u.effect?.getComputedTiming?.()??null}catch(p){L("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:c+f/1e3}:{unbounded:!0}},o=(u,c)=>{for(let m of u){try{m.currentTime=c}catch(f){L("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){L("runtime.adapters.css.site2",f)}}},a=u=>{for(let c of u)try{c.play()}catch(m){L("runtime.adapters.css.site3",m)}},l=u=>{for(let c of u)try{c.pause()}catch(m){L("runtime.adapters.css.site4",m)}},s=u=>{u.baseDelay?u.el.style.animationDelay=u.baseDelay:u.el.style.removeProperty("animation-delay"),u.basePlayState?u.el.style.animationPlayState=u.basePlayState:u.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let u=document.querySelectorAll("*");for(let c of u){if(!(c instanceof HTMLElement))continue;let m=window.getComputedStyle(c);!m.animationName||m.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||"",animations:n(c)})}},getInferredDurationSeconds:()=>{let u=0;for(let c of t){if(!c.el.isConnected)continue;let m=r(c.el);for(let f of n(c.el)){let p=i(f,m);p.endSeconds!=null&&(u=Math.max(u,p.endSeconds))}}return u>0?u:null},seek:u=>{let c=Number(u.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,c-f)*1e3,b=m.animations;if(b.length>0){o(b,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let u of t){if(!u.el.isConnected)continue;let c=u.animations;c.length>0&&l(c),s(u)}},play:()=>{for(let u of t)u.el.isConnected&&(s(u),a(u.animations))},revert:()=>{t=[]}}}function qs(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let r=Math.max(0,Number(t.time)||0),i=t.suppressEvents===!0;typeof n.totalTime=="function"?(n.totalTime(r+.001,!0),n.totalTime(r,i)):n.seek(r,i)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function $s(){return{name:"animejs",discover:()=>{try{let e=window.anime;if(!e||typeof e.running>"u")return;let t=e.running;if(!Array.isArray(t)||t.length===0)return;let n=window.__hfAnime??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfAnime=n}catch(e){L("runtime.adapters.animejs.site1",e)}},seek:e=>{let t=Math.max(0,(Number(e.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let r of n)try{typeof r.seek=="function"&&r.seek(t)}catch(i){L("runtime.adapters.animejs.site2",i)}},pause:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.pause=="function"&&t.pause()}catch(n){L("runtime.adapters.animejs.site3",n)}},play:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.play=="function"&&t.play()}catch(n){L("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ks(){return{name:"lottie",discover:()=>{try{let e=window.lottie;if(e&&typeof e.getRegisteredAnimations=="function"){let t=e.getRegisteredAnimations();if(Array.isArray(t)&&t.length>0){let n=window.__hfLottie??[],r=new Set(n);for(let i of t)r.has(i)||n.push(i);window.__hfLottie=n}}}catch(e){L("runtime.adapters.lottie.site1",e)}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let r of n)try{if(to(r))r.goToAndStop(t*1e3,!1);else if(no(r)){if(typeof r.setCurrentRawFrameValue=="function"){let i=r.totalFrames??0,o=r.frameRate??30,a=t*o;i>0&&r.setCurrentRawFrameValue(Math.min(a,i-1))}else if(typeof r.seek=="function"){let i=r.duration??1,o=Math.min(100,t/i*100);r.seek(o)}}}catch(i){L("runtime.adapters.lottie.site2",i)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(to(t)||no(t))&&t.pause()}catch(n){L("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let e=window.__hfLottie;if(!e||e.length===0)return null;let t=0,n=!1;for(let r of e){let i=null;try{i=np(r)}catch(o){L("runtime.adapters.lottie.site4",o)}i!=null&&(n=!0,t=Math.max(t,i))}return n?t:null}}}function js(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function np(e){return to(e)?js(e.totalFrames,e.frameRate):no(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:js(e.totalFrames,e.frameRate):null}function to(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function no(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var ro=-1,_r=new Set,Ht,io=0;function Ys(e){let t=[],n=!0,r={time:e,waitUntil:o=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(o)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(o){L("runtime.adapters.seek-dispatch.site1",o)}finally{n=!1}if(t.length===0)return;let i=Promise.all(t).then(()=>({status:"fulfilled"})).catch(o=>({status:"rejected",reason:o}));_r.add(i),i.then(o=>{_r.delete(i)&&o.status==="rejected"&&Ht===void 0&&(Ht={reason:o.reason})})}function Tr(e){e!==ro&&(ro=e,Ys(e))}function Rr(e){ro=e,Ys(e)}function Xs(){return io>0}async function oo(){io+=1;let e=Ht;try{for(await Promise.resolve();_r.size>0;){let r=(await Promise.all([..._r])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=Ht;if(e===void 0&&(e=t),Ht===t&&(Ht=void 0),e)throw e.reason}finally{io-=1}}function Js(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let c=window.THREE?.DefaultLoadingManager;return!c||typeof c!="object"||typeof c.itemsLoaded!="number"||typeof c.itemsTotal!="number"?null:c},l=u=>{o||u.itemsTotal<=u.itemsLoaded||(o=new Promise(c=>{u.onLoad=function(){try{i?.call(this)}finally{o=null,u.onLoad=i??null,c()}}}))},s=u=>{n!==u&&(n=u,r=u.onStart??null,i=u.onLoad??null,u.onStart=function(c,m,f){try{r?.call(this,c,m,f)}finally{l(u)}})};return{name:"three",discover:()=>{let u=a();u&&(s(u),l(u))},seek:u=>{e=Math.max(0,Number(u.time)||0),t=e,window.__hfThreeTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let u=a();return!u||u.itemsTotal<=u.itemsLoaded?null:(o||l(u),o)}}}function $e(e){let t=null,n=new WeakSet;return{name:e.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let r=e.getInstances();if(r.length===0)return null;let i=r.filter(o=>!n.has(o));return i.length===0?null:t||(t=Promise.allSettled(i.map(o=>e.waitFor(o).then(()=>{n.add(o)}))).then(()=>{t=null}),t)}}}function Qs(){return $e({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMapbox;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function Zs(){return $e({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfLeaflet;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>e.whenReady(t))})}function el(){return $e({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfGoogleMaps;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{let n=e.addListener("tilesloaded",()=>{n.remove(),t()})})})}function tl(){return $e({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfMaplibre;return Array.isArray(e)?e:[]},waitFor:e=>new Promise(t=>{if(e.loaded()){t();return}e.on("load",t)})})}function nl(){return $e({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var rp=250;function rl(){let e=null,t=0,n=null,r=()=>{n!==null&&(window.clearInterval(n),n=null)},i=()=>{n===null&&document.querySelector("[data-composition-id][data-requires-webgpu]")&&(n=window.setInterval(()=>{e!==null&&(Xs()||(window.__hfTypegpuTime=e,Rr(e)))},rp))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,Tr(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var xn="data-hf-render-id",il="data-hf-group-render-id";function ip(e){return e.getAttribute(xn)||e.id||null}var op="__render_frame_",ap="__";function sp(e){return`${op}${e}${ap}`}function lp(e){let t=ip(e);return t?sp(t):null}function ut(e){let t=lp(e);if(!t)return null;let n=document.getElementById(t);return n instanceof HTMLImageElement?n:null}function ol(e){let t=e.nextElementSibling;if(t instanceof HTMLImageElement&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=ut(e);return n&&n.complete&&n.naturalWidth>0?n:null}function al(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(n?.source instanceof HTMLVideoElement){let o=ol(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function sl(){let e=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],t=["texImage2D","texSubImage2D"];for(let n of e){let r=n?.prototype;if(r)for(let i of t){let o=r[i];if(typeof o!="function"||o.__hfVideoPatched)continue;let a=function(...l){let s=l.length-1,u=l[s];if(u instanceof HTMLVideoElement){let c=ol(u);c&&(l[s]=c)}return o.apply(this,l)};a.__hfVideoPatched=!0,r[i]=a}}}function ll(){let e=!1,t=0,n=!1,r,i,o,a=new Set,l=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},u=x=>{let _=Number(x.currentTime);return Number.isFinite(_)&&_>0?_:0},c=(x,_)=>_<=0?x:x>=_?Math.max(0,x-_):x,m=(x,_)=>{let R=l.get(x);if(R)return R;let T={compositionTimeMs:_,animationTimeMs:e?c(u(x),_):u(x)};return l.set(x,T),T},f=(x,_)=>{if(!a.has(x)){a.add(x);let R=()=>{a.delete(x)};try{x.addEventListener("finish",R,{once:!0}),x.addEventListener("cancel",R,{once:!0})}catch(T){L("runtime.adapters.waapi.site4",T)}}m(x,_)},p=(x,_)=>{for(let R of x)f(R,_)},b=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let _=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:_,configurable:!0});let R=function(...T){let M=_.apply(this,T);return f(M,t),M};x.animate=R,r=x,i=_,o=R,n=!0}catch{}},v=x=>{let _=null;try{_=x.effect?.getComputedTiming?.()??null}catch(M){L("runtime.adapters.waapi.site4",M)}if(!_)return{};let R=Number(_.endTime);return Number.isFinite(R)?{endSeconds:(l.get(x)?.compositionTimeMs??0)/1e3+R/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,b(),p(s(),t)},seek:x=>{let _=Math.max(0,(Number(x.time)||0)*1e3);t=_,(!e||a.size>0)&&p(s(),e?_:0);for(let R of a){let T=e?m(R,_):m(R,0),M=T.animationTimeMs+Math.max(0,_-T.compositionTimeMs);try{R.currentTime=M}catch(F){L("runtime.adapters.waapi.site1",F)}try{R.pause()}catch(F){L("runtime.adapters.waapi.site2",F)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(_){L("runtime.adapters.waapi.site3",_)}},revert:()=>{if(a.clear(),l=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){L("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let _ of s()){let R=v(_);R.endSeconds!=null&&(x=Math.max(x,R.endSeconds))}return x>0?x:null}}}var ao=3.981071705534972;function Le(e){return Number.isFinite(e)?Math.max(0,Math.min(ao,e)):1}function kr(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function ul(e,t){let n=typeof HTMLMediaElement>"u"?void 0:Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype,"volume"),r=n?.get,i=n?.set;if(!r||!i)return t();let o=Number(r.call(e));Object.defineProperty(e,"volume",{configurable:!0,get:()=>o,set:a=>{o=Number(a),i.call(e,kr(o))}});try{return t()}finally{delete e.volume,i.call(e,kr(o))}}var Gt=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),lv=Object.freeze([Gt.start,Gt.duration,Gt.trackIndex]),uv=Object.freeze([Gt.derivedEnd]),cv=Object.freeze([Gt.derivedEnd,Gt.legacyTrack]);function Bt(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var dl=/^[A-Za-z0-9_.:-]+$/;function fl(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function cl(e,t){let n=t;for(;n>=0&&fl(e,n);)n--;return n}function up(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function cp(e){let t=e.length-1;if(!fl(e,t))return null;let n=cl(e,t);return e[n]==="."&&(n=cl(e,n-1)),n+1}function dp(e){let t=cp(e);if(t==null)return null;let n=up(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!dl.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function so(e){let t=(e??"").trim();if(!t)return null;let n=Bt(t);if(n!=null)return{kind:"absolute",value:n};if(dl.test(t))return{kind:"reference",refId:t,offset:0};let r=dp(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}function ml(e){return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function ve(e){return Bt(e)}function Ce(e){let t=Number.parseFloat(e.getAttribute("data-playback-rate")??""),n=Number.isFinite(t)&&t>0?t:typeof HTMLMediaElement<"u"&&e instanceof HTMLMediaElement?e.defaultPlaybackRate:1;return ml(n)}function yn(e){let t=n=>{let r=ve(n);return r==null?null:Number.isFinite(r)&&r>=0?r:null};return t(e.getAttribute("data-playback-start"))??t(e.getAttribute("data-media-start"))??0}function Ze(e,t){return fp(t,yn(e),Ce(e))}function fp(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ml(n):null}function mp(e,t,n){let r=e.filter(o=>Number.isFinite(o.time)&&Number.isFinite(o.volume)).map(o=>({time:Math.max(0,o.time-t),volume:Le(o.volume)})).sort((o,a)=>o.time-a.time),i=[];for(let o of r){let a=i.at(-1);a&&Math.abs(a.time-o.time)<1e-9?a.volume=o.volume:i.push(o)}return i.length===0||i[0].time>0&&i.unshift({time:0,volume:Le(n)}),i}function pl(e,t){if(e.length===0)return 1;let n=0;for(;n<e.length-2&&t>=e[n+1].time;)n+=1;let r=e[n],i=e[n+1]??r,o=i.time-r.time,a=o<=0?0:Math.min(1,Math.max(0,(t-r.time)/o));return r.volume+(i.volume-r.volume)*a}function pp(e,t,n,r){let i=e.at(-1);!i||Math.abs(i.volume-n.volume)>1e-4?(i&&t&&t.time>i.time&&e.push(t),e.push(n)):r&&n.time>i.time&&e.push(n)}function hp(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function hl(e,t){let n=ve(e.dataset.start)??0,r=ve(e.dataset.end)??void 0,i=ve(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=hp(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Le(a)}}function gp(e,t,n,r){let{start:i,end:o,staticVolume:a}=hl(e,n),l=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),u=Math.min(n,o),c=ul(e,()=>{e.volume=a;let f=[],p;for(let b=s;b<=u+1e-6;b=Math.min(u,b+l)){t(b);let v=Number(e.volume);if(Number.isFinite(v)){let x={time:Number(b.toFixed(6)),volume:Number(Le(v).toFixed(6))};pp(f,p,x,b===u),p=x}if(b===u)break}return f});return c.some(f=>Math.abs(f.volume-a)>1e-4)?c:null}function gl(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!(e instanceof HTMLAudioElement)&&!(e instanceof HTMLVideoElement)||n<=0)return;let o=s=>{try{typeof t.totalTime=="function"?t.totalTime(s,!0):typeof t.seek=="function"&&t.seek(s,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,l=gp(e,o,n,60);if(Number.isFinite(a)&&o(a),l){let{start:s,staticVolume:u}=hl(e,n),c=mp(l,s,u);c.length>0&&r.set(e,c)}}var Rt="data-fx-chain",vv=Rt.slice(5),bl=1,vn=(e="frequency",t="Frequency",n=1e3,r=20,i=2e4)=>({kind:"number",key:e,label:t,unit:"Hz",min:r,max:i,step:1,default:n,scale:"log",automatable:!0}),lo=(e=.707,t="Bandwidth \\u2014 higher is narrower.")=>({kind:"number",key:"q",label:"Q",unit:"",min:.1,max:20,step:.01,default:e,scale:"log",automatable:!0,hint:t}),Mr=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),xl={kind:"enum",key:"poles",label:"Slope",options:[{value:"1",label:"6 dB/oct"},{value:"2",label:"12 dB/oct"}],default:"2",hint:"Two poles is the usual biquad; one pole is gentler."},vl=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[Mr(-60,12,0)],web:"gain-node"},{id:"peaking",label:"Peaking EQ",group:"filter",description:"Boost or cut a band, leaving everything either side alone.",params:[vn("frequency","Frequency",1e3),Mr(-40,40,0),lo(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[vn("frequency","Frequency",200,20,2e3),Mr(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[vn("frequency","Frequency",4e3,500,2e4),Mr(-40,40,0)],web:"biquad-highshelf"},{id:"highpass",label:"High-pass",group:"filter",description:"Remove low frequencies \\u2014 the usual fix for rumble on a voice.",params:[vn("frequency","Cutoff",300,20,2e4),lo(.707),xl],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[vn("frequency","Cutoff",8e3,100,2e4),lo(.707),xl],web:"biquad-lowpass"},{id:"compressor",label:"Compressor",group:"dynamics",description:"Pull loud parts down so the quiet ones can come up.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-60,max:0,step:.5,default:-24,hint:"Level above which the compressor starts working."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:4},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:2e3,step:.1,default:20,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:250,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83,hint:"1 is a hard corner; higher eases into it."},{kind:"number",key:"makeup",label:"Makeup",unit:"dB",min:0,max:36,step:.1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1,hint:"Below 1 blends the dry signal back in."}],web:"worklet-compressor"},{id:"limiter",label:"Limiter",group:"dynamics",description:"Hard ceiling \\u2014 nothing gets past the limit.",params:[{kind:"number",key:"limit",label:"Ceiling",unit:"dB",min:-24,max:0,step:.1,default:-1},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.1,max:80,step:.1,default:5},{kind:"number",key:"release",label:"Release",unit:"ms",min:1,max:8e3,step:1,default:50,scale:"log"},{kind:"number",key:"level_out",label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0}],web:"worklet-limiter"},{id:"gate",label:"Noise Gate",group:"dynamics",description:"Silence the track when it drops below the threshold.",params:[{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-80,max:0,step:.5,default:-35},{kind:"number",key:"range",label:"Range",unit:"dB",min:-80,max:0,step:.5,default:-24,hint:"How far down the gate pulls when closed."},{kind:"number",key:"ratio",label:"Ratio",unit:":1",min:1,max:20,step:.1,default:10},{kind:"number",key:"attack",label:"Attack",unit:"ms",min:.01,max:9e3,step:.1,default:1,scale:"log"},{kind:"number",key:"release",label:"Release",unit:"ms",min:.01,max:9e3,step:1,default:100,scale:"log"},{kind:"number",key:"knee",label:"Knee",unit:"",min:1,max:8,step:.01,default:2.83}],web:"worklet-gate"},{id:"saturate",label:"Saturation",group:"nonlinear",description:"Soft-clip the waveform for warmth or outright distortion.",params:[{kind:"enum",key:"type",label:"Curve",options:[{value:"tanh",label:"Tanh"},{value:"atan",label:"Arctan"},{value:"cubic",label:"Cubic"},{value:"exp",label:"Exponential"},{value:"alg",label:"Algebraic"},{value:"quintic",label:"Quintic"},{value:"sin",label:"Sine"},{value:"erf",label:"Error function"},{value:"hard",label:"Hard clip"}],default:"tanh"},{kind:"number",key:"threshold",label:"Threshold",unit:"dB",min:-40,max:0,step:.1,default:-6},{kind:"number",key:"output",automatable:!0,label:"Output",unit:"dB",min:-24,max:24,step:.1,default:0},{kind:"number",key:"oversample",label:"Oversample",unit:"x",min:1,max:8,step:1,default:4,hint:"Higher costs more but keeps aliasing down."}],web:"waveshaper"},{id:"bitcrush",label:"Bitcrush",group:"nonlinear",description:"Drop bit depth and sample rate for a lo-fi, digital sound.",params:[{kind:"number",key:"bits",label:"Bit depth",unit:"bit",min:1,max:32,step:.1,default:8},{kind:"number",key:"samples",label:"Sample hold",unit:"x",min:1,max:250,step:1,default:1,hint:"Repeats each sample N times \\u2014 a crude downsample."},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-bitcrush"},{id:"pitchshift",label:"Pitch shift",group:"time",description:"Shifts pitch up or down without changing playback speed. Adds ~50 ms of latency.",params:[{kind:"number",key:"semitones",label:"Semitones",unit:"st",min:-12,max:12,step:1,default:0},{kind:"number",key:"mix",label:"Mix",unit:"",min:0,max:1,step:.01,default:1}],web:"worklet-pitchshift"},{id:"delay",label:"Delay",group:"time",description:"Repeating echoes behind the dry signal.",params:[{kind:"number",key:"time",automatable:!0,label:"Time",unit:"ms",min:1,max:5e3,step:1,default:250,scale:"log"},{kind:"number",key:"feedback",automatable:!0,label:"Feedback",unit:"",min:.01,max:.95,step:.01,default:.35},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.4}],web:"delay-feedback"},{id:"chorus",label:"Chorus",group:"time",description:"Detuned copies of the signal for width and thickness.",params:[{kind:"number",key:"delay",automatable:!0,label:"Delay",unit:"ms",min:1,max:100,step:.1,default:7},{kind:"number",key:"depth",automatable:!0,label:"Depth",unit:"ms",min:0,max:10,step:.01,default:2},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.01,max:10,step:.01,default:1},{kind:"number",key:"mix",automatable:!0,label:"Mix",unit:"",min:0,max:1,step:.01,default:.5}],web:"chorus-lfo"},{id:"phaser",label:"Phaser",group:"time",description:"Sweeping notches moving through the spectrum.",params:[{kind:"number",key:"in_gain",automatable:!0,label:"Input",unit:"",min:0,max:1,step:.01,default:.4},{kind:"number",key:"out_gain",automatable:!0,label:"Output",unit:"",min:0,max:2,step:.01,default:.74},{kind:"number",key:"delay",label:"Delay",unit:"ms",min:.1,max:5,step:.1,default:3},{kind:"number",key:"decay",label:"Decay",unit:"",min:0,max:.99,step:.01,default:.4},{kind:"number",key:"speed",automatable:!0,label:"Rate",unit:"Hz",min:.1,max:2,step:.01,default:.5},{kind:"enum",key:"type",label:"Waveform",options:[{value:"0",label:"Triangular"},{value:"1",label:"Sinusoidal"}],default:"0"}],web:"allpass-phaser"},{id:"reverb",label:"Reverb",group:"time",description:"Room tail. Both ends convolve the same generated impulse, so preview matches render.",params:[{kind:"number",key:"size",label:"Room size",unit:"",min:.05,max:1,step:.01,default:.7},{kind:"number",key:"damping",label:"Damping",unit:"",min:0,max:1,step:.01,default:.5,hint:"Higher rolls the top off the tail faster."},{kind:"number",key:"wet",automatable:!0,label:"Wet",unit:"",min:0,max:1,step:.01,default:.35},{kind:"number",key:"dry",automatable:!0,label:"Dry",unit:"",min:0,max:1,step:.01,default:.7}],web:"convolver"}],uo=new Map(vl.map(e=>[e.id,e]));function Sn(e){return uo.get(e)}var Sv=vl.map(e=>e.id);function An(e,t){let n=uo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let l=i.options.some(s=>s.value===o);r[i.key]=l?o:i.default;continue}let a=typeof o=="number"?o:typeof o=="string"&&o.trim()!==""?Number(o):Number.NaN;r[i.key]=Number.isFinite(a)?Math.min(i.max,Math.max(i.min,a)):i.default}return r}var ct=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function Sl(e){let t;try{t=JSON.parse(e)}catch(i){throw new ct(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new ct("Chain file must be a JSON object.");let n=t;if(n.version!==bl)throw new ct(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new ct("Chain file is missing a `nodes` array.");let r=n.nodes.map(bp);return{version:bl,nodes:r}}function En(e){return e.nodes.filter(t=>t.enabled!==!1)}function bp(e,t){if(typeof e!="object"||e===null)throw new ct(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!uo.has(n.type))throw new ct(`Node ${t} has unknown effect type: ${String(n.type)}`);return yp({type:n.type,id:Fr(n.id),fromCarve:yl(n.fromCarve),fromPreset:Fr(n.fromPreset),label:Fr(n.label),fromEq:Fr(n.fromEq),fromLeveller:yl(n.fromLeveller),presetAmount:xp(n.presetAmount),enabled:n.enabled!==!1,params:An(n.type,n.params??void 0)})}function Fr(e){return typeof e=="string"&&e?e:void 0}function yl(e){return e===!0?!0:void 0}function xp(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function yp(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var tt="data-automation",Cv=tt.slice(5),Nr=1,vp=512,et=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},Ut="volume";function Cn(e){if(e===Ut)return{kind:"volume"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===Sp){let i=t[2];return i?{kind:"preset",presetId:i}:null}if(t.length!==3||t[0]!=="fx")return null;let[,n,r]=t;return!n||!r?null:{kind:"fx",nodeId:n,param:r}}var Sp="preset";var Ap={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},Lr={min:0,max:ao,step:.01,unit:"",label:"Volume",scale:"linear",default:1};function co(e,t){let n=Cn(e);if(!n)return null;if(n.kind==="volume")return Lr;if(n.kind==="preset")return t?.nodes.some(l=>l.fromPreset===n.presetId)?{...Ap,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Sn(r.type),o=i?.params.find(a=>a.key===n.param);return!o||o.kind!=="number"?null:{min:o.min,max:o.max,step:o.step,unit:o.unit,label:`${i?.label??r.type} \\xB7 ${o.label}`,scale:o.scale==="log"&&o.min>0?"log":"linear",default:o.default}}function wn(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ep(e){let t=wn(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function Al(e,t){let n=wn(e),r=wn(t);if(n===null||r===null)return null;let i=l=>Math.min(.999,Math.max(.001,l)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function wp(e){let t=Ep(e?.curve),n=Al(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function Cp(e,t){let n=wn(e?.t),r=wn(e?.v);if(n===null||r===null)return null;let i=t?Math.min(t.max,Math.max(t.min,r)):r;return{t:Math.max(0,n),v:i,...wp(e)}}function El(e,t){let n=e.map(i=>Cp(i,t)).filter(i=>i!==null).sort((i,o)=>i.t-o.t),r=[];for(let i of n)r.length>0&&r[r.length-1].t===i.t?r[r.length-1]=i:r.push(i);return r.slice(0,vp)}function _p(e){let t=[];for(let n of e.lanes){if(!Cn(n.target))continue;let r=n.target===Ut?Lr:null,i=El(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:Nr,lanes:t}}function wl(e,t){let n=[];for(let r of e.lanes){let i=co(r.target,t);if(!i)continue;let o=El(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:Nr,lanes:n}}function Dr(e){let t;try{t=JSON.parse(e)}catch(i){throw new et(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new et("Automation must be a JSON object.");let n=t;if(n.version!==Nr)throw new et(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new et("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new et(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!Cn(a.target))throw new et(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new et(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return _p({version:Nr,lanes:r})}function Tp(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function Rp(e,t){let n=e-.5,r=t-.5,i=.999,o=1e6,a=n>0?n/(i-e):n<0?-n/(e-(1-i)):0,l=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,l));return{cx:e+n/s,cy:t+r/s,w:s}}function kp(e,t,n){let{cx:r,cy:i,w:o}=Rp(t,n),a=2-2*o,l=e*a-1+2*o*r,s=-e*a-2*o*r,u=Mp(l,s,e),c=1-u,m=c*c+2*o*u*c+u*u;return m>0?(2*o*i*u*c+u*u)/m:e}function Mp(e,t,n){if(Math.abs(e)<1e-12)return Math.abs(t)<1e-12?n:-n/t;let r=Math.sqrt(Math.max(0,t*t-4*e*n)),i=(-t+r)/(2*e),o=(-t-r)/(2*e),a=l=>l>=-1e-9&&l<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function Fp(e,t){let n=Al(t.viaX,t.viaY);return n?kp(Math.min(1,Math.max(0,e)),n.x,n.y):Tp(e,t.curve)}function Np(e,t,n,r){return r==="log"&&e>0&&t>0?Math.exp(Math.log(e)+(Math.log(t)-Math.log(e))*n):e+(t-e)*n}function _n(e,t,n="linear"){let r=e.points;if(r.length===0)return 0;let i=r[0];if(t<=i.t)return i.v;let o=r[r.length-1];if(t>=o.t)return o.v;let a=0,l=r.length-1;for(;l-a>1;){let m=a+l>>1;r[m].t<=t?a=m:l=m}let s=r[a],u=r[l],c=u.t-s.t;return c<=0?u.v:Np(s.v,u.v,Fp((t-s.t)/c,s),n)}function Cl(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function _l(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),l=n-t;for(let s=0;s<o;s+=1)a[s]=_n(e,t+l*s/(o-1),i);return a}var Ir=new Map,Lp=64;function Dp(e){let t=Ir.get(e);if(t!==void 0)return t;let n=null;try{n=Dr(e).lanes.find(r=>r.target===Ut)??null}catch{n=null}return Ir.size>Lp&&Ir.clear(),Ir.set(e,n),n}function Tl(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return null;let r=Dp(n);return!r||r.points.length===0?null:_n(r,t)}var Wt="hf-audio-group",Pr="data-audio-group";function fo(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function mo(e,t){let n=Array.from(e?.querySelectorAll?.(`${Wt}[${xn}]`)??[]).find(i=>i.getAttribute(xn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===Wt?r:null}function Or(e,t){let n=t?.getAttribute?.(il)??t?.getAttribute?.(Pr);return n?mo(e,n)?.hasAttribute("data-hidden")??!1:!1}function Rl(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Pr)||null}function kl(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${Wt}{display:none!important}`,e.head.appendChild(n)}function je(e){return yn(e)}function Ml(e){let t=e.isVideo?e.explicitDuration??e.sourceDuration:e.sourceDuration,n=(e.isVideo?[t,e.hostRemaining]:[t,e.hostRemaining,e.explicitDuration]).filter(r=>r!=null&&Number.isFinite(r)&&r>=0);return n.length>0?Math.min(...n):null}function Fl(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(a=>e.shouldIncludeElement?.(a)):t.filter(a=>a.hasAttribute("data-start")),r=[],i=[],o=0;for(let a of n){let l=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(l))continue;let s=je(a),u=Ce(a),c=a.loop,m=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,f=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(f)||f<0)&&m!=null&&(f=Math.max(0,(m-s)/u));let p=Number.isFinite(f)&&f>=0,b=p?l+f:Number.POSITIVE_INFINITY,v=Number.parseFloat(a.dataset.volume??""),x={el:a,start:l,mediaStart:s,duration:p?f:Number.POSITIVE_INFINITY,end:b,volume:Number.isFinite(v)?v:null,playbackRate:u,loop:c,sourceDuration:m};r.push(x),a.tagName==="VIDEO"&&i.push(x),Number.isFinite(b)&&(o=Math.max(o,b))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var ho=new WeakMap,Hr=new WeakMap,Tn=new WeakMap,go=new WeakSet,Vt=new WeakSet;function Ip(e){if(Vt.has(e))return;Vt.add(e);let t=()=>Vt.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Pp=3;function Op(e){return e.error!=null||e.networkState===Pp}var bo=new WeakMap;function po(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function xo(e){ho.delete(e),Hr.delete(e),Tn.delete(e),go.delete(e),bo.delete(e)}function Nl(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart,o=r.tagName==="VIDEO"&&!n.loop,a=o&&n.sourceDuration!=null&&i>=n.sourceDuration&&e.timeSeconds>=n.start&&e.timeSeconds<n.end;a&&n.sourceDuration!=null&&(i=n.sourceDuration);let l=Hr.get(r),s=r.tagName==="AUDIO"&&(l===void 0||i<l-.04),u=!n.loop&&n.sourceDuration!=null&&i>=n.mediaStart&&i<n.sourceDuration&&(o||s);if(e.timeSeconds>=n.start&&e.timeSeconds<n.end&&i>=0&&(!r.ended||n.loop||a||u)){if(Hr.set(r,i),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let H=n.sourceDuration-n.mediaStart;H>0&&i>=n.sourceDuration&&(i=n.mediaStart+(i-n.mediaStart)%H)}let f=po(e.userVolume??1),p=Le(n.volume??1),b=bo.get(r),v=po(r.volume),x,_=Tl(r,e.timeSeconds-n.start);if(_!==null)x=Le(_);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let H=e.timeSeconds-n.start;x=Le(pl(n.volumeKeyframes,H))}else e.isWebAudioRouted?.(r)?x=p:b===void 0?x=p>1?p:v:Math.abs(v-b)>1e-4?x=v:x=p;let T=r.closest("[data-hidden]")!==null||Or(r.ownerDocument,r)?0:po(x*f);r.volume=T,bo.set(r,T),e.onElementVolume?.(r,T,x),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=n.playbackRate*e.playbackRate}catch(H){L("runtime.media.site1",H)}let M=.04,F=2,E=r.currentTime||0,S=Math.abs(E-i),A=i-E,C=ho.get(r);ho.set(r,A);let N=C===void 0,I=!N&&Math.abs(A-C)>.5,W=S>3,B=r.tagName==="AUDIO"&&N&&E-i>M,oe=a&&S>.001||r.ended&&u&&S>.001||B||S>.5&&(N||I||W),k=r.tagName==="VIDEO"&&!r.paused,V=C!==void 0&&Math.abs(A-C)<.004,Q=!1;if(!k&&!oe&&!N&&V&&S>M){let H=(Tn.get(r)??0)+1;Tn.set(r,H),H>=F&&(Q=!0,Tn.set(r,0))}else S<=M&&Tn.set(r,0);let G=!k&&e.forceSync&&S>.02;if(oe||Q||G){if(!(r.tagName==="VIDEO"&&!!ut(r))){try{r.currentTime=i}catch(z){L("runtime.media.site2",z)}if(Math.abs(r.currentTime-i)>.5&&!go.has(r)){go.add(r),r.load();try{r.currentTime=i}catch(z){L("runtime.media.site3",z)}}}Vt.delete(r)}a?r.paused||r.pause():e.playing&&r.paused&&!Vt.has(r)&&!Op(r)?(Ip(r),r.play().catch(H=>{Vt.delete(r),(H&&typeof H=="object"&&"name"in H?String(H.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let m=e.timeSeconds>=n.start&&e.timeSeconds<n.end;xo(r),m&&Hr.set(r,i),r.paused||r.pause()}}var Hp="hf-proxy",Ll="runtime_media_proxy_fallback",Dl="runtime_media_proxy_unavailable",Rn=new WeakSet,Il=new WeakSet;function Gr(e){return e.currentSrc||e.src}function yo(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:e instanceof HTMLVideoElement&&!!ut(e)}function vo(e){let t=Gr(e);if(!t)return null;let n;try{n=new URL(t,document.baseURI)}catch{return null}if(n.origin!==window.location.origin)return null;try{return decodeURIComponent(n.pathname)}catch{return n.pathname}}function Gp(e,t){let n=null;for(let r of Object.keys(t))e.endsWith(r)&&(n===null||r.length>n.length)&&(n=r);return n?t[n]??null:null}function Bp(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,l]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=l,o=!1):s.length===r&&(o=!0))}return o?null:i}function So(e,t){return t[e]??Gp(e,t)??Bp(e,t)}function Up(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Hp,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var Wp={cross_origin:"video reports zero decodable width but its source is cross-origin; no local proxy can be served for it",proxy_playback_failed:"the authoring proxy itself failed to decode; render output is unaffected",browser_safe_codec:"the file errored but its codec is browser-decodable; a proxy cannot help (the file itself is likely corrupt)",invalid_source_url:"the media source URL is malformed and cannot be proxied"};function kt(e,t,n){if(Il.has(e))return;Il.add(e);let r=Wp[t];xe({source:"hf-preview",type:"diagnostic",code:Dl,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${Dl}: "${n}" (${t}): ${r}`)}function Ao(e,t=null,n="reactive"){if(Rn.has(e))return;let r=Gr(e),i;try{i=Up(r,t)}catch(l){L("runtime.mediaProxy.swap",l),kt(e,"invalid_source_url",r);return}Rn.add(e),xo(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:Ll,details:{asset:r,codecName:o,trigger:n,note:"render output is unaffected; only this preview element was swapped to an authoring proxy"}}),console.info(`[hyperframes] ${Ll}: "${r}" uses a codec (${o??"unknown"}) this browser can\'t decode; auto-swapped to an authoring proxy for this preview only. Render output is unaffected.`)}function Pl(e){if(yo(e)||!(e instanceof HTMLVideoElement)||Rn.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=vo(e);if(n===null)return;let r=So(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Ao(e,r,"proactive")}function Ol(e){if(yo(e)||!(e instanceof HTMLVideoElement)||e.videoWidth!==0)return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"reactive")}function Hl(e){if(yo(e)||!(e instanceof HTMLVideoElement))return;let t=Gr(e);if(Rn.has(e)){kt(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=vo(e);if(r===null){kt(e,"cross_origin",t);return}let i=So(r,n);if(i&&!i.browserHostile){kt(e,"browser_safe_codec",t);return}Ao(e,i,"tertiary")}var Se=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},Vp=[0,0,0],zp=[1,1,1],Br=64;function qp(e){let t=!1;for(let n=0;n<e.length;n++){let r=e[n];if(r===\'"\'&&(t=!t),r==="#"&&!t)return e.slice(0,n)}return e}function dt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Se(`Invalid number "${e}"`,t);return n}function Gl(e,t,n){if(e.length!==3)throw new Se(`${t} expects three numbers`,n);return[dt(e[0],n),dt(e[1],n),dt(e[2],n)]}function Bl(e,t,n){if(!e)throw new Se(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Se(`${t} must be an integer greater than 1`,n);return r}function $p(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Se("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function jp(e){let t=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(e);if(t)return t[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(e);return n&&(n[1]??"").trim()||null}function Kp(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function Ul(e,t={}){let n=t.maxSize??Br,r=null,i=Vp,o=zp,a=null,l=null,s=[],u=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<u.length;m++){let f=m+1,p=qp(u[m]??"").trim();if(!p)continue;let b=p.split(/\\s+/),v=(b[0]??"").toUpperCase(),x=b.slice(1);if(v==="TITLE"){r=jp(p);continue}if(v==="DOMAIN_MIN"){i=Gl(x,v,f);continue}if(v==="DOMAIN_MAX"){o=Gl(x,v,f);continue}if(v==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Se(`${v} expects two numbers`,f);let _=dt(x[0],f),R=dt(x[1],f);if(R<=_)throw new Se("LUT_3D_INPUT_RANGE max must exceed min",f);i=[_,_,_],o=[R,R,R];continue}if(v==="LUT_1D_SIZE"){a=Bl(x[0],v,f);continue}if(v==="LUT_3D_SIZE"){if(l=Bl(x[0],v,f),l>n)throw new Se(`LUT_3D_SIZE ${l} exceeds max ${n}`,f);continue}if(!Kp(v)){if(v.startsWith("LUT_"))throw new Se(`Unsupported cube keyword ${v}`,f);continue}if(!l)throw a?new Se("1D cube LUTs are not supported yet",f):new Se("LUT data appears before LUT_3D_SIZE",f);if(b.length!==3)throw new Se("LUT data rows must contain three numbers",f);s.push(dt(b[0],f),dt(b[1],f),dt(b[2],f))}if(a&&l)throw new Se("Mixed 1D and 3D cube LUTs are not supported yet");if(!l)throw a?new Se("1D cube LUTs are not supported yet"):new Se("Missing LUT_3D_SIZE");$p(i,o);let c=l*l*l;if(s.length!==c*3)throw new Se(`Expected ${c} LUT rows for size ${l}, found ${s.length/3}`);return{title:r,size:l,domainMin:i,domainMax:o,data:new Float32Array(s)}}function Yp(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function kn(e){return Math.round(Yp(e)*255)}function Eo(e){let t=e.size,n=t*t,r=t,i=new Uint8Array(n*r*4);for(let o=0;o<t;o++)for(let a=0;a<t;a++)for(let l=0;l<t;l++){let s=((o*t+a)*t+l)*3,u=(a*n+o*t+l)*4;i[u]=kn(e.data[s]??0),i[u+1]=kn(e.data[s+1]??0),i[u+2]=kn(e.data[s+2]??0),i[u+3]=255}return{width:n,height:r,data:i}}var Wl="rec709";var me={hueDegrees:{min:0,max:360,inclusiveMax:!1},unit:{min:0,max:1},signedUnit:{min:-1,max:1},secondaryHueRange:{min:0,max:180},secondaryHueSoftness:{min:0,max:180},secondaryHueCombinedMax:180,secondarySoftRangeSoftness:{min:0,max:.5},secondaryHueShift:{min:-180,max:180},effects:{asciiStyle:{min:0,max:7},bloom:{min:0,max:3},bloomRadius:{min:1,max:100},monoScreenShape:{min:0,max:4}}};var Vl=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],zl=["shadows","midtones","highlights"],ql=["master","red","green","blue"],$l=["hueVsHue","hueVsSaturation","hueVsLuma"];var jl=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],Kl=["blur","pixelate","chromaBleed","tapeDamage","tapeTracking","tapeNoise","tapeSpeed","filmArtifacts","halftone","halftoneSize","twoInkPrint","twoInkPrintSize","ascii","asciiSize","asciiInvert","asciiStyle","asciiColor","asciiRotation","dither","ditherSize","bloom","bloomRadius","monoScreen","monoScreenSize","monoScreenAngle","monoScreenSpread","monoScreenShape","monoScreenInvert","scanlines","scanlineCount","scanlineSoftness","chromaticAberration","chromaticAngle","crtCurvature","digitalGlitch","digitalGlitchColorSplit","digitalGlitchLineTear","digitalGlitchPixelate","digitalGlitchBlockAmount","digitalGlitchBlockDisplacement","digitalGlitchBlockOpacity","digitalGlitchSpeed","engraving","engravingSpacing","engravingMinThickness","engravingMaxThickness","engravingAngle","engravingContrast","engravingSharpness","engravingWave","engravingWaveFrequency","crosshatch","crosshatchSpacing","crosshatchThickness","crosshatchAngle","crosshatchContrast","crosshatchEdges","crosshatchLineWeight","crosshatchWave","crosshatchWaveFrequency","kuwahara","kuwaharaRadius","kuwaharaSharpness","kuwaharaSaturation"];var Yv=me.unit,Xv=me.signedUnit,Jv=me.effects;var Ke=1024,Mn=16;function Yl(e,t,n,r){let i=((2*e+t)*n-e*r)/(e+t);return Math.sign(i)!==Math.sign(n)?0:Math.sign(n)!==Math.sign(r)&&Math.abs(i)>3*Math.abs(n)?3*n:i}function Ae(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function Xp(e){let t=[],n=[],r=Ae(e,0);for(let a of e.slice(1)){let l=a[0]-r[0];t.push(l),n.push((a[1]-r[1])/l),r=a}let i=Ae(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=Yl(Ae(t,0),Ae(t,1),i,Ae(n,1)),o[o.length-1]=Yl(Ae(t,t.length-1),Ae(t,t.length-2),Ae(n,n.length-1),Ae(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let l=Ae(n,a-1),s=Ae(n,a);if(l===0||s===0||Math.sign(l)!==Math.sign(s)){o[a]=0;continue}let u=Ae(t,a-1),c=Ae(t,a),m=2*c+u,f=c+2*u;o[a]=(m+f)/(m/l+f/s)}return o}function Xl(e,t){if(e.length<2)throw new RangeError("A color curve requires at least two points");if(!Number.isInteger(t)||t<2)throw new RangeError("Curve LUT size must be at least 2");let n=Number.NEGATIVE_INFINITY;for(let[r,i]of e){if(!Number.isFinite(r)||!Number.isFinite(i))throw new TypeError("Color curve points must be finite");if(r<=n)throw new RangeError("Color curve inputs must be strictly increasing");n=r}}function Jp(e,t,n){if(!Number.isFinite(t)||!Number.isFinite(n)||t>=n)throw new RangeError("Curve output bounds must be finite and increasing");if(e.some(([,r])=>r<t||r>n))throw new RangeError(`Curve outputs must be between ${t} and ${n}`)}function Qp(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),l=a*a,s=l*a;return(2*s-3*l+1)*t[1]+(s-2*l+a)*o*r+(-2*s+3*l)*n[1]+(s-l)*o*i}function Jl(e,t,n,r,i){Jp(e,r,i);let o=Xp(e),a=new Float32Array(t),l=0;for(let s=0;s<t;s+=1){let u=n(s);for(;l<e.length-2&&u>Ae(e,l+1)[0];)l+=1;let c=Ae(e,l),m=Ae(e,l+1),f=Qp(u,c,m,Ae(o,l),Ae(o,l+1));a[s]=Math.min(i,Math.max(r,f))}return a}function zt(e,t=Ke){if(Xl(e,t),e.length>Mn)throw new RangeError(`A color curve supports at most ${Mn} points`);if(e.some(([n])=>n<0||n>1))throw new RangeError("Color curve inputs must be between 0 and 1");if(e[0]?.[0]!==0||e[e.length-1]?.[0]!==1)throw new RangeError("Color curves must include input endpoints 0 and 1");return Jl(e,t,n=>n/(t-1),0,1)}function Co(e,t,n,r=Ke){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>Mn)throw new RangeError(`A hue curve supports at most ${Mn} points`);let i=[...e].sort((s,u)=>s[0]-u[0]);for(let s=0;s<i.length;s+=1){let u=i[s];if(!u||u[0]<0||u[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&u[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,u])=>[s-360,u]),a=i.slice(0,2).map(([s,u])=>[s+360,u]),l=[...o,...i,...a];return Xl(l,r),Jl(l,r,s=>s/r*360,t,n)}var Fn="data-color-grading",Nn="data-hf-color-grading-source-hidden",Vr="data-hf-authored-opacity",nu="__hf_color_grading_",eh=Wl,Ro={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},ko={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Mo={blur:0,pixelate:0,chromaBleed:0,tapeDamage:0,tapeTracking:0,tapeNoise:1,tapeSpeed:.5,filmArtifacts:0,halftone:0,halftoneSize:0,twoInkPrint:0,twoInkPrintSize:0,ascii:0,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0,dither:0,ditherSize:0,bloom:0,bloomRadius:8,monoScreen:0,monoScreenSize:0,monoScreenAngle:0,monoScreenSpread:0,monoScreenShape:0,monoScreenInvert:0,scanlines:0,scanlineCount:0,scanlineSoftness:0,chromaticAberration:0,chromaticAngle:0,crtCurvature:0,digitalGlitch:0,digitalGlitchColorSplit:0,digitalGlitchLineTear:0,digitalGlitchPixelate:0,digitalGlitchBlockAmount:0,digitalGlitchBlockDisplacement:0,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:0,engraving:0,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9,crosshatch:0,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9,kuwahara:0,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5};var zr=Vl,ru=zl,iu=ql,ou=$l,No=jl,Lo=Kl,Ql={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},Zl={vignette:.18};function Ee(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Ro,...n},details:{...ko,...r},effects:{...Mo,...i}}}var Do=[Ee("neutral","Neutral"),Ee("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Ee("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Ee("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Ee("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Ee("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Ee("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Ee("vintage-wash","Vintage Wash",Ql,Zl),Ee("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Ee("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Ee("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Ee("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Ee("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Ee("creator-camcorder","Creator Camcorder",{contrast:.08,highlights:-.05,shadows:.02,whites:.03,blacks:-.04,temperature:-.03,tint:-.015,vibrance:-.03,saturation:-.06},{vignette:.06,grain:.08,grainSize:.18,grainRoughness:.58},{chromaBleed:.55},.72),Ee("vhs-playback","VHS Playback",{contrast:-.04,saturation:-.08},{grain:.16,grainSize:.12,grainRoughness:.72},{tapeDamage:.82,tapeTracking:.85,tapeNoise:.3,tapeSpeed:.5,chromaBleed:.5,chromaticAberration:.18,scanlines:.35,scanlineCount:.17,scanlineSoftness:1,digitalGlitch:.32,digitalGlitchLineTear:.08,digitalGlitchSpeed:.5}),Ee("home-movie-8mm","8mm Home Movie",Ql,{...Zl,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Ee("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Ee("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],th=new Map(Do.map(e=>[e.id,e])),nh=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,rh={exposure:{min:-2,max:2},contrast:{min:-1,max:1},highlights:{min:-1,max:1},shadows:{min:-1,max:1},whites:{min:-1,max:1},blacks:{min:-1,max:1},temperature:{min:-1,max:1},tint:{min:-1,max:1},vibrance:{min:-1,max:1},saturation:{min:-1,max:1}},qt={hue:0,amount:0,level:0},eu={amount:me.unit,level:me.signedUnit},ft=[[0,0],[1,1]],$t=[],ih={hueVsHue:me.secondaryHueShift,hueVsSaturation:me.signedUnit,hueVsLuma:me.signedUnit},_o={center:0,range:180,softness:0},To={min:0,max:1,softness:.05},oh={vignette:me.unit,vignetteMidpoint:me.unit,vignetteRoundness:me.signedUnit,vignetteFeather:me.unit,grain:me.unit,grainSize:me.unit,grainRoughness:me.unit},Fo=me.unit,ah=me.effects,au=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var sh=Do.filter(e=>au.some(t=>e.effects[t]>1e-4)),oS=Do.filter(e=>!sh.includes(e)),aS={blur:{blur:.45},pixelate:{pixelate:.55},bloom:{bloom:.55,bloomRadius:8},chromaBleed:{chromaBleed:.55},tapeDamage:{tapeDamage:.65,tapeTracking:.55,tapeNoise:.25,tapeSpeed:.5},filmArtifacts:{filmArtifacts:.55},scanlines:{scanlines:.35,scanlineCount:.17,scanlineSoftness:1},chromaticAberration:{chromaticAberration:.15,chromaticAngle:0},crtCurvature:{crtCurvature:.2},digitalGlitch:{digitalGlitch:.55,digitalGlitchColorSplit:.25,digitalGlitchLineTear:.25,digitalGlitchPixelate:.15,digitalGlitchBlockAmount:.5,digitalGlitchBlockDisplacement:.25,digitalGlitchBlockOpacity:0,digitalGlitchSpeed:.5},halftone:{halftone:.94,halftoneSize:.36},twoInkPrint:{twoInkPrint:1,twoInkPrintSize:.42},ascii:{ascii:1,asciiSize:5/76,asciiInvert:0,asciiStyle:0,asciiColor:1,asciiRotation:0},dither:{dither:1,ditherSize:.5},monoScreen:{monoScreen:1,monoScreenSize:.35,monoScreenAngle:.25,monoScreenSpread:.3,monoScreenShape:0,monoScreenInvert:0},engraving:{engraving:1,engravingSpacing:7/17,engravingMinThickness:.2,engravingMaxThickness:3.2/7,engravingAngle:.25,engravingContrast:7/15,engravingSharpness:.59,engravingWave:.2,engravingWaveFrequency:2/9},crosshatch:{crosshatch:1,crosshatchSpacing:7/25,crosshatchThickness:.25,crosshatchAngle:.25,crosshatchContrast:1/3,crosshatchEdges:.5,crosshatchLineWeight:0,crosshatchWave:.33,crosshatchWaveFrequency:2/9},kuwahara:{kuwahara:1,kuwaharaRadius:1/7,kuwaharaSharpness:5/16,kuwaharaSaturation:.5}},su=[{path:"intensity",name:"--hf-color-grading-intensity",min:0,max:1},{path:"lut.intensity",name:"--hf-color-grading-lut-intensity",min:0,max:1},{path:"adjust.exposure",name:"--hf-color-grading-exposure",min:-2,max:2},{path:"effects.blur",name:"--hf-color-grading-blur",min:0,max:1},{path:"effects.bloom",name:"--hf-color-grading-bloom",min:0,max:3},{path:"effects.kuwahara",name:"--hf-color-grading-kuwahara",min:0,max:1},{path:"effects.pixelate",name:"--hf-color-grading-pixelate",min:0,max:1},{path:"effects.ascii",name:"--hf-color-grading-ascii",min:0,max:1},{path:"effects.dither",name:"--hf-color-grading-dither",min:0,max:1}];var lh=/^#[0-9a-f]{6}$/i;function uh(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&lh.test(t))?null:e.map(t=>t.toLowerCase())}function _e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Wr(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function lu(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function Te(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Wr(n,t.min,t.max):0}function Io(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function ch(e){let t=_e(e)?e:{};return ru.reduce((n,r)=>{let i=_e(t[r])?t[r]:{};return n[r]={hue:Io(i.hue,qt.hue),amount:Te(i.amount??qt.amount,eu.amount),level:Te(i.level??qt.level,eu.level)},n},{shadows:{...qt},midtones:{...qt},highlights:{...qt}})}function dh(e){if(!Array.isArray(e)||e.length!==2)return null;let t=Number(e[0]),n=Number(e[1]);return Number.isFinite(t)&&Number.isFinite(n)?[Wr(t,0,1),Wr(n,0,1)]:null}function uu(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function fh(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function mh(e){if(!Array.isArray(e)||e.length<2)return ft;let t=[];for(let n of e){let r=dh(n);if(!r)return ft;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),uu(t)||(fh(t),t.length>16)?ft:t}function ph(e){let t=_e(e)?e:{};return iu.reduce((n,r)=>(n[r]=mh(t[r]),n),{master:ft,red:ft,green:ft,blue:ft})}function hh(e,t){if(!Array.isArray(e)||e.length!==2)return null;let n=Number(e[0]),r=Number(e[1]);return Number.isFinite(n)&&Number.isFinite(r)?[Io(n),Wr(r,t.min,t.max)]:null}function gh(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return $t;let n=[];for(let r of e){let i=hh(r,t);if(!i)return $t;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),uu(n)?$t:n}function bh(e){let t=_e(e)?e:{};return ou.reduce((n,r)=>(n[r]=gh(t[r],ih[r]),n),{hueVsHue:$t,hueVsSaturation:$t,hueVsLuma:$t})}function tu(e){let t=_e(e)?e:{},n=Te(t.min??To.min,Fo),r=Te(t.max??To.max,Fo);return{min:Math.min(n,r),max:Math.max(n,r),softness:Te(t.softness??To.softness,me.secondarySoftRangeSoftness)}}function xh(e){let t=_e(e)?e:{},n=Te(t.range??_o.range,me.secondaryHueRange);return{center:Io(t.center,_o.center),range:n,softness:Te(t.softness??_o.softness,{min:me.secondaryHueSoftness.min,max:me.secondaryHueCombinedMax-n})}}function yh(e){return{hueShift:Te(e.hueShift??0,me.secondaryHueShift),saturation:Te(e.saturation??0,me.signedUnit),luma:Te(e.luma??0,me.signedUnit),temperature:Te(e.temperature??0,me.signedUnit),tint:Te(e.tint??0,me.signedUnit)}}function vh(e){return!_e(e)||!_e(e.key)||!_e(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:xh(e.key.hue),saturation:tu(e.key.saturation),luma:tu(e.key.luma)},correction:yh(e.correction)}}function Sh(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=vh(n);r&&t.push(r)}return t}function Ah(e){if(e==null)return null;let t=String(e).trim();return t||null}function Eh(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!_e(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:lu(e.intensity,1)}}function wh(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return _e(n)?n:null}catch{return null}return{preset:t}}return _e(e)?e:null}function Ch(e,t){let n=e.trim().match(nh);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Ur(e,t){if(typeof e=="string"){let r=Ch(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Ur(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Ur(r,t));if(!_e(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Ur(i,t);return n}function _h(e){return e?th.get(e)??null:null}function qr(e){let t=wh(e);if(!t||t.enabled===!1)return null;let n=Ah(t.preset),r=_h(n),i=r?.adjust??Ro,o=r?.details??ko,a=r?.effects??Mo,l=_e(t.adjust)?t.adjust:{},s=_e(t.details)?t.details:{},u=_e(t.effects)?t.effects:{},c=zr.reduce((p,b)=>(p[b]=Te(l[b]??i[b],rh[b]),p),{...Ro}),m=No.reduce((p,b)=>(p[b]=Te(s[b]??o[b],oh[b]),p),{...ko}),f=Lo.reduce((p,b)=>(p[b]=Te(u[b]??a[b],ah[b]??Fo),p),{...Mo});return{enabled:!0,preset:n,intensity:lu(t.intensity,r?.intensity??1),adjust:c,wheels:ch(t.wheels),curves:ph(t.curves),hueCurves:bh(t.hueCurves),secondaries:Sh(t.secondaries),details:m,effects:f,palette:uh(t.palette),lut:Eh(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():eh}}function cu(e,t){return qr(Ur(e,t))}function Th(e){return ru.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function Po(e){return iu.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function Oo(e){return ou.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function Ho(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function du(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||au.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:zr.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?Th(e.wheels):!1)||(e.curves?Po(e.curves):!1)||(e.hueCurves?Oo(e.hueCurves):!1)||(e.secondaries?Ho(e.secondaries):!1):!1}var Rh=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),kh=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function fu(e){let t=!1,n=null,r=null,i=null,o=null;function a(S,A){try{window.dispatchEvent(new CustomEvent(S,{detail:A}))}catch(C){L("runtime.picker.site1",C)}}function l(S){i=S,a("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function s(S){o=S,a("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function u(S){let A=S.ownerDocument.defaultView;if(!A)return!1;let C=S;for(;C&&C!==document.body&&C!==document.documentElement;){let N=A.getComputedStyle(C);if(N.display==="none"||N.visibility==="hidden"||N.pointerEvents==="none")return!0;let I=Number.parseFloat(N.opacity);if(Number.isFinite(I)&&I<=.01&&!C.hasAttribute(Nn))return!0;C=C.parentElement}return!1}function c(S){if(!S||S===document.body||S===document.documentElement)return!1;let A=S.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(Rh)||u(S))}function m(S){return!!S?.closest(kh)}function f(S){let A=S;if(A.id)return`#${CSS.escape(A.id)}`;let C=S.getAttribute("data-composition-id");if(C)return`[data-composition-id="${CSS.escape(C)}"]`;let N=S.getAttribute("data-composition-src");if(N)return`[data-composition-src="${CSS.escape(N)}"]`;let I=S.getAttribute("data-track-index");if(I)return`[data-track-index="${CSS.escape(I)}"]`;let W=S.tagName.toLowerCase(),B=S.parentElement;if(!B)return W;let oe=B.querySelectorAll(`:scope > ${W}`);if(oe.length===1)return W;for(let k=0;k<oe.length;k+=1)if(oe[k]===S)return`${W}:nth-of-type(${k+1})`;return W}function p(S){let A=S.tagName.toLowerCase(),C=(S.textContent??"").trim().replace(/\\s+/g," "),N=(I,W)=>I.length>W?`${I.slice(0,W-1)}\\u2026`:I;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?C.length>0?N(C,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function b(S,A,C){let N=typeof C=="number"&&C>0?C:8,I=[];if(document.elementsFromPoint)I=document.elementsFromPoint(S,A);else if(document.elementFromPoint){let oe=document.elementFromPoint(S,A);I=oe?[oe]:[]}if(m(I[0]??null))return[];let W={},B=[];for(let[oe,k]of I.entries()){if(!c(k))continue;let V=`${k.tagName}::${k.id||""}::${oe}`;if(!W[V]&&(W[V]=!0,B.push(k),B.length>=N))break}return B}function v(S){let A=S.getBoundingClientRect(),C={};for(let I of Array.from(S.attributes))I.name.startsWith("data-")&&(C[I.name]=I.value);return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:p(S),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:C}}function x(S,A,C){return b(S,A,C).map(v)}function _(S){if(!t)return;let C=b(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!c(C)||n===C)return;n&&n.classList.remove("__hf-pick-highlight"),n=C,C.classList.add("__hf-pick-highlight");let N=v(C);l(N),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:N})}function R(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let A=x(S.clientX,S.clientY,8);A.length!==0&&(l(A[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function T(S){S.key==="Escape"&&(F(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function M(){t||(t=!0,r=document.createElement("style"),r.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(r),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",_,!0),document.addEventListener("click",R,!0),document.addEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function F(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),r&&(r.remove(),r=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",_,!0),document.removeEventListener("click",R,!0),document.removeEventListener("keydown",T,!0),a("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function E(){window.__HF_PICKER_API={enable:M,disable:F,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(S,A,C)=>Number.isFinite(S)&&Number.isFinite(A)?x(S,A,C):[],pickAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return null;let N=x(S,A,8);if(!N.length)return null;let I=Math.max(0,Math.min(N.length-1,Number(C??0))),W=N[I]??null;return W?(s(W),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:W}),F(),W):null},pickManyAtPoint:(S,A,C)=>{if(!Number.isFinite(S)||!Number.isFinite(A))return[];let N=x(S,A,8);if(!N.length)return[];let I=[],W=Array.isArray(C)?C:[0];for(let B of W){let oe=Math.max(0,Math.min(N.length-1,Math.floor(Number(B)))),k=N[oe];if(!k)continue;I.some(Q=>Q.selector===k.selector&&Q.tagName===k.tagName)||I.push(k)}return I.length?(s(I[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:I}),F(),I):[]}},a("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:M,disablePickMode:F,installPickerApi:E}}var Mh=["width","height","top","left","right","bottom","inset","object-fit","object-position","z-index","opacity","visibility","filter","mix-blend-mode","backdrop-filter","border-radius","overflow","clip-path","mask","mask-image","mask-size","mask-position","mask-repeat","transform","transform-origin","translate","rotate","scale","box-sizing"];function jt(e,t){let n=Number.isFinite(t)&&t>0?t:30,r=Number.isFinite(e)&&e>0?e:0;return Math.floor(r*n+1e-9)/n}function mu(e,t,n=Mh){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function Ln(e,t,n){let r=e?.[t];return typeof r=="function"?Number(r.call(e))||n:typeof r=="number"&&Number.isFinite(r)?r:(r!=null&&L("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function Be(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&L("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function Dn(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){L("runtime.player.site1",i)}}}function pu(e,t,n,r){let i=jt(t,n),o=r?.suppressEvents===!0;return Be(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function Fh(e,t,n,r,i){let o=[];Dn(e,t,a=>{Be(a,"play"),o.push(a)});try{return pu(t,n,r,i)}finally{for(let a of o)try{Be(a,"pause")}catch(l){L("runtime.player.site2",l)}}}function Nh(e,t){Dn(e,t,n=>{Be(n,"play")})}function hu(e){let t=e.transport;return t?{_timeline:null,play:()=>t.play(),pause:()=>t.pause(),seek:(n,r)=>t.seek(n,r),renderSeek:(n,r)=>t.renderSeek(n,r),getTime:()=>t.getTime(),getDuration:()=>t.getDuration(),isPlaying:()=>t.isPlaying(),setPlaybackRate:n=>t.setPlaybackRate(n),getPlaybackRate:()=>t.getPlaybackRate()}:{_timeline:null,play:()=>{let n=e.getTimeline();if(!n||e.getIsPlaying())return;let r=Math.max(0,Number(e.getSafeDuration?.()??Ln(n,"duration",0))||0);r>0&&Math.max(0,Ln(n,"time",0))>=r&&(Be(n,"pause"),typeof n.seek=="function"&&n.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof n.timeScale=="function"&&n.timeScale(e.getPlaybackRate()),Be(n,"play"),Dn(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;Be(n,"pause"),Dn(e.getTimelineRegistry?.(),n,i=>{Be(i,"pause")});let r=Math.max(0,Ln(n,"time",0));e.onDeterministicSeek(r),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},seek:(n,r)=>{let i=e.getTimeline();if(!i)return;let o=Math.max(0,Number(n)||0),a=e.getIsPlaying(),l=Fh(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(l),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Be(i,"play"),Dn(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),Be(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(l,!0)):(e.setIsPlaying(!1),e.onSyncMedia(l,!1)),e.onRenderFrameSeek(l),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(Nh(e.getTimelineRegistry?.(),i),pu(i,n,o,r)):jt(Math.max(0,Number(n)||0),o);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>Ln(e.getTimeline(),"time",0),getDuration:()=>Ln(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function gu(){return{capturedTimeline:null,isPlaying:!1,currentTime:0,deterministicAdapters:[],canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,nativeMediaSyncDisabled:!1,webAudioMediaDisabled:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,beforeUnloadHandler:null,injectedCompStyles:[],injectedCompScripts:[],injectedCompLinks:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Lh=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Go(e){return e.id||e.getAttribute("data-hf-id")||null}function Dh(e){return ve(e)}function Ih(e,t){let n=e.getAttribute("data-composition-id");if(!n)return null;let r=Number(t[n]?.duration?.());return Number.isFinite(r)&&r>0?r:null}function Ph(e){return!(e instanceof HTMLMediaElement)||!Number.isFinite(e.duration)?null:Ze(e,e.duration)}function Oh(e,t,n,r){let i=Dh(e.getAttribute("data-duration"));return i!=null&&i>0?i:Ih(e,t)??Ph(e)??Math.max(0,n-r)}function Hh(e){for(let[t,n]of e){let r=t.parentElement;for(;r;){let i=e.get(r);if(i){n.parentId=i.id,i.children.push(n);break}r=r.parentElement}}}function bu(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let l of document.querySelectorAll("[data-start]")){if(l===o||Lh.has(l.tagName))continue;let s=t.resolveStartForElement(l,0);if(Oh(l,n,r,s)<=0)continue;let u={id:Go(l)??`__clip-${a++}`,element:l,parentId:null,children:[]};i.set(l,u)}return Hh(i),{roots:Array.from(i.values()).filter(l=>l.parentId===null)}}function In(e){if(e==null||typeof e=="string"&&e.trim()==="")return null;let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function Kt(e){let t=In(e.start);if(t==null)return null;let n=Math.max(0,t),r=In(e.duration),i=In(e.authoredDuration),o=r!=null&&r>0?r:i!=null&&i>0?i:null;if(o!=null)return{start:n,duration:o,end:n+o};let a=In(e.end),l=In(e.authoredEnd),s=a!=null&&a>n?a:l!=null&&l>n?l:null;return{start:n,duration:s==null?null:s-n,end:s}}var Bo="css:root",xu=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Gh=new Set([...xu,"contain","isolation","mask-border","mix-blend-mode","opacity"]),Bh=new Set(["absolute","relative"]),Uh=new Set(["flex","inline-flex","grid","inline-grid"]),Wh=new Set(["layout","paint","strict","content"]),Vh=new Set(["size","inline-size"]);function zh(e){return e.position==="fixed"||e.position==="sticky"}function qh(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(Bh.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&Uh.has(n)}function $h(e){let t=Number.parseFloat(e.opacity);if(Number.isFinite(t)&&t<1||e.getPropertyValue("isolation")==="isolate")return!0;let n=e.getPropertyValue("mix-blend-mode");return n&&n!=="normal"?!0:xu.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function jh(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>Wh.has(n))?!0:Vh.has(e.getPropertyValue("container-type"))}function Kh(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Gh.has(t))}function Yh(e,t){return zh(t)||qh(e,t)||$h(t)||jh(t)?!0:Kh(t)}function Xh(e){let t=[],n=e;for(;n?.parentElement;)t.push(Array.prototype.indexOf.call(n.parentElement.children,n)),n=n.parentElement;return`css:${t.reverse().join(".")}`}function $r(e){let t=e.ownerDocument.defaultView;if(!t)return Bo;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(Yh(n,t.getComputedStyle(n)))return Xh(n)}catch{return Bo}n=n.parentElement}return Bo}function mt(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,l=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=f.ownerDocument.defaultView?.HTMLMediaElement;return p?f instanceof p:typeof HTMLMediaElement<"u"&&f instanceof HTMLMediaElement},u=f=>{let p=o.get(f);if(p!==void 0)return p;let b=null,v=Kt({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(v?.duration!=null&&v.duration>0&&(b=v.duration),b==null||b<=0){let x=m(f,0),_=Kt({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});_?.duration!=null&&_.duration>0&&(b=_.duration)}if((b==null||b<=0)&&s(f)){let x=yn(f);Number.isFinite(f.duration)&&f.duration>x&&(b=(f.duration-x)/Ce(f))}if(b==null||b<=0){let x=f.getAttribute("data-composition-id");if(x){let _=t[x]??null;if(_&&typeof _.duration=="function")try{let R=Number(_.duration());Number.isFinite(R)&&R>0&&(b=R)}catch(R){L("runtime.startResolver.site1",R)}}}return b!=null&&Number.isFinite(b)&&b>0?(o.set(f,b),b):(o.set(f,null),null)},c=(f,p)=>{if(f.hasAttribute("data-composition-id")){let v=f.parentElement?.closest("[data-composition-id]");return v?m(v,p):0}let b=f.closest("[data-composition-id]");return b?m(b,p):0},m=(f,p)=>{let b=i.get(f);if(b!==void 0)return b??p;if(a.has(f))return p;a.add(f);try{let v=so(f.getAttribute("data-start"));if(!v){if(f.hasAttribute("data-composition-id")){let M=f.parentElement;if(M&&(M.hasAttribute("data-composition-src")||M.hasAttribute("data-composition-id")||M.hasAttribute("data-composition-file"))){let F=m(M,p);return i.set(f,F),F}}return i.set(f,p),p}if(v.kind==="absolute"){let M=Math.max(0,v.value),F=Math.max(0,c(f,p)+M);return i.set(f,F),F}let x=l(v.refId);if(!x)return i.set(f,p),p;let _=m(x,0),R=u(x);if(R==null||R<=0){let M=Math.max(0,_+v.offset);return i.set(f,M),M}let T=Math.max(0,_+R+v.offset);return i.set(f,T),T}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>m(f,Math.max(0,p)),resolveDurationForElement:f=>u(f)}}function Uo(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}function pt(e){return ve(e)}function Wo(e){let t=e.getAttribute("data-duration"),n=e.getAttribute("data-hf-authored-duration"),r=Kt({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(pt).some(o=>o!=null&&o<=0)?0:null)}function yu(e){return Kt({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute("data-hf-authored-end")})?.end??null}function Vo(e){try{let t=e.style?.zIndex;if(t&&t!=="auto"){let n=parseInt(t,10);if(Number.isFinite(n))return n}return 0}catch{return 0}}function zo(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function qo(e,t){let n=e.getAttribute("data-track-index")??e.getAttribute("data-track");if(n==null)return t;let r=Number.parseInt(n,10);return Number.isFinite(r)?r:t}function On(e){let t=String(e??"").trim();if(!t)return null;let n=t.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(t,document.baseURI).toString()}catch{return t}}function vu(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return On(t);let n=e.getAttribute("data-composition-src");if(n)return On(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?On(r.getAttribute("src")):null}function Qh(e){let t=e.className;return typeof t!="string"?null:t.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Zh(e){if(!e)return null;try{return new URL(e,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return e.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function e0(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function Pn(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function t0(e,t,n){let r=e.getAttribute("data-timeline-label")??e.getAttribute("data-label")??e.getAttribute("aria-label")??null;if(r?.trim())return r.trim();let i=e.getAttribute("data-composition-id");if(i)return Pn(i);let o=e.id;if(o)return Pn(o);let a=Qh(e);if(a)return Pn(a);let l=Zh(vu(e));if(l)return Pn(l);let s=e0(e);return s||`${Pn(t)} ${n+1}`}function Su(e){let n=window.__timelines??{},r=mt({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=q=>{if(!q)return null;let P=n[q]??null;if(!P||typeof P.duration!="function")return null;try{let O=Number(P.duration());return Number.isFinite(O)&&O>0?O:null}catch{return null}},o=q=>{let P=pt(q.getAttribute("data-duration"));return P!=null&&P>0?P:Number.isFinite(q.duration)?Ze(q,q.duration):null},a=()=>{let q=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(q.length===0)return null;let P=0;for(let O of q){let j=O.hasAttribute("data-hf-auto-start")?r.resolveStartForElement(O,0):Math.max(0,Number(O.getAttribute("data-start")??0)||0);if(!Number.isFinite(j))continue;let le=o(O);le==null||le<=0||(P=Math.max(P,Math.max(0,j)+le))}return P>0?P:null},l=(q,P)=>{let O=[],j=null,le=null,ee=null,K=q.parentElement;for(;K;){let Y=K.getAttribute("data-composition-id");Y&&(O.push(Y),!ee&&K!==P&&(ee=Y),j==null&&(j=r.resolveStartForElement(K,0)),le==null&&(le=pt(K.getAttribute("data-duration"))??i(Y)??null)),K=K.parentElement}return{parentCompositionId:ee,compositionAncestors:O.reverse(),inheritedStart:j,inheritedDuration:le}},s=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),c=s?.getAttribute("data-composition-id")??null,m=s?r.resolveStartForElement(s,0):0,f=a(),p=f!=null?Math.max(0,f-Math.max(0,m)):null,b=i(c),v=Wo(s??document.body),x=zo(...u.filter(q=>q!==s).map(q=>{let P=r.resolveStartForElement(q,0),O=r.resolveDurationForElement(q)??i(q.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||O==null||O<=0?null:Math.max(0,P)+O})),_=x!=null?Math.max(0,x-Math.max(0,m)):null,R=typeof b=="number"&&Number.isFinite(b)&&b>0?b:null,T=typeof v=="number"&&Number.isFinite(v)&&v>0?v:null,M=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,F=typeof _=="number"&&Number.isFinite(_)&&_>0?_:null,E=zo(M,F),S=R!=null&&E!=null&&R>E+1,C=T??(S?E:zo(R,M,F))??null,I=(C!=null?m+C:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),W=(q,P)=>!Number.isFinite(P)||P<=0?0:I==null||!Number.isFinite(I)?P:!Number.isFinite(q)||q>=I?0:Math.max(0,Math.min(P,I-q)),B=[],oe=[],k=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),V=0;for(let[q,P]of k.entries()){if(P===s||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let O=l(P,s),j=r.resolveStartForElement(P,O.inheritedStart??0),le=P.getAttribute("data-composition-id"),ee=Wo(P);if(ee==null&&le&&le!==c&&(ee=i(le)),ee==null&&P instanceof HTMLMediaElement&&Number.isFinite(P.duration)&&(ee=Ze(P,P.duration)),ee==null){let Fe=O.inheritedDuration;if(Fe!=null&&Fe>0){let ze=(O.inheritedStart??0)+Fe;ee=Math.max(0,ze-j)}}if(ee==null||ee<=0||(ee=W(j,ee),ee<=0))continue;let K=j+ee;V=Math.max(V,K);let Y=P.tagName.toLowerCase(),Ve=le&&le!==c?"composition":Y==="video"?"video":Y==="audio"?"audio":Y==="img"?"image":"element";B.push({id:Go(P)??le??null,label:t0(P,Ve,B.length),start:j,duration:ee,track:qo(P,q),zIndex:Vo(P),stackingContextId:$r(P),kind:Ve,tagName:Y,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:On(P.getAttribute("data-composition-src")),playbackStart:je(P),playbackRate:Ce(P),assetUrl:vu(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:pt(P.getAttribute("data-timeline-priority"))})}let Q=new Set(B.map(q=>q.id)),G=s?.getAttribute("data-composition-id")??null,H=G?n[G]??null:null;if(H&&s){let q=H;if(typeof q.getChildren=="function")try{let P=q.getChildren(!0,!0,!1)??[],O=new Map;for(let ee of s.children){let K=ee;if(!K.id)continue;let Y=K.tagName.toLowerCase();Y==="script"||Y==="style"||Y==="link"||O.set(K,{id:K.id,start:1/0,end:-1/0})}let j=ee=>{let K=ee;for(;K;){if(O.has(K))return K;if(K===s)return null;K=K.parentElement}return null};for(let ee of P){if(typeof ee.targets!="function"||typeof ee.startTime!="function"||typeof ee.duration!="function")continue;let K=ee.startTime(),Y=ee.parent;for(;Y&&Y!==H&&typeof Y.startTime=="function";)K+=Y.startTime(),Y=Y.parent;let Ve=K+ee.duration();if(!(!Number.isFinite(K)||!Number.isFinite(Ve)))for(let Fe of ee.targets()){if(!(Fe instanceof Element))continue;let Re=j(Fe);if(!Re)continue;let ze=O.get(Re);ze&&(ze.start=Math.min(ze.start,K),ze.end=Math.max(ze.end,Ve))}}let le=B.length>0?Math.max(...B.map(ee=>ee.track))+1:0;for(let[ee,K]of O){if(K.start===1/0||K.end===-1/0)continue;let Y=ee;if(Q.has(Y.id))continue;let Ve=Math.max(0,K.end-K.start);if(Ve<=0)continue;let Fe=W(K.start,Ve);Fe<=0||(V=Math.max(V,K.start+Fe),B.push({id:Y.id,label:Y.getAttribute("data-timeline-label")??Y.getAttribute("data-label")??Y.getAttribute("aria-label")??Y.id,start:K.start,duration:Fe,track:qo(Y,le),zIndex:Vo(Y),stackingContextId:$r(Y),kind:"element",tagName:Y.tagName.toLowerCase(),compositionId:Y.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(Y),playbackRate:Ce(Y),assetUrl:null,timelineRole:Y.getAttribute("data-timeline-role"),timelineLabel:Y.getAttribute("data-timeline-label"),timelineGroup:Y.getAttribute("data-timeline-group"),timelinePriority:pt(Y.getAttribute("data-timeline-priority"))}),Q.add(Y.id))}}catch(P){L("runtime.timeline.site1",P)}}if(s&&C!=null&&C>0){let q=B.length>0?Math.max(...B.map(P=>P.track))+1:0;for(let P of s.children){let O=P;if(!O.id||Q.has(O.id))continue;let j=O.getAttribute("data-timeline-role");if(j!=="overlay"&&j!=="persistent-overlay")continue;let le=O.tagName.toLowerCase();if(le==="script"||le==="style"||le==="link"||le==="meta"||window.getComputedStyle(O).display==="none")continue;let K=W(0,C);K<=0||(V=Math.max(V,K),B.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:K,track:qo(O,q),zIndex:Vo(O),stackingContextId:$r(O),kind:"element",tagName:le,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:G?[G]:[],parentCompositionId:G,nodePath:null,compositionSrc:null,playbackStart:je(O),playbackRate:Ce(O),assetUrl:null,timelineRole:j,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:pt(O.getAttribute("data-timeline-priority"))}),Q.add(O.id))}}for(let q of u){if(q===s)continue;let P=q.getAttribute("data-composition-id");if(!P||!Uo(P))continue;let O=r.resolveStartForElement(q,0),j=Wo(q);if((j==null||j<=0)&&yu(q)!=null){let Y=yu(q);j=Math.max(0,Y-O)}let le=i(P),ee=j&&j>0?j:le;if(ee==null||ee<=0)continue;let K=W(O,ee);K<=0||oe.push({id:P,label:q.getAttribute("data-label")??P,start:O,duration:K,thumbnailUrl:On(q.getAttribute("data-thumbnail-url")),avatarName:null})}let z=Math.max(1,V||1,C??0),X=S&&T==null,we=X?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(z*Math.max(1,e.canonicalFps)));return{...Er(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:X?Number.POSITIVE_INFINITY:z,durationInFrames:we,clips:B,scenes:oe,compositionWidth:pt(s?.getAttribute("data-width"))??1920,compositionHeight:pt(s?.getAttribute("data-height"))??1080}}var $o="data-composition-id",n0="data-composition-src",r0=`[${$o}]`,jS=`[${n0}]`,Au="style",Eu="script",i0=\'link[rel="stylesheet"], link[rel="preconnect"]\';function Yt(e){return e?Array.from(e):[]}function wu(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=Yt(t.querySelectorAll(r0)),l=o?a.find(c=>c.getAttribute($o)===o)??null:a[0]??null,s=(l??a[0])?.getAttribute($o)?.trim()||"",u=i?null:n??null;return{innerRoot:l,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:l?.getAttribute("id")?.trim()||null,styleSources:[...Yt(u?.querySelectorAll(Au)),...Yt(t.querySelectorAll(Au))],scriptSources:[...Yt(u?.querySelectorAll(Eu)),...Yt(t.querySelectorAll(Eu))],linkSources:Yt(n?.querySelectorAll(i0)),variableDefaultCarriers:[r,l].filter(c=>c!=null)}}var pe=Um(Yc(),1),Xc=pe.default,PA=pe.default.stringify,OA=pe.default.fromJSON,HA=pe.default.plugin,GA=pe.default.parse,BA=pe.default.list,UA=pe.default.document,WA=pe.default.comment,VA=pe.default.atRule,zA=pe.default.rule,qA=pe.default.decl,$A=pe.default.root,jA=pe.default.CssSyntaxError,KA=pe.default.Declaration,YA=pe.default.Container,XA=pe.default.Processor,JA=pe.default.Document,QA=pe.default.Comment,ZA=pe.default.Warning,eE=pe.default.AtRule,tE=pe.default.Result,nE=pe.default.Input,rE=pe.default.Rule,iE=pe.default.Root,oE=pe.default.Node;var xa="data-hf-authored-id",Jc="data-hf-inner-root";function ya(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function va(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function _g(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Zc(e){let t=e.trim();return t?Array.from(new Set([t,_g(t)])).filter(Boolean):[]}function Tg(e){return!!e&&/[\\w-]/.test(e)}function Rg(e,t,n){let r=Zc(t).sort((l,s)=>s.length-l.length);if(r.length===0)return e;let i="",o=0,a=null;for(let l=0;l<e.length;l+=1){let s=e[l],u=l>0?e[l-1]:"";if(a){i+=s,s===a&&u!=="\\\\"&&(a=null);continue}if(s===\'"\'||s==="\'"){a=s,i+=s;continue}if(s==="["){o+=1,i+=s;continue}if(s==="]"){o=Math.max(0,o-1),i+=s;continue}if(s==="#"&&o===0){let c=r.find(m=>e.startsWith(m,l+1));if(c){let m=e[l+1+c.length];if(!Tg(m)){i+=n,l+=c.length;continue}}}i+=s}return i}function kg(e,t){let n=t?.trim();return n?Rg(e,n,`[${xa}="${va(n)}"]`):e}function Qc(e){return`${e}:not(:has([${Jc}])), ${e} > [${Jc}]`}function Mg(e,t,n,r,i,o){let a=kg(e,r),l=Fg(a,t,n),s=l.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?Qc(t):e;let u=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${ya(n)}\\\\1\\\\s*\\\\]`,"g");if(u.test(s))return s.replace(u,"").trim()===""?Qc(t):l.replace(u,t);let c=l.match(/^\\s*/)?.[0]??"",m=l.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${xa}="${va(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${c}${t}${f}${p}${m}`}}return`${c}${t} ${s}${m}`}function Fg(e,t,n){let r=ya(n),i=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${r}"|\'${r}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return e.replace(new RegExp(`${i}(?:${o})+`,"g"),t).replace(new RegExp(`(?:${o})+${i}`,"g"),t)}var Ng=new Set(["keyframes","-webkit-keyframes","font-face"]);function Lg(e){return e?.type==="atrule"}function Dg(e){let t=e.parent;for(;t;){if(Lg(t)&&Ng.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Ig(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function ed(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${va(o)}"]`,l=Xc.parse(e);return l.walkRules(s=>{Dg(s)||Ig(s)||(s.selectors=s.selectors.map(u=>Mg(u,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),l.toResult({map:!1}).css}function rt(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}function td(e,t,n="[HyperFrames] composition script error:",r,i=t,o){let a=rt(t),l=rt(i),s=rt(n),u=ya(t),c=rt(o?.trim()||null),m=rt(r??null),f=rt(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${u}"|\'${u}\')\\s*\\]`),p=rt(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),b=rt(Zc(o?.trim()||""));return`(function(){\n var __hfCompId = ${a};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${s};\n var __hfAuthoredRootId = ${c};\n var __hfAuthoredRootAttr = ${rt(xa)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${p};\n var __hfAuthoredRootIdForms = ${b};\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 if (prop !== __hfCompId) {\n return Reflect.get(target, prop, target);\n }\n var authoredValue = Reflect.get(target, prop, target);\n return authoredValue === undefined\n ? Reflect.get(target, __hfTimelineCompId, target)\n : authoredValue;\n },\n set: function(target, prop, value, receiver) {\n if (prop !== __hfCompId) {\n return Reflect.set(target, prop, value, target);\n }\n // The authored node remains in the compiled DOM when its local id\n // differs from the runtime mount id, so readiness legitimately sees\n // both compositions. Publish the same timeline under both identities\n // instead of replacing one with the other.\n var authoredSet = Reflect.set(target, __hfCompId, value, target);\n var runtimeSet = Reflect.set(target, __hfTimelineCompId, value, target);\n return authoredSet && runtimeSet;\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 // Inside a sub-composition, __hyperframes is passed as a bare script\n // param bound to the SCOPED variant (per-comp getVariables). But\n // authors routinely write the documented window.__hyperframes.\n // getVariables() form, which would otherwise fall through to the host\n // page\'s base __hyperframes and return the WRONG (or empty) variables\n // for this instance. Route it to the scoped variant too so both\n // spellings resolve to this composition\'s own variables.\n // (__hfScopedHyperframes is a hoisted var assigned below, before any\n // sub-comp script -- the only code that reads this -- runs.)\n if (prop === "__hyperframes") return __hfScopedHyperframes;\n // Native window methods must stay bound to the real window. Handed\n // back unbound, "this" at call time is this Proxy and Chrome rejects\n // it with "Illegal invocation", which broke window.addEventListener,\n // setTimeout, matchMedia and getComputedStyle inside every\n // sub-composition -- including the window.addEventListener("hf-seek",\n // ...) form the Three.js and TypeGPU adapters document. The sibling\n // document and gsap proxies here already bind.\n //\n // Only bind non-constructors. Function.prototype.bind drops static\n // members, so binding a class exposed on window (window.Texts and\n // friends) would silently strip its statics. Built-in methods have\n // no .prototype; classes and constructor functions do.\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" && value.prototype === undefined\n ? value.bind(target)\n : value;\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n // Common authoring boilerplate assigns the registry back to\n // itself (window.__timelines = window.__timelines || {}). The\n // getter above returns our proxy; do not replace the canonical\n // registry with that proxy or later wrappers will stack proxies.\n if (value === __hfTimelineRegistryProxy) return true;\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${e.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})();`}var Pg=["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 nd(e){let t=e.getAttribute("id")?.trim();for(let n of Pg)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Og=8e3,Hg=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Gg=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Bg=["src","href"];function Ug(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function od(e,t){if(!t)return e;let n=e.trim();if(Ug(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function ad(e,t){return!t||!e?e:e.replace(Gg,(n,r,i)=>{let o=od(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function Wg(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of Bg){let i=n.getAttribute(r);if(i==null)continue;let o=od(i,t);o!==i&&n.setAttribute(r,o)}}function Vg(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=ad(r,t);i!==r&&n.setAttribute("style",i)}}function zg(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=ad(r,t);i!==r&&(n.textContent=i)}}function sd(e,t){if(t){Wg(e,t),Vg(e,t),zg(e,t);for(let n of Array.from(e.querySelectorAll("template")))sd(n.content,t)}}function qg(e,t){return`${e}__hf${t}`}var $g=e=>new Promise(t=>{let n=!1,r=Date.now(),i=null,o=a=>{n||(n=!0,i!=null&&window.clearTimeout(i),t({status:a,elapsedMs:Math.max(0,Date.now()-r)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),i=window.setTimeout(()=>o("timeout"),Og)});function Sa(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function rd(e){for(let t of Array.from(e.querySelectorAll("style, script")))t.remove()}function jg(e){let t=document.importNode(e,!0);nd(t);let n=t.getAttribute("data-width"),r=t.getAttribute("data-height");return t.style.width=n?`${n}px`:"100%",t.style.height=r?`${r}px`:"100%",t}function Kg(e,t){let n=e.trim();if(!n)return e;try{return Hg.test(n)&&!n.startsWith("#")&&!n.startsWith("?")?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}function id(e,t){try{let n=new URL(e),r=new URL(t);return n.search="",n.hash="",r.search="",r.hash="",n.href===r.href}catch{return!1}}function li(e){let t=(e.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(e.getAttribute("data-hf-original-composition-id")||t||"").trim()||null,runtimeCompositionId:t}}function Yg(e){let t=new Map;for(let n of e){let r=li(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function ld(e){let t=li(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Xg(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Jg(e){return e.hasAttribute("data-composition-src")?!0:ld(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Xg(e):!1}function Ea(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:ld(t))}function ud(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Ea().map(n=>li(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function cd(e,t=Yg(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=li(i),l=Jg(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,u=a||o;if(l){let c=s?(n.get(o)||0)+1:0;s&&n.set(o,c),u=s?qg(o,c):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",u),a&&a!==u&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:u})}return r}async function Aa(e){let t=wu({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=t.innerRoot instanceof HTMLElement?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,l=t.authoredRootId,s=a?`[data-composition-id="${CSS.escape(a)}"]`:void 0;for(let f of t.linkSources){let p=(f.getAttribute("href")||"").trim();if(!p)continue;let b=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&id(b,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(b)}"]`))continue;let v=f.cloneNode(!0);v instanceof HTMLLinkElement&&(v.href=b,document.head.appendChild(v),e.injectedLinks.push(v))}(f=>{for(let p of f){let b=p.cloneNode(!0);b instanceof HTMLStyleElement&&(i&&(b.textContent=ed(b.textContent||"",i,s,l,{scopeRootSelectors:!0})),document.head.appendChild(b),e.injectedStyles.push(b))}})(t.styleSources);let c=f=>{let p=f.getAttribute("type")?.trim()??"",b=f.getAttribute("src")?.trim()??"";if(b){let x=Kg(b,e.compositionUrl);return e.compositionUrl&&id(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let v=f.textContent?.trim()??"";return v?{kind:"inline",content:v,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(c).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),b=e.parseDimensionPx(f),v=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),b&&e.host instanceof HTMLElement&&(e.host.style.width=b),v&&e.host instanceof HTMLElement&&(e.host.style.height=v),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=jg(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),rd(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);rd(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml;a&&Qg(e,r,a);for(let f of m){let p=document.createElement("script");if(f.type&&(p.type=f.type),p.async=!1,f.kind==="external"?p.src=f.src:f.type.toLowerCase()==="module"?p.textContent=f.content:f.scopeCompositionId?p.textContent=td(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,l):p.textContent=`(function(){${f.content}})();`,document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let b=await $g(p);b.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:b.status,elapsedMs:b.elapsedMs}})}}}async function dd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>{if(i.hasAttribute("data-composition-src")||i.children.length>0)return!1;let o=n.get(i)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(r.length!==0)for(let i of r){let o=n.get(i),a=o?.authoredCompositionId;if(!a)continue;let l=document.querySelector(`template#${CSS.escape(a)}-template`);Sa(i),await Aa({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function fd(e){let t=Ea();if(ud(),t.length===0)return;let n=cd(t),r=t.filter(i=>i.hasAttribute("data-composition-src"));r.length!==0&&await Promise.all(r.map(async i=>{let o=i.getAttribute("data-composition-src");if(!o)return;let a=n.get(i),l=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||l||null,u=null;try{u=new URL(o,document.baseURI)}catch{u=null}Sa(i);try{let c=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(c){await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),b=new DOMParser().parseFromString(f,"text/html");sd(b,u);let v=(l?b.querySelector(`template#${CSS.escape(l)}-template`):null)??b.querySelector("template"),x=v?v.content:b.body;await Aa({host:i,authoredCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!v,fallbackBodyInnerHtml:b.body.innerHTML,compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:b.head,declaredVariableDefaults:bn(b.documentElement),variableDeclarer:b.documentElement,onDiagnostic:e.onDiagnostic})}catch(c){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:c instanceof Error?c.message:"unknown_error"}}),Sa(i)}}))}function Qg(e,t,n){let i={...e.declaredVariableDefaults??(t instanceof Element?bn(t):{}),...Vs(e.host)};Zi(e.variableDeclarer??(t instanceof Element?t:null),i,n),Us(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,eo(e.host,{...Bs(e.host,i,window),...Cr()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function wa(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function Zg(e){return e instanceof HTMLElement?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function eb(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!(r instanceof HTMLElement))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function tb(e){let t=e.parentElement;if(t?.dataset.captionWrapper==="true")return t;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",e.parentNode?.insertBefore(n,e),n.appendChild(e),n}function Ca(){let e=window.gsap;e&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(t=>t.ok?t.json():null).then(t=>{if(!t||!Array.isArray(t)||t.length===0)return;let n=eb();for(let r of t){let i=null;if(r.wordId&&(i=Zg(document.getElementById(r.wordId))),!i&&r.wordIndex!==void 0&&(i=n[r.wordIndex]??null),!i)continue;let o={},a={};if(r.x!==void 0&&(o.x=r.x),r.y!==void 0&&(o.y=r.y),r.scale!==void 0&&(o.scale=r.scale),r.rotation!==void 0&&(o.rotation=r.rotation),r.opacity!==void 0&&(a.opacity=r.opacity),r.fontSize!==void 0&&(a.fontSize=`${r.fontSize}px`),r.fontWeight!==void 0&&(a.fontWeight=r.fontWeight),r.fontFamily!==void 0&&(a.fontFamily=r.fontFamily),r.activeColor||r.dimColor){let s=e.getTweensOf(i).filter(m=>m.vars.color!==void 0).sort((m,f)=>m.startTime()-f.startTime()),u=s.find(m=>wa(m)==="dim")??s.find(m=>wa(m)===void 0),c=u?String(u.vars.color):"";for(let m of s)(wa(m)??(String(m.vars.color)===c?"dim":"active"))==="dim"?r.dimColor&&(m.vars.color=r.dimColor):r.activeColor&&(m.vars.color=r.activeColor);r.dimColor&&e.set(i,{color:r.dimColor})}if(Object.keys(a).length>0&&e.set(i,a),Object.keys(o).length>0){let l=tb(i);e.set(l,o)}}}).catch(()=>{})}var Ta="data-hf-edit-base-x",Ra="data-hf-edit-base-y",tn="data-hf-edit-original-translate",ui=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},nb=e=>{let t=[],n=0,r="";for(let i of e.trim())i==="("&&(n+=1),i===")"&&(n=Math.max(0,n-1)),/\\s/.test(i)&&n===0?(r&&t.push(r),r=""):r+=i;return r&&t.push(r),t},md=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,_a=(e,t)=>md.test(e)&&md.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,rb=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=nb(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${_a(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${_a(r,t)} ${_a(i,n)}${a}`},ib=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},ob=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let n=e.ownerDocument.defaultView,r=n?n.getComputedStyle(e).getPropertyValue("translate").trim():"";return r==="none"?"":r}catch{return""}},ka=new WeakMap;function ab(e,t){let n=ka.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ne("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=ui(e.getAttribute("data-x"))-ui(e.getAttribute(Ta)),i=ui(e.getAttribute("data-y"))-ui(e.getAttribute(Ra));e.hasAttribute(tn)||e.setAttribute(tn,ob(e)),n===void 0&&ib(e);let o=e.getAttribute(tn)??"",a=rb(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),ka.set(e,e.style.getPropertyValue("translate"))}function ci(e,t){let n=e.defaultView?.HTMLElement,r=e.defaultView?.SVGElement,i=s=>n||r?n!==void 0&&s instanceof n||r!==void 0&&s instanceof r:typeof s.style?.setProperty=="function",o=e.querySelectorAll(`[${tn}]:not([${Ta}]):not([${Ra}])`);for(let s=0;s<o.length;s++){let u=o[s];if(u===void 0||!i(u))continue;let c=u.getAttribute(tn)??"";c===""?u.style.removeProperty("translate"):u.style.setProperty("translate",c),u.removeAttribute(tn),ka.delete(u)}let a=e.querySelectorAll(`[${Ta}], [${Ra}]`),l=0;for(let s=0;s<a.length;s++){let u=a[s];u===void 0||!i(u)||(ab(u,t),l+=1)}return l}var pd="__hfPositionEditsSeekReapplyWrapped",hd=new WeakSet,gd=new WeakMap,bd=new WeakMap;function xd(e){let t=e,n=()=>{try{ci(t.document)}catch{}},r=m=>typeof m=="function"&&(hd.has(m)||!!m[pd]),i=m=>{hd.add(m);try{Object.defineProperty(m,pd,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let b=m.apply(this,p);return n(),b};return i(f),f},a=(m,f)=>{let p=gd.get(m);if(p?.has(f))return!0;let b=Object.getOwnPropertyDescriptor(m,f);if(b?.configurable===!1){let _=m[f];return typeof _=="function"&&(m[f]=o(_),n()),!1}let v=m[f],x=b?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>v,set:_=>{v=o(_),x?.call(m,_)}}),v=o(v),p??(p=new Set),p.add(f),gd.set(m,p),n(),!0},l=(m,f)=>{let p=bd.get(t),b=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(b?.configurable===!1){let _=t[m];return _?a(_,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:b?.enumerable??!0,get:()=>x,set:_=>{x=_,x&&a(x,f)}}),p??(p=new Set),p.add(m),bd.set(t,p)}let v=t[m];return v?a(v,f):!1},s=()=>{let m=l("__hf","seek"),f=l("__player","renderSeek");return m&&f};if(s())return;let u=120,c=t.setInterval(()=>{if(s()){t.clearInterval(c);return}u-=1,u<=0&&t.clearInterval(c)},50)}function di(e){let t=window,r=e.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",i=r?t.__hfVariablesByComp?.[r]:void 0;if(i)return i;let o=t.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:t.__hfVariables??{}}function fi(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Ma(e){let t=e.replace(/[\\u0000-\\u0020]/g,""),n=/^([a-z][a-z0-9+.-]*):/i.exec(t);if(!n)return!0;let r=n[1]?.toLowerCase();return r?r==="https"||r==="http"||r==="blob"?!0:r==="data"?/^data:image\\//i.test(t):!1:!1}var yd=new Set(["img","video","audio","source"]);function sb(e){if(typeof e=="string"&&e.length>0)return e;if(e!==null&&typeof e=="object"){let t=e.url;if(typeof t=="string"&&t.length>0)return t}return null}function lb(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function ub(e){if(fi(e))return String(e);if(e!==null&&typeof e=="object"){let t=e.name;if(typeof t=="string"&&t.length>0)return t}return null}function Fa(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=di(e);return t.set(n,i),i}function cb(e,t){if(e.childElementCount===0){e.textContent=t;return}let n=!1;for(let r of Array.from(e.childNodes))r.nodeType===Node.TEXT_NODE&&(r.nodeValue=n?"":t,n=!0);n||e.insertBefore(e.ownerDocument.createTextNode(t),e.firstChild)}function db(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function fb(e,t){let n=new Set,r=db(e);r&&n.add(r);for(let i of Array.from(e.querySelectorAll("[data-composition-id]")))n.add(i);for(let i of n){let o=Fa(i,t);for(let[a,l]of Object.entries(o)){let s=ub(l);s!==null&&i instanceof HTMLElement&&i.style.setProperty(`--${a}`,lb(s))}}}function Na(e){let t=new Map;fb(e,t);for(let n of Array.from(e.querySelectorAll("[data-var-src]"))){let r=n.getAttribute("data-var-src")?.trim();if(!r)continue;if(!yd.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(yd).join("/")}.`);continue}let i=sb(Fa(n,t)[r]);if(i!==null){if(!Ma(i)){console.warn(`[hyperframes] Ignoring data-var-src="${r}": unsafe URL protocol.`);continue}n.setAttribute("src",i)}}for(let n of Array.from(e.querySelectorAll("[data-var-text]"))){let r=n.getAttribute("data-var-text")?.trim();if(!r)continue;let i=Fa(n,t)[r];fi(i)&&cb(n,String(i))}}var it=new Map,mb="data-hf-color-grading-canvas",pb="__hf_color_grading_canvas__";function Md(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{r instanceof HTMLElement&&(r.hasAttribute(Vr)||r.setAttribute(Vr,r.style.opacity))},n=r=>{if(r instanceof Element){r.matches("video, img")&&t(r);for(let i of r.querySelectorAll("video, img"))t(i)}};n(e),new MutationObserver(r=>{for(let i of r)for(let o of i.addedNodes)n(o)}).observe(e,{childList:!0,subtree:!0})}var hb=16,gb=4,rn={enabled:!1,position:.5,softness:0,lineWidth:2},La=["#000000","#ffffff"],bb=["#1a1a1a","#f5f5dc"],sr=3,xb=sr-1,yb=5,Da=`${Ke}.0`,vd=`${Ke-1}.0`,vb=`${sr}.0`,Sb=`${(xb+.5)/sr}`;function mi(e){let t=e.getAttribute(Fn);return t==null?null:cu(t,di(e))}var Ab=["attribute vec2 a_pos;","varying vec2 v_uv;","void main(){"," v_uv = a_pos * 0.5 + 0.5;"," gl_Position = vec4(a_pos, 0.0, 1.0);","}"].join(`\n`),Eb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform sampler2D u_bloomSource;","uniform sampler2D u_kuwaharaSource;","uniform sampler2D u_lut;","uniform sampler2D u_advanced;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_bloomReady;","uniform float u_kuwaharaReady;","uniform float u_lutEnabled;","uniform float u_lutSize;","uniform vec2 u_lutTextureSize;","uniform vec3 u_lutDomainMin;","uniform vec3 u_lutDomainMax;","uniform float u_lutIntensity;","uniform vec3 u_shadowWheel;","uniform vec3 u_midtoneWheel;","uniform vec3 u_highlightWheel;","uniform float u_rgbCurvesEnabled;","uniform float u_hueCurvesEnabled;","uniform float u_secondaryCount;","uniform float u_exposure;","uniform float u_contrast;","uniform float u_highlights;","uniform float u_shadows;","uniform float u_whites;","uniform float u_blacks;","uniform float u_temperature;","uniform float u_tint;","uniform float u_vibrance;","uniform float u_saturation;","uniform float u_vignette;","uniform float u_vignetteMidpoint;","uniform float u_vignetteRoundness;","uniform float u_vignetteFeather;","uniform float u_grain;","uniform float u_grainSize;","uniform float u_grainRoughness;","uniform float u_grainSeed;","uniform float u_effectTime;","uniform float u_blur;","uniform float u_bloom;","uniform float u_kuwahara;","uniform float u_pixelate;","uniform float u_chromaBleed;","uniform float u_tapeDamage;","uniform float u_tapeTracking;","uniform float u_tapeNoise;","uniform float u_tapeSpeed;","uniform float u_filmArtifacts;","uniform float u_halftone;","uniform float u_halftoneSize;","uniform float u_twoInkPrint;","uniform float u_twoInkPrintSize;","uniform float u_ascii;","uniform float u_asciiSize;","uniform float u_asciiInvert;","uniform float u_asciiStyle;","uniform float u_asciiColor;","uniform float u_asciiRotation;","uniform float u_dither;","uniform float u_ditherSize;","uniform float u_monoScreen;","uniform float u_monoScreenSize;","uniform float u_monoScreenAngle;","uniform float u_monoScreenSpread;","uniform float u_monoScreenShape;","uniform float u_monoScreenInvert;","uniform float u_scanlines;","uniform float u_scanlineCount;","uniform float u_scanlineSoftness;","uniform float u_chromaticAberration;","uniform float u_chromaticAngle;","uniform float u_crtCurvature;","uniform float u_digitalGlitch;","uniform float u_digitalGlitchColorSplit;","uniform float u_digitalGlitchLineTear;","uniform float u_digitalGlitchPixelate;","uniform float u_digitalGlitchBlockAmount;","uniform float u_digitalGlitchBlockDisplacement;","uniform float u_digitalGlitchBlockOpacity;","uniform float u_digitalGlitchSpeed;","uniform float u_engraving;","uniform float u_engravingSpacing;","uniform float u_engravingMinThickness;","uniform float u_engravingMaxThickness;","uniform float u_engravingAngle;","uniform float u_engravingContrast;","uniform float u_engravingSharpness;","uniform float u_engravingWave;","uniform float u_engravingWaveFrequency;","uniform float u_crosshatch;","uniform float u_crosshatchSpacing;","uniform float u_crosshatchThickness;","uniform float u_crosshatchAngle;","uniform float u_crosshatchContrast;","uniform float u_crosshatchEdges;","uniform float u_crosshatchLineWeight;","uniform float u_crosshatchWave;","uniform float u_crosshatchWaveFrequency;","uniform float u_paletteSize;","uniform vec3 u_palette0;","uniform vec3 u_palette1;","uniform vec3 u_palette2;","uniform vec3 u_palette3;","uniform vec3 u_palette4;","uniform vec3 u_palette5;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","const float PI = 3.14159265359;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","float bt601Luma(vec3 c){ return dot(c, vec3(0.299, 0.587, 0.114)); }","float grainHash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }","float digitalHash(vec2 p){"," vec2 q = mod(floor(p), 251.0);"," float x = mod(q.x * q.x * 157.0 + q.x * 89.0, 251.0);"," float y = mod(q.y * q.y * 113.0 + q.y * 47.0, 251.0);"," float xy = mod(q.x * q.y * 71.0, 251.0);"," return mod(x + y + xy + 19.0, 251.0) / 251.0;","}","float colorSaturation(vec3 c){ return max(max(c.r, c.g), c.b) - min(min(c.r, c.g), c.b); }","vec2 clampUv(vec2 uv){ return clamp(uv, vec2(0.0), vec2(1.0)); }","vec2 applyCrtWarp(vec2 uv){"," vec2 centered = uv * 2.0 - 1.0;"," float curvature = clamp(u_crtCurvature, 0.0, 1.0) * 0.5;"," float dist = dot(centered, centered);"," centered *= 1.0 + curvature * dist;"," return centered * 0.5 + 0.5;","}","vec4 sampleSource(vec2 uv){ return texture2D(u_source, clampUv(uv)); }","vec4 sampleBlur(vec2 uv){ return texture2D(u_blurSource, clampUv(uv)); }","vec3 sampleBloom(vec2 uv){ return texture2D(u_bloomSource, clampUv(uv)).rgb; }","vec3 sampleKuwahara(vec2 uv){"," vec2 displayUv = uv * u_uvScale + u_uvOffset;"," return texture2D(u_kuwaharaSource, clampUv(displayUv)).rgb;","}","vec4 samplePrepared(vec2 uv){"," vec4 base = sampleSource(uv);"," float blur = clamp(u_blur, 0.0, 1.0);"," if (blur > 0.0 && u_blurReady > 0.5) base = mix(base, sampleBlur(uv), blur);"," float kuwahara = clamp(u_kuwahara, 0.0, 1.0);"," if (kuwahara > 0.0 && u_kuwaharaReady > 0.5) {"," base.rgb = mix(base.rgb, sampleKuwahara(uv), kuwahara);"," }"," return base;","}","float tapeTrackingBand(float y, float center, float width){"," float offset = fract(y - center + 0.5) - 0.5;"," float triangle = max(0.0, 1.0 - abs(offset) / max(width, 0.0001));"," return triangle * triangle * (3.0 - 2.0 * triangle);","}","vec4 sampleMedia(vec2 uv){"," float pixel = clamp(u_pixelate, 0.0, 1.0);"," vec2 sampleUv = uv;"," if (pixel > 0.0) {"," float blockSize = mix(1.0, 48.0, pixel);"," vec2 cells = max(u_resolution / blockSize, vec2(1.0));"," sampleUv = (floor(clamp(uv, vec2(0.0), vec2(0.999999)) * cells) + 0.5) / cells;"," }"," float tapeDamage = clamp(u_tapeDamage, 0.0, 1.0);"," float tapeTracking = clamp(u_tapeTracking, 0.0, 1.0);"," float tapeNoise = clamp(u_tapeNoise, 0.0, 1.0);"," float tapeTime = u_effectTime * mix(0.0, 2.0, clamp(u_tapeSpeed, 0.0, 1.0));"," float tapeFrame = floor(tapeTime * 60.0);"," float tapeLine = floor(sampleUv.y * u_resolution.y * 0.5);"," float lineJitter = (digitalHash(vec2(tapeLine, floor(tapeFrame * 0.5))) - 0.5) * 1.8 * tapeNoise;"," float slowWobble = sin(sampleUv.y * 32.0 + tapeTime * 2.6) * 0.55;"," float headSwitch = smoothstep(0.88, 1.0, sampleUv.y) * sin(sampleUv.y * 240.0 + tapeTime * 8.0) * 4.0;"," float trackingShift = tapeTrackingBand(sampleUv.y, fract(0.08 + tapeTime * 0.083), 0.035);"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.28 + tapeTime * 0.061), 0.03) * 0.8;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.5 + tapeTime * 0.047), 0.04) * 0.75;"," trackingShift -= tapeTrackingBand(sampleUv.y, fract(0.72 + tapeTime * 0.037), 0.028) * 0.65;"," trackingShift += tapeTrackingBand(sampleUv.y, fract(0.89 + tapeTime * 0.029), 0.032) * 0.55;"," trackingShift *= tapeTracking * 48.0;"," float tapeShift = (lineJitter + slowWobble + headSwitch + trackingShift) * tapeDamage;"," float texelX = 1.0 / max(u_resolution.x * max(u_uvScale.x, 0.00001), 1.0);"," vec2 tapeUv = sampleUv + vec2(tapeShift * texelX, 0.0);"," vec4 base = samplePrepared(tapeUv);"," if (tapeDamage > 0.0) {"," vec2 lumaStep = vec2(texelX * mix(1.0, 3.5, tapeDamage), 0.0);"," vec3 leftTape = samplePrepared(tapeUv - lumaStep).rgb;"," vec3 rightTape = samplePrepared(tapeUv + lumaStep).rgb;"," float tapeLuma = (bt601Luma(leftTape) + bt601Luma(base.rgb) * 2.0 + bt601Luma(rightTape)) * 0.25;"," vec3 centerChroma = base.rgb - vec3(bt601Luma(base.rgb));"," vec3 tapeColor = vec3(tapeLuma) + centerChroma;"," vec3 ghost = samplePrepared(tapeUv - vec2(texelX * 12.0, 0.0)).rgb;"," tapeColor = mix(tapeColor, ghost, 0.045 * tapeDamage);"," float fineNoise = digitalHash(floor(gl_FragCoord.xy) + vec2(tapeFrame * 17.0, tapeFrame * 3.0)) - 0.5;"," float band = digitalHash(vec2(floor(sampleUv.y * 92.0), floor(tapeFrame / 3.0)));"," float dropout = smoothstep(0.985, 1.0, band) * (digitalHash(vec2(floor(sampleUv.x * 18.0), tapeLine)) - 0.5);"," tapeColor += (fineNoise * 0.035 + dropout * 0.12) * tapeDamage * tapeNoise;"," base.rgb = mix(base.rgb, clamp(tapeColor, 0.0, 1.0), tapeDamage);"," }"," float chromaBleed = clamp(u_chromaBleed, 0.0, 1.0);"," if (chromaBleed > 0.0) {"," float radius = mix(1.0, 4.0, chromaBleed);"," vec2 stepUv = vec2(texelX * radius, 0.0);"," vec3 c0 = base.rgb;"," vec3 c1 = samplePrepared(tapeUv - stepUv).rgb;"," vec3 c2 = samplePrepared(tapeUv + stepUv).rgb;"," vec3 c3 = samplePrepared(tapeUv - stepUv * 2.0).rgb;"," vec3 c4 = samplePrepared(tapeUv + stepUv * 2.0).rgb;"," float centerLuma = lumaOf(base.rgb);"," vec3 blurredChroma = ((c0 - vec3(lumaOf(c0))) * 6.0 + (c1 - vec3(lumaOf(c1))) * 4.0 + (c2 - vec3(lumaOf(c2))) * 4.0 + (c3 - vec3(lumaOf(c3))) + (c4 - vec3(lumaOf(c4)))) / 16.0;"," base.rgb = mix(base.rgb, clamp(vec3(centerLuma) + blurredChroma, 0.0, 1.0), chromaBleed);"," }"," return base;","}","vec4 sampleChromaticMedia(vec2 uv, vec4 center){"," float amount = clamp(u_chromaticAberration, 0.0, 1.0);"," if (amount <= 0.0) return center;"," float angle = clamp(u_chromaticAngle, 0.0, 1.0) * PI * 2.0;"," vec2 offset = vec2(cos(angle), sin(angle)) * amount * 0.02;"," vec4 positive = sampleMedia(uv + offset);"," vec4 negative = sampleMedia(uv - offset);"," vec3 split = vec3(positive.r, center.g, negative.b);"," return vec4(split, center.a);","}","vec3 sampleDigitalSplit(vec2 uv, vec2 block, float time, float amount){"," float split = amount * 0.06;"," float direction = digitalHash(block * 0.4 + vec2(floor(time * 3.7), floor(time * 5.3)));"," vec2 axis = direction > 0.66 ? vec2(1.0, 0.0) : direction > 0.33 ? vec2(0.0, 1.0) : vec2(0.7071);"," vec4 center = sampleMedia(uv);"," return vec3(sampleMedia(uv + axis * split).r, center.g, sampleMedia(uv - axis * split).b);","}","vec3 applyDigitalGlitch(vec2 uv, vec3 source){"," float amount = clamp(u_digitalGlitch, 0.0, 1.0);"," if (amount <= 0.0) return source;"," float colorSplit = clamp(u_digitalGlitchColorSplit, 0.0, 1.0) * 2.0;"," float lineTear = clamp(u_digitalGlitchLineTear, 0.0, 1.0) * 2.0;"," float pixelate = clamp(u_digitalGlitchPixelate, 0.0, 1.0) * 2.0;"," float blockAmount = clamp(u_digitalGlitchBlockAmount, 0.0, 1.0);"," float blockDisplacement = clamp(u_digitalGlitchBlockDisplacement, 0.0, 1.0) * 2.0;"," float blockOpacity = clamp(u_digitalGlitchBlockOpacity, 0.0, 1.0);"," float speed = clamp(u_digitalGlitchSpeed, 0.0, 1.0) * 2.0;"," float time = u_effectTime * speed;"," float blockCount = 8.0 + blockAmount * 60.0;"," vec2 block = floor(uv * blockCount);"," float randomA = digitalHash(block + vec2(floor(time * 7.3), floor(time * 11.1)));"," float randomB = digitalHash(block * 0.7 + vec2(17.3 + floor(time * 6.6), 29.1));"," float randomC = digitalHash(block + vec2(floor(time * 5.7) * 13.0, 41.0));"," float randomD = digitalHash(block * 1.3 + vec2(7.0, floor(time * 3.2) * 7.0));"," vec2 displaced = uv;"," if (blockDisplacement > 0.0 && blockOpacity > 0.0) {"," float threshold = 1.0 - blockDisplacement * 0.4;"," if (randomA > threshold) {"," displaced += vec2((randomB - 0.5) * blockDisplacement * 0.5, (randomC - 0.5) * blockDisplacement * 0.3);"," }"," if (randomD > 0.92 && blockDisplacement > 0.5) {"," displaced.x += (digitalHash(vec2(block.y, floor(time * 8.0))) - 0.5) * blockDisplacement;"," }"," displaced = mix(uv, displaced, blockOpacity);"," }"," if (lineTear > 0.0) {"," float row = floor(uv.y * (50.0 + lineTear * 150.0));"," float tearA = digitalHash(vec2(row * 7.3 + floor(time * 12.0 + row * 0.1) * 3.7, 13.0));"," float tearB = digitalHash(vec2(row * 13.7 + floor(time * 8.3) * 5.1, 31.0));"," if (tearA > 1.0 - lineTear * 0.5) displaced.x += (tearB - 0.5) * lineTear * 0.4;"," if (tearB > 0.95 && lineTear > 0.3) displaced.x += (tearA - 0.5) * lineTear * 0.8;"," }"," if (pixelate > 0.0) {"," float pixelRandom = digitalHash(block * 0.5 + vec2(floor(time * 4.9), 53.0));"," if (pixelRandom > 1.0 - pixelate * 0.35) {"," float cells = 4.0 + (1.0 - pixelRandom) * pixelate * 40.0;"," displaced = (floor(clampUv(displaced) * cells) + 0.5) / cells;"," }"," }"," displaced = clampUv(displaced);"," vec3 glitch = sampleDigitalSplit(displaced, block, time, colorSplit);"," if (blockDisplacement > 0.2 && blockOpacity > 0.0) {"," float corruption = digitalHash(block * 1.1 + vec2(floor(time * 11.9), 67.0));"," vec3 changed = glitch;"," if (corruption > 0.9) changed = 1.0 - glitch;"," else if (corruption > 0.85) changed = corruption > 0.875 ? glitch.gbr : glitch.brg;"," else if (corruption > 0.8) {"," float channel = digitalHash(block + vec2(73.0));"," if (channel > 0.66) changed.r = min(changed.r * 2.0, 1.0);"," else if (channel > 0.33) changed.g = min(changed.g * 2.0, 1.0);"," else changed.b = min(changed.b * 2.0, 1.0);"," }"," glitch = mix(glitch, changed, blockOpacity);"," }"," if (blockOpacity > 0.0) {"," float flash = digitalHash(block * 0.8 + vec2(floor(time * 14.7), 83.0));"," vec3 flashed = flash > 0.97 ? min(glitch * 1.8, vec3(1.0)) : flash > 0.94 ? glitch * 0.3 : glitch;"," glitch = mix(glitch, flashed, blockOpacity * 0.6);"," }"," if (lineTear > 0.1) {"," float interference = pow(sin(uv.y * (300.0 + randomA * 200.0) + time * 30.0) * 0.5 + 0.5, 6.0);"," glitch -= interference * 0.08 * lineTear;"," }"," return mix(source, clamp(glitch, 0.0, 1.0), amount);","}","float dustMask(vec2 uv, float frameBucket){"," vec2 grid = vec2(128.0, 72.0);"," vec2 cell = floor(uv * grid);"," vec2 local = fract(uv * grid) - 0.5;"," float chance = grainHash(cell + frameBucket * 19.13);"," float radius = mix(0.05, 0.34, grainHash(cell + 7.1));"," return step(0.9975, chance) * (1.0 - smoothstep(radius, radius + 0.08, length(local)));","}","float screenDot(vec2 p, float ink, float angle, float sharpness){"," float c = cos(angle);"," float s = sin(angle);"," vec2 q = mat2(c, -s, s, c) * p;"," vec2 d = fract(q) - 0.5;"," float radius = sqrt(clamp(ink, 0.0, 1.0)) * 0.68;"," float edge = mix(0.16, 0.025, sharpness);"," return 1.0 - smoothstep(radius - edge, radius + edge, length(d));","}","vec3 paletteColor(float index);","float monoScreenMask(vec2 local, float radius, float shape, float softness){"," vec2 centered = local - 0.5;"," float distanceToInk = length(centered);"," if (shape > 0.5 && shape < 1.5) distanceToInk = max(abs(centered.x), abs(centered.y));"," if (shape > 1.5 && shape < 2.5) distanceToInk = abs(centered.x) + abs(centered.y);"," if (shape > 2.5 && shape < 3.5) distanceToInk = max(abs(centered.x) * 0.86 + centered.y * 0.5, -centered.y);"," if (shape > 3.5) distanceToInk = abs(centered.y);"," float shapeRadius = shape > 3.5 ? radius * 0.45 : radius;"," return 1.0 - smoothstep(shapeRadius, shapeRadius + softness, distanceToInk);","}","vec3 applyMonoScreen(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float invert = step(0.5, u_monoScreenInvert);"," float coverage = mix(1.0 - lumaOf(source), lumaOf(source), invert);"," coverage = pow(clamp(coverage, 0.0, 1.0), mix(1.7, 0.58, clamp(u_monoScreenSpread, 0.0, 1.0)));"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellPx = mix(4.0, 18.0, clamp(u_monoScreenSize, 0.0, 1.0)) * scale;"," float angle = clamp(u_monoScreenAngle, 0.0, 1.0) * PI * 0.5;"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 point = mat2(cosine, -sine, sine, cosine) * gl_FragCoord.xy / max(cellPx, 1.0);"," float radius = sqrt(coverage) * 0.68;"," float inkMask = monoScreenMask(fract(point), radius, floor(u_monoScreenShape + 0.5), 0.035);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","vec3 applyEngraving(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(3.0, 20.0, clamp(u_engravingSpacing, 0.0, 1.0));"," float minThickness = mix(0.0, 2.0, clamp(u_engravingMinThickness, 0.0, 1.0));"," float maxThickness = mix(1.0, 8.0, clamp(u_engravingMaxThickness, 0.0, 1.0));"," float angle = clamp(u_engravingAngle, 0.0, 1.0) * PI;"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(gl_FragCoord.xy, alongAxis);"," float across = dot(gl_FragCoord.xy, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_engravingWaveFrequency, 0.0, 1.0));"," float wave = sin(along * frequency * 0.01);"," across += wave * clamp(u_engravingWave, 0.0, 1.0) * 3.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float lineDistance = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float contrast = mix(0.5, 2.0, clamp(u_engravingContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," float variation = mix(0.88, 1.12, digitalHash(vec2(lineIndex, 73.0)));"," float thickness = mix(minThickness, maxThickness, darkness) * variation;"," float edge = mix(1.0, 0.3, clamp(u_engravingSharpness, 0.0, 1.0));"," float inkMask = 1.0 - smoothstep(max(thickness * 0.5 - edge, 0.0), thickness * 0.5 + edge, lineDistance);"," inkMask *= smoothstep(0.015, 0.12, darkness);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," return mix(source, mix(paper, ink, inkMask), amount);","}","float crosshatchLine(vec2 pixel, float angle, float spacing, float thickness, float seed){"," vec2 alongAxis = vec2(cos(angle), sin(angle));"," vec2 acrossAxis = vec2(-alongAxis.y, alongAxis.x);"," float along = dot(pixel, alongAxis);"," float across = dot(pixel, acrossAxis);"," float frequency = mix(1.0, 10.0, clamp(u_crosshatchWaveFrequency, 0.0, 1.0));"," across += sin(along * frequency * 0.02 + u_effectTime + seed) * clamp(u_crosshatchWave, 0.0, 1.0) * 5.0;"," float lineIndex = floor(across / max(spacing, 1.0));"," float distanceToLine = abs(fract(across / max(spacing, 1.0)) - 0.5) * spacing;"," float variation = mix(1.0, 0.5 + digitalHash(vec2(lineIndex, seed)), clamp(u_crosshatchLineWeight, 0.0, 1.0));"," float halfWidth = thickness * variation * 0.5;"," return 1.0 - smoothstep(max(halfWidth - 0.5, 0.0), halfWidth + 0.5, distanceToLine);","}","float crosshatchEdge(vec2 uv){"," vec2 texel = 1.0 / max(u_resolution * u_uvScale, vec2(1.0));"," float tl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, -1.0)).rgb);"," float tc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, -1.0)).rgb);"," float tr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, -1.0)).rgb);"," float ml = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 0.0)).rgb);"," float mr = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 0.0)).rgb);"," float bl = lumaOf(sampleMedia(uv + texel * vec2(-1.0, 1.0)).rgb);"," float bc = lumaOf(sampleMedia(uv + texel * vec2( 0.0, 1.0)).rgb);"," float br = lumaOf(sampleMedia(uv + texel * vec2( 1.0, 1.0)).rgb);"," float gx = -tl - 2.0 * ml - bl + tr + 2.0 * mr + br;"," float gy = -tl - 2.0 * tc - tr + bl + 2.0 * bc + br;"," return length(vec2(gx, gy));","}","vec3 applyCrosshatch(vec2 uv, vec3 source, float amount){"," if (amount <= 0.0) return source;"," float spacing = mix(5.0, 30.0, clamp(u_crosshatchSpacing, 0.0, 1.0));"," float thickness = mix(1.0, 5.0, clamp(u_crosshatchThickness, 0.0, 1.0));"," float baseAngle = -clamp(u_crosshatchAngle, 0.0, 1.0) * PI;"," float contrast = mix(0.5, 2.0, clamp(u_crosshatchContrast, 0.0, 1.0));"," float darkness = 1.0 - pow(clamp(lumaOf(source), 0.0, 1.0), contrast);"," vec3 ink = paletteColor(0.0);"," vec3 paper = paletteColor(max(u_paletteSize - 1.0, 1.0));"," vec3 result = paper;"," float layer = crosshatchLine(gl_FragCoord.xy, baseAngle, spacing, thickness, 1.0) * smoothstep(0.2, 0.4, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.5, spacing * 0.95, thickness * 0.9, 2.0) * smoothstep(0.4, 0.6, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle + PI * 0.25, spacing * 0.9, thickness * 0.8, 3.0) * smoothstep(0.6, 0.8, darkness);"," result = mix(result, ink, layer);"," layer = crosshatchLine(gl_FragCoord.xy, baseAngle - PI * 0.25, spacing * 0.85, thickness * 0.7, 4.0) * smoothstep(0.75, 0.9, darkness);"," result = mix(result, ink, layer);"," result = mix(result, ink, smoothstep(0.9, 1.0, darkness) * 0.8);"," float edgeStrength = mix(0.0, 2.0, clamp(u_crosshatchEdges, 0.0, 1.0));"," float edge = smoothstep(0.1, 0.3, crosshatchEdge(uv)) * edgeStrength;"," result = mix(result, ink, clamp(edge, 0.0, 1.0));"," return mix(source, result, amount);","}","vec3 applyHalftone(vec3 source, float amount){"," if (amount <= 0.0) return source;"," vec3 cmy = 1.0 - source;"," float k = min(cmy.r, min(cmy.g, cmy.b));"," vec3 inks = max(cmy - vec3(k * 0.72), 0.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(5.0, 14.0, clamp(u_halftoneSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float cyan = screenDot(p, inks.r, 0.261799, 0.78);"," float magenta = screenDot(p, inks.g, 1.308997, 0.78);"," float yellow = screenDot(p, inks.b, 0.0, 0.78);"," float blackInk = screenDot(p, k, 0.785398, 0.82);"," vec3 printColor = vec3(0.975, 0.962, 0.925);"," printColor *= mix(vec3(1.0), vec3(0.05, 0.79, 0.86), cyan);"," printColor *= mix(vec3(1.0), vec3(0.91, 0.08, 0.48), magenta);"," printColor *= mix(vec3(1.0), vec3(0.98, 0.83, 0.08), yellow);"," printColor *= mix(vec3(1.0), vec3(0.035), blackInk * 0.92);"," return mix(source, printColor, amount);","}","vec3 applyTwoInkPrint(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float sourceLuma = lumaOf(source);"," float darkness = 1.0 - sourceLuma;"," float warmBias = clamp(source.r - (source.g + source.b) * 0.5, -0.35, 0.35);"," float coolBias = clamp((source.g + source.b) * 0.5 - source.r, -0.35, 0.35);"," float redTone = smoothstep(0.08, 0.72, darkness) * (1.0 - 0.68 * smoothstep(0.66, 1.0, darkness));"," float tealTone = smoothstep(0.30, 0.92, darkness);"," float redCoverage = clamp(redTone + warmBias * 1.35 - coolBias * 0.35, 0.0, 1.0);"," float tealCoverage = clamp(tealTone + coolBias * 1.1 - warmBias * 0.45, 0.0, 1.0);"," float scale = min(u_resolution.x, u_resolution.y) / 540.0;"," float cellPx = mix(4.5, 12.0, clamp(u_twoInkPrintSize, 0.0, 1.0)) * max(scale, 0.25);"," vec2 p = gl_FragCoord.xy / max(cellPx, 1.0);"," float redDot = screenDot(p, redCoverage, 0.261799, 0.84);"," float tealDot = screenDot(p + vec2(0.12, -0.08), tealCoverage, 1.308997, 0.84);"," float paperNoise = grainHash(floor(gl_FragCoord.xy * 0.5)) - 0.5;"," vec3 paper = vec3(0.955, 0.910, 0.795) + paperNoise * 0.018;"," vec3 vermilion = vec3(0.88, 0.13, 0.075);"," vec3 teal = vec3(0.035, 0.285, 0.355);"," vec3 overprint = vec3(0.045, 0.055, 0.052);"," vec3 printColor = paper * (1.0 - redDot) * (1.0 - tealDot);"," printColor += vermilion * redDot * (1.0 - tealDot);"," printColor += teal * (1.0 - redDot) * tealDot;"," printColor += overprint * redDot * tealDot;"," return mix(source, clamp(printColor, 0.0, 1.0), amount);","}","vec3 paletteColor(float index){"," if (index < 0.5) return u_palette0;"," if (index < 1.5) return u_palette1;"," if (index < 2.5) return u_palette2;"," if (index < 3.5) return u_palette3;"," if (index < 4.5) return u_palette4;"," return u_palette5;","}","float bayer4(vec2 point){"," vec2 cell = mod(floor(point), 4.0);"," if (cell.y < 0.5) {"," if (cell.x < 0.5) return 0.5 / 16.0;"," if (cell.x < 1.5) return 8.5 / 16.0;"," if (cell.x < 2.5) return 2.5 / 16.0;"," return 10.5 / 16.0;"," }"," if (cell.y < 1.5) {"," if (cell.x < 0.5) return 12.5 / 16.0;"," if (cell.x < 1.5) return 4.5 / 16.0;"," if (cell.x < 2.5) return 14.5 / 16.0;"," return 6.5 / 16.0;"," }"," if (cell.y < 2.5) {"," if (cell.x < 0.5) return 3.5 / 16.0;"," if (cell.x < 1.5) return 11.5 / 16.0;"," if (cell.x < 2.5) return 1.5 / 16.0;"," return 9.5 / 16.0;"," }"," if (cell.x < 0.5) return 15.5 / 16.0;"," if (cell.x < 1.5) return 7.5 / 16.0;"," if (cell.x < 2.5) return 13.5 / 16.0;"," return 5.5 / 16.0;","}","float standardAsciiSample(float brightness, vec2 grid){"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.3) return grid.x == 2.0 && (grid.y == 2.0 || grid.y == 4.0) ? 1.0 : 0.0;"," if (brightness < 0.4) return (grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) {"," bool cross = (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0);"," bool diagonals = (grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0);"," return cross || diagonals ? 1.0 : 0.0;"," }"," if (brightness < 0.6) {"," bool ring = ((grid.y == 2.0 || grid.y == 4.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y == 3.0);"," return ring ? 1.0 : 0.0;"," }"," bool outline = ((grid.y == 1.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 0.0 || grid.x == 4.0) && grid.y >= 2.0 && grid.y <= 4.0) || ((grid.x == 1.0 || grid.x == 3.0) && grid.y >= 1.0 && grid.y <= 5.0);"," if (brightness < 0.7) return outline ? 1.0 : 0.0;"," if (brightness < 0.8) {"," bool slash = abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.x >= 1.0 && grid.x <= 3.0;"," return outline || slash ? 1.0 : 0.0;"," }"," if (brightness < 0.9) {"," bool loops = ((grid.y == 1.0 || grid.y == 3.0 || grid.y == 5.0) && grid.x >= 1.0 && grid.x <= 3.0) || ((grid.x == 1.0 || grid.x == 3.0) && (grid.y == 2.0 || grid.y == 4.0));"," return loops ? 1.0 : 0.0;"," }"," return 1.0;","}","float asciiStyleSample(float style, float brightness, vec2 uv){"," vec2 grid = floor(uv * vec2(5.0, 7.0));"," if (style < 0.5) return standardAsciiSample(brightness, grid);"," if (style < 1.5) {"," float checker = mod(grid.x + grid.y, 2.0);"," float ruled = mod(grid.x, 2.0) == 0.0 || mod(grid.y, 2.0) == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return checker == 0.0 ? 0.5 : 0.0;"," if (brightness < 0.375) return ruled * 0.6;"," if (brightness < 0.5) return checker == 0.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return ruled > 0.5 ? 1.0 : 0.3;"," if (brightness < 0.75) return checker == 0.0 ? 1.0 : 0.7;"," if (brightness < 0.875) return ruled > 0.5 ? 1.0 : 0.85;"," return 1.0;"," }"," if (style < 2.5) {"," if (brightness < 0.14) return 0.0;"," if (brightness < 0.28) return grid.x == 2.0 && grid.y == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.42) return grid.x == 2.0 && grid.y == 5.0 ? 1.0 : 0.0;"," if (brightness < 0.56) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.7) return (grid.x == 2.0 && grid.y >= 2.0 && grid.y <= 4.0) || (grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0) ? 1.0 : 0.0;"," if (brightness < 0.84) return abs(grid.x - 2.0) == abs(grid.y - 3.0) && grid.y >= 2.0 && grid.y <= 4.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 3.5) return grid.y >= 6.0 - brightness * 7.0 ? 1.0 : 0.0;"," if (style < 4.5) {"," vec2 dots = floor(uv * vec2(2.0, 4.0));"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return dots.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return dots.y >= 2.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return dots.y >= 1.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return dots.y >= 1.0 || dots.x == 1.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return 1.0;"," if (brightness < 0.875) return mod(grid.x + grid.y, 2.0) < 1.5 ? 1.0 : 0.7;"," return 1.0;"," }"," if (style < 5.5) {"," if (brightness < 0.125) return 0.0;"," if (brightness < 0.25) return grid.x == 2.0 && grid.y == 3.0 ? 1.0 : 0.0;"," if (brightness < 0.375) return grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.5) return grid.x + grid.y == 5.0 || grid.x + grid.y == 6.0 ? 1.0 : 0.0;"," if (brightness < 0.625) return grid.x == 2.0 ? 1.0 : 0.0;"," if (brightness < 0.75) return abs(grid.x - grid.y / 1.4) < 0.7 && grid.x >= 1.0 && grid.x <= 3.0 ? 1.0 : 0.0;"," if (brightness < 0.875) return grid.x == 2.0 || grid.y == 3.0 ? 1.0 : 0.0;"," return grid.x == 1.0 || grid.x == 3.0 || grid.y == 2.0 || grid.y == 4.0 ? 1.0 : 0.0;"," }"," if (style < 6.5) {"," bool top = grid.y == 0.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool topLeft = grid.x == 1.0 && grid.y <= 3.0;"," bool topRight = grid.x == 3.0 && grid.y <= 3.0;"," bool middle = grid.y == 3.0 && grid.x >= 1.0 && grid.x <= 3.0;"," bool bottomLeft = grid.x == 1.0 && grid.y >= 3.0;"," bool bottomRight = grid.x == 3.0 && grid.y >= 3.0;"," bool bottom = grid.y == 6.0 && grid.x >= 1.0 && grid.x <= 3.0;"," if (brightness < 0.1) return 0.0;"," if (brightness < 0.2) return topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.3) return top || topRight || middle || bottomLeft || bottom ? 1.0 : 0.0;"," if (brightness < 0.4) return top || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.5) return topLeft || middle || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.6) return top || topLeft || middle || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.7) return top || topLeft || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," if (brightness < 0.8) return top || topRight || bottomRight ? 1.0 : 0.0;"," if (brightness < 0.9) return top || topLeft || topRight || middle || bottomLeft || bottomRight || bottom ? 1.0 : 0.0;"," return top || topLeft || topRight || middle || bottomRight || bottom ? 1.0 : 0.0;"," }"," float slash = grid.x - grid.y;"," float backslash = grid.x + grid.y;"," if (brightness < 0.16) return 0.0;"," if (brightness < 0.33) return mod(slash, 3.0) < 0.5 ? 1.0 : 0.0;"," if (brightness < 0.5) return mod(slash, 2.0) < 0.5 ? 1.0 : 0.0;"," bool diagonalA = mod(slash, 2.0) < 0.5;"," bool diagonalB = mod(backslash, 2.0) < 0.5;"," if (brightness < 0.66) return diagonalA || diagonalB ? 1.0 : 0.0;"," if (brightness < 0.83) return mod(slash, 1.5) < 0.5 || mod(backslash, 1.5) < 0.5 ? 1.0 : 0.2;"," return mod(slash, 1.0) < 0.6 || mod(backslash, 1.0) < 0.6 ? 1.0 : 0.5;","}","vec3 rgbToHsv(vec3 color){"," float maximum = max(max(color.r, color.g), color.b);"," float minimum = min(min(color.r, color.g), color.b);"," float delta = maximum - minimum;"," float hue = 0.0;"," if (delta > 0.00001) {"," if (maximum == color.r) hue = mod((color.g - color.b) / delta, 6.0);"," else if (maximum == color.g) hue = (color.b - color.r) / delta + 2.0;"," else hue = (color.r - color.g) / delta + 4.0;"," hue = fract(hue / 6.0);"," }"," return vec3(hue, maximum > 0.00001 ? delta / maximum : 0.0, maximum);","}","vec3 hsvToRgb(vec3 color){"," vec3 bands = abs(fract(color.xxx + vec3(0.0, 0.6666667, 0.3333333)) * 6.0 - 3.0);"," return color.z * mix(vec3(1.0), clamp(bands - 1.0, 0.0, 1.0), color.y);","}","vec4 sampleAdvancedCurve(float coordinate, float row){",` float position = clamp(coordinate, 0.0, 1.0) * ${vd};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${vd});`,` float y = (row + 0.5) / ${vb};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Da}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Da}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Da}, ${Sb}));`,"}","vec3 wheelDirection(float hue){"," vec3 direction = hsvToRgb(vec3(fract(hue), 1.0, 1.0));"," direction -= vec3(lumaOf(direction));"," return direction / max(max(max(abs(direction.r), abs(direction.g)), abs(direction.b)), 0.0001);","}","vec3 applyTonalWheels(vec3 color){"," float luma = lumaOf(color);"," float shadows = 1.0 - smoothstep(0.0, 0.6, luma);"," float highlights = smoothstep(0.4, 1.0, luma);"," float midtones = max(0.0, 1.0 - shadows - highlights);"," float total = max(shadows + midtones + highlights, 0.0001);"," vec3 weights = vec3(shadows, midtones, highlights) / total;"," color += wheelDirection(u_shadowWheel.x) * u_shadowWheel.y * weights.x * 0.18;"," color += wheelDirection(u_midtoneWheel.x) * u_midtoneWheel.y * weights.y * 0.18;"," color += wheelDirection(u_highlightWheel.x) * u_highlightWheel.y * weights.z * 0.18;"," color += u_shadowWheel.z * weights.x * 0.25;"," color += u_midtoneWheel.z * weights.y * 0.25;"," color += u_highlightWheel.z * weights.z * 0.25;"," return color;","}","vec3 applyRgbCurves(vec3 color){"," if (u_rgbCurvesEnabled < 0.5) return color;"," vec3 master = vec3("," sampleAdvancedCurve(color.r, 0.0).a,"," sampleAdvancedCurve(color.g, 0.0).a,"," sampleAdvancedCurve(color.b, 0.0).a"," );"," return vec3("," sampleAdvancedCurve(master.r, 0.0).r,"," sampleAdvancedCurve(master.g, 0.0).g,"," sampleAdvancedCurve(master.b, 0.0).b"," );","}","float decodeSigned(float value){ return (value * 255.0 - 128.0) / 127.0; }","vec3 applyHueCurves(vec3 color){"," if (u_hueCurvesEnabled < 0.5) return color;"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," vec3 curves = sampleAdvancedCurve(hsv.x, 1.0).rgb;"," float originalLuma = lumaOf(color);"," hsv.x = fract(hsv.x + decodeSigned(curves.r) * 0.5);"," hsv.y = clamp(hsv.y * max(0.0, 1.0 + decodeSigned(curves.g)), 0.0, 1.0);"," vec3 shifted = hsvToRgb(hsv);"," shifted += vec3(originalLuma - lumaOf(shifted) + decodeSigned(curves.b));"," return shifted;","}","float softRangeMask(float value, float minimum, float maximum, float softness){"," if (value < minimum) {"," if (softness <= 0.0) return 0.0;"," return smoothstep(minimum - softness, minimum, value);"," }"," if (value > maximum) {"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(maximum, maximum + softness, value);"," }"," return 1.0;","}","float hueRangeMask(float hue, float saturation, vec3 key){"," float distance = abs(fract(hue - key.x + 0.5) - 0.5) * 360.0;"," float range = key.y * 180.0;"," float softness = key.z * 180.0;"," if (range < 179.999 && saturation < 0.001) return 0.0;"," if (distance <= range) return 1.0;"," if (softness <= 0.0) return 0.0;"," return 1.0 - smoothstep(range, range + softness, distance);","}","vec3 applySecondary(vec3 color, float index){"," float base = index * 5.0;"," vec4 hueKey = advancedConfig(base);"," vec4 saturationKey = advancedConfig(base + 1.0);"," vec4 lumaKey = advancedConfig(base + 2.0);"," vec4 correction = advancedConfig(base + 3.0);"," vec4 tintCorrection = advancedConfig(base + 4.0);"," vec3 hsv = rgbToHsv(clamp(color, 0.0, 1.0));"," float luma = lumaOf(color);"," float mask = hueRangeMask(hsv.x, hsv.y, hueKey.rgb);"," mask *= softRangeMask(hsv.y, saturationKey.x, saturationKey.y, saturationKey.z * 0.5);"," mask *= softRangeMask(luma, lumaKey.x, lumaKey.y, lumaKey.z * 0.5);"," if (mask <= 0.0) return color;"," hsv.x = fract(hsv.x + decodeSigned(correction.x) * 0.5);"," vec3 corrected = hsvToRgb(hsv);"," float correctedLuma = lumaOf(corrected);"," corrected = mix(vec3(correctedLuma), corrected, max(0.0, 1.0 + decodeSigned(correction.y)));"," corrected += vec3(decodeSigned(correction.z));"," float temperature = decodeSigned(correction.w);"," float tint = decodeSigned(tintCorrection.x);"," corrected.r += temperature * 0.08 + tint * 0.04;"," corrected.b -= temperature * 0.08 - tint * 0.04;"," corrected.g -= tint * 0.08;"," return mix(color, corrected, mask);","}","vec3 applyAdvancedGrade(vec3 color){"," color = applyTonalWheels(color);"," color = applyRgbCurves(color);"," color = applyHueCurves(color);"," if (u_secondaryCount > 0.5) color = applySecondary(color, 0.0);"," if (u_secondaryCount > 1.5) color = applySecondary(color, 1.0);"," if (u_secondaryCount > 2.5) color = applySecondary(color, 2.0);"," if (u_secondaryCount > 3.5) color = applySecondary(color, 3.0);"," return color;","}","vec3 sampleLut(float r, float g, float b){"," float size = max(u_lutSize, 2.0);"," float x = (r + b * size + 0.5) / max(u_lutTextureSize.x, 1.0);"," float y = (g + 0.5) / max(u_lutTextureSize.y, 1.0);"," return texture2D(u_lut, vec2(x, y)).rgb;","}","vec3 applyLut(vec3 color){"," if (u_lutEnabled < 0.5) return color;"," float size = max(u_lutSize, 2.0);"," vec3 span = max(u_lutDomainMax - u_lutDomainMin, vec3(0.00001));"," vec3 scaled = clamp((color - u_lutDomainMin) / span, 0.0, 1.0) * (size - 1.0);"," vec3 lo = floor(scaled);"," vec3 hi = min(lo + 1.0, vec3(size - 1.0));"," vec3 f = scaled - lo;"," vec3 c000 = sampleLut(lo.r, lo.g, lo.b);"," vec3 c100 = sampleLut(hi.r, lo.g, lo.b);"," vec3 c010 = sampleLut(lo.r, hi.g, lo.b);"," vec3 c110 = sampleLut(hi.r, hi.g, lo.b);"," vec3 c001 = sampleLut(lo.r, lo.g, hi.b);"," vec3 c101 = sampleLut(hi.r, lo.g, hi.b);"," vec3 c011 = sampleLut(lo.r, hi.g, hi.b);"," vec3 c111 = sampleLut(hi.r, hi.g, hi.b);"," vec3 c00 = mix(c000, c100, f.r);"," vec3 c10 = mix(c010, c110, f.r);"," vec3 c01 = mix(c001, c101, f.r);"," vec3 c11 = mix(c011, c111, f.r);"," vec3 c0 = mix(c00, c10, f.g);"," vec3 c1 = mix(c01, c11, f.g);"," vec3 lutColor = mix(c0, c1, f.b);"," return mix(color, lutColor, clamp(u_lutIntensity, 0.0, 1.0));","}","vec3 applyPrimaryGrade(vec3 color){"," color *= pow(2.0, u_exposure);"," float y = lumaOf(color);"," float shadowMask = 1.0 - smoothstep(0.0, 0.65, y);"," float highlightMask = smoothstep(0.35, 1.0, y);"," color += u_shadows * 0.35 * shadowMask;"," color += u_highlights * 0.35 * highlightMask;"," float blackPoint = clamp(u_blacks * 0.18, -0.18, 0.18);"," float whitePoint = clamp(1.0 - u_whites * 0.18, 0.82, 1.18);"," color = (color - blackPoint) / max(whitePoint - blackPoint, 0.2);"," color.r += u_temperature * 0.08 + u_tint * 0.04;"," color.b -= u_temperature * 0.08 - u_tint * 0.04;"," color.g -= u_tint * 0.08;"," color = (color - 0.5) * max(0.0, 1.0 + u_contrast) + 0.5;"," float satLuma = lumaOf(color);"," float currentSat = clamp(colorSaturation(color), 0.0, 1.0);"," float skinLike = smoothstep(0.02, 0.18, color.r - color.g) * smoothstep(0.0, 0.16, color.g - color.b) * smoothstep(0.18, 0.82, satLuma);"," float vibranceWeight = (1.0 - currentSat * 0.72) * mix(1.0, 0.55, skinLike);"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_vibrance * vibranceWeight));"," color = mix(vec3(satLuma), color, max(0.0, 1.0 + u_saturation));"," return color;","}","vec3 applyColorGrade(vec3 color){"," color = applyPrimaryGrade(color);"," color = applyAdvancedGrade(color);"," return clamp(applyLut(clamp(color, 0.0, 1.0)), 0.0, 1.0);","}","vec3 applyDither(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float pixelSize = mix(1.0, 5.0, clamp(u_ditherSize, 0.0, 1.0)) * scale;"," vec2 block = floor(gl_FragCoord.xy / max(pixelSize, 1.0));"," float levels = clamp(u_paletteSize, 2.0, 6.0);"," float index = floor(clamp(lumaOf(source) * (levels - 1.0) + bayer4(block), 0.0, levels - 1.0));"," return mix(source, paletteColor(index), amount);","}","vec2 asciiEdgeDirection(vec2 uv, vec2 stepUv){"," float topLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, -stepUv.y)).rgb);"," float top = bt601Luma(sampleMedia(uv + vec2(0.0, -stepUv.y)).rgb);"," float topRight = bt601Luma(sampleMedia(uv + vec2(stepUv.x, -stepUv.y)).rgb);"," float left = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, 0.0)).rgb);"," float right = bt601Luma(sampleMedia(uv + vec2(stepUv.x, 0.0)).rgb);"," float bottomLeft = bt601Luma(sampleMedia(uv + vec2(-stepUv.x, stepUv.y)).rgb);"," float bottom = bt601Luma(sampleMedia(uv + vec2(0.0, stepUv.y)).rgb);"," float bottomRight = bt601Luma(sampleMedia(uv + stepUv).rgb);"," float x = -topLeft - 2.0 * left - bottomLeft + topRight + 2.0 * right + bottomRight;"," float y = -topLeft - 2.0 * top - topRight + bottomLeft + 2.0 * bottom + bottomRight;"," return vec2(x, y);","}","vec2 rotateAsciiUv(vec2 uv, float angle){"," float cosine = cos(angle);"," float sine = sin(angle);"," vec2 centered = uv - 0.5;"," return vec2(centered.x * cosine - centered.y * sine, centered.x * sine + centered.y * cosine) + 0.5;","}","vec3 applyAscii(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float scale = max(min(u_resolution.x, u_resolution.y) / 540.0, 0.25);"," float cellHeight = mix(4.0, 80.0, clamp(u_asciiSize, 0.0, 1.0)) * scale;"," vec2 cellSize = vec2(cellHeight);"," vec2 cell = floor(gl_FragCoord.xy / cellSize);"," vec2 cellVuv = (cell + 0.5) * cellSize / max(u_resolution, vec2(1.0));"," vec2 cellUv = (cellVuv - u_uvOffset) / u_uvScale;"," cellUv = applyCrtWarp(cellUv);"," vec3 cellColor = applyColorGrade(sampleMedia(cellUv).rgb);"," float brightness = bt601Luma(cellColor);"," float invert = step(0.5, u_asciiInvert);"," brightness = mix(brightness, 1.0 - brightness, invert);"," vec2 glyphUv = fract(gl_FragCoord.xy / cellSize);"," float rotation = clamp(u_asciiRotation, 0.0, 1.0);"," if (rotation > 0.0) {"," vec2 cellStepUv = cellSize / max(u_resolution * u_uvScale, vec2(1.0));"," vec2 edge = asciiEdgeDirection(cellUv, cellStepUv);"," if (length(edge) > 0.1) glyphUv = mix(glyphUv, rotateAsciiUv(glyphUv, atan(edge.y, edge.x)), rotation);"," }"," float ink = asciiStyleSample(floor(u_asciiStyle + 0.5), brightness, glyphUv);"," vec3 background = paletteColor(0.0);"," vec3 inkColor = mix(paletteColor(max(u_paletteSize - 1.0, 1.0)), cellColor, clamp(u_asciiColor, 0.0, 1.0));"," vec3 asciiColor = mix(background, inkColor, ink);"," return mix(source, asciiColor, amount);","}","vec3 applyScanlines(vec3 source, float amount){"," if (amount <= 0.0) return source;"," float count = mix(50.0, 500.0, clamp(u_scanlineCount, 0.0, 1.0));"," float softness = clamp(u_scanlineSoftness, 0.0, 1.0);"," float wave = 0.5 + 0.5 * sin(v_uv.y * count * PI);"," float line = mix(1.0 - wave, pow(1.0 - wave, 2.2), softness);"," return source * (1.0 - line * amount);","}","void main(){"," vec2 uv = (v_uv - u_uvOffset) / u_uvScale;"," if (uv.x < 0.0 || uv.y < 0.0 || uv.x > 1.0 || uv.y > 1.0) {"," gl_FragColor = vec4(0.0);"," return;"," }"," vec4 originalSample = sampleSource(uv);"," uv = applyCrtWarp(uv);"," vec2 displayEdge = smoothstep(vec2(0.0), vec2(0.006), uv) * (1.0 - smoothstep(vec2(0.994), vec2(1.0), uv));"," float displayMask = displayEdge.x * displayEdge.y;"," vec4 sampleColor = sampleMedia(uv);"," sampleColor = sampleChromaticMedia(uv, sampleColor);"," sampleColor.rgb = applyDigitalGlitch(uv, sampleColor.rgb);"," vec3 original = originalSample.rgb;"," vec3 color = mix(sampleColor.rgb, applyColorGrade(sampleColor.rgb), u_intensity);"," float grainAmount = clamp(u_grain, 0.0, 1.0);"," if (grainAmount > 0.0) {"," float grainPixelSize = mix(1.0, 6.0, clamp(u_grainSize, 0.0, 1.0));"," vec2 grainCoord = floor(gl_FragCoord.xy / grainPixelSize) + vec2(u_grainSeed, u_grainSeed * 1.37);"," float grainBase = grainHash(grainCoord) - grainHash(grainCoord + vec2(19.19, 73.31));"," float grainFine = grainHash(gl_FragCoord.xy + vec2(u_grainSeed * 2.11, u_grainSeed * 0.71)) - 0.5;"," float grain = mix(grainBase * 0.7, grainBase + grainFine * 0.35, clamp(u_grainRoughness, 0.0, 1.0));"," float grainLuma = lumaOf(color);"," float grainMask = smoothstep(0.02, 0.55, grainLuma) * (1.0 - smoothstep(0.88, 1.0, grainLuma));"," color += grain * grainAmount * mix(0.025, 0.08, grainMask);"," }"," float filmArtifacts = clamp(u_filmArtifacts, 0.0, 1.0);"," if (filmArtifacts > 0.0) {"," float filmFrame = floor(u_grainSeed);"," float dust = dustMask(v_uv, floor(filmFrame / 3.0));"," float dustTone = grainHash(vec2(floor(filmFrame / 3.0), 8.0));"," color = mix(color, vec3(dustTone > 0.5 ? 0.95 : 0.02), dust * 0.72 * filmArtifacts);"," float scratchBucket = floor(filmFrame / 12.0);"," float scratchX = grainHash(vec2(scratchBucket, 4.2));"," float scratchLife = step(0.78, grainHash(vec2(scratchBucket, 8.4)));"," float scratch = (1.0 - smoothstep(0.0, 1.4 / max(u_resolution.x, 1.0), abs(v_uv.x - scratchX))) * scratchLife;"," color = mix(color, vec3(0.94, 0.88, 0.76), scratch * 0.28 * filmArtifacts);"," }"," color = applyMonoScreen(clamp(color, 0.0, 1.0), clamp(u_monoScreen, 0.0, 1.0));"," color = applyEngraving(clamp(color, 0.0, 1.0), clamp(u_engraving, 0.0, 1.0));"," color = applyCrosshatch(uv, clamp(color, 0.0, 1.0), clamp(u_crosshatch, 0.0, 1.0));"," color = applyHalftone(clamp(color, 0.0, 1.0), clamp(u_halftone, 0.0, 1.0));"," color = applyTwoInkPrint(clamp(color, 0.0, 1.0), clamp(u_twoInkPrint, 0.0, 1.0));"," color = applyDither(clamp(color, 0.0, 1.0), clamp(u_dither, 0.0, 1.0));"," color = applyAscii(clamp(color, 0.0, 1.0), clamp(u_ascii, 0.0, 1.0));"," if (u_bloomReady > 0.5 && u_bloom > 0.0) color += sampleBloom(uv) * u_bloom;"," color = applyScanlines(clamp(color, 0.0, 1.0), clamp(u_scanlines, 0.0, 1.0));"," vec2 vignetteAspect = u_resolution.x > u_resolution.y"," ? vec2(u_resolution.x / max(u_resolution.y, 1.0), 1.0)"," : vec2(1.0, u_resolution.y / max(u_resolution.x, 1.0));"," vec2 vignetteUv = abs((v_uv - vec2(0.5)) * 2.0) * vignetteAspect;"," float vignettePower = mix(8.0, 1.8, clamp(u_vignetteRoundness * 0.5 + 0.5, 0.0, 1.0));"," float vignetteDistance = pow(pow(vignetteUv.x, vignettePower) + pow(vignetteUv.y, vignettePower), 1.0 / vignettePower);"," float vignetteMidpoint = mix(0.22, 1.08, clamp(u_vignetteMidpoint, 0.0, 1.0));"," float vignetteFeather = mix(0.08, 0.72, clamp(u_vignetteFeather, 0.0, 1.0));"," float vignetteMask = smoothstep(vignetteMidpoint, vignetteMidpoint + vignetteFeather, vignetteDistance);"," color *= 1.0 - vignetteMask * clamp(u_vignette, 0.0, 1.0) * 0.75;"," float warpActive = step(0.0001, u_crtCurvature);"," color *= mix(1.0, displayMask, warpActive);"," vec3 graded = clamp(color, 0.0, 1.0);"," if (u_compareEnabled > 0.5) {"," float pos = clamp(u_comparePosition, 0.0, 1.0);"," float softness = max(u_compareSoftness, 0.00001);"," float afterMask = smoothstep(pos - softness, pos + softness, v_uv.x);"," vec3 splitColor = mix(original, graded, afterMask);"," float lineMask = 0.0;"," if (u_compareLineWidth > 0.0) {"," float lineWidth = max(u_compareLineWidth / max(u_resolution.x, 1.0), 0.00001);"," lineMask = 1.0 - smoothstep(lineWidth, lineWidth * 1.8, abs(v_uv.x - pos));"," }"," gl_FragColor = vec4(mix(splitColor, vec3(1.0), lineMask * 0.82), sampleColor.a);"," return;"," }"," gl_FragColor = vec4(graded, sampleColor.a);","}"].join(`\n`),wb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform vec2 u_resolution;","uniform vec2 u_direction;","uniform float u_radius;","uniform float u_bloomPass;","uniform float u_threshold;","vec4 readSource(vec2 uv){"," vec4 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0)));"," if (u_bloomPass > 0.5) {"," float luminance = dot(color.rgb, vec3(0.299, 0.587, 0.114));"," if (u_threshold >= 0.0 && luminance <= u_threshold) color.rgb = vec3(0.0);"," return vec4(color.rgb, 1.0);"," }"," color.rgb *= color.a;"," return color;","}","void main(){"," if (u_bloomPass > 0.5) {"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) * 0.5;"," vec4 bloom = readSource(v_uv) * 0.227027;"," bloom += readSource(v_uv + stepUv) * 0.1945946;"," bloom += readSource(v_uv - stepUv) * 0.1945946;"," bloom += readSource(v_uv + stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv - stepUv * 2.0) * 0.1216216;"," bloom += readSource(v_uv + stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv - stepUv * 3.0) * 0.054054;"," bloom += readSource(v_uv + stepUv * 4.0) * 0.016216;"," bloom += readSource(v_uv - stepUv * 4.0) * 0.016216;"," gl_FragColor = bloom;"," return;"," }"," vec2 stepUv = u_direction * max(u_radius, 0.0) / max(u_resolution, vec2(1.0)) / 12.0;"," vec4 color = readSource(v_uv) * 0.08077993;"," color += readSource(v_uv + stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv - stepUv * 1.0) * 0.07918038;"," color += readSource(v_uv + stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv - stepUv * 2.0) * 0.07456928;"," color += readSource(v_uv + stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv - stepUv * 3.0) * 0.06747307;"," color += readSource(v_uv + stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv - stepUv * 4.0) * 0.05865827;"," color += readSource(v_uv + stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv - stepUv * 5.0) * 0.04899551;"," color += readSource(v_uv + stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv - stepUv * 6.0) * 0.03931982;"," color += readSource(v_uv + stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv - stepUv * 7.0) * 0.03031761;"," color += readSource(v_uv + stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv - stepUv * 8.0) * 0.02245983;"," color += readSource(v_uv + stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv - stepUv * 9.0) * 0.01598624;"," color += readSource(v_uv + stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv - stepUv * 10.0) * 0.01093238;"," color += readSource(v_uv + stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv - stepUv * 11.0) * 0.00718308;"," color += readSource(v_uv + stepUv * 12.0) * 0.00453456;"," color += readSource(v_uv - stepUv * 12.0) * 0.00453456;"," if (color.a > 0.0001) color.rgb /= color.a;"," gl_FragColor = color;","}"].join(`\n`),Cb=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_blurSource;","uniform vec2 u_texel;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","uniform float u_blur;","uniform float u_kuwaharaRadius;","vec3 readPrepared(vec2 displayUv){"," vec2 uv = (displayUv - u_uvOffset) / u_uvScale;"," vec3 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," if (u_blurReady > 0.5 && u_blur > 0.0) {"," vec3 blurred = texture2D(u_blurSource, clamp(uv, vec2(0.0), vec2(1.0))).rgb;"," color = mix(color, blurred, clamp(u_blur, 0.0, 1.0));"," }"," return color;","}","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec3 sum = vec3(0.0);"," float sumSquares = 0.0;"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec3 color = readPrepared(v_uv + vec2(float(offset), 0.0) * u_texel);"," sum += color;"," sumSquares += dot(color, color) / 3.0;"," count += 1.0;"," }"," gl_FragColor = vec4(sum / count, sumSquares / count);","}"].join(`\n`),_b=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_kuwaharaMoments;","uniform vec2 u_texel;","uniform float u_kuwaharaRadius;","uniform float u_kuwaharaSharpness;","uniform float u_kuwaharaSaturation;","void main(){"," float radius = floor(mix(2.0, 16.0, clamp(u_kuwaharaRadius, 0.0, 1.0)) + 0.5);"," vec2 origins[4];"," origins[0] = vec2(-radius, -radius);"," origins[1] = vec2(0.0, -radius);"," origins[2] = vec2(-radius, 0.0);"," origins[3] = vec2(0.0, 0.0);"," vec3 means[4];"," float variances[4];"," float minVariance = 1.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," vec4 moment = vec4(0.0);"," float count = 0.0;"," for (int offset = 0; offset <= 16; offset++) {"," if (float(offset) > radius) continue;"," vec2 sampleOffset = origins[quadrant] + vec2(0.0, float(offset));"," moment += texture2D(u_kuwaharaMoments, clamp(v_uv + sampleOffset * u_texel, vec2(0.0), vec2(1.0)));"," count += 1.0;"," }"," moment /= count;"," vec3 mean = moment.rgb;"," float meanSquare = moment.a * 3.0;"," float variance = max(meanSquare - dot(mean, mean), 0.0);"," means[quadrant] = mean;"," variances[quadrant] = variance;"," minVariance = min(minVariance, variance);"," }"," float exponent = 1.0 + clamp(u_kuwaharaSharpness, 0.0, 1.0) * 8.0;"," vec3 result = vec3(0.0);"," float totalWeight = 0.0;"," for (int quadrant = 0; quadrant < 4; quadrant++) {"," float weight = pow((minVariance + 0.0001) / (variances[quadrant] + 0.0001), exponent);"," result += means[quadrant] * weight;"," totalWeight += weight;"," }"," result /= max(totalWeight, 0.0001);"," float luma = dot(result, vec3(0.2126, 0.7152, 0.0722));"," float saturation = clamp(u_kuwaharaSaturation, 0.0, 1.0) * 2.0;"," gl_FragColor = vec4(clamp(mix(vec3(luma), result, saturation), 0.0, 1.0), 1.0);","}"].join(`\n`);function Lt(e){return e instanceof HTMLVideoElement||e instanceof HTMLImageElement}function Sd(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function Ad(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(L("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function xi(e,t=Eb){let n=Ad(e,Ab,e.VERTEX_SHADER),r=Ad(e,t,e.FRAGMENT_SHADER);if(!n||!r)return n&&e.deleteShader(n),r&&e.deleteShader(r),null;let i=e.createProgram();return i?(e.attachShader(i,n),e.attachShader(i,r),e.linkProgram(i),e.deleteShader(n),e.deleteShader(r),e.getProgramParameter(i,e.LINK_STATUS)?i:(L("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function pi(e,t=e.LINEAR,n=e.UNSIGNED_BYTE){let r=e.createTexture();return r?(e.bindTexture(e.TEXTURE_2D,r),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,n,null),r):null}function Tb(e,t){let n=xi(e,wb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),resolution:e.getUniformLocation(n,"u_resolution"),direction:e.getUniformLocation(n,"u_direction"),radius:e.getUniformLocation(n,"u_radius"),bloomPass:e.getUniformLocation(n,"u_bloomPass"),threshold:e.getUniformLocation(n,"u_threshold")}:null}function Rb(e,t){let n=xi(e,Cb);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),blurSource:e.getUniformLocation(n,"u_blurSource"),texel:e.getUniformLocation(n,"u_texel"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),blurReady:e.getUniformLocation(n,"u_blurReady"),blur:e.getUniformLocation(n,"u_blur"),radius:e.getUniformLocation(n,"u_kuwaharaRadius")}:null}function kb(e,t){let n=xi(e,_b);return n?{program:n,quad:t,position:e.getAttribLocation(n,"a_pos"),moments:e.getUniformLocation(n,"u_kuwaharaMoments"),texel:e.getUniformLocation(n,"u_texel"),radius:e.getUniformLocation(n,"u_kuwaharaRadius"),sharpness:e.getUniformLocation(n,"u_kuwaharaSharpness"),saturation:e.getUniformLocation(n,"u_kuwaharaSaturation")}:null}function ir(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=pi(e,n,t),i=e.createFramebuffer();if(!r||!i)return r&&e.deleteTexture(r),i&&e.deleteFramebuffer(i),null;e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),o!==e.FRAMEBUFFER_COMPLETE?(e.deleteTexture(r),e.deleteFramebuffer(i),null):{texture:r,framebuffer:i,type:t,width:1,height:1}}function gi(e,t,n,r){t.width===n&&t.height===r||(t.width=n,t.height=r,e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,r,0,e.RGBA,t.type,null))}function Ia(e,t,n){let r=[];for(let i of n){let o=e.getUniformLocation(t,`u_${i}`);o!==null&&r.push([i,o])}return r}function Ed(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function Ga(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=xi(t),r=pi(t),i=pi(t,t.NEAREST),o=pi(t,t.NEAREST);if(!n||!r||!i||!o)return Ed(t,n,[r,i,o]),null;let a=t.createBuffer();return a?(t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),{gl:t,program:{program:n,texture:r,lutTexture:i,advancedTexture:o,advancedSignature:null,quad:a,position:t.getAttribLocation(n,"a_pos"),source:t.getUniformLocation(n,"u_source"),blurSource:t.getUniformLocation(n,"u_blurSource"),bloomSource:t.getUniformLocation(n,"u_bloomSource"),kuwaharaSource:t.getUniformLocation(n,"u_kuwaharaSource"),lut:t.getUniformLocation(n,"u_lut"),advanced:t.getUniformLocation(n,"u_advanced"),resolution:t.getUniformLocation(n,"u_resolution"),uvScale:t.getUniformLocation(n,"u_uvScale"),uvOffset:t.getUniformLocation(n,"u_uvOffset"),blurReady:t.getUniformLocation(n,"u_blurReady"),bloomReady:t.getUniformLocation(n,"u_bloomReady"),kuwaharaReady:t.getUniformLocation(n,"u_kuwaharaReady"),lutEnabled:t.getUniformLocation(n,"u_lutEnabled"),lutSize:t.getUniformLocation(n,"u_lutSize"),lutTextureSize:t.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:t.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:t.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:t.getUniformLocation(n,"u_lutIntensity"),shadowWheel:t.getUniformLocation(n,"u_shadowWheel"),midtoneWheel:t.getUniformLocation(n,"u_midtoneWheel"),highlightWheel:t.getUniformLocation(n,"u_highlightWheel"),rgbCurvesEnabled:t.getUniformLocation(n,"u_rgbCurvesEnabled"),hueCurvesEnabled:t.getUniformLocation(n,"u_hueCurvesEnabled"),secondaryCount:t.getUniformLocation(n,"u_secondaryCount"),adjustUniforms:Ia(t,n,zr),detailUniforms:Ia(t,n,No),effectUniforms:Ia(t,n,Lo),grainSeed:t.getUniformLocation(n,"u_grainSeed"),effectTime:t.getUniformLocation(n,"u_effectTime"),paletteSize:t.getUniformLocation(n,"u_paletteSize"),palette0:t.getUniformLocation(n,"u_palette0"),palette1:t.getUniformLocation(n,"u_palette1"),palette2:t.getUniformLocation(n,"u_palette2"),palette3:t.getUniformLocation(n,"u_palette3"),palette4:t.getUniformLocation(n,"u_palette4"),palette5:t.getUniformLocation(n,"u_palette5"),intensity:t.getUniformLocation(n,"u_intensity"),compareEnabled:t.getUniformLocation(n,"u_compareEnabled"),comparePosition:t.getUniformLocation(n,"u_comparePosition"),compareSoftness:t.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:t.getUniformLocation(n,"u_compareLineWidth")}}):(Ed(t,n,[r,i,o]),null)}function Mb(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fb(e){if(!Mb(e))return{...rn};let t=(n,r,i,o)=>{let a=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(i,Number.isFinite(a)?a:r))};return{enabled:e.enabled===!0,position:t(e.position,rn.position,0,1),softness:t(e.softness,rn.softness,0,.25),lineWidth:t(e.lineWidth,rn.lineWidth,0,12)}}function Fd(e){try{let t=new URL(e,document.baseURI);return t.protocol==="data:"?{href:t.href}:t.protocol!=="http:"&&t.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:t.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:t.href}}catch{return{error:"Invalid LUT URL"}}}function yi(e){return e instanceof Error?e.message:"LUT failed to load"}function Nb(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return(t>>>0)%1e4}function Nd(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return Nb(t)}function Ba(e){let t=Fd(e);if("error"in t)return{state:"error",message:t.error};let n=it.get(t.href);if(n)return n;let r=fetch(t.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ul(o,{maxSize:Br})),i={state:"pending",promise:r};for(;it.size>=hb;){let o=it.keys().next().value;if(!o)break;it.delete(o)}return it.set(t.href,i),r.then(o=>{it.get(t.href)===i&&it.set(t.href,{state:"ready",lut:o})},o=>{it.get(t.href)===i&&it.set(t.href,{state:"error",message:yi(o)})}),i}function wd(e,t,n){if(e.lut?.src===t)return e.lut;let r=Eo(n),{gl:i,program:o}=e;try{return Ld(i,o.lutTexture,r),e.lut={src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height},e.lutError=null,e.lutLoadingSrc=null,e.lut}catch(a){return e.lut=null,e.lutError=yi(a),e.lutLoadingSrc=null,L("runtime.colorGrading.uploadLut",a),null}}async function Lb(e){let t=Ba(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function Ld(e,t,n){e.activeTexture(e.TEXTURE2),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)}function Db(e,t,n){let r=Eo(n),{gl:i,program:o}=e;return Ld(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function Je(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function Ua(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),Je(e.gl,t.scratch),Je(e.gl,t.blur),t.bloom&&Je(e.gl,t.bloom),e.effectTargets=null)}function Wa(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),Je(e.gl,t.moments),Je(e.gl,t.output),e.kuwaharaTargets=null)}function hi(e,t=!1){Ua(e),Wa(e),Ib(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function Ib(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function Pb(e){let t=Ga(e.canvas);return t?(hi(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function Ha(e){if(!e.sourceHidden)return;e.element.removeAttribute(Nn);let t=e.element.style.getPropertyValue("opacity"),n=e.element.style.getPropertyPriority("opacity");t==="0"&&n==="important"&&(e.sourceInlineOpacity===null?e.element.style.removeProperty("opacity"):e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority)),e.sourceHidden=!1}function Ob(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=Tb(t,e.program.quad),r=ir(t),i=ir(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&Je(t,r),i&&Je(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function Hb(e,t){return t.bloom||(t.bloom=ir(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function Cd(e){let t=e.effectTargets;t?.bloom&&(Je(e.gl,t.bloom),t.bloom=null)}function Gb(e){if(e.kuwaharaTargets)return e.kuwaharaTargets;let{gl:t}=e,n=t.getExtension("OES_texture_half_float"),r=t.getExtension("EXT_color_buffer_half_float");if(!n||!r)return e.effectError="Kuwahara requires half-float framebuffer support",null;let i=Rb(t,e.program.quad),o=kb(t,e.program.quad),a=ir(t,n.HALF_FLOAT_OES,t.NEAREST),l=ir(t);return!i||!o||!a||!l?(Bb(t,i,o,a,l),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:l},e.kuwaharaTargets)}function Bb(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&Je(e,r),i&&Je(e,i)}function Dd(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return gi(e,t,o,a),gi(e,n,o,a),{width:o,height:a}}function bi(e,t,n,r,i,o,a,l=!1,s=-1){e.bindFramebuffer(e.FRAMEBUFFER,r.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(t.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t.source,0),e.uniform2f(t.resolution,i.width,i.height),e.uniform2f(t.direction,o.x,o.y),e.uniform1f(t.radius,a),e.uniform1f(t.bloomPass,l?1:0),e.uniform1f(t.threshold,s),or(e,t)}function Ub(e,t,n,r,i,o,a){let l=Dd(e,t.scratch,r,i/2,o/2),s=a/2;bi(e,t.blurProgram,n,t.scratch,l,{x:1,y:0},s,!0,.5),bi(e,t.blurProgram,t.scratch.texture,r,l,{x:0,y:1},s,!0)}function Wb(e,t,n,r,i,o,a){let l=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)bi(e,t.blurProgram,l,t.scratch,i,{x:1,y:0},o),bi(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),l=r.texture}function or(e,t){e.bindBuffer(e.ARRAY_BUFFER,t.quad),e.enableVertexAttribArray(t.position),e.vertexAttribPointer(t.position,2,e.FLOAT,!1,0,0),e.drawArrays(e.TRIANGLE_STRIP,0,4)}function Vb(e,t,n,r,i,o,a,l){gi(e,t.moments,i.width,i.height),gi(e,t.output,i.width,i.height);let s=t.horizontalProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.moments.framebuffer),e.viewport(0,0,i.width,i.height),e.useProgram(s.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.activeTexture(e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,r),e.uniform1i(s.source,0),e.uniform1i(s.blurSource,1),e.uniform2f(s.texel,1/i.width,1/i.height),e.uniform2f(s.uvScale,o.scaleX,o.scaleY),e.uniform2f(s.uvOffset,o.offsetX,o.offsetY),e.uniform1f(s.blurReady,a?1:0),e.uniform1f(s.blur,l.blur),e.uniform1f(s.radius,l.kuwaharaRadius),or(e,s);let u=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(u.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(u.moments,0),e.uniform2f(u.texel,1/i.width,1/i.height),e.uniform1f(u.radius,l.kuwaharaRadius),e.uniform1f(u.sharpness,l.kuwaharaSharpness),e.uniform1f(u.saturation,l.kuwaharaSaturation),or(e,u)}function zb(e,t,n,r){if(n<=0)return!1;let i=Dd(e.gl,t.scratch,t.blur,r.width,r.height);return Wb(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function qb(e,t,n,r,i,o){if(n<=0)return Cd(e),null;o||Cd(e);let a=o?Hb(e,t):t.blur;return a?(Ub(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function $b(e,t,n,r){let{program:i}=e,o=t.effects.blur,a=t.effects.bloom;if(o<=0&&a<=0)return e.effectTargets&&r&&Ua(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let l=Ob(e);if(!l)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=zb(e,l,o,n),u=qb(e,l,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:u!==null,blurTexture:l.blur.texture,bloomTexture:u??i.texture}}function jb(e,t,n,r,i,o,a){let l=t.effects.kuwahara;if(l<=0&&!o)return e.kuwaharaTargets&&a&&Wa(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=Gb(e);return!s||l<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(Vb(e.gl,s,e.program.texture,e.effectTargets?.blur.texture??e.program.texture,n,r,i,t.effects),{kuwaharaReady:!0,kuwaharaTexture:s.output.texture})}function Id(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=$b(e,t,n,o),l=jb(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...l}}function Kb(e){let t=e.grading.lut?.src.trim()??"",n=e.grading.lut?.intensity??1;if(!t||n<=0)return e.lut=null,e.lutLoadingSrc=null,e.lutError=null,null;let r=Fd(t);if("error"in r)return e.lut=null,e.lutLoadingSrc=null,e.lutError=r.error,null;if(e.lut?.src===r.href)return e.lut;e.lut=null;let i=Ba(t);return i.state==="ready"?wd(e,r.href,i.lut):i.state==="error"?(e.lutError=i.message,e.lutLoadingSrc=null,null):(e.lutLoadingSrc!==r.href&&(e.lutLoadingSrc=r.href,e.lutError=null,i.promise.then(o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(wd(e,r.href,o),De(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=yi(o),e.lutLoadingSrc=null,De(e))})),null)}function nr(e){if(!e)return null;if(typeof e=="string"){let t=e.trim();if(!t)return null;let n=document.getElementById(t.replace(/^#/,""));if(n&&Lt(n))return n;try{let r=document.querySelector(t);return r&&Lt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Lt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Lt(t))return t}if(!e.selector)return null;try{let t=Array.from(document.querySelectorAll(e.selector)),n=Math.max(0,Math.floor(Number(e.selectorIndex??0)||0)),r=t[n]??null;return r&&Lt(r)?r:null}catch{return null}}function Pd(e){return e instanceof HTMLVideoElement?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:e instanceof HTMLImageElement&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Od(e){return e instanceof HTMLVideoElement?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:e instanceof HTMLImageElement?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function Hd(e){let t=ut(e);return t&&Od(t)?t:null}function _d(e){if(!(e instanceof HTMLVideoElement))return!1;let t=Hd(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function Yb(e){return e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")}function Xb(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Gd(e){if(e instanceof HTMLVideoElement){let t=Hd(e);if(t)return t}return Od(e)?e:null}function Td(e,t){let n=e.toLowerCase();if(n==="center")return .5;if(t==="x"){if(n==="left")return 0;if(n==="right")return 1}else{if(n==="top")return 0;if(n==="bottom")return 1}if(n.endsWith("%")){let r=Number.parseFloat(n);return Number.isFinite(r)?r/100:null}return null}function Jb(e){let t=e.trim().split(/\\s+/).filter(Boolean),n=.5,r=.5;for(let i=0;i<t.length;i++){let o=t[i]??"",a=Td(o,"x"),l=Td(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(l!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=l;continue}}return{x:n,y:r}}function Bd(e,t,n,r,i,o){if(e<=0||t<=0||n<=0||r<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let a=i||"fill",l=e,s=t;if(a==="contain"||a==="cover"||a==="scale-down"){let f=a==="cover"?Math.max(e/n,t/r):Math.min(e/n,t/r);l=n*f,s=r*f,a==="scale-down"&&l>n&&s>r&&(l=n,s=r)}else a==="none"&&(l=n,s=r);let u=Jb(o||"center"),c=(e-l)*u.x/e,m=(t-s)*u.y/t;return{scaleX:l/e,scaleY:s/t,offsetX:c,offsetY:m}}function Qb(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Rd(e,t){return Math.max(0,Math.round(e>0?e:t))}function Zb(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&Qb(e,i);let o=window.getComputedStyle(t);mu(r.style,o),r.style.pointerEvents="none",r.style.position="absolute",r.style.inset="auto",r.style.left=`${n.offsetLeft}px`,r.style.top=`${n.offsetTop}px`,r.style.right="auto",r.style.bottom="auto",r.style.width=`${n.offsetWidth}px`,r.style.height=`${n.offsetHeight}px`,r.style.display="block",r.style.opacity=e.sourceOpacityForCanvas,r.style.visibility=e.sourceVisibleForCanvas?"visible":"hidden";let a=n.getBoundingClientRect(),l=Rd(n.offsetWidth,a.width),s=Rd(n.offsetHeight,a.height);if(l<=0||s<=0)return r.style.display="none",null;let u=Math.max(1,window.devicePixelRatio||1),c=Math.round(l*u),m=Math.round(s*u);return r.width!==c&&(r.width=c),r.height!==m&&(r.height=m),{width:c,height:m}}function nn(e,t,n){e.uniform3f(t,Number.parseInt(n.slice(1,3),16)/255,Number.parseInt(n.slice(3,5),16)/255,Number.parseInt(n.slice(5,7),16)/255)}function Dt(e,t,n,r){e.set(r,(t*Ke+n)*4)}function yt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Pa(e,t,n){return e.length>=3?Co(e,t,n):new Float32Array(Ke)}function Nt(e,t){return e[t]??0}function ex(e,t,n){let r=zt(t.red),i=zt(t.green),o=zt(t.blue),a=zt(t.master),l=Pa(n.hueVsHue,-180,180),s=Pa(n.hueVsSaturation,-1,1),u=Pa(n.hueVsLuma,-1,1);for(let c=0;c<Ke;c+=1)Dt(e,0,c,[Nt(r,c),Nt(i,c),Nt(o,c),Nt(a,c)]),Dt(e,1,c,[yt(Nt(l,c),180),yt(Nt(s,c),1),yt(Nt(u,c),1),1])}function tx(e,t,n){let r=n*yb;Dt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Dt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Dt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Dt(e,2,r+3,[yt(t.correction.hueShift,180),yt(t.correction.saturation,1),yt(t.correction.luma,1),yt(t.correction.temperature,1)]),Dt(e,2,r+4,[yt(t.correction.tint,1),.5,.5,1])}function nx(e,t,n){let r=new Float32Array(Ke*sr*4);ex(r,e,t);let i=0;for(let o of n)o.enabled&&(tx(r,o,i),i+=1);return r}var kd=new WeakMap;function rx(e,t,n){let r=kd.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return kd.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function ix(e,t,n,r){let{curves:i,hueCurves:o}=n,a=rx(i,o,r);if(t.advancedSignature===a)return;let l=Uint8Array.from(nx(i,o,r),kn);e.activeTexture(e.TEXTURE5),e.bindTexture(e.TEXTURE_2D,t.advancedTexture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,Ke,sr,0,e.RGBA,e.UNSIGNED_BYTE,l),t.advancedSignature=a}function Oa(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Ud(e,t,n,r,i,o,a,l,s,u,c,m){e.uniform1i(t.source,0),e.uniform1i(t.blurSource,1),e.uniform1i(t.lut,2),e.uniform1i(t.kuwaharaSource,3),e.uniform1i(t.bloomSource,4),e.uniform1i(t.advanced,5),e.uniform2f(t.resolution,s.width,s.height),e.uniform2f(t.uvScale,u.scaleX,u.scaleY),e.uniform2f(t.uvOffset,u.offsetX,u.offsetY),e.uniform1f(t.blurReady,i?1:0),e.uniform1f(t.bloomReady,o?1:0),e.uniform1f(t.kuwaharaReady,a?1:0),e.uniform1f(t.lutEnabled,r?1:0),e.uniform1f(t.lutSize,r?.size??2),e.uniform2f(t.lutTextureSize,r?.textureWidth??1,r?.textureHeight??1),e.uniform3f(t.lutDomainMin,r?.domainMin[0]??0,r?.domainMin[1]??0,r?.domainMin[2]??0),e.uniform3f(t.lutDomainMax,r?.domainMax[0]??1,r?.domainMax[1]??1,r?.domainMax[2]??1),e.uniform1f(t.lutIntensity,n.lut?.intensity??0);let{curves:f,hueCurves:p,secondaries:b}=n,v=Po(f),x=Oo(p),_=Ho(b)?b.reduce((M,F)=>M+Number(F.enabled),0):0;(v||x||_>0)&&ix(e,t,n,b),Oa(e,t.shadowWheel,n.wheels.shadows),Oa(e,t.midtoneWheel,n.wheels.midtones),Oa(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,v?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,_);for(let[M,F]of t.adjustUniforms)e.uniform1f(F,n.adjust[M]);for(let[M,F]of t.detailUniforms)e.uniform1f(F,n.details[M]);e.uniform1f(t.grainSeed,c),e.uniform1f(t.effectTime,m);for(let[M,F]of t.effectUniforms)e.uniform1f(F,n.effects[M]);let R=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?bb:La),T=R[R.length-1]??La[1];e.uniform1f(t.paletteSize,R.length),nn(e,t.palette0,R[0]??La[0]),nn(e,t.palette1,R[1]??T),nn(e,t.palette2,R[2]??T),nn(e,t.palette3,R[3]??T),nn(e,t.palette4,R[4]??T),nn(e,t.palette5,R[5]??T),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,l.enabled?1:0),e.uniform1f(t.comparePosition,l.position),e.uniform1f(t.compareSoftness,l.softness),e.uniform1f(t.compareLineWidth,l.lineWidth)}function ox(e){if(!e.sourceHidden){let t=e.element.getAttribute(Vr);t!==null?(e.sourceInlineOpacity=t===""?null:t,e.sourceInlineOpacityPriority=""):(e.sourceInlineOpacity=e.element.style.getPropertyValue("opacity")||null,e.sourceInlineOpacityPriority=e.element.style.getPropertyPriority("opacity"))}e.element.setAttribute(Nn,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function ot(e){let t=su.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Wd=ot("intensity"),Vd=ot("lut.intensity"),zd=ot("adjust.exposure"),qd=ot("effects.kuwahara"),$d=[["blur",ot("effects.blur")],["bloom",ot("effects.bloom")],["kuwahara",qd],["pixelate",ot("effects.pixelate")],["ascii",ot("effects.ascii")],["dither",ot("effects.dither")]],jd=[Wd,Vd,zd,...$d.map(([,e])=>e)];function It(e,t){let n=e.style.getPropertyValue(t.name);if(!n)return null;let r=Number(n);return Number.isFinite(r)?Math.min(t.max,Math.max(t.min,r)):null}function rr(e,t){return t!==null&&(du(t)||jd.some(n=>It(e,n)!==null))}function ax(e,t){let n=null;for(let[r,i]of $d){let o=It(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function sx(e){let{element:t,grading:n}=e,r=It(t,Wd),i=It(t,Vd),o=It(t,zd),a=ax(t,n);if(![r,i,o].some(u=>u!==null)&&a===null)return n;let s={...n,adjust:o===null?n.adjust:{...n.adjust,exposure:o},effects:a??n.effects};return r!==null&&(s.intensity=r),n.lut&&i!==null&&(s.lut={...n.lut,intensity:i}),s}function Kd(e,t,n){e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)}function Yd(e,t,n){let r=[t.texture,n.blurTexture,t.lutTexture,n.kuwaharaTexture,n.bloomTexture,t.advancedTexture];for(let[i,o]of r.entries())e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,o)}function De(e){if(e.destroyed||e.contextLost)return!1;let t=Gd(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Pd(t);if(!n)return!1;let r=t instanceof HTMLElement?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",l=e.element.style.getPropertyValue("visibility"),s=Yb(t);s&&Xb(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let u=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=u.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||l!=="hidden")&&u.visibility!=="hidden";let c=Zb(e,r);if(!c)return!1;let m=window.getComputedStyle(r),f=Bd(c.width,c.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:b}=e;try{let v=sx(e),x=Kb(e);Kd(p,b.texture,t);let _=It(e.element,qd)!==null,R=Id(e,v,c,f,{preserveKuwahara:_});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,c.width,c.height),p.useProgram(b.program),Yd(p,b,R);let T=window.__player?.getTime?.(),M=typeof T=="number"&&Number.isFinite(T)?Math.max(0,T):e.element instanceof HTMLVideoElement?Math.max(0,e.element.currentTime):0,F=e.grainSeed+Math.floor(M*60);return Ud(p,b,v,x,R.blurReady,R.bloomReady,R.kuwaharaReady,e.compare,c,f,F,M),or(p,b),ox(e),e.hasDrawn=!0,e.drawError=null,!0}catch(v){return e.drawError=v instanceof Error?v.message:"Shader draw failed",L("runtime.colorGrading.drawEntry",v),!1}}function lx(e,t,n){let r=e.getBoundingClientRect(),i=e.offsetWidth||r.width||t.width,o=e.offsetHeight||r.height||t.height,a=Math.min(320,Math.max(64,Math.round(n??160))),l=i>0&&o>0?i/o:t.width/t.height;return l>=1?{width:a,height:Math.max(1,Math.round(a/l))}:{width:Math.max(1,Math.round(a*l)),height:a}}function ux(){let e=document.createElement("canvas"),t=Ga(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function cx(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):e instanceof HTMLVideoElement?Math.max(0,e.currentTime):0}function dx(e,t,n,r){let i=Gd(t);if(!i)return null;let o=Pd(i);if(!o)return null;let a=lx(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let l=i instanceof HTMLElement?i:t,s=window.getComputedStyle(l),u=Bd(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Kd(e.gl,e.program.texture,i),{dimensions:a,uv:u,effectTime:cx(t,r),grainSeed:Nd(t)+(t instanceof HTMLVideoElement?Math.floor(t.currentTime*60):0)}}async function fx(e,t,n,r,i=!1){let o=dx(e,t,r,i);if(!o)return null;let{dimensions:a,uv:l,grainSeed:s,effectTime:u}=o,c=[];for(let m of n.slice(0,32)){let f=qr(m.grading);if(!f){c.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=Db(e,f.lut.src,await Lb(f.lut.src))),p=e.lut),c.push({id:m.id,dataUrl:mx(e,f,p,a,l,s,u)})}catch(b){c.push({id:m.id,dataUrl:null,error:yi(b)})}}return{...a,images:c}}function mx(e,t,n,r,i,o,a){let{canvas:l,gl:s,program:u}=e,c=Id(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(u.program),Yd(s,u,c),n||(e.lut=null),Ud(s,u,t,n,c.blurReady,c.bloomReady,c.kuwaharaReady,rn,r,i,o,a),or(s,u),l.toDataURL("image/png")}function Xe(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function px(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&e.element instanceof HTMLVideoElement&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function ar(e){if(e.destroyed||!(e.element instanceof HTMLVideoElement)||e.videoFrameHandle!==null||e.animationFrame!==null)return;let t=e.element,n=t;if(typeof n.requestVideoFrameCallback=="function"){e.videoFrameHandle=n.requestVideoFrameCallback(()=>{e.videoFrameHandle=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,De(e),!e.destroyed&&!t.paused&&!t.ended&&ar(e)})}function hx(e){let t=()=>{De(e)};if(Xe(e,e.element,"load",t),Xe(e,e.element,"loadedmetadata",t),Xe(e,e.element,"loadeddata",t),Xe(e,e.element,"seeked",t),Xe(e,e.element,"timeupdate",t),Xe(e,window,"resize",t),e.element instanceof HTMLVideoElement&&(Xe(e,e.element,"play",()=>ar(e)),Xe(e,e.element,"pause",t)),Xe(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",Ha(e)}),Xe(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!Pb(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",Ha(e);return}e.drawError=null,De(e)}),typeof ResizeObserver<"u"&&(e.resizeObserver=new ResizeObserver(t),e.resizeObserver.observe(e.element)),typeof MutationObserver<"u"){let n=()=>{let a=e.element.style;return`${a.transform}|${a.translate}|${a.rotate}|${a.scale}|${a.left}|${a.top}|${a.width}|${a.height}`},r=n(),i=!1,o=new MutationObserver(()=>{i||n()!==r&&(i=!0,requestAnimationFrame(()=>{i=!1,r=n(),De(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function gx(e){if(e.destroyed)return null;e.destroyed=!0,px(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),Ua(e),Wa(e),Ha(e),e.touchedParent&&(e.parentInlinePosition===null?e.touchedParent.style.removeProperty("position"):e.touchedParent.style.position=e.parentInlinePosition),{canvas:e.canvas,gl:e.gl,program:e.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}function Xd(e,t){return e.removeAttribute("style"),t.id?e.id=`${nu}${t.id}`:e.removeAttribute("id"),e.className=pb,e.setAttribute(mb,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function bx(e){return Xd(document.createElement("canvas"),e)}function Jd(){let e=new WeakMap,t=new Set,n=[],r=null,i=null,o=Promise.resolve(),a=!1,l=(E,S,A)=>{let C=e.get(E);if(C)return C.grading=S,C.source=A,De(C),E instanceof HTMLVideoElement&&!E.paused&&ar(C),!0;let N=n.pop();if(N)Xd(N.canvas,E);else{let W=bx(E),B=Ga(W);if(!B)return W.remove(),!1;N={canvas:W,gl:B.gl,program:B.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let I={element:E,...N,grading:S,compare:{...rn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:A,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(E).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(E).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Nd(E),destroyed:!1};return e.set(E,I),t.add(E),hx(I),De(I),E instanceof HTMLVideoElement&&!E.paused&&ar(I),!0},s=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=e.get(A);if(!C){let N=mi(A);if(!rr(A,N)||!l(A,N,"attribute"))return!1;C=e.get(A)}return C?(C.compare=Fb(S),De(C),!0):!1},u=E=>{let S=e.get(E);if(!S)return;let A=gx(S);A&&(S.contextLost||n.length>=gb?hi(A,!0):n.push(A)),e.delete(E),t.delete(E)},c=()=>{if(a)return 0;let E=new Set;document.querySelectorAll(`video[${Fn}], img[${Fn}]`).forEach(A=>{if(!Lt(A))return;E.add(A);let C=mi(A);rr(A,C)&&(Sd(A)||_d(A))?l(A,C,"attribute"):u(A)});for(let A of t){let C=e.get(A);C&&(!A.isConnected||C.source==="attribute"&&!E.has(A))&&u(A)}return t.size},m=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);A&&De(A)&&(E+=1)}return E},f=async()=>{let E=new Set;for(let S of t){let A=e.get(S)?.grading.lut;if(!A?.src.trim()||(A.intensity??1)<=0)continue;let C=Ba(A.src);C.state==="pending"&&E.add(C.promise)}return E.size>0&&await Promise.allSettled(E),m(),E.size},p=()=>{if(a)return 0;let E=0;for(let S of t){let A=e.get(S);!A||!jd.some(N=>It(S,N)!==null)||S instanceof HTMLVideoElement&&!S.paused&&!S.ended||De(A)&&(E+=1)}return E},b=(E,S)=>{if(a)return!1;let A=nr(E);if(!A)return!1;let C=qr(S);return rr(A,C)?l(A,C,"live"):(u(A),!0)},v=(E,S)=>{if(!Lt(E))return!1;let A=e.get(E);if(!A){if(!S)return!1;let C=mi(E);return rr(E,C)&&l(E,C,"attribute")}return A.sourceVisibleForCanvas=S,!S&&A.source==="attribute"&&u(E),!0},x=E=>{let S=nr(E);if(!S)return{state:"missing",message:"Media not found"};let A=e.get(S);if(A)return A.effectError?{state:"unavailable",message:A.effectError}:A.drawError?{state:"unavailable",message:A.drawError}:A.lutError?{state:"unavailable",message:`LUT error: ${A.lutError}`}:A.grading.lut&&A.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:A.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:A.lut?"Shader + LUT active":"Shader active"};let C=mi(S);return rr(S,C)?!Sd(S)&&!_d(S)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},_=async(E,S,A)=>{let C=async()=>{if(a||S.length===0)return null;let I=nr(E);return!I||(i??(i=ux()),!i)?null:fx(i,I,S,A?.maxDimension,A?.useMediaTime)},N=o.then(C,C);return o=N.then(()=>{},()=>{}),N},R=E=>{let S=nr(E);if(!(S instanceof HTMLVideoElement))return null;if(!S.paused)return()=>{};let A=S.currentTime,C=S.loop,N=S.muted;return S.loop=!0,S.muted=!0,(S.ended||Number.isFinite(S.duration)&&A>=S.duration)&&(S.currentTime=0),S.play().catch(()=>{}),()=>{S.pause(),S.loop=C,S.muted=N,S.currentTime=A}},T=()=>{if(!a){a=!0,r?.disconnect(),r=null;for(let E of t)u(E);for(let E of n)hi(E,!0);n.length=0,i&&(hi(i,!0),i=null)}};document.body&&(r=new MutationObserver(()=>c()),r.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Fn]}));let M={refresh:c,redraw:m,redrawAnimated:p,waitForActiveLuts:f,setGrading:b,setCompare:s,setSourceVisibility:v,getStatus:x,renderPreviews:_,startPreviewPlayback:R,destroy:T},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=M,c(),M}var vi=class{constructor(t){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=t?.initialTime??0,this._rate=t?.rate??1,this._duration=t?.duration??1/0,this._nowMs=t?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let r=null;if("currentTimeSeconds"in this._audioSource)r=this._audioSource.currentTimeSeconds;else{let{el:i,compositionStart:o,mediaStart:a}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}let t=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+t*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(t){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(t,this._duration)):Math.max(0,t);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(t){let n=Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(t){this._duration=Number.isFinite(t)&&t>0?t:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(t){this._audioSource=t}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:t}=this._audioSource;if(!t.paused&&Number.isFinite(t.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}};var xx=100,yx=8,vx=4096,Va=e=>e;function Sx(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function Ax(e){let t=Math.ceil(e*xx);return Math.min(vx,Math.max(yx,t))}function Ex(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:l}=r,s=i??Va,u=R=>o+(R-a)/l,c=e.points[t],m=e.points[t+1],f=u(m.t);if(f<=o)return null;let p=Math.max(o,u(c.t)),b=f-p;if(b<=0)return null;if(Sx(c,n,i))return{kind:"ramp",time:f,value:s(m.v)};let v=Ax(b),x=_l(e,Math.max(c.t,a),m.t,v,n),_=new Float32Array(v);for(let R=0;R<v;R+=1)_[R]=s(x[R]??0);return{kind:"curve",time:p,duration:b,values:_}}function wx(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let l=Ex(e,a,t,n,r);l&&i.push(l)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??Va)(_n(e,n.elapsed,t))}),i}function Cx(e,t){for(let n of t)if(n.kind==="set")e.setValueAtTime(n.value,n.time);else if(n.kind==="ramp")e.linearRampToValueAtTime(n.value,n.time);else try{e.setValueCurveAtTime(n.values,n.time,n.duration)}catch{let r=n.values[n.values.length-1]??0;e.linearRampToValueAtTime(r,n.time+n.duration)}}function lr(e){for(let t of e)t.param.cancelScheduledValues(0)}function on(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function za(e,t,n,r){if(t.points.length!==0)for(let i of e){if(lr([i]),Cl(t)){let o=(i.map??Va)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}Cx(i.param,wx(t,n,r,i.map))}}function Qd(e,t,n,r,i){let o=new Map(n.filter(l=>l.id).map(l=>[l.id,l.handle])),a=[];for(let l of e.lanes){let s=Cn(l.target);if(!s)continue;let u=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!u||u.length===0)continue;let c=co(l.target,t);c&&(za(u,l,c.scale,r),a.push(...u))}return a}function Zd(e){return e.lanes.find(t=>t.target===Ut)??null}var _x=`\nconst dbToLin = (db) => Math.pow(10, db / 20);\n\n/**\n * One-pole envelope followers, one per channel.\n *\n * Per channel matters: the followers advance once per sample, so a single shared\n * follower stepped once per channel per sample. On stereo that ran a 20 ms attack\n * as 10 ms, and gave the right channel a gain computed from an envelope that had\n * already traversed the left \\u2014 so the two channels ducked by different amounts\n * from the same input and the image pumped.\n */\nclass EnvBank {\n constructor(attackMs, releaseMs) { this.set(attackMs, releaseMs); this.values = []; }\n set(attackMs, releaseMs) {\n this.a = Math.exp(-1 / (sampleRate * Math.max(1e-5, attackMs / 1000)));\n this.r = Math.exp(-1 / (sampleRate * Math.max(1e-5, releaseMs / 1000)));\n }\n push(ch, x) {\n const prev = this.values[ch] ?? 0;\n const m = Math.abs(x);\n const c = m > prev ? this.a : this.r;\n const next = m + c * (prev - m);\n this.values[ch] = next;\n return next;\n }\n}\n\n/** Soft-knee gain computer in dB, matching acompressor\'s shape. */\nfunction kneeGain(envDb, thresholdDb, ratio, kneeDb) {\n const over = envDb - thresholdDb;\n if (kneeDb > 0 && over > -kneeDb && over < kneeDb) {\n const t = (over + kneeDb) / (2 * kneeDb);\n return -((1 - 1 / ratio) * kneeDb * t * t);\n }\n return over > 0 ? -(over * (1 - 1 / ratio)) : 0;\n}\n\n// log10/exp per sample is the single most expensive thing a dynamics processor\n// can do on the audio thread, and every sample below the knee needs neither:\n// its gain is exactly unity. Comparing envelopes in the linear domain lets the\n// quiet majority of samples skip the transcendentals entirely.\nconst LN10_OVER_20 = Math.LN10 / 20;\nconst dbToLinFast = (db) => Math.exp(db * LN10_OVER_20);\n\nclass HfCompressor extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 20, this.p.release ?? 250);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 20, this.p.release ?? 250);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const makeup = dbToLin(p.makeup ?? 0);\n const mix = p.mix ?? 1;\n // Knee is expressed as a ratio in FFmpeg; convert to dB width.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const thresholdDb = p.threshold ?? -24;\n const ratio = p.ratio ?? 4;\n // Below this the gain computer returns unity, so the sample needs no\n // logarithm at all.\n const kneeStartLin = dbToLin(thresholdDb - kneeDb);\n const dry = 1 - mix;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n // Per-channel follower, and the sub-knee shortcut: below the knee the\n // gain is exactly unity, so the sample needs no logarithm at all.\n const env = this.env.push(ch, x);\n if (env <= kneeStartLin) {\n out[n] = x * makeup * mix + x * dry;\n continue;\n }\n const envDb = 20 * Math.log10(env);\n const g = dbToLinFast(kneeGain(envDb, thresholdDb, ratio, kneeDb));\n out[n] = x * g * makeup * mix + x * dry;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-compressor", HfCompressor);\n\nclass HfLimiter extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 5, this.p.release ?? 50);\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 5, this.p.release ?? 50);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const ceiling = dbToLin(this.p.limit ?? -1);\n const outGain = dbToLin(this.p.level_out ?? 0);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n // Only ever attenuate: a limiter that can raise level is a compressor.\n const g = env > ceiling ? ceiling / env : 1;\n out[n] = x * g * outGain;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-limiter", HfLimiter);\n\nclass HfGate extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.env = new EnvBank(this.p.attack ?? 1, this.p.release ?? 100);\n this.gains = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n this.env.set(this.p.attack ?? 1, this.p.release ?? 100);\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const threshold = dbToLin(p.threshold ?? -35);\n const floor = dbToLin(p.range ?? -24);\n const ratio = p.ratio ?? 10;\n // Knee is declared in the registry as a ratio, like the compressor\'s; a\n // hard threshold ignored it and chattered on material sitting right at the\n // gate point.\n const kneeDb = 20 * Math.log10(Math.max(1.0001, p.knee ?? 2.83));\n const kneeLin = dbToLin((p.threshold ?? -35) + kneeDb);\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n for (let n = 0; n < inp.length; n++) {\n const x = inp[n];\n const env = this.env.push(ch, x);\n let target = 1;\n // Above the threshold the gate is fully open; skip the pow entirely.\n if (env < threshold) {\n const under = env > 1e-9 ? threshold / env : 1e9;\n target = Math.max(floor, 1 / Math.pow(under, ratio - 1));\n if (!isFinite(target)) target = floor;\n }\n // Smooth toward the target so the gate does not click on every sample.\n const held = this.gains[ch] ?? 1;\n const c = target < held ? this.env.r : this.env.a;\n const smoothed = target + c * (held - target);\n this.gains[ch] = smoothed;\n out[n] = x * smoothed;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-gate", HfGate);\n\nclass HfBitcrush extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.holds = [];\n this.held = [];\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const levels = Math.pow(2, (p.bits ?? 8) - 1);\n const step = Math.max(1, Math.round(p.samples ?? 1));\n const mix = p.mix ?? 1;\n for (let ch = 0; ch < i.length; ch++) {\n const inp = i[ch], out = o[ch];\n if (this.held[ch] === undefined) this.held[ch] = 0;\n if (this.holds[ch] === undefined) this.holds[ch] = 0;\n for (let n = 0; n < inp.length; n++) {\n // Per channel: advancing one shared counter only on the last channel\n // left every earlier channel either unheld or frozen for a whole\n // 128-sample quantum, clicking once a block.\n if (this.holds[ch] === 0) this.held[ch] = Math.round(inp[n] * levels) / levels;\n out[n] = this.held[ch] * mix + inp[n] * (1 - mix);\n this.holds[ch] = (this.holds[ch] + 1) % step;\n }\n }\n return true;\n }\n}\nregisterProcessor("hf-bitcrush", HfBitcrush);\n\n/** Linear-interpolated read, \\`delaySamples\\` behind the write head. */\nfunction readTap(ring, write, delaySamples) {\n const len = ring.length;\n const pos = (write - 1 - delaySamples + len) % len;\n const i0 = Math.floor(pos);\n const frac = pos - i0;\n const i1 = (i0 + 1) % len;\n return ring[i0] * (1 - frac) + ring[i1] * frac;\n}\n\n/** Equal-power-ish crossfade, zero at a tap\'s reset point \\u2014 hides the splice. */\nfunction xfade(phase) {\n return Math.sin(Math.PI * phase);\n}\n\n/**\n * Dual-tap granular delay line: two read taps 180\\xB0 apart in a 100 ms grain,\n * each sweeping at a speed relative to the write head that shifts pitch\n * without changing duration. One tap is always fading in as the other fades\n * out, which hides the splice each tap makes when it wraps.\n *\n * write/phase are block-level state, advanced once per SAMPLE across all\n * channels together (not once per channel) \\u2014 advancing them inside the\n * per-channel loop would move the tap 2x/4x too fast on a stereo/quad input.\n */\nclass HfPitchshift extends AudioWorkletProcessor {\n constructor(o) {\n super();\n this.p = o.processorOptions || {};\n this.grain = Math.round(sampleRate * 0.1);\n this.buf = [];\n this.write = 0;\n this.phase = 0;\n // Samples written so far, capped at one grain. The taps read up to a grain\n // behind the write head, so until this fills they would read the ring\'s\n // zeros \\u2014 the head of every clip came out attenuated or silent.\n this.filled = 0;\n // How much of the wet (pitch-shifted) path is currently in the output, and\n // where it is heading. Crossing between dry and wet is a ~50 ms jump in the\n // signal, so it is RAMPED rather than switched: a hard swap either way is a\n // click. Ramping in both directions is also what lets a node return to true\n // bypass at semitones 0 \\u2014 a one-way latch left preview stuck with the delay\n // that the render, building a fresh node from the attribute, does not have.\n this.wet = 0;\n this.wetTarget = 0;\n // ~15 ms one-pole, short enough to feel immediate on a slider drag and long\n // enough that the splice is inaudible.\n this.wetCoef = Math.exp(-1 / (sampleRate * 0.015));\n this.port.onmessage = (e) => {\n if (e.data && e.data.__hfDispose) { this.dead = true; return; }\n this.p = { ...this.p, ...e.data };\n };\n }\n process(inputs, outputs) {\n if (this.dead) return false;\n const i = inputs[0], o = outputs[0];\n if (!i || !i.length) return true;\n const p = this.p;\n const semitones = Math.max(-12, Math.min(12, p.semitones ?? 0));\n const mix = Math.max(0, Math.min(1, p.mix ?? 1));\n const grain = this.grain;\n const ringLen = grain * 2;\n const n = i[0] ? i[0].length : 0;\n for (let ch = 0; ch < i.length; ch++) {\n if (!this.buf[ch]) this.buf[ch] = new Float32Array(ringLen);\n }\n\n // Nothing to shift, or mixed fully out. The grain delay is ~grain/2\n // whatever the ratio, so at semitones=0 this degenerated into a pure 50 ms\n // delay of the signal \\u2014 while the copy for that exact setting reads\n // "Unchanged pitch".\n this.wetTarget = semitones === 0 ? 0 : mix;\n\n // Fully dry AND settled: take the cheap transparent path. The ring keeps\n // filling, so a later shift does not start cold.\n if (this.wetTarget === 0 && this.wet < 1e-4) {\n this.wet = 0;\n let w = this.write;\n for (let s = 0; s < n; s++) {\n for (let ch = 0; ch < i.length; ch++) {\n const x = i[ch][s];\n this.buf[ch][w] = x;\n o[ch][s] = x;\n }\n w = (w + 1) % ringLen;\n }\n this.write = w;\n this.filled = Math.min(grain, this.filled + n);\n return true;\n }\n\n const ratio = Math.pow(2, semitones / 12);\n const inc = (1 - ratio) / grain;\n let write = this.write, phase = this.phase, filled = this.filled, wetNow = this.wet;\n const target = this.wetTarget, coef = this.wetCoef;\n for (let s = 0; s < n; s++) {\n phase += inc;\n phase -= Math.floor(phase);\n const phaseB = (phase + 0.5) % 1;\n const gA = xfade(phase), gB = xfade(phaseB);\n // Ramp the wet path in as the ring fills rather than reading zeros:\n // 100 ms of unshifted audio at the head of a clip beats 50 ms of silence.\n const warm = filled >= grain ? 1 : filled / grain;\n wetNow = target + coef * (wetNow - target);\n const wetMix = wetNow * warm;\n for (let ch = 0; ch < i.length; ch++) {\n const ring = this.buf[ch];\n const inp = i[ch], out = o[ch];\n const x = inp[s];\n ring[write] = x;\n const wet =\n readTap(ring, write, phase * grain) * gA + readTap(ring, write, phaseB * grain) * gB;\n out[s] = x * (1 - wetMix) + wet * wetMix;\n }\n write = (write + 1) % ringLen;\n if (filled < grain) filled++;\n }\n this.write = write;\n this.phase = phase;\n this.filled = filled;\n this.wet = wetNow;\n return true;\n }\n}\nregisterProcessor("hf-pitchshift", HfPitchshift);\n`,qa=new WeakMap;function $a(e){return ef.has(e)}var ef=new WeakSet;function ja(e){let t=qa.get(e);return t||(t=(async()=>{if(!e.audioWorklet)throw new Error("AudioWorklet is unavailable \\u2014 the page needs a secure context (https, localhost or file://)");let n=`data:text/javascript;base64,${btoa(String.fromCharCode(...new TextEncoder().encode(_x)))}`;await e.audioWorklet.addModule(n),ef.add(e)})().catch(n=>{throw qa.delete(e),n}),qa.set(e,t)),t}function Tx(e,t,n){let r=.6+Math.max(0,Math.min(1,t))*2.6,i=Math.max(1,Math.floor(e*r)),o=new Float32Array(i),a=Math.round(t*1e3)*2654435761+Math.round(n*1e3)*40503>>>0,l=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),u=0,c=0;for(let f=0;f<i;f++){u+=s*(l()-u);let p=u*Math.pow(1-f/i,2.5);o[f]=p,c+=p*p}let m=Math.sqrt(c);if(m>0)for(let f=0;f<i;f++)o[f]=(o[f]??0)/m;return o}var ce=e=>typeof e=="number"?e:Number(e??0),Ka=e=>e/1e3;function of(e,t,n,r){let i=Math.max(1,Math.round(e.sampleRate)),o=e.createBuffer(1,i,e.sampleRate),a=o.getChannelData(0);for(let u=0;u<i;u++){let c=u/i;a[u]=t==="sine"?Math.sin(2*Math.PI*c):4*Math.abs((c+.75)%1-.5)-1}let l=e.createBufferSource();l.buffer=o,l.loop=!0,l.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return l.start(typeof e.currentTime=="number"?e.currentTime:0,s),l}function af(e){try{e.stop()}catch{}e.disconnect()}function Ya(e,t){return[{param:e},{param:t,map:n=>1-n}]}function sf(e,t,n){e.gain.value=n,t.gain.value=1-n}function Xa(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var Rx=new Set(["peaking","highpass","lowpass"]),tf=e=>Math.pow(10,e/20),kx=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=tf(ce(i.gain))};return r(t),Xa(n,r,{gain:[{param:n.gain,map:tf}]})};function ur(e,t){return(n,r)=>{let i=n.createBiquadFilter();i.type=e;let o=a=>{i.frequency.value=ce(a.frequency),a.q!==void 0&&(i.Q.value=ce(a.q)),t&&(i.gain.value=ce(a.gain))};return o(r),Xa(i,o,{frequency:[{param:i.frequency}],...Rx.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function Mx(e){return(t,n)=>{let r=Math.tan(Math.PI*ce(n.frequency)/t.sampleRate),i=e==="highpass"?t.createIIRFilter([1/(1+r),-1/(1+r)],[1,(r-1)/(r+1)]):t.createIIRFilter([r/(1+r),r/(1+r)],[1,(r-1)/(r+1)]);return Xa(i,()=>{})}}function cr(e){return(t,n)=>{let r=new AudioWorkletNode(t,e,{processorOptions:{...n}});return{input:r,output:r,update:i=>r.port.postMessage({...i}),dispose:()=>{r.port.postMessage({__hfDispose:!0}),r.disconnect()}}}}var Fx={tanh:Math.tanh,atan:e=>2/Math.PI*Math.atan(Math.PI/2*e),cubic:e=>Math.abs(e)>=1?Math.sign(e):e-e**3/3,exp:e=>Math.sign(e)*(1-Math.exp(-Math.abs(e))),alg:e=>e/Math.sqrt(1+e*e),quintic:e=>Math.abs(e)>=1?Math.sign(e):e-e**5/5,sin:e=>Math.abs(e)>=1?Math.sign(e):Math.sin(Math.PI/2*e),erf:e=>Math.tanh(1.20211*e),hard:e=>Math.max(-1,Math.min(1,e))},Nx=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let l=Fx[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),u=8192,c=new Float32Array(u);for(let m=0;m<u;m++){let f=m/(u-1)*2-1;c[m]=l(f/Math.max(1e-6,s))*s}n.curve=c,n.oversample=ce(a.oversample)>=4?"4x":ce(a.oversample)>=2?"2x":"none",i.gain.value=Math.pow(10,ce(a.output)/20)};return o(t),{input:r,output:i,update:o,automation:{output:[{param:i.gain,map:a=>Math.pow(10,a/20)}]},dispose:()=>{r.disconnect(),n.disconnect(),i.disconnect()}}},Lx=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),l=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(l).connect(r);let s=u=>{i.delayTime.value=Math.min(5,ce(u.time)/1e3),o.gain.value=ce(u.feedback),sf(a,l,ce(u.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:u=>Math.min(5,Ka(u))}],feedback:[{param:o.gain}],mix:Ya(a.gain,l.gain)},dispose:()=>[n,r,i,o,a,l].forEach(u=>u.disconnect())}},Dx=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=of(e,"sine",ce(t.speed),n),l=e.createGain(),s=e.createGain(),u=e.createGain();a.connect(l).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(u).connect(i);let c=m=>{o.delayTime.value=ce(m.delay)/1e3,l.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),sf(s,u,ce(m.mix))};return c(t),{input:r,output:i,update:c,automation:{delay:[{param:o.delayTime,map:Ka}],depth:[{param:l.gain,map:Ka}],speed:[{param:a.playbackRate}],mix:Ya(s.gain,u.gain)},dispose:()=>{af(a),[r,i,o,l,s,u].forEach(m=>m.disconnect())}}},Ix=6,Px=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),l=of(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),u=e.createGain(),c=e.createGain(),m=[];r.connect(o);let f=o;for(let b=0;b<Ix;b++){let v=e.createBiquadFilter();v.type="allpass",v.Q.value=.7071,s.connect(v.frequency),f.connect(v),f=v,m.push(v)}l.connect(s),f.connect(u).connect(a),o.connect(c).connect(a),a.connect(i);let p=b=>{let v=1e3/Math.max(.1,ce(b.delay));for(let x of m)x.frequency.value=v;s.gain.value=v*ce(b.decay),l.playbackRate.value=ce(b.speed),o.gain.value=ce(b.in_gain),a.gain.value=ce(b.out_gain),u.gain.value=1,c.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:l.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{af(l),[r,i,o,a,s,u,c,...m].forEach(b=>b.disconnect())}}},Ox=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createConvolver(),o=e.createGain(),a=e.createGain();i.normalize=!1,n.connect(i).connect(o).connect(r),n.connect(a).connect(r);let l="",s=u=>{let c=`${ce(u.size)}:${ce(u.damping)}`;if(c!==l){let m=Tx(e.sampleRate,ce(u.size),ce(u.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,l=c}o.gain.value=ce(u.wet),a.gain.value=ce(u.dry)};return s(t),{input:n,output:r,update:s,automation:{wet:[{param:o.gain}],dry:[{param:a.gain}]},dispose:()=>[n,r,i,o,a].forEach(u=>u.disconnect())}},Hx={"gain-node":kx,"biquad-peaking":ur("peaking",!0),"biquad-lowshelf":ur("lowshelf",!0),"biquad-highshelf":ur("highshelf",!0),"biquad-highpass":ur("highpass",!1),"biquad-lowpass":ur("lowpass",!1),"worklet-compressor":cr("hf-compressor"),"worklet-limiter":cr("hf-limiter"),"worklet-gate":cr("hf-gate"),"worklet-bitcrush":cr("hf-bitcrush"),"worklet-pitchshift":cr("hf-pitchshift"),waveshaper:Nx,"delay-feedback":Lx,"chorus-lfo":Dx,"allpass-phaser":Px,convolver:Ox};function lf(e){return e.nodes.some(t=>Sn(t.type)?.web.startsWith("worklet-")??!1)}function Gx(e,t,n,r=0){let i=Sn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=An(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return Mx(t)(e,o,r);let a=Hx[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function nf(e){let t=[];for(let n of e){let r=n.fromPreset,i=t.at(-1);if(i&&i.preset===r)i.nodes.push(n);else{let o=typeof n.presetAmount=="number"?n.presetAmount:1;t.push({...r?{preset:r}:{},amount:Math.min(1,Math.max(0,o)),nodes:[n]})}}return t}function rf(e){return En(e).map(t=>{let n=An(t.type,t.params),r=n.poles!==void 0?`:${n.poles}`:"",i=String(n.poles)==="1"?`@${n.frequency}`:"",o=t.type==="phaser"?`~${n.type}`:"",a=t.fromPreset?`%${t.fromPreset}`:"";return`${t.type}${r}${i}${o}${a}`}).join("|")}function uf(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],l=nf(En(t)),s=r;for(let f of l){let p=null;if(f.preset){let b=e.createGain(),v=e.createGain(),x=e.createGain(),_=e.createGain();x.gain.value=f.amount,v.gain.value=1-f.amount,s.connect(b),b.connect(v).connect(_),p={entry:b,wet:x,dry:v,join:_},s=b}for(let b of f.nodes){let v=Gx(e,b.type,b.params??{},n);s.connect(v.input),s=v.output,o.push({...b.id?{id:b.id}:{},type:b.type,handle:v})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let u=rf(t),c={};for(let f of a)(c[m=f.id]??(c[m]=[])).push(...Ya(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:c,nodes:o,update(f){if(rf(f)!==u)return!1;En(f).forEach((b,v)=>{let x=o[v];x&&(x.handle.update(An(b.type,b.params)),b.id===void 0?delete x.id:x.id=b.id)});let p=0;for(let b of nf(En(f))){if(!b.preset)continue;let v=a[p++];!v||v.id!==b.preset||(v.wet.gain.value=b.amount,v.dry.gain.value=1-b.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:b,join:v}of a)f.disconnect(),p.disconnect(),b.disconnect(),v.disconnect();r.disconnect(),i.disconnect()}}}var cf={version:1,nodes:[]},df={version:1,lanes:[]};function ff(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(tt):null)??"";if(!n)return df;try{return wl(Dr(n),t)}catch{return df}}function an(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Rt):null)??"";if(!t)return{chain:cf,raw:""};try{return{chain:Sl(t),raw:t}}catch{return{chain:cf,raw:""}}}function mf(e){return ff(e,an(e).chain)}function Si(e,t,n,r,i){let{chain:o}=an(t),a=null,l=[],s=!1,u=0,c=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(T,M)=>{if(T.nodes.length===0){n.connect(r);return}if(lf(T)&&!$a(e)){n.connect(r);let F=++u;ja(e).then(()=>{s||F!==u||x(an(t).chain)}).catch(()=>{});return}try{let F=uf(e,T,M);n.connect(F.input),F.output.connect(r),a=F}catch{n.connect(r)}},f=(T,M)=>{l=M&&a?Qd(ff(t,T),T,a.nodes,M,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let b=()=>{if(!p)return null;let T=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:T,elapsed:p.elapsed+(T-p.scheduledAt)*p.rate,rate:p.rate}},v=T=>{let M=b();M&&(on(l,M.scheduledAt),f(T,M))},x=T=>{let M=b();on(l,M?.scheduledAt??0),c(),m(T,M?.elapsed??0),f(T,M)},_=null,R=t;return typeof MutationObserver<"u"&&typeof R?.nodeType=="number"&&(_=new MutationObserver(()=>{let T=an(t);l.length>0&&lr(l),!a||!a.update(T.chain)?x(T.chain):v(T.chain)}),_.observe(R,{attributes:!0,attributeFilter:[Rt,tt]})),{reanchor:T=>{if(s)return;let M=b();M&&on(l,M.scheduledAt),p={...T},f(an(t).chain,p)},setRate:T=>{let M=b();s||!M||!Number.isFinite(T)||T<=0||T===M.rate||(p={...M,rate:T},on(l,M.scheduledAt),f(an(t).chain,p))},dispose:()=>{s=!0,_?.disconnect(),l.length>0&&on(l,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}var pf="runtime_web_audio_bypass";function Ja(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function dr(e,t){return Ja(e,t)!==null}function Bx(e){return dr(e,"crossorigin")?!0:e.crossOrigin!=null}function Ux(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function Wx(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=Ja(e,"src");if(n)return[n];if(typeof e.querySelectorAll!="function")return[];let r=[];for(let i of Array.from(e.querySelectorAll("source"))){let o=i.getAttribute("src");o&&r.push(o)}return r}function Vx(e,t){if(typeof window>"u")return!1;let n;try{n=new URL(e,Ux(t))}catch{return!1}return n.protocol!=="http:"&&n.protocol!=="https:"||n.origin===window.location.origin?!1:!Bx(t)}function gf(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:dr(e,"src")}function sn(e){for(let t of Wx(e))if(Vx(t,e))return{kind:"decode-only",reason:"cross_origin_no_cors",asset:t};return{kind:"web-audio"}}function zx(e){let t=[];dr(e,Rt)&&t.push("fx-chain"),dr(e,tt)&&t.push("automation"),dr(e,Pr)&&t.push("audio-group");let n=Number.parseFloat(Ja(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function qx(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var hf=new WeakSet;function ln(e,t){if(t.kind==="web-audio"||qx()||hf.has(e))return;let n=zx(e);hf.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead"};xe({source:"hf-preview",type:"diagnostic",code:pf,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 proxy or download the asset to a same-origin URL to keep it.`:"";console.info(`[hyperframes] ${pf}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function Qa(e){return!Number.isFinite(e)||e<=0?1:e}function bf(e){return Le(e)}function $x(e,t){t||e.paused||!Ar().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function jx(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:l}=t,s=Number.isFinite(l)&&l>0,u=l*a;if(n>=0){let m=n*a,f=u-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let c=-n/o;return s?e.start(i+c,r,u):e.start(i+c,r),!0}function Ai(e,t,n){let r=Zd(mf(e));r&&za([{param:t.gain}],r,Lr.scale,n)}function fr(e){return e.sourceKind==="buffer"}var Ei=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_mediaElementSources",new WeakMap);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_masterVolume",1);ge(this,"_masterMuted",!1);ge(this,"_groups",new Map);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),this.applyMasterGain(),!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(t){let n=t.currentSrc||t.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;let r;try{let i=await fetch(n,{cache:"no-store"});if(!i.ok)return L("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return L("webAudioTransport.fetch",i),null}try{let i=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,i),i}catch(i){return this._failedSrcs.add(n),L("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}acquireMediaElementSource(t){let n=this._mediaElementSources.get(t);if(n){let o=sn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),ln(t,o),null}return n}if(!this._ctx)return null;let r=sn(t);if(r.kind!=="web-audio")return ln(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,l=1){if(!this._ctx||!this._masterGain||a!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),a!==this._playGeneration)return null;let s=this.acquireMediaElementSource(t);if(!s)return null;let u=Qa(l),c=this._ctx.createGain();c.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:u},b=Si(this._ctx,t,s,c,p);c.connect(this.resolveDestination(t,m,i,u)??this._masterGain),Ai(t,c,p),this._rate=u,this._rateAnchorCtx=m,this._rateAnchorComp=i;let v={fx:b,el:t,sourceNode:s,sourceKind:"media-element",gainNode:c,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Ce(t),bounded:!1};return t.volume=1,this._activeSources.push(v),this._paused=!1,v}catch(s){return L("webAudioTransport.mediaElementSource",s),null}}groupInput(t,n,r){let i=this._groups.get(t);if(i){if(i.generation!==this._playGeneration)try{i.reanchor(r),i.generation=this._playGeneration}catch(f){L("webAudioTransport.groupReanchor",f)}return i.input}if(!this._ctx||!this._masterGain)return null;let o=this._ctx.createGain(),a=this._ctx.createGain();a.connect(this._masterGain);let l=()=>mo(n,t),s=l(),u=this._ctx.createGain();u.gain.value=s?.hasAttribute("data-hidden")?0:1,u.connect(a);let c=this._ctx.createGain();c.gain.value=bf(fo(s)),c.connect(u);let m=Si(this._ctx,s??{getAttribute:()=>null},o,c,r);return s&&Ai(s,c,r),this._groups.set(t,{input:o,fader:c,muteGain:u,fx:m,generation:this._playGeneration,reanchor:f=>{lr([{param:c.gain}]);let p=l();c.gain.value=bf(fo(p)),u.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&Ai(p,c,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),c.disconnect(),u.disconnect(),a.disconnect()}catch{}}}),o}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){L("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Rl(t);if(!o)return this._masterGain;let a={scheduledAt:n,elapsed:r,rate:i};return this.groupInput(o,t.ownerDocument,a)??this._masterGain}handleSourceEnded(t,n,r,i){let o=this._activeSources.indexOf(n);if(o!==-1){this._activeSources.splice(o,1),r.muted=i;try{t.disconnect(),n.fx?.dispose(),n.gainNode.disconnect()}catch{}this._activeSources.length===0&&(this._paused=!0)}}async schedulePlayback(t,n,r,i,o,a,l,s=1,u=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 c=Qa(s),m=Ce(t),f=c*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let b=this._ctx.createGain();b.gain.value=a;let v=o-r,x=this._ctx.currentTime,_={scheduledAt:x,elapsed:v,rate:c},R=Si(this._ctx,t,p,b,_);if(b.connect(this.resolveDestination(t,x,o,c)??this._masterGain),Ai(t,b,_),this._rate=c,this._rateAnchorCtx=x,this._rateAnchorComp=o,!jx(p,{elapsed:v,mediaStart:i,scheduledAt:x,globalRate:c,mediaRate:m,clipDuration:u}))return p.disconnect(),R?.dispose(),b.disconnect(),null;let T=t.muted;t.muted=!0,$x(t,T);let M={fx:R,el:t,sourceNode:p,sourceKind:"buffer",gainNode:b,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:T,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(u)&&u>0};return this._activeSources.push(M),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,M,t,T)),M}catch(c){return L("webAudioTransport.schedule",c),null}}setRate(t){let n=Qa(t);if(n===this._rate)return!1;this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let r of this._activeSources)try{fr(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){L("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>fr(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{fr(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}fr(t)?t.el.muted=t.priorMuted:t.el.volume=t.priorVolume}this._activeSources=[],this._paused=!0}setVolume(t){this._masterVolume=Math.max(0,Math.min(1,t)),this.applyMasterGain()}setElementVolume(t,n){let r=Le(n);for(let i of this._activeSources)if(i.el===t)try{i.sourceKind==="media-element"&&(i.el.volume=1),i.gainNode.gain.value=r}catch(o){L("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._masterGain&&(this._masterGain.gain.value=this._masterMuted?0:this._masterVolume)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t&&fr(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll();for(let t of this._groups.values())t.dispose();if(this._groups.clear(),this._bufferCache.clear(),this._failedSrcs.clear(),this._mediaElementSources=new WeakMap,this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null,this._masterVolume=1,this._masterMuted=!1}};var xf="data-hf-studio-manual-edit-gesture";function yf(e){return!Number.isInteger(e.tick)||e.tick<=0||e.tick%60!==0?!1:!(e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2)}var Kx=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function vf(e){return Math.max(0,Math.min(1,e))}function Sf(e){let t=Kx.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?vf(n):null}function Af(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=vf(t),r=12-n*6,i=Math.PI*2*(1+n*1.5),o=1-Math.exp(-r)*Math.cos(i);return(1-Math.exp(-r*e)*Math.cos(i*e))/o}var Yx=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,Xx=Math.PI*2;function Jx(e){let t=Yx.exec(e);if(!t)return null;let n=Number(t[1]);if(!Number.isSafeInteger(n)||n<1)return null;let r=t[2];if(r!=="easeOut"&&r!=="easeInOut"&&r!=="anticipate"&&r!=="uniform")return null;if(t[3]===void 0)return{wiggles:n,type:r};let i=Number(t[3]);return!Number.isFinite(i)||i<0||i>1?null:{wiggles:n,type:r,amplitude:i}}function Qx(e,t,n,r){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let i=r??(n==="easeInOut"?.08:n==="uniform"?.14:n==="anticipate"?.12:.16),o=n==="easeInOut"?i*Math.sin(Math.PI*e):n==="uniform"?i:i*(1-e);return e+(n==="anticipate"?-1:1)*o*Math.sin(Xx*t*e)}function Ef(e,t){let n=Jx(e);if(!n)return null;let r=`${n.wiggles}:${n.type}:${n.amplitude??"default"}`,i=t?.get(r);if(i)return i;let o=a=>Qx(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var Zx=24,wf=e=>e>=1?1:0,ey=e=>e,wi=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,ty=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${wi}\\s*,\\s*${wi}\\s+${wi}\\s*,\\s*${wi}\\s+1\\s*,\\s*1\\s*$`,"i");function Cf(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function ny(e,t,n,r,i){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let o=0,a=1;for(let l=0;l<Zx;l+=1){let s=(o+a)/2;Cf(s,t,r)<e?o=s:a=s}return Cf((o+a)/2,n,i)}function ry(e){let t=ty.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),o=Number(t[4]);return Math.min(n,i)<0||Math.max(n,i)>1?null:a=>ny(a,n,r,i,o)}function iy(e,t){if(!e.startsWith("spring("))return null;let n=Sf(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>Af(o,n);return t.set(n,i),i}function oy(e,t){if(!e.startsWith("custom(")||!e.endsWith(")"))return null;let n=e.slice(7,-1),r=t.get(n);if(r)return r;let i=ry(n);return i&&t.set(n,i),i}function _f(e){if(e.__hfCustomEaseInstalled)return!0;let t=e.parseEase;if(!t)return!1;let n=new Map,r=new Map,i=new Map,o=s=>typeof s!="string"?null:s==="hold"?wf:Ef(s,i)??iy(s,r)??oy(s,n),a=(s,u,c=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ne("custom_ease_parse_failed",{ease:s}),t.call(u,s,...c)??ey)};e.parseEase=function(u,...c){return a(u,this,c)};let l=e.registerEase;if(typeof l=="function"){l("hold",wf);let s=u=>{let c=m=>m;c.config=(...m)=>a(`${u}(${m.join(",")})`,e),l(u,c)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var _i=new Map,Ci=new Map,Tf=()=>{};function Za(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function es(e,t){let n=Ci.get(e);if(n)try{n(t)}catch(r){Tf(e,r)}}function Rf(e){Tf=e}function Ti(e,t){Za(e)&&(_i.set(e,t),es(e,t))}function Ri(e){Za(e)&&(_i.delete(e),es(e,void 0))}function kf(e,t){if(!Za(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);return Ci.set(e,t),_i.has(e)&&es(e,_i.get(e)),()=>{Ci.get(e)===t&&Ci.delete(e)}}var ts="data-hf-authored-duration",ns="data-hf-authored-end",Mf=!1;function at(e){if(e){if(typeof e.pause!="function"){Mf||(Mf=!0,Ne("timeline_missing_pause",{}));return}try{e.pause()}catch(t){L("runtime.timeline.pause",t)}}}function ay(){let e=window.__HF_EXPORT_RENDER_SEEK_CONFIG,t=e?.fps,n=e?.fpsSource,r=Number(t);return!e||t==null?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"missing"}:!Number.isFinite(r)||r<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"invalid"}:{fps:r,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:t,fallbackReason:e.fpsFallbackReason}}function Ff(){let e=gu();Is(xe),Rf((d,h)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:d,message:h instanceof Error?h.message:String(h)})}),ci(document),Na(document),kl(document);let t=ay();e.canonicalFps=t.fps??e.canonicalFps,Ls(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:t.source,rawFpsSource:t.rawFpsSource,rawFps:t.rawFps,fallbackReason:t.fallbackReason});let n=null,r=null,i=null,o=[],a=new Set,l=null,s=new Set,u=(d,h,g)=>{s.has(d)||(s.add(d),Ne(h,g))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){L("runtime.init.site1",d)}let c=new vi;e.transportClock=c;let m=new Ei,f=!1;m.init().then(d=>{f=d}),window.__hf=window.__hf||{};let p=d=>d.closest("[data-hidden]")!==null||Or(d.ownerDocument,d),b=()=>{let d=window.gsap,h=window;if(!(!d?.registerPlugin||h.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(g){u("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),L("runtime.autoMarker.install",g)}},v=()=>{let d=window.gsap;if(!d){u("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{_f(d)||u("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){u("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),L("runtime.customEase.install",h)}};b(),v(),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");try{Ws(document)}catch(d){L("runtime.init.cssVariables",d)}window.__timelines=window.__timelines||{};let x=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(g=>!g.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,h=x()?.getAttribute("data-composition-id")??"root",g={};if(d.length===1)g[h]=d[0];else for(let y=0;y<d.length;y++)g[`tl-${y}`]=d[y];window.__timelines=g}let _=x();_&&!_.hasAttribute("data-start")&&_.setAttribute("data-start","0");let R=d=>{o.push(d)},T=(d,h,g)=>{let y=g??`${d}:${JSON.stringify(h)}`;a.has(y)||(a.add(y),xe({source:"hf-preview",type:"diagnostic",code:d,details:h}))},M=d=>{let h={scale:1,focusX:960,focusY:540},g=[],y=[],w={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:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>g,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:()=>({...w,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},F=1/60,E=.75,S=.05,A=100,C=240,N=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??"")}},I=d=>{let h=d.toLowerCase();return h.includes("cannot read properties of null")||h.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:h.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:h.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},W=d=>{if(d==null||d.trim()==="")return null;let h=Number.parseFloat(d);return!Number.isFinite(h)||h<=0?null:`${h}px`},B=()=>x(),oe=()=>{let d=B();if(!d)return;let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g),h&&d.style.setProperty("--comp-width",h),g&&d.style.setProperty("--comp-height",g)},k=()=>{let d=B(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(g=>g.hasAttribute("data-duration")||g.hasAttribute("data-end"));for(let g of h){if(d&&g===d)continue;let y=g.getAttribute("data-duration"),w=g.getAttribute("data-end");y!=null&&!g.hasAttribute(ts)&&g.setAttribute(ts,y),w!=null&&!g.hasAttribute(ns)&&g.setAttribute(ns,w),g.removeAttribute("data-duration"),g.removeAttribute("data-end")}},V=()=>{let d=B();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let h=W(d.getAttribute("data-width")),g=W(d.getAttribute("data-height"));h&&(d.style.width=h),g&&(d.style.height=g);let y=Array.from(d.children);for(let w of y){let D=w.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!w.hasAttribute("data-start")||w.hasAttribute("data-hf-autostamped"))continue;let U=(w.style.top==="0px"||w.style.top==="0")&&(w.style.left==="0px"||w.style.left==="0")&&w.style.width==="100%"&&w.style.height==="100%",ne=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(w.style.transform);if(U&&ne&&!w.hasAttribute("data-width")&&!w.hasAttribute("data-height")){let te=w.style.top,Tt=w.style.left,ye=w.style.width,gn=w.style.height;w.style.top="",w.style.left="",w.style.width="",w.style.height="";let ae=window.getComputedStyle(w);ae.top!=="auto"||ae.bottom!=="auto"||ae.left!=="auto"||ae.right!=="auto"||ae.width!=="0px"||ae.height!=="0px"||(w.style.top=te,w.style.left=Tt,w.style.width=ye,w.style.height=gn)}let $=window.getComputedStyle(w),de=$.position;if(de!=="absolute"&&de!=="fixed"&&(w.style.position="absolute"),!!w.style.top||!!w.style.bottom||$.top!=="auto"||$.bottom!=="auto"||(w.style.top="0"),!!w.style.left||!!w.style.right||$.left!=="auto"||$.right!=="auto"||(w.style.left="0"),D!=="audio"){let te=W(w.getAttribute("data-width")),Tt=W(w.getAttribute("data-height")),ye=$.width!=="0px"&&$.width!=="auto",gn=$.height!=="0px"&&$.height!=="auto";te?!w.style.width&&!ye&&(w.style.width=te):!w.style.width&&$.width==="0px"&&(w.style.width="100%"),Tt?!w.style.height&&!gn&&(w.style.height=Tt):!w.style.height&&$.height==="0px"&&(w.style.height="100%")}}},Q=(d,h=0,g)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:g?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,h),G=(d,h)=>mt({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),H=d=>{let h=d.closest("[data-composition-id]"),g=h?Q(h,0):null,y=h?G(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:g,inheritedDuration:y}},z=d=>{let h=H(d),g=h.inheritedStart??0,y=Bt(d.getAttribute("data-start"));if(d.hasAttribute("data-hf-auto-start")||y==null||g<=0)return Q(d,g);let w=h.inheritedDuration,D=w!=null&&w>0?g+w:null;return y>=g&&(D==null||y<D)?y:g+y};window.__hfResolveMediaStartSeconds=z,o.push(()=>{window.__hfResolveMediaStartSeconds===z&&delete window.__hfResolveMediaStartSeconds});let X=(d,h)=>{let g=d.tagName.toLowerCase();if(g==="script"||g==="style"||g==="link"||g==="meta")return!1;let w=g==="video"||g==="audio"?z(d):Q(d,0),D=G(d),U=d.getAttribute("data-composition-id");if(U){let $=(window.__timelines??{})[U],de=null;if($&&typeof $.duration=="function"){let Me=Number($.duration());Number.isFinite(Me)&&Me>0&&(de=Me)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(ts)||d.hasAttribute(ns))&&(D==null||D<=0)&&de!=null&&(D=de)}let ne=D!=null&&D>0?w+D:Number.POSITIVE_INFINITY;return h>=w&&(Number.isFinite(ne)?h<ne:!0)},we=!!document.querySelector("[data-composition-src]"),q=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of d){let g=h.getAttribute("data-composition-id");if(g&&h.children.length===0&&document.querySelector(`template#${CSS.escape(g)}-template`)){q=!0;break}}}let P=!we&&!q,O=d=>{if(!d||typeof d.duration!="function")return null;try{let h=Number(d.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},j=d=>typeof d=="number"&&Number.isFinite(d)&&d>F,le=d=>{let h=ve(d.getAttribute("data-duration"));return h!=null&&h>0?h:Number.isFinite(d.duration)?Ze(d,d.duration):null},ee=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let h=0;for(let g of d){let y=z(g);if(!Number.isFinite(y))continue;let w=le(g);w==null||w<=F||(h=Math.max(h,Math.max(0,y)+w))}return h>F?h:null},K=()=>{let d=B();if(!d)return null;let h=window.__timelines??{},g=mt({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),y=0,w=ve(d.getAttribute("data-duration"));w!=null&&w>0&&(y=w);let D=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let U of D){if(!(U instanceof Element)||U.parentElement?.closest("[data-composition-id]")!==d)continue;let $=g.resolveStartForElement(U,0),de=g.resolveDurationForElement(U);!Number.isFinite($)||de==null||de<=0||(y=Math.max(y,Math.max(0,$)+de))}return y>F?y:null},Y=()=>{let d=ee();return typeof d!="number"||!Number.isFinite(d)||d<=F?null:d},Ve=d=>j(d)?Math.max(F,d*E):F,Fe=()=>{let d=0;for(let h of e.deterministicAdapters){let g=h.getInferredDurationSeconds;if(typeof g!="function")continue;let y=null;try{y=g()}catch(w){L("runtime.init.adapterDuration",w)}typeof y=="number"&&Number.isFinite(y)&&y>0&&(d=Math.max(d,y))}return d>F?d:null},Re=(d,h=0)=>{let g=O(d),y=Y(),w=K(),D=Fe(),U=Math.max(y??0,w??0,D??0),ne=Number.isFinite(h)&&h>F?h:0,$=0;return j(g)?$=Math.max(g,U,ne):j(U)?$=Math.max(U,ne):$=ne,$>0?Math.max(0,$):0},ze=()=>{let d=window.__timelines??{},h=ae=>{let re=Object.entries(d).filter(se=>!!se[1]&&typeof se[1].play=="function"&&typeof se[1].pause=="function");if(re.length!==1)return{timeline:null};let he=re[0];if(!he)return{timeline:null};let[be,fe]=he;return{timeline:fe,selectedTimelineIds:[be],selectedDurationSeconds:O(fe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ae,soleTimelineId:be}}}},g=mt({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),y=Y(),w=K(),D=Math.max(y??0,w??0)||null,U=Ve(D),ne=ae=>{let re=document.querySelector(`[data-composition-id="${CSS.escape(ae)}"]`);return re?g.resolveStartForElement(re,0):0},$=ae=>{let re=window.gsap;if(!re||typeof re.timeline!="function")return null;let he=re.timeline({paused:!0});for(let be of ae)he.add(be.timeline,ne(be.compositionId));return he},de=(ae,re)=>{if(!j(ae))return null;let he=window.gsap;if(!he||typeof he.timeline!="function")return null;let be=he.timeline({paused:!0});if(re)try{be.add(re,0)}catch(se){L("runtime.init.site2",se)}let fe=be;if(typeof fe.to=="function")try{fe.to({},{duration:ae})}catch(se){L("runtime.init.site3",se)}return be},Ge=(ae,re)=>{let he=ae;if(typeof he.getChildren!="function")return[];try{let be=he.getChildren(!0,!0,!0)??[];if(!Array.isArray(be))return[];let fe=[];for(let se of re)if(!be.some(Qe=>Qe===se.timeline))try{let Qe=ne(se.compositionId);ae.add(se.timeline,Qe),fe.push(se.compositionId)}catch(Qe){L("runtime.init.site4",Qe)}return fe}catch{return[]}},Me=B(),J=Me?.getAttribute("data-composition-id")??null;if(!J)return h("root_missing_composition_id");let te=d[J]??null,ye=(()=>{if(!Me)return[];let ae=new Set,re=Array.from(Me.querySelectorAll("[data-composition-id]")),he=[];for(let be of re){let fe=be.getAttribute("data-composition-id");if(!fe||fe===J||ae.has(fe))continue;ae.add(fe);let se=d[fe]??null;if(!se||typeof se.play!="function"||typeof se.pause!="function")continue;let lt=O(se);he.push({compositionId:fe,timeline:se,durationSeconds:lt??0})}return he})(),gn=ae=>{for(let re of ae){let he=re.timeline;if(typeof he.paused=="function")try{he.paused(!1)}catch(be){L("runtime.init.site5",be)}}};if(ye.length>0&&gn(ye),te){let ae=ye.length>0?Ge(te,ye):[];if((ye.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+J+"\'])"))&&(Pi=!0),ae.length>0)try{let fe=te.time();te.seek(fe,!1)}catch{}let re=O(te);if(!j(re)&&ye.length>0){let fe=ye.map(Lm=>Lm.compositionId),se=$(ye),lt=O(se);if(se&&j(lt))return{timeline:se,selectedTimelineIds:fe,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:U,selectedDurationSeconds:lt,mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:fe,autoNestedChildren:ae}}};let Qe=de(D??0,te),Ki=O(Qe);if(Qe&&j(Ki))return{timeline:Qe,selectedTimelineIds:[J],selectedDurationSeconds:Ki,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Ki,selectedTimelineIds:[J],autoNestedChildren:ae}}}}if(!j(re)&&ye.length===0){let fe=de(D??0,te),se=O(fe);if(fe&&j(se))return{timeline:fe,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:J,rootDurationSeconds:re,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:se,selectedTimelineIds:[J]}}}}let he=ve(Me?.getAttribute("data-duration")),be=Math.max(j(he)?he:0,w??0);if(be>0&&j(be)&&j(re)&&be>=re+.5){let fe=te;if(typeof fe.to=="function")try{fe.to({},{duration:0},be)}catch(lt){L("runtime.init.site6",lt)}let se=O(te);if(j(se))return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:se,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:J,rootDurationSeconds:re,rootDeclaredDur:he,authoredCompositionDurationFloorSeconds:w,newDur:se}}}}return{timeline:te,selectedTimelineIds:[J],selectedDurationSeconds:re,mediaDurationFloorSeconds:y,diagnostics:ae.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:J,selectedDurationSeconds:re,autoNestedChildren:ae}}:void 0}}if(ye.length>0){let ae=ye.map(be=>be.compositionId),re=$(ye),he=O(re);if(re)return{timeline:re,selectedTimelineIds:ae,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:J,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:U,selectedDurationSeconds:he,mediaDurationFloorSeconds:y,selectedTimelineIds:ae}}}}return h("root_composition_id_unmatched_in_registry")},Pi=!1,fm=d=>{let h=window.gsap,g=d;if(!(!g||typeof g.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let y of g.getChildren(!0,!0,!0)){let w=y,D=w.timeline;if(!D||!("_ease"in D)||typeof D._ease=="function")continue;let U=w.vars?.keyframes,$=(U&&!Array.isArray(U)?U.ease:void 0)??w.vars?.ease??"none";try{let de=h.parseEase($);typeof de=="function"&&(D._ease=de)}catch(de){Ne("keyframe_ease_repair_failed",{ease:typeof $=="string"?$:String($)}),L("runtime.keyframeEase.repair",de)}}},dn=()=>{if(v(),!P)return!1;let d=e.capturedTimeline,h=O(d),g=j(h);if(d&&g&&Pi)return!1;let y=ze();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(e.playbackRate),!1;e.capturedTimeline=y.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),fm(e.capturedTimeline);let w=Re(e.capturedTimeline,0);if(w<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),at(e.capturedTimeline)),w>0){try{c.setDuration(w)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let U=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(U,!1),at(e.capturedTimeline)}let D=window.__hfStudioManualEditsApply;typeof D=="function"&&D(),ci(document)}if(y.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let D=B(),U=w>0?w:0,ne=String(U>0?U:1),$=new Set,de=J=>J.tagName.toLowerCase()===Wt,Ge=new Set(document.querySelectorAll("[data-start]")),Me=J=>{let te=J.parentElement;for(;te&&te!==D;){if(Ge.has(te))return!0;te=te.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let J of e.capturedTimeline.getChildren(!0))if(typeof J.targets=="function")for(let te of J.targets())te instanceof HTMLElement&&te!==D&&(de(te)||te.hasAttribute("data-start")||Me(te)||$.has(te)||($.add(te),te.setAttribute("data-start","0"),te.setAttribute("data-duration",ne),te.setAttribute("data-hf-autostamped","1")))}catch{}if(D instanceof HTMLElement)for(let J of D.querySelectorAll("[id]"))J instanceof HTMLElement&&J!==D&&(J.hasAttribute("data-start")||Me(J)||$.has(J)||J.tagName==="SCRIPT"||J.tagName==="STYLE"||J.tagName==="LINK"||de(J)||($.add(J),J.setAttribute("data-start","0"),J.setAttribute("data-duration",ne),J.setAttribute("data-hf-autostamped","1")))}for(let D of fn)hr.delete(D),xs(D);return!0};window.__hfForceTimelineRebind=()=>{Pi=!1,dn(),Ui(e.currentTime)};let mm=()=>{let d=B();if(!(d instanceof HTMLElement))return;let h=d.getBoundingClientRect(),g=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),w=window.getComputedStyle(d),D=Number.isFinite(g)&&g>0&&Number.isFinite(y)&&y>0,U=h.width<=0||h.height<=0||d.clientWidth<=0||d.clientHeight<=0;!D||!U||T("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:g,declaredHeight:y,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:w.display,visibility:w.visibility,overflow:w.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},pm=()=>{e.tornDown||(l!=null&&window.cancelAnimationFrame(l),l=window.requestAnimationFrame(()=>{l=null,mm()}))},hm=()=>{r=d=>{let h=N(d.error??d.message).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:g.code,details:{category:g.category,message:h,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},i=d=>{let h=N(d.reason).slice(0,C);if(!h)return;let g=I(h);xe({source:"hf-preview",type:"diagnostic",code:`${g.code}_unhandled_rejection`,details:{category:`${g.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",r),window.addEventListener("unhandledrejection",i)},gm=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let g of d){let y=()=>{if(!(g instanceof Element))return;let w=g.tagName.toLowerCase(),D=g.getAttribute("src")??g.getAttribute("href")??g.getAttribute("poster")??null,U=w==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";T(U,{tagName:w,assetUrl:D,currentSrc:(g instanceof HTMLImageElement||g instanceof HTMLMediaElement)&&g.currentSrc||null,readyState:g instanceof HTMLMediaElement?g.readyState:null,networkState:g instanceof HTMLMediaElement?g.networkState:null},`${U}:${w}:${D??"unknown"}`)};g.addEventListener("error",y),R(()=>{g.removeEventListener("error",y)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let g=Array.from(h).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);g.length!==0&&T("runtime_font_load_issue",{failedFamilies:g,totalFaces:Array.from(h).length},`runtime-font-load-issue:${g.join("|")}`)}).catch(()=>{})},bm=(d,h)=>{if(!d.timeline)return!1;let g=e.capturedTimeline;if(g&&g===d.timeline)return!1;let y=Math.max(0,e.currentTime||0),w=e.isPlaying;e.capturedTimeline=d.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{at(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(y,!1),w&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(D){L("runtime.init.site7",D)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Et=null,fs=!1,ms=!1,fn=new Set,hr=new WeakMap,gr=()=>{e.tornDown||(Et!=null&&window.clearTimeout(Et),Et=window.setTimeout(()=>{if(e.tornDown||(Et=null,ms&&window.__HF_EXPORT_RENDER_SEEK_CONFIG))return;let d=ze();if(!d.timeline||!j(d.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){dn()&&(wt(),ke(!0));return}if(fs)return;let g=O(e.capturedTimeline),y=d.selectedDurationSeconds??O(d.timeline);j(y)&&(!j(g)||y>=g+S)&&bm(d,"manual")&&(fs=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:g??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),wt(),ke(!0))},A))},ps=d=>{d.currentTarget instanceof HTMLMediaElement&&Ol(d.currentTarget)},hs=d=>{d.currentTarget instanceof HTMLMediaElement&&Hl(d.currentTarget)},gs=d=>{d instanceof HTMLAudioElement&&gf(d)&&ln(d,sn(d))},bs=d=>{let h=d.currentTarget;h instanceof HTMLMediaElement&&gs(h)},xm=()=>{for(let d of fn)d.removeEventListener("loadedmetadata",gr),d.removeEventListener("durationchange",gr),d.removeEventListener("loadedmetadata",ps),d.removeEventListener("loadedmetadata",bs),d.removeEventListener("error",hs);fn.clear()},Oi=()=>{if(e.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let h of d){if(fn.has(h))continue;fn.add(h);let g=Number.parseFloat(h.dataset.volume??"");Number.isFinite(g)&&(h.volume=Math.max(0,Math.min(1,g))),h.addEventListener("loadedmetadata",gr),h.addEventListener("durationchange",gr),h.addEventListener("loadedmetadata",bs),gs(h),h.addEventListener("loadedmetadata",ps),h.addEventListener("error",hs),Pl(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),xs(h)}},xs=d=>{hr.has(d)||gl(d,e.capturedTimeline,Re(e.capturedTimeline,0),hr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Hi=new WeakMap,ys=d=>{let h=Hi.get(d);if(h!==void 0)return h;let g=window.getComputedStyle(d).position,y=g==="static"||g==="relative"||g==="sticky";return Hi.set(d,y),y},Gi=new WeakMap,ym=d=>{let h=Gi.get(d);if(h!==void 0)return h;let g=d.querySelector("[data-start]")===null;return Gi.set(d,g),g},vm=()=>{Hi=new WeakMap,Gi=new WeakMap},Bi=new WeakMap,br=new WeakSet,xr=!1,vs=d=>d.matches("audio[data-start]")||d.querySelector("audio[data-start]")!==null,Ss=new WeakMap,yr=!0,Sm=()=>{if(yr){yr=!1;for(let d of document.querySelectorAll(Wt)){let h=d.hasAttribute("data-hidden");Ss.get(d)!==h&&(Ss.set(d,h),d.id&&m.setGroupMuted(d.id,h))}}},Ui=(d,h=Array.from(document.querySelectorAll("[data-start]")))=>{let g=B();for(let y of h){if(!(y instanceof HTMLElement))continue;if(y.hasAttribute("data-hidden")){br.has(y)||(Bi.set(y,y.style.getPropertyValue("display")),br.add(y),vs(y)&&(xr=!0),yr=!0),y.style.display="none",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,!1);continue}if(br.has(y)){let D=Bi.get(y);D?y.style.display=D:y.style.removeProperty("display"),Bi.delete(y),br.delete(y),vs(y)&&(xr=!0),yr=!0}let w=X(y,d);if(w){let D=y.parentElement;for(;D&&D!==g;){if(D instanceof HTMLElement&&D.hasAttribute("data-start")&&!X(D,d)){w=!1;break}D=D.parentElement}}y.style.visibility=w?"visible":"hidden",(y instanceof HTMLVideoElement||y instanceof HTMLImageElement)&&n?.setSourceVisibility(y,w),w?ys(y)&&y.style.removeProperty("display"):ys(y)&&ym(y)&&(y.style.display="none")}xr&&c.isPlaying()&&(m.stopAll(),$i()),xr=!1,Sm()},Pe=()=>{let d=Fl({shouldIncludeElement:g=>g.hasAttribute("data-start")||!!H(g).compositionRoot,resolveStartSeconds:g=>z(g),resolveDurationSeconds:g=>{let y=H(g),w=z(g),D=y.inheritedStart!=null&&y.inheritedDuration!=null&&y.inheritedDuration>0?Math.max(0,y.inheritedStart+y.inheritedDuration-w):null,U=Number.isFinite(g.duration)?Ze(g,g.duration):null,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:null;return Ml({isVideo:g.tagName==="VIDEO",sourceDuration:U,hostRemaining:D,explicitDuration:$})}});for(let g of d.mediaClips){let y=hr.get(g.el);y&&(g.volumeKeyframes=y)}let h=e.mediaForceSyncNextTick;h&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||Nl({clips:d.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:h,onElementVolume:(g,y,w)=>m.setElementVolume(g,w),isWebAudioOwned:g=>m.ownsElement(g),isWebAudioRouted:g=>m.routesElement(g),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),Ui(e.currentTime)},ke=d=>{let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),g=Date.now();(d||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||g-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=g,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Wi="",As=0,Am=()=>{let d="";for(let h of document.querySelectorAll("[data-start]"))d+=`${h.id}:${h.tagName}|`;return d},wt=()=>{k(),oe(),V();let d=B();if(d){let y=W(d.getAttribute("data-width")),w=W(d.getAttribute("data-height")),D=y?parseInt(y,10):0,U=w?parseInt(w,10):0;D>0&&U>0&&xe({source:"hf-preview",type:"stage-size",width:D,height:U})}dn();let h=Su({canonicalFps:e.canonicalFps});window.__clipManifest=h;let g=Am();if(Wi!==g&&vm(),!window.__clipTree||Wi!==g){let y=window;window.__clipTree=bu({startResolver:mt({timelineRegistry:y.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:y.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Wi=g}xe(h),pm()},Vi=d=>typeof d=="number"&&Number.isFinite(d)&&d>0?d:0,Em=d=>{let h=Vi(Number(d));if(h<=0)return;let g=B(),y=Vi(ve(g?.getAttribute("data-duration"))),w=Math.max(As,Vi(c.getDuration()),y);h<=w||(As=h,g?.setAttribute("data-duration",String(h)),c.setDuration(h),wt(),ke(!0))},Oe=(d,h=0)=>{for(let g of e.deterministicAdapters){try{d==="discover"&&g.discover(),d==="pause"&&g.pause(),d==="play"&&g.play&&g.play()}catch(y){L("runtime.init.site8",y)}if(d==="discover")try{g.seek({time:h,suppressEvents:!0})}catch(y){L("runtime.init.site9",y)}}},Ct=()=>{window.__renderReady=!1},mn=null,pn=!0,wm=()=>{let d=[];for(let h of e.deterministicAdapters){let g=h.getReadyPromise;if(typeof g=="function")try{let y=g();y&&d.push(y)}catch(y){L("runtime.init.adapterReady",y)}}return d},Cm=()=>{let d=wm();if(d.length===0)return mn=null,pn=!0,!0;let h=d[0];if(!h)return!0;let g=d.length===1?h:Promise.all(d);return g!==mn&&(mn=g,pn=!1,Promise.resolve(g).then(()=>{mn===g&&(pn=!0,Ct())},y=>{mn===g&&(pn=!0,L("runtime.init.adapterReady",y),Ct())})),pn};if(P)Ca();else{let d={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:W,onDiagnostic:({code:h,details:g})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:g})}};fd(d).then(()=>dd(d)).finally(()=>{P=!0,Oi(),gm(),Ca(),Na(document),Ct()})}let vr=fu({postMessage:d=>xe(d)});vr.installPickerApi(),Ui(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let qe=Jd();n=qe,R(()=>{qe.destroy(),n=null});let zi=d=>{let h=Number(d);!Number.isFinite(h)||h<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,h)),e.mediaForceSyncNextTick=!0,e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let g=document.querySelectorAll("video, audio");for(let y of g)if(y instanceof HTMLMediaElement)try{y.playbackRate=e.playbackRate}catch(w){L("runtime.init.site10",w)}},Es={play:()=>{let d=e.capturedTimeline;if(c.isPlaying())return;let h=Re(d,0);if(h>0)c.setDuration(h),c.reachedEnd()&&(c.seek(0),e.currentTime=0,_t(0));else{let g=B(),y=Number(g?.getAttribute("data-duration")??0);y>0&&c.setDuration(y)}at(d),c.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,ks(c.now()),f&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&$i(),Oe("play"),Pe(),qe.redraw(),ke(!0))},pause:()=>{if(!c.isPlaying())return;m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1,e.currentTime=c.now(),e.mediaForceSyncNextTick=!0,ks(e.currentTime);let d=e.capturedTimeline;at(d),Oe("pause"),Pe(),qe.redraw(),ke(!0)},seek:(d,h)=>{let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource();let y=c.isPlaying();y&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let w=e.capturedTimeline;if(at(w),_t(e.currentTime),Oe("pause"),h?.keepPlaying&&y){Es.play();return}Pe(),qe.redraw(),ke(!0)},renderSeek:(d,h)=>{ms=!0;let g=jt(Math.max(0,Number(d)||0),e.canonicalFps);m.stopAll(),c.detachAudioSource(),c.isPlaying()&&c.pause(),c.seek(g),e.currentTime=c.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,_t(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),Oe("pause"),Pe(),qe.redraw(),ke(!0)},getTime:()=>c.now(),getDuration:()=>{let d=c.getDuration();return Number.isFinite(d)?d:0},isPlaying:()=>c.isPlaying(),setPlaybackRate:d=>{zi(d),c.setRate(e.playbackRate),Ms()},getPlaybackRate:()=>e.playbackRate},ws=Re(e.capturedTimeline,0);ws>0&&c.setDuration(ws);let He=hu({getTimeline:()=>e.capturedTimeline,setTimeline:d=>{e.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:d=>{e.isPlaying!==d&&(e.mediaForceSyncNextTick=!0),e.isPlaying=d},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:zi,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(d,h)=>{e.currentTime=Math.max(0,Number(d)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,Pe()},onStatePost:ke,onDeterministicSeek:(d,h)=>{for(let g of e.deterministicAdapters)if(!(g.name==="gsap"&&e.capturedTimeline))try{g.seek({time:Number(d)||0,suppressEvents:h?.suppressEvents})}catch(y){L("runtime.init.site11",y)}},onDeterministicPause:()=>Oe("pause"),onDeterministicPlay:()=>Oe("play"),onRenderFrameSeek:()=>{qe.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Re(e.capturedTimeline,0),transport:Es});window.__player=M(He),window.__playerReady=!0,Ne("composition_loaded",{duration:He.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[ll(),zs({resolveStartSeconds:d=>Q(d,0)}),$s(),Ks(),Js(),Qs(),Zs(),el(),tl(),nl(),rl(),qs({getTimeline:()=>e.capturedTimeline})],al(),sl(),window.__hfReseekGpu=d=>{let h=Math.max(0,Number(d)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,Rr(h)},window.__hfWaitForSeekCompletion=oo,o.push(()=>{window.__hfWaitForSeekCompletion===oo&&delete window.__hfWaitForSeekCompletion}),hm(),Oi(),Oe("discover");let _m=()=>{let d=e.capturedTimeline,h=dn();e.capturedTimeline&&(h||e.capturedTimeline!==d||!He._timeline)&&(He._timeline=e.capturedTimeline);let g=Re(e.capturedTimeline,0);if(g>0&&c.setDuration(g),Oe("discover",e.currentTime),!e.capturedTimeline){let y=window.__timelines??{},w=Object.keys(y).filter(D=>y[D]);if(w.length>0){let U=B()?.getAttribute("data-composition-id")??null;T("root_timeline_unbound_registry_present",{reason:U?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:U,registeredTimelineKeys:w},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(U?`Root data-composition-id is "${U}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${w.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${U??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,wt(),ke(!0)},Pt=null,Tm=()=>{if(Pt)return;let d=()=>{window.removeEventListener("hf-timelines-built",d),Pt=null,Ct()};Pt=d,window.addEventListener("hf-timelines-built",d)};R(()=>{Pt&&(window.removeEventListener("hf-timelines-built",Pt),Pt=null)}),Ct=()=>{if(!P){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,Tm();return}if(Oe("discover",e.currentTime),!Cm()){window.__renderReady=!1;return}_m()},Ct(),P&&setTimeout(()=>{Ct()},0);let Sr=0,qi=!1,Rm=(d,h,g,y)=>{try{let w=y?.suppressEvents===!0;at(d),typeof d.totalTime=="function"?d.totalTime(h,w):d.seek(h,w)}catch(w){L(g,w)}},km=(d,h)=>{let g=window.__timelines??{},y=B()?.getAttribute("data-composition-id")??null;for(let[w,D]of Object.entries(g)){if(!D||w===y)continue;let U=document.querySelector(`[data-composition-id="${CSS.escape(w)}"]`);if(!U)continue;let ne=Q(U,0);if(!Number.isFinite(ne))continue;let $=O(D),de=je(U)+Math.max(0,d-ne)*Ce(U),Ge=Math.max(0,$!=null&&$>0?Math.min($,de):de);Rm(D,Ge,"runtime.init.transport.childTimeline",h)}},Cs=d=>{let h=window.__timelines??{};for(let g of Object.values(h))if(!(!g||g===d))try{g.play()}catch(y){L("runtime.init.activateSiblings",y)}},_s=d=>typeof d=="object"&&d!==null,hn=new WeakMap,Mm=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Ts=(d,h)=>{let g=d[h];if(typeof g!="function")return null;try{let y=Number(g.call(d));return Number.isFinite(y)?y:null}catch(y){return L("runtime.init.gsapCallbackDuration",y),null}},Fm=d=>{let h=hn.get(d);if(h!=null)return h;if(!("getChildren"in d)||typeof d.getChildren!="function")return!1;let g;try{g=d.getChildren(!0,!0,!0)}catch(y){return L("runtime.init.gsapCallbackChildren",y),hn.set(d,!1),!1}if(!Array.isArray(g))return hn.set(d,!1),!1;for(let y of g){if(!_s(y))continue;let w=y.vars;if(!_s(w)||!Mm.some($=>typeof w[$]=="function"))continue;let ne=Ts(y,"totalDuration")??Ts(y,"duration");if(ne!=null&&ne<=1e-6)return hn.set(d,!0),!0}return hn.set(d,!1),!1};function _t(d,h){let g=e.capturedTimeline,y=h?.suppressEvents===!0;if(g){h?.activateChildren&&Cs(g);let w=g,D=d;if(typeof w.totalDuration=="function")try{let U=Number(w.totalDuration());Number.isFinite(U)&&U>0&&d>U&&(D=U)}catch(U){L("runtime.init.transport.clampDuration",U)}try{typeof g.totalTime=="function"?(g.totalTime(D,y),!y&&!Fm(g)&&(g.totalTime(D+.001,!0),g.totalTime(D,!0))):g.seek(D,y)}catch(U){L("runtime.init.transport.seek",U)}}km(d,h),g&&h?.activateChildren&&Cs(g);for(let w of e.deterministicAdapters)if(!(w.name==="gsap"&&g))try{w.seek({time:d,suppressEvents:y})}catch(D){L("runtime.init.transport.adapter",D)}}let Nm=()=>{try{return document.querySelector(`[${xf}]`)!=null}catch{return!1}},Rs=()=>{if(!(e.tornDown||qi)){qi=!0;try{if(e.transportRafId=window.requestAnimationFrame(Rs),Sr+=1,yf({tick:Sr,isPlaying:c.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:c.now()})){let h=e.capturedTimeline;if(dn()){e.capturedTimeline&&!He._timeline&&(He._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==h&&at(e.capturedTimeline);let g=Re(e.capturedTimeline,0);g>0&&c.setDuration(g),wt()}}if(Sr%20===0&&wt(),Sr%30===0&&Oi(),e.capturedTimeline){let h=Re(e.capturedTimeline,0);h>0&&(!c.isPlaying()||h>=c.getDuration())&&c.setDuration(h)}if(c.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&m.isActive()&&m.context){let h=m.getTime();h>=0&&c.attachAudioSource({currentTimeSeconds:h})}else{let h=document.querySelectorAll("audio[data-start]"),g=!1;for(let y of h){if(!(y instanceof HTMLMediaElement)||!y.isConnected||p(y))continue;let w=Number.parseFloat(y.dataset.start??""),D=ve(y.dataset.duration),U=D!=null&&D>0?w+D:1/0,ne=je(y);if(Number.isFinite(w)&&e.currentTime>=w&&e.currentTime<U){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(c.attachAudioSource({currentTimeSeconds:e.currentTime}),g=!0):(c.attachAudioSource({el:y,compositionStart:w,mediaStart:ne}),g=!0);break}}!g&&c.hasAudioSource()&&c.detachAudioSource()}else c.hasAudioSource()&&c.detachAudioSource();let d=c.now();if(e.currentTime=d,(c.isPlaying()||!Nm())&&_t(d),c.isPlaying()&&qe.redrawAnimated(),c.isPlaying()&&c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0);return}c.isPlaying()&&Pe(),ke(!1)}finally{qi=!1}}},ks=d=>{let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected)continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=ve(g.dataset.duration),D=w!=null&&w>0?y+w:1/0;if(d<y||d>=D)continue;let U=je(g),ne=d-y+U;if(ne>=0)try{g.currentTime=ne}catch{}}},$i=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let d=m.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let g of h){if(!(g instanceof HTMLMediaElement)||!g.isConnected||p(g))continue;let y=Number.parseFloat(g.dataset.start??"");if(!Number.isFinite(y))continue;let w=je(g),D=Number.parseFloat(g.dataset.volume??""),U=Number.isFinite(D)?D:1,ne=ve(g.dataset.duration),$=ne!=null&&ne>0?ne:Number.POSITIVE_INFINITY,de=g.closest("[data-composition-id]");if(de){let J=Q(de,0),te=G(de,{includeAuthoredTimingAttrs:!0});te!=null&&te>0&&($=Math.min($,Math.max(0,J+te-y)))}let Ge=sn(g);ln(g,Ge),(Ge.kind==="web-audio"?m.scheduleMediaElementPlayback(g,y,w,c.now(),U,d,e.playbackRate):Promise.resolve(null)).then(J=>{if(J||!c.isPlaying())return;let te=e.playbackRate*Ce(g),Tt=g.hasAttribute("data-fx-chain")||g.hasAttribute("data-automation");if(Math.abs(te-1)>1e-9){Ge.kind==="web-audio"&&Tt&&(g.muted=!0);return}m.decodeAudioElement(g).then(ye=>{!ye||!c.isPlaying()||m.schedulePlayback(g,ye,y,w,c.now(),U,d,e.playbackRate,$)})})}};function Ms(){m.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f&&c.isPlaying()&&m.hasBoundedActiveSources()&&(m.stopAll(),$i())}if(e.capturedTimeline){let d=Re(e.capturedTimeline,0);d>0&&c.setDuration(d),at(e.capturedTimeline)}xd(window),e.transportRafId=window.requestAnimationFrame(Rs),wt(),ke(!0),e.controlBridgeHandler=Ds({onPlay:()=>{He.play(),Ne("composition_played",{time:He.getTime()})},onPause:()=>{He.pause(),Ne("composition_paused",{time:He.getTime()})},onStopMedia:()=>{m.stopAll();let d=document.querySelectorAll("video, audio");for(let h of d)h instanceof HTMLMediaElement&&!h.paused&&h.pause()},onSeek:(d,h)=>{He.seek(d),Ne("composition_seeked",{time:d})},onSetMuted:d=>{e.bridgeMuted=d;let h=d||e.mediaOutputMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetVolume:d=>{e.bridgeVolume=d,m.setVolume(d);let h=document.querySelectorAll("video, audio");for(let g of h){if(!(g instanceof HTMLMediaElement))continue;let y=parseFloat(g.dataset.volume??""),w=Number.isFinite(y)?y:1;g.volume=kr(w*d)}},onSetMediaOutputMuted:d=>{e.mediaOutputMuted=d;let h=d||e.bridgeMuted;m.setMuted(h);let g=document.querySelectorAll("video, audio");for(let y of g)y instanceof HTMLMediaElement&&(y.muted=h||y.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{e.nativeMediaSyncDisabled!==d&&(e.nativeMediaSyncDisabled=d,e.mediaForceSyncNextTick=!0,d?(m.stopAll(),c.detachAudioSource()):Pe())},onSetWebAudioMediaDisabled:d=>{e.webAudioMediaDisabled!==d&&(e.webAudioMediaDisabled=d,e.mediaForceSyncNextTick=!0,d&&(m.stopAll(),c.detachAudioSource()),Pe())},onSetPlaybackRate:d=>{zi(d),e.transportClock&&e.transportClock.setRate(e.playbackRate),Ms()},onSetRootDuration:Em,onSetColorGrading:(d,h)=>{qe.setGrading(d,h)},onSetColorGradingCompare:(d,h)=>{qe.setCompare(d,h)},onTick:()=>{if(e.tornDown||!c.isPlaying())return;let d=c.now();if(e.currentTime=d,_t(d),c.reachedEnd()){m.stopAll(),c.detachAudioSource(),c.pause(),e.isPlaying=!1;let h=c.getDuration();Number.isFinite(h)&&(c.seek(h),e.currentTime=h,_t(h)),Oe("pause"),Pe(),ke(!0)}},onEnablePickMode:()=>vr.enablePickMode(),onDisablePickMode:()=>vr.disablePickMode(),onSetRuntimeData:Ti,onClearRuntimeData:Ri,getCanonicalFps:()=>e.canonicalFps});let ji=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),e.transportClock=null,m.destroy(),Et!=null&&(window.clearTimeout(Et),Et=null),l!=null&&(window.cancelAnimationFrame(l),l=null),xm(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),r&&(window.removeEventListener("error",r),r=null),i&&(window.removeEventListener("unhandledrejection",i),i=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),vr.disablePickMode();for(let d of e.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(h){L("runtime.init.site12",h)}e.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(h){L("runtime.init.site13",h)}for(let d of e.injectedCompStyles)try{d.remove()}catch(h){L("runtime.init.site14",h)}e.injectedCompStyles=[];for(let d of e.injectedCompLinks)try{d.remove()}catch(h){L("runtime.init.site15",h)}e.injectedCompLinks=[];for(let d of e.injectedCompScripts)try{d.remove()}catch(h){L("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,window.__hfRuntimeTeardown===ji&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=ji,e.beforeUnloadHandler=ji,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Nf=["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"],rs=[[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 sy(e){if(e<=255)return Nf[e];let t=0,n=rs.length-1;for(;t<=n;){let r=t+n>>1,i=rs[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function ly(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let u=0;u<t;){let c=e.charCodeAt(u),m=c,f=1;if(c>=55296&&c<=56319&&u+1<t){let b=e.charCodeAt(u+1);b>=56320&&b<=57343&&(m=(c-55296<<10)+(b-56320)+65536,f=2)}let p=sy(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let b=0;b<f;b++)n[u+b]=p;u+=f}if(!r)return null;let i=0;for(let u=0;u<t;u++){let c=n[u];if(c==="L"){i=0;break}if(c==="R"||c==="AL"){i=1;break}}let o=new Int8Array(t);for(let u=0;u<t;u++)o[u]=i;let a=i&1?"R":"L",l=a,s=l;for(let u=0;u<t;u++)n[u]==="NSM"?n[u]=s:s=n[u];s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="AL"?"AN":"EN":(c==="R"||c==="L"||c==="AL")&&(s=c)}for(let u=0;u<t;u++)n[u]==="AL"&&(n[u]="R");for(let u=1;u<t-1;u++)n[u]==="ES"&&n[u-1]==="EN"&&n[u+1]==="EN"&&(n[u]="EN"),n[u]==="CS"&&(n[u-1]==="EN"||n[u-1]==="AN")&&n[u+1]===n[u-1]&&(n[u]=n[u-1]);for(let u=0;u<t;u++){if(n[u]!=="EN")continue;let c;for(c=u-1;c>=0&&n[c]==="ET";c--)n[c]="EN";for(c=u+1;c<t&&n[c]==="ET";c++)n[c]="EN"}for(let u=0;u<t;u++){let c=n[u];(c==="WS"||c==="ES"||c==="ET"||c==="CS")&&(n[u]="ON")}s=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=s==="L"?"L":"EN":(c==="R"||c==="L")&&(s=c)}for(let u=0;u<t;u++){if(n[u]!=="ON")continue;let c=u+1;for(;c<t&&n[c]==="ON";)c++;let m=u>0?n[u-1]:l,f=c<t?n[c]:l,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let v=u;v<c;v++)n[v]=p;u=c-1}for(let u=0;u<t;u++)n[u]==="ON"&&(n[u]=a);for(let u=0;u<t;u++){let c=n[u];(o[u]&1)===0?c==="R"?o[u]++:(c==="AN"||c==="EN")&&(o[u]+=2):(c==="L"||c==="AN"||c==="EN")&&o[u]++}return o}function Lf(e,t){let n=ly(e);if(n===null)return null;let r=new Int8Array(t.length);for(let i=0;i<t.length;i++)r[i]=n[t[i]];return r}var uy=/[ \\t\\n\\r\\f]+/g,cy=/[\\t\\n\\r\\f]| {2,}|^ | $/;function dy(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function fy(e){if(!cy.test(e))return e;let t=e.replace(uy," ");return t.charCodeAt(0)===32&&(t=t.slice(1)),t.length>0&&t.charCodeAt(t.length-1)===32&&(t=t.slice(0,-1)),t}function my(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var is=null,py;function hy(){return is===null&&(is=new Intl.Segmenter(py,{granularity:"word"})),is}var gy=/\\p{Script=Arabic}/u,ki=/\\p{M}/u,Uf=/\\p{Nd}/u;function Df(e){return gy.test(e)}function If(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=177983||e>=177984&&e<=178207||e>=178208&&e<=183983||e>=183984&&e<=191471||e>=191472&&e<=192093||e>=194560&&e<=195103||e>=196608&&e<=201551||e>=201552&&e<=205743||e>=205744&&e<=210041||e>=63744&&e<=64255||e>=12288&&e<=12351||e>=12352&&e<=12447||e>=12448&&e<=12543||e>=44032&&e<=55215||e>=65280&&e<=65519}function We(e){for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(!(n<12288)){if(n>=55296&&n<=56319&&t+1<e.length){let r=e.charCodeAt(t+1);if(r>=56320&&r<=57343){let i=(n-55296<<10)+(r-56320)+65536;if(If(i))return!0;t++;continue}}if(If(n))return!0}}return!1}function by(e){let t=Ni(e);return t!==null&&(Fi.has(t)||vt.has(t))}var xy=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function yy(e){return We(e)}function vy(e){let t=Ni(e);return t!==null&&xy.has(t)}function Mi(e){return!by(e)&&!vy(e)}var Fi=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"]),pr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),as=new Set(["\'","\\u2019"]),vt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Sy=new Set([":",".","\\u060C","\\u061B"]),Ay=new Set(["\\u104F"]),Ey=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function wy(e){if(ss(e))return!0;let t=!1;for(let n of e){if(vt.has(n)){t=!0;continue}if(!(t&&ki.test(n)))return!1}return t}function Cy(e){for(let t of e)if(!Fi.has(t)&&!vt.has(t))return!1;return e.length>0}function _y(e){if(ss(e))return!0;for(let t of e)if(!pr.has(t)&&!as.has(t)&&!ki.test(t))return!1;return e.length>0}function ss(e){let t=!1;for(let n of e)if(!(n==="\\\\"||ki.test(n))){if(pr.has(n)||vt.has(n)||as.has(n)){t=!0;continue}return!1}return t}function Wf(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let r=e.charCodeAt(n);if(r<56320||r>57343)return n;let i=n-1;if(i<0)return n;let o=e.charCodeAt(i);return o>=55296&&o<=56319?i:n}function Ni(e){if(e.length===0)return null;let t=Wf(e,e.length);return e.slice(t)}function Ty(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(ki.test(r)){n--;continue}if(pr.has(r)||as.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function Ry(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Pf(e,t,n,r){let i=t[r],o=e[r];if(i==null)return o;let a=n[r];if(o.length===a)return o;let l=i.repeat(a);return e[r]=l,l}function Of(e,t){return e&&t!==null&&Sy.has(t)}function ky(e){let t=Ni(e);return t!==null&&Ay.has(t)}function My(e){if(e.length<2||e[0]!==" ")return null;let t=e.slice(1);return/^\\p{M}+$/u.test(t)?{space:" ",marks:t}:null}function Li(e){let t=e.length;for(;t>0;){let n=Wf(e,t),r=e.slice(n,t);if(Ey.has(r))return!0;if(!vt.has(r))return!1;t=n}return!1}function Fy(e,t){if(t.preserveOrdinarySpaces||t.preserveHardBreaks){if(e===" ")return"preserved-space";if(e===" ")return"tab";if(t.preserveHardBreaks&&e===`\n`)return"hard-break"}return e===" "?"space":e==="\\xA0"||e==="\\u202F"||e==="\\u2060"||e==="\\uFEFF"?"glue":e==="\\u200B"?"zero-width-break":e==="\\xAD"?"soft-hyphen":"text"}var Ny=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ie(e){return e.length===1?e[0]:e.join("")}function Ly(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),Ie(n)}function Dy(e,t,n,r){if(!Ny.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],l=n,s=!1,u=0;for(let c of e){let m=Fy(c,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(c),u+=c.length;continue}o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),o=m,a=[c],l=n+u,s=f,u+=c.length}return o!==null&&i.push({text:Ie(a),isWordLike:s,kind:o,start:l}),i}function os(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Iy=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Py(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:Iy.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function Oy(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function Hy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let a=0;a<e.len;a++){if(r[a]!=="text"||!Py(e,a))continue;let l=[t[a]],s=a+1;for(;s<e.len&&!os(r[s]);){l.push(t[s]),n[a]=!0;let u=t[s].includes("?");if(r[s]="text",t[s]="",s++,u)break}t[a]=Ie(l)}let o=0;for(let a=0;a<t.length;a++){let l=t[a];l.length!==0&&(o!==a&&(t[o]=l,n[o]=n[a],r[o]=r[a],i[o]=i[a]),o++)}return t.length=o,n.length=o,r.length=o,i.length=o,{len:o,texts:t,isWordLike:n,kinds:r,starts:i}}function Gy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o]),!Oy(a))continue;let l=o+1;if(l>=e.len||os(e.kinds[l]))continue;let s=[],u=e.starts[l],c=l;for(;c<e.len&&!os(e.kinds[c]);)s.push(e.texts[c]),c++;s.length>0&&(t.push(Ie(s)),n.push(!0),r.push("text"),i.push(u),o=c-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var By=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Hf=/^[A-Za-z0-9_]+[,:;]*$/,Gf=/[,:;]+$/;function Vf(e){for(let t of e)if(Uf.test(t))return!0;return!1}function mr(e){if(e.length===0)return!1;for(let t of e)if(!(Uf.test(t)||By.has(t)))return!1;return!0}function Uy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o];if(l==="text"&&mr(a)&&Vf(a)){let s=[a],u=o+1;for(;u<e.len&&e.kinds[u]==="text"&&mr(e.texts[u]);)s.push(e.texts[u]),u++;t.push(Ie(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=u-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Wy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],l=e.kinds[o],s=e.isWordLike[o];if(l==="text"&&s&&Hf.test(a)){let u=[a],c=Gf.test(a),m=o+1;for(;c&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&Hf.test(e.texts[m]);){let f=e.texts[m];u.push(f),c=Gf.test(f),m++}t.push(Ie(u)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(l),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Vy(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o];if(e.kinds[o]==="text"&&a.includes("-")){let l=a.split("-"),s=l.length>1;for(let u=0;u<l.length;u++){let c=l[u];if(!s)break;(c.length===0||!Vf(c)||!mr(c))&&(s=!1)}if(s){let u=0;for(let c=0;c<l.length;c++){let m=l[c],f=c<l.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+u),u+=f.length}continue}}t.push(a),n.push(e.isWordLike[o]),r.push(e.kinds[o]),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zy(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],l=e.isWordLike[o],s=e.kinds[o],u=e.starts[o];if(s==="glue"){let c=[a[0]],m=u;for(o++;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let f=Ie(c);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),l=e.isWordLike[o],s="text",u=m,o++;else{t.push(f),n.push(!1),r.push("glue"),i.push(m);continue}}else o++;if(s==="text")for(;o<e.len&&e.kinds[o]==="glue";){let c=[];for(;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let m=Ie(c);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),l=l||e.isWordLike[o],o++;continue}a.push(m)}t.push(Ie(a)),n.push(l),r.push(s),i.push(u)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function qy(e){let t=e.texts.slice(),n=e.isWordLike.slice(),r=e.kinds.slice(),i=e.starts.slice();for(let o=0;o<t.length-1;o++){if(r[o]!=="text"||r[o+1]!=="text"||!We(t[o])||!We(t[o+1]))continue;let a=Ty(t[o]);a!==null&&(t[o]=a.head,t[o+1]=a.tail+t[o+1],i[o+1]=i[o]+a.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function Bf(e,t,n){let r=hy(),i=0,o=[],a=[],l=[],s=[],u=[],c=[],m=[],f=[],p=[],b=[],v=[],x=[];for(let E of r.segment(e))for(let S of Dy(E.segment,E.isWordLike??!1,E.index,n)){let V=function(){c[k]!==null&&(a[k]=[Pf(o,c,m,k)],c[k]=null),a[k].push(S.text),l[k]=l[k]||S.isWordLike,f[k]=f[k]||N,p[k]=p[k]||I,b[k]=B,v[k]=oe,x[k]=Of(p[k],W)},A=S.kind==="text",C=Ry(S.text,S.isWordLike,S.kind),N=We(S.text),I=Df(S.text),W=Ni(S.text),B=Li(S.text),oe=ky(S.text),k=i-1;t.carryCJKAfterClosingQuote&&A&&i>0&&s[k]==="text"&&N&&f[k]&&b[k]||A&&i>0&&s[k]==="text"&&Cy(S.text)&&f[k]||A&&i>0&&s[k]==="text"&&v[k]?V():A&&i>0&&s[k]==="text"&&S.isWordLike&&I&&x[k]?(V(),l[k]=!0):C!==null&&i>0&&s[k]==="text"&&c[k]===C?m[k]=(m[k]??1)+1:A&&!S.isWordLike&&i>0&&s[k]==="text"&&(wy(S.text)||S.text==="-"&&l[k])?V():(o[i]=S.text,a[i]=[S.text],l[i]=S.isWordLike,s[i]=S.kind,u[i]=S.start,c[i]=C,m[i]=C===null?0:1,f[i]=N,p[i]=I,b[i]=B,v[i]=oe,x[i]=Of(I,W),i++)}for(let E=0;E<i;E++){if(c[E]!==null){o[E]=Pf(o,c,m,E);continue}o[E]=Ie(a[E])}for(let E=1;E<i;E++)s[E]==="text"&&!l[E]&&ss(o[E])&&s[E-1]==="text"&&(o[E-1]+=o[E],l[E-1]=l[E-1]||l[E],o[E]="");let _=Array.from({length:i},()=>null),R=-1;for(let E=i-1;E>=0;E--){let S=o[E];if(S.length!==0){if(s[E]==="text"&&!l[E]&&_y(S)&&R>=0&&s[R]==="text"){let A=_[R]??[];A.push(S),_[R]=A,u[R]=u[E],o[E]="";continue}R=E}}for(let E=0;E<i;E++){let S=_[E];S!=null&&(o[E]=Ly(S,o[E]))}let T=0;for(let E=0;E<i;E++){let S=o[E];S.length!==0&&(T!==E&&(o[T]=S,l[T]=l[E],s[T]=s[E],u[T]=u[E]),T++)}o.length=T,l.length=T,s.length=T,u.length=T;let M=zy({len:T,texts:o,isWordLike:l,kinds:s,starts:u}),F=qy(Wy(Vy(Uy(Gy(Hy(M))))));for(let E=0;E<F.len-1;E++){let S=My(F.texts[E]);S!==null&&(F.kinds[E]!=="space"&&F.kinds[E]!=="preserved-space"||F.kinds[E+1]!=="text"||!Df(F.texts[E+1])||(F.texts[E]=S.space,F.isWordLike[E]=!1,F.kinds[E]=F.kinds[E]==="preserved-space"?"preserved-space":"space",F.texts[E+1]=S.marks+F.texts[E+1],F.starts[E+1]=F.starts[E]+S.space.length))}return F}function $y(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],r=0;for(let i=0;i<e.len;i++)e.kinds[i]==="hard-break"&&(n.push({startSegmentIndex:r,endSegmentIndex:i,consumedEndSegmentIndex:i+1}),r=i+1);return r<e.len&&n.push({startSegmentIndex:r,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function jy(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,l=0,s=!1,u=!1;function c(){o!==null&&(t.push(Ie(o)),n.push(a),r.push("text"),i.push(l),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],b=e.isWordLike[m],v=e.starts[m];if(p==="text"){let x=yy(f),_=Mi(f);if(o!==null&&s&&u){o.push(f),a=a||b,s=s||x,u=_;continue}c(),o=[f],a=b,l=v,s=x,u=_;continue}c(),t.push(f),n.push(b),r.push(p),i.push(v)}return c(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function zf(e,t,n="normal",r="normal"){let i=dy(n),o=i.mode==="pre-wrap"?my(e):fy(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?jy(Bf(o,t,i)):Bf(o,t,i);return{normalized:o,chunks:$y(a,i),...a}}var un=null,qf=new Map,cn=null,Ky=96,Yy=/\\p{Emoji_Presentation}/u,Xy=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,ls=null,$f=new Map;function us(){if(un!==null)return un;if(typeof OffscreenCanvas<"u")return un=new OffscreenCanvas(1,1).getContext("2d"),un;if(typeof document<"u")return un=document.createElement("canvas").getContext("2d"),un;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Jy(e){let t=qf.get(e);return t||(t=new Map,qf.set(e,t)),t}function st(e,t){let n=t.get(e);return n===void 0&&(n={width:us().measureText(e).width,containsCJK:We(e)},t.set(e,n)),n}function At(){if(cn!==null)return cn;if(typeof navigator>"u")return cn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},cn;let e=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&e.includes("Safari/")&&!e.includes("Chrome/")&&!e.includes("Chromium/")&&!e.includes("CriOS/")&&!e.includes("FxiOS/")&&!e.includes("EdgiOS/"),r=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return cn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},cn}function Qy(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function jf(){return ls===null&&(ls=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ls}function Zy(e){return Yy.test(e)||e.includes("\\uFE0F")}function Kf(e){return Xy.test(e)}function e1(e,t){let n=$f.get(e);if(n!==void 0)return n;let r=us();r.font=e;let i=r.measureText("\\u{1F600}").width;if(n=0,i>t+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=e,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let a=o.getBoundingClientRect().width;document.body.removeChild(o),i-a>.5&&(n=i-a)}return $f.set(e,n),n}function t1(e){let t=0,n=jf();for(let r of n.segment(e))Zy(r.segment)&&t++;return t}function n1(e,t){return t.emojiCount===void 0&&(t.emojiCount=t1(e)),t.emojiCount}function St(e,t,n){return n===0?t.width:t.width-n1(e,t)*n}function Yf(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=jf(),a=[];for(let c of o.segment(e))a.push(c.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let c=[];for(let m of a){let f=st(m,n);c.push(St(m,f,r))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(i==="pair-context"||a.length>Ky){let c=[],m=null,f=0;for(let p of a){let b=st(p,n),v=St(p,b,r);if(m===null)c.push(v);else{let x=m+p,_=st(x,n);c.push(St(x,_,r)-f)}m=p,f=v}return t.breakableFitAdvances=c,t.breakableFitAdvances}let l=[],s="",u=0;for(let c of a){s+=c;let m=st(s,n),f=St(s,m,r);l.push(f-u),u=f}return t.breakableFitAdvances=l,t.breakableFitAdvances}function Xf(e,t){let n=us();n.font=e;let r=Jy(e),i=Qy(e),o=t?e1(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function r1(e,t){for(;t<e.widths.length;){let n=e.kinds[t];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;t++}return t}function Jf(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function Qf(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let l=a+e[o];if((o+1<e.length?l+i:l)>n+r)break;a=l,o++}return{fitCount:o,fittedWidth:a}}function i1(e,t){let n=0,r=e.chunks.length;for(;n<r;){let i=Math.floor((n+r)/2);t<e.chunks[i].consumedEndSegmentIndex?r=i:n=i+1}return n<e.chunks.length?n:-1}function Zf(e,t,n){let r=n.segmentIndex;if(n.graphemeIndex>0)return t;let i=e.chunks[t];if(i.startSegmentIndex===i.endSegmentIndex&&r===i.startSegmentIndex)return n.segmentIndex=r,n.graphemeIndex=0,t;for(r<i.startSegmentIndex&&(r=i.startSegmentIndex);r<i.endSegmentIndex;){let o=e.kinds[r];if(o!=="space"&&o!=="zero-width-break"&&o!=="soft-hyphen")return n.segmentIndex=r,n.graphemeIndex=0,t;r++}return i.consumedEndSegmentIndex>=e.widths.length?-1:(n.segmentIndex=i.consumedEndSegmentIndex,n.graphemeIndex=0,t+1)}function em(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=i1(e,t.segmentIndex);return n<0?-1:Zf(e,n,t)}function o1(e,t,n){if(n.segmentIndex>=e.widths.length)return-1;let r=t;for(;r<e.chunks.length&&n.segmentIndex>=e.chunks[r].consumedEndSegmentIndex;)r++;return r>=e.chunks.length?-1:Zf(e,r,n)}function tm(e,t){return e.simpleLineWalkFastPath?nm(e,t):cs(e,t)}function nm(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let l=At().lineFitEpsilon,s=t+l,u=0,c=0,m=!1,f=0,p=0,b=0,v=0,x=-1,_=0;function R(){x=-1,_=0}function T(C=b,N=v,I=c){u++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:C,endGraphemeIndex:N,width:I}),c=0,m=!1,R()}function M(C,N){m=!0,f=C,p=0,b=C+1,v=0,c=N}function F(C,N,I){m=!0,f=C,p=N,b=C,v=N+1,c=I}function E(C,N){if(!m){M(C,N);return}c+=N,b=C+1,v=0}function S(C,N){let I=o[C];for(let W=N;W<I.length;W++){let B=I[W];m?c+B>s?(T(),F(C,W,B)):(c+=B,b=C,v=W+1):F(C,W,B)}m&&b===C&&v===I.length&&(b=C+1,v=0)}let A=0;for(;A<r.length&&!(!m&&(A=r1(e,A),A>=r.length));){let C=r[A],N=i[A],I=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!m){C>t&&o[A]!==null?S(A,0):M(A,C),I&&(x=A+1,_=c-C),A++;continue}if(c+C>s){if(I){E(A,C),T(A+1,0,c-C),A++;continue}if(x>=0){if(b>x||b===x&&v>0){T();continue}T(x,0,_);continue}if(C>t&&o[A]!==null){T(),S(A,0),A++;continue}T();continue}E(A,C),I&&(x=A+1,_=c-C),A++}return m&&T(),u}function cs(e,t,n){if(e.simpleLineWalkFastPath)return nm(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:l,discretionaryHyphenWidth:s,tabStopAdvance:u,chunks:c}=e;if(r.length===0||c.length===0)return 0;let m=At(),f=m.lineFitEpsilon,p=t+f,b=0,v=0,x=!1,_=0,R=0,T=0,M=0,F=-1,E=0,S=0,A=null;function C(){F=-1,E=0,S=0,A=null}function N(G=T,H=M,z=v){b++,n?.({startSegmentIndex:_,startGraphemeIndex:R,endSegmentIndex:G,endGraphemeIndex:H,width:z}),v=0,x=!1,C()}function I(G,H){x=!0,_=G,R=0,T=G+1,M=0,v=H}function W(G,H,z){x=!0,_=G,R=H,T=G,M=H+1,v=z}function B(G,H){if(!x){I(G,H);return}v+=H,T=G+1,M=0}function oe(G,H,z,X){if(!H)return;let we=G==="tab"?0:i[z],q=G==="tab"?X:o[z];F=z+1,E=v-X+we,S=v-X+q,A=G}function k(G,H){let z=l[G];for(let X=H;X<z.length;X++){let we=z[X];x?v+we>p?(N(),W(G,X,we)):(v+=we,T=G,M=X+1):W(G,X,we)}x&&T===G&&M===z.length&&(T=G+1,M=0)}function V(G){if(A!=="soft-hyphen")return!1;let H=l[G];if(H==null)return!1;let{fitCount:z,fittedWidth:X}=Qf(H,v,t,f,s);return z===0?!1:(v=X,T=G,M=z,C(),z===H.length?(T=G+1,M=0,!0):(N(G,z,X+s),k(G,z),!0))}function Q(G){b++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),C()}for(let G=0;G<c.length;G++){let H=c[G];if(H.startSegmentIndex===H.endSegmentIndex){Q(H);continue}x=!1,v=0,_=H.startSegmentIndex,R=0,T=H.startSegmentIndex,M=0,C();let z=H.startSegmentIndex;for(;z<H.endSegmentIndex;){let X=a[z],we=X==="space"||X==="preserved-space"||X==="tab"||X==="zero-width-break"||X==="soft-hyphen",q=X==="tab"?Jf(v,u):r[z];if(X==="soft-hyphen"){x&&(T=z+1,M=0,F=z+1,E=v+s,S=v+s,A=X),z++;continue}if(!x){q>t&&l[z]!==null?k(z,0):I(z,q),oe(X,we,z,q),z++;continue}if(v+q>p){let O=v+(X==="tab"?0:i[z]),j=v+(X==="tab"?q:o[z]);if(A==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&E<=p){N(F,0,S);continue}if(A==="soft-hyphen"&&V(z)){z++;continue}if(we&&O<=p){B(z,q),N(z+1,0,j),z++;continue}if(F>=0&&E<=p){if(T>F||T===F&&M>0){N();continue}let le=F;N(le,0,S),z=le;continue}if(q>t&&l[z]!==null){N(),k(z,0),z++;continue}N();continue}B(z,q),oe(X,we,z,q),z++}if(x){let X=F===H.consumedEndSegmentIndex?S:v;N(H.consumedEndSegmentIndex,0,X)}}return b}function rm(e,t,n,r){let i=e.chunks[n];if(i.startSegmentIndex===i.endSegmentIndex)return t.segmentIndex=i.consumedEndSegmentIndex,t.graphemeIndex=0,0;let{widths:o,lineEndFitAdvances:a,lineEndPaintAdvances:l,kinds:s,breakableFitAdvances:u,discretionaryHyphenWidth:c,tabStopAdvance:m}=e,f=At(),p=f.lineFitEpsilon,b=r+p,v=0,x=!1,_=t.segmentIndex,R=t.graphemeIndex,T=-1,M=0,F=0,E=null;function S(){T=-1,M=0,F=0,E=null}function A(k=_,V=R,Q=v){return x?(t.segmentIndex=k,t.graphemeIndex=V,Q):null}function C(k,V){x=!0,_=k+1,R=0,v=V}function N(k,V,Q){x=!0,_=k,R=V+1,v=Q}function I(k,V){if(!x){C(k,V);return}v+=V,_=k+1,R=0}function W(k,V,Q,G){if(!V)return;let H=k==="tab"?0:a[Q],z=k==="tab"?G:l[Q];T=Q+1,M=v-G+H,F=v-G+z,E=k}function B(k,V){let Q=u[k];for(let G=V;G<Q.length;G++){let H=Q[G];if(!x)N(k,G,H);else{if(v+H>b)return A();v+=H,_=k,R=G+1}}return x&&_===k&&R===Q.length&&(_=k+1,R=0),null}function oe(k){if(E!=="soft-hyphen"||T<0)return null;let V=u[k]??null;if(V!==null){let{fitCount:Q,fittedWidth:G}=Qf(V,v,r,p,c);if(Q===V.length)return v=G,_=k+1,R=0,S(),null;if(Q>0)return A(k,Q,G+c)}return M<=b?A(T,0,F):null}for(let k=t.segmentIndex;k<i.endSegmentIndex;k++){let V=s[k],Q=V==="space"||V==="preserved-space"||V==="tab"||V==="zero-width-break"||V==="soft-hyphen",G=k===t.segmentIndex?t.graphemeIndex:0,H=V==="tab"?Jf(v,m):o[k];if(V==="soft-hyphen"&&G===0){x&&(_=k+1,R=0,T=k+1,M=v+c,F=v+c,E=V);continue}if(!x){if(G>0){let X=B(k,G);if(X!==null)return X}else if(H>r&&u[k]!==null){let X=B(k,0);if(X!==null)return X}else C(k,H);W(V,Q,k,H);continue}if(v+H>b){let X=v+(V==="tab"?0:a[k]),we=v+(V==="tab"?H:l[k]);if(E==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&M<=b)return A(T,0,F);let q=oe(k);if(q!==null)return q;if(Q&&X<=b)return I(k,H),A(k+1,0,we);if(T>=0&&M<=b)return _>T||_===T&&R>0?A():A(T,0,F);if(H>r&&u[k]!==null){let P=A();if(P!==null)return P;let O=B(k,0);if(O!==null)return O}return A()}I(k,H),W(V,Q,k,H)}return T===i.consumedEndSegmentIndex&&R===0?A(i.consumedEndSegmentIndex,0,F):A(i.consumedEndSegmentIndex,0,v)}function a1(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,l=At().lineFitEpsilon,s=n+l,u=0,c=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,b=0;for(let v=t.segmentIndex;v<r.length;v++){let x=r[v],_=i[v],R=_==="space"||_==="preserved-space"||_==="tab"||_==="zero-width-break"||_==="soft-hyphen",T=v===t.segmentIndex?t.graphemeIndex:0,M=o[v];if(!c){if(T>0||x>n&&M!==null){let F=M,E=F[T];c=!0,u=E,m=v,f=T+1;for(let S=T+1;S<F.length;S++){let A=F[S];if(u+A>s)return t.segmentIndex=m,t.graphemeIndex=f,u;u+=A,m=v,f=S+1}m===v&&f===F.length&&(m=v+1,f=0)}else c=!0,u=x,m=v+1,f=0;R&&(p=v+1,b=u-x);continue}if(u+x>s)return R?(t.segmentIndex=v+1,t.graphemeIndex=0,u):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,u):(t.segmentIndex=p,t.graphemeIndex=0,b):(t.segmentIndex=m,t.graphemeIndex=f,u);u+=x,m=v+1,f=0,R&&(p=v+1,b=u-x)}return c?(t.segmentIndex=m,t.graphemeIndex=f,u):null}function s1(e,t,n){let r=em(e,t);return r<0?null:e.simpleLineWalkFastPath?a1(e,t,n):rm(e,t,r,n)}function im(e,t){if(e.widths.length===0)return{lineCount:0,maxLineWidth:0};let n={segmentIndex:0,graphemeIndex:0},r=0,i=0;if(!e.simpleLineWalkFastPath){let o=em(e,n);for(;o>=0;){let a=rm(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=o1(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=s1(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var ds=null;function l1(){return ds===null&&(ds=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ds}function u1(e){return e?{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 c1(e,t){let n=[],r=[],i=0,o=!1,a=!1,l=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,l=!1)}function u(m,f,p){r=[m],i=f,o=p,a=Li(m),l=pr.has(m)}function c(m,f){r.push(m),o=o||f;let p=Li(m);m.length===1&&vt.has(m)?a=a||p:a=p,l=!1}for(let m of l1().segment(e)){let f=m.segment,p=We(f);if(r.length===0){u(f,m.index,p);continue}if(l||Fi.has(f)||vt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){c(f,p);continue}if(!o&&!p){c(f,p);continue}s(),u(f,m.index,p)}return s(),n}function d1(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=We(e[0].text),o=Mi(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let l=1;l<e.length;l++){let s=e[l],u=We(s.text),c=Mi(s.text);if(i&&o){n.push(s.text),i=i||u,o=c;continue}a(),n=[s.text],r=s.start,i=u,o=c}return a(),t}function f1(e,t,n,r){let i=At(),{cache:o,emojiCorrection:a}=Xf(t,Kf(e.normalized)),l=St("-",st("-",o),a),u=St(" ",st(" ",o),a)*8;if(e.len===0)return u1(n);let c=[],m=[],f=[],p=[],b=e.chunks.length<=1,v=n?[]:null,x=[],_=n?[]:null,R=Array.from({length:e.len});function T(S,A,C,N,I,W,B){I!=="text"&&I!=="space"&&I!=="zero-width-break"&&(b=!1),c.push(A),m.push(C),f.push(N),p.push(I),v?.push(W),x.push(B),_!==null&&_.push(S)}function M(S,A,C,N,I){let W=st(S,o),B=St(S,W,a),oe=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:B,k=A==="space"||A==="zero-width-break"?0:B;if(I&&N&&S.length>1){let V="sum-graphemes";mr(S)?V="pair-context":i.preferPrefixWidthsForBreakableRuns&&(V="segment-prefixes");let Q=Yf(S,W,o,a,V);T(S,B,oe,k,A,C,Q);return}T(S,B,oe,k,A,C,null)}for(let S=0;S<e.len;S++){R[S]=c.length;let A=e.texts[S],C=e.isWordLike[S],N=e.kinds[S],I=e.starts[S];if(N==="soft-hyphen"){T(A,0,l,l,N,I,null);continue}if(N==="hard-break"){T(A,0,0,0,N,I,null);continue}if(N==="tab"){T(A,0,0,0,N,I,null);continue}let W=st(A,o);if(N==="text"&&W.containsCJK){let B=c1(A,i),oe=r==="keep-all"?d1(B):B;for(let k=0;k<oe.length;k++){let V=oe[k];M(V.text,"text",I+V.start,C,r==="keep-all"||!We(V.text))}continue}M(A,N,I,C,!0)}let F=m1(e.chunks,R,c.length),E=v===null?null:Lf(e.normalized,v);return _!==null?{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F,segments:_}:{widths:c,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:b,segLevels:E,breakableFitAdvances:x,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:F}}function m1(e,t,n){let r=[];for(let i=0;i<e.length;i++){let o=e[i],a=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,l=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:l,consumedEndSegmentIndex:s})}return r}function om(e,t,n,r){let i=r?.wordBreak??"normal",o=zf(e,At(),r?.whiteSpace,i);return f1(o,t,n,i)}function Di(e,t,n){return om(e,t,!1,n)}function am(e,t,n){return om(e,t,!0,n)}function Ii(e,t,n){let r=tm(e,t);return{lineCount:r,height:r*n}}function p1(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function h1(e,t,n){return e.widths.length===0?0:cs(e,t,r=>{n(p1(r))})}function sm(e,t){return im(e,t)}function lm(e){let t=0;return h1(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var g1={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function um(e,t){let n={...g1,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=Di(e,o),{lineCount:l}=Ii(a,n.maxWidth,i*r);if(l<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var cm={prepare:Di,layout:Ii,prepareWithSegments:am,measureLineStats:sm,measureNaturalWidth:lm};window.__timelines=window.__timelines||{};Md();window.__hyperframes={fitTextFontSize:um,getVariables:Hs,pretext:cm,registerRuntimeDataHandler:kf,setRuntimeData:Ti,clearRuntimeData:Ri};function dm(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ff())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",dm,{once:!0}):dm();})();\n';
58788
58788
  }
58789
58789
  });
58790
58790
 
@@ -65315,11 +65315,11 @@ var init_browserLeasePool = __esm({
65315
65315
  await Promise.race([
65316
65316
  this.options.close(result.browser).catch(() => {
65317
65317
  }),
65318
- new Promise((resolve79) => {
65318
+ new Promise((resolve80) => {
65319
65319
  entry.forceClose = () => {
65320
65320
  entry.forceClose = void 0;
65321
65321
  this.options.forceClose(result.browser);
65322
- resolve79();
65322
+ resolve80();
65323
65323
  };
65324
65324
  })
65325
65325
  ]);
@@ -66041,8 +66041,8 @@ async function probeBeginFrameLiveness(page, timeoutMs, frameTimeTicks, interval
66041
66041
  try {
66042
66042
  return await Promise.race([
66043
66043
  client.send("HeadlessExperimental.beginFrame", params).then(() => true).catch(() => false),
66044
- new Promise((resolve79) => {
66045
- timer = setTimeout(() => resolve79(false), timeoutMs);
66044
+ new Promise((resolve80) => {
66045
+ timer = setTimeout(() => resolve80(false), timeoutMs);
66046
66046
  })
66047
66047
  ]);
66048
66048
  } finally {
@@ -66823,7 +66823,7 @@ async function produceDrawElementFrame(page, width, height, quality = 80, syncTo
66823
66823
  );
66824
66824
  }
66825
66825
  const frameId = ++state.nextId;
66826
- const encodeResult = new Promise((resolve79, reject2) => {
66826
+ const encodeResult = new Promise((resolve80, reject2) => {
66827
66827
  const timer = setTimeout(() => {
66828
66828
  if (state.pending.delete(frameId)) {
66829
66829
  reject2(new Error(`drawElement worker encode timed out (frame ${frameId})`));
@@ -66832,7 +66832,7 @@ async function produceDrawElementFrame(page, width, height, quality = 80, syncTo
66832
66832
  state.pending.set(frameId, {
66833
66833
  resolve: (b2) => {
66834
66834
  clearTimeout(timer);
66835
- resolve79(b2);
66835
+ resolve80(b2);
66836
66836
  },
66837
66837
  reject: (e3) => {
66838
66838
  clearTimeout(timer);
@@ -66988,7 +66988,7 @@ async function produceDrawElementFrameBatch(page, times, width, height, quality
66988
66988
  for (let i2 = 0; i2 < times.length; i2++) {
66989
66989
  const frameId = ++state.nextId;
66990
66990
  fids.push(frameId);
66991
- const p2 = new Promise((resolve79, reject2) => {
66991
+ const p2 = new Promise((resolve80, reject2) => {
66992
66992
  const timer = setTimeout(() => {
66993
66993
  if (state.pending.delete(frameId)) {
66994
66994
  reject2(new Error(`drawElement worker encode timed out (frame ${frameId})`));
@@ -66997,7 +66997,7 @@ async function produceDrawElementFrameBatch(page, times, width, height, quality
66997
66997
  state.pending.set(frameId, {
66998
66998
  resolve: (b2) => {
66999
66999
  clearTimeout(timer);
67000
- resolve79(b2);
67000
+ resolve80(b2);
67001
67001
  },
67002
67002
  reject: (e3) => {
67003
67003
  clearTimeout(timer);
@@ -67280,9 +67280,9 @@ async function initThreeDProjectionInPage() {
67280
67280
  const toDataUrl = async (url) => {
67281
67281
  const resp = await fetch(url);
67282
67282
  const blob = await resp.blob();
67283
- return new Promise((resolve79, reject2) => {
67283
+ return new Promise((resolve80, reject2) => {
67284
67284
  const r2 = new FileReader();
67285
- r2.onload = () => resolve79(String(r2.result));
67285
+ r2.onload = () => resolve80(String(r2.result));
67286
67286
  r2.onerror = () => reject2(new Error(`FileReader failed for ${url}`));
67287
67287
  r2.readAsDataURL(blob);
67288
67288
  });
@@ -68495,10 +68495,10 @@ async function waitForCloseWithTimeout(promise) {
68495
68495
  () => void 0,
68496
68496
  () => void 0
68497
68497
  ),
68498
- new Promise((resolve79) => {
68498
+ new Promise((resolve80) => {
68499
68499
  timer = setTimeout(() => {
68500
68500
  timedOut = true;
68501
- resolve79();
68501
+ resolve80();
68502
68502
  }, CAPTURE_SESSION_CLOSE_TIMEOUT_MS);
68503
68503
  })
68504
68504
  ]);
@@ -68906,7 +68906,7 @@ async function pollHfReady(page, timeoutMs, intervalMs = 100) {
68906
68906
  }
68907
68907
  }
68908
68908
  }
68909
- await new Promise((resolve79) => setTimeout(resolve79, intervalMs));
68909
+ await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
68910
68910
  }
68911
68911
  const diag2 = await evaluateHfDiagnostic(page);
68912
68912
  if (diag2.hasSeek && diag2.duration === 0) {
@@ -68947,7 +68947,7 @@ async function pollSubCompositionTimelines(page, timeoutMs, intervalMs = 150, ge
68947
68947
  );
68948
68948
  break;
68949
68949
  }
68950
- await new Promise((resolve79) => setTimeout(resolve79, intervalMs));
68950
+ await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
68951
68951
  }
68952
68952
  if (ready) {
68953
68953
  await page.evaluate(`(function() {
@@ -68996,7 +68996,7 @@ async function pollVideosReady(page, skipIds, timeoutMs, intervalMs = 100) {
68996
68996
  const deadline = Date.now() + timeoutMs;
68997
68997
  while (Date.now() < deadline) {
68998
68998
  if (await check()) return true;
68999
- await new Promise((resolve79) => setTimeout(resolve79, intervalMs));
68999
+ await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
69000
69000
  }
69001
69001
  return check();
69002
69002
  }
@@ -69019,7 +69019,7 @@ async function pollImagesReady(page, timeoutMs, intervalMs = 100) {
69019
69019
  const deadline = Date.now() + timeoutMs;
69020
69020
  while (Date.now() < deadline) {
69021
69021
  if (await check()) return true;
69022
- await new Promise((resolve79) => setTimeout(resolve79, intervalMs));
69022
+ await new Promise((resolve80) => setTimeout(resolve80, intervalMs));
69023
69023
  }
69024
69024
  return check();
69025
69025
  }
@@ -69147,7 +69147,7 @@ async function waitForOptionalTailwindReady(page, timeoutMs) {
69147
69147
  page.evaluate(
69148
69148
  `Promise.resolve(window.__tailwindReady).then(() => true, () => false)`
69149
69149
  ),
69150
- new Promise((resolve79) => setTimeout(() => resolve79(false), timeoutMs))
69150
+ new Promise((resolve80) => setTimeout(() => resolve80(false), timeoutMs))
69151
69151
  ]);
69152
69152
  if (!ready) {
69153
69153
  throw new Error(
@@ -70481,7 +70481,7 @@ var init_frameCapture = __esm({
70481
70481
  BROWSER_CONSOLE_BUFFER_SIZE = 200;
70482
70482
  CAPTURE_SESSION_CLOSE_TIMEOUT_MS = 5e3;
70483
70483
  LOCKED_WARMUP_TICKS = 60;
70484
- realSleep = (ms) => new Promise((resolve79) => setTimeout(resolve79, ms));
70484
+ realSleep = (ms) => new Promise((resolve80) => setTimeout(resolve80, ms));
70485
70485
  BEGIN_FRAME_CAPTURE_HEADROOM_INTERVALS = 10;
70486
70486
  BEGIN_FRAME_COMMIT_LEAD_INTERVALS = 6;
70487
70487
  BEGIN_FRAME_PROBE_LEAD_INTERVALS = 5;
@@ -70534,8 +70534,8 @@ var init_managedChildProcess = __esm({
70534
70534
  this.options = options;
70535
70535
  this.now = options.now ?? Date.now;
70536
70536
  this.startedAtMs = this.now();
70537
- this.outcomePromise = new Promise((resolve79) => {
70538
- this.resolveOutcome = resolve79;
70537
+ this.outcomePromise = new Promise((resolve80) => {
70538
+ this.resolveOutcome = resolve80;
70539
70539
  });
70540
70540
  child.stderr?.on("data", this.onStderr);
70541
70541
  child.once("spawn", this.onSpawn);
@@ -72177,12 +72177,12 @@ function createFrameReorderBuffer(startFrame, endFrame) {
72177
72177
  let cursor = startFrame;
72178
72178
  let aborted = null;
72179
72179
  const pending = /* @__PURE__ */ new Map();
72180
- const enqueueAt = (frame, resolve79, reject2) => {
72180
+ const enqueueAt = (frame, resolve80, reject2) => {
72181
72181
  const list = pending.get(frame);
72182
72182
  if (list === void 0) {
72183
- pending.set(frame, [{ resolve: resolve79, reject: reject2 }]);
72183
+ pending.set(frame, [{ resolve: resolve80, reject: reject2 }]);
72184
72184
  } else {
72185
- list.push({ resolve: resolve79, reject: reject2 });
72185
+ list.push({ resolve: resolve80, reject: reject2 });
72186
72186
  }
72187
72187
  };
72188
72188
  const flushAt = (frame) => {
@@ -72191,31 +72191,31 @@ function createFrameReorderBuffer(startFrame, endFrame) {
72191
72191
  pending.delete(frame);
72192
72192
  for (const waiter of list) waiter.resolve();
72193
72193
  };
72194
- const waitForFrame = (frame) => new Promise((resolve79, reject2) => {
72194
+ const waitForFrame = (frame) => new Promise((resolve80, reject2) => {
72195
72195
  if (aborted) {
72196
72196
  reject2(aborted);
72197
72197
  return;
72198
72198
  }
72199
72199
  if (frame === cursor) {
72200
- resolve79();
72200
+ resolve80();
72201
72201
  return;
72202
72202
  }
72203
- enqueueAt(frame, resolve79, reject2);
72203
+ enqueueAt(frame, resolve80, reject2);
72204
72204
  });
72205
72205
  const advanceTo = (frame) => {
72206
72206
  cursor = frame;
72207
72207
  flushAt(frame);
72208
72208
  };
72209
- const waitForAllDone = () => new Promise((resolve79, reject2) => {
72209
+ const waitForAllDone = () => new Promise((resolve80, reject2) => {
72210
72210
  if (aborted) {
72211
72211
  reject2(aborted);
72212
72212
  return;
72213
72213
  }
72214
72214
  if (cursor >= endFrame) {
72215
- resolve79();
72215
+ resolve80();
72216
72216
  return;
72217
72217
  }
72218
- enqueueAt(endFrame, resolve79, reject2);
72218
+ enqueueAt(endFrame, resolve80, reject2);
72219
72219
  });
72220
72220
  const abort = (err) => {
72221
72221
  if (aborted) return;
@@ -72486,8 +72486,8 @@ async function spawnStreamingEncoder(outputPath, options, signal, config) {
72486
72486
  close: async () => {
72487
72487
  const stdin = ffmpeg.stdin;
72488
72488
  if (stdin && !stdin.destroyed) {
72489
- await new Promise((resolve79) => {
72490
- stdin.end(() => resolve79());
72489
+ await new Promise((resolve80) => {
72490
+ stdin.end(() => resolve80());
72491
72491
  });
72492
72492
  }
72493
72493
  const outcome = await exitPromise;
@@ -72762,10 +72762,10 @@ async function waitForCacheLock(signal) {
72762
72762
  if (signal?.aborted) {
72763
72763
  throw new UrlDownloadError("cancelled", false, "Download cancelled");
72764
72764
  }
72765
- await new Promise((resolve79, reject2) => {
72765
+ await new Promise((resolve80, reject2) => {
72766
72766
  const timeout = setTimeout(() => {
72767
72767
  signal?.removeEventListener("abort", onAbort);
72768
- resolve79();
72768
+ resolve80();
72769
72769
  }, CACHE_LOCK_POLL_MS);
72770
72770
  const onAbort = () => {
72771
72771
  clearTimeout(timeout);
@@ -77756,7 +77756,7 @@ var require_processor = __commonJS({
77756
77756
  if (options === void 0) {
77757
77757
  options = {};
77758
77758
  }
77759
- return new Promise(function(resolve79, reject2) {
77759
+ return new Promise(function(resolve80, reject2) {
77760
77760
  try {
77761
77761
  var root_1 = _this._root(rule, options);
77762
77762
  Promise.resolve(_this.func(root_1)).then(function(transform) {
@@ -77766,7 +77766,7 @@ var require_processor = __commonJS({
77766
77766
  rule.selector = string;
77767
77767
  }
77768
77768
  return { transform, root: root_1, string };
77769
- }).then(resolve79, reject2);
77769
+ }).then(resolve80, reject2);
77770
77770
  } catch (e3) {
77771
77771
  reject2(e3);
77772
77772
  return;
@@ -78496,14 +78496,14 @@ function inlineHelper2(call, ctx) {
78496
78496
  };
78497
78497
  return expandBody2(fn.body.body, bindings, prov, ctx);
78498
78498
  }
78499
- function assignStep2(update2, resolve79) {
78500
- if (update2.operator === "+=") return asNum2(resolve79(update2.right));
78499
+ function assignStep2(update2, resolve80) {
78500
+ if (update2.operator === "+=") return asNum2(resolve80(update2.right));
78501
78501
  if (update2.operator === "-=") {
78502
- const s2 = asNum2(resolve79(update2.right));
78502
+ const s2 = asNum2(resolve80(update2.right));
78503
78503
  return s2 === void 0 ? void 0 : -s2;
78504
78504
  }
78505
78505
  if (update2.operator === "=" && update2.right?.type === "BinaryExpression") {
78506
- return asNum2(resolve79(update2.right.right));
78506
+ return asNum2(resolve80(update2.right.right));
78507
78507
  }
78508
78508
  return void 0;
78509
78509
  }
@@ -78512,10 +78512,10 @@ function updatedVarName2(update2) {
78512
78512
  if (update2?.type === "AssignmentExpression") return update2.left?.name ?? null;
78513
78513
  return null;
78514
78514
  }
78515
- function loopStep2(update2, varName, resolve79) {
78515
+ function loopStep2(update2, varName, resolve80) {
78516
78516
  if (updatedVarName2(update2) !== varName) return void 0;
78517
78517
  if (update2.type === "UpdateExpression") return update2.operator === "++" ? 1 : -1;
78518
- return assignStep2(update2, resolve79);
78518
+ return assignStep2(update2, resolve80);
78519
78519
  }
78520
78520
  function asNum2(v2) {
78521
78521
  return typeof v2 === "number" && Number.isFinite(v2) ? v2 : void 0;
@@ -78532,13 +78532,13 @@ function forInitVar2(init) {
78532
78532
  const d2 = init.declarations[0];
78533
78533
  return d2.id?.type === "Identifier" ? { name: d2.id.name, initExpr: d2.init } : null;
78534
78534
  }
78535
- function parseForHeader2(stmt, resolve79) {
78535
+ function parseForHeader2(stmt, resolve80) {
78536
78536
  const iv = forInitVar2(stmt.init);
78537
78537
  const test = stmt.test;
78538
78538
  if (!iv || test?.type !== "BinaryExpression" || test.left?.name !== iv.name) return null;
78539
- const start = asNum2(resolve79(iv.initExpr));
78540
- const end = asNum2(resolve79(test.right));
78541
- const step = loopStep2(stmt.update, iv.name, resolve79);
78539
+ const start = asNum2(resolve80(iv.initExpr));
78540
+ const end = asNum2(resolve80(test.right));
78541
+ const step = loopStep2(stmt.update, iv.name, resolve80);
78542
78542
  if (start === void 0 || end === void 0 || !step) return null;
78543
78543
  return { v: iv.name, start, end, op: test.operator, step };
78544
78544
  }
@@ -78650,12 +78650,12 @@ function expandStatements2(stmts, ctx) {
78650
78650
  }
78651
78651
  return out;
78652
78652
  }
78653
- function inlineComputedTimelines2(ast, timelineVar, resolve79) {
78653
+ function inlineComputedTimelines2(ast, timelineVar, resolve80) {
78654
78654
  const helpers = collectInlinableHelpers2(ast, timelineVar);
78655
78655
  const ctx = {
78656
78656
  helpers,
78657
78657
  timelineVar,
78658
- resolve: resolve79,
78658
+ resolve: resolve80,
78659
78659
  depth: 0,
78660
78660
  site: { n: 0 },
78661
78661
  order: { n: 0 }
@@ -90830,13 +90830,13 @@ function shouldVerifyWorkerGpu(workerId, config) {
90830
90830
  function raceAgainstAbort(promise, signal) {
90831
90831
  if (!signal) return promise;
90832
90832
  if (signal.aborted) return Promise.reject(new Error("Parallel worker cancelled"));
90833
- return new Promise((resolve79, reject2) => {
90833
+ return new Promise((resolve80, reject2) => {
90834
90834
  const onAbort = () => reject2(new Error("Parallel worker cancelled"));
90835
90835
  signal.addEventListener("abort", onAbort, { once: true });
90836
90836
  promise.then(
90837
90837
  (value) => {
90838
90838
  signal.removeEventListener("abort", onAbort);
90839
- resolve79(value);
90839
+ resolve80(value);
90840
90840
  },
90841
90841
  (error) => {
90842
90842
  signal.removeEventListener("abort", onAbort);
@@ -91220,11 +91220,11 @@ function createFileServer(options) {
91220
91220
  headers: { "Content-Type": contentType }
91221
91221
  });
91222
91222
  });
91223
- return new Promise((resolve79) => {
91223
+ return new Promise((resolve80) => {
91224
91224
  const server = serve({ fetch: app.fetch, port }, (info) => {
91225
91225
  const actualPort = info.port;
91226
91226
  const url = `http://localhost:${actualPort}`;
91227
- resolve79({
91227
+ resolve80({
91228
91228
  url,
91229
91229
  port: actualPort,
91230
91230
  close: () => server.close()
@@ -96636,7 +96636,7 @@ async function fetchWithRetry(url, attempts = 3) {
96636
96636
  } catch (err) {
96637
96637
  lastErr = err;
96638
96638
  if (attempt === attempts || !isRetryableTransport(err)) break;
96639
- await new Promise((resolve79) => setTimeout(resolve79, 150 * attempt));
96639
+ await new Promise((resolve80) => setTimeout(resolve80, 150 * attempt));
96640
96640
  }
96641
96641
  }
96642
96642
  throw lastErr;
@@ -97460,7 +97460,7 @@ function downloadFile(url, dest, options = {}) {
97460
97460
  const tmp = `${dest}.${process.pid}.${randomUUID6()}.tmp`;
97461
97461
  const timeoutMs = options.timeoutMs ?? DEFAULT_DOWNLOAD_TIMEOUT_MS;
97462
97462
  const maxBytes = options.maxBytes;
97463
- return new Promise((resolve79, reject2) => {
97463
+ return new Promise((resolve80, reject2) => {
97464
97464
  const follow = (u, hops = 0) => {
97465
97465
  let activeResponse;
97466
97466
  let responsePipelineStarted = false;
@@ -97501,7 +97501,7 @@ function downloadFile(url, dest, options = {}) {
97501
97501
  const transfer = maxBytes === void 0 ? pipeline2(res, file) : pipeline2(res, enforceByteLimit(maxBytes), file);
97502
97502
  transfer.then(() => {
97503
97503
  renameSync4(tmp, dest);
97504
- resolve79();
97504
+ resolve80();
97505
97505
  }).catch((err) => {
97506
97506
  removePartialFile(tmp);
97507
97507
  reject2(requestError ?? err);
@@ -99545,7 +99545,7 @@ function hasGit2() {
99545
99545
  }
99546
99546
  function spawnNpx(args, opts = {}) {
99547
99547
  const npx = buildNpxCommand(args);
99548
- return new Promise((resolve79, reject2) => {
99548
+ return new Promise((resolve80, reject2) => {
99549
99549
  const child = spawn6(npx.command, npx.args, {
99550
99550
  // Route the child's stdout to the parent's stderr (fd 2), keeping stdin
99551
99551
  // inherited. `skills update --json` runs this installer before printing its
@@ -99574,7 +99574,7 @@ function spawnNpx(args, opts = {}) {
99574
99574
  }
99575
99575
  });
99576
99576
  child.on("close", (code, signal) => {
99577
- if (code === 0) resolve79();
99577
+ if (code === 0) resolve80();
99578
99578
  else if (signal === "SIGINT" || code === 130)
99579
99579
  reject2(new CliResultSignal({ exitCode: 0, kind: "success", presented: true }));
99580
99580
  else reject2(new Error(`npx ${args.join(" ")} exited with code ${code}`));
@@ -115290,7 +115290,7 @@ function isErrno(err, code) {
115290
115290
  return err.code === code;
115291
115291
  }
115292
115292
  function sleep(ms) {
115293
- return new Promise((resolve79) => setTimeout(resolve79, ms));
115293
+ return new Promise((resolve80) => setTimeout(resolve80, ms));
115294
115294
  }
115295
115295
  function tryAcquireDirLock(lockDir) {
115296
115296
  try {
@@ -116586,10 +116586,10 @@ function createFileServer2(options) {
116586
116586
  }
116587
116587
  });
116588
116588
  });
116589
- return new Promise((resolve79) => {
116589
+ return new Promise((resolve80) => {
116590
116590
  const connections = /* @__PURE__ */ new Set();
116591
116591
  const server = serve2({ fetch: app.fetch, port, hostname: "127.0.0.1" }, (info) => {
116592
- resolve79({
116592
+ resolve80({
116593
116593
  url: `http://localhost:${info.port}`,
116594
116594
  port: info.port,
116595
116595
  addPreHeadScript: (script) => {
@@ -119300,9 +119300,9 @@ var require_compress_binding = __commonJS({
119300
119300
  });
119301
119301
  } else {
119302
119302
  if (readAsync) {
119303
- return new Promise(function(resolve79, reject2) {
119303
+ return new Promise(function(resolve80, reject2) {
119304
119304
  readAsync(wasmBinaryFile, function(response) {
119305
- resolve79(new Uint8Array(response));
119305
+ resolve80(new Uint8Array(response));
119306
119306
  }, reject2);
119307
119307
  });
119308
119308
  }
@@ -120336,8 +120336,8 @@ var require_compress = __commonJS({
120336
120336
  "../../node_modules/.bun/wawoff2@2.0.1/node_modules/wawoff2/compress.js"(exports, module) {
120337
120337
  "use strict";
120338
120338
  var em_module = require_compress_binding();
120339
- var runtimeInit = new Promise((resolve79) => {
120340
- em_module.onRuntimeInitialized = resolve79;
120339
+ var runtimeInit = new Promise((resolve80) => {
120340
+ em_module.onRuntimeInitialized = resolve80;
120341
120341
  });
120342
120342
  module.exports = async function compress2(buffer) {
120343
120343
  await runtimeInit;
@@ -120856,9 +120856,9 @@ var require_decompress_binding = __commonJS({
120856
120856
  });
120857
120857
  } else {
120858
120858
  if (readAsync) {
120859
- return new Promise(function(resolve79, reject2) {
120859
+ return new Promise(function(resolve80, reject2) {
120860
120860
  readAsync(wasmBinaryFile, function(response) {
120861
- resolve79(new Uint8Array(response));
120861
+ resolve80(new Uint8Array(response));
120862
120862
  }, reject2);
120863
120863
  });
120864
120864
  }
@@ -121873,8 +121873,8 @@ var require_decompress = __commonJS({
121873
121873
  "../../node_modules/.bun/wawoff2@2.0.1/node_modules/wawoff2/decompress.js"(exports, module) {
121874
121874
  "use strict";
121875
121875
  var em_module = require_decompress_binding();
121876
- var runtimeInit = new Promise((resolve79) => {
121877
- em_module.onRuntimeInitialized = resolve79;
121876
+ var runtimeInit = new Promise((resolve80) => {
121877
+ em_module.onRuntimeInitialized = resolve80;
121878
121878
  });
121879
121879
  module.exports = async function decompress(buffer) {
121880
121880
  await runtimeInit;
@@ -122461,10 +122461,10 @@ function throwIfCallerAborted(signal) {
122461
122461
  async function waitForFontFetchRetry(delayMs, signal) {
122462
122462
  throwIfCallerAborted(signal);
122463
122463
  if (delayMs <= 0) return;
122464
- await new Promise((resolve79, reject2) => {
122464
+ await new Promise((resolve80, reject2) => {
122465
122465
  const timeout = setTimeout(() => {
122466
122466
  signal?.removeEventListener("abort", onAbort);
122467
- resolve79();
122467
+ resolve80();
122468
122468
  }, delayMs);
122469
122469
  const onAbort = () => {
122470
122470
  clearTimeout(timeout);
@@ -123193,10 +123193,10 @@ var init_semaphore = __esm({
123193
123193
  this.active++;
123194
123194
  return () => this.release();
123195
123195
  }
123196
- return new Promise((resolve79) => {
123196
+ return new Promise((resolve80) => {
123197
123197
  this.queue.push(() => {
123198
123198
  this.active++;
123199
- resolve79(() => this.release());
123199
+ resolve80(() => this.release());
123200
123200
  });
123201
123201
  });
123202
123202
  }
@@ -127228,7 +127228,7 @@ function resolveDeStallTimeoutMs() {
127228
127228
  return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_DE_STALL_MS;
127229
127229
  }
127230
127230
  function raceAgainstStall(promise, deadlineMs, message, signal) {
127231
- return new Promise((resolve79, reject2) => {
127231
+ return new Promise((resolve80, reject2) => {
127232
127232
  const timer = setTimeout(
127233
127233
  () => {
127234
127234
  reject2(
@@ -127242,7 +127242,7 @@ function raceAgainstStall(promise, deadlineMs, message, signal) {
127242
127242
  promise.then(
127243
127243
  (value) => {
127244
127244
  clearTimeout(timer);
127245
- resolve79(value);
127245
+ resolve80(value);
127246
127246
  },
127247
127247
  (error) => {
127248
127248
  clearTimeout(timer);
@@ -128127,8 +128127,8 @@ async function createShaderTransitionWorkerPool(opts) {
128127
128127
  if (terminated) {
128128
128128
  throw new Error("shader-blend pool already terminated");
128129
128129
  }
128130
- return new Promise((resolve79, reject2) => {
128131
- const task = traceEnabled ? { req, resolve: resolve79, reject: reject2, enqueuedAtMs: Date.now(), traceId: ++nextTaskId } : { req, resolve: resolve79, reject: reject2 };
128130
+ return new Promise((resolve80, reject2) => {
128131
+ const task = traceEnabled ? { req, resolve: resolve80, reject: reject2, enqueuedAtMs: Date.now(), traceId: ++nextTaskId } : { req, resolve: resolve80, reject: reject2 };
128132
128132
  const idle = slots.find((s2) => !s2.busy && !s2.dead);
128133
128133
  if (idle) {
128134
128134
  queue.unshift(task);
@@ -132037,12 +132037,12 @@ async function startHealthWorker(options = {}) {
132037
132037
  stdout: false,
132038
132038
  stderr: false
132039
132039
  });
132040
- await new Promise((resolve79, reject2) => {
132040
+ await new Promise((resolve80, reject2) => {
132041
132041
  const onMessage = (msg) => {
132042
132042
  if (msg?.type === "listening") {
132043
132043
  worker.off("error", onError);
132044
132044
  worker.off("message", onMessage);
132045
- resolve79();
132045
+ resolve80();
132046
132046
  } else if (msg?.type === "listen-error") {
132047
132047
  worker.off("error", onError);
132048
132048
  worker.off("message", onMessage);
@@ -136421,12 +136421,12 @@ async function runPipeline(options, session, media, format, bgFormat, ffmpegPath
136421
136421
  const drains = [];
136422
136422
  if (!fgWroteFully) {
136423
136423
  drains.push(
136424
- new Promise((resolve79) => fg.proc.stdin.once("drain", () => resolve79()))
136424
+ new Promise((resolve80) => fg.proc.stdin.once("drain", () => resolve80()))
136425
136425
  );
136426
136426
  }
136427
136427
  if (!bgWroteFully && bg) {
136428
136428
  drains.push(
136429
- new Promise((resolve79) => bg.proc.stdin.once("drain", () => resolve79()))
136429
+ new Promise((resolve80) => bg.proc.stdin.once("drain", () => resolve80()))
136430
136430
  );
136431
136431
  }
136432
136432
  await Promise.all(drains);
@@ -136459,11 +136459,11 @@ ${decoder.getStderr().slice(-400)}`
136459
136459
  return processed;
136460
136460
  }
136461
136461
  function waitForExit(proc, label2, getStderr) {
136462
- return new Promise((resolve79, reject2) => {
136462
+ return new Promise((resolve80, reject2) => {
136463
136463
  proc.on("error", reject2);
136464
136464
  proc.on("exit", (code, signal) => {
136465
136465
  if (code === 0 && !signal) {
136466
- resolve79();
136466
+ resolve80();
136467
136467
  return;
136468
136468
  }
136469
136469
  const cause = signal ? `killed by ${signal}` : `exited with code ${code}`;
@@ -142276,8 +142276,8 @@ async function startLoopback(opts) {
142276
142276
  const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
142277
142277
  let resolveResult;
142278
142278
  let rejectResult;
142279
- const result = new Promise((resolve79, reject2) => {
142280
- resolveResult = resolve79;
142279
+ const result = new Promise((resolve80, reject2) => {
142280
+ resolveResult = resolve80;
142281
142281
  rejectResult = reject2;
142282
142282
  });
142283
142283
  let redirectUri = "";
@@ -142293,7 +142293,7 @@ async function startLoopback(opts) {
142293
142293
  closed = true;
142294
142294
  clearTimeout(timer);
142295
142295
  server.closeAllConnections?.();
142296
- await new Promise((resolve79) => server.close(() => resolve79()));
142296
+ await new Promise((resolve80) => server.close(() => resolve80()));
142297
142297
  };
142298
142298
  const timer = setTimeout(() => {
142299
142299
  rejectResult(new Error(`OAuth callback timed out after ${timeoutMs}ms`));
@@ -142304,11 +142304,11 @@ async function startLoopback(opts) {
142304
142304
  return { result, redirectUri, close };
142305
142305
  }
142306
142306
  async function listen(server, port) {
142307
- await new Promise((resolve79, reject2) => {
142307
+ await new Promise((resolve80, reject2) => {
142308
142308
  server.once("error", reject2);
142309
142309
  server.listen(port, "127.0.0.1", () => {
142310
142310
  server.off("error", reject2);
142311
- resolve79();
142311
+ resolve80();
142312
142312
  });
142313
142313
  });
142314
142314
  }
@@ -142495,7 +142495,7 @@ async function startDeviceAuthorizationFlow(opts = {}) {
142495
142495
  const runtime = {
142496
142496
  clientId: resolveClientId(),
142497
142497
  fetchImpl: opts.fetchImpl ?? fetch,
142498
- sleepImpl: opts.sleepImpl ?? ((ms) => new Promise((resolve79) => setTimeout(resolve79, ms))),
142498
+ sleepImpl: opts.sleepImpl ?? ((ms) => new Promise((resolve80) => setTimeout(resolve80, ms))),
142499
142499
  now: opts.now ?? Date.now,
142500
142500
  requestTimeoutMs: opts.requestTimeoutMs ?? DEVICE_REQUEST_TIMEOUT_MS
142501
142501
  };
@@ -143189,7 +143189,7 @@ function isRequestTimeout(error) {
143189
143189
  return error instanceof DOMException && (error.name === "TimeoutError" || error.name === "AbortError");
143190
143190
  }
143191
143191
  function waitBeforePublishRetry() {
143192
- return new Promise((resolve79) => setTimeout(resolve79, PUBLISH_RETRY_DELAY_MS));
143192
+ return new Promise((resolve80) => setTimeout(resolve80, PUBLISH_RETRY_DELAY_MS));
143193
143193
  }
143194
143194
  async function fetchForPublish(input2, createInit, failureStage, attempts = 1) {
143195
143195
  if (attempts < 1) throw new RangeError("Publish fetch attempts must be at least 1");
@@ -145230,18 +145230,18 @@ async function getDoctorSummary() {
145230
145230
  }
145231
145231
  }
145232
145232
  function askQuestion(prompt) {
145233
- return new Promise((resolve79) => {
145233
+ return new Promise((resolve80) => {
145234
145234
  const rl = readline.createInterface({
145235
145235
  input: process.stdin,
145236
145236
  output: process.stdout
145237
145237
  });
145238
145238
  rl.question(prompt, (answer) => {
145239
145239
  rl.close();
145240
- resolve79(answer);
145240
+ resolve80(answer);
145241
145241
  });
145242
145242
  const timeout = setTimeout(() => {
145243
145243
  rl.close();
145244
- resolve79("");
145244
+ resolve80("");
145245
145245
  }, 1e4);
145246
145246
  if (typeof timeout === "object" && timeout !== null && "unref" in timeout) {
145247
145247
  timeout.unref();
@@ -147959,12 +147959,12 @@ async function getCompositionDuration3(page) {
147959
147959
  }
147960
147960
  function raceMediaReady(el, deadlineMs) {
147961
147961
  if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
147962
- return new Promise((resolve79) => {
147962
+ return new Promise((resolve80) => {
147963
147963
  const onReady = () => {
147964
147964
  el.removeEventListener("loadedmetadata", onReady);
147965
147965
  el.removeEventListener("error", onReady);
147966
147966
  clearTimeout(timer);
147967
- resolve79();
147967
+ resolve80();
147968
147968
  };
147969
147969
  el.addEventListener("loadedmetadata", onReady, { once: true });
147970
147970
  el.addEventListener("error", onReady, { once: true });
@@ -147980,7 +147980,7 @@ async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
147980
147980
  await Promise.all(
147981
147981
  nodes.map((el) => {
147982
147982
  if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
147983
- return new Promise((resolve79) => {
147983
+ return new Promise((resolve80) => {
147984
147984
  const cleanup = () => {
147985
147985
  el.removeEventListener("loadedmetadata", onReady);
147986
147986
  el.removeEventListener("error", onReady);
@@ -147988,7 +147988,7 @@ async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
147988
147988
  };
147989
147989
  const onReady = () => {
147990
147990
  cleanup();
147991
- resolve79();
147991
+ resolve80();
147992
147992
  };
147993
147993
  el.addEventListener("loadedmetadata", onReady, { once: true });
147994
147994
  el.addEventListener("error", onReady, { once: true });
@@ -148638,6 +148638,7 @@ function createPageDriver(page, setTime) {
148638
148638
  return {
148639
148639
  initialize: (contrast) => injectAuditScripts(page, contrast),
148640
148640
  getDuration: () => getCompositionDuration4(page),
148641
+ hasNoTimelineDeclaration: () => hasNoTimelineDeclaration(page),
148641
148642
  getTransitionBoundaries: () => collectTweenBoundaries2(page),
148642
148643
  getCanvas: () => page.evaluate(() => ({ width: window.innerWidth, height: window.innerHeight })),
148643
148644
  findAmbiguousSelectors: (selectors) => findAmbiguousSelectors2(page, selectors),
@@ -148660,6 +148661,11 @@ function createPageDriver(page, setTime) {
148660
148661
  collectContrast: (time, annotations) => collectContrast(page, time, annotations)
148661
148662
  };
148662
148663
  }
148664
+ async function hasNoTimelineDeclaration(page) {
148665
+ return page.evaluate(
148666
+ () => document.querySelector("[data-composition-id]")?.hasAttribute("data-no-timeline") ?? false
148667
+ );
148668
+ }
148663
148669
  async function injectAuditScripts(page, contrast) {
148664
148670
  await page.addScriptTag({ content: loadBrowserScript("layout-audit.browser.js") });
148665
148671
  await page.addScriptTag({ content: loadBrowserScript("motion-sample.browser.js") });
@@ -149580,7 +149586,8 @@ async function collectMotionOverlapSamples(driver, grid, collected) {
149580
149586
  collected.layoutIssues.push(...await driver.collectOverlap(time));
149581
149587
  }
149582
149588
  }
149583
- function detectSweepStatic(duration, geometrySignatures, motionIssues) {
149589
+ function detectSweepStatic(duration, geometrySignatures, motionIssues, hasNoTimelineDeclaration2) {
149590
+ if (hasNoTimelineDeclaration2) return [];
149584
149591
  if (duration < SWEEP_STATIC_MIN_DURATION_SEC) return [];
149585
149592
  if (geometrySignatures.length < 2) return [];
149586
149593
  if (motionIssues.some((issue) => issue.code === "motion_frozen")) return [];
@@ -149933,7 +149940,8 @@ async function runAuditGrid(driver, options, motion) {
149933
149940
  const sweepFindings = detectSweepStatic(
149934
149941
  grid.duration,
149935
149942
  collected.geometrySignatures,
149936
- motionIssues
149943
+ motionIssues,
149944
+ await driver.hasNoTimelineDeclaration()
149937
149945
  );
149938
149946
  const rotationFindings = detectRotationPivotDrift(
149939
149947
  collected.rotationSamples,
@@ -151932,14 +151940,14 @@ function inlineHelper3(call, ctx) {
151932
151940
  };
151933
151941
  return expandBody3(fn.body.body, bindings, prov, ctx);
151934
151942
  }
151935
- function assignStep3(update2, resolve79) {
151936
- if (update2.operator === "+=") return asNum3(resolve79(update2.right));
151943
+ function assignStep3(update2, resolve80) {
151944
+ if (update2.operator === "+=") return asNum3(resolve80(update2.right));
151937
151945
  if (update2.operator === "-=") {
151938
- const s2 = asNum3(resolve79(update2.right));
151946
+ const s2 = asNum3(resolve80(update2.right));
151939
151947
  return s2 === void 0 ? void 0 : -s2;
151940
151948
  }
151941
151949
  if (update2.operator === "=" && update2.right?.type === "BinaryExpression") {
151942
- return asNum3(resolve79(update2.right.right));
151950
+ return asNum3(resolve80(update2.right.right));
151943
151951
  }
151944
151952
  return void 0;
151945
151953
  }
@@ -151948,10 +151956,10 @@ function updatedVarName3(update2) {
151948
151956
  if (update2?.type === "AssignmentExpression") return update2.left?.name ?? null;
151949
151957
  return null;
151950
151958
  }
151951
- function loopStep3(update2, varName, resolve79) {
151959
+ function loopStep3(update2, varName, resolve80) {
151952
151960
  if (updatedVarName3(update2) !== varName) return void 0;
151953
151961
  if (update2.type === "UpdateExpression") return update2.operator === "++" ? 1 : -1;
151954
- return assignStep3(update2, resolve79);
151962
+ return assignStep3(update2, resolve80);
151955
151963
  }
151956
151964
  function asNum3(v2) {
151957
151965
  return typeof v2 === "number" && Number.isFinite(v2) ? v2 : void 0;
@@ -151968,13 +151976,13 @@ function forInitVar3(init) {
151968
151976
  const d2 = init.declarations[0];
151969
151977
  return d2.id?.type === "Identifier" ? { name: d2.id.name, initExpr: d2.init } : null;
151970
151978
  }
151971
- function parseForHeader3(stmt, resolve79) {
151979
+ function parseForHeader3(stmt, resolve80) {
151972
151980
  const iv = forInitVar3(stmt.init);
151973
151981
  const test = stmt.test;
151974
151982
  if (!iv || test?.type !== "BinaryExpression" || test.left?.name !== iv.name) return null;
151975
- const start = asNum3(resolve79(iv.initExpr));
151976
- const end = asNum3(resolve79(test.right));
151977
- const step = loopStep3(stmt.update, iv.name, resolve79);
151983
+ const start = asNum3(resolve80(iv.initExpr));
151984
+ const end = asNum3(resolve80(test.right));
151985
+ const step = loopStep3(stmt.update, iv.name, resolve80);
151978
151986
  if (start === void 0 || end === void 0 || !step) return null;
151979
151987
  return { v: iv.name, start, end, op: test.operator, step };
151980
151988
  }
@@ -152086,12 +152094,12 @@ function expandStatements3(stmts, ctx) {
152086
152094
  }
152087
152095
  return out;
152088
152096
  }
152089
- function inlineComputedTimelines3(ast, timelineVar, resolve79) {
152097
+ function inlineComputedTimelines3(ast, timelineVar, resolve80) {
152090
152098
  const helpers = collectInlinableHelpers3(ast, timelineVar);
152091
152099
  const ctx = {
152092
152100
  helpers,
152093
152101
  timelineVar,
152094
- resolve: resolve79,
152102
+ resolve: resolve80,
152095
152103
  depth: 0,
152096
152104
  site: { n: 0 },
152097
152105
  order: { n: 0 }
@@ -153477,9 +153485,26 @@ __export(motionShot_exports, {
153477
153485
  ensureShotOutputDir: () => ensureShotOutputDir,
153478
153486
  seekAllAdaptersInBrowser: () => seekAllAdaptersInBrowser
153479
153487
  });
153480
- import { mkdirSync as mkdirSync49, writeFileSync as writeFileSync39 } from "fs";
153481
- import { dirname as dirname46 } from "path";
153482
- function ensureShotOutputDir(outPath) {
153488
+ import { mkdirSync as mkdirSync49, statSync as statSync31, writeFileSync as writeFileSync39 } from "fs";
153489
+ import { dirname as dirname46, resolve as resolve60 } from "path";
153490
+ function pathsReferToSameFile(firstPath, secondPath) {
153491
+ const first = resolve60(firstPath);
153492
+ const second = resolve60(secondPath);
153493
+ if (first === second) return true;
153494
+ try {
153495
+ const firstStat = statSync31(first);
153496
+ const secondStat = statSync31(second);
153497
+ return firstStat.dev === secondStat.dev && firstStat.ino === secondStat.ino;
153498
+ } catch {
153499
+ return false;
153500
+ }
153501
+ }
153502
+ function ensureShotOutputDir(outPath, sourcePath) {
153503
+ if (sourcePath && pathsReferToSameFile(outPath, sourcePath)) {
153504
+ throw new Error(
153505
+ `--shot output must not overwrite the composition source: ${sourcePath}. Choose a separate .png path.`
153506
+ );
153507
+ }
153483
153508
  mkdirSync49(dirname46(outPath), { recursive: true });
153484
153509
  }
153485
153510
  function applyOrbitCamera(selectors, cam) {
@@ -153502,13 +153527,13 @@ function applyOrbitCamera(selectors, cam) {
153502
153527
  lens.style.perspectiveOrigin = "50% 50%";
153503
153528
  }
153504
153529
  function compositeGhostFrames(frames, alphas, W2, H3, label2) {
153505
- return new Promise((resolve79) => {
153530
+ return new Promise((resolve80) => {
153506
153531
  const cv = document.createElement("canvas");
153507
153532
  cv.width = W2;
153508
153533
  cv.height = H3;
153509
153534
  const ctx = cv.getContext("2d");
153510
153535
  if (!ctx) {
153511
- resolve79("");
153536
+ resolve80("");
153512
153537
  return;
153513
153538
  }
153514
153539
  ctx.fillStyle = "#000";
@@ -153520,7 +153545,7 @@ function compositeGhostFrames(frames, alphas, W2, H3, label2) {
153520
153545
  ctx.font = "600 22px ui-monospace, SFMono-Regular, Menlo, monospace";
153521
153546
  ctx.fillStyle = "#86c2ff";
153522
153547
  ctx.fillText(label2, 24, 38);
153523
- resolve79(cv.toDataURL("image/png"));
153548
+ resolve80(cv.toDataURL("image/png"));
153524
153549
  return;
153525
153550
  }
153526
153551
  const img = new Image();
@@ -153875,7 +153900,7 @@ async function captureMarkerOnionSkin(page, requests, times, size, camera, frame
153875
153900
  return outPath;
153876
153901
  }
153877
153902
  async function captureMotionPathShot(projectDir, requestsIn, outPath, opts = {}) {
153878
- ensureShotOutputDir(outPath);
153903
+ ensureShotOutputDir(outPath, resolve60(projectDir, opts.entryFile ?? "index.html"));
153879
153904
  let requests = requestsIn;
153880
153905
  const samples = Math.max(1, Math.min(60, opts.samples ?? 9));
153881
153906
  const layout2 = opts.layout ?? "path";
@@ -153943,8 +153968,8 @@ __export(keyframes_exports, {
153943
153968
  resolveScope: () => resolveScope,
153944
153969
  surfaceComposition: () => surfaceComposition
153945
153970
  });
153946
- import { existsSync as existsSync93, readFileSync as readFileSync68, statSync as statSync31 } from "fs";
153947
- import { resolve as resolve60, dirname as dirname47, basename as basename18, join as join103, relative as relative25, sep as sep13 } from "path";
153971
+ import { existsSync as existsSync93, readFileSync as readFileSync68, statSync as statSync33 } from "fs";
153972
+ import { resolve as resolve61, dirname as dirname47, basename as basename18, join as join103, relative as relative25, sep as sep13 } from "path";
153948
153973
  function queryIncludingTemplates(html, selector) {
153949
153974
  const doc = new DOMParser().parseFromString(html, "text/html");
153950
153975
  const roots = [doc];
@@ -154314,7 +154339,7 @@ function collectCompositions(indexPath2) {
154314
154339
  for (const div of Array.from(doc.querySelectorAll("[data-composition-src]"))) {
154315
154340
  const src = div.getAttribute("data-composition-src");
154316
154341
  if (!src) continue;
154317
- const subPath = resolve60(baseDir, src);
154342
+ const subPath = resolve61(baseDir, src);
154318
154343
  if (!existsSync93(subPath)) continue;
154319
154344
  const id = div.getAttribute("data-composition-id") ?? src;
154320
154345
  out.push(surfaceComposition(readFileSync68(subPath, "utf-8"), id, src));
@@ -154421,7 +154446,7 @@ async function runOnionShot(comps, allComps, projectDir, entryFile, args) {
154421
154446
  console.log(c.dim(guardError));
154422
154447
  return true;
154423
154448
  }
154424
- const saved = await captureMotionPathShot2(projectDir, requests, resolve60(args.shot), {
154449
+ const saved = await captureMotionPathShot2(projectDir, requests, resolve61(args.shot), {
154425
154450
  ...onionShotOptions(args),
154426
154451
  entryFile
154427
154452
  });
@@ -154434,8 +154459,8 @@ function resolveScope(args) {
154434
154459
  let projectName;
154435
154460
  let projectDir;
154436
154461
  let entryFile;
154437
- if (raw && raw.endsWith(".html") && existsSync93(raw) && statSync31(raw).isFile()) {
154438
- const entryPath = resolve60(raw);
154462
+ if (raw && raw.endsWith(".html") && existsSync93(raw) && statSync33(raw).isFile()) {
154463
+ const entryPath = resolve61(raw);
154439
154464
  comps = [surfaceComposition(readFileSync68(entryPath, "utf-8"), basename18(entryPath), entryPath)];
154440
154465
  projectName = basename18(entryPath);
154441
154466
  projectDir = findProjectRoot(entryPath);
@@ -154657,7 +154682,7 @@ __export(info_exports, {
154657
154682
  examples: () => examples17,
154658
154683
  orientation: () => orientation
154659
154684
  });
154660
- import { readFileSync as readFileSync69, readdirSync as readdirSync31, statSync as statSync33 } from "fs";
154685
+ import { readFileSync as readFileSync69, readdirSync as readdirSync31, statSync as statSync34 } from "fs";
154661
154686
  import { join as join104 } from "path";
154662
154687
  function orientation(width, height) {
154663
154688
  if (width > height) return "landscape";
@@ -154676,7 +154701,7 @@ function totalSize(dir) {
154676
154701
  if (entry.isDirectory()) {
154677
154702
  total += totalSize(path2);
154678
154703
  } else {
154679
- total += statSync33(path2).size;
154704
+ total += statSync34(path2).size;
154680
154705
  }
154681
154706
  }
154682
154707
  return total;
@@ -154765,7 +154790,7 @@ __export(compositions_exports, {
154765
154790
  parseSubComposition: () => parseSubComposition
154766
154791
  });
154767
154792
  import { existsSync as existsSync94, readFileSync as readFileSync70 } from "fs";
154768
- import { resolve as resolve61, dirname as dirname48 } from "path";
154793
+ import { resolve as resolve62, dirname as dirname48 } from "path";
154769
154794
  function countRenderableDescendants(root) {
154770
154795
  return Array.from(root.querySelectorAll("*")).filter(
154771
154796
  (el) => !NON_RENDERED_TAGS2.has(el.tagName.toLowerCase())
@@ -154843,7 +154868,7 @@ function parseCompositions(html, baseDir) {
154843
154868
  const height = parseInt(div.getAttribute("data-height") ?? "1080", 10);
154844
154869
  const compositionSrc = div.getAttribute("data-composition-src");
154845
154870
  if (compositionSrc) {
154846
- const subPath = resolve61(baseDir, compositionSrc);
154871
+ const subPath = resolve62(baseDir, compositionSrc);
154847
154872
  if (existsSync94(subPath)) {
154848
154873
  const subHtml = readFileSync70(subPath, "utf-8");
154849
154874
  const subInfo = parseSubComposition(subHtml, id, width, height);
@@ -154989,8 +155014,8 @@ __export(benchmark_exports, {
154989
155014
  default: () => benchmark_default,
154990
155015
  examples: () => examples19
154991
155016
  });
154992
- import { existsSync as existsSync95, statSync as statSync34 } from "fs";
154993
- import { resolve as resolve62, join as join105 } from "path";
155017
+ import { existsSync as existsSync95, statSync as statSync35 } from "fs";
155018
+ import { resolve as resolve63, join as join105 } from "path";
154994
155019
  var examples19, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
154995
155020
  var init_benchmark = __esm({
154996
155021
  "src/commands/benchmark.ts"() {
@@ -155036,7 +155061,7 @@ var init_benchmark = __esm({
155036
155061
  failCommand();
155037
155062
  }
155038
155063
  const jsonOutput = args.json ?? false;
155039
- const benchDir = resolve62("renders", ".benchmark");
155064
+ const benchDir = resolve63("renders", ".benchmark");
155040
155065
  let producer = null;
155041
155066
  try {
155042
155067
  producer = await loadProducer();
@@ -155084,7 +155109,7 @@ var init_benchmark = __esm({
155084
155109
  const elapsedMs = Date.now() - startTime;
155085
155110
  let fileSize = null;
155086
155111
  if (existsSync95(outputPath)) {
155087
- const stat3 = statSync34(outputPath);
155112
+ const stat3 = statSync35(outputPath);
155088
155113
  fileSize = stat3.size;
155089
155114
  }
155090
155115
  runs.push({ elapsedMs, fileSize });
@@ -155357,7 +155382,7 @@ __export(remove_background_exports, {
155357
155382
  default: () => remove_background_default,
155358
155383
  examples: () => examples21
155359
155384
  });
155360
- import { resolve as resolve63 } from "path";
155385
+ import { resolve as resolve64 } from "path";
155361
155386
  import { existsSync as existsSync96 } from "fs";
155362
155387
  async function showInfo(json) {
155363
155388
  const { selectProviders: selectProviders2, listAvailableProviders: listAvailableProviders2, DEFAULT_MODEL: DEFAULT_MODEL5, MODEL_MEMORY_MB: MODEL_MEMORY_MB2, modelPath: modelPath2 } = await Promise.resolve().then(() => (init_manager3(), manager_exports3));
@@ -155501,10 +155526,10 @@ var init_remove_background = __esm({
155501
155526
  );
155502
155527
  failCommand();
155503
155528
  }
155504
- const inputPath = resolve63(args.input);
155505
- const outputPath = resolve63(args.output);
155529
+ const inputPath = resolve64(args.input);
155530
+ const outputPath = resolve64(args.output);
155506
155531
  const backgroundOutputArg = args["background-output"];
155507
- const backgroundOutputPath = backgroundOutputArg ? resolve63(backgroundOutputArg) : void 0;
155532
+ const backgroundOutputPath = backgroundOutputArg ? resolve64(backgroundOutputArg) : void 0;
155508
155533
  const { render: render3 } = await Promise.resolve().then(() => (init_pipeline(), pipeline_exports));
155509
155534
  const spin = args.json ? null : ft();
155510
155535
  spin?.start("Preparing background-removal pipeline...");
@@ -155671,7 +155696,7 @@ __export(transcribe_exports2, {
155671
155696
  examples: () => examples22
155672
155697
  });
155673
155698
  import { existsSync as existsSync98, writeFileSync as writeFileSync41 } from "fs";
155674
- import { resolve as resolve64, join as join107, extname as extname17, dirname as dirname49 } from "path";
155699
+ import { resolve as resolve65, join as join107, extname as extname17, dirname as dirname49 } from "path";
155675
155700
  function parseTimeoutMs(raw, json) {
155676
155701
  const source = raw ?? process.env["HYPERFRAMES_TRANSCRIBE_TIMEOUT_MS"];
155677
155702
  if (source == null || source === "") return void 0;
@@ -155725,7 +155750,7 @@ async function exportTranscript(inputPath, dir, to, output, json, preserveCues)
155725
155750
  const { words, format } = loadTranscript2(inputPath);
155726
155751
  if (words.length === 0) exitNoWords(json);
155727
155752
  const preGrouped = preserveCues || format === "srt" || format === "vtt" || void 0;
155728
- const outPath = resolve64(output ?? join107(dir, `transcript.${to}`));
155753
+ const outPath = resolve65(output ?? join107(dir, `transcript.${to}`));
155729
155754
  const content = to === "srt" ? formatSrt2(words, { preGrouped }) : formatVtt2(words, { preGrouped });
155730
155755
  writeFileSync41(outPath, content);
155731
155756
  if (json) {
@@ -155908,14 +155933,14 @@ var init_transcribe2 = __esm({
155908
155933
  }
155909
155934
  },
155910
155935
  async run({ args }) {
155911
- const inputPath = resolve64(args.input);
155936
+ const inputPath = resolve65(args.input);
155912
155937
  if (!existsSync98(inputPath)) {
155913
155938
  const message = `File not found: ${args.input}`;
155914
155939
  trackCommandFailure("transcribe", message);
155915
155940
  console.error(c.error(message));
155916
155941
  failCommand();
155917
155942
  }
155918
- const dir = resolve64(args.dir ?? dirname49(inputPath));
155943
+ const dir = resolve65(args.dir ?? dirname49(inputPath));
155919
155944
  const ext = extname17(inputPath).toLowerCase();
155920
155945
  const isImport = ext === ".json" || ext === ".srt" || ext === ".vtt";
155921
155946
  const to = parseExportFormat(args.to, args.json);
@@ -156259,7 +156284,7 @@ __export(tts_exports, {
156259
156284
  examples: () => examples23
156260
156285
  });
156261
156286
  import { existsSync as existsSync101, readFileSync as readFileSync73 } from "fs";
156262
- import { resolve as resolve65, extname as extname18 } from "path";
156287
+ import { resolve as resolve66, extname as extname18 } from "path";
156263
156288
  function listVoices(json) {
156264
156289
  const rows = BUNDLED_VOICES.map((v2) => ({ ...v2, defaultLang: inferLangFromVoiceId(v2.id) }));
156265
156290
  if (json) {
@@ -156374,7 +156399,7 @@ var init_tts = __esm({
156374
156399
  failCommand();
156375
156400
  }
156376
156401
  let text2;
156377
- const maybeFile = resolve65(input2);
156402
+ const maybeFile = resolve66(input2);
156378
156403
  if (existsSync101(maybeFile) && extname18(maybeFile).toLowerCase() === ".txt") {
156379
156404
  text2 = readFileSync73(maybeFile, "utf-8").trim();
156380
156405
  if (!text2) {
@@ -156388,7 +156413,7 @@ var init_tts = __esm({
156388
156413
  console.error(c.error("No text provided."));
156389
156414
  failCommand();
156390
156415
  }
156391
- const output = resolve65(args.output ?? "speech.wav");
156416
+ const output = resolve66(args.output ?? "speech.wav");
156392
156417
  const voice = args.voice ?? DEFAULT_VOICE;
156393
156418
  const speed = args.speed ? parseFloat(args.speed) : 1;
156394
156419
  if (isNaN(speed) || speed <= 0 || speed > 3) {
@@ -156469,13 +156494,13 @@ __export(docs_exports, {
156469
156494
  examples: () => examples24
156470
156495
  });
156471
156496
  import { readFileSync as readFileSync74, existsSync as existsSync103 } from "fs";
156472
- import { resolve as resolve66, dirname as dirname51, join as join110 } from "path";
156497
+ import { resolve as resolve67, dirname as dirname51, join as join110 } from "path";
156473
156498
  import { fileURLToPath as fileURLToPath14 } from "url";
156474
156499
  function docsDir() {
156475
156500
  const thisFile = fileURLToPath14(import.meta.url);
156476
156501
  const dir = dirname51(thisFile);
156477
- const devPath = resolve66(dir, "..", "docs");
156478
- const builtPath = resolve66(dir, "docs");
156502
+ const devPath = resolve67(dir, "..", "docs");
156503
+ const builtPath = resolve67(dir, "docs");
156479
156504
  return existsSync103(devPath) ? devPath : builtPath;
156480
156505
  }
156481
156506
  function formatInlineCode(line2) {
@@ -156978,7 +157003,7 @@ __export(upgrade_exports, {
156978
157003
  });
156979
157004
  import { execFileSync as execFileSync17 } from "child_process";
156980
157005
  import { existsSync as existsSync105, readFileSync as readFileSync75, writeFileSync as writeFileSync44, renameSync as renameSync16 } from "fs";
156981
- import { resolve as resolve67 } from "path";
157006
+ import { resolve as resolve68 } from "path";
156982
157007
  async function confirmUpgrade() {
156983
157008
  const shouldUpgrade = await ue({ message: "Upgrade now?" });
156984
157009
  return !q(shouldUpgrade) && shouldUpgrade === true;
@@ -157036,7 +157061,7 @@ function resolveProjectArgs(project, opts) {
157036
157061
  return { dir: project, check: opts.check, json: opts.json };
157037
157062
  }
157038
157063
  async function upgradeProjectPins(dir, opts) {
157039
- const pkgPath = resolve67(dir, "package.json");
157064
+ const pkgPath = resolve68(dir, "package.json");
157040
157065
  if (!existsSync105(pkgPath)) {
157041
157066
  return { changed: false, from: [], to: "", path: pkgPath };
157042
157067
  }
@@ -157118,7 +157143,7 @@ var init_upgrade = __esm({
157118
157143
  const checkOnly = args.check === true;
157119
157144
  if (args.project !== void 0) {
157120
157145
  const p2 = resolveProjectArgs(args.project, { check: checkOnly, json: useJson });
157121
- const res = await upgradeProjectPins(resolve67(p2.dir), { json: p2.json, check: p2.check });
157146
+ const res = await upgradeProjectPins(resolve68(p2.dir), { json: p2.json, check: p2.check });
157122
157147
  if (p2.json) {
157123
157148
  console.log(JSON.stringify(withMeta(res), null, 2));
157124
157149
  return;
@@ -157317,7 +157342,7 @@ __export(feedback_exports, {
157317
157342
  examples: () => examples27
157318
157343
  });
157319
157344
  import { randomUUID as randomUUID12 } from "crypto";
157320
- import { resolve as resolve68 } from "path";
157345
+ import { resolve as resolve69 } from "path";
157321
157346
  import open from "open";
157322
157347
  function normalizeComment(raw) {
157323
157348
  return raw || void 0;
@@ -157390,7 +157415,7 @@ async function openAndPrintIssue(url) {
157390
157415
  console.log();
157391
157416
  }
157392
157417
  async function fileGithubIssue(opts) {
157393
- const dir = resolve68(opts.rawDir ?? ".");
157418
+ const dir = resolve69(opts.rawDir ?? ".");
157394
157419
  if (!await confirmFileIssue(dir, opts.yes)) return;
157395
157420
  const repoPublicUrl = await publishRepro(dir);
157396
157421
  const url = buildIssueUrl({
@@ -158195,7 +158220,7 @@ var require_p_retry = __commonJS({
158195
158220
  return error;
158196
158221
  };
158197
158222
  var isNetworkError = (errorMessage2) => networkErrorMsgs.includes(errorMessage2);
158198
- var pRetry2 = (input2, options) => new Promise((resolve79, reject2) => {
158223
+ var pRetry2 = (input2, options) => new Promise((resolve80, reject2) => {
158199
158224
  options = {
158200
158225
  onFailedAttempt: () => {
158201
158226
  },
@@ -158205,7 +158230,7 @@ var require_p_retry = __commonJS({
158205
158230
  const operation = retry.operation(options);
158206
158231
  operation.attempt(async (attemptNumber) => {
158207
158232
  try {
158208
- resolve79(await input2(attemptNumber));
158233
+ resolve80(await input2(attemptNumber));
158209
158234
  } catch (error) {
158210
158235
  if (!(error instanceof Error)) {
158211
158236
  reject2(new TypeError(`Non-error was thrown: "${error}". You should only throw errors.`));
@@ -158741,8 +158766,8 @@ var require_retry3 = __commonJS({
158741
158766
  }
158742
158767
  const delay2 = getNextRetryDelay(config);
158743
158768
  err.config.retryConfig.currentRetryAttempt += 1;
158744
- const backoff = config.retryBackoff ? config.retryBackoff(err, delay2) : new Promise((resolve79) => {
158745
- setTimeout(resolve79, delay2);
158769
+ const backoff = config.retryBackoff ? config.retryBackoff(err, delay2) : new Promise((resolve80) => {
158770
+ setTimeout(resolve80, delay2);
158746
158771
  });
158747
158772
  if (config.onRetryAttempt) {
158748
158773
  await config.onRetryAttempt(err);
@@ -158870,8 +158895,8 @@ var require_helpers = __commonJS({
158870
158895
  function req(url, opts = {}) {
158871
158896
  const href = typeof url === "string" ? url : url.href;
158872
158897
  const req2 = (href.startsWith("https:") ? https2 : http4).request(url, opts);
158873
- const promise = new Promise((resolve79, reject2) => {
158874
- req2.once("response", resolve79).once("error", reject2).end();
158898
+ const promise = new Promise((resolve80, reject2) => {
158899
+ req2.once("response", resolve80).once("error", reject2).end();
158875
158900
  });
158876
158901
  req2.then = promise.then.bind(promise);
158877
158902
  return req2;
@@ -159048,7 +159073,7 @@ var require_parse_proxy_response = __commonJS({
159048
159073
  var debug_1 = __importDefault2(__require("debug"));
159049
159074
  var debug = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
159050
159075
  function parseProxyResponse(socket) {
159051
- return new Promise((resolve79, reject2) => {
159076
+ return new Promise((resolve80, reject2) => {
159052
159077
  let buffersLength = 0;
159053
159078
  const buffers = [];
159054
159079
  function read() {
@@ -159114,7 +159139,7 @@ var require_parse_proxy_response = __commonJS({
159114
159139
  }
159115
159140
  debug("got proxy server response: %o %o", firstLine, headers);
159116
159141
  cleanup();
159117
- resolve79({
159142
+ resolve80({
159118
159143
  connect: {
159119
159144
  statusCode,
159120
159145
  statusText,
@@ -159358,7 +159383,7 @@ var require_ponyfill_es2018 = __commonJS({
159358
159383
  return new originalPromise(executor);
159359
159384
  }
159360
159385
  function promiseResolvedWith(value) {
159361
- return newPromise((resolve79) => resolve79(value));
159386
+ return newPromise((resolve80) => resolve80(value));
159362
159387
  }
159363
159388
  function promiseRejectedWith(reason) {
159364
159389
  return originalPromiseReject(reason);
@@ -159528,8 +159553,8 @@ var require_ponyfill_es2018 = __commonJS({
159528
159553
  return new TypeError("Cannot " + name + " a stream using a released reader");
159529
159554
  }
159530
159555
  function defaultReaderClosedPromiseInitialize(reader) {
159531
- reader._closedPromise = newPromise((resolve79, reject2) => {
159532
- reader._closedPromise_resolve = resolve79;
159556
+ reader._closedPromise = newPromise((resolve80, reject2) => {
159557
+ reader._closedPromise_resolve = resolve80;
159533
159558
  reader._closedPromise_reject = reject2;
159534
159559
  });
159535
159560
  }
@@ -159703,8 +159728,8 @@ var require_ponyfill_es2018 = __commonJS({
159703
159728
  }
159704
159729
  let resolvePromise;
159705
159730
  let rejectPromise;
159706
- const promise = newPromise((resolve79, reject2) => {
159707
- resolvePromise = resolve79;
159731
+ const promise = newPromise((resolve80, reject2) => {
159732
+ resolvePromise = resolve80;
159708
159733
  rejectPromise = reject2;
159709
159734
  });
159710
159735
  const readRequest = {
@@ -159809,8 +159834,8 @@ var require_ponyfill_es2018 = __commonJS({
159809
159834
  const reader = this._reader;
159810
159835
  let resolvePromise;
159811
159836
  let rejectPromise;
159812
- const promise = newPromise((resolve79, reject2) => {
159813
- resolvePromise = resolve79;
159837
+ const promise = newPromise((resolve80, reject2) => {
159838
+ resolvePromise = resolve80;
159814
159839
  rejectPromise = reject2;
159815
159840
  });
159816
159841
  const readRequest = {
@@ -160829,8 +160854,8 @@ var require_ponyfill_es2018 = __commonJS({
160829
160854
  }
160830
160855
  let resolvePromise;
160831
160856
  let rejectPromise;
160832
- const promise = newPromise((resolve79, reject2) => {
160833
- resolvePromise = resolve79;
160857
+ const promise = newPromise((resolve80, reject2) => {
160858
+ resolvePromise = resolve80;
160834
160859
  rejectPromise = reject2;
160835
160860
  });
160836
160861
  const readIntoRequest = {
@@ -161142,10 +161167,10 @@ var require_ponyfill_es2018 = __commonJS({
161142
161167
  wasAlreadyErroring = true;
161143
161168
  reason = void 0;
161144
161169
  }
161145
- const promise = newPromise((resolve79, reject2) => {
161170
+ const promise = newPromise((resolve80, reject2) => {
161146
161171
  stream._pendingAbortRequest = {
161147
161172
  _promise: void 0,
161148
- _resolve: resolve79,
161173
+ _resolve: resolve80,
161149
161174
  _reject: reject2,
161150
161175
  _reason: reason,
161151
161176
  _wasAlreadyErroring: wasAlreadyErroring
@@ -161162,9 +161187,9 @@ var require_ponyfill_es2018 = __commonJS({
161162
161187
  if (state === "closed" || state === "errored") {
161163
161188
  return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));
161164
161189
  }
161165
- const promise = newPromise((resolve79, reject2) => {
161190
+ const promise = newPromise((resolve80, reject2) => {
161166
161191
  const closeRequest = {
161167
- _resolve: resolve79,
161192
+ _resolve: resolve80,
161168
161193
  _reject: reject2
161169
161194
  };
161170
161195
  stream._closeRequest = closeRequest;
@@ -161177,9 +161202,9 @@ var require_ponyfill_es2018 = __commonJS({
161177
161202
  return promise;
161178
161203
  }
161179
161204
  function WritableStreamAddWriteRequest(stream) {
161180
- const promise = newPromise((resolve79, reject2) => {
161205
+ const promise = newPromise((resolve80, reject2) => {
161181
161206
  const writeRequest = {
161182
- _resolve: resolve79,
161207
+ _resolve: resolve80,
161183
161208
  _reject: reject2
161184
161209
  };
161185
161210
  stream._writeRequests.push(writeRequest);
@@ -161795,8 +161820,8 @@ var require_ponyfill_es2018 = __commonJS({
161795
161820
  return new TypeError("Cannot " + name + " a stream using a released writer");
161796
161821
  }
161797
161822
  function defaultWriterClosedPromiseInitialize(writer) {
161798
- writer._closedPromise = newPromise((resolve79, reject2) => {
161799
- writer._closedPromise_resolve = resolve79;
161823
+ writer._closedPromise = newPromise((resolve80, reject2) => {
161824
+ writer._closedPromise_resolve = resolve80;
161800
161825
  writer._closedPromise_reject = reject2;
161801
161826
  writer._closedPromiseState = "pending";
161802
161827
  });
@@ -161832,8 +161857,8 @@ var require_ponyfill_es2018 = __commonJS({
161832
161857
  writer._closedPromiseState = "resolved";
161833
161858
  }
161834
161859
  function defaultWriterReadyPromiseInitialize(writer) {
161835
- writer._readyPromise = newPromise((resolve79, reject2) => {
161836
- writer._readyPromise_resolve = resolve79;
161860
+ writer._readyPromise = newPromise((resolve80, reject2) => {
161861
+ writer._readyPromise_resolve = resolve80;
161837
161862
  writer._readyPromise_reject = reject2;
161838
161863
  });
161839
161864
  writer._readyPromiseState = "pending";
@@ -161920,7 +161945,7 @@ var require_ponyfill_es2018 = __commonJS({
161920
161945
  source._disturbed = true;
161921
161946
  let shuttingDown = false;
161922
161947
  let currentWrite = promiseResolvedWith(void 0);
161923
- return newPromise((resolve79, reject2) => {
161948
+ return newPromise((resolve80, reject2) => {
161924
161949
  let abortAlgorithm;
161925
161950
  if (signal !== void 0) {
161926
161951
  abortAlgorithm = () => {
@@ -162065,7 +162090,7 @@ var require_ponyfill_es2018 = __commonJS({
162065
162090
  if (isError) {
162066
162091
  reject2(error);
162067
162092
  } else {
162068
- resolve79(void 0);
162093
+ resolve80(void 0);
162069
162094
  }
162070
162095
  return null;
162071
162096
  }
@@ -162346,8 +162371,8 @@ var require_ponyfill_es2018 = __commonJS({
162346
162371
  let branch1;
162347
162372
  let branch2;
162348
162373
  let resolveCancelPromise;
162349
- const cancelPromise = newPromise((resolve79) => {
162350
- resolveCancelPromise = resolve79;
162374
+ const cancelPromise = newPromise((resolve80) => {
162375
+ resolveCancelPromise = resolve80;
162351
162376
  });
162352
162377
  function pullAlgorithm() {
162353
162378
  if (reading) {
@@ -162438,8 +162463,8 @@ var require_ponyfill_es2018 = __commonJS({
162438
162463
  let branch1;
162439
162464
  let branch2;
162440
162465
  let resolveCancelPromise;
162441
- const cancelPromise = newPromise((resolve79) => {
162442
- resolveCancelPromise = resolve79;
162466
+ const cancelPromise = newPromise((resolve80) => {
162467
+ resolveCancelPromise = resolve80;
162443
162468
  });
162444
162469
  function forwardReaderError(thisReader) {
162445
162470
  uponRejection(thisReader._closedPromise, (r2) => {
@@ -163219,8 +163244,8 @@ var require_ponyfill_es2018 = __commonJS({
163219
163244
  const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);
163220
163245
  const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);
163221
163246
  let startPromise_resolve;
163222
- const startPromise = newPromise((resolve79) => {
163223
- startPromise_resolve = resolve79;
163247
+ const startPromise = newPromise((resolve80) => {
163248
+ startPromise_resolve = resolve80;
163224
163249
  });
163225
163250
  InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
163226
163251
  SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
@@ -163313,8 +163338,8 @@ var require_ponyfill_es2018 = __commonJS({
163313
163338
  if (stream._backpressureChangePromise !== void 0) {
163314
163339
  stream._backpressureChangePromise_resolve();
163315
163340
  }
163316
- stream._backpressureChangePromise = newPromise((resolve79) => {
163317
- stream._backpressureChangePromise_resolve = resolve79;
163341
+ stream._backpressureChangePromise = newPromise((resolve80) => {
163342
+ stream._backpressureChangePromise_resolve = resolve80;
163318
163343
  });
163319
163344
  stream._backpressure = backpressure;
163320
163345
  }
@@ -163482,8 +163507,8 @@ var require_ponyfill_es2018 = __commonJS({
163482
163507
  return controller._finishPromise;
163483
163508
  }
163484
163509
  const readable = stream._readable;
163485
- controller._finishPromise = newPromise((resolve79, reject2) => {
163486
- controller._finishPromise_resolve = resolve79;
163510
+ controller._finishPromise = newPromise((resolve80, reject2) => {
163511
+ controller._finishPromise_resolve = resolve80;
163487
163512
  controller._finishPromise_reject = reject2;
163488
163513
  });
163489
163514
  const cancelPromise = controller._cancelAlgorithm(reason);
@@ -163509,8 +163534,8 @@ var require_ponyfill_es2018 = __commonJS({
163509
163534
  return controller._finishPromise;
163510
163535
  }
163511
163536
  const readable = stream._readable;
163512
- controller._finishPromise = newPromise((resolve79, reject2) => {
163513
- controller._finishPromise_resolve = resolve79;
163537
+ controller._finishPromise = newPromise((resolve80, reject2) => {
163538
+ controller._finishPromise_resolve = resolve80;
163514
163539
  controller._finishPromise_reject = reject2;
163515
163540
  });
163516
163541
  const flushPromise = controller._flushAlgorithm();
@@ -163540,8 +163565,8 @@ var require_ponyfill_es2018 = __commonJS({
163540
163565
  return controller._finishPromise;
163541
163566
  }
163542
163567
  const writable = stream._writable;
163543
- controller._finishPromise = newPromise((resolve79, reject2) => {
163544
- controller._finishPromise_resolve = resolve79;
163568
+ controller._finishPromise = newPromise((resolve80, reject2) => {
163569
+ controller._finishPromise_resolve = resolve80;
163545
163570
  controller._finishPromise_reject = reject2;
163546
163571
  });
163547
163572
  const cancelPromise = controller._cancelAlgorithm(reason);
@@ -164087,7 +164112,7 @@ var require_node_domexception = __commonJS({
164087
164112
  });
164088
164113
 
164089
164114
  // ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
164090
- import { statSync as statSync35, createReadStream as createReadStream8, promises as fs3 } from "fs";
164115
+ import { statSync as statSync36, createReadStream as createReadStream8, promises as fs3 } from "fs";
164091
164116
  import { basename as basename23 } from "path";
164092
164117
  var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
164093
164118
  var init_from = __esm({
@@ -164097,10 +164122,10 @@ var init_from = __esm({
164097
164122
  init_file();
164098
164123
  init_fetch_blob();
164099
164124
  ({ stat } = fs3);
164100
- blobFromSync = (path2, type) => fromBlob(statSync35(path2), path2, type);
164125
+ blobFromSync = (path2, type) => fromBlob(statSync36(path2), path2, type);
164101
164126
  blobFrom = (path2, type) => stat(path2).then((stat3) => fromBlob(stat3, path2, type));
164102
164127
  fileFrom = (path2, type) => stat(path2).then((stat3) => fromFile(stat3, path2, type));
164103
- fileFromSync = (path2, type) => fromFile(statSync35(path2), path2, type);
164128
+ fileFromSync = (path2, type) => fromFile(statSync36(path2), path2, type);
164104
164129
  fromBlob = (stat3, path2, type = "") => new fetch_blob_default([new BlobDataItem({
164105
164130
  path: path2,
164106
164131
  size: stat3.size,
@@ -165510,7 +165535,7 @@ import zlib2 from "zlib";
165510
165535
  import Stream2, { PassThrough as PassThrough2, pipeline as pump } from "stream";
165511
165536
  import { Buffer as Buffer4 } from "buffer";
165512
165537
  async function fetch3(url, options_) {
165513
- return new Promise((resolve79, reject2) => {
165538
+ return new Promise((resolve80, reject2) => {
165514
165539
  const request = new Request2(url, options_);
165515
165540
  const { parsedURL, options } = getNodeRequestOptions(request);
165516
165541
  if (!supportedSchemas.has(parsedURL.protocol)) {
@@ -165519,7 +165544,7 @@ async function fetch3(url, options_) {
165519
165544
  if (parsedURL.protocol === "data:") {
165520
165545
  const data2 = dist_default3(request.url);
165521
165546
  const response2 = new Response2(data2, { headers: { "Content-Type": data2.typeFull } });
165522
- resolve79(response2);
165547
+ resolve80(response2);
165523
165548
  return;
165524
165549
  }
165525
165550
  const send = (parsedURL.protocol === "https:" ? https : http3).request;
@@ -165641,7 +165666,7 @@ async function fetch3(url, options_) {
165641
165666
  if (responseReferrerPolicy) {
165642
165667
  requestOptions.referrerPolicy = responseReferrerPolicy;
165643
165668
  }
165644
- resolve79(fetch3(new Request2(locationURL, requestOptions)));
165669
+ resolve80(fetch3(new Request2(locationURL, requestOptions)));
165645
165670
  finalize();
165646
165671
  return;
165647
165672
  }
@@ -165674,7 +165699,7 @@ async function fetch3(url, options_) {
165674
165699
  const codings = headers.get("Content-Encoding");
165675
165700
  if (!request.compress || request.method === "HEAD" || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {
165676
165701
  response = new Response2(body, responseOptions);
165677
- resolve79(response);
165702
+ resolve80(response);
165678
165703
  return;
165679
165704
  }
165680
165705
  const zlibOptions = {
@@ -165688,7 +165713,7 @@ async function fetch3(url, options_) {
165688
165713
  }
165689
165714
  });
165690
165715
  response = new Response2(body, responseOptions);
165691
- resolve79(response);
165716
+ resolve80(response);
165692
165717
  return;
165693
165718
  }
165694
165719
  if (codings === "deflate" || codings === "x-deflate") {
@@ -165712,12 +165737,12 @@ async function fetch3(url, options_) {
165712
165737
  });
165713
165738
  }
165714
165739
  response = new Response2(body, responseOptions);
165715
- resolve79(response);
165740
+ resolve80(response);
165716
165741
  });
165717
165742
  raw.once("end", () => {
165718
165743
  if (!response) {
165719
165744
  response = new Response2(body, responseOptions);
165720
- resolve79(response);
165745
+ resolve80(response);
165721
165746
  }
165722
165747
  });
165723
165748
  return;
@@ -165729,11 +165754,11 @@ async function fetch3(url, options_) {
165729
165754
  }
165730
165755
  });
165731
165756
  response = new Response2(body, responseOptions);
165732
- resolve79(response);
165757
+ resolve80(response);
165733
165758
  return;
165734
165759
  }
165735
165760
  response = new Response2(body, responseOptions);
165736
- resolve79(response);
165761
+ resolve80(response);
165737
165762
  });
165738
165763
  writeToStream(request_, request).catch(reject2);
165739
165764
  });
@@ -171815,7 +171840,7 @@ var require_jwtaccess = __commonJS({
171815
171840
  }
171816
171841
  }
171817
171842
  fromStreamAsync(inputStream) {
171818
- return new Promise((resolve79, reject2) => {
171843
+ return new Promise((resolve80, reject2) => {
171819
171844
  if (!inputStream) {
171820
171845
  reject2(new Error("Must pass in a stream containing the service account auth settings."));
171821
171846
  }
@@ -171824,7 +171849,7 @@ var require_jwtaccess = __commonJS({
171824
171849
  try {
171825
171850
  const data2 = JSON.parse(s2);
171826
171851
  this.fromJSON(data2);
171827
- resolve79();
171852
+ resolve80();
171828
171853
  } catch (err) {
171829
171854
  reject2(err);
171830
171855
  }
@@ -172063,7 +172088,7 @@ var require_jwtclient = __commonJS({
172063
172088
  }
172064
172089
  }
172065
172090
  fromStreamAsync(inputStream) {
172066
- return new Promise((resolve79, reject2) => {
172091
+ return new Promise((resolve80, reject2) => {
172067
172092
  if (!inputStream) {
172068
172093
  throw new Error("Must pass in a stream containing the service account auth settings.");
172069
172094
  }
@@ -172072,7 +172097,7 @@ var require_jwtclient = __commonJS({
172072
172097
  try {
172073
172098
  const data2 = JSON.parse(s2);
172074
172099
  this.fromJSON(data2);
172075
- resolve79();
172100
+ resolve80();
172076
172101
  } catch (e3) {
172077
172102
  reject2(e3);
172078
172103
  }
@@ -172205,7 +172230,7 @@ var require_refreshclient = __commonJS({
172205
172230
  }
172206
172231
  }
172207
172232
  async fromStreamAsync(inputStream) {
172208
- return new Promise((resolve79, reject2) => {
172233
+ return new Promise((resolve80, reject2) => {
172209
172234
  if (!inputStream) {
172210
172235
  return reject2(new Error("Must pass in a stream containing the user refresh token."));
172211
172236
  }
@@ -172214,7 +172239,7 @@ var require_refreshclient = __commonJS({
172214
172239
  try {
172215
172240
  const data2 = JSON.parse(s2);
172216
172241
  this.fromJSON(data2);
172217
- return resolve79();
172242
+ return resolve80();
172218
172243
  } catch (err) {
172219
172244
  return reject2(err);
172220
172245
  }
@@ -174047,7 +174072,7 @@ var require_pluggable_auth_handler = __commonJS({
174047
174072
  * @return A promise that resolves with the executable response.
174048
174073
  */
174049
174074
  retrieveResponseFromExecutable(envMap) {
174050
- return new Promise((resolve79, reject2) => {
174075
+ return new Promise((resolve80, reject2) => {
174051
174076
  const child = childProcess.spawn(this.commandComponents[0], this.commandComponents.slice(1), {
174052
174077
  env: { ...process.env, ...Object.fromEntries(envMap) }
174053
174078
  });
@@ -174069,7 +174094,7 @@ var require_pluggable_auth_handler = __commonJS({
174069
174094
  try {
174070
174095
  const responseJson = JSON.parse(output);
174071
174096
  const response = new executable_response_1.ExecutableResponse(responseJson);
174072
- return resolve79(response);
174097
+ return resolve80(response);
174073
174098
  } catch (error) {
174074
174099
  if (error instanceof executable_response_1.ExecutableResponseError) {
174075
174100
  return reject2(error);
@@ -174972,7 +174997,7 @@ var require_googleauth = __commonJS({
174972
174997
  }
174973
174998
  }
174974
174999
  fromStreamAsync(inputStream, options) {
174975
- return new Promise((resolve79, reject2) => {
175000
+ return new Promise((resolve80, reject2) => {
174976
175001
  if (!inputStream) {
174977
175002
  throw new Error("Must pass in a stream containing the Google auth settings.");
174978
175003
  }
@@ -174982,7 +175007,7 @@ var require_googleauth = __commonJS({
174982
175007
  try {
174983
175008
  const data2 = JSON.parse(chunks.join(""));
174984
175009
  const r2 = this._cacheClientFromJSON(data2, options);
174985
- return resolve79(r2);
175010
+ return resolve80(r2);
174986
175011
  } catch (err) {
174987
175012
  if (!this.keyFilename)
174988
175013
  throw err;
@@ -174992,7 +175017,7 @@ var require_googleauth = __commonJS({
174992
175017
  });
174993
175018
  this.cachedCredential = client;
174994
175019
  this.setGapicJWTValues(client);
174995
- return resolve79(client);
175020
+ return resolve80(client);
174996
175021
  }
174997
175022
  } catch (err) {
174998
175023
  return reject2(err);
@@ -175028,17 +175053,17 @@ var require_googleauth = __commonJS({
175028
175053
  * Run the Google Cloud SDK command that prints the default project ID
175029
175054
  */
175030
175055
  async getDefaultServiceProjectId() {
175031
- return new Promise((resolve79) => {
175056
+ return new Promise((resolve80) => {
175032
175057
  (0, child_process_1.exec)("gcloud config config-helper --format json", (err, stdout2) => {
175033
175058
  if (!err && stdout2) {
175034
175059
  try {
175035
175060
  const projectId = JSON.parse(stdout2).configuration.properties.core.project;
175036
- resolve79(projectId);
175061
+ resolve80(projectId);
175037
175062
  return;
175038
175063
  } catch (e3) {
175039
175064
  }
175040
175065
  }
175041
- resolve79(null);
175066
+ resolve80(null);
175042
175067
  });
175043
175068
  });
175044
175069
  }
@@ -182881,14 +182906,14 @@ function __asyncValues2(o) {
182881
182906
  }, i2);
182882
182907
  function verb(n2) {
182883
182908
  i2[n2] = o[n2] && function(v2) {
182884
- return new Promise(function(resolve79, reject2) {
182885
- v2 = o[n2](v2), settle(resolve79, reject2, v2.done, v2.value);
182909
+ return new Promise(function(resolve80, reject2) {
182910
+ v2 = o[n2](v2), settle(resolve80, reject2, v2.done, v2.value);
182886
182911
  });
182887
182912
  };
182888
182913
  }
182889
- function settle(resolve79, reject2, d2, v2) {
182914
+ function settle(resolve80, reject2, d2, v2) {
182890
182915
  Promise.resolve(v2).then(function(v3) {
182891
- resolve79({ value: v3, done: d2 });
182916
+ resolve80({ value: v3, done: d2 });
182892
182917
  }, reject2);
182893
182918
  }
182894
182919
  }
@@ -193378,8 +193403,8 @@ var init_node4 = __esm({
193378
193403
  const url = `${websocketBaseUrl}/ws/google.ai.generativelanguage.${apiVersion}.GenerativeService.BidiGenerateMusic?key=${apiKey}`;
193379
193404
  let onopenResolve = () => {
193380
193405
  };
193381
- const onopenPromise = new Promise((resolve79) => {
193382
- onopenResolve = resolve79;
193406
+ const onopenPromise = new Promise((resolve80) => {
193407
+ onopenResolve = resolve80;
193383
193408
  });
193384
193409
  const callbacks = params.callbacks;
193385
193410
  const onopenAwaitedCallback = function() {
@@ -193585,8 +193610,8 @@ var init_node4 = __esm({
193585
193610
  }
193586
193611
  let onopenResolve = () => {
193587
193612
  };
193588
- const onopenPromise = new Promise((resolve79) => {
193589
- onopenResolve = resolve79;
193613
+ const onopenPromise = new Promise((resolve80) => {
193614
+ onopenResolve = resolve80;
193590
193615
  });
193591
193616
  const callbacks = params.callbacks;
193592
193617
  const onopenAwaitedCallback = function() {
@@ -195934,7 +195959,7 @@ var init_node4 = __esm({
195934
195959
  return void 0;
195935
195960
  }
195936
195961
  };
195937
- sleep$1 = (ms) => new Promise((resolve79) => setTimeout(resolve79, ms));
195962
+ sleep$1 = (ms) => new Promise((resolve80) => setTimeout(resolve80, ms));
195938
195963
  FallbackEncoder = ({ headers, body }) => {
195939
195964
  return {
195940
195965
  bodyHeaders: {
@@ -196443,8 +196468,8 @@ ${underline2}`);
196443
196468
  };
196444
196469
  APIPromise = class _APIPromise extends Promise {
196445
196470
  constructor(client, responsePromise, parseResponse = defaultParseResponse) {
196446
- super((resolve79) => {
196447
- resolve79(null);
196471
+ super((resolve80) => {
196472
+ resolve80(null);
196448
196473
  });
196449
196474
  this.responsePromise = responsePromise;
196450
196475
  this.parseResponse = parseResponse;
@@ -197669,11 +197694,12 @@ __export(snapshot_exports, {
197669
197694
  requireSnapshotFfmpeg: () => requireSnapshotFfmpeg,
197670
197695
  resolveSnapshotVideoClipStart: () => resolveSnapshotVideoClipStart,
197671
197696
  resolveSnapshotVideoFrameTime: () => resolveSnapshotVideoFrameTime,
197697
+ resolveSnapshotVideoPlaybackRate: () => resolveSnapshotVideoPlaybackRate,
197672
197698
  tailFrameTime: () => tailFrameTime
197673
197699
  });
197674
197700
  import { existsSync as existsSync107, mkdtempSync as mkdtempSync16, readFileSync as readFileSync77, mkdirSync as mkdirSync53, rmSync as rmSync31, writeFileSync as writeFileSync46 } from "fs";
197675
197701
  import { tmpdir as tmpdir16 } from "os";
197676
- import { resolve as resolve69, join as join113, relative as relative26, isAbsolute as isAbsolute16, basename as basename25, posix as posix7 } from "path";
197702
+ import { resolve as resolve70, join as join113, relative as relative26, isAbsolute as isAbsolute16, basename as basename25, posix as posix7 } from "path";
197677
197703
  function orbitStageSource() {
197678
197704
  return `function(cam) {
197679
197705
  var root = document.querySelector("[data-composition-id]")
@@ -197712,6 +197738,11 @@ function resolveSnapshotVideoFrameTime(input2) {
197712
197738
  function resolveSnapshotVideoClipStart(input2) {
197713
197739
  return input2.runtimeResolvedStart ?? input2.authoredStart;
197714
197740
  }
197741
+ function resolveSnapshotVideoPlaybackRate(input2) {
197742
+ const authoredRate = Number.parseFloat(input2.authoredRate ?? "");
197743
+ const rawRate = Number.isFinite(authoredRate) && authoredRate > 0 ? authoredRate : input2.defaultRate;
197744
+ return Number.isFinite(rawRate) && rawRate > 0 ? Math.max(0.1, Math.min(5, rawRate)) : 1;
197745
+ }
197715
197746
  function requireSnapshotFfmpeg(ffmpegPath) {
197716
197747
  if (ffmpegPath) return ffmpegPath;
197717
197748
  throw new Error(
@@ -197881,20 +197912,18 @@ async function captureSnapshots(projectDir, opts) {
197881
197912
  const v2 = el;
197882
197913
  const authoredStart = parseFloat(v2.dataset.start ?? "0") || 0;
197883
197914
  const runtimeResolvedStart = runtimeWindow.__hfResolveMediaStartSeconds?.(v2);
197884
- const rawRate = v2.defaultPlaybackRate;
197885
- const playbackRate = Number.isFinite(rawRate) && rawRate > 0 ? Math.max(0.1, Math.min(5, rawRate)) : 1;
197886
197915
  const mediaStart = parseFloat(v2.dataset.playbackStart ?? v2.dataset.mediaStart ?? "0") || 0;
197887
197916
  const rawDuration = parseFloat(v2.dataset.duration ?? "");
197888
197917
  const srcDur = Number.isFinite(v2.duration) && v2.duration > 0 ? v2.duration : 0;
197889
- const duration2 = Number.isFinite(rawDuration) && rawDuration > 0 ? rawDuration : srcDur > 0 ? Math.max(0, (srcDur - mediaStart) / playbackRate) : Number.POSITIVE_INFINITY;
197890
197918
  return {
197891
197919
  id: v2.id,
197892
197920
  src: v2.currentSrc || v2.src,
197893
197921
  authoredStart,
197922
+ authoredRate: v2.dataset.playbackRate,
197923
+ defaultRate: v2.defaultPlaybackRate,
197894
197924
  runtimeResolvedStart: runtimeResolvedStart !== void 0 && Number.isFinite(runtimeResolvedStart) ? runtimeResolvedStart : null,
197895
- duration: duration2,
197925
+ authoredDuration: Number.isFinite(rawDuration) && rawDuration > 0 ? rawDuration : null,
197896
197926
  srcDuration: srcDur,
197897
- playbackRate,
197898
197927
  mediaStart,
197899
197928
  loop: v2.loop
197900
197929
  };
@@ -197902,7 +197931,9 @@ async function captureSnapshots(projectDir, opts) {
197902
197931
  });
197903
197932
  const active = candidates.flatMap((candidate) => {
197904
197933
  const start = resolveSnapshotVideoClipStart(candidate);
197905
- let relTime = (time - start) * candidate.playbackRate + candidate.mediaStart;
197934
+ const playbackRate = resolveSnapshotVideoPlaybackRate(candidate);
197935
+ const duration2 = candidate.authoredDuration ?? (candidate.srcDuration > 0 ? Math.max(0, (candidate.srcDuration - candidate.mediaStart) / playbackRate) : Number.POSITIVE_INFINITY);
197936
+ let relTime = (time - start) * playbackRate + candidate.mediaStart;
197906
197937
  if (candidate.loop && candidate.srcDuration > candidate.mediaStart && relTime >= candidate.srcDuration) {
197907
197938
  relTime = candidate.mediaStart + (relTime - candidate.mediaStart) % (candidate.srcDuration - candidate.mediaStart);
197908
197939
  }
@@ -197910,11 +197941,11 @@ async function captureSnapshots(projectDir, opts) {
197910
197941
  const frameTime = resolveSnapshotVideoFrameTime({
197911
197942
  globalTime: time,
197912
197943
  clipStart: start,
197913
- clipDuration: candidate.duration,
197944
+ clipDuration: duration2,
197914
197945
  relativeTime: relTime,
197915
197946
  sourceDuration: candidate.srcDuration
197916
197947
  });
197917
- return frameTime === null ? [] : [{ ...candidate, start, relTime: frameTime }];
197948
+ return frameTime === null ? [] : [{ ...candidate, start, playbackRate, duration: duration2, relTime: frameTime }];
197918
197949
  });
197919
197950
  const updates = [];
197920
197951
  for (const v2 of active) {
@@ -197923,7 +197954,7 @@ async function captureSnapshots(projectDir, opts) {
197923
197954
  try {
197924
197955
  const url = new URL(v2.src);
197925
197956
  const decodedPath = decodeURIComponent(url.pathname).replace(/^\//, "");
197926
- const candidate = resolve69(projectDir, decodedPath);
197957
+ const candidate = resolve70(projectDir, decodedPath);
197927
197958
  const rel2 = relative26(projectDir, candidate);
197928
197959
  if (!rel2.startsWith("..") && !isAbsolute16(rel2) && existsSync107(candidate)) {
197929
197960
  ffmpegInput = candidate;
@@ -198131,7 +198162,7 @@ var init_snapshot = __esm({
198131
198162
  const angleLabel = camera && (camera.yaw !== 0 || camera.pitch !== 0) ? ` ${c.dim(`(angle yaw ${camera.yaw}\xB0 pitch ${camera.pitch}\xB0)`)}` : "";
198132
198163
  console.log(`${c.accent("\u25C6")} Capturing ${label2} from ${c.accent(project.name)}${angleLabel}`);
198133
198164
  try {
198134
- const snapshotDir = args.output ? resolve69(String(args.output)) : join113(project.dir, "snapshots");
198165
+ const snapshotDir = args.output ? resolve70(String(args.output)) : join113(project.dir, "snapshots");
198135
198166
  const paths = await captureSnapshots(project.dir, {
198136
198167
  frames,
198137
198168
  timeout,
@@ -198265,14 +198296,14 @@ var init_sourceMutation = __esm({
198265
198296
  });
198266
198297
 
198267
198298
  // src/utils/pathArgs.ts
198268
- import { isAbsolute as isAbsolute17, relative as relative27, resolve as resolve70 } from "path";
198299
+ import { isAbsolute as isAbsolute17, relative as relative27, resolve as resolve71 } from "path";
198269
198300
  function readOptionalString(value) {
198270
198301
  if (typeof value !== "string") return void 0;
198271
198302
  const trimmed = value.trim();
198272
198303
  return trimmed ? trimmed : void 0;
198273
198304
  }
198274
198305
  function resolveFromBase(baseDir, input2) {
198275
- return isAbsolute17(input2) ? input2 : resolve70(baseDir, input2);
198306
+ return isAbsolute17(input2) ? input2 : resolve71(baseDir, input2);
198276
198307
  }
198277
198308
  function displayPathFromBase(baseDir, filePath) {
198278
198309
  const rel = relative27(baseDir, filePath);
@@ -198570,7 +198601,7 @@ __export(media_treatment_exports, {
198570
198601
  resolveMediaTreatmentSource: () => resolveMediaTreatmentSource
198571
198602
  });
198572
198603
  import { existsSync as existsSync108, readFileSync as readFileSync78, writeFileSync as writeFileSync47 } from "fs";
198573
- import { join as join114, relative as relative28, resolve as resolve71 } from "path";
198604
+ import { join as join114, relative as relative28, resolve as resolve72 } from "path";
198574
198605
  function getMediaTreatmentCapabilityOverview() {
198575
198606
  const capabilities = getHfColorGradingCapabilities();
198576
198607
  const family = (id, label2, description) => ({
@@ -198997,7 +199028,7 @@ function runCapabilityQuery(args) {
198997
199028
  function resolveMutationFile(args) {
198998
199029
  const project = resolveProject(readOptionalString(args.project));
198999
199030
  const fileArg = readOptionalString(args.file) ?? "index.html";
199000
- const filePath = resolve71(project.dir, fileArg);
199031
+ const filePath = resolve72(project.dir, fileArg);
199001
199032
  if (!isPathInside(filePath, project.dir) || !filePath.toLowerCase().endsWith(".html")) {
199002
199033
  throw new Error("--file must be an HTML file inside the project");
199003
199034
  }
@@ -199232,7 +199263,7 @@ import {
199232
199263
  writeFileSync as writeFileSync48
199233
199264
  } from "fs";
199234
199265
  import { tmpdir as tmpdir17 } from "os";
199235
- import { basename as basename27, dirname as dirname54, extname as extname21, join as join115, resolve as resolve72 } from "path";
199266
+ import { basename as basename27, dirname as dirname54, extname as extname21, join as join115, resolve as resolve73 } from "path";
199236
199267
  import sharp2 from "sharp";
199237
199268
  function isRecord14(value) {
199238
199269
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -199364,7 +199395,7 @@ function parseGradeCompareArgs(args) {
199364
199395
  if (Boolean(gradesArg) === Boolean(lutsArg)) {
199365
199396
  throw new Error("Exactly one of --grades or --luts is required");
199366
199397
  }
199367
- const projectDir = resolve72(readOptionalString(args.project) ?? process.cwd());
199398
+ const projectDir = resolve73(readOptionalString(args.project) ?? process.cwd());
199368
199399
  const framePath = resolveFromBase(projectDir, frameArg);
199369
199400
  const outPath = resolveFromBase(projectDir, readOptionalString(args.out) ?? "grade-compare.png");
199370
199401
  return {
@@ -199777,7 +199808,7 @@ __export(compare_exports, {
199777
199808
  parseCompareArgs: () => parseCompareArgs,
199778
199809
  prepareCompareVariantProjects: () => prepareCompareVariantProjects
199779
199810
  });
199780
- import { cpSync as cpSync6, existsSync as existsSync110, mkdirSync as mkdirSync55, mkdtempSync as mkdtempSync18, renameSync as renameSync17, rmSync as rmSync34, statSync as statSync36 } from "fs";
199811
+ import { cpSync as cpSync6, existsSync as existsSync110, mkdirSync as mkdirSync55, mkdtempSync as mkdtempSync18, renameSync as renameSync17, rmSync as rmSync34, statSync as statSync37 } from "fs";
199781
199812
  import { tmpdir as tmpdir18 } from "os";
199782
199813
  import { basename as basename28, dirname as dirname55, extname as extname23, join as join116 } from "path";
199783
199814
  function defaultLabelForPath(input2) {
@@ -199908,7 +199939,7 @@ function prepareCompareVariantProjects(variants) {
199908
199939
  if (!existsSync110(variant.inputPath)) {
199909
199940
  throw inputError(variant);
199910
199941
  }
199911
- const stat3 = statSync36(variant.inputPath);
199942
+ const stat3 = statSync37(variant.inputPath);
199912
199943
  if (stat3.isDirectory() && existsSync110(join116(variant.inputPath, "index.html"))) {
199913
199944
  prepared.push({
199914
199945
  ...variant,
@@ -200468,7 +200499,7 @@ __export(video_exports, {
200468
200499
  safeFilename: () => safeFilename
200469
200500
  });
200470
200501
  import { createWriteStream as createWriteStream4, existsSync as existsSync111, mkdirSync as mkdirSync57, readFileSync as readFileSync80, unlinkSync as unlinkSync11 } from "fs";
200471
- import { resolve as resolve73, join as join118, basename as basename29 } from "path";
200502
+ import { resolve as resolve74, join as join118, basename as basename29 } from "path";
200472
200503
  async function streamToFile(url, destPath) {
200473
200504
  const r2 = await safeFetch(url, {
200474
200505
  signal: AbortSignal.timeout(12e4),
@@ -200586,7 +200617,7 @@ function pickManifestEntry(manifest, args) {
200586
200617
  };
200587
200618
  }
200588
200619
  async function runVideoMode(args) {
200589
- const projectDir = resolve73(args.project);
200620
+ const projectDir = resolve74(args.project);
200590
200621
  const directPath = join118(projectDir, "extracted", "video-manifest.json");
200591
200622
  const w2hPath = join118(projectDir, "capture", "extracted", "video-manifest.json");
200592
200623
  const manifestPath2 = existsSync111(directPath) ? directPath : w2hPath;
@@ -202208,7 +202239,7 @@ async function lazyScrollForCapture(page, budgetMs, opts = {}) {
202208
202239
  return { steps: 0, timedOut: false, degraded: false };
202209
202240
  }
202210
202241
  const stepDelayMs = opts.stepDelayMs ?? LAZY_SCROLL_STEP_DELAY_MS;
202211
- const sleep5 = opts.sleep ?? ((ms) => new Promise((resolve79) => setTimeout(resolve79, ms)));
202242
+ const sleep5 = opts.sleep ?? ((ms) => new Promise((resolve80) => setTimeout(resolve80, ms)));
202212
202243
  const deadline = Date.now() + budgetMs;
202213
202244
  let steps = 0;
202214
202245
  let timedOut = false;
@@ -202431,7 +202462,7 @@ var init_animationCataloger = __esm({
202431
202462
  });
202432
202463
 
202433
202464
  // src/capture/mediaCapture.ts
202434
- import { mkdirSync as mkdirSync58, writeFileSync as writeFileSync51, readdirSync as readdirSync36, readFileSync as readFileSync83, statSync as statSync37 } from "fs";
202465
+ import { mkdirSync as mkdirSync58, writeFileSync as writeFileSync51, readdirSync as readdirSync36, readFileSync as readFileSync83, statSync as statSync38 } from "fs";
202435
202466
  import { join as join120, extname as extname25 } from "path";
202436
202467
  function liveRemainingMs(budget, fallbackMs) {
202437
202468
  return budget.remainingMs?.() ?? fallbackMs;
@@ -202509,7 +202540,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir, budget
202509
202540
  const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
202510
202541
  const previewName = file.replace(".json", "-preview.png");
202511
202542
  let preview;
202512
- const fileSize = statSync37(join120(lottieDir, file)).size;
202543
+ const fileSize = statSync38(join120(lottieDir, file)).size;
202513
202544
  if (fileSize > 2e6) continue;
202514
202545
  let previewPage;
202515
202546
  try {
@@ -202816,7 +202847,7 @@ var init_mediaCapture = __esm({
202816
202847
  });
202817
202848
 
202818
202849
  // src/capture/contentExtractor.ts
202819
- import { existsSync as existsSync114, readdirSync as readdirSync37, statSync as statSync38, readFileSync as readFileSync84 } from "fs";
202850
+ import { existsSync as existsSync114, readdirSync as readdirSync37, statSync as statSync39, readFileSync as readFileSync84 } from "fs";
202820
202851
  import { basename as basename30, join as join121 } from "path";
202821
202852
  function resolveVisionPhaseCompletion(outcome, remainingMs) {
202822
202853
  if (outcome.budgetExhausted || remainingMs <= 0) {
@@ -203084,7 +203115,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings, options =
203084
203115
  const results = await Promise.allSettled(
203085
203116
  batch.map(async (file) => {
203086
203117
  const filePath = join121(outputDir, "assets", file);
203087
- const stat3 = statSync38(filePath);
203118
+ const stat3 = statSync39(filePath);
203088
203119
  if (stat3.size > 4e6) return { file, caption: "" };
203089
203120
  const buffer = readFileSync84(filePath);
203090
203121
  const base64 = buffer.toString("base64");
@@ -203225,7 +203256,7 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
203225
203256
  for (const file of readdirSync37(assetsPath)) {
203226
203257
  if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
203227
203258
  const filePath = join121(assetsPath, file);
203228
- const stat3 = statSync38(filePath);
203259
+ const stat3 = statSync39(filePath);
203229
203260
  if (!stat3.isFile()) continue;
203230
203261
  const sizeKb = Math.round(stat3.size / 1024);
203231
203262
  const catalogMatch = catalogedAssets.find(
@@ -203452,12 +203483,12 @@ var init_agentPromptGenerator = __esm({
203452
203483
 
203453
203484
  // src/capture/scaffolding.ts
203454
203485
  import { existsSync as existsSync116, writeFileSync as writeFileSync54, readFileSync as readFileSync85 } from "fs";
203455
- import { join as join124, resolve as resolve74 } from "path";
203486
+ import { join as join124, resolve as resolve75 } from "path";
203456
203487
  function loadEnvFile(startDir) {
203457
203488
  try {
203458
- let dir = resolve74(startDir);
203489
+ let dir = resolve75(startDir);
203459
203490
  for (let i2 = 0; i2 < 5; i2++) {
203460
- const envPath = resolve74(dir, ".env");
203491
+ const envPath = resolve75(dir, ".env");
203461
203492
  try {
203462
203493
  const envContent = readFileSync85(envPath, "utf-8");
203463
203494
  for (const line2 of envContent.split("\n")) {
@@ -203471,7 +203502,7 @@ function loadEnvFile(startDir) {
203471
203502
  }
203472
203503
  break;
203473
203504
  } catch {
203474
- dir = resolve74(dir, "..");
203505
+ dir = resolve75(dir, "..");
203475
203506
  }
203476
203507
  }
203477
203508
  } catch {
@@ -204753,7 +204784,7 @@ __export(capture_exports2, {
204753
204784
  default: () => capture_default,
204754
204785
  examples: () => examples33
204755
204786
  });
204756
- import { resolve as resolve75 } from "path";
204787
+ import { resolve as resolve76 } from "path";
204757
204788
  function emitCapturePhase(event) {
204758
204789
  diag.notice(`${CAPTURE_PHASE_PREFIX}${JSON.stringify(event)}`);
204759
204790
  }
@@ -204877,13 +204908,13 @@ var init_capture2 = __esm({
204877
204908
  const captureBudgetMs = parseCaptureBudget(args["capture-budget"]);
204878
204909
  const isDefaultOutput = !args.output;
204879
204910
  let outputName = args.output ?? "capture";
204880
- let outputDir = resolve75(outputName);
204911
+ let outputDir = resolve76(outputName);
204881
204912
  if (isDefaultOutput) {
204882
204913
  const { existsSync: existsSync131 } = await import("fs");
204883
204914
  let n2 = 2;
204884
204915
  while (existsSync131(outputDir) && n2 < 100) {
204885
204916
  outputName = `capture-${n2}`;
204886
- outputDir = resolve75(outputName);
204917
+ outputDir = resolve76(outputName);
204887
204918
  n2++;
204888
204919
  }
204889
204920
  if (existsSync131(outputDir)) {
@@ -205224,16 +205255,16 @@ var init_sam = __esm({
205224
205255
 
205225
205256
  // src/commands/lambda/repoRoot.ts
205226
205257
  import { existsSync as existsSync120 } from "fs";
205227
- import { dirname as dirname57, resolve as resolve76 } from "path";
205258
+ import { dirname as dirname57, resolve as resolve77 } from "path";
205228
205259
  import { fileURLToPath as fileURLToPath15 } from "url";
205229
205260
  function repoRoot() {
205230
205261
  const override = process.env.HYPERFRAMES_REPO_ROOT;
205231
- if (override && existsSync120(resolve76(override, "packages", "aws-lambda", "package.json"))) {
205262
+ if (override && existsSync120(resolve77(override, "packages", "aws-lambda", "package.json"))) {
205232
205263
  return override;
205233
205264
  }
205234
205265
  let dir = dirname57(fileURLToPath15(import.meta.url));
205235
205266
  for (let depth = 0; depth < 12; depth++) {
205236
- if (existsSync120(resolve76(dir, "packages", "aws-lambda", "package.json"))) {
205267
+ if (existsSync120(resolve77(dir, "packages", "aws-lambda", "package.json"))) {
205237
205268
  return dir;
205238
205269
  }
205239
205270
  const parent = dirname57(dir);
@@ -205257,7 +205288,7 @@ __export(deploy_exports, {
205257
205288
  });
205258
205289
  import { spawnSync as spawnSync5 } from "child_process";
205259
205290
  import { existsSync as existsSync121 } from "fs";
205260
- import { join as join129, resolve as resolve77 } from "path";
205291
+ import { join as join129, resolve as resolve78 } from "path";
205261
205292
  async function runDeploy(args = {}) {
205262
205293
  const resolved2 = {
205263
205294
  stackName: args.stackName ?? DEFAULT_STACK_NAME,
@@ -205311,7 +205342,7 @@ async function runDeploy(args = {}) {
205311
205342
  console.log(` ${c.dim("Bucket:")} ${outputs.bucketName}`);
205312
205343
  console.log(` ${c.dim("State machine:")} ${outputs.stateMachineArn}`);
205313
205344
  console.log(` ${c.dim("Function:")} ${outputs.functionName}`);
205314
- console.log(` ${c.dim("State file:")} ${resolve77(statePath2)}`);
205345
+ console.log(` ${c.dim("State file:")} ${resolve78(statePath2)}`);
205315
205346
  console.log();
205316
205347
  console.log(c.dim(`Render with: hyperframes lambda render <project-dir>`));
205317
205348
  }
@@ -206647,7 +206678,7 @@ __export(cloudrun_exports, {
206647
206678
  import { spawnSync as spawnSync6 } from "child_process";
206648
206679
  import { existsSync as existsSync124, mkdirSync as mkdirSync63, readFileSync as readFileSync90, writeFileSync as writeFileSync58 } from "fs";
206649
206680
  import { homedir as homedir23 } from "os";
206650
- import { join as join134, resolve as resolve78 } from "path";
206681
+ import { join as join134, resolve as resolve79 } from "path";
206651
206682
  function loadCloudRunAdapter() {
206652
206683
  cloudRunAdapterPromise ??= Promise.all([
206653
206684
  import("@hyperframes/gcp-cloud-run/sdk"),
@@ -206825,7 +206856,7 @@ function machineVars(args, project, region, image) {
206825
206856
  return vars;
206826
206857
  }
206827
206858
  function findRepoRoot(tfDir) {
206828
- const candidate = resolve78(tfDir, "..", "..", "..");
206859
+ const candidate = resolve79(tfDir, "..", "..", "..");
206829
206860
  if (existsSync124(join134(candidate, "packages", "gcp-cloud-run", "Dockerfile"))) return candidate;
206830
206861
  return null;
206831
206862
  }
@@ -206860,7 +206891,7 @@ async function runSites(args) {
206860
206891
  const state = readState2(args);
206861
206892
  const { deploySite } = await loadCloudRunAdapter();
206862
206893
  const handle = await deploySite({
206863
- projectDir: resolve78(projectDir),
206894
+ projectDir: resolve79(projectDir),
206864
206895
  bucketName: state.bucketName,
206865
206896
  siteId: args["site-id"]
206866
206897
  });
@@ -206895,11 +206926,11 @@ async function runRender2(args) {
206895
206926
  }
206896
206927
  const fps = resolveCloudRunFps(args, projectDir, "render");
206897
206928
  const state = readState2(args);
206898
- const variables = resolveAndValidateVariables(args, resolve78(projectDir));
206929
+ const variables = resolveAndValidateVariables(args, resolve79(projectDir));
206899
206930
  const config = buildRenderConfig(args, fps, width, height, variables);
206900
206931
  const { renderToCloudRun, getRenderProgress } = await loadCloudRunAdapter();
206901
206932
  const handle = await renderToCloudRun({
206902
- projectDir: resolve78(projectDir),
206933
+ projectDir: resolve79(projectDir),
206903
206934
  config,
206904
206935
  bucketName: state.bucketName,
206905
206936
  projectId: state.projectId,
@@ -206975,11 +207006,11 @@ async function runRenderBatch2(args) {
206975
207006
  failCommand();
206976
207007
  }
206977
207008
  const fps = resolveCloudRunFps(args, projectDir, "render-batch");
206978
- if (!existsSync124(resolve78(batchPath))) {
207009
+ if (!existsSync124(resolve79(batchPath))) {
206979
207010
  console.error(`[cloudrun render-batch] batch file not found: ${batchPath}`);
206980
207011
  failCommand();
206981
207012
  }
206982
- const entries2 = parseBatchFile2(resolve78(batchPath));
207013
+ const entries2 = parseBatchFile2(resolve79(batchPath));
206983
207014
  if (entries2.length === 0) {
206984
207015
  console.error("[cloudrun render-batch] batch file has no entries.");
206985
207016
  failCommand();
@@ -206998,7 +207029,7 @@ async function runRenderBatch2(args) {
206998
207029
  const maxConcurrent = parsePositiveInt2(args["max-concurrent"], "--max-concurrent") ?? DEFAULT_BATCH_MAX_CONCURRENT;
206999
207030
  const { deploySite, renderToCloudRun } = await loadCloudRunAdapter();
207000
207031
  const siteHandle = await deploySite({
207001
- projectDir: resolve78(projectDir),
207032
+ projectDir: resolve79(projectDir),
207002
207033
  bucketName: state.bucketName,
207003
207034
  siteId: args["site-id"]
207004
207035
  });
@@ -207451,14 +207482,14 @@ function signalAbortError(signal) {
207451
207482
  return reason instanceof Error ? reason : new Error("Poll aborted");
207452
207483
  }
207453
207484
  function defaultAbortableSleep(signal) {
207454
- return (ms) => new Promise((resolve79, reject2) => {
207485
+ return (ms) => new Promise((resolve80, reject2) => {
207455
207486
  const onAbort = () => {
207456
207487
  clearTimeout(timer);
207457
207488
  reject2(signalAbortError(signal));
207458
207489
  };
207459
207490
  const timer = setTimeout(() => {
207460
207491
  signal?.removeEventListener("abort", onAbort);
207461
- resolve79();
207492
+ resolve80();
207462
207493
  }, ms);
207463
207494
  signal?.addEventListener("abort", onAbort, { once: true });
207464
207495
  });
@@ -207533,7 +207564,7 @@ async function downloadToFile(url, destPath, options = {}) {
207533
207564
  return { path: destPath, bytes };
207534
207565
  }
207535
207566
  function waitForDrain(file, signal) {
207536
- return new Promise((resolve79, reject2) => {
207567
+ return new Promise((resolve80, reject2) => {
207537
207568
  const cleanup = () => {
207538
207569
  file.off("drain", onDrain);
207539
207570
  file.off("error", onError);
@@ -207542,7 +207573,7 @@ function waitForDrain(file, signal) {
207542
207573
  };
207543
207574
  const onDrain = () => {
207544
207575
  cleanup();
207545
- resolve79();
207576
+ resolve80();
207546
207577
  };
207547
207578
  const onError = (err) => {
207548
207579
  cleanup();
@@ -207564,10 +207595,10 @@ function waitForDrain(file, signal) {
207564
207595
  });
207565
207596
  }
207566
207597
  function closeFile(file) {
207567
- return new Promise((resolve79) => {
207598
+ return new Promise((resolve80) => {
207568
207599
  const done = () => {
207569
207600
  file.off("error", done);
207570
- resolve79();
207601
+ resolve80();
207571
207602
  };
207572
207603
  file.once("error", done);
207573
207604
  file.end(() => done());
@@ -209360,7 +209391,7 @@ async function collectApiKey(inline) {
209360
209391
  return await promptForKey();
209361
209392
  }
209362
209393
  async function readAllWithTimeout(stream, timeoutMs) {
209363
- return await new Promise((resolve79, reject2) => {
209394
+ return await new Promise((resolve80, reject2) => {
209364
209395
  const chunks = [];
209365
209396
  const timer = setTimeout(() => {
209366
209397
  reject2(new Error(`Timed out waiting for stdin (${timeoutMs}ms). Pipe the key explicitly.`));
@@ -209370,7 +209401,7 @@ async function readAllWithTimeout(stream, timeoutMs) {
209370
209401
  });
209371
209402
  stream.on("end", () => {
209372
209403
  clearTimeout(timer);
209373
- resolve79(Buffer.concat(chunks).toString("utf8"));
209404
+ resolve80(Buffer.concat(chunks).toString("utf8"));
209374
209405
  });
209375
209406
  stream.on("error", (err) => {
209376
209407
  clearTimeout(timer);
@@ -209761,8 +209792,8 @@ async function confirmInteractive(prompt) {
209761
209792
  if (!process.stdin.isTTY) return false;
209762
209793
  const { createInterface: createInterface3 } = await import("readline");
209763
209794
  const rl = createInterface3({ input: process.stdin, output: process.stdout });
209764
- const answer = await new Promise((resolve79) => {
209765
- rl.question(prompt, (line2) => resolve79(line2));
209795
+ const answer = await new Promise((resolve80) => {
209796
+ rl.question(prompt, (line2) => resolve80(line2));
209766
209797
  });
209767
209798
  rl.close();
209768
209799
  return /^y(es)?$/i.test(answer.trim());
@@ -210170,7 +210201,7 @@ var init_parseFigmaRef = __esm({
210170
210201
  });
210171
210202
 
210172
210203
  // ../core/dist/figma/freeze.js
210173
- import { copyFileSync as copyFileSync11, mkdirSync as mkdirSync65, rmSync as rmSync36, statSync as statSync39, writeFileSync as writeFileSync59 } from "fs";
210204
+ import { copyFileSync as copyFileSync11, mkdirSync as mkdirSync65, rmSync as rmSync36, statSync as statSync40, writeFileSync as writeFileSync59 } from "fs";
210174
210205
  import { dirname as dirname59 } from "path";
210175
210206
  function exceedsFreezeCap(byteLength) {
210176
210207
  return byteLength > MAX_FREEZE_BYTES;
@@ -212018,8 +212049,8 @@ if (rootVersionRequested) {
212018
212049
  }
212019
212050
  try {
212020
212051
  const { readFileSync: readFileSync95 } = await import("fs");
212021
- const { resolve: resolve79 } = await import("path");
212022
- const envPath = resolve79(process.cwd(), ".env");
212052
+ const { resolve: resolve80 } = await import("path");
212053
+ const envPath = resolve80(process.cwd(), ".env");
212023
212054
  const envContent = readFileSync95(envPath, "utf-8");
212024
212055
  for (const rawLine of envContent.split("\n")) {
212025
212056
  let line2 = rawLine.trim();