hyperframes 0.8.76 → 0.8.77

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.76" : "0.0.0-dev";
53
+ VERSION = true ? "0.8.77" : "0.0.0-dev";
54
54
  }
55
55
  });
56
56
 
@@ -58596,10 +58596,13 @@ function parseHTMLContent(html) {
58596
58596
  }
58597
58597
  return parseHTML(`<!DOCTYPE html><html><head></head><body>${html}</body></html>`).document;
58598
58598
  }
58599
+ function lowerAscii(text3) {
58600
+ return text3.replace(/[A-Z]+/g, (letters) => letters.toLowerCase());
58601
+ }
58599
58602
  function stripEmbeddedRuntimeScripts(html) {
58600
58603
  if (!html)
58601
58604
  return html;
58602
- const loweredHtml = html.toLowerCase();
58605
+ const loweredHtml = lowerAscii(html);
58603
58606
  let output = "";
58604
58607
  let cursor = 0;
58605
58608
  while (cursor < html.length) {
@@ -58636,22 +58639,41 @@ function findScriptStart(loweredHtml, from) {
58636
58639
  }
58637
58640
  function findTagEnd(html, from) {
58638
58641
  let quote;
58642
+ let state = "tagName";
58639
58643
  for (let index = from; index < html.length; index += 1) {
58640
- const char = html[index];
58644
+ const char = html.charAt(index);
58641
58645
  if (quote) {
58642
- if (char === quote)
58643
- quote = void 0;
58646
+ quote = char === quote ? void 0 : quote;
58644
58647
  continue;
58645
58648
  }
58646
- if (char === '"' || char === "'") {
58649
+ if (char === ">")
58650
+ return index;
58651
+ if (state === "equals" && (char === '"' || char === "'")) {
58647
58652
  quote = char;
58653
+ state = "between";
58648
58654
  continue;
58649
58655
  }
58650
- if (char === ">")
58651
- return index;
58656
+ state = nextTagState(state, char, index === from);
58652
58657
  }
58653
58658
  return -1;
58654
58659
  }
58660
+ function nextTagState(state, char, first) {
58661
+ if (isHtmlWhitespace(char))
58662
+ return stateAfterWhitespace(state);
58663
+ if (char === "/" && !first)
58664
+ return stateAfterSlash(state);
58665
+ if (char === "=" && state === "name")
58666
+ return "equals";
58667
+ if (state === "equals")
58668
+ return "value";
58669
+ return state === "between" ? "name" : state;
58670
+ }
58671
+ function stateAfterWhitespace(state) {
58672
+ return state === "tagName" || state === "value" ? "between" : state;
58673
+ }
58674
+ function stateAfterSlash(state) {
58675
+ return state === "equals" || state === "value" ? "value" : "between";
58676
+ }
58655
58677
  function findScriptCloseTagEnd(loweredHtml, from) {
58656
58678
  let index = loweredHtml.indexOf("</script", from);
58657
58679
  while (index !== -1) {
@@ -58690,7 +58712,7 @@ function getScriptSource(block) {
58690
58712
  const startTagEnd2 = findTagEnd(block, 1);
58691
58713
  if (startTagEnd2 === -1)
58692
58714
  return "";
58693
- const loweredBlock = block.toLowerCase();
58715
+ const loweredBlock = lowerAscii(block);
58694
58716
  const closeTagStart = loweredBlock.lastIndexOf("</script");
58695
58717
  const end = closeTagStart === -1 ? block.length : closeTagStart;
58696
58718
  return block.slice(startTagEnd2 + 1, end);
@@ -58705,8 +58727,8 @@ function escapeInlineScriptSource(source) {
58705
58727
  return escapeCaseInsensitiveToken(escapeCaseInsensitiveToken(source, "</script", "<\\/script"), "<!--", "<\\!--");
58706
58728
  }
58707
58729
  function escapeCaseInsensitiveToken(source, token, replacement) {
58708
- const loweredSource = source.toLowerCase();
58709
- const loweredToken = token.toLowerCase();
58730
+ const loweredSource = lowerAscii(source);
58731
+ const loweredToken = lowerAscii(token);
58710
58732
  let output = "";
58711
58733
  let cursor = 0;
58712
58734
  while (cursor < source.length) {
@@ -58723,16 +58745,78 @@ function escapeCaseInsensitiveToken(source, token, replacement) {
58723
58745
  function inlineScriptTags(scripts) {
58724
58746
  return scripts.map((source) => `<script>${escapeInlineScriptSource(source)}</script>`).join("\n");
58725
58747
  }
58726
- function injectTagsAtHeadStart(html, tags) {
58727
- if (html.includes("<head")) {
58728
- return html.replace(/<head\b[^>]*>/i, (match) => `${match}
58729
- ${tags}`);
58748
+ function findDocumentTag(html, tag) {
58749
+ const lowered = lowerAscii(html);
58750
+ const unclosedRawText = /* @__PURE__ */ new Set();
58751
+ let cursor = 0;
58752
+ while (cursor !== -1) {
58753
+ const open2 = lowered.indexOf("<", cursor);
58754
+ if (open2 === -1)
58755
+ return -1;
58756
+ if (isTagAt(lowered, open2, tag))
58757
+ return open2;
58758
+ cursor = skipMarkup(lowered, open2, unclosedRawText);
58730
58759
  }
58731
- if (html.includes("<body")) {
58732
- return html.replace("<body", () => `${tags}
58733
- <body`);
58760
+ return -1;
58761
+ }
58762
+ function isTagAt(lowered, at4, token) {
58763
+ return lowered.startsWith(token, at4) && isTagBoundary(lowered.charAt(at4 + token.length));
58764
+ }
58765
+ function skipMarkup(lowered, open2, unclosedRawText) {
58766
+ if (lowered.startsWith("<!--", open2))
58767
+ return skipComment(lowered, open2);
58768
+ const next = lowered.charAt(open2 + 1);
58769
+ if (next === "/" && !/[a-z]/.test(lowered.charAt(open2 + 2))) {
58770
+ const bogusEnd = lowered.indexOf(">", open2);
58771
+ return bogusEnd === -1 ? -1 : bogusEnd + 1;
58772
+ }
58773
+ if (!/[a-z/]/.test(next))
58774
+ return open2 + 1;
58775
+ const tagEnd = findTagEnd(lowered, open2 + 1);
58776
+ return tagEnd === -1 ? -1 : skipRawText(lowered, open2, tagEnd, unclosedRawText);
58777
+ }
58778
+ function skipComment(lowered, open2) {
58779
+ if (lowered.startsWith("<!-->", open2) || lowered.startsWith("<!--->", open2)) {
58780
+ return lowered.indexOf(">", open2) + 1;
58781
+ }
58782
+ COMMENT_END.lastIndex = open2 + 4;
58783
+ const end = COMMENT_END.exec(lowered);
58784
+ return end ? end.index + end[0].length : -1;
58785
+ }
58786
+ function skipRawText(lowered, open2, tagEnd, unclosedRawText) {
58787
+ const rawText = RAW_TEXT_TAGS.find((name) => isTagAt(lowered, open2, `<${name}`));
58788
+ if (!rawText)
58789
+ return tagEnd + 1;
58790
+ const close = unclosedRawText.has(rawText) ? -1 : findRawTextClose(lowered, rawText, tagEnd + 1);
58791
+ if (close !== -1)
58792
+ return close;
58793
+ unclosedRawText.add(rawText);
58794
+ return lowered.charAt(tagEnd - 1) === "/" ? tagEnd + 1 : -1;
58795
+ }
58796
+ function findRawTextClose(lowered, name, from) {
58797
+ const close = `</${name}`;
58798
+ for (let at4 = lowered.indexOf(close, from); at4 !== -1; at4 = lowered.indexOf(close, at4 + 1)) {
58799
+ if (isTagAt(lowered, at4, close))
58800
+ return at4;
58734
58801
  }
58735
- return `${tags}
58802
+ return -1;
58803
+ }
58804
+ function insertBeforeDocumentTag(html, tag, markup) {
58805
+ const at4 = findDocumentTag(html, tag);
58806
+ return at4 === -1 ? null : html.slice(0, at4) + markup + html.slice(at4);
58807
+ }
58808
+ function insertBeforeCloseTag(html, name, markup) {
58809
+ return insertBeforeDocumentTag(html, `</${name}`, markup);
58810
+ }
58811
+ function injectTagsAtHeadStart(html, tags) {
58812
+ const headOpen = findDocumentTag(html, "<head");
58813
+ const headOpenEnd = headOpen === -1 ? -1 : findTagEnd(html, headOpen + 1);
58814
+ if (headOpenEnd !== -1) {
58815
+ return `${html.slice(0, headOpenEnd + 1)}
58816
+ ${tags}${html.slice(headOpenEnd + 1)}`;
58817
+ }
58818
+ return insertBeforeDocumentTag(html, "<body", `${tags}
58819
+ `) ?? `${tags}
58736
58820
  ${html}`;
58737
58821
  }
58738
58822
  function injectScriptsAtHeadStart(html, scripts) {
@@ -58746,30 +58830,21 @@ function injectScriptsIntoHtml(html, headScripts, bodyScripts, stripEmbeddedRunt
58746
58830
  }
58747
58831
  if (headScripts.length > 0) {
58748
58832
  const headTags = inlineScriptTags(headScripts);
58749
- if (html.includes("</head>")) {
58750
- html = html.replace("</head>", () => `${headTags}
58751
- </head>`);
58752
- } else if (html.includes("<body")) {
58753
- html = html.replace("<body", () => `${headTags}
58754
- <body`);
58755
- } else {
58756
- html = `${headTags}
58833
+ const withHead = insertBeforeCloseTag(html, "head", `${headTags}
58834
+ `);
58835
+ html = withHead ?? insertBeforeDocumentTag(html, "<body", `${headTags}
58836
+ `) ?? `${headTags}
58757
58837
  ${html}`;
58758
- }
58759
58838
  }
58760
58839
  if (bodyScripts.length > 0) {
58761
58840
  const bodyTags = inlineScriptTags(bodyScripts);
58762
- if (html.includes("</body>")) {
58763
- html = html.replace("</body>", () => `${bodyTags}
58764
- </body>`);
58765
- } else {
58766
- html = `${html}
58841
+ html = insertBeforeCloseTag(html, "body", `${bodyTags}
58842
+ `) ?? `${html}
58767
58843
  ${bodyTags}`;
58768
- }
58769
58844
  }
58770
58845
  return html;
58771
58846
  }
58772
- var RUNTIME_BOOTSTRAP_ATTR, RUNTIME_SRC_MARKERS, RUNTIME_INLINE_MARKERS, SIMPLE_RUNTIME_FLAG_ASSIGNMENTS;
58847
+ var RUNTIME_BOOTSTRAP_ATTR, RUNTIME_SRC_MARKERS, RUNTIME_INLINE_MARKERS, SIMPLE_RUNTIME_FLAG_ASSIGNMENTS, RAW_TEXT_TAGS, COMMENT_END;
58773
58848
  var init_htmlDocument = __esm({
58774
58849
  "../core/dist/compiler/htmlDocument.js"() {
58775
58850
  "use strict";
@@ -58792,6 +58867,8 @@ var init_htmlDocument = __esm({
58792
58867
  /^window\.__playerReady\s*=\s*(?:true|false)\s*;?$/,
58793
58868
  /^window\.__renderReady\s*=\s*(?:true|false)\s*;?$/
58794
58869
  ];
58870
+ RAW_TEXT_TAGS = ["script", "style", "title", "textarea"];
58871
+ COMMENT_END = /--!?>/g;
58795
58872
  }
58796
58873
  });
58797
58874
 
@@ -60847,7 +60924,7 @@ var RUNTIME_IIFE;
60847
60924
  var init_runtime_inline = __esm({
60848
60925
  "../core/dist/generated/runtime-inline.js"() {
60849
60926
  "use strict";
60850
- RUNTIME_IIFE = '"use strict";(()=>{var xg=Object.create;var Yo=Object.defineProperty;var yg=Object.getOwnPropertyDescriptor;var vg=Object.getOwnPropertyNames;var Sg=Object.getPrototypeOf,Eg=Object.prototype.hasOwnProperty;var Ag=(e,t,n)=>t in e?Yo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var oe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var _g=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of vg(t))!Eg.call(e,i)&&i!==n&&Yo(e,i,{get:()=>t[i],enumerable:!(r=yg(t,i))||r.enumerable});return e};var wg=(e,t,n)=>(n=e!=null?xg(Sg(e)):{},_g(t||!e||!e.__esModule?Yo(n,"default",{value:e,enumerable:!0}):n,e));var ue=(e,t,n)=>Ag(e,typeof t!="symbol"?t+"":t,n);var Xd=oe((_T,us)=>{var ee=String,Kd=function(){return{isColorSupported:!1,reset:ee,bold:ee,dim:ee,italic:ee,underline:ee,inverse:ee,hidden:ee,strikethrough:ee,black:ee,red:ee,green:ee,yellow:ee,blue:ee,magenta:ee,cyan:ee,white:ee,gray:ee,bgBlack:ee,bgRed:ee,bgGreen:ee,bgYellow:ee,bgBlue:ee,bgMagenta:ee,bgCyan:ee,bgWhite:ee,blackBright:ee,redBright:ee,greenBright:ee,yellowBright:ee,blueBright:ee,magentaBright:ee,cyanBright:ee,whiteBright:ee,bgBlackBright:ee,bgRedBright:ee,bgGreenBright:ee,bgYellowBright:ee,bgBlueBright:ee,bgMagentaBright:ee,bgCyanBright:ee,bgWhiteBright:ee}};us.exports=Kd();us.exports.createColors=Kd});var ls=oe(()=>{});var Wi=oe((RT,Qd)=>{"use strict";var Yd=Xd(),Jd=ls(),gr=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=Yd.isColorSupported);let r=d=>d,i=d=>d,o=d=>d;if(t){let{bold:d,gray:m,red:f}=Yd.createColors(!0);i=p=>d(f(p)),r=p=>m(p),Jd&&(o=p=>Jd(p))}let a=n.split(/\\r?\\n/),u=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),l=String(s).length;return a.slice(u,s).map((d,m)=>{let f=u+1+m,p=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(d.length>160){let y=20,x=Math.max(0,this.column-y),A=Math.max(this.column+y,this.endColumn+y),M=d.slice(x,A),C=r(p.replace(/\\d/g," "))+d.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(M)+`\n `+C+i("^")}let g=r(p.replace(/\\d/g," "))+d.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(d)+`\n `+g+i("^")}return" "+r(p)+o(d)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};Qd.exports=gr;gr.default=gr});var cs=oe((TT,rf)=>{"use strict";var Zx=/(<)(\\/?style\\b)/gi,ey=/(<)(!--)/g,ty=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/;function Xe(e){return typeof e!="string"||!e.includes("<")?e:e.replace(Zx,"\\\\3c $2").replace(ey,"\\\\3c $2")}var Zd={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function ny(e){return e[0].toUpperCase()+e.slice(1)}function ef(e,t){let n="@"+t.name,r=t.params?e.rawValue(t,"params"):"",i=t.raws.afterName;return typeof i>"u"?i=r?" ":"":i===""&&r&&!ty.test(r[0])&&(i=" "),n+i+r}function ry(e){if(!e.prop.startsWith("--"))return!1;let t=e.raws.before;return typeof t>"u"||!/\\S$/.test(t)}function nf(e,t,n){let r=n.nodes,i=r.length-1;for(;i>0&&r[i].type==="comment";)i-=1;let o=e.raw(n,"semicolon"),a=n.type==="document";for(let u=r.length-1;u>=0;u--){let s=r[u],l=i!==u||o;!l&&u<r.length-1&&(s.type==="atrule"&&!s.nodes||s.type==="decl"&&ry(s))&&(l=!0),t.push({document:a,node:s,semicolon:l})}}function tf(e,t,n,r){let i=e.raw(n,"between","beforeOpen");e.builder(Xe(r+i)+"{",n,"start");let o=n.nodes&&n.nodes.length,a=()=>{let u=o?e.raw(n,"after"):e.raw(n,"after","emptyBody");u&&e.builder(Xe(u)),e.builder("}",n,"end"),n.type==="rule"&&n.raws.ownSemicolon&&e.builder(Xe(n.raws.ownSemicolon),n,"end")};o?(t.push(a),nf(e,t,n)):a()}var br=class e{constructor(t){this.builder=t}atrule(t,n){let r=ef(this,t);if(t.nodes)this.block(t,r);else{let i=(t.raws.between||"")+(n?";":"");this.builder(Xe(r+i),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 u=0;u<o;u++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(Xe(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(Xe(i)),this.builder("}",t,"end")}body(t){let n=e.prototype,r=["atrule","block","body","rule","stringify"].every(o=>this[o]===n[o]),i=[];for(nf(this,i,t);i.length>0;){let o=i.pop();if(typeof o=="function"){o();continue}let a=o.node,u=this.raw(a,"before");u&&this.builder(o.document?u:Xe(u)),r&&a.type==="rule"?tf(this,i,a,this.rawValue(a,"selector")):r&&a.type==="atrule"&&a.nodes?tf(this,i,a,ef(this,a)):this.stringify(a,o.semicolon)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(Xe("/*"+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(Xe(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 Zd[r];let a=t.root(),u=a.rawCache||(a.rawCache={});if(typeof u[r]<"u")return u[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+ny(r);this[s]?i=this[s](a,t):a.walk(l=>{if(i=l.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=Zd[r]),u[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(t.source&&t.source.input.hasBOM&&this.builder("\\uFEFF",t,"start"),this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:Xe(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(Xe(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)}};rf.exports=br;br.default=br});var xr=oe((kT,of)=>{"use strict";var iy=cs();function ds(e,t){new iy(t).stringify(e)}of.exports=ds;ds.default=ds});var yr=oe((MT,fs)=>{"use strict";fs.exports.isClean=Symbol("isClean");fs.exports.my=Symbol("my")});var Er=oe((FT,af)=>{"use strict";var oy=Wi(),ay=cs(),sy=xr(),{isClean:vr,my:uy}=yr();function ly(e,t){let n=new e.constructor,r=[[e,n,t]];for(;r.length>0;){let[i,o,a]=r.pop();for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u)||u==="proxyCache")continue;let s=i[u],l=typeof s;if(u==="parent"&&l==="object")a&&(o[u]=a);else if(u==="source")o[u]=s;else if(Array.isArray(s)){let d=[];o[u]=d;for(let m of s){let f=new m.constructor;d.push(f),r.push([m,f,o])}}else{if(l==="object"&&s!==null){let d=new s.constructor;r.push([s,d,void 0]),s=d}o[u]=s}}}return n}function ot(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 Sr=class e{get proxyOf(){return this}constructor(t={}){this.raws={},this[vr]=!1,this[uy]=!0;for(let n of Object.keys(t))if(n!=="__proto__")if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"&&r.parent?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=ly(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 oy(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[vr]=!0}markDirty(){if(this[vr]){this[vr]=!1;let t=this;for(;t=t.parent;)t[vr]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(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:ot(n,this.source.start)};if(t.index)r=this.positionInside(t.index);else if(t.word){let o=n.slice(ot(n,this.source.start),ot(n,this.source.end)).indexOf(t.word);o!==-1&&(r=this.positionInside(o))}return r}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=ot(i,this.source.start),a=o+t;for(let u=o;u<a;u++)i[u]===`\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:ot(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:ot(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(ot(n,this.source.start),ot(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:ot(n,t.start)}:typeof t.index=="number"&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:ot(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):typeof t.index=="number"&&(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 ay().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=n==null;n=n||new Map;let i=[],o=[[this,i,0]];for(let u=0;u<o.length;u++){let[s,l,d]=o[u],m={};l[d]=m;for(let f in s){if(!Object.prototype.hasOwnProperty.call(s,f)||f==="parent"||f==="proxyCache")continue;let p=s[f];if(Array.isArray(p)){let g=[];m[f]=g;for(let y=0;y<p.length;y++){let x=p[y];typeof x=="object"&&x.toJSON?x.toJSON===e.prototype.toJSON?o.push([x,g,y]):g[y]=x.toJSON(null,n):g[y]=x}}else if(typeof p=="object"&&p.toJSON)p.toJSON===e.prototype.toJSON?o.push([p,m,f]):m[f]=p.toJSON(null,n);else if(f==="source"){if(p==null)continue;let g=n.get(p.input);g==null&&(g=n.size,n.set(p.input,g)),m[f]={end:p.end,inputId:g,start:p.start}}else m[f]=p}}let a=i[0];return r&&(a.inputs=[...n.keys()].map(u=>u.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=sy){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)}};af.exports=Sr;Sr.default=Sr});var _r=oe((LT,sf)=>{"use strict";var cy=Er(),Ar=class extends cy{constructor(t){super(t),this.type="comment"}};sf.exports=Ar;Ar.default=Ar});var Cr=oe((NT,uf)=>{"use strict";var dy=Er(),wr=class extends dy{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"}};uf.exports=wr;wr.default=wr});var gt=oe((DT,gf)=>{"use strict";var cf=_r(),df=Cr(),lf=Er(),{isClean:ff,my:mf}=yr(),ms,pf,hf,ps;function fy(e){let t=e.slice();for(;t.length>0;){let n=t.pop();if(delete n.source,n.nodes){n.nodes=n.nodes.slice();for(let r of n.nodes)t.push(r)}}return e.slice()}function my(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[ff]=!1,n.proxyOf.nodes)for(let r of n.proxyOf.nodes)t.push(r)}}var at=class e extends lf{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){let n=[this];for(;n.length>0;){let r=n.pop();if(r!==this&&r.cleanRaws!==e.prototype.cleanRaws){r.cleanRaws(t);continue}if(lf.prototype.cleanRaws.call(r,t),r.nodes)for(let i of r.nodes)n.push(i)}}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 u of o)this.proxyOf.nodes.splice(r,0,u);let a;for(let u in this.indexes)a=this.indexes[u],r<=a&&(this.indexes[u]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=fy(pf(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 df(t)]}else if(t.selector||t.selectors)t=[new ps(t)];else if(t.name)t=[new ms(t)];else if(t.text)t=[new cf(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[mf]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[ff]&&my(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){if(!this.proxyOf.nodes)return;let n=[{iterator:this.getIterator(),node:this.proxyOf}];for(;n.length>0;){let{iterator:r,node:i}=n[n.length-1],o=i.indexes[r];if(o>=i.proxyOf.nodes.length){delete i.indexes[r],n.pop();let s=n[n.length-1];s&&(s.node.indexes[s.iterator]+=1);continue}let a=i.proxyOf.nodes[o],u;try{u=t(a,o)}catch(s){throw a.addToError(s)}if(u===!1){for(let s of n)delete s.node.indexes[s.iterator];return!1}a.walk&&a.proxyOf.nodes?n.push({iterator:a.getIterator(),node:a}):i.indexes[r]+=1}}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)}))}};at.registerParse=e=>{pf=e};at.registerRule=e=>{ps=e};at.registerAtRule=e=>{ms=e};at.registerRoot=e=>{hf=e};gf.exports=at;at.default=at;at.rebuild=e=>{let t=[e];for(;t.length>0;){let n=t.pop();if(n.type==="atrule"?Object.setPrototypeOf(n,ms.prototype):n.type==="rule"?Object.setPrototypeOf(n,ps.prototype):n.type==="decl"?Object.setPrototypeOf(n,df.prototype):n.type==="comment"?Object.setPrototypeOf(n,cf.prototype):n.type==="root"&&Object.setPrototypeOf(n,hf.prototype),n[mf]=!0,n.nodes)for(let r of n.nodes)t.push(r)}}});var Vi=oe((IT,xf)=>{"use strict";var bf=gt(),xn=class extends bf{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)}};xf.exports=xn;xn.default=xn;bf.registerAtRule(xn)});var $i=oe((PT,Sf)=>{"use strict";var py=gt(),yf,vf,jt=class extends py{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new yf(new vf,this,t).stringify()}};jt.registerLazyResult=e=>{yf=e};jt.registerProcessor=e=>{vf=e};Sf.exports=jt;jt.default=jt});var Af=oe((OT,Ef)=>{var hy="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",gy=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i-- >0;)r+=e[Math.random()*e.length|0];return r},by=(e=21)=>{let t="",n=e|0;for(;n-- >0;)t+=hy[Math.random()*64|0];return t};Ef.exports={nanoid:by,customAlphabet:gy}});var zi=oe(()=>{});var qi=oe(()=>{});var hs=oe(()=>{});var _f=oe(()=>{});var gs=oe((qT,Tf)=>{"use strict";var{existsSync:xy,readFileSync:yy,realpathSync:vy}=_f(),{dirname:ji,isAbsolute:Sy,join:Ey,relative:Ay,sep:_y}=zi(),{SourceMapConsumer:wf,SourceMapGenerator:Cf}=qi();function Rf(e){try{return vy(e)}catch{return e}}function wy(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Rr=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=ji(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new wf(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 u=t.match(n)||t.match(r);if(u)return wy(t.substr(u[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){if(!/\\.map$/i.test(t)||!n)return;let i=Ay(Rf(ji(n)),Rf(t));if(i===".."||i.startsWith(".."+_y)||Sy(i))return}if(this.root=ji(t),xy(t))return this.mapFile=t,yy(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 wf)return Cf.fromSourceMap(n).toString();if(n instanceof Cf)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=Ey(ji(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)}};Tf.exports=Rr;Rr.default=Rr});var Tr=oe((jT,Nf)=>{"use strict";var{nanoid:Cy}=Af(),{isAbsolute:ys,resolve:vs}=zi(),{SourceMapConsumer:Ry,SourceMapGenerator:Ty}=qi(),{fileURLToPath:kf,pathToFileURL:Ki}=hs(),Mf=Wi(),ky=gs(),bs=ls(),xs=Symbol("lineToIndexCache"),My=!!(Ry&&Ty),Ff=!!(vs&&ys);function Lf(e){if(e[xs])return e[xs];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[xs]=n,n}var yn=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&&(!Ff||/^\\w+:\\/\\//.test(n.from)||ys(n.from)?this.file=n.from:this.file=vs(n.from)),Ff&&My){let r=new ky(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 "+Cy(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,u,s,l;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"){u=f.offset;let p=this.fromOffset(u);a=p.line,o=p.col}else a=f.line,o=f.column,u=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 d=this.origin(n,r,a,o);return d?l=new Mf(t,d.endLine===void 0?d.line:{column:d.column,line:d.line},d.endLine===void 0?d.column:{column:d.endColumn,line:d.endLine},d.source,d.file,i.plugin):l=new Mf(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),l.input={column:r,endColumn:o,endLine:a,endOffset:u,line:n,offset:s,source:this.css},this.file&&(Ki&&(l.input.url=Ki(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(t,n){return Lf(this)[t-1]+n-1}fromOffset(t){let n=Lf(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:vs(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-1,line:t});if(!a.source)return!1;let u;if(typeof r=="number"){let m=o.originalPositionFor({column:i-1,line:r});m.source&&(u=m)}let s;ys(a.source)?s=Ki(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Ki(this.map.mapFile));let l={column:a.column+1,endColumn:u&&u.column+1,endLine:u&&u.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(kf)l.file=kf(s);else throw new Error("file: protocol is not available in this PostCSS build");let d=o.sourceContentFor(a.source);return d&&(l.source=d),l}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}};Nf.exports=yn;yn.default=yn;bs&&bs.registerInput&&bs.registerInput(yn)});var vn=oe((KT,Of)=>{"use strict";var Df=gt(),If,Pf,Mt=class extends Df{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=new Set;for(let a of Array.isArray(t)?t:[t])a&&typeof a=="object"&&!a.parent&&a.raws&&typeof a.raws.before<"u"&&i.add(a.raws);let o=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 a of o)i.has(a.raws)||(a.raws.before=n.raws.before)}return o}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 If(new Pf,this,t).stringify()}};Mt.registerLazyResult=e=>{If=e};Mt.registerProcessor=e=>{Pf=e};Of.exports=Mt;Mt.default=Mt;Df.registerRoot(Mt)});var Ss=oe((XT,Hf)=>{"use strict";var kr={comma(e){return kr.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return kr.split(e,t)},split(e,t,n){if(typeof e!="string")return[];let r=[],i="",o=!1,a=0,u=!1,s="",l=!1;for(let m of e)if(l?l=!1:m==="\\\\"?l=!0:u?m===s&&(u=!1):m===\'"\'||m==="\'"?(u=!0,s=m):m==="("?a+=1:m===")"?a>0&&(a-=1):a===0&&t.includes(m)&&(o=!0),o){let f=i.trim();(n||f!=="")&&r.push(f),i="",o=!1}else i+=m;let d=i.trim();return(n||d!=="")&&r.push(d),r}};Hf.exports=kr;kr.default=kr});var Xi=oe((YT,Bf)=>{"use strict";var Gf=gt(),Fy=Ss(),Sn=class extends Gf{get selectors(){return Fy.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=[])}};Bf.exports=Sn;Sn.default=Sn;Gf.registerRule(Sn)});var Vf=oe((JT,Wf)=>{"use strict";var Ly=Vi(),Ny=_r(),Dy=Cr(),Iy=Tr(),Py=gs(),Oy=vn(),Hy=Xi();function Uf(e,t){return e.inputs?e.inputs.map(n=>{let r={...n,__proto__:Iy.prototype};return r.map&&(r.map={...r.map,__proto__:Py.prototype}),r}):t}function Gy(e,t,n){let r={...e};if(delete r.inputs,delete r.nodes,r.source){let{inputId:o,...a}=r.source;r.source=a,o!=null&&(r.source.input=t[o])}let i;if(r.type==="root")i=new Oy(r);else if(r.type==="decl")i=new Dy(r);else if(r.type==="rule")i=new Hy(r);else if(r.type==="comment")i=new Ny(r);else if(r.type==="atrule")i=new Ly(r);else throw new Error("Unknown node type: "+e.type);if(n){i.nodes=n;for(let o of n)o.parent=i}return i}function Yi(e,t){if(Array.isArray(e))return e.map(i=>Yi(i));let n,r=[{childIndex:0,children:[],inputs:Uf(e,t),json:e}];for(;r.length>0;){let i=r[r.length-1],o=i.json.nodes;if(o&&i.childIndex<o.length){let u=o[i.childIndex];i.childIndex+=1,r.push({childIndex:0,children:[],inputs:Uf(u,i.inputs),json:u});continue}r.pop();let a=Gy(i.json,i.inputs,o?i.children:void 0);r.length>0?r[r.length-1].children.push(a):n=a}return n}Wf.exports=Yi;Yi.default=Yi});var As=oe((QT,Xf)=>{"use strict";var{dirname:Ji,relative:zf,resolve:qf,sep:jf}=zi(),{SourceMapConsumer:Kf,SourceMapGenerator:Qi}=qi(),{pathToFileURL:$f}=hs(),By=Tr(),Uy=!!(Kf&&Qi),Wy=!!(Ji&&qf&&zf&&jf),Es=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||Ji(t.file),i;this.mapOpts.sourcesContent===!1?(i=new Kf(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="/*# sourceMappingURL=",n;for(;(n=this.css.lastIndexOf(t))!==-1;){let r=this.css.indexOf("*/",n+t.length);if(r===-1)break;for(;n>0&&this.css[n-1]===`\n`;)n--;this.css=this.css.slice(0,n)+this.css.slice(r+2)}}}}generate(){if(this.clearAnnotation(),Wy&&Uy&&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=Qi.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new Qi({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 Qi({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,(u,s,l)=>{if(this.css+=u,s&&l!=="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=u.match(/\\n/g),a?(t+=a.length,o=u.lastIndexOf(`\n`),n=u.length-o):n+=u.length,s&&l!=="start"){let d=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==d.last||d.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?Ji(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=Ji(qf(r,this.mapOpts.annotation)));let i=zf(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 By(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($f){let r=$f(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;jf==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Xf.exports=Es});var Qf=oe((ZT,Jf)=>{"use strict";var Zi=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,eo=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Vy=/.[\\r\\n"\'(/\\\\]/,Yf=/[\\da-f]/i;Jf.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,u,s,l,d,m,f,p,g,y=r.length,x=0,A=[],M=[],C=-1;function L(){return x}function B(T){throw t.error("Unclosed "+T,x)}function F(){return M.length===0&&x>=y}function w(T){if(M.length)return M.pop();if(x>=y)return;let N=T?T.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);d=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let W=String.fromCharCode(o);d=[W,W,x];break}case 40:{if(g=A.length?A.pop()[1]:"",p=r.charCodeAt(x+1),g==="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 B("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);d=["brackets",r.slice(x,s+1),x,s],x=s}else x<=C?d=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||Vy.test(a)?(C=s===-1?y:s,d=["(","(",x]):(d=["brackets",a,x,s],x=s));break}case 39:case 34:{l=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(l,s+1),s===-1)if(i||N){s=x+1;break}else B("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);d=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{Zi.lastIndex=x+1,Zi.test(r),Zi.lastIndex===0?s=r.length-1:s=Zi.lastIndex-2,d=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,u=!0;r.charCodeAt(s+1)===92;)s+=1,u=!u;if(o=r.charCodeAt(s+1),u&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Yf.test(r.charAt(s)))){for(;Yf.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}d=["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:B("comment")),d=["comment",r.slice(x,s+1),x,s],x=s):(eo.lastIndex=x+1,eo.test(r),eo.lastIndex===0?s=r.length-1:s=eo.lastIndex-2,d=["word",r.slice(x,s+1),x,s],A.push(d),x=s);break}}return x++,d}function _(T){M.push(T)}return{back:_,endOfFile:F,nextToken:w,position:L}}});var nm=oe((ek,tm)=>{"use strict";var $y=Vi(),zy=_r(),qy=Cr(),jy=vn(),Zf=Xi(),Ky=Qf(),em={empty:!0,space:!0};function Xy(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}function _s(e,t,n){let r="";for(let i=t;i<n;i++)r+=e[i][1];return r}var ws=class{constructor(t){this.input=t,this.root=new jy,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 $y;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,u=!1,s=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?l.push(r==="("?")":"]"):r==="{"&&l.length>0?l.push("}"):r===l[l.length-1]&&l.pop(),l.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){u=!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=""),u&&(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,u]of t.entries()){if(i=u,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 zy;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=Ky(this.input)}decl(t,n){let r=new qy;this.init(r,t[0][2]);let i=t[t.length-1];i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||Xy(t)),r.source.end.offset++;let o=0;for(;t[o][0]!=="word";)o===t.length-1&&this.unknownWord([t[o]]),o++;r.raws.before+=_s(t,0,o),r.source.start=this.getPosition(t[o][2]);let a=o;for(;o<t.length;){let f=t[o][0];if(f===":"||f==="space"||f==="comment")break;o++}r.prop=_s(t,a,o);let u=o,s;for(;o<t.length&&(s=t[o],o++,s[0]!==":");)s[0]==="word"&&/\\w/.test(s[1])&&this.unknownWord([s]);r.raws.between=_s(t,u,o),(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let l=o;for(;o<t.length;){let f=t[o][0];if(f!=="space"&&f!=="comment")break;o++}let d=t.slice(l,o);t=t.slice(o),this.precheckMissedSemicolon(t);for(let f=t.length-1;f>=0;f--){if(s=t[f],s[1].toLowerCase()==="!important"){r.important=!0;let p=this.stringFrom(t,f);p=this.spacesFromEnd(t)+p,p!==" !important"&&(r.raws.important=p);break}else if(s[1].toLowerCase()==="important"){let p=t.slice(0),g="";for(let y=f;y>0;y--){let x=p[y][0];if(g.trim().startsWith("!")&&x!=="space")break;g=p.pop()[1]+g}g.trim().startsWith("!")&&(r.important=!0,r.raws.important=g,t=p)}if(s[0]!=="space"&&s[0]!=="comment")break}t.some(f=>f[0]!=="space"&&f[0]!=="comment")&&(r.raws.between+=d.map(f=>f[1]).join(""),d=[]),this.raw(r,"value",d.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 Zf;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++)}}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=[],u=t[1].startsWith("--"),s=[],l=t;for(;l;){if(r=l[0],s.push(l),r==="("||r==="[")o||(o=l),a.push(r==="("?")":"]");else if(u&&i&&r==="{")o||(o=l),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,u);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));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!u)for(;s.length&&(l=s[s.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,u)}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,u=r.length,s="",l=!0,d,m;for(let f=0;f<u;f+=1)o=r[f],a=o[0],a==="space"&&f===u-1&&!i?l=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",d=r[f+1]?r[f+1][0]:"empty",!em[m]&&!em[d]?s.slice(-1)===","?l=!1:s+=o[1]:l=!1):s+=o[1];if(!l){let f=r.reduce((p,g)=>p+g[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new Zf;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})}};tm.exports=ws});var no=oe((tk,rm)=>{"use strict";var Yy=gt(),Jy=Tr(),Qy=nm();function to(e,t){let n=new Jy(e,t),r=new Qy(n);try{r.parse()}catch(i){throw i}return r.root}rm.exports=to;to.default=to;Yy.registerParse(to)});var Cs=oe((nk,im)=>{"use strict";var Zy=gt(),{my:ev}=yr(),Mr=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){n.node[ev]||Zy.rebuild(n.node);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}};im.exports=Mr;Mr.default=Mr});var ro=oe((rk,om)=>{"use strict";var tv=Cs(),Fr=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 tv(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};om.exports=Fr;Fr.default=Fr});var Rs=oe((ik,sm)=>{"use strict";var am={};sm.exports=function(t){am[t]||(am[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var Ms=oe((ak,dm)=>{"use strict";var nv=gt(),rv=$i(),iv=As(),ov=no(),um=ro(),av=vn(),sv=xr(),{isClean:Ye,my:uv}=yr(),ok=Rs(),lv={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},cv={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},dv={Once:!0,postcssPlugin:!0,prepare:!0},En=0;function Lr(e){return typeof e=="object"&&typeof e.then=="function"}function Ts(e){let t=!1,n=lv[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 lm(e){let t;return e.type==="document"?t=["Document",En,"DocumentExit"]:e.type==="root"?t=["Root",En,"RootExit"]:t=Ts(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function cm(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[Ye]=!1,n.nodes)for(let r of n.nodes)t.push(r)}return e}var ks={},Ft=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=cm(n);else if(n instanceof e||n instanceof um)i=cm(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=ov;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[uv]&&nv.rebuild(i)}this.result=new um(t,i,r),this.helpers={...ks,postcss:ks,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(!cv[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!dv[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(Lr(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=[lm(t)];for(;n.length>0;){let r=this.visitTick(n);if(Lr(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 Lr(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=sv;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,u=>{a+=u}),this.result.css=a,this.result}let o=new iv(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(Lr(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(Lr(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,u]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return u(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator;n.descending&&(n.descending=!1,r.indexes[a]+=1);let u;for(;u=r.nodes[r.indexes[a]];){if(!u[Ye]){u[Ye]=!0,n.descending=!0,t.push(lm(u));return}r.indexes[a]+=1}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=[{eventIndex:0,events:Ts(t),iterator:0,node:t}];for(;n.length>0;){let r=n[n.length-1],i=r.node;if(r.iterator!==0){let o=r.iterator;r.descending&&(r.descending=!1,i.indexes[o]+=1);let a,u=!1;for(;a=i.nodes[i.indexes[o]];){if(!a[Ye]){a[Ye]=!0,r.descending=!0,n.push({eventIndex:0,events:Ts(a),iterator:0,node:a}),u=!0;break}i.indexes[o]+=1}if(u)continue;r.iterator=0,delete i.indexes[o]}if(r.eventIndex<r.events.length){let o=r.events[r.eventIndex];if(r.eventIndex+=1,o===En)i.nodes&&i.nodes.length&&(r.iterator=i.getIterator());else{let a=this.listeners[o];a&&this.visitSync(a,i.toProxy())&&n.pop()}continue}n.pop()}}warnings(){return this.sync().warnings()}};Ft.registerPostcss=e=>{ks=e};dm.exports=Ft;Ft.default=Ft;av.registerLazyResult(Ft);rv.registerLazyResult(Ft)});var mm=oe((uk,fm)=>{"use strict";var fv=As(),mv=no(),pv=ro(),hv=xr(),sk=Rs(),Nr=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=mv;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=hv;this.result=new pv(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 fv(i,void 0,this._opts,n);if(a.isMap()){let[u,s]=a.generate();u&&(this.result.css=u),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[]}};fm.exports=Nr;Nr.default=Nr});var hm=oe((lk,pm)=>{"use strict";var gv=$i(),bv=Ms(),xv=mm(),yv=vn(),Kt=class{constructor(t=[]){this.version="8.5.28",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 xv(this,t,n):new bv(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};pm.exports=Kt;Kt.default=Kt;yv.registerProcessor(Kt);gv.registerProcessor(Kt)});var Am=oe((ck,Em)=>{"use strict";var gm=Vi(),bm=_r(),vv=gt(),Sv=Wi(),xm=Cr(),ym=$i(),Ev=Vf(),Av=Tr(),_v=Ms(),wv=Ss(),Cv=Er(),Rv=no(),Fs=hm(),Tv=ro(),vm=vn(),Sm=Xi(),kv=xr(),Mv=Cs();function le(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Fs(e)}le.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("zh")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let u=n(...a);return u.postcssPlugin=t,u.postcssVersion=new Fs().version,u}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,u,s){return le([i(s)]).process(a,u)},i};le.stringify=kv;le.parse=Rv;le.fromJSON=Ev;le.list=wv;le.comment=e=>new bm(e);le.atRule=e=>new gm(e);le.decl=e=>new xm(e);le.rule=e=>new Sm(e);le.root=e=>new vm(e);le.document=e=>new ym(e);le.CssSyntaxError=Sv;le.Declaration=xm;le.Container=vv;le.Processor=Fs;le.Document=ym;le.Comment=bm;le.Warning=Mv;le.AtRule=gm;le.Result=Tv;le.Input=Av;le.Rule=Sm;le.Root=vm;le.Node=Cv;_v.registerPostcss(le);Em.exports=le;le.default=le});function ci(){return globalThis}function I(e,t){if(typeof window>"u")return;let n=ci(),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 Cg=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function Rg(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 Tg(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=Rg(r,n);return{numerator:r/i,denominator:n/i}}function Jo(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 di(e){return{protocolVersion:1,capabilities:Cg,fps:Tg(e)}}function kg(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Rl(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=Jo(n.fps);return r===null||!kg(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var Tl=30;function kl(e){Tl=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...di(Tl)},"*")}catch(t){I("bridge.postMessage",t)}}var Mg=new Map(Object.entries({play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(Fg(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-idle-heartbeat":(e,t)=>t.onSetIdleHeartbeat(!!e.slow),"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=>Ng(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload,e.requestId)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel,e.requestId)}}));function Fg(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Jo(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function Lg(e){let t=Rl(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 Ng(e){let t=e.selectors,n=e.duration||800;t&&Dg(t,n)}function Ml(e){let t=n=>{if(n.source!==window.parent&&n.source!==window)return;let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||Lg(r))return;let i=r.action;if(typeof i!="string")return;let o=Mg.get(i);o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function Dg(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){I("bridge.flashElements.querySelector",r)}}var At=(e,t,n)=>e>=t&&e<n;var fi=(e,t,n,r)=>At(e,t,n)||e>=t&&r>0&&n>=r-1e-6;var Fl="data-hf-first-pass-hide",Ig="[data-start]:not(video, audio, img) { visibility: hidden !important; }";function Ll(){if(typeof document>"u")return;let e=window;if(e.__hfFirstPassHidden||e.__hyperframeRuntimeBootstrapped)return;let t=document.head??document.documentElement;if(!t)return;let n=document.createElement("style");n.setAttribute(Fl,""),n.textContent=Ig,t.appendChild(n),e.__hfFirstPassHidden=!0}function Nl(){let e=window;if(!e.__hfFirstPassHidden)return!1;e.__hfFirstPassHidden=!1;for(let t of document.querySelectorAll(`style[${Fl}]`))t.remove();return!0}var Qo=null;function Dl(e){Qo=e}function Ge(e,t){if(Qo)try{Qo({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){I("runtime.analytics.site1",n)}}function Pg(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 nn(e){return`--${Pg(e)}`}function Il(e){let t=new Map;for(let n of e){let r=nn(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 Ol(){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,$n(i));let n=pi(),r={...t,...n};for(let i of e)ea(i,r);return r}var Pl=new Set;function Hl(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 Og(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function Hg(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 Gg(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=Hg(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function ea(e,t,n){if(!e)return;let r=Hl(e);if(r.length===0)return;let i=Og(e,n);for(let o of r){let a=Gg(o,t);if(!a)continue;let u=`${i}|${a.id}|${String(a.value)}`;if(Pl.has(u))continue;Pl.add(u);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 $n(e){let t={};for(let n of Hl(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var Zo="data-hf-css-vars";function mi(e){return"style"in e&&typeof e.style?.setProperty=="function"}function ta(e,t){if(!mi(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=nn(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(Zo,n.join(" "))}function Gl(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=nn(i);((mi(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function Bl(e){if(!mi(e))return;let t=e.getAttribute(Zo);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(Zo)}}function Ul(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=pi(),r=[];for(let i of t)r.push(...Bg(i,n,e.defaultView));for(let i of Il(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${nn(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function Bg(e,t,n){if(!mi(e))return[];let r=$n(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let u=nn(o);(e.style.getPropertyValue(u)||(n?n.getComputedStyle(e).getPropertyValue(u):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return ta(e,i),Object.keys(r)}function Wl(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 pi(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}var Vl="http://www.w3.org/1999/xhtml";function ke(e){return e!=null&&e.nodeType===1}function pe(e){return ke(e)&&e.namespaceURI===Vl}function rn(e,t){return pe(e)&&e.localName===t}function he(e){return rn(e,"video")}function na(e){return rn(e,"audio")}function ge(e){return he(e)||na(e)}function Le(e){return rn(e,"img")}function zn(e){return rn(e,"canvas")}function $l(e){return rn(e,"style")}function zl(e){return rn(e,"link")}function ra(e){return ke(e)&&(e.namespaceURI===Vl||e.namespaceURI==="http://www.w3.org/2000/svg")}function ql(e){let t=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},r=l=>e?.resolveStartSeconds?e.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,i=(l,d)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(p){I("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:d+f/1e3}:{unbounded:!0}},o=(l,d)=>{for(let m of l){try{m.currentTime=d}catch(f){I("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){I("runtime.adapters.css.site2",f)}}},a=l=>{for(let d of l)try{d.play()}catch(m){I("runtime.adapters.css.site3",m)}},u=l=>{for(let d of l)try{d.pause()}catch(m){I("runtime.adapters.css.site4",m)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let l=document.querySelectorAll("*");for(let d of l){if(!pe(d))continue;let m=window.getComputedStyle(d);!m.animationName||m.animationName==="none"||t.push({el:d,baseDelay:d.style.animationDelay||"",basePlayState:d.style.animationPlayState||"",animations:n(d)})}},getInferredDurationSeconds:()=>{let l=0;for(let d of t){if(!d.el.isConnected)continue;let m=r(d.el);for(let f of n(d.el)){let p=i(f,m);p.endSeconds!=null&&(l=Math.max(l,p.endSeconds))}}return l>0?l:null},seek:l=>{let d=Number(l.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,d-f)*1e3,g=m.animations;if(g.length>0){o(g,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let l of t){if(!l.el.isConnected)continue;let d=l.animations;d.length>0&&u(d),s(l)}},play:()=>{for(let l of t)l.el.isConnected&&(s(l),a(l.animations))},revert:()=>{t=[]}}}function jl(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 Kl(){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){I("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){I("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){I("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){I("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Jl(e){let t=(n,r)=>{let i=hi(n)?n.wrapper:n.canvas,o=i&&typeof i.closest=="function"?i.closest("[data-composition-id]"):null;return!o||!e?.resolveStartSeconds?r:Math.max(0,r-e.resolveStartSeconds(o))};return{name:"lottie",discover:()=>{try{let n=window.lottie;if(n&&typeof n.getRegisteredAnimations=="function"){let r=n.getRegisteredAnimations();if(Array.isArray(r)&&r.length>0){let i=window.__hfLottie??[],o=new Set(i);for(let a of r)o.has(a)||i.push(a);window.__hfLottie=i}}}catch(n){I("runtime.adapters.lottie.site1",n)}},seek:n=>{let r=Math.max(0,Number(n.time)||0),i=window.__hfLottie;if(!(!i||i.length===0))for(let o of i)try{let a=t(o,r),u=o.loop===!0;if(hi(o)){let s=a*o.frameRate;o.totalFrames>0&&u?o.goToAndStop(Xl(s,o.totalFrames),!0):o.totalFrames>0&&s>=o.totalFrames?o.goToAndStop(o.totalFrames-1,!0):o.goToAndStop(a*1e3,!1)}else if(ia(o)){if(typeof o.setCurrentRawFrameValue=="function"){let s=o.totalFrames??0,l=o.frameRate??30,d=u&&s>0?Xl(a*l,s):a*l;s>0&&o.setCurrentRawFrameValue(Math.min(d,s-1))}else if(typeof o.seek=="function"){let s=o.duration??0;if(Number.isFinite(s)&&s>0){let l=Math.min(100,(u?a%s:a)/s*100);o.seek(l)}}}}catch(a){I("runtime.adapters.lottie.site2",a)}},pause:()=>{let n=window.__hfLottie;if(!(!n||n.length===0))for(let r of n)try{(hi(r)||ia(r))&&r.pause()}catch(i){I("runtime.adapters.lottie.site3",i)}},revert:()=>{},getInferredDurationSeconds:()=>{let n=window.__hfLottie;if(!n||n.length===0)return null;let r=0,i=!1;for(let o of n){let a=null;try{a=Ug(o)}catch(u){I("runtime.adapters.lottie.site4",u)}a!=null&&(i=!0,r=Math.max(r,a))}return i?r:null}}}function Xl(e,t){let n=e%t;return t-n<1e-6?0:n}function Yl(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function Ug(e){return hi(e)?Yl(e.totalFrames,e.frameRate):ia(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:Yl(e.totalFrames,e.frameRate):null}function hi(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function ia(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var oa=-1,gi=new Set,on,aa=0;function Ql(e){let t=[],n=!0,r={time:e,waitUntil:i=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(i)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(i){I("runtime.adapters.seek-dispatch.site1",i)}finally{n=!1}t.length!==0&&qn(Promise.all(t))}function qn(e){let t=e.then(()=>({status:"fulfilled"})).catch(n=>({status:"rejected",reason:n}));gi.add(t),t.then(n=>{gi.delete(t)&&n.status==="rejected"&&on===void 0&&(on={reason:n.reason})})}function bi(e){e!==oa&&(oa=e,Ql(e))}function xi(e){oa=e,Ql(e)}function Zl(){return aa>0}async function sa(){aa+=1;let e=on;try{for(await Promise.resolve();gi.size>0;){let r=(await Promise.all([...gi])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=on;if(e===void 0&&(e=t),on===t&&(on=void 0),e)throw e.reason}finally{aa-=1}}function ec(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let d=window.THREE?.DefaultLoadingManager;return!d||typeof d!="object"||typeof d.itemsLoaded!="number"||typeof d.itemsTotal!="number"?null:d},u=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(d=>{l.onLoad=function(){try{i?.call(this)}finally{o=null,l.onLoad=i??null,d()}}}))},s=l=>{n!==l&&(n=l,r=l.onStart??null,i=l.onLoad??null,l.onStart=function(d,m,f){try{r?.call(this,d,m,f)}finally{u(l)}})};return{name:"three",discover:()=>{let l=a();l&&(s(l),u(l))},seek:l=>{e=Math.max(0,Number(l.time)||0),t=e,window.__hfThreeTime=e,bi(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let l=a();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||u(l),o)}}}function tt(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 tc(){return tt({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 nc(){return tt({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 rc(){return tt({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 ic(){return tt({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 oc(){return tt({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var Wg=250;function ac(){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&&(Zl()||(window.__hfTypegpuTime=e,xi(e)))},Wg))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,bi(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var jn="data-hf-render-id",sc="data-hf-group-render-id";function Vg(e){return e.getAttribute(jn)||e.id||null}var $g="__render_frame_",zg="__";function qg(e){return`${$g}${e}${zg}`}function jg(e){let t=Vg(e);return t?qg(t):null}function _t(e){let t=jg(e);if(!t)return null;let n=document.getElementById(t);return Le(n)?n:null}function uc(e){let t=e.nextElementSibling;if(Le(t)&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=_t(e);return n&&n.complete&&n.naturalWidth>0?n:null}function lc(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(he(n?.source)){let o=uc(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function cc(){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(...u){let s=u.length-1,l=u[s];if(he(l)){let d=uc(l);d&&(u[s]=d)}return o.apply(this,u)};a.__hfVideoPatched=!0,r[i]=a}}}var Vt="data-fx-chain",iC=Vt.slice(5),dc=1,Kn=(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}),ua=(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}),yi=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),fc={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."},pc=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[yi(-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:[Kn("frequency","Frequency",1e3),yi(-40,40,0),ua(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[Kn("frequency","Frequency",200,20,2e3),yi(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[Kn("frequency","Frequency",4e3,500,2e4),yi(-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:[Kn("frequency","Cutoff",300,20,2e4),ua(.707),fc],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[Kn("frequency","Cutoff",8e3,100,2e4),ua(.707),fc],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"}],la=new Map(pc.map(e=>[e.id,e]));function Xn(e){return la.get(e)}var oC=pc.map(e=>e.id);function Yn(e,t){let n=la.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let u=i.options.some(s=>s.value===o);r[i.key]=u?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 wt=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function hc(e){let t;try{t=JSON.parse(e)}catch(i){throw new wt(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new wt("Chain file must be a JSON object.");let n=t;if(n.version!==dc)throw new wt(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new wt("Chain file is missing a `nodes` array.");let r=n.nodes.map(Kg);return{version:dc,nodes:r}}function Jn(e){return e.nodes.filter(t=>t.enabled!==!1)}function Kg(e,t){if(typeof e!="object"||e===null)throw new wt(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!la.has(n.type))throw new wt(`Node ${t} has unknown effect type: ${String(n.type)}`);return Yg({type:n.type,id:vi(n.id),fromCarve:mc(n.fromCarve),fromPreset:vi(n.fromPreset),label:vi(n.label),fromEq:vi(n.fromEq),fromLeveller:mc(n.fromLeveller),presetAmount:Xg(n.presetAmount),enabled:n.enabled!==!1,params:Yn(n.type,n.params??void 0)})}function vi(e){return typeof e=="string"&&e?e:void 0}function mc(e){return e===!0?!0:void 0}function Xg(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function Yg(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function Jg(e){return 10**(e/20)}var ca=Jg(12);function Be(e){return Number.isFinite(e)?Math.max(0,Math.min(ca,e)):1}function Si(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function gc(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,Si(o))}});try{return t()}finally{delete e.volume,i.call(e,Si(o))}}var an=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),uC=Object.freeze([an.start,an.duration,an.trackIndex]),lC=Object.freeze([an.derivedEnd]),cC=Object.freeze([an.derivedEnd,an.legacyTrack]);function Ct(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var xc=/^[A-Za-z0-9_.:-]+$/;function yc(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function bc(e,t){let n=t;for(;n>=0&&yc(e,n);)n--;return n}function Qg(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function Zg(e){let t=e.length-1;if(!yc(e,t))return null;let n=bc(e,t);return e[n]==="."&&(n=bc(e,n-1)),n+1}function eb(e){let t=Zg(e);if(t==null)return null;let n=Qg(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!xc.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function da(e){let t=(e??"").trim();if(!t)return null;let n=Ct(t);if(n!=null)return{kind:"absolute",value:n};if(xc.test(t))return{kind:"reference",refId:t,offset:0};let r=eb(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}var vc=e=>{let t=Ct(e);return t!==null&&t>=0?t:null};function Sc(e){return vc(e("data-playback-start"))??vc(e("data-media-start"))??0}var Qn=.1,Zn=10;function fa(e){return Number.isFinite(e)&&e>0?Math.max(Qn,Math.min(Zn,e)):1}function Ec(e,t=1){let n=Number.parseFloat(e("data-playback-rate")??"");return fa(Number.isFinite(n)&&n>0?n:t)}function ma(e){let t=Ct(e("data-duration"));return t!==null&&t>0?t:null}function Ac(e,t){let n=ma(e);if(n!==null)return n;let r=Ct(e("data-end"));return r!==null?r-t:null}var tb=3;function pa(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/fa(n):null}function ha(e){let{tag:t,authoredDurationSeconds:n,sourceDurationSeconds:r,mediaStartSeconds:i,playbackRate:o}=e;if(n!==null&&n>0)return{seconds:n,source:"authored"};if(t==="img")return{seconds:tb,source:"default"};if(r===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=pa(r,i,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var pt="data-automation",vC=pt.slice(5),Ei=1,nb=512,mt=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},sn="volume",Ai="rate";function tr(e){if(e===sn)return{kind:"volume"};if(e===Ai)return{kind:"rate"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===rb){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 rb="preset";var ib={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},_i={min:0,max:ca,step:.01,unit:"",label:"Volume",scale:"linear",default:1},_c={min:Qn,max:Zn,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function ga(e,t){let n=tr(e);if(!n)return null;if(n.kind==="volume")return _i;if(n.kind==="rate")return _c;if(n.kind==="preset")return t?.nodes.some(u=>u.fromPreset===n.presetId)?{...ib,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Xn(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 er(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 ob(e){let t=er(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function wc(e,t){let n=er(e),r=er(t);if(n===null||r===null)return null;let i=u=>Math.min(.999,Math.max(.001,u)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function ab(e){let t=ob(e?.curve),n=wc(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function sb(e,t){let n=er(e?.t),r=er(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,...ab(e)}}function Cc(e,t){let n=e.map(i=>sb(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,nb)}function ub(e){let t=[];for(let n of e.lanes){if(!tr(n.target))continue;let r=n.target===sn?_i:n.target===Ai?_c:null,i=Cc(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:Ei,lanes:t}}function Rc(e,t){let n=[];for(let r of e.lanes){let i=ga(r.target,t);if(!i)continue;let o=Cc(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:Ei,lanes:n}}function wi(e){let t;try{t=JSON.parse(e)}catch(i){throw new mt(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new mt("Automation must be a JSON object.");let n=t;if(n.version!==Ei)throw new mt(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new mt("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new mt(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!tr(a.target))throw new mt(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new mt(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return ub({version:Ei,lanes:r})}function lb(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function cb(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,u=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,u));return{cx:e+n/s,cy:t+r/s,w:s}}function db(e,t,n){let{cx:r,cy:i,w:o}=cb(t,n),a=2-2*o,u=e*a-1+2*o*r,s=-e*a-2*o*r,l=fb(u,s,e),d=1-l,m=d*d+2*o*l*d+l*l;return m>0?(2*o*i*l*d+l*l)/m:e}function fb(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=u=>u>=-1e-9&&u<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function mb(e,t){let n=wc(t.viaX,t.viaY);return n?db(Math.min(1,Math.max(0,e)),n.x,n.y):lb(e,t.curve)}function pb(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 ht(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,u=r.length-1;for(;u-a>1;){let m=a+u>>1;r[m].t<=t?a=m:u=m}let s=r[a],l=r[u],d=l.t-s.t;return d<=0?l.v:pb(s.v,l.v,mb((t-s.t)/d,s),n)}function Tc(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function kc(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),u=n-t;for(let s=0;s<o;s+=1)a[s]=ht(e,t+u*s/(o-1),i);return a}var Ci=new Map,hb=64;function ba(e,t=sn){let n=`${t}\\0${e}`,r=Ci.get(n);if(r!==void 0)return r;let i=null;try{i=wi(e).lanes.find(o=>o.target===t)??null}catch{i=null}return Ci.size>hb&&Ci.clear(),Ci.set(n,i),i}function Mc(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(pt):null)??"";if(!n)return null;let r=ba(n);return!r||r.points.length===0?null:ht(r,t)}var Fc=48,Lc=new WeakMap;function gb(e){let t=e.points,n=t[0].v,r=t[t.length-1].v,i=[0],o=[0],a=s=>{let l=i[i.length-1];if(s<=l)return;let d=ht(e,l,"log");i.push(s),o.push(o[o.length-1]+(d+ht(e,s,"log"))/2*(s-l))},u=Math.max(0,t[0].t);a(u);for(let s=1;s<t.length;s+=1){let l=t[s-1].t,d=t[s].t;if(!(d<=0))for(let m=1;m<=Fc;m+=1)a(Math.max(l,0)+(d-l)*m/Fc)}return{ts:Float64Array.from(i),ss:Float64Array.from(o),firstRate:n,lastRate:r}}function Nc(e){let t=Lc.get(e);return t||(t=gb(e),Lc.set(e,t)),t}function xa(e){return typeof e!="number"&&e.points.length>0}function Dc(e,t){return typeof e=="number"?e:xa(e)?ht(e,t,"log"):1}function Ic(e,t,n){let r=0,i=e.length-1;for(;i-r>1;){let o=r+i>>1;e[o]<=n?r=o:i=o}return t[r]+(t[i]-t[r])*(n-e[r])/(e[i]-e[r])}function Ri(e,t){if(typeof e=="number")return t*e;if(!xa(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=Nc(e),a=n.length-1;return t<=0?t*i:t>=n[a]?r[a]+(t-n[a])*o:Ic(n,r,t)}function un(e,t){if(typeof e=="number")return t/e;if(!xa(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=Nc(e),a=n.length-1;return t<=0?t/i:t>=r[a]?n[a]+(t-r[a])/o:Ic(r,n,t)}function bb(e){return e?ba(e,Ai):null}function Pc(e,t){return bb(e)??t}function Oc(){let e=!1,t=0,n=!1,r,i,o,a=new Set,u=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let A=Number(x.currentTime);return Number.isFinite(A)&&A>0?A:0},d=(x,A)=>A<=0?x:x>=A?Math.max(0,x-A):x,m=(x,A)=>{let M=u.get(x);if(M)return M;let C={compositionTimeMs:A,animationTimeMs:e?d(l(x),A):l(x)};return u.set(x,C),C},f=(x,A)=>{if(!a.has(x)){a.add(x);let M=()=>{a.delete(x)};try{x.addEventListener("finish",M,{once:!0}),x.addEventListener("cancel",M,{once:!0})}catch(C){I("runtime.adapters.waapi.site4",C)}}m(x,A)},p=(x,A)=>{for(let M of x)f(M,A)},g=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let A=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:A,configurable:!0});let M=function(...C){let L=A.apply(this,C);return f(L,t),L};x.animate=M,r=x,i=A,o=M,n=!0}catch{}},y=x=>{let A=null;try{A=x.effect?.getComputedTiming?.()??null}catch(L){I("runtime.adapters.waapi.site4",L)}if(!A)return{};let M=Number(A.endTime);return Number.isFinite(M)?{endSeconds:(u.get(x)?.compositionTimeMs??0)/1e3+M/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,g(),p(s(),t)},seek:x=>{let A=Math.max(0,(Number(x.time)||0)*1e3);t=A,(!e||a.size>0)&&p(s(),e?A:0);for(let M of a){let C=e?m(M,A):m(M,0),L=C.animationTimeMs+Math.max(0,A-C.compositionTimeMs);try{M.currentTime=L}catch(B){I("runtime.adapters.waapi.site1",B)}try{M.pause()}catch(B){I("runtime.adapters.waapi.site2",B)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(A){I("runtime.adapters.waapi.site3",A)}},revert:()=>{if(a.clear(),u=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){I("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let A of s()){let M=y(A);M.endSeconds!=null&&(x=Math.max(x,M.endSeconds))}return x>0?x:null}}}function Me(e){return Ct(e)}function Pe(e){return Ec(t=>e.getAttribute(t),ge(e)?e.defaultPlaybackRate:1)}function Rt(e){return Pc(e.getAttribute("data-automation"),Pe(e))}function Ti(e){return Sc(t=>e.getAttribute(t))}function nt(e,t){return xb(t,Ti(e),Rt(e))}function ki(e){let t=ha({tag:"video",authoredDurationSeconds:ma(n=>e.getAttribute(n)),sourceDurationSeconds:Number.isFinite(e.duration)?e.duration:null,mediaStartSeconds:Ti(e),playbackRate:Pe(e)});return t.source==="media"?nt(e,e.duration):t.seconds}function ln(e,t=0){return!Le(e)||!e.hasAttribute("data-start")&&!e.hasAttribute("data-track-index")?null:ha({tag:"img",authoredDurationSeconds:Ac(n=>e.getAttribute(n),t),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function xb(e,t,n){return typeof n=="number"?pa(e,t,n):Number.isFinite(e)?un(n,Math.max(0,e-t)):null}var cn="data-hf-authored-duration",dn="data-hf-authored-end";function nr(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 fn(e){let t=nr(e.start);if(t==null)return null;let n=Math.max(0,t),r=nr(e.duration),i=nr(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=nr(e.end),u=nr(e.authoredEnd),s=a!=null&&a>n?a:u!=null&&u>n?u:null;return{start:n,duration:s==null?null:s-n,end:s}}var Mi="data-hf-media-start-basis";function yb(e){return e?.trim().toLowerCase()==="global"?"global":"local"}function vb(e){return yb(e.basis)==="global"?e.authoredStart:e.hostStart+e.authoredStart}function Hc(e){return e.hasAutoStart||e.authoredStart==null||e.hostStart<=0?e.ordinaryStart():vb({authoredStart:e.authoredStart,hostStart:e.hostStart,basis:e.basis})}function Ue(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,u=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=o.get(f);if(p!==void 0)return p;let g=null,y=fn({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(y?.duration!=null&&y.duration>0&&(g=y.duration),g==null||g<=0){let x=d(f,0),A=fn({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});A?.duration!=null&&A.duration>0&&(g=A.duration)}if((g==null||g<=0)&&ge(f)&&(g=nt(f,f.duration)),(g==null||g<=0)&&(g=ln(f)),g==null||g<=0){let x=f.getAttribute("data-composition-id");if(x){let A=t[x]??null;if(A&&typeof A.duration=="function")try{let M=Number(A.duration());Number.isFinite(M)&&M>0&&(g=M)}catch(M){I("runtime.startResolver.site1",M)}}}return g!=null&&Number.isFinite(g)&&g>0?(o.set(f,g),g):(o.set(f,null),null)},l=(f,p)=>{if(f.hasAttribute("data-composition-id")){let y=f.parentElement?.closest("[data-composition-id]");return y?d(y,p):0}let g=f.closest("[data-composition-id]");return g?d(g,p):0},d=(f,p)=>{let g=i.get(f);if(g!==void 0)return g??p;if(a.has(f))return p;a.add(f);try{let y=da(f.getAttribute("data-start"));if(!y){if(f.hasAttribute("data-composition-id")){let L=f.parentElement;if(L&&(L.hasAttribute("data-composition-src")||L.hasAttribute("data-composition-id")||L.hasAttribute("data-composition-file"))){let B=d(L,p);return i.set(f,B),B}}return i.set(f,p),p}if(y.kind==="absolute"){let L=Math.max(0,y.value),B=Math.max(0,l(f,p)+L);return i.set(f,B),B}let x=u(y.refId);if(!x)return i.set(f,p),p;let A=d(x,0),M=s(x);if(M==null||M<=0){let L=Math.max(0,A+y.offset);return i.set(f,L),L}let C=Math.max(0,A+M+y.offset);return i.set(f,C),C}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>d(f,Math.max(0,p)),resolveDurationForElement:f=>s(f),resolveMediaStartForElement:f=>{let p=f.closest("[data-composition-id]"),g=p?d(p,0):0;return Hc({authoredStart:Me(f.getAttribute("data-start")),hostStart:g,hasAutoStart:f.hasAttribute("data-hf-auto-start"),basis:f.getAttribute(Mi),ordinaryStart:()=>d(f,g)})}}}function Sb(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:Be(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:Be(n)}),i}function Gc(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 Eb(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 Ab(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function _b(e,t){let n=Ue({timelineRegistry:window.__timelines,includeAuthoredTimingAttrs:!0}).resolveMediaStartForElement(e),r=Me(e.dataset.end)??void 0,i=Me(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=Ab(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Be(a)}}function wb(e,t,n,r,{start:i,end:o,staticVolume:a}){let u=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),l=Math.min(n,o),d=gc(e,()=>{e.volume=a;let f=[],p;for(let g=s;g<=l+1e-6;g=Math.min(l,g+u)){t(g);let y=Number(e.volume);if(Number.isFinite(y)){let x={time:Number(g.toFixed(6)),volume:Number(Be(y).toFixed(6))};Eb(f,p,x,g===l),p=x}if(g===l)break}return f});return d.some(f=>Math.abs(f.volume-a)>1e-4)?d:null}function Bc(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!ge(e)||n<=0)return;let o=l=>{try{typeof t.totalTime=="function"?t.totalTime(l,!0):typeof t.seek=="function"&&t.seek(l,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,u=_b(e,n),s=wb(e,o,n,60,u);if(Number.isFinite(a)&&o(a),s){let l=Sb(s,u.start,u.staticVolume);l.length>0&&r.set(e,l)}}var Vc="data-fade-in",$c="data-fade-out",JC=Vc.slice(5),QC=$c.slice(5),zc=Object.freeze({fadeIn:0,fadeOut:0});function ya(e){return Number.isFinite(e)&&e>0?e:0}function Uc(e){return e==null||e===""?0:ya(Number.parseFloat(e))}function qc(e){return{fadeIn:Uc(e.getAttribute(Vc)),fadeOut:Uc(e.getAttribute($c))}}function Cb(e,t){let n=ya(e.fadeIn),r=ya(e.fadeOut);if(!Number.isFinite(t)||t<=0)return{fadeIn:n,fadeOut:r};let i=n+r;if(i<=t)return{fadeIn:n,fadeOut:r};let o=t/i;return{fadeIn:n*o,fadeOut:r*o}}function jc(e,t,n){if(!Number.isFinite(e))return 1;let{fadeIn:r,fadeOut:i}=Cb(n,t),o=1;return r>0&&(o*=Wc(e/r)),i>0&&Number.isFinite(t)&&(o*=Wc((t-e)/i)),o}function Wc(e){return!Number.isFinite(e)||e<0?0:e>1?1:e}var mn="hf-audio-group",Fi="data-audio-group";function va(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function Sa(e,t){let n=Array.from(e?.querySelectorAll?.(`${mn}[${jn}]`)??[]).find(i=>i.getAttribute(jn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===mn?r:null}function Li(e,t){let n=t?.getAttribute?.(sc)??t?.getAttribute?.(Fi);return n?Sa(e,n)?.hasAttribute("data-hidden")??!1:!1}function Kc(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Fi)||null}function Xc(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${mn}{display:none!important}`,e.head.appendChild(n)}function rt(e){return Ti(e)}var Yc=["seeked","error","emptied","abort"];function Rb(e){e.tagName!=="VIDEO"||!e.seeking||qn(new Promise(t=>{let n=()=>{for(let r of Yc)e.removeEventListener(r,n);t()};for(let r of Yc)e.addEventListener(r,n)}))}function Jc(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 Qc(e){let t=e?.elements??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 u=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(u))continue;let s=rt(a),l=Pe(a),d=Rt(a),m=a.loop,f=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,p=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(p)||p<0)&&f!=null&&(p=Math.max(0,un(d,f-s)));let g=Number.isFinite(p)&&p>=0,y=g?u+p:Number.POSITIVE_INFINITY,x=Number.parseFloat(a.dataset.volume??""),A={el:a,start:u,mediaStart:s,duration:g?p:Number.POSITIVE_INFINITY,end:y,volume:Number.isFinite(x)?x:null,playbackRate:l,rate:d,loop:m,sourceDuration:f,fades:qc(a)};r.push(A),a.tagName==="VIDEO"&&i.push(A),Number.isFinite(y)&&(o=Math.max(o,y))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var Aa=new WeakMap,Ni=new WeakMap,rr=new WeakMap,_a=new WeakSet,pn=new WeakSet;function Tb(e){if(pn.has(e))return;pn.add(e);let t=()=>pn.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var kb=3;function Mb(e){return e.error!=null||e.networkState===kb}var wa=new WeakMap;function Ea(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function Ca(e){Aa.delete(e),Ni.delete(e),rr.delete(e),_a.delete(e),wa.delete(e)}function Zc(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=n.rate??n.playbackRate,o=r.tagName==="VIDEO"&&!n.loop,a=At(e.timeSeconds,n.start,n.end),u=o&&!a&&e.timeSeconds>=n.end&&fi(e.timeSeconds,n.start,n.end,e.getCompositionDuration()),s=Ri(i,Math.min(e.timeSeconds,n.end)-n.start)+n.mediaStart,l=u||o&&n.sourceDuration!=null&&s>=n.sourceDuration&&a;l&&n.sourceDuration!=null&&(s=Math.min(s,n.sourceDuration));let d=Ni.get(r),m=r.tagName==="AUDIO"&&(d===void 0||s<d-.04),f=!n.loop&&n.sourceDuration!=null&&s>=n.mediaStart&&s<n.sourceDuration&&(o||m);if((a||u)&&s>=0&&(!r.ended||n.loop||l||f)){if(Ni.set(r,s),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let O=n.sourceDuration-n.mediaStart;O>0&&s>=n.sourceDuration&&(s=n.mediaStart+(s-n.mediaStart)%O)}let y=Ea(e.userVolume??1),x=Be(n.volume??1),A=wa.get(r),M=Ea(r.volume),C,L=Mc(r,e.timeSeconds-n.start);if(L!==null)C=Be(L);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let O=e.timeSeconds-n.start;C=Be(Gc(n.volumeKeyframes,O))}else e.isWebAudioRouted?.(r)?C=x:A===void 0?C=x>1?x:M:Math.abs(M-A)>1e-4?C=M:C=x;let B=n.fades??zc;(B.fadeIn>0||B.fadeOut>0)&&(C*=jc(e.timeSeconds-n.start,n.duration,B));let w=r.closest("[data-hidden]")!==null||Li(r.ownerDocument,r)?0:Ea(C*y);r.volume=w,wa.set(r,w),e.onElementVolume?.(r,w,C),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=Dc(i,e.timeSeconds-n.start)*e.playbackRate}catch(O){I("runtime.media.site1",O)}let _=.04,T=2,N=r.currentTime||0,W=Math.abs(N-s),X=s-N,Y=Aa.get(r);Aa.set(r,X);let R=Y===void 0,S=!R&&Math.abs(X-Y)>.5,H=W>3,q=r.tagName==="AUDIO"&&R&&N-s>_,U=l&&W>.001||r.ended&&f&&W>.001||q||W>.5&&(R||S||H),V=r.tagName==="VIDEO"&&!r.paused&&e.playing,$=Y!==void 0&&Math.abs(X-Y)<.004,G=!1;if(!V&&!U&&!R&&$&&W>_){let O=(rr.get(r)??0)+1;rr.set(r,O),O>=T&&(G=!0,rr.set(r,0))}else W<=_&&rr.set(r,0);let P=!V&&e.forceSync&&W>.02;if(U||G||P){if(!(r.tagName==="VIDEO"&&!!_t(r))){try{r.currentTime=s}catch(Z){I("runtime.media.site2",Z)}if(Math.abs(r.currentTime-s)>.5&&!_a.has(r)){_a.add(r),r.load();try{r.currentTime=s}catch(Z){I("runtime.media.site3",Z)}}Rb(r)}pn.delete(r)}l?r.paused||r.pause():e.playing&&r.paused&&!pn.has(r)&&!Mb(r)?(Tb(r),r.play().catch(O=>{pn.delete(r),(O&&typeof O=="object"&&"name"in O?String(O.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let g=At(e.timeSeconds,n.start,n.end);Ca(r),g&&Ni.set(r,s),r.paused||r.pause()}}var Fb="hf-proxy",ed="runtime_media_proxy_fallback",td="runtime_media_proxy_unavailable",ir=new WeakSet,nd=new WeakSet;function Di(e){return e.currentSrc||e.src}function Ra(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:he(e)&&!!_t(e)}function Ta(e){let t=Di(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 Lb(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 Nb(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,u]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=u,o=!1):s.length===r&&(o=!0))}return o?null:i}function ka(e,t){return t[e]??Lb(e,t)??Nb(e,t)}function Db(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Fb,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var Ib={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 $t(e,t,n){if(nd.has(e))return;nd.add(e);let r=Ib[t];xe({source:"hf-preview",type:"diagnostic",code:td,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${td}: "${n}" (${t}): ${r}`)}function Ma(e,t=null,n="reactive"){if(ir.has(e))return;let r=Di(e),i;try{i=Db(r,t)}catch(u){I("runtime.mediaProxy.swap",u),$t(e,"invalid_source_url",r);return}ir.add(e),Ca(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:ed,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] ${ed}: "${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 rd(e){if(Ra(e)||!he(e)||ir.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=Ta(e);if(n===null)return;let r=ka(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Ma(e,r,"proactive")}function id(e){if(Ra(e)||!he(e)||e.videoWidth!==0)return;let t=Di(e);if(ir.has(e)){$t(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=Ta(e);if(r===null){$t(e,"cross_origin",t);return}let i=ka(r,n);if(i&&!i.browserHostile){$t(e,"browser_safe_codec",t);return}Ma(e,i,"reactive")}function od(e){if(Ra(e)||!he(e))return;let t=Di(e);if(ir.has(e)){$t(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=Ta(e);if(r===null){$t(e,"cross_origin",t);return}let i=ka(r,n);if(i&&!i.browserHostile){$t(e,"browser_safe_codec",t);return}Ma(e,i,"tertiary")}var Ce=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ue(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},Pb=[0,0,0],Ob=[1,1,1],Ii=64;function Hb(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 Tt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Ce(`Invalid number "${e}"`,t);return n}function ad(e,t,n){if(e.length!==3)throw new Ce(`${t} expects three numbers`,n);return[Tt(e[0],n),Tt(e[1],n),Tt(e[2],n)]}function sd(e,t,n){if(!e)throw new Ce(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Ce(`${t} must be an integer greater than 1`,n);return r}function Gb(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Ce("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Bb(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 Ub(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function ud(e,t={}){let n=t.maxSize??Ii,r=null,i=Pb,o=Ob,a=null,u=null,s=[],l=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,p=Hb(l[m]??"").trim();if(!p)continue;let g=p.split(/\\s+/),y=(g[0]??"").toUpperCase(),x=g.slice(1);if(y==="TITLE"){r=Bb(p);continue}if(y==="DOMAIN_MIN"){i=ad(x,y,f);continue}if(y==="DOMAIN_MAX"){o=ad(x,y,f);continue}if(y==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Ce(`${y} expects two numbers`,f);let A=Tt(x[0],f),M=Tt(x[1],f);if(M<=A)throw new Ce("LUT_3D_INPUT_RANGE max must exceed min",f);i=[A,A,A],o=[M,M,M];continue}if(y==="LUT_1D_SIZE"){a=sd(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(u=sd(x[0],y,f),u>n)throw new Ce(`LUT_3D_SIZE ${u} exceeds max ${n}`,f);continue}if(!Ub(y)){if(y.startsWith("LUT_"))throw new Ce(`Unsupported cube keyword ${y}`,f);continue}if(!u)throw a?new Ce("1D cube LUTs are not supported yet",f):new Ce("LUT data appears before LUT_3D_SIZE",f);if(g.length!==3)throw new Ce("LUT data rows must contain three numbers",f);s.push(Tt(g[0],f),Tt(g[1],f),Tt(g[2],f))}if(a&&u)throw new Ce("Mixed 1D and 3D cube LUTs are not supported yet");if(!u)throw a?new Ce("1D cube LUTs are not supported yet"):new Ce("Missing LUT_3D_SIZE");Gb(i,o);let d=u*u*u;if(s.length!==d*3)throw new Ce(`Expected ${d} LUT rows for size ${u}, found ${s.length/3}`);return{title:r,size:u,domainMin:i,domainMax:o,data:new Float32Array(s)}}function Wb(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function or(e){return Math.round(Wb(e)*255)}function Fa(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 u=0;u<t;u++){let s=((o*t+a)*t+u)*3,l=(a*n+o*t+u)*4;i[l]=or(e.data[s]??0),i[l+1]=or(e.data[s+1]??0),i[l+2]=or(e.data[s+2]??0),i[l+3]=255}return{width:n,height:r,data:i}}var ld="rec709";var be={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 cd=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],dd=["shadows","midtones","highlights"],fd=["master","red","green","blue"],md=["hueVsHue","hueVsSaturation","hueVsLuma"];var pd=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],hd=["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 wR=be.unit,CR=be.signedUnit,RR=be.effects;var it=1024,ar=16;function gd(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 Re(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function Vb(e){let t=[],n=[],r=Re(e,0);for(let a of e.slice(1)){let u=a[0]-r[0];t.push(u),n.push((a[1]-r[1])/u),r=a}let i=Re(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=gd(Re(t,0),Re(t,1),i,Re(n,1)),o[o.length-1]=gd(Re(t,t.length-1),Re(t,t.length-2),Re(n,n.length-1),Re(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let u=Re(n,a-1),s=Re(n,a);if(u===0||s===0||Math.sign(u)!==Math.sign(s)){o[a]=0;continue}let l=Re(t,a-1),d=Re(t,a),m=2*d+l,f=d+2*l;o[a]=(m+f)/(m/u+f/s)}return o}function bd(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 $b(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 zb(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),u=a*a,s=u*a;return(2*s-3*u+1)*t[1]+(s-2*u+a)*o*r+(-2*s+3*u)*n[1]+(s-u)*o*i}function xd(e,t,n,r,i){$b(e,r,i);let o=Vb(e),a=new Float32Array(t),u=0;for(let s=0;s<t;s+=1){let l=n(s);for(;u<e.length-2&&l>Re(e,u+1)[0];)u+=1;let d=Re(e,u),m=Re(e,u+1),f=zb(l,d,m,Re(o,u),Re(o,u+1));a[s]=Math.min(i,Math.max(r,f))}return a}function hn(e,t=it){if(bd(e,t),e.length>ar)throw new RangeError(`A color curve supports at most ${ar} 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 xd(e,t,n=>n/(t-1),0,1)}function Na(e,t,n,r=it){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>ar)throw new RangeError(`A hue curve supports at most ${ar} points`);let i=[...e].sort((s,l)=>s[0]-l[0]);for(let s=0;s<i.length;s+=1){let l=i[s];if(!l||l[0]<0||l[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&l[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,l])=>[s-360,l]),a=i.slice(0,2).map(([s,l])=>[s+360,l]),u=[...o,...i,...a];return bd(u,r),xd(u,r,s=>s/r*360,t,n)}var sr="data-color-grading",ur="data-hf-color-grading-source-hidden",Hi="data-hf-authored-opacity",Ad="__hf_color_grading_",jb=ld,Pa={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},Oa={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Ha={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 Gi=cd,_d=dd,wd=fd,Cd=md,Ba=pd,Ua=hd,yd={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},vd={vignette:.18};function Te(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Pa,...n},details:{...Oa,...r},effects:{...Ha,...i}}}var Wa=[Te("neutral","Neutral"),Te("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Te("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Te("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Te("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Te("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Te("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Te("vintage-wash","Vintage Wash",yd,vd),Te("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Te("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Te("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Te("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Te("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Te("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),Te("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}),Te("home-movie-8mm","8mm Home Movie",yd,{...vd,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Te("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Te("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],Kb=new Map(Wa.map(e=>[e.id,e])),Xb=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,Yb={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}},gn={hue:0,amount:0,level:0},Sd={amount:be.unit,level:be.signedUnit},kt=[[0,0],[1,1]],bn=[],Jb={hueVsHue:be.secondaryHueShift,hueVsSaturation:be.signedUnit,hueVsLuma:be.signedUnit},Da={center:0,range:180,softness:0},Ia={min:0,max:1,softness:.05},Qb={vignette:be.unit,vignetteMidpoint:be.unit,vignetteRoundness:be.signedUnit,vignetteFeather:be.unit,grain:be.unit,grainSize:be.unit,grainRoughness:be.unit},Ga=be.unit,Zb=be.effects,Rd=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var ex=Wa.filter(e=>Rd.some(t=>e.effects[t]>1e-4)),IR=Wa.filter(e=>!ex.includes(e)),PR={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}},Td=[{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 tx=/^#[0-9a-f]{6}$/i;function nx(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&tx.test(t))?null:e.map(t=>t.toLowerCase())}function Ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Oi(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function kd(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function De(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Oi(n,t.min,t.max):0}function Va(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function rx(e){let t=Ne(e)?e:{};return _d.reduce((n,r)=>{let i=Ne(t[r])?t[r]:{};return n[r]={hue:Va(i.hue,gn.hue),amount:De(i.amount??gn.amount,Sd.amount),level:De(i.level??gn.level,Sd.level)},n},{shadows:{...gn},midtones:{...gn},highlights:{...gn}})}function ix(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)?[Oi(t,0,1),Oi(n,0,1)]:null}function Md(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function ox(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function ax(e){if(!Array.isArray(e)||e.length<2)return kt;let t=[];for(let n of e){let r=ix(n);if(!r)return kt;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),Md(t)||(ox(t),t.length>16)?kt:t}function sx(e){let t=Ne(e)?e:{};return wd.reduce((n,r)=>(n[r]=ax(t[r]),n),{master:kt,red:kt,green:kt,blue:kt})}function ux(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)?[Va(n),Oi(r,t.min,t.max)]:null}function lx(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return bn;let n=[];for(let r of e){let i=ux(r,t);if(!i)return bn;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),Md(n)?bn:n}function cx(e){let t=Ne(e)?e:{};return Cd.reduce((n,r)=>(n[r]=lx(t[r],Jb[r]),n),{hueVsHue:bn,hueVsSaturation:bn,hueVsLuma:bn})}function Ed(e){let t=Ne(e)?e:{},n=De(t.min??Ia.min,Ga),r=De(t.max??Ia.max,Ga);return{min:Math.min(n,r),max:Math.max(n,r),softness:De(t.softness??Ia.softness,be.secondarySoftRangeSoftness)}}function dx(e){let t=Ne(e)?e:{},n=De(t.range??Da.range,be.secondaryHueRange);return{center:Va(t.center,Da.center),range:n,softness:De(t.softness??Da.softness,{min:be.secondaryHueSoftness.min,max:be.secondaryHueCombinedMax-n})}}function fx(e){return{hueShift:De(e.hueShift??0,be.secondaryHueShift),saturation:De(e.saturation??0,be.signedUnit),luma:De(e.luma??0,be.signedUnit),temperature:De(e.temperature??0,be.signedUnit),tint:De(e.tint??0,be.signedUnit)}}function mx(e){return!Ne(e)||!Ne(e.key)||!Ne(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:dx(e.key.hue),saturation:Ed(e.key.saturation),luma:Ed(e.key.luma)},correction:fx(e.correction)}}function px(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=mx(n);r&&t.push(r)}return t}function hx(e){if(e==null)return null;let t=String(e).trim();return t||null}function gx(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!Ne(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:kd(e.intensity,1)}}function bx(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return Ne(n)?n:null}catch{return null}return{preset:t}}return Ne(e)?e:null}function xx(e,t){let n=e.trim().match(Xb);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Pi(e,t){if(typeof e=="string"){let r=xx(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Pi(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Pi(r,t));if(!Ne(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Pi(i,t);return n}function yx(e){return e?Kb.get(e)??null:null}function Bi(e){let t=bx(e);if(!t||t.enabled===!1)return null;let n=hx(t.preset),r=yx(n),i=r?.adjust??Pa,o=r?.details??Oa,a=r?.effects??Ha,u=Ne(t.adjust)?t.adjust:{},s=Ne(t.details)?t.details:{},l=Ne(t.effects)?t.effects:{},d=Gi.reduce((p,g)=>(p[g]=De(u[g]??i[g],Yb[g]),p),{...Pa}),m=Ba.reduce((p,g)=>(p[g]=De(s[g]??o[g],Qb[g]),p),{...Oa}),f=Ua.reduce((p,g)=>(p[g]=De(l[g]??a[g],Zb[g]??Ga),p),{...Ha});return{enabled:!0,preset:n,intensity:kd(t.intensity,r?.intensity??1),adjust:d,wheels:rx(t.wheels),curves:sx(t.curves),hueCurves:cx(t.hueCurves),secondaries:px(t.secondaries),details:m,effects:f,palette:nx(t.palette),lut:gx(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():jb}}function Fd(e,t){return Bi(Pi(e,t))}function vx(e){return _d.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function $a(e){return wd.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function za(e){return Cd.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function qa(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function Ld(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||Rd.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:Gi.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?vx(e.wheels):!1)||(e.curves?$a(e.curves):!1)||(e.hueCurves?za(e.hueCurves):!1)||(e.secondaries?qa(e.secondaries):!1):!1}var Sx=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),Ex=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),Nd="[data-hf-inner-root],[data-composition-id]:not([data-composition-id] *)",Dd=`${Nd}{pointer-events:auto!important}`,Ax=`@layer hf-picker{${Dd}}`;function Id(e){let t=!1,n=null,r=null,i=null,o=null,a,u=new Set;function s(R,S){try{window.dispatchEvent(new CustomEvent(R,{detail:S}))}catch(H){I("runtime.picker.site1",H)}}function l(R){i=R,s("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function d(R){o=R,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function m(R){if(u=new Set(Array.from(document.querySelectorAll(Nd)).filter(q=>getComputedStyle(q).pointerEvents==="none")),u.size===0)return R();let S=f(),H=S?p(S):g();try{return R()}finally{H(),u=new Set}}function f(){if(a!==void 0)return a;if(a=null,!Array.isArray(document.adoptedStyleSheets)||typeof CSSStyleSheet>"u")return null;try{let R=new CSSStyleSheet;R.replaceSync(Ax),a=R}catch(R){I("runtime.picker.site2",R)}return a}function p(R){return document.adoptedStyleSheets=[...document.adoptedStyleSheets,R],()=>{document.adoptedStyleSheets=document.adoptedStyleSheets.filter(S=>S!==R)}}function g(){let R=document.createElement("style");return R.textContent=Dd,(document.head??document.documentElement).appendChild(R),()=>R.remove()}function y(R){let S=R.ownerDocument.defaultView;if(!S)return!1;let H=R;for(;H&&H!==document.body&&H!==document.documentElement;){let q=S.getComputedStyle(H);if(q.display==="none"||q.visibility==="hidden"||q.pointerEvents==="none")return!0;let U=Number.parseFloat(q.opacity);if(Number.isFinite(U)&&U<=.01&&!H.hasAttribute(ur))return!0;H=H.parentElement}return!1}function x(R){if(!R||R===document.body||R===document.documentElement)return!1;let S=R.tagName.toLowerCase();return!(S==="script"||S==="style"||S==="link"||S==="meta"||R.classList.contains("__hf-pick-highlight")||u.has(R)||R.closest(Sx)||y(R))}function A(R){return!!R?.closest(Ex)}function M(R){let S=R.parentElement?.getAttribute("data-composition-id");return!R.hasAttribute("data-hf-inner-root")||!S?null:`[data-composition-id="${CSS.escape(S)}"] > [data-hf-inner-root]`}function C(R){let S=M(R);if(S)return S;let H=R;if(H.id)return`#${CSS.escape(H.id)}`;let q=R.getAttribute("data-composition-id");if(q)return`[data-composition-id="${CSS.escape(q)}"]`;let U=R.getAttribute("data-composition-src");if(U)return`[data-composition-src="${CSS.escape(U)}"]`;let V=R.getAttribute("data-track-index");if(V)return`[data-track-index="${CSS.escape(V)}"]`;let $=R.tagName.toLowerCase(),G=R.parentElement;if(!G)return $;let P=G.querySelectorAll(`:scope > ${$}`);if(P.length===1)return $;for(let O=0;O<P.length;O+=1)if(P[O]===R)return`${$}:nth-of-type(${O+1})`;return $}function L(R){let S=R.tagName.toLowerCase(),H=(R.textContent??"").trim().replace(/\\s+/g," "),q=(U,V)=>U.length>V?`${U.slice(0,V-1)}\\u2026`:U;return S==="h1"||S==="h2"||S==="h3"?"Heading":S==="p"||S==="span"||S==="div"?H.length>0?q(H,56):"Text":S==="img"?"Image":S==="video"?"Video":S==="audio"?"Audio":S==="svg"?"Shape":R.getAttribute("data-composition-src")?"Composition":S==="section"?"Section":`${S.charAt(0).toUpperCase()}${S.slice(1)}`}function B(R,S,H){let q=typeof H=="number"&&H>0?H:8,U=[];if(document.elementsFromPoint)U=document.elementsFromPoint(R,S);else if(document.elementFromPoint){let G=document.elementFromPoint(R,S);U=G?[G]:[]}if(A(U[0]??null))return[];let V={},$=[];for(let[G,P]of U.entries()){if(!x(P))continue;let O=`${P.tagName}::${P.id||""}::${G}`;if(!V[O]&&(V[O]=!0,$.push(P),$.length>=q))break}return $}function F(R){let S=R.getBoundingClientRect(),H={};for(let U of Array.from(R.attributes))U.name.startsWith("data-")&&(H[U.name]=U.value);return{id:R.id||null,tagName:R.tagName.toLowerCase(),selector:C(R),label:L(R),boundingBox:{x:S.left,y:S.top,width:S.width,height:S.height},textContent:R.textContent?R.textContent.trim().slice(0,200):null,src:R.getAttribute("src")||R.getAttribute("data-composition-src")||null,dataAttributes:H}}function w(R,S,H){return m(()=>B(R,S,H)).map(F)}function _(R){if(!t)return;let S=m(()=>{let q=B(R.clientX,R.clientY,1)[0]??(ke(R.target)?R.target:null);return x(q)?q:null});if(!S||n===S)return;n&&n.classList.remove("__hf-pick-highlight"),n=S,S.classList.add("__hf-pick-highlight");let H=F(S);l(H),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:H})}function T(R){if(!t)return;R.preventDefault(),R.stopPropagation(),R.stopImmediatePropagation();let S=w(R.clientX,R.clientY,8);S.length!==0&&(l(S[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:S,selectedIndex:0,point:{x:R.clientX,y:R.clientY}}))}function N(R){R.key==="Escape"&&(X(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function W(){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",T,!0),document.addEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function X(){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",T,!0),document.removeEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function Y(){window.__HF_PICKER_API={enable:W,disable:X,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(R,S,H)=>Number.isFinite(R)&&Number.isFinite(S)?w(R,S,H):[],pickAtPoint:(R,S,H)=>{if(!Number.isFinite(R)||!Number.isFinite(S))return null;let q=w(R,S,8);if(!q.length)return null;let U=Math.max(0,Math.min(q.length-1,Number(H??0))),V=q[U]??null;return V?(d(V),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:V}),X(),V):null},pickManyAtPoint:(R,S,H)=>{if(!Number.isFinite(R)||!Number.isFinite(S))return[];let q=w(R,S,8);if(!q.length)return[];let U=[],V=Array.isArray(H)?H:[0];for(let $ of V){let G=Math.max(0,Math.min(q.length-1,Math.floor(Number($)))),P=q[G];if(!P)continue;U.some(Z=>Z.selector===P.selector&&Z.tagName===P.tagName)||U.push(P)}return U.length?(d(U[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:U}),X(),U):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:W,disablePickMode:X,installPickerApi:Y}}var _x=["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 ja(e){return Number.isFinite(e)&&e>0?e:30}function Ka(e){return Number.isFinite(e)&&e>0?e:0}function Xa(e,t){let n=ja(t);return Math.floor(Ka(e)*n+1e-9)/n}function lr(e,t,n){let r=Number.isInteger(n)?n:1;if(r<=1)return Xa(e,t);let i=ja(t)*r;return Math.round(Ka(e)*i)/i}function Ya(e,t){let n=ja(t),r=Ka(e),i=r*n,o=Math.round(i);return Math.abs(i-o)<=.001?o/n:r}function Pd(e,t,n=_x){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function cr(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&&I("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function Ke(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&I("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function dr(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){I("runtime.player.site1",i)}}}function Od(e,t,n,r){let i=lr(t,n,r?.subFrameDivisions),o=r?.suppressEvents===!0;return Ke(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function wx(e,t,n,r,i){let o=[];dr(e,t,a=>{Ke(a,"play"),o.push(a)});try{return Od(t,n,r,i)}finally{for(let a of o)try{Ke(a,"pause")}catch(u){I("runtime.player.site2",u)}}}function Cx(e,t){dr(e,t,n=>{Ke(n,"play")})}function Hd(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?.()??cr(n,"duration",0))||0);r>0&&Math.max(0,cr(n,"time",0))>=r&&(Ke(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()),Ke(n,"play"),dr(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Ke(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;Ke(n,"pause"),dr(e.getTimelineRegistry?.(),n,i=>{Ke(i,"pause")});let r=Math.max(0,cr(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(),u=wx(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(u),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Ke(i,"play"),dr(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),Ke(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(u,!0)):(e.setIsPlaying(!1),e.onSyncMedia(u,!1)),e.onRenderFrameSeek(u),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(Cx(e.getTimelineRegistry?.(),i),Od(i,n,o,r)):lr(Math.max(0,Number(n)||0),o,r?.subFrameDivisions);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>cr(e.getTimeline(),"time",0),getDuration:()=>cr(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function Gd(){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 Rx=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Ja(e){return e.id||e.getAttribute("data-hf-id")||null}function Tx(e){return Me(e)}function kx(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 Mx(e){return ge(e)?Number.isFinite(e.duration)?nt(e,e.duration):null:ln(e)}function Fx(e,t,n,r){let i=Tx(e.getAttribute("data-duration"));return i!=null&&i>0?i:kx(e,t)??Mx(e)??Math.max(0,n-r)}function Lx(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 Bd(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let u of document.querySelectorAll("[data-start]")){if(u===o||Rx.has(u.tagName))continue;let s=t.resolveStartForElement(u,0);if(Fx(u,n,r,s)<=0)continue;let l={id:Ja(u)??`__clip-${a++}`,element:u,parentId:null,children:[]};i.set(u,l)}return Lx(i),{roots:Array.from(i.values()).filter(u=>u.parentId===null)}}var Qa="css:root",Ud=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Nx=new Set([...Ud,"contain","isolation","mask-border","mix-blend-mode","opacity"]),Dx=new Set(["absolute","relative"]),Ix=new Set(["flex","inline-flex","grid","inline-grid"]),Px=new Set(["layout","paint","strict","content"]),Ox=new Set(["size","inline-size"]);function Hx(e){return e.position==="fixed"||e.position==="sticky"}function Gx(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(Dx.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&Ix.has(n)}function Bx(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:Ud.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function Ux(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>Px.has(n))?!0:Ox.has(e.getPropertyValue("container-type"))}function Wx(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Nx.has(t))}function Vx(e,t){return Hx(t)||Gx(e,t)||Bx(t)||Ux(t)?!0:Wx(t)}function $x(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 Ui(e){let t=e.ownerDocument.defaultView;if(!t)return Qa;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(Vx(n,t.getComputedStyle(n)))return $x(n)}catch{return Qa}n=n.parentElement}return Qa}function Za(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}var qx=7200;function pr(e,t){let n=e.tagName.toLowerCase();if(n==="script"||n==="style"||n==="link"||n==="meta")return!1;let i=n==="video"||n==="audio"?t.resolver.resolveMediaStartForElement(e):t.resolver.resolveStartForElement(e,0),o=t.resolver.resolveDurationForElement(e),a=e.getAttribute("data-composition-id");if(a){let d=t.timelineRegistry[a],m=d&&typeof d.duration=="function"?Number(d.duration()):null;!(e.hasAttribute("data-duration")||e.hasAttribute("data-end")||e.hasAttribute(cn)||e.hasAttribute(dn))&&(o==null||o<=0)&&m!=null&&Number.isFinite(m)&&m>0&&(o=m)}let u=o!=null&&o>0?i+o:Number.POSITIVE_INFINITY,s=t.exportRenderSeek?Ya(i,t.canonicalFps):i,l=t.exportRenderSeek&&Number.isFinite(u)?Ya(u,t.canonicalFps):u;return fi(t.currentTime,s,l,t.compositionDuration)}function zt(e){return Me(e)}function es(e){let t=e.getAttribute("data-duration"),n=e.getAttribute(cn),r=fn({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(zt).some(o=>o!=null&&o<=0)?0:null)}function Wd(e){return fn({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute(dn)})?.end??null}function ts(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 ns(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function rs(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 mr(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 Vd(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return mr(t);let n=e.getAttribute("data-composition-src");if(n)return mr(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?mr(r.getAttribute("src")):null}function jx(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 Kx(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 Xx(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function fr(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function Yx(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 fr(i);let o=e.id;if(o)return fr(o);let a=jx(e);if(a)return fr(a);let u=Kx(Vd(e));if(u)return fr(u);let s=Xx(e);return s||`${fr(t)} ${n+1}`}function $d(e){let n=window.__timelines??{},r=Ue({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=G=>{if(!G)return null;let P=n[G]??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=()=>{let G=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(G.length===0)return null;let P=0;for(let O of G){let Z=r.resolveMediaStartForElement(O);if(!Number.isFinite(Z))continue;let te=ki(O);te==null||te<=0||(P=Math.max(P,Math.max(0,Z)+te))}return P>0?P:null},a=(G,P)=>{let O=[],Z=null,te=null,ne=null,j=G.parentElement;for(;j;){let J=j.getAttribute("data-composition-id");J&&(O.push(J),!ne&&j!==P&&(ne=J),Z==null&&(Z=r.resolveStartForElement(j,0)),te==null&&(te=zt(j.getAttribute("data-duration"))??i(J)??null)),j=j.parentElement}return{parentCompositionId:ne,compositionAncestors:O.reverse(),inheritedStart:Z,inheritedDuration:te}},u=document.querySelector("[data-composition-id]"),s=Array.from(document.querySelectorAll("[data-composition-id]")),l=u?.getAttribute("data-composition-id")??null,d=u?r.resolveStartForElement(u,0):0,m=o(),f=m!=null?Math.max(0,m-Math.max(0,d)):null,p=i(l),g=es(u??document.body),y=ns(...s.filter(G=>G!==u).map(G=>{let P=r.resolveStartForElement(G,0),O=r.resolveDurationForElement(G)??i(G.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||O==null||O<=0?null:Math.max(0,P)+O})),x=y!=null?Math.max(0,y-Math.max(0,d)):null,A=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,M=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,C=typeof f=="number"&&Number.isFinite(f)&&f>0?f:null,L=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,B=ns(C,L),F=A!=null&&B!=null&&A>=qx,_=M??(F?B:ns(A,C,L))??null,N=(_!=null?d+_:null)??(typeof m=="number"&&Number.isFinite(m)&&m>0?m:null),W=(G,P)=>!Number.isFinite(P)||P<=0?0:N==null||!Number.isFinite(N)?P:!Number.isFinite(G)||G>=N?0:Math.max(0,Math.min(P,N-G)),X=[],Y=[],R=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),S=0;for(let[G,P]of R.entries()){if(P===u||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let O=a(P,u),Z=P.tagName.toLowerCase(),te=Z==="video"||Z==="audio"?r.resolveMediaStartForElement(P):r.resolveStartForElement(P,O.inheritedStart??0),ne=P.getAttribute("data-composition-id"),j=es(P);if(j==null&&ne&&ne!==l&&(j=i(ne)),j==null&&ge(P)&&Number.isFinite(P.duration)&&(j=nt(P,P.duration)),j==null&&(j=ln(P,te)),j==null){let de=O.inheritedDuration;if(de!=null&&de>0){let dt=(O.inheritedStart??0)+de;j=Math.max(0,dt-te)}}if(j==null||j<=0||(j=W(te,j),j<=0))continue;let J=te+j;S=Math.max(S,J);let Ee=ne&&ne!==l?"composition":Z==="video"?"video":Z==="audio"?"audio":Z==="img"?"image":"element";X.push({id:Ja(P)??ne??null,label:Yx(P,Ee,X.length),start:te,duration:j,track:rs(P,G),zIndex:ts(P),stackingContextId:Ui(P),kind:Ee,tagName:Z,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:mr(P.getAttribute("data-composition-src")),playbackStart:rt(P),playbackRate:Pe(P),assetUrl:Vd(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:zt(P.getAttribute("data-timeline-priority"))})}let H=new Set(X.map(G=>G.id)),q=u?.getAttribute("data-composition-id")??null,U=q?n[q]??null:null;if(U&&u){let G=U;if(typeof G.getChildren=="function")try{let P=G.getChildren(!0,!0,!1)??[],O=new Map;for(let ne of u.children){let j=ne;if(!j.id)continue;let J=j.tagName.toLowerCase();J==="script"||J==="style"||J==="link"||O.set(j,{id:j.id,start:1/0,end:-1/0})}let Z=ne=>{let j=ne;for(;j;){if(O.has(j))return j;if(j===u)return null;j=j.parentElement}return null};for(let ne of P){if(typeof ne.targets!="function"||typeof ne.startTime!="function"||typeof ne.duration!="function")continue;let j=ne.startTime(),J=ne.parent;for(;J&&J!==U&&typeof J.startTime=="function";)j+=J.startTime(),J=J.parent;let Ee=j+ne.duration();if(!(!Number.isFinite(j)||!Number.isFinite(Ee)))for(let de of ne.targets()){if(!ke(de))continue;let Dn=Z(de);if(!Dn)continue;let dt=O.get(Dn);dt&&(dt.start=Math.min(dt.start,j),dt.end=Math.max(dt.end,Ee))}}let te=X.length>0?Math.max(...X.map(ne=>ne.track))+1:0;for(let[ne,j]of O){if(j.start===1/0||j.end===-1/0)continue;let J=ne;if(H.has(J.id))continue;let Ee=Math.max(0,j.end-j.start);if(Ee<=0)continue;let de=W(j.start,Ee);de<=0||(S=Math.max(S,j.start+de),X.push({id:J.id,label:J.getAttribute("data-timeline-label")??J.getAttribute("data-label")??J.getAttribute("aria-label")??J.id,start:j.start,duration:de,track:rs(J,te),zIndex:ts(J),stackingContextId:Ui(J),kind:"element",tagName:J.tagName.toLowerCase(),compositionId:J.getAttribute("data-composition-id"),compositionAncestors:q?[q]:[],parentCompositionId:q,nodePath:null,compositionSrc:null,playbackStart:rt(J),playbackRate:Pe(J),assetUrl:null,timelineRole:J.getAttribute("data-timeline-role"),timelineLabel:J.getAttribute("data-timeline-label"),timelineGroup:J.getAttribute("data-timeline-group"),timelinePriority:zt(J.getAttribute("data-timeline-priority"))}),H.add(J.id))}}catch(P){I("runtime.timeline.site1",P)}}if(u&&_!=null&&_>0){let G=X.length>0?Math.max(...X.map(P=>P.track))+1:0;for(let P of u.children){let O=P;if(!O.id||H.has(O.id))continue;let Z=O.getAttribute("data-timeline-role");if(Z!=="overlay"&&Z!=="persistent-overlay")continue;let te=O.tagName.toLowerCase();if(te==="script"||te==="style"||te==="link"||te==="meta"||window.getComputedStyle(O).display==="none")continue;let j=W(0,_);j<=0||(S=Math.max(S,j),X.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:j,track:rs(O,G),zIndex:ts(O),stackingContextId:Ui(O),kind:"element",tagName:te,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:q?[q]:[],parentCompositionId:q,nodePath:null,compositionSrc:null,playbackStart:rt(O),playbackRate:Pe(O),assetUrl:null,timelineRole:Z,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:zt(O.getAttribute("data-timeline-priority"))}),H.add(O.id))}}for(let G of s){if(G===u)continue;let P=G.getAttribute("data-composition-id");if(!P||!Za(P))continue;let O=r.resolveStartForElement(G,0),Z=es(G);if((Z==null||Z<=0)&&Wd(G)!=null){let J=Wd(G);Z=Math.max(0,J-O)}let te=i(P),ne=Z&&Z>0?Z:te;if(ne==null||ne<=0)continue;let j=W(O,ne);j<=0||Y.push({id:P,label:G.getAttribute("data-label")??P,start:O,duration:j,thumbnailUrl:mr(G.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,S||1,_??0),$=Math.max(1,Math.ceil(V*Math.max(1,e.canonicalFps)));return{...di(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:V,durationInFrames:$,clips:X,scenes:Y,compositionWidth:zt(u?.getAttribute("data-width"))??1920,compositionHeight:zt(u?.getAttribute("data-height"))??1080}}var zd=e=>e!==null&&Number.isFinite(e)&&e>0;function hr(e){let t=e.clipEndsSeconds.filter(r=>r===null).length;if(zd(e.authoredDurationSeconds))return{seconds:e.authoredDurationSeconds,source:"authored",pendingClips:t};let n=e.clipEndsSeconds.filter(zd);return n.length>0?{seconds:Math.max(...n),source:"derived",pendingClips:t}:{seconds:null,source:"unresolved",pendingClips:t,reason:t>0?"every clip\'s length is still pending":"no authored duration and no clip with a length"}}var is="data-composition-id",Jx="data-composition-src",Qx=`[${is}]`,ET=`[${Jx}]`,os="style",as="script",ss=\'link[rel="stylesheet"], link[rel="preconnect"]\',qd=`${os}, ${as}, ${ss}`;function qt(e){return e?Array.from(e):[]}function jd(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=qt(t.querySelectorAll(Qx)),u=o?a.find(d=>d.getAttribute(is)===o)??null:a[0]??null,s=(u??a[0])?.getAttribute(is)?.trim()||"",l=i?null:n??null;return{innerRoot:u,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:u?.getAttribute("id")?.trim()||null,styleSources:[...qt(l?.querySelectorAll(os)),...qt(t.querySelectorAll(os))],scriptSources:[...qt(l?.querySelectorAll(as)),...qt(t.querySelectorAll(as))],linkSources:[...qt(n?.querySelectorAll(ss)),...qt(t.querySelectorAll(ss))],variableDefaultCarriers:[r,u].filter(d=>d!=null)}}var ye=wg(Am(),1),_m=ye.default,dk=ye.default.stringify,fk=ye.default.fromJSON,mk=ye.default.plugin,pk=ye.default.parse,hk=ye.default.list,gk=ye.default.document,bk=ye.default.comment,xk=ye.default.atRule,yk=ye.default.rule,vk=ye.default.decl,Sk=ye.default.root,Ek=ye.default.CssSyntaxError,Ak=ye.default.Declaration,_k=ye.default.Container,wk=ye.default.Processor,Ck=ye.default.Document,Rk=ye.default.Comment,Tk=ye.default.Warning,kk=ye.default.AtRule,Mk=ye.default.Result,Fk=ye.default.Input,Lk=ye.default.Rule,Nk=ye.default.Root,Dk=ye.default.Node;var Ls="data-hf-authored-id",wm="data-hf-inner-root";function Ns(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Ds(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Fv(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Rm(e){let t=e.trim();return t?Array.from(new Set([t,Fv(t)])).filter(Boolean):[]}function Lv(e){return!!e&&/[\\w-]/.test(e)}function Nv(e,t,n){let r=Rm(t).sort((u,s)=>s.length-u.length);if(r.length===0)return e;let i="",o=0,a=null;for(let u=0;u<e.length;u+=1){let s=e[u],l=u>0?e[u-1]:"";if(a){i+=s,s===a&&l!=="\\\\"&&(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 d=r.find(m=>e.startsWith(m,u+1));if(d){let m=e[u+1+d.length];if(!Lv(m)){i+=n,u+=d.length;continue}}}i+=s}return i}function Dv(e,t){let n=t?.trim();return n?Nv(e,n,`[${Ls}="${Ds(n)}"]`):e}function Cm(e){return`${e}:not(:has([${wm}])), ${e} > [${wm}]`}function Iv(e,t,n,r,i,o){let a=Dv(e,r),u=Pv(a,t,n),s=u.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?Cm(t):e;let l=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*[\\\\^\\\\*\\\\$]?=\\\\s*(["\'])${Ns(n)}\\\\1\\\\s*\\\\]`,"g");if(l.test(s))return s.replace(l,"").trim()===""?Cm(t):u.replace(l,t);let d=u.match(/^\\s*/)?.[0]??"",m=u.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${Ls}="${Ds(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${d}${t}${f}${p}${m}`}}return`${d}${t} ${s}${m}`}function Pv(e,t,n){let r=Ns(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 Ov=new Set(["keyframes","-webkit-keyframes","font-face"]);function Hv(e){return e?.type==="atrule"}function Gv(e){let t=e.parent;for(;t;){if(Hv(t)&&Ov.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Bv(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function Tm(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${Ds(o)}"]`,u;try{u=_m.parse(e)}catch{return""}return u.walkRules(s=>{Gv(s)||Bv(s)||(s.selectors=s.selectors.map(l=>Iv(l,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),u.toResult({map:!1}).css}function We(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}var km=`!__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n assetUrl: function(path) {\n var page = window.document.baseURI;\n return new URL(path, __hfCompositionSrc ? new URL(__hfCompositionSrc, page) : page).href;\n },\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n })`;function Mm(e,t){return`const __hyperframes = (function(__hfBaseHyperframes, __hfTimelineCompId, __hfCompositionSrc) {\n return ${km};\n})(window.__hyperframes, ${We(e)}, ${We(t?.trim()||null)});\n`}function Fm(e,t,n="[HyperFrames] composition script error:",r,i=t,o,a){let u=We(t),s=We(i),l=We(n),d=Ns(t),m=We(o?.trim()||null),f=We(r??null),p=We(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${d}"|\'${d}\')\\s*\\]`),g=We(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),y=We(Rm(o?.trim()||""));return`(function(){\n var __hfCompId = ${u};\n var __hfTimelineCompId = ${s};\n var __hfErrorLabel = ${l};\n var __hfAuthoredRootId = ${m};\n var __hfCompositionSrc = ${We(a?.trim()||null)};\n var __hfAuthoredRootAttr = ${We(Ls)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${f} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${p};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${y};\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 __hfQueryAll(target);\n if (!Array.isArray(target)) return target;\n return target.reduce(function(resolved, item) {\n if (typeof item === "string") {\n return resolved.concat(Array.prototype.slice.call(__hfQueryAll(item)));\n }\n resolved.push(item);\n return resolved;\n }, []);\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 = ${km};\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 Lm=(e,t)=>e&&Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]));function Nm(e,t){let n;try{n=JSON.parse(e)}catch{return null}if(!n||typeof n!="object")return null;let{imports:r,scopes:i}=n;return{imports:Lm(r,t),scopes:i&&Object.fromEntries(Object.entries(i).map(([o,a])=>[t(o),Lm(a,t)??{}]))}}var Uv=["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 Dm(e){let t=e.getAttribute("id")?.trim();for(let n of Uv)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Wv=8e3,Vv=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,$v=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,zv=["src","href"];function qv(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function Om(e,t){if(!t)return e;let n=e.trim();if(qv(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function Hm(e,t){return!t||!e?e:e.replace($v,(n,r,i)=>{let o=Om(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function jv(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of zv){let i=n.getAttribute(r);if(i==null)continue;let o=Om(i,t);o!==i&&n.setAttribute(r,o)}}function Kv(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=Hm(r,t);i!==r&&n.setAttribute("style",i)}}function Xv(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=Hm(r,t);i!==r&&(n.textContent=i)}}function Gm(e,t){if(t){jv(e,t),Kv(e,t),Xv(e,t);for(let n of Array.from(e.querySelectorAll("template")))Gm(n.content,t)}}function Yv(e,t){return`${e}__hf${t}`}var Jv=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"),Wv)});function Ps(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function Is(e){for(let t of Array.from(e.querySelectorAll(qd)))t.remove()}function Qv(e){let t=document.importNode(e,!0);Dm(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 Im(e,t){let n=e.trim();if(!n)return e;try{return Vv.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 Pm(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 io(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 Zv(e){let t=new Map;for(let n of e){let r=io(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function Bm(e){let t=io(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function eS(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function tS(e){return e.hasAttribute("data-composition-src")?!0:Bm(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:eS(e):!1}function Hs(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:Bm(t))}function Um(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Hs().map(n=>io(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function Wm(e,t=Zv(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=io(i),u=tS(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,l=a||o;if(u){let d=s?(n.get(o)||0)+1:0;s&&n.set(o,d),l=s?Yv(o,d):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",l),a&&a!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:l})}return r}async function Os(e){let t=jd({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=pe(t.innerRoot)?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,u=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 g=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&Pm(g,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(g)}"]`))continue;let y=f.cloneNode(!0);zl(y)&&(y.href=g,document.head.appendChild(y),e.injectedLinks.push(y))}(f=>{for(let p of f){let g=p.cloneNode(!0);$l(g)&&(i&&(g.textContent=Tm(g.textContent||"",i,s,u,{scopeRootSelectors:!0})),document.head.appendChild(g),e.injectedStyles.push(g))}})(t.styleSources);let d=f=>{let p=f.getAttribute("type")?.trim()??"",g=f.getAttribute("src")?.trim()??"";if(g){let x=Im(g,e.compositionUrl);return e.compositionUrl&&Pm(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let y=f.textContent?.trim()??"";return y?{kind:"inline",content:y,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(d).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),g=e.parseDimensionPx(f),y=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),g&&pe(e.host)&&(e.host.style.width=g),y&&pe(e.host)&&(e.host.style.height=y),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=Qv(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),Is(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);Is(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml,Is(e.host);a&&nS(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;else if(f.type.toLowerCase()==="importmap"){let g=Nm(f.content,y=>Im(y,e.compositionUrl));p.textContent=g?JSON.stringify(g):f.content}else if(f.type.toLowerCase()==="module"){let g=f.scopeCompositionId?Mm(a||f.scopeCompositionId,e.compositionUrl?.href):"";p.textContent=g+f.content}else f.scopeCompositionId?p.textContent=Fm(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,u,e.compositionUrl?.href):p.textContent=`(function(){${f.content}})();`;if(document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let g=await Jv(p);g.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:g.status,elapsedMs:g.elapsedMs}})}}}async function Vm(e){let t=Hs();if(Um(),t.length===0)return;let n=Wm(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 u=document.querySelector(`template#${CSS.escape(a)}-template`);Ps(i),await Os({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function $m(e){let t=Hs();if(Um(),t.length===0)return;let n=Wm(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),u=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||u||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Ps(i);try{let d=u!=null?document.querySelector(`template#${CSS.escape(u)}-template`):null;if(d){await Os({host:i,authoredCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:d.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,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(),g=new DOMParser().parseFromString(f,"text/html");Gm(g,l);let y=(u?g.querySelector(`template#${CSS.escape(u)}-template`):null)??g.querySelector("template"),x=y?y.content:g.body;await Os({host:i,authoredCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:g.body.innerHTML,compositionUrl:l,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:g.head,declaredVariableDefaults:$n(g.documentElement),variableDeclarer:g.documentElement,onDiagnostic:e.onDiagnostic})}catch(d){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:d instanceof Error?d.message:"unknown_error"}}),Ps(i)}}))}function nS(e,t,n){let i={...e.declaredVariableDefaults??(ke(t)?$n(t):{}),...Wl(e.host)};ea(e.variableDeclarer??(ke(t)?t:null),i,n),Bl(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,ta(e.host,{...Gl(e.host,i,window),...pi()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function rS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function iS(e){if(!Array.isArray(e))throw new Error("expected a JSON array");if(!e.every(rS))throw new Error("every array entry must be an object");return e}function Gs(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function oS(e){return pe(e)?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function aS(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!pe(r))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function sS(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 Bs(){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===null)return;let n=iS(t);if(n.length===0)return;let r=aS();for(let i of n){let o=null;if(i.wordId&&(o=oS(document.getElementById(i.wordId))),!o&&i.wordIndex!==void 0&&(o=r[i.wordIndex]??null),!o)continue;let a={},u={};if(i.x!==void 0&&(a.x=i.x),i.y!==void 0&&(a.y=i.y),i.scale!==void 0&&(a.scale=i.scale),i.rotation!==void 0&&(a.rotation=i.rotation),i.opacity!==void 0&&(u.opacity=i.opacity),i.fontSize!==void 0&&(u.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(u.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(u.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let l=e.getTweensOf(o).filter(f=>f.vars.color!==void 0).sort((f,p)=>f.startTime()-p.startTime()),d=l.find(f=>Gs(f)==="dim")??l.find(f=>Gs(f)===void 0),m=d?String(d.vars.color):"";for(let f of l)(Gs(f)??(String(f.vars.color)===m?"dim":"active"))==="dim"?i.dimColor&&(f.vars.color=i.dimColor):i.activeColor&&(f.vars.color=i.activeColor);i.dimColor&&e.set(o,{color:i.dimColor})}if(Object.keys(u).length>0&&e.set(o,u),Object.keys(a).length>0){let s=sS(o);e.set(s,a)}}}).catch(t=>{let n=t instanceof Error?t.message:String(t);console.error(`[HyperFrames] Invalid caption-overrides.json: ${n}`)})}var Ws="data-hf-edit-base-x",Vs="data-hf-edit-base-y",An="data-hf-edit-original-translate",oo=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},uS=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},zm=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,Us=(e,t)=>zm.test(e)&&zm.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,lS=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=uS(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${Us(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${Us(r,t)} ${Us(i,n)}${a}`},cS=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},dS=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""}},$s=new WeakMap;function fS(e,t){let n=$s.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ge("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=oo(e.getAttribute("data-x"))-oo(e.getAttribute(Ws)),i=oo(e.getAttribute("data-y"))-oo(e.getAttribute(Vs));e.hasAttribute(An)||e.setAttribute(An,dS(e)),n===void 0&&cS(e);let o=e.getAttribute(An)??"",a=lS(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),$s.set(e,e.style.getPropertyValue("translate"))}function ao(e,t){let n=e.querySelectorAll(`[${An}]:not([${Ws}]):not([${Vs}])`);for(let o=0;o<n.length;o++){let a=n[o];if(a===void 0||!ra(a))continue;let u=a.getAttribute(An)??"";u===""?a.style.removeProperty("translate"):a.style.setProperty("translate",u),a.removeAttribute(An),$s.delete(a)}let r=e.querySelectorAll(`[${Ws}], [${Vs}]`),i=0;for(let o=0;o<r.length;o++){let a=r[o];a===void 0||!ra(a)||(fS(a,t),i+=1)}return i}var qm="__hfPositionEditsSeekReapplyWrapped",jm=new WeakSet,Km=new WeakMap,Xm=new WeakMap;function Ym(e){let t=e,n=()=>{try{ao(t.document)}catch{}},r=m=>typeof m=="function"&&(jm.has(m)||!!m[qm]),i=m=>{jm.add(m);try{Object.defineProperty(m,qm,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let g=m.apply(this,p);return n(),g};return i(f),f},a=(m,f)=>{let p=Km.get(m);if(p?.has(f))return!0;let g=Object.getOwnPropertyDescriptor(m,f);if(g?.configurable===!1){let A=m[f];return typeof A=="function"&&(m[f]=o(A),n()),!1}let y=m[f],x=g?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>y,set:A=>{y=o(A),x?.call(m,A)}}),y=o(y),p??(p=new Set),p.add(f),Km.set(m,p),n(),!0},u=(m,f)=>{let p=Xm.get(t),g=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(g?.configurable===!1){let A=t[m];return A?a(A,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>x,set:A=>{x=A,x&&a(x,f)}}),p??(p=new Set),p.add(m),Xm.set(t,p)}let y=t[m];return y?a(y,f):!1},s=()=>{let m=u("__hf","seek"),f=u("__player","renderSeek");return m&&f};if(s())return;let l=120,d=t.setInterval(()=>{if(s()){t.clearInterval(d);return}l-=1,l<=0&&t.clearInterval(d)},50)}function so(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 uo(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function zs(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 Jm=new Set(["img","video","audio","source"]);function mS(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 pS(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function hS(e){if(uo(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 qs(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=so(e);return t.set(n,i),i}function gS(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 bS(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function xS(e,t){let n=new Set,r=bS(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=qs(i,t);for(let[a,u]of Object.entries(o)){let s=hS(u);s!==null&&pe(i)&&i.style.setProperty(`--${a}`,pS(s))}}}function js(e){let t=new Map;xS(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(!Jm.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(Jm).join("/")}.`);continue}let i=mS(qs(n,t)[r]);if(i!==null){if(!zs(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=qs(n,t)[r];uo(i)&&gS(n,String(i))}}var bt=new Map,yS="data-hf-color-grading-canvas",vS="__hf_color_grading_canvas__";function up(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{pe(r)&&(r.hasAttribute(Hi)||r.setAttribute(Hi,r.style.opacity))},n=r=>{if(ke(r)){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 SS=16,ES=4,wn={enabled:!1,position:.5,softness:0,lineWidth:2},Ks=["#000000","#ffffff"],AS=["#1a1a1a","#f5f5dc"],Gr=3,_S=Gr-1,wS=5,Xs=`${it}.0`,Qm=`${it-1}.0`,CS=`${Gr}.0`,RS=`${(_S+.5)/Gr}`;function lo(e){let t=e.getAttribute(sr);return t==null?null:Fd(t,so(e))}var TS=["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`),kS=["#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) * ${Qm};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${Qm});`,` float y = (row + 0.5) / ${CS};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Xs}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Xs}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Xs}, ${RS}));`,"}","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`),MS=["#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`),FS=["#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`),LS=["#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 Yt(e){return he(e)||Le(e)}function Zm(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function ep(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(I("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function ho(e,t=kS){let n=ep(e,TS,e.VERTEX_SHADER),r=ep(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:(I("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function co(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 NS(e,t){let n=ho(e,MS);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 DS(e,t){let n=ho(e,FS);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 IS(e,t){let n=ho(e,LS);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 Pr(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=co(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 mo(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 Ys(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 tp(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function eu(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=ho(t),r=co(t),i=co(t,t.NEAREST),o=co(t,t.NEAREST);if(!n||!r||!i||!o)return tp(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:Ys(t,n,Gi),detailUniforms:Ys(t,n,Ba),effectUniforms:Ys(t,n,Ua),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")}}):(tp(t,n,[r,i,o]),null)}function PS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function OS(e){if(!PS(e))return{...wn};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,wn.position,0,1),softness:t(e.softness,wn.softness,0,.25),lineWidth:t(e.lineWidth,wn.lineWidth,0,12)}}function lp(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 go(e){return e instanceof Error?e.message:"LUT failed to load"}function HS(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 cp(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return HS(t)}function tu(e){let t=lp(e);if("error"in t)return{state:"error",message:t.error};let n=bt.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=>ud(o,{maxSize:Ii})),i={state:"pending",promise:r};for(;bt.size>=SS;){let o=bt.keys().next().value;if(!o)break;bt.delete(o)}return bt.set(t.href,i),r.then(o=>{bt.get(t.href)===i&&bt.set(t.href,{state:"ready",lut:o})},o=>{bt.get(t.href)===i&&bt.set(t.href,{state:"error",message:go(o)})}),i}function np(e,t,n){if(e.lut?.src===t)return e.lut;let r=Fa(n),{gl:i,program:o}=e;try{return dp(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=go(a),e.lutLoadingSrc=null,I("runtime.colorGrading.uploadLut",a),null}}async function GS(e){let t=tu(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function dp(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 BS(e,t,n){let r=Fa(n),{gl:i,program:o}=e;return dp(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function ut(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function nu(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),ut(e.gl,t.scratch),ut(e.gl,t.blur),t.bloom&&ut(e.gl,t.bloom),e.effectTargets=null)}function ru(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),ut(e.gl,t.moments),ut(e.gl,t.output),e.kuwaharaTargets=null)}function fo(e,t=!1){nu(e),ru(e),US(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function US(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function WS(e){let t=eu(e.canvas);return t?(fo(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function Zs(e){if(!e.sourceHidden)return;e.element.removeAttribute(ur);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 VS(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=NS(t,e.program.quad),r=Pr(t),i=Pr(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&ut(t,r),i&&ut(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function $S(e,t){return t.bloom||(t.bloom=Pr(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function rp(e){let t=e.effectTargets;t?.bloom&&(ut(e.gl,t.bloom),t.bloom=null)}function zS(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=DS(t,e.program.quad),o=IS(t,e.program.quad),a=Pr(t,n.HALF_FLOAT_OES,t.NEAREST),u=Pr(t);return!i||!o||!a||!u?(qS(t,i,o,a,u),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:u},e.kuwaharaTargets)}function qS(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&ut(e,r),i&&ut(e,i)}function fp(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return mo(e,t,o,a),mo(e,n,o,a),{width:o,height:a}}function po(e,t,n,r,i,o,a,u=!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,u?1:0),e.uniform1f(t.threshold,s),Or(e,t)}function jS(e,t,n,r,i,o,a){let u=fp(e,t.scratch,r,i/2,o/2),s=a/2;po(e,t.blurProgram,n,t.scratch,u,{x:1,y:0},s,!0,.5),po(e,t.blurProgram,t.scratch.texture,r,u,{x:0,y:1},s,!0)}function KS(e,t,n,r,i,o,a){let u=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)po(e,t.blurProgram,u,t.scratch,i,{x:1,y:0},o),po(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),u=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 XS(e,t,n,r,i,o,a,u){mo(e,t.moments,i.width,i.height),mo(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,u.blur),e.uniform1f(s.radius,u.kuwaharaRadius),Or(e,s);let l=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(l.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(l.moments,0),e.uniform2f(l.texel,1/i.width,1/i.height),e.uniform1f(l.radius,u.kuwaharaRadius),e.uniform1f(l.sharpness,u.kuwaharaSharpness),e.uniform1f(l.saturation,u.kuwaharaSaturation),Or(e,l)}function YS(e,t,n,r){if(n<=0)return!1;let i=fp(e.gl,t.scratch,t.blur,r.width,r.height);return KS(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function JS(e,t,n,r,i,o){if(n<=0)return rp(e),null;o||rp(e);let a=o?$S(e,t):t.blur;return a?(jS(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function QS(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&&nu(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let u=VS(e);if(!u)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=YS(e,u,o,n),l=JS(e,u,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:l!==null,blurTexture:u.blur.texture,bloomTexture:l??i.texture}}function ZS(e,t,n,r,i,o,a){let u=t.effects.kuwahara;if(u<=0&&!o)return e.kuwaharaTargets&&a&&ru(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=zS(e);return!s||u<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(XS(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 mp(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=QS(e,t,n,o),u=ZS(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...u}}function eE(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=lp(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=tu(t);return i.state==="ready"?np(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||(np(e,r.href,o),Ve(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=go(o),e.lutLoadingSrc=null,Ve(e))})),null)}function Dr(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&&Yt(n))return n;try{let r=document.querySelector(t);return r&&Yt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Yt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Yt(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&&Yt(r)?r:null}catch{return null}}function pp(e){return he(e)?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:Le(e)&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function hp(e){return he(e)?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:Le(e)?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function gp(e){let t=_t(e);return t&&hp(t)?t:null}function ip(e){if(!he(e))return!1;let t=gp(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function tE(e){return Le(e)&&e.classList.contains("__render_frame__")}function nE(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function bp(e){if(he(e)){let t=gp(e);if(t)return t}return hp(e)?e:null}function op(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 rE(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=op(o,"x"),u=op(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(u!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=u;continue}}return{x:n,y:r}}function xp(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",u=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);u=n*f,s=r*f,a==="scale-down"&&u>n&&s>r&&(u=n,s=r)}else a==="none"&&(u=n,s=r);let l=rE(o||"center"),d=(e-u)*l.x/e,m=(t-s)*l.y/t;return{scaleX:u/e,scaleY:s/t,offsetX:d,offsetY:m}}function iE(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function ap(e,t){return Math.max(0,Math.round(e>0?e:t))}function oE(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&iE(e,i);let o=window.getComputedStyle(t);Pd(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(),u=ap(n.offsetWidth,a.width),s=ap(n.offsetHeight,a.height);if(u<=0||s<=0)return r.style.display="none",null;let l=Math.max(1,window.devicePixelRatio||1),d=Math.round(u*l),m=Math.round(s*l);return r.width!==d&&(r.width=d),r.height!==m&&(r.height=m),{width:d,height:m}}function _n(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 Jt(e,t,n,r){e.set(r,(t*it+n)*4)}function Lt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Js(e,t,n){return e.length>=3?Na(e,t,n):new Float32Array(it)}function Xt(e,t){return e[t]??0}function aE(e,t,n){let r=hn(t.red),i=hn(t.green),o=hn(t.blue),a=hn(t.master),u=Js(n.hueVsHue,-180,180),s=Js(n.hueVsSaturation,-1,1),l=Js(n.hueVsLuma,-1,1);for(let d=0;d<it;d+=1)Jt(e,0,d,[Xt(r,d),Xt(i,d),Xt(o,d),Xt(a,d)]),Jt(e,1,d,[Lt(Xt(u,d),180),Lt(Xt(s,d),1),Lt(Xt(l,d),1),1])}function sE(e,t,n){let r=n*wS;Jt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Jt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Jt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Jt(e,2,r+3,[Lt(t.correction.hueShift,180),Lt(t.correction.saturation,1),Lt(t.correction.luma,1),Lt(t.correction.temperature,1)]),Jt(e,2,r+4,[Lt(t.correction.tint,1),.5,.5,1])}function uE(e,t,n){let r=new Float32Array(it*Gr*4);aE(r,e,t);let i=0;for(let o of n)o.enabled&&(sE(r,o,i),i+=1);return r}var sp=new WeakMap;function lE(e,t,n){let r=sp.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return sp.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function cE(e,t,n,r){let{curves:i,hueCurves:o}=n,a=lE(i,o,r);if(t.advancedSignature===a)return;let u=Uint8Array.from(uE(i,o,r),or);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,it,Gr,0,e.RGBA,e.UNSIGNED_BYTE,u),t.advancedSignature=a}function Qs(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function yp(e,t,n,r,i,o,a,u,s,l,d,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,l.scaleX,l.scaleY),e.uniform2f(t.uvOffset,l.offsetX,l.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:g}=n,y=$a(f),x=za(p),A=qa(g)?g.reduce((L,B)=>L+Number(B.enabled),0):0;(y||x||A>0)&&cE(e,t,n,g),Qs(e,t.shadowWheel,n.wheels.shadows),Qs(e,t.midtoneWheel,n.wheels.midtones),Qs(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,y?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,A);for(let[L,B]of t.adjustUniforms)e.uniform1f(B,n.adjust[L]);for(let[L,B]of t.detailUniforms)e.uniform1f(B,n.details[L]);e.uniform1f(t.grainSeed,d),e.uniform1f(t.effectTime,m);for(let[L,B]of t.effectUniforms)e.uniform1f(B,n.effects[L]);let M=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?AS:Ks),C=M[M.length-1]??Ks[1];e.uniform1f(t.paletteSize,M.length),_n(e,t.palette0,M[0]??Ks[0]),_n(e,t.palette1,M[1]??C),_n(e,t.palette2,M[2]??C),_n(e,t.palette3,M[3]??C),_n(e,t.palette4,M[4]??C),_n(e,t.palette5,M[5]??C),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,u.enabled?1:0),e.uniform1f(t.comparePosition,u.position),e.uniform1f(t.compareSoftness,u.softness),e.uniform1f(t.compareLineWidth,u.lineWidth)}function dE(e){if(!e.sourceHidden){let t=e.element.getAttribute(Hi);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(ur,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function xt(e){let t=Td.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var vp=xt("intensity"),Sp=xt("lut.intensity"),Ep=xt("adjust.exposure"),Ap=xt("effects.kuwahara"),_p=[["blur",xt("effects.blur")],["bloom",xt("effects.bloom")],["kuwahara",Ap],["pixelate",xt("effects.pixelate")],["ascii",xt("effects.ascii")],["dither",xt("effects.dither")]],wp=[vp,Sp,Ep,..._p.map(([,e])=>e)];function Qt(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 Ir(e,t){return t!==null&&(Ld(t)||wp.some(n=>Qt(e,n)!==null))}function fE(e,t){let n=null;for(let[r,i]of _p){let o=Qt(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function mE(e){let{element:t,grading:n}=e,r=Qt(t,vp),i=Qt(t,Sp),o=Qt(t,Ep),a=fE(t,n);if(![r,i,o].some(l=>l!==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 Cp(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 Rp(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 Ve(e){if(e.destroyed||e.contextLost)return!1;let t=bp(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=pp(t);if(!n)return!1;let r=pe(t)?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",u=e.element.style.getPropertyValue("visibility"),s=tE(t);s&&nE(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let l=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=l.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||u!=="hidden")&&l.visibility!=="hidden";let d=oE(e,r);if(!d)return!1;let m=window.getComputedStyle(r),f=xp(d.width,d.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:g}=e;try{let y=mE(e),x=eE(e);Cp(p,g.texture,t);let A=Qt(e.element,Ap)!==null,M=mp(e,y,d,f,{preserveKuwahara:A});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,d.width,d.height),p.useProgram(g.program),Rp(p,g,M);let C=window.__player?.getTime?.(),L=typeof C=="number"&&Number.isFinite(C)?Math.max(0,C):he(e.element)?Math.max(0,e.element.currentTime):0,B=e.grainSeed+Math.floor(L*60);return yp(p,g,y,x,M.blurReady,M.bloomReady,M.kuwaharaReady,e.compare,d,f,B,L),Or(p,g),dE(e),e.hasDrawn=!0,e.drawError=null,!0}catch(y){return e.drawError=y instanceof Error?y.message:"Shader draw failed",I("runtime.colorGrading.drawEntry",y),!1}}function pE(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))),u=i>0&&o>0?i/o:t.width/t.height;return u>=1?{width:a,height:Math.max(1,Math.round(a/u))}:{width:Math.max(1,Math.round(a*u)),height:a}}function hE(){let e=document.createElement("canvas"),t=eu(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function gE(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):he(e)?Math.max(0,e.currentTime):0}function bE(e,t,n,r){let i=bp(t);if(!i)return null;let o=pp(i);if(!o)return null;let a=pE(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let u=pe(i)?i:t,s=window.getComputedStyle(u),l=xp(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Cp(e.gl,e.program.texture,i),{dimensions:a,uv:l,effectTime:gE(t,r),grainSeed:cp(t)+(he(t)?Math.floor(t.currentTime*60):0)}}async function xE(e,t,n,r,i=!1){let o=bE(e,t,r,i);if(!o)return null;let{dimensions:a,uv:u,grainSeed:s,effectTime:l}=o,d=[];for(let m of n.slice(0,32)){let f=Bi(m.grading);if(!f){d.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=BS(e,f.lut.src,await GS(f.lut.src))),p=e.lut),d.push({id:m.id,dataUrl:yE(e,f,p,a,u,s,l)})}catch(g){d.push({id:m.id,dataUrl:null,error:go(g)})}}return{...a,images:d}}function yE(e,t,n,r,i,o,a){let{canvas:u,gl:s,program:l}=e,d=mp(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(l.program),Rp(s,l,d),n||(e.lut=null),yp(s,l,t,n,d.blurReady,d.bloomReady,d.kuwaharaReady,wn,r,i,o,a),Or(s,l),u.toDataURL("image/png")}function st(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function vE(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&he(e.element)&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function Hr(e){if(e.destroyed||!he(e.element)||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,Ve(e),!e.destroyed&&!t.paused&&!t.ended&&Hr(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,Ve(e),!e.destroyed&&!t.paused&&!t.ended&&Hr(e)})}function SE(e){let t=()=>{Ve(e)};if(st(e,e.element,"load",t),st(e,e.element,"loadedmetadata",t),st(e,e.element,"loadeddata",t),st(e,e.element,"seeked",t),st(e,e.element,"timeupdate",t),st(e,window,"resize",t),he(e.element)&&(st(e,e.element,"play",()=>Hr(e)),st(e,e.element,"pause",t)),st(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",Zs(e)}),st(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!WS(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",Zs(e);return}e.drawError=null,Ve(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(),Ve(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function EE(e){if(e.destroyed)return null;e.destroyed=!0,vE(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),nu(e),ru(e),Zs(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 Tp(e,t){return e.removeAttribute("style"),t.id?e.id=`${Ad}${t.id}`:e.removeAttribute("id"),e.className=vS,e.setAttribute(yS,"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 AE(e){return Tp(document.createElement("canvas"),e)}function kp(e){let t=new WeakMap,n=new Set,r=[],i=null,o=null,a=Promise.resolve(),u=!1,s=(w,_,T)=>{let N=t.get(w);if(N)return N.grading=_,N.source=T,Ve(N),he(w)&&!w.paused&&Hr(N),!0;let W=r.pop();if(W)Tp(W.canvas,w);else{let Y=AE(w),R=eu(Y);if(!R)return Y.remove(),!1;W={canvas:Y,gl:R.gl,program:R.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let X={element:w,...W,grading:_,compare:{...wn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:T,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(w).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(w).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:cp(w),destroyed:!1};return t.set(w,X),n.add(w),SE(X),Ve(X),he(w)&&!w.paused&&Hr(X),!0},l=(w,_)=>{if(u)return!1;let T=Dr(w);if(!T)return!1;let N=t.get(T);if(!N){let W=lo(T);if(!Ir(T,W)||!s(T,W,"attribute"))return!1;N=t.get(T)}return N?(N.compare=OS(_),Ve(N),!0):!1},d=w=>{let _=t.get(w);if(!_)return;let T=EE(_);T&&(_.contextLost||r.length>=ES?fo(T,!0):r.push(T)),t.delete(w),n.delete(w)},m=()=>{if(u)return 0;let w=new Set;document.querySelectorAll(`video[${sr}], img[${sr}]`).forEach(T=>{if(!Yt(T))return;w.add(T);let N=lo(T);Ir(T,N)&&(Zm(T)||ip(T))?s(T,N,"attribute"):d(T)});for(let T of n){let N=t.get(T);N&&(!T.isConnected||N.source==="attribute"&&!w.has(T))&&d(T)}return n.size},f=()=>{if(u)return 0;let w=0;for(let _ of n){let T=t.get(_);T&&Ve(T)&&(w+=1)}return w},p=async()=>{let w=new Set;for(let _ of n){let T=t.get(_)?.grading.lut;if(!T?.src.trim()||(T.intensity??1)<=0)continue;let N=tu(T.src);N.state==="pending"&&w.add(N.promise)}return w.size>0&&await Promise.allSettled(w),f(),w.size},g=()=>{if(u)return 0;let w=0;for(let _ of n){let T=t.get(_);!T||!wp.some(W=>Qt(_,W)!==null)||he(_)&&!_.paused&&!_.ended||Ve(T)&&(w+=1)}return w},y=(w,_)=>{if(u)return!1;let T=Dr(w);if(!T)return!1;let N=Bi(_);return Ir(T,N)?s(T,N,"live"):(d(T),!0)},x=(w,_)=>{if(!Yt(w))return!1;let T=t.get(w);if(!T){if(!_)return!1;let N=lo(w);return Ir(w,N)&&s(w,N,"attribute")}return T.sourceVisibleForCanvas=_,!_&&T.source==="attribute"&&d(w),!0},A=w=>{let _=Dr(w);if(!_)return{state:"missing",message:"Media not found"};let T=t.get(_);if(T)return T.effectError?{state:"unavailable",message:T.effectError}:T.drawError?{state:"unavailable",message:T.drawError}:T.lutError?{state:"unavailable",message:`LUT error: ${T.lutError}`}:T.grading.lut&&T.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:T.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:T.lut?"Shader + LUT active":"Shader active"};let N=lo(_);return Ir(_,N)?!Zm(_)&&!ip(_)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},M=async(w,_,T)=>{let N=async()=>{if(u||_.length===0)return null;let X=Dr(w);return!X||(o??(o=hE()),!o)?null:xE(o,X,_,T?.maxDimension,T?.useMediaTime)},W=a.then(N,N);return a=W.then(()=>{},()=>{}),W},C=w=>{let _=Dr(w);if(!he(_))return null;if(!_.paused)return()=>{};let T=_.currentTime,N=_.loop,W=_.muted;return _.loop=!0,_.muted=!0,(_.ended||Number.isFinite(_.duration)&&T>=_.duration)&&(_.currentTime=0),e?.lease(_),_.play().catch(()=>{}),()=>{e?.release(_),_.pause(),_.loop=N,_.muted=W,_.currentTime=T}},L=()=>{if(!u){u=!0,i?.disconnect(),i=null;for(let w of n)d(w);for(let w of r)fo(w,!0);r.length=0,o&&(fo(o,!0),o=null)}};document.body&&(i=new MutationObserver(()=>m()),i.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[sr]}));let B={refresh:m,redraw:f,redrawAnimated:g,waitForActiveLuts:p,setGrading:y,setCompare:l,setSourceVisibility:x,getStatus:A,renderPreviews:M,startPreviewPlayback:C,destroy:L},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=B,m(),B}var _E={mulX:374761393,mulY:668265263,mulMix:1274126177,offset:2654435769,shift1:13,shift2:16,divisor:4294967296},{mulX:wE,mulY:CE,mulMix:Mp,offset:RE,shift1:TE,shift2:kE,divisor:ME}=_E,FE=20,Fp=`#version 300 es\nprecision highp float;\nprecision highp int;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform float u_fractalType;\nuniform float u_noiseType;\nuniform float u_invert;\nuniform float u_contrast;\nuniform float u_brightness;\nuniform float u_scale;\nuniform float u_complexity;\nuniform float u_subInfluence;\nuniform float u_subScaling;\nuniform float u_evolution;\nuniform float u_randomSeed;\nuniform float u_opacity;\n\nfloat hfHashUnit(int ix, int iy, int seed) {\n uint h = ((uint(ix) * ${wE}u) ^ (uint(iy) * ${CE}u) ^ (uint(seed) * ${Mp}u)) + ${RE}u;\n h = h ^ (h >> ${TE}u);\n h = h * ${Mp}u;\n h = h ^ (h >> ${kE}u);\n return float(h) / ${ME}.0;\n}\n\nfloat hfFade(float f, float noiseType) {\n if (noiseType < 1.5) return 0.0;\n if (noiseType < 2.5) return f;\n if (noiseType < 3.5) return f * f * (3.0 - 2.0 * f);\n return f * f * f * (f * (f * 6.0 - 15.0) + 10.0);\n}\n\nfloat hfValueNoise(vec2 p, int seed) {\n vec2 cell = floor(p);\n vec2 f = p - cell;\n int ix = int(cell.x);\n int iy = int(cell.y);\n float sx = hfFade(f.x, u_noiseType);\n float sy = hfFade(f.y, u_noiseType);\n float bottom = mix(hfHashUnit(ix, iy, seed), hfHashUnit(ix + 1, iy, seed), sx);\n float top = mix(hfHashUnit(ix, iy + 1, seed), hfHashUnit(ix + 1, iy + 1, seed), sx);\n return mix(bottom, top, sy);\n}\n\nfloat hfFbm(vec2 p) {\n float lacunarity = 100.0 / max(u_subScaling, 1.0);\n float gain = u_subInfluence / 100.0;\n int seed = int(u_randomSeed);\n float amp = 1.0;\n float freq = 1.0;\n float sum = 0.0;\n float norm = 0.0;\n for (int i = 0; i < ${FE}; i++) {\n if (float(i) >= u_complexity) break;\n sum += amp * hfValueNoise(p * freq, seed + i);\n norm += amp;\n amp *= gain;\n freq *= lacunarity;\n }\n return norm > 0.0 ? sum / norm : 0.0;\n}\n\nvoid main() {\n vec2 px = v_uv * u_size;\n vec2 p = px / max(u_scale, 1.0) + vec2(u_evolution, u_evolution * 0.5);\n float v = hfFbm(p);\n v = (v - 0.5) * (u_contrast / 100.0) + 0.5 + u_brightness / 100.0;\n if (u_invert > 0.5) v = 1.0 - v;\n v = clamp(v, 0.0, 1.0);\n float a = clamp(u_opacity / 100.0, 0.0, 1.0);\n fragColor = vec4(v * a, v * a, v * a, a);\n}\n`;var iu={lumaR:.299,lumaG:.587,lumaB:.114},{lumaR:LE,lumaG:NE,lumaB:DE}=iu,Lp=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform sampler2D u_src2;\n// 1 when the map ref named another element, 0 when the map is the layer\n// itself. Set by the runtime for every pass, from whether a ref resolved.\nuniform float u_hasSrc2;\nuniform float u_useH;\nuniform float u_maxH;\nuniform float u_useV;\nuniform float u_maxV;\nuniform float u_behavior;\nuniform float u_edge;\nuniform float u_expand;\n\nvec4 hfSampleSrc(vec2 uv) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);\n return texture(u_src, uv);\n}\n\n// The selector\'s value, in [0, 1]. Half and Off both land on 0.5, which is the\n// "no displacement" midpoint the caller subtracts.\nfloat hfMapChannel(vec4 premultiplied, float selector) {\n vec3 rgb = premultiplied.a > 0.0 ? premultiplied.rgb / premultiplied.a : vec3(0.0);\n if (selector < 1.5) return rgb.r;\n if (selector < 2.5) return rgb.g;\n if (selector < 3.5) return rgb.b;\n if (selector < 4.5) return premultiplied.a;\n if (selector < 8.5) return dot(rgb, vec3(${LE}, ${NE}, ${DE}));\n if (selector < 9.5) return 1.0;\n return 0.5;\n}\n\nvoid main() {\n vec4 mapTexel = u_hasSrc2 > 0.5 ? texture(u_src2, v_uv) : texture(u_src, v_uv);\n float h = hfMapChannel(mapTexel, u_useH);\n float v = hfMapChannel(mapTexel, u_useV);\n vec2 d = vec2((h - 0.5) * 2.0 * u_maxH, (v - 0.5) * 2.0 * u_maxV);\n fragColor = hfSampleSrc(v_uv + d / u_size);\n}\n`;var{lumaR:IE,lumaG:PE,lumaB:OE}=iu;var Np=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform sampler2D u_src2;\nuniform float u_mode;\n\n// The matte texel is premultiplied, so its rgb is already "over black" \\u2014 the\n// composite After Effects reads a luma matte through.\nfloat hfCoverage(vec4 matte, float mode) {\n if (mode < 1.5) return matte.a;\n if (mode < 2.5) return 1.0 - matte.a;\n float luma = dot(matte.rgb, vec3(${IE}, ${PE}, ${OE}));\n if (mode < 3.5) return luma;\n return 1.0 - luma;\n}\n\nvoid main() {\n vec4 src = texture(u_src, v_uv);\n vec4 matte = texture(u_src2, v_uv);\n fragColor = src * clamp(hfCoverage(matte, u_mode), 0.0, 1.0);\n}\n`;var HE={lcgMulA:1103515245,lcgMulB:12996205,lcgAdd:12345,highMask:32640,lowMask:255,byteScale:32704},{lcgMulA:GE,lcgMulB:BE,lcgAdd:Dp,highMask:UE,lowMask:WE,byteScale:VE}=HE,Ip=`#version 300 es\nprecision highp float;\n// NOT decoration: a fragment shader\'s default integer precision is mediump,\n// and a mediump uint is only guaranteed 16 bits (ESSL 3.00 \\xA74.5.2). Every step\n// below \\u2014 the Jenkins mix, both LCG rounds \\u2014 is defined by 32-bit wraparound,\n// so without this the hash is a different function on any implementation that\n// honours the minimum. ANGLE and SwiftShader both use 32-bit ints, which is\n// exactly why no test on this machine would catch it.\nprecision highp int;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform float u_amount;\nuniform float u_useColorNoise;\nuniform float u_clipping;\n\n// Bob Jenkins\' 1997 integer mix, the six-round shift/xor/subtract sequence the\n// metallib runs verbatim. uint arithmetic wraps in GLSL ES 3.00, which is what\n// makes this bit-identical to the C original.\nuint hfJenkinsMix(uint a, uint b, uint c) {\n a -= b; a -= c; a ^= (c >> 13u);\n b -= c; b -= a; b ^= (a << 8u);\n c -= a; c -= b; c ^= (b >> 13u);\n a -= b; a -= c; a ^= (c >> 12u);\n b -= c; b -= a; b ^= (a << 16u);\n c -= a; c -= b; c ^= (b >> 5u);\n a -= b; a -= c; a ^= (c >> 3u);\n b -= c; b -= a; b ^= (a << 10u);\n c -= a; c -= b; c ^= (b >> 15u);\n return c;\n}\n\n// The hash\'s 15-bit output byte for one channel.\nfloat hfNoiseByte(uint a, uint y, uint seed) {\n uint h = hfJenkinsMix(a, y, seed);\n uint t2 = h * ${GE}u + ${Dp}u;\n uint t4 = t2 * ${BE}u + ${Dp}u;\n return float(((t4 >> 16u) & ${WE}u) ^ ((t2 >> 9u) & ${UE}u));\n}\n\nvoid main() {\n vec4 src = texture(u_src, v_uv);\n vec2 px = floor(v_uv * u_size);\n uint x = uint(max(px.x, 0.0));\n // After Effects indexes rows from the top; v_uv is y-up.\n uint y = uint(max(u_size.y - 1.0 - px.y, 0.0));\n float frame = floor(u_t * u_fps + 0.5);\n uint seed = uint(max(frame, 0.0)) & 0xFFFFu;\n\n float amount = u_amount * 0.01;\n vec3 nz;\n if (u_useColorNoise > 0.5) {\n uint a = x * 3u;\n nz = vec3(hfNoiseByte(a, y, seed), hfNoiseByte(a + 1u, y, seed), hfNoiseByte(a + 2u, y, seed));\n } else {\n nz = vec3(hfNoiseByte(x, y, seed));\n }\n nz = amount * (nz / ${VE}.0 - 0.5);\n\n vec4 out4 = vec4(src.rgb + nz, src.a);\n // A valid premultiplied colour needs rgb <= a component-wise; noise on a\n // near-transparent texel can push rgb above it, which our fixed 8-bit RGBA\n // storage cannot carry safely the way AE\'s float pipeline can (see the doc\n // comment above). This runs before, and independently of, u_clipping.\n out4.rgb = min(out4.rgb, out4.a);\n fragColor = u_clipping > 0.5 ? clamp(out4, 0.0, 1.0) : out4;\n}\n`;var $E={tau:6.283185307179586,degreesPerTurn:360},{tau:zE,degreesPerTurn:qE}=$E,Pp=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform float u_waveType;\nuniform float u_height;\nuniform float u_width;\nuniform float u_direction;\nuniform float u_speed;\nuniform float u_pinning;\nuniform float u_phase;\n\n// Outside the layer\'s own box there is nothing to warp in from, so the wave\n// carries transparency rather than a smeared edge pixel.\nvec4 hfSampleSrc(vec2 uv) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);\n return texture(u_src, uv);\n}\n\nvoid main() {\n vec2 px = v_uv * u_size;\n float dir = radians(u_direction);\n vec2 travel = vec2(sin(dir), -cos(dir));\n vec2 swing = vec2(-travel.y, travel.x);\n float proj = (px.x + 1.0) * travel.x + px.y * travel.y;\n float turns = proj / max(u_width, 1.0) + u_phase / ${qE}.0 + u_speed * u_t;\n float disp = u_height * sin(${zE} * turns);\n fragColor = hfSampleSrc((px + swing * disp) / u_size);\n}\n`;var ou="data-vfx-chain",Op=1,Hp=[{value:1,label:"Red"},{value:2,label:"Green"},{value:3,label:"Blue"},{value:4,label:"Alpha"},{value:5,label:"Luminance"},{value:6,label:"Hue"},{value:7,label:"Lightness"},{value:8,label:"Saturation"},{value:9,label:"Full"},{value:10,label:"Half"},{value:11,label:"Off"}],jE=[{id:"fractal-noise",label:"Fractal Noise",ae:"ADBE Fractal Noise",capture:"none",frag:Fp,params:[{kind:"enum",key:"fractalType",label:"Fractal Type",options:[{value:1,label:"Basic"}],default:1,hint:"Only Basic is implemented in v1."},{kind:"enum",key:"noiseType",label:"Noise Type",options:[{value:1,label:"Block"},{value:2,label:"Linear"},{value:3,label:"Soft Linear"},{value:4,label:"Spline"}],default:3},{kind:"bool",key:"invert",label:"Invert",default:!1},{kind:"number",key:"contrast",label:"Contrast",unit:"%",min:0,max:1e3,step:1,default:100},{kind:"number",key:"brightness",label:"Brightness",unit:"",min:-1e3,max:1e3,step:1,default:0},{kind:"number",key:"scale",label:"Scale",unit:"%",min:6,max:1e4,step:1,default:100},{kind:"number",key:"complexity",label:"Complexity",unit:"",min:1,max:20,step:1,default:6},{kind:"number",key:"subInfluence",label:"Sub Influence",unit:"%",min:0,max:100,step:1,default:70},{kind:"number",key:"subScaling",label:"Sub Scaling",unit:"%",min:0,max:100,step:1,default:56},{kind:"number",key:"evolution",label:"Evolution",unit:"revolutions",min:-1e4,max:1e4,step:.01,default:0,animatable:!0},{kind:"number",key:"randomSeed",label:"Random Seed",unit:"",min:0,max:99999,step:1,default:0},{kind:"number",key:"opacity",label:"Opacity",unit:"%",min:0,max:100,step:1,default:100,animatable:!0}]},{id:"wave-warp",label:"Wave Warp",ae:"ADBE Wave Warp",capture:"self",frag:Pp,params:[{kind:"enum",key:"waveType",label:"Wave Type",options:[{value:1,label:"Sine"}],default:1,hint:"Only Sine is implemented in v1; the exporter marks the others cosmetic."},{kind:"number",key:"height",label:"Wave Height",unit:"px",min:-1e3,max:1e3,step:1,default:10,animatable:!0},{kind:"number",key:"width",label:"Wave Width",unit:"px",min:1,max:1e4,step:1,default:40,animatable:!0},{kind:"number",key:"direction",label:"Direction",unit:"deg",min:-360,max:360,step:1,default:90},{kind:"number",key:"speed",label:"Wave Speed",unit:"waves/s",min:-100,max:100,step:.1,default:1},{kind:"enum",key:"pinning",label:"Pinning",options:[{value:1,label:"None"}],default:1,hint:"Only None is implemented in v1; the exporter marks the others cosmetic."},{kind:"number",key:"phase",label:"Phase",unit:"deg",min:-360,max:360,step:1,default:0,animatable:!0}]},{id:"displacement-map",label:"Displacement Map",ae:"ADBE Displacement Map",capture:"self",frag:Lp,params:[{kind:"ref",key:"map",label:"Displacement Map Layer",optional:!0},{kind:"enum",key:"useH",label:"Use For Horizontal Displacement",options:Hp,default:1,hint:"Hue, Lightness and Saturation are read as Luminance in v1."},{kind:"number",key:"maxH",label:"Max Horizontal Displacement",unit:"px",min:-32e3,max:32e3,step:1,default:5,animatable:!0},{kind:"enum",key:"useV",label:"Use For Vertical Displacement",options:Hp,default:2,hint:"Hue, Lightness and Saturation are read as Luminance in v1."},{kind:"number",key:"maxV",label:"Max Vertical Displacement",unit:"px",min:-32e3,max:32e3,step:1,default:5,animatable:!0},{kind:"enum",key:"behavior",label:"Displacement Map Behavior",options:[{value:1,label:"Center Map"}],default:1,hint:"Only Center Map is implemented in v1."},{kind:"enum",key:"edge",label:"Edge Behavior",options:[{value:0,label:"Off"}],default:0,hint:"Only Off (transparent outside the layer) is implemented in v1."},{kind:"bool",key:"expand",label:"Expand Output",default:!0}]},{id:"luma-matte",label:"Matte",capture:"self",frag:Np,params:[{kind:"ref",key:"matte",label:"Matte Layer"},{kind:"enum",key:"mode",label:"Matte Mode",options:[{value:1,label:"Alpha"},{value:2,label:"Alpha Inverted"},{value:3,label:"Luma"},{value:4,label:"Luma Inverted"}],default:1}]},{id:"noise",label:"Noise",ae:"ADBE Noise",capture:"self",frag:Ip,params:[{kind:"number",key:"amount",label:"Amount of Noise",unit:"%",min:0,max:400,step:.1,default:0,animatable:!0},{kind:"bool",key:"useColorNoise",label:"Use Color Noise",default:!1},{kind:"bool",key:"clipping",label:"Clip Result Values",default:!0}]}],bo=new Map(jE.map(e=>[e.id,e]));function Up(e){return bo.get(e)}function Wp(e,t){let n=bo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];r[i.key]=i.kind==="enum"?KE(i,o):i.kind==="bool"?XE(i,o):i.kind==="ref"?YE(o):JE(i,o)}return r}function Vp(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN;return Number.isFinite(t)?t:void 0}function KE(e,t){let n=Vp(t);return n!==void 0&&e.options.some(r=>r.value===n)?n:e.default}function XE(e,t){return typeof t=="boolean"?t:e.default}function YE(e){return typeof e=="string"?e:""}function JE(e,t){let n=Vp(t);return n!==void 0?Math.min(e.max,Math.max(e.min,n)):e.default}var Je=class extends Error{constructor(t){super(t),this.name="VfxChainError"}};function au(e){return e.nodes.filter(t=>t.enabled!==!1)}var Gp={none:0,self:1,backdrop:2};function $p(e){let t="none";for(let n of au(e)){let r=bo.get(n.type);r&&Gp[r.capture]>Gp[t]&&(t=r.capture)}return t}function zp(e){let t;try{t=JSON.parse(e)}catch(i){throw new Je(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new Je("Chain file must be a JSON object.");let n=t;if(n.version!==Op)throw new Je(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new Je("Chain file is missing a `nodes` array.");let r=n.nodes.map(eA);return{version:Op,nodes:r}}function Bp(e){return typeof e=="object"&&e!==null}function QE(e,t){if(typeof e.type!="string"||!bo.has(e.type))throw new Je(`Node ${t} has unknown effect type: ${String(e.type)}`);return e.type}function ZE(e,t){if(typeof e.id!="string"||e.id==="")throw new Je(`Node ${t} is missing an id.`);return e.id}function eA(e,t){if(!Bp(e))throw new Je(`Node ${t} is not an object.`);let n=e,r=QE(n,t),i=ZE(n,t),o=Bp(n.params)?n.params:{};return tA({type:r,id:i,enabled:n.enabled===!1?!1:void 0,params:o})}function tA(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var nA="data-vfx-ref-visible",rA="[HyperFrames] composition script error:",iA={preserveDrawingBuffer:!0,antialias:!1,premultipliedAlpha:!0,alpha:!0},oA=`#version 300 es\nout vec2 v_uv;\nvoid main() {\n vec2 p = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2));\n v_uv = p;\n gl_Position = vec4(p * 2.0 - 1.0, 0.0, 1.0);\n}\n`,Nt=[],Qp=30,Zp=0,cu=0,eh=-1,su=null,uu=null;function Oe(e){console.error(rA,`vfx: ${e}`)}function qp(e,t,n){let r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(Oe(`shader failed to compile: ${e.getShaderInfoLog(r)??"(no log)"}`),e.deleteShader(r),null)):null}function aA(e,t){let n=qp(e,e.VERTEX_SHADER,oA),r=n?qp(e,e.FRAGMENT_SHADER,t):null;if(!n||!r)return 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:(Oe(`program failed to link: ${e.getProgramInfoLog(i)??"(no log)"}`),e.deleteProgram(i),null)):null}var jp="position:absolute;inset:0;width:100%;height:100%;pointer-events:none;";function sA(e){let t=e.querySelector("canvas.hf-vfx-out");if(zn(t))return t.style.cssText=jp+t.style.cssText,t;let n=document.createElement("canvas");return n.className="hf-vfx-out",n.style.cssText=jp,e.appendChild(n),n}function uA(e,t,n){let r={};for(let i of n.params)i.kind!=="ref"&&(r[i.key]=e.getUniformLocation(t,`u_${i.key}`));return{size:e.getUniformLocation(t,"u_size"),t:e.getUniformLocation(t,"u_t"),fps:e.getUniformLocation(t,"u_fps"),src:e.getUniformLocation(t,"u_src"),src2:e.getUniformLocation(t,"u_src2"),hasSrc2:e.getUniformLocation(t,"u_hasSrc2"),params:r}}function lA(e,t,n,r){return r.optional?{kind:"none"}:(Oe(`${lt(e)}: node "${t.id}" (${n.id}) needs a "${r.key}" param naming the id of the element to read as its second source.`),{kind:"error"})}function cA(e,t,n,r,i,o){let a=n.params.find(m=>m.kind==="ref");if(!a)return{kind:"none"};let u=r[a.key];if(typeof u!="string"||u==="")return lA(e,t,n,a);let s=e.ownerDocument.getElementById(u);if(!pe(s))return Oe(`${lt(e)}: node "${t.id}" (${n.id}) names "${a.key}" element #${u}, which is not in the composition.`),{kind:"error"};if(s===e)return a.optional?{kind:"none"}:{kind:"self"};let l=o.get(s);if(l)return{kind:"source",source:l};let d=th(s,i,`${lt(e)}: "${a.key}" source`);return d?(d.visible=d.canvas.hasAttribute(nA),o.set(s,d),{kind:"source",source:d}):{kind:"error"}}function dA(e,t,n){let r=[],i=new Map;for(let o of au(t)){let a=Up(o.type);if(!a)return Oe(`node "${o.id}" has unknown effect type "${o.type}"`),null;let u=aA(e,a.frag);if(!u)return Oe(`node "${o.id}" (${a.id}) has no usable program`),null;let s=Wp(a.id,o.params),l=cA(n,o,a,s,e,i);if(l.kind==="error")return null;r.push({node:o,def:a,program:u,params:s,locations:uA(e,u,a),...l.kind==="source"?{ref:l.source}:{},selfRef:l.kind==="self"})}return r}function fA(e){let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),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),t}function mA(e){let t=e.parentElement;if(!t||e.id==="")return null;let n=t.children;for(let r=0;r<n.length;r++){let i=n.item(r);if(zn(i)&&i.classList.contains("hf-vfx-src")&&i.getAttribute("data-vfx-for")===e.id)return i}return null}function th(e,t,n){let r=mA(e),i=r??e.querySelector("canvas.hf-vfx-src"),o=zn(i)?i.querySelector(":scope > .hf-vfx-in"):null;if(!zn(i)||!pe(o)){Oe(`${n}: a capturing chain needs <canvas layoutsubtree class="hf-vfx-src"><div class="hf-vfx-in">\\u2026</div></canvas> in source \\u2014 inside the element for its own pixels, or beside it with data-vfx-for="${e.id}" for the layers below it.`);return}let a=i.getContext("2d");if(!a||typeof a.drawElementImage!="function"){Oe(`${n}: drawElementImage is unavailable, so the layer cannot be captured. In Studio, enable chrome://flags/#canvas-draw-element.`);return}return{canvas:i,inner:o,ctx:a,texture:fA(t),backdrop:r!==null,visible:!1,emptyBoxReported:!1}}function pA(e){e.out.addEventListener("webglcontextlost",t=>{t.preventDefault(),!(!Nt.includes(e)||e.contextLost)&&(e.contextLost=!0,Oe(`${lt(e.host)}: WebGL context lost.`))})}function hA(e){try{return zp(e.getAttribute(ou)??"")}catch(t){let n=t instanceof Je?t.message:String(t);return Oe(`${lt(e)}: ${n}`),null}}function gA(e){let t=hA(e);if(!t)return null;let n=sA(e),r=n.getContext("webgl2",iA);if(!r)return Oe(`${lt(e)}: WebGL2 is unavailable, so the chain cannot paint.`),n.remove(),null;let i=dA(r,t,e);if(!i)return n.remove(),null;let o=$p(t),a=o==="none"?void 0:th(e,r,lt(e));if(o!=="none"&&!a)return n.remove(),null;let u=a?.backdrop?"backdrop":o,s={host:e,chain:t,capture:u,out:n,gl:r,passes:i,src:a,contextLost:!1};return pA(s),s}function du(e){let t=getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function nh(e){if(getComputedStyle(e.inner).visibility==="hidden")return!1;for(let t=e.inner;t;t=t.parentElement)if(getComputedStyle(t).display==="none")return!1;return!0}function lt(e){return e.id?`#${e.id}`:`<${e.tagName.toLowerCase()}>`}function Ur(e){let t=e.src?[e.src]:[];for(let n of e.passes)n.ref&&!t.includes(n.ref)&&t.push(n.ref);return t}function fu(e){return e.src?.backdrop===!0}function Br(e){let t=[];for(let n of e.passes)n.ref?.visible&&!t.includes(n.ref)&&t.push(n.ref);return t}function bA(){for(let e of Nt){let{gl:t}=e;for(let n of e.passes)t.deleteProgram(n.program);for(let n of Ur(e))t.deleteTexture(n.texture);if(e.ping){for(let n of e.ping.textures)t.deleteTexture(n);for(let n of e.ping.framebuffers)t.deleteFramebuffer(n)}}}function mu(e,t){bA(),Nt=[],Qp=Number.isFinite(t)&&t>0?t:30;let n=e.querySelectorAll(`[${ou}]`);for(let r of n){if(!pe(r))continue;let i=gA(r);i&&Nt.push(i)}return Nt}function Cn(e){let t=typeof window>"u"?1:window.devicePixelRatio||1,n=Math.round(e.offsetWidth*t),r=Math.round(e.offsetHeight*t);return n>0&&r>0?{width:n,height:r}:null}function Kp(e,t,n){let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),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);let i=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),[r,i]}function xA(e,t,n){let r=e.ping;if(r&&r.width===t&&r.height===n)return r;let{gl:i}=e;if(r){for(let s of r.textures)i.deleteTexture(s);for(let s of r.framebuffers)i.deleteFramebuffer(s)}let o=Kp(i,t,n),a=Kp(i,t,n),u={textures:[o[0],a[0]],framebuffers:[o[1],a[1]],width:t,height:n};return e.ping=u,u}function yA(e,t,n){if(e.kind==="ref")return null;if(e.kind==="number"&&e.animatable){let i=n.getPropertyValue(`--vfx-${t.node.id}-${e.key}`).trim(),o=i===""?Number.NaN:Number.parseFloat(i);if(Number.isFinite(o))return Math.min(e.max,Math.max(e.min,o))}let r=t.params[e.key];return typeof r=="boolean"?r?1:0:typeof r=="number"?r:0}function vA(e,t,n,r,i,o){let{gl:a}=e,{locations:u}=t;a.uniform2f(u.size,i,o),a.uniform1f(u.t,r),a.uniform1f(u.fps,Qp),a.uniform1f(u.hasSrc2,t.ref||t.selfRef?1:0);for(let s of t.def.params){let l=yA(s,t,n);l!==null&&a.uniform1f(u.params[s.key]??null,l)}}function SA(e,t,n){return e===t||!n?null:n.framebuffers[e%2]??null}function EA(e,t,n){return t===0?e.src?.texture??null:n?.textures[(t-1)%2]??null}function AA(e,t,n,r){let{gl:i}=e,o=e.passes[t];i.bindFramebuffer(i.FRAMEBUFFER,SA(t,n,r));let a=EA(e,t,r);a&&Xp(i,o.locations.src,a,0),o.ref?(Xp(i,o.locations.src2,o.ref.texture,1),i.activeTexture(i.TEXTURE0)):o.selfRef&&a&&i.uniform1i(o.locations.src2,0)}function Xp(e,t,n,r){e.activeTexture(r===0?e.TEXTURE0:e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t,r)}function pu(e,t){let n=Cn(e.host);if(!n)return;let{gl:r,out:i,passes:o}=e;i.width!==n.width&&(i.width=n.width),i.height!==n.height&&(i.height=n.height);let a=o.length>1?xA(e,n.width,n.height):null,u=getComputedStyle(e.host),s=o.length-1;for(let l=0;l<=s;l++){let d=o[l];r.useProgram(d.program),AA(e,l,s,a),r.viewport(0,0,n.width,n.height),vA(e,d,u,t,n.width,n.height),r.drawArrays(r.TRIANGLES,0,3)}}function Yp(e,t){e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.texture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.canvas),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0)}var _A={upload:!0,keepBitmap:!1},wA={upload:!1,keepBitmap:!0},CA={upload:!0,keepBitmap:!0},RA={upload:!1,keepBitmap:!0};function Jp(e,t){e.canvas.width!==t.width&&(e.canvas.width=t.width),e.canvas.height!==t.height&&(e.canvas.height=t.height)}function hu(e,t,n,r,i){if(!nh(t))return Jp(t,n),t.ctx.clearRect(0,0,n.width,n.height),i.upload&&Yp(e.gl,t),!0;if(Cn(t.inner)===null)return t.emptyBoxReported||(t.emptyBoxReported=!0,Oe(`${lt(e.host)}: the .hf-vfx-in wrapper measures 0\\xD70, so its capture would be empty. Inside a layoutsubtree canvas an inset or percentage box has no size \\u2014 the wrapper must state an explicit width and height in px.`)),!1;Jp(t,n),t.ctx.clearRect(0,0,n.width,n.height);try{t.ctx.drawElementImage(t.inner,0,0,n.width,n.height)}catch(o){return r||Oe(`${lt(e.host)}: drawElementImage failed: ${o.message} In Studio, enable chrome://flags/#canvas-draw-element.`),!1}return i.upload&&Yp(e.gl,t),i.keepBitmap||t.ctx.clearRect(0,0,n.width,n.height),!0}function rh(e,t){return e.visible?Cn(e.inner)??t:t}function ih(e,t=!1){let n=Cn(e.host),r=Ur(e);if(!n||r.length===0)return!1;let i=!0;for(let o of r){let a=o.visible?CA:_A;hu(e,o,rh(o,n),t,a)||(i=!1)}return i}function oh(e,t=!1){let n=e.src;if(!n)return!1;let r=Cn(e.host)??Cn(n.inner);return r?hu(e,n,r,t,wA):!1}function lu(e,t=!1){let n=!0;for(let r of Br(e)){let i=rh(r,{width:0,height:0});hu(e,r,i,t,RA)||(n=!1)}return n}function TA(e){let t=!1;return fu(e)&&oh(e)&&(t=!0),Br(e).length>0&&lu(e)&&(t=!0),t}function kA(){let e=!1;for(let t of Nt)if(!t.contextLost&&Ur(t).length!==0){if(!du(t.host)){TA(t)&&(e=!0);continue}ih(t)&&(pu(t,Zp),e=!0)}return eh=cu,window.__hf_page_composite_pending=!1,e}function MA(){let e=window,t=e.__hf_page_composite_resolve;t!==su&&(uu=typeof t=="function"?t:null,su=()=>{let n=uu?uu():!1;return kA()||n},e.__hf_page_composite_resolve=su),e.__hf_page_composite_pending=!0}var ah=2e3;function FA(e){return new Promise(t=>{let n=!1,r=a=>{n||(n=!0,clearTimeout(o),e.removeEventListener("paint",i),t(a))},i=()=>r("painted"),o=setTimeout(()=>r("timeout"),ah);e.addEventListener("paint",i,{once:!0});try{e.requestPaint?.()}catch{}if(typeof requestAnimationFrame!="function"){r("painted");return}requestAnimationFrame(()=>requestAnimationFrame(()=>r("painted")))})}async function LA(e,t){return(await Promise.all(t.map(r=>FA(r.canvas)))).includes("timeout")?(Oe(`${lt(e.host)}: no paint arrived within ${ah}ms, so this frame\'s capture was skipped (a BeginFrame-controlled compositor without a tick for this frame is a known cause).`),!1):!0}function NA(e){return du(e.host)?"paint":fu(e)?"passThrough":"refOnly"}function DA(e,t){return(t==="passThrough"?[...e.src?[e.src]:[],...Br(e)]:t==="refOnly"?Br(e):Ur(e)).filter(nh)}function IA(e,t){return t!==cu||eh===t?!1:Nt.includes(e)&&!e.contextLost}async function PA(e,t,n,r){let i=NA(e);if(await LA(e,DA(e,i))&&IA(e,n)){if(i==="passThrough"){oh(e,r),lu(e,r);return}if(i==="refOnly"){lu(e,r);return}ih(e,r)&&pu(e,t)}}async function OA(e,t,n,r){await Promise.all(e.map(i=>PA(i,t,n,r)))}function gu(e,t){Zp=e;let n=++cu,r=[];for(let i of Nt)if(!i.contextLost){if(!du(i.host)){(fu(i)||Br(i).length>0)&&r.push(i);continue}Ur(i).length>0?r.push(i):pu(i,e)}r.length!==0&&(t?.engineMode&&MA(),qn(OA(r,e,n,t?.engineMode===!0)))}var HA=500,GA=33,xo=class{constructor(t){ue(this,"_baseTime",0);ue(this,"_playStartMs",null);ue(this,"_rate",1);ue(this,"_duration",1/0);ue(this,"_nowMs");ue(this,"_audioSource",null);ue(this,"_lastReadMs",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,rate:u}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=typeof u=="object"?un(u,i.currentTime-a)+o:(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return this._lastReadMs=null,Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}this._applyStallCorrection();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)}_applyStallCorrection(){if(this._playStartMs===null)return;let t=this._nowMs();if(this._lastReadMs!==null){let n=t-this._lastReadMs;n>HA&&(this._playStartMs+=n-GA)}this._lastReadMs=t}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),this._lastReadMs=null,!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(),this._lastReadMs=null)}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._lastReadMs=null),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._lastReadMs=null),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 BA=100,UA=8,WA=4096,bu=e=>e;function VA(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function $A(e){let t=Math.ceil(e*BA);return Math.min(WA,Math.max(UA,t))}function zA(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:u}=r,s=i??bu,l=M=>o+(M-a)/u,d=e.points[t],m=e.points[t+1],f=l(m.t);if(f<=o)return null;let p=Math.max(o,l(d.t)),g=f-p;if(g<=0)return null;if(VA(d,n,i))return{kind:"ramp",time:f,value:s(m.v)};let y=$A(g),x=kc(e,Math.max(d.t,a),m.t,y,n),A=new Float32Array(y);for(let M=0;M<y;M+=1)A[M]=s(x[M]??0);return{kind:"curve",time:p,duration:g,values:A}}function qA(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let u=zA(e,a,t,n,r);u&&i.push(u)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??bu)(ht(e,n.elapsed,t))}),i}function jA(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 Wr(e){for(let t of e)t.param.cancelScheduledValues(0)}function Rn(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function xu(e,t,n,r){if(t.points.length!==0)for(let i of e){if(Wr([i]),Tc(t)){let o=(i.map??bu)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}jA(i.param,qA(t,n,r,i.map))}}function sh(e,t,n,r,i){let o=new Map(n.filter(u=>u.id).map(u=>[u.id,u.handle])),a=[];for(let u of e.lanes){let s=tr(u.target);if(!s)continue;let l=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!l||l.length===0)continue;let d=ga(u.target,t);d&&(xu(l,u,d.scale,r),a.push(...l))}return a}function uh(e){return e.lanes.find(t=>t.target===sn)??null}var KA=`\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`,yu=new WeakMap;function vu(e){return lh.has(e)}var lh=new WeakSet;function Su(e){let t=yu.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(KA)))}`;await e.audioWorklet.addModule(n),lh.add(e)})().catch(n=>{throw yu.delete(e),n}),yu.set(e,t)),t}function XA(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,u=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),l=0,d=0;for(let f=0;f<i;f++){l+=s*(u()-l);let p=l*Math.pow(1-f/i,2.5);o[f]=p,d+=p*p}let m=Math.sqrt(d);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),Eu=e=>e/1e3;function mh(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 l=0;l<i;l++){let d=l/i;a[l]=t==="sine"?Math.sin(2*Math.PI*d):4*Math.abs((d+.75)%1-.5)-1}let u=e.createBufferSource();u.buffer=o,u.loop=!0,u.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return u.start(typeof e.currentTime=="number"?e.currentTime:0,s),u}function ph(e){try{e.stop()}catch{}e.disconnect()}function Au(e,t){return[{param:e},{param:t,map:n=>1-n}]}function hh(e,t,n){e.gain.value=n,t.gain.value=1-n}function _u(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var YA=new Set(["peaking","highpass","lowpass"]),ch=e=>Math.pow(10,e/20),JA=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=ch(ce(i.gain))};return r(t),_u(n,r,{gain:[{param:n.gain,map:ch}]})};function Vr(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),_u(i,o,{frequency:[{param:i.frequency}],...YA.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function QA(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 _u(i,()=>{})}}function $r(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 ZA={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))},e1=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let u=ZA[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),l=8192,d=new Float32Array(l);for(let m=0;m<l;m++){let f=m/(l-1)*2-1;d[m]=u(f/Math.max(1e-6,s))*s}n.curve=d,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()}}},t1=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),u=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(u).connect(r);let s=l=>{i.delayTime.value=Math.min(5,ce(l.time)/1e3),o.gain.value=ce(l.feedback),hh(a,u,ce(l.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:l=>Math.min(5,Eu(l))}],feedback:[{param:o.gain}],mix:Au(a.gain,u.gain)},dispose:()=>[n,r,i,o,a,u].forEach(l=>l.disconnect())}},n1=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=mh(e,"sine",ce(t.speed),n),u=e.createGain(),s=e.createGain(),l=e.createGain();a.connect(u).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(l).connect(i);let d=m=>{o.delayTime.value=ce(m.delay)/1e3,u.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),hh(s,l,ce(m.mix))};return d(t),{input:r,output:i,update:d,automation:{delay:[{param:o.delayTime,map:Eu}],depth:[{param:u.gain,map:Eu}],speed:[{param:a.playbackRate}],mix:Au(s.gain,l.gain)},dispose:()=>{ph(a),[r,i,o,u,s,l].forEach(m=>m.disconnect())}}},r1=6,i1=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),u=mh(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),l=e.createGain(),d=e.createGain(),m=[];r.connect(o);let f=o;for(let g=0;g<r1;g++){let y=e.createBiquadFilter();y.type="allpass",y.Q.value=.7071,s.connect(y.frequency),f.connect(y),f=y,m.push(y)}u.connect(s),f.connect(l).connect(a),o.connect(d).connect(a),a.connect(i);let p=g=>{let y=1e3/Math.max(.1,ce(g.delay));for(let x of m)x.frequency.value=y;s.gain.value=y*ce(g.decay),u.playbackRate.value=ce(g.speed),o.gain.value=ce(g.in_gain),a.gain.value=ce(g.out_gain),l.gain.value=1,d.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:u.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{ph(u),[r,i,o,a,s,l,d,...m].forEach(g=>g.disconnect())}}},o1=(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 u="",s=l=>{let d=`${ce(l.size)}:${ce(l.damping)}`;if(d!==u){let m=XA(e.sampleRate,ce(l.size),ce(l.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,u=d}o.gain.value=ce(l.wet),a.gain.value=ce(l.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(l=>l.disconnect())}},a1={"gain-node":JA,"biquad-peaking":Vr("peaking",!0),"biquad-lowshelf":Vr("lowshelf",!0),"biquad-highshelf":Vr("highshelf",!0),"biquad-highpass":Vr("highpass",!1),"biquad-lowpass":Vr("lowpass",!1),"worklet-compressor":$r("hf-compressor"),"worklet-limiter":$r("hf-limiter"),"worklet-gate":$r("hf-gate"),"worklet-bitcrush":$r("hf-bitcrush"),"worklet-pitchshift":$r("hf-pitchshift"),waveshaper:e1,"delay-feedback":t1,"chorus-lfo":n1,"allpass-phaser":i1,convolver:o1};function gh(e){return e.nodes.some(t=>Xn(t.type)?.web.startsWith("worklet-")??!1)}function s1(e,t,n,r=0){let i=Xn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=Yn(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return QA(t)(e,o,r);let a=a1[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function dh(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 fh(e){return Jn(e).map(t=>{let n=Yn(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 bh(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],u=dh(Jn(t)),s=r;for(let f of u){let p=null;if(f.preset){let g=e.createGain(),y=e.createGain(),x=e.createGain(),A=e.createGain();x.gain.value=f.amount,y.gain.value=1-f.amount,s.connect(g),g.connect(y).connect(A),p={entry:g,wet:x,dry:y,join:A},s=g}for(let g of f.nodes){let y=s1(e,g.type,g.params??{},n);s.connect(y.input),s=y.output,o.push({...g.id?{id:g.id}:{},type:g.type,handle:y})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let l=fh(t),d={};for(let f of a)(d[m=f.id]??(d[m]=[])).push(...Au(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:d,nodes:o,update(f){if(fh(f)!==l)return!1;Jn(f).forEach((g,y)=>{let x=o[y];x&&(x.handle.update(Yn(g.type,g.params)),g.id===void 0?delete x.id:x.id=g.id)});let p=0;for(let g of dh(Jn(f))){if(!g.preset)continue;let y=a[p++];!y||y.id!==g.preset||(y.wet.gain.value=g.amount,y.dry.gain.value=1-g.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:g,join:y}of a)f.disconnect(),p.disconnect(),g.disconnect(),y.disconnect();r.disconnect(),i.disconnect()}}}var xh={version:1,nodes:[]},yh={version:1,lanes:[]};function vh(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(pt):null)??"";if(!n)return yh;try{return Rc(wi(n),t)}catch{return yh}}function Tn(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Vt):null)??"";if(!t)return{chain:xh,raw:""};try{return{chain:hc(t),raw:t}}catch{return{chain:xh,raw:""}}}function Sh(e){return vh(e,Tn(e).chain)}function yo(e,t,n,r,i){let{chain:o}=Tn(t),a=null,u=[],s=!1,l=0,d=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(C,L)=>{if(C.nodes.length===0){n.connect(r);return}if(gh(C)&&!vu(e)){n.connect(r);let B=++l;Su(e).then(()=>{s||B!==l||x(Tn(t).chain)}).catch(()=>{});return}try{let B=bh(e,C,L);n.connect(B.input),B.output.connect(r),a=B}catch{n.connect(r)}},f=(C,L)=>{u=L&&a?sh(vh(t,C),C,a.nodes,L,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let g=()=>{if(!p)return null;let C=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:C,elapsed:p.elapsed+(C-p.scheduledAt)*p.rate,rate:p.rate}},y=C=>{let L=g();L&&(Rn(u,L.scheduledAt),f(C,L))},x=C=>{let L=g();Rn(u,L?.scheduledAt??0),d(),m(C,L?.elapsed??0),f(C,L)},A=null,M=t;return typeof MutationObserver<"u"&&typeof M?.nodeType=="number"&&(A=new MutationObserver(()=>{let C=Tn(t);u.length>0&&Wr(u),!a||!a.update(C.chain)?x(C.chain):y(C.chain)}),A.observe(M,{attributes:!0,attributeFilter:[Vt,pt]})),{reanchor:C=>{if(s)return;let L=g();L&&Rn(u,L.scheduledAt),p={...C},f(Tn(t).chain,p)},setRate:C=>{let L=g();s||!L||!Number.isFinite(C)||C<=0||C===L.rate||(p={...L,rate:C},Rn(u,L.scheduledAt),f(Tn(t).chain,p))},dispose:()=>{s=!0,A?.disconnect(),u.length>0&&Rn(u,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}function Eh(e,t){e.getFloatTimeDomainData(t);let n=0;for(let r=0;r<t.length;r++)n=Math.max(n,Math.abs(t[r]??0));return n}function wu(e,t){let n=e.createGain();n.channelCount=2,n.channelCountMode="explicit";let r=e.createChannelSplitter(2),i=e.createAnalyser(),o=e.createAnalyser();i.fftSize=o.fftSize=2048,t.connect(n),n.connect(r),r.connect(i,0),r.connect(o,1);let a=new Float32Array(new ArrayBuffer(2048*4)),u=new Float32Array(new ArrayBuffer(2048*4));return{read:()=>({l:Eh(i,a),r:Eh(o,u)}),dispose:()=>{try{t.disconnect(n),n.disconnect(),r.disconnect()}catch{}}}}var Ah="runtime_web_audio_bypass";function Cu(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function zr(e,t){return Cu(e,t)!==null}function u1(e){return zr(e,"crossorigin")?!0:e.crossOrigin!=null}function l1(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function c1(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=Cu(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 d1(e,t){let n;try{n=new URL(e,l1(t))}catch{return null}return n.protocol!=="http:"&&n.protocol!=="https:"?null:n}function f1(){return typeof window.origin=="string"?window.origin:window.location.origin}function m1(e,t){if(typeof window>"u")return null;let n=d1(e,t);if(!n)return null;let r=f1(),i=r==="null";return!i&&n.origin===r||u1(t)?null:i?"opaque_document_origin":"cross_origin_no_cors"}function wh(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:zr(e,"src")}function kn(e){for(let t of c1(e)){let n=m1(t,e);if(n)return{kind:"decode-only",reason:n,asset:t}}return{kind:"web-audio"}}function p1(e){let t=[];zr(e,Vt)&&t.push("fx-chain"),zr(e,pt)&&t.push("automation"),zr(e,Fi)&&t.push("audio-group");let n=Number.parseFloat(Cu(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function h1(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var _h=new WeakSet,g1={cross_origin_no_cors:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead",opaque_document_origin:"this document\'s security origin is opaque (a sandbox without `allow-same-origin`), so no media is same-origin with it and createMediaElementSource would be silent (Web Audio spec); using native playback instead"},b1={cross_origin_no_cors:"proxy or download the asset to a same-origin URL to keep it.",opaque_document_origin:"add `allow-same-origin` to the sandbox, or serve the asset with a `crossorigin` attribute and an `Access-Control-Allow-Origin` of `null` or `*`, to keep it."};function Mn(e,t){if(t.kind==="web-audio"||h1()||_h.has(e))return;let n=p1(e);_h.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:g1[t.reason]};xe({source:"hf-preview",type:"diagnostic",code:Ah,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 ${b1[t.reason]}`:"";console.info(`[hyperframes] ${Ah}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function Ru(e){return!Number.isFinite(e)||e<=0?1:e}function Ch(e){return Be(e)}function x1(e,t){t||e.paused||!ci().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function y1(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:u}=t,s=Number.isFinite(u)&&u>0,l=u*a;if(n>=0){let m=n*a,f=l-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let d=-n/o;return s?e.start(i+d,r,l):e.start(i+d,r),!0}function vo(e,t,n){let r=uh(Sh(e));r&&xu([{param:t.gain}],r,_i.scale,n)}function Fn(e){return e.sourceKind==="buffer"}var So=class{constructor(){ue(this,"_ctx",null);ue(this,"_bufferCache",new Map);ue(this,"_failedSrcs",new Set);ue(this,"_mediaElementSources",new WeakMap);ue(this,"_activeSources",[]);ue(this,"_masterGain",null);ue(this,"_monitorGain",null);ue(this,"_masterVolume",1);ue(this,"_masterMuted",!1);ue(this,"_groups",new Map);ue(this,"_metering",!1);ue(this,"_masterTap",null);ue(this,"_groupTaps",new Map);ue(this,"_rateAnchorCtx",0);ue(this,"_rateAnchorComp",0);ue(this,"_rate",1);ue(this,"_paused",!0);ue(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._monitorGain=this._ctx.createGain(),this._masterGain.connect(this._monitorGain),this._monitorGain.connect(this._ctx.destination),this.applyMasterGain(),this._metering&&this.attachMasterTap(),!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 I("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return I("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),I("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=kn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),Mn(t,o),null}return n}if(!this._ctx)return null;let r=kn(t);if(r.kind!=="web-audio")return Mn(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,u=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 l=Ru(u),d=this._ctx.createGain();d.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:l},g=yo(this._ctx,t,s,d,p);d.connect(this.resolveDestination(t,m,i,l)??this._masterGain),vo(t,d,p),this._rate=l,this._rateAnchorCtx=m,this._rateAnchorComp=i;let y={fx:g,el:t,sourceNode:s,sourceKind:"media-element",gainNode:d,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Pe(t),bounded:!1};return t.volume=1,this._activeSources.push(y),this._paused=!1,y}catch(s){return I("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){I("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 u=()=>Sa(n,t),s=u(),l=this._ctx.createGain();l.gain.value=s?.hasAttribute("data-hidden")?0:1,l.connect(a);let d=this._ctx.createGain();d.gain.value=Ch(va(s)),d.connect(l);let m=yo(this._ctx,s??{getAttribute:()=>null},o,d,r);return s&&vo(s,d,r),this._groups.set(t,{input:o,output:a,isPresent:()=>u()!==null,fader:d,muteGain:l,fx:m,generation:this._playGeneration,reanchor:f=>{Wr([{param:d.gain}]);let p=u();d.gain.value=Ch(va(p)),l.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&vo(p,d,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),d.disconnect(),l.disconnect(),a.disconnect()}catch{}}}),this.attachGroupTap(t,a),o}startMetering(){this._metering=!0,this.attachMasterTap();for(let[t,n]of this._groups)this.attachGroupTap(t,n.output)}stopMetering(){this._metering=!1,this._masterTap?.dispose(),this._masterTap=null;for(let t of this._groupTaps.values())t.dispose();this._groupTaps.clear()}readLevels(){let t={};for(let[n,r]of this._groupTaps)this._groups.get(n)?.isPresent()&&(t[n]=r.read());return{master:this._masterTap?.read()??{l:0,r:0},groups:t}}attachMasterTap(){this._ctx&&this._masterGain&&!this._masterTap&&(this._masterTap=wu(this._ctx,this._masterGain))}attachGroupTap(t,n){this._metering&&this._ctx&&!this._groupTaps.has(t)&&this._groupTaps.set(t,wu(this._ctx,n))}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){I("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Kc(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,u,s=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||u!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),u!==this._playGeneration)return null;let d=Ru(s),m=Pe(t),f=d*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let g=this._ctx.createGain();g.gain.value=a;let y=o-r,x=this._ctx.currentTime,A={scheduledAt:x,elapsed:y,rate:d},M=yo(this._ctx,t,p,g,A);if(g.connect(this.resolveDestination(t,x,o,d)??this._masterGain),vo(t,g,A),this._rate=d,this._rateAnchorCtx=x,this._rateAnchorComp=o,!y1(p,{elapsed:y,mediaStart:i,scheduledAt:x,globalRate:d,mediaRate:m,clipDuration:l}))return p.disconnect(),M?.dispose(),g.disconnect(),null;let C=t.muted;t.muted=!0,x1(t,C);let L={fx:M,el:t,sourceNode:p,sourceKind:"buffer",gainNode:g,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:C,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(L),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,L,t,C)),L}catch(d){return I("webAudioTransport.schedule",d),null}}setRate(t){let n=Ru(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{Fn(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>Fn(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{Fn(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}Fn(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=Be(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){I("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._monitorGain&&(this._monitorGain.gain.value=this._masterMuted?0:this._masterVolume)}ownsClock(){return!this._paused&&this._activeSources.some(Fn)}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t&&Fn(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll(),this.stopMetering();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._monitorGain=null,this._masterVolume=1,this._masterMuted=!1}};var qr="data-hf-studio-manual-edit-gesture";var Rh=`[${qr}]`;function Th(e,t){let n=e.defaultView?.MutationObserver??globalThis.MutationObserver;if(!n||!e.documentElement)return{isActive:()=>e.querySelector(Rh)!=null,observing:!1,disconnect:()=>{}};let r=new Set(e.querySelectorAll(Rh)),i=u=>{for(let s of u){let l=s.target;ke(l)&&(l.hasAttribute(qr)?r.add(l):r.delete(l))}},o=u=>{u.length!==0&&(i(u),t())},a=new n(o);return a.observe(e.documentElement,{subtree:!0,attributes:!0,attributeFilter:[qr]}),{observing:!0,isActive:()=>{o(a.takeRecords());for(let u of r){if(u.isConnected&&u.hasAttribute(qr))return!0;r.delete(u)}return!1},disconnect:()=>{a.disconnect(),r.clear()}}}var kh=333.3333333333333;function Mh(e){return e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2?!1:e.compositionChanged===!0?!0:Number.isInteger(e.tick)&&e.tick>0&&e.tick%60===0}var v1=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function Fh(e){return Math.max(0,Math.min(1,e))}function Lh(e){let t=v1.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?Fh(n):null}function Nh(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=Fh(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 S1=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,E1=Math.PI*2;function A1(e){let t=S1.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 _1(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(E1*t*e)}function Dh(e,t){let n=A1(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=>_1(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var w1=24,Ih=e=>e>=1?1:0,C1=e=>e,Eo=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,R1=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${Eo}\\s*,\\s*${Eo}\\s+${Eo}\\s*,\\s*${Eo}\\s+1\\s*,\\s*1\\s*$`,"i");function Ph(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function T1(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 u=0;u<w1;u+=1){let s=(o+a)/2;Ph(s,t,r)<e?o=s:a=s}return Ph((o+a)/2,n,i)}function k1(e){let t=R1.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=>T1(a,n,r,i,o)}function M1(e,t){if(!e.startsWith("spring("))return null;let n=Lh(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>Nh(o,n);return t.set(n,i),i}function F1(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=k1(n);return i&&t.set(n,i),i}function Oh(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"?Ih:Dh(s,i)??M1(s,r)??F1(s,n),a=(s,l,d=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ge("custom_ease_parse_failed",{ease:s}),t.call(l,s,...d)??C1)};e.parseEase=function(l,...d){return a(l,this,d)};let u=e.registerEase;if(typeof u=="function"){u("hold",Ih);let s=l=>{let d=m=>m;d.config=(...m)=>a(`${l}(${m.join(",")})`,e),u(l,d)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var L1="first-frame",N1=3;function D1(e){let t=e.ownerDocument?.defaultView;return t&&e instanceof t.Element?!0:e instanceof Element}function I1(e){if(!D1(e)||e.tagName!=="AUDIO"&&e.tagName!=="VIDEO")return!1;let t=e.ownerDocument?.defaultView;return t&&e instanceof t.HTMLMediaElement?!0:e instanceof HTMLMediaElement}function P1(e){return e.hasAttribute("data-start")||e.hasAttribute("data-track-index")}function O1(e,t,n){let r=e;for(;r;){if(P1(r)&&!pr(r,{currentTime:0,compositionDuration:Number.POSITIVE_INFINITY,canonicalFps:30,exportRenderSeek:!1,timelineRegistry:n,resolver:t}))return!1;r=r.parentElement}return!0}function Hh(e,t,n,r){return t==="all"?!0:O1(e,n,r)}function H1(e,{scope:t="all"}={}){let n=e.defaultView,r=Ue({documentRef:e,timelineRegistry:n?.__timelines,includeAuthoredTimingAttrs:!0}),i=Array.from(e.querySelectorAll("video, audio")).filter(I1).filter(u=>Hh(u,t,r,n?.__timelines??{})).filter(u=>u.readyState<N1),o=Array.from(e.querySelectorAll("img")).filter(u=>Hh(u,t,r,n?.__timelines??{})).filter(u=>!u.complete),a=e.fonts?.status==="loading";return{pendingMedia:i,pendingImages:o,fontsLoading:a}}function G1(e,{pendingMedia:t,pendingImages:n,fontsLoading:r},i){let o=t.map(s=>new Promise(l=>{if(s.error){l();return}let d=()=>{s.removeEventListener("canplay",d),s.removeEventListener("error",d),i.removeEventListener("abort",d),l()};s.addEventListener("canplay",d),s.addEventListener("error",d),i.addEventListener("abort",d,{once:!0})})),a=n.map(s=>s.decode?s.decode().catch(()=>{}):Promise.resolve()),u=r&&e.fonts?e.fonts.ready.then(()=>{}):Promise.resolve();return Promise.all([...o,...a,u]).then(()=>{})}function B1(e,t,{scope:n="all"}={}){let r=H1(e,{scope:n});return r.pendingMedia.length===0&&r.pendingImages.length===0&&!r.fontsLoading?null:G1(e,r,t)}var U1=50;function W1(e,t){let n=e.defaultView;return!n||n.__renderReady||!n.__hf?null:new Promise(r=>{let i,o=()=>{i!==void 0&&clearTimeout(i),t.removeEventListener("abort",o),r()};if(t.aborted){o();return}t.addEventListener("abort",o,{once:!0});let a=()=>{if(n.__renderReady){o();return}i=setTimeout(a,U1)};a()})}var V1=50,$1=2,z1=1500;function Tu(e,t){return new Promise(n=>{if(t.aborted){n(-1);return}let r=0,i=()=>{e.cancelAnimationFrame?.(r),n(-1)};t.addEventListener("abort",i,{once:!0}),r=e.requestAnimationFrame(o=>{t.removeEventListener("abort",i),n(o)})})}function q1(e,t){let n=e.defaultView;return n?(async()=>{let r=await Tu(n,t);if(t.aborted)return;let i=await Tu(n,t),o=0;for(;!t.aborted&&o<$1;){if(i-r>=z1)return;let a=await Tu(n,t);if(t.aborted)return;o=a-i<V1?o+1:0,i=a}})():null}var j1=8e3;function K1(e,t,n={}){let r=n.inputs??[(l,d)=>B1(l,d,{scope:n.scope}),W1,q1],i=new AbortController,o=r.map(l=>l(e,i.signal)).filter(l=>l!==null);if(o.length===0){t({timedOut:!1});return}let a=n.timeoutMs??j1,u,s=new Promise(l=>{u=setTimeout(()=>l("timed-out"),a)});Promise.race([Promise.all(o).then(()=>"done"),s]).then(l=>{clearTimeout(u),i.abort(),t({timedOut:l==="timed-out"})})}function Gh(e,t,n={}){K1(e,t,{...n,scope:L1})}var Fu=new Map,jr=new Map,ku=new Map,Mu=()=>{},Uh=()=>{},Bh=0;function Lu(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function Wh(e){let t=(ku.get(e)??0)+1;return ku.set(e,t),t}function Vh(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:(Bh-=1,Bh)}function Nu(e,t){let n=jr.get(e);if(!n)return;let r=()=>ku.get(e)===t.generation&&jr.get(e)===n;try{Promise.resolve(n(t.payload)).then(()=>{r()&&Uh(e,t.requestId)},i=>{r()&&Mu(e,t.requestId,i)})}catch(i){r()&&Mu(e,t.requestId,i)}}function $h(e){Mu=e}function zh(e){Uh=e}function Ao(e,t,n){if(!Lu(e))return;let r={payload:t,requestId:Vh(n),generation:Wh(e)};Fu.set(e,r),Nu(e,r)}function _o(e,t){Lu(e)&&(Fu.delete(e),Nu(e,{payload:void 0,requestId:Vh(t),generation:Wh(e)}))}function qh(e,t){if(!Lu(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);jr.set(e,t);let n=Fu.get(e);return n&&Nu(e,n),()=>{jr.get(e)===t&&jr.delete(e)}}var jh=!1;function ct(e){if(e){if(typeof e.pause!="function"){jh||(jh=!0,Ge("timeline_missing_pause",{}));return}try{e.pause()}catch(t){I("runtime.timeline.pause",t)}}}function J1(){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 Q1(e,t){return t!==null&&e.length===t.length&&e.every((n,r)=>n===t[r])}function Kh(e,t,n){let r=null,i=!0;return()=>{let o=e();if(o.length===0)return r=null,i=!0,!0;if(Q1(o,r))return i;r=o,i=!1;let a=o.length===1?o[0]:Promise.all(o);return Promise.resolve(a).then(()=>{r===o&&(i=!0,t())},u=>{r===o&&(i=!0,n(u),t())}),i}}var Z1=1e3;function Xh(){let e=Gd(),t=()=>{};Dl(xe),$h((c,h,b)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)})}),zh((c,h)=>{try{t()}catch(b){xe({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)});return}xe({source:"hf-preview",type:"runtime-data-applied",channel:c,requestId:h})}),ao(document),js(document),Xc(document);let n=J1();if(e.canonicalFps=n.fps??e.canonicalFps,kl(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG){let c=JSON.stringify({canonicalFps:e.canonicalFps,source:n.source,rawFpsSource:n.rawFpsSource,rawFps:n.rawFps,fallbackReason:n.fallbackReason});console.info(`[hyperframes] render runtime fps ${c}`)}let r=null,i=null,o=null,a=[],u=new Set,s=null,l=new Set,d=(c,h,b)=>{l.has(c)||(l.add(c),Ge(h,b))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(c){I("runtime.init.site1",c)}let m=new xo;e.transportClock=m;let f=new So,p=!1;f.init().then(c=>{p=c}),window.__hf=window.__hf||{};let g=c=>c.closest("[data-hidden]")!==null||Li(c.ownerDocument,c),y=()=>{let c=window.gsap,h=window;if(!(!c?.registerPlugin||h.__hfAutoNoopRegistered))try{c.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(b){d("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),I("runtime.autoMarker.install",b)}},x=()=>{let c=window.gsap;if(!c){d("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{Oh(c)||d("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){d("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),I("runtime.customEase.install",h)}};y(),x(),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{Ul(document)}catch(c){I("runtime.init.cssVariables",c)}window.__timelines=window.__timelines||{};let A=()=>{let c=document.querySelector(\'[data-composition-id][data-root="true"]\');if(pe(c))return c;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(b=>!b.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let c=window.__timelines,h=A()?.getAttribute("data-composition-id")??"root",b={};if(c.length===1)b[h]=c[0];else for(let v=0;v<c.length;v++)b[`tl-${v}`]=c[v];window.__timelines=b}let M=A();M&&!M.hasAttribute("data-start")&&M.setAttribute("data-start","0");let C=c=>{a.push(c)},L=(c,h,b)=>{let v=b??`${c}:${JSON.stringify(h)}`;u.has(v)||(u.add(v),xe({source:"hf-preview",type:"diagnostic",code:c,details:h}))},B=c=>{let h={scale:1,focusX:960,focusY:540},b=[],v=[],E={time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:c.play,pause:c.pause,seek:c.seek,getTime:c.getTime,getDuration:c.getDuration,isPlaying:c.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>b,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:c.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>v,getRenderState:()=>({...E,time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying()})}},F=1/60,w=.75,_=.05,T=100,N=240,W=c=>{if(c instanceof Error)return c.message||String(c);if(typeof c=="string")return c;try{return JSON.stringify(c)}catch{return String(c??"")}},X=c=>{let h=c.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"}},Y=c=>{if(c==null||c.trim()==="")return null;let h=Number.parseFloat(c);return!Number.isFinite(h)||h<=0?null:`${h}px`},R=()=>A(),S=()=>{let c=R();if(!c)return;let h=Y(c.getAttribute("data-width")),b=Y(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b),h&&c.style.setProperty("--comp-width",h),b&&c.style.setProperty("--comp-height",b),h&&(document.documentElement.style.width=h),b&&(document.documentElement.style.height=b),h&&(document.body.style.width=h),b&&(document.body.style.height=b)},H=()=>{let c=R(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(b=>b.hasAttribute("data-duration")||b.hasAttribute("data-end"));for(let b of h){if(c&&b===c)continue;let v=b.getAttribute("data-duration"),E=b.getAttribute("data-end");v!=null&&!b.hasAttribute(cn)&&b.setAttribute(cn,v),E!=null&&!b.hasAttribute(dn)&&b.setAttribute(dn,E),b.removeAttribute("data-duration"),b.removeAttribute("data-end")}},q=()=>{let c=R();if(!c)return;c.style.position||(c.style.position="relative"),c.style.overflow="hidden";let h=Y(c.getAttribute("data-width")),b=Y(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b);let v=Array.from(c.children);for(let E of v){let D=E.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let k=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",K=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(k&&K&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let Q=E.style.top,we=E.style.left,Wt=E.style.width,Fe=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let et=window.getComputedStyle(E);et.top!=="auto"||et.bottom!=="auto"||et.left!=="auto"||et.right!=="auto"||et.width!=="0px"||et.height!=="0px"||(E.style.top=Q,E.style.left=we,E.style.width=Wt,E.style.height=Fe)}let z=window.getComputedStyle(E),re=z.position;if(re!=="absolute"&&re!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||z.top!=="auto"||z.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||z.left!=="auto"||z.right!=="auto"||(E.style.left="0"),D!=="audio"){let Q=Y(E.getAttribute("data-width")),we=Y(E.getAttribute("data-height")),Wt=z.width!=="0px"&&z.width!=="auto",Fe=z.height!=="0px"&&z.height!=="auto";Q?!E.style.width&&!Wt&&(E.style.width=Q):!E.style.width&&z.width==="0px"&&(E.style.width="100%"),we?!E.style.height&&!Fe&&(E.style.height=we):!E.style.height&&z.height==="0px"&&(E.style.height="100%")}}},U=c=>Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:c}),V=null,$=c=>{let h=V;V=U(!0);try{return c()}finally{V=h}},G=c=>c&&V?V:U(c),P=(c,h=0,b)=>G(b?.includeAuthoredTimingAttrs??!0).resolveStartForElement(c,h),O=(c,h)=>G(h?.includeAuthoredTimingAttrs??!0).resolveDurationForElement(c),Z=c=>{let h=c.closest("[data-composition-id]"),b=h?P(h,0):null,v=h?O(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:b,inheritedDuration:v}},te=c=>G(!0).resolveMediaStartForElement(c);window.__hfResolveMediaStartSeconds=te,a.push(()=>{window.__hfResolveMediaStartSeconds===te&&delete window.__hfResolveMediaStartSeconds});let ne=!!document.querySelector("[data-composition-src]"),j=!1;{let c=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of c){let b=h.getAttribute("data-composition-id");if(b&&h.children.length===0&&document.querySelector(`template#${CSS.escape(b)}-template`)){j=!0;break}}}let J=!ne&&!j,Ee=c=>{if(!c||typeof c.duration!="function")return null;try{let h=Number(c.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},de=c=>typeof c=="number"&&Number.isFinite(c)&&c>F,Dn=()=>{let c=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));return c.length===0?null:$(()=>{let h=[];for(let v of c){let E=te(v);if(!Number.isFinite(E))continue;let D=ki(v);D==null||D<=F||h.push(Math.max(0,E)+D)}let{seconds:b}=hr({authoredDurationSeconds:null,clipEndsSeconds:h});return b!==null&&b>F?b:null})},dt=()=>{let c=R();if(!c)return null;let h=window.__timelines??{},b=Ue({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),v=Me(c.getAttribute("data-duration")),E=[],D=Array.from(c.querySelectorAll("[data-composition-id][data-start]"));for(let K of D){if(!ke(K)||K.parentElement?.closest("[data-composition-id]")!==c)continue;let re=b.resolveStartForElement(K,0),ve=b.resolveDurationForElement(K);!Number.isFinite(re)||ve==null||ve<=0||E.push(Math.max(0,re)+ve)}let{seconds:k}=hr({authoredDurationSeconds:null,clipEndsSeconds:[v,...E]});return k!==null&&k>F?k:null},F0=c=>c.hasAttribute("data-composition-id")||c.hasAttribute("data-composition-src"),L0=c=>{let h=window;return!!(h.lottie||h.DotLottie||c.querySelector("[data-lottie-src]"))},Vu=()=>{let c=R();if(!c)return hr({authoredDurationSeconds:null,clipEndsSeconds:[]});let h=Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:!0}),b=[];for(let E of Array.from(c.querySelectorAll("[data-start]"))){if(!ke(E))continue;let D=h.resolveStartForElement(E,0);if(!Number.isFinite(D))continue;let k=h.resolveDurationForElement(E);k!=null?b.push(Math.max(0,D)+k):(ge(E)||F0(E))&&b.push(null)}L0(c)&&b.push(null);let v=hr({authoredDurationSeconds:null,clipEndsSeconds:b});return v.pendingClips>0?{...v,seconds:null,source:"unresolved",reason:"a clip\'s length is pending"}:v},Lo=null,N0=()=>{if(In)return Vu();let c=Pn();return Lo?.revision!==c&&(Lo={revision:c,result:Vu()}),Lo.result},D0=c=>{window.__hf=window.__hf||{},window.__hf.durationSource={source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},c.source==="derived"&&L("composition_duration_derived",{source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},`composition_duration_derived:${c.seconds}`)},I0=()=>{let c=Dn();return typeof c!="number"||!Number.isFinite(c)||c<=F?null:c},P0=c=>de(c)?Math.max(F,c*w):F,$u=()=>{let c=0;for(let h of e.deterministicAdapters){let b=h.getInferredDurationSeconds;if(typeof b!="function")continue;let v=null;try{v=b()}catch(E){I("runtime.init.adapterDuration",E)}typeof v=="number"&&Number.isFinite(v)&&v>0&&(c=Math.max(c,v))}return c>F?c:null},In=!1,zu=()=>In&&window.__HF_EXPORT_RENDER_SEEK_CONFIG!=null,O0=["data-start","data-duration","data-end","data-composition-id","data-composition-src","data-composition-file","data-root","data-hf-authored-duration","data-hf-authored-end","data-hf-auto-start",Mi,"data-playback-rate","data-automation","data-playback-start","data-media-start","id","src"],qu=["loadedmetadata","durationchange","emptied"],Yr=null,ju=-1,Ku=null,Ot=null,Xu=0,Ht=()=>{},Zt=()=>{Xu+=1,Ht()},Yu=()=>({media:I0(),authoredComposition:dt()}),H0=()=>{let c=window.__timelines??{},h="";for(let b of Object.keys(c)){let v=c[b];v&&(h+=`${b}=${Ee(v)??"?"};`)}return h},G0=()=>{if(!(Ot||typeof MutationObserver>"u")){Ot=new MutationObserver(Zt),Ot.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:O0});for(let c of qu)document.addEventListener(c,Zt,!0);a.push(()=>{Ot?.disconnect(),Ot=null,Zt();for(let c of qu)document.removeEventListener(c,Zt,!0)})}},Pn=()=>{G0(),Ot&&Ot.takeRecords().length>0&&Zt();let c=H0();return c!==Ku&&(Ku=c,Zt()),Xu},Ju=c=>In?Yu():(c??(c=Pn()),Yr&&ju===c||(ju=c,Yr=Yu()),Yr),ze=(c,h=0,b)=>{let v=Ee(c),{media:E,authoredComposition:D}=Ju(b),k=$u(),K=Math.max(E??0,D??0,k??0),z=Number.isFinite(h)&&h>F?h:0,re=0,ve=null;return de(v)?re=Math.max(v,K,z):de(K)?re=Math.max(K,z):z>0?re=z:(ve=N0(),re=ve.seconds??0),ve?D0(ve):window.__hf?.durationSource&&delete window.__hf.durationSource,re>0?Math.max(0,re):0},No=()=>{let c=window.__timelines??{},h=fe=>{let se=Object.entries(c).filter(me=>!!me[1]&&typeof me[1].play=="function"&&typeof me[1].pause=="function");if(se.length!==1)return{timeline:null};let ie=se[0];if(!ie)return{timeline:null};let[Se,Ae]=ie;return{timeline:Ae,selectedTimelineIds:[Se],selectedDurationSeconds:Ee(Ae),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:fe,soleTimelineId:Se}}}},b=Ue({timelineRegistry:c,includeAuthoredTimingAttrs:!0}),{media:v,authoredComposition:E}=Ju(),D=Math.max(v??0,E??0)||null,k=P0(D),K=fe=>{let se=document.querySelector(`[data-composition-id="${CSS.escape(fe)}"]`);return se?b.resolveStartForElement(se,0):0},z=fe=>{let se=window.gsap;if(!se||typeof se.timeline!="function")return null;let ie=se.timeline({paused:!0});for(let Se of fe)ie.add(Se.timeline,K(Se.compositionId));return ie},re=(fe,se)=>{if(!de(fe))return null;let ie=window.gsap;if(!ie||typeof ie.timeline!="function")return null;let Se=ie.timeline({paused:!0});if(se)try{Se.add(se,0)}catch(me){I("runtime.init.site2",me)}let Ae=Se;if(typeof Ae.to=="function")try{Ae.to({},{duration:fe})}catch(me){I("runtime.init.site3",me)}return Se},ve=(fe,se)=>{if(!fe||typeof fe.getChildren!="function")return[];try{let ie=fe.getChildren(!0,!0,!0);return Array.isArray(ie)?se.filter(Se=>ie.includes(Se.timeline)):[]}catch{return[]}},Et=(fe,se)=>{let ie=fe,Se={addedIds:[],nested:[]};if(typeof ie.getChildren!="function")return Se;try{let Ae=ie.getChildren(!0,!0,!0)??[];if(!Array.isArray(Ae))return Se;let me=[];for(let _e of se)if(!Ae.some(ft=>ft===_e.timeline))try{let ft=K(_e.compositionId);fe.add(_e.timeline,ft),me.push(_e.compositionId)}catch(ft){I("runtime.init.site4",ft)}return{addedIds:me,nested:ve(fe,se)}}catch{return Se}},ae=R(),Q=ae?.getAttribute("data-composition-id")??null;if(!Q)return h("root_missing_composition_id");let we=c[Q]??null,Fe=(()=>{if(!ae)return[];let fe=new Set,se=Array.from(ae.querySelectorAll("[data-composition-id]")),ie=[];for(let Se of se){let Ae=Se.getAttribute("data-composition-id");if(!Ae||Ae===Q||fe.has(Ae))continue;fe.add(Ae);let me=c[Ae]??null;if(!me||typeof me.play!="function"||typeof me.pause!="function")continue;let _e=Ee(me);ie.push({compositionId:Ae,timeline:me,durationSeconds:_e??0})}return ie})(),et=fe=>{for(let se of fe){let ie=se.timeline;if(typeof ie.paused=="function")try{ie.paused(!1)}catch(Se){I("runtime.init.site5",Se)}}};if(we){let fe=Fe.length>0?Et(we,Fe):{addedIds:[],nested:[]},se=fe.addedIds;if(et(fe.nested),(Fe.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Q+"\'])"))&&(On=!0),se.length>0)try{let me=we.time();we.seek(me,!1)}catch{}let ie=Ee(we);if(!de(ie)&&Fe.length>0){let me=Fe.map(bg=>bg.compositionId),_e=z(Fe),tn=Ee(_e);if(_e&&de(tn))return et(ve(_e,Fe)),{timeline:_e,selectedTimelineIds:me,selectedDurationSeconds:tn,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:tn,mediaDurationFloorSeconds:v,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:me,autoNestedChildren:se}}};let ft=re(D??0,we),Xo=Ee(ft);if(ft&&de(Xo))return{timeline:ft,selectedTimelineIds:[Q],selectedDurationSeconds:Xo,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:v,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Xo,selectedTimelineIds:[Q],autoNestedChildren:se}}}}if(!de(ie)&&Fe.length===0){let me=re(D??0,we),_e=Ee(me);if(me&&de(_e))return{timeline:me,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:v,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:_e,selectedTimelineIds:[Q]}}}}let Se=Me(ae?.getAttribute("data-duration")),Ae=Math.max(de(Se)?Se:0,E??0);if(Ae>0&&de(Ae)&&de(ie)&&Ae>=ie+.5){let me=we;if(typeof me.to=="function")try{me.to({},{duration:0},Ae)}catch(tn){I("runtime.init.site6",tn)}let _e=Ee(we);if(de(_e))return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Q,rootDurationSeconds:ie,rootDeclaredDur:Se,authoredCompositionDurationFloorSeconds:E,newDur:_e}}}}return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:ie,mediaDurationFloorSeconds:v,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Q,selectedDurationSeconds:ie,autoNestedChildren:se}}:void 0}}if(Fe.length>0){let fe=Fe.map(Se=>Se.compositionId),se=z(Fe),ie=Ee(se);if(se)return et(ve(se,Fe)),{timeline:se,selectedTimelineIds:fe,selectedDurationSeconds:ie,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:ie,mediaDurationFloorSeconds:v,selectedTimelineIds:fe}}}}return h("root_composition_id_unmatched_in_registry")},On=!1,B0=c=>{let h=window.gsap,b=c;if(!(!b||typeof b.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let v of b.getChildren(!0,!0,!0)){let E=v,D=E.timeline;if(!D||!("_ease"in D)||typeof D._ease=="function")continue;let k=E.vars?.keyframes,z=(k&&!Array.isArray(k)?k.ease:void 0)??E.vars?.ease??"none";try{let re=h.parseEase(z);typeof re=="function"&&(D._ease=re)}catch(re){Ge("keyframe_ease_repair_failed",{ease:typeof z=="string"?z:String(z)}),I("runtime.keyframeEase.repair",re)}}},Hn=()=>{if(x(),!J)return!1;let c=e.capturedTimeline,h=Ee(c),b=de(h);if(c&&b&&On)return!1;let v=No();if(!v.timeline)return!1;if(c&&c===v.timeline)return typeof c.timeScale=="function"&&c.timeScale(e.playbackRate),!1;e.capturedTimeline=v.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),B0(e.capturedTimeline);let E=ze(e.capturedTimeline,0);if(E<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),ct(e.capturedTimeline)),E>0){try{m.setDuration(E)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let k=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(k,!1),ct(e.capturedTimeline)}let D=window.__hfStudioManualEditsApply;typeof D=="function"&&D(),ao(document)}if(v.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:v.diagnostics.code,details:v.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:v.selectedTimelineIds??[],selectedDurationSeconds:v.selectedDurationSeconds??null,mediaDurationFloorSeconds:v.mediaDurationFloorSeconds??null}}),window.parent!==window){let D=R(),k=E>0?E:0,K=String(k>0?k:1),z=new Set,re=ae=>ae.tagName.toLowerCase()===mn,ve=new Set(document.querySelectorAll("[data-start]")),Et=ae=>{let Q=ae.parentElement;for(;Q&&Q!==D;){if(ve.has(Q))return!0;Q=Q.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let ae of e.capturedTimeline.getChildren(!0))if(typeof ae.targets=="function")for(let Q of ae.targets())pe(Q)&&Q!==D&&(re(Q)||Q.hasAttribute("data-start")||Et(Q)||z.has(Q)||(z.add(Q),Q.setAttribute("data-start","0"),Q.setAttribute("data-duration",K),Q.setAttribute("data-hf-autostamped","1")))}catch{}if(pe(D))for(let ae of D.querySelectorAll("[id]"))pe(ae)&&ae!==D&&(ae.hasAttribute("data-start")||Et(ae)||z.has(ae)||ae.tagName==="SCRIPT"||ae.tagName==="STYLE"||ae.tagName==="LINK"||re(ae)||(z.add(ae),ae.setAttribute("data-start","0"),ae.setAttribute("data-duration",K),ae.setAttribute("data-hf-autostamped","1")))}for(let D of Gn)Jr.delete(D),il(D);return!0},Qu=()=>{if(e.tornDown)return;let c=No();if(!c.timeline){e.capturedTimeline=null,On=!1,m.setDuration(0),Bn(e.currentTime);return}e.capturedTimeline!==c.timeline&&(On=!1,Hn()),Bn(e.currentTime)};t=()=>{Qu(),vt()},window.__hfForceTimelineRebind=Qu;let U0=()=>{let c=R();if(!pe(c))return;let h=c.getBoundingClientRect(),b=Number(c.getAttribute("data-width")),v=Number(c.getAttribute("data-height")),E=window.getComputedStyle(c),D=Number.isFinite(b)&&b>0&&Number.isFinite(v)&&v>0,k=h.width<=0||h.height<=0||c.clientWidth<=0||c.clientHeight<=0;!D||!k||L("root_stage_layout_zero",{compositionId:c.getAttribute("data-composition-id")??null,declaredWidth:b,declaredHeight:v,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:c.clientWidth,clientHeight:c.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${c.getAttribute("data-composition-id")??"unknown"}`)},W0=()=>{e.tornDown||(s!=null&&window.cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{s=null,U0()}))},V0=()=>{i=c=>{let h=W(c.error??c.message).slice(0,N);if(!h)return;let b=X(h);xe({source:"hf-preview",type:"diagnostic",code:b.code,details:{category:b.category,message:h,filename:c.filename||null,line:Number.isFinite(c.lineno)?c.lineno:null,column:Number.isFinite(c.colno)?c.colno:null}})},o=c=>{let h=W(c.reason).slice(0,N);if(!h)return;let b=X(h);xe({source:"hf-preview",type:"diagnostic",code:`${b.code}_unhandled_rejection`,details:{category:`${b.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",o)},$0=()=>{let c=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let b of c){let v=()=>{if(!ke(b))return;let E=b.tagName.toLowerCase(),D=b.getAttribute("src")??b.getAttribute("href")??b.getAttribute("poster")??null,k=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";L(k,{tagName:E,assetUrl:D,currentSrc:(Le(b)||ge(b))&&b.currentSrc||null,readyState:ge(b)?b.readyState:null,networkState:ge(b)?b.networkState:null},`${k}:${E}:${D??"unknown"}`)};b.addEventListener("error",v),C(()=>{b.removeEventListener("error",v)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let b=Array.from(h).filter(v=>v.status==="error").map(v=>v.family).filter(v=>!!v).slice(0,10);b.length!==0&&L("runtime_font_load_issue",{failedFamilies:b,totalFaces:Array.from(h).length},`runtime-font-load-issue:${b.join("|")}`)}).catch(()=>{})},z0=(c,h)=>{if(!c.timeline)return!1;let b=e.capturedTimeline;if(b&&b===c.timeline)return!1;let v=Math.max(0,e.currentTime||0),E=e.isPlaying;e.capturedTimeline=c.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{ct(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(v,!1),E&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(D){I("runtime.init.site7",D)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:v,selectedTimelineIds:c.selectedTimelineIds??[],selectedDurationSeconds:c.selectedDurationSeconds??null,mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),!0},Gt=null,Zu=!1,Gn=new Set,Jr=new WeakMap,Qr=()=>{e.tornDown||(Gt!=null&&window.clearTimeout(Gt),Gt=window.setTimeout(()=>{if(e.tornDown||(Gt=null,zu()))return;let c=No();if(!c.timeline||!de(c.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){Hn()&&(vt(),Ie(!0));return}if(Zu)return;let b=Ee(e.capturedTimeline),v=c.selectedDurationSeconds??Ee(c.timeline);de(v)&&(!de(b)||v>=b+_)&&z0(c,"manual")&&(Zu=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:b??null,selectedDurationSeconds:v??null,selectedTimelineIds:c.selectedTimelineIds??[],mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),vt(),Ie(!0))},T))},el=c=>{ge(c.currentTarget)&&id(c.currentTarget)},tl=c=>{ge(c.currentTarget)&&od(c.currentTarget)},nl=c=>{na(c)&&wh(c)&&Mn(c,kn(c))},rl=c=>{let h=c.currentTarget;ge(h)&&nl(h)},q0=()=>{for(let c of Gn)c.removeEventListener("loadedmetadata",Qr),c.removeEventListener("durationchange",Qr),c.removeEventListener("loadedmetadata",el),c.removeEventListener("loadedmetadata",rl),c.removeEventListener("error",tl);Gn.clear()},Do=()=>{if(e.tornDown)return;let c=Array.from(document.querySelectorAll("video, audio"));for(let h of c){if(Gn.has(h))continue;Gn.add(h);let b=Number.parseFloat(h.dataset.volume??"");Number.isFinite(b)&&(h.volume=Math.max(0,Math.min(1,b))),h.addEventListener("loadedmetadata",Qr),h.addEventListener("durationchange",Qr),h.addEventListener("loadedmetadata",rl),nl(h),h.addEventListener("loadedmetadata",el),h.addEventListener("error",tl),rd(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),il(h)}},il=c=>{Jr.has(c)||Bc(c,e.capturedTimeline,ze(e.capturedTimeline,0),Jr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Io=new WeakMap,j0=c=>{let h=Io.get(c);if(h!==void 0)return h;let b=window.getComputedStyle(c).position,v=b==="static"||b==="relative"||b==="sticky";return Io.set(c,v),v},Po=new WeakMap,K0=c=>{let h=Po.get(c);if(h!==void 0)return h;let b=c.querySelector("[data-start]")===null;return Po.set(c,b),b},X0=()=>{Io=new WeakMap,Po=new WeakMap},Oo=new WeakSet,Ho=new WeakMap,Zr=new WeakSet,ei=!1,ol=c=>c.matches("audio[data-start]")||c.querySelector("audio[data-start]")!==null,al=new WeakMap,ti=!0,Y0=()=>{if(ti){ti=!1;for(let c of document.querySelectorAll(mn)){let h=c.hasAttribute("data-hidden");al.get(c)!==h&&(al.set(c,h),c.id&&f.setGroupMuted(c.id,h))}}},J0=(c,h,b)=>{let v=R(),E=ze(e.capturedTimeline,0,b),D=!1;for(let k of h){if(!pe(k))continue;if(k.hasAttribute("data-hidden")){Zr.has(k)||(Ho.set(k,k.style.getPropertyValue("display")),Zr.add(k),ol(k)&&(ei=!0),ti=!0),k.style.display="none",(he(k)||Le(k))&&r?.setSourceVisibility(k,!1);continue}if(Zr.has(k)){let z=Ho.get(k);z?k.style.display=z:k.style.removeProperty("display"),Ho.delete(k),Zr.delete(k),ol(k)&&(ei=!0),ti=!0}let K=pr(k,{currentTime:c,compositionDuration:E,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:G(!0)});if(K){let z=k.parentElement;for(;z&&z!==v;){if(pe(z)&&z.hasAttribute("data-start")&&!pr(z,{currentTime:c,compositionDuration:E,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:G(!0)})){K=!1;break}z=z.parentElement}}k.style.visibility=K?"visible":"hidden",!ge(k)&&!Le(k)&&(D=!0),(he(k)||Le(k))&&r?.setSourceVisibility(k,K),K?Oo.has(k)&&(k.style.removeProperty("display"),Oo.delete(k)):j0(k)&&K0(k)&&(k.style.display="none",Oo.add(k))}D&&Nl()&&r?.refresh(),ei&&m.isPlaying()&&(f.stopAll(),jo()),ei=!1,Y0()},Bn=(c,h=Array.from(document.querySelectorAll("[data-start]")),b)=>$(()=>J0(c,h,b)),Un=null,Wn=null,ni=[],sl=c=>c.hasAttribute("data-start")||!!Z(c).compositionRoot,Go=c=>Qc({elements:c,shouldIncludeElement:sl,resolveStartSeconds:h=>te(h),resolveDurationSeconds:h=>{let b=Z(h),v=te(h),E=b.inheritedStart!=null&&b.inheritedDuration!=null&&b.inheritedDuration>0?Math.max(0,b.inheritedStart+b.inheritedDuration-v):null,D=Number.isFinite(h.duration)?nt(h,h.duration):null,k=Me(h.dataset.duration),K=k!=null&&k>0?k:null;return Jc({isVideo:h.tagName==="VIDEO",sourceDuration:D,hostRemaining:E,explicitDuration:K})}}),Q0=()=>{let c=Pn();if(Un&&Un.revision===c)return Un;let h=Go().mediaClips;return Un={revision:c,clips:h,byStart:[...h].sort((b,v)=>b.start-v.start),byEnd:[...h].sort((b,v)=>b.end-v.end)},Wn=null,ni=[],Un},ul=(c,h,b,v)=>{let E=0,D=c.length;for(;E<D;){let K=E+D>>1;h(c[K])<b?E=K+1:D=K}let k=[];for(let K=E;K<c.length&&h(c[K])<=v;K+=1)k.push(c[K]);return k},Z0=(c,h)=>{let b=Wn;if(b===null)return c.clips.map(k=>k.el);let v=Math.min(b,h),E=Math.max(b,h),D=new Set;for(let k of ni)D.add(k.el);for(let k of ul(c.byStart,K=>K.start,v,E))D.add(k.el);for(let k of ul(c.byEnd,K=>K.end,v,E))D.add(k.el);return[...D]},ri=new WeakSet,ll=c=>{ri.add(c)},cl=c=>{ri.delete(c)};window.__hf.leasePausedMedia=ll,window.__hf.releasePausedMedia=cl,window.__hf.audioMeter={start:()=>f.startMetering(),stop:()=>f.stopMetering(),read:()=>f.readLevels()};let eg=()=>{for(let c of document.querySelectorAll("video, audio"))if(ge(c)&&!c.paused&&sl(c)&&!ri.has(c))return!0;return!1},dl=()=>Ht();document.addEventListener("play",dl,!0),a.push(()=>{document.removeEventListener("play",dl,!0)});let He=c=>{let h=!In,b=$(()=>{if(!h)return Go().mediaClips;let D=Q0();return Go(Z0(D,e.currentTime)).mediaClips});for(let D of b){let k=Jr.get(D.el);k&&(D.volumeKeyframes=k)}let v=e.isPlaying?b:b.filter(D=>!ri.has(D.el)),E=e.mediaForceSyncNextTick;E&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||(Zc({clips:v,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:E,getCompositionDuration:()=>ze(e.capturedTimeline,0,c),onElementVolume:(D,k,K)=>f.setElementVolume(D,K),isWebAudioOwned:D=>f.ownsElement(D),isWebAudioRouted:D=>f.routesElement(D),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),h?(Wn=e.currentTime,ni=b.filter(D=>At(e.currentTime,D.start,D.end))):(Wn=null,ni=[])),Bn(e.currentTime,void 0,c)},Ie=c=>{c&&Ht();let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),b=Date.now();(c||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||b-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=b,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Bo="",fl=!1,ml=!1,pl=0,tg=()=>{let c="";for(let h of document.querySelectorAll("[data-start]"))c+=`${h.id}:${h.tagName}|`;return c},vt=()=>{H(),S(),q();let c=R();if(c){let v=Y(c.getAttribute("data-width")),E=Y(c.getAttribute("data-height")),D=v?parseInt(v,10):0,k=E?parseInt(E,10):0;D>0&&k>0&&xe({source:"hf-preview",type:"stage-size",width:D,height:k})}Hn();let h=$d({canonicalFps:e.canonicalFps});window.__clipManifest=h;let b=tg();if(Bo!==b&&X0(),!window.__clipTree||Bo!==b){let v=window;window.__clipTree=Bd({startResolver:Ue({timelineRegistry:v.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:v.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Bo=b}xe({...h,assetsReady:ml}),fl||(fl=!0,Gh(document,({timedOut:v})=>{e.tornDown||(ml=!0,xe({source:"hf-preview",type:"assets-ready",timedOut:v}))})),W0()},Uo=c=>typeof c=="number"&&Number.isFinite(c)&&c>0?c:0,ng=c=>{let h=Uo(Number(c));if(h<=0)return;let b=R(),v=Uo(Me(b?.getAttribute("data-duration"))),E=Math.max(pl,Uo(m.getDuration()),v);h<=E||(pl=h,b?.setAttribute("data-duration",String(h)),m.setDuration(h),vt(),Ie(!0))},qe=(c,h=0)=>{for(let b of e.deterministicAdapters){try{c==="discover"&&b.discover(),c==="pause"&&b.pause(),c==="play"&&b.play&&b.play()}catch(v){I("runtime.init.site8",v)}if(c==="discover")try{b.seek({time:h,suppressEvents:!0})}catch(v){I("runtime.init.site9",v)}}},Bt=()=>{window.__renderReady=!1},rg=Kh(()=>{let c=[];for(let h of e.deterministicAdapters){let b=h.getReadyPromise;if(typeof b=="function")try{let v=b();v&&c.push(v)}catch(v){I("runtime.init.adapterReady",v)}}return c},()=>Bt(),c=>I("runtime.init.adapterReady",c)),ig=Kh(()=>{let c=window.__hf?.buildReady;return c?Object.values(c).filter(h=>h!=null&&typeof h.then=="function"):[]},()=>Bt(),c=>I("runtime.init.buildReady",c));if(J)Bs();else{let c={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:Y,onDiagnostic:({code:h,details:b})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:b})}};$m(c).then(()=>Vm(c)).finally(()=>{J=!0,Do(),$0(),Bs(),js(document),mu(document.body,e.canonicalFps),Bt()})}let ii=Id({postMessage:c=>xe(c)});ii.installPickerApi(),Bn(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let Ze=kp({lease:ll,release:cl});r=Ze,C(()=>{Ze.destroy(),r=null}),mu(document.body,e.canonicalFps);let Wo=c=>{let h=Number(c);!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 b=document.querySelectorAll("video, audio");for(let v of b)if(ge(v))try{v.playbackRate=e.playbackRate}catch(E){I("runtime.init.site10",E)}},hl={play:()=>{let c=e.capturedTimeline;if(m.isPlaying())return;let h=ze(c,0);if(h>0)m.setDuration(h),m.reachedEnd()&&(m.seek(0),e.currentTime=0,Ut(0));else{let b=R(),v=Number(b?.getAttribute("data-duration")??0);v>0&&m.setDuration(v)}ct(c),m.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,wl(m.now()),p&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&jo(),qe("play"),He(),Ze.redraw(),Ie(!0))},pause:()=>{if(!m.isPlaying())return;f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1,e.currentTime=m.now(),e.mediaForceSyncNextTick=!0,wl(e.currentTime);let c=e.capturedTimeline;ct(c),qe("pause"),He(),Ze.redraw(),Ie(!0)},seek:(c,h)=>{let b=Xa(Math.max(0,Number(c)||0),e.canonicalFps);f.stopAll(),m.detachAudioSource();let v=m.isPlaying();v&&m.pause(),m.seek(b),e.currentTime=m.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let E=e.capturedTimeline;if(ct(E),Ut(e.currentTime),qe("pause"),h?.keepPlaying&&v){hl.play();return}He(),Ze.redraw(),gu(e.currentTime),Ie(!0)},renderSeek:(c,h)=>{In=!0;let b=lr(Math.max(0,Number(c)||0),e.canonicalFps,h?.subFrameDivisions);f.stopAll(),m.detachAudioSource(),m.isPlaying()&&m.pause(),m.seek(b),e.currentTime=m.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,Ut(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),qe("pause"),He(),Ze.redraw(),gu(e.currentTime,{engineMode:!0}),Ie(!0)},getTime:()=>m.now(),getDuration:()=>{let c=m.getDuration();return Number.isFinite(c)?c:0},isPlaying:()=>m.isPlaying(),setPlaybackRate:c=>{Wo(c),m.setRate(e.playbackRate),Cl()},getPlaybackRate:()=>e.playbackRate},gl=ze(e.capturedTimeline,0);gl>0&&m.setDuration(gl);let je=Hd({getTimeline:()=>e.capturedTimeline,setTimeline:c=>{e.capturedTimeline=c},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:c=>{e.isPlaying!==c&&(e.mediaForceSyncNextTick=!0),e.isPlaying=c},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:Wo,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(c,h)=>{e.currentTime=Math.max(0,Number(c)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,He()},onStatePost:Ie,onDeterministicSeek:(c,h)=>{for(let b of e.deterministicAdapters)if(!(b.name==="gsap"&&e.capturedTimeline))try{b.seek({time:Number(c)||0,suppressEvents:h?.suppressEvents})}catch(v){I("runtime.init.site11",v)}},onDeterministicPause:()=>qe("pause"),onDeterministicPlay:()=>qe("play"),onRenderFrameSeek:()=>{Ze.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>ze(e.capturedTimeline,0),transport:hl});window.__player=B(je),window.__playerReady=!0,Ge("composition_loaded",{duration:je.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[Oc(),ql({resolveStartSeconds:c=>P(c,0)}),Kl(),Jl({resolveStartSeconds:c=>P(c,0)}),ec(),tc(),nc(),rc(),ic(),oc(),ac(),jl({getTimeline:()=>e.capturedTimeline})],lc(),cc(),window.__hfReseekGpu=c=>{let h=Math.max(0,Number(c)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,xi(h)},window.__hfWaitForSeekCompletion=sa,a.push(()=>{window.__hfWaitForSeekCompletion===sa&&delete window.__hfWaitForSeekCompletion}),V0(),Do(),qe("discover");let og=()=>{let c=e.capturedTimeline,h=Hn();e.capturedTimeline&&(h||e.capturedTimeline!==c||!je._timeline)&&(je._timeline=e.capturedTimeline);let b=ze(e.capturedTimeline,0);if(b>0&&m.setDuration(b),qe("discover",e.currentTime),!e.capturedTimeline){let v=window.__timelines??{},E=Object.keys(v).filter(D=>v[D]);if(E.length>0){let k=R()?.getAttribute("data-composition-id")??null;L("root_timeline_unbound_registry_present",{reason:k?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:k,registeredTimelineKeys:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(k?`Root data-composition-id is "${k}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${k??"<root-id>"}"] = tl).`)}}Bn(e.currentTime,Array.from(document.querySelectorAll("[data-start]:not(video, audio, img)"))),window.__renderReady=!0,vt(),Ie(!0)},en=null,ag=()=>{if(en)return;let c=()=>{window.removeEventListener("hf-timelines-built",c),en=null,Bt()};en=c,window.addEventListener("hf-timelines-built",c)};C(()=>{en&&(window.removeEventListener("hf-timelines-built",en),en=null)}),Bt=()=>{if(!J){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,ag();return}if(qe("discover",e.currentTime),!rg()){window.__renderReady=!1;return}if(!ig()){window.__renderReady=!1;return}og()},Bt(),J&&setTimeout(()=>{Bt()},0);let oi=0,ai=!1,Vo=Number.NaN,$o=null,si=!1,St=null,bl=!1,ui=!1,xl="",yl=-1,li=!1,vl=Number.NEGATIVE_INFINITY,sg=(c,h,b,v)=>{try{let E=v?.suppressEvents===!0;ct(c),typeof c.totalTime=="function"?c.totalTime(h,E):c.seek(h,E)}catch(E){I(b,E)}},ug=(c,h)=>{let b=window.__timelines??{},v=R()?.getAttribute("data-composition-id")??null;for(let[E,D]of Object.entries(b)){if(!D||E===v)continue;let k=document.querySelector(`[data-composition-id="${CSS.escape(E)}"]`);if(!k)continue;let K=P(k,0);if(!Number.isFinite(K))continue;let z=Ee(D),re=rt(k)+Ri(Rt(k),Math.max(0,c-K)),ve=Math.max(0,z!=null&&z>0?Math.min(z,re):re);sg(D,ve,"runtime.init.transport.childTimeline",h)}},lg=c=>{let h=window.__timelines??{},b=[];for(let v of Object.values(h))if(!(!v||v===c)){b.push(v);try{v.play()}catch(E){I("runtime.init.activateSiblings",E)}}return b},Sl=c=>typeof c=="object"&&c!==null,Vn=new WeakMap,cg=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],El=(c,h)=>{let b=c[h];if(typeof b!="function")return null;try{let v=Number(b.call(c));return Number.isFinite(v)?v:null}catch(v){return I("runtime.init.gsapCallbackDuration",v),null}},dg=c=>{let h=Vn.get(c);if(h!=null)return h;if(!("getChildren"in c)||typeof c.getChildren!="function")return!1;let b;try{b=c.getChildren(!0,!0,!0)}catch(v){return I("runtime.init.gsapCallbackChildren",v),Vn.set(c,!1),!1}if(!Array.isArray(b))return Vn.set(c,!1),!1;for(let v of b){if(!Sl(v))continue;let E=v.vars;if(!Sl(E)||!cg.some(z=>typeof E[z]=="function"))continue;let K=El(v,"totalDuration")??El(v,"duration");if(K!=null&&K<=1e-6)return Vn.set(c,!0),!0}return Vn.set(c,!1),!1};function Ut(c,h){let b=e.capturedTimeline,v=b&&h?.activateChildren?lg(b):[];try{fg(b,c,h)}finally{for(let E of v)ct(E)}}function fg(c,h,b){let v=b?.suppressEvents===!0;if(c){let E=c,D=h;if(typeof E.totalDuration=="function")try{let k=Number(E.totalDuration());Number.isFinite(k)&&k>0&&h>k&&(D=k)}catch(k){I("runtime.init.transport.clampDuration",k)}try{typeof c.totalTime=="function"?(c.totalTime(D,v),!v&&!dg(c)&&(c.totalTime(D+.001,!0),c.totalTime(D,!0))):c.seek(D,v)}catch(k){I("runtime.init.transport.seek",k)}}ug(h,b);for(let E of e.deterministicAdapters)if(!(E.name==="gsap"&&c))try{E.seek({time:h,suppressEvents:v})}catch(D){I("runtime.init.transport.adapter",D)}}let zo=Th(document,()=>{Ht()});a.push(()=>zo.disconnect());let mg=()=>{try{return zo.isActive()}catch{return!1}},pg=()=>!m.isPlaying()&&!zu()&&zo.observing&&!si&&!li&&e.currentTime===Vo&&e.capturedTimeline===$o,Al=()=>`${Pn()}|${$u()??""}`,_l=()=>{St=window.setTimeout(hg,bl&&e.capturedTimeline&&On?Z1:e.bridgeMaxPostIntervalMs)},hg=()=>{if(St=null,!e.tornDown&&!(typeof window>"u"||typeof document>"u")){if(Al()!==xl){Ht();return}Ie(!1),_l()}},gg=()=>{if(e.transportRafId=null,e.tornDown)return;let c=ui;if(ui=!1,c||!pg()){e.transportRafId=window.requestAnimationFrame(qo);return}xl=Al(),_l()};Ht=()=>{e.tornDown||(ui=!0,!(ai||e.transportRafId!=null)&&(St!=null&&(window.clearTimeout(St),St=null),ui=!1,e.transportRafId=window.requestAnimationFrame(qo)))};let qo=()=>{if(!(e.tornDown||ai)){ai=!0;try{oi+=1;let c=Pn();c!==yl&&(yl=c,li=!0);let h=Date.now(),b=li&&!m.isPlaying()&&h-vl>=kh;if(b&&(vl=h),Mh({tick:oi,isPlaying:m.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:m.now(),compositionChanged:b})){let k=e.capturedTimeline;if(Hn()){e.capturedTimeline&&!je._timeline&&(je._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==k&&ct(e.capturedTimeline);let K=ze(e.capturedTimeline,0,c);K>0&&m.setDuration(K),vt()}}if((b||oi%20===0)&&(vt(),li=!1),(b||oi%30===0)&&Do(),e.capturedTimeline){let k=ze(e.capturedTimeline,0,c);k>0&&(!m.isPlaying()||k>=m.getDuration())&&m.setDuration(k)}if(m.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f.ownsClock()&&f.context){let k=f.getTime();k>=0&&m.attachAudioSource({currentTimeSeconds:k})}else{let k=document.querySelectorAll("audio[data-start]"),K=!1;for(let z of k){if(!ge(z)||!z.isConnected||g(z))continue;let re=te(z),ve=Me(z.dataset.duration),Et=ve!=null&&ve>0?re+ve:1/0,ae=rt(z);if(Number.isFinite(re)&&At(e.currentTime,re,Et)){z.paused?!z.error&&z.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(m.attachAudioSource({currentTimeSeconds:e.currentTime}),K=!0):(m.attachAudioSource({el:z,compositionStart:re,mediaStart:ae,rate:Rt(z)}),K=!0);break}}!K&&m.hasAudioSource()&&m.detachAudioSource()}else m.hasAudioSource()&&m.detachAudioSource();let v=m.now();e.currentTime=v;let E=m.isPlaying();if(!E&&mg()?si=!0:(E||si||v!==Vo||e.capturedTimeline!==$o)&&(Ut(v),Vo=v,$o=e.capturedTimeline,E||(si=!1)),E&&Ze.redrawAnimated(),m.isPlaying()&&m.reachedEnd()){f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1;let k=m.getDuration();Number.isFinite(k)&&(m.seek(k),e.currentTime=k,Ut(k)),qe("pause"),He(c),Ie(!0);return}m.isPlaying()?He(c):eg()&&(Wn=null,He(c)),Ie(!1)}finally{ai=!1,gg()}}},wl=c=>{let h=document.querySelectorAll("video, audio");for(let b of h){if(!ge(b)||!b.isConnected||!b.hasAttribute("data-start"))continue;let v=te(b);if(!Number.isFinite(v))continue;let E=Me(b.dataset.duration),D=E!=null&&E>0?v+E:1/0;if(!At(c,v,D))continue;let k=rt(b),K=c-v+k;if(K>=0)try{b.currentTime=K}catch{}}},jo=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let c=f.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let b of h){if(!ge(b)||!b.isConnected||g(b))continue;let v=te(b);if(!Number.isFinite(v))continue;let E=rt(b),D=Number.parseFloat(b.dataset.volume??""),k=Number.isFinite(D)?D:1,K=Me(b.dataset.duration),z=K!=null&&K>0?K:Number.POSITIVE_INFINITY,re=b.closest("[data-composition-id]");if(re){let ae=P(re,0),Q=O(re,{includeAuthoredTimingAttrs:!0});Q!=null&&Q>0&&(z=Math.min(z,Math.max(0,ae+Q-v)))}let ve=kn(b);if(Mn(b,ve),typeof Rt(b)!="number")continue;(ve.kind==="web-audio"?f.scheduleMediaElementPlayback(b,v,E,m.now(),k,c,e.playbackRate):Promise.resolve(null)).then(ae=>{if(ae||!m.isPlaying())return;let Q=e.playbackRate*Pe(b),we=b.hasAttribute("data-fx-chain")||b.hasAttribute("data-automation");if(Math.abs(Q-1)>1e-9){ve.kind==="web-audio"&&we&&(b.muted=!0);return}f.decodeAudioElement(b).then(Wt=>{!Wt||!m.isPlaying()||f.schedulePlayback(b,Wt,v,E,m.now(),k,c,e.playbackRate,z)})})}};function Cl(){f.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&p&&m.isPlaying()&&f.hasBoundedActiveSources()&&(f.stopAll(),jo())}if(e.capturedTimeline){let c=ze(e.capturedTimeline,0);c>0&&m.setDuration(c),ct(e.capturedTimeline)}Ym(window),e.transportRafId=window.requestAnimationFrame(qo),vt(),Ie(!0),e.controlBridgeHandler=Ml({onPlay:()=>{je.play(),Ge("composition_played",{time:je.getTime()})},onPause:()=>{je.pause(),Ge("composition_paused",{time:je.getTime()})},onStopMedia:()=>{f.stopAll();let c=document.querySelectorAll("video, audio");for(let h of c)ge(h)&&!h.paused&&h.pause()},onSeek:(c,h)=>{je.seek(c),Ge("composition_seeked",{time:c})},onSetMuted:c=>{e.bridgeMuted=c;let h=c||e.mediaOutputMuted;f.setMuted(h);let b=document.querySelectorAll("video, audio");for(let v of b)ge(v)&&(v.muted=h||v.defaultMuted)},onSetVolume:c=>{e.bridgeVolume=c,f.setVolume(c);let h=document.querySelectorAll("video, audio");for(let b of h){if(!ge(b))continue;let v=parseFloat(b.dataset.volume??""),E=Number.isFinite(v)?v:1;b.volume=Si(E*c)}},onSetMediaOutputMuted:c=>{e.mediaOutputMuted=c;let h=c||e.bridgeMuted;f.setMuted(h);let b=document.querySelectorAll("video, audio");for(let v of b)ge(v)&&(v.muted=h||v.defaultMuted)},onSetNativeMediaSyncDisabled:c=>{e.nativeMediaSyncDisabled!==c&&(e.nativeMediaSyncDisabled=c,e.mediaForceSyncNextTick=!0,c?(f.stopAll(),m.detachAudioSource()):He())},onSetWebAudioMediaDisabled:c=>{e.webAudioMediaDisabled!==c&&(e.webAudioMediaDisabled=c,e.mediaForceSyncNextTick=!0,c&&(f.stopAll(),m.detachAudioSource()),He())},onSetPlaybackRate:c=>{Wo(c),e.transportClock&&e.transportClock.setRate(e.playbackRate),Cl()},onSetIdleHeartbeat:c=>{bl=c,Ht()},onSetRootDuration:ng,onSetColorGrading:(c,h)=>{Ze.setGrading(c,h)},onSetColorGradingCompare:(c,h)=>{Ze.setCompare(c,h)},onTick:()=>{if(e.tornDown||!m.isPlaying())return;let c=m.now();if(e.currentTime=c,Ut(c),m.reachedEnd()){f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1;let h=m.getDuration();Number.isFinite(h)&&(m.seek(h),e.currentTime=h,Ut(h)),qe("pause"),He(),Ie(!0)}},onEnablePickMode:()=>ii.enablePickMode(),onDisablePickMode:()=>ii.disablePickMode(),onSetRuntimeData:Ao,onClearRuntimeData:_o,getCanonicalFps:()=>e.canonicalFps});let Ko=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),St!=null&&(window.clearTimeout(St),St=null),e.transportClock=null,f.destroy(),Gt!=null&&(window.clearTimeout(Gt),Gt=null),s!=null&&(window.cancelAnimationFrame(s),s=null),q0(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),o&&(window.removeEventListener("unhandledrejection",o),o=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),ii.disablePickMode();for(let c of e.deterministicAdapters)if(!(!c||typeof c.revert!="function"))try{c.revert()}catch(h){I("runtime.init.site12",h)}e.deterministicAdapters=[],window.__hf?.buildReady&&(window.__hf.buildReady={});for(let c of a.splice(0))try{c()}catch(h){I("runtime.init.site13",h)}for(let c of e.injectedCompStyles)try{c.remove()}catch(h){I("runtime.init.site14",h)}e.injectedCompStyles=[];for(let c of e.injectedCompLinks)try{c.remove()}catch(h){I("runtime.init.site15",h)}e.injectedCompLinks=[];for(let c of e.injectedCompScripts)try{c.remove()}catch(h){I("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,t=()=>{},window.__hfRuntimeTeardown===Ko&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Ko,e.beforeUnloadHandler=Ko,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Yh=["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"],Du=[[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 e_(e){if(e<=255)return Yh[e];let t=0,n=Du.length-1;for(;t<=n;){let r=t+n>>1,i=Du[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function t_(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let l=0;l<t;){let d=e.charCodeAt(l),m=d,f=1;if(d>=55296&&d<=56319&&l+1<t){let g=e.charCodeAt(l+1);g>=56320&&g<=57343&&(m=(d-55296<<10)+(g-56320)+65536,f=2)}let p=e_(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let g=0;g<f;g++)n[l+g]=p;l+=f}if(!r)return null;let i=0;for(let l=0;l<t;l++){let d=n[l];if(d==="L"){i=0;break}if(d==="R"||d==="AL"){i=1;break}}let o=new Int8Array(t);for(let l=0;l<t;l++)o[l]=i;let a=i&1?"R":"L",u=a,s=u;for(let l=0;l<t;l++)n[l]==="NSM"?n[l]=s:s=n[l];s=u;for(let l=0;l<t;l++){let d=n[l];d==="EN"?n[l]=s==="AL"?"AN":"EN":(d==="R"||d==="L"||d==="AL")&&(s=d)}for(let l=0;l<t;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<t-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<t;l++){if(n[l]!=="EN")continue;let d;for(d=l-1;d>=0&&n[d]==="ET";d--)n[d]="EN";for(d=l+1;d<t&&n[d]==="ET";d++)n[d]="EN"}for(let l=0;l<t;l++){let d=n[l];(d==="WS"||d==="ES"||d==="ET"||d==="CS")&&(n[l]="ON")}s=u;for(let l=0;l<t;l++){let d=n[l];d==="EN"?n[l]=s==="L"?"L":"EN":(d==="R"||d==="L")&&(s=d)}for(let l=0;l<t;l++){if(n[l]!=="ON")continue;let d=l+1;for(;d<t&&n[d]==="ON";)d++;let m=l>0?n[l-1]:u,f=d<t?n[d]:u,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let y=l;y<d;y++)n[y]=p;l=d-1}for(let l=0;l<t;l++)n[l]==="ON"&&(n[l]=a);for(let l=0;l<t;l++){let d=n[l];(o[l]&1)===0?d==="R"?o[l]++:(d==="AN"||d==="EN")&&(o[l]+=2):(d==="L"||d==="AN"||d==="EN")&&o[l]++}return o}function Jh(e,t){let n=t_(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 n_=/[ \\t\\n\\r\\f]+/g,r_=/[\\t\\n\\r\\f]| {2,}|^ | $/;function i_(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function o_(e){if(!r_.test(e))return e;let t=e.replace(n_," ");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 a_(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var Iu=null,s_;function u_(){return Iu===null&&(Iu=new Intl.Segmenter(s_,{granularity:"word"})),Iu}var l_=/\\p{Script=Arabic}/u,wo=/\\p{M}/u,o0=/\\p{Nd}/u;function Qh(e){return l_.test(e)}function Zh(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 Qe(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(Zh(i))return!0;t++;continue}}if(Zh(n))return!0}}return!1}function c_(e){let t=To(e);return t!==null&&(Ro.has(t)||Dt.has(t))}var d_=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function f_(e){return Qe(e)}function m_(e){let t=To(e);return t!==null&&d_.has(t)}function Co(e){return!c_(e)&&!m_(e)}var Ro=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"]),Xr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ou=new Set(["\'","\\u2019"]),Dt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),p_=new Set([":",".","\\u060C","\\u061B"]),h_=new Set(["\\u104F"]),g_=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function b_(e){if(Hu(e))return!0;let t=!1;for(let n of e){if(Dt.has(n)){t=!0;continue}if(!(t&&wo.test(n)))return!1}return t}function x_(e){for(let t of e)if(!Ro.has(t)&&!Dt.has(t))return!1;return e.length>0}function y_(e){if(Hu(e))return!0;for(let t of e)if(!Xr.has(t)&&!Ou.has(t)&&!wo.test(t))return!1;return e.length>0}function Hu(e){let t=!1;for(let n of e)if(!(n==="\\\\"||wo.test(n))){if(Xr.has(n)||Dt.has(n)||Ou.has(n)){t=!0;continue}return!1}return t}function a0(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 To(e){if(e.length===0)return null;let t=a0(e,e.length);return e.slice(t)}function v_(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(wo.test(r)){n--;continue}if(Xr.has(r)||Ou.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function S_(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function e0(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 u=i.repeat(a);return e[r]=u,u}function t0(e,t){return e&&t!==null&&p_.has(t)}function E_(e){let t=To(e);return t!==null&&h_.has(t)}function A_(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 ko(e){let t=e.length;for(;t>0;){let n=a0(e,t),r=e.slice(n,t);if(g_.has(r))return!0;if(!Dt.has(r))return!1;t=n}return!1}function __(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 w_=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function $e(e){return e.length===1?e[0]:e.join("")}function C_(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),$e(n)}function R_(e,t,n,r){if(!w_.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],u=n,s=!1,l=0;for(let d of e){let m=__(d,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(d),l+=d.length;continue}o!==null&&i.push({text:$e(a),isWordLike:s,kind:o,start:u}),o=m,a=[d],u=n+l,s=f,l+=d.length}return o!==null&&i.push({text:$e(a),isWordLike:s,kind:o,start:u}),i}function Pu(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var T_=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function k_(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:T_.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function M_(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function F_(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"||!k_(e,a))continue;let u=[t[a]],s=a+1;for(;s<e.len&&!Pu(r[s]);){u.push(t[s]),n[a]=!0;let l=t[s].includes("?");if(r[s]="text",t[s]="",s++,l)break}t[a]=$e(u)}let o=0;for(let a=0;a<t.length;a++){let u=t[a];u.length!==0&&(o!==a&&(t[o]=u,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 L_(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]),!M_(a))continue;let u=o+1;if(u>=e.len||Pu(e.kinds[u]))continue;let s=[],l=e.starts[u],d=u;for(;d<e.len&&!Pu(e.kinds[d]);)s.push(e.texts[d]),d++;s.length>0&&(t.push($e(s)),n.push(!0),r.push("text"),i.push(l),o=d-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var N_=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),n0=/^[A-Za-z0-9_]+[,:;]*$/,r0=/[,:;]+$/;function s0(e){for(let t of e)if(o0.test(t))return!0;return!1}function Kr(e){if(e.length===0)return!1;for(let t of e)if(!(o0.test(t)||N_.has(t)))return!1;return!0}function D_(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],u=e.kinds[o];if(u==="text"&&Kr(a)&&s0(a)){let s=[a],l=o+1;for(;l<e.len&&e.kinds[l]==="text"&&Kr(e.texts[l]);)s.push(e.texts[l]),l++;t.push($e(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=l-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(u),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function I_(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],u=e.kinds[o],s=e.isWordLike[o];if(u==="text"&&s&&n0.test(a)){let l=[a],d=r0.test(a),m=o+1;for(;d&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&n0.test(e.texts[m]);){let f=e.texts[m];l.push(f),d=r0.test(f),m++}t.push($e(l)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(u),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function P_(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 u=a.split("-"),s=u.length>1;for(let l=0;l<u.length;l++){let d=u[l];if(!s)break;(d.length===0||!s0(d)||!Kr(d))&&(s=!1)}if(s){let l=0;for(let d=0;d<u.length;d++){let m=u[d],f=d<u.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+l),l+=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 O_(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],u=e.isWordLike[o],s=e.kinds[o],l=e.starts[o];if(s==="glue"){let d=[a[0]],m=l;for(o++;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let f=$e(d);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),u=e.isWordLike[o],s="text",l=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 d=[];for(;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let m=$e(d);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),u=u||e.isWordLike[o],o++;continue}a.push(m)}t.push($e(a)),n.push(u),r.push(s),i.push(l)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function H_(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"||!Qe(t[o])||!Qe(t[o+1]))continue;let a=v_(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 i0(e,t,n){let r=u_(),i=0,o=[],a=[],u=[],s=[],l=[],d=[],m=[],f=[],p=[],g=[],y=[],x=[];for(let F of r.segment(e))for(let w of R_(F.segment,F.isWordLike??!1,F.index,n)){let H=function(){d[S]!==null&&(a[S]=[e0(o,d,m,S)],d[S]=null),a[S].push(w.text),u[S]=u[S]||w.isWordLike,f[S]=f[S]||N,p[S]=p[S]||W,g[S]=Y,y[S]=R,x[S]=t0(p[S],X)},_=w.kind==="text",T=S_(w.text,w.isWordLike,w.kind),N=Qe(w.text),W=Qh(w.text),X=To(w.text),Y=ko(w.text),R=E_(w.text),S=i-1;t.carryCJKAfterClosingQuote&&_&&i>0&&s[S]==="text"&&N&&f[S]&&g[S]||_&&i>0&&s[S]==="text"&&x_(w.text)&&f[S]||_&&i>0&&s[S]==="text"&&y[S]?H():_&&i>0&&s[S]==="text"&&w.isWordLike&&W&&x[S]?(H(),u[S]=!0):T!==null&&i>0&&s[S]==="text"&&d[S]===T?m[S]=(m[S]??1)+1:_&&!w.isWordLike&&i>0&&s[S]==="text"&&(b_(w.text)||w.text==="-"&&u[S])?H():(o[i]=w.text,a[i]=[w.text],u[i]=w.isWordLike,s[i]=w.kind,l[i]=w.start,d[i]=T,m[i]=T===null?0:1,f[i]=N,p[i]=W,g[i]=Y,y[i]=R,x[i]=t0(W,X),i++)}for(let F=0;F<i;F++){if(d[F]!==null){o[F]=e0(o,d,m,F);continue}o[F]=$e(a[F])}for(let F=1;F<i;F++)s[F]==="text"&&!u[F]&&Hu(o[F])&&s[F-1]==="text"&&(o[F-1]+=o[F],u[F-1]=u[F-1]||u[F],o[F]="");let A=Array.from({length:i},()=>null),M=-1;for(let F=i-1;F>=0;F--){let w=o[F];if(w.length!==0){if(s[F]==="text"&&!u[F]&&y_(w)&&M>=0&&s[M]==="text"){let _=A[M]??[];_.push(w),A[M]=_,l[M]=l[F],o[F]="";continue}M=F}}for(let F=0;F<i;F++){let w=A[F];w!=null&&(o[F]=C_(w,o[F]))}let C=0;for(let F=0;F<i;F++){let w=o[F];w.length!==0&&(C!==F&&(o[C]=w,u[C]=u[F],s[C]=s[F],l[C]=l[F]),C++)}o.length=C,u.length=C,s.length=C,l.length=C;let L=O_({len:C,texts:o,isWordLike:u,kinds:s,starts:l}),B=H_(I_(P_(D_(L_(F_(L))))));for(let F=0;F<B.len-1;F++){let w=A_(B.texts[F]);w!==null&&(B.kinds[F]!=="space"&&B.kinds[F]!=="preserved-space"||B.kinds[F+1]!=="text"||!Qh(B.texts[F+1])||(B.texts[F]=w.space,B.isWordLike[F]=!1,B.kinds[F]=B.kinds[F]==="preserved-space"?"preserved-space":"space",B.texts[F+1]=w.marks+B.texts[F+1],B.starts[F+1]=B.starts[F]+w.space.length))}return B}function G_(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 B_(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,u=0,s=!1,l=!1;function d(){o!==null&&(t.push($e(o)),n.push(a),r.push("text"),i.push(u),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],g=e.isWordLike[m],y=e.starts[m];if(p==="text"){let x=f_(f),A=Co(f);if(o!==null&&s&&l){o.push(f),a=a||g,s=s||x,l=A;continue}d(),o=[f],a=g,u=y,s=x,l=A;continue}d(),t.push(f),n.push(g),r.push(p),i.push(y)}return d(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function u0(e,t,n="normal",r="normal"){let i=i_(n),o=i.mode==="pre-wrap"?a_(e):o_(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?B_(i0(o,t,i)):i0(o,t,i);return{normalized:o,chunks:G_(a,i),...a}}var Ln=null,l0=new Map,Nn=null,U_=96,W_=/\\p{Emoji_Presentation}/u,V_=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Gu=null,c0=new Map;function Bu(){if(Ln!==null)return Ln;if(typeof OffscreenCanvas<"u")return Ln=new OffscreenCanvas(1,1).getContext("2d"),Ln;if(typeof document<"u")return Ln=document.createElement("canvas").getContext("2d"),Ln;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function $_(e){let t=l0.get(e);return t||(t=new Map,l0.set(e,t)),t}function yt(e,t){let n=t.get(e);return n===void 0&&(n={width:Bu().measureText(e).width,containsCJK:Qe(e)},t.set(e,n)),n}function Pt(){if(Nn!==null)return Nn;if(typeof navigator>"u")return Nn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},Nn;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 Nn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},Nn}function z_(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function d0(){return Gu===null&&(Gu=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Gu}function q_(e){return W_.test(e)||e.includes("\\uFE0F")}function f0(e){return V_.test(e)}function j_(e,t){let n=c0.get(e);if(n!==void 0)return n;let r=Bu();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 c0.set(e,n),n}function K_(e){let t=0,n=d0();for(let r of n.segment(e))q_(r.segment)&&t++;return t}function X_(e,t){return t.emojiCount===void 0&&(t.emojiCount=K_(e)),t.emojiCount}function It(e,t,n){return n===0?t.width:t.width-X_(e,t)*n}function m0(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=d0(),a=[];for(let d of o.segment(e))a.push(d.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let d=[];for(let m of a){let f=yt(m,n);d.push(It(m,f,r))}return t.breakableFitAdvances=d,t.breakableFitAdvances}if(i==="pair-context"||a.length>U_){let d=[],m=null,f=0;for(let p of a){let g=yt(p,n),y=It(p,g,r);if(m===null)d.push(y);else{let x=m+p,A=yt(x,n);d.push(It(x,A,r)-f)}m=p,f=y}return t.breakableFitAdvances=d,t.breakableFitAdvances}let u=[],s="",l=0;for(let d of a){s+=d;let m=yt(s,n),f=It(s,m,r);u.push(f-l),l=f}return t.breakableFitAdvances=u,t.breakableFitAdvances}function p0(e,t){let n=Bu();n.font=e;let r=$_(e),i=z_(e),o=t?j_(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function Y_(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 h0(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function g0(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let u=a+e[o];if((o+1<e.length?u+i:u)>n+r)break;a=u,o++}return{fitCount:o,fittedWidth:a}}function J_(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 b0(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 x0(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=J_(e,t.segmentIndex);return n<0?-1:b0(e,n,t)}function Q_(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:b0(e,r,n)}function y0(e,t){return e.simpleLineWalkFastPath?v0(e,t):Uu(e,t)}function v0(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let u=Pt().lineFitEpsilon,s=t+u,l=0,d=0,m=!1,f=0,p=0,g=0,y=0,x=-1,A=0;function M(){x=-1,A=0}function C(T=g,N=y,W=d){l++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:T,endGraphemeIndex:N,width:W}),d=0,m=!1,M()}function L(T,N){m=!0,f=T,p=0,g=T+1,y=0,d=N}function B(T,N,W){m=!0,f=T,p=N,g=T,y=N+1,d=W}function F(T,N){if(!m){L(T,N);return}d+=N,g=T+1,y=0}function w(T,N){let W=o[T];for(let X=N;X<W.length;X++){let Y=W[X];m?d+Y>s?(C(),B(T,X,Y)):(d+=Y,g=T,y=X+1):B(T,X,Y)}m&&g===T&&y===W.length&&(g=T+1,y=0)}let _=0;for(;_<r.length&&!(!m&&(_=Y_(e,_),_>=r.length));){let T=r[_],N=i[_],W=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!m){T>t&&o[_]!==null?w(_,0):L(_,T),W&&(x=_+1,A=d-T),_++;continue}if(d+T>s){if(W){F(_,T),C(_+1,0,d-T),_++;continue}if(x>=0){if(g>x||g===x&&y>0){C();continue}C(x,0,A);continue}if(T>t&&o[_]!==null){C(),w(_,0),_++;continue}C();continue}F(_,T),W&&(x=_+1,A=d-T),_++}return m&&C(),l}function Uu(e,t,n){if(e.simpleLineWalkFastPath)return v0(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:u,discretionaryHyphenWidth:s,tabStopAdvance:l,chunks:d}=e;if(r.length===0||d.length===0)return 0;let m=Pt(),f=m.lineFitEpsilon,p=t+f,g=0,y=0,x=!1,A=0,M=0,C=0,L=0,B=-1,F=0,w=0,_=null;function T(){B=-1,F=0,w=0,_=null}function N(U=C,V=L,$=y){g++,n?.({startSegmentIndex:A,startGraphemeIndex:M,endSegmentIndex:U,endGraphemeIndex:V,width:$}),y=0,x=!1,T()}function W(U,V){x=!0,A=U,M=0,C=U+1,L=0,y=V}function X(U,V,$){x=!0,A=U,M=V,C=U,L=V+1,y=$}function Y(U,V){if(!x){W(U,V);return}y+=V,C=U+1,L=0}function R(U,V,$,G){if(!V)return;let P=U==="tab"?0:i[$],O=U==="tab"?G:o[$];B=$+1,F=y-G+P,w=y-G+O,_=U}function S(U,V){let $=u[U];for(let G=V;G<$.length;G++){let P=$[G];x?y+P>p?(N(),X(U,G,P)):(y+=P,C=U,L=G+1):X(U,G,P)}x&&C===U&&L===$.length&&(C=U+1,L=0)}function H(U){if(_!=="soft-hyphen")return!1;let V=u[U];if(V==null)return!1;let{fitCount:$,fittedWidth:G}=g0(V,y,t,f,s);return $===0?!1:(y=G,C=U,L=$,T(),$===V.length?(C=U+1,L=0,!0):(N(U,$,G+s),S(U,$),!0))}function q(U){g++,n?.({startSegmentIndex:U.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:U.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),T()}for(let U=0;U<d.length;U++){let V=d[U];if(V.startSegmentIndex===V.endSegmentIndex){q(V);continue}x=!1,y=0,A=V.startSegmentIndex,M=0,C=V.startSegmentIndex,L=0,T();let $=V.startSegmentIndex;for(;$<V.endSegmentIndex;){let G=a[$],P=G==="space"||G==="preserved-space"||G==="tab"||G==="zero-width-break"||G==="soft-hyphen",O=G==="tab"?h0(y,l):r[$];if(G==="soft-hyphen"){x&&(C=$+1,L=0,B=$+1,F=y+s,w=y+s,_=G),$++;continue}if(!x){O>t&&u[$]!==null?S($,0):W($,O),R(G,P,$,O),$++;continue}if(y+O>p){let te=y+(G==="tab"?0:i[$]),ne=y+(G==="tab"?O:o[$]);if(_==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&F<=p){N(B,0,w);continue}if(_==="soft-hyphen"&&H($)){$++;continue}if(P&&te<=p){Y($,O),N($+1,0,ne),$++;continue}if(B>=0&&F<=p){if(C>B||C===B&&L>0){N();continue}let j=B;N(j,0,w),$=j;continue}if(O>t&&u[$]!==null){N(),S($,0),$++;continue}N();continue}Y($,O),R(G,P,$,O),$++}if(x){let G=B===V.consumedEndSegmentIndex?w:y;N(V.consumedEndSegmentIndex,0,G)}}return g}function S0(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:u,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:d,tabStopAdvance:m}=e,f=Pt(),p=f.lineFitEpsilon,g=r+p,y=0,x=!1,A=t.segmentIndex,M=t.graphemeIndex,C=-1,L=0,B=0,F=null;function w(){C=-1,L=0,B=0,F=null}function _(S=A,H=M,q=y){return x?(t.segmentIndex=S,t.graphemeIndex=H,q):null}function T(S,H){x=!0,A=S+1,M=0,y=H}function N(S,H,q){x=!0,A=S,M=H+1,y=q}function W(S,H){if(!x){T(S,H);return}y+=H,A=S+1,M=0}function X(S,H,q,U){if(!H)return;let V=S==="tab"?0:a[q],$=S==="tab"?U:u[q];C=q+1,L=y-U+V,B=y-U+$,F=S}function Y(S,H){let q=l[S];for(let U=H;U<q.length;U++){let V=q[U];if(!x)N(S,U,V);else{if(y+V>g)return _();y+=V,A=S,M=U+1}}return x&&A===S&&M===q.length&&(A=S+1,M=0),null}function R(S){if(F!=="soft-hyphen"||C<0)return null;let H=l[S]??null;if(H!==null){let{fitCount:q,fittedWidth:U}=g0(H,y,r,p,d);if(q===H.length)return y=U,A=S+1,M=0,w(),null;if(q>0)return _(S,q,U+d)}return L<=g?_(C,0,B):null}for(let S=t.segmentIndex;S<i.endSegmentIndex;S++){let H=s[S],q=H==="space"||H==="preserved-space"||H==="tab"||H==="zero-width-break"||H==="soft-hyphen",U=S===t.segmentIndex?t.graphemeIndex:0,V=H==="tab"?h0(y,m):o[S];if(H==="soft-hyphen"&&U===0){x&&(A=S+1,M=0,C=S+1,L=y+d,B=y+d,F=H);continue}if(!x){if(U>0){let G=Y(S,U);if(G!==null)return G}else if(V>r&&l[S]!==null){let G=Y(S,0);if(G!==null)return G}else T(S,V);X(H,q,S,V);continue}if(y+V>g){let G=y+(H==="tab"?0:a[S]),P=y+(H==="tab"?V:u[S]);if(F==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&L<=g)return _(C,0,B);let O=R(S);if(O!==null)return O;if(q&&G<=g)return W(S,V),_(S+1,0,P);if(C>=0&&L<=g)return A>C||A===C&&M>0?_():_(C,0,B);if(V>r&&l[S]!==null){let Z=_();if(Z!==null)return Z;let te=Y(S,0);if(te!==null)return te}return _()}W(S,V),X(H,q,S,V)}return C===i.consumedEndSegmentIndex&&M===0?_(i.consumedEndSegmentIndex,0,B):_(i.consumedEndSegmentIndex,0,y)}function Z_(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,u=Pt().lineFitEpsilon,s=n+u,l=0,d=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,g=0;for(let y=t.segmentIndex;y<r.length;y++){let x=r[y],A=i[y],M=A==="space"||A==="preserved-space"||A==="tab"||A==="zero-width-break"||A==="soft-hyphen",C=y===t.segmentIndex?t.graphemeIndex:0,L=o[y];if(!d){if(C>0||x>n&&L!==null){let B=L,F=B[C];d=!0,l=F,m=y,f=C+1;for(let w=C+1;w<B.length;w++){let _=B[w];if(l+_>s)return t.segmentIndex=m,t.graphemeIndex=f,l;l+=_,m=y,f=w+1}m===y&&f===B.length&&(m=y+1,f=0)}else d=!0,l=x,m=y+1,f=0;M&&(p=y+1,g=l-x);continue}if(l+x>s)return M?(t.segmentIndex=y+1,t.graphemeIndex=0,l):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,l):(t.segmentIndex=p,t.graphemeIndex=0,g):(t.segmentIndex=m,t.graphemeIndex=f,l);l+=x,m=y+1,f=0,M&&(p=y+1,g=l-x)}return d?(t.segmentIndex=m,t.graphemeIndex=f,l):null}function ew(e,t,n){let r=x0(e,t);return r<0?null:e.simpleLineWalkFastPath?Z_(e,t,n):S0(e,t,r,n)}function E0(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=x0(e,n);for(;o>=0;){let a=S0(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=Q_(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=ew(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var Wu=null;function tw(){return Wu===null&&(Wu=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Wu}function nw(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 rw(e,t){let n=[],r=[],i=0,o=!1,a=!1,u=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,u=!1)}function l(m,f,p){r=[m],i=f,o=p,a=ko(m),u=Xr.has(m)}function d(m,f){r.push(m),o=o||f;let p=ko(m);m.length===1&&Dt.has(m)?a=a||p:a=p,u=!1}for(let m of tw().segment(e)){let f=m.segment,p=Qe(f);if(r.length===0){l(f,m.index,p);continue}if(u||Ro.has(f)||Dt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){d(f,p);continue}if(!o&&!p){d(f,p);continue}s(),l(f,m.index,p)}return s(),n}function iw(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=Qe(e[0].text),o=Co(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let u=1;u<e.length;u++){let s=e[u],l=Qe(s.text),d=Co(s.text);if(i&&o){n.push(s.text),i=i||l,o=d;continue}a(),n=[s.text],r=s.start,i=l,o=d}return a(),t}function ow(e,t,n,r){let i=Pt(),{cache:o,emojiCorrection:a}=p0(t,f0(e.normalized)),u=It("-",yt("-",o),a),l=It(" ",yt(" ",o),a)*8;if(e.len===0)return nw(n);let d=[],m=[],f=[],p=[],g=e.chunks.length<=1,y=n?[]:null,x=[],A=n?[]:null,M=Array.from({length:e.len});function C(w,_,T,N,W,X,Y){W!=="text"&&W!=="space"&&W!=="zero-width-break"&&(g=!1),d.push(_),m.push(T),f.push(N),p.push(W),y?.push(X),x.push(Y),A!==null&&A.push(w)}function L(w,_,T,N,W){let X=yt(w,o),Y=It(w,X,a),R=_==="space"||_==="preserved-space"||_==="zero-width-break"?0:Y,S=_==="space"||_==="zero-width-break"?0:Y;if(W&&N&&w.length>1){let H="sum-graphemes";Kr(w)?H="pair-context":i.preferPrefixWidthsForBreakableRuns&&(H="segment-prefixes");let q=m0(w,X,o,a,H);C(w,Y,R,S,_,T,q);return}C(w,Y,R,S,_,T,null)}for(let w=0;w<e.len;w++){M[w]=d.length;let _=e.texts[w],T=e.isWordLike[w],N=e.kinds[w],W=e.starts[w];if(N==="soft-hyphen"){C(_,0,u,u,N,W,null);continue}if(N==="hard-break"){C(_,0,0,0,N,W,null);continue}if(N==="tab"){C(_,0,0,0,N,W,null);continue}let X=yt(_,o);if(N==="text"&&X.containsCJK){let Y=rw(_,i),R=r==="keep-all"?iw(Y):Y;for(let S=0;S<R.length;S++){let H=R[S];L(H.text,"text",W+H.start,T,r==="keep-all"||!Qe(H.text))}continue}L(_,N,W,T,!0)}let B=aw(e.chunks,M,d.length),F=y===null?null:Jh(e.normalized,y);return A!==null?{widths:d,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:B,segments:A}:{widths:d,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:B}}function aw(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,u=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:u,consumedEndSegmentIndex:s})}return r}function A0(e,t,n,r){let i=r?.wordBreak??"normal",o=u0(e,Pt(),r?.whiteSpace,i);return ow(o,t,n,i)}function Mo(e,t,n){return A0(e,t,!1,n)}function _0(e,t,n){return A0(e,t,!0,n)}function Fo(e,t,n){let r=y0(e,t);return{lineCount:r,height:r*n}}function sw(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function uw(e,t,n){return e.widths.length===0?0:Uu(e,t,r=>{n(sw(r))})}function w0(e,t){return E0(e,t)}function C0(e){let t=0;return uw(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var lw={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function R0(e,t){let n={...lw,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=Mo(e,o),{lineCount:u}=Fo(a,n.maxWidth,i*r);if(u<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var T0={prepare:Mo,layout:Fo,prepareWithSegments:_0,measureLineStats:w0,measureNaturalWidth:C0};function k0(e){return new URL(e,document.baseURI).href}window.__timelines=window.__timelines||{};up();Ll();window.__hyperframes={assetUrl:k0,fitTextFontSize:R0,getVariables:Ol,pretext:T0,registerRuntimeDataHandler:qh,setRuntimeData:Ao,clearRuntimeData:_o};function M0(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Xh())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",M0,{once:!0}):M0();})();\n';
60927
+ RUNTIME_IIFE = '"use strict";(()=>{var vg=Object.create;var Jo=Object.defineProperty;var Sg=Object.getOwnPropertyDescriptor;var Eg=Object.getOwnPropertyNames;var Ag=Object.getPrototypeOf,_g=Object.prototype.hasOwnProperty;var wg=(e,t,n)=>t in e?Jo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var oe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Cg=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Eg(t))!_g.call(e,i)&&i!==n&&Jo(e,i,{get:()=>t[i],enumerable:!(r=Sg(t,i))||r.enumerable});return e};var Rg=(e,t,n)=>(n=e!=null?vg(Ag(e)):{},Cg(t||!e||!e.__esModule?Jo(n,"default",{value:e,enumerable:!0}):n,e));var ue=(e,t,n)=>wg(e,typeof t!="symbol"?t+"":t,n);var Jd=oe((CT,ls)=>{var ee=String,Yd=function(){return{isColorSupported:!1,reset:ee,bold:ee,dim:ee,italic:ee,underline:ee,inverse:ee,hidden:ee,strikethrough:ee,black:ee,red:ee,green:ee,yellow:ee,blue:ee,magenta:ee,cyan:ee,white:ee,gray:ee,bgBlack:ee,bgRed:ee,bgGreen:ee,bgYellow:ee,bgBlue:ee,bgMagenta:ee,bgCyan:ee,bgWhite:ee,blackBright:ee,redBright:ee,greenBright:ee,yellowBright:ee,blueBright:ee,magentaBright:ee,cyanBright:ee,whiteBright:ee,bgBlackBright:ee,bgRedBright:ee,bgGreenBright:ee,bgYellowBright:ee,bgBlueBright:ee,bgMagentaBright:ee,bgCyanBright:ee,bgWhiteBright:ee}};ls.exports=Yd();ls.exports.createColors=Yd});var cs=oe(()=>{});var Vi=oe((kT,ef)=>{"use strict";var Qd=Jd(),Zd=cs(),gr=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=Qd.isColorSupported);let r=d=>d,i=d=>d,o=d=>d;if(t){let{bold:d,gray:m,red:f}=Qd.createColors(!0);i=p=>d(f(p)),r=p=>m(p),Zd&&(o=p=>Zd(p))}let a=n.split(/\\r?\\n/),u=Math.max(this.line-3,0),s=Math.min(this.line+2,a.length),l=String(s).length;return a.slice(u,s).map((d,m)=>{let f=u+1+m,p=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(d.length>160){let y=20,x=Math.max(0,this.column-y),A=Math.max(this.column+y,this.endColumn+y),M=d.slice(x,A),C=r(p.replace(/\\d/g," "))+d.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return i(">")+r(p)+o(M)+`\n `+C+i("^")}let g=r(p.replace(/\\d/g," "))+d.slice(0,this.column-1).replace(/[^\\t]/g," ");return i(">")+r(p)+o(d)+`\n `+g+i("^")}return" "+r(p)+o(d)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};ef.exports=gr;gr.default=gr});var ds=oe((MT,af)=>{"use strict";var ty=/(<)(\\/?style\\b)/gi,ny=/(<)(!--)/g,ry=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/;function Xe(e){return typeof e!="string"||!e.includes("<")?e:e.replace(ty,"\\\\3c $2").replace(ny,"\\\\3c $2")}var tf={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function iy(e){return e[0].toUpperCase()+e.slice(1)}function nf(e,t){let n="@"+t.name,r=t.params?e.rawValue(t,"params"):"",i=t.raws.afterName;return typeof i>"u"?i=r?" ":"":i===""&&r&&!ry.test(r[0])&&(i=" "),n+i+r}function oy(e){if(!e.prop.startsWith("--"))return!1;let t=e.raws.before;return typeof t>"u"||!/\\S$/.test(t)}function of(e,t,n){let r=n.nodes,i=r.length-1;for(;i>0&&r[i].type==="comment";)i-=1;let o=e.raw(n,"semicolon"),a=n.type==="document";for(let u=r.length-1;u>=0;u--){let s=r[u],l=i!==u||o;!l&&u<r.length-1&&(s.type==="atrule"&&!s.nodes||s.type==="decl"&&oy(s))&&(l=!0),t.push({document:a,node:s,semicolon:l})}}function rf(e,t,n,r){let i=e.raw(n,"between","beforeOpen");e.builder(Xe(r+i)+"{",n,"start");let o=n.nodes&&n.nodes.length,a=()=>{let u=o?e.raw(n,"after"):e.raw(n,"after","emptyBody");u&&e.builder(Xe(u)),e.builder("}",n,"end"),n.type==="rule"&&n.raws.ownSemicolon&&e.builder(Xe(n.raws.ownSemicolon),n,"end")};o?(t.push(a),of(e,t,n)):a()}var br=class e{constructor(t){this.builder=t}atrule(t,n){let r=nf(this,t);if(t.nodes)this.block(t,r);else{let i=(t.raws.between||"")+(n?";":"");this.builder(Xe(r+i),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 u=0;u<o;u++)r+=a}return r}block(t,n){let r=this.raw(t,"between","beforeOpen");this.builder(Xe(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(Xe(i)),this.builder("}",t,"end")}body(t){let n=e.prototype,r=["atrule","block","body","rule","stringify"].every(o=>this[o]===n[o]),i=[];for(of(this,i,t);i.length>0;){let o=i.pop();if(typeof o=="function"){o();continue}let a=o.node,u=this.raw(a,"before");u&&this.builder(o.document?u:Xe(u)),r&&a.type==="rule"?rf(this,i,a,this.rawValue(a,"selector")):r&&a.type==="atrule"&&a.nodes?rf(this,i,a,nf(this,a)):this.stringify(a,o.semicolon)}}comment(t){let n=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder(Xe("/*"+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(Xe(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 tf[r];let a=t.root(),u=a.rawCache||(a.rawCache={});if(typeof u[r]<"u")return u[r];if(r==="before"||r==="after")return this.beforeAfter(t,r);{let s="raw"+iy(r);this[s]?i=this[s](a,t):a.walk(l=>{if(i=l.raws[n],typeof i<"u")return!1})}return typeof i>"u"&&(i=tf[r]),u[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(t.source&&t.source.input.hasBOM&&this.builder("\\uFEFF",t,"start"),this.body(t),t.raws.after){let n=t.raws.after,r=t.parent&&t.parent.type==="document";this.builder(r?n:Xe(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(Xe(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)}};af.exports=br;br.default=br});var xr=oe((FT,sf)=>{"use strict";var ay=ds();function fs(e,t){new ay(t).stringify(e)}sf.exports=fs;fs.default=fs});var yr=oe((LT,ms)=>{"use strict";ms.exports.isClean=Symbol("isClean");ms.exports.my=Symbol("my")});var Er=oe((NT,uf)=>{"use strict";var sy=Vi(),uy=ds(),ly=xr(),{isClean:vr,my:cy}=yr();function dy(e,t){let n=new e.constructor,r=[[e,n,t]];for(;r.length>0;){let[i,o,a]=r.pop();for(let u in i){if(!Object.prototype.hasOwnProperty.call(i,u)||u==="proxyCache")continue;let s=i[u],l=typeof s;if(u==="parent"&&l==="object")a&&(o[u]=a);else if(u==="source")o[u]=s;else if(Array.isArray(s)){let d=[];o[u]=d;for(let m of s){let f=new m.constructor;d.push(f),r.push([m,f,o])}}else{if(l==="object"&&s!==null){let d=new s.constructor;r.push([s,d,void 0]),s=d}o[u]=s}}}return n}function ot(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 Sr=class e{get proxyOf(){return this}constructor(t={}){this.raws={},this[vr]=!1,this[cy]=!0;for(let n of Object.keys(t))if(n!=="__proto__")if(n==="nodes"){this.nodes=[];for(let r of t[n])typeof r.clone=="function"&&r.parent?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=dy(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 sy(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[vr]=!0}markDirty(){if(this[vr]){this[vr]=!1;let t=this;for(;t=t.parent;)t[vr]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(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:ot(n,this.source.start)};if(t.index)r=this.positionInside(t.index);else if(t.word){let o=n.slice(ot(n,this.source.start),ot(n,this.source.end)).indexOf(t.word);o!==-1&&(r=this.positionInside(o))}return r}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=ot(i,this.source.start),a=o+t;for(let u=o;u<a;u++)i[u]===`\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:ot(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:ot(n,this.source.end)+1}:{column:r.column+1,line:r.line,offset:r.offset+1};if(t.word){let a=n.slice(ot(n,this.source.start),ot(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:ot(n,t.start)}:typeof t.index=="number"&&(r=this.positionInside(t.index)),t.end?i={column:t.end.column,line:t.end.line,offset:ot(n,t.end)}:typeof t.endIndex=="number"?i=this.positionInside(t.endIndex):typeof t.index=="number"&&(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 uy().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=n==null;n=n||new Map;let i=[],o=[[this,i,0]];for(let u=0;u<o.length;u++){let[s,l,d]=o[u],m={};l[d]=m;for(let f in s){if(!Object.prototype.hasOwnProperty.call(s,f)||f==="parent"||f==="proxyCache")continue;let p=s[f];if(Array.isArray(p)){let g=[];m[f]=g;for(let y=0;y<p.length;y++){let x=p[y];typeof x=="object"&&x.toJSON?x.toJSON===e.prototype.toJSON?o.push([x,g,y]):g[y]=x.toJSON(null,n):g[y]=x}}else if(typeof p=="object"&&p.toJSON)p.toJSON===e.prototype.toJSON?o.push([p,m,f]):m[f]=p.toJSON(null,n);else if(f==="source"){if(p==null)continue;let g=n.get(p.input);g==null&&(g=n.size,n.set(p.input,g)),m[f]={end:p.end,inputId:g,start:p.start}}else m[f]=p}}let a=i[0];return r&&(a.inputs=[...n.keys()].map(u=>u.toJSON())),a}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=ly){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)}};uf.exports=Sr;Sr.default=Sr});var _r=oe((DT,lf)=>{"use strict";var fy=Er(),Ar=class extends fy{constructor(t){super(t),this.type="comment"}};lf.exports=Ar;Ar.default=Ar});var Cr=oe((IT,cf)=>{"use strict";var my=Er(),wr=class extends my{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"}};cf.exports=wr;wr.default=wr});var bt=oe((PT,xf)=>{"use strict";var ff=_r(),mf=Cr(),df=Er(),{isClean:pf,my:hf}=yr(),ps,gf,bf,hs;function py(e){let t=e.slice();for(;t.length>0;){let n=t.pop();if(delete n.source,n.nodes){n.nodes=n.nodes.slice();for(let r of n.nodes)t.push(r)}}return e.slice()}function hy(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[pf]=!1,n.proxyOf.nodes)for(let r of n.proxyOf.nodes)t.push(r)}}var at=class e extends df{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){let n=[this];for(;n.length>0;){let r=n.pop();if(r!==this&&r.cleanRaws!==e.prototype.cleanRaws){r.cleanRaws(t);continue}if(df.prototype.cleanRaws.call(r,t),r.nodes)for(let i of r.nodes)n.push(i)}}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 u of o)this.proxyOf.nodes.splice(r,0,u);let a;for(let u in this.indexes)a=this.indexes[u],r<=a&&(this.indexes[u]=a+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=py(gf(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 mf(t)]}else if(t.selector||t.selectors)t=[new hs(t)];else if(t.name)t=[new ps(t)];else if(t.text)t=[new ff(t)];else throw new Error("Unknown node type in node creation");return t.map(i=>(i[hf]||e.rebuild(i),i=i.proxyOf,i.parent&&i.parent.removeChild(i),i[pf]&&hy(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){if(!this.proxyOf.nodes)return;let n=[{iterator:this.getIterator(),node:this.proxyOf}];for(;n.length>0;){let{iterator:r,node:i}=n[n.length-1],o=i.indexes[r];if(o>=i.proxyOf.nodes.length){delete i.indexes[r],n.pop();let s=n[n.length-1];s&&(s.node.indexes[s.iterator]+=1);continue}let a=i.proxyOf.nodes[o],u;try{u=t(a,o)}catch(s){throw a.addToError(s)}if(u===!1){for(let s of n)delete s.node.indexes[s.iterator];return!1}a.walk&&a.proxyOf.nodes?n.push({iterator:a.getIterator(),node:a}):i.indexes[r]+=1}}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)}))}};at.registerParse=e=>{gf=e};at.registerRule=e=>{hs=e};at.registerAtRule=e=>{ps=e};at.registerRoot=e=>{bf=e};xf.exports=at;at.default=at;at.rebuild=e=>{let t=[e];for(;t.length>0;){let n=t.pop();if(n.type==="atrule"?Object.setPrototypeOf(n,ps.prototype):n.type==="rule"?Object.setPrototypeOf(n,hs.prototype):n.type==="decl"?Object.setPrototypeOf(n,mf.prototype):n.type==="comment"?Object.setPrototypeOf(n,ff.prototype):n.type==="root"&&Object.setPrototypeOf(n,bf.prototype),n[hf]=!0,n.nodes)for(let r of n.nodes)t.push(r)}}});var $i=oe((OT,vf)=>{"use strict";var yf=bt(),xn=class extends yf{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)}};vf.exports=xn;xn.default=xn;yf.registerAtRule(xn)});var zi=oe((HT,Af)=>{"use strict";var gy=bt(),Sf,Ef,jt=class extends gy{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new Sf(new Ef,this,t).stringify()}};jt.registerLazyResult=e=>{Sf=e};jt.registerProcessor=e=>{Ef=e};Af.exports=jt;jt.default=jt});var wf=oe((GT,_f)=>{var by="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",xy=(e,t=21)=>(n=t)=>{let r="",i=n|0;for(;i-- >0;)r+=e[Math.random()*e.length|0];return r},yy=(e=21)=>{let t="",n=e|0;for(;n-- >0;)t+=by[Math.random()*64|0];return t};_f.exports={nanoid:yy,customAlphabet:xy}});var qi=oe(()=>{});var ji=oe(()=>{});var gs=oe(()=>{});var Cf=oe(()=>{});var bs=oe((KT,Mf)=>{"use strict";var{existsSync:vy,readFileSync:Sy,realpathSync:Ey}=Cf(),{dirname:Ki,isAbsolute:Ay,join:_y,relative:wy,sep:Cy}=qi(),{SourceMapConsumer:Rf,SourceMapGenerator:Tf}=ji();function kf(e){try{return Ey(e)}catch{return e}}function Ry(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var Rr=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=Ki(this.mapFile)),i&&(this.text=i)}consumer(){return this.consumerCache||(this.consumerCache=new Rf(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 u=t.match(n)||t.match(r);if(u)return Ry(t.substr(u[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){if(!/\\.map$/i.test(t)||!n)return;let i=wy(kf(Ki(n)),kf(t));if(i===".."||i.startsWith(".."+Cy)||Ay(i))return}if(this.root=Ki(t),vy(t))return this.mapFile=t,Sy(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 Rf)return Tf.fromSourceMap(n).toString();if(n instanceof Tf)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=_y(Ki(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)}};Mf.exports=Rr;Rr.default=Rr});var Tr=oe((XT,If)=>{"use strict";var{nanoid:Ty}=wf(),{isAbsolute:vs,resolve:Ss}=qi(),{SourceMapConsumer:ky,SourceMapGenerator:My}=ji(),{fileURLToPath:Ff,pathToFileURL:Xi}=gs(),Lf=Vi(),Fy=bs(),xs=cs(),ys=Symbol("lineToIndexCache"),Ly=!!(ky&&My),Nf=!!(Ss&&vs);function Df(e){if(e[ys])return e[ys];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[ys]=n,n}var yn=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&&(!Nf||/^\\w+:\\/\\//.test(n.from)||vs(n.from)?this.file=n.from:this.file=Ss(n.from)),Nf&&Ly){let r=new Fy(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 "+Ty(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,r,i={}){let o,a,u,s,l;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"){u=f.offset;let p=this.fromOffset(u);a=p.line,o=p.col}else a=f.line,o=f.column,u=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 d=this.origin(n,r,a,o);return d?l=new Lf(t,d.endLine===void 0?d.line:{column:d.column,line:d.line},d.endLine===void 0?d.column:{column:d.endColumn,line:d.endLine},d.source,d.file,i.plugin):l=new Lf(t,a===void 0?n:{column:r,line:n},a===void 0?r:{column:o,line:a},this.css,this.file,i.plugin),l.input={column:r,endColumn:o,endLine:a,endOffset:u,line:n,offset:s,source:this.css},this.file&&(Xi&&(l.input.url=Xi(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(t,n){return Df(this)[t-1]+n-1}fromOffset(t){let n=Df(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:Ss(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-1,line:t});if(!a.source)return!1;let u;if(typeof r=="number"){let m=o.originalPositionFor({column:i-1,line:r});m.source&&(u=m)}let s;vs(a.source)?s=Xi(a.source):s=new URL(a.source,this.map.consumer().sourceRoot||Xi(this.map.mapFile));let l={column:a.column+1,endColumn:u&&u.column+1,endLine:u&&u.line,line:a.line,url:s.toString()};if(s.protocol==="file:")if(Ff)l.file=Ff(s);else throw new Error("file: protocol is not available in this PostCSS build");let d=o.sourceContentFor(a.source);return d&&(l.source=d),l}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}};If.exports=yn;yn.default=yn;xs&&xs.registerInput&&xs.registerInput(yn)});var vn=oe((YT,Gf)=>{"use strict";var Pf=bt(),Of,Hf,Mt=class extends Pf{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,r){let i=new Set;for(let a of Array.isArray(t)?t:[t])a&&typeof a=="object"&&!a.parent&&a.raws&&typeof a.raws.before<"u"&&i.add(a.raws);let o=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 a of o)i.has(a.raws)||(a.raws.before=n.raws.before)}return o}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 Of(new Hf,this,t).stringify()}};Mt.registerLazyResult=e=>{Of=e};Mt.registerProcessor=e=>{Hf=e};Gf.exports=Mt;Mt.default=Mt;Pf.registerRoot(Mt)});var Es=oe((JT,Bf)=>{"use strict";var kr={comma(e){return kr.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return kr.split(e,t)},split(e,t,n){if(typeof e!="string")return[];let r=[],i="",o=!1,a=0,u=!1,s="",l=!1;for(let m of e)if(l?l=!1:m==="\\\\"?l=!0:u?m===s&&(u=!1):m===\'"\'||m==="\'"?(u=!0,s=m):m==="("?a+=1:m===")"?a>0&&(a-=1):a===0&&t.includes(m)&&(o=!0),o){let f=i.trim();(n||f!=="")&&r.push(f),i="",o=!1}else i+=m;let d=i.trim();return(n||d!=="")&&r.push(d),r}};Bf.exports=kr;kr.default=kr});var Yi=oe((QT,Wf)=>{"use strict";var Uf=bt(),Ny=Es(),Sn=class extends Uf{get selectors(){return Ny.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=[])}};Wf.exports=Sn;Sn.default=Sn;Uf.registerRule(Sn)});var zf=oe((ZT,$f)=>{"use strict";var Dy=$i(),Iy=_r(),Py=Cr(),Oy=Tr(),Hy=bs(),Gy=vn(),By=Yi();function Vf(e,t){return e.inputs?e.inputs.map(n=>{let r={...n,__proto__:Oy.prototype};return r.map&&(r.map={...r.map,__proto__:Hy.prototype}),r}):t}function Uy(e,t,n){let r={...e};if(delete r.inputs,delete r.nodes,r.source){let{inputId:o,...a}=r.source;r.source=a,o!=null&&(r.source.input=t[o])}let i;if(r.type==="root")i=new Gy(r);else if(r.type==="decl")i=new Py(r);else if(r.type==="rule")i=new By(r);else if(r.type==="comment")i=new Iy(r);else if(r.type==="atrule")i=new Dy(r);else throw new Error("Unknown node type: "+e.type);if(n){i.nodes=n;for(let o of n)o.parent=i}return i}function Ji(e,t){if(Array.isArray(e))return e.map(i=>Ji(i));let n,r=[{childIndex:0,children:[],inputs:Vf(e,t),json:e}];for(;r.length>0;){let i=r[r.length-1],o=i.json.nodes;if(o&&i.childIndex<o.length){let u=o[i.childIndex];i.childIndex+=1,r.push({childIndex:0,children:[],inputs:Vf(u,i.inputs),json:u});continue}r.pop();let a=Uy(i.json,i.inputs,o?i.children:void 0);r.length>0?r[r.length-1].children.push(a):n=a}return n}$f.exports=Ji;Ji.default=Ji});var _s=oe((ek,Jf)=>{"use strict";var{dirname:Qi,relative:jf,resolve:Kf,sep:Xf}=qi(),{SourceMapConsumer:Yf,SourceMapGenerator:Zi}=ji(),{pathToFileURL:qf}=gs(),Wy=Tr(),Vy=!!(Yf&&Zi),$y=!!(Qi&&Kf&&jf&&Xf),As=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||Qi(t.file),i;this.mapOpts.sourcesContent===!1?(i=new Yf(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="/*# sourceMappingURL=",n;for(;(n=this.css.lastIndexOf(t))!==-1;){let r=this.css.indexOf("*/",n+t.length);if(r===-1)break;for(;n>0&&this.css[n-1]===`\n`;)n--;this.css=this.css.slice(0,n)+this.css.slice(r+2)}}}}generate(){if(this.clearAnnotation(),$y&&Vy&&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=Zi.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new Zi({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 Zi({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,(u,s,l)=>{if(this.css+=u,s&&l!=="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=u.match(/\\n/g),a?(t+=a.length,o=u.lastIndexOf(`\n`),n=u.length-o):n+=u.length,s&&l!=="start"){let d=s.parent||{raws:{}};(!(s.type==="decl"||s.type==="atrule"&&!s.nodes)||s!==d.last||d.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?Qi(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=Qi(Kf(r,this.mapOpts.annotation)));let i=jf(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 Wy(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(qf){let r=qf(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;Xf==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let r=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,r),r}};Jf.exports=As});var em=oe((tk,Zf)=>{"use strict";var eo=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,to=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,zy=/.[\\r\\n"\'(/\\\\]/,Qf=/[\\da-f]/i;Zf.exports=function(t,n={}){let r=t.css.valueOf(),i=n.ignoreErrors,o,a,u,s,l,d,m,f,p,g,y=r.length,x=0,A=[],M=[],C=-1;function L(){return x}function B(T){throw t.error("Unclosed "+T,x)}function F(){return M.length===0&&x>=y}function w(T){if(M.length)return M.pop();if(x>=y)return;let N=T?T.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);d=["space",r.slice(x,s)],x=s-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let W=String.fromCharCode(o);d=[W,W,x];break}case 40:{if(g=A.length?A.pop()[1]:"",p=r.charCodeAt(x+1),g==="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 B("bracket");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);d=["brackets",r.slice(x,s+1),x,s],x=s}else x<=C?d=["(","(",x]:(s=r.indexOf(")",x+1),a=r.slice(x,s+1),s===-1||zy.test(a)?(C=s===-1?y:s,d=["(","(",x]):(d=["brackets",a,x,s],x=s));break}case 39:case 34:{l=o===39?"\'":\'"\',s=x;do{if(m=!1,s=r.indexOf(l,s+1),s===-1)if(i||N){s=x+1;break}else B("string");for(f=s;r.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);d=["string",r.slice(x,s+1),x,s],x=s;break}case 64:{eo.lastIndex=x+1,eo.test(r),eo.lastIndex===0?s=r.length-1:s=eo.lastIndex-2,d=["at-word",r.slice(x,s+1),x,s],x=s;break}case 92:{for(s=x,u=!0;r.charCodeAt(s+1)===92;)s+=1,u=!u;if(o=r.charCodeAt(s+1),u&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(s+=1,Qf.test(r.charAt(s)))){for(;Qf.test(r.charAt(s+1));)s+=1;r.charCodeAt(s+1)===32&&(s+=1)}d=["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:B("comment")),d=["comment",r.slice(x,s+1),x,s],x=s):(to.lastIndex=x+1,to.test(r),to.lastIndex===0?s=r.length-1:s=to.lastIndex-2,d=["word",r.slice(x,s+1),x,s],A.push(d),x=s);break}}return x++,d}function _(T){M.push(T)}return{back:_,endOfFile:F,nextToken:w,position:L}}});var im=oe((nk,rm)=>{"use strict";var qy=$i(),jy=_r(),Ky=Cr(),Xy=vn(),tm=Yi(),Yy=em(),nm={empty:!0,space:!0};function Jy(e){for(let t=e.length-1;t>=0;t--){let n=e[t],r=n[3]||n[2];if(r)return r}}function ws(e,t,n){let r="";for(let i=t;i<n;i++)r+=e[i][1];return r}var Cs=class{constructor(t){this.input=t,this.root=new Xy,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 qy;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let r,i,o,a=!1,u=!1,s=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),r=t[0],r==="("||r==="["?l.push(r==="("?")":"]"):r==="{"&&l.length>0?l.push("}"):r===l[l.length-1]&&l.pop(),l.length===0)if(r===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){u=!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=""),u&&(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,u]of t.entries()){if(i=u,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 jy;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=Yy(this.input)}decl(t,n){let r=new Ky;this.init(r,t[0][2]);let i=t[t.length-1];i[0]===";"&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(i[3]||i[2]||Jy(t)),r.source.end.offset++;let o=0;for(;t[o][0]!=="word";)o===t.length-1&&this.unknownWord([t[o]]),o++;r.raws.before+=ws(t,0,o),r.source.start=this.getPosition(t[o][2]);let a=o;for(;o<t.length;){let f=t[o][0];if(f===":"||f==="space"||f==="comment")break;o++}r.prop=ws(t,a,o);let u=o,s;for(;o<t.length&&(s=t[o],o++,s[0]!==":");)s[0]==="word"&&/\\w/.test(s[1])&&this.unknownWord([s]);r.raws.between=ws(t,u,o),(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let l=o;for(;o<t.length;){let f=t[o][0];if(f!=="space"&&f!=="comment")break;o++}let d=t.slice(l,o);t=t.slice(o),this.precheckMissedSemicolon(t);for(let f=t.length-1;f>=0;f--){if(s=t[f],s[1].toLowerCase()==="!important"){r.important=!0;let p=this.stringFrom(t,f);p=this.spacesFromEnd(t)+p,p!==" !important"&&(r.raws.important=p);break}else if(s[1].toLowerCase()==="important"){let p=t.slice(0),g="";for(let y=f;y>0;y--){let x=p[y][0];if(g.trim().startsWith("!")&&x!=="space")break;g=p.pop()[1]+g}g.trim().startsWith("!")&&(r.important=!0,r.raws.important=g,t=p)}if(s[0]!=="space"&&s[0]!=="comment")break}t.some(f=>f[0]!=="space"&&f[0]!=="comment")&&(r.raws.between+=d.map(f=>f[1]).join(""),d=[]),this.raw(r,"value",d.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 tm;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++)}}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=[],u=t[1].startsWith("--"),s=[],l=t;for(;l;){if(r=l[0],s.push(l),r==="("||r==="[")o||(o=l),a.push(r==="("?")":"]");else if(u&&i&&r==="{")o||(o=l),a.push("}");else if(a.length===0)if(r===";")if(i){this.decl(s,u);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));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),a.length>0&&this.unclosedBracket(o),n&&i){if(!u)for(;s.length&&(l=s[s.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(s.pop());this.decl(s,u)}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,u=r.length,s="",l=!0,d,m;for(let f=0;f<u;f+=1)o=r[f],a=o[0],a==="space"&&f===u-1&&!i?l=!1:a==="comment"?(m=r[f-1]?r[f-1][0]:"empty",d=r[f+1]?r[f+1][0]:"empty",!nm[m]&&!nm[d]?s.slice(-1)===","?l=!1:s+=o[1]:l=!1):s+=o[1];if(!l){let f=r.reduce((p,g)=>p+g[1],"");t.raws[n]={raw:f,value:s}}t[n]=s}rule(t){t.pop();let n=new tm;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})}};rm.exports=Cs});var ro=oe((rk,om)=>{"use strict";var Qy=bt(),Zy=Tr(),ev=im();function no(e,t){let n=new Zy(e,t),r=new ev(n);try{r.parse()}catch(i){throw i}return r.root}om.exports=no;no.default=no;Qy.registerParse(no)});var Rs=oe((ik,am)=>{"use strict";var tv=bt(),{my:nv}=yr(),Mr=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){n.node[nv]||tv.rebuild(n.node);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}};am.exports=Mr;Mr.default=Mr});var io=oe((ok,sm)=>{"use strict";var rv=Rs(),Fr=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 rv(t,n);return this.messages.push(r),r}warnings(){return this.messages.filter(t=>t.type==="warning")}};sm.exports=Fr;Fr.default=Fr});var Ts=oe((ak,lm)=>{"use strict";var um={};lm.exports=function(t){um[t]||(um[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var Fs=oe((uk,mm)=>{"use strict";var iv=bt(),ov=zi(),av=_s(),sv=ro(),cm=io(),uv=vn(),lv=xr(),{isClean:Ye,my:cv}=yr(),sk=Ts(),dv={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},fv={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},mv={Once:!0,postcssPlugin:!0,prepare:!0},En=0;function Lr(e){return typeof e=="object"&&typeof e.then=="function"}function ks(e){let t=!1,n=dv[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 dm(e){let t;return e.type==="document"?t=["Document",En,"DocumentExit"]:e.type==="root"?t=["Root",En,"RootExit"]:t=ks(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function fm(e){let t=[e];for(;t.length>0;){let n=t.pop();if(n[Ye]=!1,n.nodes)for(let r of n.nodes)t.push(r)}return e}var Ms={},Ft=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=fm(n);else if(n instanceof e||n instanceof cm)i=fm(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=sv;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[cv]&&iv.rebuild(i)}this.result=new cm(t,i,r),this.helpers={...Ms,postcss:Ms,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(!fv[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!mv[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(Lr(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=[dm(t)];for(;n.length>0;){let r=this.visitTick(n);if(Lr(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 Lr(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=lv;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,u=>{a+=u}),this.result.css=a,this.result}let o=new av(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(Lr(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(Lr(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,u]=i[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===i.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=a;try{return u(r.toProxy(),this.helpers)}catch(s){throw this.handleError(s,r)}}if(n.iterator!==0){let a=n.iterator;n.descending&&(n.descending=!1,r.indexes[a]+=1);let u;for(;u=r.nodes[r.indexes[a]];){if(!u[Ye]){u[Ye]=!0,n.descending=!0,t.push(dm(u));return}r.indexes[a]+=1}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=[{eventIndex:0,events:ks(t),iterator:0,node:t}];for(;n.length>0;){let r=n[n.length-1],i=r.node;if(r.iterator!==0){let o=r.iterator;r.descending&&(r.descending=!1,i.indexes[o]+=1);let a,u=!1;for(;a=i.nodes[i.indexes[o]];){if(!a[Ye]){a[Ye]=!0,r.descending=!0,n.push({eventIndex:0,events:ks(a),iterator:0,node:a}),u=!0;break}i.indexes[o]+=1}if(u)continue;r.iterator=0,delete i.indexes[o]}if(r.eventIndex<r.events.length){let o=r.events[r.eventIndex];if(r.eventIndex+=1,o===En)i.nodes&&i.nodes.length&&(r.iterator=i.getIterator());else{let a=this.listeners[o];a&&this.visitSync(a,i.toProxy())&&n.pop()}continue}n.pop()}}warnings(){return this.sync().warnings()}};Ft.registerPostcss=e=>{Ms=e};mm.exports=Ft;Ft.default=Ft;uv.registerLazyResult(Ft);ov.registerLazyResult(Ft)});var hm=oe((ck,pm)=>{"use strict";var pv=_s(),hv=ro(),gv=io(),bv=xr(),lk=Ts(),Nr=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=hv;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=bv;this.result=new gv(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 pv(i,void 0,this._opts,n);if(a.isMap()){let[u,s]=a.generate();u&&(this.result.css=u),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[]}};pm.exports=Nr;Nr.default=Nr});var bm=oe((dk,gm)=>{"use strict";var xv=zi(),yv=Fs(),vv=hm(),Sv=vn(),Kt=class{constructor(t=[]){this.version="8.5.28",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 vv(this,t,n):new yv(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};gm.exports=Kt;Kt.default=Kt;Sv.registerProcessor(Kt);xv.registerProcessor(Kt)});var wm=oe((fk,_m)=>{"use strict";var xm=$i(),ym=_r(),Ev=bt(),Av=Vi(),vm=Cr(),Sm=zi(),_v=zf(),wv=Tr(),Cv=Fs(),Rv=Es(),Tv=Er(),kv=ro(),Ls=bm(),Mv=io(),Em=vn(),Am=Yi(),Fv=xr(),Lv=Rs();function le(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Ls(e)}le.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("zh")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let u=n(...a);return u.postcssPlugin=t,u.postcssVersion=new Ls().version,u}let o;return Object.defineProperty(i,"postcss",{get(){return o||(o=i()),o}}),i.process=function(a,u,s){return le([i(s)]).process(a,u)},i};le.stringify=Fv;le.parse=kv;le.fromJSON=_v;le.list=Rv;le.comment=e=>new ym(e);le.atRule=e=>new xm(e);le.decl=e=>new vm(e);le.rule=e=>new Am(e);le.root=e=>new Em(e);le.document=e=>new Sm(e);le.CssSyntaxError=Av;le.Declaration=vm;le.Container=Ev;le.Processor=Ls;le.Document=Sm;le.Comment=ym;le.Warning=Lv;le.AtRule=xm;le.Result=Mv;le.Input=wv;le.Rule=Am;le.Root=Em;le.Node=Tv;Cv.registerPostcss(le);_m.exports=le;le.default=le});function ci(){return globalThis}function I(e,t){if(typeof window>"u")return;let n=ci(),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 Tg=["seconds-time","rational-fps","seek-keep-playing","composition-manifest-v1","runtime-data"];function kg(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 Mg(e){let t=Number.isFinite(e)&&e>0?e:30,n=Number.isInteger(t)?1:1e6,r=Math.round(t*n),i=kg(r,n);return{numerator:r/i,denominator:n/i}}function Qo(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 di(e){return{protocolVersion:1,capabilities:Tg,fps:Mg(e)}}function Fg(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Tl(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=Qo(n.fps);return r===null||!Fg(n.capabilities)?{status:"unsupported",code:"invalid_protocol_metadata",receivedVersion:n.protocolVersion}:{status:"supported",fps:r,metadata:n}}var kl=30;function Ml(e){kl=Number.isFinite(e)&&e>0?e:30}function xe(e){try{window.parent.postMessage({...e,...di(kl)},"*")}catch(t){I("bridge.postMessage",t)}}var Lg=new Map(Object.entries({play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(Ng(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-idle-heartbeat":(e,t)=>t.onSetIdleHeartbeat(!!e.slow),"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=>Ig(e),"set-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onSetRuntimeData?.(e.channel,e.payload,e.requestId)},"clear-runtime-data":(e,t)=>{typeof e.channel=="string"&&t.onClearRuntimeData?.(e.channel,e.requestId)}}));function Ng(e,t){let n=Number(e.timeSeconds);if(Number.isFinite(n))return Math.max(0,n);let i=Qo(e.fps)??t.getCanonicalFps();return Math.max(0,Number(e.frame??0))/i}function Dg(e){let t=Tl(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 Ig(e){let t=e.selectors,n=e.duration||800;t&&Pg(t,n)}function Fl(e){let t=n=>{if(n.source!==window.parent&&n.source!==window)return;let r=n.data;if(!r||r.source!=="hf-parent"||r.type!=="control"||Dg(r))return;let i=r.action;if(typeof i!="string")return;let o=Lg.get(i);o&&o(r,e)};return window.addEventListener("message",t),xe({source:"hf-preview",type:"ready"}),t}function Pg(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){I("bridge.flashElements.querySelector",r)}}var _t=(e,t,n)=>e>=t&&e<n;var fi=(e,t,n,r)=>_t(e,t,n)||e>=t&&r>0&&n>=r-1e-6;var Ll="data-hf-first-pass-hide",Og="[data-start]:not(video, audio, img) { visibility: hidden !important; }";function Nl(){if(typeof document>"u")return;let e=window;if(e.__hfFirstPassHidden||e.__hyperframeRuntimeBootstrapped)return;let t=document.head??document.documentElement;if(!t)return;let n=document.createElement("style");n.setAttribute(Ll,""),n.textContent=Og,t.appendChild(n),e.__hfFirstPassHidden=!0}function Dl(){let e=window;if(!e.__hfFirstPassHidden)return!1;e.__hfFirstPassHidden=!1;for(let t of document.querySelectorAll(`style[${Ll}]`))t.remove();return!0}var Zo=null;function Il(e){Zo=e}function Ge(e,t){if(Zo)try{Zo({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){I("runtime.analytics.site1",n)}}function Hg(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 nn(e){return`--${Hg(e)}`}function Pl(e){let t=new Map;for(let n of e){let r=nn(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 Hl(){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,$n(i));let n=pi(),r={...t,...n};for(let i of e)ta(i,r);return r}var Ol=new Set;function Gl(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 Gg(e,t){return t?.trim()||e.getAttribute("data-composition-id")?.trim()||e.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()||"composition"}function Bg(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 Ug(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=Bg(e);return r.length===0||r.some(i=>String(i)===String(n))?null:{id:e.id,value:n,allowed:r}}function ta(e,t,n){if(!e)return;let r=Gl(e);if(r.length===0)return;let i=Gg(e,n);for(let o of r){let a=Ug(o,t);if(!a)continue;let u=`${i}|${a.id}|${String(a.value)}`;if(Ol.has(u))continue;Ol.add(u);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 $n(e){let t={};for(let n of Gl(e))typeof n.id!="string"||!("default"in n)||(t[n.id]=n.default);return t}var ea="data-hf-css-vars";function mi(e){return"style"in e&&typeof e.style?.setProperty=="function"}function na(e,t){if(!mi(e))return;let n=[];for(let[r,i]of Object.entries(t))if(typeof i=="string"&&i!==""||typeof i=="number"){let o=nn(r);e.style.setProperty(o,String(i)),n.push(o)}n.length>0&&e.setAttribute(ea,n.join(" "))}function Bl(e,t,n){let r={};for(let[i,o]of Object.entries(t)){let a=nn(i);((mi(e)?e.style.getPropertyValue(a):"")||(n?n.getComputedStyle(e).getPropertyValue(a):"")).trim()===""&&(r[i]=o)}return r}function Ul(e){if(!mi(e))return;let t=e.getAttribute(ea);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(ea)}}function Wl(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=pi(),r=[];for(let i of t)r.push(...Wg(i,n,e.defaultView));for(let i of Pl(r))console.warn(`composition variables ${i.join(", ")} collapse to the same CSS property ${nn(i[0]??"")} \\u2014 rename one to avoid cross-talk`)}function Wg(e,t,n){if(!mi(e))return[];let r=$n(e),i={};for(let[o,a]of Object.entries(r)){if(o in t)continue;let u=nn(o);(e.style.getPropertyValue(u)||(n?n.getComputedStyle(e).getPropertyValue(u):"")).trim()===""&&(i[o]=a)}for(let[o,a]of Object.entries(t))o in r&&(i[o]=a);return na(e,i),Object.keys(r)}function Vl(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 pi(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}var $l="http://www.w3.org/1999/xhtml";function ke(e){return e!=null&&e.nodeType===1}function pe(e){return ke(e)&&e.namespaceURI===$l}function rn(e,t){return pe(e)&&e.localName===t}function he(e){return rn(e,"video")}function ra(e){return rn(e,"audio")}function ge(e){return he(e)||ra(e)}function Le(e){return rn(e,"img")}function zn(e){return rn(e,"canvas")}function zl(e){return rn(e,"style")}function ql(e){return rn(e,"link")}function ia(e){return ke(e)&&(e.namespaceURI===$l||e.namespaceURI==="http://www.w3.org/2000/svg")}function jl(e){let t=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},r=l=>e?.resolveStartSeconds?e.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,i=(l,d)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(p){I("runtime.adapters.css.site5",p)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:d+f/1e3}:{unbounded:!0}},o=(l,d)=>{for(let m of l){try{m.currentTime=d}catch(f){I("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){I("runtime.adapters.css.site2",f)}}},a=l=>{for(let d of l)try{d.play()}catch(m){I("runtime.adapters.css.site3",m)}},u=l=>{for(let d of l)try{d.pause()}catch(m){I("runtime.adapters.css.site4",m)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let l=document.querySelectorAll("*");for(let d of l){if(!pe(d))continue;let m=window.getComputedStyle(d);!m.animationName||m.animationName==="none"||t.push({el:d,baseDelay:d.style.animationDelay||"",basePlayState:d.style.animationPlayState||"",animations:n(d)})}},getInferredDurationSeconds:()=>{let l=0;for(let d of t){if(!d.el.isConnected)continue;let m=r(d.el);for(let f of n(d.el)){let p=i(f,m);p.endSeconds!=null&&(l=Math.max(l,p.endSeconds))}}return l>0?l:null},seek:l=>{let d=Number(l.time)||0;for(let m of t){if(!m.el.isConnected)continue;let f=r(m.el),p=Math.max(0,d-f)*1e3,g=m.animations;if(g.length>0){o(g,p);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(p/1e3).toFixed(3)}s`}},pause:()=>{for(let l of t){if(!l.el.isConnected)continue;let d=l.animations;d.length>0&&u(d),s(l)}},play:()=>{for(let l of t)l.el.isConnected&&(s(l),a(l.animations))},revert:()=>{t=[]}}}function Kl(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 Xl(){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){I("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){I("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){I("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){I("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ql(e){let t=(n,r)=>{let i=hi(n)?n.wrapper:n.canvas,o=i&&typeof i.closest=="function"?i.closest("[data-composition-id]"):null;return!o||!e?.resolveStartSeconds?r:Math.max(0,r-e.resolveStartSeconds(o))};return{name:"lottie",discover:()=>{try{let n=window.lottie;if(n&&typeof n.getRegisteredAnimations=="function"){let r=n.getRegisteredAnimations();if(Array.isArray(r)&&r.length>0){let i=window.__hfLottie??[],o=new Set(i);for(let a of r)o.has(a)||i.push(a);window.__hfLottie=i}}}catch(n){I("runtime.adapters.lottie.site1",n)}},seek:n=>{let r=Math.max(0,Number(n.time)||0),i=window.__hfLottie;if(!(!i||i.length===0))for(let o of i)try{let a=t(o,r),u=o.loop===!0;if(hi(o)){let s=a*o.frameRate;o.totalFrames>0&&u?o.goToAndStop(Yl(s,o.totalFrames),!0):o.totalFrames>0&&s>=o.totalFrames?o.goToAndStop(o.totalFrames-1,!0):o.goToAndStop(a*1e3,!1)}else if(oa(o)){if(typeof o.setCurrentRawFrameValue=="function"){let s=o.totalFrames??0,l=o.frameRate??30,d=u&&s>0?Yl(a*l,s):a*l;s>0&&o.setCurrentRawFrameValue(Math.min(d,s-1))}else if(typeof o.seek=="function"){let s=o.duration??0;if(Number.isFinite(s)&&s>0){let l=Math.min(100,(u?a%s:a)/s*100);o.seek(l)}}}}catch(a){I("runtime.adapters.lottie.site2",a)}},pause:()=>{let n=window.__hfLottie;if(!(!n||n.length===0))for(let r of n)try{(hi(r)||oa(r))&&r.pause()}catch(i){I("runtime.adapters.lottie.site3",i)}},revert:()=>{},getInferredDurationSeconds:()=>{let n=window.__hfLottie;if(!n||n.length===0)return null;let r=0,i=!1;for(let o of n){let a=null;try{a=Vg(o)}catch(u){I("runtime.adapters.lottie.site4",u)}a!=null&&(i=!0,r=Math.max(r,a))}return i?r:null}}}function Yl(e,t){let n=e%t;return t-n<1e-6?0:n}function Jl(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function Vg(e){return hi(e)?Jl(e.totalFrames,e.frameRate):oa(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:Jl(e.totalFrames,e.frameRate):null}function hi(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function oa(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var aa=-1,gi=new Set,on,sa=0;function Zl(e){let t=[],n=!0,r={time:e,waitUntil:i=>{if(!n)throw new Error("hf-seek waitUntil() must be called synchronously from the event listener");t.push(i)}};try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:r}))}catch(i){I("runtime.adapters.seek-dispatch.site1",i)}finally{n=!1}t.length!==0&&qn(Promise.all(t))}function qn(e){let t=e.then(()=>({status:"fulfilled"})).catch(n=>({status:"rejected",reason:n}));gi.add(t),t.then(n=>{gi.delete(t)&&n.status==="rejected"&&on===void 0&&(on={reason:n.reason})})}function bi(e){e!==aa&&(aa=e,Zl(e))}function xi(e){aa=e,Zl(e)}function ec(){return sa>0}async function ua(){sa+=1;let e=on;try{for(await Promise.resolve();gi.size>0;){let r=(await Promise.all([...gi])).find(i=>i.status==="rejected");e===void 0&&r?.status==="rejected"&&(e={reason:r.reason})}let t=on;if(e===void 0&&(e=t),on===t&&(on=void 0),e)throw e.reason}finally{sa-=1}}function tc(){let e=null,t=0,n=null,r=null,i=null,o=null,a=()=>{if(typeof window>"u")return null;let d=window.THREE?.DefaultLoadingManager;return!d||typeof d!="object"||typeof d.itemsLoaded!="number"||typeof d.itemsTotal!="number"?null:d},u=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(d=>{l.onLoad=function(){try{i?.call(this)}finally{o=null,l.onLoad=i??null,d()}}}))},s=l=>{n!==l&&(n=l,r=l.onStart??null,i=l.onLoad??null,l.onStart=function(d,m,f){try{r?.call(this,d,m,f)}finally{u(l)}})};return{name:"three",discover:()=>{let l=a();l&&(s(l),u(l))},seek:l=>{e=Math.max(0,Number(l.time)||0),t=e,window.__hfThreeTime=e,bi(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let l=a();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||u(l),o)}}}function tt(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 nc(){return tt({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 rc(){return tt({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 ic(){return tt({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 oc(){return tt({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 ac(){return tt({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}var $g=250;function sc(){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&&(ec()||(window.__hfTypegpuTime=e,xi(e)))},$g))};return{name:"typegpu",discover:()=>{},seek:o=>{e=Math.max(0,Number(o.time)||0),t=e,window.__hfTypegpuTime=e,bi(e)},pause:()=>{e==null&&(e=Math.max(0,t)),i()},play:()=>{r(),e=null},revert:()=>{r(),e=null,t=0}}}var jn="data-hf-render-id",uc="data-hf-group-render-id";function zg(e){return e.getAttribute(jn)||e.id||null}var qg="__render_frame_",jg="__";function Kg(e){return`${qg}${e}${jg}`}function Xg(e){let t=zg(e);return t?Kg(t):null}function mt(e){let t=Xg(e);if(!t)return null;let n=document.getElementById(t);return Le(n)?n:null}function lc(e){let t=e.nextElementSibling;if(Le(t)&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;let n=mt(e);return n&&n.complete&&n.naturalWidth>0?n:null}function cc(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,r,i){if(he(n?.source)){let o=lc(n.source);if(o)return t.call(this,{...n,source:o},r,i)}return t.call(this,n,r,i)}}function dc(){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(...u){let s=u.length-1,l=u[s];if(he(l)){let d=lc(l);d&&(u[s]=d)}return o.apply(this,u)};a.__hfVideoPatched=!0,r[i]=a}}}var Vt="data-fx-chain",aC=Vt.slice(5),fc=1,Kn=(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}),la=(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}),yi=(e=-40,t=40,n=0)=>({kind:"number",key:"gain",label:"Gain",unit:"dB",min:e,max:t,step:.1,default:n,automatable:!0}),mc={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."},hc=[{id:"gain",label:"Gain",group:"dynamics",description:"Raise or lower the whole signal. Automate it to duck under something else.",params:[yi(-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:[Kn("frequency","Frequency",1e3),yi(-40,40,0),la(1)],web:"biquad-peaking"},{id:"lowshelf",label:"Low Shelf",group:"filter",description:"Lift or drop everything below the corner frequency.",params:[Kn("frequency","Frequency",200,20,2e3),yi(-40,40,0)],web:"biquad-lowshelf"},{id:"highshelf",label:"High Shelf",group:"filter",description:"Lift or drop everything above the corner frequency.",params:[Kn("frequency","Frequency",4e3,500,2e4),yi(-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:[Kn("frequency","Cutoff",300,20,2e4),la(.707),mc],web:"biquad-highpass"},{id:"lowpass",label:"Low-pass",group:"filter",description:"Remove high frequencies \\u2014 darkens or muffles a track.",params:[Kn("frequency","Cutoff",8e3,100,2e4),la(.707),mc],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"}],ca=new Map(hc.map(e=>[e.id,e]));function Xn(e){return ca.get(e)}var sC=hc.map(e=>e.id);function Yn(e,t){let n=ca.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];if(i.kind==="enum"){let u=i.options.some(s=>s.value===o);r[i.key]=u?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 wt=class extends Error{constructor(t){super(t),this.name="AudioFxChainError"}};function gc(e){let t;try{t=JSON.parse(e)}catch(i){throw new wt(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new wt("Chain file must be a JSON object.");let n=t;if(n.version!==fc)throw new wt(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new wt("Chain file is missing a `nodes` array.");let r=n.nodes.map(Yg);return{version:fc,nodes:r}}function Jn(e){return e.nodes.filter(t=>t.enabled!==!1)}function Yg(e,t){if(typeof e!="object"||e===null)throw new wt(`Node ${t} is not an object.`);let n=e;if(typeof n.type!="string"||!ca.has(n.type))throw new wt(`Node ${t} has unknown effect type: ${String(n.type)}`);return Qg({type:n.type,id:vi(n.id),fromCarve:pc(n.fromCarve),fromPreset:vi(n.fromPreset),label:vi(n.label),fromEq:vi(n.fromEq),fromLeveller:pc(n.fromLeveller),presetAmount:Jg(n.presetAmount),enabled:n.enabled!==!1,params:Yn(n.type,n.params??void 0)})}function vi(e){return typeof e=="string"&&e?e:void 0}function pc(e){return e===!0?!0:void 0}function Jg(e){if(!(typeof e!="number"||!Number.isFinite(e)))return Math.min(1,Math.max(0,e))}function Qg(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}function Zg(e){return 10**(e/20)}var da=Zg(12);function Be(e){return Number.isFinite(e)?Math.max(0,Math.min(da,e)):1}function Si(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function bc(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,Si(o))}});try{return t()}finally{delete e.volume,i.call(e,Si(o))}}var an=Object.freeze({start:"data-start",duration:"data-duration",trackIndex:"data-track-index",derivedEnd:"data-end",legacyTrack:"data-layer"}),cC=Object.freeze([an.start,an.duration,an.trackIndex]),dC=Object.freeze([an.derivedEnd]),fC=Object.freeze([an.derivedEnd,an.legacyTrack]);function Ct(e){if(e==null||e.trim()==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}var yc=/^[A-Za-z0-9_.:-]+$/;function vc(e,t){let n=e.charCodeAt(t);return n>=48&&n<=57}function xc(e,t){let n=t;for(;n>=0&&vc(e,n);)n--;return n}function eb(e,t){let n=t;for(;n>=0&&(e[n]??"").trim()==="";)n--;return n}function tb(e){let t=e.length-1;if(!vc(e,t))return null;let n=xc(e,t);return e[n]==="."&&(n=xc(e,n-1)),n+1}function nb(e){let t=tb(e);if(t==null)return null;let n=eb(e,t-1),r=e[n];if(r!=="+"&&r!=="-")return null;let i=e.slice(0,n).trim();if(!yc.test(i))return null;let o=Number(e.slice(t));return Number.isFinite(o)?{refId:i,operator:r,magnitude:o}:null}function fa(e){let t=(e??"").trim();if(!t)return null;let n=Ct(t);if(n!=null)return{kind:"absolute",value:n};if(yc.test(t))return{kind:"reference",refId:t,offset:0};let r=nb(t);return r?{kind:"reference",refId:r.refId,offset:r.operator==="-"?-r.magnitude:r.magnitude}:null}var Sc=e=>{let t=Ct(e);return t!==null&&t>=0?t:null};function Ec(e){return Sc(e("data-playback-start"))??Sc(e("data-media-start"))??0}var Qn=.1,Zn=10;function ma(e){return Number.isFinite(e)&&e>0?Math.max(Qn,Math.min(Zn,e)):1}function Ac(e,t=1){let n=Number.parseFloat(e("data-playback-rate")??"");return ma(Number.isFinite(n)&&n>0?n:t)}function pa(e){let t=Ct(e("data-duration"));return t!==null&&t>0?t:null}function _c(e,t){let n=pa(e);if(n!==null)return n;let r=Ct(e("data-end"));return r!==null?r-t:null}var rb=3;function ha(e,t,n){return Number.isFinite(e)?Math.max(0,e-t)/ma(n):null}function ga(e){let{tag:t,authoredDurationSeconds:n,sourceDurationSeconds:r,mediaStartSeconds:i,playbackRate:o}=e;if(n!==null&&n>0)return{seconds:n,source:"authored"};if(t==="img")return{seconds:rb,source:"default"};if(r===null)return{seconds:null,source:"pending",reason:"source duration not yet probed"};let a=ha(r,i,o);return a===null?{seconds:null,source:"pending",reason:"source reported a non-finite duration"}:{seconds:a,source:"media"}}var ht="data-automation",EC=ht.slice(5),Ei=1,ib=512,pt=class extends Error{constructor(t){super(t),this.name="AudioAutomationError"}},sn="volume",Ai="rate";function tr(e){if(e===sn)return{kind:"volume"};if(e===Ai)return{kind:"rate"};let t=e.split(".");if(t.length===3&&t[0]==="fx"&&t[1]===ob){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 ob="preset";var ab={min:0,max:1,step:.01,unit:"",label:"Amount",scale:"linear",default:1},_i={min:0,max:da,step:.01,unit:"",label:"Volume",scale:"linear",default:1},wc={min:Qn,max:Zn,step:.05,unit:"x",label:"Speed",scale:"log",default:1};function ba(e,t){let n=tr(e);if(!n)return null;if(n.kind==="volume")return _i;if(n.kind==="rate")return wc;if(n.kind==="preset")return t?.nodes.some(u=>u.fromPreset===n.presetId)?{...ab,label:`${n.presetId} \\xB7 Amount`}:null;let r=t?.nodes.find(a=>a.id===n.nodeId);if(!r)return null;let i=Xn(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 er(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 sb(e){let t=er(e);return t===null||t===0?0:Math.min(1,Math.max(-1,t))}function Cc(e,t){let n=er(e),r=er(t);if(n===null||r===null)return null;let i=u=>Math.min(.999,Math.max(.001,u)),o=i(n),a=i(r);return Math.abs(o-a)<1e-6?null:{x:o,y:a}}function ub(e){let t=sb(e?.curve),n=Cc(e?.viaX,e?.viaY);return{...t?{curve:t}:{},...n?{viaX:n.x,viaY:n.y}:{}}}function lb(e,t){let n=er(e?.t),r=er(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,...ub(e)}}function Rc(e,t){let n=e.map(i=>lb(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,ib)}function cb(e){let t=[];for(let n of e.lanes){if(!tr(n.target))continue;let r=n.target===sn?_i:n.target===Ai?wc:null,i=Rc(n.points??[],r);i.length>0&&t.push({target:n.target,points:i})}return{version:Ei,lanes:t}}function Tc(e,t){let n=[];for(let r of e.lanes){let i=ba(r.target,t);if(!i)continue;let o=Rc(r.points,i);o.length>0&&n.push({target:r.target,points:o})}return{version:Ei,lanes:n}}function wi(e){let t;try{t=JSON.parse(e)}catch(i){throw new pt(`Automation is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new pt("Automation must be a JSON object.");let n=t;if(n.version!==Ei)throw new pt(`Unsupported automation version: ${String(n.version)}`);if(!Array.isArray(n.lanes))throw new pt("Automation is missing a `lanes` array.");let r=n.lanes.map((i,o)=>{if(typeof i!="object"||i===null)throw new pt(`Lane ${o} is not an object.`);let a=i;if(typeof a.target!="string"||!tr(a.target))throw new pt(`Lane ${o} has an unreadable target: ${String(a.target)}`);if(!Array.isArray(a.points))throw new pt(`Lane ${o} is missing a \\`points\\` array.`);return{target:a.target,points:a.points}});return cb({version:Ei,lanes:r})}function db(e,t){return t?Math.pow(e,Math.pow(2,2*t)):e}function fb(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,u=r>0?r/(i-t):r<0?-r/(t-(1-i)):0,s=Math.min(o,Math.max(1,a,u));return{cx:e+n/s,cy:t+r/s,w:s}}function mb(e,t,n){let{cx:r,cy:i,w:o}=fb(t,n),a=2-2*o,u=e*a-1+2*o*r,s=-e*a-2*o*r,l=pb(u,s,e),d=1-l,m=d*d+2*o*l*d+l*l;return m>0?(2*o*i*l*d+l*l)/m:e}function pb(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=u=>u>=-1e-9&&u<=1+1e-9;return a(i)?Math.min(1,Math.max(0,i)):a(o)?Math.min(1,Math.max(0,o)):n}function hb(e,t){let n=Cc(t.viaX,t.viaY);return n?mb(Math.min(1,Math.max(0,e)),n.x,n.y):db(e,t.curve)}function gb(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 gt(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,u=r.length-1;for(;u-a>1;){let m=a+u>>1;r[m].t<=t?a=m:u=m}let s=r[a],l=r[u],d=l.t-s.t;return d<=0?l.v:gb(s.v,l.v,hb((t-s.t)/d,s),n)}function kc(e){return e.points.length<=1||e.points.every(t=>t.v===e.points[0].v)}function Mc(e,t,n,r,i="linear"){let o=Math.max(2,Math.floor(r)),a=new Float32Array(o),u=n-t;for(let s=0;s<o;s+=1)a[s]=gt(e,t+u*s/(o-1),i);return a}var Ci=new Map,bb=64;function xa(e,t=sn){let n=`${t}\\0${e}`,r=Ci.get(n);if(r!==void 0)return r;let i=null;try{i=wi(e).lanes.find(o=>o.target===t)??null}catch{i=null}return Ci.size>bb&&Ci.clear(),Ci.set(n,i),i}function Fc(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(ht):null)??"";if(!n)return null;let r=xa(n);return!r||r.points.length===0?null:gt(r,t)}var Lc=48,Nc=new WeakMap;function xb(e){let t=e.points,n=t[0].v,r=t[t.length-1].v,i=[0],o=[0],a=s=>{let l=i[i.length-1];if(s<=l)return;let d=gt(e,l,"log");i.push(s),o.push(o[o.length-1]+(d+gt(e,s,"log"))/2*(s-l))},u=Math.max(0,t[0].t);a(u);for(let s=1;s<t.length;s+=1){let l=t[s-1].t,d=t[s].t;if(!(d<=0))for(let m=1;m<=Lc;m+=1)a(Math.max(l,0)+(d-l)*m/Lc)}return{ts:Float64Array.from(i),ss:Float64Array.from(o),firstRate:n,lastRate:r}}function Dc(e){let t=Nc.get(e);return t||(t=xb(e),Nc.set(e,t)),t}function ya(e){return typeof e!="number"&&e.points.length>0}function Ic(e,t){return typeof e=="number"?e:ya(e)?gt(e,t,"log"):1}function Pc(e,t,n){let r=0,i=e.length-1;for(;i-r>1;){let o=r+i>>1;e[o]<=n?r=o:i=o}return t[r]+(t[i]-t[r])*(n-e[r])/(e[i]-e[r])}function Ri(e,t){if(typeof e=="number")return t*e;if(!ya(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=Dc(e),a=n.length-1;return t<=0?t*i:t>=n[a]?r[a]+(t-n[a])*o:Pc(n,r,t)}function un(e,t){if(typeof e=="number")return t/e;if(!ya(e))return t;let{ts:n,ss:r,firstRate:i,lastRate:o}=Dc(e),a=n.length-1;return t<=0?t/i:t>=r[a]?n[a]+(t-r[a])/o:Pc(r,n,t)}function yb(e){return e?xa(e,Ai):null}function Oc(e,t){return yb(e)??t}function Hc(){let e=!1,t=0,n=!1,r,i,o,a=new Set,u=new WeakMap,s=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let A=Number(x.currentTime);return Number.isFinite(A)&&A>0?A:0},d=(x,A)=>A<=0?x:x>=A?Math.max(0,x-A):x,m=(x,A)=>{let M=u.get(x);if(M)return M;let C={compositionTimeMs:A,animationTimeMs:e?d(l(x),A):l(x)};return u.set(x,C),C},f=(x,A)=>{if(!a.has(x)){a.add(x);let M=()=>{a.delete(x)};try{x.addEventListener("finish",M,{once:!0}),x.addEventListener("cancel",M,{once:!0})}catch(C){I("runtime.adapters.waapi.site4",C)}}m(x,A)},p=(x,A)=>{for(let M of x)f(M,A)},g=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let A=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:A,configurable:!0});let M=function(...C){let L=A.apply(this,C);return f(L,t),L};x.animate=M,r=x,i=A,o=M,n=!0}catch{}},y=x=>{let A=null;try{A=x.effect?.getComputedTiming?.()??null}catch(L){I("runtime.adapters.waapi.site4",L)}if(!A)return{};let M=Number(A.endTime);return Number.isFinite(M)?{endSeconds:(u.get(x)?.compositionTimeMs??0)/1e3+M/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,g(),p(s(),t)},seek:x=>{let A=Math.max(0,(Number(x.time)||0)*1e3);t=A,(!e||a.size>0)&&p(s(),e?A:0);for(let M of a){let C=e?m(M,A):m(M,0),L=C.animationTimeMs+Math.max(0,A-C.compositionTimeMs);try{M.currentTime=L}catch(B){I("runtime.adapters.waapi.site1",B)}try{M.pause()}catch(B){I("runtime.adapters.waapi.site2",B)}}},pause:()=>{e||p(s(),t);for(let x of a)try{x.pause()}catch(A){I("runtime.adapters.waapi.site3",A)}},revert:()=>{if(a.clear(),u=new WeakMap,e=!1,t=0,r&&i&&o&&r.animate===o)try{r.animate=i,r.__hfOriginalAnimate===i&&delete r.__hfOriginalAnimate}catch(x){I("runtime.adapters.waapi.site5",x)}r=void 0,i=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let A of s()){let M=y(A);M.endSeconds!=null&&(x=Math.max(x,M.endSeconds))}return x>0?x:null}}}function Me(e){return Ct(e)}function Pe(e){return Ac(t=>e.getAttribute(t),ge(e)?e.defaultPlaybackRate:1)}function Rt(e){return Oc(e.getAttribute("data-automation"),Pe(e))}function Ti(e){return Ec(t=>e.getAttribute(t))}function nt(e,t){return vb(t,Ti(e),Rt(e))}function ki(e){let t=ga({tag:"video",authoredDurationSeconds:pa(n=>e.getAttribute(n)),sourceDurationSeconds:Number.isFinite(e.duration)?e.duration:null,mediaStartSeconds:Ti(e),playbackRate:Pe(e)});return t.source==="media"?nt(e,e.duration):t.seconds}function ln(e,t=0){return!Le(e)||!e.hasAttribute("data-start")&&!e.hasAttribute("data-track-index")?null:ga({tag:"img",authoredDurationSeconds:_c(n=>e.getAttribute(n),t),sourceDurationSeconds:null,mediaStartSeconds:0,playbackRate:1}).seconds}function vb(e,t,n){return typeof n=="number"?ha(e,t,n):Number.isFinite(e)?un(n,Math.max(0,e-t)):null}var cn="data-hf-authored-duration",dn="data-hf-authored-end";function nr(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 fn(e){let t=nr(e.start);if(t==null)return null;let n=Math.max(0,t),r=nr(e.duration),i=nr(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=nr(e.end),u=nr(e.authoredEnd),s=a!=null&&a>n?a:u!=null&&u>n?u:null;return{start:n,duration:s==null?null:s-n,end:s}}var Mi="data-hf-media-start-basis";function Sb(e){return e?.trim().toLowerCase()==="global"?"global":"local"}function Eb(e){return Sb(e.basis)==="global"?e.authoredStart:e.hostStart+e.authoredStart}function Gc(e){return e.hasAutoStart||e.authoredStart==null||e.hostStart<=0?e.ordinaryStart():Eb({authoredStart:e.authoredStart,hostStart:e.hostStart,basis:e.basis})}function Ue(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,r=e.documentRef??document,i=new WeakMap,o=new WeakMap,a=new Set,u=f=>{let p=r.getElementById(f);return p||(r.querySelector(`[data-composition-id="${CSS.escape(f)}"]`)??null)},s=f=>{let p=o.get(f);if(p!==void 0)return p;let g=null,y=fn({start:0,duration:f.getAttribute("data-duration"),authoredDuration:n?f.getAttribute("data-hf-authored-duration"):null});if(y?.duration!=null&&y.duration>0&&(g=y.duration),g==null||g<=0){let x=d(f,0),A=fn({start:x,end:f.getAttribute("data-end"),authoredEnd:n?f.getAttribute("data-hf-authored-end"):null});A?.duration!=null&&A.duration>0&&(g=A.duration)}if((g==null||g<=0)&&ge(f)&&(g=nt(f,f.duration)),(g==null||g<=0)&&(g=ln(f)),g==null||g<=0){let x=f.getAttribute("data-composition-id");if(x){let A=t[x]??null;if(A&&typeof A.duration=="function")try{let M=Number(A.duration());Number.isFinite(M)&&M>0&&(g=M)}catch(M){I("runtime.startResolver.site1",M)}}}return g!=null&&Number.isFinite(g)&&g>0?(o.set(f,g),g):(o.set(f,null),null)},l=(f,p)=>{if(f.hasAttribute("data-composition-id")){let y=f.parentElement?.closest("[data-composition-id]");return y?d(y,p):0}let g=f.closest("[data-composition-id]");return g?d(g,p):0},d=(f,p)=>{let g=i.get(f);if(g!==void 0)return g??p;if(a.has(f))return p;a.add(f);try{let y=fa(f.getAttribute("data-start"));if(!y){if(f.hasAttribute("data-composition-id")){let L=f.parentElement;if(L&&(L.hasAttribute("data-composition-src")||L.hasAttribute("data-composition-id")||L.hasAttribute("data-composition-file"))){let B=d(L,p);return i.set(f,B),B}}return i.set(f,p),p}if(y.kind==="absolute"){let L=Math.max(0,y.value),B=Math.max(0,l(f,p)+L);return i.set(f,B),B}let x=u(y.refId);if(!x)return i.set(f,p),p;let A=d(x,0),M=s(x);if(M==null||M<=0){let L=Math.max(0,A+y.offset);return i.set(f,L),L}let C=Math.max(0,A+M+y.offset);return i.set(f,C),C}finally{a.delete(f)}};return{resolveStartForElement:(f,p=0)=>d(f,Math.max(0,p)),resolveDurationForElement:f=>s(f),resolveMediaStartForElement:f=>{let p=f.closest("[data-composition-id]"),g=p?d(p,0):0;return Gc({authoredStart:Me(f.getAttribute("data-start")),hostStart:g,hasAutoStart:f.hasAttribute("data-hf-auto-start"),basis:f.getAttribute(Mi),ordinaryStart:()=>d(f,g)})}}}function Ab(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:Be(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:Be(n)}),i}function Bc(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 _b(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 wb(e){let t=Number.parseFloat(e??"");return Number.isFinite(t)?t:void 0}function Cb(e,t){let n=Ue({timelineRegistry:window.__timelines,includeAuthoredTimingAttrs:!0}).resolveMediaStartForElement(e),r=Me(e.dataset.end)??void 0,i=Me(e.dataset.duration)??void 0,o=t;i!==void 0&&i>0?o=n+i:r!==void 0&&r>n&&(o=r);let a=wb(e.dataset.volume)??1;return{start:n,end:o,staticVolume:Be(a)}}function Rb(e,t,n,r,{start:i,end:o,staticVolume:a}){let u=1/Math.min(60,Math.max(1,r)),s=Math.max(0,i),l=Math.min(n,o),d=bc(e,()=>{e.volume=a;let f=[],p;for(let g=s;g<=l+1e-6;g=Math.min(l,g+u)){t(g);let y=Number(e.volume);if(Number.isFinite(y)){let x={time:Number(g.toFixed(6)),volume:Number(Be(y).toFixed(6))};_b(f,p,x,g===l),p=x}if(g===l)break}return f});return d.some(f=>Math.abs(f.volume-a)>1e-4)?d:null}function Uc(e,t,n,r,i={}){if(i.allowLiveTimelineSeek===!1||!t||!ge(e)||n<=0)return;let o=l=>{try{typeof t.totalTime=="function"?t.totalTime(l,!0):typeof t.seek=="function"&&t.seek(l,!0)}catch{}},a=typeof t.totalTime=="function"?Number(t.totalTime()):typeof t.seek=="function"?Number(t.seek()):0,u=Cb(e,n),s=Rb(e,o,n,60,u);if(Number.isFinite(a)&&o(a),s){let l=Ab(s,u.start,u.staticVolume);l.length>0&&r.set(e,l)}}var $c="data-fade-in",zc="data-fade-out",ZC=$c.slice(5),eR=zc.slice(5),qc=Object.freeze({fadeIn:0,fadeOut:0});function va(e){return Number.isFinite(e)&&e>0?e:0}function Wc(e){return e==null||e===""?0:va(Number.parseFloat(e))}function jc(e){return{fadeIn:Wc(e.getAttribute($c)),fadeOut:Wc(e.getAttribute(zc))}}function Tb(e,t){let n=va(e.fadeIn),r=va(e.fadeOut);if(!Number.isFinite(t)||t<=0)return{fadeIn:n,fadeOut:r};let i=n+r;if(i<=t)return{fadeIn:n,fadeOut:r};let o=t/i;return{fadeIn:n*o,fadeOut:r*o}}function Kc(e,t,n){if(!Number.isFinite(e))return 1;let{fadeIn:r,fadeOut:i}=Tb(n,t),o=1;return r>0&&(o*=Vc(e/r)),i>0&&Number.isFinite(t)&&(o*=Vc((t-e)/i)),o}function Vc(e){return!Number.isFinite(e)||e<0?0:e>1?1:e}var mn="hf-audio-group",Fi="data-audio-group";function Sa(e){let t=e?.getAttribute("data-volume"),n=t?parseFloat(t):1;return Number.isFinite(n)?n:1}function Ea(e,t){let n=Array.from(e?.querySelectorAll?.(`${mn}[${jn}]`)??[]).find(i=>i.getAttribute(jn)===t);if(n)return n;let r=e?.getElementById(t)??null;return r&&r.tagName?.toLowerCase()===mn?r:null}function Li(e,t){let n=t?.getAttribute?.(uc)??t?.getAttribute?.(Fi);return n?Ea(e,n)?.hasAttribute("data-hidden")??!1:!1}function Xc(e){return typeof e.tagName!="string"||e.tagName.toLowerCase()!=="audio"||typeof e.getAttribute!="function"?null:e.getAttribute(Fi)||null}function Yc(e){let t="__hf-audio-group-inert";if(!e?.head||e.getElementById(t))return;let n=e.createElement("style");n.id=t,n.textContent=`${mn}{display:none!important}`,e.head.appendChild(n)}function rt(e){return Ti(e)}var Jc=["seeked","loadeddata","suspend","error","emptied","abort"],kb=5e3,Ni=new WeakMap;function Qc(e){let t=e.readyState<e.HAVE_CURRENT_DATA&&e.networkState===e.NETWORK_LOADING&&!window.__HF_EXPORT_RENDER_SEEK_CONFIG;e.tagName!=="VIDEO"||!(e.seeking||t)||mt(e)||(Ni.get(e)?.(),qn(new Promise(n=>{let r=o=>{if(!((o?.type==="loadeddata"||o?.type==="suspend")&&e.seeking)){clearTimeout(i);for(let a of Jc)e.removeEventListener(a,r,!0);Ni.get(e)===r&&Ni.delete(e),n()}},i=setTimeout(r,kb);for(let o of Jc)e.addEventListener(o,r,!0);Ni.set(e,r)})))}function Zc(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 ed(e){let t=e?.elements??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 u=e?.resolveStartSeconds?e.resolveStartSeconds(a):Number.parseFloat(a.dataset.start??"0");if(!Number.isFinite(u))continue;let s=rt(a),l=Pe(a),d=Rt(a),m=a.loop,f=Number.isFinite(a.duration)&&a.duration>0?a.duration:null,p=e?.resolveDurationSeconds?.(a)??Number.parseFloat(a.dataset.duration??"");(!Number.isFinite(p)||p<0)&&f!=null&&(p=Math.max(0,un(d,f-s)));let g=Number.isFinite(p)&&p>=0,y=g?u+p:Number.POSITIVE_INFINITY,x=Number.parseFloat(a.dataset.volume??""),A={el:a,start:u,mediaStart:s,duration:g?p:Number.POSITIVE_INFINITY,end:y,volume:Number.isFinite(x)?x:null,playbackRate:l,rate:d,loop:m,sourceDuration:f,fades:jc(a)};r.push(A),a.tagName==="VIDEO"&&i.push(A),Number.isFinite(y)&&(o=Math.max(o,y))}return{timedMediaEls:n,mediaClips:r,videoClips:i,maxMediaEnd:o}}var _a=new WeakMap,Di=new WeakMap,rr=new WeakMap,wa=new WeakSet,pn=new WeakSet;function Mb(e){if(pn.has(e))return;pn.add(e);let t=()=>pn.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Fb=3;function Lb(e){return e.error!=null||e.networkState===Fb}var Ca=new WeakMap;function Aa(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function Ra(e){_a.delete(e),Di.delete(e),rr.delete(e),wa.delete(e),Ca.delete(e)}function td(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:r}=n;if(!r.isConnected)continue;let i=n.rate??n.playbackRate,o=r.tagName==="VIDEO"&&!n.loop,a=_t(e.timeSeconds,n.start,n.end),u=o&&!a&&e.timeSeconds>=n.end&&fi(e.timeSeconds,n.start,n.end,e.getCompositionDuration()),s=Ri(i,Math.min(e.timeSeconds,n.end)-n.start)+n.mediaStart,l=u||o&&n.sourceDuration!=null&&s>=n.sourceDuration&&a;l&&n.sourceDuration!=null&&(s=Math.min(s,n.sourceDuration));let d=Di.get(r),m=r.tagName==="AUDIO"&&(d===void 0||s<d-.04),f=!n.loop&&n.sourceDuration!=null&&s>=n.mediaStart&&s<n.sourceDuration&&(o||m);if((a||u)&&s>=0&&(!r.ended||n.loop||l||f)){if(Di.set(r,s),n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let O=n.sourceDuration-n.mediaStart;O>0&&s>=n.sourceDuration&&(s=n.mediaStart+(s-n.mediaStart)%O)}let y=Aa(e.userVolume??1),x=Be(n.volume??1),A=Ca.get(r),M=Aa(r.volume),C,L=Fc(r,e.timeSeconds-n.start);if(L!==null)C=Be(L);else if(n.volumeKeyframes&&n.volumeKeyframes.length>0){let O=e.timeSeconds-n.start;C=Be(Bc(n.volumeKeyframes,O))}else e.isWebAudioRouted?.(r)?C=x:A===void 0?C=x>1?x:M:Math.abs(M-A)>1e-4?C=M:C=x;let B=n.fades??qc;(B.fadeIn>0||B.fadeOut>0)&&(C*=Kc(e.timeSeconds-n.start,n.duration,B));let w=r.closest("[data-hidden]")!==null||Li(r.ownerDocument,r)?0:Aa(C*y);r.volume=w,Ca.set(r,w),e.onElementVolume?.(r,w,C),(t||e.isWebAudioOwned?.(r))&&(r.muted=!0),r.preload!=="auto"&&(r.preload="auto");try{r.playbackRate=Ic(i,e.timeSeconds-n.start)*e.playbackRate}catch(O){I("runtime.media.site1",O)}let _=.04,T=2,N=r.currentTime||0,W=Math.abs(N-s),X=s-N,Y=_a.get(r);_a.set(r,X);let R=Y===void 0,S=!R&&Math.abs(X-Y)>.5,H=W>3,q=r.tagName==="AUDIO"&&R&&N-s>_,U=l&&W>.001||r.ended&&f&&W>.001||q||W>.5&&(R||S||H),V=r.tagName==="VIDEO"&&!r.paused&&e.playing,$=Y!==void 0&&Math.abs(X-Y)<.004,G=!1;if(!V&&!U&&!R&&$&&W>_){let O=(rr.get(r)??0)+1;rr.set(r,O),O>=T&&(G=!0,rr.set(r,0))}else W<=_&&rr.set(r,0);let P=!V&&e.forceSync&&W>.02;if(U||G||P){if(!(r.tagName==="VIDEO"&&!!mt(r))){try{r.currentTime=s}catch(Z){I("runtime.media.site2",Z)}if(Math.abs(r.currentTime-s)>.5&&!wa.has(r)){wa.add(r),r.load();try{r.currentTime=s}catch(Z){I("runtime.media.site3",Z)}}Qc(r)}pn.delete(r)}else e.playing||Qc(r);l?r.paused||r.pause():e.playing&&r.paused&&!pn.has(r)&&!Lb(r)?(Mb(r),r.play().catch(O=>{pn.delete(r),(O&&typeof O=="object"&&"name"in O?String(O.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!r.paused&&r.pause();continue}let g=_t(e.timeSeconds,n.start,n.end);Ra(r),g&&Di.set(r,s),r.paused||r.pause()}}var Nb="hf-proxy",nd="runtime_media_proxy_fallback",rd="runtime_media_proxy_unavailable",ir=new WeakSet,id=new WeakSet;function Ii(e){return e.currentSrc||e.src}function Ta(e){return window.__HF_EXPORT_RENDER_SEEK_CONFIG?!0:he(e)&&!!mt(e)}function ka(e){let t=Ii(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 Db(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 Ib(e,t){let n=e.normalize("NFC").toLowerCase(),r=-1,i=null,o=!1;for(let[a,u]of Object.entries(t)){let s=a.normalize("NFC").toLowerCase();n.endsWith(s)&&(s.length>r?(r=s.length,i=u,o=!1):s.length===r&&(o=!0))}return o?null:i}function Ma(e,t){return t[e]??Db(e,t)??Ib(e,t)}function Pb(e,t){let n=new URL(e,document.baseURI);return n.searchParams.set(Nb,t?t.hasAlpha?"vp8":"h264":"auto"),n.href}var Ob={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 $t(e,t,n){if(id.has(e))return;id.add(e);let r=Ob[t];xe({source:"hf-preview",type:"diagnostic",code:rd,details:{asset:n,codecName:null,reason:t,note:r}}),console.info(`[hyperframes] ${rd}: "${n}" (${t}): ${r}`)}function Fa(e,t=null,n="reactive"){if(ir.has(e))return;let r=Ii(e),i;try{i=Pb(r,t)}catch(u){I("runtime.mediaProxy.swap",u),$t(e,"invalid_source_url",r);return}ir.add(e),Ra(e),e.src=i,e.load();let o=t?.codecName??null;xe({source:"hf-preview",type:"diagnostic",code:nd,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] ${nd}: "${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 od(e){if(Ta(e)||!he(e)||ir.has(e))return;let t=window.__HF_MEDIA_CODEC_MAP__;if(!t)return;let n=ka(e);if(n===null)return;let r=Ma(n,t);if(!r||!r.browserHostile)return;let i=r.representativeMime?e.canPlayType(r.representativeMime):"";i==="probably"||i==="maybe"||Fa(e,r,"proactive")}function ad(e){if(Ta(e)||!he(e)||e.videoWidth!==0)return;let t=Ii(e);if(ir.has(e)){$t(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=ka(e);if(r===null){$t(e,"cross_origin",t);return}let i=Ma(r,n);if(i&&!i.browserHostile){$t(e,"browser_safe_codec",t);return}Fa(e,i,"reactive")}function sd(e){if(Ta(e)||!he(e))return;let t=Ii(e);if(ir.has(e)){$t(e,"proxy_playback_failed",t);return}let n=window.__HF_MEDIA_CODEC_MAP__;if(!n)return;let r=ka(e);if(r===null){$t(e,"cross_origin",t);return}let i=Ma(r,n);if(i&&!i.browserHostile){$t(e,"browser_safe_codec",t);return}Fa(e,i,"tertiary")}var Ce=class extends Error{constructor(n,r=null){super(r==null?n:`${n} at line ${r}`);ue(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=r}},Hb=[0,0,0],Gb=[1,1,1],Pi=64;function Bb(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 Tt(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Ce(`Invalid number "${e}"`,t);return n}function ud(e,t,n){if(e.length!==3)throw new Ce(`${t} expects three numbers`,n);return[Tt(e[0],n),Tt(e[1],n),Tt(e[2],n)]}function ld(e,t,n){if(!e)throw new Ce(`${t} expects a size`,n);let r=Number(e);if(!Number.isInteger(r)||r<2)throw new Ce(`${t} must be an integer greater than 1`,n);return r}function Ub(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Ce("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Wb(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 Vb(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function cd(e,t={}){let n=t.maxSize??Pi,r=null,i=Hb,o=Gb,a=null,u=null,s=[],l=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,p=Bb(l[m]??"").trim();if(!p)continue;let g=p.split(/\\s+/),y=(g[0]??"").toUpperCase(),x=g.slice(1);if(y==="TITLE"){r=Wb(p);continue}if(y==="DOMAIN_MIN"){i=ud(x,y,f);continue}if(y==="DOMAIN_MAX"){o=ud(x,y,f);continue}if(y==="LUT_3D_INPUT_RANGE"){if(x.length!==2)throw new Ce(`${y} expects two numbers`,f);let A=Tt(x[0],f),M=Tt(x[1],f);if(M<=A)throw new Ce("LUT_3D_INPUT_RANGE max must exceed min",f);i=[A,A,A],o=[M,M,M];continue}if(y==="LUT_1D_SIZE"){a=ld(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(u=ld(x[0],y,f),u>n)throw new Ce(`LUT_3D_SIZE ${u} exceeds max ${n}`,f);continue}if(!Vb(y)){if(y.startsWith("LUT_"))throw new Ce(`Unsupported cube keyword ${y}`,f);continue}if(!u)throw a?new Ce("1D cube LUTs are not supported yet",f):new Ce("LUT data appears before LUT_3D_SIZE",f);if(g.length!==3)throw new Ce("LUT data rows must contain three numbers",f);s.push(Tt(g[0],f),Tt(g[1],f),Tt(g[2],f))}if(a&&u)throw new Ce("Mixed 1D and 3D cube LUTs are not supported yet");if(!u)throw a?new Ce("1D cube LUTs are not supported yet"):new Ce("Missing LUT_3D_SIZE");Ub(i,o);let d=u*u*u;if(s.length!==d*3)throw new Ce(`Expected ${d} LUT rows for size ${u}, found ${s.length/3}`);return{title:r,size:u,domainMin:i,domainMax:o,data:new Float32Array(s)}}function $b(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function or(e){return Math.round($b(e)*255)}function La(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 u=0;u<t;u++){let s=((o*t+a)*t+u)*3,l=(a*n+o*t+u)*4;i[l]=or(e.data[s]??0),i[l+1]=or(e.data[s+1]??0),i[l+2]=or(e.data[s+2]??0),i[l+3]=255}return{width:n,height:r,data:i}}var dd="rec709";var be={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 fd=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","vibrance","saturation"],md=["shadows","midtones","highlights"],pd=["master","red","green","blue"],hd=["hueVsHue","hueVsSaturation","hueVsLuma"];var gd=["vignette","vignetteMidpoint","vignetteRoundness","vignetteFeather","grain","grainSize","grainRoughness"],bd=["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 RR=be.unit,TR=be.signedUnit,kR=be.effects;var it=1024,ar=16;function xd(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 Re(e,t){let n=e[t];if(n===void 0)throw new RangeError("Color curve points must be contiguous");return n}function zb(e){let t=[],n=[],r=Re(e,0);for(let a of e.slice(1)){let u=a[0]-r[0];t.push(u),n.push((a[1]-r[1])/u),r=a}let i=Re(n,0);if(e.length===2)return[i,i];let o=new Array(e.length);o[0]=xd(Re(t,0),Re(t,1),i,Re(n,1)),o[o.length-1]=xd(Re(t,t.length-1),Re(t,t.length-2),Re(n,n.length-1),Re(n,n.length-2));for(let a=1;a<e.length-1;a+=1){let u=Re(n,a-1),s=Re(n,a);if(u===0||s===0||Math.sign(u)!==Math.sign(s)){o[a]=0;continue}let l=Re(t,a-1),d=Re(t,a),m=2*d+l,f=d+2*l;o[a]=(m+f)/(m/u+f/s)}return o}function yd(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 qb(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 jb(e,t,n,r,i){let o=n[0]-t[0],a=Math.min(1,Math.max(0,(e-t[0])/o)),u=a*a,s=u*a;return(2*s-3*u+1)*t[1]+(s-2*u+a)*o*r+(-2*s+3*u)*n[1]+(s-u)*o*i}function vd(e,t,n,r,i){qb(e,r,i);let o=zb(e),a=new Float32Array(t),u=0;for(let s=0;s<t;s+=1){let l=n(s);for(;u<e.length-2&&l>Re(e,u+1)[0];)u+=1;let d=Re(e,u),m=Re(e,u+1),f=jb(l,d,m,Re(o,u),Re(o,u+1));a[s]=Math.min(i,Math.max(r,f))}return a}function hn(e,t=it){if(yd(e,t),e.length>ar)throw new RangeError(`A color curve supports at most ${ar} 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 vd(e,t,n=>n/(t-1),0,1)}function Da(e,t,n,r=it){if(e.length<3)throw new RangeError("A hue curve requires at least three points");if(e.length>ar)throw new RangeError(`A hue curve supports at most ${ar} points`);let i=[...e].sort((s,l)=>s[0]-l[0]);for(let s=0;s<i.length;s+=1){let l=i[s];if(!l||l[0]<0||l[0]>=360)throw new RangeError("Hue curve inputs must be from 0 up to 360 degrees");if(s>0&&l[0]===i[s-1]?.[0])throw new RangeError("Hue curve inputs must be unique")}let o=i.slice(-2).map(([s,l])=>[s-360,l]),a=i.slice(0,2).map(([s,l])=>[s+360,l]),u=[...o,...i,...a];return yd(u,r),vd(u,r,s=>s/r*360,t,n)}var sr="data-color-grading",ur="data-hf-color-grading-source-hidden",Gi="data-hf-authored-opacity",wd="__hf_color_grading_",Xb=dd,Oa={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},Ha={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Ga={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 Bi=fd,Cd=md,Rd=pd,Td=hd,Ua=gd,Wa=bd,Sd={exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},Ed={vignette:.18};function Te(e,t,n={},r={},i={},o=1){return{id:e,label:t,intensity:o,adjust:{...Oa,...n},details:{...Ha,...r},effects:{...Ga,...i}}}var Va=[Te("neutral","Neutral"),Te("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Te("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Te("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Te("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Te("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Te("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Te("vintage-wash","Vintage Wash",Sd,Ed),Te("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Te("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Te("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Te("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Te("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}),Te("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),Te("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}),Te("home-movie-8mm","8mm Home Movie",Sd,{...Ed,vignette:.28,vignetteMidpoint:.54,vignetteFeather:.72,grain:.34,grainSize:.18,grainRoughness:.72},{filmArtifacts:.62},.72),Te("editorial-halftone","Editorial Halftone",{contrast:.04,saturation:.04},{},{halftone:.94,halftoneSize:.36}),Te("two-ink-print","Two-Ink Print",{contrast:.08,highlights:-.06,shadows:.04},{},{twoInkPrint:1,twoInkPrintSize:.42})],Yb=new Map(Va.map(e=>[e.id,e])),Jb=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,Qb={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}},gn={hue:0,amount:0,level:0},Ad={amount:be.unit,level:be.signedUnit},kt=[[0,0],[1,1]],bn=[],Zb={hueVsHue:be.secondaryHueShift,hueVsSaturation:be.signedUnit,hueVsLuma:be.signedUnit},Ia={center:0,range:180,softness:0},Pa={min:0,max:1,softness:.05},ex={vignette:be.unit,vignetteMidpoint:be.unit,vignetteRoundness:be.signedUnit,vignetteFeather:be.unit,grain:be.unit,grainSize:be.unit,grainRoughness:be.unit},Ba=be.unit,tx=be.effects,kd=["blur","pixelate","chromaBleed","tapeDamage","filmArtifacts","halftone","twoInkPrint","ascii","dither","bloom","monoScreen","scanlines","chromaticAberration","crtCurvature","digitalGlitch","engraving","crosshatch","kuwahara"];var nx=Va.filter(e=>kd.some(t=>e.effects[t]>1e-4)),OR=Va.filter(e=>!nx.includes(e)),HR={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}},Md=[{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 rx=/^#[0-9a-f]{6}$/i;function ix(e){return!Array.isArray(e)||e.length<2||e.length>6||!e.every(t=>typeof t=="string"&&rx.test(t))?null:e.map(t=>t.toLowerCase())}function Ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Hi(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function Fd(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function De(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Hi(n,t.min,t.max):0}function $a(e,t=0){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?(n%360+360)%360:t}function ox(e){let t=Ne(e)?e:{};return Cd.reduce((n,r)=>{let i=Ne(t[r])?t[r]:{};return n[r]={hue:$a(i.hue,gn.hue),amount:De(i.amount??gn.amount,Ad.amount),level:De(i.level??gn.level,Ad.level)},n},{shadows:{...gn},midtones:{...gn},highlights:{...gn}})}function ax(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)?[Hi(t,0,1),Hi(n,0,1)]:null}function Ld(e){return e.some((t,n)=>n>0&&t[0]===e[n-1]?.[0])}function sx(e){(e[0]?.[0]??0)>0&&e.unshift([0,0]),(e.at(-1)?.[0]??1)<1&&e.push([1,1])}function ux(e){if(!Array.isArray(e)||e.length<2)return kt;let t=[];for(let n of e){let r=ax(n);if(!r)return kt;t.push(r)}return t.sort((n,r)=>n[0]-r[0]),Ld(t)||(sx(t),t.length>16)?kt:t}function lx(e){let t=Ne(e)?e:{};return Rd.reduce((n,r)=>(n[r]=ux(t[r]),n),{master:kt,red:kt,green:kt,blue:kt})}function cx(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)?[$a(n),Hi(r,t.min,t.max)]:null}function dx(e,t){if(!Array.isArray(e)||e.length<3||e.length>16)return bn;let n=[];for(let r of e){let i=cx(r,t);if(!i)return bn;n.push(i)}return n.sort((r,i)=>r[0]-i[0]),Ld(n)?bn:n}function fx(e){let t=Ne(e)?e:{};return Td.reduce((n,r)=>(n[r]=dx(t[r],Zb[r]),n),{hueVsHue:bn,hueVsSaturation:bn,hueVsLuma:bn})}function _d(e){let t=Ne(e)?e:{},n=De(t.min??Pa.min,Ba),r=De(t.max??Pa.max,Ba);return{min:Math.min(n,r),max:Math.max(n,r),softness:De(t.softness??Pa.softness,be.secondarySoftRangeSoftness)}}function mx(e){let t=Ne(e)?e:{},n=De(t.range??Ia.range,be.secondaryHueRange);return{center:$a(t.center,Ia.center),range:n,softness:De(t.softness??Ia.softness,{min:be.secondaryHueSoftness.min,max:be.secondaryHueCombinedMax-n})}}function px(e){return{hueShift:De(e.hueShift??0,be.secondaryHueShift),saturation:De(e.saturation??0,be.signedUnit),luma:De(e.luma??0,be.signedUnit),temperature:De(e.temperature??0,be.signedUnit),tint:De(e.tint??0,be.signedUnit)}}function hx(e){return!Ne(e)||!Ne(e.key)||!Ne(e.correction)?null:{enabled:e.enabled!==!1,key:{hue:mx(e.key.hue),saturation:_d(e.key.saturation),luma:_d(e.key.luma)},correction:px(e.correction)}}function gx(e){if(!Array.isArray(e))return[];let t=[];for(let n of e.slice(0,4)){let r=hx(n);r&&t.push(r)}return t}function bx(e){if(e==null)return null;let t=String(e).trim();return t||null}function xx(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!Ne(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:Fd(e.intensity,1)}}function yx(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return Ne(n)?n:null}catch{return null}return{preset:t}}return Ne(e)?e:null}function vx(e,t){let n=e.trim().match(Jb);if(!n)return e;let r=n[1]??n[2]??"";return r&&Object.hasOwn(t,r)?t[r]:e}function Oi(e,t){if(typeof e=="string"){let r=vx(e,t);if(r!==e)return r;let i=e.trim();if(!i.startsWith("{"))return e;try{return Oi(JSON.parse(i),t)}catch{return e}}if(Array.isArray(e))return e.map(r=>Oi(r,t));if(!Ne(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=Oi(i,t);return n}function Sx(e){return e?Yb.get(e)??null:null}function Ui(e){let t=yx(e);if(!t||t.enabled===!1)return null;let n=bx(t.preset),r=Sx(n),i=r?.adjust??Oa,o=r?.details??Ha,a=r?.effects??Ga,u=Ne(t.adjust)?t.adjust:{},s=Ne(t.details)?t.details:{},l=Ne(t.effects)?t.effects:{},d=Bi.reduce((p,g)=>(p[g]=De(u[g]??i[g],Qb[g]),p),{...Oa}),m=Ua.reduce((p,g)=>(p[g]=De(s[g]??o[g],ex[g]),p),{...Ha}),f=Wa.reduce((p,g)=>(p[g]=De(l[g]??a[g],tx[g]??Ba),p),{...Ga});return{enabled:!0,preset:n,intensity:Fd(t.intensity,r?.intensity??1),adjust:d,wheels:ox(t.wheels),curves:lx(t.curves),hueCurves:fx(t.hueCurves),secondaries:gx(t.secondaries),details:m,effects:f,palette:ix(t.palette),lut:xx(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():Xb}}function Nd(e,t){return Ui(Oi(e,t))}function Ex(e){return Cd.some(t=>Math.abs(e[t].amount)>1e-4||Math.abs(e[t].level)>1e-4)}function za(e){return Rd.some(t=>e[t].some(([n,r])=>Math.abs(n-r)>1e-4))}function qa(e){return Td.some(t=>e[t].some(([,n])=>Math.abs(n)>1e-4))}function ja(e){return e.some(t=>t.enabled&&Object.values(t.correction).some(n=>Math.abs(n)>1e-4))}function Dd(e){return e?.enabled?Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||kd.some(n=>Math.abs(e.effects[n])>1e-4)?!0:e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:Bi.some(n=>Math.abs(e.adjust[n])>1e-4)||(e.wheels?Ex(e.wheels):!1)||(e.curves?za(e.curves):!1)||(e.hueCurves?qa(e.hueCurves):!1)||(e.secondaries?ja(e.secondaries):!1):!1}var Ax=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),_x=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),Id="[data-hf-inner-root],[data-composition-id]:not([data-composition-id] *)",Pd=`${Id}{pointer-events:auto!important}`,wx=`@layer hf-picker{${Pd}}`;function Od(e){let t=!1,n=null,r=null,i=null,o=null,a,u=new Set;function s(R,S){try{window.dispatchEvent(new CustomEvent(R,{detail:S}))}catch(H){I("runtime.picker.site1",H)}}function l(R){i=R,s("hyperframe:picker:hovered",{elementInfo:i,isPickMode:t,timestamp:Date.now()})}function d(R){o=R,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function m(R){if(u=new Set(Array.from(document.querySelectorAll(Id)).filter(q=>getComputedStyle(q).pointerEvents==="none")),u.size===0)return R();let S=f(),H=S?p(S):g();try{return R()}finally{H(),u=new Set}}function f(){if(a!==void 0)return a;if(a=null,!Array.isArray(document.adoptedStyleSheets)||typeof CSSStyleSheet>"u")return null;try{let R=new CSSStyleSheet;R.replaceSync(wx),a=R}catch(R){I("runtime.picker.site2",R)}return a}function p(R){return document.adoptedStyleSheets=[...document.adoptedStyleSheets,R],()=>{document.adoptedStyleSheets=document.adoptedStyleSheets.filter(S=>S!==R)}}function g(){let R=document.createElement("style");return R.textContent=Pd,(document.head??document.documentElement).appendChild(R),()=>R.remove()}function y(R){let S=R.ownerDocument.defaultView;if(!S)return!1;let H=R;for(;H&&H!==document.body&&H!==document.documentElement;){let q=S.getComputedStyle(H);if(q.display==="none"||q.visibility==="hidden"||q.pointerEvents==="none")return!0;let U=Number.parseFloat(q.opacity);if(Number.isFinite(U)&&U<=.01&&!H.hasAttribute(ur))return!0;H=H.parentElement}return!1}function x(R){if(!R||R===document.body||R===document.documentElement)return!1;let S=R.tagName.toLowerCase();return!(S==="script"||S==="style"||S==="link"||S==="meta"||R.classList.contains("__hf-pick-highlight")||u.has(R)||R.closest(Ax)||y(R))}function A(R){return!!R?.closest(_x)}function M(R){let S=R.parentElement?.getAttribute("data-composition-id");return!R.hasAttribute("data-hf-inner-root")||!S?null:`[data-composition-id="${CSS.escape(S)}"] > [data-hf-inner-root]`}function C(R){let S=M(R);if(S)return S;let H=R;if(H.id)return`#${CSS.escape(H.id)}`;let q=R.getAttribute("data-composition-id");if(q)return`[data-composition-id="${CSS.escape(q)}"]`;let U=R.getAttribute("data-composition-src");if(U)return`[data-composition-src="${CSS.escape(U)}"]`;let V=R.getAttribute("data-track-index");if(V)return`[data-track-index="${CSS.escape(V)}"]`;let $=R.tagName.toLowerCase(),G=R.parentElement;if(!G)return $;let P=G.querySelectorAll(`:scope > ${$}`);if(P.length===1)return $;for(let O=0;O<P.length;O+=1)if(P[O]===R)return`${$}:nth-of-type(${O+1})`;return $}function L(R){let S=R.tagName.toLowerCase(),H=(R.textContent??"").trim().replace(/\\s+/g," "),q=(U,V)=>U.length>V?`${U.slice(0,V-1)}\\u2026`:U;return S==="h1"||S==="h2"||S==="h3"?"Heading":S==="p"||S==="span"||S==="div"?H.length>0?q(H,56):"Text":S==="img"?"Image":S==="video"?"Video":S==="audio"?"Audio":S==="svg"?"Shape":R.getAttribute("data-composition-src")?"Composition":S==="section"?"Section":`${S.charAt(0).toUpperCase()}${S.slice(1)}`}function B(R,S,H){let q=typeof H=="number"&&H>0?H:8,U=[];if(document.elementsFromPoint)U=document.elementsFromPoint(R,S);else if(document.elementFromPoint){let G=document.elementFromPoint(R,S);U=G?[G]:[]}if(A(U[0]??null))return[];let V={},$=[];for(let[G,P]of U.entries()){if(!x(P))continue;let O=`${P.tagName}::${P.id||""}::${G}`;if(!V[O]&&(V[O]=!0,$.push(P),$.length>=q))break}return $}function F(R){let S=R.getBoundingClientRect(),H={};for(let U of Array.from(R.attributes))U.name.startsWith("data-")&&(H[U.name]=U.value);return{id:R.id||null,tagName:R.tagName.toLowerCase(),selector:C(R),label:L(R),boundingBox:{x:S.left,y:S.top,width:S.width,height:S.height},textContent:R.textContent?R.textContent.trim().slice(0,200):null,src:R.getAttribute("src")||R.getAttribute("data-composition-src")||null,dataAttributes:H}}function w(R,S,H){return m(()=>B(R,S,H)).map(F)}function _(R){if(!t)return;let S=m(()=>{let q=B(R.clientX,R.clientY,1)[0]??(ke(R.target)?R.target:null);return x(q)?q:null});if(!S||n===S)return;n&&n.classList.remove("__hf-pick-highlight"),n=S,S.classList.add("__hf-pick-highlight");let H=F(S);l(H),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:H})}function T(R){if(!t)return;R.preventDefault(),R.stopPropagation(),R.stopImmediatePropagation();let S=w(R.clientX,R.clientY,8);S.length!==0&&(l(S[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:S,selectedIndex:0,point:{x:R.clientX,y:R.clientY}}))}function N(R){R.key==="Escape"&&(X(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function W(){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",T,!0),document.addEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function X(){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",T,!0),document.removeEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function Y(){window.__HF_PICKER_API={enable:W,disable:X,isActive:()=>t,getHovered:()=>i,getSelected:()=>o,getCandidatesAtPoint:(R,S,H)=>Number.isFinite(R)&&Number.isFinite(S)?w(R,S,H):[],pickAtPoint:(R,S,H)=>{if(!Number.isFinite(R)||!Number.isFinite(S))return null;let q=w(R,S,8);if(!q.length)return null;let U=Math.max(0,Math.min(q.length-1,Number(H??0))),V=q[U]??null;return V?(d(V),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:V}),X(),V):null},pickManyAtPoint:(R,S,H)=>{if(!Number.isFinite(R)||!Number.isFinite(S))return[];let q=w(R,S,8);if(!q.length)return[];let U=[],V=Array.isArray(H)?H:[0];for(let $ of V){let G=Math.max(0,Math.min(q.length-1,Math.floor(Number($)))),P=q[G];if(!P)continue;U.some(Z=>Z.selector===P.selector&&Z.tagName===P.tagName)||U.push(P)}return U.length?(d(U[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:U}),X(),U):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:W,disablePickMode:X,installPickerApi:Y}}var Cx=["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 Ka(e){return Number.isFinite(e)&&e>0?e:30}function Xa(e){return Number.isFinite(e)&&e>0?e:0}function Ya(e,t){let n=Ka(t);return Math.floor(Xa(e)*n+1e-9)/n}function lr(e,t,n){let r=Number.isInteger(n)?n:1;if(r<=1)return Ya(e,t);let i=Ka(t)*r;return Math.round(Xa(e)*i)/i}function Ja(e,t){let n=Ka(t),r=Xa(e),i=r*n,o=Math.round(i);return Math.abs(i-o)<=.001?o/n:r}function Hd(e,t,n=Cx){for(let r of n){let i=t.getPropertyValue(r);i&&e.setProperty(r,i)}}function cr(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&&I("runtime.player.nonConformantNum",{prop:t,actual:typeof r}),n)}function Ke(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&I("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function dr(e,t,n){if(e){for(let r of Object.values(e))if(!(!r||r===t))try{n(r)}catch(i){I("runtime.player.site1",i)}}}function Gd(e,t,n,r){let i=lr(t,n,r?.subFrameDivisions),o=r?.suppressEvents===!0;return Ke(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,o):typeof e.seek=="function"&&e.seek(i,o),i}function Rx(e,t,n,r,i){let o=[];dr(e,t,a=>{Ke(a,"play"),o.push(a)});try{return Gd(t,n,r,i)}finally{for(let a of o)try{Ke(a,"pause")}catch(u){I("runtime.player.site2",u)}}}function Tx(e,t){dr(e,t,n=>{Ke(n,"play")})}function Bd(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?.()??cr(n,"duration",0))||0);r>0&&Math.max(0,cr(n,"time",0))>=r&&(Ke(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()),Ke(n,"play"),dr(e.getTimelineRegistry?.(),n,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Ke(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let n=e.getTimeline();if(!n)return;Ke(n,"pause"),dr(e.getTimelineRegistry?.(),n,i=>{Ke(i,"pause")});let r=Math.max(0,cr(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(),u=Rx(e.getTimelineRegistry?.(),i,o,e.getCanonicalFps());e.onDeterministicSeek(u),r?.keepPlaying&&a?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),Ke(i,"play"),dr(e.getTimelineRegistry?.(),i,s=>{typeof s.timeScale=="function"&&s.timeScale(e.getPlaybackRate()),Ke(s,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(u,!0)):(e.setIsPlaying(!1),e.onSyncMedia(u,!1)),e.onRenderFrameSeek(u),e.onStatePost(!0)},renderSeek:(n,r)=>{let i=e.getTimeline(),o=e.getCanonicalFps(),a=i?(Tx(e.getTimelineRegistry?.(),i),Gd(i,n,o,r)):lr(Math.max(0,Number(n)||0),o,r?.subFrameDivisions);e.onDeterministicSeek(a,r),e.setIsPlaying(!1),e.onSyncMedia(a,!1),e.onRenderFrameSeek(a),e.onStatePost(!0)},getTime:()=>cr(e.getTimeline(),"time",0),getDuration:()=>cr(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:n=>e.setPlaybackRate(n),getPlaybackRate:()=>e.getPlaybackRate()}}function Ud(){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 kx=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Qa(e){return e.id||e.getAttribute("data-hf-id")||null}function Mx(e){return Me(e)}function Fx(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 Lx(e){return ge(e)?Number.isFinite(e.duration)?nt(e,e.duration):null:ln(e)}function Nx(e,t,n,r){let i=Mx(e.getAttribute("data-duration"));return i!=null&&i>0?i:Fx(e,t)??Lx(e)??Math.max(0,n-r)}function Dx(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 Wd(e){let{startResolver:t,timelineRegistry:n,rootDuration:r}=e,i=new Map,o=document.querySelector("[data-composition-id]"),a=0;for(let u of document.querySelectorAll("[data-start]")){if(u===o||kx.has(u.tagName))continue;let s=t.resolveStartForElement(u,0);if(Nx(u,n,r,s)<=0)continue;let l={id:Qa(u)??`__clip-${a++}`,element:u,parentId:null,children:[]};i.set(u,l)}return Dx(i),{roots:Array.from(i.values()).filter(u=>u.parentId===null)}}var Za="css:root",Vd=["backdrop-filter","clip-path","filter","mask","mask-border-source","mask-image","perspective","rotate","scale","transform","translate","-webkit-mask-image"],Ix=new Set([...Vd,"contain","isolation","mask-border","mix-blend-mode","opacity"]),Px=new Set(["absolute","relative"]),Ox=new Set(["flex","inline-flex","grid","inline-grid"]),Hx=new Set(["layout","paint","strict","content"]),Gx=new Set(["size","inline-size"]);function Bx(e){return e.position==="fixed"||e.position==="sticky"}function Ux(e,t){if(t.zIndex==="auto"||t.zIndex==="")return!1;if(Px.has(t.position))return!0;let n=e.parentElement?e.ownerDocument.defaultView?.getComputedStyle(e.parentElement).display:null;return n!=null&&Ox.has(n)}function Wx(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:Vd.some(r=>{let i=e.getPropertyValue(r);return i!==""&&i!=="none"})}function Vx(e){return e.getPropertyValue("contain").split(/\\s+/).some(n=>Hx.has(n))?!0:Gx.has(e.getPropertyValue("container-type"))}function $x(e){return e.getPropertyValue("will-change").split(",").map(t=>t.trim()).some(t=>Ix.has(t))}function zx(e,t){return Bx(t)||Ux(e,t)||Wx(t)||Vx(t)?!0:$x(t)}function qx(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 Wi(e){let t=e.ownerDocument.defaultView;if(!t)return Za;let n=e.parentElement;for(;n&&n!==e.ownerDocument.documentElement;){try{if(zx(n,t.getComputedStyle(n)))return qx(n)}catch{return Za}n=n.parentElement}return Za}function es(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}var Kx=7200;function pr(e,t){let n=e.tagName.toLowerCase();if(n==="script"||n==="style"||n==="link"||n==="meta")return!1;let i=n==="video"||n==="audio"?t.resolver.resolveMediaStartForElement(e):t.resolver.resolveStartForElement(e,0),o=t.resolver.resolveDurationForElement(e),a=e.getAttribute("data-composition-id");if(a){let d=t.timelineRegistry[a],m=d&&typeof d.duration=="function"?Number(d.duration()):null;!(e.hasAttribute("data-duration")||e.hasAttribute("data-end")||e.hasAttribute(cn)||e.hasAttribute(dn))&&(o==null||o<=0)&&m!=null&&Number.isFinite(m)&&m>0&&(o=m)}let u=o!=null&&o>0?i+o:Number.POSITIVE_INFINITY,s=t.exportRenderSeek?Ja(i,t.canonicalFps):i,l=t.exportRenderSeek&&Number.isFinite(u)?Ja(u,t.canonicalFps):u;return fi(t.currentTime,s,l,t.compositionDuration)}function zt(e){return Me(e)}function ts(e){let t=e.getAttribute("data-duration"),n=e.getAttribute(cn),r=fn({start:0,duration:t,authoredDuration:n})?.duration;return r??([t,n].map(zt).some(o=>o!=null&&o<=0)?0:null)}function $d(e){return fn({start:0,end:e.getAttribute("data-end"),authoredEnd:e.getAttribute(dn)})?.end??null}function ns(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 rs(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}function is(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 mr(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 zd(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return mr(t);let n=e.getAttribute("data-composition-src");if(n)return mr(n);let r=e.querySelector("img[src], video[src], audio[src], source[src]");return r?mr(r.getAttribute("src")):null}function Xx(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 Yx(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 Jx(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function fr(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function Qx(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 fr(i);let o=e.id;if(o)return fr(o);let a=Xx(e);if(a)return fr(a);let u=Yx(zd(e));if(u)return fr(u);let s=Jx(e);return s||`${fr(t)} ${n+1}`}function qd(e){let n=window.__timelines??{},r=Ue({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),i=G=>{if(!G)return null;let P=n[G]??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=()=>{let G=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(G.length===0)return null;let P=0;for(let O of G){let Z=r.resolveMediaStartForElement(O);if(!Number.isFinite(Z))continue;let te=ki(O);te==null||te<=0||(P=Math.max(P,Math.max(0,Z)+te))}return P>0?P:null},a=(G,P)=>{let O=[],Z=null,te=null,ne=null,j=G.parentElement;for(;j;){let J=j.getAttribute("data-composition-id");J&&(O.push(J),!ne&&j!==P&&(ne=J),Z==null&&(Z=r.resolveStartForElement(j,0)),te==null&&(te=zt(j.getAttribute("data-duration"))??i(J)??null)),j=j.parentElement}return{parentCompositionId:ne,compositionAncestors:O.reverse(),inheritedStart:Z,inheritedDuration:te}},u=document.querySelector("[data-composition-id]"),s=Array.from(document.querySelectorAll("[data-composition-id]")),l=u?.getAttribute("data-composition-id")??null,d=u?r.resolveStartForElement(u,0):0,m=o(),f=m!=null?Math.max(0,m-Math.max(0,d)):null,p=i(l),g=ts(u??document.body),y=rs(...s.filter(G=>G!==u).map(G=>{let P=r.resolveStartForElement(G,0),O=r.resolveDurationForElement(G)??i(G.getAttribute("data-composition-id"))??null;return!Number.isFinite(P)||O==null||O<=0?null:Math.max(0,P)+O})),x=y!=null?Math.max(0,y-Math.max(0,d)):null,A=typeof p=="number"&&Number.isFinite(p)&&p>0?p:null,M=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,C=typeof f=="number"&&Number.isFinite(f)&&f>0?f:null,L=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,B=rs(C,L),F=A!=null&&B!=null&&A>=Kx,_=M??(F?B:rs(A,C,L))??null,N=(_!=null?d+_:null)??(typeof m=="number"&&Number.isFinite(m)&&m>0?m:null),W=(G,P)=>!Number.isFinite(P)||P<=0?0:N==null||!Number.isFinite(N)?P:!Number.isFinite(G)||G>=N?0:Math.max(0,Math.min(P,N-G)),X=[],Y=[],R=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),S=0;for(let[G,P]of R.entries()){if(P===u||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(P.tagName))continue;let O=a(P,u),Z=P.tagName.toLowerCase(),te=Z==="video"||Z==="audio"?r.resolveMediaStartForElement(P):r.resolveStartForElement(P,O.inheritedStart??0),ne=P.getAttribute("data-composition-id"),j=ts(P);if(j==null&&ne&&ne!==l&&(j=i(ne)),j==null&&ge(P)&&Number.isFinite(P.duration)&&(j=nt(P,P.duration)),j==null&&(j=ln(P,te)),j==null){let de=O.inheritedDuration;if(de!=null&&de>0){let dt=(O.inheritedStart??0)+de;j=Math.max(0,dt-te)}}if(j==null||j<=0||(j=W(te,j),j<=0))continue;let J=te+j;S=Math.max(S,J);let Ee=ne&&ne!==l?"composition":Z==="video"?"video":Z==="audio"?"audio":Z==="img"?"image":"element";X.push({id:Qa(P)??ne??null,label:Qx(P,Ee,X.length),start:te,duration:j,track:is(P,G),zIndex:ns(P),stackingContextId:Wi(P),kind:Ee,tagName:Z,compositionId:P.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:mr(P.getAttribute("data-composition-src")),playbackStart:rt(P),playbackRate:Pe(P),assetUrl:zd(P),timelineRole:P.getAttribute("data-timeline-role"),timelineLabel:P.getAttribute("data-timeline-label"),timelineGroup:P.getAttribute("data-timeline-group"),timelinePriority:zt(P.getAttribute("data-timeline-priority"))})}let H=new Set(X.map(G=>G.id)),q=u?.getAttribute("data-composition-id")??null,U=q?n[q]??null:null;if(U&&u){let G=U;if(typeof G.getChildren=="function")try{let P=G.getChildren(!0,!0,!1)??[],O=new Map;for(let ne of u.children){let j=ne;if(!j.id)continue;let J=j.tagName.toLowerCase();J==="script"||J==="style"||J==="link"||O.set(j,{id:j.id,start:1/0,end:-1/0})}let Z=ne=>{let j=ne;for(;j;){if(O.has(j))return j;if(j===u)return null;j=j.parentElement}return null};for(let ne of P){if(typeof ne.targets!="function"||typeof ne.startTime!="function"||typeof ne.duration!="function")continue;let j=ne.startTime(),J=ne.parent;for(;J&&J!==U&&typeof J.startTime=="function";)j+=J.startTime(),J=J.parent;let Ee=j+ne.duration();if(!(!Number.isFinite(j)||!Number.isFinite(Ee)))for(let de of ne.targets()){if(!ke(de))continue;let Dn=Z(de);if(!Dn)continue;let dt=O.get(Dn);dt&&(dt.start=Math.min(dt.start,j),dt.end=Math.max(dt.end,Ee))}}let te=X.length>0?Math.max(...X.map(ne=>ne.track))+1:0;for(let[ne,j]of O){if(j.start===1/0||j.end===-1/0)continue;let J=ne;if(H.has(J.id))continue;let Ee=Math.max(0,j.end-j.start);if(Ee<=0)continue;let de=W(j.start,Ee);de<=0||(S=Math.max(S,j.start+de),X.push({id:J.id,label:J.getAttribute("data-timeline-label")??J.getAttribute("data-label")??J.getAttribute("aria-label")??J.id,start:j.start,duration:de,track:is(J,te),zIndex:ns(J),stackingContextId:Wi(J),kind:"element",tagName:J.tagName.toLowerCase(),compositionId:J.getAttribute("data-composition-id"),compositionAncestors:q?[q]:[],parentCompositionId:q,nodePath:null,compositionSrc:null,playbackStart:rt(J),playbackRate:Pe(J),assetUrl:null,timelineRole:J.getAttribute("data-timeline-role"),timelineLabel:J.getAttribute("data-timeline-label"),timelineGroup:J.getAttribute("data-timeline-group"),timelinePriority:zt(J.getAttribute("data-timeline-priority"))}),H.add(J.id))}}catch(P){I("runtime.timeline.site1",P)}}if(u&&_!=null&&_>0){let G=X.length>0?Math.max(...X.map(P=>P.track))+1:0;for(let P of u.children){let O=P;if(!O.id||H.has(O.id))continue;let Z=O.getAttribute("data-timeline-role");if(Z!=="overlay"&&Z!=="persistent-overlay")continue;let te=O.tagName.toLowerCase();if(te==="script"||te==="style"||te==="link"||te==="meta"||window.getComputedStyle(O).display==="none")continue;let j=W(0,_);j<=0||(S=Math.max(S,j),X.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:j,track:is(O,G),zIndex:ns(O),stackingContextId:Wi(O),kind:"element",tagName:te,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:q?[q]:[],parentCompositionId:q,nodePath:null,compositionSrc:null,playbackStart:rt(O),playbackRate:Pe(O),assetUrl:null,timelineRole:Z,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:zt(O.getAttribute("data-timeline-priority"))}),H.add(O.id))}}for(let G of s){if(G===u)continue;let P=G.getAttribute("data-composition-id");if(!P||!es(P))continue;let O=r.resolveStartForElement(G,0),Z=ts(G);if((Z==null||Z<=0)&&$d(G)!=null){let J=$d(G);Z=Math.max(0,J-O)}let te=i(P),ne=Z&&Z>0?Z:te;if(ne==null||ne<=0)continue;let j=W(O,ne);j<=0||Y.push({id:P,label:G.getAttribute("data-label")??P,start:O,duration:j,thumbnailUrl:mr(G.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,S||1,_??0),$=Math.max(1,Math.ceil(V*Math.max(1,e.canonicalFps)));return{...di(e.canonicalFps),source:"hf-preview",type:"timeline",compositionContractVersion:1,durationSeconds:V,durationInFrames:$,clips:X,scenes:Y,compositionWidth:zt(u?.getAttribute("data-width"))??1920,compositionHeight:zt(u?.getAttribute("data-height"))??1080}}var jd=e=>e!==null&&Number.isFinite(e)&&e>0;function hr(e){let t=e.clipEndsSeconds.filter(r=>r===null).length;if(jd(e.authoredDurationSeconds))return{seconds:e.authoredDurationSeconds,source:"authored",pendingClips:t};let n=e.clipEndsSeconds.filter(jd);return n.length>0?{seconds:Math.max(...n),source:"derived",pendingClips:t}:{seconds:null,source:"unresolved",pendingClips:t,reason:t>0?"every clip\'s length is still pending":"no authored duration and no clip with a length"}}var os="data-composition-id",Zx="data-composition-src",ey=`[${os}]`,_T=`[${Zx}]`,as="style",ss="script",us=\'link[rel="stylesheet"], link[rel="preconnect"]\',Kd=`${as}, ${ss}, ${us}`;function qt(e){return e?Array.from(e):[]}function Xd(e){let{contentNode:t,head:n,documentElement:r,hasTemplate:i,compositionId:o}=e,a=qt(t.querySelectorAll(ey)),u=o?a.find(d=>d.getAttribute(os)===o)??null:a[0]??null,s=(u??a[0])?.getAttribute(os)?.trim()||"",l=i?null:n??null;return{innerRoot:u,authoredCompositionId:o||s||null,scriptCompositionId:s||o||null,authoredRootId:u?.getAttribute("id")?.trim()||null,styleSources:[...qt(l?.querySelectorAll(as)),...qt(t.querySelectorAll(as))],scriptSources:[...qt(l?.querySelectorAll(ss)),...qt(t.querySelectorAll(ss))],linkSources:[...qt(n?.querySelectorAll(us)),...qt(t.querySelectorAll(us))],variableDefaultCarriers:[r,u].filter(d=>d!=null)}}var ye=Rg(wm(),1),Cm=ye.default,mk=ye.default.stringify,pk=ye.default.fromJSON,hk=ye.default.plugin,gk=ye.default.parse,bk=ye.default.list,xk=ye.default.document,yk=ye.default.comment,vk=ye.default.atRule,Sk=ye.default.rule,Ek=ye.default.decl,Ak=ye.default.root,_k=ye.default.CssSyntaxError,wk=ye.default.Declaration,Ck=ye.default.Container,Rk=ye.default.Processor,Tk=ye.default.Document,kk=ye.default.Comment,Mk=ye.default.Warning,Fk=ye.default.AtRule,Lk=ye.default.Result,Nk=ye.default.Input,Dk=ye.default.Rule,Ik=ye.default.Root,Pk=ye.default.Node;var Ns="data-hf-authored-id",Rm="data-hf-inner-root";function Ds(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Is(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Nv(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function km(e){let t=e.trim();return t?Array.from(new Set([t,Nv(t)])).filter(Boolean):[]}function Dv(e){return!!e&&/[\\w-]/.test(e)}function Iv(e,t,n){let r=km(t).sort((u,s)=>s.length-u.length);if(r.length===0)return e;let i="",o=0,a=null;for(let u=0;u<e.length;u+=1){let s=e[u],l=u>0?e[u-1]:"";if(a){i+=s,s===a&&l!=="\\\\"&&(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 d=r.find(m=>e.startsWith(m,u+1));if(d){let m=e[u+1+d.length];if(!Dv(m)){i+=n,u+=d.length;continue}}}i+=s}return i}function Pv(e,t){let n=t?.trim();return n?Iv(e,n,`[${Ns}="${Is(n)}"]`):e}function Tm(e){return`${e}:not(:has([${Rm}])), ${e} > [${Rm}]`}function Ov(e,t,n,r,i,o){let a=Pv(e,r),u=Hv(a,t,n),s=u.trim();if(!s||s==="*")return e;if(/^(html|body|:root)$/i.test(s))return o?Tm(t):e;let l=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*[\\\\^\\\\*\\\\$]?=\\\\s*(["\'])${Ds(n)}\\\\1\\\\s*\\\\]`,"g");if(l.test(s))return s.replace(l,"").trim()===""?Tm(t):u.replace(l,t);let d=u.match(/^\\s*/)?.[0]??"",m=u.match(/\\s*$/)?.[0]??"";if(i){let f=r?`[${Ns}="${Is(r)}"]`:null;if(f&&s.startsWith(f)){let p=s.slice(f.length);return`${d}${t}${f}${p}${m}`}}return`${d}${t} ${s}${m}`}function Hv(e,t,n){let r=Ds(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 Gv=new Set(["keyframes","-webkit-keyframes","font-face"]);function Bv(e){return e?.type==="atrule"}function Uv(e){let t=e.parent;for(;t;){if(Bv(t)&&Gv.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Wv(e){let t=e.parent;for(;t;){if(t.type==="rule")return!0;t=t.parent}return!1}function Mm(e,t,n,r,i){let o=t.trim();if(!e||!o)return e;let a=n||`[data-composition-id="${Is(o)}"]`,u;try{u=Cm.parse(e)}catch{return""}return u.walkRules(s=>{Uv(s)||Wv(s)||(s.selectors=s.selectors.map(l=>Ov(l,a,o,r,i?.compoundAuthoredRoot,i?.scopeRootSelectors)))}),u.toResult({map:!1}).css}function We(e){return JSON.stringify(e).replace(/</g,"\\\\u003c")}var Fm=`!__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n assetUrl: function(path) {\n var page = window.document.baseURI;\n return new URL(path, __hfCompositionSrc ? new URL(__hfCompositionSrc, page) : page).href;\n },\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n })`;function Lm(e,t){return`const __hyperframes = (function(__hfBaseHyperframes, __hfTimelineCompId, __hfCompositionSrc) {\n return ${Fm};\n})(window.__hyperframes, ${We(e)}, ${We(t?.trim()||null)});\n`}function Nm(e,t,n="[HyperFrames] composition script error:",r,i=t,o,a){let u=We(t),s=We(i),l=We(n),d=Ds(t),m=We(o?.trim()||null),f=We(r??null),p=We(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${d}"|\'${d}\')\\s*\\]`),g=We(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),y=We(km(o?.trim()||""));return`(function(){\n var __hfCompId = ${u};\n var __hfTimelineCompId = ${s};\n var __hfErrorLabel = ${l};\n var __hfAuthoredRootId = ${m};\n var __hfCompositionSrc = ${We(a?.trim()||null)};\n var __hfAuthoredRootAttr = ${We(Ns)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${f} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${p};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${y};\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 __hfQueryAll(target);\n if (!Array.isArray(target)) return target;\n return target.reduce(function(resolved, item) {\n if (typeof item === "string") {\n return resolved.concat(Array.prototype.slice.call(__hfQueryAll(item)));\n }\n resolved.push(item);\n return resolved;\n }, []);\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 = ${Fm};\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 Dm=(e,t)=>e&&Object.fromEntries(Object.entries(e).map(([n,r])=>[n,t(r)]));function Im(e,t){let n;try{n=JSON.parse(e)}catch{return null}if(!n||typeof n!="object")return null;let{imports:r,scopes:i}=n;return{imports:Dm(r,t),scopes:i&&Object.fromEntries(Object.entries(i).map(([o,a])=>[t(o),Dm(a,t)??{}]))}}var Vv=["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 Pm(e){let t=e.getAttribute("id")?.trim();for(let n of Vv)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var $v=8e3,zv=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,qv=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,jv=["src","href"];function Kv(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function Gm(e,t){if(!t)return e;let n=e.trim();if(Kv(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function Bm(e,t){return!t||!e?e:e.replace(qv,(n,r,i)=>{let o=Gm(i||"",t);return o===i?n:`url(${r||""}${o}${r||""})`})}function Xv(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let r of jv){let i=n.getAttribute(r);if(i==null)continue;let o=Gm(i,t);o!==i&&n.setAttribute(r,o)}}function Yv(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let r=n.getAttribute("style");if(r==null)continue;let i=Bm(r,t);i!==r&&n.setAttribute("style",i)}}function Jv(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let r=n.textContent||"",i=Bm(r,t);i!==r&&(n.textContent=i)}}function Um(e,t){if(t){Xv(e,t),Yv(e,t),Jv(e,t);for(let n of Array.from(e.querySelectorAll("template")))Um(n.content,t)}}function Qv(e,t){return`${e}__hf${t}`}var Zv=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"),$v)});function Os(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function Ps(e){for(let t of Array.from(e.querySelectorAll(Kd)))t.remove()}function eS(e){let t=document.importNode(e,!0);Pm(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 Om(e,t){let n=e.trim();if(!n)return e;try{return zv.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 Hm(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 oo(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 tS(e){let t=new Map;for(let n of e){let r=oo(n).authoredCompositionId||"";r&&t.set(r,(t.get(r)||0)+1)}return t}function Wm(e){let t=oo(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function nS(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function rS(e){return e.hasAttribute("data-composition-src")?!0:Wm(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:nS(e):!1}function Gs(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:Wm(t))}function Vm(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Gs().map(n=>oo(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function $m(e,t=tS(e)){let n=new Map,r=new Map;for(let i of e){let{authoredCompositionId:o,runtimeCompositionId:a}=oo(i),u=rS(i);if(!o){r.set(i,{authoredCompositionId:null,runtimeCompositionId:a});continue}let s=(t.get(o)||0)>1,l=a||o;if(u){let d=s?(n.get(o)||0)+1:0;s&&n.set(o,d),l=s?Qv(o,d):o,s?i.setAttribute("data-hf-original-composition-id",o):i.removeAttribute("data-hf-original-composition-id"),i.setAttribute("data-composition-id",l),a&&a!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[a]}r.set(i,{authoredCompositionId:o,runtimeCompositionId:l})}return r}async function Hs(e){let t=Xd({contentNode:e.sourceNode,head:e.head,hasTemplate:e.hasTemplate,compositionId:e.authoredCompositionId}),n=pe(t.innerRoot)?t.innerRoot:null,r=n??e.sourceNode,i=t.authoredCompositionId,o=t.scriptCompositionId,a=e.runtimeCompositionId||null,u=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 g=e.compositionUrl?new URL(p,e.compositionUrl).href:p;if(e.compositionUrl&&Hm(g,e.compositionUrl)||document.head.querySelector(`link[href="${CSS.escape(g)}"]`))continue;let y=f.cloneNode(!0);ql(y)&&(y.href=g,document.head.appendChild(y),e.injectedLinks.push(y))}(f=>{for(let p of f){let g=p.cloneNode(!0);zl(g)&&(i&&(g.textContent=Mm(g.textContent||"",i,s,u,{scopeRootSelectors:!0})),document.head.appendChild(g),e.injectedStyles.push(g))}})(t.styleSources);let d=f=>{let p=f.getAttribute("type")?.trim()??"",g=f.getAttribute("src")?.trim()??"";if(g){let x=Om(g,e.compositionUrl);return e.compositionUrl&&Hm(x,e.compositionUrl)?null:{kind:"external",src:x,type:p}}let y=f.textContent?.trim()??"";return y?{kind:"inline",content:y,type:p,scopeCompositionId:o}:null},m=t.scriptSources.map(d).filter(f=>f!==null);if(n){let f=n.getAttribute("data-width"),p=n.getAttribute("data-height"),g=e.parseDimensionPx(f),y=e.parseDimensionPx(p);f&&e.host.setAttribute("data-width",f),p&&e.host.setAttribute("data-height",p),g&&pe(e.host)&&(e.host.style.width=g),y&&pe(e.host)&&(e.host.style.height=y),n.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked","");let x=eS(n);!e.authoredCompositionId&&i&&x.setAttribute("data-composition-id",i),Ps(x),e.host.appendChild(x)}else if(e.hasTemplate){let f=document.importNode(r,!0);Ps(f),e.host.appendChild(f)}else e.host.innerHTML=e.fallbackBodyInnerHtml,Ps(e.host);a&&iS(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;else if(f.type.toLowerCase()==="importmap"){let g=Im(f.content,y=>Om(y,e.compositionUrl));p.textContent=g?JSON.stringify(g):f.content}else if(f.type.toLowerCase()==="module"){let g=f.scopeCompositionId?Lm(a||f.scopeCompositionId,e.compositionUrl?.href):"";p.textContent=g+f.content}else f.scopeCompositionId?p.textContent=Nm(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,a||f.scopeCompositionId,u,e.compositionUrl?.href):p.textContent=`(function(){${f.content}})();`;if(document.body.appendChild(p),e.injectedScripts.push(p),f.kind==="external"){let g=await Zv(p);g.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:g.status,elapsedMs:g.elapsedMs}})}}}async function zm(e){let t=Gs();if(Vm(),t.length===0)return;let n=$m(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 u=document.querySelector(`template#${CSS.escape(a)}-template`);Os(i),await Hs({host:i,authoredCompositionId:a,runtimeCompositionId:o?.runtimeCompositionId||a,hostCompositionSrc:`template#${a}-template`,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function qm(e){let t=Gs();if(Vm(),t.length===0)return;let n=$m(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),u=a?.authoredCompositionId||null,s=a?.runtimeCompositionId||u||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Os(i);try{let d=u!=null?document.querySelector(`template#${CSS.escape(u)}-template`):null;if(d){await Hs({host:i,authoredCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:d.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,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(),g=new DOMParser().parseFromString(f,"text/html");Um(g,l);let y=(u?g.querySelector(`template#${CSS.escape(u)}-template`):null)??g.querySelector("template"),x=y?y.content:g.body;await Hs({host:i,authoredCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:g.body.innerHTML,compositionUrl:l,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,injectedLinks:e.injectedLinks,parseDimensionPx:e.parseDimensionPx,head:g.head,declaredVariableDefaults:$n(g.documentElement),variableDeclarer:g.documentElement,onDiagnostic:e.onDiagnostic})}catch(d){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:u,runtimeCompositionId:s,hostCompositionSrc:o,errorMessage:d instanceof Error?d.message:"unknown_error"}}),Os(i)}}))}function iS(e,t,n){let i={...e.declaredVariableDefaults??(ke(t)?$n(t):{}),...Vl(e.host)};ta(e.variableDeclarer??(ke(t)?t:null),i,n),Ul(e.host),Object.keys(i).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=i,na(e.host,{...Bl(e.host,i,window),...pi()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function oS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function aS(e){if(!Array.isArray(e))throw new Error("expected a JSON array");if(!e.every(oS))throw new Error("every array entry must be an object");return e}function Bs(e){let n=e.vars.data?.captionState;return n==="dim"||n==="active"?n:void 0}function sS(e){return pe(e)?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function uS(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let r of n.children){if(!pe(r))continue;let i=r.dataset.captionWrapper==="true"?r.querySelector(":scope > span"):r.tagName==="SPAN"?r:null;i&&e.push(i)}return e}function lS(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 Us(){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===null)return;let n=aS(t);if(n.length===0)return;let r=uS();for(let i of n){let o=null;if(i.wordId&&(o=sS(document.getElementById(i.wordId))),!o&&i.wordIndex!==void 0&&(o=r[i.wordIndex]??null),!o)continue;let a={},u={};if(i.x!==void 0&&(a.x=i.x),i.y!==void 0&&(a.y=i.y),i.scale!==void 0&&(a.scale=i.scale),i.rotation!==void 0&&(a.rotation=i.rotation),i.opacity!==void 0&&(u.opacity=i.opacity),i.fontSize!==void 0&&(u.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(u.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(u.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let l=e.getTweensOf(o).filter(f=>f.vars.color!==void 0).sort((f,p)=>f.startTime()-p.startTime()),d=l.find(f=>Bs(f)==="dim")??l.find(f=>Bs(f)===void 0),m=d?String(d.vars.color):"";for(let f of l)(Bs(f)??(String(f.vars.color)===m?"dim":"active"))==="dim"?i.dimColor&&(f.vars.color=i.dimColor):i.activeColor&&(f.vars.color=i.activeColor);i.dimColor&&e.set(o,{color:i.dimColor})}if(Object.keys(u).length>0&&e.set(o,u),Object.keys(a).length>0){let s=lS(o);e.set(s,a)}}}).catch(t=>{let n=t instanceof Error?t.message:String(t);console.error(`[HyperFrames] Invalid caption-overrides.json: ${n}`)})}var Vs="data-hf-edit-base-x",$s="data-hf-edit-base-y",An="data-hf-edit-original-translate",ao=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},cS=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},jm=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,Ws=(e,t)=>jm.test(e)&&jm.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,dS=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[r,i,o]=cS(e);if(r===void 0)return`${t} ${n}`;if(i===void 0)return`${Ws(r,t)} ${n}`;let a=o===void 0?"":` ${o}`;return`${Ws(r,t)} ${Ws(i,n)}${a}`},fS=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},mS=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""}},zs=new WeakMap;function pS(e,t){let n=zs.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){Ge("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let r=ao(e.getAttribute("data-x"))-ao(e.getAttribute(Vs)),i=ao(e.getAttribute("data-y"))-ao(e.getAttribute($s));e.hasAttribute(An)||e.setAttribute(An,mS(e)),n===void 0&&fS(e);let o=e.getAttribute(An)??"",a=dS(o,`${r}px`,`${i}px`);e.style.setProperty("translate",a),zs.set(e,e.style.getPropertyValue("translate"))}function so(e,t){let n=e.querySelectorAll(`[${An}]:not([${Vs}]):not([${$s}])`);for(let o=0;o<n.length;o++){let a=n[o];if(a===void 0||!ia(a))continue;let u=a.getAttribute(An)??"";u===""?a.style.removeProperty("translate"):a.style.setProperty("translate",u),a.removeAttribute(An),zs.delete(a)}let r=e.querySelectorAll(`[${Vs}], [${$s}]`),i=0;for(let o=0;o<r.length;o++){let a=r[o];a===void 0||!ia(a)||(pS(a,t),i+=1)}return i}var Km="__hfPositionEditsSeekReapplyWrapped",Xm=new WeakSet,Ym=new WeakMap,Jm=new WeakMap;function Qm(e){let t=e,n=()=>{try{so(t.document)}catch{}},r=m=>typeof m=="function"&&(Xm.has(m)||!!m[Km]),i=m=>{Xm.add(m);try{Object.defineProperty(m,Km,{value:!0})}catch{}},o=m=>{if(typeof m!="function"||r(m))return m;let f=function(...p){let g=m.apply(this,p);return n(),g};return i(f),f},a=(m,f)=>{let p=Ym.get(m);if(p?.has(f))return!0;let g=Object.getOwnPropertyDescriptor(m,f);if(g?.configurable===!1){let A=m[f];return typeof A=="function"&&(m[f]=o(A),n()),!1}let y=m[f],x=g?.set;return Object.defineProperty(m,f,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>y,set:A=>{y=o(A),x?.call(m,A)}}),y=o(y),p??(p=new Set),p.add(f),Ym.set(m,p),n(),!0},u=(m,f)=>{let p=Jm.get(t),g=Object.getOwnPropertyDescriptor(t,m);if(!p?.has(m)){if(g?.configurable===!1){let A=t[m];return A?a(A,f):!1}let x=t[m];Object.defineProperty(t,m,{configurable:!0,enumerable:g?.enumerable??!0,get:()=>x,set:A=>{x=A,x&&a(x,f)}}),p??(p=new Set),p.add(m),Jm.set(t,p)}let y=t[m];return y?a(y,f):!1},s=()=>{let m=u("__hf","seek"),f=u("__player","renderSeek");return m&&f};if(s())return;let l=120,d=t.setInterval(()=>{if(s()){t.clearInterval(d);return}l-=1,l<=0&&t.clearInterval(d)},50)}function uo(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 lo(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function qs(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 Zm=new Set(["img","video","audio","source"]);function hS(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 gS(e){return e.replace(/[;{}<>\\r\\n]/g,"")}function bS(e){if(lo(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 js(e,t){let n=e.closest("[data-composition-id]"),r=t.get(n);if(r)return r;let i=uo(e);return t.set(n,i),i}function xS(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 yS(e){return e.querySelector("[data-hf-root]")??e.getElementById("stage")??e.body?.firstElementChild??e.body}function vS(e,t){let n=new Set,r=yS(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=js(i,t);for(let[a,u]of Object.entries(o)){let s=bS(u);s!==null&&pe(i)&&i.style.setProperty(`--${a}`,gS(s))}}}function Ks(e){let t=new Map;vS(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(!Zm.has(n.tagName.toLowerCase())){console.warn(`[hyperframes] Ignoring data-var-src on <${n.tagName.toLowerCase()}>: variable-bound src is only allowed on ${Array.from(Zm).join("/")}.`);continue}let i=hS(js(n,t)[r]);if(i!==null){if(!qs(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=js(n,t)[r];lo(i)&&xS(n,String(i))}}var xt=new Map,SS="data-hf-color-grading-canvas",ES="__hf_color_grading_canvas__";function cp(){if(typeof MutationObserver>"u"||typeof document>"u")return;let e=document.documentElement;if(!e)return;let t=r=>{pe(r)&&(r.hasAttribute(Gi)||r.setAttribute(Gi,r.style.opacity))},n=r=>{if(ke(r)){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 AS=16,_S=4,wn={enabled:!1,position:.5,softness:0,lineWidth:2},Xs=["#000000","#ffffff"],wS=["#1a1a1a","#f5f5dc"],Gr=3,CS=Gr-1,RS=5,Ys=`${it}.0`,ep=`${it-1}.0`,TS=`${Gr}.0`,kS=`${(CS+.5)/Gr}`;function co(e){let t=e.getAttribute(sr);return t==null?null:Nd(t,uo(e))}var MS=["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`),FS=["#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) * ${ep};`," float lower = floor(position);",` float upper = min(lower + 1.0, ${ep});`,` float y = (row + 0.5) / ${TS};`,` vec4 before = texture2D(u_advanced, vec2((lower + 0.5) / ${Ys}, y));`,` vec4 after = texture2D(u_advanced, vec2((upper + 0.5) / ${Ys}, y));`," return mix(before, after, position - lower);","}","vec4 advancedConfig(float index){",` return texture2D(u_advanced, vec2((index + 0.5) / ${Ys}, ${kS}));`,"}","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`),LS=["#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`),NS=["#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`),DS=["#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 Yt(e){return he(e)||Le(e)}function tp(e){let t=window.getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function np(e,t,n){let r=e.createShader(n);return r?(e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(I("runtime.colorGrading.compileShader",e.getShaderInfoLog(r)),e.deleteShader(r),null)):null}function go(e,t=FS){let n=np(e,MS,e.VERTEX_SHADER),r=np(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:(I("runtime.colorGrading.linkProgram",e.getProgramInfoLog(i)),e.deleteProgram(i),null)):null}function fo(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 IS(e,t){let n=go(e,LS);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 PS(e,t){let n=go(e,NS);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 OS(e,t){let n=go(e,DS);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 Pr(e,t=e.UNSIGNED_BYTE,n=e.LINEAR){let r=fo(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 po(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 Js(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 rp(e,t,n){t&&e.deleteProgram(t);for(let r of n)r&&e.deleteTexture(r)}function tu(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1});if(!t)return null;let n=go(t),r=fo(t),i=fo(t,t.NEAREST),o=fo(t,t.NEAREST);if(!n||!r||!i||!o)return rp(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:Js(t,n,Bi),detailUniforms:Js(t,n,Ua),effectUniforms:Js(t,n,Wa),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")}}):(rp(t,n,[r,i,o]),null)}function HS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function GS(e){if(!HS(e))return{...wn};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,wn.position,0,1),softness:t(e.softness,wn.softness,0,.25),lineWidth:t(e.lineWidth,wn.lineWidth,0,12)}}function dp(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 bo(e){return e instanceof Error?e.message:"LUT failed to load"}function BS(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 fp(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return BS(t)}function nu(e){let t=dp(e);if("error"in t)return{state:"error",message:t.error};let n=xt.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=>cd(o,{maxSize:Pi})),i={state:"pending",promise:r};for(;xt.size>=AS;){let o=xt.keys().next().value;if(!o)break;xt.delete(o)}return xt.set(t.href,i),r.then(o=>{xt.get(t.href)===i&&xt.set(t.href,{state:"ready",lut:o})},o=>{xt.get(t.href)===i&&xt.set(t.href,{state:"error",message:bo(o)})}),i}function ip(e,t,n){if(e.lut?.src===t)return e.lut;let r=La(n),{gl:i,program:o}=e;try{return mp(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=bo(a),e.lutLoadingSrc=null,I("runtime.colorGrading.uploadLut",a),null}}async function US(e){let t=nu(e);if(t.state==="ready")return t.lut;if(t.state==="pending")return t.promise;throw new Error(t.message)}function mp(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 WS(e,t,n){let r=La(n),{gl:i,program:o}=e;return mp(i,o.lutTexture,r),{src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:r.width,textureHeight:r.height}}function ut(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function ru(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),ut(e.gl,t.scratch),ut(e.gl,t.blur),t.bloom&&ut(e.gl,t.bloom),e.effectTargets=null)}function iu(e){let t=e.kuwaharaTargets;t&&(e.gl.deleteProgram(t.horizontalProgram.program),e.gl.deleteProgram(t.resolveProgram.program),ut(e.gl,t.moments),ut(e.gl,t.output),e.kuwaharaTargets=null)}function mo(e,t=!1){ru(e),iu(e),VS(e.gl,e.program),t&&e.gl.getExtension("WEBGL_lose_context")?.loseContext()}function VS(e,t){e.deleteTexture(t.texture),e.deleteTexture(t.lutTexture),e.deleteTexture(t.advancedTexture),e.deleteBuffer(t.quad),e.deleteProgram(t.program)}function $S(e){let t=tu(e.canvas);return t?(mo(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function eu(e){if(!e.sourceHidden)return;e.element.removeAttribute(ur);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 zS(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=IS(t,e.program.quad),r=Pr(t),i=Pr(t);return!n||!r||!i?(n&&t.deleteProgram(n.program),r&&ut(t,r),i&&ut(t,i),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:r,blur:i,bloom:null},e.effectTargets)}function qS(e,t){return t.bloom||(t.bloom=Pr(e.gl),e.effectError=t.bloom?null:"Framebuffer effects unavailable"),t.bloom}function op(e){let t=e.effectTargets;t?.bloom&&(ut(e.gl,t.bloom),t.bloom=null)}function jS(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=PS(t,e.program.quad),o=OS(t,e.program.quad),a=Pr(t,n.HALF_FLOAT_OES,t.NEAREST),u=Pr(t);return!i||!o||!a||!u?(KS(t,i,o,a,u),e.effectError="Kuwahara framebuffer effects unavailable",null):(e.kuwaharaTargets={horizontalProgram:i,resolveProgram:o,moments:a,output:u},e.kuwaharaTargets)}function KS(e,t,n,r,i){t&&e.deleteProgram(t.program),n&&e.deleteProgram(n.program),r&&ut(e,r),i&&ut(e,i)}function pp(e,t,n,r,i){let o=Math.max(1,Math.ceil(r)),a=Math.max(1,Math.ceil(i));return po(e,t,o,a),po(e,n,o,a),{width:o,height:a}}function ho(e,t,n,r,i,o,a,u=!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,u?1:0),e.uniform1f(t.threshold,s),Or(e,t)}function XS(e,t,n,r,i,o,a){let u=pp(e,t.scratch,r,i/2,o/2),s=a/2;ho(e,t.blurProgram,n,t.scratch,u,{x:1,y:0},s,!0,.5),ho(e,t.blurProgram,t.scratch.texture,r,u,{x:0,y:1},s,!0)}function YS(e,t,n,r,i,o,a){let u=n;for(let s=0;s<Math.max(1,Math.floor(a));s++)ho(e,t.blurProgram,u,t.scratch,i,{x:1,y:0},o),ho(e,t.blurProgram,t.scratch.texture,r,i,{x:0,y:1},o),u=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 JS(e,t,n,r,i,o,a,u){po(e,t.moments,i.width,i.height),po(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,u.blur),e.uniform1f(s.radius,u.kuwaharaRadius),Or(e,s);let l=t.resolveProgram;e.bindFramebuffer(e.FRAMEBUFFER,t.output.framebuffer),e.useProgram(l.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.moments.texture),e.uniform1i(l.moments,0),e.uniform2f(l.texel,1/i.width,1/i.height),e.uniform1f(l.radius,u.kuwaharaRadius),e.uniform1f(l.sharpness,u.kuwaharaSharpness),e.uniform1f(l.saturation,u.kuwaharaSaturation),Or(e,l)}function QS(e,t,n,r){if(n<=0)return!1;let i=pp(e.gl,t.scratch,t.blur,r.width,r.height);return YS(e.gl,t,e.program.texture,t.blur,i,.75+Math.pow(n,1.35)*32,n>.55?3:2),!0}function ZS(e,t,n,r,i,o){if(n<=0)return op(e),null;o||op(e);let a=o?qS(e,t):t.blur;return a?(XS(e.gl,t,e.program.texture,a,i.width,i.height,r),a.texture):null}function eE(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&&ru(e),{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let u=zS(e);if(!u)return{blurReady:!1,bloomReady:!1,blurTexture:i.texture,bloomTexture:i.texture};let s=QS(e,u,o,n),l=ZS(e,u,a,t.effects.bloomRadius,n,s);return{blurReady:s,bloomReady:l!==null,blurTexture:u.blur.texture,bloomTexture:l??i.texture}}function tE(e,t,n,r,i,o,a){let u=t.effects.kuwahara;if(u<=0&&!o)return e.kuwaharaTargets&&a&&iu(e),{kuwaharaReady:!1,kuwaharaTexture:e.program.texture};let s=jS(e);return!s||u<=0?{kuwaharaReady:!1,kuwaharaTexture:s?.output.texture??e.program.texture}:(JS(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 hp(e,t,n,r,i={}){let o=i.releaseIdleTargets??!0;e.effectError=null;let a=eE(e,t,n,o),u=tE(e,t,n,r,a.blurReady,i.preserveKuwahara??!1,o);return{...a,...u}}function nE(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=dp(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=nu(t);return i.state==="ready"?ip(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||(ip(e,r.href,o),Ve(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=bo(o),e.lutLoadingSrc=null,Ve(e))})),null)}function Dr(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&&Yt(n))return n;try{let r=document.querySelector(t);return r&&Yt(r)?r:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&Yt(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&Yt(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&&Yt(r)?r:null}catch{return null}}function gp(e){return he(e)?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:Le(e)&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function bp(e){return he(e)?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:Le(e)?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function xp(e){let t=mt(e);return t&&bp(t)?t:null}function ap(e){if(!he(e))return!1;let t=xp(e);if(!t)return!1;let n=window.getComputedStyle(t);return n.display!=="none"&&n.visibility!=="hidden"}function rE(e){return Le(e)&&e.classList.contains("__render_frame__")}function iE(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function yp(e){if(he(e)){let t=xp(e);if(t)return t}return bp(e)?e:null}function sp(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 oE(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=sp(o,"x"),u=sp(o,"y");if(a!==null&&(o==="left"||o==="right"||o.endsWith("%")&&i===0)){n=a;continue}if(u!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&i>0)){r=u;continue}}return{x:n,y:r}}function vp(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",u=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);u=n*f,s=r*f,a==="scale-down"&&u>n&&s>r&&(u=n,s=r)}else a==="none"&&(u=n,s=r);let l=oE(o||"center"),d=(e-u)*l.x/e,m=(t-s)*l.y/t;return{scaleX:u/e,scaleY:s/t,offsetX:d,offsetY:m}}function aE(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function up(e,t){return Math.max(0,Math.round(e>0?e:t))}function sE(e,t){let{element:n,canvas:r}=e,i=n.parentElement;i&&aE(e,i);let o=window.getComputedStyle(t);Hd(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(),u=up(n.offsetWidth,a.width),s=up(n.offsetHeight,a.height);if(u<=0||s<=0)return r.style.display="none",null;let l=Math.max(1,window.devicePixelRatio||1),d=Math.round(u*l),m=Math.round(s*l);return r.width!==d&&(r.width=d),r.height!==m&&(r.height=m),{width:d,height:m}}function _n(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 Jt(e,t,n,r){e.set(r,(t*it+n)*4)}function Lt(e,t){return Math.min(1,Math.max(1/255,(e*(127/t)+128)/255))}function Qs(e,t,n){return e.length>=3?Da(e,t,n):new Float32Array(it)}function Xt(e,t){return e[t]??0}function uE(e,t,n){let r=hn(t.red),i=hn(t.green),o=hn(t.blue),a=hn(t.master),u=Qs(n.hueVsHue,-180,180),s=Qs(n.hueVsSaturation,-1,1),l=Qs(n.hueVsLuma,-1,1);for(let d=0;d<it;d+=1)Jt(e,0,d,[Xt(r,d),Xt(i,d),Xt(o,d),Xt(a,d)]),Jt(e,1,d,[Lt(Xt(u,d),180),Lt(Xt(s,d),1),Lt(Xt(l,d),1),1])}function lE(e,t,n){let r=n*RS;Jt(e,2,r,[t.key.hue.center/360,t.key.hue.range/180,t.key.hue.softness/180,1]),Jt(e,2,r+1,[t.key.saturation.min,t.key.saturation.max,t.key.saturation.softness/.5,0]),Jt(e,2,r+2,[t.key.luma.min,t.key.luma.max,t.key.luma.softness/.5,0]),Jt(e,2,r+3,[Lt(t.correction.hueShift,180),Lt(t.correction.saturation,1),Lt(t.correction.luma,1),Lt(t.correction.temperature,1)]),Jt(e,2,r+4,[Lt(t.correction.tint,1),.5,.5,1])}function cE(e,t,n){let r=new Float32Array(it*Gr*4);uE(r,e,t);let i=0;for(let o of n)o.enabled&&(lE(r,o,i),i+=1);return r}var lp=new WeakMap;function dE(e,t,n){let r=lp.get(e);if(r?.hueCurves===t&&r.secondaries===n)return r.signature;let i=JSON.stringify([e,t,n]);return lp.set(e,{hueCurves:t,secondaries:n,signature:i}),i}function fE(e,t,n,r){let{curves:i,hueCurves:o}=n,a=dE(i,o,r);if(t.advancedSignature===a)return;let u=Uint8Array.from(cE(i,o,r),or);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,it,Gr,0,e.RGBA,e.UNSIGNED_BYTE,u),t.advancedSignature=a}function Zs(e,t,n){e.uniform3f(t,n.hue/360,n.amount,n.level)}function Sp(e,t,n,r,i,o,a,u,s,l,d,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,l.scaleX,l.scaleY),e.uniform2f(t.uvOffset,l.offsetX,l.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:g}=n,y=za(f),x=qa(p),A=ja(g)?g.reduce((L,B)=>L+Number(B.enabled),0):0;(y||x||A>0)&&fE(e,t,n,g),Zs(e,t.shadowWheel,n.wheels.shadows),Zs(e,t.midtoneWheel,n.wheels.midtones),Zs(e,t.highlightWheel,n.wheels.highlights),e.uniform1f(t.rgbCurvesEnabled,y?1:0),e.uniform1f(t.hueCurvesEnabled,x?1:0),e.uniform1f(t.secondaryCount,A);for(let[L,B]of t.adjustUniforms)e.uniform1f(B,n.adjust[L]);for(let[L,B]of t.detailUniforms)e.uniform1f(B,n.details[L]);e.uniform1f(t.grainSeed,d),e.uniform1f(t.effectTime,m);for(let[L,B]of t.effectUniforms)e.uniform1f(B,n.effects[L]);let M=n.palette??(n.effects.engraving>0||n.effects.crosshatch>0?wS:Xs),C=M[M.length-1]??Xs[1];e.uniform1f(t.paletteSize,M.length),_n(e,t.palette0,M[0]??Xs[0]),_n(e,t.palette1,M[1]??C),_n(e,t.palette2,M[2]??C),_n(e,t.palette3,M[3]??C),_n(e,t.palette4,M[4]??C),_n(e,t.palette5,M[5]??C),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,u.enabled?1:0),e.uniform1f(t.comparePosition,u.position),e.uniform1f(t.compareSoftness,u.softness),e.uniform1f(t.compareLineWidth,u.lineWidth)}function mE(e){if(!e.sourceHidden){let t=e.element.getAttribute(Gi);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(ur,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function yt(e){let t=Md.find(n=>n.path===e);if(!t)throw new Error(`Missing color-grading animation property: ${e}`);return t}var Ep=yt("intensity"),Ap=yt("lut.intensity"),_p=yt("adjust.exposure"),wp=yt("effects.kuwahara"),Cp=[["blur",yt("effects.blur")],["bloom",yt("effects.bloom")],["kuwahara",wp],["pixelate",yt("effects.pixelate")],["ascii",yt("effects.ascii")],["dither",yt("effects.dither")]],Rp=[Ep,Ap,_p,...Cp.map(([,e])=>e)];function Qt(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 Ir(e,t){return t!==null&&(Dd(t)||Rp.some(n=>Qt(e,n)!==null))}function pE(e,t){let n=null;for(let[r,i]of Cp){let o=Qt(e,i);o!==null&&(n??(n={...t.effects}),n[r]=o)}return n}function hE(e){let{element:t,grading:n}=e,r=Qt(t,Ep),i=Qt(t,Ap),o=Qt(t,_p),a=pE(t,n);if(![r,i,o].some(l=>l!==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 Tp(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 kp(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 Ve(e){if(e.destroyed||e.contextLost)return!1;let t=yp(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=gp(t);if(!n)return!1;let r=pe(t)?t:e.element,i=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),a=e.sourceHidden&&i==="0"&&o==="important",u=e.element.style.getPropertyValue("visibility"),s=rE(t);s&&iE(e,t),a&&!s&&(e.sourceInlineOpacity!==null?e.element.style.setProperty("opacity",e.sourceInlineOpacity,e.sourceInlineOpacityPriority||""):e.element.style.removeProperty("opacity"));let l=window.getComputedStyle(s?t:e.element);e.sourceOpacityForCanvas=l.opacity||"1",a&&!s&&e.element.style.setProperty("opacity","0","important"),e.sourceVisibleForCanvas=(s||u!=="hidden")&&l.visibility!=="hidden";let d=sE(e,r);if(!d)return!1;let m=window.getComputedStyle(r),f=vp(d.width,d.height,n.width,n.height,m.objectFit,m.objectPosition),{gl:p,program:g}=e;try{let y=hE(e),x=nE(e);Tp(p,g.texture,t);let A=Qt(e.element,wp)!==null,M=hp(e,y,d,f,{preserveKuwahara:A});p.bindFramebuffer(p.FRAMEBUFFER,null),p.viewport(0,0,d.width,d.height),p.useProgram(g.program),kp(p,g,M);let C=window.__player?.getTime?.(),L=typeof C=="number"&&Number.isFinite(C)?Math.max(0,C):he(e.element)?Math.max(0,e.element.currentTime):0,B=e.grainSeed+Math.floor(L*60);return Sp(p,g,y,x,M.blurReady,M.bloomReady,M.kuwaharaReady,e.compare,d,f,B,L),Or(p,g),mE(e),e.hasDrawn=!0,e.drawError=null,!0}catch(y){return e.drawError=y instanceof Error?y.message:"Shader draw failed",I("runtime.colorGrading.drawEntry",y),!1}}function gE(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))),u=i>0&&o>0?i/o:t.width/t.height;return u>=1?{width:a,height:Math.max(1,Math.round(a/u))}:{width:Math.max(1,Math.round(a*u)),height:a}}function bE(){let e=document.createElement("canvas"),t=tu(e);return t?{canvas:e,...t,lut:null,effectTargets:null,kuwaharaTargets:null,effectError:null}:null}function xE(e,t){let n=t?void 0:window.__player?.getTime?.();return typeof n=="number"&&Number.isFinite(n)?Math.max(0,n):he(e)?Math.max(0,e.currentTime):0}function yE(e,t,n,r){let i=yp(t);if(!i)return null;let o=gp(i);if(!o)return null;let a=gE(t,o,n);e.canvas.width=a.width,e.canvas.height=a.height;let u=pe(i)?i:t,s=window.getComputedStyle(u),l=vp(a.width,a.height,o.width,o.height,s.objectFit,s.objectPosition);return Tp(e.gl,e.program.texture,i),{dimensions:a,uv:l,effectTime:xE(t,r),grainSeed:fp(t)+(he(t)?Math.floor(t.currentTime*60):0)}}async function vE(e,t,n,r,i=!1){let o=yE(e,t,r,i);if(!o)return null;let{dimensions:a,uv:u,grainSeed:s,effectTime:l}=o,d=[];for(let m of n.slice(0,32)){let f=Ui(m.grading);if(!f){d.push({id:m.id,dataUrl:null,error:"Invalid grading"});continue}let p=null;try{f.lut&&(e.lut?.src!==f.lut.src&&(e.lut=WS(e,f.lut.src,await US(f.lut.src))),p=e.lut),d.push({id:m.id,dataUrl:SE(e,f,p,a,u,s,l)})}catch(g){d.push({id:m.id,dataUrl:null,error:bo(g)})}}return{...a,images:d}}function SE(e,t,n,r,i,o,a){let{canvas:u,gl:s,program:l}=e,d=hp(e,t,r,i,{releaseIdleTargets:!1});return s.bindFramebuffer(s.FRAMEBUFFER,null),s.viewport(0,0,r.width,r.height),s.useProgram(l.program),kp(s,l,d),n||(e.lut=null),Sp(s,l,t,n,d.blurReady,d.bloomReady,d.kuwaharaReady,wn,r,i,o,a),Or(s,l),u.toDataURL("image/png")}function st(e,t,n,r){t.addEventListener(n,r),e.cleanup.push(()=>t.removeEventListener(n,r))}function EE(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&he(e.element)&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function Hr(e){if(e.destroyed||!he(e.element)||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,Ve(e),!e.destroyed&&!t.paused&&!t.ended&&Hr(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,Ve(e),!e.destroyed&&!t.paused&&!t.ended&&Hr(e)})}function AE(e){let t=()=>{Ve(e)};if(st(e,e.element,"load",t),st(e,e.element,"loadedmetadata",t),st(e,e.element,"loadeddata",t),st(e,e.element,"seeked",t),st(e,e.element,"timeupdate",t),st(e,window,"resize",t),he(e.element)&&(st(e,e.element,"play",()=>Hr(e)),st(e,e.element,"pause",t)),st(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",eu(e)}),st(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!$S(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",eu(e);return}e.drawError=null,Ve(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(),Ve(e)}))});o.observe(e.element,{attributes:!0,attributeFilter:["style"]}),e.cleanup.push(()=>o.disconnect())}}function _E(e){if(e.destroyed)return null;e.destroyed=!0,EE(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();return e.cleanup.length=0,e.canvas.remove(),ru(e),iu(e),eu(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 Mp(e,t){return e.removeAttribute("style"),t.id?e.id=`${wd}${t.id}`:e.removeAttribute("id"),e.className=ES,e.setAttribute(SS,"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 wE(e){return Mp(document.createElement("canvas"),e)}function Fp(e){let t=new WeakMap,n=new Set,r=[],i=null,o=null,a=Promise.resolve(),u=!1,s=(w,_,T)=>{let N=t.get(w);if(N)return N.grading=_,N.source=T,Ve(N),he(w)&&!w.paused&&Hr(N),!0;let W=r.pop();if(W)Mp(W.canvas,w);else{let Y=wE(w),R=tu(Y);if(!R)return Y.remove(),!1;W={canvas:Y,gl:R.gl,program:R.program,effectTargets:null,kuwaharaTargets:null,effectError:null}}let X={element:w,...W,grading:_,compare:{...wn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,kuwaharaTargets:null,effectError:null,source:T,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(w).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(w).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:fp(w),destroyed:!1};return t.set(w,X),n.add(w),AE(X),Ve(X),he(w)&&!w.paused&&Hr(X),!0},l=(w,_)=>{if(u)return!1;let T=Dr(w);if(!T)return!1;let N=t.get(T);if(!N){let W=co(T);if(!Ir(T,W)||!s(T,W,"attribute"))return!1;N=t.get(T)}return N?(N.compare=GS(_),Ve(N),!0):!1},d=w=>{let _=t.get(w);if(!_)return;let T=_E(_);T&&(_.contextLost||r.length>=_S?mo(T,!0):r.push(T)),t.delete(w),n.delete(w)},m=()=>{if(u)return 0;let w=new Set;document.querySelectorAll(`video[${sr}], img[${sr}]`).forEach(T=>{if(!Yt(T))return;w.add(T);let N=co(T);Ir(T,N)&&(tp(T)||ap(T))?s(T,N,"attribute"):d(T)});for(let T of n){let N=t.get(T);N&&(!T.isConnected||N.source==="attribute"&&!w.has(T))&&d(T)}return n.size},f=()=>{if(u)return 0;let w=0;for(let _ of n){let T=t.get(_);T&&Ve(T)&&(w+=1)}return w},p=async()=>{let w=new Set;for(let _ of n){let T=t.get(_)?.grading.lut;if(!T?.src.trim()||(T.intensity??1)<=0)continue;let N=nu(T.src);N.state==="pending"&&w.add(N.promise)}return w.size>0&&await Promise.allSettled(w),f(),w.size},g=()=>{if(u)return 0;let w=0;for(let _ of n){let T=t.get(_);!T||!Rp.some(W=>Qt(_,W)!==null)||he(_)&&!_.paused&&!_.ended||Ve(T)&&(w+=1)}return w},y=(w,_)=>{if(u)return!1;let T=Dr(w);if(!T)return!1;let N=Ui(_);return Ir(T,N)?s(T,N,"live"):(d(T),!0)},x=(w,_)=>{if(!Yt(w))return!1;let T=t.get(w);if(!T){if(!_)return!1;let N=co(w);return Ir(w,N)&&s(w,N,"attribute")}return T.sourceVisibleForCanvas=_,!_&&T.source==="attribute"&&d(w),!0},A=w=>{let _=Dr(w);if(!_)return{state:"missing",message:"Media not found"};let T=t.get(_);if(T)return T.effectError?{state:"unavailable",message:T.effectError}:T.drawError?{state:"unavailable",message:T.drawError}:T.lutError?{state:"unavailable",message:`LUT error: ${T.lutError}`}:T.grading.lut&&T.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:T.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:T.lut?"Shader + LUT active":"Shader active"};let N=co(_);return Ir(_,N)?!tp(_)&&!ap(_)?{state:"pending",message:"Waiting for visible media"}:{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},M=async(w,_,T)=>{let N=async()=>{if(u||_.length===0)return null;let X=Dr(w);return!X||(o??(o=bE()),!o)?null:vE(o,X,_,T?.maxDimension,T?.useMediaTime)},W=a.then(N,N);return a=W.then(()=>{},()=>{}),W},C=w=>{let _=Dr(w);if(!he(_))return null;if(!_.paused)return()=>{};let T=_.currentTime,N=_.loop,W=_.muted;return _.loop=!0,_.muted=!0,(_.ended||Number.isFinite(_.duration)&&T>=_.duration)&&(_.currentTime=0),e?.lease(_),_.play().catch(()=>{}),()=>{e?.release(_),_.pause(),_.loop=N,_.muted=W,_.currentTime=T}},L=()=>{if(!u){u=!0,i?.disconnect(),i=null;for(let w of n)d(w);for(let w of r)mo(w,!0);r.length=0,o&&(mo(o,!0),o=null)}};document.body&&(i=new MutationObserver(()=>m()),i.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[sr]}));let B={refresh:m,redraw:f,redrawAnimated:g,waitForActiveLuts:p,setGrading:y,setCompare:l,setSourceVisibility:x,getStatus:A,renderPreviews:M,startPreviewPlayback:C,destroy:L},F=window;return F.__hf=F.__hf||{},F.__hf.colorGrading=B,m(),B}var CE={mulX:374761393,mulY:668265263,mulMix:1274126177,offset:2654435769,shift1:13,shift2:16,divisor:4294967296},{mulX:RE,mulY:TE,mulMix:Lp,offset:kE,shift1:ME,shift2:FE,divisor:LE}=CE,NE=20,Np=`#version 300 es\nprecision highp float;\nprecision highp int;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform float u_fractalType;\nuniform float u_noiseType;\nuniform float u_invert;\nuniform float u_contrast;\nuniform float u_brightness;\nuniform float u_scale;\nuniform float u_complexity;\nuniform float u_subInfluence;\nuniform float u_subScaling;\nuniform float u_evolution;\nuniform float u_randomSeed;\nuniform float u_opacity;\n\nfloat hfHashUnit(int ix, int iy, int seed) {\n uint h = ((uint(ix) * ${RE}u) ^ (uint(iy) * ${TE}u) ^ (uint(seed) * ${Lp}u)) + ${kE}u;\n h = h ^ (h >> ${ME}u);\n h = h * ${Lp}u;\n h = h ^ (h >> ${FE}u);\n return float(h) / ${LE}.0;\n}\n\nfloat hfFade(float f, float noiseType) {\n if (noiseType < 1.5) return 0.0;\n if (noiseType < 2.5) return f;\n if (noiseType < 3.5) return f * f * (3.0 - 2.0 * f);\n return f * f * f * (f * (f * 6.0 - 15.0) + 10.0);\n}\n\nfloat hfValueNoise(vec2 p, int seed) {\n vec2 cell = floor(p);\n vec2 f = p - cell;\n int ix = int(cell.x);\n int iy = int(cell.y);\n float sx = hfFade(f.x, u_noiseType);\n float sy = hfFade(f.y, u_noiseType);\n float bottom = mix(hfHashUnit(ix, iy, seed), hfHashUnit(ix + 1, iy, seed), sx);\n float top = mix(hfHashUnit(ix, iy + 1, seed), hfHashUnit(ix + 1, iy + 1, seed), sx);\n return mix(bottom, top, sy);\n}\n\nfloat hfFbm(vec2 p) {\n float lacunarity = 100.0 / max(u_subScaling, 1.0);\n float gain = u_subInfluence / 100.0;\n int seed = int(u_randomSeed);\n float amp = 1.0;\n float freq = 1.0;\n float sum = 0.0;\n float norm = 0.0;\n for (int i = 0; i < ${NE}; i++) {\n if (float(i) >= u_complexity) break;\n sum += amp * hfValueNoise(p * freq, seed + i);\n norm += amp;\n amp *= gain;\n freq *= lacunarity;\n }\n return norm > 0.0 ? sum / norm : 0.0;\n}\n\nvoid main() {\n vec2 px = v_uv * u_size;\n vec2 p = px / max(u_scale, 1.0) + vec2(u_evolution, u_evolution * 0.5);\n float v = hfFbm(p);\n v = (v - 0.5) * (u_contrast / 100.0) + 0.5 + u_brightness / 100.0;\n if (u_invert > 0.5) v = 1.0 - v;\n v = clamp(v, 0.0, 1.0);\n float a = clamp(u_opacity / 100.0, 0.0, 1.0);\n fragColor = vec4(v * a, v * a, v * a, a);\n}\n`;var ou={lumaR:.299,lumaG:.587,lumaB:.114},{lumaR:DE,lumaG:IE,lumaB:PE}=ou,Dp=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform sampler2D u_src2;\n// 1 when the map ref named another element, 0 when the map is the layer\n// itself. Set by the runtime for every pass, from whether a ref resolved.\nuniform float u_hasSrc2;\nuniform float u_useH;\nuniform float u_maxH;\nuniform float u_useV;\nuniform float u_maxV;\nuniform float u_behavior;\nuniform float u_edge;\nuniform float u_expand;\n\nvec4 hfSampleSrc(vec2 uv) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);\n return texture(u_src, uv);\n}\n\n// The selector\'s value, in [0, 1]. Half and Off both land on 0.5, which is the\n// "no displacement" midpoint the caller subtracts.\nfloat hfMapChannel(vec4 premultiplied, float selector) {\n vec3 rgb = premultiplied.a > 0.0 ? premultiplied.rgb / premultiplied.a : vec3(0.0);\n if (selector < 1.5) return rgb.r;\n if (selector < 2.5) return rgb.g;\n if (selector < 3.5) return rgb.b;\n if (selector < 4.5) return premultiplied.a;\n if (selector < 8.5) return dot(rgb, vec3(${DE}, ${IE}, ${PE}));\n if (selector < 9.5) return 1.0;\n return 0.5;\n}\n\nvoid main() {\n vec4 mapTexel = u_hasSrc2 > 0.5 ? texture(u_src2, v_uv) : texture(u_src, v_uv);\n float h = hfMapChannel(mapTexel, u_useH);\n float v = hfMapChannel(mapTexel, u_useV);\n vec2 d = vec2((h - 0.5) * 2.0 * u_maxH, (v - 0.5) * 2.0 * u_maxV);\n fragColor = hfSampleSrc(v_uv + d / u_size);\n}\n`;var{lumaR:OE,lumaG:HE,lumaB:GE}=ou;var Ip=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform sampler2D u_src2;\nuniform float u_mode;\n\n// The matte texel is premultiplied, so its rgb is already "over black" \\u2014 the\n// composite After Effects reads a luma matte through.\nfloat hfCoverage(vec4 matte, float mode) {\n if (mode < 1.5) return matte.a;\n if (mode < 2.5) return 1.0 - matte.a;\n float luma = dot(matte.rgb, vec3(${OE}, ${HE}, ${GE}));\n if (mode < 3.5) return luma;\n return 1.0 - luma;\n}\n\nvoid main() {\n vec4 src = texture(u_src, v_uv);\n vec4 matte = texture(u_src2, v_uv);\n fragColor = src * clamp(hfCoverage(matte, u_mode), 0.0, 1.0);\n}\n`;var BE={lcgMulA:1103515245,lcgMulB:12996205,lcgAdd:12345,highMask:32640,lowMask:255,byteScale:32704},{lcgMulA:UE,lcgMulB:WE,lcgAdd:Pp,highMask:VE,lowMask:$E,byteScale:zE}=BE,Op=`#version 300 es\nprecision highp float;\n// NOT decoration: a fragment shader\'s default integer precision is mediump,\n// and a mediump uint is only guaranteed 16 bits (ESSL 3.00 \\xA74.5.2). Every step\n// below \\u2014 the Jenkins mix, both LCG rounds \\u2014 is defined by 32-bit wraparound,\n// so without this the hash is a different function on any implementation that\n// honours the minimum. ANGLE and SwiftShader both use 32-bit ints, which is\n// exactly why no test on this machine would catch it.\nprecision highp int;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform float u_amount;\nuniform float u_useColorNoise;\nuniform float u_clipping;\n\n// Bob Jenkins\' 1997 integer mix, the six-round shift/xor/subtract sequence the\n// metallib runs verbatim. uint arithmetic wraps in GLSL ES 3.00, which is what\n// makes this bit-identical to the C original.\nuint hfJenkinsMix(uint a, uint b, uint c) {\n a -= b; a -= c; a ^= (c >> 13u);\n b -= c; b -= a; b ^= (a << 8u);\n c -= a; c -= b; c ^= (b >> 13u);\n a -= b; a -= c; a ^= (c >> 12u);\n b -= c; b -= a; b ^= (a << 16u);\n c -= a; c -= b; c ^= (b >> 5u);\n a -= b; a -= c; a ^= (c >> 3u);\n b -= c; b -= a; b ^= (a << 10u);\n c -= a; c -= b; c ^= (b >> 15u);\n return c;\n}\n\n// The hash\'s 15-bit output byte for one channel.\nfloat hfNoiseByte(uint a, uint y, uint seed) {\n uint h = hfJenkinsMix(a, y, seed);\n uint t2 = h * ${UE}u + ${Pp}u;\n uint t4 = t2 * ${WE}u + ${Pp}u;\n return float(((t4 >> 16u) & ${$E}u) ^ ((t2 >> 9u) & ${VE}u));\n}\n\nvoid main() {\n vec4 src = texture(u_src, v_uv);\n vec2 px = floor(v_uv * u_size);\n uint x = uint(max(px.x, 0.0));\n // After Effects indexes rows from the top; v_uv is y-up.\n uint y = uint(max(u_size.y - 1.0 - px.y, 0.0));\n float frame = floor(u_t * u_fps + 0.5);\n uint seed = uint(max(frame, 0.0)) & 0xFFFFu;\n\n float amount = u_amount * 0.01;\n vec3 nz;\n if (u_useColorNoise > 0.5) {\n uint a = x * 3u;\n nz = vec3(hfNoiseByte(a, y, seed), hfNoiseByte(a + 1u, y, seed), hfNoiseByte(a + 2u, y, seed));\n } else {\n nz = vec3(hfNoiseByte(x, y, seed));\n }\n nz = amount * (nz / ${zE}.0 - 0.5);\n\n vec4 out4 = vec4(src.rgb + nz, src.a);\n // A valid premultiplied colour needs rgb <= a component-wise; noise on a\n // near-transparent texel can push rgb above it, which our fixed 8-bit RGBA\n // storage cannot carry safely the way AE\'s float pipeline can (see the doc\n // comment above). This runs before, and independently of, u_clipping.\n out4.rgb = min(out4.rgb, out4.a);\n fragColor = u_clipping > 0.5 ? clamp(out4, 0.0, 1.0) : out4;\n}\n`;var qE={tau:6.283185307179586,degreesPerTurn:360},{tau:jE,degreesPerTurn:KE}=qE,Hp=`#version 300 es\nprecision highp float;\n\nin vec2 v_uv;\nout vec4 fragColor;\n\nuniform vec2 u_size;\nuniform float u_t;\nuniform float u_fps;\nuniform sampler2D u_src;\nuniform float u_waveType;\nuniform float u_height;\nuniform float u_width;\nuniform float u_direction;\nuniform float u_speed;\nuniform float u_pinning;\nuniform float u_phase;\n\n// Outside the layer\'s own box there is nothing to warp in from, so the wave\n// carries transparency rather than a smeared edge pixel.\nvec4 hfSampleSrc(vec2 uv) {\n if (uv.x < 0.0 || uv.x > 1.0 || uv.y < 0.0 || uv.y > 1.0) return vec4(0.0);\n return texture(u_src, uv);\n}\n\nvoid main() {\n vec2 px = v_uv * u_size;\n float dir = radians(u_direction);\n vec2 travel = vec2(sin(dir), -cos(dir));\n vec2 swing = vec2(-travel.y, travel.x);\n float proj = (px.x + 1.0) * travel.x + px.y * travel.y;\n float turns = proj / max(u_width, 1.0) + u_phase / ${KE}.0 + u_speed * u_t;\n float disp = u_height * sin(${jE} * turns);\n fragColor = hfSampleSrc((px + swing * disp) / u_size);\n}\n`;var au="data-vfx-chain",Gp=1,Bp=[{value:1,label:"Red"},{value:2,label:"Green"},{value:3,label:"Blue"},{value:4,label:"Alpha"},{value:5,label:"Luminance"},{value:6,label:"Hue"},{value:7,label:"Lightness"},{value:8,label:"Saturation"},{value:9,label:"Full"},{value:10,label:"Half"},{value:11,label:"Off"}],XE=[{id:"fractal-noise",label:"Fractal Noise",ae:"ADBE Fractal Noise",capture:"none",frag:Np,params:[{kind:"enum",key:"fractalType",label:"Fractal Type",options:[{value:1,label:"Basic"}],default:1,hint:"Only Basic is implemented in v1."},{kind:"enum",key:"noiseType",label:"Noise Type",options:[{value:1,label:"Block"},{value:2,label:"Linear"},{value:3,label:"Soft Linear"},{value:4,label:"Spline"}],default:3},{kind:"bool",key:"invert",label:"Invert",default:!1},{kind:"number",key:"contrast",label:"Contrast",unit:"%",min:0,max:1e3,step:1,default:100},{kind:"number",key:"brightness",label:"Brightness",unit:"",min:-1e3,max:1e3,step:1,default:0},{kind:"number",key:"scale",label:"Scale",unit:"%",min:6,max:1e4,step:1,default:100},{kind:"number",key:"complexity",label:"Complexity",unit:"",min:1,max:20,step:1,default:6},{kind:"number",key:"subInfluence",label:"Sub Influence",unit:"%",min:0,max:100,step:1,default:70},{kind:"number",key:"subScaling",label:"Sub Scaling",unit:"%",min:0,max:100,step:1,default:56},{kind:"number",key:"evolution",label:"Evolution",unit:"revolutions",min:-1e4,max:1e4,step:.01,default:0,animatable:!0},{kind:"number",key:"randomSeed",label:"Random Seed",unit:"",min:0,max:99999,step:1,default:0},{kind:"number",key:"opacity",label:"Opacity",unit:"%",min:0,max:100,step:1,default:100,animatable:!0}]},{id:"wave-warp",label:"Wave Warp",ae:"ADBE Wave Warp",capture:"self",frag:Hp,params:[{kind:"enum",key:"waveType",label:"Wave Type",options:[{value:1,label:"Sine"}],default:1,hint:"Only Sine is implemented in v1; the exporter marks the others cosmetic."},{kind:"number",key:"height",label:"Wave Height",unit:"px",min:-1e3,max:1e3,step:1,default:10,animatable:!0},{kind:"number",key:"width",label:"Wave Width",unit:"px",min:1,max:1e4,step:1,default:40,animatable:!0},{kind:"number",key:"direction",label:"Direction",unit:"deg",min:-360,max:360,step:1,default:90},{kind:"number",key:"speed",label:"Wave Speed",unit:"waves/s",min:-100,max:100,step:.1,default:1},{kind:"enum",key:"pinning",label:"Pinning",options:[{value:1,label:"None"}],default:1,hint:"Only None is implemented in v1; the exporter marks the others cosmetic."},{kind:"number",key:"phase",label:"Phase",unit:"deg",min:-360,max:360,step:1,default:0,animatable:!0}]},{id:"displacement-map",label:"Displacement Map",ae:"ADBE Displacement Map",capture:"self",frag:Dp,params:[{kind:"ref",key:"map",label:"Displacement Map Layer",optional:!0},{kind:"enum",key:"useH",label:"Use For Horizontal Displacement",options:Bp,default:1,hint:"Hue, Lightness and Saturation are read as Luminance in v1."},{kind:"number",key:"maxH",label:"Max Horizontal Displacement",unit:"px",min:-32e3,max:32e3,step:1,default:5,animatable:!0},{kind:"enum",key:"useV",label:"Use For Vertical Displacement",options:Bp,default:2,hint:"Hue, Lightness and Saturation are read as Luminance in v1."},{kind:"number",key:"maxV",label:"Max Vertical Displacement",unit:"px",min:-32e3,max:32e3,step:1,default:5,animatable:!0},{kind:"enum",key:"behavior",label:"Displacement Map Behavior",options:[{value:1,label:"Center Map"}],default:1,hint:"Only Center Map is implemented in v1."},{kind:"enum",key:"edge",label:"Edge Behavior",options:[{value:0,label:"Off"}],default:0,hint:"Only Off (transparent outside the layer) is implemented in v1."},{kind:"bool",key:"expand",label:"Expand Output",default:!0}]},{id:"luma-matte",label:"Matte",capture:"self",frag:Ip,params:[{kind:"ref",key:"matte",label:"Matte Layer"},{kind:"enum",key:"mode",label:"Matte Mode",options:[{value:1,label:"Alpha"},{value:2,label:"Alpha Inverted"},{value:3,label:"Luma"},{value:4,label:"Luma Inverted"}],default:1}]},{id:"noise",label:"Noise",ae:"ADBE Noise",capture:"self",frag:Op,params:[{kind:"number",key:"amount",label:"Amount of Noise",unit:"%",min:0,max:400,step:.1,default:0,animatable:!0},{kind:"bool",key:"useColorNoise",label:"Use Color Noise",default:!1},{kind:"bool",key:"clipping",label:"Clip Result Values",default:!0}]}],xo=new Map(XE.map(e=>[e.id,e]));function Vp(e){return xo.get(e)}function $p(e,t){let n=xo.get(e);if(!n)return{};let r={};for(let i of n.params){let o=t?.[i.key];r[i.key]=i.kind==="enum"?YE(i,o):i.kind==="bool"?JE(i,o):i.kind==="ref"?QE(o):ZE(i,o)}return r}function zp(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):Number.NaN;return Number.isFinite(t)?t:void 0}function YE(e,t){let n=zp(t);return n!==void 0&&e.options.some(r=>r.value===n)?n:e.default}function JE(e,t){return typeof t=="boolean"?t:e.default}function QE(e){return typeof e=="string"?e:""}function ZE(e,t){let n=zp(t);return n!==void 0?Math.min(e.max,Math.max(e.min,n)):e.default}var Je=class extends Error{constructor(t){super(t),this.name="VfxChainError"}};function su(e){return e.nodes.filter(t=>t.enabled!==!1)}var Up={none:0,self:1,backdrop:2};function qp(e){let t="none";for(let n of su(e)){let r=xo.get(n.type);r&&Up[r.capture]>Up[t]&&(t=r.capture)}return t}function jp(e){let t;try{t=JSON.parse(e)}catch(i){throw new Je(`Chain file is not valid JSON: ${i.message}`)}if(typeof t!="object"||t===null)throw new Je("Chain file must be a JSON object.");let n=t;if(n.version!==Gp)throw new Je(`Unsupported chain version: ${String(n.version)}`);if(!Array.isArray(n.nodes))throw new Je("Chain file is missing a `nodes` array.");let r=n.nodes.map(nA);return{version:Gp,nodes:r}}function Wp(e){return typeof e=="object"&&e!==null}function eA(e,t){if(typeof e.type!="string"||!xo.has(e.type))throw new Je(`Node ${t} has unknown effect type: ${String(e.type)}`);return e.type}function tA(e,t){if(typeof e.id!="string"||e.id==="")throw new Je(`Node ${t} is missing an id.`);return e.id}function nA(e,t){if(!Wp(e))throw new Je(`Node ${t} is not an object.`);let n=e,r=eA(n,t),i=tA(n,t),o=Wp(n.params)?n.params:{};return rA({type:r,id:i,enabled:n.enabled===!1?!1:void 0,params:o})}function rA(e){for(let t of Object.keys(e))e[t]===void 0&&delete e[t];return e}var iA="data-vfx-ref-visible",oA="[HyperFrames] composition script error:",aA={preserveDrawingBuffer:!0,antialias:!1,premultipliedAlpha:!0,alpha:!0},sA=`#version 300 es\nout vec2 v_uv;\nvoid main() {\n vec2 p = vec2(float((gl_VertexID << 1) & 2), float(gl_VertexID & 2));\n v_uv = p;\n gl_Position = vec4(p * 2.0 - 1.0, 0.0, 1.0);\n}\n`,Nt=[],eh=30,th=0,du=0,nh=-1,uu=null,lu=null;function Oe(e){console.error(oA,`vfx: ${e}`)}function Kp(e,t,n){let r=e.createShader(t);return r?(e.shaderSource(r,n),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(Oe(`shader failed to compile: ${e.getShaderInfoLog(r)??"(no log)"}`),e.deleteShader(r),null)):null}function uA(e,t){let n=Kp(e,e.VERTEX_SHADER,sA),r=n?Kp(e,e.FRAGMENT_SHADER,t):null;if(!n||!r)return 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:(Oe(`program failed to link: ${e.getProgramInfoLog(i)??"(no log)"}`),e.deleteProgram(i),null)):null}var Xp="position:absolute;inset:0;width:100%;height:100%;pointer-events:none;";function lA(e){let t=e.querySelector("canvas.hf-vfx-out");if(zn(t))return t.style.cssText=Xp+t.style.cssText,t;let n=document.createElement("canvas");return n.className="hf-vfx-out",n.style.cssText=Xp,e.appendChild(n),n}function cA(e,t,n){let r={};for(let i of n.params)i.kind!=="ref"&&(r[i.key]=e.getUniformLocation(t,`u_${i.key}`));return{size:e.getUniformLocation(t,"u_size"),t:e.getUniformLocation(t,"u_t"),fps:e.getUniformLocation(t,"u_fps"),src:e.getUniformLocation(t,"u_src"),src2:e.getUniformLocation(t,"u_src2"),hasSrc2:e.getUniformLocation(t,"u_hasSrc2"),params:r}}function dA(e,t,n,r){return r.optional?{kind:"none"}:(Oe(`${lt(e)}: node "${t.id}" (${n.id}) needs a "${r.key}" param naming the id of the element to read as its second source.`),{kind:"error"})}function fA(e,t,n,r,i,o){let a=n.params.find(m=>m.kind==="ref");if(!a)return{kind:"none"};let u=r[a.key];if(typeof u!="string"||u==="")return dA(e,t,n,a);let s=e.ownerDocument.getElementById(u);if(!pe(s))return Oe(`${lt(e)}: node "${t.id}" (${n.id}) names "${a.key}" element #${u}, which is not in the composition.`),{kind:"error"};if(s===e)return a.optional?{kind:"none"}:{kind:"self"};let l=o.get(s);if(l)return{kind:"source",source:l};let d=rh(s,i,`${lt(e)}: "${a.key}" source`);return d?(d.visible=d.canvas.hasAttribute(iA),o.set(s,d),{kind:"source",source:d}):{kind:"error"}}function mA(e,t,n){let r=[],i=new Map;for(let o of su(t)){let a=Vp(o.type);if(!a)return Oe(`node "${o.id}" has unknown effect type "${o.type}"`),null;let u=uA(e,a.frag);if(!u)return Oe(`node "${o.id}" (${a.id}) has no usable program`),null;let s=$p(a.id,o.params),l=fA(n,o,a,s,e,i);if(l.kind==="error")return null;r.push({node:o,def:a,program:u,params:s,locations:cA(e,u,a),...l.kind==="source"?{ref:l.source}:{},selfRef:l.kind==="self"})}return r}function pA(e){let t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),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),t}function hA(e){let t=e.parentElement;if(!t||e.id==="")return null;let n=t.children;for(let r=0;r<n.length;r++){let i=n.item(r);if(zn(i)&&i.classList.contains("hf-vfx-src")&&i.getAttribute("data-vfx-for")===e.id)return i}return null}function rh(e,t,n){let r=hA(e),i=r??e.querySelector("canvas.hf-vfx-src"),o=zn(i)?i.querySelector(":scope > .hf-vfx-in"):null;if(!zn(i)||!pe(o)){Oe(`${n}: a capturing chain needs <canvas layoutsubtree class="hf-vfx-src"><div class="hf-vfx-in">\\u2026</div></canvas> in source \\u2014 inside the element for its own pixels, or beside it with data-vfx-for="${e.id}" for the layers below it.`);return}let a=i.getContext("2d");if(!a||typeof a.drawElementImage!="function"){Oe(`${n}: drawElementImage is unavailable, so the layer cannot be captured. In Studio, enable chrome://flags/#canvas-draw-element.`);return}return{canvas:i,inner:o,ctx:a,texture:pA(t),backdrop:r!==null,visible:!1,emptyBoxReported:!1}}function gA(e){e.out.addEventListener("webglcontextlost",t=>{t.preventDefault(),!(!Nt.includes(e)||e.contextLost)&&(e.contextLost=!0,Oe(`${lt(e.host)}: WebGL context lost.`))})}function bA(e){try{return jp(e.getAttribute(au)??"")}catch(t){let n=t instanceof Je?t.message:String(t);return Oe(`${lt(e)}: ${n}`),null}}function xA(e){let t=bA(e);if(!t)return null;let n=lA(e),r=n.getContext("webgl2",aA);if(!r)return Oe(`${lt(e)}: WebGL2 is unavailable, so the chain cannot paint.`),n.remove(),null;let i=mA(r,t,e);if(!i)return n.remove(),null;let o=qp(t),a=o==="none"?void 0:rh(e,r,lt(e));if(o!=="none"&&!a)return n.remove(),null;let u=a?.backdrop?"backdrop":o,s={host:e,chain:t,capture:u,out:n,gl:r,passes:i,src:a,contextLost:!1};return gA(s),s}function fu(e){let t=getComputedStyle(e);return t.display!=="none"&&t.visibility!=="hidden"}function ih(e){if(getComputedStyle(e.inner).visibility==="hidden")return!1;for(let t=e.inner;t;t=t.parentElement)if(getComputedStyle(t).display==="none")return!1;return!0}function lt(e){return e.id?`#${e.id}`:`<${e.tagName.toLowerCase()}>`}function Ur(e){let t=e.src?[e.src]:[];for(let n of e.passes)n.ref&&!t.includes(n.ref)&&t.push(n.ref);return t}function mu(e){return e.src?.backdrop===!0}function Br(e){let t=[];for(let n of e.passes)n.ref?.visible&&!t.includes(n.ref)&&t.push(n.ref);return t}function yA(){for(let e of Nt){let{gl:t}=e;for(let n of e.passes)t.deleteProgram(n.program);for(let n of Ur(e))t.deleteTexture(n.texture);if(e.ping){for(let n of e.ping.textures)t.deleteTexture(n);for(let n of e.ping.framebuffers)t.deleteFramebuffer(n)}}}function pu(e,t){yA(),Nt=[],eh=Number.isFinite(t)&&t>0?t:30;let n=e.querySelectorAll(`[${au}]`);for(let r of n){if(!pe(r))continue;let i=xA(r);i&&Nt.push(i)}return Nt}function Cn(e){let t=typeof window>"u"?1:window.devicePixelRatio||1,n=Math.round(e.offsetWidth*t),r=Math.round(e.offsetHeight*t);return n>0&&r>0?{width:n,height:r}:null}function Yp(e,t,n){let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,n,0,e.RGBA,e.UNSIGNED_BYTE,null),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),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);let i=e.createFramebuffer();return e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),[r,i]}function vA(e,t,n){let r=e.ping;if(r&&r.width===t&&r.height===n)return r;let{gl:i}=e;if(r){for(let s of r.textures)i.deleteTexture(s);for(let s of r.framebuffers)i.deleteFramebuffer(s)}let o=Yp(i,t,n),a=Yp(i,t,n),u={textures:[o[0],a[0]],framebuffers:[o[1],a[1]],width:t,height:n};return e.ping=u,u}function SA(e,t,n){if(e.kind==="ref")return null;if(e.kind==="number"&&e.animatable){let i=n.getPropertyValue(`--vfx-${t.node.id}-${e.key}`).trim(),o=i===""?Number.NaN:Number.parseFloat(i);if(Number.isFinite(o))return Math.min(e.max,Math.max(e.min,o))}let r=t.params[e.key];return typeof r=="boolean"?r?1:0:typeof r=="number"?r:0}function EA(e,t,n,r,i,o){let{gl:a}=e,{locations:u}=t;a.uniform2f(u.size,i,o),a.uniform1f(u.t,r),a.uniform1f(u.fps,eh),a.uniform1f(u.hasSrc2,t.ref||t.selfRef?1:0);for(let s of t.def.params){let l=SA(s,t,n);l!==null&&a.uniform1f(u.params[s.key]??null,l)}}function AA(e,t,n){return e===t||!n?null:n.framebuffers[e%2]??null}function _A(e,t,n){return t===0?e.src?.texture??null:n?.textures[(t-1)%2]??null}function wA(e,t,n,r){let{gl:i}=e,o=e.passes[t];i.bindFramebuffer(i.FRAMEBUFFER,AA(t,n,r));let a=_A(e,t,r);a&&Jp(i,o.locations.src,a,0),o.ref?(Jp(i,o.locations.src2,o.ref.texture,1),i.activeTexture(i.TEXTURE0)):o.selfRef&&a&&i.uniform1i(o.locations.src2,0)}function Jp(e,t,n,r){e.activeTexture(r===0?e.TEXTURE0:e.TEXTURE1),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t,r)}function hu(e,t){let n=Cn(e.host);if(!n)return;let{gl:r,out:i,passes:o}=e;i.width!==n.width&&(i.width=n.width),i.height!==n.height&&(i.height=n.height);let a=o.length>1?vA(e,n.width,n.height):null,u=getComputedStyle(e.host),s=o.length-1;for(let l=0;l<=s;l++){let d=o[l];r.useProgram(d.program),wA(e,l,s,a),r.viewport(0,0,n.width,n.height),EA(e,d,u,t,n.width,n.height),r.drawArrays(r.TRIANGLES,0,3)}}function Qp(e,t){e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,t.texture),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,1),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,1),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.canvas),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0)}var CA={upload:!0,keepBitmap:!1},RA={upload:!1,keepBitmap:!0},TA={upload:!0,keepBitmap:!0},kA={upload:!1,keepBitmap:!0};function Zp(e,t){e.canvas.width!==t.width&&(e.canvas.width=t.width),e.canvas.height!==t.height&&(e.canvas.height=t.height)}function gu(e,t,n,r,i){if(!ih(t))return Zp(t,n),t.ctx.clearRect(0,0,n.width,n.height),i.upload&&Qp(e.gl,t),!0;if(Cn(t.inner)===null)return t.emptyBoxReported||(t.emptyBoxReported=!0,Oe(`${lt(e.host)}: the .hf-vfx-in wrapper measures 0\\xD70, so its capture would be empty. Inside a layoutsubtree canvas an inset or percentage box has no size \\u2014 the wrapper must state an explicit width and height in px.`)),!1;Zp(t,n),t.ctx.clearRect(0,0,n.width,n.height);try{t.ctx.drawElementImage(t.inner,0,0,n.width,n.height)}catch(o){return r||Oe(`${lt(e.host)}: drawElementImage failed: ${o.message} In Studio, enable chrome://flags/#canvas-draw-element.`),!1}return i.upload&&Qp(e.gl,t),i.keepBitmap||t.ctx.clearRect(0,0,n.width,n.height),!0}function oh(e,t){return e.visible?Cn(e.inner)??t:t}function ah(e,t=!1){let n=Cn(e.host),r=Ur(e);if(!n||r.length===0)return!1;let i=!0;for(let o of r){let a=o.visible?TA:CA;gu(e,o,oh(o,n),t,a)||(i=!1)}return i}function sh(e,t=!1){let n=e.src;if(!n)return!1;let r=Cn(e.host)??Cn(n.inner);return r?gu(e,n,r,t,RA):!1}function cu(e,t=!1){let n=!0;for(let r of Br(e)){let i=oh(r,{width:0,height:0});gu(e,r,i,t,kA)||(n=!1)}return n}function MA(e){let t=!1;return mu(e)&&sh(e)&&(t=!0),Br(e).length>0&&cu(e)&&(t=!0),t}function FA(){let e=!1;for(let t of Nt)if(!t.contextLost&&Ur(t).length!==0){if(!fu(t.host)){MA(t)&&(e=!0);continue}ah(t)&&(hu(t,th),e=!0)}return nh=du,window.__hf_page_composite_pending=!1,e}function LA(){let e=window,t=e.__hf_page_composite_resolve;t!==uu&&(lu=typeof t=="function"?t:null,uu=()=>{let n=lu?lu():!1;return FA()||n},e.__hf_page_composite_resolve=uu),e.__hf_page_composite_pending=!0}var uh=2e3;function NA(e){return new Promise(t=>{let n=!1,r=a=>{n||(n=!0,clearTimeout(o),e.removeEventListener("paint",i),t(a))},i=()=>r("painted"),o=setTimeout(()=>r("timeout"),uh);e.addEventListener("paint",i,{once:!0});try{e.requestPaint?.()}catch{}if(typeof requestAnimationFrame!="function"){r("painted");return}requestAnimationFrame(()=>requestAnimationFrame(()=>r("painted")))})}async function DA(e,t){return(await Promise.all(t.map(r=>NA(r.canvas)))).includes("timeout")?(Oe(`${lt(e.host)}: no paint arrived within ${uh}ms, so this frame\'s capture was skipped (a BeginFrame-controlled compositor without a tick for this frame is a known cause).`),!1):!0}function IA(e){return fu(e.host)?"paint":mu(e)?"passThrough":"refOnly"}function PA(e,t){return(t==="passThrough"?[...e.src?[e.src]:[],...Br(e)]:t==="refOnly"?Br(e):Ur(e)).filter(ih)}function OA(e,t){return t!==du||nh===t?!1:Nt.includes(e)&&!e.contextLost}async function HA(e,t,n,r){let i=IA(e);if(await DA(e,PA(e,i))&&OA(e,n)){if(i==="passThrough"){sh(e,r),cu(e,r);return}if(i==="refOnly"){cu(e,r);return}ah(e,r)&&hu(e,t)}}async function GA(e,t,n,r){await Promise.all(e.map(i=>HA(i,t,n,r)))}function bu(e,t){th=e;let n=++du,r=[];for(let i of Nt)if(!i.contextLost){if(!fu(i.host)){(mu(i)||Br(i).length>0)&&r.push(i);continue}Ur(i).length>0?r.push(i):hu(i,e)}r.length!==0&&(t?.engineMode&&LA(),qn(GA(r,e,n,t?.engineMode===!0)))}var BA=500,UA=33,yo=class{constructor(t){ue(this,"_baseTime",0);ue(this,"_playStartMs",null);ue(this,"_rate",1);ue(this,"_duration",1/0);ue(this,"_nowMs");ue(this,"_audioSource",null);ue(this,"_lastReadMs",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,rate:u}=this._audioSource;!i.paused&&Number.isFinite(i.currentTime)&&(r=typeof u=="object"?un(u,i.currentTime-a)+o:(i.currentTime-a)/(i.playbackRate>0?i.playbackRate:1)*this._rate+o)}if(r!==null)return this._lastReadMs=null,Number.isFinite(this._duration)&&r>=this._duration?this._duration:Math.max(0,r)}this._applyStallCorrection();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)}_applyStallCorrection(){if(this._playStartMs===null)return;let t=this._nowMs();if(this._lastReadMs!==null){let n=t-this._lastReadMs;n>BA&&(this._playStartMs+=n-UA)}this._lastReadMs=t}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),this._lastReadMs=null,!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(),this._lastReadMs=null)}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._lastReadMs=null),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._lastReadMs=null),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 WA=100,VA=8,$A=4096,xu=e=>e;function zA(e,t,n){return!(!!e.curve||e.viaX!==void 0&&e.viaY!==void 0)&&t==="linear"&&!n}function qA(e){let t=Math.ceil(e*WA);return Math.min($A,Math.max(VA,t))}function jA(e,t,n,r,i){let{scheduledAt:o,elapsed:a,rate:u}=r,s=i??xu,l=M=>o+(M-a)/u,d=e.points[t],m=e.points[t+1],f=l(m.t);if(f<=o)return null;let p=Math.max(o,l(d.t)),g=f-p;if(g<=0)return null;if(zA(d,n,i))return{kind:"ramp",time:f,value:s(m.v)};let y=qA(g),x=Mc(e,Math.max(d.t,a),m.t,y,n),A=new Float32Array(y);for(let M=0;M<y;M+=1)A[M]=s(x[M]??0);return{kind:"curve",time:p,duration:g,values:A}}function KA(e,t,n,r){let i=[];for(let a=0;a+1<e.points.length;a+=1){let u=jA(e,a,t,n,r);u&&i.push(u)}let o=i[0];return o?.kind==="curve"&&o.time<=n.scheduledAt||i.unshift({kind:"set",time:n.scheduledAt,value:(r??xu)(gt(e,n.elapsed,t))}),i}function XA(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 Wr(e){for(let t of e)t.param.cancelScheduledValues(0)}function Rn(e,t){for(let n of e)typeof n.param.cancelAndHoldAtTime=="function"?n.param.cancelAndHoldAtTime(t):n.param.cancelScheduledValues(t)}function yu(e,t,n,r){if(t.points.length!==0)for(let i of e){if(Wr([i]),kc(t)){let o=(i.map??xu)(t.points[0].v);i.param.setValueAtTime(o,r.scheduledAt);continue}XA(i.param,KA(t,n,r,i.map))}}function lh(e,t,n,r,i){let o=new Map(n.filter(u=>u.id).map(u=>[u.id,u.handle])),a=[];for(let u of e.lanes){let s=tr(u.target);if(!s)continue;let l=s.kind==="preset"?i?.[s.presetId]:s.kind==="fx"?o.get(s.nodeId)?.automation?.[s.param]:void 0;if(!l||l.length===0)continue;let d=ba(u.target,t);d&&(yu(l,u,d.scale,r),a.push(...l))}return a}function ch(e){return e.lanes.find(t=>t.target===sn)??null}var YA=`\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`,vu=new WeakMap;function Su(e){return dh.has(e)}var dh=new WeakSet;function Eu(e){let t=vu.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(YA)))}`;await e.audioWorklet.addModule(n),dh.add(e)})().catch(n=>{throw vu.delete(e),n}),vu.set(e,t)),t}function JA(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,u=()=>(a=a*1664525+1013904223>>>0,a/4294967295*2-1),s=Math.max(.001,1-Math.max(0,Math.min(1,n))),l=0,d=0;for(let f=0;f<i;f++){l+=s*(u()-l);let p=l*Math.pow(1-f/i,2.5);o[f]=p,d+=p*p}let m=Math.sqrt(d);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),Au=e=>e/1e3;function hh(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 l=0;l<i;l++){let d=l/i;a[l]=t==="sine"?Math.sin(2*Math.PI*d):4*Math.abs((d+.75)%1-.5)-1}let u=e.createBufferSource();u.buffer=o,u.loop=!0,u.playbackRate.value=n;let s=(r*n%1+1)%1*(i/e.sampleRate);return u.start(typeof e.currentTime=="number"?e.currentTime:0,s),u}function gh(e){try{e.stop()}catch{}e.disconnect()}function _u(e,t){return[{param:e},{param:t,map:n=>1-n}]}function bh(e,t,n){e.gain.value=n,t.gain.value=1-n}function wu(e,t,n){return{input:e,output:e,update:t,automation:n,dispose:()=>e.disconnect()}}var QA=new Set(["peaking","highpass","lowpass"]),fh=e=>Math.pow(10,e/20),ZA=(e,t)=>{let n=e.createGain(),r=i=>{n.gain.value=fh(ce(i.gain))};return r(t),wu(n,r,{gain:[{param:n.gain,map:fh}]})};function Vr(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),wu(i,o,{frequency:[{param:i.frequency}],...QA.has(e)?{q:[{param:i.Q}]}:{},...t?{gain:[{param:i.gain}]}:{}})}}function e1(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 wu(i,()=>{})}}function $r(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 t1={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))},n1=(e,t)=>{let n=e.createWaveShaper(),r=e.createGain(),i=e.createGain();r.connect(n).connect(i);let o=a=>{let u=t1[String(a.type)]??Math.tanh,s=Math.pow(10,ce(a.threshold)/20),l=8192,d=new Float32Array(l);for(let m=0;m<l;m++){let f=m/(l-1)*2-1;d[m]=u(f/Math.max(1e-6,s))*s}n.curve=d,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()}}},r1=(e,t)=>{let n=e.createGain(),r=e.createGain(),i=e.createDelay(5),o=e.createGain(),a=e.createGain(),u=e.createGain();n.connect(i),i.connect(o),o.connect(i),i.connect(a).connect(r),n.connect(u).connect(r);let s=l=>{i.delayTime.value=Math.min(5,ce(l.time)/1e3),o.gain.value=ce(l.feedback),bh(a,u,ce(l.mix))};return s(t),{input:n,output:r,update:s,automation:{time:[{param:i.delayTime,map:l=>Math.min(5,Au(l))}],feedback:[{param:o.gain}],mix:_u(a.gain,u.gain)},dispose:()=>[n,r,i,o,a,u].forEach(l=>l.disconnect())}},i1=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createDelay(.5),a=hh(e,"sine",ce(t.speed),n),u=e.createGain(),s=e.createGain(),l=e.createGain();a.connect(u).connect(o.delayTime),r.connect(o).connect(s).connect(i),r.connect(l).connect(i);let d=m=>{o.delayTime.value=ce(m.delay)/1e3,u.gain.value=ce(m.depth)/1e3,a.playbackRate.value=ce(m.speed),bh(s,l,ce(m.mix))};return d(t),{input:r,output:i,update:d,automation:{delay:[{param:o.delayTime,map:Au}],depth:[{param:u.gain,map:Au}],speed:[{param:a.playbackRate}],mix:_u(s.gain,l.gain)},dispose:()=>{gh(a),[r,i,o,u,s,l].forEach(m=>m.disconnect())}}},o1=6,a1=(e,t,n)=>{let r=e.createGain(),i=e.createGain(),o=e.createGain(),a=e.createGain(),u=hh(e,String(t.type)==="1"?"sine":"triangle",ce(t.speed),n),s=e.createGain(),l=e.createGain(),d=e.createGain(),m=[];r.connect(o);let f=o;for(let g=0;g<o1;g++){let y=e.createBiquadFilter();y.type="allpass",y.Q.value=.7071,s.connect(y.frequency),f.connect(y),f=y,m.push(y)}u.connect(s),f.connect(l).connect(a),o.connect(d).connect(a),a.connect(i);let p=g=>{let y=1e3/Math.max(.1,ce(g.delay));for(let x of m)x.frequency.value=y;s.gain.value=y*ce(g.decay),u.playbackRate.value=ce(g.speed),o.gain.value=ce(g.in_gain),a.gain.value=ce(g.out_gain),l.gain.value=1,d.gain.value=1};return p(t),{input:r,output:i,update:p,automation:{speed:[{param:u.playbackRate}],in_gain:[{param:o.gain}],out_gain:[{param:a.gain}]},dispose:()=>{gh(u),[r,i,o,a,s,l,d,...m].forEach(g=>g.disconnect())}}},s1=(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 u="",s=l=>{let d=`${ce(l.size)}:${ce(l.damping)}`;if(d!==u){let m=JA(e.sampleRate,ce(l.size),ce(l.damping)),f=e.createBuffer(1,m.length,e.sampleRate);f.getChannelData(0).set(m),i.buffer=f,u=d}o.gain.value=ce(l.wet),a.gain.value=ce(l.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(l=>l.disconnect())}},u1={"gain-node":ZA,"biquad-peaking":Vr("peaking",!0),"biquad-lowshelf":Vr("lowshelf",!0),"biquad-highshelf":Vr("highshelf",!0),"biquad-highpass":Vr("highpass",!1),"biquad-lowpass":Vr("lowpass",!1),"worklet-compressor":$r("hf-compressor"),"worklet-limiter":$r("hf-limiter"),"worklet-gate":$r("hf-gate"),"worklet-bitcrush":$r("hf-bitcrush"),"worklet-pitchshift":$r("hf-pitchshift"),waveshaper:n1,"delay-feedback":r1,"chorus-lfo":i1,"allpass-phaser":a1,convolver:s1};function xh(e){return e.nodes.some(t=>Xn(t.type)?.web.startsWith("worklet-")??!1)}function l1(e,t,n,r=0){let i=Xn(t);if(!i)throw new Error(`Unknown effect type: ${t}`);let o=Yn(t,n);if((t==="highpass"||t==="lowpass")&&String(o.poles)==="1")return e1(t)(e,o,r);let a=u1[i.web];if(!a)throw new Error(`No Web Audio builder for ${i.web}`);return a(e,o,r)}function mh(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 ph(e){return Jn(e).map(t=>{let n=Yn(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 yh(e,t,n=0){var m;let r=e.createGain(),i=e.createGain(),o=[],a=[],u=mh(Jn(t)),s=r;for(let f of u){let p=null;if(f.preset){let g=e.createGain(),y=e.createGain(),x=e.createGain(),A=e.createGain();x.gain.value=f.amount,y.gain.value=1-f.amount,s.connect(g),g.connect(y).connect(A),p={entry:g,wet:x,dry:y,join:A},s=g}for(let g of f.nodes){let y=l1(e,g.type,g.params??{},n);s.connect(y.input),s=y.output,o.push({...g.id?{id:g.id}:{},type:g.type,handle:y})}p&&f.preset&&(s.connect(p.wet).connect(p.join),a.push({id:f.preset,...p}),s=p.join)}s.connect(i);let l=ph(t),d={};for(let f of a)(d[m=f.id]??(d[m]=[])).push(..._u(f.wet.gain,f.dry.gain));return{input:r,output:i,presets:d,nodes:o,update(f){if(ph(f)!==l)return!1;Jn(f).forEach((g,y)=>{let x=o[y];x&&(x.handle.update(Yn(g.type,g.params)),g.id===void 0?delete x.id:x.id=g.id)});let p=0;for(let g of mh(Jn(f))){if(!g.preset)continue;let y=a[p++];!y||y.id!==g.preset||(y.wet.gain.value=g.amount,y.dry.gain.value=1-g.amount)}return!0},dispose(){for(let{handle:f}of o)f.dispose();for(let{entry:f,wet:p,dry:g,join:y}of a)f.disconnect(),p.disconnect(),g.disconnect(),y.disconnect();r.disconnect(),i.disconnect()}}}var vh={version:1,nodes:[]},Sh={version:1,lanes:[]};function Eh(e,t){let n=(typeof e.getAttribute=="function"?e.getAttribute(ht):null)??"";if(!n)return Sh;try{return Tc(wi(n),t)}catch{return Sh}}function Tn(e){let t=(typeof e.getAttribute=="function"?e.getAttribute(Vt):null)??"";if(!t)return{chain:vh,raw:""};try{return{chain:gc(t),raw:t}}catch{return{chain:vh,raw:""}}}function Ah(e){return Eh(e,Tn(e).chain)}function vo(e,t,n,r,i){let{chain:o}=Tn(t),a=null,u=[],s=!1,l=0,d=()=>{try{a?(n.disconnect(a.input),a.output.disconnect(r),a.dispose()):n.disconnect(r)}catch{}a=null},m=(C,L)=>{if(C.nodes.length===0){n.connect(r);return}if(xh(C)&&!Su(e)){n.connect(r);let B=++l;Eu(e).then(()=>{s||B!==l||x(Tn(t).chain)}).catch(()=>{});return}try{let B=yh(e,C,L);n.connect(B.input),B.output.connect(r),a=B}catch{n.connect(r)}},f=(C,L)=>{u=L&&a?lh(Eh(t,C),C,a.nodes,L,a.presets):[]},p=i?{...i}:null;m(o,p?.elapsed??0),f(o,p);let g=()=>{if(!p)return null;let C=typeof e.currentTime=="number"?e.currentTime:p.scheduledAt;return{scheduledAt:C,elapsed:p.elapsed+(C-p.scheduledAt)*p.rate,rate:p.rate}},y=C=>{let L=g();L&&(Rn(u,L.scheduledAt),f(C,L))},x=C=>{let L=g();Rn(u,L?.scheduledAt??0),d(),m(C,L?.elapsed??0),f(C,L)},A=null,M=t;return typeof MutationObserver<"u"&&typeof M?.nodeType=="number"&&(A=new MutationObserver(()=>{let C=Tn(t);u.length>0&&Wr(u),!a||!a.update(C.chain)?x(C.chain):y(C.chain)}),A.observe(M,{attributes:!0,attributeFilter:[Vt,ht]})),{reanchor:C=>{if(s)return;let L=g();L&&Rn(u,L.scheduledAt),p={...C},f(Tn(t).chain,p)},setRate:C=>{let L=g();s||!L||!Number.isFinite(C)||C<=0||C===L.rate||(p={...L,rate:C},Rn(u,L.scheduledAt),f(Tn(t).chain,p))},dispose:()=>{s=!0,A?.disconnect(),u.length>0&&Rn(u,typeof e.currentTime=="number"?e.currentTime:0),a?.dispose()}}}function _h(e,t){e.getFloatTimeDomainData(t);let n=0;for(let r=0;r<t.length;r++)n=Math.max(n,Math.abs(t[r]??0));return n}function Cu(e,t){let n=e.createGain();n.channelCount=2,n.channelCountMode="explicit";let r=e.createChannelSplitter(2),i=e.createAnalyser(),o=e.createAnalyser();i.fftSize=o.fftSize=2048,t.connect(n),n.connect(r),r.connect(i,0),r.connect(o,1);let a=new Float32Array(new ArrayBuffer(2048*4)),u=new Float32Array(new ArrayBuffer(2048*4));return{read:()=>({l:_h(i,a),r:_h(o,u)}),dispose:()=>{try{t.disconnect(n),n.disconnect(),r.disconnect()}catch{}}}}var wh="runtime_web_audio_bypass";function Ru(e,t){return typeof e.getAttribute=="function"?e.getAttribute(t):null}function zr(e,t){return Ru(e,t)!==null}function c1(e){return zr(e,"crossorigin")?!0:e.crossOrigin!=null}function d1(e){return typeof e.baseURI=="string"&&e.baseURI?e.baseURI:typeof document<"u"?document.baseURI:""}function f1(e){let t=typeof e.currentSrc=="string"?e.currentSrc:"";if(t)return[t];let n=Ru(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 m1(e,t){let n;try{n=new URL(e,d1(t))}catch{return null}return n.protocol!=="http:"&&n.protocol!=="https:"?null:n}function p1(){return typeof window.origin=="string"?window.origin:window.location.origin}function h1(e,t){if(typeof window>"u")return null;let n=m1(e,t);if(!n)return null;let r=p1(),i=r==="null";return!i&&n.origin===r||c1(t)?null:i?"opaque_document_origin":"cross_origin_no_cors"}function Rh(e){return(typeof e.currentSrc=="string"?e.currentSrc:"")?!0:zr(e,"src")}function kn(e){for(let t of f1(e)){let n=h1(t,e);if(n)return{kind:"decode-only",reason:n,asset:t}}return{kind:"web-audio"}}function g1(e){let t=[];zr(e,Vt)&&t.push("fx-chain"),zr(e,ht)&&t.push("automation"),zr(e,Fi)&&t.push("audio-group");let n=Number.parseFloat(Ru(e,"data-volume")??"");return Number.isFinite(n)&&n>1&&t.push("above-unity-gain"),t}function b1(){return typeof window<"u"&&!!window.__HF_EXPORT_RENDER_SEEK_CONFIG}var Ch=new WeakSet,x1={cross_origin_no_cors:"cross-origin media without a `crossorigin` opt-in is silent through createMediaElementSource (Web Audio spec); using native playback instead",opaque_document_origin:"this document\'s security origin is opaque (a sandbox without `allow-same-origin`), so no media is same-origin with it and createMediaElementSource would be silent (Web Audio spec); using native playback instead"},y1={cross_origin_no_cors:"proxy or download the asset to a same-origin URL to keep it.",opaque_document_origin:"add `allow-same-origin` to the sandbox, or serve the asset with a `crossorigin` attribute and an `Access-Control-Allow-Origin` of `null` or `*`, to keep it."};function Mn(e,t){if(t.kind==="web-audio"||b1()||Ch.has(e))return;let n=g1(e);Ch.add(e);let r={asset:t.asset,reason:t.reason,lostProcessing:n,note:x1[t.reason]};xe({source:"hf-preview",type:"diagnostic",code:wh,details:r});let i=n.length>0?` Native playback cannot reproduce: ${n.join(", ")} \\u2014 ${y1[t.reason]}`:"";console.info(`[hyperframes] ${wh}: "${t.asset}" (${t.reason}): Web Audio capture withheld; the track plays through native HTMLMediaElement output.${i}`)}function Tu(e){return!Number.isFinite(e)||e<=0?1:e}function Th(e){return Be(e)}function v1(e,t){t||e.paused||!ci().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function S1(e,t){let{elapsed:n,mediaStart:r,scheduledAt:i,globalRate:o,mediaRate:a,clipDuration:u}=t,s=Number.isFinite(u)&&u>0,l=u*a;if(n>=0){let m=n*a,f=l-m;return s&&f<=0?!1:(s?e.start(0,m+r,f):e.start(0,m+r),!0)}let d=-n/o;return s?e.start(i+d,r,l):e.start(i+d,r),!0}function So(e,t,n){let r=ch(Ah(e));r&&yu([{param:t.gain}],r,_i.scale,n)}function Fn(e){return e.sourceKind==="buffer"}var Eo=class{constructor(){ue(this,"_ctx",null);ue(this,"_bufferCache",new Map);ue(this,"_failedSrcs",new Set);ue(this,"_mediaElementSources",new WeakMap);ue(this,"_activeSources",[]);ue(this,"_masterGain",null);ue(this,"_monitorGain",null);ue(this,"_masterVolume",1);ue(this,"_masterMuted",!1);ue(this,"_groups",new Map);ue(this,"_metering",!1);ue(this,"_masterTap",null);ue(this,"_groupTaps",new Map);ue(this,"_rateAnchorCtx",0);ue(this,"_rateAnchorComp",0);ue(this,"_rate",1);ue(this,"_paused",!0);ue(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._monitorGain=this._ctx.createGain(),this._masterGain.connect(this._monitorGain),this._monitorGain.connect(this._ctx.destination),this.applyMasterGain(),this._metering&&this.attachMasterTap(),!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 I("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;r=await i.arrayBuffer()}catch(i){return I("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),I("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=kn(t);if(o.kind!=="web-audio"){try{n.disconnect()}catch{}return this._mediaElementSources.delete(t),Mn(t,o),null}return n}if(!this._ctx)return null;let r=kn(t);if(r.kind!=="web-audio")return Mn(t,r),null;let i=this._ctx.createMediaElementSource(t);return this._mediaElementSources.set(t,i),i}async scheduleMediaElementPlayback(t,n,r,i,o,a,u=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 l=Tu(u),d=this._ctx.createGain();d.gain.value=o;let m=this._ctx.currentTime,f=i-n,p={scheduledAt:m,elapsed:f,rate:l},g=vo(this._ctx,t,s,d,p);d.connect(this.resolveDestination(t,m,i,l)??this._masterGain),So(t,d,p),this._rate=l,this._rateAnchorCtx=m,this._rateAnchorComp=i;let y={fx:g,el:t,sourceNode:s,sourceKind:"media-element",gainNode:d,compositionStart:n,mediaStart:r,scheduledAt:m,priorMuted:t.muted,priorVolume:t.volume,mediaPlaybackRate:Pe(t),bounded:!1};return t.volume=1,this._activeSources.push(y),this._paused=!1,y}catch(s){return I("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){I("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 u=()=>Ea(n,t),s=u(),l=this._ctx.createGain();l.gain.value=s?.hasAttribute("data-hidden")?0:1,l.connect(a);let d=this._ctx.createGain();d.gain.value=Th(Sa(s)),d.connect(l);let m=vo(this._ctx,s??{getAttribute:()=>null},o,d,r);return s&&So(s,d,r),this._groups.set(t,{input:o,output:a,isPresent:()=>u()!==null,fader:d,muteGain:l,fx:m,generation:this._playGeneration,reanchor:f=>{Wr([{param:d.gain}]);let p=u();d.gain.value=Th(Sa(p)),l.gain.value=p?.hasAttribute("data-hidden")?0:1,m?.reanchor(f),p&&So(p,d,f)},dispose:()=>{try{m?.dispose(),o.disconnect(),d.disconnect(),l.disconnect(),a.disconnect()}catch{}}}),this.attachGroupTap(t,a),o}startMetering(){this._metering=!0,this.attachMasterTap();for(let[t,n]of this._groups)this.attachGroupTap(t,n.output)}stopMetering(){this._metering=!1,this._masterTap?.dispose(),this._masterTap=null;for(let t of this._groupTaps.values())t.dispose();this._groupTaps.clear()}readLevels(){let t={};for(let[n,r]of this._groupTaps)this._groups.get(n)?.isPresent()&&(t[n]=r.read());return{master:this._masterTap?.read()??{l:0,r:0},groups:t}}attachMasterTap(){this._ctx&&this._masterGain&&!this._masterTap&&(this._masterTap=Cu(this._ctx,this._masterGain))}attachGroupTap(t,n){this._metering&&this._ctx&&!this._groupTaps.has(t)&&this._groupTaps.set(t,Cu(this._ctx,n))}setGroupMuted(t,n){let r=this._groups.get(t);if(r)try{r.muteGain.gain.value=n?0:1}catch(i){I("webAudioTransport.setGroupMuted",i)}}resolveDestination(t,n,r,i){if(!this._masterGain)return null;let o=Xc(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,u,s=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||u!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),u!==this._playGeneration)return null;let d=Tu(s),m=Pe(t),f=d*m,p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=f;let g=this._ctx.createGain();g.gain.value=a;let y=o-r,x=this._ctx.currentTime,A={scheduledAt:x,elapsed:y,rate:d},M=vo(this._ctx,t,p,g,A);if(g.connect(this.resolveDestination(t,x,o,d)??this._masterGain),So(t,g,A),this._rate=d,this._rateAnchorCtx=x,this._rateAnchorComp=o,!S1(p,{elapsed:y,mediaStart:i,scheduledAt:x,globalRate:d,mediaRate:m,clipDuration:l}))return p.disconnect(),M?.dispose(),g.disconnect(),null;let C=t.muted;t.muted=!0,v1(t,C);let L={fx:M,el:t,sourceNode:p,sourceKind:"buffer",gainNode:g,compositionStart:r,mediaStart:i,scheduledAt:x,priorMuted:C,priorVolume:t.volume,mediaPlaybackRate:m,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(L),this._paused=!1,p.addEventListener("ended",()=>this.handleSourceEnded(p,L,t,C)),L}catch(d){return I("webAudioTransport.schedule",d),null}}setRate(t){let n=Tu(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{Fn(r)&&(r.sourceNode.playbackRate.value=n*r.mediaPlaybackRate),r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate",i)}for(let r of this._groups.values())try{r.fx?.setRate(n)}catch(i){I("webAudioTransport.setRate.group",i)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>Fn(t)&&t.bounded)}stopAll(){for(let t of this._activeSources){try{Fn(t)&&t.sourceNode.stop(),t.sourceNode.disconnect(),t.fx?.dispose(),t.gainNode.disconnect()}catch{}Fn(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=Be(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){I("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterMuted=t,this.applyMasterGain()}applyMasterGain(){this._monitorGain&&(this._monitorGain.gain.value=this._masterMuted?0:this._masterVolume)}ownsClock(){return!this._paused&&this._activeSources.some(Fn)}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t&&Fn(n))}routesElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){this.stopAll(),this.stopMetering();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._monitorGain=null,this._masterVolume=1,this._masterMuted=!1}};var qr="data-hf-studio-manual-edit-gesture";var kh=`[${qr}]`;function Mh(e,t){let n=e.defaultView?.MutationObserver??globalThis.MutationObserver;if(!n||!e.documentElement)return{isActive:()=>e.querySelector(kh)!=null,observing:!1,disconnect:()=>{}};let r=new Set(e.querySelectorAll(kh)),i=u=>{for(let s of u){let l=s.target;ke(l)&&(l.hasAttribute(qr)?r.add(l):r.delete(l))}},o=u=>{u.length!==0&&(i(u),t())},a=new n(o);return a.observe(e.documentElement,{subtree:!0,attributes:!0,attributeFilter:[qr]}),{observing:!0,isActive:()=>{o(a.takeRecords());for(let u of r){if(u.isConnected&&u.hasAttribute(qr))return!0;r.delete(u)}return!1},disconnect:()=>{a.disconnect(),r.clear()}}}var Fh=333.3333333333333;function Lh(e){return e.isPlaying&&e.hasCapturedTimeline&&e.currentTimeSeconds<2?!1:e.compositionChanged===!0?!0:Number.isInteger(e.tick)&&e.tick>0&&e.tick%60===0}var E1=/^\\s*spring\\(\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+))\\s*\\)\\s*$/;function Nh(e){return Math.max(0,Math.min(1,e))}function Dh(e){let t=E1.exec(e);if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?Nh(n):null}function Ih(e,t){if(!Number.isFinite(e))return e;if(e<=0)return 0;if(e>=1)return 1;let n=Nh(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 A1=/^\\s*wiggle\\(\\s*(\\d+)\\s*,\\s*(easeOut|easeInOut|anticipate|uniform)\\s*(?:,\\s*([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?)\\s*)?\\)\\s*$/,_1=Math.PI*2;function w1(e){let t=A1.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 C1(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(_1*t*e)}function Ph(e,t){let n=w1(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=>C1(a,n.wiggles,n.type,n.amplitude);return t?.set(r,o),o}var R1=24,Oh=e=>e>=1?1:0,T1=e=>e,Ao=String.raw`([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)`,k1=new RegExp(String.raw`^\\s*M\\s*0\\s*,\\s*0\\s+C\\s*${Ao}\\s*,\\s*${Ao}\\s+${Ao}\\s*,\\s*${Ao}\\s+1\\s*,\\s*1\\s*$`,"i");function Hh(e,t,n){let r=1-e;return 3*r*r*e*t+3*r*e*e*n+e*e*e}function M1(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 u=0;u<R1;u+=1){let s=(o+a)/2;Hh(s,t,r)<e?o=s:a=s}return Hh((o+a)/2,n,i)}function F1(e){let t=k1.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=>M1(a,n,r,i,o)}function L1(e,t){if(!e.startsWith("spring("))return null;let n=Dh(e);if(n===null)return null;let r=t.get(n);if(r)return r;let i=o=>Ih(o,n);return t.set(n,i),i}function N1(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=F1(n);return i&&t.set(n,i),i}function Gh(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"?Oh:Ph(s,i)??L1(s,r)??N1(s,n),a=(s,l,d=[])=>{let m=o(s);return m||(typeof s=="string"&&/^(?:hold|spring|wiggle|custom)(?:\\(|$)/.test(s.trim())&&Ge("custom_ease_parse_failed",{ease:s}),t.call(l,s,...d)??T1)};e.parseEase=function(l,...d){return a(l,this,d)};let u=e.registerEase;if(typeof u=="function"){u("hold",Oh);let s=l=>{let d=m=>m;d.config=(...m)=>a(`${l}(${m.join(",")})`,e),u(l,d)};s("spring"),s("wiggle"),s("custom")}return e.__hfCustomEaseInstalled=!0,!0}var D1="first-frame",I1=3;function P1(e){let t=e.ownerDocument?.defaultView;return t&&e instanceof t.Element?!0:e instanceof Element}function O1(e){if(!P1(e)||e.tagName!=="AUDIO"&&e.tagName!=="VIDEO")return!1;let t=e.ownerDocument?.defaultView;return t&&e instanceof t.HTMLMediaElement?!0:e instanceof HTMLMediaElement}function H1(e){return e.hasAttribute("data-start")||e.hasAttribute("data-track-index")}function G1(e,t,n){let r=e;for(;r;){if(H1(r)&&!pr(r,{currentTime:0,compositionDuration:Number.POSITIVE_INFINITY,canonicalFps:30,exportRenderSeek:!1,timelineRegistry:n,resolver:t}))return!1;r=r.parentElement}return!0}function Bh(e,t,n,r){return t==="all"?!0:G1(e,n,r)}function B1(e,{scope:t="all"}={}){let n=e.defaultView,r=Ue({documentRef:e,timelineRegistry:n?.__timelines,includeAuthoredTimingAttrs:!0}),i=Array.from(e.querySelectorAll("video, audio")).filter(O1).filter(u=>Bh(u,t,r,n?.__timelines??{})).filter(u=>u.readyState<I1),o=Array.from(e.querySelectorAll("img")).filter(u=>Bh(u,t,r,n?.__timelines??{})).filter(u=>!u.complete),a=e.fonts?.status==="loading";return{pendingMedia:i,pendingImages:o,fontsLoading:a}}function U1(e,{pendingMedia:t,pendingImages:n,fontsLoading:r},i){let o=t.map(s=>new Promise(l=>{if(s.error){l();return}let d=()=>{s.removeEventListener("canplay",d),s.removeEventListener("error",d),i.removeEventListener("abort",d),l()};s.addEventListener("canplay",d),s.addEventListener("error",d),i.addEventListener("abort",d,{once:!0})})),a=n.map(s=>s.decode?s.decode().catch(()=>{}):Promise.resolve()),u=r&&e.fonts?e.fonts.ready.then(()=>{}):Promise.resolve();return Promise.all([...o,...a,u]).then(()=>{})}function W1(e,t,{scope:n="all"}={}){let r=B1(e,{scope:n});return r.pendingMedia.length===0&&r.pendingImages.length===0&&!r.fontsLoading?null:U1(e,r,t)}var V1=50;function $1(e,t){let n=e.defaultView;return!n||n.__renderReady||!n.__hf?null:new Promise(r=>{let i,o=()=>{i!==void 0&&clearTimeout(i),t.removeEventListener("abort",o),r()};if(t.aborted){o();return}t.addEventListener("abort",o,{once:!0});let a=()=>{if(n.__renderReady){o();return}i=setTimeout(a,V1)};a()})}var z1=50,q1=2,j1=1500;function ku(e,t){return new Promise(n=>{if(t.aborted){n(-1);return}let r=0,i=()=>{e.cancelAnimationFrame?.(r),n(-1)};t.addEventListener("abort",i,{once:!0}),r=e.requestAnimationFrame(o=>{t.removeEventListener("abort",i),n(o)})})}function K1(e,t){let n=e.defaultView;return n?(async()=>{let r=await ku(n,t);if(t.aborted)return;let i=await ku(n,t),o=0;for(;!t.aborted&&o<q1;){if(i-r>=j1)return;let a=await ku(n,t);if(t.aborted)return;o=a-i<z1?o+1:0,i=a}})():null}var X1=8e3;function Y1(e,t,n={}){let r=n.inputs??[(l,d)=>W1(l,d,{scope:n.scope}),$1,K1],i=new AbortController,o=r.map(l=>l(e,i.signal)).filter(l=>l!==null);if(o.length===0){t({timedOut:!1});return}let a=n.timeoutMs??X1,u,s=new Promise(l=>{u=setTimeout(()=>l("timed-out"),a)});Promise.race([Promise.all(o).then(()=>"done"),s]).then(l=>{clearTimeout(u),i.abort(),t({timedOut:l==="timed-out"})})}function Uh(e,t,n={}){Y1(e,t,{...n,scope:D1})}var Lu=new Map,jr=new Map,Mu=new Map,Fu=()=>{},Vh=()=>{},Wh=0;function Nu(e){return/^[a-z][a-z0-9-]{0,63}$/.test(e)}function $h(e){let t=(Mu.get(e)??0)+1;return Mu.set(e,t),t}function zh(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0?e:(Wh-=1,Wh)}function Du(e,t){let n=jr.get(e);if(!n)return;let r=()=>Mu.get(e)===t.generation&&jr.get(e)===n;try{Promise.resolve(n(t.payload)).then(()=>{r()&&Vh(e,t.requestId)},i=>{r()&&Fu(e,t.requestId,i)})}catch(i){r()&&Fu(e,t.requestId,i)}}function qh(e){Fu=e}function jh(e){Vh=e}function _o(e,t,n){if(!Nu(e))return;let r={payload:t,requestId:zh(n),generation:$h(e)};Lu.set(e,r),Du(e,r)}function wo(e,t){Nu(e)&&(Lu.delete(e),Du(e,{payload:void 0,requestId:zh(t),generation:$h(e)}))}function Kh(e,t){if(!Nu(e))throw new Error(`Invalid HyperFrames runtime-data channel: ${e}`);jr.set(e,t);let n=Lu.get(e);return n&&Du(e,n),()=>{jr.get(e)===t&&jr.delete(e)}}var Xh=!1;function ct(e){if(e){if(typeof e.pause!="function"){Xh||(Xh=!0,Ge("timeline_missing_pause",{}));return}try{e.pause()}catch(t){I("runtime.timeline.pause",t)}}}function Z1(){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 e_(e,t){return t!==null&&e.length===t.length&&e.every((n,r)=>n===t[r])}function Yh(e,t,n){let r=null,i=!0;return()=>{let o=e();if(o.length===0)return r=null,i=!0,!0;if(e_(o,r))return i;r=o,i=!1;let a=o.length===1?o[0]:Promise.all(o);return Promise.resolve(a).then(()=>{r===o&&(i=!0,t())},u=>{r===o&&(i=!0,n(u),t())}),i}}var t_=1e3;function Jh(){let e=Ud(),t=()=>{};Il(xe),qh((c,h,b)=>{xe({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)})}),jh((c,h)=>{try{t()}catch(b){xe({source:"hf-preview",type:"runtime-data-error",channel:c,requestId:h,message:b instanceof Error?b.message:String(b)});return}xe({source:"hf-preview",type:"runtime-data-applied",channel:c,requestId:h})}),so(document),Ks(document),Yc(document);let n=Z1();if(e.canonicalFps=n.fps??e.canonicalFps,Ml(e.canonicalFps),window.__HF_EXPORT_RENDER_SEEK_CONFIG){let c=JSON.stringify({canonicalFps:e.canonicalFps,source:n.source,rawFpsSource:n.rawFpsSource,rawFps:n.rawFps,fallbackReason:n.fallbackReason});console.info(`[hyperframes] render runtime fps ${c}`)}let r=null,i=null,o=null,a=[],u=new Set,s=null,l=new Set,d=(c,h,b)=>{l.has(c)||(l.add(c),Ge(h,b))};if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(c){I("runtime.init.site1",c)}let m=new yo;e.transportClock=m;let f=new Eo,p=!1;f.init().then(c=>{p=c}),window.__hf=window.__hf||{};let g=c=>c.closest("[data-hidden]")!==null||Li(c.ownerDocument,c),y=()=>{let c=window.gsap,h=window;if(!(!c?.registerPlugin||h.__hfAutoNoopRegistered))try{c.registerPlugin({name:"_auto",init:()=>!1}),h.__hfAutoNoopRegistered=!0}catch(b){d("auto_marker_install_failed","auto_marker_install_failed",{reason:"threw"}),I("runtime.autoMarker.install",b)}},x=()=>{let c=window.gsap;if(!c){d("custom_ease_missing_gsap","custom_ease_install_failed",{reason:"missing_gsap"});return}try{Gh(c)||d("custom_ease_no_parse_ease","custom_ease_install_failed",{reason:"no_parseEase"})}catch(h){d("custom_ease_install_threw","custom_ease_install_failed",{reason:"threw"}),I("runtime.customEase.install",h)}};y(),x(),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{Wl(document)}catch(c){I("runtime.init.cssVariables",c)}window.__timelines=window.__timelines||{};let A=()=>{let c=document.querySelector(\'[data-composition-id][data-root="true"]\');if(pe(c))return c;let h=Array.from(document.querySelectorAll("[data-composition-id]"));return h.find(b=>!b.parentElement?.closest("[data-composition-id]"))??h[0]??null};if(Array.isArray(window.__timelines)){let c=window.__timelines,h=A()?.getAttribute("data-composition-id")??"root",b={};if(c.length===1)b[h]=c[0];else for(let v=0;v<c.length;v++)b[`tl-${v}`]=c[v];window.__timelines=b}let M=A();M&&!M.hasAttribute("data-start")&&M.setAttribute("data-start","0");let C=c=>{a.push(c)},L=(c,h,b)=>{let v=b??`${c}:${JSON.stringify(h)}`;u.has(v)||(u.add(v),xe({source:"hf-preview",type:"diagnostic",code:c,details:h}))},B=c=>{let h={scale:1,focusX:960,focusY:540},b=[],v=[],E={time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:c.play,pause:c.pause,seek:c.seek,getTime:c.getTime,getDuration:c.getDuration,isPlaying:c.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>h,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>b,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:c.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>v,getRenderState:()=>({...E,time:c.getTime(),duration:c.getDuration(),isPlaying:c.isPlaying()})}},F=1/60,w=.75,_=.05,T=100,N=240,W=c=>{if(c instanceof Error)return c.message||String(c);if(typeof c=="string")return c;try{return JSON.stringify(c)}catch{return String(c??"")}},X=c=>{let h=c.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"}},Y=c=>{if(c==null||c.trim()==="")return null;let h=Number.parseFloat(c);return!Number.isFinite(h)||h<=0?null:`${h}px`},R=()=>A(),S=()=>{let c=R();if(!c)return;let h=Y(c.getAttribute("data-width")),b=Y(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b),h&&c.style.setProperty("--comp-width",h),b&&c.style.setProperty("--comp-height",b),h&&(document.documentElement.style.width=h),b&&(document.documentElement.style.height=b),h&&(document.body.style.width=h),b&&(document.body.style.height=b)},H=()=>{let c=R(),h=Array.from(document.querySelectorAll("[data-composition-id]")).filter(b=>b.hasAttribute("data-duration")||b.hasAttribute("data-end"));for(let b of h){if(c&&b===c)continue;let v=b.getAttribute("data-duration"),E=b.getAttribute("data-end");v!=null&&!b.hasAttribute(cn)&&b.setAttribute(cn,v),E!=null&&!b.hasAttribute(dn)&&b.setAttribute(dn,E),b.removeAttribute("data-duration"),b.removeAttribute("data-end")}},q=()=>{let c=R();if(!c)return;c.style.position||(c.style.position="relative"),c.style.overflow="hidden";let h=Y(c.getAttribute("data-width")),b=Y(c.getAttribute("data-height"));h&&(c.style.width=h),b&&(c.style.height=b);let v=Array.from(c.children);for(let E of v){let D=E.tagName.toLowerCase();if(D==="script"||D==="style"||D==="link"||D==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let k=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",K=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(k&&K&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let Q=E.style.top,we=E.style.left,Wt=E.style.width,Fe=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let et=window.getComputedStyle(E);et.top!=="auto"||et.bottom!=="auto"||et.left!=="auto"||et.right!=="auto"||et.width!=="0px"||et.height!=="0px"||(E.style.top=Q,E.style.left=we,E.style.width=Wt,E.style.height=Fe)}let z=window.getComputedStyle(E),re=z.position;if(re!=="absolute"&&re!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||z.top!=="auto"||z.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||z.left!=="auto"||z.right!=="auto"||(E.style.left="0"),D!=="audio"){let Q=Y(E.getAttribute("data-width")),we=Y(E.getAttribute("data-height")),Wt=z.width!=="0px"&&z.width!=="auto",Fe=z.height!=="0px"&&z.height!=="auto";Q?!E.style.width&&!Wt&&(E.style.width=Q):!E.style.width&&z.width==="0px"&&(E.style.width="100%"),we?!E.style.height&&!Fe&&(E.style.height=we):!E.style.height&&z.height==="0px"&&(E.style.height="100%")}}},U=c=>Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:c}),V=null,$=c=>{let h=V;V=U(!0);try{return c()}finally{V=h}},G=c=>c&&V?V:U(c),P=(c,h=0,b)=>G(b?.includeAuthoredTimingAttrs??!0).resolveStartForElement(c,h),O=(c,h)=>G(h?.includeAuthoredTimingAttrs??!0).resolveDurationForElement(c),Z=c=>{let h=c.closest("[data-composition-id]"),b=h?P(h,0):null,v=h?O(h,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:h,inheritedStart:b,inheritedDuration:v}},te=c=>G(!0).resolveMediaStartForElement(c);window.__hfResolveMediaStartSeconds=te,a.push(()=>{window.__hfResolveMediaStartSeconds===te&&delete window.__hfResolveMediaStartSeconds});let ne=!!document.querySelector("[data-composition-src]"),j=!1;{let c=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let h of c){let b=h.getAttribute("data-composition-id");if(b&&h.children.length===0&&document.querySelector(`template#${CSS.escape(b)}-template`)){j=!0;break}}}let J=!ne&&!j,Ee=c=>{if(!c||typeof c.duration!="function")return null;try{let h=Number(c.duration());return Number.isFinite(h)?Math.max(0,h):null}catch{return null}},de=c=>typeof c=="number"&&Number.isFinite(c)&&c>F,Dn=()=>{let c=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));return c.length===0?null:$(()=>{let h=[];for(let v of c){let E=te(v);if(!Number.isFinite(E))continue;let D=ki(v);D==null||D<=F||h.push(Math.max(0,E)+D)}let{seconds:b}=hr({authoredDurationSeconds:null,clipEndsSeconds:h});return b!==null&&b>F?b:null})},dt=()=>{let c=R();if(!c)return null;let h=window.__timelines??{},b=Ue({timelineRegistry:h,includeAuthoredTimingAttrs:!0}),v=Me(c.getAttribute("data-duration")),E=[],D=Array.from(c.querySelectorAll("[data-composition-id][data-start]"));for(let K of D){if(!ke(K)||K.parentElement?.closest("[data-composition-id]")!==c)continue;let re=b.resolveStartForElement(K,0),ve=b.resolveDurationForElement(K);!Number.isFinite(re)||ve==null||ve<=0||E.push(Math.max(0,re)+ve)}let{seconds:k}=hr({authoredDurationSeconds:null,clipEndsSeconds:[v,...E]});return k!==null&&k>F?k:null},N0=c=>c.hasAttribute("data-composition-id")||c.hasAttribute("data-composition-src"),D0=c=>{let h=window;return!!(h.lottie||h.DotLottie||c.querySelector("[data-lottie-src]"))},$u=()=>{let c=R();if(!c)return hr({authoredDurationSeconds:null,clipEndsSeconds:[]});let h=Ue({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:!0}),b=[];for(let E of Array.from(c.querySelectorAll("[data-start]"))){if(!ke(E))continue;let D=h.resolveStartForElement(E,0);if(!Number.isFinite(D))continue;let k=h.resolveDurationForElement(E);k!=null?b.push(Math.max(0,D)+k):(ge(E)||N0(E))&&b.push(null)}D0(c)&&b.push(null);let v=hr({authoredDurationSeconds:null,clipEndsSeconds:b});return v.pendingClips>0?{...v,seconds:null,source:"unresolved",reason:"a clip\'s length is pending"}:v},No=null,I0=()=>{if(In)return $u();let c=Pn();return No?.revision!==c&&(No={revision:c,result:$u()}),No.result},P0=c=>{window.__hf=window.__hf||{},window.__hf.durationSource={source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},c.source==="derived"&&L("composition_duration_derived",{source:c.source,seconds:c.seconds,pendingClips:c.pendingClips},`composition_duration_derived:${c.seconds}`)},O0=()=>{let c=Dn();return typeof c!="number"||!Number.isFinite(c)||c<=F?null:c},H0=c=>de(c)?Math.max(F,c*w):F,zu=()=>{let c=0;for(let h of e.deterministicAdapters){let b=h.getInferredDurationSeconds;if(typeof b!="function")continue;let v=null;try{v=b()}catch(E){I("runtime.init.adapterDuration",E)}typeof v=="number"&&Number.isFinite(v)&&v>0&&(c=Math.max(c,v))}return c>F?c:null},In=!1,qu=()=>In&&window.__HF_EXPORT_RENDER_SEEK_CONFIG!=null,G0=["data-start","data-duration","data-end","data-composition-id","data-composition-src","data-composition-file","data-root","data-hf-authored-duration","data-hf-authored-end","data-hf-auto-start",Mi,"data-playback-rate","data-automation","data-playback-start","data-media-start","id","src"],ju=["loadedmetadata","durationchange","emptied"],Yr=null,Ku=-1,Xu=null,Ot=null,Yu=0,Ht=()=>{},Zt=()=>{Yu+=1,Ht()},Ju=()=>({media:O0(),authoredComposition:dt()}),B0=()=>{let c=window.__timelines??{},h="";for(let b of Object.keys(c)){let v=c[b];v&&(h+=`${b}=${Ee(v)??"?"};`)}return h},U0=()=>{if(!(Ot||typeof MutationObserver>"u")){Ot=new MutationObserver(Zt),Ot.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:G0});for(let c of ju)document.addEventListener(c,Zt,!0);a.push(()=>{Ot?.disconnect(),Ot=null,Zt();for(let c of ju)document.removeEventListener(c,Zt,!0)})}},Pn=()=>{U0(),Ot&&Ot.takeRecords().length>0&&Zt();let c=B0();return c!==Xu&&(Xu=c,Zt()),Yu},Qu=c=>In?Ju():(c??(c=Pn()),Yr&&Ku===c||(Ku=c,Yr=Ju()),Yr),ze=(c,h=0,b)=>{let v=Ee(c),{media:E,authoredComposition:D}=Qu(b),k=zu(),K=Math.max(E??0,D??0,k??0),z=Number.isFinite(h)&&h>F?h:0,re=0,ve=null;return de(v)?re=Math.max(v,K,z):de(K)?re=Math.max(K,z):z>0?re=z:(ve=I0(),re=ve.seconds??0),ve?P0(ve):window.__hf?.durationSource&&delete window.__hf.durationSource,re>0?Math.max(0,re):0},Do=()=>{let c=window.__timelines??{},h=fe=>{let se=Object.entries(c).filter(me=>!!me[1]&&typeof me[1].play=="function"&&typeof me[1].pause=="function");if(se.length!==1)return{timeline:null};let ie=se[0];if(!ie)return{timeline:null};let[Se,Ae]=ie;return{timeline:Ae,selectedTimelineIds:[Se],selectedDurationSeconds:Ee(Ae),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:fe,soleTimelineId:Se}}}},b=Ue({timelineRegistry:c,includeAuthoredTimingAttrs:!0}),{media:v,authoredComposition:E}=Qu(),D=Math.max(v??0,E??0)||null,k=H0(D),K=fe=>{let se=document.querySelector(`[data-composition-id="${CSS.escape(fe)}"]`);return se?b.resolveStartForElement(se,0):0},z=fe=>{let se=window.gsap;if(!se||typeof se.timeline!="function")return null;let ie=se.timeline({paused:!0});for(let Se of fe)ie.add(Se.timeline,K(Se.compositionId));return ie},re=(fe,se)=>{if(!de(fe))return null;let ie=window.gsap;if(!ie||typeof ie.timeline!="function")return null;let Se=ie.timeline({paused:!0});if(se)try{Se.add(se,0)}catch(me){I("runtime.init.site2",me)}let Ae=Se;if(typeof Ae.to=="function")try{Ae.to({},{duration:fe})}catch(me){I("runtime.init.site3",me)}return Se},ve=(fe,se)=>{if(!fe||typeof fe.getChildren!="function")return[];try{let ie=fe.getChildren(!0,!0,!0);return Array.isArray(ie)?se.filter(Se=>ie.includes(Se.timeline)):[]}catch{return[]}},At=(fe,se)=>{let ie=fe,Se={addedIds:[],nested:[]};if(typeof ie.getChildren!="function")return Se;try{let Ae=ie.getChildren(!0,!0,!0)??[];if(!Array.isArray(Ae))return Se;let me=[];for(let _e of se)if(!Ae.some(ft=>ft===_e.timeline))try{let ft=K(_e.compositionId);fe.add(_e.timeline,ft),me.push(_e.compositionId)}catch(ft){I("runtime.init.site4",ft)}return{addedIds:me,nested:ve(fe,se)}}catch{return Se}},ae=R(),Q=ae?.getAttribute("data-composition-id")??null;if(!Q)return h("root_missing_composition_id");let we=c[Q]??null,Fe=(()=>{if(!ae)return[];let fe=new Set,se=Array.from(ae.querySelectorAll("[data-composition-id]")),ie=[];for(let Se of se){let Ae=Se.getAttribute("data-composition-id");if(!Ae||Ae===Q||fe.has(Ae))continue;fe.add(Ae);let me=c[Ae]??null;if(!me||typeof me.play!="function"||typeof me.pause!="function")continue;let _e=Ee(me);ie.push({compositionId:Ae,timeline:me,durationSeconds:_e??0})}return ie})(),et=fe=>{for(let se of fe){let ie=se.timeline;if(typeof ie.paused=="function")try{ie.paused(!1)}catch(Se){I("runtime.init.site5",Se)}}};if(we){let fe=Fe.length>0?At(we,Fe):{addedIds:[],nested:[]},se=fe.addedIds;if(et(fe.nested),(Fe.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Q+"\'])"))&&(On=!0),se.length>0)try{let me=we.time();we.seek(me,!1)}catch{}let ie=Ee(we);if(!de(ie)&&Fe.length>0){let me=Fe.map(yg=>yg.compositionId),_e=z(Fe),tn=Ee(_e);if(_e&&de(tn))return et(ve(_e,Fe)),{timeline:_e,selectedTimelineIds:me,selectedDurationSeconds:tn,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:tn,mediaDurationFloorSeconds:v,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:me,autoNestedChildren:se}}};let ft=re(D??0,we),Yo=Ee(ft);if(ft&&de(Yo))return{timeline:ft,selectedTimelineIds:[Q],selectedDurationSeconds:Yo,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:v,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Yo,selectedTimelineIds:[Q],autoNestedChildren:se}}}}if(!de(ie)&&Fe.length===0){let me=re(D??0,we),_e=Ee(me);if(me&&de(_e))return{timeline:me,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Q,rootDurationSeconds:ie,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:v,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:_e,selectedTimelineIds:[Q]}}}}let Se=Me(ae?.getAttribute("data-duration")),Ae=Math.max(de(Se)?Se:0,E??0);if(Ae>0&&de(Ae)&&de(ie)&&Ae>=ie+.5){let me=we;if(typeof me.to=="function")try{me.to({},{duration:0},Ae)}catch(tn){I("runtime.init.site6",tn)}let _e=Ee(we);if(de(_e))return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:_e,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Q,rootDurationSeconds:ie,rootDeclaredDur:Se,authoredCompositionDurationFloorSeconds:E,newDur:_e}}}}return{timeline:we,selectedTimelineIds:[Q],selectedDurationSeconds:ie,mediaDurationFloorSeconds:v,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Q,selectedDurationSeconds:ie,autoNestedChildren:se}}:void 0}}if(Fe.length>0){let fe=Fe.map(Se=>Se.compositionId),se=z(Fe),ie=Ee(se);if(se)return et(ve(se,Fe)),{timeline:se,selectedTimelineIds:fe,selectedDurationSeconds:ie,mediaDurationFloorSeconds:v,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:ie,mediaDurationFloorSeconds:v,selectedTimelineIds:fe}}}}return h("root_composition_id_unmatched_in_registry")},On=!1,W0=c=>{let h=window.gsap,b=c;if(!(!b||typeof b.getChildren!="function"||!h||typeof h.parseEase!="function"))for(let v of b.getChildren(!0,!0,!0)){let E=v,D=E.timeline;if(!D||!("_ease"in D)||typeof D._ease=="function")continue;let k=E.vars?.keyframes,z=(k&&!Array.isArray(k)?k.ease:void 0)??E.vars?.ease??"none";try{let re=h.parseEase(z);typeof re=="function"&&(D._ease=re)}catch(re){Ge("keyframe_ease_repair_failed",{ease:typeof z=="string"?z:String(z)}),I("runtime.keyframeEase.repair",re)}}},Hn=()=>{if(x(),!J)return!1;let c=e.capturedTimeline,h=Ee(c),b=de(h);if(c&&b&&On)return!1;let v=Do();if(!v.timeline)return!1;if(c&&c===v.timeline)return typeof c.timeScale=="function"&&c.timeScale(e.playbackRate),!1;e.capturedTimeline=v.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate),W0(e.capturedTimeline);let E=ze(e.capturedTimeline,0);if(E<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),ct(e.capturedTimeline)),E>0){try{m.setDuration(E)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let k=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(k,!1),ct(e.capturedTimeline)}let D=window.__hfStudioManualEditsApply;typeof D=="function"&&D(),so(document)}if(v.diagnostics&&xe({source:"hf-preview",type:"diagnostic",code:v.diagnostics.code,details:v.diagnostics.details}),xe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:v.selectedTimelineIds??[],selectedDurationSeconds:v.selectedDurationSeconds??null,mediaDurationFloorSeconds:v.mediaDurationFloorSeconds??null}}),window.parent!==window){let D=R(),k=E>0?E:0,K=String(k>0?k:1),z=new Set,re=ae=>ae.tagName.toLowerCase()===mn,ve=new Set(document.querySelectorAll("[data-start]")),At=ae=>{let Q=ae.parentElement;for(;Q&&Q!==D;){if(ve.has(Q))return!0;Q=Q.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let ae of e.capturedTimeline.getChildren(!0))if(typeof ae.targets=="function")for(let Q of ae.targets())pe(Q)&&Q!==D&&(re(Q)||Q.hasAttribute("data-start")||At(Q)||z.has(Q)||(z.add(Q),Q.setAttribute("data-start","0"),Q.setAttribute("data-duration",K),Q.setAttribute("data-hf-autostamped","1")))}catch{}if(pe(D))for(let ae of D.querySelectorAll("[id]"))pe(ae)&&ae!==D&&(ae.hasAttribute("data-start")||At(ae)||z.has(ae)||ae.tagName==="SCRIPT"||ae.tagName==="STYLE"||ae.tagName==="LINK"||re(ae)||(z.add(ae),ae.setAttribute("data-start","0"),ae.setAttribute("data-duration",K),ae.setAttribute("data-hf-autostamped","1")))}for(let D of Gn)Jr.delete(D),ol(D);return!0},Zu=()=>{if(e.tornDown)return;let c=Do();if(!c.timeline){e.capturedTimeline=null,On=!1,m.setDuration(0),Bn(e.currentTime);return}e.capturedTimeline!==c.timeline&&(On=!1,Hn()),Bn(e.currentTime)};t=()=>{Zu(),St()},window.__hfForceTimelineRebind=Zu;let V0=()=>{let c=R();if(!pe(c))return;let h=c.getBoundingClientRect(),b=Number(c.getAttribute("data-width")),v=Number(c.getAttribute("data-height")),E=window.getComputedStyle(c),D=Number.isFinite(b)&&b>0&&Number.isFinite(v)&&v>0,k=h.width<=0||h.height<=0||c.clientWidth<=0||c.clientHeight<=0;!D||!k||L("root_stage_layout_zero",{compositionId:c.getAttribute("data-composition-id")??null,declaredWidth:b,declaredHeight:v,rectWidth:Math.round(h.width),rectHeight:Math.round(h.height),clientWidth:c.clientWidth,clientHeight:c.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${c.getAttribute("data-composition-id")??"unknown"}`)},$0=()=>{e.tornDown||(s!=null&&window.cancelAnimationFrame(s),s=window.requestAnimationFrame(()=>{s=null,V0()}))},z0=()=>{i=c=>{let h=W(c.error??c.message).slice(0,N);if(!h)return;let b=X(h);xe({source:"hf-preview",type:"diagnostic",code:b.code,details:{category:b.category,message:h,filename:c.filename||null,line:Number.isFinite(c.lineno)?c.lineno:null,column:Number.isFinite(c.colno)?c.colno:null}})},o=c=>{let h=W(c.reason).slice(0,N);if(!h)return;let b=X(h);xe({source:"hf-preview",type:"diagnostic",code:`${b.code}_unhandled_rejection`,details:{category:`${b.category}-unhandled-rejection`,message:h}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",o)},q0=()=>{let c=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let b of c){let v=()=>{if(!ke(b))return;let E=b.tagName.toLowerCase(),D=b.getAttribute("src")??b.getAttribute("href")??b.getAttribute("poster")??null,k=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";L(k,{tagName:E,assetUrl:D,currentSrc:(Le(b)||ge(b))&&b.currentSrc||null,readyState:ge(b)?b.readyState:null,networkState:ge(b)?b.networkState:null},`${k}:${E}:${D??"unknown"}`)};b.addEventListener("error",v),C(()=>{b.removeEventListener("error",v)})}let h=document.fonts;h&&h.ready.then(()=>{if(e.tornDown)return;let b=Array.from(h).filter(v=>v.status==="error").map(v=>v.family).filter(v=>!!v).slice(0,10);b.length!==0&&L("runtime_font_load_issue",{failedFamilies:b,totalFaces:Array.from(h).length},`runtime-font-load-issue:${b.join("|")}`)}).catch(()=>{})},j0=(c,h)=>{if(!c.timeline)return!1;let b=e.capturedTimeline;if(b&&b===c.timeline)return!1;let v=Math.max(0,e.currentTime||0),E=e.isPlaying;e.capturedTimeline=c.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{ct(e.capturedTimeline),typeof e.capturedTimeline.seek=="function"&&e.capturedTimeline.seek(v,!1),E&&typeof e.capturedTimeline.play=="function"&&e.capturedTimeline.play()}catch(D){I("runtime.init.site7",D)}return xe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:h,previousTime:v,selectedTimelineIds:c.selectedTimelineIds??[],selectedDurationSeconds:c.selectedDurationSeconds??null,mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),!0},Gt=null,el=!1,Gn=new Set,Jr=new WeakMap,Qr=()=>{e.tornDown||(Gt!=null&&window.clearTimeout(Gt),Gt=window.setTimeout(()=>{if(e.tornDown||(Gt=null,qu()))return;let c=Do();if(!c.timeline||!de(c.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){Hn()&&(St(),Ie(!0));return}if(el)return;let b=Ee(e.capturedTimeline),v=c.selectedDurationSeconds??Ee(c.timeline);de(v)&&(!de(b)||v>=b+_)&&j0(c,"manual")&&(el=!0,xe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:b??null,selectedDurationSeconds:v??null,selectedTimelineIds:c.selectedTimelineIds??[],mediaDurationFloorSeconds:c.mediaDurationFloorSeconds??null}}),St(),Ie(!0))},T))},tl=c=>{ge(c.currentTarget)&&ad(c.currentTarget)},nl=c=>{ge(c.currentTarget)&&sd(c.currentTarget)},rl=c=>{ra(c)&&Rh(c)&&Mn(c,kn(c))},il=c=>{let h=c.currentTarget;ge(h)&&rl(h)},K0=()=>{for(let c of Gn)c.removeEventListener("loadedmetadata",Qr),c.removeEventListener("durationchange",Qr),c.removeEventListener("loadedmetadata",tl),c.removeEventListener("loadedmetadata",il),c.removeEventListener("error",nl);Gn.clear()},Io=()=>{if(e.tornDown)return;let c=Array.from(document.querySelectorAll("video, audio"));for(let h of c){if(Gn.has(h))continue;Gn.add(h);let b=Number.parseFloat(h.dataset.volume??"");Number.isFinite(b)&&(h.volume=Math.max(0,Math.min(1,b))),h.addEventListener("loadedmetadata",Qr),h.addEventListener("durationchange",Qr),h.addEventListener("loadedmetadata",il),rl(h),h.addEventListener("loadedmetadata",tl),h.addEventListener("error",nl),od(h),h.preload!=="auto"&&(h.preload="auto"),h.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&h.load(),ol(h)}},ol=c=>{Jr.has(c)||Uc(c,e.capturedTimeline,ze(e.capturedTimeline,0),Jr,{allowLiveTimelineSeek:!window.__HF_RENDER_CAPTURE_MODE})},Po=new WeakMap,X0=c=>{let h=Po.get(c);if(h!==void 0)return h;let b=window.getComputedStyle(c).position,v=b==="static"||b==="relative"||b==="sticky";return Po.set(c,v),v},Oo=new WeakMap,Y0=c=>{let h=Oo.get(c);if(h!==void 0)return h;let b=c.querySelector("[data-start]")===null;return Oo.set(c,b),b},J0=()=>{Po=new WeakMap,Oo=new WeakMap},Ho=new WeakSet,Go=new WeakMap,Zr=new WeakSet,ei=!1,al=c=>c.matches("audio[data-start]")||c.querySelector("audio[data-start]")!==null,sl=new WeakMap,ti=!0,Q0=()=>{if(ti){ti=!1;for(let c of document.querySelectorAll(mn)){let h=c.hasAttribute("data-hidden");sl.get(c)!==h&&(sl.set(c,h),c.id&&f.setGroupMuted(c.id,h))}}},Z0=(c,h,b)=>{let v=R(),E=ze(e.capturedTimeline,0,b),D=!1;for(let k of h){if(!pe(k))continue;if(k.hasAttribute("data-hidden")){Zr.has(k)||(Go.set(k,k.style.getPropertyValue("display")),Zr.add(k),al(k)&&(ei=!0),ti=!0),k.style.display="none",(he(k)||Le(k))&&r?.setSourceVisibility(k,!1);continue}if(Zr.has(k)){let z=Go.get(k);z?k.style.display=z:k.style.removeProperty("display"),Go.delete(k),Zr.delete(k),al(k)&&(ei=!0),ti=!0}let K=pr(k,{currentTime:c,compositionDuration:E,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:G(!0)});if(K){let z=k.parentElement;for(;z&&z!==v;){if(pe(z)&&z.hasAttribute("data-start")&&!pr(z,{currentTime:c,compositionDuration:E,canonicalFps:e.canonicalFps,exportRenderSeek:!!window.__HF_EXPORT_RENDER_SEEK_CONFIG,timelineRegistry:window.__timelines??{},resolver:G(!0)})){K=!1;break}z=z.parentElement}}k.style.visibility=K?"visible":"hidden",!ge(k)&&!Le(k)&&(D=!0),(he(k)||Le(k))&&r?.setSourceVisibility(k,K),K?Ho.has(k)&&(k.style.removeProperty("display"),Ho.delete(k)):X0(k)&&Y0(k)&&(k.style.display="none",Ho.add(k))}D&&Dl()&&r?.refresh(),ei&&m.isPlaying()&&(f.stopAll(),Ko()),ei=!1,Q0()},Bn=(c,h=Array.from(document.querySelectorAll("[data-start]")),b)=>$(()=>Z0(c,h,b)),Un=null,Wn=null,ni=[],ul=c=>c.hasAttribute("data-start")||!!Z(c).compositionRoot,Bo=c=>ed({elements:c,shouldIncludeElement:ul,resolveStartSeconds:h=>te(h),resolveDurationSeconds:h=>{let b=Z(h),v=te(h),E=b.inheritedStart!=null&&b.inheritedDuration!=null&&b.inheritedDuration>0?Math.max(0,b.inheritedStart+b.inheritedDuration-v):null,D=Number.isFinite(h.duration)?nt(h,h.duration):null,k=Me(h.dataset.duration),K=k!=null&&k>0?k:null;return Zc({isVideo:h.tagName==="VIDEO",sourceDuration:D,hostRemaining:E,explicitDuration:K})}}),eg=()=>{let c=Pn();if(Un&&Un.revision===c)return Un;let h=Bo().mediaClips;return Un={revision:c,clips:h,byStart:[...h].sort((b,v)=>b.start-v.start),byEnd:[...h].sort((b,v)=>b.end-v.end)},Wn=null,ni=[],Un},ll=(c,h,b,v)=>{let E=0,D=c.length;for(;E<D;){let K=E+D>>1;h(c[K])<b?E=K+1:D=K}let k=[];for(let K=E;K<c.length&&h(c[K])<=v;K+=1)k.push(c[K]);return k},tg=(c,h)=>{let b=Wn;if(b===null)return c.clips.map(k=>k.el);let v=Math.min(b,h),E=Math.max(b,h),D=new Set;for(let k of ni)D.add(k.el);for(let k of ll(c.byStart,K=>K.start,v,E))D.add(k.el);for(let k of ll(c.byEnd,K=>K.end,v,E))D.add(k.el);return[...D]},ri=new WeakSet,cl=c=>{ri.add(c)},dl=c=>{ri.delete(c)};window.__hf.leasePausedMedia=cl,window.__hf.releasePausedMedia=dl,window.__hf.audioMeter={start:()=>f.startMetering(),stop:()=>f.stopMetering(),read:()=>f.readLevels()};let ng=()=>{for(let c of document.querySelectorAll("video, audio"))if(ge(c)&&!c.paused&&ul(c)&&!ri.has(c))return!0;return!1},fl=()=>Ht();document.addEventListener("play",fl,!0),a.push(()=>{document.removeEventListener("play",fl,!0)});let He=c=>{let h=!In,b=$(()=>{if(!h)return Bo().mediaClips;let D=eg();return Bo(tg(D,e.currentTime)).mediaClips});for(let D of b){let k=Jr.get(D.el);k&&(D.volumeKeyframes=k)}let v=e.isPlaying?b:b.filter(D=>!ri.has(D.el)),E=e.mediaForceSyncNextTick;E&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||(td({clips:v,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted,userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:E,getCompositionDuration:()=>ze(e.capturedTimeline,0,c),onElementVolume:(D,k,K)=>f.setElementVolume(D,K),isWebAudioOwned:D=>f.ownsElement(D),isWebAudioRouted:D=>f.routesElement(D),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,xe({source:"hf-preview",type:"media-autoplay-blocked"}))}}),h?(Wn=e.currentTime,ni=b.filter(D=>_t(e.currentTime,D.start,D.end))):(Wn=null,ni=[])),Bn(e.currentTime,void 0,c)},Ie=c=>{c&&Ht();let h=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),b=Date.now();(c||h!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||b-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=h,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=b,xe({source:"hf-preview",type:"state",frame:h,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Uo="",ml=!1,pl=!1,hl=0,rg=()=>{let c="";for(let h of document.querySelectorAll("[data-start]"))c+=`${h.id}:${h.tagName}|`;return c},St=()=>{H(),S(),q();let c=R();if(c){let v=Y(c.getAttribute("data-width")),E=Y(c.getAttribute("data-height")),D=v?parseInt(v,10):0,k=E?parseInt(E,10):0;D>0&&k>0&&xe({source:"hf-preview",type:"stage-size",width:D,height:k})}Hn();let h=qd({canonicalFps:e.canonicalFps});window.__clipManifest=h;let b=rg();if(Uo!==b&&J0(),!window.__clipTree||Uo!==b){let v=window;window.__clipTree=Wd({startResolver:Ue({timelineRegistry:v.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:v.__timelines??{},rootDuration:h.durationInFrames/e.canonicalFps}),Uo=b}xe({...h,assetsReady:pl}),ml||(ml=!0,Uh(document,({timedOut:v})=>{e.tornDown||(pl=!0,xe({source:"hf-preview",type:"assets-ready",timedOut:v}))})),$0()},Wo=c=>typeof c=="number"&&Number.isFinite(c)&&c>0?c:0,ig=c=>{let h=Wo(Number(c));if(h<=0)return;let b=R(),v=Wo(Me(b?.getAttribute("data-duration"))),E=Math.max(hl,Wo(m.getDuration()),v);h<=E||(hl=h,b?.setAttribute("data-duration",String(h)),m.setDuration(h),St(),Ie(!0))},qe=(c,h=0)=>{for(let b of e.deterministicAdapters){try{c==="discover"&&b.discover(),c==="pause"&&b.pause(),c==="play"&&b.play&&b.play()}catch(v){I("runtime.init.site8",v)}if(c==="discover")try{b.seek({time:h,suppressEvents:!0})}catch(v){I("runtime.init.site9",v)}}},Bt=()=>{window.__renderReady=!1},og=Yh(()=>{let c=[];for(let h of e.deterministicAdapters){let b=h.getReadyPromise;if(typeof b=="function")try{let v=b();v&&c.push(v)}catch(v){I("runtime.init.adapterReady",v)}}return c},()=>Bt(),c=>I("runtime.init.adapterReady",c)),ag=Yh(()=>{let c=window.__hf?.buildReady;return c?Object.values(c).filter(h=>h!=null&&typeof h.then=="function"):[]},()=>Bt(),c=>I("runtime.init.buildReady",c));if(J)Us();else{let c={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,injectedLinks:e.injectedCompLinks,parseDimensionPx:Y,onDiagnostic:({code:h,details:b})=>{xe({source:"hf-preview",type:"diagnostic",code:h,details:b})}};qm(c).then(()=>zm(c)).finally(()=>{J=!0,Io(),q0(),Us(),Ks(document),pu(document.body,e.canonicalFps),Bt()})}let ii=Od({postMessage:c=>xe(c)});ii.installPickerApi(),Bn(e.currentTime,Array.from(document.querySelectorAll("video[data-start], img[data-start]")));let Ze=Fp({lease:cl,release:dl});r=Ze,C(()=>{Ze.destroy(),r=null}),pu(document.body,e.canonicalFps);let Vo=c=>{let h=Number(c);!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 b=document.querySelectorAll("video, audio");for(let v of b)if(ge(v))try{v.playbackRate=e.playbackRate}catch(E){I("runtime.init.site10",E)}},gl={play:()=>{let c=e.capturedTimeline;if(m.isPlaying())return;let h=ze(c,0);if(h>0)m.setDuration(h),m.reachedEnd()&&(m.seek(0),e.currentTime=0,Ut(0));else{let b=R(),v=Number(b?.getAttribute("data-duration")??0);v>0&&m.setDuration(v)}ct(c),m.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,Cl(m.now()),p&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&Ko(),qe("play"),He(),Ze.redraw(),Ie(!0))},pause:()=>{if(!m.isPlaying())return;f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1,e.currentTime=m.now(),e.mediaForceSyncNextTick=!0,Cl(e.currentTime);let c=e.capturedTimeline;ct(c),qe("pause"),He(),Ze.redraw(),Ie(!0)},seek:(c,h)=>{let b=Ya(Math.max(0,Number(c)||0),e.canonicalFps);f.stopAll(),m.detachAudioSource();let v=m.isPlaying();v&&m.pause(),m.seek(b),e.currentTime=m.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let E=e.capturedTimeline;if(ct(E),Ut(e.currentTime),qe("pause"),h?.keepPlaying&&v){gl.play();return}He(),Ze.redraw(),bu(e.currentTime),Ie(!0)},renderSeek:(c,h)=>{In=!0;let b=lr(Math.max(0,Number(c)||0),e.canonicalFps,h?.subFrameDivisions);f.stopAll(),m.detachAudioSource(),m.isPlaying()&&m.pause(),m.seek(b),e.currentTime=m.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,Ut(e.currentTime,{activateChildren:!0,suppressEvents:h?.suppressEvents}),qe("pause"),He(),Ze.redraw(),bu(e.currentTime,{engineMode:!0}),Ie(!0)},getTime:()=>m.now(),getDuration:()=>{let c=m.getDuration();return Number.isFinite(c)?c:0},isPlaying:()=>m.isPlaying(),setPlaybackRate:c=>{Vo(c),m.setRate(e.playbackRate),Rl()},getPlaybackRate:()=>e.playbackRate},bl=ze(e.capturedTimeline,0);bl>0&&m.setDuration(bl);let je=Bd({getTimeline:()=>e.capturedTimeline,setTimeline:c=>{e.capturedTimeline=c},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:c=>{e.isPlaying!==c&&(e.mediaForceSyncNextTick=!0),e.isPlaying=c},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:Vo,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(c,h)=>{e.currentTime=Math.max(0,Number(c)||0),e.isPlaying!==h&&(e.mediaForceSyncNextTick=!0),e.isPlaying=h,He()},onStatePost:Ie,onDeterministicSeek:(c,h)=>{for(let b of e.deterministicAdapters)if(!(b.name==="gsap"&&e.capturedTimeline))try{b.seek({time:Number(c)||0,suppressEvents:h?.suppressEvents})}catch(v){I("runtime.init.site11",v)}},onDeterministicPause:()=>qe("pause"),onDeterministicPlay:()=>qe("play"),onRenderFrameSeek:()=>{Ze.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>ze(e.capturedTimeline,0),transport:gl});window.__player=B(je),window.__playerReady=!0,Ge("composition_loaded",{duration:je.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.deterministicAdapters=[Hc(),jl({resolveStartSeconds:c=>P(c,0)}),Xl(),Ql({resolveStartSeconds:c=>P(c,0)}),tc(),nc(),rc(),ic(),oc(),ac(),sc(),Kl({getTimeline:()=>e.capturedTimeline})],cc(),dc(),window.__hfReseekGpu=c=>{let h=Math.max(0,Number(c)||0);window.__hfThreeTime=h,window.__hfTypegpuTime=h,xi(h)},window.__hfWaitForSeekCompletion=ua,a.push(()=>{window.__hfWaitForSeekCompletion===ua&&delete window.__hfWaitForSeekCompletion}),z0(),Io(),qe("discover");let sg=()=>{let c=e.capturedTimeline,h=Hn();e.capturedTimeline&&(h||e.capturedTimeline!==c||!je._timeline)&&(je._timeline=e.capturedTimeline);let b=ze(e.capturedTimeline,0);if(b>0&&m.setDuration(b),qe("discover",e.currentTime),!e.capturedTimeline){let v=window.__timelines??{},E=Object.keys(v).filter(D=>v[D]);if(E.length>0){let k=R()?.getAttribute("data-composition-id")??null;L("root_timeline_unbound_registry_present",{reason:k?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:k,registeredTimelineKeys:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(k?`Root data-composition-id is "${k}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${k??"<root-id>"}"] = tl).`)}}Bn(e.currentTime,Array.from(document.querySelectorAll("[data-start]:not(video, audio, img)"))),window.__renderReady=!0,St(),Ie(!0)},en=null,ug=()=>{if(en)return;let c=()=>{window.removeEventListener("hf-timelines-built",c),en=null,Bt()};en=c,window.addEventListener("hf-timelines-built",c)};C(()=>{en&&(window.removeEventListener("hf-timelines-built",en),en=null)}),Bt=()=>{if(!J){window.__renderReady=!1;return}if(window.__hfTimelinesBuilding){window.__renderReady=!1,ug();return}if(qe("discover",e.currentTime),!og()){window.__renderReady=!1;return}if(!ag()){window.__renderReady=!1;return}sg()},Bt(),J&&setTimeout(()=>{Bt()},0);let oi=0,ai=!1,$o=Number.NaN,zo=null,si=!1,Et=null,xl=!1,ui=!1,yl="",vl=-1,li=!1,Sl=Number.NEGATIVE_INFINITY,lg=(c,h,b,v)=>{try{let E=v?.suppressEvents===!0;ct(c),typeof c.totalTime=="function"?c.totalTime(h,E):c.seek(h,E)}catch(E){I(b,E)}},cg=(c,h)=>{let b=window.__timelines??{},v=R()?.getAttribute("data-composition-id")??null;for(let[E,D]of Object.entries(b)){if(!D||E===v)continue;let k=document.querySelector(`[data-composition-id="${CSS.escape(E)}"]`);if(!k)continue;let K=P(k,0);if(!Number.isFinite(K))continue;let z=Ee(D),re=rt(k)+Ri(Rt(k),Math.max(0,c-K)),ve=Math.max(0,z!=null&&z>0?Math.min(z,re):re);lg(D,ve,"runtime.init.transport.childTimeline",h)}},dg=c=>{let h=window.__timelines??{},b=[];for(let v of Object.values(h))if(!(!v||v===c)){b.push(v);try{v.play()}catch(E){I("runtime.init.activateSiblings",E)}}return b},El=c=>typeof c=="object"&&c!==null,Vn=new WeakMap,fg=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Al=(c,h)=>{let b=c[h];if(typeof b!="function")return null;try{let v=Number(b.call(c));return Number.isFinite(v)?v:null}catch(v){return I("runtime.init.gsapCallbackDuration",v),null}},mg=c=>{let h=Vn.get(c);if(h!=null)return h;if(!("getChildren"in c)||typeof c.getChildren!="function")return!1;let b;try{b=c.getChildren(!0,!0,!0)}catch(v){return I("runtime.init.gsapCallbackChildren",v),Vn.set(c,!1),!1}if(!Array.isArray(b))return Vn.set(c,!1),!1;for(let v of b){if(!El(v))continue;let E=v.vars;if(!El(E)||!fg.some(z=>typeof E[z]=="function"))continue;let K=Al(v,"totalDuration")??Al(v,"duration");if(K!=null&&K<=1e-6)return Vn.set(c,!0),!0}return Vn.set(c,!1),!1};function Ut(c,h){let b=e.capturedTimeline,v=b&&h?.activateChildren?dg(b):[];try{pg(b,c,h)}finally{for(let E of v)ct(E)}}function pg(c,h,b){let v=b?.suppressEvents===!0;if(c){let E=c,D=h;if(typeof E.totalDuration=="function")try{let k=Number(E.totalDuration());Number.isFinite(k)&&k>0&&h>k&&(D=k)}catch(k){I("runtime.init.transport.clampDuration",k)}try{typeof c.totalTime=="function"?(c.totalTime(D,v),!v&&!mg(c)&&(c.totalTime(D+.001,!0),c.totalTime(D,!0))):c.seek(D,v)}catch(k){I("runtime.init.transport.seek",k)}}cg(h,b);for(let E of e.deterministicAdapters)if(!(E.name==="gsap"&&c))try{E.seek({time:h,suppressEvents:v})}catch(D){I("runtime.init.transport.adapter",D)}}let qo=Mh(document,()=>{Ht()});a.push(()=>qo.disconnect());let hg=()=>{try{return qo.isActive()}catch{return!1}},gg=()=>!m.isPlaying()&&!qu()&&qo.observing&&!si&&!li&&e.currentTime===$o&&e.capturedTimeline===zo,_l=()=>`${Pn()}|${zu()??""}`,wl=()=>{Et=window.setTimeout(bg,xl&&e.capturedTimeline&&On?t_:e.bridgeMaxPostIntervalMs)},bg=()=>{if(Et=null,!e.tornDown&&!(typeof window>"u"||typeof document>"u")){if(_l()!==yl){Ht();return}Ie(!1),wl()}},xg=()=>{if(e.transportRafId=null,e.tornDown)return;let c=ui;if(ui=!1,c||!gg()){e.transportRafId=window.requestAnimationFrame(jo);return}yl=_l(),wl()};Ht=()=>{e.tornDown||(ui=!0,!(ai||e.transportRafId!=null)&&(Et!=null&&(window.clearTimeout(Et),Et=null),ui=!1,e.transportRafId=window.requestAnimationFrame(jo)))};let jo=()=>{if(!(e.tornDown||ai)){ai=!0;try{oi+=1;let c=Pn();c!==vl&&(vl=c,li=!0);let h=Date.now(),b=li&&!m.isPlaying()&&h-Sl>=Fh;if(b&&(Sl=h),Lh({tick:oi,isPlaying:m.isPlaying(),hasCapturedTimeline:e.capturedTimeline!=null,currentTimeSeconds:m.now(),compositionChanged:b})){let k=e.capturedTimeline;if(Hn()){e.capturedTimeline&&!je._timeline&&(je._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==k&&ct(e.capturedTimeline);let K=ze(e.capturedTimeline,0,c);K>0&&m.setDuration(K),St()}}if((b||oi%20===0)&&(St(),li=!1),(b||oi%30===0)&&Io(),e.capturedTimeline){let k=ze(e.capturedTimeline,0,c);k>0&&(!m.isPlaying()||k>=m.getDuration())&&m.setDuration(k)}if(m.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&f.ownsClock()&&f.context){let k=f.getTime();k>=0&&m.attachAudioSource({currentTimeSeconds:k})}else{let k=document.querySelectorAll("audio[data-start]"),K=!1;for(let z of k){if(!ge(z)||!z.isConnected||g(z))continue;let re=te(z),ve=Me(z.dataset.duration),At=ve!=null&&ve>0?re+ve:1/0,ae=rt(z);if(Number.isFinite(re)&&_t(e.currentTime,re,At)){z.paused?!z.error&&z.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(m.attachAudioSource({currentTimeSeconds:e.currentTime}),K=!0):(m.attachAudioSource({el:z,compositionStart:re,mediaStart:ae,rate:Rt(z)}),K=!0);break}}!K&&m.hasAudioSource()&&m.detachAudioSource()}else m.hasAudioSource()&&m.detachAudioSource();let v=m.now();e.currentTime=v;let E=m.isPlaying();if(!E&&hg()?si=!0:(E||si||v!==$o||e.capturedTimeline!==zo)&&(Ut(v),$o=v,zo=e.capturedTimeline,E||(si=!1)),E&&Ze.redrawAnimated(),m.isPlaying()&&m.reachedEnd()){f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1;let k=m.getDuration();Number.isFinite(k)&&(m.seek(k),e.currentTime=k,Ut(k)),qe("pause"),He(c),Ie(!0);return}m.isPlaying()?He(c):ng()&&(Wn=null,He(c)),Ie(!1)}finally{ai=!1,xg()}}},Cl=c=>{let h=document.querySelectorAll("video, audio");for(let b of h){if(!ge(b)||!b.isConnected||!b.hasAttribute("data-start"))continue;let v=te(b);if(!Number.isFinite(v))continue;let E=Me(b.dataset.duration),D=E!=null&&E>0?v+E:1/0;if(!_t(c,v,D))continue;let k=rt(b),K=c-v+k;if(K>=0)try{b.currentTime=K}catch{}}},Ko=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let c=f.startGeneration(),h=document.querySelectorAll("audio[data-start]");for(let b of h){if(!ge(b)||!b.isConnected||g(b))continue;let v=te(b);if(!Number.isFinite(v))continue;let E=rt(b),D=Number.parseFloat(b.dataset.volume??""),k=Number.isFinite(D)?D:1,K=Me(b.dataset.duration),z=K!=null&&K>0?K:Number.POSITIVE_INFINITY,re=b.closest("[data-composition-id]");if(re){let ae=P(re,0),Q=O(re,{includeAuthoredTimingAttrs:!0});Q!=null&&Q>0&&(z=Math.min(z,Math.max(0,ae+Q-v)))}let ve=kn(b);if(Mn(b,ve),typeof Rt(b)!="number")continue;(ve.kind==="web-audio"?f.scheduleMediaElementPlayback(b,v,E,m.now(),k,c,e.playbackRate):Promise.resolve(null)).then(ae=>{if(ae||!m.isPlaying())return;let Q=e.playbackRate*Pe(b),we=b.hasAttribute("data-fx-chain")||b.hasAttribute("data-automation");if(Math.abs(Q-1)>1e-9){ve.kind==="web-audio"&&we&&(b.muted=!0);return}f.decodeAudioElement(b).then(Wt=>{!Wt||!m.isPlaying()||f.schedulePlayback(b,Wt,v,E,m.now(),k,c,e.playbackRate,z)})})}};function Rl(){f.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&p&&m.isPlaying()&&f.hasBoundedActiveSources()&&(f.stopAll(),Ko())}if(e.capturedTimeline){let c=ze(e.capturedTimeline,0);c>0&&m.setDuration(c),ct(e.capturedTimeline)}Qm(window),e.transportRafId=window.requestAnimationFrame(jo),St(),Ie(!0),e.controlBridgeHandler=Fl({onPlay:()=>{je.play(),Ge("composition_played",{time:je.getTime()})},onPause:()=>{je.pause(),Ge("composition_paused",{time:je.getTime()})},onStopMedia:()=>{f.stopAll();let c=document.querySelectorAll("video, audio");for(let h of c)ge(h)&&!h.paused&&h.pause()},onSeek:(c,h)=>{je.seek(c),Ge("composition_seeked",{time:c})},onSetMuted:c=>{e.bridgeMuted=c;let h=c||e.mediaOutputMuted;f.setMuted(h);let b=document.querySelectorAll("video, audio");for(let v of b)ge(v)&&(v.muted=h||v.defaultMuted)},onSetVolume:c=>{e.bridgeVolume=c,f.setVolume(c);let h=document.querySelectorAll("video, audio");for(let b of h){if(!ge(b))continue;let v=parseFloat(b.dataset.volume??""),E=Number.isFinite(v)?v:1;b.volume=Si(E*c)}},onSetMediaOutputMuted:c=>{e.mediaOutputMuted=c;let h=c||e.bridgeMuted;f.setMuted(h);let b=document.querySelectorAll("video, audio");for(let v of b)ge(v)&&(v.muted=h||v.defaultMuted)},onSetNativeMediaSyncDisabled:c=>{e.nativeMediaSyncDisabled!==c&&(e.nativeMediaSyncDisabled=c,e.mediaForceSyncNextTick=!0,c?(f.stopAll(),m.detachAudioSource()):He())},onSetWebAudioMediaDisabled:c=>{e.webAudioMediaDisabled!==c&&(e.webAudioMediaDisabled=c,e.mediaForceSyncNextTick=!0,c&&(f.stopAll(),m.detachAudioSource()),He())},onSetPlaybackRate:c=>{Vo(c),e.transportClock&&e.transportClock.setRate(e.playbackRate),Rl()},onSetIdleHeartbeat:c=>{xl=c,Ht()},onSetRootDuration:ig,onSetColorGrading:(c,h)=>{Ze.setGrading(c,h)},onSetColorGradingCompare:(c,h)=>{Ze.setCompare(c,h)},onTick:()=>{if(e.tornDown||!m.isPlaying())return;let c=m.now();if(e.currentTime=c,Ut(c),m.reachedEnd()){f.stopAll(),m.detachAudioSource(),m.pause(),e.isPlaying=!1;let h=m.getDuration();Number.isFinite(h)&&(m.seek(h),e.currentTime=h,Ut(h)),qe("pause"),He(),Ie(!0)}},onEnablePickMode:()=>ii.enablePickMode(),onDisablePickMode:()=>ii.disablePickMode(),onSetRuntimeData:_o,onClearRuntimeData:wo,getCanonicalFps:()=>e.canonicalFps});let Xo=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),Et!=null&&(window.clearTimeout(Et),Et=null),e.transportClock=null,f.destroy(),Gt!=null&&(window.clearTimeout(Gt),Gt=null),s!=null&&(window.cancelAnimationFrame(s),s=null),K0(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),o&&(window.removeEventListener("unhandledrejection",o),o=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),ii.disablePickMode();for(let c of e.deterministicAdapters)if(!(!c||typeof c.revert!="function"))try{c.revert()}catch(h){I("runtime.init.site12",h)}e.deterministicAdapters=[],window.__hf?.buildReady&&(window.__hf.buildReady={});for(let c of a.splice(0))try{c()}catch(h){I("runtime.init.site13",h)}for(let c of e.injectedCompStyles)try{c.remove()}catch(h){I("runtime.init.site14",h)}e.injectedCompStyles=[];for(let c of e.injectedCompLinks)try{c.remove()}catch(h){I("runtime.init.site15",h)}e.injectedCompLinks=[];for(let c of e.injectedCompScripts)try{c.remove()}catch(h){I("runtime.init.site16",h)}e.injectedCompScripts=[],e.capturedTimeline=null,t=()=>{},window.__hfRuntimeTeardown===Xo&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Xo,e.beforeUnloadHandler=Xo,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Qh=["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"],Iu=[[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 n_(e){if(e<=255)return Qh[e];let t=0,n=Iu.length-1;for(;t<=n;){let r=t+n>>1,i=Iu[r];if(e<i[0]){n=r-1;continue}if(e>i[1]){t=r+1;continue}return i[2]}return"L"}function r_(e){let t=e.length;if(t===0)return null;let n=new Array(t),r=!1;for(let l=0;l<t;){let d=e.charCodeAt(l),m=d,f=1;if(d>=55296&&d<=56319&&l+1<t){let g=e.charCodeAt(l+1);g>=56320&&g<=57343&&(m=(d-55296<<10)+(g-56320)+65536,f=2)}let p=n_(m);(p==="R"||p==="AL"||p==="AN")&&(r=!0);for(let g=0;g<f;g++)n[l+g]=p;l+=f}if(!r)return null;let i=0;for(let l=0;l<t;l++){let d=n[l];if(d==="L"){i=0;break}if(d==="R"||d==="AL"){i=1;break}}let o=new Int8Array(t);for(let l=0;l<t;l++)o[l]=i;let a=i&1?"R":"L",u=a,s=u;for(let l=0;l<t;l++)n[l]==="NSM"?n[l]=s:s=n[l];s=u;for(let l=0;l<t;l++){let d=n[l];d==="EN"?n[l]=s==="AL"?"AN":"EN":(d==="R"||d==="L"||d==="AL")&&(s=d)}for(let l=0;l<t;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<t-1;l++)n[l]==="ES"&&n[l-1]==="EN"&&n[l+1]==="EN"&&(n[l]="EN"),n[l]==="CS"&&(n[l-1]==="EN"||n[l-1]==="AN")&&n[l+1]===n[l-1]&&(n[l]=n[l-1]);for(let l=0;l<t;l++){if(n[l]!=="EN")continue;let d;for(d=l-1;d>=0&&n[d]==="ET";d--)n[d]="EN";for(d=l+1;d<t&&n[d]==="ET";d++)n[d]="EN"}for(let l=0;l<t;l++){let d=n[l];(d==="WS"||d==="ES"||d==="ET"||d==="CS")&&(n[l]="ON")}s=u;for(let l=0;l<t;l++){let d=n[l];d==="EN"?n[l]=s==="L"?"L":"EN":(d==="R"||d==="L")&&(s=d)}for(let l=0;l<t;l++){if(n[l]!=="ON")continue;let d=l+1;for(;d<t&&n[d]==="ON";)d++;let m=l>0?n[l-1]:u,f=d<t?n[d]:u,p=m!=="L"?"R":"L";if(p===(f!=="L"?"R":"L"))for(let y=l;y<d;y++)n[y]=p;l=d-1}for(let l=0;l<t;l++)n[l]==="ON"&&(n[l]=a);for(let l=0;l<t;l++){let d=n[l];(o[l]&1)===0?d==="R"?o[l]++:(d==="AN"||d==="EN")&&(o[l]+=2):(d==="L"||d==="AN"||d==="EN")&&o[l]++}return o}function Zh(e,t){let n=r_(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 i_=/[ \\t\\n\\r\\f]+/g,o_=/[\\t\\n\\r\\f]| {2,}|^ | $/;function a_(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function s_(e){if(!o_.test(e))return e;let t=e.replace(i_," ");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 u_(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var Pu=null,l_;function c_(){return Pu===null&&(Pu=new Intl.Segmenter(l_,{granularity:"word"})),Pu}var d_=/\\p{Script=Arabic}/u,Co=/\\p{M}/u,s0=/\\p{Nd}/u;function e0(e){return d_.test(e)}function t0(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 Qe(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(t0(i))return!0;t++;continue}}if(t0(n))return!0}}return!1}function f_(e){let t=ko(e);return t!==null&&(To.has(t)||Dt.has(t))}var m_=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function p_(e){return Qe(e)}function h_(e){let t=ko(e);return t!==null&&m_.has(t)}function Ro(e){return!f_(e)&&!h_(e)}var To=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"]),Xr=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Hu=new Set(["\'","\\u2019"]),Dt=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),g_=new Set([":",".","\\u060C","\\u061B"]),b_=new Set(["\\u104F"]),x_=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function y_(e){if(Gu(e))return!0;let t=!1;for(let n of e){if(Dt.has(n)){t=!0;continue}if(!(t&&Co.test(n)))return!1}return t}function v_(e){for(let t of e)if(!To.has(t)&&!Dt.has(t))return!1;return e.length>0}function S_(e){if(Gu(e))return!0;for(let t of e)if(!Xr.has(t)&&!Hu.has(t)&&!Co.test(t))return!1;return e.length>0}function Gu(e){let t=!1;for(let n of e)if(!(n==="\\\\"||Co.test(n))){if(Xr.has(n)||Dt.has(n)||Hu.has(n)){t=!0;continue}return!1}return t}function u0(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 ko(e){if(e.length===0)return null;let t=u0(e,e.length);return e.slice(t)}function E_(e){let t=Array.from(e),n=t.length;for(;n>0;){let r=t[n-1];if(Co.test(r)){n--;continue}if(Xr.has(r)||Hu.has(r)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function A_(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function n0(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 u=i.repeat(a);return e[r]=u,u}function r0(e,t){return e&&t!==null&&g_.has(t)}function __(e){let t=ko(e);return t!==null&&b_.has(t)}function w_(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 Mo(e){let t=e.length;for(;t>0;){let n=u0(e,t),r=e.slice(n,t);if(x_.has(r))return!0;if(!Dt.has(r))return!1;t=n}return!1}function C_(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 R_=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function $e(e){return e.length===1?e[0]:e.join("")}function T_(e,t){let n=[];for(let r=e.length-1;r>=0;r--)n.push(e[r]);return n.push(t),$e(n)}function k_(e,t,n,r){if(!R_.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let i=[],o=null,a=[],u=n,s=!1,l=0;for(let d of e){let m=C_(d,r),f=m==="text"&&t;if(o!==null&&m===o&&f===s){a.push(d),l+=d.length;continue}o!==null&&i.push({text:$e(a),isWordLike:s,kind:o,start:u}),o=m,a=[d],u=n+l,s=f,l+=d.length}return o!==null&&i.push({text:$e(a),isWordLike:s,kind:o,start:u}),i}function Ou(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var M_=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function F_(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:M_.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function L_(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function N_(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"||!F_(e,a))continue;let u=[t[a]],s=a+1;for(;s<e.len&&!Ou(r[s]);){u.push(t[s]),n[a]=!0;let l=t[s].includes("?");if(r[s]="text",t[s]="",s++,l)break}t[a]=$e(u)}let o=0;for(let a=0;a<t.length;a++){let u=t[a];u.length!==0&&(o!==a&&(t[o]=u,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 D_(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]),!L_(a))continue;let u=o+1;if(u>=e.len||Ou(e.kinds[u]))continue;let s=[],l=e.starts[u],d=u;for(;d<e.len&&!Ou(e.kinds[d]);)s.push(e.texts[d]),d++;s.length>0&&(t.push($e(s)),n.push(!0),r.push("text"),i.push(l),o=d-1)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}var I_=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),i0=/^[A-Za-z0-9_]+[,:;]*$/,o0=/[,:;]+$/;function l0(e){for(let t of e)if(s0.test(t))return!0;return!1}function Kr(e){if(e.length===0)return!1;for(let t of e)if(!(s0.test(t)||I_.has(t)))return!1;return!0}function P_(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],u=e.kinds[o];if(u==="text"&&Kr(a)&&l0(a)){let s=[a],l=o+1;for(;l<e.len&&e.kinds[l]==="text"&&Kr(e.texts[l]);)s.push(e.texts[l]),l++;t.push($e(s)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=l-1;continue}t.push(a),n.push(e.isWordLike[o]),r.push(u),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function O_(e){let t=[],n=[],r=[],i=[];for(let o=0;o<e.len;o++){let a=e.texts[o],u=e.kinds[o],s=e.isWordLike[o];if(u==="text"&&s&&i0.test(a)){let l=[a],d=o0.test(a),m=o+1;for(;d&&m<e.len&&e.kinds[m]==="text"&&e.isWordLike[m]&&i0.test(e.texts[m]);){let f=e.texts[m];l.push(f),d=o0.test(f),m++}t.push($e(l)),n.push(!0),r.push("text"),i.push(e.starts[o]),o=m-1;continue}t.push(a),n.push(s),r.push(u),i.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function H_(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 u=a.split("-"),s=u.length>1;for(let l=0;l<u.length;l++){let d=u[l];if(!s)break;(d.length===0||!l0(d)||!Kr(d))&&(s=!1)}if(s){let l=0;for(let d=0;d<u.length;d++){let m=u[d],f=d<u.length-1?`${m}-`:m;t.push(f),n.push(!0),r.push("text"),i.push(e.starts[o]+l),l+=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 G_(e){let t=[],n=[],r=[],i=[],o=0;for(;o<e.len;){let a=[e.texts[o]],u=e.isWordLike[o],s=e.kinds[o],l=e.starts[o];if(s==="glue"){let d=[a[0]],m=l;for(o++;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let f=$e(d);if(o<e.len&&e.kinds[o]==="text")a[0]=f,a.push(e.texts[o]),u=e.isWordLike[o],s="text",l=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 d=[];for(;o<e.len&&e.kinds[o]==="glue";)d.push(e.texts[o]),o++;let m=$e(d);if(o<e.len&&e.kinds[o]==="text"){a.push(m,e.texts[o]),u=u||e.isWordLike[o],o++;continue}a.push(m)}t.push($e(a)),n.push(u),r.push(s),i.push(l)}return{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function B_(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"||!Qe(t[o])||!Qe(t[o+1]))continue;let a=E_(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 a0(e,t,n){let r=c_(),i=0,o=[],a=[],u=[],s=[],l=[],d=[],m=[],f=[],p=[],g=[],y=[],x=[];for(let F of r.segment(e))for(let w of k_(F.segment,F.isWordLike??!1,F.index,n)){let H=function(){d[S]!==null&&(a[S]=[n0(o,d,m,S)],d[S]=null),a[S].push(w.text),u[S]=u[S]||w.isWordLike,f[S]=f[S]||N,p[S]=p[S]||W,g[S]=Y,y[S]=R,x[S]=r0(p[S],X)},_=w.kind==="text",T=A_(w.text,w.isWordLike,w.kind),N=Qe(w.text),W=e0(w.text),X=ko(w.text),Y=Mo(w.text),R=__(w.text),S=i-1;t.carryCJKAfterClosingQuote&&_&&i>0&&s[S]==="text"&&N&&f[S]&&g[S]||_&&i>0&&s[S]==="text"&&v_(w.text)&&f[S]||_&&i>0&&s[S]==="text"&&y[S]?H():_&&i>0&&s[S]==="text"&&w.isWordLike&&W&&x[S]?(H(),u[S]=!0):T!==null&&i>0&&s[S]==="text"&&d[S]===T?m[S]=(m[S]??1)+1:_&&!w.isWordLike&&i>0&&s[S]==="text"&&(y_(w.text)||w.text==="-"&&u[S])?H():(o[i]=w.text,a[i]=[w.text],u[i]=w.isWordLike,s[i]=w.kind,l[i]=w.start,d[i]=T,m[i]=T===null?0:1,f[i]=N,p[i]=W,g[i]=Y,y[i]=R,x[i]=r0(W,X),i++)}for(let F=0;F<i;F++){if(d[F]!==null){o[F]=n0(o,d,m,F);continue}o[F]=$e(a[F])}for(let F=1;F<i;F++)s[F]==="text"&&!u[F]&&Gu(o[F])&&s[F-1]==="text"&&(o[F-1]+=o[F],u[F-1]=u[F-1]||u[F],o[F]="");let A=Array.from({length:i},()=>null),M=-1;for(let F=i-1;F>=0;F--){let w=o[F];if(w.length!==0){if(s[F]==="text"&&!u[F]&&S_(w)&&M>=0&&s[M]==="text"){let _=A[M]??[];_.push(w),A[M]=_,l[M]=l[F],o[F]="";continue}M=F}}for(let F=0;F<i;F++){let w=A[F];w!=null&&(o[F]=T_(w,o[F]))}let C=0;for(let F=0;F<i;F++){let w=o[F];w.length!==0&&(C!==F&&(o[C]=w,u[C]=u[F],s[C]=s[F],l[C]=l[F]),C++)}o.length=C,u.length=C,s.length=C,l.length=C;let L=G_({len:C,texts:o,isWordLike:u,kinds:s,starts:l}),B=B_(O_(H_(P_(D_(N_(L))))));for(let F=0;F<B.len-1;F++){let w=w_(B.texts[F]);w!==null&&(B.kinds[F]!=="space"&&B.kinds[F]!=="preserved-space"||B.kinds[F+1]!=="text"||!e0(B.texts[F+1])||(B.texts[F]=w.space,B.isWordLike[F]=!1,B.kinds[F]=B.kinds[F]==="preserved-space"?"preserved-space":"space",B.texts[F+1]=w.marks+B.texts[F+1],B.starts[F+1]=B.starts[F]+w.space.length))}return B}function U_(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 W_(e){if(e.len<=1)return e;let t=[],n=[],r=[],i=[],o=null,a=!1,u=0,s=!1,l=!1;function d(){o!==null&&(t.push($e(o)),n.push(a),r.push("text"),i.push(u),o=null)}for(let m=0;m<e.len;m++){let f=e.texts[m],p=e.kinds[m],g=e.isWordLike[m],y=e.starts[m];if(p==="text"){let x=p_(f),A=Ro(f);if(o!==null&&s&&l){o.push(f),a=a||g,s=s||x,l=A;continue}d(),o=[f],a=g,u=y,s=x,l=A;continue}d(),t.push(f),n.push(g),r.push(p),i.push(y)}return d(),{len:t.length,texts:t,isWordLike:n,kinds:r,starts:i}}function c0(e,t,n="normal",r="normal"){let i=a_(n),o=i.mode==="pre-wrap"?u_(e):s_(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let a=r==="keep-all"?W_(a0(o,t,i)):a0(o,t,i);return{normalized:o,chunks:U_(a,i),...a}}var Ln=null,d0=new Map,Nn=null,V_=96,$_=/\\p{Emoji_Presentation}/u,z_=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Bu=null,f0=new Map;function Uu(){if(Ln!==null)return Ln;if(typeof OffscreenCanvas<"u")return Ln=new OffscreenCanvas(1,1).getContext("2d"),Ln;if(typeof document<"u")return Ln=document.createElement("canvas").getContext("2d"),Ln;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function q_(e){let t=d0.get(e);return t||(t=new Map,d0.set(e,t)),t}function vt(e,t){let n=t.get(e);return n===void 0&&(n={width:Uu().measureText(e).width,containsCJK:Qe(e)},t.set(e,n)),n}function Pt(){if(Nn!==null)return Nn;if(typeof navigator>"u")return Nn={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},Nn;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 Nn={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:r,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},Nn}function j_(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function m0(){return Bu===null&&(Bu=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Bu}function K_(e){return $_.test(e)||e.includes("\\uFE0F")}function p0(e){return z_.test(e)}function X_(e,t){let n=f0.get(e);if(n!==void 0)return n;let r=Uu();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 f0.set(e,n),n}function Y_(e){let t=0,n=m0();for(let r of n.segment(e))K_(r.segment)&&t++;return t}function J_(e,t){return t.emojiCount===void 0&&(t.emojiCount=Y_(e)),t.emojiCount}function It(e,t,n){return n===0?t.width:t.width-J_(e,t)*n}function h0(e,t,n,r,i){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=m0(),a=[];for(let d of o.segment(e))a.push(d.segment);if(a.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(i==="sum-graphemes"){let d=[];for(let m of a){let f=vt(m,n);d.push(It(m,f,r))}return t.breakableFitAdvances=d,t.breakableFitAdvances}if(i==="pair-context"||a.length>V_){let d=[],m=null,f=0;for(let p of a){let g=vt(p,n),y=It(p,g,r);if(m===null)d.push(y);else{let x=m+p,A=vt(x,n);d.push(It(x,A,r)-f)}m=p,f=y}return t.breakableFitAdvances=d,t.breakableFitAdvances}let u=[],s="",l=0;for(let d of a){s+=d;let m=vt(s,n),f=It(s,m,r);u.push(f-l),l=f}return t.breakableFitAdvances=u,t.breakableFitAdvances}function g0(e,t){let n=Uu();n.font=e;let r=q_(e),i=j_(e),o=t?X_(e,i):0;return{cache:r,fontSize:i,emojiCorrection:o}}function Q_(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 b0(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function x0(e,t,n,r,i){let o=0,a=t;for(;o<e.length;){let u=a+e[o];if((o+1<e.length?u+i:u)>n+r)break;a=u,o++}return{fitCount:o,fittedWidth:a}}function Z_(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 y0(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 v0(e,t){if(t.segmentIndex>=e.widths.length)return-1;let n=Z_(e,t.segmentIndex);return n<0?-1:y0(e,n,t)}function ew(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:y0(e,r,n)}function S0(e,t){return e.simpleLineWalkFastPath?E0(e,t):Wu(e,t)}function E0(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e;if(r.length===0)return 0;let u=Pt().lineFitEpsilon,s=t+u,l=0,d=0,m=!1,f=0,p=0,g=0,y=0,x=-1,A=0;function M(){x=-1,A=0}function C(T=g,N=y,W=d){l++,n?.({startSegmentIndex:f,startGraphemeIndex:p,endSegmentIndex:T,endGraphemeIndex:N,width:W}),d=0,m=!1,M()}function L(T,N){m=!0,f=T,p=0,g=T+1,y=0,d=N}function B(T,N,W){m=!0,f=T,p=N,g=T,y=N+1,d=W}function F(T,N){if(!m){L(T,N);return}d+=N,g=T+1,y=0}function w(T,N){let W=o[T];for(let X=N;X<W.length;X++){let Y=W[X];m?d+Y>s?(C(),B(T,X,Y)):(d+=Y,g=T,y=X+1):B(T,X,Y)}m&&g===T&&y===W.length&&(g=T+1,y=0)}let _=0;for(;_<r.length&&!(!m&&(_=Q_(e,_),_>=r.length));){let T=r[_],N=i[_],W=N==="space"||N==="preserved-space"||N==="tab"||N==="zero-width-break"||N==="soft-hyphen";if(!m){T>t&&o[_]!==null?w(_,0):L(_,T),W&&(x=_+1,A=d-T),_++;continue}if(d+T>s){if(W){F(_,T),C(_+1,0,d-T),_++;continue}if(x>=0){if(g>x||g===x&&y>0){C();continue}C(x,0,A);continue}if(T>t&&o[_]!==null){C(),w(_,0),_++;continue}C();continue}F(_,T),W&&(x=_+1,A=d-T),_++}return m&&C(),l}function Wu(e,t,n){if(e.simpleLineWalkFastPath)return E0(e,t,n);let{widths:r,lineEndFitAdvances:i,lineEndPaintAdvances:o,kinds:a,breakableFitAdvances:u,discretionaryHyphenWidth:s,tabStopAdvance:l,chunks:d}=e;if(r.length===0||d.length===0)return 0;let m=Pt(),f=m.lineFitEpsilon,p=t+f,g=0,y=0,x=!1,A=0,M=0,C=0,L=0,B=-1,F=0,w=0,_=null;function T(){B=-1,F=0,w=0,_=null}function N(U=C,V=L,$=y){g++,n?.({startSegmentIndex:A,startGraphemeIndex:M,endSegmentIndex:U,endGraphemeIndex:V,width:$}),y=0,x=!1,T()}function W(U,V){x=!0,A=U,M=0,C=U+1,L=0,y=V}function X(U,V,$){x=!0,A=U,M=V,C=U,L=V+1,y=$}function Y(U,V){if(!x){W(U,V);return}y+=V,C=U+1,L=0}function R(U,V,$,G){if(!V)return;let P=U==="tab"?0:i[$],O=U==="tab"?G:o[$];B=$+1,F=y-G+P,w=y-G+O,_=U}function S(U,V){let $=u[U];for(let G=V;G<$.length;G++){let P=$[G];x?y+P>p?(N(),X(U,G,P)):(y+=P,C=U,L=G+1):X(U,G,P)}x&&C===U&&L===$.length&&(C=U+1,L=0)}function H(U){if(_!=="soft-hyphen")return!1;let V=u[U];if(V==null)return!1;let{fitCount:$,fittedWidth:G}=x0(V,y,t,f,s);return $===0?!1:(y=G,C=U,L=$,T(),$===V.length?(C=U+1,L=0,!0):(N(U,$,G+s),S(U,$),!0))}function q(U){g++,n?.({startSegmentIndex:U.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:U.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),T()}for(let U=0;U<d.length;U++){let V=d[U];if(V.startSegmentIndex===V.endSegmentIndex){q(V);continue}x=!1,y=0,A=V.startSegmentIndex,M=0,C=V.startSegmentIndex,L=0,T();let $=V.startSegmentIndex;for(;$<V.endSegmentIndex;){let G=a[$],P=G==="space"||G==="preserved-space"||G==="tab"||G==="zero-width-break"||G==="soft-hyphen",O=G==="tab"?b0(y,l):r[$];if(G==="soft-hyphen"){x&&(C=$+1,L=0,B=$+1,F=y+s,w=y+s,_=G),$++;continue}if(!x){O>t&&u[$]!==null?S($,0):W($,O),R(G,P,$,O),$++;continue}if(y+O>p){let te=y+(G==="tab"?0:i[$]),ne=y+(G==="tab"?O:o[$]);if(_==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&F<=p){N(B,0,w);continue}if(_==="soft-hyphen"&&H($)){$++;continue}if(P&&te<=p){Y($,O),N($+1,0,ne),$++;continue}if(B>=0&&F<=p){if(C>B||C===B&&L>0){N();continue}let j=B;N(j,0,w),$=j;continue}if(O>t&&u[$]!==null){N(),S($,0),$++;continue}N();continue}Y($,O),R(G,P,$,O),$++}if(x){let G=B===V.consumedEndSegmentIndex?w:y;N(V.consumedEndSegmentIndex,0,G)}}return g}function A0(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:u,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:d,tabStopAdvance:m}=e,f=Pt(),p=f.lineFitEpsilon,g=r+p,y=0,x=!1,A=t.segmentIndex,M=t.graphemeIndex,C=-1,L=0,B=0,F=null;function w(){C=-1,L=0,B=0,F=null}function _(S=A,H=M,q=y){return x?(t.segmentIndex=S,t.graphemeIndex=H,q):null}function T(S,H){x=!0,A=S+1,M=0,y=H}function N(S,H,q){x=!0,A=S,M=H+1,y=q}function W(S,H){if(!x){T(S,H);return}y+=H,A=S+1,M=0}function X(S,H,q,U){if(!H)return;let V=S==="tab"?0:a[q],$=S==="tab"?U:u[q];C=q+1,L=y-U+V,B=y-U+$,F=S}function Y(S,H){let q=l[S];for(let U=H;U<q.length;U++){let V=q[U];if(!x)N(S,U,V);else{if(y+V>g)return _();y+=V,A=S,M=U+1}}return x&&A===S&&M===q.length&&(A=S+1,M=0),null}function R(S){if(F!=="soft-hyphen"||C<0)return null;let H=l[S]??null;if(H!==null){let{fitCount:q,fittedWidth:U}=x0(H,y,r,p,d);if(q===H.length)return y=U,A=S+1,M=0,w(),null;if(q>0)return _(S,q,U+d)}return L<=g?_(C,0,B):null}for(let S=t.segmentIndex;S<i.endSegmentIndex;S++){let H=s[S],q=H==="space"||H==="preserved-space"||H==="tab"||H==="zero-width-break"||H==="soft-hyphen",U=S===t.segmentIndex?t.graphemeIndex:0,V=H==="tab"?b0(y,m):o[S];if(H==="soft-hyphen"&&U===0){x&&(A=S+1,M=0,C=S+1,L=y+d,B=y+d,F=H);continue}if(!x){if(U>0){let G=Y(S,U);if(G!==null)return G}else if(V>r&&l[S]!==null){let G=Y(S,0);if(G!==null)return G}else T(S,V);X(H,q,S,V);continue}if(y+V>g){let G=y+(H==="tab"?0:a[S]),P=y+(H==="tab"?V:u[S]);if(F==="soft-hyphen"&&f.preferEarlySoftHyphenBreak&&L<=g)return _(C,0,B);let O=R(S);if(O!==null)return O;if(q&&G<=g)return W(S,V),_(S+1,0,P);if(C>=0&&L<=g)return A>C||A===C&&M>0?_():_(C,0,B);if(V>r&&l[S]!==null){let Z=_();if(Z!==null)return Z;let te=Y(S,0);if(te!==null)return te}return _()}W(S,V),X(H,q,S,V)}return C===i.consumedEndSegmentIndex&&M===0?_(i.consumedEndSegmentIndex,0,B):_(i.consumedEndSegmentIndex,0,y)}function tw(e,t,n){let{widths:r,kinds:i,breakableFitAdvances:o}=e,u=Pt().lineFitEpsilon,s=n+u,l=0,d=!1,m=t.segmentIndex,f=t.graphemeIndex,p=-1,g=0;for(let y=t.segmentIndex;y<r.length;y++){let x=r[y],A=i[y],M=A==="space"||A==="preserved-space"||A==="tab"||A==="zero-width-break"||A==="soft-hyphen",C=y===t.segmentIndex?t.graphemeIndex:0,L=o[y];if(!d){if(C>0||x>n&&L!==null){let B=L,F=B[C];d=!0,l=F,m=y,f=C+1;for(let w=C+1;w<B.length;w++){let _=B[w];if(l+_>s)return t.segmentIndex=m,t.graphemeIndex=f,l;l+=_,m=y,f=w+1}m===y&&f===B.length&&(m=y+1,f=0)}else d=!0,l=x,m=y+1,f=0;M&&(p=y+1,g=l-x);continue}if(l+x>s)return M?(t.segmentIndex=y+1,t.graphemeIndex=0,l):p>=0?m>p||m===p&&f>0?(t.segmentIndex=m,t.graphemeIndex=f,l):(t.segmentIndex=p,t.graphemeIndex=0,g):(t.segmentIndex=m,t.graphemeIndex=f,l);l+=x,m=y+1,f=0,M&&(p=y+1,g=l-x)}return d?(t.segmentIndex=m,t.graphemeIndex=f,l):null}function nw(e,t,n){let r=v0(e,t);return r<0?null:e.simpleLineWalkFastPath?tw(e,t,n):A0(e,t,r,n)}function _0(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=v0(e,n);for(;o>=0;){let a=A0(e,n,o,t);if(a===null)return{lineCount:r,maxLineWidth:i};r++,a>i&&(i=a),o=ew(e,o,n)}return{lineCount:r,maxLineWidth:i}}for(;;){let o=nw(e,n,t);if(o===null)return{lineCount:r,maxLineWidth:i};r++,o>i&&(i=o)}}var Vu=null;function rw(){return Vu===null&&(Vu=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Vu}function iw(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 ow(e,t){let n=[],r=[],i=0,o=!1,a=!1,u=!1;function s(){r.length!==0&&(n.push({text:r.length===1?r[0]:r.join(""),start:i}),r=[],o=!1,a=!1,u=!1)}function l(m,f,p){r=[m],i=f,o=p,a=Mo(m),u=Xr.has(m)}function d(m,f){r.push(m),o=o||f;let p=Mo(m);m.length===1&&Dt.has(m)?a=a||p:a=p,u=!1}for(let m of rw().segment(e)){let f=m.segment,p=Qe(f);if(r.length===0){l(f,m.index,p);continue}if(u||To.has(f)||Dt.has(f)||t.carryCJKAfterClosingQuote&&p&&a){d(f,p);continue}if(!o&&!p){d(f,p);continue}s(),l(f,m.index,p)}return s(),n}function aw(e){if(e.length<=1)return e;let t=[],n=[e[0].text],r=e[0].start,i=Qe(e[0].text),o=Ro(e[0].text);function a(){t.push({text:n.length===1?n[0]:n.join(""),start:r})}for(let u=1;u<e.length;u++){let s=e[u],l=Qe(s.text),d=Ro(s.text);if(i&&o){n.push(s.text),i=i||l,o=d;continue}a(),n=[s.text],r=s.start,i=l,o=d}return a(),t}function sw(e,t,n,r){let i=Pt(),{cache:o,emojiCorrection:a}=g0(t,p0(e.normalized)),u=It("-",vt("-",o),a),l=It(" ",vt(" ",o),a)*8;if(e.len===0)return iw(n);let d=[],m=[],f=[],p=[],g=e.chunks.length<=1,y=n?[]:null,x=[],A=n?[]:null,M=Array.from({length:e.len});function C(w,_,T,N,W,X,Y){W!=="text"&&W!=="space"&&W!=="zero-width-break"&&(g=!1),d.push(_),m.push(T),f.push(N),p.push(W),y?.push(X),x.push(Y),A!==null&&A.push(w)}function L(w,_,T,N,W){let X=vt(w,o),Y=It(w,X,a),R=_==="space"||_==="preserved-space"||_==="zero-width-break"?0:Y,S=_==="space"||_==="zero-width-break"?0:Y;if(W&&N&&w.length>1){let H="sum-graphemes";Kr(w)?H="pair-context":i.preferPrefixWidthsForBreakableRuns&&(H="segment-prefixes");let q=h0(w,X,o,a,H);C(w,Y,R,S,_,T,q);return}C(w,Y,R,S,_,T,null)}for(let w=0;w<e.len;w++){M[w]=d.length;let _=e.texts[w],T=e.isWordLike[w],N=e.kinds[w],W=e.starts[w];if(N==="soft-hyphen"){C(_,0,u,u,N,W,null);continue}if(N==="hard-break"){C(_,0,0,0,N,W,null);continue}if(N==="tab"){C(_,0,0,0,N,W,null);continue}let X=vt(_,o);if(N==="text"&&X.containsCJK){let Y=ow(_,i),R=r==="keep-all"?aw(Y):Y;for(let S=0;S<R.length;S++){let H=R[S];L(H.text,"text",W+H.start,T,r==="keep-all"||!Qe(H.text))}continue}L(_,N,W,T,!0)}let B=uw(e.chunks,M,d.length),F=y===null?null:Zh(e.normalized,y);return A!==null?{widths:d,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:B,segments:A}:{widths:d,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:p,simpleLineWalkFastPath:g,segLevels:F,breakableFitAdvances:x,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:B}}function uw(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,u=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,s=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;r.push({startSegmentIndex:a,endSegmentIndex:u,consumedEndSegmentIndex:s})}return r}function w0(e,t,n,r){let i=r?.wordBreak??"normal",o=c0(e,Pt(),r?.whiteSpace,i);return sw(o,t,n,i)}function Fo(e,t,n){return w0(e,t,!1,n)}function C0(e,t,n){return w0(e,t,!0,n)}function Lo(e,t,n){let r=S0(e,t);return{lineCount:r,height:r*n}}function lw(e){return{width:e.width,start:{segmentIndex:e.startSegmentIndex,graphemeIndex:e.startGraphemeIndex},end:{segmentIndex:e.endSegmentIndex,graphemeIndex:e.endGraphemeIndex}}}function cw(e,t,n){return e.widths.length===0?0:Wu(e,t,r=>{n(lw(r))})}function R0(e,t){return _0(e,t)}function T0(e){let t=0;return cw(e,Number.POSITIVE_INFINITY,n=>{n.width>t&&(t=n.width)}),t}var dw={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function k0(e,t){let n={...dw,...t},r=1.2;for(let i=n.baseFontSize;i>=n.minFontSize;i-=n.step){let o=`${n.fontWeight} ${i}px ${n.fontFamily}`,a=Fo(e,o),{lineCount:u}=Lo(a,n.maxWidth,i*r);if(u<=1)return{fontSize:i,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}var M0={prepare:Fo,layout:Lo,prepareWithSegments:C0,measureLineStats:R0,measureNaturalWidth:T0};function F0(e){return new URL(e,document.baseURI).href}window.__timelines=window.__timelines||{};cp();Nl();window.__hyperframes={assetUrl:F0,fitTextFontSize:k0,getVariables:Hl,pretext:M0,registerRuntimeDataHandler:Kh,setRuntimeData:_o,clearRuntimeData:wo};function L0(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Jh())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",L0,{once:!0}):L0();})();\n';
60851
60928
  }
60852
60929
  });
60853
60930
 
@@ -73885,20 +73962,20 @@ function trackChildProcess(proc) {
73885
73962
  proc.once("close", remove2);
73886
73963
  }
73887
73964
  function killTrackedProcesses() {
73888
- const alive = [];
73965
+ const alive2 = [];
73889
73966
  for (const proc of tracked) {
73890
73967
  if (!proc.killed) {
73891
73968
  try {
73892
73969
  proc.kill("SIGTERM");
73893
- alive.push(proc);
73970
+ alive2.push(proc);
73894
73971
  } catch {
73895
73972
  }
73896
73973
  }
73897
73974
  }
73898
73975
  tracked.clear();
73899
- if (alive.length === 0) return;
73976
+ if (alive2.length === 0) return;
73900
73977
  setTimeout(() => {
73901
- for (const proc of alive) {
73978
+ for (const proc of alive2) {
73902
73979
  try {
73903
73980
  proc.kill("SIGKILL");
73904
73981
  } catch {
@@ -91172,10 +91249,10 @@ function injectInterceptor(html, runtimeMode = "inline") {
91172
91249
  const inlinedRuntime = getHyperframeRuntimeScript();
91173
91250
  tag = `<script ${RUNTIME_BOOTSTRAP_ATTR}="1">${inlinedRuntime}</script>`;
91174
91251
  }
91175
- if (sanitized.includes("</head>")) {
91176
- return sanitized.replace("</head>", () => `${tag}
91177
- </head>`);
91178
- }
91252
+ const withHead = insertBeforeCloseTag(sanitized, "head", `${tag}
91253
+ `);
91254
+ if (withHead !== null)
91255
+ return withHead;
91179
91256
  const htmlOpenMatch = sanitized.match(/<html\b[^>]*>/i);
91180
91257
  if (htmlOpenMatch?.index != null) {
91181
91258
  const insertPos = htmlOpenMatch.index + htmlOpenMatch[0].length;
@@ -92362,6 +92439,7 @@ __export(compiler_exports, {
92362
92439
  injectTagsAtHeadStart: () => injectTagsAtHeadStart,
92363
92440
  inlineScriptRuns: () => inlineScriptRuns,
92364
92441
  inlineSubCompositions: () => inlineSubCompositions,
92442
+ insertBeforeCloseTag: () => insertBeforeCloseTag,
92365
92443
  isNonRelativeUrl: () => isNonRelativeUrl,
92366
92444
  isPathInside: () => isPathInside,
92367
92445
  parseHTMLContent: () => parseHTMLContent,
@@ -116358,7 +116436,7 @@ var init_chunk_45POWYFS = __esm({
116358
116436
  }
116359
116437
  });
116360
116438
 
116361
- // ../studio-server/dist/chunk-5PGWTBCL.js
116439
+ // ../studio-server/dist/chunk-X3T65KC2.js
116362
116440
  import { resolve as resolve21 } from "path";
116363
116441
  function isAutoProxyEnabled(adapter2) {
116364
116442
  return adapter2.autoProxy !== false;
@@ -116370,12 +116448,6 @@ function proxyEtagSalt(raw) {
116370
116448
  if (raw === void 0) return "";
116371
116449
  return `:proxy:${raw}:${PROXY_PARAMS_VERSION}`;
116372
116450
  }
116373
- function injectScriptTagIntoHead(html, scriptTag) {
116374
- if (html.includes("</head>")) return html.replace("</head>", `${scriptTag}
116375
- </head>`);
116376
- return `${scriptTag}
116377
- ${html}`;
116378
- }
116379
116451
  async function injectMediaCodecMapIntoHtml(html, projectDir, htmlSources, probeCache) {
116380
116452
  let map;
116381
116453
  try {
@@ -116400,17 +116472,20 @@ async function injectMediaCodecMapIntoHtml(html, projectDir, htmlSources, probeC
116400
116472
  }
116401
116473
  const json = JSON.stringify(map).replace(/</g, "\\u003c").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
116402
116474
  const tag = `<script data-hf-media-codec-map>window.__HF_MEDIA_CODEC_MAP__=${json};</script>`;
116403
- return injectScriptTagIntoHead(html, tag);
116475
+ return insertBeforeCloseTag(html, "head", `${tag}
116476
+ `) ?? `${tag}
116477
+ ${html}`;
116404
116478
  }
116405
116479
  async function injectMediaCodecMap(html, adapter2, projectDir, compSrcPath, probeCache) {
116406
116480
  if (!isAutoProxyEnabled(adapter2)) return html;
116407
116481
  return injectMediaCodecMapIntoHtml(html, projectDir, [{ html, compSrcPath }], probeCache);
116408
116482
  }
116409
- var init_chunk_5PGWTBCL = __esm({
116410
- "../studio-server/dist/chunk-5PGWTBCL.js"() {
116483
+ var init_chunk_X3T65KC2 = __esm({
116484
+ "../studio-server/dist/chunk-X3T65KC2.js"() {
116411
116485
  "use strict";
116412
116486
  init_chunk_45POWYFS();
116413
116487
  init_chunk_4MNTZVVZ();
116488
+ init_htmlDocument();
116414
116489
  }
116415
116490
  });
116416
116491
 
@@ -123316,11 +123391,11 @@ import { basename as basename22, dirname as dirname52, extname as extname22, joi
123316
123391
  import { existsSync as existsSync102, readFileSync as readFileSync142 } from "fs";
123317
123392
  import { homedir as homedir10 } from "os";
123318
123393
  import { join as join152 } from "path";
123319
- import { randomUUID as randomUUID72 } from "crypto";
123394
+ import { randomUUID as randomUUID82 } from "crypto";
123320
123395
  import { rm as rm2 } from "fs/promises";
123321
- import { existsSync as existsSync122, mkdirSync as mkdirSync102, readFileSync as readFileSync172 } from "fs";
123396
+ import { existsSync as existsSync122, mkdirSync as mkdirSync112, readFileSync as readFileSync182 } from "fs";
123322
123397
  import { homedir as homedir22 } from "os";
123323
- import { join as join182, relative as relative42, resolve as resolve72, sep as sep32 } from "path";
123398
+ import { join as join192, relative as relative42, resolve as resolve72, sep as sep32 } from "path";
123324
123399
  import { createHash as createHash62, randomUUID as randomUUID52 } from "crypto";
123325
123400
  import { constants as constants32, createReadStream as createReadStream22 } from "fs";
123326
123401
  import { copyFile as copyFile2, mkdir, readdir, readFile as readFile22, rename as rename2, rm as rm3, stat } from "fs/promises";
@@ -123328,11 +123403,14 @@ import { dirname as dirname62, join as join162 } from "path";
123328
123403
  import { randomUUID as randomUUID62 } from "crypto";
123329
123404
  import { existsSync as existsSync112, mkdirSync as mkdirSync82, readFileSync as readFileSync152, writeFileSync as writeFileSync72 } from "fs";
123330
123405
  import { join as join172, resolve as resolve62 } from "path";
123331
- import { closeSync as closeSync52, constants as constants42, mkdirSync as mkdirSync92, openSync as openSync52, readFileSync as readFileSync162, writeSync as writeSync22 } from "fs";
123406
+ import { randomUUID as randomUUID72 } from "crypto";
123407
+ import { linkSync as linkSync4, mkdirSync as mkdirSync92, readFileSync as readFileSync162, rmSync as rmSync52, writeFileSync as writeFileSync82 } from "fs";
123408
+ import { join as join182 } from "path";
123409
+ import { closeSync as closeSync52, constants as constants42, mkdirSync as mkdirSync102, openSync as openSync52, readFileSync as readFileSync172, writeSync as writeSync22 } from "fs";
123332
123410
  import { dirname as dirname72 } from "path";
123333
123411
  import { createHash as createHash72 } from "crypto";
123334
- import { mkdirSync as mkdirSync112, readFileSync as readFileSync182, readdirSync as readdirSync72, rmSync as rmSync52 } from "fs";
123335
- import { join as join192 } from "path";
123412
+ import { mkdirSync as mkdirSync122, readFileSync as readFileSync192, readdirSync as readdirSync72, rmSync as rmSync62 } from "fs";
123413
+ import { join as join202 } from "path";
123336
123414
  function shouldIgnoreDir(rel) {
123337
123415
  return rel === ".hyperframes/backup";
123338
123416
  }
@@ -124640,8 +124718,8 @@ async function prepareGsapMutationScript(c3, res, firstMutation) {
124640
124718
  `window.__timelines["${compId}"] = tl;`,
124641
124719
  "</script>"
124642
124720
  ].join("\n");
124643
- html = html.includes("</body>") ? html.replace("</body>", `${bootstrap}
124644
- </body>`) : `${html}
124721
+ html = insertBeforeCloseTag(html, "body", `${bootstrap}
124722
+ `) ?? `${html}
124645
124723
  ${bootstrap}`;
124646
124724
  block = extractGsapScriptBlock(html);
124647
124725
  }
@@ -126472,9 +126550,8 @@ function injectProjectSignature(html, signature) {
126472
126550
  tag
126473
126551
  );
126474
126552
  }
126475
- if (html.includes("</head>")) return html.replace("</head>", `${tag}
126476
- </head>`);
126477
- return `${tag}
126553
+ return insertBeforeCloseTag(html, "head", `${tag}
126554
+ `) ?? `${tag}
126478
126555
  ${html}`;
126479
126556
  }
126480
126557
  function readStudioMotionManifestContent(projectDir) {
@@ -126498,10 +126575,9 @@ function parseStudioMotionManifestContent(content) {
126498
126575
  return { hasMotion: false, hasCustomEase: false };
126499
126576
  }
126500
126577
  }
126501
- function injectScriptTagIntoHead2(html, scriptTag) {
126502
- if (html.includes("</head>")) return html.replace("</head>", `${scriptTag}
126503
- </head>`);
126504
- return `${scriptTag}
126578
+ function injectScriptTagIntoHead(html, scriptTag) {
126579
+ return insertBeforeCloseTag(html, "head", `${scriptTag}
126580
+ `) ?? `${scriptTag}
126505
126581
  ${html}`;
126506
126582
  }
126507
126583
  function htmlHasGsap(html) {
@@ -126527,15 +126603,15 @@ function injectMotionPathPluginIfNeeded(html) {
126527
126603
  const end = html.indexOf(match[0]) + match[0].length;
126528
126604
  return html.slice(0, end) + "\n" + pluginTag + html.slice(end);
126529
126605
  }
126530
- return injectScriptTagIntoHead2(html, GSAP_MOTION_PATH_CDN_SCRIPT);
126606
+ return injectScriptTagIntoHead(html, GSAP_MOTION_PATH_CDN_SCRIPT);
126531
126607
  }
126532
126608
  function injectStudioMotionDependencies(html, manifestContent) {
126533
126609
  const manifest = parseStudioMotionManifestContent(manifestContent);
126534
126610
  if (!manifest.hasMotion) return html;
126535
126611
  let next = html;
126536
- if (!htmlHasGsap(next)) next = injectScriptTagIntoHead2(next, GSAP_CDN_SCRIPT);
126612
+ if (!htmlHasGsap(next)) next = injectScriptTagIntoHead(next, GSAP_CDN_SCRIPT);
126537
126613
  if (manifest.hasCustomEase && !htmlHasCustomEase(next)) {
126538
- next = injectScriptTagIntoHead2(next, GSAP_CUSTOM_EASE_CDN_SCRIPT);
126614
+ next = injectScriptTagIntoHead(next, GSAP_CUSTOM_EASE_CDN_SCRIPT);
126539
126615
  }
126540
126616
  return next;
126541
126617
  }
@@ -126646,8 +126722,8 @@ function registerPreviewRoutes(api, adapter2) {
126646
126722
  }
126647
126723
  if (!bundled.includes("hyperframe.runtime") && !bundled.includes("hyperframes-preview-runtime")) {
126648
126724
  const runtimeTag = `<script src="${adapter2.runtimeUrl}"></script>`;
126649
- bundled = bundled.includes("</body>") ? bundled.replace("</body>", `${runtimeTag}
126650
- </body>`) : bundled + `
126725
+ bundled = insertBeforeCloseTag(bundled, "body", `${runtimeTag}
126726
+ `) ?? `${bundled}
126651
126727
  ${runtimeTag}`;
126652
126728
  }
126653
126729
  const baseHref = `/api/projects/${project.id}/preview/`;
@@ -128077,6 +128153,74 @@ function projectHistoryId(projectDir, historyRoot) {
128077
128153
  writeFileSync72(join172(historyRoot, id, "project.json"), JSON.stringify({ dir }));
128078
128154
  return id;
128079
128155
  }
128156
+ function alive(pid) {
128157
+ if (!Number.isInteger(pid) || pid <= 0) return false;
128158
+ try {
128159
+ process.kill(pid, 0);
128160
+ return true;
128161
+ } catch (error) {
128162
+ return error.code === "EPERM";
128163
+ }
128164
+ }
128165
+ function ownerOf(file) {
128166
+ try {
128167
+ const text22 = readFileSync162(file, "utf-8");
128168
+ return /^\d+$/.test(text22) ? Number(text22) : Number.NaN;
128169
+ } catch (error) {
128170
+ if (error.code === "ENOENT") return null;
128171
+ throw error;
128172
+ }
128173
+ }
128174
+ function claim(file) {
128175
+ const draft = `${file}-${randomUUID72()}.tmp`;
128176
+ writeFileSync82(draft, String(process.pid));
128177
+ try {
128178
+ linkSync4(draft, file);
128179
+ return true;
128180
+ } catch (error) {
128181
+ if (error.code !== "EEXIST") throw error;
128182
+ return false;
128183
+ } finally {
128184
+ rmSync52(draft, { force: true });
128185
+ }
128186
+ }
128187
+ function releaseOwn(file) {
128188
+ if (ownerOf(file) === process.pid) rmSync52(file, { force: true });
128189
+ }
128190
+ function evictDeadOwner(file) {
128191
+ const evictor = `${file}.evict`;
128192
+ if (!claim(evictor)) {
128193
+ const holder = ownerOf(evictor);
128194
+ if (holder !== null && !alive(holder)) rmSync52(evictor, { force: true });
128195
+ return false;
128196
+ }
128197
+ try {
128198
+ const pid = ownerOf(file);
128199
+ if (pid !== null && !alive(pid)) rmSync52(file, { force: true });
128200
+ return true;
128201
+ } finally {
128202
+ releaseOwn(evictor);
128203
+ }
128204
+ }
128205
+ async function takeHistoryOwnership(home, waitMs) {
128206
+ const file = join182(home, "owner.pid");
128207
+ const deadline = Date.now() + waitMs;
128208
+ mkdirSync92(home, { recursive: true });
128209
+ for (; ; ) {
128210
+ if (claim(file)) {
128211
+ let held = true;
128212
+ return () => {
128213
+ if (held) releaseOwn(file);
128214
+ held = false;
128215
+ };
128216
+ }
128217
+ const pid = ownerOf(file);
128218
+ if (pid === null) continue;
128219
+ if (!alive(pid) && evictDeadOwner(file)) continue;
128220
+ if (Date.now() >= deadline) throw new HistoryBusyError(pid);
128221
+ await new Promise((settle) => setTimeout(settle, 50));
128222
+ }
128223
+ }
128080
128224
  function parseRecord(line3) {
128081
128225
  try {
128082
128226
  return JSON.parse(line3);
@@ -128087,7 +128231,7 @@ function parseRecord(line3) {
128087
128231
  function readLog(file, onUnreadable) {
128088
128232
  let text22;
128089
128233
  try {
128090
- text22 = readFileSync162(file, "utf-8");
128234
+ text22 = readFileSync172(file, "utf-8");
128091
128235
  } catch {
128092
128236
  return null;
128093
128237
  }
@@ -128127,7 +128271,7 @@ function writeLog(file, log2) {
128127
128271
  ...log2.entries.map((entry) => ({ type: "entry", entry })),
128128
128272
  ...[...log2.pins].map((id) => ({ type: "pin", id, pinned: true }))
128129
128273
  ];
128130
- mkdirSync92(dirname72(file), { recursive: true });
128274
+ mkdirSync102(dirname72(file), { recursive: true });
128131
128275
  replaceFileAtomically(file, records.map((r) => `${JSON.stringify(r)}
128132
128276
  `).join(""), 420);
128133
128277
  }
@@ -128199,10 +128343,23 @@ function addChange(group, path, before3, after2) {
128199
128343
  }
128200
128344
  async function openProjectHistory(options) {
128201
128345
  const projectId = projectHistoryId(options.projectDir, options.historyRoot);
128202
- const blobs = await openBlobStore(join182(options.historyRoot, projectId, "blobs"));
128203
- const engine = new Engine(options, projectId, blobs);
128204
- await engine.queue(() => engine.start());
128205
- return engine.api();
128346
+ const release5 = await takeHistoryOwnership(
128347
+ join192(options.historyRoot, projectId),
128348
+ options.ownerWaitMs ?? 5e3
128349
+ );
128350
+ try {
128351
+ const blobs = await openBlobStore(join192(options.historyRoot, projectId, "blobs"));
128352
+ const engine = new Engine(options, projectId, blobs);
128353
+ await engine.queue(() => engine.start());
128354
+ const api = engine.api();
128355
+ return {
128356
+ ...api,
128357
+ close: () => api.close().finally(release5)
128358
+ };
128359
+ } catch (error) {
128360
+ release5();
128361
+ throw error;
128362
+ }
128206
128363
  }
128207
128364
  function duplicateElementInHtml(source, target, newId, at4) {
128208
128365
  const { document: document2, wrappedFragment } = parseSourceDocument(source);
@@ -128253,23 +128410,23 @@ function numericAttribute2(element, name) {
128253
128410
  return Number.isFinite(value) ? value : null;
128254
128411
  }
128255
128412
  function createPreviewDocumentStore(dir, salt) {
128256
- const fileFor = (key2) => join192(dir, `${createHash72("sha256").update(`${salt}
128413
+ const fileFor = (key2) => join202(dir, `${createHash72("sha256").update(`${salt}
128257
128414
  ${key2}`).digest("hex").slice(0, 32)}.html`);
128258
128415
  return {
128259
128416
  read(key2) {
128260
128417
  try {
128261
- return readFileSync182(fileFor(key2), "utf-8");
128418
+ return readFileSync192(fileFor(key2), "utf-8");
128262
128419
  } catch {
128263
128420
  return null;
128264
128421
  }
128265
128422
  },
128266
128423
  write(key2, html) {
128267
128424
  try {
128268
- mkdirSync112(dir, { recursive: true });
128425
+ mkdirSync122(dir, { recursive: true });
128269
128426
  const file = fileFor(key2);
128270
128427
  replaceFileAtomically(file, html, 420);
128271
128428
  for (const name of readdirSync72(dir)) {
128272
- if (join192(dir, name) !== file) rmSync52(join192(dir, name), { force: true });
128429
+ if (join202(dir, name) !== file) rmSync62(join202(dir, name), { force: true });
128273
128430
  }
128274
128431
  } catch {
128275
128432
  }
@@ -128340,14 +128497,14 @@ function updateBackgroundRemovalProgress(state, event) {
128340
128497
  state.framesProcessed = event.index;
128341
128498
  state.avgMsPerFrame = event.avgMsPerFrame;
128342
128499
  }
128343
- var IGNORE_DIRS, isCompositionSource, STAMP_RECORD, contentHash, SIGNATURE_TEXT_EXTENSIONS, SIGNATURE_EXCLUDED_DIRS, MAX_SIGNATURE_TEXT_BYTES, STUDIO_SIGNATURE_MANIFEST_PATHS, projectSignatureCache, MIME_TYPES2, SAMPLE_RATE, PEAK_COUNT, WAVEFORM_CACHE_VERSION, VIDEO_EXT2, AUDIO_EXT2, DEFAULT_KEEP_PER_FILE, RECEIPT_TTL_MS, receipts, DELETED_VERSION, consumeFileWriteReceipt, CompositionInsertionError, differential, behavioral, GSAP_MUTATION_CAPABILITIES, GSAP_WRITER_MIGRATION, atomicCutTail, HOLD_SYNC_MUTATION_TYPES, REGEXP_SPECIALS, NON_RENDERED_TAGS3, VARIABLES_PAYLOAD_ERROR, PROJECT_SIGNATURE_META, GSAP_CDN_VERSION, GSAP_CDN_SCRIPT, GSAP_CUSTOM_EASE_CDN_SCRIPT, GSAP_MOTION_PATH_CDN_SCRIPT, GSAP_CDN_FALLBACK_SCRIPT, PREVIEW_BUNDLE_OPTIONS, VALID_RESOLUTIONS, ROOT_COMPOSITION, COMPOSITION_SRC, inputSignatures, ThumbnailGenerationCoordinator, thumbnailGenerationCoordinator, THUMBNAIL_CACHE_VERSION, THUMBNAIL_MAX_OUTPUT_WIDTH, THUMBNAIL_MAX_OUTPUT_HEIGHT, THUMBNAIL_CACHE_MAX_BYTES, THUMBNAIL_CACHE_MAX_AGE_MS, prunedCacheDirs, MAX_FONT_RESULTS, GOOGLE_FONTS_METADATA_URL, GOOGLE_FONTS_FETCH_TIMEOUT_MS, cachedFonts, cachedGoogleFonts, GOOGLE_FONT_FALLBACKS, VIDEO_EXTENSIONS2, IMAGE_EXTENSIONS, VIDEO_OUTPUT_EXTENSIONS, QUALITIES, DEVICES, YOU, MAX_WINDOW_IDLE_MS, text, BLOB_HASH, ID_PATH, ID_SHAPE, START2, DEFAULT_HISTORY_ROOT, OUTSIDE, OUTSIDE_LABEL, RACY_MS, statKey, sameWho, Engine;
128500
+ var IGNORE_DIRS, isCompositionSource, STAMP_RECORD, contentHash, SIGNATURE_TEXT_EXTENSIONS, SIGNATURE_EXCLUDED_DIRS, MAX_SIGNATURE_TEXT_BYTES, STUDIO_SIGNATURE_MANIFEST_PATHS, projectSignatureCache, MIME_TYPES2, SAMPLE_RATE, PEAK_COUNT, WAVEFORM_CACHE_VERSION, VIDEO_EXT2, AUDIO_EXT2, DEFAULT_KEEP_PER_FILE, RECEIPT_TTL_MS, receipts, DELETED_VERSION, consumeFileWriteReceipt, CompositionInsertionError, differential, behavioral, GSAP_MUTATION_CAPABILITIES, GSAP_WRITER_MIGRATION, atomicCutTail, HOLD_SYNC_MUTATION_TYPES, REGEXP_SPECIALS, NON_RENDERED_TAGS3, VARIABLES_PAYLOAD_ERROR, PROJECT_SIGNATURE_META, GSAP_CDN_VERSION, GSAP_CDN_SCRIPT, GSAP_CUSTOM_EASE_CDN_SCRIPT, GSAP_MOTION_PATH_CDN_SCRIPT, GSAP_CDN_FALLBACK_SCRIPT, PREVIEW_BUNDLE_OPTIONS, VALID_RESOLUTIONS, ROOT_COMPOSITION, COMPOSITION_SRC, inputSignatures, ThumbnailGenerationCoordinator, thumbnailGenerationCoordinator, THUMBNAIL_CACHE_VERSION, THUMBNAIL_MAX_OUTPUT_WIDTH, THUMBNAIL_MAX_OUTPUT_HEIGHT, THUMBNAIL_CACHE_MAX_BYTES, THUMBNAIL_CACHE_MAX_AGE_MS, prunedCacheDirs, MAX_FONT_RESULTS, GOOGLE_FONTS_METADATA_URL, GOOGLE_FONTS_FETCH_TIMEOUT_MS, cachedFonts, cachedGoogleFonts, GOOGLE_FONT_FALLBACKS, VIDEO_EXTENSIONS2, IMAGE_EXTENSIONS, VIDEO_OUTPUT_EXTENSIONS, QUALITIES, DEVICES, YOU, MAX_WINDOW_IDLE_MS, text, BLOB_HASH, ID_PATH, ID_SHAPE, HistoryBusyError, START2, DEFAULT_HISTORY_ROOT, OUTSIDE, OUTSIDE_LABEL, RACY_MS, statKey, sameWho, Engine;
128344
128501
  var init_dist9 = __esm({
128345
128502
  "../studio-server/dist/index.js"() {
128346
128503
  "use strict";
128347
128504
  init_chunk_X62ASOGO();
128348
128505
  init_chunk_QYDRVMJ6();
128349
128506
  init_chunk_W2SBTCO2();
128350
- init_chunk_5PGWTBCL();
128507
+ init_chunk_X3T65KC2();
128351
128508
  init_chunk_45POWYFS();
128352
128509
  init_chunk_4MNTZVVZ();
128353
128510
  init_chunk_6XMC64FJ();
@@ -128362,6 +128519,7 @@ var init_dist9 = __esm({
128362
128519
  init_esm10();
128363
128520
  init_hfIds();
128364
128521
  init_esm10();
128522
+ init_htmlDocument();
128365
128523
  init_compiler();
128366
128524
  init_assetResolution();
128367
128525
  init_esm10();
@@ -128751,8 +128909,16 @@ var init_dist9 = __esm({
128751
128909
  BLOB_HASH = /^[0-9a-f]{64}$/;
128752
128910
  ID_PATH = join172(".hyperframes", "history-id");
128753
128911
  ID_SHAPE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
128912
+ HistoryBusyError = class extends Error {
128913
+ constructor(pid) {
128914
+ super(`This project's history is open in another process (pid ${pid}).`);
128915
+ this.pid = pid;
128916
+ this.name = "HistoryBusyError";
128917
+ }
128918
+ pid;
128919
+ };
128754
128920
  START2 = "start";
128755
- DEFAULT_HISTORY_ROOT = join182(homedir22(), ".cache", "hyperframes", "history");
128921
+ DEFAULT_HISTORY_ROOT = join192(homedir22(), ".cache", "hyperframes", "history");
128756
128922
  OUTSIDE = { kind: "outside", name: "Outside" };
128757
128923
  OUTSIDE_LABEL = "Changed outside the app";
128758
128924
  RACY_MS = 2e3;
@@ -128764,7 +128930,7 @@ var init_dist9 = __esm({
128764
128930
  this.projectId = projectId;
128765
128931
  this.blobs = blobs;
128766
128932
  this.dir = resolve72(options.projectDir);
128767
- this.home = join182(options.historyRoot, projectId);
128933
+ this.home = join192(options.historyRoot, projectId);
128768
128934
  }
128769
128935
  options;
128770
128936
  projectId;
@@ -128784,7 +128950,7 @@ var init_dist9 = __esm({
128784
128950
  listeners = /* @__PURE__ */ new Set();
128785
128951
  tail = Promise.resolve();
128786
128952
  get logFile() {
128787
- return join182(this.home, "log.jsonl");
128953
+ return join192(this.home, "log.jsonl");
128788
128954
  }
128789
128955
  now() {
128790
128956
  return (this.options.now ?? Date.now)();
@@ -128817,7 +128983,7 @@ var init_dist9 = __esm({
128817
128983
  const sweptAt = Date.now();
128818
128984
  for (const file of listProjectFiles(this.dir))
128819
128985
  this.tracked.set(file.path, {
128820
- hash: await this.blobs.put(join182(this.dir, file.path)),
128986
+ hash: await this.blobs.put(join192(this.dir, file.path)),
128821
128987
  stat: statKey(file, sweptAt)
128822
128988
  });
128823
128989
  this.log.baseline = this.manifest();
@@ -128829,7 +128995,7 @@ var init_dist9 = __esm({
128829
128995
  }
128830
128996
  readStatCache() {
128831
128997
  try {
128832
- const files = JSON.parse(readFileSync172(join182(this.home, "stat.json"), "utf-8"));
128998
+ const files = JSON.parse(readFileSync182(join192(this.home, "stat.json"), "utf-8"));
128833
128999
  return new Map(Object.entries(files));
128834
129000
  } catch {
128835
129001
  return /* @__PURE__ */ new Map();
@@ -128837,8 +129003,8 @@ var init_dist9 = __esm({
128837
129003
  }
128838
129004
  saveStatCache() {
128839
129005
  const files = JSON.stringify(Object.fromEntries(this.tracked));
128840
- mkdirSync102(this.home, { recursive: true });
128841
- replaceFileAtomically(join182(this.home, "stat.json"), files, 420);
129006
+ mkdirSync112(this.home, { recursive: true });
129007
+ replaceFileAtomically(join192(this.home, "stat.json"), files, 420);
128842
129008
  }
128843
129009
  /**
128844
129010
  * Takes in every write since the last sweep and files each change to its writer. ponytail: always the whole
@@ -128863,7 +129029,7 @@ var init_dist9 = __esm({
128863
129029
  /** The file's hash once copied in; null when it was removed before the copy (the next sweep records that). */
128864
129030
  async storeIfPresent(path) {
128865
129031
  try {
128866
- return await this.blobs.put(join182(this.dir, path));
129032
+ return await this.blobs.put(join192(this.dir, path));
128867
129033
  } catch (error) {
128868
129034
  if (error.code === "ENOENT") return null;
128869
129035
  throw error;
@@ -128988,7 +129154,7 @@ var init_dist9 = __esm({
128988
129154
  return this.outside;
128989
129155
  }
128990
129156
  newGroup(who, label2) {
128991
- return { id: randomUUID72(), who, label: label2, startedAt: this.now(), changes: /* @__PURE__ */ new Map() };
129157
+ return { id: randomUUID82(), who, label: label2, startedAt: this.now(), changes: /* @__PURE__ */ new Map() };
128992
129158
  }
128993
129159
  async commitOutside() {
128994
129160
  clearTimeout(this.quietTimer);
@@ -129102,7 +129268,7 @@ var init_dist9 = __esm({
129102
129268
  }
129103
129269
  /** Writes one project file (null deletes it), first leaving the running operation's receipt for its echo. */
129104
129270
  async writeProjectFile(path, hash2) {
129105
- const absPath = join182(this.dir, path);
129271
+ const absPath = join192(this.dir, path);
129106
129272
  const { writeToken } = this;
129107
129273
  if (writeToken) {
129108
129274
  const version2 = hash2 === null ? DELETED_VERSION : hashVersion(hash2);
@@ -141372,9 +141538,7 @@ function injectSdkPositionEditsRenderScript(html) {
141372
141538
  }
141373
141539
  const scriptBody = getPositionEditsRenderScript().replace(/<\/script/gi, "<\\/script");
141374
141540
  const script = `<script>${scriptBody}</script>`;
141375
- const bodyClose = html.search(/<\/body\s*>/i);
141376
- if (bodyClose < 0) return `${html}${script}`;
141377
- return `${html.slice(0, bodyClose)}${script}${html.slice(bodyClose)}`;
141541
+ return insertBeforeCloseTag(html, "body", script) ?? `${html}${script}`;
141378
141542
  }
141379
141543
  function assertSubCompositionsUsable(html, projectDir, visited = /* @__PURE__ */ new Set()) {
141380
141544
  const { document: document2 } = parseHTML(html);
@@ -142440,10 +142604,11 @@ async function compileForRender(projectDir, htmlPath, downloadDir, options = {})
142440
142604
  'data-hf-studio-motion="'
142441
142605
  ];
142442
142606
  const hasPositionEdits = HF_POSITION_ATTRS.some((attr2) => assembledHtml.includes(attr2));
142443
- const htmlWithPositionScript = hasPositionEdits ? assembledHtml.replace(
142444
- /<\/body>/i,
142445
- `<script>${createStudioPositionSeekReapplyScript()}</script></body>`
142446
- ) : assembledHtml;
142607
+ const htmlWithPositionScript = hasPositionEdits ? insertBeforeCloseTag(
142608
+ assembledHtml,
142609
+ "body",
142610
+ `<script>${createStudioPositionSeekReapplyScript()}</script>`
142611
+ ) ?? assembledHtml : assembledHtml;
142447
142612
  const htmlWithSdkPositionScript = injectSdkPositionEditsRenderScript(htmlWithPositionScript);
142448
142613
  const { html: htmlWithLocalMedia, remoteMediaAssets } = await localizeRemoteMediaSources(
142449
142614
  htmlWithSdkPositionScript,
@@ -143328,14 +143493,14 @@ async function runProbeStage(input2) {
143328
143493
  probeSession.beginFrameTimeTicks,
143329
143494
  probeSession.beginFrameIntervalMs
143330
143495
  );
143331
- const alive = await probeBeginFrameLiveness(
143496
+ const alive2 = await probeBeginFrameLiveness(
143332
143497
  probeSession.page,
143333
143498
  probeTimeoutMs,
143334
143499
  probeTick,
143335
143500
  probeSession.beginFrameIntervalMs
143336
143501
  );
143337
143502
  assertNotAborted();
143338
- if (alive) {
143503
+ if (alive2) {
143339
143504
  log2.info("BeginFrame liveness probe passed", {
143340
143505
  probeMs: Date.now() - livenessStart
143341
143506
  });
@@ -151793,7 +151958,7 @@ var init_planV2Layout = __esm({
151793
151958
  import {
151794
151959
  copyFileSync as copyFileSync7,
151795
151960
  existsSync as existsSync68,
151796
- linkSync as linkSync4,
151961
+ linkSync as linkSync5,
151797
151962
  mkdirSync as mkdirSync34,
151798
151963
  mkdtempSync as mkdtempSync16,
151799
151964
  renameSync as renameSync16,
@@ -151843,7 +152008,7 @@ var init_planV2Publisher = __esm({
151843
152008
  throw new PlanV2IntegrityError(`output directory already exists: ${destinationDir}`);
151844
152009
  }
151845
152010
  this.destinationDir = destinationDir;
151846
- this.#linkFile = options.linkFile ?? linkSync4;
152011
+ this.#linkFile = options.linkFile ?? linkSync5;
151847
152012
  mkdirSync34(dirname35(destinationDir), { recursive: true });
151848
152013
  this.temporaryDir = mkdtempSync16(join84(dirname35(destinationDir), ".plan-v2-publish-"));
151849
152014
  }
@@ -154551,6 +154716,7 @@ function createStudioServer(options) {
154551
154716
  historyRoot: options.historyRoot ?? DEFAULT_HISTORY_ROOT
154552
154717
  }).catch((error) => {
154553
154718
  console.warn(`[studio] Project history is off: ${String(error)}`);
154719
+ if (error instanceof HistoryBusyError) history = void 0;
154554
154720
  return null;
154555
154721
  });
154556
154722
  watcher.addListener((changedPath) => {
@@ -158804,7 +158970,7 @@ var init_media_use = __esm({
158804
158970
  var init_mediaProxyPreview = __esm({
158805
158971
  "../studio-server/dist/helpers/mediaProxyPreview.js"() {
158806
158972
  "use strict";
158807
- init_chunk_5PGWTBCL();
158973
+ init_chunk_X3T65KC2();
158808
158974
  init_chunk_45POWYFS();
158809
158975
  init_chunk_4MNTZVVZ();
158810
158976
  }
@@ -158957,6 +159123,7 @@ __export(studio_api_exports, {
158957
159123
  DEFAULT_HISTORY_ROOT: () => DEFAULT_HISTORY_ROOT,
158958
159124
  DELETED_VERSION: () => DELETED_VERSION,
158959
159125
  HISTORY_START: () => START2,
159126
+ HistoryBusyError: () => HistoryBusyError,
158960
159127
  MIME_TYPES: () => MIME_TYPES2,
158961
159128
  PREVIEW_BUNDLE_OPTIONS: () => PREVIEW_BUNDLE_OPTIONS,
158962
159129
  STUDIO_MANUAL_EDITS_PATH: () => STUDIO_MANUAL_EDITS_PATH,