hyperframes 0.7.42 → 0.7.44
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/README.md +5 -2
- package/dist/cli.js +1247 -430
- package/dist/commands/contrast-audit.browser.js +51 -25
- package/dist/docker/Dockerfile.render +29 -23
- package/dist/hyperframe-runtime.js +26 -26
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +26 -26
- package/dist/skills/hyperframes/SKILL.md +19 -10
- package/dist/studio/assets/{index-HvOJjrGO.js → index-8c83yScV.js} +1 -1
- package/dist/studio/assets/{index-D4F6SvIQ.js → index-BiZvHXPu.js} +1 -1
- package/dist/studio/assets/{index-3Li9WN_Z.js → index-BtAysyap.js} +3 -3
- package/dist/studio/index.html +1 -1
- package/dist/templates/_shared/AGENTS.md +5 -2
- package/dist/templates/_shared/CLAUDE.md +5 -2
- package/package.json +2 -2
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.7.
|
|
53
|
+
VERSION = true ? "0.7.44" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -56108,7 +56108,7 @@ var RUNTIME_IIFE;
|
|
|
56108
56108
|
var init_runtime_inline = __esm({
|
|
56109
56109
|
"../core/dist/generated/runtime-inline.js"() {
|
|
56110
56110
|
"use strict";
|
|
56111
|
-
RUNTIME_IIFE = '"use strict";(()=>{var tl=Object.create;var Yn=Object.defineProperty;var nl=Object.getOwnPropertyDescriptor;var il=Object.getOwnPropertyNames;var rl=Object.getPrototypeOf,ol=Object.prototype.hasOwnProperty;var sl=(e,t,n)=>t in e?Yn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var te=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var al=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of il(t))!ol.call(e,r)&&r!==n&&Yn(e,r,{get:()=>t[r],enumerable:!(i=nl(t,r))||i.enumerable});return e};var ll=(e,t,n)=>(n=e!=null?tl(rl(e)):{},al(t||!e||!e.__esModule?Yn(n,"default",{value:e,enumerable:!0}):n,e));var xe=(e,t,n)=>sl(e,typeof t!="symbol"?t+"":t,n);var no=te((cp,ci)=>{var X=String,to=function(){return{isColorSupported:!1,reset:X,bold:X,dim:X,italic:X,underline:X,inverse:X,hidden:X,strikethrough:X,black:X,red:X,green:X,yellow:X,blue:X,magenta:X,cyan:X,white:X,gray:X,bgBlack:X,bgRed:X,bgGreen:X,bgYellow:X,bgBlue:X,bgMagenta:X,bgCyan:X,bgWhite:X,blackBright:X,redBright:X,greenBright:X,yellowBright:X,blueBright:X,magentaBright:X,cyanBright:X,whiteBright:X,bgBlackBright:X,bgRedBright:X,bgGreenBright:X,bgYellowBright:X,bgBlueBright:X,bgMagentaBright:X,bgCyanBright:X,bgWhiteBright:X}};ci.exports=to();ci.exports.createColors=to});var di=te(()=>{});var fn=te((mp,oo)=>{"use strict";var io=no(),ro=di(),Dt=class e extends Error{constructor(t,n,i,r,o,s){super(t),this.name="CssSyntaxError",this.reason=t,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,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=io.isColorSupported);let i=c=>c,r=c=>c,o=c=>c;if(t){let{bold:c,gray:p,red:f}=io.createColors(!0);r=x=>c(f(x)),i=x=>p(x),ro&&(o=x=>ro(x))}let s=n.split(/\\r?\\n/),u=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(u,a).map((c,p)=>{let f=u+1+p,x=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(c.length>160){let b=20,g=Math.max(0,this.column-b),A=Math.max(this.column+b,this.endColumn+b),_=c.slice(g,A),N=i(x.replace(/\\d/g," "))+c.slice(0,Math.min(this.column-1,b-1)).replace(/[^\\t]/g," ");return r(">")+i(x)+o(_)+`\n `+N+r("^")}let E=i(x.replace(/\\d/g," "))+c.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(x)+o(c)+`\n `+E+r("^")}return" "+i(x)+o(c)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};oo.exports=Dt;Dt.default=Dt});var fi=te((pp,ao)=>{"use strict";var Wl=/(<)(\\/?style\\b)/gi,Ul=/(<)(!--)/g;function Je(e){return typeof e!="string"||!e.includes("<")?e:e.replace(Wl,"\\\\3c $2").replace(Ul,"\\\\3c $2")}var so={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Vl(e){return e[0].toUpperCase()+e.slice(1)}var It=class{constructor(t){this.builder=t}atrule(t,n){let i=t.raws,r="@"+t.name,o=t.params?this.rawValue(t,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),t.nodes)this.block(t,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(Je(r+o+s),t)}}beforeAfter(t,n){let i;t.type==="decl"?i=this.raw(t,null,"beforeDecl"):t.type==="comment"?i=this.raw(t,null,"beforeComment"):n==="before"?i=this.raw(t,null,"beforeRule"):i=this.raw(t,null,"beforeClose");let r=t.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(t,null,"indent");if(s.length)for(let u=0;u<o;u++)i+=s}return i}block(t,n){let i=this.raw(t,"between","beforeOpen");this.builder(Je(n+i)+"{",t,"start");let r;t.nodes&&t.nodes.length?(this.body(t),r=this.raw(t,"after")):r=this.raw(t,"after","emptyBody"),r&&this.builder(Je(r)),this.builder("}",t,"end")}body(t){let n=t.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(t,"semicolon"),o=t.type==="document";for(let s=0;s<n.length;s++){let u=n[s],a=this.raw(u,"before");a&&this.builder(o?a:Je(a)),this.stringify(u,i!==s||r)}}comment(t){let n=this.raw(t,"left","commentLeft"),i=this.raw(t,"right","commentRight");this.builder(Je("/*"+n+t.text+i+"*/"),t)}decl(t,n){let i=t.raws,r=this.raw(t,"between","colon"),o=t.prop+r+this.rawValue(t,"value");t.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(Je(o),t)}document(t){this.body(t)}raw(t,n,i){let r;if(i||(i=n),n&&(r=t.raws[n],typeof r<"u"))return r;let o=t.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===t||o&&o.type==="document"))return"";if(!o)return so[i];let s=t.root(),u=s.rawCache||(s.rawCache={});if(typeof u[i]<"u")return u[i];if(i==="before"||i==="after")return this.beforeAfter(t,i);{let a="raw"+Vl(i);this[a]?r=this[a](s,t):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=so[i]),u[i]=r,r}rawBeforeClose(t){let n;return t.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(t,n){let i;return t.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(t,n){let i;return t.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(t){let n;return t.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(i=>{if(i.nodes&&(i.parent!==t||t.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(t){let n;return t.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(i=>{let r=i.parent;if(r&&r!==t&&r.parent&&r.parent===t&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let i=t[n],r=t.raws[n];return r&&r.value===i?r.raw:i}root(t){if(this.body(t),t.raws.after){let n=t.raws.after,i=t.parent&&t.parent.type==="document";this.builder(i?n:Je(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(Je(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)}};ao.exports=It;It.default=It});var Pt=te((hp,lo)=>{"use strict";var zl=fi();function mi(e,t){new zl(t).stringify(e)}lo.exports=mi;mi.default=mi});var mn=te((gp,pi)=>{"use strict";pi.exports.isClean=Symbol("isClean");pi.exports.my=Symbol("my")});var Ht=te((xp,uo)=>{"use strict";var ql=fn(),jl=fi(),$l=Pt(),{isClean:Ot,my:Kl}=mn();function hi(e,t){let n=new e.constructor;for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i)||i==="proxyCache")continue;let r=e[i],o=typeof r;i==="parent"&&o==="object"?t&&(n[i]=t):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>hi(s,n)):(o==="object"&&r!==null&&(r=hi(r)),n[i]=r)}return n}function ze(e,t){if(t&&typeof t.offset<"u")return t.offset;let n=1,i=1,r=0;for(let o=0;o<e.length;o++){if(i===t.line&&n===t.column){r=o;break}e[o]===`\n`?(n=1,i+=1):n+=1}return r}var Bt=class{get proxyOf(){return this}constructor(t={}){this.raws={},this[Ot]=!1,this[Kl]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let i of t[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}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=hi(this);for(let i in t)n[i]=t[i];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:i,start:r}=this.rangeBy(n);return this.source.input.error(t,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new ql(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,i){return t[n]===i||(t[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[Ot]=!0}markDirty(){if(this[Ot]){this[Ot]=!1;let t=this;for(;t=t.parent;)t[Ot]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t={}){let n=this.source.start;if(t.index)n=this.positionInside(t.index);else if(t.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(ze(i,this.source.start),ze(i,this.source.end)).indexOf(t.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(t){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=ze(r,this.source.start),s=o+t;for(let u=o;u<s;u++)r[u]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}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,i={column:this.source.start.column,line:this.source.start.line,offset:ze(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:ze(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(t.word){let s=n.slice(ze(n,this.source.start),ze(n,this.source.end)).indexOf(t.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+t.word.length))}else t.start?i={column:t.start.column,line:t.start.line,offset:ze(n,t.start)}:t.index&&(i=this.positionInside(t.index)),t.end?r={column:t.end.column,line:t.end.line,offset:ze(n,t.end)}:typeof t.endIndex=="number"?r=this.positionInside(t.endIndex):t.index&&(r=this.positionInside(t.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(t,n){return new jl().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,i=!1;for(let r of t)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let u=this[s];if(Array.isArray(u))i[s]=u.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof u=="object"&&u.toJSON)i[s]=u.toJSON(null,n);else if(s==="source"){if(u==null)continue;let a=n.get(u.input);a==null&&(a=o,n.set(u.input,o),o++),i[s]={end:u.end,inputId:a,start:u.start}}else i[s]=u}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=$l){t.stringify&&(t=t.stringify);let n="";return t(this,i=>{n+=i}),n}warn(t,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return t.warn(n,r)}};uo.exports=Bt;Bt.default=Bt});var Wt=te((bp,co)=>{"use strict";var Jl=Ht(),Gt=class extends Jl{constructor(t){super(t),this.type="comment"}};co.exports=Gt;Gt.default=Gt});var Vt=te((yp,fo)=>{"use strict";var Xl=Ht(),Ut=class extends Xl{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"}};fo.exports=Ut;Ut.default=Ut});var Xe=te((Sp,Eo)=>{"use strict";var mo=Wt(),po=Vt(),Yl=Ht(),{isClean:ho,my:go}=mn(),gi,xo,bo,xi;function yo(e){return e.map(t=>(t.nodes&&(t.nodes=yo(t.nodes)),delete t.source,t))}function So(e){if(e[ho]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)So(t)}var De=class e extends Yl{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 i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=t(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}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")?(...i)=>t[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>t[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,i){return t[n]===i||(t[n]=i,(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 i=this.index(t),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(t);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(t,n){let i=this.index(t),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(t);for(let u of o)this.proxyOf.nodes.splice(i,0,u);let s;for(let u in this.indexes)s=this.indexes[u],i<=s&&(this.indexes[u]=s+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=yo(xo(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let r of t)r.parent&&r.parent.removeChild(r,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let r of t)r.parent&&r.parent.removeChild(r,"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 po(t)]}else if(t.selector||t.selectors)t=[new xi(t)];else if(t.name)t=[new gi(t)];else if(t.text)t=[new mo(t)];else throw new Error("Unknown node type in node creation");return t.map(r=>(r[go]||e.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[ho]&&So(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...t){t=t.reverse();for(let n of t){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(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 i in this.indexes)n=this.indexes[i],n>=t&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(t,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(t,i))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,i)=>{let r;try{r=t(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(t)),r})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&t.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===t)return n(i,r)}):(n=t,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(t){return this.walk((n,i)=>{if(n.type==="comment")return t(n,i)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&t.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===t)return n(i,r)}):(n=t,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&t.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===t)return n(i,r)}):(n=t,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};De.registerParse=e=>{xo=e};De.registerRule=e=>{xi=e};De.registerAtRule=e=>{gi=e};De.registerRoot=e=>{bo=e};Eo.exports=De;De.default=De;De.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,gi.prototype):e.type==="rule"?Object.setPrototypeOf(e,xi.prototype):e.type==="decl"?Object.setPrototypeOf(e,po.prototype):e.type==="comment"?Object.setPrototypeOf(e,mo.prototype):e.type==="root"&&Object.setPrototypeOf(e,bo.prototype),e[go]=!0,e.nodes&&e.nodes.forEach(t=>{De.rebuild(t)})}});var pn=te((Ep,wo)=>{"use strict";var Ao=Xe(),pt=class extends Ao{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)}};wo.exports=pt;pt.default=pt;Ao.registerAtRule(pt)});var hn=te((Ap,_o)=>{"use strict";var Ql=Xe(),Fo,Co,at=class extends Ql{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new Fo(new Co,this,t).stringify()}};at.registerLazyResult=e=>{Fo=e};at.registerProcessor=e=>{Co=e};_o.exports=at;at.default=at});var vo=te((wp,Mo)=>{var Zl="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",eu=(e,t=21)=>(n=t)=>{let i="",r=n|0;for(;r--;)i+=e[Math.random()*e.length|0];return i},tu=(e=21)=>{let t="",n=e|0;for(;n--;)t+=Zl[Math.random()*64|0];return t};Mo.exports={nanoid:tu,customAlphabet:eu}});var gn=te(()=>{});var xn=te(()=>{});var bi=te(()=>{});var To=te(()=>{});var Si=te((Rp,Ro)=>{"use strict";var{existsSync:nu,readFileSync:iu}=To(),{dirname:yi,join:ru}=gn(),{SourceMapConsumer:No,SourceMapGenerator:Lo}=xn();function ou(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var zt=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 i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=yi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new No(this.json||this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=t.match(r)||t.match(o);if(s)return decodeURIComponent(t.substr(s[0].length));let u=t.match(n)||t.match(i);if(u)return ou(t.substr(u[0].length));let a=t.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}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 i=t.lastIndexOf(n.pop()),r=t.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(t.substring(i,r)))}loadFile(t,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(t))&&(this.root=yi(t),nu(t)))return this.mapFile=t,iu(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 i=n(t);if(i){let r=this.loadFile(i,t,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof No)return Lo.fromSourceMap(n).toString();if(n instanceof Lo)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;t&&(i=ru(yi(t),i));let r=this.loadFile(i,t,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};Ro.exports=zt;zt.default=zt});var qt=te((kp,Oo)=>{"use strict";var{nanoid:su}=vo(),{isAbsolute:wi,resolve:Fi}=gn(),{SourceMapConsumer:au,SourceMapGenerator:lu}=xn(),{fileURLToPath:ko,pathToFileURL:bn}=bi(),Do=fn(),uu=Si(),Ei=di(),Ai=Symbol("lineToIndexCache"),cu=!!(au&&lu),Io=!!(Fi&&wi);function Po(e){if(e[Ai])return e[Ai];let t=e.css.split(`\n`),n=new Array(t.length),i=0;for(let r=0,o=t.length;r<o;r++)n[r]=i,i+=t[r].length+1;return e[Ai]=n,n}var ht=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&&(!Io||/^\\w+:\\/\\//.test(n.from)||wi(n.from)?this.file=n.from:this.file=Fi(n.from)),Io&&cu){let i=new uu(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+su(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,i,r={}){let o,s,u,a,l;if(n&&typeof n=="object"){let p=n,f=i;if(typeof p.offset=="number"){a=p.offset;let x=this.fromOffset(a);n=x.line,i=x.col}else n=p.line,i=p.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){u=f.offset;let x=this.fromOffset(u);s=x.line,o=x.col}else s=f.line,o=f.column,u=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let p=this.fromOffset(a);n=p.line,i=p.col}let c=this.origin(n,i,s,o);return c?l=new Do(t,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,r.plugin):l=new Do(t,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),l.input={column:i,endColumn:o,endLine:s,endOffset:u,line:n,offset:a,source:this.css},this.file&&(bn&&(l.input.url=bn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(t,n){return Po(this)[t-1]+n-1}fromOffset(t){let n=Po(this),i=n[n.length-1],r=0;if(t>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),t<n[s])o=s-1;else if(t>=n[s+1])r=s+1;else{r=s;break}}return{col:t-n[r]+1,line:r+1}}mapResolve(t){return/^\\w+:\\/\\//.test(t)?t:Fi(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:t});if(!s.source)return!1;let u;typeof i=="number"&&(u=o.originalPositionFor({column:r,line:i}));let a;wi(s.source)?a=bn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||bn(this.map.mapFile));let l={column:s.column,endColumn:u&&u.column,endLine:u&&u.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(ko)l.file=ko(a);else throw new Error("file: protocol is not available in this PostCSS build");let c=o.sourceContentFor(s.source);return c&&(l.source=c),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}};Oo.exports=ht;ht.default=ht;Ei&&Ei.registerInput&&Ei.registerInput(ht)});var gt=te((Dp,Wo)=>{"use strict";var Bo=Xe(),Ho,Go,Ye=class extends Bo{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,i){let r=super.normalize(t);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(t,n){let i=this.index(t);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(t)}toResult(t={}){return new Ho(new Go,this,t).stringify()}};Ye.registerLazyResult=e=>{Ho=e};Ye.registerProcessor=e=>{Go=e};Wo.exports=Ye;Ye.default=Ye;Bo.registerRoot(Ye)});var Ci=te((Ip,Uo)=>{"use strict";var jt={comma(e){return jt.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return jt.split(e,t)},split(e,t,n){let i=[],r="",o=!1,s=0,u=!1,a="",l=!1;for(let c of e)l?l=!1:c==="\\\\"?l=!0:u?c===a&&(u=!1):c===\'"\'||c==="\'"?(u=!0,a=c):c==="("?s+=1:c===")"?s>0&&(s-=1):s===0&&t.includes(c)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=c;return(n||r!=="")&&i.push(r.trim()),i}};Uo.exports=jt;jt.default=jt});var yn=te((Pp,zo)=>{"use strict";var Vo=Xe(),du=Ci(),xt=class extends Vo{get selectors(){return du.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(i)}constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}};zo.exports=xt;xt.default=xt;Vo.registerRule(xt)});var jo=te((Op,qo)=>{"use strict";var fu=pn(),mu=Wt(),pu=Vt(),hu=qt(),gu=Si(),xu=gt(),bu=yn();function $t(e,t){if(Array.isArray(e))return e.map(r=>$t(r));let{inputs:n,...i}=e;if(n){t=[];for(let r of n){let o={...r,__proto__:hu.prototype};o.map&&(o.map={...o.map,__proto__:gu.prototype}),t.push(o)}}if(i.nodes&&(i.nodes=e.nodes.map(r=>$t(r,t))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=t[r])}if(i.type==="root")return new xu(i);if(i.type==="decl")return new pu(i);if(i.type==="rule")return new bu(i);if(i.type==="comment")return new mu(i);if(i.type==="atrule")return new fu(i);throw new Error("Unknown node type: "+e.type)}qo.exports=$t;$t.default=$t});var Mi=te((Bp,Qo)=>{"use strict";var{dirname:Sn,relative:Ko,resolve:Jo,sep:Xo}=gn(),{SourceMapConsumer:Yo,SourceMapGenerator:En}=xn(),{pathToFileURL:$o}=bi(),yu=qt(),Su=!!(Yo&&En),Eu=!!(Sn&&Jo&&Ko&&Xo),_i=class{constructor(t,n,i,r){this.stringify=t,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let 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)),i=t.root||Sn(t.file),r;this.mapOpts.sourcesContent===!1?(r=new Yo(t.text),r.sourcesContent&&(r.sourcesContent=null)):r=t.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let t;for(;(t=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",t+3);if(n===-1)break;for(;t>0&&this.css[t-1]===`\n`;)t--;this.css=this.css.slice(0,t)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Eu&&Su&&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=En.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new En({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 En({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(u,a,l)=>{if(this.css+=u,a&&l!=="end"&&(r.generated.line=t,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=u.match(/\\n/g),s?(t+=s.length,o=u.lastIndexOf(`\n`),n=u.length-o):n+=u.length,a&&l!=="start"){let c=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==c.last||c.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=t,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=t,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(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 i=this.opts.to?Sn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Sn(Jo(i,this.mapOpts.annotation)));let r=Ko(i,t);return this.memoizedPaths.set(t,r),r}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 yu(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 i=n.source.input.from;if(i&&!t[i]){t[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(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($o){let i=$o(t).toString();return this.memoizedFileURLs.set(t,i),i}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;Xo==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let i=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,i),i}};Qo.exports=_i});var ts=te((Hp,es)=>{"use strict";var An=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,wn=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Au=/.[\\r\\n"\'(/\\\\]/,Zo=/[\\da-f]/i;es.exports=function(t,n={}){let i=t.css.valueOf(),r=n.ignoreErrors,o,s,u,a,l,c,p,f,x,E,b=i.length,g=0,A=[],_=[],N=-1;function $(){return g}function B(M){throw t.error("Unclosed "+M,g)}function v(){return _.length===0&&g>=b}function S(M){if(_.length)return _.pop();if(g>=b)return;let T=M?M.ignoreUnclosed:!1;switch(o=i.charCodeAt(g),o){case 10:case 32:case 9:case 13:case 12:{a=g;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);c=["space",i.slice(g,a)],g=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let R=String.fromCharCode(o);c=[R,R,g];break}case 40:{if(E=A.length?A.pop()[1]:"",x=i.charCodeAt(g+1),E==="url"&&x!==39&&x!==34&&x!==32&&x!==10&&x!==9&&x!==12&&x!==13){a=g;do{if(p=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=g;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,p=!p}while(p);c=["brackets",i.slice(g,a+1),g,a],g=a}else g<=N?c=["(","(",g]:(a=i.indexOf(")",g+1),s=i.slice(g,a+1),a===-1||Au.test(s)?(N=a===-1?b:a,c=["(","(",g]):(c=["brackets",s,g,a],g=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=g;do{if(p=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=g+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,p=!p}while(p);c=["string",i.slice(g,a+1),g,a],g=a;break}case 64:{An.lastIndex=g+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,c=["at-word",i.slice(g,a+1),g,a],g=a;break}case 92:{for(a=g,u=!0;i.charCodeAt(a+1)===92;)a+=1,u=!u;if(o=i.charCodeAt(a+1),u&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Zo.test(i.charAt(a)))){for(;Zo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}c=["word",i.slice(g,a+1),g,a],g=a;break}default:{o===47&&i.charCodeAt(g+1)===42?(a=i.indexOf("*/",g+2)+1,a===0&&(r||T?a=i.length:B("comment")),c=["comment",i.slice(g,a+1),g,a],g=a):(wn.lastIndex=g+1,wn.test(i),wn.lastIndex===0?a=i.length-1:a=wn.lastIndex-2,c=["word",i.slice(g,a+1),g,a],A.push(c),g=a);break}}return g++,c}function C(M){_.push(M)}return{back:C,endOfFile:v,nextToken:S,position:$}}});var os=te((Gp,rs)=>{"use strict";var wu=pn(),Fu=Wt(),Cu=Vt(),_u=gt(),ns=yn(),Mu=ts(),is={empty:!0,space:!0};function vu(e){for(let t=e.length-1;t>=0;t--){let n=e[t],i=n[3]||n[2];if(i)return i}}var vi=class{constructor(t){this.input=t,this.root=new _u,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 wu;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let i,r,o,s=!1,u=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),i=t[0],i==="("||i==="["?l.push(i==="("?")":"]"):i==="{"&&l.length>0?l.push("}"):i===l[l.length-1]&&l.pop(),l.length===0)if(i===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){u=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(t);break}else a.push(t);else a.push(t);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(t=a[a.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 i=0,r;for(let o=n-1;o>=0&&(r=t[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(t){let n=0,i,r,o;for(let[s,u]of t.entries()){if(r=u,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(t){let n=new Fu;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let i=t[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=Mu(this.input)}decl(t,n){let i=new Cu;this.init(i,t[0][2]);let r=t[t.length-1];for(r[0]===";"&&(this.semicolon=!0,t.pop()),i.source.end=this.getPosition(r[3]||r[2]||vu(t)),i.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),i.raws.before+=t.shift()[1];for(i.source.start=this.getPosition(t[0][2]),i.prop="";t.length;){let l=t[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=t.shift()[1]}i.raws.between="";let o;for(;t.length;)if(o=t.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],u;for(;t.length&&(u=t[0][0],!(u!=="space"&&u!=="comment"));)s.push(t.shift());this.precheckMissedSemicolon(t);for(let l=t.length-1;l>=0;l--){if(o=t[l],o[1].toLowerCase()==="!important"){i.important=!0;let c=this.stringFrom(t,l);c=this.spacesFromEnd(t)+c,c!==" !important"&&(i.raws.important=c);break}else if(o[1].toLowerCase()==="important"){let c=t.slice(0),p="";for(let f=l;f>0;f--){let x=c[f][0];if(p.trim().startsWith("!")&&x!=="space")break;p=c.pop()[1]+p}p.trim().startsWith("!")&&(i.important=!0,i.raws.important=p,t=c)}if(o[0]!=="space"&&o[0]!=="comment")break}t.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(t),n),i.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 ns;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(t[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,i=null,r=!1,o=null,s=[],u=t[1].startsWith("--"),a=[],l=t;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(u&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,u);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));l=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!u)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,u)}else this.unknownWord(a)}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,i,r){let o,s,u=i.length,a="",l=!0,c,p;for(let f=0;f<u;f+=1)o=i[f],s=o[0],s==="space"&&f===u-1&&!r?l=!1:s==="comment"?(p=i[f-1]?i[f-1][0]:"empty",c=i[f+1]?i[f+1][0]:"empty",!is[p]&&!is[c]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((x,E)=>x+E[1],"");t.raws[n]={raw:f,value:a}}t[n]=a}rule(t){t.pop();let n=new ns;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,i="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)i=t.pop()[1]+i;return i}spacesAndCommentsFromStart(t){let n,i="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)i+=t.shift()[1];return i}spacesFromEnd(t){let n,i="";for(;t.length&&(n=t[t.length-1][0],n==="space");)i=t.pop()[1]+i;return i}stringFrom(t,n){let i="";for(let r=n;r<t.length;r++)i+=t[r][1];return t.splice(n,t.length-n),i}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})}};rs.exports=vi});var Cn=te((Wp,ss)=>{"use strict";var Tu=Xe(),Nu=qt(),Lu=os();function Fn(e,t){let n=new Nu(e,t),i=new Lu(n);try{i.parse()}catch(r){throw r}return i.root}ss.exports=Fn;Fn.default=Fn;Tu.registerParse(Fn)});var Ti=te((Up,as)=>{"use strict";var Kt=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};as.exports=Kt;Kt.default=Kt});var _n=te((Vp,ls)=>{"use strict";var Ru=Ti(),Jt=class{get content(){return this.css}constructor(t,n,i){this.processor=t,this.messages=[],this.root=n,this.opts=i,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 i=new Ru(t,n);return this.messages.push(i),i}warnings(){return this.messages.filter(t=>t.type==="warning")}};ls.exports=Jt;Jt.default=Jt});var Ni=te((zp,cs)=>{"use strict";var us={};cs.exports=function(t){us[t]||(us[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var ki=te((jp,ps)=>{"use strict";var ku=Xe(),Du=hn(),Iu=Mi(),Pu=Cn(),ds=_n(),Ou=gt(),Bu=Pt(),{isClean:He,my:Hu}=mn(),qp=Ni(),Gu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Wu={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},Uu={Once:!0,postcssPlugin:!0,prepare:!0},bt=0;function Xt(e){return typeof e=="object"&&typeof e.then=="function"}function ms(e){let t=!1,n=Gu[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,bt,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,bt,n+"Exit"]:[n,n+"Exit"]}function fs(e){let t;return e.type==="document"?t=["Document",bt,"DocumentExit"]:e.type==="root"?t=["Root",bt,"RootExit"]:t=ms(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Li(e){return e[He]=!1,e.nodes&&e.nodes.forEach(t=>Li(t)),e}var Ri={},Qe=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,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Li(n);else if(n instanceof e||n instanceof ds)r=Li(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=Pu;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[Hu]&&ku.rebuild(r)}this.result=new ds(t,r,i),this.helpers={...Ri,postcss:Ri,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 i=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=i.postcssPlugin,t.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return t}prepareVisitors(){this.listeners={};let t=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!Wu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Uu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?t(n,i,n[i][r]):t(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&t(n,i,n[i])}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],i=this.runOnRoot(n);if(Xt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[He];){t[He]=!0;let n=[fs(t)];for(;n.length>0;){let i=this.visitTick(n);if(Xt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let r=t.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(t,this.helpers)}catch(r){throw this.handleError(r)}}}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(i=>t.Once(i,this.helpers));return Xt(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=Bu;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(t.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,u=>{s+=u}),this.result.css=s,this.result}let o=new Iu(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(Xt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[He];)t[He]=!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[i,r]of t){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Xt(o))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){t.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,u]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return u(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,u;for(;u=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!u[He]){u[He]=!0,t.push(fs(u));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===bt){i.nodes&&i.nodes.length&&(i[He]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}t.pop()}walkSync(t){t[He]=!0;let n=ms(t);for(let i of n)if(i===bt)t.nodes&&t.each(r=>{r[He]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,t.toProxy()))return}}warnings(){return this.sync().warnings()}};Qe.registerPostcss=e=>{Ri=e};ps.exports=Qe;Qe.default=Qe;Ou.registerLazyResult(Qe);Du.registerLazyResult(Qe)});var gs=te((Kp,hs)=>{"use strict";var Vu=Mi(),zu=Cn(),qu=_n(),ju=Pt(),$p=Ni(),Yt=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=zu;try{t=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(t,n,i){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=i,this._map=void 0;let r=ju;this.result=new qu(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new Vu(r,void 0,this._opts,n);if(s.isMap()){let[u,a]=s.generate();u&&(this.result.css=u),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(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[]}};hs.exports=Yt;Yt.default=Yt});var bs=te((Jp,xs)=>{"use strict";var $u=hn(),Ku=ki(),Ju=gs(),Xu=gt(),lt=class{constructor(t=[]){this.version="8.5.14",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let i of t)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Ju(this,t,n):new Ku(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};xs.exports=lt;lt.default=lt;Xu.registerProcessor(lt);$u.registerProcessor(lt)});var _s=te((Xp,Cs)=>{"use strict";var ys=pn(),Ss=Wt(),Yu=Xe(),Qu=fn(),Es=Vt(),As=hn(),Zu=jo(),ec=qt(),tc=ki(),nc=Ci(),ic=Ht(),rc=Cn(),Di=bs(),oc=_n(),ws=gt(),Fs=yn(),sc=Pt(),ac=Ti();function le(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Di(e)}le.plugin=function(t,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let u=n(...s);return u.postcssPlugin=t,u.postcssVersion=new Di().version,u}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,u,a){return le([r(a)]).process(s,u)},r};le.stringify=sc;le.parse=rc;le.fromJSON=Zu;le.list=nc;le.comment=e=>new Ss(e);le.atRule=e=>new ys(e);le.decl=e=>new Es(e);le.rule=e=>new Fs(e);le.root=e=>new ws(e);le.document=e=>new As(e);le.CssSyntaxError=Qu;le.Declaration=Es;le.Container=Yu;le.Processor=Di;le.Document=As;le.Comment=Ss;le.Warning=ac;le.AtRule=ys;le.Result=oc;le.Input=ec;le.Rule=Fs;le.Root=ws;le.Node=ic;tc.registerPostcss(le);Cs.exports=le;le.default=le});function cn(){return globalThis}function L(e,t){if(typeof window>"u")return;let n=cn(),i=n.__hf?.onSwallowed;if(i)try{i({label:e,error:t})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}function Fe(e){try{window.parent.postMessage(e,"*")}catch(t){L("bridge.postMessage",t)}}var ul={play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(Number(e.frame??0),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-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=>cl(e)};function cl(e){let t=e.selectors,n=e.duration||800;t&&dl(t,n)}function Er(e){let t=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(typeof r!="string")return;let o=ul[r];o&&o(i,e)};return window.addEventListener("message",t),Fe({source:"hf-preview",type:"ready"}),t}function dl(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(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),t)})}catch(i){L("bridge.flashElements.querySelector",i)}}var Qn=null;function Ar(e){Qn=e}function st(e,t){if(Qn)try{Qn({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){L("runtime.analytics.site1",n)}}function wr(e){let t=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>e?.resolveStartSeconds?e.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,c)=>{let p=null;try{p=l.effect?.getComputedTiming?.()??null}catch(x){L("runtime.adapters.css.site5",x)}if(!p)return{};let f=Number(p.endTime);return Number.isFinite(f)?{endSeconds:c+f/1e3}:{unbounded:!0}},o=(l,c)=>{for(let p of l){try{p.currentTime=c}catch(f){L("runtime.adapters.css.site1",f)}try{p.pause()}catch(f){L("runtime.adapters.css.site2",f)}}},s=l=>{for(let c of l)try{c.play()}catch(p){L("runtime.adapters.css.site3",p)}},u=l=>{for(let c of l)try{c.pause()}catch(p){L("runtime.adapters.css.site4",p)}},a=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 c of l){if(!(c instanceof HTMLElement))continue;let p=window.getComputedStyle(c);!p.animationName||p.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||"",animations:n(c)})}},getInferredDurationSeconds:()=>{let l=0;for(let c of t){if(!c.el.isConnected)continue;let p=i(c.el);for(let f of n(c.el)){let x=r(f,p);x.endSeconds!=null&&(l=Math.max(l,x.endSeconds))}}return l>0?l:null},seek:l=>{let c=Number(l.time)||0;for(let p of t){if(!p.el.isConnected)continue;let f=i(p.el),x=Math.max(0,c-f)*1e3,E=p.animations;if(E.length>0){o(E,x);continue}p.el.style.animationPlayState="paused",p.el.style.animationDelay=`-${(x/1e3).toFixed(3)}s`}},pause:()=>{for(let l of t){if(!l.el.isConnected)continue;let c=l.animations;c.length>0&&u(c),a(l)}},play:()=>{for(let l of t)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{t=[]}}}function Fr(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(t.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function Cr(){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??[],i=new Set(n);for(let r of t)i.has(r)||n.push(r);window.__hfAnime=n}catch(e){L("runtime.adapters.animejs.site1",e)}},seek:e=>{let t=Math.max(0,(Number(e.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(t)}catch(r){L("runtime.adapters.animejs.site2",r)}},pause:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.pause=="function"&&t.pause()}catch(n){L("runtime.adapters.animejs.site3",n)}},play:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.play=="function"&&t.play()}catch(n){L("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Mr(){return{name:"lottie",discover:()=>{try{let e=window.lottie;if(e&&typeof e.getRegisteredAnimations=="function"){let t=e.getRegisteredAnimations();if(Array.isArray(t)&&t.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of t)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(e){L("runtime.adapters.lottie.site1",e)}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(Zn(i))i.goToAndStop(t*1e3,!1);else if(ei(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=t*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,t/r*100);i.seek(o)}}}catch(r){L("runtime.adapters.lottie.site2",r)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(Zn(t)||ei(t))&&t.pause()}catch(n){L("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let e=window.__hfLottie;if(!e||e.length===0)return null;let t=0,n=!1;for(let i of e){let r=null;try{r=fl(i)}catch(o){L("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,t=Math.max(t,r))}return n?t:null}}}function _r(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function fl(e){return Zn(e)?_r(e.totalFrames,e.frameRate):ei(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:_r(e.totalFrames,e.frameRate):null}function Zn(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function ei(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var ti=-1;function dn(e){if(e!==ti){ti=e;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:e}}))}catch(t){L("runtime.adapters.seek-dispatch.site1",t)}}}function vr(e){ti=e;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:e}}))}catch(t){L("runtime.adapters.seek-dispatch.force",t)}}function Tr(){let e=null,t=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let c=window.THREE?.DefaultLoadingManager;return!c||typeof c!="object"||typeof c.itemsLoaded!="number"||typeof c.itemsTotal!="number"?null:c},u=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(c=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,c()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(c,p,f){try{i?.call(this,c,p,f)}finally{u(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),u(l))},seek:l=>{e=Math.max(0,Number(l.time)||0),t=e,window.__hfThreeTime=e,dn(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||u(l),o)}}}function Be(e){let t=null,n=new WeakSet;return{name:e.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=e.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:t||(t=Promise.allSettled(r.map(o=>e.waitFor(o).then(()=>{n.add(o)}))).then(()=>{t=null}),t)}}}function Nr(){return Be({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 Lr(){return Be({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 Rr(){return Be({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 kr(){return Be({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 Dr(){return Be({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}function Ir(){let e=null,t=0;return{name:"typegpu",discover:()=>{},seek:n=>{e=Math.max(0,Number(n.time)||0),t=e,window.__hfTypegpuTime=e,dn(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0}}}function Pr(e){let t=e.nextElementSibling;if(t instanceof HTMLImageElement&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;if(e.id){let n=document.getElementById(`__render_frame_${e.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function Or(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Pr(n.source);if(o)return t.call(this,{...n,source:o},i,r)}return t.call(this,n,i,r)}}function Br(){let e=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],t=["texImage2D","texSubImage2D"];for(let n of e){let i=n?.prototype;if(i)for(let r of t){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...u){let a=u.length-1,l=u[a];if(l instanceof HTMLVideoElement){let c=Pr(l);c&&(u[a]=c)}return o.apply(this,u)};s.__hfVideoPatched=!0,i[r]=s}}}function Hr(){let e=!1,t=0,n=!1,i,r,o,s=new Set,u=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=g=>{let A=Number(g.currentTime);return Number.isFinite(A)&&A>0?A:0},c=(g,A)=>A<=0?g:g>=A?Math.max(0,g-A):g,p=(g,A)=>{let _=u.get(g);if(_)return _;let N={compositionTimeMs:A,animationTimeMs:e?c(l(g),A):l(g)};return u.set(g,N),N},f=(g,A)=>{if(!s.has(g)){s.add(g);let _=()=>{s.delete(g)};try{g.addEventListener("finish",_,{once:!0}),g.addEventListener("cancel",_,{once:!0})}catch(N){L("runtime.adapters.waapi.site4",N)}}p(g,A)},x=(g,A)=>{for(let _ of g)f(_,A)},E=()=>{if(n||typeof Element>"u")return;let g=Element.prototype;if(typeof g.animate!="function"||g.__hfOriginalAnimate)return;let A=g.animate;try{Object.defineProperty(g,"__hfOriginalAnimate",{value:A,configurable:!0});let _=function(...N){let $=A.apply(this,N);return f($,t),$};g.animate=_,i=g,r=A,o=_,n=!0}catch{}},b=g=>{let A=null;try{A=g.effect?.getComputedTiming?.()??null}catch($){L("runtime.adapters.waapi.site4",$)}if(!A)return{};let _=Number(A.endTime);return Number.isFinite(_)?{endSeconds:(u.get(g)?.compositionTimeMs??0)/1e3+_/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,E(),x(a(),t)},seek:g=>{let A=Math.max(0,(Number(g.time)||0)*1e3);t=A,(!e||s.size>0)&&x(a(),e?A:0);for(let _ of s){let N=e?p(_,A):p(_,0),$=N.animationTimeMs+Math.max(0,A-N.compositionTimeMs);try{_.currentTime=$}catch(B){L("runtime.adapters.waapi.site1",B)}try{_.pause()}catch(B){L("runtime.adapters.waapi.site2",B)}}},pause:()=>{e||x(a(),t);for(let g of s)try{g.pause()}catch(A){L("runtime.adapters.waapi.site3",A)}},revert:()=>{if(s.clear(),u=new WeakMap,e=!1,t=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(g){L("runtime.adapters.waapi.site5",g)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let g=0;for(let A of a()){let _=b(A);_.endSeconds!=null&&(g=Math.max(g,_.endSeconds))}return g>0?g:null}}}function Gr(e,t){if(e.length===0)return 1;let n=0;for(;n<e.length-2&&t>=e[n+1].time;)n+=1;let i=e[n],r=e[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(t-i.time)/o));return i.volume+(r.volume-i.volume)*s}function ml(e,t,n,i){let r=Number.parseFloat(e.dataset.start??"0")||0,o=Number.parseFloat(e.dataset.end??""),s=Number.parseFloat(e.dataset.duration??""),u=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(e.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;e.volume=l;let c=1/Math.min(60,Math.max(1,i)),p=Math.max(0,r),f=Math.min(n,u),x=[];for(let b=p;b<=f+1e-6;b+=c){let g=Math.min(f,b);t(g);let A=Number(e.volume);if(!Number.isFinite(A))continue;let _=Math.max(0,Math.min(1,A)),N=x.at(-1);if((!N||Math.abs(N.volume-_)>1e-4||g===f)&&x.push({time:Number(g.toFixed(6)),volume:Number(_.toFixed(6))}),g===f)break}return x.some(b=>Math.abs(b.volume-l)>1e-4)?x:null}function Wr(e,t,n,i){if(!t||!(e instanceof HTMLAudioElement)&&!(e instanceof HTMLVideoElement)||n<=0)return;let o=ml(e,s=>{try{typeof t.totalTime=="function"?t.totalTime(s,!0):typeof t.seek=="function"&&t.seek(s,!0)}catch{}},n,60);o&&i.set(e,o)}function Tt(e){let t=e.defaultPlaybackRate;return Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1}function Ur(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(s=>e.shouldIncludeElement?.(s)):t.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let u=e?.resolveStartSeconds?e.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(u))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Tt(s),c=s.loop,p=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=e?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&p!=null&&(f=Math.max(0,(p-a)/l));let x=Number.isFinite(f)&&f>0?u+f:Number.POSITIVE_INFINITY,E=Number.parseFloat(s.dataset.volume??""),b={el:s,start:u,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:x,volume:Number.isFinite(E)?E:null,playbackRate:l,loop:c,sourceDuration:p};i.push(b),s.tagName==="VIDEO"&&r.push(b),Number.isFinite(x)&&(o=Math.max(o,x))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var ni=new WeakMap,Mt=new WeakMap,ii=new WeakSet,ft=new WeakSet;function pl(e){if(ft.has(e))return;ft.add(e);let t=()=>ft.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var hl=3;function gl(e){return e.error!=null||e.networkState===hl}var ri=new WeakMap;function vt(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function Vr(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(e.timeSeconds>=n.start&&e.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let T=n.sourceDuration-n.mediaStart;T>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%T)}let s=vt(e.userVolume??1),u=vt(n.volume??1),a=ri.get(i),l=vt(i.volume),c;n.volumeKeyframes&&n.volumeKeyframes.length>0?c=vt(Gr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?c=l:c=u;let p=vt(c*s);i.volume=p,ri.set(i,p),e.onElementVolume?.(i,p),(t||e.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*e.playbackRate}catch(T){L("runtime.media.site1",T)}let f=.04,x=2,E=i.currentTime||0,b=Math.abs(E-r),g=r-E,A=ni.get(i);ni.set(i,g);let _=A===void 0,N=!_&&Math.abs(g-A)>.5,$=b>3,B=b>.5&&(_||N||$),v=i.tagName==="VIDEO"&&!i.paused,S=A!==void 0&&Math.abs(g-A)<.004,C=!1;if(!v&&!B&&!_&&S&&b>f){let T=(Mt.get(i)??0)+1;Mt.set(i,T),T>=x&&(C=!0,Mt.set(i,0))}else b<=f&&Mt.set(i,0);let M=!v&&e.forceSync&&b>.02;if(B||C||M){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(R){L("runtime.media.site2",R)}if(Math.abs(i.currentTime-r)>.5&&!ii.has(i)){ii.add(i),i.load();try{i.currentTime=r}catch(R){L("runtime.media.site3",R)}}}ft.delete(i)}e.playing&&i.paused&&!ft.has(i)&&!gl(i)?(pl(i),i.play().catch(T=>{ft.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!i.paused&&i.pause();continue}ni.delete(i),Mt.delete(i),ii.delete(i),ri.delete(i),i.paused||i.pause()}}var xl=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),bl=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),yl="data-hf-color-grading-source-hidden";function zr(e){let t=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(M){L("runtime.picker.site1",M)}}function u(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:t,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let M=S;for(;M&&M!==document.body&&M!==document.documentElement;){let T=C.getComputedStyle(M);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let R=Number.parseFloat(T.opacity);if(Number.isFinite(R)&&R<=.01&&!M.hasAttribute(yl))return!0;M=M.parentElement}return!1}function c(S){if(!S||S===document.body||S===document.documentElement)return!1;let C=S.tagName.toLowerCase();return!(C==="script"||C==="style"||C==="link"||C==="meta"||S.classList.contains("__hf-pick-highlight")||S.closest(xl)||l(S))}function p(S){return!!S?.closest(bl)}function f(S){let C=S;if(C.id)return`#${C.id}`;let M=S.getAttribute("data-composition-id");if(M)return`[data-composition-id="${CSS.escape(M)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let R=S.getAttribute("data-track-index");if(R)return`[data-track-index="${CSS.escape(R)}"]`;let W=S.tagName.toLowerCase(),q=S.parentElement;if(!q)return W;let ie=q.querySelectorAll(`:scope > ${W}`);if(ie.length===1)return W;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${W}:nth-of-type(${P+1})`;return W}function x(S){let C=S.tagName.toLowerCase(),M=(S.textContent??"").trim().replace(/\\s+/g," "),T=(R,W)=>R.length>W?`${R.slice(0,W-1)}\\u2026`:R;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?M.length>0?T(M,56):"Text":C==="img"?"Image":C==="video"?"Video":C==="audio"?"Audio":C==="svg"?"Shape":S.getAttribute("data-composition-src")?"Composition":C==="section"?"Section":`${C.charAt(0).toUpperCase()}${C.slice(1)}`}function E(S,C,M){let T=typeof M=="number"&&M>0?M:8,R=[];if(document.elementsFromPoint)R=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);R=ie?[ie]:[]}if(p(R[0]??null))return[];let W={},q=[];for(let ie=0;ie<R.length;ie+=1){let P=R[ie];if(!c(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!W[se]&&(W[se]=!0,q.push(P),q.length>=T))break}return q}function b(S){let C=S.getBoundingClientRect(),M={};for(let R=0;R<S.attributes.length;R+=1){let W=S.attributes[R];W.name.startsWith("data-")&&(M[W.name]=W.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:x(S),boundingBox:{x:C.left,y:C.top,width:C.width,height:C.height},textContent:S.textContent?S.textContent.trim().slice(0,200):null,src:S.getAttribute("src")||S.getAttribute("data-composition-src")||null,dataAttributes:M}}function g(S,C,M){return E(S,C,M).map(b)}function A(S){if(!t)return;let M=E(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!c(M)||n===M)return;n&&n.classList.remove("__hf-pick-highlight"),n=M,M.classList.add("__hf-pick-highlight");let T=b(M);u(T),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function _(S){if(!t)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=g(S.clientX,S.clientY,8);C.length!==0&&(u(C[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function N(S){S.key==="Escape"&&(B(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){t||(t=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",A,!0),document.addEventListener("click",_,!0),document.addEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",A,!0),document.removeEventListener("click",_,!0),document.removeEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function v(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>t,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,M)=>Number.isFinite(S)&&Number.isFinite(C)?g(S,C,M):[],pickAtPoint:(S,C,M)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=g(S,C,8);if(!T.length)return null;let R=Math.max(0,Math.min(T.length-1,Number(M??0))),W=T[R]??null;return W?(a(W),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:W}),B(),W):null},pickManyAtPoint:(S,C,M)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=g(S,C,8);if(!T.length)return[];let R=[],W=Array.isArray(M)?M:[0];for(let q of W){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(q)))),P=T[ie];if(!P)continue;R.some(Ee=>Ee.selector===P.selector&&Ee.tagName===P.tagName)||R.push(P)}return R.length?(a(R[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:R}),B(),R):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:$,disablePickMode:B,installPickerApi:v}}var Sl=["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 mt(e,t){let n=Number.isFinite(t)&&t>0?t:30,i=Number.isFinite(e)&&e>0?e:0;return Math.floor(i*n+1e-9)/n}function qr(e,t,n=Sl){for(let i of n){let r=t.getPropertyValue(i);r&&e.setProperty(i,r)}}function Nt(e,t,n){let i=e?.[t];return typeof i=="function"?Number(i.call(e))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&L("runtime.player.nonConformantNum",{prop:t,actual:typeof i}),n)}function ke(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&L("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function Lt(e,t,n){if(e){for(let i of Object.values(e))if(!(!i||i===t))try{n(i)}catch(r){L("runtime.player.site1",r)}}}function jr(e,t,n){let i=mt(t,n);return ke(e,"pause"),typeof e.totalTime=="function"?e.totalTime(i,!1):typeof e.seek=="function"&&e.seek(i,!1),i}function El(e,t,n,i){let r=[];Lt(e,t,o=>{ke(o,"play"),r.push(o)});try{return jr(t,n,i)}finally{for(let o of r)try{ke(o,"pause")}catch(s){L("runtime.player.site2",s)}}}function Al(e,t){Lt(e,t,n=>{ke(n,"play")})}function $r(e){return{_timeline:null,play:()=>{let t=e.getTimeline();if(!t||e.getIsPlaying())return;let n=Math.max(0,Number(e.getSafeDuration?.()??Nt(t,"duration",0))||0);n>0&&Math.max(0,Nt(t,"time",0))>=n&&(ke(t,"pause"),typeof t.seek=="function"&&t.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof t.timeScale=="function"&&t.timeScale(e.getPlaybackRate()),ke(t,"play"),Lt(e.getTimelineRegistry?.(),t,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),ke(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let t=e.getTimeline();if(!t)return;ke(t,"pause"),Lt(e.getTimelineRegistry?.(),t,i=>{ke(i,"pause")});let n=Math.max(0,Nt(t,"time",0));e.onDeterministicSeek(n),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(n,!1),e.onRenderFrameSeek(n),e.onStatePost(!0)},seek:(t,n)=>{let i=e.getTimeline();if(!i)return;let r=Math.max(0,Number(t)||0),o=e.getIsPlaying(),s=El(e.getTimelineRegistry?.(),i,r,e.getCanonicalFps());e.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),ke(i,"play"),Lt(e.getTimelineRegistry?.(),i,u=>{typeof u.timeScale=="function"&&u.timeScale(e.getPlaybackRate()),ke(u,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(s,!0)):(e.setIsPlaying(!1),e.onSyncMedia(s,!1)),e.onRenderFrameSeek(s),e.onStatePost(!0)},renderSeek:t=>{let n=e.getTimeline(),i=e.getCanonicalFps(),r=n?(Al(e.getTimelineRegistry?.(),n),jr(n,t,i)):mt(Math.max(0,Number(t)||0),i);e.onDeterministicSeek(r),e.setIsPlaying(!1),e.onSyncMedia(r,!1),e.onRenderFrameSeek(r),e.onStatePost(!0)},getTime:()=>Nt(e.getTimeline(),"time",0),getDuration:()=>Nt(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:t=>e.setPlaybackRate(t),getPlaybackRate:()=>e.getPlaybackRate()}}function Kr(){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:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var wl=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function si(e){return e.id||e.getAttribute("data-hf-id")||null}function oi(e){if(e==null)return null;let t=Number(e);return Number.isFinite(t)?t:null}function Fl(e,t){let n=e.getAttribute("data-composition-id");if(!n)return null;let i=Number(t[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Cl(e){if(!(e instanceof HTMLMediaElement)||!Number.isFinite(e.duration))return null;let t=oi(e.getAttribute("data-playback-start"))??oi(e.getAttribute("data-media-start"))??0;return e.duration>t?e.duration-t:null}function _l(e,t,n,i){let r=oi(e.getAttribute("data-duration"));return r!=null&&r>0?r:Fl(e,t)??Cl(e)??Math.max(0,n-i)}function Ml(e){for(let[t,n]of e){let i=t.parentElement;for(;i;){let r=e.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Jr(e){let{startResolver:t,timelineRegistry:n,rootDuration:i}=e,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let u of document.querySelectorAll("[data-start]")){if(u===o||wl.has(u.tagName))continue;let a=t.resolveStartForElement(u,0);if(_l(u,n,i,a)<=0)continue;let l={id:si(u)??`__clip-${s++}`,element:u,parentId:null,children:[]};r.set(u,l)}return Ml(r),{roots:Array.from(r.values()).filter(u=>u.parentId===null)}}function $e(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function Xr(e){let t=(e??"").trim();if(!t)return null;let n=$e(t);if(n!=null)return{kind:"absolute",value:n};let i=t.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",u=Number.parseFloat(s),a=Number.isFinite(u)?Math.max(0,u):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}var vl="data-hf-authored-duration",Tl="data-hf-authored-end";function Nl(e){return $e(e.getAttribute("data-duration"))}function Ll(e){return $e(e.getAttribute("data-end"))}function Rl(e){return $e(e.getAttribute(vl))}function kl(e){return $e(e.getAttribute(Tl))}function Ke(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=c=>{let p=document.getElementById(c);return p||(document.querySelector(`[data-composition-id="${CSS.escape(c)}"]`)??null)},u=c=>{let p=r.get(c);if(p!==void 0)return p;let f=null,x=Nl(c)??(n?Rl(c):null);if(x!=null&&x>0&&(f=x),f==null||f<=0){let E=Ll(c)??(n?kl(c):null);if(E!=null){let b=l(c,0),g=E-b;Number.isFinite(g)&&g>0&&(f=g)}}if((f==null||f<=0)&&c instanceof HTMLMediaElement){let E=$e(c.getAttribute("data-playback-start"))??$e(c.getAttribute("data-media-start"))??0;Number.isFinite(c.duration)&&c.duration>E&&(f=(c.duration-E)/Tt(c))}if(f==null||f<=0){let E=c.getAttribute("data-composition-id");if(E){let b=t[E]??null;if(b&&typeof b.duration=="function")try{let g=Number(b.duration());Number.isFinite(g)&&g>0&&(f=g)}catch(g){L("runtime.startResolver.site1",g)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(c,f),f):(r.set(c,null),null)},a=(c,p)=>{if(c.hasAttribute("data-composition-id")){let x=c.parentElement?.closest("[data-composition-id]");return x?l(x,p):0}let f=c.closest("[data-composition-id]");return f?l(f,p):0},l=(c,p)=>{let f=i.get(c);if(f!==void 0)return f??p;if(o.has(c))return p;o.add(c);try{let x=Xr(c.getAttribute("data-start"));if(!x){if(c.hasAttribute("data-composition-id")){let _=c.parentElement;if(_&&(_.hasAttribute("data-composition-src")||_.hasAttribute("data-composition-id")||_.hasAttribute("data-composition-file"))){let N=l(_,p);return i.set(c,N),N}}return i.set(c,p),p}if(x.kind==="absolute"){let _=Math.max(0,x.value),N=Math.max(0,a(c,p)+_);return i.set(c,N),N}let E=s(x.refId);if(!E)return i.set(c,p),p;let b=l(E,0),g=u(E);if(g==null||g<=0){let _=Math.max(0,b+x.offset);return i.set(c,_),_}let A=Math.max(0,b+g+x.offset);return i.set(c,A),A}finally{o.delete(c)}};return{resolveStartForElement:(c,p=0)=>l(c,Math.max(0,p)),resolveDurationForElement:c=>u(c)}}function ai(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}var Dl="data-hf-authored-duration",Il="data-hf-authored-end";function Ce(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function li(e){return Ce(e.getAttribute("data-duration"))??Ce(e.getAttribute(Dl))}function Yr(e){return Ce(e.getAttribute("data-end"))??Ce(e.getAttribute(Il))}function ui(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}var Qr={composition:0,video:1,image:2,element:3,audio:4};function Pl(e){if(e.length===0)return;let t=new Map;for(let s of e){let u=t.get(s.track)??new Set;u.add(s.kind),t.set(s.track,u)}if(!Array.from(t.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...t.keys()].sort((s,u)=>s-u);for(let s of o){let u=t.get(s);if(u.size===1)r.set(`${s}:${[...u][0]}`,i++);else{let a=[...u].sort((l,c)=>(Qr[l]??99)-(Qr[c]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of e){let u=`${s.track}:${s.kind}`,a=r.get(u);a!=null&&(s.track=a)}}function kt(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 Zr(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return kt(t);let n=e.getAttribute("data-composition-src");if(n)return kt(n);let i=e.querySelector("img[src], video[src], audio[src], source[src]");return i?kt(i.getAttribute("src")):null}function Ol(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 Bl(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 Hl(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function Rt(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function Gl(e,t,n){let i=e.getAttribute("data-timeline-label")??e.getAttribute("data-label")??e.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=e.getAttribute("data-composition-id");if(r)return Rt(r);let o=e.id;if(o)return Rt(o);let s=Ol(e);if(s)return Rt(s);let u=Bl(Zr(e));if(u)return Rt(u);let a=Hl(e);return a||`${Rt(t)} ${n+1}`}function eo(e){let n=window.__timelines??{},i=Ke({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let D=n[O]??null;if(!D||typeof D.duration!="function")return null;try{let G=Number(D.duration());return Number.isFinite(G)&&G>0?G:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let G=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>G?Math.max(0,(O.duration-G)/Tt(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let D=0;for(let G of O){let Q=G.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(G,0):Math.max(0,Number(G.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(G);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},u=(O,D)=>{let G=[],Q=null,ae=null,j=null,z=O.parentElement;for(;z;){let Y=z.getAttribute("data-composition-id");Y&&(G.push(Y),!j&&z!==D&&(j=Y),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(Y)??null)),z=z.parentElement}return{parentCompositionId:j,compositionAncestors:G.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),c=a?.getAttribute("data-composition-id")??null,p=a?i.resolveStartForElement(a,0):0,f=s(),x=f!=null?Math.max(0,f-Math.max(0,p)):null,E=r(c),b=li(a??document.body),g=ui(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),G=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||G==null||G<=0?null:Math.max(0,D)+G})),A=g!=null?Math.max(0,g-Math.max(0,p)):null,_=typeof E=="number"&&Number.isFinite(E)&&E>0?E:null,N=typeof b=="number"&&Number.isFinite(b)&&b>0?b:null,$=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,B=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,v=ui($,B),S=_!=null&&v!=null&&_>v+1,M=N??(S?v:ui(_,$,B))??null,R=(M!=null?p+M:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),W=(O,D)=>!Number.isFinite(D)||D<=0?0:R==null||!Number.isFinite(R)?D:!Number.isFinite(O)||O>=R?0:Math.max(0,Math.min(D,R-O)),q=[],ie=[],P=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),se=0;for(let O=0;O<P.length;O+=1){let D=P[O];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let G=u(D,a),Q=i.resolveStartForElement(D,G.inheritedStart??0),ae=D.getAttribute("data-composition-id"),j=li(D);if((j==null||j<=0)&&ae&&ae!==c&&(j=r(ae)),(j==null||j<=0)&&D instanceof HTMLMediaElement){let Me=Ce(D.getAttribute("data-playback-start"))??Ce(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&(j=Math.max(0,D.duration-Me))}if(j==null||j<=0){let Me=G.inheritedDuration;if(Me!=null&&Me>0){let Ue=(G.inheritedStart??0)+Me;j=Math.max(0,Ue-Q)}}if(j==null||j<=0||(j=W(Q,j),j<=0))continue;let z=Q+j;se=Math.max(se,z);let Y=D.tagName.toLowerCase(),Pe=ae&&ae!==c?"composition":Y==="video"?"video":Y==="audio"?"audio":Y==="img"?"image":"element";q.push({id:si(D)??ae??null,label:Gl(D,Pe,q.length),start:Q,duration:j,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Pe,tagName:Y,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:G.compositionAncestors,parentCompositionId:G.parentCompositionId,nodePath:null,compositionSrc:kt(D.getAttribute("data-composition-src")),assetUrl:Zr(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Ce(D.getAttribute("data-timeline-priority"))})}let Ee=new Set(q.map(O=>O.id)),H=a?.getAttribute("data-composition-id")??null,U=H?n[H]??null:null;if(U&&a){let O=U;if(typeof O.getChildren=="function")try{let D=O.getChildren(!0,!0,!1)??[],G=new Map;for(let j of a.children){let z=j;if(!z.id)continue;let Y=z.tagName.toLowerCase();Y==="script"||Y==="style"||Y==="link"||G.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=j=>{let z=j;for(;z;){if(G.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let j of D){if(typeof j.targets!="function"||typeof j.startTime!="function"||typeof j.duration!="function")continue;let z=j.startTime(),Y=j.parent;for(;Y&&Y!==U&&typeof Y.startTime=="function";)z+=Y.startTime(),Y=Y.parent;let Pe=z+j.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Pe)))for(let Me of j.targets()){if(!(Me instanceof Element))continue;let At=Q(Me);if(!At)continue;let Ue=G.get(At);Ue&&(Ue.start=Math.min(Ue.start,z),Ue.end=Math.max(Ue.end,Pe))}}let ae=q.length>0?Math.max(...q.map(j=>j.track))+1:0;for(let[j,z]of G){if(z.start===1/0||z.end===-1/0)continue;let Y=j;if(Ee.has(Y.id))continue;let Pe=Math.max(0,z.end-z.start);if(Pe<=0)continue;let Me=W(z.start,Pe);Me<=0||(se=Math.max(se,z.start+Me),q.push({id:Y.id,label:Y.getAttribute("data-timeline-label")??Y.getAttribute("data-label")??Y.getAttribute("aria-label")??Y.id,start:z.start,duration:Me,track:Number.parseInt(Y.getAttribute("data-track-index")??Y.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:Y.tagName.toLowerCase(),compositionId:Y.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Y.getAttribute("data-timeline-role"),timelineLabel:Y.getAttribute("data-timeline-label"),timelineGroup:Y.getAttribute("data-timeline-group"),timelinePriority:Ce(Y.getAttribute("data-timeline-priority"))}),Ee.add(Y.id))}}catch(D){L("runtime.timeline.site1",D)}}if(a&&M!=null&&M>0){let O=q.length>0?Math.max(...q.map(D=>D.track))+1:0;for(let D of a.children){let G=D;if(!G.id||Ee.has(G.id))continue;let Q=G.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=G.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(G).display==="none")continue;let z=W(0,M);z<=0||(se=Math.max(se,z),q.push({id:G.id,label:G.getAttribute("data-timeline-label")??G.getAttribute("data-label")??G.getAttribute("aria-label")??G.id,start:0,duration:z,track:Number.parseInt(G.getAttribute("data-track-index")??G.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:G.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:G.getAttribute("data-timeline-label"),timelineGroup:G.getAttribute("data-timeline-group"),timelinePriority:Ce(G.getAttribute("data-timeline-priority"))}),Ee.add(G.id))}}Pl(q);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ai(D))continue;let G=i.resolveStartForElement(O,0),Q=li(O);if((Q==null||Q<=0)&&Yr(O)!=null){let Y=Yr(O);Q=Math.max(0,Y-G)}let ae=r(D),j=Q&&Q>0?Q:ae;if(j==null||j<=0)continue;let z=W(G,j);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:G,duration:z,thumbnailUrl:kt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,M??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&N==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,e.canonicalFps))),clips:q,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=ll(_s(),1),Ms=ce.default,Yp=ce.default.stringify,Qp=ce.default.fromJSON,Zp=ce.default.plugin,eh=ce.default.parse,th=ce.default.list,nh=ce.default.document,ih=ce.default.comment,rh=ce.default.atRule,oh=ce.default.rule,sh=ce.default.decl,ah=ce.default.root,lh=ce.default.CssSyntaxError,uh=ce.default.Declaration,ch=ce.default.Container,dh=ce.default.Processor,fh=ce.default.Document,mh=ce.default.Comment,ph=ce.default.Warning,hh=ce.default.AtRule,gh=ce.default.Result,xh=ce.default.Input,bh=ce.default.Rule,yh=ce.default.Root,Sh=ce.default.Node;var Ii="data-hf-authored-id",vs="data-hf-inner-root";function Pi(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Oi(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function lc(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Ts(e){let t=e.trim();return t?Array.from(new Set([t,lc(t)])).filter(Boolean):[]}function uc(e){return!!e&&/[\\w-]/.test(e)}function cc(e,t,n){let i=Ts(t).sort((u,a)=>a.length-u.length);if(i.length===0)return e;let r="",o=0,s=null;for(let u=0;u<e.length;u+=1){let a=e[u],l=u>0?e[u-1]:"";if(s){r+=a,a===s&&l!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let c=i.find(p=>e.startsWith(p,u+1));if(c){let p=e[u+1+c.length];if(!uc(p)){r+=n,u+=c.length;continue}}}r+=a}return r}function dc(e,t){let n=t?.trim();return n?cc(e,n,`[${Ii}="${Oi(n)}"]`):e}function fc(e,t,n,i,r){let o=dc(e,i),s=mc(o,t,n),u=s.trim();if(!u||/^(html|body|:root|\\*)$/i.test(u))return e;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Pi(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(u))return u.replace(a,"").trim()===""?`${t}:not(:has([${vs}])), ${t} > [${vs}]`:s.replace(a,t);let l=s.match(/^\\s*/)?.[0]??"",c=s.match(/\\s*$/)?.[0]??"";if(r){let p=i?`[${Ii}="${Oi(i)}"]`:null;if(p&&u.startsWith(p)){let f=u.slice(p.length);return`${l}${t}${p}${f}${c}`}}return`${l}${t} ${u}${c}`}function mc(e,t,n){let i=Pi(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return e.replace(new RegExp(`${r}(?:${o})+`,"g"),t).replace(new RegExp(`(?:${o})+${r}`,"g"),t)}var pc=new Set(["keyframes","-webkit-keyframes","font-face"]);function hc(e){return e?.type==="atrule"}function gc(e){let t=e.parent;for(;t;){if(hc(t)&&pc.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Bi(e,t,n,i,r){let o=t.trim();if(!e||!o)return e;let s=n||`[data-composition-id="${Oi(o)}"]`,u=Ms.parse(e);return u.walkRules(a=>{gc(a)||(a.selectors=a.selectors.map(l=>fc(l,s,o,i,r?.compoundAuthoredRoot)))}),u.toResult({map:!1}).css}function Ns(e,t,n="[HyperFrames] composition script error:",i,r=t,o){let s=JSON.stringify(t),u=JSON.stringify(r),a=JSON.stringify(n),l=Pi(t),c=JSON.stringify(o?.trim()||null),p=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),x=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),E=JSON.stringify(Ts(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${u};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${c};\n var __hfAuthoredRootAttr = ${JSON.stringify(Ii)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${p} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${x};\n var __hfAuthoredRootIdForms = ${E};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n // 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 return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${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})();`}function Ls(){if(typeof document>"u")return{};let e=Hi(document.documentElement),t=xc();return{...e,...t}}function Hi(e){if(!e)return{};let t=e.getAttribute("data-composition-variables");if(!t)return{};let n;try{n=JSON.parse(t)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function xc(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}var bc=8e3,yc=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Sc=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ec=["src","href"];function Ac(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function ks(e,t){if(!t)return e;let n=e.trim();if(Ac(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function Ds(e,t){return!t||!e?e:e.replace(Sc,(n,i,r)=>{let o=ks(r||"",t);return o===r?n:`url(${i||""}${o}${i||""})`})}function wc(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let i of Ec){let r=n.getAttribute(i);if(r==null)continue;let o=ks(r,t);o!==r&&n.setAttribute(i,o)}}function Fc(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=Ds(i,t);r!==i&&n.setAttribute("style",r)}}function Cc(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let i=n.textContent||"",r=Ds(i,t);r!==i&&(n.textContent=r)}}function Is(e,t){if(t){wc(e,t),Fc(e,t),Cc(e,t);for(let n of Array.from(e.querySelectorAll("template")))Is(n.content,t)}}function _c(e,t){return`${e}__hf${t}`}var Mc=e=>new Promise(t=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),t({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),bc)});function Gi(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}var vc=["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 Tc(e){let t=document.importNode(e,!0),n=t.getAttribute("id")?.trim();for(let o of vc)t.removeAttribute(o);n&&(t.removeAttribute("id"),t.setAttribute("data-hf-authored-id",n)),t.setAttribute("data-hf-inner-root","true");let i=t.getAttribute("data-width"),r=t.getAttribute("data-height");return t.style.width=i?`${i}px`:"100%",t.style.height=r?`${r}px`:"100%",t}function Rs(e,t){let n=e.trim();if(!n)return e;try{return yc.test(n)?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}function Nc(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 Mn(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 Lc(e){let t=new Map;for(let n of e){let i=Mn(n).authoredCompositionId||"";i&&t.set(i,(t.get(i)||0)+1)}return t}function Ps(e){let t=Mn(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function Rc(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function kc(e){return e.hasAttribute("data-composition-src")?!0:Ps(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:Rc(e):!1}function Ui(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:Ps(t))}function Os(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set(Ui().map(n=>Mn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function Bs(e,t=Lc(e)){let n=new Map,i=new Map;for(let r of e){let{authoredCompositionId:o,runtimeCompositionId:s}=Mn(r),u=kc(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(t.get(o)||0)>1,l=s||o;if(u){let c=a?(n.get(o)||0)+1:0;a&&n.set(o,c),l=a?_c(o,c):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",l),s&&s!==l&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:l})}return i}async function Wi(e){let t=null;e.authoredCompositionId&&(t=Array.from(e.sourceNode.querySelectorAll("[data-composition-id]")).find(x=>x.getAttribute("data-composition-id")===e.authoredCompositionId)??null);let n=t??e.sourceNode,i=t?.getAttribute("data-composition-id")?.trim()||e.authoredCompositionId||null,r=e.runtimeCompositionId||i||null,o=t?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(e.headLinks)for(let f of e.headLinks){let x=f.getAttribute("href")||"";x&&(document.head.querySelector(`link[href="${CSS.escape(x)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(e.headStyles)for(let f of e.headStyles){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=Bi(x.textContent||"",i,s,o)),document.head.appendChild(x),e.injectedStyles.push(x))}let u=Array.from(n.querySelectorAll("style"));for(let f of u){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=Bi(x.textContent||"",i,s,o)),document.head.appendChild(x),e.injectedStyles.push(x))}let a=[];if(e.headScripts)for(let f of e.headScripts){let x=f.getAttribute("type")?.trim()??"",E=f.getAttribute("src")?.trim()??"";if(E){let b=Rs(E,e.compositionUrl);a.push({kind:"external",src:b,type:x})}else{let b=f.textContent?.trim()??"";b&&a.push({kind:"inline",content:b,type:x,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),c=[...a];for(let f of l){let x=f.getAttribute("type")?.trim()??"",E=f.getAttribute("src")?.trim()??"";if(E){let b=Rs(E,e.compositionUrl);c.push({kind:"external",src:b,type:x})}else{let b=f.textContent?.trim()??"";b&&c.push({kind:"inline",content:b,type:x,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let p=Array.from(n.querySelectorAll("style"));for(let f of p)f.parentNode?.removeChild(f);if(t){let f=t.getAttribute("data-width"),x=t.getAttribute("data-height"),E=e.parseDimensionPx(f),b=e.parseDimensionPx(x);f&&e.host.setAttribute("data-width",f),x&&e.host.setAttribute("data-height",x),E&&e.host instanceof HTMLElement&&(e.host.style.width=E),b&&e.host instanceof HTMLElement&&(e.host.style.height=b),t.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked",""),e.host.appendChild(Tc(t))}else e.hasTemplate?e.host.appendChild(document.importNode(n,!0)):e.host.innerHTML=e.fallbackBodyInnerHtml;if(r){let f={...e.declaredVariableDefaults??{},...Nc(e.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of c){let x=document.createElement("script");if(f.type&&(x.type=f.type),x.async=!1,f.kind==="external"?x.src=f.src:f.type.toLowerCase()==="module"?x.textContent=f.content:f.scopeCompositionId?x.textContent=Ns(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):x.textContent=`(function(){${f.content}})();`,document.body.appendChild(x),e.injectedScripts.push(x),f.kind==="external"){let E=await Mc(x);E.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:E.status,elapsedMs:E.elapsedMs}})}}}async function Hs(e){let t=Ui();if(Os(),t.length===0)return;let n=Bs(t),i=t.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let u=document.querySelector(`template#${CSS.escape(s)}-template`);Gi(r),await Wi({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function Gs(e){let t=Ui();if(Os(),t.length===0)return;let n=Bs(t),i=t.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),u=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||u||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Gi(r);try{let c=u!=null?document.querySelector(`template#${CSS.escape(u)}-template`):null;if(c){await Wi({host:r,authoredCompositionId:u,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let p=await fetch(o);if(!p.ok)throw new Error(`HTTP ${p.status}`);let f=await p.text(),E=new DOMParser().parseFromString(f,"text/html");Is(E,l);let b=(u?E.querySelector(`template#${CSS.escape(u)}-template`):null)??E.querySelector("template"),g=b?b.content:E.body,A=b?void 0:Array.from(E.head.querySelectorAll("style")),_=b?void 0:Array.from(E.head.querySelectorAll("script")),N=b?void 0:Array.from(E.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Wi({host:r,authoredCompositionId:u,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:g,hasTemplate:!!b,fallbackBodyInnerHtml:E.body.innerHTML,compositionUrl:l,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,headStyles:A,headScripts:_,headLinks:N,declaredVariableDefaults:Hi(E.documentElement),onDiagnostic:e.onDiagnostic})}catch(c){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:u,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:c instanceof Error?c.message:"unknown_error"}}),Gi(r)}}))}function Dc(e){return e instanceof HTMLElement?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function Ic(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&e.push(r)}return e}function Pc(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 Vi(){let e=window.gsap;e&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(t=>t.ok?t.json():null).then(t=>{if(!t||!Array.isArray(t)||t.length===0)return;let n=Ic();for(let i of t){let r=null;if(i.wordId&&(r=Dc(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=e.getTweensOf(r).filter(c=>c.vars.color!==void 0).sort((c,p)=>c.startTime()-p.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let c of a)String(c.vars.color)===l?i.dimColor&&(c.vars.color=i.dimColor):i.activeColor&&(c.vars.color=i.activeColor);i.dimColor&&e.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&e.set(r,s),Object.keys(o).length>0){let u=Pc(r);e.set(u,o)}}}).catch(()=>{})}var Vs="data-hf-edit-base-x",zs="data-hf-edit-base-y",zi="data-hf-edit-original-translate",vn=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},Oc=e=>{let t=[],n=0,i="";for(let r of e.trim())r==="("&&(n+=1),r===")"&&(n=Math.max(0,n-1)),/\\s/.test(r)&&n===0?(i&&t.push(i),i=""):i+=r;return i&&t.push(i),t},Ws=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,qi=(e,t)=>Ws.test(e)&&Ws.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,Bc=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[i,r,o]=Oc(e);if(i===void 0)return`${t} ${n}`;if(r===void 0)return`${qi(i,t)} ${n}`;let s=o===void 0?"":` ${o}`;return`${qi(i,t)} ${qi(r,n)}${s}`},Hc=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},Gc=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let n=e.ownerDocument.defaultView,i=n?n.getComputedStyle(e).getPropertyValue("translate").trim():"";return i==="none"?"":i}catch{return""}},Us=new WeakMap;function Wc(e,t){let n=Us.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){st("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let i=vn(e.getAttribute("data-x"))-vn(e.getAttribute(Vs)),r=vn(e.getAttribute("data-y"))-vn(e.getAttribute(zs));e.hasAttribute(zi)||e.setAttribute(zi,Gc(e)),n===void 0&&Hc(e);let o=e.getAttribute(zi)??"",s=Bc(o,`${i}px`,`${r}px`);e.style.setProperty("translate",s),Us.set(e,e.style.getPropertyValue("translate"))}function ji(e){let t=e.querySelectorAll(`[${Vs}], [${zs}]`),n=0;for(let i=0;i<t.length;i++){let r=t[i];r instanceof HTMLElement&&(Wc(r),n+=1)}return n}var Qt="data-color-grading",qs="__hf_color_grading_",Uc="rec709",Tn={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},Nn={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},Ln={blur:0,pixelate:0},js=Object.keys(Tn),Vc=Object.keys(Nn),$s=Object.keys(Ln);function Ae(e,t,n={},i={}){return{id:e,label:t,adjust:{...Tn,...n},details:{...Nn,...i},effects:{...Ln}}}var zc=[Ae("neutral","Neutral"),Ae("natural-lift","Natural Lift",{exposure:.04,contrast:.06,highlights:-.06,shadows:.08,saturation:.05}),Ae("fresh-pop","Fresh Pop",{exposure:.08,contrast:.12,whites:.06,shadows:.04,temperature:-.02,vibrance:.08,saturation:.16}),Ae("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Ae("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Ae("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Ae("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Ae("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Ae("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Ae("vintage-wash","Vintage Wash",{exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},{vignette:.18}),Ae("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Ae("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Ae("warm-clean","Warm Clean",{exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,vibrance:.04,saturation:.06}),Ae("cool-clean","Cool Clean",{contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}),Ae("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Ae("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Ae("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06})],qc=new Map(zc.map(e=>[e.id,e])),jc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,$c={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}},Kc={vignette:{min:0,max:1},vignetteMidpoint:{min:0,max:1},vignetteRoundness:{min:-1,max:1},vignetteFeather:{min:0,max:1},grain:{min:0,max:1},grainSize:{min:0,max:1},grainRoughness:{min:0,max:1}},Jc={blur:{min:0,max:1},pixelate:{min:0,max:1}};function ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xc(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function Ks(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function $i(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Xc(n,t.min,t.max):0}function Yc(e){if(e==null)return null;let t=String(e).trim();return t||null}function Qc(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!ut(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:Ks(e.intensity,1)}}function Zc(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return ut(n)?n:null}catch{return null}return{preset:t,intensity:1}}return ut(e)?e:null}function ed(e,t){let n=e.trim().match(jc);if(!n)return e;let i=n[1]??n[2]??"";return i&&Object.hasOwn(t,i)?t[i]:e}function Ki(e,t){if(typeof e=="string"){let i=ed(e,t);if(i!==e)return i;let r=e.trim();if(!r.startsWith("{"))return e;try{return Ki(JSON.parse(r),t)}catch{return e}}if(!ut(e))return e;let n={};for(let[i,r]of Object.entries(e))n[i]=Ki(r,t);return n}function td(e){return e?qc.get(e)??null:null}function Ji(e){let t=Zc(e);if(!t||t.enabled===!1)return null;let n=Yc(t.preset),i=td(n),r=i?.adjust??Tn,o=i?.details??Nn,s=i?.effects??Ln,u=ut(t.adjust)?t.adjust:{},a=ut(t.details)?t.details:{},l=ut(t.effects)?t.effects:{},c=js.reduce((x,E)=>(x[E]=$i(u[E]??r[E],$c[E]),x),{...Tn}),p=Vc.reduce((x,E)=>(x[E]=$i(a[E]??o[E],Kc[E]),x),{...Nn}),f=$s.reduce((x,E)=>(x[E]=$i(l[E]??s[E],Jc[E]),x),{...Ln});return{enabled:!0,preset:n,intensity:Ks(t.intensity,1),adjust:c,details:p,effects:f,lut:Qc(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():Uc}}function Js(e,t){return Ji(Ki(e,t))}function Zt(e){return!e?.enabled||e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:js.some(t=>Math.abs(e.adjust[t])>1e-4)||Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||$s.some(t=>Math.abs(e.effects[t])>1e-4)}var Se=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);xe(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},nd=[0,0,0],id=[1,1,1],Yi=64;function rd(e){let t=!1;for(let n=0;n<e.length;n++){let i=e[n];if(i===\'"\'&&(t=!t),i==="#"&&!t)return e.slice(0,n)}return e}function Ze(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Se(`Invalid number "${e}"`,t);return n}function Xs(e,t,n){if(e.length!==3)throw new Se(`${t} expects three numbers`,n);return[Ze(e[0],n),Ze(e[1],n),Ze(e[2],n)]}function Ys(e,t,n){if(!e)throw new Se(`${t} expects a size`,n);let i=Number(e);if(!Number.isInteger(i)||i<2)throw new Se(`${t} must be an integer greater than 1`,n);return i}function od(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Se("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function sd(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 ad(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function Qs(e,t={}){let n=t.maxSize??Yi,i=null,r=nd,o=id,s=null,u=null,a=[],l=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let p=0;p<l.length;p++){let f=p+1,x=rd(l[p]??"").trim();if(!x)continue;let E=x.split(/\\s+/),b=(E[0]??"").toUpperCase(),g=E.slice(1);if(b==="TITLE"){i=sd(x);continue}if(b==="DOMAIN_MIN"){r=Xs(g,b,f);continue}if(b==="DOMAIN_MAX"){o=Xs(g,b,f);continue}if(b==="LUT_3D_INPUT_RANGE"){if(g.length!==2)throw new Se(`${b} expects two numbers`,f);let A=Ze(g[0],f),_=Ze(g[1],f);if(_<=A)throw new Se("LUT_3D_INPUT_RANGE max must exceed min",f);r=[A,A,A],o=[_,_,_];continue}if(b==="LUT_1D_SIZE"){s=Ys(g[0],b,f);continue}if(b==="LUT_3D_SIZE"){if(u=Ys(g[0],b,f),u>n)throw new Se(`LUT_3D_SIZE ${u} exceeds max ${n}`,f);continue}if(!ad(b)){if(b.startsWith("LUT_"))throw new Se(`Unsupported cube keyword ${b}`,f);continue}if(!u)throw s?new Se("1D cube LUTs are not supported yet",f):new Se("LUT data appears before LUT_3D_SIZE",f);if(E.length!==3)throw new Se("LUT data rows must contain three numbers",f);a.push(Ze(E[0],f),Ze(E[1],f),Ze(E[2],f))}if(s&&u)throw new Se("Mixed 1D and 3D cube LUTs are not supported yet");if(!u)throw s?new Se("1D cube LUTs are not supported yet"):new Se("Missing LUT_3D_SIZE");od(r,o);let c=u*u*u;if(a.length!==c*3)throw new Se(`Expected ${c} LUT rows for size ${u}, found ${a.length/3}`);return{title:i,size:u,domainMin:r,domainMax:o,data:new Float32Array(a)}}function ld(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function Xi(e){return Math.round(ld(e)*255)}function Zs(e){let t=e.size,n=t*t,i=t,r=new Uint8Array(n*i*4);for(let o=0;o<t;o++)for(let s=0;s<t;s++)for(let u=0;u<t;u++){let a=((o*t+s)*t+u)*3,l=(s*n+o*t+u)*4;r[l]=Xi(e.data[a]??0),r[l+1]=Xi(e.data[a+1]??0),r[l+2]=Xi(e.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var qe=new Map,ud="data-hf-color-grading-canvas",sa="data-hf-color-grading-source-hidden",cd="__hf_color_grading_canvas__",dd=16,en={enabled:!1,position:.5,softness:0,lineWidth:2};function fd(e){let t=window,i=e.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?t.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=t.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:t.__hfVariables??{}}function Qi(e){let t=e.getAttribute(Qt);return t==null?null:Js(t,fd(e))}var md=["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`),pd=["#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_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","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 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_blur;","uniform float u_pixelate;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","float grainHash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }","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)); }","vec4 sampleSource(vec2 uv){ return texture2D(u_source, clampUv(uv)); }","vec4 sampleBlur(vec2 uv){ return texture2D(u_blurSource, clampUv(uv)); }","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;"," }"," vec4 base = sampleSource(sampleUv);"," float blur = clamp(u_blur, 0.0, 1.0);"," if (blur > 0.0 && u_blurReady > 0.5) {"," base = mix(base, sampleBlur(sampleUv), blur);"," }"," return base;","}","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));","}","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);"," vec4 sampleColor = sampleMedia(uv);"," vec3 original = originalSample.rgb;"," vec3 color = sampleColor.rgb * 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));"," color = clamp(color, 0.0, 1.0);"," color = clamp(applyLut(color), 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 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);"," }"," color = clamp(color, 0.0, 1.0);"," vec3 graded = mix(original, color, u_intensity);"," 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`),hd=["#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;","vec4 readSource(vec2 uv){"," vec4 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0)));"," color.rgb *= color.a;"," return color;","}","void main(){"," 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`);function ct(e){return e instanceof HTMLVideoElement||e instanceof HTMLImageElement}function ea(e,t,n){let i=e.createShader(n);return i?(e.shaderSource(i,t),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS)?i:(L("runtime.colorGrading.compileShader",e.getShaderInfoLog(i)),e.deleteShader(i),null)):null}function aa(e,t=pd){let n=ea(e,md,e.VERTEX_SHADER),i=ea(e,t,e.FRAGMENT_SHADER);if(!n||!i)return n&&e.deleteShader(n),i&&e.deleteShader(i),null;let r=e.createProgram();return r?(e.attachShader(r,n),e.attachShader(r,i),e.linkProgram(r),e.deleteShader(n),e.deleteShader(i),e.getProgramParameter(r,e.LINK_STATUS)?r:(L("runtime.colorGrading.linkProgram",e.getProgramInfoLog(r)),e.deleteProgram(r),null)):null}function er(e,t=e.LINEAR){let n=e.createTexture();return n?(e.bindTexture(e.TEXTURE_2D,n),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,e.UNSIGNED_BYTE,null),n):null}function gd(e,t){let n=aa(e,hd);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")}:null}function ta(e){let t=er(e),n=e.createFramebuffer();if(!t||!n)return t&&e.deleteTexture(t),n&&e.deleteFramebuffer(n),null;e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),i!==e.FRAMEBUFFER_COMPLETE?(e.deleteTexture(t),e.deleteFramebuffer(n),null):{texture:t,framebuffer:n,width:1,height:1}}function na(e,t,n,i){t.width===n&&t.height===i||(t.width=n,t.height=i,e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,i,0,e.RGBA,e.UNSIGNED_BYTE,null))}function la(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!t)return null;let n=aa(t),i=er(t),r=er(t,t.NEAREST);if(!n||!i||!r)return n&&t.deleteProgram(n),i&&t.deleteTexture(i),r&&t.deleteTexture(r),null;let o=t.createBuffer();return o?(t.bindBuffer(t.ARRAY_BUFFER,o),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),{gl:t,program:{program:n,texture:i,lutTexture:r,quad:o,position:t.getAttribLocation(n,"a_pos"),source:t.getUniformLocation(n,"u_source"),blurSource:t.getUniformLocation(n,"u_blurSource"),lut:t.getUniformLocation(n,"u_lut"),resolution:t.getUniformLocation(n,"u_resolution"),uvScale:t.getUniformLocation(n,"u_uvScale"),uvOffset:t.getUniformLocation(n,"u_uvOffset"),blurReady:t.getUniformLocation(n,"u_blurReady"),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"),exposure:t.getUniformLocation(n,"u_exposure"),contrast:t.getUniformLocation(n,"u_contrast"),highlights:t.getUniformLocation(n,"u_highlights"),shadows:t.getUniformLocation(n,"u_shadows"),whites:t.getUniformLocation(n,"u_whites"),blacks:t.getUniformLocation(n,"u_blacks"),temperature:t.getUniformLocation(n,"u_temperature"),tint:t.getUniformLocation(n,"u_tint"),vibrance:t.getUniformLocation(n,"u_vibrance"),saturation:t.getUniformLocation(n,"u_saturation"),vignette:t.getUniformLocation(n,"u_vignette"),vignetteMidpoint:t.getUniformLocation(n,"u_vignetteMidpoint"),vignetteRoundness:t.getUniformLocation(n,"u_vignetteRoundness"),vignetteFeather:t.getUniformLocation(n,"u_vignetteFeather"),grain:t.getUniformLocation(n,"u_grain"),grainSize:t.getUniformLocation(n,"u_grainSize"),grainRoughness:t.getUniformLocation(n,"u_grainRoughness"),grainSeed:t.getUniformLocation(n,"u_grainSeed"),blur:t.getUniformLocation(n,"u_blur"),pixelate:t.getUniformLocation(n,"u_pixelate"),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")}}):(t.deleteProgram(n),t.deleteTexture(i),t.deleteTexture(r),null)}function xd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bd(e){if(!xd(e))return{...en};let t=(n,i,r,o)=>{let s=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(r,Number.isFinite(s)?s:i))};return{enabled:e.enabled===!0,position:t(e.position,en.position,0,1),softness:t(e.softness,en.softness,0,.25),lineWidth:t(e.lineWidth,en.lineWidth,0,12)}}function ua(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 nr(e){return e instanceof Error?e.message:"LUT failed to load"}function yd(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 Sd(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return yd(t)}function Ed(e){let t=ua(e);if("error"in t)return{state:"error",message:t.error};let n=qe.get(t.href);if(n)return n;let i=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=>Qs(o,{maxSize:Yi})),r={state:"pending",promise:i};for(;qe.size>=dd;){let o=qe.keys().next().value;if(!o)break;qe.delete(o)}return qe.set(t.href,r),i.then(o=>{qe.get(t.href)===r&&qe.set(t.href,{state:"ready",lut:o})},o=>{qe.get(t.href)===r&&qe.set(t.href,{state:"error",message:nr(o)})}),r}function ia(e,t,n){if(e.lut?.src===t)return e.lut;let i=Zs(n),{gl:r,program:o}=e;try{return r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,o.lutTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,i.width,i.height,0,r.RGBA,r.UNSIGNED_BYTE,i.data),e.lut={src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},e.lutError=null,e.lutLoadingSrc=null,e.lut}catch(s){return e.lut=null,e.lutError=nr(s),e.lutLoadingSrc=null,L("runtime.colorGrading.uploadLut",s),null}}function Rn(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function ca(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),Rn(e.gl,t.scratch),Rn(e.gl,t.blur),e.effectTargets=null)}function da(e){ca(e),e.gl.deleteTexture(e.program.texture),e.gl.deleteTexture(e.program.lutTexture),e.gl.deleteBuffer(e.program.quad),e.gl.deleteProgram(e.program.program)}function Ad(e){let t=la(e.canvas);return t?(da(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function tr(e){if(!e.sourceHidden)return;e.element.removeAttribute(sa);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 wd(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=gd(t,e.program.quad),i=ta(t),r=ta(t);return!n||!i||!r?(n&&t.deleteProgram(n.program),i&&Rn(t,i),r&&Rn(t,r),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:i,blur:r},e.effectTargets)}function Fd(e,t,n,i,r){let o=Math.max(1,Math.ceil(i)),s=Math.max(1,Math.ceil(r));return na(e,t,o,s),na(e,n,o,s),{width:o,height:s}}function ra(e,t,n,i,r,o,s){e.bindFramebuffer(e.FRAMEBUFFER,i.framebuffer),e.viewport(0,0,r.width,r.height),e.useProgram(t.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t.source,0),e.uniform2f(t.resolution,r.width,r.height),e.uniform2f(t.direction,o.x,o.y),e.uniform1f(t.radius,s),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 Cd(e,t,n,i,r,o,s){let u=n;for(let a=0;a<Math.max(1,Math.floor(s));a++)ra(e,t.blurProgram,u,t.scratch,r,{x:1,y:0},o),ra(e,t.blurProgram,t.scratch.texture,i,r,{x:0,y:1},o),u=i.texture}function _d(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 i=ua(t);if("error"in i)return e.lut=null,e.lutLoadingSrc=null,e.lutError=i.error,null;if(e.lut?.src===i.href)return e.lut;e.lut=null;let r=Ed(t);return r.state==="ready"?ia(e,i.href,r.lut):r.state==="error"?(e.lutError=r.message,e.lutLoadingSrc=null,null):(e.lutLoadingSrc!==i.href&&(e.lutLoadingSrc=i.href,e.lutError=null,r.promise.then(o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(ia(e,i.href,o),We(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=nr(o),e.lutLoadingSrc=null,We(e))})),null)}function Zi(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&&ct(n))return n;try{let i=document.querySelector(t);return i&&ct(i)?i:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&ct(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&ct(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)),i=t[n]??null;return i&&ct(i)?i:null}catch{return null}}function Md(e){return e instanceof HTMLVideoElement?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:e instanceof HTMLImageElement&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function fa(e){return e instanceof HTMLVideoElement?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:e instanceof HTMLImageElement?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function vd(e){if(!e.id)return null;let t=document.getElementById(`__render_frame_${e.id}__`);return t instanceof HTMLImageElement&&fa(t)?t:null}function Td(e){return e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")}function Nd(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function Ld(e){if(e instanceof HTMLVideoElement){let t=vd(e);if(t)return t}return fa(e)?e:null}function oa(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 i=Number.parseFloat(n);return Number.isFinite(i)?i/100:null}return null}function Rd(e){let t=e.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<t.length;r++){let o=t[r]??"",s=oa(o,"x"),u=oa(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(u!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=u;continue}}return{x:n,y:i}}function kd(e,t,n,i,r,o){if(e<=0||t<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",u=e,a=t;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(e/n,t/i):Math.min(e/n,t/i);u=n*f,a=i*f,s==="scale-down"&&u>n&&a>i&&(u=n,a=i)}else s==="none"&&(u=n,a=i);let l=Rd(o||"center"),c=(e-u)*l.x/e,p=(t-a)*l.y/t;return{scaleX:u/e,scaleY:a/t,offsetX:c,offsetY:p}}function Dd(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Id(e,t){let{element:n,canvas:i}=e,r=n.parentElement;r&&Dd(e,r);let o=window.getComputedStyle(t);qr(i.style,o),i.style.pointerEvents="none",i.style.position="absolute",i.style.inset="auto",i.style.left=`${n.offsetLeft}px`,i.style.top=`${n.offsetTop}px`,i.style.right="auto",i.style.bottom="auto",i.style.width=`${n.offsetWidth}px`,i.style.height=`${n.offsetHeight}px`,i.style.display="block",i.style.opacity=e.sourceOpacityForCanvas,i.style.visibility=e.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),u=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return u<=0||a<=0?(i.style.display="none",null):(i.width!==u&&(i.width=u),i.height!==a&&(i.height=a),{width:u,height:a})}function Pd(e,t,n,i,r,o,s,u,a){e.uniform1i(t.source,0),e.uniform1i(t.blurSource,1),e.uniform1i(t.lut,2),e.uniform2f(t.resolution,s.width,s.height),e.uniform2f(t.uvScale,u.scaleX,u.scaleY),e.uniform2f(t.uvOffset,u.offsetX,u.offsetY),e.uniform1f(t.blurReady,r?1:0),e.uniform1f(t.lutEnabled,i?1:0),e.uniform1f(t.lutSize,i?.size??2),e.uniform2f(t.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),e.uniform3f(t.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),e.uniform3f(t.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),e.uniform1f(t.lutIntensity,n.lut?.intensity??0),e.uniform1f(t.exposure,n.adjust.exposure),e.uniform1f(t.contrast,n.adjust.contrast),e.uniform1f(t.highlights,n.adjust.highlights),e.uniform1f(t.shadows,n.adjust.shadows),e.uniform1f(t.whites,n.adjust.whites),e.uniform1f(t.blacks,n.adjust.blacks),e.uniform1f(t.temperature,n.adjust.temperature),e.uniform1f(t.tint,n.adjust.tint),e.uniform1f(t.vibrance,n.adjust.vibrance),e.uniform1f(t.saturation,n.adjust.saturation),e.uniform1f(t.vignette,n.details.vignette),e.uniform1f(t.vignetteMidpoint,n.details.vignetteMidpoint),e.uniform1f(t.vignetteRoundness,n.details.vignetteRoundness),e.uniform1f(t.vignetteFeather,n.details.vignetteFeather),e.uniform1f(t.grain,n.details.grain),e.uniform1f(t.grainSize,n.details.grainSize),e.uniform1f(t.grainRoughness,n.details.grainRoughness),e.uniform1f(t.grainSeed,a),e.uniform1f(t.blur,n.effects.blur),e.uniform1f(t.pixelate,n.effects.pixelate),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,o.enabled?1:0),e.uniform1f(t.comparePosition,o.position),e.uniform1f(t.compareSoftness,o.softness),e.uniform1f(t.compareLineWidth,o.lineWidth)}function Od(e){e.sourceHidden||(e.sourceInlineOpacity=e.element.style.getPropertyValue("opacity")||null,e.sourceInlineOpacityPriority=e.element.style.getPropertyPriority("opacity")),e.element.setAttribute(sa,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function We(e){if(e.destroyed||e.contextLost)return!1;let t=Ld(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Md(t);if(!n)return!1;let i=t instanceof HTMLElement?t:e.element,r=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),s=e.sourceHidden&&r==="0"&&o==="important",u=e.element.style.getPropertyValue("visibility"),a=Td(t);if(a&&Nd(e,t),a||!s){let E=window.getComputedStyle(a?t:e.element);e.sourceOpacityForCanvas=E.opacity||"1",e.sourceVisibleForCanvas=(a||u!=="hidden")&&E.visibility!=="hidden"}let l=Id(e,i);if(!l)return!1;let c=window.getComputedStyle(i),p=kd(l.width,l.height,n.width,n.height,c.objectFit,c.objectPosition),{gl:f,program:x}=e;try{let E=_d(e);f.activeTexture(f.TEXTURE0),f.bindTexture(f.TEXTURE_2D,x.texture),f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL,!0),f.texImage2D(f.TEXTURE_2D,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,t);let b=!1,g=Math.min(1,Math.max(0,e.grading.effects.blur));if(g>0){let _=wd(e);if(_){let N=Fd(f,_.scratch,_.blur,l.width,l.height);Cd(f,_,x.texture,_.blur,N,.75+Math.pow(g,1.35)*32,g>.55?3:2),b=!0}}else e.effectError=null,e.effectTargets&&ca(e);f.bindFramebuffer(f.FRAMEBUFFER,null),f.viewport(0,0,l.width,l.height),f.useProgram(x.program),f.activeTexture(f.TEXTURE0),f.bindTexture(f.TEXTURE_2D,x.texture),f.activeTexture(f.TEXTURE1),f.bindTexture(f.TEXTURE_2D,e.effectTargets?.blur.texture??x.texture),f.activeTexture(f.TEXTURE2),f.bindTexture(f.TEXTURE_2D,x.lutTexture);let A=e.grainSeed+(e.element instanceof HTMLVideoElement?Math.floor(e.element.currentTime*60):0);return Pd(f,x,e.grading,E,b,e.compare,l,p,A),f.bindBuffer(f.ARRAY_BUFFER,x.quad),f.enableVertexAttribArray(x.position),f.vertexAttribPointer(x.position,2,f.FLOAT,!1,0,0),f.drawArrays(f.TRIANGLE_STRIP,0,4),Od(e),e.hasDrawn=!0,e.drawError=null,!0}catch(E){return e.drawError=E instanceof Error?E.message:"Shader draw failed",L("runtime.colorGrading.drawEntry",E),!1}}function Ge(e,t,n,i){t.addEventListener(n,i),e.cleanup.push(()=>t.removeEventListener(n,i))}function Bd(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&e.element instanceof HTMLVideoElement&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function tn(e){if(e.destroyed||!(e.element instanceof HTMLVideoElement)||e.videoFrameHandle!==null||e.animationFrame!==null)return;let t=e.element,n=t;if(typeof n.requestVideoFrameCallback=="function"){e.videoFrameHandle=n.requestVideoFrameCallback(()=>{e.videoFrameHandle=null,We(e),!e.destroyed&&!t.paused&&!t.ended&&tn(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,We(e),!e.destroyed&&!t.paused&&!t.ended&&tn(e)})}function Hd(e){let t=()=>{We(e)};Ge(e,e.element,"load",t),Ge(e,e.element,"loadedmetadata",t),Ge(e,e.element,"loadeddata",t),Ge(e,e.element,"seeked",t),Ge(e,e.element,"timeupdate",t),Ge(e,window,"resize",t),e.element instanceof HTMLVideoElement&&(Ge(e,e.element,"play",()=>tn(e)),Ge(e,e.element,"pause",t)),Ge(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",tr(e)}),Ge(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!Ad(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",tr(e);return}e.drawError=null,We(e)}),typeof ResizeObserver<"u"&&(e.resizeObserver=new ResizeObserver(t),e.resizeObserver.observe(e.element))}function Gd(e){if(!e.destroyed){e.destroyed=!0,Bd(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();e.cleanup.length=0,e.canvas.remove(),da(e),tr(e),e.touchedParent&&(e.parentInlinePosition===null?e.touchedParent.style.removeProperty("position"):e.touchedParent.style.position=e.parentInlinePosition)}}function Wd(e){let t=document.createElement("canvas");return e.id&&(t.id=`${qs}${e.id}`),t.className=cd,t.setAttribute(ud,"true"),t.setAttribute("data-hyperframes-ignore",""),t.setAttribute("data-hyperframes-picker-ignore",""),t.setAttribute("data-hf-ignore",""),t.setAttribute("aria-hidden","true"),t.style.pointerEvents="none",t.style.display="none",e.parentNode?.insertBefore(t,e.nextSibling),t}function ma(){let e=new WeakMap,t=new Set,n=null,i=!1,r=(b,g,A)=>{let _=e.get(b);if(_)return _.grading=g,_.source=A,We(_),b instanceof HTMLVideoElement&&!b.paused&&tn(_),!0;let N=Wd(b),$=la(N);if(!$)return N.remove(),!1;let B={element:b,canvas:N,gl:$.gl,program:$.program,grading:g,compare:{...en},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,effectError:null,source:A,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(b).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(b).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Sd(b),destroyed:!1};return e.set(b,B),t.add(b),Hd(B),We(B),b instanceof HTMLVideoElement&&!b.paused&&tn(B),!0},o=(b,g)=>{if(i)return!1;let A=Zi(b);if(!A)return!1;let _=e.get(A);if(!_){let N=Qi(A);if(!Zt(N)||!r(A,N,"attribute"))return!1;_=e.get(A)}return _?(_.compare=bd(g),We(_),!0):!1},s=b=>{let g=e.get(b);g&&(Gd(g),e.delete(b),t.delete(b))},u=()=>{if(i)return 0;let b=new Set;document.querySelectorAll(`video[${Qt}], img[${Qt}]`).forEach(A=>{if(!ct(A))return;b.add(A);let _=Qi(A);Zt(_)?r(A,_,"attribute"):s(A)});for(let A of Array.from(t)){let _=e.get(A);_&&(!A.isConnected||_.source==="attribute"&&!b.has(A))&&s(A)}return t.size},a=()=>{if(i)return 0;let b=0;for(let g of Array.from(t,A=>e.get(A)))g&&We(g)&&(b+=1);return b},l=(b,g)=>{if(i)return!1;let A=Zi(b);if(!A)return!1;let _=Ji(g);return Zt(_)?r(A,_,"live"):(s(A),!0)},c=(b,g)=>{if(!ct(b))return!1;let A=e.get(b);return A?(A.sourceVisibleForCanvas=g,!0):!1},p=b=>{let g=Zi(b);if(!g)return{state:"missing",message:"Media not found"};let A=e.get(g);if(A)return A.effectError?{state:"unavailable",message:A.effectError}:A.drawError?{state:"unavailable",message:A.drawError}:A.lutError?{state:"unavailable",message:`LUT error: ${A.lutError}`}:A.grading.lut&&A.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:A.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:A.lut?"Shader + LUT active":"Shader active"};let _=Qi(g);return Zt(_)?{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},f=()=>{if(!i){i=!0,n?.disconnect(),n=null;for(let b of Array.from(t))s(b)}};document.body&&(n=new MutationObserver(()=>u()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Qt]}));let x={refresh:u,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:c,getStatus:p,destroy:f},E=window;return E.__hf=E.__hf||{},E.__hf.colorGrading=x,u(),x}var kn=class{constructor(t){xe(this,"_baseTime",0);xe(this,"_playStartMs",null);xe(this,"_rate",1);xe(this,"_duration",1/0);xe(this,"_nowMs");xe(this,"_audioSource",null);this._baseTime=t?.initialTime??0,this._rate=t?.rate??1,this._duration=t?.duration??1/0,this._nowMs=t?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let t=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+t*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(t){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(t,this._duration)):Math.max(0,t);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(t){let n=Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(t){this._duration=Number.isFinite(t)&&t>0?t:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(t){this._audioSource=t}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:t}=this._audioSource;if(!t.paused&&Number.isFinite(t.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function pa(e){return!Number.isFinite(e)||e<=0?1:e}function Ud(e,t){t||e.paused||!cn().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function Vd(e,t){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=t,u=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let c=a-n;return u&&c<=0?!1:(u?e.start(0,n+i,c):e.start(0,n+i),!0)}let l=-n/o;return u?e.start(r+l,i,a):e.start(r+l,i),!0}var Dn=class{constructor(){xe(this,"_ctx",null);xe(this,"_bufferCache",new Map);xe(this,"_failedSrcs",new Set);xe(this,"_activeSources",[]);xe(this,"_masterGain",null);xe(this,"_rateAnchorCtx",0);xe(this,"_rateAnchorComp",0);xe(this,"_rate",1);xe(this,"_paused",!0);xe(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(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 i;try{let r=await fetch(n,{cache:"no-store"});if(!r.ok)return L("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return L("webAudioTransport.fetch",r),null}try{let r=await this._ctx.decodeAudioData(i);return this._bufferCache.set(n,r),r}catch(r){return this._failedSrcs.add(n),L("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(t,n,i,r,o,s,u,a=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 c=pa(a),p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=c;let f=this._ctx.createGain();f.gain.value=s,p.connect(f),f.connect(this._masterGain);let x=o-i,E=this._ctx.currentTime;if(this._rate=c,this._rateAnchorCtx=E,this._rateAnchorComp=o,!Vd(p,{elapsed:x,mediaStart:r,scheduledAt:E,safeRate:c,clipDuration:l}))return p.disconnect(),f.disconnect(),null;let b=t.muted;t.muted=!0,Ud(t,b);let g={el:t,sourceNode:p,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:E,priorMuted:b,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(g),this._paused=!1,p.addEventListener("ended",()=>{let A=this._activeSources.indexOf(g);A!==-1&&(this._activeSources.splice(A,1),t.muted=b,this._activeSources.length===0&&(this._paused=!0))}),g}catch(c){return L("webAudioTransport.schedule",c),null}}setRate(t){let n=pa(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 i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){L("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>t.bounded)}stopAll(){for(let t of this._activeSources){try{t.sourceNode.stop(),t.sourceNode.disconnect(),t.gainNode.disconnect()}catch{}t.el.muted=t.priorMuted}this._activeSources=[],this._paused=!0}setVolume(t){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,t)))}setElementVolume(t,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===t)try{r.gainNode.gain.value=i}catch(o){L("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterGain&&(this._masterGain.gain.value=t?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var ha="data-hf-studio-manual-edit-gesture";var ir="data-hf-authored-duration",rr="data-hf-authored-end";function zd(){let e=window.__HF_EXPORT_RENDER_SEEK_CONFIG,t=e?.fps,n=e?.fpsSource,i=Number(t);return!e||t==null?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:t,fallbackReason:e.fpsFallbackReason}}function ga(){let e=Kr();ji(document);let t=zd();e.canonicalFps=t.fps??e.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:t.source,rawFpsSource:t.rawFpsSource,rawFps:t.rawFps,fallbackReason:t.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,u=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){L("runtime.init.site1",d)}(()=>{let d=window.gsap,m=window;if(!(!d?.registerPlugin||m.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),m.__hfAutoNoopRegistered=!0}catch{}})(),document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let l=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let m=Array.from(document.querySelectorAll("[data-composition-id]"));return m.find(h=>!h.parentElement?.closest("[data-composition-id]"))??m[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,m=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[m]=d[0];else for(let y=0;y<d.length;y++)h[`tl-${y}`]=d[y];window.__timelines=h}let c=l();c&&!c.hasAttribute("data-start")&&c.setAttribute("data-start","0");let p=d=>{o.push(d)},f=(d,m,h)=>{let y=h??`${d}:${JSON.stringify(m)}`;s.has(y)||(s.add(y),Fe({source:"hf-preview",type:"diagnostic",code:d,details:m}))},x=d=>{let m={scale:1,focusX:960,focusY:540},h=[],y=[],w={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>m,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>y,getRenderState:()=>({...w,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},E=1/60,b=.75,g=2,A=.05,_=100,N=240,$=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},B=d=>{let m=d.toLowerCase();return m.includes("cannot read properties of null")||m.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:m.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:m.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},v=d=>{if(d==null||d.trim()==="")return null;let m=Number.parseFloat(d);return!Number.isFinite(m)||m<=0?null:`${m}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let m=v(d.getAttribute("data-width")),h=v(d.getAttribute("data-height"));m&&(d.style.width=m),h&&(d.style.height=h),m&&d.style.setProperty("--comp-width",m),h&&d.style.setProperty("--comp-height",h)},M=()=>{let d=S(),m=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of m){if(d&&h===d)continue;let y=h.getAttribute("data-duration"),w=h.getAttribute("data-end");y!=null&&!h.hasAttribute(ir)&&h.setAttribute(ir,y),w!=null&&!h.hasAttribute(rr)&&h.setAttribute(rr,w),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},T=()=>{let d=S();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let m=v(d.getAttribute("data-width")),h=v(d.getAttribute("data-height"));m&&(d.style.width=m),h&&(d.style.height=h);let y=Array.from(d.children);for(let w of y){let F=w.tagName.toLowerCase();if(F==="script"||F==="style"||F==="link"||F==="meta"||!w.hasAttribute("data-start")||w.hasAttribute("data-hf-autostamped"))continue;let k=(w.style.top==="0px"||w.style.top==="0")&&(w.style.left==="0px"||w.style.left==="0")&&w.style.width==="100%"&&w.style.height==="100%",K=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(w.style.transform);if(k&&K&&!w.hasAttribute("data-width")&&!w.hasAttribute("data-height")){let be=w.style.top,ot=w.style.left,we=w.style.width,_t=w.style.height;w.style.top="",w.style.left="",w.style.width="",w.style.height="";let ne=window.getComputedStyle(w);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(w.style.top=be,w.style.left=ot,w.style.width=we,w.style.height=_t)}let J=window.getComputedStyle(w),me=J.position;if(me!=="absolute"&&me!=="fixed"&&(w.style.position="absolute"),!!w.style.top||!!w.style.bottom||J.top!=="auto"||J.bottom!=="auto"||(w.style.top="0"),!!w.style.left||!!w.style.right||J.left!=="auto"||J.right!=="auto"||(w.style.left="0"),F!=="audio"){let be=v(w.getAttribute("data-width")),ot=v(w.getAttribute("data-height")),we=J.width!=="0px"&&J.width!=="auto",_t=J.height!=="0px"&&J.height!=="auto";be?!w.style.width&&!we&&(w.style.width=be):!w.style.width&&J.width==="0px"&&(w.style.width="100%"),ot?!w.style.height&&!_t&&(w.style.height=ot):!w.style.height&&J.height==="0px"&&(w.style.height="100%")}}},R=(d,m=0,h)=>Ke({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,m),W=(d,m)=>Ke({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:m?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),q=(d,m=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+m:R(d,m),ie=(d,m)=>{let h=d.tagName.toLowerCase();if(h==="script"||h==="style"||h==="link"||h==="meta")return!1;let y=h==="video"||h==="audio"?q(d,0):R(d,0),w=W(d),F=d.getAttribute("data-composition-id");if(F){let K=(window.__timelines??{})[F],J=null;if(K&&typeof K.duration=="function"){let ye=Number(K.duration());Number.isFinite(ye)&&ye>0&&(J=ye)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(ir)||d.hasAttribute(rr))&&(w==null||w<=0)&&J!=null&&(w=J)}let k=w!=null&&w>0?y+w:Number.POSITIVE_INFINITY;return m>=y&&(Number.isFinite(k)?m<=k:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let m of d){let h=m.getAttribute("data-composition-id");if(h&&m.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Ee=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let m=Number(d.duration());return Number.isFinite(m)?Math.max(0,m):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>E,V=d=>{let m=Number(d.getAttribute("data-duration"));if(Number.isFinite(m)&&m>0)return m;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),y=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>y?Math.max(0,d.duration-y):null},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let m=0;for(let h of d){let y=q(h,0);if(!Number.isFinite(y))continue;let w=V(h);w==null||w<=E||(m=Math.max(m,Math.max(0,y)+w))}return m>E?m:null},_e=()=>{let d=S();if(!d)return null;let m=window.__timelines??{},h=Ke({timelineRegistry:m,includeAuthoredTimingAttrs:!0}),y=0,w=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(w)&&w>0&&(y=w);let F=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let k of F){if(!(k instanceof Element)||k.parentElement?.closest("[data-composition-id]")!==d)continue;let J=h.resolveStartForElement(k,0),me=h.resolveDurationForElement(k);!Number.isFinite(J)||me==null||me<=0||(y=Math.max(y,Math.max(0,J)+me))}return y>E?y:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=E?null:d},D=d=>U(d)?Math.max(E,d*b):E,G=()=>{let d=0;for(let m of e.deterministicAdapters){let h=m.getInferredDurationSeconds;if(typeof h!="function")continue;let y=null;try{y=h()}catch(w){L("runtime.init.adapterDuration",w)}typeof y=="number"&&Number.isFinite(y)&&y>0&&(d=Math.max(d,y))}return d>E?d:null},Q=(d,m=0)=>{let h=H(d),y=O(),w=_e(),F=G(),k=Math.max(y??0,w??0,F??0),K=Number.isFinite(m)&&m>E?m:0,J=0;return U(h)?J=Math.max(h,k,K):U(k)?J=Math.max(k,K):J=K,J>0?Math.max(0,J):0},ae=()=>{let d=window.__timelines??{},m=ne=>{let ee=Object.entries(d).filter(ge=>!!ge[1]&&typeof ge[1].play=="function"&&typeof ge[1].pause=="function");if(ee.length!==1)return{timeline:null};let[fe,pe]=ee[0];return{timeline:pe,selectedTimelineIds:[fe],selectedDurationSeconds:H(pe),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ne,soleTimelineId:fe}}}},h=Ke({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),y=O(),w=_e(),F=Math.max(y??0,w??0)||null,k=D(F),K=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},J=ne=>{let ee=window.gsap;if(!ee||typeof ee.timeline!="function")return null;let fe=ee.timeline({paused:!0});for(let pe of ne)fe.add(pe.timeline,K(pe.compositionId));return fe},me=(ne,ee)=>{if(!U(ne))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let pe=fe.timeline({paused:!0});if(ee)try{pe.add(ee,0)}catch(ue){L("runtime.init.site2",ue)}let ge=pe;if(typeof ge.to=="function")try{ge.to({},{duration:ne})}catch(ue){L("runtime.init.site3",ue)}return pe},ye=(ne,ee)=>{let fe=ne;if(typeof fe.getChildren!="function")return[];try{let pe=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(pe))return[];let ge=[];for(let ue of ee)if(!pe.some(Re=>Re===ue.timeline))try{let Re=K(ue.compositionId);ne.add(ue.timeline,Re),ge.push(ue.compositionId)}catch(Re){L("runtime.init.site4",Re)}return ge}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return m("root_missing_composition_id");let be=d[Z]??null,we=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let ge=pe.getAttribute("data-composition-id");if(!ge||ge===Z||ne.has(ge))continue;ne.add(ge);let ue=d[ge]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let ve=H(ue);fe.push({compositionId:ge,timeline:ue,durationSeconds:ve??0})}return fe})(),_t=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){L("runtime.init.site5",pe)}}};if(we.length>0&&_t(we),be){let ne=we.length>0?ye(be,we):[];if((we.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(j=!0),ne.length>0)try{let ue=be.time();be.seek(ue,!1)}catch{}let ee=H(be);if(!U(ee)&&we.length>0){let ue=we.map(el=>el.compositionId),ve=J(we),Re=H(ve);if(ve&&U(Re))return{timeline:ve,selectedTimelineIds:ue,selectedDurationSeconds:Re,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:Re,mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Jn=me(F??0,be),Xn=H(Jn);if(Jn&&U(Xn))return{timeline:Jn,selectedTimelineIds:[Z],selectedDurationSeconds:Xn,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Xn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&we.length===0){let ue=me(F??0,be),ve=H(ue);if(ue&&U(ve))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:ve,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:y,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:ve,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,ge=Math.max(U(pe)?pe:0,w??0);if(ge>0&&U(ge)&&U(ee)&&ge>=ee+.5){let ue=be;if(typeof ue.to=="function")try{ue.to({},{duration:0},ge)}catch(Re){L("runtime.init.site6",Re)}let ve=H(be);if(U(ve))return{timeline:be,selectedTimelineIds:[Z],selectedDurationSeconds:ve,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:w,newDur:ve}}}}return{timeline:be,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:y,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(we.length>0){let ne=we.map(pe=>pe.compositionId),ee=J(we),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,selectedDurationSeconds:fe,mediaDurationFloorSeconds:y,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:fe,mediaDurationFloorSeconds:y,selectedTimelineIds:ne}}}}return m("root_composition_id_unmatched_in_registry")},j=!1,z=()=>{if(!Ee)return!1;let d=e.capturedTimeline,m=H(d),h=U(m);if(d&&h&&j)return!1;let y=ae();if(!y.timeline)return!1;if(d&&d===y.timeline)return typeof d.timeScale=="function"&&d.timeScale(e.playbackRate),!1;e.capturedTimeline=y.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let w=Q(e.capturedTimeline,0);if(w<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),e.capturedTimeline.pause()),w>0){try{I.setDuration(w)}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),e.capturedTimeline.pause()}let F=window.__hfStudioManualEditsApply;typeof F=="function"&&F(),ji(document)}if(y.diagnostics&&Fe({source:"hf-preview",type:"diagnostic",code:y.diagnostics.code,details:y.diagnostics.details}),Fe({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:y.selectedTimelineIds??[],selectedDurationSeconds:y.selectedDurationSeconds??null,mediaDurationFloorSeconds:y.mediaDurationFloorSeconds??null}}),window.parent!==window){let F=S(),k=w>0?w:0,K=String(k>0?k:1),J=new Set,me=new Set(document.querySelectorAll("[data-start]")),ye=oe=>{let Z=oe.parentElement;for(;Z&&Z!==F;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let oe of e.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==F&&(Z.hasAttribute("data-start")||ye(Z)||J.has(Z)||(J.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",K),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(F instanceof HTMLElement)for(let oe of F.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==F&&(oe.hasAttribute("data-start")||ye(oe)||J.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(J.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",K),oe.setAttribute("data-hf-autostamped","1")))}for(let F of wt)on.delete(F),pr(F);return!0};window.__hfForceTimelineRebind=()=>{j=!1,z()};let Y=()=>{let d=S();if(!(d instanceof HTMLElement))return;let m=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),y=Number(d.getAttribute("data-height")),w=window.getComputedStyle(d),F=Number.isFinite(h)&&h>0&&Number.isFinite(y)&&y>0,k=m.width<=0||m.height<=0||d.clientWidth<=0||d.clientHeight<=0;!F||!k||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:y,rectWidth:Math.round(m.width),rectHeight:Math.round(m.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:w.display,visibility:w.visibility,overflow:w.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Pe=()=>{e.tornDown||(u!=null&&window.cancelAnimationFrame(u),u=window.requestAnimationFrame(()=>{u=null,Y()}))},Me=()=>{i=d=>{let m=$(d.error??d.message).slice(0,N);if(!m)return;let h=B(m);Fe({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:m,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let m=$(d.reason).slice(0,N);if(!m)return;let h=B(m);Fe({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:m}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},At=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let y=()=>{if(!(h instanceof Element))return;let w=h.tagName.toLowerCase(),F=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,k=w==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(k,{tagName:w,assetUrl:F,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${k}:${w}:${F??"unknown"}`)};h.addEventListener("error",y),p(()=>{h.removeEventListener("error",y)})}let m=document.fonts;m&&m.ready.then(()=>{if(e.tornDown)return;let h=Array.from(m).filter(y=>y.status==="error").map(y=>y.family).filter(y=>!!y).slice(0,10);h.length!==0&&f("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(m).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},Ue=(d,m)=>{if(!d.timeline)return!1;let h=e.capturedTimeline;if(h&&h===d.timeline)return!1;let y=Math.max(0,e.currentTime||0),w=e.isPlaying;e.capturedTimeline=d.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{e.capturedTimeline.pause(),e.capturedTimeline.seek(y,!1),w&&e.capturedTimeline.play()}catch(F){L("runtime.init.site7",F)}return Fe({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:m,previousTime:y,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},nt=null,mr=!1,wt=new Set,on=new WeakMap,sn=()=>{e.tornDown||(nt!=null&&window.clearTimeout(nt),nt=window.setTimeout(()=>{if(e.tornDown)return;nt=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){z()&&(dt(),Te(!0));return}if(mr)return;let h=H(e.capturedTimeline),y=d.selectedDurationSeconds??H(d.timeline);U(y)&&(!U(h)||y>=h+A)&&Ue(d,"manual")&&(mr=!0,Fe({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:y??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),dt(),Te(!0))},_))},Va=()=>{for(let d of wt)d.removeEventListener("loadedmetadata",sn),d.removeEventListener("durationchange",sn);wt.clear()},Gn=()=>{if(e.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let m of d){if(wt.has(m))continue;wt.add(m);let h=Number.parseFloat(m.dataset.volume??"");Number.isFinite(h)&&(m.volume=Math.max(0,Math.min(1,h))),m.addEventListener("loadedmetadata",sn),m.addEventListener("durationchange",sn),m.preload!=="auto"&&(m.preload="auto"),m.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&m.load(),pr(m)}},pr=d=>{on.has(d)||Wr(d,e.capturedTimeline,Q(e.capturedTimeline,0),on)},Wn=new WeakMap,hr=d=>{let m=Wn.get(d);if(m!==void 0)return m;let h=window.getComputedStyle(d).position,y=h==="static"||h==="relative"||h==="sticky";return Wn.set(d,y),y},Un=new WeakMap,za=d=>{let m=Un.get(d);if(m!==void 0)return m;let h=d.querySelector("[data-start]")===null;return Un.set(d,h),h},qa=()=>{Wn=new WeakMap,Un=new WeakMap},Vn=new WeakMap,an=new WeakSet,Le=()=>{let d=F=>{let k=F.closest("[data-composition-id]"),K=k?R(k,0):null,J=k?W(k,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:k,inheritedStart:K,inheritedDuration:J}},m=Ur({shouldIncludeElement:F=>F.hasAttribute("data-start")||!!d(F).compositionRoot,resolveStartSeconds:F=>{let k=d(F);return q(F,k.inheritedStart??0)},resolveDurationSeconds:F=>{let k=d(F),K=q(F,k.inheritedStart??0),J=Number.parseFloat(F.dataset.playbackStart??F.dataset.mediaStart??"0")||0,me=k.inheritedStart!=null&&k.inheritedDuration!=null&&k.inheritedDuration>0?Math.max(0,k.inheritedStart+k.inheritedDuration-K):null,ye=Number.isFinite(F.duration)&&F.duration>J?Math.max(0,F.duration-J):null,oe=Number.parseFloat(F.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,be=[ye,me,Z].filter(ot=>ot!=null);return be.length>0?Math.min(...be):null}});for(let F of m.mediaClips){let k=on.get(F.el);k&&(F.volumeKeyframes=k)}let h=e.mediaForceSyncNextTick;h&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||Vr({clips:m.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted||!e.webAudioMediaDisabled&&!e.nativeMediaSyncDisabled&&de.isActive(),userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:h,onElementVolume:(F,k)=>de.setElementVolume(F,k),isWebAudioOwned:F=>de.ownsElement(F),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,Fe({source:"hf-preview",type:"media-autoplay-blocked"}))}});let y=Array.from(document.querySelectorAll("[data-start]")),w=S();for(let F of y){if(!(F instanceof HTMLElement))continue;if(F.hasAttribute("data-hidden")){an.has(F)||(Vn.set(F,F.style.getPropertyValue("display")),an.add(F)),F.style.display="none",(F instanceof HTMLVideoElement||F instanceof HTMLImageElement)&&n?.setSourceVisibility(F,!1);continue}if(an.has(F)){let K=Vn.get(F);K?F.style.display=K:F.style.removeProperty("display"),Vn.delete(F),an.delete(F)}let k=ie(F,e.currentTime);if(k){let K=F.parentElement;for(;K&&K!==w;){if(K instanceof HTMLElement&&K.hasAttribute("data-start")&&!ie(K,e.currentTime)){k=!1;break}K=K.parentElement}}F.style.visibility=k?"visible":"hidden",(F instanceof HTMLVideoElement||F instanceof HTMLImageElement)&&n?.setSourceVisibility(F,k),k?hr(F)&&F.style.removeProperty("display"):hr(F)&&za(F)&&(F.style.display="none")}},Te=d=>{let m=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),h=Date.now();(d||m!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||h-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=m,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=h,Fe({source:"hf-preview",type:"state",frame:m,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},zn="",ja=()=>{let d="";for(let m of document.querySelectorAll("[data-start]"))d+=`${m.id}:${m.tagName}|`;return d},dt=()=>{M(),C(),T();let d=S();if(d){let y=v(d.getAttribute("data-width")),w=v(d.getAttribute("data-height")),F=y?parseInt(y,10):0,k=w?parseInt(w,10):0;F>0&&k>0&&Fe({source:"hf-preview",type:"stage-size",width:F,height:k})}z();let m=eo({canonicalFps:e.canonicalFps});window.__clipManifest=m;let h=ja();if(zn!==h&&qa(),!window.__clipTree||zn!==h){let y=window;window.__clipTree=Jr({startResolver:Ke({timelineRegistry:y.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:y.__timelines??{},rootDuration:m.durationInFrames/e.canonicalFps}),zn=h}Fe(m),Pe()},Oe=(d,m=0)=>{for(let h of e.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(y){L("runtime.init.site8",y)}if(d==="discover")try{h.seek({time:m})}catch(y){L("runtime.init.site9",y)}}},it=()=>{window.__renderReady=!1},Ft=null,Ct=!0,$a=()=>{let d=[];for(let m of e.deterministicAdapters){let h=m.getReadyPromise;if(typeof h=="function")try{let y=h();y&&d.push(y)}catch(y){L("runtime.init.adapterReady",y)}}return d},Ka=()=>{let d=$a();if(d.length===0)return Ft=null,Ct=!0,!0;let m=d.length===1?d[0]:Promise.all(d);return m!==Ft&&(Ft=m,Ct=!1,Promise.resolve(m).then(()=>{Ft===m&&(Ct=!0,it())},h=>{Ft===m&&(Ct=!0,L("runtime.init.adapterReady",h),it())})),Ct};if(Ee)Vi();else{let d={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,parseDimensionPx:v,onDiagnostic:({code:m,details:h})=>{Fe({source:"hf-preview",type:"diagnostic",code:m,details:h})}};Gs(d).then(()=>Hs(d)).finally(()=>{Ee=!0,Gn(),At(),Vi(),it()})}let ln=zr({postMessage:d=>Fe(d)});ln.installPickerApi();let Ve=ma();n=Ve,p(()=>{Ve.destroy(),n=null});let qn=d=>{let m=Number(d);!Number.isFinite(m)||m<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,m)),e.mediaForceSyncNextTick=!0,e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let h=document.querySelectorAll("video, audio");for(let y of h)if(y instanceof HTMLMediaElement)try{y.playbackRate=e.playbackRate}catch(w){L("runtime.init.site10",w)}},he=$r({getTimeline:()=>e.capturedTimeline,setTimeline:d=>{e.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:d=>{e.isPlaying!==d&&(e.mediaForceSyncNextTick=!0),e.isPlaying=d},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:qn,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(d,m)=>{e.currentTime=Math.max(0,Number(d)||0),e.isPlaying!==m&&(e.mediaForceSyncNextTick=!0),e.isPlaying=m,Le()},onStatePost:Te,onDeterministicSeek:d=>{for(let m of e.deterministicAdapters)try{m.seek({time:Number(d)||0})}catch(h){L("runtime.init.site11",h)}},onDeterministicPause:()=>Oe("pause"),onDeterministicPlay:()=>Oe("play"),onRenderFrameSeek:()=>{Ve.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(e.capturedTimeline,0)});window.__player=x(he),window.__playerReady=!0,Ar(Fe),st("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.controlBridgeHandler=Er({onPlay:()=>{he.play(),st("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),st("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let m of d)m instanceof HTMLMediaElement&&!m.paused&&m.pause()},onSeek:(d,m)=>{let h=Math.max(0,d)/e.canonicalFps;he.seek(h),st("composition_seeked",{time:h})},onSetMuted:d=>{e.bridgeMuted=d;let m=d||e.mediaOutputMuted;de.setMuted(m);let h=document.querySelectorAll("video, audio");for(let y of h)y instanceof HTMLMediaElement&&(y.muted=m||y.defaultMuted)},onSetVolume:d=>{e.bridgeVolume=d,de.setVolume(d);let m=document.querySelectorAll("video, audio");for(let h of m){if(!(h instanceof HTMLMediaElement))continue;let y=parseFloat(h.dataset.volume??""),w=Number.isFinite(y)?y:1;h.volume=w*d}},onSetMediaOutputMuted:d=>{e.mediaOutputMuted=d;let m=d||e.bridgeMuted;de.setMuted(m);let h=document.querySelectorAll("video, audio");for(let y of h)y instanceof HTMLMediaElement&&(y.muted=m||y.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{e.nativeMediaSyncDisabled!==d&&(e.nativeMediaSyncDisabled=d,e.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{e.webAudioMediaDisabled!==d&&(e.webAudioMediaDisabled=d,e.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{qn(d),e.transportClock&&e.transportClock.setRate(e.playbackRate),yr()},onSetColorGrading:(d,m)=>{Ve.setGrading(d,m)},onSetColorGradingCompare:(d,m)=>{Ve.setCompare(d,m)},onTick:()=>{if(e.tornDown||!I.isPlaying())return;let d=I.now();if(e.currentTime=d,rt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),e.isPlaying=!1;let m=I.getDuration();Number.isFinite(m)&&(I.seek(m),e.currentTime=m,rt(m)),Oe("pause"),Le(),Te(!0)}},onEnablePickMode:()=>ln.enablePickMode(),onDisablePickMode:()=>ln.disablePickMode()}),e.deterministicAdapters=[Hr(),wr({resolveStartSeconds:d=>R(d,0)}),Cr(),Mr(),Tr(),Nr(),Lr(),Rr(),kr(),Dr(),Ir(),Fr({getTimeline:()=>e.capturedTimeline})],Or(),Br(),window.__hfReseekGpu=d=>{let m=Math.max(0,Number(d)||0);window.__hfThreeTime=m,window.__hfTypegpuTime=m,vr(m)},Me(),Gn(),Oe("discover");let I=new kn;e.transportClock=I;let de=new Dn,jn=!1;de.init().then(d=>{jn=d});let Ja=()=>{let d=e.capturedTimeline,m=z();e.capturedTimeline&&(m||e.capturedTimeline!==d||!he._timeline)&&(he._timeline=e.capturedTimeline);let h=Q(e.capturedTimeline,0);if(h>0&&I.setDuration(h),Oe("discover",e.currentTime),!e.capturedTimeline){let y=window.__timelines??{},w=Object.keys(y).filter(F=>y[F]);if(w.length>0){let k=S()?.getAttribute("data-composition-id")??null;f("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:w},"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: [${w.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${k??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,dt(),Te(!0)};if(it=()=>{if(!Ee||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Oe("discover",e.currentTime),!Ka()){window.__renderReady=!1;return}Ja()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),it()};window.addEventListener("hf-timelines-built",d)}it(),Ee&&setTimeout(()=>{it()},0);let un=0,$n=!1,Xa=(d,m,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(m,!1):d.seek(m,!1)}catch(y){L(h,y)}},Ya=d=>{let m=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[y,w]of Object.entries(m)){if(!w||y===h)continue;let F=document.querySelector(`[data-composition-id="${CSS.escape(y)}"]`);if(!F)continue;let k=R(F,0);if(!Number.isFinite(k))continue;let K=W(F,{includeAuthoredTimingAttrs:!0}),J=H(w),me=K!=null&&K>0?K:J,ye=Math.max(0,me!=null&&me>0?Math.min(me,d-k):d-k);Xa(w,ye,"runtime.init.transport.childTimeline")}},Qa=d=>{let m=window.__timelines??{};for(let h of Object.values(m))if(!(!h||h===d))try{h.play()}catch(y){L("runtime.init.activateSiblings",y)}},rt=(d,m)=>{let h=e.capturedTimeline;if(h){m?.activateChildren&&Qa(h);let y=h,w=d;if(typeof y.totalDuration=="function")try{let F=Number(y.totalDuration());Number.isFinite(F)&&F>0&&d>F&&(w=F)}catch(F){L("runtime.init.transport.clampDuration",F)}try{typeof h.totalTime=="function"?h.totalTime(w,!1):h.seek(w,!1)}catch(F){L("runtime.init.transport.seek",F)}}else Ya(d);for(let y of e.deterministicAdapters)try{y.seek({time:d})}catch(w){L("runtime.init.transport.adapter",w)}},Za=()=>{try{return document.querySelector(`[${ha}]`)!=null}catch{return!1}},gr=()=>{if(!(e.tornDown||$n)){$n=!0;try{if(e.transportRafId=window.requestAnimationFrame(gr),un+=1,un%60===0&&!(I.isPlaying()&&e.capturedTimeline!=null&&I.now()<g)){let h=e.capturedTimeline;if(z()){e.capturedTimeline&&!he._timeline&&(he._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==h&&e.capturedTimeline.pause();let y=Q(e.capturedTimeline,0);y>0&&I.setDuration(y),dt()}}if(un%20===0&&dt(),un%30===0&&Gn(),e.capturedTimeline){let m=Q(e.capturedTimeline,0);m>0&&(!I.isPlaying()||m>=I.getDuration())&&I.setDuration(m)}if(I.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&de.isActive()&&de.context){let m=de.getTime();m>=0&&I.attachAudioSource({currentTimeSeconds:m})}else{let m=document.querySelectorAll("audio[data-start]"),h=!1;for(let y of m){if(!(y instanceof HTMLMediaElement)||!y.isConnected)continue;let w=Number.parseFloat(y.dataset.start??""),F=Number.parseFloat(y.dataset.duration??""),k=Number.isFinite(F)&&F>0?w+F:1/0,K=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0;if(Number.isFinite(w)&&e.currentTime>=w&&e.currentTime<=k){y.paused?!y.error&&y.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:e.currentTime}),h=!0):(I.attachAudioSource({el:y,compositionStart:w,mediaStart:K}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(e.currentTime=d,(I.isPlaying()||!Za())&&rt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),e.isPlaying=!1;let m=I.getDuration();Number.isFinite(m)&&(I.seek(m),e.currentTime=m,rt(m)),Oe("pause"),Le(),Te(!0);return}I.isPlaying()&&Le(),Te(!1)}finally{$n=!1}}},xr=d=>{let m=document.querySelectorAll("video, audio");for(let h of m){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let y=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(y))continue;let w=Number.parseFloat(h.dataset.duration??""),F=Number.isFinite(w)&&w>0?y+w:1/0;if(d<y||d>=F)continue;let k=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,K=d-y+k;if(K>=0)try{h.currentTime=K}catch{}}},br=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let d=de.startGeneration(),m=document.querySelectorAll("audio[data-start]");for(let h of m){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let y=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(y))continue;let w=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,F=Number.parseFloat(h.dataset.volume??""),k=Number.isFinite(F)?F:1,K=Number.parseFloat(h.dataset.duration??""),J=Number.isFinite(K)&&K>0?K:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let ye=R(me,0),oe=W(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(J=Math.min(J,Math.max(0,ye+oe-y)))}de.decodeAudioElement(h).then(ye=>{!ye||!I.isPlaying()||de.schedulePlayback(h,ye,y,w,I.now(),k*e.bridgeVolume,d,e.playbackRate,J)})}},yr=()=>{de.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&jn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),br())};if(he.play=()=>{let d=e.capturedTimeline;if(I.isPlaying())return;let m=Q(d,0);if(m>0)I.setDuration(m),I.reachedEnd()&&(I.seek(0),e.currentTime=0,rt(0));else{let h=S(),y=Number(h?.getAttribute("data-duration")??0);y>0&&I.setDuration(y)}d&&d.pause(),I.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,xr(I.now()),jn&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&br(),Oe("play"),Le(),Ve.redraw(),Te(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),e.isPlaying=!1,e.currentTime=I.now(),e.mediaForceSyncNextTick=!0,xr(e.currentTime);let d=e.capturedTimeline;d&&d.pause(),Oe("pause"),Le(),Ve.redraw(),Te(!0)},he.seek=d=>{let m=mt(Math.max(0,Number(d)||0),e.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(m),e.currentTime=I.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let y=e.capturedTimeline;y&&y.pause(),rt(e.currentTime),Oe("pause"),Le(),Ve.redraw(),Te(!0)},he.renderSeek=d=>{let m=mt(Math.max(0,Number(d)||0),e.canonicalFps);I.isPlaying()&&I.pause(),I.seek(m),e.currentTime=I.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,rt(e.currentTime,{activateChildren:!0}),Le(),Ve.redraw(),Te(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{qn(d),I.setRate(e.playbackRate),yr()},e.capturedTimeline){let d=Q(e.capturedTimeline,0);d>0&&I.setDuration(d),e.capturedTimeline.pause()}let Sr=window.__player;if(Sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let m of d)Object.defineProperty(Sr,m,{get:()=>he[m],set:h=>{he[m]=h},configurable:!0})}e.transportRafId=window.requestAnimationFrame(gr),dt(),Te(!0);let Kn=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),e.transportClock=null,de.destroy(),nt!=null&&(window.clearTimeout(nt),nt=null),u!=null&&(window.cancelAnimationFrame(u),u=null),Va(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),ln.disablePickMode();for(let d of e.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(m){L("runtime.init.site12",m)}e.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(m){L("runtime.init.site13",m)}for(let d of e.injectedCompStyles)try{d.remove()}catch(m){L("runtime.init.site14",m)}e.injectedCompStyles=[];for(let d of e.injectedCompScripts)try{d.remove()}catch(m){L("runtime.init.site15",m)}e.injectedCompScripts=[],e.capturedTimeline=null,window.__hfRuntimeTeardown===Kn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Kn,e.beforeUnloadHandler=Kn,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var xa=["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"],or=[[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 qd(e){if(e<=255)return xa[e];let t=0,n=or.length-1;for(;t<=n;){let i=t+n>>1,r=or[i];if(e<r[0]){n=i-1;continue}if(e>r[1]){t=i+1;continue}return r[2]}return"L"}function jd(e){let t=e.length;if(t===0)return null;let n=new Array(t),i=!1;for(let l=0;l<t;){let c=e.charCodeAt(l),p=c,f=1;if(c>=55296&&c<=56319&&l+1<t){let E=e.charCodeAt(l+1);E>=56320&&E<=57343&&(p=(c-55296<<10)+(E-56320)+65536,f=2)}let x=qd(p);(x==="R"||x==="AL"||x==="AN")&&(i=!0);for(let E=0;E<f;E++)n[l+E]=x;l+=f}if(!i)return null;let r=0;for(let l=0;l<t;l++){let c=n[l];if(c==="L"){r=0;break}if(c==="R"||c==="AL"){r=1;break}}let o=new Int8Array(t);for(let l=0;l<t;l++)o[l]=r;let s=r&1?"R":"L",u=s,a=u;for(let l=0;l<t;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=u;for(let l=0;l<t;l++){let c=n[l];c==="EN"?n[l]=a==="AL"?"AN":"EN":(c==="R"||c==="L"||c==="AL")&&(a=c)}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 c;for(c=l-1;c>=0&&n[c]==="ET";c--)n[c]="EN";for(c=l+1;c<t&&n[c]==="ET";c++)n[c]="EN"}for(let l=0;l<t;l++){let c=n[l];(c==="WS"||c==="ES"||c==="ET"||c==="CS")&&(n[l]="ON")}a=u;for(let l=0;l<t;l++){let c=n[l];c==="EN"?n[l]=a==="L"?"L":"EN":(c==="R"||c==="L")&&(a=c)}for(let l=0;l<t;l++){if(n[l]!=="ON")continue;let c=l+1;for(;c<t&&n[c]==="ON";)c++;let p=l>0?n[l-1]:u,f=c<t?n[c]:u,x=p!=="L"?"R":"L";if(x===(f!=="L"?"R":"L"))for(let b=l;b<c;b++)n[b]=x;l=c-1}for(let l=0;l<t;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<t;l++){let c=n[l];(o[l]&1)===0?c==="R"?o[l]++:(c==="AN"||c==="EN")&&(o[l]+=2):(c==="L"||c==="AN"||c==="EN")&&o[l]++}return o}function ba(e,t){let n=jd(e);if(n===null)return null;let i=new Int8Array(t.length);for(let r=0;r<t.length;r++)i[r]=n[t[r]];return i}var $d=/[ \\t\\n\\r\\f]+/g,Kd=/[\\t\\n\\r\\f]| {2,}|^ | $/;function Jd(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function Xd(e){if(!Kd.test(e))return e;let t=e.replace($d," ");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 Yd(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var sr=null,Qd;function Zd(){return sr===null&&(sr=new Intl.Segmenter(Qd,{granularity:"word"})),sr}var ef=/\\p{Script=Arabic}/u,In=/\\p{M}/u,_a=/\\p{Nd}/u;function ya(e){return ef.test(e)}function Sa(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 Ie(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 i=e.charCodeAt(t+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(Sa(r))return!0;t++;continue}}if(Sa(n))return!0}}return!1}function tf(e){let t=Bn(e);return t!==null&&(On.has(t)||et.has(t))}var nf=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function rf(e){return Ie(e)}function of(e){let t=Bn(e);return t!==null&&nf.has(t)}function Pn(e){return!tf(e)&&!of(e)}var On=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"]),rn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),lr=new Set(["\'","\\u2019"]),et=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),sf=new Set([":",".","\\u060C","\\u061B"]),af=new Set(["\\u104F"]),lf=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function uf(e){if(ur(e))return!0;let t=!1;for(let n of e){if(et.has(n)){t=!0;continue}if(!(t&&In.test(n)))return!1}return t}function cf(e){for(let t of e)if(!On.has(t)&&!et.has(t))return!1;return e.length>0}function df(e){if(ur(e))return!0;for(let t of e)if(!rn.has(t)&&!lr.has(t)&&!In.test(t))return!1;return e.length>0}function ur(e){let t=!1;for(let n of e)if(!(n==="\\\\"||In.test(n))){if(rn.has(n)||et.has(n)||lr.has(n)){t=!0;continue}return!1}return t}function Ma(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let i=e.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=e.charCodeAt(r);return o>=55296&&o<=56319?r:n}function Bn(e){if(e.length===0)return null;let t=Ma(e,e.length);return e.slice(t)}function ff(e){let t=Array.from(e),n=t.length;for(;n>0;){let i=t[n-1];if(In.test(i)){n--;continue}if(rn.has(i)||lr.has(i)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function mf(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Ea(e,t,n,i){let r=t[i],o=e[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let u=r.repeat(s);return e[i]=u,u}function Aa(e,t){return e&&t!==null&&sf.has(t)}function pf(e){let t=Bn(e);return t!==null&&af.has(t)}function hf(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 Hn(e){let t=e.length;for(;t>0;){let n=Ma(e,t),i=e.slice(n,t);if(lf.has(i))return!0;if(!et.has(i))return!1;t=n}return!1}function gf(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 xf=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ne(e){return e.length===1?e[0]:e.join("")}function bf(e,t){let n=[];for(let i=e.length-1;i>=0;i--)n.push(e[i]);return n.push(t),Ne(n)}function yf(e,t,n,i){if(!xf.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let r=[],o=null,s=[],u=n,a=!1,l=0;for(let c of e){let p=gf(c,i),f=p==="text"&&t;if(o!==null&&p===o&&f===a){s.push(c),l+=c.length;continue}o!==null&&r.push({text:Ne(s),isWordLike:a,kind:o,start:u}),o=p,s=[c],u=n+l,a=f,l+=c.length}return o!==null&&r.push({text:Ne(s),isWordLike:a,kind:o,start:u}),r}function ar(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Sf=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Ef(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:Sf.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function Af(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function wf(e){let t=e.texts.slice(),n=e.isWordLike.slice(),i=e.kinds.slice(),r=e.starts.slice();for(let s=0;s<e.len;s++){if(i[s]!=="text"||!Ef(e,s))continue;let u=[t[s]],a=s+1;for(;a<e.len&&!ar(i[a]);){u.push(t[a]),n[s]=!0;let l=t[a].includes("?");if(i[a]="text",t[a]="",a++,l)break}t[s]=Ne(u)}let o=0;for(let s=0;s<t.length;s++){let u=t[s];u.length!==0&&(o!==s&&(t[o]=u,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return t.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:t,isWordLike:n,kinds:i,starts:r}}function Ff(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o];if(t.push(s),n.push(e.isWordLike[o]),i.push(e.kinds[o]),r.push(e.starts[o]),!Af(s))continue;let u=o+1;if(u>=e.len||ar(e.kinds[u]))continue;let a=[],l=e.starts[u],c=u;for(;c<e.len&&!ar(e.kinds[c]);)a.push(e.texts[c]),c++;a.length>0&&(t.push(Ne(a)),n.push(!0),i.push("text"),r.push(l),o=c-1)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}var Cf=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),wa=/^[A-Za-z0-9_]+[,:;]*$/,Fa=/[,:;]+$/;function va(e){for(let t of e)if(_a.test(t))return!0;return!1}function nn(e){if(e.length===0)return!1;for(let t of e)if(!(_a.test(t)||Cf.has(t)))return!1;return!0}function _f(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o],u=e.kinds[o];if(u==="text"&&nn(s)&&va(s)){let a=[s],l=o+1;for(;l<e.len&&e.kinds[l]==="text"&&nn(e.texts[l]);)a.push(e.texts[l]),l++;t.push(Ne(a)),n.push(!0),i.push("text"),r.push(e.starts[o]),o=l-1;continue}t.push(s),n.push(e.isWordLike[o]),i.push(u),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Mf(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o],u=e.kinds[o],a=e.isWordLike[o];if(u==="text"&&a&&wa.test(s)){let l=[s],c=Fa.test(s),p=o+1;for(;c&&p<e.len&&e.kinds[p]==="text"&&e.isWordLike[p]&&wa.test(e.texts[p]);){let f=e.texts[p];l.push(f),c=Fa.test(f),p++}t.push(Ne(l)),n.push(!0),i.push("text"),r.push(e.starts[o]),o=p-1;continue}t.push(s),n.push(a),i.push(u),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function vf(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o];if(e.kinds[o]==="text"&&s.includes("-")){let u=s.split("-"),a=u.length>1;for(let l=0;l<u.length;l++){let c=u[l];if(!a)break;(c.length===0||!va(c)||!nn(c))&&(a=!1)}if(a){let l=0;for(let c=0;c<u.length;c++){let p=u[c],f=c<u.length-1?`${p}-`:p;t.push(f),n.push(!0),i.push("text"),r.push(e.starts[o]+l),l+=f.length}continue}}t.push(s),n.push(e.isWordLike[o]),i.push(e.kinds[o]),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Tf(e){let t=[],n=[],i=[],r=[],o=0;for(;o<e.len;){let s=[e.texts[o]],u=e.isWordLike[o],a=e.kinds[o],l=e.starts[o];if(a==="glue"){let c=[s[0]],p=l;for(o++;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let f=Ne(c);if(o<e.len&&e.kinds[o]==="text")s[0]=f,s.push(e.texts[o]),u=e.isWordLike[o],a="text",l=p,o++;else{t.push(f),n.push(!1),i.push("glue"),r.push(p);continue}}else o++;if(a==="text")for(;o<e.len&&e.kinds[o]==="glue";){let c=[];for(;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let p=Ne(c);if(o<e.len&&e.kinds[o]==="text"){s.push(p,e.texts[o]),u=u||e.isWordLike[o],o++;continue}s.push(p)}t.push(Ne(s)),n.push(u),i.push(a),r.push(l)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Nf(e){let t=e.texts.slice(),n=e.isWordLike.slice(),i=e.kinds.slice(),r=e.starts.slice();for(let o=0;o<t.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Ie(t[o])||!Ie(t[o+1]))continue;let s=ff(t[o]);s!==null&&(t[o]=s.head,t[o+1]=s.tail+t[o+1],r[o+1]=r[o]+s.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ca(e,t,n){let i=Zd(),r=0,o=[],s=[],u=[],a=[],l=[],c=[],p=[],f=[],x=[],E=[],b=[],g=[];for(let v of i.segment(e))for(let S of yf(v.segment,v.isWordLike??!1,v.index,n)){let se=function(){c[P]!==null&&(s[P]=[Ea(o,c,p,P)],c[P]=null),s[P].push(S.text),u[P]=u[P]||S.isWordLike,f[P]=f[P]||T,x[P]=x[P]||R,E[P]=q,b[P]=ie,g[P]=Aa(x[P],W)},C=S.kind==="text",M=mf(S.text,S.isWordLike,S.kind),T=Ie(S.text),R=ya(S.text),W=Bn(S.text),q=Hn(S.text),ie=pf(S.text),P=r-1;t.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&E[P]||C&&r>0&&a[P]==="text"&&cf(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&b[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&R&&g[P]?(se(),u[P]=!0):M!==null&&r>0&&a[P]==="text"&&c[P]===M?p[P]=(p[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(uf(S.text)||S.text==="-"&&u[P])?se():(o[r]=S.text,s[r]=[S.text],u[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,c[r]=M,p[r]=M===null?0:1,f[r]=T,x[r]=R,E[r]=q,b[r]=ie,g[r]=Aa(R,W),r++)}for(let v=0;v<r;v++){if(c[v]!==null){o[v]=Ea(o,c,p,v);continue}o[v]=Ne(s[v])}for(let v=1;v<r;v++)a[v]==="text"&&!u[v]&&ur(o[v])&&a[v-1]==="text"&&(o[v-1]+=o[v],u[v-1]=u[v-1]||u[v],o[v]="");let A=Array.from({length:r},()=>null),_=-1;for(let v=r-1;v>=0;v--){let S=o[v];if(S.length!==0){if(a[v]==="text"&&!u[v]&&df(S)&&_>=0&&a[_]==="text"){let C=A[_]??[];C.push(S),A[_]=C,l[_]=l[v],o[v]="";continue}_=v}}for(let v=0;v<r;v++){let S=A[v];S!=null&&(o[v]=bf(S,o[v]))}let N=0;for(let v=0;v<r;v++){let S=o[v];S.length!==0&&(N!==v&&(o[N]=S,u[N]=u[v],a[N]=a[v],l[N]=l[v]),N++)}o.length=N,u.length=N,a.length=N,l.length=N;let $=Tf({len:N,texts:o,isWordLike:u,kinds:a,starts:l}),B=Nf(Mf(vf(_f(Ff(wf($))))));for(let v=0;v<B.len-1;v++){let S=hf(B.texts[v]);S!==null&&(B.kinds[v]!=="space"&&B.kinds[v]!=="preserved-space"||B.kinds[v+1]!=="text"||!ya(B.texts[v+1])||(B.texts[v]=S.space,B.isWordLike[v]=!1,B.kinds[v]=B.kinds[v]==="preserved-space"?"preserved-space":"space",B.texts[v+1]=S.marks+B.texts[v+1],B.starts[v+1]=B.starts[v]+S.space.length))}return B}function Lf(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],i=0;for(let r=0;r<e.len;r++)e.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<e.len&&n.push({startSegmentIndex:i,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function Rf(e){if(e.len<=1)return e;let t=[],n=[],i=[],r=[],o=null,s=!1,u=0,a=!1,l=!1;function c(){o!==null&&(t.push(Ne(o)),n.push(s),i.push("text"),r.push(u),o=null)}for(let p=0;p<e.len;p++){let f=e.texts[p],x=e.kinds[p],E=e.isWordLike[p],b=e.starts[p];if(x==="text"){let g=rf(f),A=Pn(f);if(o!==null&&a&&l){o.push(f),s=s||E,a=a||g,l=A;continue}c(),o=[f],s=E,u=b,a=g,l=A;continue}c(),t.push(f),n.push(E),i.push(x),r.push(b)}return c(),{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ta(e,t,n="normal",i="normal"){let r=Jd(n),o=r.mode==="pre-wrap"?Yd(e):Xd(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?Rf(Ca(o,t,r)):Ca(o,t,r);return{normalized:o,chunks:Lf(s,r),...s}}var yt=null,Na=new Map,St=null,kf=96,Df=/\\p{Emoji_Presentation}/u,If=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,cr=null,La=new Map;function dr(){if(yt!==null)return yt;if(typeof OffscreenCanvas<"u")return yt=new OffscreenCanvas(1,1).getContext("2d"),yt;if(typeof document<"u")return yt=document.createElement("canvas").getContext("2d"),yt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Pf(e){let t=Na.get(e);return t||(t=new Map,Na.set(e,t)),t}function je(e,t){let n=t.get(e);return n===void 0&&(n={width:dr().measureText(e).width,containsCJK:Ie(e)},t.set(e,n)),n}function Et(){if(St!==null)return St;if(typeof navigator>"u")return St={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},St;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/"),i=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return St={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},St}function Of(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function Ra(){return cr===null&&(cr=new Intl.Segmenter(void 0,{granularity:"grapheme"})),cr}function Bf(e){return Df.test(e)||e.includes("\\uFE0F")}function ka(e){return If.test(e)}function Hf(e,t){let n=La.get(e);if(n!==void 0)return n;let i=dr();i.font=e;let r=i.measureText("\\u{1F600}").width;if(n=0,r>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 s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return La.set(e,n),n}function Gf(e){let t=0,n=Ra();for(let i of n.segment(e))Bf(i.segment)&&t++;return t}function Wf(e,t){return t.emojiCount===void 0&&(t.emojiCount=Gf(e)),t.emojiCount}function tt(e,t,n){return n===0?t.width:t.width-Wf(e,t)*n}function Da(e,t,n,i,r){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=Ra(),s=[];for(let c of o.segment(e))s.push(c.segment);if(s.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(r==="sum-graphemes"){let c=[];for(let p of s){let f=je(p,n);c.push(tt(p,f,i))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(r==="pair-context"||s.length>kf){let c=[],p=null,f=0;for(let x of s){let E=je(x,n),b=tt(x,E,i);if(p===null)c.push(b);else{let g=p+x,A=je(g,n);c.push(tt(g,A,i)-f)}p=x,f=b}return t.breakableFitAdvances=c,t.breakableFitAdvances}let u=[],a="",l=0;for(let c of s){a+=c;let p=je(a,n),f=tt(a,p,i);u.push(f-l),l=f}return t.breakableFitAdvances=u,t.breakableFitAdvances}function Ia(e,t){let n=dr();n.font=e;let i=Pf(e),r=Of(e),o=t?Hf(e,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function Uf(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 Vf(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function zf(e,t,n,i,r){let o=0,s=t;for(;o<e.length;){let u=s+e[o];if((o+1<e.length?u+r:u)>n+i)break;s=u,o++}return{fitCount:o,fittedWidth:s}}function Pa(e,t){return e.simpleLineWalkFastPath?Oa(e,t):Ba(e,t)}function Oa(e,t,n){let{widths:i,kinds:r,breakableFitAdvances:o}=e;if(i.length===0)return 0;let u=Et().lineFitEpsilon,a=t+u,l=0,c=0,p=!1,f=0,x=0,E=0,b=0,g=-1,A=0;function _(){g=-1,A=0}function N(M=E,T=b,R=c){l++,n?.({startSegmentIndex:f,startGraphemeIndex:x,endSegmentIndex:M,endGraphemeIndex:T,width:R}),c=0,p=!1,_()}function $(M,T){p=!0,f=M,x=0,E=M+1,b=0,c=T}function B(M,T,R){p=!0,f=M,x=T,E=M,b=T+1,c=R}function v(M,T){if(!p){$(M,T);return}c+=T,E=M+1,b=0}function S(M,T){let R=o[M];for(let W=T;W<R.length;W++){let q=R[W];p?c+q>a?(N(),B(M,W,q)):(c+=q,E=M,b=W+1):B(M,W,q)}p&&E===M&&b===R.length&&(E=M+1,b=0)}let C=0;for(;C<i.length&&!(!p&&(C=Uf(e,C),C>=i.length));){let M=i[C],T=r[C],R=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!p){M>t&&o[C]!==null?S(C,0):$(C,M),R&&(g=C+1,A=c-M),C++;continue}if(c+M>a){if(R){v(C,M),N(C+1,0,c-M),C++;continue}if(g>=0){if(E>g||E===g&&b>0){N();continue}N(g,0,A);continue}if(M>t&&o[C]!==null){N(),S(C,0),C++;continue}N();continue}v(C,M),R&&(g=C+1,A=c-M),C++}return p&&N(),l}function Ba(e,t,n){if(e.simpleLineWalkFastPath)return Oa(e,t,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:u,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:c}=e;if(i.length===0||c.length===0)return 0;let p=Et(),f=p.lineFitEpsilon,x=t+f,E=0,b=0,g=!1,A=0,_=0,N=0,$=0,B=-1,v=0,S=0,C=null;function M(){B=-1,v=0,S=0,C=null}function T(H=N,U=$,V=b){E++,n?.({startSegmentIndex:A,startGraphemeIndex:_,endSegmentIndex:H,endGraphemeIndex:U,width:V}),b=0,g=!1,M()}function R(H,U){g=!0,A=H,_=0,N=H+1,$=0,b=U}function W(H,U,V){g=!0,A=H,_=U,N=H,$=U+1,b=V}function q(H,U){if(!g){R(H,U);return}b+=U,N=H+1,$=0}function ie(H,U,V,re){if(!U)return;let _e=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,v=b-re+_e,S=b-re+O,C=H}function P(H,U){let V=u[H];for(let re=U;re<V.length;re++){let _e=V[re];g?b+_e>x?(T(),W(H,re,_e)):(b+=_e,N=H,$=re+1):W(H,re,_e)}g&&N===H&&$===V.length&&(N=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=u[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=zf(U,b,t,f,a);return V===0?!1:(b=re,N=H,$=V,M(),V===U.length?(N=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Ee(H){E++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),M()}for(let H=0;H<c.length;H++){let U=c[H];if(U.startSegmentIndex===U.endSegmentIndex){Ee(U);continue}g=!1,b=0,A=U.startSegmentIndex,_=0,N=U.startSegmentIndex,$=0,M();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],_e=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?Vf(b,l):i[V];if(re==="soft-hyphen"){g&&(N=V+1,$=0,B=V+1,v=b+a,S=b+a,C=re),V++;continue}if(!g){O>t&&u[V]!==null?P(V,0):R(V,O),ie(re,_e,V,O),V++;continue}if(b+O>x){let G=b+(re==="tab"?0:r[V]),Q=b+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&p.preferEarlySoftHyphenBreak&&v<=x){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(_e&&G<=x){q(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&v<=x){if(N>B||N===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>t&&u[V]!==null){T(),P(V,0),V++;continue}T();continue}q(V,O),ie(re,_e,V,O),V++}if(g){let re=B===U.consumedEndSegmentIndex?S:b;T(U.consumedEndSegmentIndex,0,re)}}return E}var fr=null;function qf(){return fr===null&&(fr=new Intl.Segmenter(void 0,{granularity:"grapheme"})),fr}function jf(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 $f(e,t){let n=[],i=[],r=0,o=!1,s=!1,u=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,u=!1)}function l(p,f,x){i=[p],r=f,o=x,s=Hn(p),u=rn.has(p)}function c(p,f){i.push(p),o=o||f;let x=Hn(p);p.length===1&&et.has(p)?s=s||x:s=x,u=!1}for(let p of qf().segment(e)){let f=p.segment,x=Ie(f);if(i.length===0){l(f,p.index,x);continue}if(u||On.has(f)||et.has(f)||t.carryCJKAfterClosingQuote&&x&&s){c(f,x);continue}if(!o&&!x){c(f,x);continue}a(),l(f,p.index,x)}return a(),n}function Kf(e){if(e.length<=1)return e;let t=[],n=[e[0].text],i=e[0].start,r=Ie(e[0].text),o=Pn(e[0].text);function s(){t.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let u=1;u<e.length;u++){let a=e[u],l=Ie(a.text),c=Pn(a.text);if(r&&o){n.push(a.text),r=r||l,o=c;continue}s(),n=[a.text],i=a.start,r=l,o=c}return s(),t}function Jf(e,t,n,i){let r=Et(),{cache:o,emojiCorrection:s}=Ia(t,ka(e.normalized)),u=tt("-",je("-",o),s),l=tt(" ",je(" ",o),s)*8;if(e.len===0)return jf(n);let c=[],p=[],f=[],x=[],E=e.chunks.length<=1,b=n?[]:null,g=[],A=n?[]:null,_=Array.from({length:e.len});function N(S,C,M,T,R,W,q){R!=="text"&&R!=="space"&&R!=="zero-width-break"&&(E=!1),c.push(C),p.push(M),f.push(T),x.push(R),b?.push(W),g.push(q),A!==null&&A.push(S)}function $(S,C,M,T,R){let W=je(S,o),q=tt(S,W,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:q,P=C==="space"||C==="zero-width-break"?0:q;if(R&&T&&S.length>1){let se="sum-graphemes";nn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Ee=Da(S,W,o,s,se);N(S,q,ie,P,C,M,Ee);return}N(S,q,ie,P,C,M,null)}for(let S=0;S<e.len;S++){_[S]=c.length;let C=e.texts[S],M=e.isWordLike[S],T=e.kinds[S],R=e.starts[S];if(T==="soft-hyphen"){N(C,0,u,u,T,R,null);continue}if(T==="hard-break"){N(C,0,0,0,T,R,null);continue}if(T==="tab"){N(C,0,0,0,T,R,null);continue}let W=je(C,o);if(T==="text"&&W.containsCJK){let q=$f(C,r),ie=i==="keep-all"?Kf(q):q;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",R+se.start,M,i==="keep-all"||!Ie(se.text))}continue}$(C,T,R,M,!0)}let B=Xf(e.chunks,_,c.length),v=b===null?null:ba(e.normalized,b);return A!==null?{widths:c,lineEndFitAdvances:p,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:E,segLevels:v,breakableFitAdvances:g,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:B,segments:A}:{widths:c,lineEndFitAdvances:p,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:E,segLevels:v,breakableFitAdvances:g,discretionaryHyphenWidth:u,tabStopAdvance:l,chunks:B}}function Xf(e,t,n){let i=[];for(let r=0;r<e.length;r++){let o=e[r],s=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,u=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:u,consumedEndSegmentIndex:a})}return i}function Yf(e,t,n,i){let r=i?.wordBreak??"normal",o=Ta(e,Et(),i?.whiteSpace,r);return Jf(o,t,n,r)}function Ha(e,t,n){return Yf(e,t,!1,n)}function Ga(e,t,n){let i=Pa(e,t);return{lineCount:i,height:i*n}}var Qf={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function Wa(e,t){let n={...Qf,...t},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=Ha(e,o),{lineCount:u}=Ga(s,n.maxWidth,r*i);if(u<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:Wa,getVariables:Ls};function Ua(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,ga())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Ua,{once:!0}):Ua();})();\n';
|
|
56111
|
+
RUNTIME_IIFE = '"use strict";(()=>{var gl=Object.create;var ti=Object.defineProperty;var xl=Object.getOwnPropertyDescriptor;var bl=Object.getOwnPropertyNames;var yl=Object.getPrototypeOf,Sl=Object.prototype.hasOwnProperty;var El=(e,t,n)=>t in e?ti(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var te=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Al=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of bl(t))!Sl.call(e,r)&&r!==n&&ti(e,r,{get:()=>t[r],enumerable:!(i=xl(t,r))||i.enumerable});return e};var wl=(e,t,n)=>(n=e!=null?gl(yl(e)):{},Al(t||!e||!e.__esModule?ti(n,"default",{value:e,enumerable:!0}):n,e));var be=(e,t,n)=>El(e,typeof t!="symbol"?t+"":t,n);var ho=te((Tp,xi)=>{var X=String,po=function(){return{isColorSupported:!1,reset:X,bold:X,dim:X,italic:X,underline:X,inverse:X,hidden:X,strikethrough:X,black:X,red:X,green:X,yellow:X,blue:X,magenta:X,cyan:X,white:X,gray:X,bgBlack:X,bgRed:X,bgGreen:X,bgYellow:X,bgBlue:X,bgMagenta:X,bgCyan:X,bgWhite:X,blackBright:X,redBright:X,greenBright:X,yellowBright:X,blueBright:X,magentaBright:X,cyanBright:X,whiteBright:X,bgBlackBright:X,bgRedBright:X,bgGreenBright:X,bgYellowBright:X,bgBlueBright:X,bgMagentaBright:X,bgCyanBright:X,bgWhiteBright:X}};xi.exports=po();xi.exports.createColors=po});var bi=te(()=>{});var gn=te((Rp,bo)=>{"use strict";var go=ho(),xo=bi(),Ot=class e extends Error{constructor(t,n,i,r,o,s){super(t),this.name="CssSyntaxError",this.reason=t,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,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=go.isColorSupported);let i=c=>c,r=c=>c,o=c=>c;if(t){let{bold:c,gray:p,red:f}=go.createColors(!0);r=x=>c(f(x)),i=x=>p(x),xo&&(o=x=>xo(x))}let s=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),u=String(a).length;return s.slice(l,a).map((c,p)=>{let f=l+1+p,x=" "+(" "+f).slice(-u)+" | ";if(f===this.line){if(c.length>160){let y=20,g=Math.max(0,this.column-y),A=Math.max(this.column+y,this.endColumn+y),_=c.slice(g,A),N=i(x.replace(/\\d/g," "))+c.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(x)+o(_)+`\n `+N+r("^")}let S=i(x.replace(/\\d/g," "))+c.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(x)+o(c)+`\n `+S+r("^")}return" "+i(x)+o(c)}).join(`\n`)}toString(){let t=this.showSourceCode();return t&&(t=`\n\n`+t+`\n`),this.name+": "+this.message+t}};bo.exports=Ot;Ot.default=Ot});var yi=te((kp,So)=>{"use strict";var ru=/(<)(\\/?style\\b)/gi,ou=/(<)(!--)/g;function Je(e){return typeof e!="string"||!e.includes("<")?e:e.replace(ru,"\\\\3c $2").replace(ou,"\\\\3c $2")}var yo={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function su(e){return e[0].toUpperCase()+e.slice(1)}var Bt=class{constructor(t){this.builder=t}atrule(t,n){let i=t.raws,r="@"+t.name,o=t.params?this.rawValue(t,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),t.nodes)this.block(t,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(Je(r+o+s),t)}}beforeAfter(t,n){let i;t.type==="decl"?i=this.raw(t,null,"beforeDecl"):t.type==="comment"?i=this.raw(t,null,"beforeComment"):n==="before"?i=this.raw(t,null,"beforeRule"):i=this.raw(t,null,"beforeClose");let r=t.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(t,null,"indent");if(s.length)for(let l=0;l<o;l++)i+=s}return i}block(t,n){let i=this.raw(t,"between","beforeOpen");this.builder(Je(n+i)+"{",t,"start");let r;t.nodes&&t.nodes.length?(this.body(t),r=this.raw(t,"after")):r=this.raw(t,"after","emptyBody"),r&&this.builder(Je(r)),this.builder("}",t,"end")}body(t){let n=t.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(t,"semicolon"),o=t.type==="document";for(let s=0;s<n.length;s++){let l=n[s],a=this.raw(l,"before");a&&this.builder(o?a:Je(a)),this.stringify(l,i!==s||r)}}comment(t){let n=this.raw(t,"left","commentLeft"),i=this.raw(t,"right","commentRight");this.builder(Je("/*"+n+t.text+i+"*/"),t)}decl(t,n){let i=t.raws,r=this.raw(t,"between","colon"),o=t.prop+r+this.rawValue(t,"value");t.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(Je(o),t)}document(t){this.body(t)}raw(t,n,i){let r;if(i||(i=n),n&&(r=t.raws[n],typeof r<"u"))return r;let o=t.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===t||o&&o.type==="document"))return"";if(!o)return yo[i];let s=t.root(),l=s.rawCache||(s.rawCache={});if(typeof l[i]<"u")return l[i];if(i==="before"||i==="after")return this.beforeAfter(t,i);{let a="raw"+su(i);this[a]?r=this[a](s,t):s.walk(u=>{if(r=u.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=yo[i]),l[i]=r,r}rawBeforeClose(t){let n;return t.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(t,n){let i;return t.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(t,n){let i;return t.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(t){let n;return t.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(t){let n;return t.walk(i=>{if(i.nodes&&(i.parent!==t||t.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(t){let n;return t.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(t){let n;return t.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(t){if(t.raws.indent)return t.raws.indent;let n;return t.walk(i=>{let r=i.parent;if(r&&r!==t&&r.parent&&r.parent===t&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(t){let n;return t.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(t,n){let i=t[n],r=t.raws[n];return r&&r.value===i?r.raw:i}root(t){if(this.body(t),t.raws.after){let n=t.raws.after,i=t.parent&&t.parent.type==="document";this.builder(i?n:Je(n))}}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(Je(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)}};So.exports=Bt;Bt.default=Bt});var Ht=te((Dp,Eo)=>{"use strict";var au=yi();function Si(e,t){new au(t).stringify(e)}Eo.exports=Si;Si.default=Si});var xn=te((Ip,Ei)=>{"use strict";Ei.exports.isClean=Symbol("isClean");Ei.exports.my=Symbol("my")});var Ut=te((Pp,Ao)=>{"use strict";var lu=gn(),uu=yi(),cu=Ht(),{isClean:Gt,my:du}=xn();function Ai(e,t){let n=new e.constructor;for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i)||i==="proxyCache")continue;let r=e[i],o=typeof r;i==="parent"&&o==="object"?t&&(n[i]=t):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>Ai(s,n)):(o==="object"&&r!==null&&(r=Ai(r)),n[i]=r)}return n}function ze(e,t){if(t&&typeof t.offset<"u")return t.offset;let n=1,i=1,r=0;for(let o=0;o<e.length;o++){if(i===t.line&&n===t.column){r=o;break}e[o]===`\n`?(n=1,i+=1):n+=1}return r}var Wt=class{get proxyOf(){return this}constructor(t={}){this.raws={},this[Gt]=!1,this[du]=!0;for(let n in t)if(n==="nodes"){this.nodes=[];for(let i of t[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}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=Ai(this);for(let i in t)n[i]=t[i];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:i,start:r}=this.rangeBy(n);return this.source.input.error(t,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new lu(t)}getProxyProcessor(){return{get(t,n){return n==="proxyOf"?t:n==="root"?()=>t.root().toProxy():t[n]},set(t,n,i){return t[n]===i||(t[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&t.markDirty()),!0}}}markClean(){this[Gt]=!0}markDirty(){if(this[Gt]){this[Gt]=!1;let t=this;for(;t=t.parent;)t[Gt]=!1}}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}positionBy(t={}){let n=this.source.start;if(t.index)n=this.positionInside(t.index);else if(t.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(ze(i,this.source.start),ze(i,this.source.end)).indexOf(t.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(t){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=ze(r,this.source.start),s=o+t;for(let l=o;l<s;l++)r[l]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let 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,i={column:this.source.start.column,line:this.source.start.line,offset:ze(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:ze(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(t.word){let s=n.slice(ze(n,this.source.start),ze(n,this.source.end)).indexOf(t.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+t.word.length))}else t.start?i={column:t.start.column,line:t.start.line,offset:ze(n,t.start)}:t.index&&(i=this.positionInside(t.index)),t.end?r={column:t.end.column,line:t.end.line,offset:ze(n,t.end)}:typeof t.endIndex=="number"?r=this.positionInside(t.endIndex):t.index&&(r=this.positionInside(t.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(t,n){return new uu().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,i=!1;for(let r of t)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let t=this;for(;t.parent&&t.parent.type!=="document";)t=t.parent;return t}toJSON(t,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let l=this[s];if(Array.isArray(l))i[s]=l.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof l=="object"&&l.toJSON)i[s]=l.toJSON(null,n);else if(s==="source"){if(l==null)continue;let a=n.get(l.input);a==null&&(a=o,n.set(l.input,o),o++),i[s]={end:l.end,inputId:a,start:l.start}}else i[s]=l}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(t=cu){t.stringify&&(t=t.stringify);let n="";return t(this,i=>{n+=i}),n}warn(t,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return t.warn(n,r)}};Ao.exports=Wt;Wt.default=Wt});var zt=te((Op,wo)=>{"use strict";var fu=Ut(),Vt=class extends fu{constructor(t){super(t),this.type="comment"}};wo.exports=Vt;Vt.default=Vt});var qt=te((Bp,Co)=>{"use strict";var mu=Ut(),jt=class extends mu{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"}};Co.exports=jt;jt.default=jt});var Xe=te((Hp,ko)=>{"use strict";var Fo=zt(),_o=qt(),pu=Ut(),{isClean:vo,my:Mo}=xn(),wi,To,No,Ci;function Lo(e){return e.map(t=>(t.nodes&&(t.nodes=Lo(t.nodes)),delete t.source,t))}function Ro(e){if(e[vo]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Ro(t)}var De=class e extends pu{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 i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let n of this.nodes)n.cleanRaws(t)}each(t){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=t(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}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")?(...i)=>t[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>t[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>t.root().toProxy():n==="nodes"?t.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?t[n].toProxy():t[n]:t[n]},set(t,n,i){return t[n]===i||(t[n]=i,(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 i=this.index(t),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(t);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(t,n){let i=this.index(t),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(t);for(let l of o)this.proxyOf.nodes.splice(i,0,l);let s;for(let l in this.indexes)s=this.indexes[l],i<=s&&(this.indexes[l]=s+o.length);return this.markDirty(),this}normalize(t,n){if(typeof t=="string")t=Lo(To(t).nodes);else if(typeof t>"u")t=[];else if(Array.isArray(t)){t=t.slice(0);for(let r of t)r.parent&&r.parent.removeChild(r,"ignore")}else if(t.type==="root"&&this.type!=="document"){t=t.nodes.slice(0);for(let r of t)r.parent&&r.parent.removeChild(r,"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 _o(t)]}else if(t.selector||t.selectors)t=[new Ci(t)];else if(t.name)t=[new wi(t)];else if(t.text)t=[new Fo(t)];else throw new Error("Unknown node type in node creation");return t.map(r=>(r[Mo]||e.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[vo]&&Ro(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...t){t=t.reverse();for(let n of t){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(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 i in this.indexes)n=this.indexes[i],n>=t&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(t,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(t,i))}),this.markDirty(),this}some(t){return this.nodes.some(t)}walk(t){return this.each((n,i)=>{let r;try{r=t(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(t)),r})}walkAtRules(t,n){return n?t instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&t.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===t)return n(i,r)}):(n=t,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(t){return this.walk((n,i)=>{if(n.type==="comment")return t(n,i)})}walkDecls(t,n){return n?t instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&t.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===t)return n(i,r)}):(n=t,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(t,n){return n?t instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&t.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===t)return n(i,r)}):(n=t,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};De.registerParse=e=>{To=e};De.registerRule=e=>{Ci=e};De.registerAtRule=e=>{wi=e};De.registerRoot=e=>{No=e};ko.exports=De;De.default=De;De.rebuild=e=>{e.type==="atrule"?Object.setPrototypeOf(e,wi.prototype):e.type==="rule"?Object.setPrototypeOf(e,Ci.prototype):e.type==="decl"?Object.setPrototypeOf(e,_o.prototype):e.type==="comment"?Object.setPrototypeOf(e,Fo.prototype):e.type==="root"&&Object.setPrototypeOf(e,No.prototype),e[Mo]=!0,e.nodes&&e.nodes.forEach(t=>{De.rebuild(t)})}});var bn=te((Gp,Io)=>{"use strict";var Do=Xe(),pt=class extends Do{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)}};Io.exports=pt;pt.default=pt;Do.registerAtRule(pt)});var yn=te((Wp,Bo)=>{"use strict";var hu=Xe(),Po,Oo,at=class extends hu{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){return new Po(new Oo,this,t).stringify()}};at.registerLazyResult=e=>{Po=e};at.registerProcessor=e=>{Oo=e};Bo.exports=at;at.default=at});var Go=te((Up,Ho)=>{var gu="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",xu=(e,t=21)=>(n=t)=>{let i="",r=n|0;for(;r--;)i+=e[Math.random()*e.length|0];return i},bu=(e=21)=>{let t="",n=e|0;for(;n--;)t+=gu[Math.random()*64|0];return t};Ho.exports={nanoid:bu,customAlphabet:xu}});var Sn=te(()=>{});var En=te(()=>{});var Fi=te(()=>{});var Wo=te(()=>{});var vi=te((Yp,zo)=>{"use strict";var{existsSync:yu,readFileSync:Su}=Wo(),{dirname:_i,join:Eu}=Sn(),{SourceMapConsumer:Uo,SourceMapGenerator:Vo}=En();function Au(e){return Buffer?Buffer.from(e,"base64").toString():window.atob(e)}var $t=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 i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=_i(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new Uo(this.json||this.text)),this.consumerCache}decodeInline(t){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=t.match(r)||t.match(o);if(s)return decodeURIComponent(t.substr(s[0].length));let l=t.match(n)||t.match(i);if(l)return Au(t.substr(l[0].length));let a=t.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}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 i=t.lastIndexOf(n.pop()),r=t.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(t.substring(i,r)))}loadFile(t,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(t))&&(this.root=_i(t),yu(t)))return this.mapFile=t,Su(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 i=n(t);if(i){let r=this.loadFile(i,t,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof Uo)return Vo.fromSourceMap(n).toString();if(n instanceof Vo)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;t&&(i=Eu(_i(t),i));let r=this.loadFile(i,t,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(t,n){return t?t.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};zo.exports=$t;$t.default=$t});var Kt=te((Qp,Jo)=>{"use strict";var{nanoid:wu}=Go(),{isAbsolute:Ni,resolve:Li}=Sn(),{SourceMapConsumer:Cu,SourceMapGenerator:Fu}=En(),{fileURLToPath:jo,pathToFileURL:An}=Fi(),qo=gn(),_u=vi(),Mi=bi(),Ti=Symbol("lineToIndexCache"),vu=!!(Cu&&Fu),$o=!!(Li&&Ni);function Ko(e){if(e[Ti])return e[Ti];let t=e.css.split(`\n`),n=new Array(t.length),i=0;for(let r=0,o=t.length;r<o;r++)n[r]=i,i+=t[r].length+1;return e[Ti]=n,n}var ht=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&&(!$o||/^\\w+:\\/\\//.test(n.from)||Ni(n.from)?this.file=n.from:this.file=Li(n.from)),$o&&vu){let i=new _u(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+wu(6)+">"),this.map&&(this.map.file=this.from)}error(t,n,i,r={}){let o,s,l,a,u;if(n&&typeof n=="object"){let p=n,f=i;if(typeof p.offset=="number"){a=p.offset;let x=this.fromOffset(a);n=x.line,i=x.col}else n=p.line,i=p.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){l=f.offset;let x=this.fromOffset(l);s=x.line,o=x.col}else s=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let p=this.fromOffset(a);n=p.line,i=p.col}let c=this.origin(n,i,s,o);return c?u=new qo(t,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,r.plugin):u=new qo(t,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),u.input={column:i,endColumn:o,endLine:s,endOffset:l,line:n,offset:a,source:this.css},this.file&&(An&&(u.input.url=An(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(t,n){return Ko(this)[t-1]+n-1}fromOffset(t){let n=Ko(this),i=n[n.length-1],r=0;if(t>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),t<n[s])o=s-1;else if(t>=n[s+1])r=s+1;else{r=s;break}}return{col:t-n[r]+1,line:r+1}}mapResolve(t){return/^\\w+:\\/\\//.test(t)?t:Li(this.map.consumer().sourceRoot||this.map.root||".",t)}origin(t,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:t});if(!s.source)return!1;let l;typeof i=="number"&&(l=o.originalPositionFor({column:r,line:i}));let a;Ni(s.source)?a=An(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||An(this.map.mapFile));let u={column:s.column,endColumn:l&&l.column,endLine:l&&l.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(jo)u.file=jo(a);else throw new Error("file: protocol is not available in this PostCSS build");let c=o.sourceContentFor(s.source);return c&&(u.source=c),u}toJSON(){let t={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(t[n]=this[n]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}};Jo.exports=ht;ht.default=ht;Mi&&Mi.registerInput&&Mi.registerInput(ht)});var gt=te((Zp,Zo)=>{"use strict";var Xo=Xe(),Yo,Qo,Ye=class extends Xo{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}normalize(t,n,i){let r=super.normalize(t);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(t,n){let i=this.index(t);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(t)}toResult(t={}){return new Yo(new Qo,this,t).stringify()}};Ye.registerLazyResult=e=>{Yo=e};Ye.registerProcessor=e=>{Qo=e};Zo.exports=Ye;Ye.default=Ye;Xo.registerRoot(Ye)});var Ri=te((eh,es)=>{"use strict";var Jt={comma(e){return Jt.split(e,[","],!0)},space(e){let t=[" ",`\n`," "];return Jt.split(e,t)},split(e,t,n){let i=[],r="",o=!1,s=0,l=!1,a="",u=!1;for(let c of e)u?u=!1:c==="\\\\"?u=!0:l?c===a&&(l=!1):c===\'"\'||c==="\'"?(l=!0,a=c):c==="("?s+=1:c===")"?s>0&&(s-=1):s===0&&t.includes(c)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=c;return(n||r!=="")&&i.push(r.trim()),i}};es.exports=Jt;Jt.default=Jt});var wn=te((th,ns)=>{"use strict";var ts=Xe(),Mu=Ri(),xt=class extends ts{get selectors(){return Mu.comma(this.selector)}set selectors(t){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=t.join(i)}constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}};ns.exports=xt;xt.default=xt;ts.registerRule(xt)});var rs=te((nh,is)=>{"use strict";var Tu=bn(),Nu=zt(),Lu=qt(),Ru=Kt(),ku=vi(),Du=gt(),Iu=wn();function Xt(e,t){if(Array.isArray(e))return e.map(r=>Xt(r));let{inputs:n,...i}=e;if(n){t=[];for(let r of n){let o={...r,__proto__:Ru.prototype};o.map&&(o.map={...o.map,__proto__:ku.prototype}),t.push(o)}}if(i.nodes&&(i.nodes=e.nodes.map(r=>Xt(r,t))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=t[r])}if(i.type==="root")return new Du(i);if(i.type==="decl")return new Lu(i);if(i.type==="rule")return new Iu(i);if(i.type==="comment")return new Nu(i);if(i.type==="atrule")return new Tu(i);throw new Error("Unknown node type: "+e.type)}is.exports=Xt;Xt.default=Xt});var Di=te((ih,cs)=>{"use strict";var{dirname:Cn,relative:ss,resolve:as,sep:ls}=Sn(),{SourceMapConsumer:us,SourceMapGenerator:Fn}=En(),{pathToFileURL:os}=Fi(),Pu=Kt(),Ou=!!(us&&Fn),Bu=!!(Cn&&as&&ss&&ls),ki=class{constructor(t,n,i,r){this.stringify=t,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let 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)),i=t.root||Cn(t.file),r;this.mapOpts.sourcesContent===!1?(r=new us(t.text),r.sourcesContent&&(r.sourcesContent=null)):r=t.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let t;for(let n=this.root.nodes.length-1;n>=0;n--)t=this.root.nodes[n],t.type==="comment"&&t.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let t;for(;(t=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",t+3);if(n===-1)break;for(;t>0&&this.css[t-1]===`\n`;)t--;this.css=this.css.slice(0,t)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Bu&&Ou&&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=Fn.fromSourceMap(t,{ignoreInvalidMapping:!0})}else this.map=new Fn({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 Fn({file:this.outputFile(),ignoreInvalidMapping:!0});let t=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(l,a,u)=>{if(this.css+=l,a&&u!=="end"&&(r.generated.line=t,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=l.match(/\\n/g),s?(t+=s.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,a&&u!=="start"){let c=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==c.last||c.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=t,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=t,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(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 i=this.opts.to?Cn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Cn(as(i,this.mapOpts.annotation)));let r=ss(i,t);return this.memoizedPaths.set(t,r),r}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 Pu(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 i=n.source.input.from;if(i&&!t[i]){t[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(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(os){let i=os(t).toString();return this.memoizedFileURLs.set(t,i),i}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;ls==="\\\\"&&(t=t.replace(/\\\\/g,"/"));let i=encodeURI(t).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(t,i),i}};cs.exports=ki});var ms=te((rh,fs)=>{"use strict";var _n=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,vn=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Hu=/.[\\r\\n"\'(/\\\\]/,ds=/[\\da-f]/i;fs.exports=function(t,n={}){let i=t.css.valueOf(),r=n.ignoreErrors,o,s,l,a,u,c,p,f,x,S,y=i.length,g=0,A=[],_=[],N=-1;function J(){return g}function B(v){throw t.error("Unclosed "+v,g)}function M(){return _.length===0&&g>=y}function E(v){if(_.length)return _.pop();if(g>=y)return;let T=v?v.ignoreUnclosed:!1;switch(o=i.charCodeAt(g),o){case 10:case 32:case 9:case 13:case 12:{a=g;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);c=["space",i.slice(g,a)],g=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let k=String.fromCharCode(o);c=[k,k,g];break}case 40:{if(S=A.length?A.pop()[1]:"",x=i.charCodeAt(g+1),S==="url"&&x!==39&&x!==34&&x!==32&&x!==10&&x!==9&&x!==12&&x!==13){a=g;do{if(p=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=g;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,p=!p}while(p);c=["brackets",i.slice(g,a+1),g,a],g=a}else g<=N?c=["(","(",g]:(a=i.indexOf(")",g+1),s=i.slice(g,a+1),a===-1||Hu.test(s)?(N=a===-1?y:a,c=["(","(",g]):(c=["brackets",s,g,a],g=a));break}case 39:case 34:{u=o===39?"\'":\'"\',a=g;do{if(p=!1,a=i.indexOf(u,a+1),a===-1)if(r||T){a=g+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,p=!p}while(p);c=["string",i.slice(g,a+1),g,a],g=a;break}case 64:{_n.lastIndex=g+1,_n.test(i),_n.lastIndex===0?a=i.length-1:a=_n.lastIndex-2,c=["at-word",i.slice(g,a+1),g,a],g=a;break}case 92:{for(a=g,l=!0;i.charCodeAt(a+1)===92;)a+=1,l=!l;if(o=i.charCodeAt(a+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,ds.test(i.charAt(a)))){for(;ds.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}c=["word",i.slice(g,a+1),g,a],g=a;break}default:{o===47&&i.charCodeAt(g+1)===42?(a=i.indexOf("*/",g+2)+1,a===0&&(r||T?a=i.length:B("comment")),c=["comment",i.slice(g,a+1),g,a],g=a):(vn.lastIndex=g+1,vn.test(i),vn.lastIndex===0?a=i.length-1:a=vn.lastIndex-2,c=["word",i.slice(g,a+1),g,a],A.push(c),g=a);break}}return g++,c}function F(v){_.push(v)}return{back:F,endOfFile:M,nextToken:E,position:J}}});var xs=te((oh,gs)=>{"use strict";var Gu=bn(),Wu=zt(),Uu=qt(),Vu=gt(),ps=wn(),zu=ms(),hs={empty:!0,space:!0};function ju(e){for(let t=e.length-1;t>=0;t--){let n=e[t],i=n[3]||n[2];if(i)return i}}var Ii=class{constructor(t){this.input=t,this.root=new Vu,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 Gu;n.name=t[1].slice(1),n.name===""&&this.unnamedAtrule(n,t),this.init(n,t[2]);let i,r,o,s=!1,l=!1,a=[],u=[];for(;!this.tokenizer.endOfFile();){if(t=this.tokenizer.nextToken(),i=t[0],i==="("||i==="["?u.push(i==="("?")":"]"):i==="{"&&u.length>0?u.push("}"):i===u[u.length-1]&&u.pop(),u.length===0)if(i===";"){n.source.end=this.getPosition(t[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(t);break}else a.push(t);else a.push(t);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(t=a[a.length-1],n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(t){let n=this.colon(t);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=t[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(t){let n=0,i,r,o;for(let[s,l]of t.entries()){if(r=l,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(t){let n=new Wu;this.init(n,t[2]),n.source.end=this.getPosition(t[3]||t[2]),n.source.end.offset++;let i=t[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=zu(this.input)}decl(t,n){let i=new Uu;this.init(i,t[0][2]);let r=t[t.length-1];for(r[0]===";"&&(this.semicolon=!0,t.pop()),i.source.end=this.getPosition(r[3]||r[2]||ju(t)),i.source.end.offset++;t[0][0]!=="word";)t.length===1&&this.unknownWord(t),i.raws.before+=t.shift()[1];for(i.source.start=this.getPosition(t[0][2]),i.prop="";t.length;){let u=t[0][0];if(u===":"||u==="space"||u==="comment")break;i.prop+=t.shift()[1]}i.raws.between="";let o;for(;t.length;)if(o=t.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],l;for(;t.length&&(l=t[0][0],!(l!=="space"&&l!=="comment"));)s.push(t.shift());this.precheckMissedSemicolon(t);for(let u=t.length-1;u>=0;u--){if(o=t[u],o[1].toLowerCase()==="!important"){i.important=!0;let c=this.stringFrom(t,u);c=this.spacesFromEnd(t)+c,c!==" !important"&&(i.raws.important=c);break}else if(o[1].toLowerCase()==="important"){let c=t.slice(0),p="";for(let f=u;f>0;f--){let x=c[f][0];if(p.trim().startsWith("!")&&x!=="space")break;p=c.pop()[1]+p}p.trim().startsWith("!")&&(i.important=!0,i.raws.important=p,t=c)}if(o[0]!=="space"&&o[0]!=="comment")break}t.some(u=>u[0]!=="space"&&u[0]!=="comment")&&(i.raws.between+=s.map(u=>u[1]).join(""),s=[]),this.raw(i,"value",s.concat(t),n),i.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 ps;this.init(n,t[2]),n.selector="",n.raws.between="",this.current=n}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(t[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(t){let n=this.input.fromOffset(t);return{column:n.col,line:n.line,offset:t}}init(t,n){this.current.push(t),t.source={input:this.input,start:this.getPosition(n)},t.raws.before=this.spaces,this.spaces="",t.type!=="comment"&&(this.semicolon=!1)}other(t){let n=!1,i=null,r=!1,o=null,s=[],l=t[1].startsWith("--"),a=[],u=t;for(;u;){if(i=u[0],a.push(u),i==="("||i==="[")o||(o=u),s.push(i==="("?")":"]");else if(l&&r&&i==="{")o||(o=u),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,l);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!l)for(;a.length&&(u=a[a.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,l)}else this.unknownWord(a)}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,i,r){let o,s,l=i.length,a="",u=!0,c,p;for(let f=0;f<l;f+=1)o=i[f],s=o[0],s==="space"&&f===l-1&&!r?u=!1:s==="comment"?(p=i[f-1]?i[f-1][0]:"empty",c=i[f+1]?i[f+1][0]:"empty",!hs[p]&&!hs[c]?a.slice(-1)===","?u=!1:a+=o[1]:u=!1):a+=o[1];if(!u){let f=i.reduce((x,S)=>x+S[1],"");t.raws[n]={raw:f,value:a}}t[n]=a}rule(t){t.pop();let n=new ps;this.init(n,t[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(n,"selector",t),this.current=n}spacesAndCommentsFromEnd(t){let n,i="";for(;t.length&&(n=t[t.length-1][0],!(n!=="space"&&n!=="comment"));)i=t.pop()[1]+i;return i}spacesAndCommentsFromStart(t){let n,i="";for(;t.length&&(n=t[0][0],!(n!=="space"&&n!=="comment"));)i+=t.shift()[1];return i}spacesFromEnd(t){let n,i="";for(;t.length&&(n=t[t.length-1][0],n==="space");)i=t.pop()[1]+i;return i}stringFrom(t,n){let i="";for(let r=n;r<t.length;r++)i+=t[r][1];return t.splice(n,t.length-n),i}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})}};gs.exports=Ii});var Tn=te((sh,bs)=>{"use strict";var qu=Xe(),$u=Kt(),Ku=xs();function Mn(e,t){let n=new $u(e,t),i=new Ku(n);try{i.parse()}catch(r){throw r}return i.root}bs.exports=Mn;Mn.default=Mn;qu.registerParse(Mn)});var Pi=te((ah,ys)=>{"use strict";var Yt=class{constructor(t,n={}){if(this.type="warning",this.text=t,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};ys.exports=Yt;Yt.default=Yt});var Nn=te((lh,Ss)=>{"use strict";var Ju=Pi(),Qt=class{get content(){return this.css}constructor(t,n,i){this.processor=t,this.messages=[],this.root=n,this.opts=i,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 i=new Ju(t,n);return this.messages.push(i),i}warnings(){return this.messages.filter(t=>t.type==="warning")}};Ss.exports=Qt;Qt.default=Qt});var Oi=te((uh,As)=>{"use strict";var Es={};As.exports=function(t){Es[t]||(Es[t]=!0,typeof console<"u"&&console.warn&&console.warn(t))}});var Gi=te((dh,_s)=>{"use strict";var Xu=Xe(),Yu=yn(),Qu=Di(),Zu=Tn(),ws=Nn(),ec=gt(),tc=Ht(),{isClean:He,my:nc}=xn(),ch=Oi(),ic={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},rc={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},oc={Once:!0,postcssPlugin:!0,prepare:!0},bt=0;function Zt(e){return typeof e=="object"&&typeof e.then=="function"}function Fs(e){let t=!1,n=ic[e.type];return e.type==="decl"?t=e.prop.toLowerCase():e.type==="atrule"&&(t=e.name.toLowerCase()),t&&e.append?[n,n+"-"+t,bt,n+"Exit",n+"Exit-"+t]:t?[n,n+"-"+t,n+"Exit",n+"Exit-"+t]:e.append?[n,bt,n+"Exit"]:[n,n+"Exit"]}function Cs(e){let t;return e.type==="document"?t=["Document",bt,"DocumentExit"]:e.type==="root"?t=["Root",bt,"RootExit"]:t=Fs(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Bi(e){return e[He]=!1,e.nodes&&e.nodes.forEach(t=>Bi(t)),e}var Hi={},Qe=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,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Bi(n);else if(n instanceof e||n instanceof ws)r=Bi(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=Zu;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[nc]&&Xu.rebuild(r)}this.result=new ws(t,r,i),this.helpers={...Hi,postcss:Hi,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 i=this.result.lastPlugin;try{n&&n.addToError(t),this.error=t,t.name==="CssSyntaxError"&&!t.plugin?(t.plugin=i.postcssPlugin,t.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return t}prepareVisitors(){this.listeners={};let t=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!rc[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!oc[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?t(n,i,n[i][r]):t(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&t(n,i,n[i])}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],i=this.runOnRoot(n);if(Zt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[He];){t[He]=!0;let n=[Cs(t)];for(;n.length>0;){let i=this.visitTick(n);if(Zt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(t.type==="document"){let r=t.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(t,this.helpers)}catch(r){throw this.handleError(r)}}}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(i=>t.Once(i,this.helpers));return Zt(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=tc;t.syntax&&(n=t.syntax.stringify),t.stringifier&&(n=t.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(t.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,l=>{s+=l}),this.result.css=s,this.result}let o=new Qu(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(Zt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;for(;!t[He];)t[He]=!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[i,r]of t){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Zt(o))throw this.getAsyncError()}}visitTick(t){let n=t[t.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){t.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,l]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return l(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,l;for(;l=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!l[He]){l[He]=!0,t.push(Cs(l));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===bt){i.nodes&&i.nodes.length&&(i[He]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}t.pop()}walkSync(t){t[He]=!0;let n=Fs(t);for(let i of n)if(i===bt)t.nodes&&t.each(r=>{r[He]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,t.toProxy()))return}}warnings(){return this.sync().warnings()}};Qe.registerPostcss=e=>{Hi=e};_s.exports=Qe;Qe.default=Qe;ec.registerLazyResult(Qe);Yu.registerLazyResult(Qe)});var Ms=te((mh,vs)=>{"use strict";var sc=Di(),ac=Tn(),lc=Nn(),uc=Ht(),fh=Oi(),en=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=ac;try{t=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=t,t}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(t,n,i){n=n.toString(),this.stringified=!1,this._processor=t,this._css=n,this._opts=i,this._map=void 0;let r=uc;this.result=new lc(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new sc(r,void 0,this._opts,n);if(s.isMap()){let[l,a]=s.generate();l&&(this.result.css=l),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(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[]}};vs.exports=en;en.default=en});var Ns=te((ph,Ts)=>{"use strict";var cc=yn(),dc=Gi(),fc=Ms(),mc=gt(),lt=class{constructor(t=[]){this.version="8.5.14",this.plugins=this.normalize(t)}normalize(t){let n=[];for(let i of t)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(t,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new fc(this,t,n):new dc(this,t,n)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}};Ts.exports=lt;lt.default=lt;mc.registerProcessor(lt);cc.registerProcessor(lt)});var Bs=te((hh,Os)=>{"use strict";var Ls=bn(),Rs=zt(),pc=Xe(),hc=gn(),ks=qt(),Ds=yn(),gc=rs(),xc=Kt(),bc=Gi(),yc=Ri(),Sc=Ut(),Ec=Tn(),Wi=Ns(),Ac=Nn(),Is=gt(),Ps=wn(),wc=Ht(),Cc=Pi();function le(...e){return e.length===1&&Array.isArray(e[0])&&(e=e[0]),new Wi(e)}le.plugin=function(t,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(t+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(t+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...s);return l.postcssPlugin=t,l.postcssVersion=new Wi().version,l}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,l,a){return le([r(a)]).process(s,l)},r};le.stringify=wc;le.parse=Ec;le.fromJSON=gc;le.list=yc;le.comment=e=>new Rs(e);le.atRule=e=>new Ls(e);le.decl=e=>new ks(e);le.rule=e=>new Ps(e);le.root=e=>new Is(e);le.document=e=>new Ds(e);le.CssSyntaxError=hc;le.Declaration=ks;le.Container=pc;le.Processor=Wi;le.Document=Ds;le.Comment=Rs;le.Warning=Cc;le.AtRule=Ls;le.Result=Ac;le.Input=xc;le.Rule=Ps;le.Root=Is;le.Node=Sc;bc.registerPostcss(le);Os.exports=le;le.default=le});function mn(){return globalThis}function L(e,t){if(typeof window>"u")return;let n=mn(),i=n.__hf?.onSwallowed;if(i)try{i({label:e,error:t})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${e} swallowed:`,t)}function Ce(e){try{window.parent.postMessage(e,"*")}catch(t){L("bridge.postMessage",t)}}var Cl={play:(e,t)=>t.onPlay(),pause:(e,t)=>t.onPause(),"stop-media":(e,t)=>t.onStopMedia(),seek:(e,t)=>t.onSeek(Number(e.frame??0),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-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=>Fl(e)};function Fl(e){let t=e.selectors,n=e.duration||800;t&&_l(t,n)}function Mr(e){let t=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(typeof r!="string")return;let o=Cl[r];o&&o(i,e)};return window.addEventListener("message",t),Ce({source:"hf-preview",type:"ready"}),t}function _l(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(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),t)})}catch(i){L("bridge.flashElements.querySelector",i)}}var ni=null;function Tr(e){ni=e}function st(e,t){if(ni)try{ni({source:"hf-preview",type:"analytics",event:e,properties:t??{}})}catch(n){L("runtime.analytics.site1",n)}}function vl(e){let t=e.toLowerCase().replace(/[^a-z0-9]+/g,"-"),n=0,i=t.length;for(;n<i&&t[n]==="-";)n++;for(;i>n&&t[i-1]==="-";)i--;let r=t.slice(n,i);return r.length>0?r:"node"}function Mt(e){return`--${vl(e)}`}function Nr(e){let t=new Map;for(let n of e){let i=Mt(n),r=t.get(i);r?r.includes(n)||r.push(n):t.set(i,[n])}return[...t.values()].filter(n=>n.length>1)}function Lr(){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,Tt(i));let n=pn();return{...t,...n}}function Tt(e){if(!e)return{};let t=e.getAttribute("data-composition-variables");if(!t)return{};let n;try{n=JSON.parse(t)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}var ii="data-hf-css-vars";function ri(e){return"style"in e&&typeof e.style?.setProperty=="function"}function oi(e,t){if(!ri(e))return;let n=[];for(let[i,r]of Object.entries(t))if(typeof r=="string"&&r!==""||typeof r=="number"){let o=Mt(i);e.style.setProperty(o,String(r)),n.push(o)}n.length>0&&e.setAttribute(ii,n.join(" "))}function Rr(e){if(!ri(e))return;let t=e.getAttribute(ii);if(t){for(let n of t.split(" "))n.startsWith("--")&&e.style.removeProperty(n);e.removeAttribute(ii)}}function kr(e){let t=new Set;e.documentElement?.hasAttribute("data-composition-variables")&&t.add(e.documentElement);for(let r of Array.from(e.querySelectorAll("[data-composition-variables]")))t.add(r);let n=pn(),i=[];for(let r of t)i.push(...Ml(r,n,e.defaultView));for(let r of Nr(i))console.warn(`composition variables ${r.join(", ")} collapse to the same CSS property ${Mt(r[0]??"")} \\u2014 rename one to avoid cross-talk`)}function Ml(e,t,n){if(!ri(e))return[];let i=Tt(e),r={};for(let[o,s]of Object.entries(i)){if(o in t)continue;let l=Mt(o);(e.style.getPropertyValue(l)||(n?n.getComputedStyle(e).getPropertyValue(l):"")).trim()===""&&(r[o]=s)}for(let[o,s]of Object.entries(t))o in i&&(r[o]=s);return oi(e,r),Object.keys(i)}function Dr(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 pn(){if(typeof window>"u")return{};let e=window.__hfVariables;return!e||typeof e!="object"||Array.isArray(e)?{}:e}function Ir(e){let t=[],n=u=>{if(typeof u.getAnimations!="function")return[];try{return u.getAnimations()}catch{return[]}},i=u=>e?.resolveStartSeconds?e.resolveStartSeconds(u):Number.parseFloat(u.getAttribute("data-start")??"0")||0,r=(u,c)=>{let p=null;try{p=u.effect?.getComputedTiming?.()??null}catch(x){L("runtime.adapters.css.site5",x)}if(!p)return{};let f=Number(p.endTime);return Number.isFinite(f)?{endSeconds:c+f/1e3}:{unbounded:!0}},o=(u,c)=>{for(let p of u){try{p.currentTime=c}catch(f){L("runtime.adapters.css.site1",f)}try{p.pause()}catch(f){L("runtime.adapters.css.site2",f)}}},s=u=>{for(let c of u)try{c.play()}catch(p){L("runtime.adapters.css.site3",p)}},l=u=>{for(let c of u)try{c.pause()}catch(p){L("runtime.adapters.css.site4",p)}},a=u=>{u.baseDelay?u.el.style.animationDelay=u.baseDelay:u.el.style.removeProperty("animation-delay"),u.basePlayState?u.el.style.animationPlayState=u.basePlayState:u.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{t=[];let u=document.querySelectorAll("*");for(let c of u){if(!(c instanceof HTMLElement))continue;let p=window.getComputedStyle(c);!p.animationName||p.animationName==="none"||t.push({el:c,baseDelay:c.style.animationDelay||"",basePlayState:c.style.animationPlayState||"",animations:n(c)})}},getInferredDurationSeconds:()=>{let u=0;for(let c of t){if(!c.el.isConnected)continue;let p=i(c.el);for(let f of n(c.el)){let x=r(f,p);x.endSeconds!=null&&(u=Math.max(u,x.endSeconds))}}return u>0?u:null},seek:u=>{let c=Number(u.time)||0;for(let p of t){if(!p.el.isConnected)continue;let f=i(p.el),x=Math.max(0,c-f)*1e3,S=p.animations;if(S.length>0){o(S,x);continue}p.el.style.animationPlayState="paused",p.el.style.animationDelay=`-${(x/1e3).toFixed(3)}s`}},pause:()=>{for(let u of t){if(!u.el.isConnected)continue;let c=u.animations;c.length>0&&l(c),a(u)}},play:()=>{for(let u of t)u.el.isConnected&&(a(u),s(u.animations))},revert:()=>{t=[]}}}function Pr(e){return{name:"gsap",discover:()=>{},seek:t=>{let n=e.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(t.time)||0),r=t.suppressEvents===!0;typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,r)):n.seek(i,r)},pause:()=>{let t=e.getTimeline();t&&t.pause()}}}function Or(){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??[],i=new Set(n);for(let r of t)i.has(r)||n.push(r);window.__hfAnime=n}catch(e){L("runtime.adapters.animejs.site1",e)}},seek:e=>{let t=Math.max(0,(Number(e.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(t)}catch(r){L("runtime.adapters.animejs.site2",r)}},pause:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.pause=="function"&&t.pause()}catch(n){L("runtime.adapters.animejs.site3",n)}},play:()=>{let e=window.__hfAnime;if(!(!e||e.length===0))for(let t of e)try{typeof t.play=="function"&&t.play()}catch(n){L("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Hr(){return{name:"lottie",discover:()=>{try{let e=window.lottie;if(e&&typeof e.getRegisteredAnimations=="function"){let t=e.getRegisteredAnimations();if(Array.isArray(t)&&t.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of t)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(e){L("runtime.adapters.lottie.site1",e)}},seek:e=>{let t=Math.max(0,Number(e.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(si(i))i.goToAndStop(t*1e3,!1);else if(ai(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=t*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,t/r*100);i.seek(o)}}}catch(r){L("runtime.adapters.lottie.site2",r)}},pause:()=>{let e=window.__hfLottie;if(!(!e||e.length===0))for(let t of e)try{(si(t)||ai(t))&&t.pause()}catch(n){L("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let e=window.__hfLottie;if(!e||e.length===0)return null;let t=0,n=!1;for(let i of e){let r=null;try{r=Tl(i)}catch(o){L("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,t=Math.max(t,r))}return n?t:null}}}function Br(e,t){return!Number.isFinite(e)||!e||e<=0||!Number.isFinite(t)||!t||t<=0?null:e/t}function Tl(e){return si(e)?Br(e.totalFrames,e.frameRate):ai(e)?Number.isFinite(e.duration)&&(e.duration??0)>0?e.duration??null:Br(e.totalFrames,e.frameRate):null}function si(e){return typeof e=="object"&&e!==null&&typeof e.goToAndStop=="function"}function ai(e){return typeof e=="object"&&e!==null&&typeof e.pause=="function"&&("totalFrames"in e||"duration"in e)}var li=-1;function hn(e){if(e!==li){li=e;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:e}}))}catch(t){L("runtime.adapters.seek-dispatch.site1",t)}}}function Gr(e){li=e;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:e}}))}catch(t){L("runtime.adapters.seek-dispatch.force",t)}}function Wr(){let e=null,t=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let c=window.THREE?.DefaultLoadingManager;return!c||typeof c!="object"||typeof c.itemsLoaded!="number"||typeof c.itemsTotal!="number"?null:c},l=u=>{o||u.itemsTotal<=u.itemsLoaded||(o=new Promise(c=>{u.onLoad=function(){try{r?.call(this)}finally{o=null,u.onLoad=r??null,c()}}}))},a=u=>{n!==u&&(n=u,i=u.onStart??null,r=u.onLoad??null,u.onStart=function(c,p,f){try{i?.call(this,c,p,f)}finally{l(u)}})};return{name:"three",discover:()=>{let u=s();u&&(a(u),l(u))},seek:u=>{e=Math.max(0,Number(u.time)||0),t=e,window.__hfThreeTime=e,hn(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0},getReadyPromise:()=>{let u=s();return!u||u.itemsTotal<=u.itemsLoaded?null:(o||l(u),o)}}}function Be(e){let t=null,n=new WeakSet;return{name:e.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=e.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:t||(t=Promise.allSettled(r.map(o=>e.waitFor(o).then(()=>{n.add(o)}))).then(()=>{t=null}),t)}}}function Ur(){return Be({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 Vr(){return Be({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 zr(){return Be({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 jr(){return Be({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 qr(){return Be({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let e=window.__hfD3;return Array.isArray(e)?e:[]},waitFor:e=>e.end()})}function $r(){let e=null,t=0;return{name:"typegpu",discover:()=>{},seek:n=>{e=Math.max(0,Number(n.time)||0),t=e,window.__hfTypegpuTime=e,hn(e)},pause:()=>{e==null&&(e=Math.max(0,t))},play:()=>{e=null},revert:()=>{e=null,t=0}}}function Kr(e){let t=e.nextElementSibling;if(t instanceof HTMLImageElement&&t.classList.contains("__render_frame__")&&t.complete&&t.naturalWidth>0)return t;if(e.id){let n=document.getElementById(`__render_frame_${e.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function Jr(){let e=globalThis.GPUQueue;if(!e?.prototype?.copyExternalImageToTexture)return;let t=e.prototype.copyExternalImageToTexture;e.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Kr(n.source);if(o)return t.call(this,{...n,source:o},i,r)}return t.call(this,n,i,r)}}function Xr(){let e=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],t=["texImage2D","texSubImage2D"];for(let n of e){let i=n?.prototype;if(i)for(let r of t){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...l){let a=l.length-1,u=l[a];if(u instanceof HTMLVideoElement){let c=Kr(u);c&&(l[a]=c)}return o.apply(this,l)};s.__hfVideoPatched=!0,i[r]=s}}}function Yr(){let e=!1,t=0,n=!1,i,r,o,s=new Set,l=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},u=g=>{let A=Number(g.currentTime);return Number.isFinite(A)&&A>0?A:0},c=(g,A)=>A<=0?g:g>=A?Math.max(0,g-A):g,p=(g,A)=>{let _=l.get(g);if(_)return _;let N={compositionTimeMs:A,animationTimeMs:e?c(u(g),A):u(g)};return l.set(g,N),N},f=(g,A)=>{if(!s.has(g)){s.add(g);let _=()=>{s.delete(g)};try{g.addEventListener("finish",_,{once:!0}),g.addEventListener("cancel",_,{once:!0})}catch(N){L("runtime.adapters.waapi.site4",N)}}p(g,A)},x=(g,A)=>{for(let _ of g)f(_,A)},S=()=>{if(n||typeof Element>"u")return;let g=Element.prototype;if(typeof g.animate!="function"||g.__hfOriginalAnimate)return;let A=g.animate;try{Object.defineProperty(g,"__hfOriginalAnimate",{value:A,configurable:!0});let _=function(...N){let J=A.apply(this,N);return f(J,t),J};g.animate=_,i=g,r=A,o=_,n=!0}catch{}},y=g=>{let A=null;try{A=g.effect?.getComputedTiming?.()??null}catch(J){L("runtime.adapters.waapi.site4",J)}if(!A)return{};let _=Number(A.endTime);return Number.isFinite(_)?{endSeconds:(l.get(g)?.compositionTimeMs??0)/1e3+_/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{e=!0,S(),x(a(),t)},seek:g=>{let A=Math.max(0,(Number(g.time)||0)*1e3);t=A,(!e||s.size>0)&&x(a(),e?A:0);for(let _ of s){let N=e?p(_,A):p(_,0),J=N.animationTimeMs+Math.max(0,A-N.compositionTimeMs);try{_.currentTime=J}catch(B){L("runtime.adapters.waapi.site1",B)}try{_.pause()}catch(B){L("runtime.adapters.waapi.site2",B)}}},pause:()=>{e||x(a(),t);for(let g of s)try{g.pause()}catch(A){L("runtime.adapters.waapi.site3",A)}},revert:()=>{if(s.clear(),l=new WeakMap,e=!1,t=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(g){L("runtime.adapters.waapi.site5",g)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let g=0;for(let A of a()){let _=y(A);_.endSeconds!=null&&(g=Math.max(g,_.endSeconds))}return g>0?g:null}}}function Qr(e,t){if(e.length===0)return 1;let n=0;for(;n<e.length-2&&t>=e[n+1].time;)n+=1;let i=e[n],r=e[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(t-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Nl(e,t,n,i){let r=Number.parseFloat(e.dataset.start??"0")||0,o=Number.parseFloat(e.dataset.end??""),s=Number.parseFloat(e.dataset.duration??""),l=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(e.dataset.volume??""),u=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;e.volume=u;let c=1/Math.min(60,Math.max(1,i)),p=Math.max(0,r),f=Math.min(n,l),x=[];for(let y=p;y<=f+1e-6;y+=c){let g=Math.min(f,y);t(g);let A=Number(e.volume);if(!Number.isFinite(A))continue;let _=Math.max(0,Math.min(1,A)),N=x.at(-1);if((!N||Math.abs(N.volume-_)>1e-4||g===f)&&x.push({time:Number(g.toFixed(6)),volume:Number(_.toFixed(6))}),g===f)break}return x.some(y=>Math.abs(y.volume-u)>1e-4)?x:null}function Zr(e,t,n,i){if(!t||!(e instanceof HTMLAudioElement)&&!(e instanceof HTMLVideoElement)||n<=0)return;let o=Nl(e,s=>{try{typeof t.totalTime=="function"?t.totalTime(s,!0):typeof t.seek=="function"&&t.seek(s,!0)}catch{}},n,60);o&&i.set(e,o)}function Rt(e){let t=e.defaultPlaybackRate;return Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1}function eo(e){let t=Array.from(document.querySelectorAll("video, audio")),n=e?.shouldIncludeElement?t.filter(s=>e.shouldIncludeElement?.(s)):t.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let l=e?.resolveStartSeconds?e.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(l))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,u=Rt(s),c=s.loop,p=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=e?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&p!=null&&(f=Math.max(0,(p-a)/u));let x=Number.isFinite(f)&&f>0?l+f:Number.POSITIVE_INFINITY,S=Number.parseFloat(s.dataset.volume??""),y={el:s,start:l,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:x,volume:Number.isFinite(S)?S:null,playbackRate:u,loop:c,sourceDuration:p};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(x)&&(o=Math.max(o,x))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var ui=new WeakMap,Nt=new WeakMap,ci=new WeakSet,ft=new WeakSet;function Ll(e){if(ft.has(e))return;ft.add(e);let t=()=>ft.delete(e);e.addEventListener("playing",t,{once:!0}),e.addEventListener("pause",t,{once:!0}),e.addEventListener("error",t,{once:!0})}var Rl=3;function kl(e){return e.error!=null||e.networkState===Rl}var di=new WeakMap;function Lt(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):1}function to(e){let t=!!(e.outputMuted||e.userMuted);for(let n of e.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(e.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(e.timeSeconds>=n.start&&e.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let T=n.sourceDuration-n.mediaStart;T>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%T)}let s=Lt(e.userVolume??1),l=Lt(n.volume??1),a=di.get(i),u=Lt(i.volume),c;n.volumeKeyframes&&n.volumeKeyframes.length>0?c=Lt(Qr(n.volumeKeyframes,r)):a===void 0||Math.abs(u-a)>1e-4?c=u:c=l;let p=Lt(c*s);i.volume=p,di.set(i,p),e.onElementVolume?.(i,p),(t||e.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*e.playbackRate}catch(T){L("runtime.media.site1",T)}let f=.04,x=2,S=i.currentTime||0,y=Math.abs(S-r),g=r-S,A=ui.get(i);ui.set(i,g);let _=A===void 0,N=!_&&Math.abs(g-A)>.5,J=y>3,B=y>.5&&(_||N||J),M=i.tagName==="VIDEO"&&!i.paused,E=A!==void 0&&Math.abs(g-A)<.004,F=!1;if(!M&&!B&&!_&&E&&y>f){let T=(Nt.get(i)??0)+1;Nt.set(i,T),T>=x&&(F=!0,Nt.set(i,0))}else y<=f&&Nt.set(i,0);let v=!M&&e.forceSync&&y>.02;if(B||F||v){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(k){L("runtime.media.site2",k)}if(Math.abs(i.currentTime-r)>.5&&!ci.has(i)){ci.add(i),i.load();try{i.currentTime=r}catch(k){L("runtime.media.site3",k)}}}ft.delete(i)}e.playing&&i.paused&&!ft.has(i)&&!kl(i)?(Ll(i),i.play().catch(T=>{ft.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&e.onAutoplayBlocked?.()})):!e.playing&&!i.paused&&i.pause();continue}ui.delete(i),Nt.delete(i),ci.delete(i),di.delete(i),i.paused||i.pause()}}var Dl=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),Il=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),Pl="data-hf-color-grading-source-hidden";function no(e){let t=!1,n=null,i=null,r=null,o=null;function s(E,F){try{window.dispatchEvent(new CustomEvent(E,{detail:F}))}catch(v){L("runtime.picker.site1",v)}}function l(E){r=E,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:t,timestamp:Date.now()})}function a(E){o=E,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:t,timestamp:Date.now()})}function u(E){let F=E.ownerDocument.defaultView;if(!F)return!1;let v=E;for(;v&&v!==document.body&&v!==document.documentElement;){let T=F.getComputedStyle(v);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let k=Number.parseFloat(T.opacity);if(Number.isFinite(k)&&k<=.01&&!v.hasAttribute(Pl))return!0;v=v.parentElement}return!1}function c(E){if(!E||E===document.body||E===document.documentElement)return!1;let F=E.tagName.toLowerCase();return!(F==="script"||F==="style"||F==="link"||F==="meta"||E.classList.contains("__hf-pick-highlight")||E.closest(Dl)||u(E))}function p(E){return!!E?.closest(Il)}function f(E){let F=E;if(F.id)return`#${F.id}`;let v=E.getAttribute("data-composition-id");if(v)return`[data-composition-id="${CSS.escape(v)}"]`;let T=E.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let k=E.getAttribute("data-track-index");if(k)return`[data-track-index="${CSS.escape(k)}"]`;let W=E.tagName.toLowerCase(),j=E.parentElement;if(!j)return W;let re=j.querySelectorAll(`:scope > ${W}`);if(re.length===1)return W;for(let P=0;P<re.length;P+=1)if(re[P]===E)return`${W}:nth-of-type(${P+1})`;return W}function x(E){let F=E.tagName.toLowerCase(),v=(E.textContent??"").trim().replace(/\\s+/g," "),T=(k,W)=>k.length>W?`${k.slice(0,W-1)}\\u2026`:k;return F==="h1"||F==="h2"||F==="h3"?"Heading":F==="p"||F==="span"||F==="div"?v.length>0?T(v,56):"Text":F==="img"?"Image":F==="video"?"Video":F==="audio"?"Audio":F==="svg"?"Shape":E.getAttribute("data-composition-src")?"Composition":F==="section"?"Section":`${F.charAt(0).toUpperCase()}${F.slice(1)}`}function S(E,F,v){let T=typeof v=="number"&&v>0?v:8,k=[];if(document.elementsFromPoint)k=document.elementsFromPoint(E,F);else if(document.elementFromPoint){let re=document.elementFromPoint(E,F);k=re?[re]:[]}if(p(k[0]??null))return[];let W={},j=[];for(let re=0;re<k.length;re+=1){let P=k[re];if(!c(P))continue;let se=`${P.tagName}::${P.id||""}::${re}`;if(!W[se]&&(W[se]=!0,j.push(P),j.length>=T))break}return j}function y(E){let F=E.getBoundingClientRect(),v={};for(let k=0;k<E.attributes.length;k+=1){let W=E.attributes[k];W.name.startsWith("data-")&&(v[W.name]=W.value)}return{id:E.id||null,tagName:E.tagName.toLowerCase(),selector:f(E),label:x(E),boundingBox:{x:F.left,y:F.top,width:F.width,height:F.height},textContent:E.textContent?E.textContent.trim().slice(0,200):null,src:E.getAttribute("src")||E.getAttribute("data-composition-src")||null,dataAttributes:v}}function g(E,F,v){return S(E,F,v).map(y)}function A(E){if(!t)return;let v=S(E.clientX,E.clientY,1)[0]??(E.target instanceof Element?E.target:null);if(!c(v)||n===v)return;n&&n.classList.remove("__hf-pick-highlight"),n=v,v.classList.add("__hf-pick-highlight");let T=y(v);l(T),e.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function _(E){if(!t)return;E.preventDefault(),E.stopPropagation(),E.stopImmediatePropagation();let F=g(E.clientX,E.clientY,8);F.length!==0&&(l(F[0]??null),e.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:F,selectedIndex:0,point:{x:E.clientX,y:E.clientY}}))}function N(E){E.key==="Escape"&&(B(),e.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function J(){t||(t=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",A,!0),document.addEventListener("click",_,!0),document.addEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){t&&(t=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",A,!0),document.removeEventListener("click",_,!0),document.removeEventListener("keydown",N,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function M(){window.__HF_PICKER_API={enable:J,disable:B,isActive:()=>t,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(E,F,v)=>Number.isFinite(E)&&Number.isFinite(F)?g(E,F,v):[],pickAtPoint:(E,F,v)=>{if(!Number.isFinite(E)||!Number.isFinite(F))return null;let T=g(E,F,8);if(!T.length)return null;let k=Math.max(0,Math.min(T.length-1,Number(v??0))),W=T[k]??null;return W?(a(W),e.postMessage({source:"hf-preview",type:"element-picked",elementInfo:W}),B(),W):null},pickManyAtPoint:(E,F,v)=>{if(!Number.isFinite(E)||!Number.isFinite(F))return[];let T=g(E,F,8);if(!T.length)return[];let k=[],W=Array.isArray(v)?v:[0];for(let j of W){let re=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[re];if(!P)continue;k.some(Ee=>Ee.selector===P.selector&&Ee.tagName===P.tagName)||k.push(P)}return k.length?(a(k[0]??null),e.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:k}),B(),k):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:J,disablePickMode:B,installPickerApi:M}}var Ol=["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 mt(e,t){let n=Number.isFinite(t)&&t>0?t:30,i=Number.isFinite(e)&&e>0?e:0;return Math.floor(i*n+1e-9)/n}function io(e,t,n=Ol){for(let i of n){let r=t.getPropertyValue(i);r&&e.setProperty(i,r)}}function kt(e,t,n){let i=e?.[t];return typeof i=="function"?Number(i.call(e))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&L("runtime.player.nonConformantNum",{prop:t,actual:typeof i}),n)}function ke(e,t){let n=e?.[t];if(typeof n=="function"){n.call(e);return}n!==void 0&&L("runtime.player.nonConformantVoid",{method:t,actual:typeof n})}function Dt(e,t,n){if(e){for(let i of Object.values(e))if(!(!i||i===t))try{n(i)}catch(r){L("runtime.player.site1",r)}}}function ro(e,t,n,i){let r=mt(t,n),o=i?.suppressEvents===!0;return ke(e,"pause"),typeof e.totalTime=="function"?e.totalTime(r,o):typeof e.seek=="function"&&e.seek(r,o),r}function Bl(e,t,n,i,r){let o=[];Dt(e,t,s=>{ke(s,"play"),o.push(s)});try{return ro(t,n,i,r)}finally{for(let s of o)try{ke(s,"pause")}catch(l){L("runtime.player.site2",l)}}}function Hl(e,t){Dt(e,t,n=>{ke(n,"play")})}function oo(e){return{_timeline:null,play:()=>{let t=e.getTimeline();if(!t||e.getIsPlaying())return;let n=Math.max(0,Number(e.getSafeDuration?.()??kt(t,"duration",0))||0);n>0&&Math.max(0,kt(t,"time",0))>=n&&(ke(t,"pause"),typeof t.seek=="function"&&t.seek(0,!1),e.onDeterministicSeek(0),e.setIsPlaying(!1),e.onSyncMedia(0,!1),e.onRenderFrameSeek(0)),typeof t.timeScale=="function"&&t.timeScale(e.getPlaybackRate()),ke(t,"play"),Dt(e.getTimelineRegistry?.(),t,i=>{typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),ke(i,"play")}),e.onDeterministicPlay(),e.setIsPlaying(!0),e.onShowNativeVideos(),e.onStatePost(!0)},pause:()=>{let t=e.getTimeline();if(!t)return;ke(t,"pause"),Dt(e.getTimelineRegistry?.(),t,i=>{ke(i,"pause")});let n=Math.max(0,kt(t,"time",0));e.onDeterministicSeek(n),e.onDeterministicPause(),e.setIsPlaying(!1),e.onSyncMedia(n,!1),e.onRenderFrameSeek(n),e.onStatePost(!0)},seek:(t,n)=>{let i=e.getTimeline();if(!i)return;let r=Math.max(0,Number(t)||0),o=e.getIsPlaying(),s=Bl(e.getTimelineRegistry?.(),i,r,e.getCanonicalFps());e.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(e.getPlaybackRate()),ke(i,"play"),Dt(e.getTimelineRegistry?.(),i,l=>{typeof l.timeScale=="function"&&l.timeScale(e.getPlaybackRate()),ke(l,"play")}),e.onDeterministicPlay(),e.onShowNativeVideos(),e.onSyncMedia(s,!0)):(e.setIsPlaying(!1),e.onSyncMedia(s,!1)),e.onRenderFrameSeek(s),e.onStatePost(!0)},renderSeek:(t,n)=>{let i=e.getTimeline(),r=e.getCanonicalFps(),o=i?(Hl(e.getTimelineRegistry?.(),i),ro(i,t,r,n)):mt(Math.max(0,Number(t)||0),r);e.onDeterministicSeek(o,n),e.setIsPlaying(!1),e.onSyncMedia(o,!1),e.onRenderFrameSeek(o),e.onStatePost(!0)},getTime:()=>kt(e.getTimeline(),"time",0),getDuration:()=>kt(e.getTimeline(),"duration",0),isPlaying:()=>e.getIsPlaying(),setPlaybackRate:t=>e.setPlaybackRate(t),getPlaybackRate:()=>e.getPlaybackRate()}}function so(){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:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,transportClock:null,transportRafId:null}}var Gl=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function mi(e){return e.id||e.getAttribute("data-hf-id")||null}function fi(e){if(e==null)return null;let t=Number(e);return Number.isFinite(t)?t:null}function Wl(e,t){let n=e.getAttribute("data-composition-id");if(!n)return null;let i=Number(t[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Ul(e){if(!(e instanceof HTMLMediaElement)||!Number.isFinite(e.duration))return null;let t=fi(e.getAttribute("data-playback-start"))??fi(e.getAttribute("data-media-start"))??0;return e.duration>t?e.duration-t:null}function Vl(e,t,n,i){let r=fi(e.getAttribute("data-duration"));return r!=null&&r>0?r:Wl(e,t)??Ul(e)??Math.max(0,n-i)}function zl(e){for(let[t,n]of e){let i=t.parentElement;for(;i;){let r=e.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function ao(e){let{startResolver:t,timelineRegistry:n,rootDuration:i}=e,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let l of document.querySelectorAll("[data-start]")){if(l===o||Gl.has(l.tagName))continue;let a=t.resolveStartForElement(l,0);if(Vl(l,n,i,a)<=0)continue;let u={id:mi(l)??`__clip-${s++}`,element:l,parentId:null,children:[]};r.set(l,u)}return zl(r),{roots:Array.from(r.values()).filter(l=>l.parentId===null)}}function $e(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function lo(e){let t=(e??"").trim();if(!t)return null;let n=$e(t);if(n!=null)return{kind:"absolute",value:n};let i=t.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",l=Number.parseFloat(s),a=Number.isFinite(l)?Math.max(0,l):0,u=o==="-"?-a:a;return{kind:"reference",refId:r,offset:u}}var jl="data-hf-authored-duration",ql="data-hf-authored-end";function $l(e){return $e(e.getAttribute("data-duration"))}function Kl(e){return $e(e.getAttribute("data-end"))}function Jl(e){return $e(e.getAttribute(jl))}function Xl(e){return $e(e.getAttribute(ql))}function Ke(e){let t=e.timelineRegistry??{},n=e.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=c=>{let p=document.getElementById(c);return p||(document.querySelector(`[data-composition-id="${CSS.escape(c)}"]`)??null)},l=c=>{let p=r.get(c);if(p!==void 0)return p;let f=null,x=$l(c)??(n?Jl(c):null);if(x!=null&&x>0&&(f=x),f==null||f<=0){let S=Kl(c)??(n?Xl(c):null);if(S!=null){let y=u(c,0),g=S-y;Number.isFinite(g)&&g>0&&(f=g)}}if((f==null||f<=0)&&c instanceof HTMLMediaElement){let S=$e(c.getAttribute("data-playback-start"))??$e(c.getAttribute("data-media-start"))??0;Number.isFinite(c.duration)&&c.duration>S&&(f=(c.duration-S)/Rt(c))}if(f==null||f<=0){let S=c.getAttribute("data-composition-id");if(S){let y=t[S]??null;if(y&&typeof y.duration=="function")try{let g=Number(y.duration());Number.isFinite(g)&&g>0&&(f=g)}catch(g){L("runtime.startResolver.site1",g)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(c,f),f):(r.set(c,null),null)},a=(c,p)=>{if(c.hasAttribute("data-composition-id")){let x=c.parentElement?.closest("[data-composition-id]");return x?u(x,p):0}let f=c.closest("[data-composition-id]");return f?u(f,p):0},u=(c,p)=>{let f=i.get(c);if(f!==void 0)return f??p;if(o.has(c))return p;o.add(c);try{let x=lo(c.getAttribute("data-start"));if(!x){if(c.hasAttribute("data-composition-id")){let _=c.parentElement;if(_&&(_.hasAttribute("data-composition-src")||_.hasAttribute("data-composition-id")||_.hasAttribute("data-composition-file"))){let N=u(_,p);return i.set(c,N),N}}return i.set(c,p),p}if(x.kind==="absolute"){let _=Math.max(0,x.value),N=Math.max(0,a(c,p)+_);return i.set(c,N),N}let S=s(x.refId);if(!S)return i.set(c,p),p;let y=u(S,0),g=l(S);if(g==null||g<=0){let _=Math.max(0,y+x.offset);return i.set(c,_),_}let A=Math.max(0,y+g+x.offset);return i.set(c,A),A}finally{o.delete(c)}};return{resolveStartForElement:(c,p=0)=>u(c,Math.max(0,p)),resolveDurationForElement:c=>l(c)}}function pi(e){let t=e.trim().toLowerCase();return!(!t||t==="main"||t.includes("caption")||t.includes("ambient"))}var Yl="data-hf-authored-duration",Ql="data-hf-authored-end";function Fe(e){if(e==null||e==="")return null;let t=Number(e);return Number.isFinite(t)?t:null}function hi(e){return Fe(e.getAttribute("data-duration"))??Fe(e.getAttribute(Yl))}function uo(e){return Fe(e.getAttribute("data-end"))??Fe(e.getAttribute(Ql))}function gi(...e){let t=e.filter(n=>Number.isFinite(n??null));return t.length===0?null:Math.max(...t)}var co={composition:0,video:1,image:2,element:3,audio:4};function Zl(e){if(e.length===0)return;let t=new Map;for(let s of e){let l=t.get(s.track)??new Set;l.add(s.kind),t.set(s.track,l)}if(!Array.from(t.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...t.keys()].sort((s,l)=>s-l);for(let s of o){let l=t.get(s);if(l.size===1)r.set(`${s}:${[...l][0]}`,i++);else{let a=[...l].sort((u,c)=>(co[u]??99)-(co[c]??99));for(let u of a)r.set(`${s}:${u}`,i++)}}for(let s of e){let l=`${s.track}:${s.kind}`,a=r.get(l);a!=null&&(s.track=a)}}function Pt(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 fo(e){let t=e.getAttribute("src")??e.getAttribute("data-src");if(t)return Pt(t);let n=e.getAttribute("data-composition-src");if(n)return Pt(n);let i=e.querySelector("img[src], video[src], audio[src], source[src]");return i?Pt(i.getAttribute("src")):null}function eu(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 tu(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 nu(e){let t=e.textContent?.replace(/\\s+/g," ").trim();return t?t.length>32?`${t.slice(0,31)}...`:t:null}function It(e){let t=e.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return t?t.replace(/\\b\\w/g,n=>n.toUpperCase()):e}function iu(e,t,n){let i=e.getAttribute("data-timeline-label")??e.getAttribute("data-label")??e.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=e.getAttribute("data-composition-id");if(r)return It(r);let o=e.id;if(o)return It(o);let s=eu(e);if(s)return It(s);let l=tu(fo(e));if(l)return It(l);let a=nu(e);return a||`${It(t)} ${n+1}`}function mo(e){let n=window.__timelines??{},i=Ke({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=O=>{if(!O)return null;let D=n[O]??null;if(!D||typeof D.duration!="function")return null;try{let G=Number(D.duration());return Number.isFinite(G)&&G>0?G:null}catch{return null}},o=O=>{let D=Fe(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let G=Fe(O.getAttribute("data-playback-start"))??Fe(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>G?Math.max(0,(O.duration-G)/Rt(O)):null},s=()=>{let O=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(O.length===0)return null;let D=0;for(let G of O){let Q=G.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(G,0):Math.max(0,Number(G.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(G);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},l=(O,D)=>{let G=[],Q=null,ae=null,$=null,z=O.parentElement;for(;z;){let Y=z.getAttribute("data-composition-id");Y&&(G.push(Y),!$&&z!==D&&($=Y),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Fe(z.getAttribute("data-duration"))??r(Y)??null)),z=z.parentElement}return{parentCompositionId:$,compositionAncestors:G.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),c=a?.getAttribute("data-composition-id")??null,p=a?i.resolveStartForElement(a,0):0,f=s(),x=f!=null?Math.max(0,f-Math.max(0,p)):null,S=r(c),y=hi(a??document.body),g=gi(...u.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),G=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||G==null||G<=0?null:Math.max(0,D)+G})),A=g!=null?Math.max(0,g-Math.max(0,p)):null,_=typeof S=="number"&&Number.isFinite(S)&&S>0?S:null,N=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,J=typeof x=="number"&&Number.isFinite(x)&&x>0?x:null,B=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,M=gi(J,B),E=_!=null&&M!=null&&_>M+1,v=N??(E?M:gi(_,J,B))??null,k=(v!=null?p+v:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),W=(O,D)=>!Number.isFinite(D)||D<=0?0:k==null||!Number.isFinite(k)?D:!Number.isFinite(O)||O>=k?0:Math.max(0,Math.min(D,k-O)),j=[],re=[],P=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),se=0;for(let O=0;O<P.length;O+=1){let D=P[O];if(D===a||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(D.tagName))continue;let G=l(D,a),Q=i.resolveStartForElement(D,G.inheritedStart??0),ae=D.getAttribute("data-composition-id"),$=hi(D);if(($==null||$<=0)&&ae&&ae!==c&&($=r(ae)),($==null||$<=0)&&D instanceof HTMLMediaElement){let ve=Fe(D.getAttribute("data-playback-start"))??Fe(D.getAttribute("data-media-start"))??0;Number.isFinite(D.duration)&&D.duration>0&&($=Math.max(0,D.duration-ve))}if($==null||$<=0){let ve=G.inheritedDuration;if(ve!=null&&ve>0){let Ue=(G.inheritedStart??0)+ve;$=Math.max(0,Ue-Q)}}if($==null||$<=0||($=W(Q,$),$<=0))continue;let z=Q+$;se=Math.max(se,z);let Y=D.tagName.toLowerCase(),Pe=ae&&ae!==c?"composition":Y==="video"?"video":Y==="audio"?"audio":Y==="img"?"image":"element";j.push({id:mi(D)??ae??null,label:iu(D,Pe,j.length),start:Q,duration:$,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Pe,tagName:Y,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:G.compositionAncestors,parentCompositionId:G.parentCompositionId,nodePath:null,compositionSrc:Pt(D.getAttribute("data-composition-src")),assetUrl:fo(D),timelineRole:D.getAttribute("data-timeline-role"),timelineLabel:D.getAttribute("data-timeline-label"),timelineGroup:D.getAttribute("data-timeline-group"),timelinePriority:Fe(D.getAttribute("data-timeline-priority"))})}let Ee=new Set(j.map(O=>O.id)),H=a?.getAttribute("data-composition-id")??null,U=H?n[H]??null:null;if(U&&a){let O=U;if(typeof O.getChildren=="function")try{let D=O.getChildren(!0,!0,!1)??[],G=new Map;for(let $ of a.children){let z=$;if(!z.id)continue;let Y=z.tagName.toLowerCase();Y==="script"||Y==="style"||Y==="link"||G.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=$=>{let z=$;for(;z;){if(G.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let $ of D){if(typeof $.targets!="function"||typeof $.startTime!="function"||typeof $.duration!="function")continue;let z=$.startTime(),Y=$.parent;for(;Y&&Y!==U&&typeof Y.startTime=="function";)z+=Y.startTime(),Y=Y.parent;let Pe=z+$.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Pe)))for(let ve of $.targets()){if(!(ve instanceof Element))continue;let At=Q(ve);if(!At)continue;let Ue=G.get(At);Ue&&(Ue.start=Math.min(Ue.start,z),Ue.end=Math.max(Ue.end,Pe))}}let ae=j.length>0?Math.max(...j.map($=>$.track))+1:0;for(let[$,z]of G){if(z.start===1/0||z.end===-1/0)continue;let Y=$;if(Ee.has(Y.id))continue;let Pe=Math.max(0,z.end-z.start);if(Pe<=0)continue;let ve=W(z.start,Pe);ve<=0||(se=Math.max(se,z.start+ve),j.push({id:Y.id,label:Y.getAttribute("data-timeline-label")??Y.getAttribute("data-label")??Y.getAttribute("aria-label")??Y.id,start:z.start,duration:ve,track:Number.parseInt(Y.getAttribute("data-track-index")??Y.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:Y.tagName.toLowerCase(),compositionId:Y.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Y.getAttribute("data-timeline-role"),timelineLabel:Y.getAttribute("data-timeline-label"),timelineGroup:Y.getAttribute("data-timeline-group"),timelinePriority:Fe(Y.getAttribute("data-timeline-priority"))}),Ee.add(Y.id))}}catch(D){L("runtime.timeline.site1",D)}}if(a&&v!=null&&v>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let G=D;if(!G.id||Ee.has(G.id))continue;let Q=G.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=G.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(G).display==="none")continue;let z=W(0,v);z<=0||(se=Math.max(se,z),j.push({id:G.id,label:G.getAttribute("data-timeline-label")??G.getAttribute("data-label")??G.getAttribute("aria-label")??G.id,start:0,duration:z,track:Number.parseInt(G.getAttribute("data-track-index")??G.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:G.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:G.getAttribute("data-timeline-label"),timelineGroup:G.getAttribute("data-timeline-group"),timelinePriority:Fe(G.getAttribute("data-timeline-priority"))}),Ee.add(G.id))}}Zl(j);for(let O of u){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!pi(D))continue;let G=i.resolveStartForElement(O,0),Q=hi(O);if((Q==null||Q<=0)&&uo(O)!=null){let Y=uo(O);Q=Math.max(0,Y-G)}let ae=r(D),$=Q&&Q>0?Q:ae;if($==null||$<=0)continue;let z=W(G,$);z<=0||re.push({id:D,label:O.getAttribute("data-label")??D,start:G,duration:z,thumbnailUrl:Pt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,v??0);return{source:"hf-preview",type:"timeline",durationInFrames:E&&N==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,e.canonicalFps))),clips:j,scenes:re,compositionWidth:Fe(a?.getAttribute("data-width"))??1920,compositionHeight:Fe(a?.getAttribute("data-height"))??1080}}var ce=wl(Bs(),1),Hs=ce.default,gh=ce.default.stringify,xh=ce.default.fromJSON,bh=ce.default.plugin,yh=ce.default.parse,Sh=ce.default.list,Eh=ce.default.document,Ah=ce.default.comment,wh=ce.default.atRule,Ch=ce.default.rule,Fh=ce.default.decl,_h=ce.default.root,vh=ce.default.CssSyntaxError,Mh=ce.default.Declaration,Th=ce.default.Container,Nh=ce.default.Processor,Lh=ce.default.Document,Rh=ce.default.Comment,kh=ce.default.Warning,Dh=ce.default.AtRule,Ih=ce.default.Result,Ph=ce.default.Input,Oh=ce.default.Rule,Bh=ce.default.Root,Hh=ce.default.Node;var Ui="data-hf-authored-id",Gs="data-hf-inner-root";function Vi(e){return e.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function zi(e){return e.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Fc(e){return e&&e.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function Ws(e){let t=e.trim();return t?Array.from(new Set([t,Fc(t)])).filter(Boolean):[]}function _c(e){return!!e&&/[\\w-]/.test(e)}function vc(e,t,n){let i=Ws(t).sort((l,a)=>a.length-l.length);if(i.length===0)return e;let r="",o=0,s=null;for(let l=0;l<e.length;l+=1){let a=e[l],u=l>0?e[l-1]:"";if(s){r+=a,a===s&&u!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let c=i.find(p=>e.startsWith(p,l+1));if(c){let p=e[l+1+c.length];if(!_c(p)){r+=n,l+=c.length;continue}}}r+=a}return r}function Mc(e,t){let n=t?.trim();return n?vc(e,n,`[${Ui}="${zi(n)}"]`):e}function Tc(e,t,n,i,r){let o=Mc(e,i),s=Nc(o,t,n),l=s.trim();if(!l||/^(html|body|:root|\\*)$/i.test(l))return e;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Vi(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(l))return l.replace(a,"").trim()===""?`${t}:not(:has([${Gs}])), ${t} > [${Gs}]`:s.replace(a,t);let u=s.match(/^\\s*/)?.[0]??"",c=s.match(/\\s*$/)?.[0]??"";if(r){let p=i?`[${Ui}="${zi(i)}"]`:null;if(p&&l.startsWith(p)){let f=l.slice(p.length);return`${u}${t}${p}${f}${c}`}}return`${u}${t} ${l}${c}`}function Nc(e,t,n){let i=Vi(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return e.replace(new RegExp(`${r}(?:${o})+`,"g"),t).replace(new RegExp(`(?:${o})+${r}`,"g"),t)}var Lc=new Set(["keyframes","-webkit-keyframes","font-face"]);function Rc(e){return e?.type==="atrule"}function kc(e){let t=e.parent;for(;t;){if(Rc(t)&&Lc.has(t.name.toLowerCase()))return!0;t=t.parent}return!1}function Us(e,t,n,i,r){let o=t.trim();if(!e||!o)return e;let s=n||`[data-composition-id="${zi(o)}"]`,l=Hs.parse(e);return l.walkRules(a=>{kc(a)||(a.selectors=a.selectors.map(u=>Tc(u,s,o,i,r?.compoundAuthoredRoot)))}),l.toResult({map:!1}).css}function Vs(e,t,n="[HyperFrames] composition script error:",i,r=t,o){let s=JSON.stringify(t),l=JSON.stringify(r),a=JSON.stringify(n),u=Vi(t),c=JSON.stringify(o?.trim()||null),p=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${u}"|\'${u}\')\\s*\\]`),x=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),S=JSON.stringify(Ws(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${c};\n var __hfAuthoredRootAttr = ${JSON.stringify(Ui)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${p} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${x};\n var __hfAuthoredRootIdForms = ${S};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n // 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 return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${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 Dc=["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 zs(e){let t=e.getAttribute("id")?.trim();for(let n of Dc)e.removeAttribute(n);t&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",t)),e.setAttribute("data-hf-inner-root","true")}var Ic=8e3,Pc=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Oc=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Bc=["src","href"];function Hc(e){return!e||e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//")||e.startsWith("data:")||e.startsWith("#")||e.startsWith("/")}function qs(e,t){if(!t)return e;let n=e.trim();if(Hc(n)||!n.startsWith("../")&&n!=="..")return e;try{return new URL(n,t).href}catch{return e}}function $s(e,t){return!t||!e?e:e.replace(Oc,(n,i,r)=>{let o=qs(r||"",t);return o===r?n:`url(${i||""}${o}${i||""})`})}function Gc(e,t){for(let n of Array.from(e.querySelectorAll("[src], [href]")))for(let i of Bc){let r=n.getAttribute(i);if(r==null)continue;let o=qs(r,t);o!==r&&n.setAttribute(i,o)}}function Wc(e,t){for(let n of Array.from(e.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=$s(i,t);r!==i&&n.setAttribute("style",r)}}function Uc(e,t){for(let n of Array.from(e.querySelectorAll("style"))){let i=n.textContent||"",r=$s(i,t);r!==i&&(n.textContent=r)}}function Ks(e,t){if(t){Gc(e,t),Wc(e,t),Uc(e,t);for(let n of Array.from(e.querySelectorAll("template")))Ks(n.content,t)}}function Vc(e,t){return`${e}__hf${t}`}var zc=e=>new Promise(t=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),t({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};e.addEventListener("load",()=>o("load"),{once:!0}),e.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),Ic)});function ji(e){for(;e.firstChild;)e.removeChild(e.firstChild);e.textContent=""}function jc(e){let t=document.importNode(e,!0);zs(t);let n=t.getAttribute("data-width"),i=t.getAttribute("data-height");return t.style.width=n?`${n}px`:"100%",t.style.height=i?`${i}px`:"100%",t}function js(e,t){let n=e.trim();if(!n)return e;try{return Pc.test(n)?new URL(n,document.baseURI).toString():t?new URL(n,t).toString():new URL(n,document.baseURI).toString()}catch{return e}}function Ln(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 qc(e){let t=new Map;for(let n of e){let i=Ln(n).authoredCompositionId||"";i&&t.set(i,(t.get(i)||0)+1)}return t}function Js(e){let t=Ln(e).authoredCompositionId;return t?!!document.querySelector(`template#${CSS.escape(t)}-template`):!1}function $c(e){return!!e.querySelector(\'[data-hf-inner-root="true"]\')}function Kc(e){return e.hasAttribute("data-composition-src")?!0:Js(e)?e.children.length===0||e.hasAttribute("data-hf-original-composition-id")?!0:$c(e):!1}function $i(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(t=>t.hasAttribute("data-composition-src")?!0:Js(t))}function Xs(){let e=window.__hfVariablesByComp;if(!e)return;let t=new Set($i().map(n=>Ln(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(e))t.has(n)||delete e[n]}function Ys(e,t=qc(e)){let n=new Map,i=new Map;for(let r of e){let{authoredCompositionId:o,runtimeCompositionId:s}=Ln(r),l=Kc(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(t.get(o)||0)>1,u=s||o;if(l){let c=a?(n.get(o)||0)+1:0;a&&n.set(o,c),u=a?Vc(o,c):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",u),s&&s!==u&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:u})}return i}async function qi(e){let t=null;e.authoredCompositionId&&(t=Array.from(e.sourceNode.querySelectorAll("[data-composition-id]")).find(x=>x.getAttribute("data-composition-id")===e.authoredCompositionId)??null);let n=t??e.sourceNode,i=t?.getAttribute("data-composition-id")?.trim()||e.authoredCompositionId||null,r=e.runtimeCompositionId||i||null,o=t?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(e.headLinks)for(let f of e.headLinks){let x=f.getAttribute("href")||"";x&&(document.head.querySelector(`link[href="${CSS.escape(x)}"]`)||document.head.appendChild(f.cloneNode(!0)))}let l=f=>{for(let x of f){let S=x.cloneNode(!0);S instanceof HTMLStyleElement&&(i&&(S.textContent=Us(S.textContent||"",i,s,o)),document.head.appendChild(S),e.injectedStyles.push(S))}};e.headStyles&&l(e.headStyles),l(Array.from(n.querySelectorAll("style")));let a=[];if(e.headScripts)for(let f of e.headScripts){let x=f.getAttribute("type")?.trim()??"",S=f.getAttribute("src")?.trim()??"";if(S){let y=js(S,e.compositionUrl);a.push({kind:"external",src:y,type:x})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:x,scopeCompositionId:i})}}let u=Array.from(n.querySelectorAll("script")),c=[...a];for(let f of u){let x=f.getAttribute("type")?.trim()??"",S=f.getAttribute("src")?.trim()??"";if(S){let y=js(S,e.compositionUrl);c.push({kind:"external",src:y,type:x})}else{let y=f.textContent?.trim()??"";y&&c.push({kind:"inline",content:y,type:x,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let p=Array.from(n.querySelectorAll("style"));for(let f of p)f.parentNode?.removeChild(f);if(t){let f=t.getAttribute("data-width"),x=t.getAttribute("data-height"),S=e.parseDimensionPx(f),y=e.parseDimensionPx(x);f&&e.host.setAttribute("data-width",f),x&&e.host.setAttribute("data-height",x),S&&e.host instanceof HTMLElement&&(e.host.style.width=S),y&&e.host instanceof HTMLElement&&(e.host.style.height=y),t.hasAttribute("data-timeline-locked")&&e.host.setAttribute("data-timeline-locked",""),e.host.appendChild(jc(t))}else e.hasTemplate?e.host.appendChild(document.importNode(n,!0)):e.host.innerHTML=e.fallbackBodyInnerHtml;r&&Jc(e,n,r);for(let f of c){let x=document.createElement("script");if(f.type&&(x.type=f.type),x.async=!1,f.kind==="external"?x.src=f.src:f.type.toLowerCase()==="module"?x.textContent=f.content:f.scopeCompositionId?x.textContent=Vs(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):x.textContent=`(function(){${f.content}})();`,document.body.appendChild(x),e.injectedScripts.push(x),f.kind==="external"){let S=await zc(x);S.status!=="load"&&e.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:e.authoredCompositionId,runtimeCompositionId:e.runtimeCompositionId,hostCompositionSrc:e.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:S.status,elapsedMs:S.elapsedMs}})}}}async function Qs(e){let t=$i();if(Xs(),t.length===0)return;let n=Ys(t),i=t.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let l=document.querySelector(`template#${CSS.escape(s)}-template`);ji(r),await qi({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic})}}async function Zs(e){let t=$i();if(Xs(),t.length===0)return;let n=Ys(t),i=t.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),l=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||l||null,u=null;try{u=new URL(o,document.baseURI)}catch{u=null}ji(r);try{let c=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(c){await qi({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,onDiagnostic:e.onDiagnostic});return}let p=await fetch(o);if(!p.ok)throw new Error(`HTTP ${p.status}`);let f=await p.text(),S=new DOMParser().parseFromString(f,"text/html");Ks(S,u);let y=(l?S.querySelector(`template#${CSS.escape(l)}-template`):null)??S.querySelector("template"),g=y?y.content:S.body,A=y?void 0:Array.from(S.head.querySelectorAll("style")),_=y?void 0:Array.from(S.head.querySelectorAll("script")),N=y?void 0:Array.from(S.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await qi({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:g,hasTemplate:!!y,fallbackBodyInnerHtml:S.body.innerHTML,compositionUrl:u,injectedStyles:e.injectedStyles,injectedScripts:e.injectedScripts,parseDimensionPx:e.parseDimensionPx,headStyles:A,headScripts:_,headLinks:N,declaredVariableDefaults:Tt(S.documentElement),onDiagnostic:e.onDiagnostic})}catch(c){e.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:c instanceof Error?c.message:"unknown_error"}}),ji(r)}}))}function Jc(e,t,n){let r={...e.declaredVariableDefaults??(t instanceof Element?Tt(t):{}),...Dr(e.host)};Rr(e.host),Object.keys(r).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[n]=r,oi(e.host,{...r,...pn()})):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[n]}function Xc(e){return e instanceof HTMLElement?e.dataset.captionWrapper!=="true"?e:e.querySelector(":scope > span")??null:null}function Yc(){let e=[],t=document.querySelectorAll(".caption-group");for(let n of t)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&e.push(r)}return e}function Qc(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 Ki(){let e=window.gsap;e&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(t=>t.ok?t.json():null).then(t=>{if(!t||!Array.isArray(t)||t.length===0)return;let n=Yc();for(let i of t){let r=null;if(i.wordId&&(r=Xc(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=e.getTweensOf(r).filter(c=>c.vars.color!==void 0).sort((c,p)=>c.startTime()-p.startTime()),u=a.length>0?String(a[0].vars.color):"";for(let c of a)String(c.vars.color)===u?i.dimColor&&(c.vars.color=i.dimColor):i.activeColor&&(c.vars.color=i.activeColor);i.dimColor&&e.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&e.set(r,s),Object.keys(o).length>0){let l=Qc(r);e.set(l,o)}}}).catch(()=>{})}var na="data-hf-edit-base-x",ia="data-hf-edit-base-y",Ji="data-hf-edit-original-translate",Rn=e=>{let t=parseFloat(e??"");return Number.isFinite(t)?t:0},Zc=e=>{let t=[],n=0,i="";for(let r of e.trim())r==="("&&(n+=1),r===")"&&(n=Math.max(0,n-1)),/\\s/.test(r)&&n===0?(i&&t.push(i),i=""):i+=r;return i&&t.push(i),t},ea=/^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)px$/,Xi=(e,t)=>ea.test(e)&&ea.test(t)?`${parseFloat(e)+parseFloat(t)}px`:`calc(${e} + ${t})`,ed=(e,t,n)=>{if(!e||e==="none")return`${t} ${n}`;let[i,r,o]=Zc(e);if(i===void 0)return`${t} ${n}`;if(r===void 0)return`${Xi(i,t)} ${n}`;let s=o===void 0?"":` ${o}`;return`${Xi(i,t)} ${Xi(r,n)}${s}`},td=e=>{try{e.ownerDocument.defaultView?.gsap?.getProperty?.(e,"x")}catch{}},nd=e=>{let t=e.style.getPropertyValue("translate").trim();if(t)return t==="none"?"":t;try{let n=e.ownerDocument.defaultView,i=n?n.getComputedStyle(e).getPropertyValue("translate").trim():"";return i==="none"?"":i}catch{return""}},ta=new WeakMap;function id(e,t){let n=ta.get(e);if(!t?.force&&n!==void 0&&e.style.getPropertyValue("translate")!==n){st("position_edit_fold_skipped",{hfId:e.getAttribute("data-hf-id")});return}let i=Rn(e.getAttribute("data-x"))-Rn(e.getAttribute(na)),r=Rn(e.getAttribute("data-y"))-Rn(e.getAttribute(ia));e.hasAttribute(Ji)||e.setAttribute(Ji,nd(e)),n===void 0&&td(e);let o=e.getAttribute(Ji)??"",s=ed(o,`${i}px`,`${r}px`);e.style.setProperty("translate",s),ta.set(e,e.style.getPropertyValue("translate"))}function Yi(e){let t=e.querySelectorAll(`[${na}], [${ia}]`),n=0;for(let i=0;i<t.length;i++){let r=t[i];r instanceof HTMLElement&&(id(r),n+=1)}return n}var tn="data-color-grading",ra="__hf_color_grading_",rd="rec709",kn={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,vibrance:0,saturation:0},Dn={vignette:0,vignetteMidpoint:.5,vignetteRoundness:0,vignetteFeather:.65,grain:0,grainSize:.25,grainRoughness:.5},In={blur:0,pixelate:0},oa=Object.keys(kn),od=Object.keys(Dn),sa=Object.keys(In);function Ae(e,t,n={},i={}){return{id:e,label:t,adjust:{...kn,...n},details:{...Dn,...i},effects:{...In}}}var sd=[Ae("neutral","Neutral"),Ae("natural-lift","Natural Lift",{exposure:.04,contrast:.06,highlights:-.06,shadows:.08,saturation:.05}),Ae("fresh-pop","Fresh Pop",{exposure:.08,contrast:.12,whites:.06,shadows:.04,temperature:-.02,vibrance:.08,saturation:.16}),Ae("warm-daylight","Warm Daylight",{exposure:.06,contrast:.07,highlights:-.06,shadows:.08,temperature:.18,saturation:.08}),Ae("clean-studio","Clean Studio",{contrast:.08,highlights:-.08,shadows:.06,temperature:-.08,tint:.03,saturation:.04}),Ae("skin-soft","Skin Soft",{exposure:.04,contrast:-.03,highlights:-.12,shadows:.12,temperature:.08,tint:.02,saturation:.04}),Ae("food-pop","Food Pop",{exposure:.06,contrast:.1,shadows:.06,temperature:.14,vibrance:.1,saturation:.18}),Ae("night-lift","Night Lift",{exposure:.08,contrast:.08,highlights:-.18,shadows:.2,blacks:-.08,saturation:.04},{vignette:.12}),Ae("muted-editorial","Muted Editorial",{exposure:-.02,contrast:.08,highlights:-.08,shadows:.06,blacks:-.05,temperature:-.03,saturation:-.12},{vignette:.1}),Ae("vintage-wash","Vintage Wash",{exposure:.03,contrast:-.12,highlights:-.1,shadows:.16,whites:-.04,blacks:.08,temperature:.13,vibrance:-.08,saturation:-.08},{vignette:.18}),Ae("mono-clean","Mono Clean",{contrast:.12,highlights:-.04,shadows:.04,blacks:-.08,saturation:-1}),Ae("mono-fade","Mono Fade",{contrast:-.04,highlights:-.06,shadows:.1,blacks:.12,saturation:-1},{vignette:.08}),Ae("warm-clean","Warm Clean",{exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,vibrance:.04,saturation:.06}),Ae("cool-clean","Cool Clean",{contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}),Ae("soft-boost","Soft Boost",{exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,vibrance:.08,saturation:.1}),Ae("bright-pop","Bright Pop",{exposure:.12,contrast:.12,whites:.08,blacks:-.04,vibrance:.08,saturation:.14}),Ae("deep-contrast","Deep Contrast",{exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06})],ad=new Map(sd.map(e=>[e.id,e])),ld=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,ud={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}},cd={vignette:{min:0,max:1},vignetteMidpoint:{min:0,max:1},vignetteRoundness:{min:-1,max:1},vignetteFeather:{min:0,max:1},grain:{min:0,max:1},grainSize:{min:0,max:1},grainRoughness:{min:0,max:1}},dd={blur:{min:0,max:1},pixelate:{min:0,max:1}};function ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fd(e,t,n){return Number.isFinite(e)?Math.min(n,Math.max(t,e)):0}function aa(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):t}function Qi(e,t){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?fd(n,t.min,t.max):0}function md(e){if(e==null)return null;let t=String(e).trim();return t||null}function pd(e){if(e==null)return null;if(typeof e=="string"){let n=e.trim();return n?{src:n,intensity:1}:null}if(!ut(e))return null;let t=e.src;return typeof t!="string"||t.trim()===""?null:{src:t.trim(),intensity:aa(e.intensity,1)}}function hd(e){if(typeof e=="string"){let t=e.trim();if(!t)return null;if(t.startsWith("{"))try{let n=JSON.parse(t);return ut(n)?n:null}catch{return null}return{preset:t,intensity:1}}return ut(e)?e:null}function gd(e,t){let n=e.trim().match(ld);if(!n)return e;let i=n[1]??n[2]??"";return i&&Object.hasOwn(t,i)?t[i]:e}function Zi(e,t){if(typeof e=="string"){let i=gd(e,t);if(i!==e)return i;let r=e.trim();if(!r.startsWith("{"))return e;try{return Zi(JSON.parse(r),t)}catch{return e}}if(!ut(e))return e;let n={};for(let[i,r]of Object.entries(e))n[i]=Zi(r,t);return n}function xd(e){return e?ad.get(e)??null:null}function er(e){let t=hd(e);if(!t||t.enabled===!1)return null;let n=md(t.preset),i=xd(n),r=i?.adjust??kn,o=i?.details??Dn,s=i?.effects??In,l=ut(t.adjust)?t.adjust:{},a=ut(t.details)?t.details:{},u=ut(t.effects)?t.effects:{},c=oa.reduce((x,S)=>(x[S]=Qi(l[S]??r[S],ud[S]),x),{...kn}),p=od.reduce((x,S)=>(x[S]=Qi(a[S]??o[S],cd[S]),x),{...Dn}),f=sa.reduce((x,S)=>(x[S]=Qi(u[S]??s[S],dd[S]),x),{...In});return{enabled:!0,preset:n,intensity:aa(t.intensity,1),adjust:c,details:p,effects:f,lut:pd(t.lut),colorSpace:typeof t.colorSpace=="string"&&t.colorSpace.trim()?t.colorSpace.trim():rd}}function la(e,t){return er(Zi(e,t))}function nn(e){return!e?.enabled||e.intensity===0?!1:e.lut&&e.lut.intensity!==0?!0:oa.some(t=>Math.abs(e.adjust[t])>1e-4)||Math.abs(e.details.vignette)>1e-4||Math.abs(e.details.grain)>1e-4||sa.some(t=>Math.abs(e.effects[t])>1e-4)}var Se=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);be(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},bd=[0,0,0],yd=[1,1,1],nr=64;function Sd(e){let t=!1;for(let n=0;n<e.length;n++){let i=e[n];if(i===\'"\'&&(t=!t),i==="#"&&!t)return e.slice(0,n)}return e}function Ze(e,t){let n=Number(e);if(!Number.isFinite(n))throw new Se(`Invalid number "${e}"`,t);return n}function ua(e,t,n){if(e.length!==3)throw new Se(`${t} expects three numbers`,n);return[Ze(e[0],n),Ze(e[1],n),Ze(e[2],n)]}function ca(e,t,n){if(!e)throw new Se(`${t} expects a size`,n);let i=Number(e);if(!Number.isInteger(i)||i<2)throw new Se(`${t} must be an integer greater than 1`,n);return i}function Ed(e,t){if(t[0]<=e[0]||t[1]<=e[1]||t[2]<=e[2])throw new Se("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Ad(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 wd(e){return/^[+-]?(?:\\d|\\.\\d)/.test(e)}function da(e,t={}){let n=t.maxSize??nr,i=null,r=bd,o=yd,s=null,l=null,a=[],u=e.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let p=0;p<u.length;p++){let f=p+1,x=Sd(u[p]??"").trim();if(!x)continue;let S=x.split(/\\s+/),y=(S[0]??"").toUpperCase(),g=S.slice(1);if(y==="TITLE"){i=Ad(x);continue}if(y==="DOMAIN_MIN"){r=ua(g,y,f);continue}if(y==="DOMAIN_MAX"){o=ua(g,y,f);continue}if(y==="LUT_3D_INPUT_RANGE"){if(g.length!==2)throw new Se(`${y} expects two numbers`,f);let A=Ze(g[0],f),_=Ze(g[1],f);if(_<=A)throw new Se("LUT_3D_INPUT_RANGE max must exceed min",f);r=[A,A,A],o=[_,_,_];continue}if(y==="LUT_1D_SIZE"){s=ca(g[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(l=ca(g[0],y,f),l>n)throw new Se(`LUT_3D_SIZE ${l} exceeds max ${n}`,f);continue}if(!wd(y)){if(y.startsWith("LUT_"))throw new Se(`Unsupported cube keyword ${y}`,f);continue}if(!l)throw s?new Se("1D cube LUTs are not supported yet",f):new Se("LUT data appears before LUT_3D_SIZE",f);if(S.length!==3)throw new Se("LUT data rows must contain three numbers",f);a.push(Ze(S[0],f),Ze(S[1],f),Ze(S[2],f))}if(s&&l)throw new Se("Mixed 1D and 3D cube LUTs are not supported yet");if(!l)throw s?new Se("1D cube LUTs are not supported yet"):new Se("Missing LUT_3D_SIZE");Ed(r,o);let c=l*l*l;if(a.length!==c*3)throw new Se(`Expected ${c} LUT rows for size ${l}, found ${a.length/3}`);return{title:i,size:l,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Cd(e){return Number.isFinite(e)?Math.min(1,Math.max(0,e)):0}function tr(e){return Math.round(Cd(e)*255)}function fa(e){let t=e.size,n=t*t,i=t,r=new Uint8Array(n*i*4);for(let o=0;o<t;o++)for(let s=0;s<t;s++)for(let l=0;l<t;l++){let a=((o*t+s)*t+l)*3,u=(s*n+o*t+l)*4;r[u]=tr(e.data[a]??0),r[u+1]=tr(e.data[a+1]??0),r[u+2]=tr(e.data[a+2]??0),r[u+3]=255}return{width:n,height:i,data:r}}var je=new Map,Fd="data-hf-color-grading-canvas",ya="data-hf-color-grading-source-hidden",_d="__hf_color_grading_canvas__",vd=16,rn={enabled:!1,position:.5,softness:0,lineWidth:2};function Md(e){let t=window,i=e.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?t.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=t.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:t.__hfVariables??{}}function ir(e){let t=e.getAttribute(tn);return t==null?null:la(t,Md(e))}var Td=["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`),Nd=["#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_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","uniform float u_blurReady;","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 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_blur;","uniform float u_pixelate;","uniform float u_intensity;","uniform float u_compareEnabled;","uniform float u_comparePosition;","uniform float u_compareSoftness;","uniform float u_compareLineWidth;","float lumaOf(vec3 c){ return dot(c, vec3(0.2126, 0.7152, 0.0722)); }","float grainHash(vec2 p){ return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); }","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)); }","vec4 sampleSource(vec2 uv){ return texture2D(u_source, clampUv(uv)); }","vec4 sampleBlur(vec2 uv){ return texture2D(u_blurSource, clampUv(uv)); }","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;"," }"," vec4 base = sampleSource(sampleUv);"," float blur = clamp(u_blur, 0.0, 1.0);"," if (blur > 0.0 && u_blurReady > 0.5) {"," base = mix(base, sampleBlur(sampleUv), blur);"," }"," return base;","}","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));","}","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);"," vec4 sampleColor = sampleMedia(uv);"," vec3 original = originalSample.rgb;"," vec3 color = sampleColor.rgb * 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));"," color = clamp(color, 0.0, 1.0);"," color = clamp(applyLut(color), 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 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);"," }"," color = clamp(color, 0.0, 1.0);"," vec3 graded = mix(original, color, u_intensity);"," 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`),Ld=["#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;","vec4 readSource(vec2 uv){"," vec4 color = texture2D(u_source, clamp(uv, vec2(0.0), vec2(1.0)));"," color.rgb *= color.a;"," return color;","}","void main(){"," 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`);function ct(e){return e instanceof HTMLVideoElement||e instanceof HTMLImageElement}function ma(e,t,n){let i=e.createShader(n);return i?(e.shaderSource(i,t),e.compileShader(i),e.getShaderParameter(i,e.COMPILE_STATUS)?i:(L("runtime.colorGrading.compileShader",e.getShaderInfoLog(i)),e.deleteShader(i),null)):null}function Sa(e,t=Nd){let n=ma(e,Td,e.VERTEX_SHADER),i=ma(e,t,e.FRAGMENT_SHADER);if(!n||!i)return n&&e.deleteShader(n),i&&e.deleteShader(i),null;let r=e.createProgram();return r?(e.attachShader(r,n),e.attachShader(r,i),e.linkProgram(r),e.deleteShader(n),e.deleteShader(i),e.getProgramParameter(r,e.LINK_STATUS)?r:(L("runtime.colorGrading.linkProgram",e.getProgramInfoLog(r)),e.deleteProgram(r),null)):null}function or(e,t=e.LINEAR){let n=e.createTexture();return n?(e.bindTexture(e.TEXTURE_2D,n),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,e.UNSIGNED_BYTE,null),n):null}function Rd(e,t){let n=Sa(e,Ld);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")}:null}function pa(e){let t=or(e),n=e.createFramebuffer();if(!t||!n)return t&&e.deleteTexture(t),n&&e.deleteFramebuffer(n),null;e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER);return e.bindFramebuffer(e.FRAMEBUFFER,null),i!==e.FRAMEBUFFER_COMPLETE?(e.deleteTexture(t),e.deleteFramebuffer(n),null):{texture:t,framebuffer:n,width:1,height:1}}function ha(e,t,n,i){t.width===n&&t.height===i||(t.width=n,t.height=i,e.bindTexture(e.TEXTURE_2D,t.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n,i,0,e.RGBA,e.UNSIGNED_BYTE,null))}function Ea(e){let t=e.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!t)return null;let n=Sa(t),i=or(t),r=or(t,t.NEAREST);if(!n||!i||!r)return n&&t.deleteProgram(n),i&&t.deleteTexture(i),r&&t.deleteTexture(r),null;let o=t.createBuffer();return o?(t.bindBuffer(t.ARRAY_BUFFER,o),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),t.STATIC_DRAW),{gl:t,program:{program:n,texture:i,lutTexture:r,quad:o,position:t.getAttribLocation(n,"a_pos"),source:t.getUniformLocation(n,"u_source"),blurSource:t.getUniformLocation(n,"u_blurSource"),lut:t.getUniformLocation(n,"u_lut"),resolution:t.getUniformLocation(n,"u_resolution"),uvScale:t.getUniformLocation(n,"u_uvScale"),uvOffset:t.getUniformLocation(n,"u_uvOffset"),blurReady:t.getUniformLocation(n,"u_blurReady"),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"),exposure:t.getUniformLocation(n,"u_exposure"),contrast:t.getUniformLocation(n,"u_contrast"),highlights:t.getUniformLocation(n,"u_highlights"),shadows:t.getUniformLocation(n,"u_shadows"),whites:t.getUniformLocation(n,"u_whites"),blacks:t.getUniformLocation(n,"u_blacks"),temperature:t.getUniformLocation(n,"u_temperature"),tint:t.getUniformLocation(n,"u_tint"),vibrance:t.getUniformLocation(n,"u_vibrance"),saturation:t.getUniformLocation(n,"u_saturation"),vignette:t.getUniformLocation(n,"u_vignette"),vignetteMidpoint:t.getUniformLocation(n,"u_vignetteMidpoint"),vignetteRoundness:t.getUniformLocation(n,"u_vignetteRoundness"),vignetteFeather:t.getUniformLocation(n,"u_vignetteFeather"),grain:t.getUniformLocation(n,"u_grain"),grainSize:t.getUniformLocation(n,"u_grainSize"),grainRoughness:t.getUniformLocation(n,"u_grainRoughness"),grainSeed:t.getUniformLocation(n,"u_grainSeed"),blur:t.getUniformLocation(n,"u_blur"),pixelate:t.getUniformLocation(n,"u_pixelate"),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")}}):(t.deleteProgram(n),t.deleteTexture(i),t.deleteTexture(r),null)}function kd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dd(e){if(!kd(e))return{...rn};let t=(n,i,r,o)=>{let s=typeof n=="number"?n:Number(n);return Math.min(o,Math.max(r,Number.isFinite(s)?s:i))};return{enabled:e.enabled===!0,position:t(e.position,rn.position,0,1),softness:t(e.softness,rn.softness,0,.25),lineWidth:t(e.lineWidth,rn.lineWidth,0,12)}}function Aa(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 ar(e){return e instanceof Error?e.message:"LUT failed to load"}function Id(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 Pd(e){let t=e.id||e.currentSrc||e.getAttribute("src")||`${e.tagName}:${Array.prototype.indexOf.call(e.parentNode?.children??[],e)}`;return Id(t)}function Od(e){let t=Aa(e);if("error"in t)return{state:"error",message:t.error};let n=je.get(t.href);if(n)return n;let i=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=>da(o,{maxSize:nr})),r={state:"pending",promise:i};for(;je.size>=vd;){let o=je.keys().next().value;if(!o)break;je.delete(o)}return je.set(t.href,r),i.then(o=>{je.get(t.href)===r&&je.set(t.href,{state:"ready",lut:o})},o=>{je.get(t.href)===r&&je.set(t.href,{state:"error",message:ar(o)})}),r}function ga(e,t,n){if(e.lut?.src===t)return e.lut;let i=fa(n),{gl:r,program:o}=e;try{return r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,o.lutTexture),r.pixelStorei(r.UNPACK_FLIP_Y_WEBGL,!1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,i.width,i.height,0,r.RGBA,r.UNSIGNED_BYTE,i.data),e.lut={src:t,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},e.lutError=null,e.lutLoadingSrc=null,e.lut}catch(s){return e.lut=null,e.lutError=ar(s),e.lutLoadingSrc=null,L("runtime.colorGrading.uploadLut",s),null}}function Pn(e,t){e.deleteTexture(t.texture),e.deleteFramebuffer(t.framebuffer)}function wa(e){let t=e.effectTargets;t&&(e.gl.deleteProgram(t.blurProgram.program),Pn(e.gl,t.scratch),Pn(e.gl,t.blur),e.effectTargets=null)}function Ca(e){wa(e),e.gl.deleteTexture(e.program.texture),e.gl.deleteTexture(e.program.lutTexture),e.gl.deleteBuffer(e.program.quad),e.gl.deleteProgram(e.program.program)}function Bd(e){let t=Ea(e.canvas);return t?(Ca(e),e.gl=t.gl,e.program=t.program,e.lut=null,e.lutLoadingSrc=null,e.lutError=null,e.effectError=null,!0):!1}function sr(e){if(!e.sourceHidden)return;e.element.removeAttribute(ya);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 Hd(e){if(e.effectTargets)return e.effectTargets;let{gl:t}=e,n=Rd(t,e.program.quad),i=pa(t),r=pa(t);return!n||!i||!r?(n&&t.deleteProgram(n.program),i&&Pn(t,i),r&&Pn(t,r),e.effectError="Framebuffer effects unavailable",null):(e.effectError=null,e.effectTargets={blurProgram:n,scratch:i,blur:r},e.effectTargets)}function Gd(e,t,n,i,r){let o=Math.max(1,Math.ceil(i)),s=Math.max(1,Math.ceil(r));return ha(e,t,o,s),ha(e,n,o,s),{width:o,height:s}}function xa(e,t,n,i,r,o,s){e.bindFramebuffer(e.FRAMEBUFFER,i.framebuffer),e.viewport(0,0,r.width,r.height),e.useProgram(t.program),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,n),e.uniform1i(t.source,0),e.uniform2f(t.resolution,r.width,r.height),e.uniform2f(t.direction,o.x,o.y),e.uniform1f(t.radius,s),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 Wd(e,t,n,i,r,o,s){let l=n;for(let a=0;a<Math.max(1,Math.floor(s));a++)xa(e,t.blurProgram,l,t.scratch,r,{x:1,y:0},o),xa(e,t.blurProgram,t.scratch.texture,i,r,{x:0,y:1},o),l=i.texture}function Ud(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 i=Aa(t);if("error"in i)return e.lut=null,e.lutLoadingSrc=null,e.lutError=i.error,null;if(e.lut?.src===i.href)return e.lut;e.lut=null;let r=Od(t);return r.state==="ready"?ga(e,i.href,r.lut):r.state==="error"?(e.lutError=r.message,e.lutLoadingSrc=null,null):(e.lutLoadingSrc!==i.href&&(e.lutLoadingSrc=i.href,e.lutError=null,r.promise.then(o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(ga(e,i.href,o),We(e))},o=>{e.destroyed||e.grading.lut?.src.trim()!==t||(e.lut=null,e.lutError=ar(o),e.lutLoadingSrc=null,We(e))})),null)}function rr(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&&ct(n))return n;try{let i=document.querySelector(t);return i&&ct(i)?i:null}catch{return null}}if(e.hfId){let t=document.querySelector(`[data-hf-id="${CSS.escape(e.hfId)}"]`);if(t&&ct(t))return t}if(e.id){let t=document.getElementById(e.id);if(t&&ct(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)),i=t[n]??null;return i&&ct(i)?i:null}catch{return null}}function Vd(e){return e instanceof HTMLVideoElement?e.videoWidth>0&&e.videoHeight>0?{width:e.videoWidth,height:e.videoHeight}:null:e instanceof HTMLImageElement&&e.naturalWidth>0&&e.naturalHeight>0?{width:e.naturalWidth,height:e.naturalHeight}:null}function Fa(e){return e instanceof HTMLVideoElement?e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&e.videoWidth>0&&e.videoHeight>0:e instanceof HTMLImageElement?e.complete&&e.naturalWidth>0&&e.naturalHeight>0:!1}function zd(e){if(!e.id)return null;let t=document.getElementById(`__render_frame_${e.id}__`);return t instanceof HTMLImageElement&&Fa(t)?t:null}function jd(e){return e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")}function qd(e,t){t.parentNode&&t.nextSibling!==e.canvas&&t.parentNode.insertBefore(e.canvas,t.nextSibling)}function $d(e){if(e instanceof HTMLVideoElement){let t=zd(e);if(t)return t}return Fa(e)?e:null}function ba(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 i=Number.parseFloat(n);return Number.isFinite(i)?i/100:null}return null}function Kd(e){let t=e.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<t.length;r++){let o=t[r]??"",s=ba(o,"x"),l=ba(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(l!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=l;continue}}return{x:n,y:i}}function Jd(e,t,n,i,r,o){if(e<=0||t<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",l=e,a=t;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(e/n,t/i):Math.min(e/n,t/i);l=n*f,a=i*f,s==="scale-down"&&l>n&&a>i&&(l=n,a=i)}else s==="none"&&(l=n,a=i);let u=Kd(o||"center"),c=(e-l)*u.x/e,p=(t-a)*u.y/t;return{scaleX:l/e,scaleY:a/t,offsetX:c,offsetY:p}}function Xd(e,t){window.getComputedStyle(t).position==="static"&&(e.touchedParent||(e.touchedParent=t,e.parentInlinePosition=t.style.position||null),t.style.position="relative")}function Yd(e,t){let{element:n,canvas:i}=e,r=n.parentElement;r&&Xd(e,r);let o=window.getComputedStyle(t);io(i.style,o),i.style.pointerEvents="none",i.style.position="absolute",i.style.inset="auto",i.style.left=`${n.offsetLeft}px`,i.style.top=`${n.offsetTop}px`,i.style.right="auto",i.style.bottom="auto",i.style.width=`${n.offsetWidth}px`,i.style.height=`${n.offsetHeight}px`,i.style.display="block",i.style.opacity=e.sourceOpacityForCanvas,i.style.visibility=e.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),l=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return l<=0||a<=0?(i.style.display="none",null):(i.width!==l&&(i.width=l),i.height!==a&&(i.height=a),{width:l,height:a})}function Qd(e,t,n,i,r,o,s,l,a){e.uniform1i(t.source,0),e.uniform1i(t.blurSource,1),e.uniform1i(t.lut,2),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,r?1:0),e.uniform1f(t.lutEnabled,i?1:0),e.uniform1f(t.lutSize,i?.size??2),e.uniform2f(t.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),e.uniform3f(t.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),e.uniform3f(t.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),e.uniform1f(t.lutIntensity,n.lut?.intensity??0),e.uniform1f(t.exposure,n.adjust.exposure),e.uniform1f(t.contrast,n.adjust.contrast),e.uniform1f(t.highlights,n.adjust.highlights),e.uniform1f(t.shadows,n.adjust.shadows),e.uniform1f(t.whites,n.adjust.whites),e.uniform1f(t.blacks,n.adjust.blacks),e.uniform1f(t.temperature,n.adjust.temperature),e.uniform1f(t.tint,n.adjust.tint),e.uniform1f(t.vibrance,n.adjust.vibrance),e.uniform1f(t.saturation,n.adjust.saturation),e.uniform1f(t.vignette,n.details.vignette),e.uniform1f(t.vignetteMidpoint,n.details.vignetteMidpoint),e.uniform1f(t.vignetteRoundness,n.details.vignetteRoundness),e.uniform1f(t.vignetteFeather,n.details.vignetteFeather),e.uniform1f(t.grain,n.details.grain),e.uniform1f(t.grainSize,n.details.grainSize),e.uniform1f(t.grainRoughness,n.details.grainRoughness),e.uniform1f(t.grainSeed,a),e.uniform1f(t.blur,n.effects.blur),e.uniform1f(t.pixelate,n.effects.pixelate),e.uniform1f(t.intensity,n.intensity),e.uniform1f(t.compareEnabled,o.enabled?1:0),e.uniform1f(t.comparePosition,o.position),e.uniform1f(t.compareSoftness,o.softness),e.uniform1f(t.compareLineWidth,o.lineWidth)}function Zd(e){e.sourceHidden||(e.sourceInlineOpacity=e.element.style.getPropertyValue("opacity")||null,e.sourceInlineOpacityPriority=e.element.style.getPropertyPriority("opacity")),e.element.setAttribute(ya,"true"),e.element.style.setProperty("opacity","0","important"),e.sourceHidden=!0}function We(e){if(e.destroyed||e.contextLost)return!1;let t=$d(e.element);if(!t)return e.hasDrawn||(e.canvas.style.display="none"),!1;let n=Vd(t);if(!n)return!1;let i=t instanceof HTMLElement?t:e.element,r=e.element.style.getPropertyValue("opacity"),o=e.element.style.getPropertyPriority("opacity"),s=e.sourceHidden&&r==="0"&&o==="important",l=e.element.style.getPropertyValue("visibility"),a=jd(t);if(a&&qd(e,t),a||!s){let S=window.getComputedStyle(a?t:e.element);e.sourceOpacityForCanvas=S.opacity||"1",e.sourceVisibleForCanvas=(a||l!=="hidden")&&S.visibility!=="hidden"}let u=Yd(e,i);if(!u)return!1;let c=window.getComputedStyle(i),p=Jd(u.width,u.height,n.width,n.height,c.objectFit,c.objectPosition),{gl:f,program:x}=e;try{let S=Ud(e);f.activeTexture(f.TEXTURE0),f.bindTexture(f.TEXTURE_2D,x.texture),f.pixelStorei(f.UNPACK_FLIP_Y_WEBGL,!0),f.texImage2D(f.TEXTURE_2D,0,f.RGBA,f.RGBA,f.UNSIGNED_BYTE,t);let y=!1,g=Math.min(1,Math.max(0,e.grading.effects.blur));if(g>0){let _=Hd(e);if(_){let N=Gd(f,_.scratch,_.blur,u.width,u.height);Wd(f,_,x.texture,_.blur,N,.75+Math.pow(g,1.35)*32,g>.55?3:2),y=!0}}else e.effectError=null,e.effectTargets&&wa(e);f.bindFramebuffer(f.FRAMEBUFFER,null),f.viewport(0,0,u.width,u.height),f.useProgram(x.program),f.activeTexture(f.TEXTURE0),f.bindTexture(f.TEXTURE_2D,x.texture),f.activeTexture(f.TEXTURE1),f.bindTexture(f.TEXTURE_2D,e.effectTargets?.blur.texture??x.texture),f.activeTexture(f.TEXTURE2),f.bindTexture(f.TEXTURE_2D,x.lutTexture);let A=e.grainSeed+(e.element instanceof HTMLVideoElement?Math.floor(e.element.currentTime*60):0);return Qd(f,x,e.grading,S,y,e.compare,u,p,A),f.bindBuffer(f.ARRAY_BUFFER,x.quad),f.enableVertexAttribArray(x.position),f.vertexAttribPointer(x.position,2,f.FLOAT,!1,0,0),f.drawArrays(f.TRIANGLE_STRIP,0,4),Zd(e),e.hasDrawn=!0,e.drawError=null,!0}catch(S){return e.drawError=S instanceof Error?S.message:"Shader draw failed",L("runtime.colorGrading.drawEntry",S),!1}}function Ge(e,t,n,i){t.addEventListener(n,i),e.cleanup.push(()=>t.removeEventListener(n,i))}function ef(e){e.animationFrame!==null&&(window.cancelAnimationFrame(e.animationFrame),e.animationFrame=null),e.videoFrameHandle!==null&&e.element instanceof HTMLVideoElement&&(e.element.cancelVideoFrameCallback?.(e.videoFrameHandle),e.videoFrameHandle=null)}function on(e){if(e.destroyed||!(e.element instanceof HTMLVideoElement)||e.videoFrameHandle!==null||e.animationFrame!==null)return;let t=e.element,n=t;if(typeof n.requestVideoFrameCallback=="function"){e.videoFrameHandle=n.requestVideoFrameCallback(()=>{e.videoFrameHandle=null,We(e),!e.destroyed&&!t.paused&&!t.ended&&on(e)});return}e.animationFrame=window.requestAnimationFrame(()=>{e.animationFrame=null,We(e),!e.destroyed&&!t.paused&&!t.ended&&on(e)})}function tf(e){let t=()=>{We(e)};Ge(e,e.element,"load",t),Ge(e,e.element,"loadedmetadata",t),Ge(e,e.element,"loadeddata",t),Ge(e,e.element,"seeked",t),Ge(e,e.element,"timeupdate",t),Ge(e,window,"resize",t),e.element instanceof HTMLVideoElement&&(Ge(e,e.element,"play",()=>on(e)),Ge(e,e.element,"pause",t)),Ge(e,e.canvas,"webglcontextlost",n=>{n.preventDefault(),e.contextLost=!0,e.drawError="WebGL context lost",e.canvas.style.display="none",sr(e)}),Ge(e,e.canvas,"webglcontextrestored",()=>{if(e.contextLost=!1,!Bd(e)){e.contextLost=!0,e.drawError="WebGL context restore failed",sr(e);return}e.drawError=null,We(e)}),typeof ResizeObserver<"u"&&(e.resizeObserver=new ResizeObserver(t),e.resizeObserver.observe(e.element))}function nf(e){if(!e.destroyed){e.destroyed=!0,ef(e),e.resizeObserver?.disconnect();for(let t of e.cleanup)t();e.cleanup.length=0,e.canvas.remove(),Ca(e),sr(e),e.touchedParent&&(e.parentInlinePosition===null?e.touchedParent.style.removeProperty("position"):e.touchedParent.style.position=e.parentInlinePosition)}}function rf(e){let t=document.createElement("canvas");return e.id&&(t.id=`${ra}${e.id}`),t.className=_d,t.setAttribute(Fd,"true"),t.setAttribute("data-hyperframes-ignore",""),t.setAttribute("data-hyperframes-picker-ignore",""),t.setAttribute("data-hf-ignore",""),t.setAttribute("aria-hidden","true"),t.style.pointerEvents="none",t.style.display="none",e.parentNode?.insertBefore(t,e.nextSibling),t}function _a(){let e=new WeakMap,t=new Set,n=null,i=!1,r=(y,g,A)=>{let _=e.get(y);if(_)return _.grading=g,_.source=A,We(_),y instanceof HTMLVideoElement&&!y.paused&&on(_),!0;let N=rf(y),J=Ea(N);if(!J)return N.remove(),!1;let B={element:y,canvas:N,gl:J.gl,program:J.program,grading:g,compare:{...rn},lut:null,lutLoadingSrc:null,lutError:null,drawError:null,effectTargets:null,effectError:null,source:A,animationFrame:null,videoFrameHandle:null,resizeObserver:null,cleanup:[],touchedParent:null,parentInlinePosition:null,sourceHidden:!1,sourceInlineOpacity:null,sourceInlineOpacityPriority:"",sourceOpacityForCanvas:window.getComputedStyle(y).opacity||"1",sourceVisibleForCanvas:window.getComputedStyle(y).visibility!=="hidden",hasDrawn:!1,contextLost:!1,grainSeed:Pd(y),destroyed:!1};return e.set(y,B),t.add(y),tf(B),We(B),y instanceof HTMLVideoElement&&!y.paused&&on(B),!0},o=(y,g)=>{if(i)return!1;let A=rr(y);if(!A)return!1;let _=e.get(A);if(!_){let N=ir(A);if(!nn(N)||!r(A,N,"attribute"))return!1;_=e.get(A)}return _?(_.compare=Dd(g),We(_),!0):!1},s=y=>{let g=e.get(y);g&&(nf(g),e.delete(y),t.delete(y))},l=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${tn}], img[${tn}]`).forEach(A=>{if(!ct(A))return;y.add(A);let _=ir(A);nn(_)?r(A,_,"attribute"):s(A)});for(let A of Array.from(t)){let _=e.get(A);_&&(!A.isConnected||_.source==="attribute"&&!y.has(A))&&s(A)}return t.size},a=()=>{if(i)return 0;let y=0;for(let g of Array.from(t,A=>e.get(A)))g&&We(g)&&(y+=1);return y},u=(y,g)=>{if(i)return!1;let A=rr(y);if(!A)return!1;let _=er(g);return nn(_)?r(A,_,"live"):(s(A),!0)},c=(y,g)=>{if(!ct(y))return!1;let A=e.get(y);return A?(A.sourceVisibleForCanvas=g,!0):!1},p=y=>{let g=rr(y);if(!g)return{state:"missing",message:"Media not found"};let A=e.get(g);if(A)return A.effectError?{state:"unavailable",message:A.effectError}:A.drawError?{state:"unavailable",message:A.drawError}:A.lutError?{state:"unavailable",message:`LUT error: ${A.lutError}`}:A.grading.lut&&A.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:A.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:A.lut?"Shader + LUT active":"Shader active"};let _=ir(g);return nn(_)?{state:"unavailable",message:"WebGL unavailable"}:{state:"inactive",message:"No grading applied"}},f=()=>{if(!i){i=!0,n?.disconnect(),n=null;for(let y of Array.from(t))s(y)}};document.body&&(n=new MutationObserver(()=>l()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[tn]}));let x={refresh:l,redraw:a,setGrading:u,setCompare:o,setSourceVisibility:c,getStatus:p,destroy:f},S=window;return S.__hf=S.__hf||{},S.__hf.colorGrading=x,l(),x}var On=class{constructor(t){be(this,"_baseTime",0);be(this,"_playStartMs",null);be(this,"_rate",1);be(this,"_duration",1/0);be(this,"_nowMs");be(this,"_audioSource",null);this._baseTime=t?.initialTime??0,this._rate=t?.rate??1,this._duration=t?.duration??1/0,this._nowMs=t?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let t=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+t*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(t){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(t,this._duration)):Math.max(0,t);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(t){let n=Number.isFinite(t)&&t>0?Math.max(.1,Math.min(5,t)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(t){this._duration=Number.isFinite(t)&&t>0?t:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(t){this._audioSource=t}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:t}=this._audioSource;if(!t.paused&&Number.isFinite(t.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function va(e){return!Number.isFinite(e)||e<=0?1:e}function of(e,t){t||e.paused||!mn().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",e.currentSrc||e.getAttribute("src")||"")}function sf(e,t){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=t,l=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let c=a-n;return l&&c<=0?!1:(l?e.start(0,n+i,c):e.start(0,n+i),!0)}let u=-n/o;return l?e.start(r+u,i,a):e.start(r+u,i),!0}var Bn=class{constructor(){be(this,"_ctx",null);be(this,"_bufferCache",new Map);be(this,"_failedSrcs",new Set);be(this,"_activeSources",[]);be(this,"_masterGain",null);be(this,"_rateAnchorCtx",0);be(this,"_rateAnchorComp",0);be(this,"_rate",1);be(this,"_paused",!0);be(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(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 i;try{let r=await fetch(n,{cache:"no-store"});if(!r.ok)return L("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return L("webAudioTransport.fetch",r),null}try{let r=await this._ctx.decodeAudioData(i);return this._bufferCache.set(n,r),r}catch(r){return this._failedSrcs.add(n),L("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(t,n,i,r,o,s,l,a=1,u=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let c=va(a),p=this._ctx.createBufferSource();p.buffer=n,p.playbackRate.value=c;let f=this._ctx.createGain();f.gain.value=s,p.connect(f),f.connect(this._masterGain);let x=o-i,S=this._ctx.currentTime;if(this._rate=c,this._rateAnchorCtx=S,this._rateAnchorComp=o,!sf(p,{elapsed:x,mediaStart:r,scheduledAt:S,safeRate:c,clipDuration:u}))return p.disconnect(),f.disconnect(),null;let y=t.muted;t.muted=!0,of(t,y);let g={el:t,sourceNode:p,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:S,priorMuted:y,bounded:Number.isFinite(u)&&u>0};return this._activeSources.push(g),this._paused=!1,p.addEventListener("ended",()=>{let A=this._activeSources.indexOf(g);A!==-1&&(this._activeSources.splice(A,1),t.muted=y,this._activeSources.length===0&&(this._paused=!0))}),g}catch(c){return L("webAudioTransport.schedule",c),null}}setRate(t){let n=va(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 i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){L("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(t=>t.bounded)}stopAll(){for(let t of this._activeSources){try{t.sourceNode.stop(),t.sourceNode.disconnect(),t.gainNode.disconnect()}catch{}t.el.muted=t.priorMuted}this._activeSources=[],this._paused=!0}setVolume(t){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,t)))}setElementVolume(t,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===t)try{r.gainNode.gain.value=i}catch(o){L("webAudioTransport.setElementVolume",o)}}setMuted(t){this._masterGain&&(this._masterGain.gain.value=t?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(t){return!this._paused&&this._activeSources.some(n=>n.el===t)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Ma="data-hf-studio-manual-edit-gesture";var lr="data-hf-authored-duration",ur="data-hf-authored-end";function af(){let e=window.__HF_EXPORT_RENDER_SEEK_CONFIG,t=e?.fps,n=e?.fpsSource,i=Number(t);return!e||t==null?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:t,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:t,fallbackReason:e.fpsFallbackReason}}function Ta(){let e=so();Yi(document);let t=af();e.canonicalFps=t.fps??e.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:e.canonicalFps,source:t.source,rawFpsSource:t.rawFpsSource,rawFps:t.rawFps,fallbackReason:t.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,l=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){L("runtime.init.site1",d)}(()=>{let d=window.gsap,m=window;if(!(!d?.registerPlugin||m.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),m.__hfAutoNoopRegistered=!0}catch{}})(),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{kr(document)}catch(d){L("runtime.init.cssVariables",d)}window.__timelines=window.__timelines||{};let u=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let m=Array.from(document.querySelectorAll("[data-composition-id]"));return m.find(h=>!h.parentElement?.closest("[data-composition-id]"))??m[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,m=u()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[m]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let c=u();c&&!c.hasAttribute("data-start")&&c.setAttribute("data-start","0");let p=d=>{o.push(d)},f=(d,m,h)=>{let b=h??`${d}:${JSON.stringify(m)}`;s.has(b)||(s.add(b),Ce({source:"hf-preview",type:"diagnostic",code:d,details:m}))},x=d=>{let m={scale:1,focusX:960,focusY:540},h=[],b=[],w={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>m,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...w,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},S=1/60,y=.75,g=2,A=.05,_=100,N=240,J=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},B=d=>{let m=d.toLowerCase();return m.includes("cannot read properties of null")||m.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:m.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:m.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},M=d=>{if(d==null||d.trim()==="")return null;let m=Number.parseFloat(d);return!Number.isFinite(m)||m<=0?null:`${m}px`},E=()=>u(),F=()=>{let d=E();if(!d)return;let m=M(d.getAttribute("data-width")),h=M(d.getAttribute("data-height"));m&&(d.style.width=m),h&&(d.style.height=h),m&&d.style.setProperty("--comp-width",m),h&&d.style.setProperty("--comp-height",h)},v=()=>{let d=E(),m=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of m){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),w=h.getAttribute("data-end");b!=null&&!h.hasAttribute(lr)&&h.setAttribute(lr,b),w!=null&&!h.hasAttribute(ur)&&h.setAttribute(ur,w),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},T=()=>{let d=E();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let m=M(d.getAttribute("data-width")),h=M(d.getAttribute("data-height"));m&&(d.style.width=m),h&&(d.style.height=h);let b=Array.from(d.children);for(let w of b){let C=w.tagName.toLowerCase();if(C==="script"||C==="style"||C==="link"||C==="meta"||!w.hasAttribute("data-start")||w.hasAttribute("data-hf-autostamped"))continue;let R=(w.style.top==="0px"||w.style.top==="0")&&(w.style.left==="0px"||w.style.left==="0")&&w.style.width==="100%"&&w.style.height==="100%",q=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(w.style.transform);if(R&&q&&!w.hasAttribute("data-width")&&!w.hasAttribute("data-height")){let ye=w.style.top,ot=w.style.left,we=w.style.width,vt=w.style.height;w.style.top="",w.style.left="",w.style.width="",w.style.height="";let ie=window.getComputedStyle(w);ie.top!=="auto"||ie.bottom!=="auto"||ie.left!=="auto"||ie.right!=="auto"||ie.width!=="0px"||ie.height!=="0px"||(w.style.top=ye,w.style.left=ot,w.style.width=we,w.style.height=vt)}let K=window.getComputedStyle(w),ge=K.position;if(ge!=="absolute"&&ge!=="fixed"&&(w.style.position="absolute"),!!w.style.top||!!w.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(w.style.top="0"),!!w.style.left||!!w.style.right||K.left!=="auto"||K.right!=="auto"||(w.style.left="0"),C!=="audio"){let ye=M(w.getAttribute("data-width")),ot=M(w.getAttribute("data-height")),we=K.width!=="0px"&&K.width!=="auto",vt=K.height!=="0px"&&K.height!=="auto";ye?!w.style.width&&!we&&(w.style.width=ye):!w.style.width&&K.width==="0px"&&(w.style.width="100%"),ot?!w.style.height&&!vt&&(w.style.height=ot):!w.style.height&&K.height==="0px"&&(w.style.height="100%")}}},k=(d,m=0,h)=>Ke({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,m),W=(d,m)=>Ke({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:m?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,m=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+m:k(d,m),re=(d,m)=>{let h=d.tagName.toLowerCase();if(h==="script"||h==="style"||h==="link"||h==="meta")return!1;let b=h==="video"||h==="audio"?j(d,0):k(d,0),w=W(d),C=d.getAttribute("data-composition-id");if(C){let q=(window.__timelines??{})[C],K=null;if(q&&typeof q.duration=="function"){let xe=Number(q.duration());Number.isFinite(xe)&&xe>0&&(K=xe)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(lr)||d.hasAttribute(ur))&&(w==null||w<=0)&&K!=null&&(w=K)}let R=w!=null&&w>0?b+w:Number.POSITIVE_INFINITY;return m>=b&&(Number.isFinite(R)?m<=R:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let m of d){let h=m.getAttribute("data-composition-id");if(h&&m.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Ee=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let m=Number(d.duration());return Number.isFinite(m)?Math.max(0,m):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>S,V=d=>{let m=Number(d.getAttribute("data-duration"));if(Number.isFinite(m)&&m>0)return m;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},oe=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let m=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let w=V(h);w==null||w<=S||(m=Math.max(m,Math.max(0,b)+w))}return m>S?m:null},_e=()=>{let d=E();if(!d)return null;let m=window.__timelines??{},h=Ke({timelineRegistry:m,includeAuthoredTimingAttrs:!0}),b=0,w=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(w)&&w>0&&(b=w);let C=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let R of C){if(!(R instanceof Element)||R.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(R,0),ge=h.resolveDurationForElement(R);!Number.isFinite(K)||ge==null||ge<=0||(b=Math.max(b,Math.max(0,K)+ge))}return b>S?b:null},O=()=>{let d=oe();return typeof d!="number"||!Number.isFinite(d)||d<=S?null:d},D=d=>U(d)?Math.max(S,d*y):S,G=()=>{let d=0;for(let m of e.deterministicAdapters){let h=m.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(w){L("runtime.init.adapterDuration",w)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>S?d:null},Q=(d,m=0)=>{let h=H(d),b=O(),w=_e(),C=G(),R=Math.max(b??0,w??0,C??0),q=Number.isFinite(m)&&m>S?m:0,K=0;return U(h)?K=Math.max(h,R,q):U(R)?K=Math.max(R,q):K=q,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},m=ie=>{let ee=Object.entries(d).filter(he=>!!he[1]&&typeof he[1].play=="function"&&typeof he[1].pause=="function");if(ee.length!==1)return{timeline:null};let[fe,me]=ee[0];return{timeline:me,selectedTimelineIds:[fe],selectedDurationSeconds:H(me),diagnostics:{code:"root_timeline_sole_registered_fallback",details:{reason:ie,soleTimelineId:fe}}}},h=Ke({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),w=_e(),C=Math.max(b??0,w??0)||null,R=D(C),q=ie=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ie)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=ie=>{let ee=window.gsap;if(!ee||typeof ee.timeline!="function")return null;let fe=ee.timeline({paused:!0});for(let me of ie)fe.add(me.timeline,q(me.compositionId));return fe},ge=(ie,ee)=>{if(!U(ie))return null;let fe=window.gsap;if(!fe||typeof fe.timeline!="function")return null;let me=fe.timeline({paused:!0});if(ee)try{me.add(ee,0)}catch(ue){L("runtime.init.site2",ue)}let he=me;if(typeof he.to=="function")try{he.to({},{duration:ie})}catch(ue){L("runtime.init.site3",ue)}return me},xe=(ie,ee)=>{let fe=ie;if(typeof fe.getChildren!="function")return[];try{let me=fe.getChildren(!0,!0,!0)??[];if(!Array.isArray(me))return[];let he=[];for(let ue of ee)if(!me.some(Re=>Re===ue.timeline))try{let Re=q(ue.compositionId);ie.add(ue.timeline,Re),he.push(ue.compositionId)}catch(Re){L("runtime.init.site4",Re)}return he}catch{return[]}},ne=E(),Z=ne?.getAttribute("data-composition-id")??null;if(!Z)return m("root_missing_composition_id");let ye=d[Z]??null,we=(()=>{if(!ne)return[];let ie=new Set,ee=Array.from(ne.querySelectorAll("[data-composition-id]")),fe=[];for(let me of ee){let he=me.getAttribute("data-composition-id");if(!he||he===Z||ie.has(he))continue;ie.add(he);let ue=d[he]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Me=H(ue);fe.push({compositionId:he,timeline:ue,durationSeconds:Me??0})}return fe})(),vt=ie=>{for(let ee of ie){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(me){L("runtime.init.site5",me)}}};if(we.length>0&&vt(we),ye){let ie=we.length>0?xe(ye,we):[];if((we.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&($=!0),ie.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&we.length>0){let ue=we.map(hl=>hl.compositionId),Me=K(we),Re=H(Me);if(Me&&U(Re))return{timeline:Me,selectedTimelineIds:ue,selectedDurationSeconds:Re,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:Re,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:w,selectedTimelineIds:ue,autoNestedChildren:ie}}};let Zn=ge(C??0,ye),ei=H(Zn);if(Zn&&U(ei))return{timeline:Zn,selectedTimelineIds:[Z],selectedDurationSeconds:ei,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:ei,selectedTimelineIds:[Z],autoNestedChildren:ie}}}}if(!U(ee)&&we.length===0){let ue=ge(C??0,ye),Me=H(ue);if(ue&&U(Me))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Me,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:w,selectedDurationSeconds:Me,selectedTimelineIds:[Z]}}}}let fe=ne?.getAttribute("data-duration"),me=fe?parseFloat(fe):null,he=Math.max(U(me)?me:0,w??0);if(he>0&&U(he)&&U(ee)&&he>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},he)}catch(Re){L("runtime.init.site6",Re)}let Me=H(ye);if(U(Me))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Me,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:me,authoredCompositionDurationFloorSeconds:w,newDur:Me}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ie.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ie}}:void 0}}if(we.length>0){let ie=we.map(me=>me.compositionId),ee=K(we),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ie,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,selectedTimelineIds:ie}}}}return m("root_composition_id_unmatched_in_registry")},$=!1,z=()=>{if(!Ee)return!1;let d=e.capturedTimeline,m=H(d),h=U(m);if(d&&h&&$)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(e.playbackRate),!1;e.capturedTimeline=b.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let w=Q(e.capturedTimeline,0);if(w<=0&&typeof e.capturedTimeline.progress=="function"&&(e.capturedTimeline.progress(1,!0),e.capturedTimeline.progress(0,!1),e.capturedTimeline.pause()),w>0){try{I.setDuration(w)}catch{}if(typeof e.capturedTimeline.totalTime=="function"){typeof e.capturedTimeline.progress=="function"&&e.capturedTimeline.progress(1e-4,!0);let R=Math.max(0,e.currentTime||0);e.capturedTimeline.totalTime(R,!1),e.capturedTimeline.pause()}let C=window.__hfStudioManualEditsApply;typeof C=="function"&&C(),Yi(document)}if(b.diagnostics&&Ce({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ce({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let C=E(),R=w>0?w:0,q=String(R>0?R:1),K=new Set,ge=new Set(document.querySelectorAll("[data-start]")),xe=ne=>{let Z=ne.parentElement;for(;Z&&Z!==C;){if(ge.has(Z))return!0;Z=Z.parentElement}return!1};if(e.capturedTimeline.getChildren)try{for(let ne of e.capturedTimeline.getChildren(!0))if(typeof ne.targets=="function")for(let Z of ne.targets())Z instanceof HTMLElement&&Z!==C&&(Z.hasAttribute("data-start")||xe(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",q),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(C instanceof HTMLElement)for(let ne of C.querySelectorAll("[id]"))ne instanceof HTMLElement&&ne!==C&&(ne.hasAttribute("data-start")||xe(ne)||K.has(ne)||ne.tagName==="SCRIPT"||ne.tagName==="STYLE"||ne.tagName==="LINK"||(K.add(ne),ne.setAttribute("data-start","0"),ne.setAttribute("data-duration",q),ne.setAttribute("data-hf-autostamped","1")))}for(let C of wt)ln.delete(C),yr(C);return!0};window.__hfForceTimelineRebind=()=>{$=!1,z()};let Y=()=>{let d=E();if(!(d instanceof HTMLElement))return;let m=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),w=window.getComputedStyle(d),C=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,R=m.width<=0||m.height<=0||d.clientWidth<=0||d.clientHeight<=0;!C||!R||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(m.width),rectHeight:Math.round(m.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:w.display,visibility:w.visibility,overflow:w.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Pe=()=>{e.tornDown||(l!=null&&window.cancelAnimationFrame(l),l=window.requestAnimationFrame(()=>{l=null,Y()}))},ve=()=>{i=d=>{let m=J(d.error??d.message).slice(0,N);if(!m)return;let h=B(m);Ce({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:m,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let m=J(d.reason).slice(0,N);if(!m)return;let h=B(m);Ce({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:m}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},At=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let w=h.tagName.toLowerCase(),C=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,R=w==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(R,{tagName:w,assetUrl:C,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${R}:${w}:${C??"unknown"}`)};h.addEventListener("error",b),p(()=>{h.removeEventListener("error",b)})}let m=document.fonts;m&&m.ready.then(()=>{if(e.tornDown)return;let h=Array.from(m).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&f("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(m).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},Ue=(d,m)=>{if(!d.timeline)return!1;let h=e.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,e.currentTime||0),w=e.isPlaying;e.capturedTimeline=d.timeline,typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);try{e.capturedTimeline.pause(),e.capturedTimeline.seek(b,!1),w&&e.capturedTimeline.play()}catch(C){L("runtime.init.site7",C)}return Ce({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:m,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},nt=null,br=!1,wt=new Set,ln=new WeakMap,un=()=>{e.tornDown||(nt!=null&&window.clearTimeout(nt),nt=window.setTimeout(()=>{if(e.tornDown)return;nt=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!e.capturedTimeline){z()&&(dt(),Te(!0));return}if(br)return;let h=H(e.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+A)&&Ue(d,"manual")&&(br=!0,Ce({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),dt(),Te(!0))},_))},nl=()=>{for(let d of wt)d.removeEventListener("loadedmetadata",un),d.removeEventListener("durationchange",un);wt.clear()},zn=()=>{if(e.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let m of d){if(wt.has(m))continue;wt.add(m);let h=Number.parseFloat(m.dataset.volume??"");Number.isFinite(h)&&(m.volume=Math.max(0,Math.min(1,h))),m.addEventListener("loadedmetadata",un),m.addEventListener("durationchange",un),m.preload!=="auto"&&(m.preload="auto"),m.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&m.load(),yr(m)}},yr=d=>{ln.has(d)||Zr(d,e.capturedTimeline,Q(e.capturedTimeline,0),ln)},jn=new WeakMap,Sr=d=>{let m=jn.get(d);if(m!==void 0)return m;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return jn.set(d,b),b},qn=new WeakMap,il=d=>{let m=qn.get(d);if(m!==void 0)return m;let h=d.querySelector("[data-start]")===null;return qn.set(d,h),h},rl=()=>{jn=new WeakMap,qn=new WeakMap},$n=new WeakMap,cn=new WeakSet,Le=()=>{let d=C=>{let R=C.closest("[data-composition-id]"),q=R?k(R,0):null,K=R?W(R,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:R,inheritedStart:q,inheritedDuration:K}},m=eo({shouldIncludeElement:C=>C.hasAttribute("data-start")||!!d(C).compositionRoot,resolveStartSeconds:C=>{let R=d(C);return j(C,R.inheritedStart??0)},resolveDurationSeconds:C=>{let R=d(C),q=j(C,R.inheritedStart??0),K=Number.parseFloat(C.dataset.playbackStart??C.dataset.mediaStart??"0")||0,ge=R.inheritedStart!=null&&R.inheritedDuration!=null&&R.inheritedDuration>0?Math.max(0,R.inheritedStart+R.inheritedDuration-q):null,xe=Number.isFinite(C.duration)&&C.duration>K?Math.max(0,C.duration-K):null,ne=Number.parseFloat(C.dataset.duration??""),Z=Number.isFinite(ne)&&ne>0?ne:null,ye=[xe,ge,Z].filter(ot=>ot!=null);return ye.length>0?Math.min(...ye):null}});for(let C of m.mediaClips){let R=ln.get(C.el);R&&(C.volumeKeyframes=R)}let h=e.mediaForceSyncNextTick;h&&(e.mediaForceSyncNextTick=!1),e.nativeMediaSyncDisabled||to({clips:m.mediaClips,timeSeconds:e.currentTime,playing:e.isPlaying,playbackRate:e.playbackRate,outputMuted:e.mediaOutputMuted||!e.webAudioMediaDisabled&&!e.nativeMediaSyncDisabled&&de.isActive(),userMuted:e.bridgeMuted,userVolume:e.bridgeVolume,forceSync:h,onElementVolume:(C,R)=>de.setElementVolume(C,R),isWebAudioOwned:C=>de.ownsElement(C),onAutoplayBlocked:()=>{e.mediaAutoplayBlockedPosted||(e.mediaAutoplayBlockedPosted=!0,Ce({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),w=E();for(let C of b){if(!(C instanceof HTMLElement))continue;if(C.hasAttribute("data-hidden")){cn.has(C)||($n.set(C,C.style.getPropertyValue("display")),cn.add(C)),C.style.display="none",(C instanceof HTMLVideoElement||C instanceof HTMLImageElement)&&n?.setSourceVisibility(C,!1);continue}if(cn.has(C)){let q=$n.get(C);q?C.style.display=q:C.style.removeProperty("display"),$n.delete(C),cn.delete(C)}let R=re(C,e.currentTime);if(R){let q=C.parentElement;for(;q&&q!==w;){if(q instanceof HTMLElement&&q.hasAttribute("data-start")&&!re(q,e.currentTime)){R=!1;break}q=q.parentElement}}C.style.visibility=R?"visible":"hidden",(C instanceof HTMLVideoElement||C instanceof HTMLImageElement)&&n?.setSourceVisibility(C,R),R?Sr(C)&&C.style.removeProperty("display"):Sr(C)&&il(C)&&(C.style.display="none")}},Te=d=>{let m=Math.max(0,Math.round((e.currentTime||0)*e.canonicalFps)),h=Date.now();(d||m!==e.bridgeLastPostedFrame||e.isPlaying!==e.bridgeLastPostedPlaying||e.bridgeMuted!==e.bridgeLastPostedMuted||h-e.bridgeLastPostedAt>=e.bridgeMaxPostIntervalMs)&&(e.bridgeLastPostedFrame=m,e.bridgeLastPostedPlaying=e.isPlaying,e.bridgeLastPostedMuted=e.bridgeMuted,e.bridgeLastPostedAt=h,Ce({source:"hf-preview",type:"state",frame:m,isPlaying:e.isPlaying,muted:e.bridgeMuted,playbackRate:e.playbackRate}))},Kn="",ol=()=>{let d="";for(let m of document.querySelectorAll("[data-start]"))d+=`${m.id}:${m.tagName}|`;return d},dt=()=>{v(),F(),T();let d=E();if(d){let b=M(d.getAttribute("data-width")),w=M(d.getAttribute("data-height")),C=b?parseInt(b,10):0,R=w?parseInt(w,10):0;C>0&&R>0&&Ce({source:"hf-preview",type:"stage-size",width:C,height:R})}z();let m=mo({canonicalFps:e.canonicalFps});window.__clipManifest=m;let h=ol();if(Kn!==h&&rl(),!window.__clipTree||Kn!==h){let b=window;window.__clipTree=ao({startResolver:Ke({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:m.durationInFrames/e.canonicalFps}),Kn=h}Ce(m),Pe()},Oe=(d,m=0)=>{for(let h of e.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){L("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:m,suppressEvents:!0})}catch(b){L("runtime.init.site9",b)}}},it=()=>{window.__renderReady=!1},Ct=null,Ft=!0,sl=()=>{let d=[];for(let m of e.deterministicAdapters){let h=m.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){L("runtime.init.adapterReady",b)}}return d},al=()=>{let d=sl();if(d.length===0)return Ct=null,Ft=!0,!0;let m=d.length===1?d[0]:Promise.all(d);return m!==Ct&&(Ct=m,Ft=!1,Promise.resolve(m).then(()=>{Ct===m&&(Ft=!0,it())},h=>{Ct===m&&(Ft=!0,L("runtime.init.adapterReady",h),it())})),Ft};if(Ee)Ki();else{let d={injectedStyles:e.injectedCompStyles,injectedScripts:e.injectedCompScripts,parseDimensionPx:M,onDiagnostic:({code:m,details:h})=>{Ce({source:"hf-preview",type:"diagnostic",code:m,details:h})}};Zs(d).then(()=>Qs(d)).finally(()=>{Ee=!0,zn(),At(),Ki(),it()})}let dn=no({postMessage:d=>Ce(d)});dn.installPickerApi();let Ve=_a();n=Ve,p(()=>{Ve.destroy(),n=null});let Jn=d=>{let m=Number(d);!Number.isFinite(m)||m<=0?e.playbackRate=1:e.playbackRate=Math.max(.1,Math.min(5,m)),e.mediaForceSyncNextTick=!0,e.capturedTimeline&&typeof e.capturedTimeline.timeScale=="function"&&e.capturedTimeline.timeScale(e.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=e.playbackRate}catch(w){L("runtime.init.site10",w)}},pe=oo({getTimeline:()=>e.capturedTimeline,setTimeline:d=>{e.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>e.isPlaying,setIsPlaying:d=>{e.isPlaying!==d&&(e.mediaForceSyncNextTick=!0),e.isPlaying=d},getPlaybackRate:()=>e.playbackRate,setPlaybackRate:Jn,getCanonicalFps:()=>e.canonicalFps,onSyncMedia:(d,m)=>{e.currentTime=Math.max(0,Number(d)||0),e.isPlaying!==m&&(e.mediaForceSyncNextTick=!0),e.isPlaying=m,Le()},onStatePost:Te,onDeterministicSeek:(d,m)=>{for(let h of e.deterministicAdapters)if(!(h.name==="gsap"&&e.capturedTimeline))try{h.seek({time:Number(d)||0,suppressEvents:m?.suppressEvents})}catch(b){L("runtime.init.site11",b)}},onDeterministicPause:()=>Oe("pause"),onDeterministicPlay:()=>Oe("play"),onRenderFrameSeek:()=>{Ve.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(e.capturedTimeline,0)});window.__player=x(pe),window.__playerReady=!0,Tr(Ce),st("composition_loaded",{duration:pe.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),e.controlBridgeHandler=Mr({onPlay:()=>{pe.play(),st("composition_played",{time:pe.getTime()})},onPause:()=>{pe.pause(),st("composition_paused",{time:pe.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let m of d)m instanceof HTMLMediaElement&&!m.paused&&m.pause()},onSeek:(d,m)=>{let h=Math.max(0,d)/e.canonicalFps;pe.seek(h),st("composition_seeked",{time:h})},onSetMuted:d=>{e.bridgeMuted=d;let m=d||e.mediaOutputMuted;de.setMuted(m);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=m||b.defaultMuted)},onSetVolume:d=>{e.bridgeVolume=d,de.setVolume(d);let m=document.querySelectorAll("video, audio");for(let h of m){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),w=Number.isFinite(b)?b:1;h.volume=w*d}},onSetMediaOutputMuted:d=>{e.mediaOutputMuted=d;let m=d||e.bridgeMuted;de.setMuted(m);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=m||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{e.nativeMediaSyncDisabled!==d&&(e.nativeMediaSyncDisabled=d,e.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{e.webAudioMediaDisabled!==d&&(e.webAudioMediaDisabled=d,e.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Jn(d),e.transportClock&&e.transportClock.setRate(e.playbackRate),_r()},onSetColorGrading:(d,m)=>{Ve.setGrading(d,m)},onSetColorGradingCompare:(d,m)=>{Ve.setCompare(d,m)},onTick:()=>{if(e.tornDown||!I.isPlaying())return;let d=I.now();if(e.currentTime=d,rt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),e.isPlaying=!1;let m=I.getDuration();Number.isFinite(m)&&(I.seek(m),e.currentTime=m,rt(m)),Oe("pause"),Le(),Te(!0)}},onEnablePickMode:()=>dn.enablePickMode(),onDisablePickMode:()=>dn.disablePickMode()}),e.deterministicAdapters=[Yr(),Ir({resolveStartSeconds:d=>k(d,0)}),Or(),Hr(),Wr(),Ur(),Vr(),zr(),jr(),qr(),$r(),Pr({getTimeline:()=>e.capturedTimeline})],Jr(),Xr(),window.__hfReseekGpu=d=>{let m=Math.max(0,Number(d)||0);window.__hfThreeTime=m,window.__hfTypegpuTime=m,Gr(m)},ve(),zn(),Oe("discover");let I=new On;e.transportClock=I;let de=new Bn,Xn=!1;de.init().then(d=>{Xn=d});let ll=()=>{let d=e.capturedTimeline,m=z();e.capturedTimeline&&(m||e.capturedTimeline!==d||!pe._timeline)&&(pe._timeline=e.capturedTimeline);let h=Q(e.capturedTimeline,0);if(h>0&&I.setDuration(h),Oe("discover",e.currentTime),!e.capturedTimeline){let b=window.__timelines??{},w=Object.keys(b).filter(C=>b[C]);if(w.length>0){let R=E()?.getAttribute("data-composition-id")??null;f("root_timeline_unbound_registry_present",{reason:R?"root data-composition-id has no matching key in window.__timelines":"root composition element has no data-composition-id attribute",rootCompositionId:R,registeredTimelineKeys:w},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(R?`Root data-composition-id is "${R}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${w.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${R??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,dt(),Te(!0)};if(it=()=>{if(!Ee||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Oe("discover",e.currentTime),!al()){window.__renderReady=!1;return}ll()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),it()};window.addEventListener("hf-timelines-built",d)}it(),Ee&&setTimeout(()=>{it()},0);let fn=0,Yn=!1,ul=(d,m,h,b)=>{try{let w=b?.suppressEvents===!0;d.pause(),typeof d.totalTime=="function"?d.totalTime(m,w):d.seek(m,w)}catch(w){L(h,w)}},cl=(d,m)=>{let h=window.__timelines??{},b=E()?.getAttribute("data-composition-id")??null;for(let[w,C]of Object.entries(h)){if(!C||w===b)continue;let R=document.querySelector(`[data-composition-id="${CSS.escape(w)}"]`);if(!R)continue;let q=k(R,0);if(!Number.isFinite(q))continue;let K=W(R,{includeAuthoredTimingAttrs:!0}),ge=H(C),xe=K!=null&&K>0?K:ge,ne=Math.max(0,xe!=null&&xe>0?Math.min(xe,d-q):d-q);ul(C,ne,"runtime.init.transport.childTimeline",m)}},dl=d=>{let m=window.__timelines??{};for(let h of Object.values(m))if(!(!h||h===d))try{h.play()}catch(b){L("runtime.init.activateSiblings",b)}},Er=d=>typeof d=="object"&&d!==null,_t=new WeakMap,fl=["onStart","onUpdate","onComplete","onReverseComplete","onRepeat"],Ar=(d,m)=>{let h=d[m];if(typeof h!="function")return null;try{let b=Number(h.call(d));return Number.isFinite(b)?b:null}catch(b){return L("runtime.init.gsapCallbackDuration",b),null}},ml=d=>{let m=_t.get(d);if(m!=null)return m;if(!("getChildren"in d)||typeof d.getChildren!="function")return!1;let h;try{h=d.getChildren(!0,!0,!0)}catch(b){return L("runtime.init.gsapCallbackChildren",b),_t.set(d,!1),!1}if(!Array.isArray(h))return _t.set(d,!1),!1;for(let b of h){if(!Er(b)||!Er(b.vars)||!fl.some(q=>typeof b.vars[q]=="function"))continue;let R=Ar(b,"totalDuration")??Ar(b,"duration");if(R!=null&&R<=1e-6)return _t.set(d,!0),!0}return _t.set(d,!1),!1},rt=(d,m)=>{let h=e.capturedTimeline,b=m?.suppressEvents===!0;if(h){m?.activateChildren&&dl(h);let w=h,C=d;if(typeof w.totalDuration=="function")try{let R=Number(w.totalDuration());Number.isFinite(R)&&R>0&&d>R&&(C=R)}catch(R){L("runtime.init.transport.clampDuration",R)}try{typeof h.totalTime=="function"?(h.totalTime(C,b),!b&&!ml(h)&&(h.totalTime(C+.001,!0),h.totalTime(C,!0))):h.seek(C,b)}catch(R){L("runtime.init.transport.seek",R)}}else cl(d,m);for(let w of e.deterministicAdapters)if(!(w.name==="gsap"&&h))try{w.seek({time:d,suppressEvents:b})}catch(C){L("runtime.init.transport.adapter",C)}},pl=()=>{try{return document.querySelector(`[${Ma}]`)!=null}catch{return!1}},wr=()=>{if(!(e.tornDown||Yn)){Yn=!0;try{if(e.transportRafId=window.requestAnimationFrame(wr),fn+=1,fn%60===0&&!(I.isPlaying()&&e.capturedTimeline!=null&&I.now()<g)){let h=e.capturedTimeline;if(z()){e.capturedTimeline&&!pe._timeline&&(pe._timeline=e.capturedTimeline),e.capturedTimeline&&e.capturedTimeline!==h&&e.capturedTimeline.pause();let b=Q(e.capturedTimeline,0);b>0&&I.setDuration(b),dt()}}if(fn%20===0&&dt(),fn%30===0&&zn(),e.capturedTimeline){let m=Q(e.capturedTimeline,0);m>0&&(!I.isPlaying()||m>=I.getDuration())&&I.setDuration(m)}if(I.isPlaying()&&!e.mediaOutputMuted)if(!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&de.isActive()&&de.context){let m=de.getTime();m>=0&&I.attachAudioSource({currentTimeSeconds:m})}else{let m=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of m){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let w=Number.parseFloat(b.dataset.start??""),C=Number.parseFloat(b.dataset.duration??""),R=Number.isFinite(C)&&C>0?w+C:1/0,q=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(w)&&e.currentTime>=w&&e.currentTime<=R){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:e.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:w,mediaStart:q}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(e.currentTime=d,(I.isPlaying()||!pl())&&rt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),e.isPlaying=!1;let m=I.getDuration();Number.isFinite(m)&&(I.seek(m),e.currentTime=m,rt(m)),Oe("pause"),Le(),Te(!0);return}I.isPlaying()&&Le(),Te(!1)}finally{Yn=!1}}},Cr=d=>{let m=document.querySelectorAll("video, audio");for(let h of m){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let w=Number.parseFloat(h.dataset.duration??""),C=Number.isFinite(w)&&w>0?b+w:1/0;if(d<b||d>=C)continue;let R=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,q=d-b+R;if(q>=0)try{h.currentTime=q}catch{}}},Fr=()=>{if(e.nativeMediaSyncDisabled||e.webAudioMediaDisabled)return;let d=de.startGeneration(),m=document.querySelectorAll("audio[data-start]");for(let h of m){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let w=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,C=Number.parseFloat(h.dataset.volume??""),R=Number.isFinite(C)?C:1,q=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(q)&&q>0?q:Number.POSITIVE_INFINITY,ge=h.closest("[data-composition-id]");if(ge){let xe=k(ge,0),ne=W(ge,{includeAuthoredTimingAttrs:!0});ne!=null&&ne>0&&(K=Math.min(K,Math.max(0,xe+ne-b)))}de.decodeAudioElement(h).then(xe=>{!xe||!I.isPlaying()||de.schedulePlayback(h,xe,b,w,I.now(),R*e.bridgeVolume,d,e.playbackRate,K)})}},_r=()=>{de.setRate(e.playbackRate)&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&Xn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),Fr())};if(pe.play=()=>{let d=e.capturedTimeline;if(I.isPlaying())return;let m=Q(d,0);if(m>0)I.setDuration(m),I.reachedEnd()&&(I.seek(0),e.currentTime=0,rt(0));else{let h=E(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(e.isPlaying=!0,e.mediaForceSyncNextTick=!0,Cr(I.now()),Xn&&!e.nativeMediaSyncDisabled&&!e.webAudioMediaDisabled&&Fr(),Oe("play"),Le(),Ve.redraw(),Te(!0))},pe.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),e.isPlaying=!1,e.currentTime=I.now(),e.mediaForceSyncNextTick=!0,Cr(e.currentTime);let d=e.capturedTimeline;d&&d.pause(),Oe("pause"),Le(),Ve.redraw(),Te(!0)},pe.seek=d=>{let m=mt(Math.max(0,Number(d)||0),e.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(m),e.currentTime=I.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0;let b=e.capturedTimeline;b&&b.pause(),rt(e.currentTime),Oe("pause"),Le(),Ve.redraw(),Te(!0)},pe.renderSeek=(d,m)=>{let h=mt(Math.max(0,Number(d)||0),e.canonicalFps);I.isPlaying()&&I.pause(),I.seek(h),e.currentTime=I.now(),e.isPlaying=!1,e.mediaForceSyncNextTick=!0,rt(e.currentTime,{activateChildren:!0,suppressEvents:m?.suppressEvents}),Le(),Ve.redraw(),Te(!0)},pe.getTime=()=>I.now(),pe.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},pe.isPlaying=()=>I.isPlaying(),pe.setPlaybackRate=d=>{Jn(d),I.setRate(e.playbackRate),_r()},e.capturedTimeline){let d=Q(e.capturedTimeline,0);d>0&&I.setDuration(d),e.capturedTimeline.pause()}let vr=window.__player;if(vr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let m of d)Object.defineProperty(vr,m,{get:()=>pe[m],set:h=>{pe[m]=h},configurable:!0})}e.transportRafId=window.requestAnimationFrame(wr),dt(),Te(!0);let Qn=()=>{if(!e.tornDown){e.tornDown=!0,e.transportRafId!=null&&(window.cancelAnimationFrame(e.transportRafId),e.transportRafId=null),e.transportClock=null,de.destroy(),nt!=null&&(window.clearTimeout(nt),nt=null),l!=null&&(window.cancelAnimationFrame(l),l=null),nl(),e.controlBridgeHandler&&(window.removeEventListener("message",e.controlBridgeHandler),e.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),e.beforeUnloadHandler&&(window.removeEventListener("beforeunload",e.beforeUnloadHandler),e.beforeUnloadHandler=null),dn.disablePickMode();for(let d of e.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(m){L("runtime.init.site12",m)}e.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(m){L("runtime.init.site13",m)}for(let d of e.injectedCompStyles)try{d.remove()}catch(m){L("runtime.init.site14",m)}e.injectedCompStyles=[];for(let d of e.injectedCompScripts)try{d.remove()}catch(m){L("runtime.init.site15",m)}e.injectedCompScripts=[],e.capturedTimeline=null,window.__hfRuntimeTeardown===Qn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Qn,e.beforeUnloadHandler=Qn,window.addEventListener("beforeunload",e.beforeUnloadHandler)}var Na=["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"],cr=[[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 lf(e){if(e<=255)return Na[e];let t=0,n=cr.length-1;for(;t<=n;){let i=t+n>>1,r=cr[i];if(e<r[0]){n=i-1;continue}if(e>r[1]){t=i+1;continue}return r[2]}return"L"}function uf(e){let t=e.length;if(t===0)return null;let n=new Array(t),i=!1;for(let u=0;u<t;){let c=e.charCodeAt(u),p=c,f=1;if(c>=55296&&c<=56319&&u+1<t){let S=e.charCodeAt(u+1);S>=56320&&S<=57343&&(p=(c-55296<<10)+(S-56320)+65536,f=2)}let x=lf(p);(x==="R"||x==="AL"||x==="AN")&&(i=!0);for(let S=0;S<f;S++)n[u+S]=x;u+=f}if(!i)return null;let r=0;for(let u=0;u<t;u++){let c=n[u];if(c==="L"){r=0;break}if(c==="R"||c==="AL"){r=1;break}}let o=new Int8Array(t);for(let u=0;u<t;u++)o[u]=r;let s=r&1?"R":"L",l=s,a=l;for(let u=0;u<t;u++)n[u]==="NSM"?n[u]=a:a=n[u];a=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=a==="AL"?"AN":"EN":(c==="R"||c==="L"||c==="AL")&&(a=c)}for(let u=0;u<t;u++)n[u]==="AL"&&(n[u]="R");for(let u=1;u<t-1;u++)n[u]==="ES"&&n[u-1]==="EN"&&n[u+1]==="EN"&&(n[u]="EN"),n[u]==="CS"&&(n[u-1]==="EN"||n[u-1]==="AN")&&n[u+1]===n[u-1]&&(n[u]=n[u-1]);for(let u=0;u<t;u++){if(n[u]!=="EN")continue;let c;for(c=u-1;c>=0&&n[c]==="ET";c--)n[c]="EN";for(c=u+1;c<t&&n[c]==="ET";c++)n[c]="EN"}for(let u=0;u<t;u++){let c=n[u];(c==="WS"||c==="ES"||c==="ET"||c==="CS")&&(n[u]="ON")}a=l;for(let u=0;u<t;u++){let c=n[u];c==="EN"?n[u]=a==="L"?"L":"EN":(c==="R"||c==="L")&&(a=c)}for(let u=0;u<t;u++){if(n[u]!=="ON")continue;let c=u+1;for(;c<t&&n[c]==="ON";)c++;let p=u>0?n[u-1]:l,f=c<t?n[c]:l,x=p!=="L"?"R":"L";if(x===(f!=="L"?"R":"L"))for(let y=u;y<c;y++)n[y]=x;u=c-1}for(let u=0;u<t;u++)n[u]==="ON"&&(n[u]=s);for(let u=0;u<t;u++){let c=n[u];(o[u]&1)===0?c==="R"?o[u]++:(c==="AN"||c==="EN")&&(o[u]+=2):(c==="L"||c==="AN"||c==="EN")&&o[u]++}return o}function La(e,t){let n=uf(e);if(n===null)return null;let i=new Int8Array(t.length);for(let r=0;r<t.length;r++)i[r]=n[t[r]];return i}var cf=/[ \\t\\n\\r\\f]+/g,df=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ff(e){let t=e??"normal";return t==="pre-wrap"?{mode:t,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:t,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function mf(e){if(!df.test(e))return e;let t=e.replace(cf," ");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 pf(e){return/[\\r\\f]/.test(e)?e.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):e.replace(/\\r\\n/g,`\n`)}var dr=null,hf;function gf(){return dr===null&&(dr=new Intl.Segmenter(hf,{granularity:"word"})),dr}var xf=/\\p{Script=Arabic}/u,Hn=/\\p{M}/u,Ha=/\\p{Nd}/u;function Ra(e){return xf.test(e)}function ka(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 Ie(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 i=e.charCodeAt(t+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(ka(r))return!0;t++;continue}}if(ka(n))return!0}}return!1}function bf(e){let t=Un(e);return t!==null&&(Wn.has(t)||et.has(t))}var yf=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function Sf(e){return Ie(e)}function Ef(e){let t=Un(e);return t!==null&&yf.has(t)}function Gn(e){return!bf(e)&&!Ef(e)}var Wn=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"]),an=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),mr=new Set(["\'","\\u2019"]),et=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Af=new Set([":",".","\\u060C","\\u061B"]),wf=new Set(["\\u104F"]),Cf=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ff(e){if(pr(e))return!0;let t=!1;for(let n of e){if(et.has(n)){t=!0;continue}if(!(t&&Hn.test(n)))return!1}return t}function _f(e){for(let t of e)if(!Wn.has(t)&&!et.has(t))return!1;return e.length>0}function vf(e){if(pr(e))return!0;for(let t of e)if(!an.has(t)&&!mr.has(t)&&!Hn.test(t))return!1;return e.length>0}function pr(e){let t=!1;for(let n of e)if(!(n==="\\\\"||Hn.test(n))){if(an.has(n)||et.has(n)||mr.has(n)){t=!0;continue}return!1}return t}function Ga(e,t){let n=t-1;if(n<=0)return Math.max(n,0);let i=e.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=e.charCodeAt(r);return o>=55296&&o<=56319?r:n}function Un(e){if(e.length===0)return null;let t=Ga(e,e.length);return e.slice(t)}function Mf(e){let t=Array.from(e),n=t.length;for(;n>0;){let i=t[n-1];if(Hn.test(i)){n--;continue}if(an.has(i)||mr.has(i)){n--;continue}break}return n<=0||n===t.length?null:{head:t.slice(0,n).join(""),tail:t.slice(n).join("")}}function Tf(e,t,n){return n==="text"&&!t&&e.length===1&&e!=="-"&&e!=="\\u2014"?e:null}function Da(e,t,n,i){let r=t[i],o=e[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let l=r.repeat(s);return e[i]=l,l}function Ia(e,t){return e&&t!==null&&Af.has(t)}function Nf(e){let t=Un(e);return t!==null&&wf.has(t)}function Lf(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 Vn(e){let t=e.length;for(;t>0;){let n=Ga(e,t),i=e.slice(n,t);if(Cf.has(i))return!0;if(!et.has(i))return!1;t=n}return!1}function Rf(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 kf=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Ne(e){return e.length===1?e[0]:e.join("")}function Df(e,t){let n=[];for(let i=e.length-1;i>=0;i--)n.push(e[i]);return n.push(t),Ne(n)}function If(e,t,n,i){if(!kf.test(e))return[{text:e,isWordLike:t,kind:"text",start:n}];let r=[],o=null,s=[],l=n,a=!1,u=0;for(let c of e){let p=Rf(c,i),f=p==="text"&&t;if(o!==null&&p===o&&f===a){s.push(c),u+=c.length;continue}o!==null&&r.push({text:Ne(s),isWordLike:a,kind:o,start:l}),o=p,s=[c],l=n+u,a=f,u+=c.length}return o!==null&&r.push({text:Ne(s),isWordLike:a,kind:o,start:l}),r}function fr(e){return e==="space"||e==="preserved-space"||e==="zero-width-break"||e==="hard-break"}var Pf=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Of(e,t){let n=e.texts[t];return n.startsWith("www.")?!0:Pf.test(n)&&t+1<e.len&&e.kinds[t+1]==="text"&&e.texts[t+1]==="//"}function Bf(e){return e.includes("?")&&(e.includes("://")||e.startsWith("www."))}function Hf(e){let t=e.texts.slice(),n=e.isWordLike.slice(),i=e.kinds.slice(),r=e.starts.slice();for(let s=0;s<e.len;s++){if(i[s]!=="text"||!Of(e,s))continue;let l=[t[s]],a=s+1;for(;a<e.len&&!fr(i[a]);){l.push(t[a]),n[s]=!0;let u=t[a].includes("?");if(i[a]="text",t[a]="",a++,u)break}t[s]=Ne(l)}let o=0;for(let s=0;s<t.length;s++){let l=t[s];l.length!==0&&(o!==s&&(t[o]=l,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return t.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:t,isWordLike:n,kinds:i,starts:r}}function Gf(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o];if(t.push(s),n.push(e.isWordLike[o]),i.push(e.kinds[o]),r.push(e.starts[o]),!Bf(s))continue;let l=o+1;if(l>=e.len||fr(e.kinds[l]))continue;let a=[],u=e.starts[l],c=l;for(;c<e.len&&!fr(e.kinds[c]);)a.push(e.texts[c]),c++;a.length>0&&(t.push(Ne(a)),n.push(!0),i.push("text"),r.push(u),o=c-1)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}var Wf=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Pa=/^[A-Za-z0-9_]+[,:;]*$/,Oa=/[,:;]+$/;function Wa(e){for(let t of e)if(Ha.test(t))return!0;return!1}function sn(e){if(e.length===0)return!1;for(let t of e)if(!(Ha.test(t)||Wf.has(t)))return!1;return!0}function Uf(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o],l=e.kinds[o];if(l==="text"&&sn(s)&&Wa(s)){let a=[s],u=o+1;for(;u<e.len&&e.kinds[u]==="text"&&sn(e.texts[u]);)a.push(e.texts[u]),u++;t.push(Ne(a)),n.push(!0),i.push("text"),r.push(e.starts[o]),o=u-1;continue}t.push(s),n.push(e.isWordLike[o]),i.push(l),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Vf(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o],l=e.kinds[o],a=e.isWordLike[o];if(l==="text"&&a&&Pa.test(s)){let u=[s],c=Oa.test(s),p=o+1;for(;c&&p<e.len&&e.kinds[p]==="text"&&e.isWordLike[p]&&Pa.test(e.texts[p]);){let f=e.texts[p];u.push(f),c=Oa.test(f),p++}t.push(Ne(u)),n.push(!0),i.push("text"),r.push(e.starts[o]),o=p-1;continue}t.push(s),n.push(a),i.push(l),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function zf(e){let t=[],n=[],i=[],r=[];for(let o=0;o<e.len;o++){let s=e.texts[o];if(e.kinds[o]==="text"&&s.includes("-")){let l=s.split("-"),a=l.length>1;for(let u=0;u<l.length;u++){let c=l[u];if(!a)break;(c.length===0||!Wa(c)||!sn(c))&&(a=!1)}if(a){let u=0;for(let c=0;c<l.length;c++){let p=l[c],f=c<l.length-1?`${p}-`:p;t.push(f),n.push(!0),i.push("text"),r.push(e.starts[o]+u),u+=f.length}continue}}t.push(s),n.push(e.isWordLike[o]),i.push(e.kinds[o]),r.push(e.starts[o])}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function jf(e){let t=[],n=[],i=[],r=[],o=0;for(;o<e.len;){let s=[e.texts[o]],l=e.isWordLike[o],a=e.kinds[o],u=e.starts[o];if(a==="glue"){let c=[s[0]],p=u;for(o++;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let f=Ne(c);if(o<e.len&&e.kinds[o]==="text")s[0]=f,s.push(e.texts[o]),l=e.isWordLike[o],a="text",u=p,o++;else{t.push(f),n.push(!1),i.push("glue"),r.push(p);continue}}else o++;if(a==="text")for(;o<e.len&&e.kinds[o]==="glue";){let c=[];for(;o<e.len&&e.kinds[o]==="glue";)c.push(e.texts[o]),o++;let p=Ne(c);if(o<e.len&&e.kinds[o]==="text"){s.push(p,e.texts[o]),l=l||e.isWordLike[o],o++;continue}s.push(p)}t.push(Ne(s)),n.push(l),i.push(a),r.push(u)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function qf(e){let t=e.texts.slice(),n=e.isWordLike.slice(),i=e.kinds.slice(),r=e.starts.slice();for(let o=0;o<t.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Ie(t[o])||!Ie(t[o+1]))continue;let s=Mf(t[o]);s!==null&&(t[o]=s.head,t[o+1]=s.tail+t[o+1],r[o+1]=r[o]+s.head.length)}return{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ba(e,t,n){let i=gf(),r=0,o=[],s=[],l=[],a=[],u=[],c=[],p=[],f=[],x=[],S=[],y=[],g=[];for(let M of i.segment(e))for(let E of If(M.segment,M.isWordLike??!1,M.index,n)){let se=function(){c[P]!==null&&(s[P]=[Da(o,c,p,P)],c[P]=null),s[P].push(E.text),l[P]=l[P]||E.isWordLike,f[P]=f[P]||T,x[P]=x[P]||k,S[P]=j,y[P]=re,g[P]=Ia(x[P],W)},F=E.kind==="text",v=Tf(E.text,E.isWordLike,E.kind),T=Ie(E.text),k=Ra(E.text),W=Un(E.text),j=Vn(E.text),re=Nf(E.text),P=r-1;t.carryCJKAfterClosingQuote&&F&&r>0&&a[P]==="text"&&T&&f[P]&&S[P]||F&&r>0&&a[P]==="text"&&_f(E.text)&&f[P]||F&&r>0&&a[P]==="text"&&y[P]?se():F&&r>0&&a[P]==="text"&&E.isWordLike&&k&&g[P]?(se(),l[P]=!0):v!==null&&r>0&&a[P]==="text"&&c[P]===v?p[P]=(p[P]??1)+1:F&&!E.isWordLike&&r>0&&a[P]==="text"&&(Ff(E.text)||E.text==="-"&&l[P])?se():(o[r]=E.text,s[r]=[E.text],l[r]=E.isWordLike,a[r]=E.kind,u[r]=E.start,c[r]=v,p[r]=v===null?0:1,f[r]=T,x[r]=k,S[r]=j,y[r]=re,g[r]=Ia(k,W),r++)}for(let M=0;M<r;M++){if(c[M]!==null){o[M]=Da(o,c,p,M);continue}o[M]=Ne(s[M])}for(let M=1;M<r;M++)a[M]==="text"&&!l[M]&&pr(o[M])&&a[M-1]==="text"&&(o[M-1]+=o[M],l[M-1]=l[M-1]||l[M],o[M]="");let A=Array.from({length:r},()=>null),_=-1;for(let M=r-1;M>=0;M--){let E=o[M];if(E.length!==0){if(a[M]==="text"&&!l[M]&&vf(E)&&_>=0&&a[_]==="text"){let F=A[_]??[];F.push(E),A[_]=F,u[_]=u[M],o[M]="";continue}_=M}}for(let M=0;M<r;M++){let E=A[M];E!=null&&(o[M]=Df(E,o[M]))}let N=0;for(let M=0;M<r;M++){let E=o[M];E.length!==0&&(N!==M&&(o[N]=E,l[N]=l[M],a[N]=a[M],u[N]=u[M]),N++)}o.length=N,l.length=N,a.length=N,u.length=N;let J=jf({len:N,texts:o,isWordLike:l,kinds:a,starts:u}),B=qf(Vf(zf(Uf(Gf(Hf(J))))));for(let M=0;M<B.len-1;M++){let E=Lf(B.texts[M]);E!==null&&(B.kinds[M]!=="space"&&B.kinds[M]!=="preserved-space"||B.kinds[M+1]!=="text"||!Ra(B.texts[M+1])||(B.texts[M]=E.space,B.isWordLike[M]=!1,B.kinds[M]=B.kinds[M]==="preserved-space"?"preserved-space":"space",B.texts[M+1]=E.marks+B.texts[M+1],B.starts[M+1]=B.starts[M]+E.space.length))}return B}function $f(e,t){if(e.len===0)return[];if(!t.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}];let n=[],i=0;for(let r=0;r<e.len;r++)e.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<e.len&&n.push({startSegmentIndex:i,endSegmentIndex:e.len,consumedEndSegmentIndex:e.len}),n}function Kf(e){if(e.len<=1)return e;let t=[],n=[],i=[],r=[],o=null,s=!1,l=0,a=!1,u=!1;function c(){o!==null&&(t.push(Ne(o)),n.push(s),i.push("text"),r.push(l),o=null)}for(let p=0;p<e.len;p++){let f=e.texts[p],x=e.kinds[p],S=e.isWordLike[p],y=e.starts[p];if(x==="text"){let g=Sf(f),A=Gn(f);if(o!==null&&a&&u){o.push(f),s=s||S,a=a||g,u=A;continue}c(),o=[f],s=S,l=y,a=g,u=A;continue}c(),t.push(f),n.push(S),i.push(x),r.push(y)}return c(),{len:t.length,texts:t,isWordLike:n,kinds:i,starts:r}}function Ua(e,t,n="normal",i="normal"){let r=ff(n),o=r.mode==="pre-wrap"?pf(e):mf(e);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?Kf(Ba(o,t,r)):Ba(o,t,r);return{normalized:o,chunks:$f(s,r),...s}}var yt=null,Va=new Map,St=null,Jf=96,Xf=/\\p{Emoji_Presentation}/u,Yf=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,hr=null,za=new Map;function gr(){if(yt!==null)return yt;if(typeof OffscreenCanvas<"u")return yt=new OffscreenCanvas(1,1).getContext("2d"),yt;if(typeof document<"u")return yt=document.createElement("canvas").getContext("2d"),yt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Qf(e){let t=Va.get(e);return t||(t=new Map,Va.set(e,t)),t}function qe(e,t){let n=t.get(e);return n===void 0&&(n={width:gr().measureText(e).width,containsCJK:Ie(e)},t.set(e,n)),n}function Et(){if(St!==null)return St;if(typeof navigator>"u")return St={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},St;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/"),i=e.includes("Chrome/")||e.includes("Chromium/")||e.includes("CriOS/")||e.includes("Edg/");return St={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},St}function Zf(e){let t=e.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return t?parseFloat(t[1]):16}function ja(){return hr===null&&(hr=new Intl.Segmenter(void 0,{granularity:"grapheme"})),hr}function em(e){return Xf.test(e)||e.includes("\\uFE0F")}function qa(e){return Yf.test(e)}function tm(e,t){let n=za.get(e);if(n!==void 0)return n;let i=gr();i.font=e;let r=i.measureText("\\u{1F600}").width;if(n=0,r>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 s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return za.set(e,n),n}function nm(e){let t=0,n=ja();for(let i of n.segment(e))em(i.segment)&&t++;return t}function im(e,t){return t.emojiCount===void 0&&(t.emojiCount=nm(e)),t.emojiCount}function tt(e,t,n){return n===0?t.width:t.width-im(e,t)*n}function $a(e,t,n,i,r){if(t.breakableFitAdvances!==void 0)return t.breakableFitAdvances;let o=ja(),s=[];for(let c of o.segment(e))s.push(c.segment);if(s.length<=1)return t.breakableFitAdvances=null,t.breakableFitAdvances;if(r==="sum-graphemes"){let c=[];for(let p of s){let f=qe(p,n);c.push(tt(p,f,i))}return t.breakableFitAdvances=c,t.breakableFitAdvances}if(r==="pair-context"||s.length>Jf){let c=[],p=null,f=0;for(let x of s){let S=qe(x,n),y=tt(x,S,i);if(p===null)c.push(y);else{let g=p+x,A=qe(g,n);c.push(tt(g,A,i)-f)}p=x,f=y}return t.breakableFitAdvances=c,t.breakableFitAdvances}let l=[],a="",u=0;for(let c of s){a+=c;let p=qe(a,n),f=tt(a,p,i);l.push(f-u),u=f}return t.breakableFitAdvances=l,t.breakableFitAdvances}function Ka(e,t){let n=gr();n.font=e;let i=Qf(e),r=Zf(e),o=t?tm(e,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function rm(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 om(e,t){if(t<=0)return 0;let n=e%t;return Math.abs(n)<=1e-6?t:t-n}function sm(e,t,n,i,r){let o=0,s=t;for(;o<e.length;){let l=s+e[o];if((o+1<e.length?l+r:l)>n+i)break;s=l,o++}return{fitCount:o,fittedWidth:s}}function Ja(e,t){return e.simpleLineWalkFastPath?Xa(e,t):Ya(e,t)}function Xa(e,t,n){let{widths:i,kinds:r,breakableFitAdvances:o}=e;if(i.length===0)return 0;let l=Et().lineFitEpsilon,a=t+l,u=0,c=0,p=!1,f=0,x=0,S=0,y=0,g=-1,A=0;function _(){g=-1,A=0}function N(v=S,T=y,k=c){u++,n?.({startSegmentIndex:f,startGraphemeIndex:x,endSegmentIndex:v,endGraphemeIndex:T,width:k}),c=0,p=!1,_()}function J(v,T){p=!0,f=v,x=0,S=v+1,y=0,c=T}function B(v,T,k){p=!0,f=v,x=T,S=v,y=T+1,c=k}function M(v,T){if(!p){J(v,T);return}c+=T,S=v+1,y=0}function E(v,T){let k=o[v];for(let W=T;W<k.length;W++){let j=k[W];p?c+j>a?(N(),B(v,W,j)):(c+=j,S=v,y=W+1):B(v,W,j)}p&&S===v&&y===k.length&&(S=v+1,y=0)}let F=0;for(;F<i.length&&!(!p&&(F=rm(e,F),F>=i.length));){let v=i[F],T=r[F],k=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!p){v>t&&o[F]!==null?E(F,0):J(F,v),k&&(g=F+1,A=c-v),F++;continue}if(c+v>a){if(k){M(F,v),N(F+1,0,c-v),F++;continue}if(g>=0){if(S>g||S===g&&y>0){N();continue}N(g,0,A);continue}if(v>t&&o[F]!==null){N(),E(F,0),F++;continue}N();continue}M(F,v),k&&(g=F+1,A=c-v),F++}return p&&N(),u}function Ya(e,t,n){if(e.simpleLineWalkFastPath)return Xa(e,t,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:a,tabStopAdvance:u,chunks:c}=e;if(i.length===0||c.length===0)return 0;let p=Et(),f=p.lineFitEpsilon,x=t+f,S=0,y=0,g=!1,A=0,_=0,N=0,J=0,B=-1,M=0,E=0,F=null;function v(){B=-1,M=0,E=0,F=null}function T(H=N,U=J,V=y){S++,n?.({startSegmentIndex:A,startGraphemeIndex:_,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,g=!1,v()}function k(H,U){g=!0,A=H,_=0,N=H+1,J=0,y=U}function W(H,U,V){g=!0,A=H,_=U,N=H,J=U+1,y=V}function j(H,U){if(!g){k(H,U);return}y+=U,N=H+1,J=0}function re(H,U,V,oe){if(!U)return;let _e=H==="tab"?0:r[V],O=H==="tab"?oe:o[V];B=V+1,M=y-oe+_e,E=y-oe+O,F=H}function P(H,U){let V=l[H];for(let oe=U;oe<V.length;oe++){let _e=V[oe];g?y+_e>x?(T(),W(H,oe,_e)):(y+=_e,N=H,J=oe+1):W(H,oe,_e)}g&&N===H&&J===V.length&&(N=H+1,J=0)}function se(H){if(F!=="soft-hyphen")return!1;let U=l[H];if(U==null)return!1;let{fitCount:V,fittedWidth:oe}=sm(U,y,t,f,a);return V===0?!1:(y=oe,N=H,J=V,v(),V===U.length?(N=H+1,J=0,!0):(T(H,V,oe+a),P(H,V),!0))}function Ee(H){S++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),v()}for(let H=0;H<c.length;H++){let U=c[H];if(U.startSegmentIndex===U.endSegmentIndex){Ee(U);continue}g=!1,y=0,A=U.startSegmentIndex,_=0,N=U.startSegmentIndex,J=0,v();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let oe=s[V],_e=oe==="space"||oe==="preserved-space"||oe==="tab"||oe==="zero-width-break"||oe==="soft-hyphen",O=oe==="tab"?om(y,u):i[V];if(oe==="soft-hyphen"){g&&(N=V+1,J=0,B=V+1,M=y+a,E=y+a,F=oe),V++;continue}if(!g){O>t&&l[V]!==null?P(V,0):k(V,O),re(oe,_e,V,O),V++;continue}if(y+O>x){let G=y+(oe==="tab"?0:r[V]),Q=y+(oe==="tab"?O:o[V]);if(F==="soft-hyphen"&&p.preferEarlySoftHyphenBreak&&M<=x){T(B,0,E);continue}if(F==="soft-hyphen"&&se(V)){V++;continue}if(_e&&G<=x){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&M<=x){if(N>B||N===B&&J>0){T();continue}let ae=B;T(ae,0,E),V=ae;continue}if(O>t&&l[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),re(oe,_e,V,O),V++}if(g){let oe=B===U.consumedEndSegmentIndex?E:y;T(U.consumedEndSegmentIndex,0,oe)}}return S}var xr=null;function am(){return xr===null&&(xr=new Intl.Segmenter(void 0,{granularity:"grapheme"})),xr}function lm(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 um(e,t){let n=[],i=[],r=0,o=!1,s=!1,l=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,l=!1)}function u(p,f,x){i=[p],r=f,o=x,s=Vn(p),l=an.has(p)}function c(p,f){i.push(p),o=o||f;let x=Vn(p);p.length===1&&et.has(p)?s=s||x:s=x,l=!1}for(let p of am().segment(e)){let f=p.segment,x=Ie(f);if(i.length===0){u(f,p.index,x);continue}if(l||Wn.has(f)||et.has(f)||t.carryCJKAfterClosingQuote&&x&&s){c(f,x);continue}if(!o&&!x){c(f,x);continue}a(),u(f,p.index,x)}return a(),n}function cm(e){if(e.length<=1)return e;let t=[],n=[e[0].text],i=e[0].start,r=Ie(e[0].text),o=Gn(e[0].text);function s(){t.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let l=1;l<e.length;l++){let a=e[l],u=Ie(a.text),c=Gn(a.text);if(r&&o){n.push(a.text),r=r||u,o=c;continue}s(),n=[a.text],i=a.start,r=u,o=c}return s(),t}function dm(e,t,n,i){let r=Et(),{cache:o,emojiCorrection:s}=Ka(t,qa(e.normalized)),l=tt("-",qe("-",o),s),u=tt(" ",qe(" ",o),s)*8;if(e.len===0)return lm(n);let c=[],p=[],f=[],x=[],S=e.chunks.length<=1,y=n?[]:null,g=[],A=n?[]:null,_=Array.from({length:e.len});function N(E,F,v,T,k,W,j){k!=="text"&&k!=="space"&&k!=="zero-width-break"&&(S=!1),c.push(F),p.push(v),f.push(T),x.push(k),y?.push(W),g.push(j),A!==null&&A.push(E)}function J(E,F,v,T,k){let W=qe(E,o),j=tt(E,W,s),re=F==="space"||F==="preserved-space"||F==="zero-width-break"?0:j,P=F==="space"||F==="zero-width-break"?0:j;if(k&&T&&E.length>1){let se="sum-graphemes";sn(E)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Ee=$a(E,W,o,s,se);N(E,j,re,P,F,v,Ee);return}N(E,j,re,P,F,v,null)}for(let E=0;E<e.len;E++){_[E]=c.length;let F=e.texts[E],v=e.isWordLike[E],T=e.kinds[E],k=e.starts[E];if(T==="soft-hyphen"){N(F,0,l,l,T,k,null);continue}if(T==="hard-break"){N(F,0,0,0,T,k,null);continue}if(T==="tab"){N(F,0,0,0,T,k,null);continue}let W=qe(F,o);if(T==="text"&&W.containsCJK){let j=um(F,r),re=i==="keep-all"?cm(j):j;for(let P=0;P<re.length;P++){let se=re[P];J(se.text,"text",k+se.start,v,i==="keep-all"||!Ie(se.text))}continue}J(F,T,k,v,!0)}let B=fm(e.chunks,_,c.length),M=y===null?null:La(e.normalized,y);return A!==null?{widths:c,lineEndFitAdvances:p,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:S,segLevels:M,breakableFitAdvances:g,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:B,segments:A}:{widths:c,lineEndFitAdvances:p,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:S,segLevels:M,breakableFitAdvances:g,discretionaryHyphenWidth:l,tabStopAdvance:u,chunks:B}}function fm(e,t,n){let i=[];for(let r=0;r<e.length;r++){let o=e[r],s=o.startSegmentIndex<t.length?t[o.startSegmentIndex]:n,l=o.endSegmentIndex<t.length?t[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<t.length?t[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:l,consumedEndSegmentIndex:a})}return i}function mm(e,t,n,i){let r=i?.wordBreak??"normal",o=Ua(e,Et(),i?.whiteSpace,r);return dm(o,t,n,r)}function Qa(e,t,n){return mm(e,t,!1,n)}function Za(e,t,n){let i=Ja(e,t);return{lineCount:i,height:i*n}}var pm={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function el(e,t){let n={...pm,...t},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=Qa(e,o),{lineCount:l}=Za(s,n.maxWidth,r*i);if(l<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:el,getVariables:Lr};function tl(){let e=window;e.__hyperframeRuntimeBootstrapped||(e.__hyperframeRuntimeBootstrapped=!0,Ta())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",tl,{once:!0}):tl();})();\n';
|
|
56112
56112
|
}
|
|
56113
56113
|
});
|
|
56114
56114
|
|
|
@@ -59304,12 +59304,43 @@ var init_text2 = __esm({
|
|
|
59304
59304
|
}
|
|
59305
59305
|
});
|
|
59306
59306
|
|
|
59307
|
+
// ../core/dist/tokenSlug.js
|
|
59308
|
+
function slugify(name) {
|
|
59309
|
+
const collapsed = name.toLowerCase().replace(/[^a-z0-9]+/g, "-");
|
|
59310
|
+
let start = 0;
|
|
59311
|
+
let end = collapsed.length;
|
|
59312
|
+
while (start < end && collapsed[start] === "-")
|
|
59313
|
+
start++;
|
|
59314
|
+
while (end > start && collapsed[end - 1] === "-")
|
|
59315
|
+
end--;
|
|
59316
|
+
const slug = collapsed.slice(start, end);
|
|
59317
|
+
return slug.length > 0 ? slug : "node";
|
|
59318
|
+
}
|
|
59319
|
+
function cssVariableName(id) {
|
|
59320
|
+
return `--${slugify(id)}`;
|
|
59321
|
+
}
|
|
59322
|
+
var init_tokenSlug = __esm({
|
|
59323
|
+
"../core/dist/tokenSlug.js"() {
|
|
59324
|
+
"use strict";
|
|
59325
|
+
}
|
|
59326
|
+
});
|
|
59327
|
+
|
|
59307
59328
|
// ../core/dist/runtime/getVariables.js
|
|
59308
59329
|
function getVariables() {
|
|
59309
59330
|
if (typeof document === "undefined")
|
|
59310
59331
|
return {};
|
|
59311
|
-
const
|
|
59312
|
-
|
|
59332
|
+
const declarers = /* @__PURE__ */ new Set();
|
|
59333
|
+
if (document.documentElement?.hasAttribute("data-composition-variables")) {
|
|
59334
|
+
declarers.add(document.documentElement);
|
|
59335
|
+
}
|
|
59336
|
+
for (const el of Array.from(document.querySelectorAll("[data-composition-variables]"))) {
|
|
59337
|
+
declarers.add(el);
|
|
59338
|
+
}
|
|
59339
|
+
const declaredDefaults = {};
|
|
59340
|
+
for (const el of declarers) {
|
|
59341
|
+
Object.assign(declaredDefaults, readDeclaredDefaults(el));
|
|
59342
|
+
}
|
|
59343
|
+
const overrides = readRenderOverrides();
|
|
59313
59344
|
return { ...declaredDefaults, ...overrides };
|
|
59314
59345
|
}
|
|
59315
59346
|
function readDeclaredDefaults(root) {
|
|
@@ -59337,7 +59368,21 @@ function readDeclaredDefaults(root) {
|
|
|
59337
59368
|
}
|
|
59338
59369
|
return out;
|
|
59339
59370
|
}
|
|
59340
|
-
function
|
|
59371
|
+
function parseHostVariableValues(host) {
|
|
59372
|
+
const raw = host.getAttribute("data-variable-values");
|
|
59373
|
+
if (!raw)
|
|
59374
|
+
return {};
|
|
59375
|
+
let parsed;
|
|
59376
|
+
try {
|
|
59377
|
+
parsed = JSON.parse(raw);
|
|
59378
|
+
} catch {
|
|
59379
|
+
return {};
|
|
59380
|
+
}
|
|
59381
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
59382
|
+
return {};
|
|
59383
|
+
return parsed;
|
|
59384
|
+
}
|
|
59385
|
+
function readRenderOverrides() {
|
|
59341
59386
|
if (typeof window === "undefined")
|
|
59342
59387
|
return {};
|
|
59343
59388
|
const raw = window.__hfVariables;
|
|
@@ -59348,6 +59393,7 @@ function readOverrides() {
|
|
|
59348
59393
|
var init_getVariables = __esm({
|
|
59349
59394
|
"../core/dist/runtime/getVariables.js"() {
|
|
59350
59395
|
"use strict";
|
|
59396
|
+
init_tokenSlug();
|
|
59351
59397
|
}
|
|
59352
59398
|
});
|
|
59353
59399
|
|
|
@@ -62708,6 +62754,19 @@ async function initDrawElementOrTransparentBackground(session, page, logInitPhas
|
|
|
62708
62754
|
await armStaticDedup(session, page, logInitPhase);
|
|
62709
62755
|
}
|
|
62710
62756
|
}
|
|
62757
|
+
const supportsDrawElement = await page.evaluate(() => {
|
|
62758
|
+
const c3 = document.createElement("canvas");
|
|
62759
|
+
const ctx = c3.getContext("2d");
|
|
62760
|
+
return typeof ctx?.drawElementImage === "function";
|
|
62761
|
+
});
|
|
62762
|
+
if (!supportsDrawElement) {
|
|
62763
|
+
session.deGateReason = "unsupported_chrome";
|
|
62764
|
+
console.log(
|
|
62765
|
+
`[engine] fast capture: falling back to ${session.launchCaptureMode} capture \u2014 this Chrome build does not implement canvas.drawElementImage (Dev/Canary-only feature, ~151+); run \`hyperframes browser ensure --force\` to fetch a supported build, or set HYPERFRAMES_BROWSER_PATH to one.`
|
|
62766
|
+
);
|
|
62767
|
+
await routeToFallback();
|
|
62768
|
+
return;
|
|
62769
|
+
}
|
|
62711
62770
|
const mode = resolveDrawElementCaptureMode(session.isSwiftShader, transparent);
|
|
62712
62771
|
if (mode === "screenshot") {
|
|
62713
62772
|
session.deGateReason = "swiftshader";
|
|
@@ -62894,6 +62953,7 @@ async function createCaptureSession(serverUrl, outputDir, options, onBeforeCaptu
|
|
|
62894
62953
|
onBeforeCapture,
|
|
62895
62954
|
isInitialized: false,
|
|
62896
62955
|
browserConsoleBuffer: [],
|
|
62956
|
+
scriptLoadFailures: [],
|
|
62897
62957
|
capturePerf: {
|
|
62898
62958
|
frames: 0,
|
|
62899
62959
|
seekMs: 0,
|
|
@@ -62934,15 +62994,6 @@ function formatConsoleDiagnostic(type, text2, locationUrl) {
|
|
|
62934
62994
|
const prefix = isResourceLoadError ? "[non-blocking]" : type === "error" ? "[Browser:ERROR]" : type === "warn" ? "[Browser:WARN]" : "[Browser]";
|
|
62935
62995
|
return { text: `${prefix} ${text2}`, suppressHostLog: false };
|
|
62936
62996
|
}
|
|
62937
|
-
async function pollPageExpression(page, expression, timeoutMs, intervalMs = 100) {
|
|
62938
|
-
const deadline = Date.now() + timeoutMs;
|
|
62939
|
-
while (Date.now() < deadline) {
|
|
62940
|
-
const ready = Boolean(await page.evaluate(expression));
|
|
62941
|
-
if (ready) return true;
|
|
62942
|
-
await new Promise((resolve62) => setTimeout(resolve62, intervalMs));
|
|
62943
|
-
}
|
|
62944
|
-
return Boolean(await page.evaluate(expression));
|
|
62945
|
-
}
|
|
62946
62997
|
function buildZeroDurationDiagnostic(diag) {
|
|
62947
62998
|
const hints = [];
|
|
62948
62999
|
if (!diag.hasPlayer) {
|
|
@@ -62999,7 +63050,7 @@ async function pollHfReady(page, timeoutMs, intervalMs = 100) {
|
|
|
62999
63050
|
State: __hf=${diag.hasHf}, seek=${diag.hasSeek}, player=${diag.hasPlayer}, renderReady=${diag.renderReady}, duration=${diag.duration}`
|
|
63000
63051
|
);
|
|
63001
63052
|
}
|
|
63002
|
-
async function pollSubCompositionTimelines(page, timeoutMs, intervalMs = 150) {
|
|
63053
|
+
async function pollSubCompositionTimelines(page, timeoutMs, intervalMs = 150, getScriptLoadFailures, scriptFailureGraceMs = 2e3) {
|
|
63003
63054
|
const expression = `(function() {
|
|
63004
63055
|
var hosts = document.querySelectorAll("[data-composition-id]");
|
|
63005
63056
|
if (hosts.length === 0) return true;
|
|
@@ -63012,30 +63063,52 @@ async function pollSubCompositionTimelines(page, timeoutMs, intervalMs = 150) {
|
|
|
63012
63063
|
}
|
|
63013
63064
|
return true;
|
|
63014
63065
|
})()`;
|
|
63015
|
-
const
|
|
63066
|
+
const start = Date.now();
|
|
63067
|
+
const deadline = start + timeoutMs;
|
|
63068
|
+
let ready = false;
|
|
63069
|
+
let scriptFailureBail = false;
|
|
63070
|
+
for (; ; ) {
|
|
63071
|
+
ready = Boolean(await page.evaluate(expression));
|
|
63072
|
+
if (ready) break;
|
|
63073
|
+
const now = Date.now();
|
|
63074
|
+
if (now >= deadline) break;
|
|
63075
|
+
const failures = getScriptLoadFailures?.() ?? [];
|
|
63076
|
+
if (failures.length > 0 && now - start >= scriptFailureGraceMs) {
|
|
63077
|
+
scriptFailureBail = true;
|
|
63078
|
+
console.warn(
|
|
63079
|
+
`[FrameCapture] Sub-composition timeline wait cut short after ${now - start}ms: script resource(s) failed to load (${failures.join(", ")}) \u2014 the timeline registration they carry can never arrive. Fix the script reference; the render proceeds without those animations.`
|
|
63080
|
+
);
|
|
63081
|
+
break;
|
|
63082
|
+
}
|
|
63083
|
+
await new Promise((resolve62) => setTimeout(resolve62, intervalMs));
|
|
63084
|
+
}
|
|
63016
63085
|
if (ready) {
|
|
63017
63086
|
await page.evaluate(`(function() {
|
|
63018
63087
|
if (typeof window.__hfForceTimelineRebind === "function") {
|
|
63019
63088
|
window.__hfForceTimelineRebind();
|
|
63020
63089
|
}
|
|
63021
63090
|
})()`);
|
|
63091
|
+
return "ready";
|
|
63022
63092
|
}
|
|
63023
|
-
|
|
63024
|
-
|
|
63025
|
-
|
|
63026
|
-
|
|
63027
|
-
|
|
63028
|
-
|
|
63029
|
-
|
|
63030
|
-
|
|
63031
|
-
|
|
63032
|
-
|
|
63033
|
-
|
|
63034
|
-
|
|
63093
|
+
const missing = await page.evaluate(`(function() {
|
|
63094
|
+
var hosts = document.querySelectorAll("[data-composition-id]");
|
|
63095
|
+
var timelines = window.__timelines || {};
|
|
63096
|
+
var m = [];
|
|
63097
|
+
for (var i = 0; i < hosts.length; i++) {
|
|
63098
|
+
if (hosts[i].hasAttribute("data-no-timeline")) continue;
|
|
63099
|
+
var id = hosts[i].getAttribute("data-composition-id");
|
|
63100
|
+
if (id && !timelines[id]) m.push(id);
|
|
63101
|
+
}
|
|
63102
|
+
return m.join(", ");
|
|
63103
|
+
})()`);
|
|
63104
|
+
if (scriptFailureBail) {
|
|
63105
|
+
console.warn(`[FrameCapture] Composition(s) still waiting on the failed script: ${missing}.`);
|
|
63106
|
+
} else {
|
|
63035
63107
|
console.warn(
|
|
63036
63108
|
`[FrameCapture] Sub-composition timelines not registered after ${timeoutMs}ms: ${missing}. Compositions that load data asynchronously (e.g. fetch) must register window.__timelines[id] after setup completes. Compositions intentionally driven without GSAP timelines (CSS animations / rAF) can mark the host with data-no-timeline to skip this wait.`
|
|
63037
63109
|
);
|
|
63038
63110
|
}
|
|
63111
|
+
return scriptFailureBail ? "script_failure" : "timeout";
|
|
63039
63112
|
}
|
|
63040
63113
|
async function pollVideosReady(page, skipIds, timeoutMs, intervalMs = 100) {
|
|
63041
63114
|
const check = async () => {
|
|
@@ -63134,6 +63207,11 @@ async function waitForOptionalTailwindReady(page, timeoutMs) {
|
|
|
63134
63207
|
);
|
|
63135
63208
|
}
|
|
63136
63209
|
}
|
|
63210
|
+
function recordScriptLoadFailure(session, url) {
|
|
63211
|
+
if (!session.scriptLoadFailures.includes(url)) {
|
|
63212
|
+
session.scriptLoadFailures.push(url);
|
|
63213
|
+
}
|
|
63214
|
+
}
|
|
63137
63215
|
async function initializeSession(session) {
|
|
63138
63216
|
const { page, serverUrl } = session;
|
|
63139
63217
|
page.on("console", (msg) => {
|
|
@@ -63154,6 +63232,9 @@ async function initializeSession(session) {
|
|
|
63154
63232
|
appendBrowserDiagnostic(session, text2);
|
|
63155
63233
|
});
|
|
63156
63234
|
page.on("requestfailed", (request) => {
|
|
63235
|
+
if (request.resourceType() === "script") {
|
|
63236
|
+
recordScriptLoadFailure(session, request.url());
|
|
63237
|
+
}
|
|
63157
63238
|
appendBrowserDiagnostic(
|
|
63158
63239
|
session,
|
|
63159
63240
|
formatRequestFailureDiagnostic({
|
|
@@ -63168,6 +63249,9 @@ async function initializeSession(session) {
|
|
|
63168
63249
|
const status = response.status();
|
|
63169
63250
|
if (status < 400) return;
|
|
63170
63251
|
const request = response.request();
|
|
63252
|
+
if (request.resourceType() === "script") {
|
|
63253
|
+
recordScriptLoadFailure(session, response.url());
|
|
63254
|
+
}
|
|
63171
63255
|
appendBrowserDiagnostic(
|
|
63172
63256
|
session,
|
|
63173
63257
|
formatHttpErrorDiagnostic({
|
|
@@ -63219,8 +63303,13 @@ async function initializeSession(session) {
|
|
|
63219
63303
|
const pageReadyTimeout2 = session.config?.playerReadyTimeout ?? DEFAULT_CONFIG2.playerReadyTimeout;
|
|
63220
63304
|
await pollHfReady(page, pageReadyTimeout2);
|
|
63221
63305
|
logInitPhase("pollHfReady complete");
|
|
63222
|
-
await pollSubCompositionTimelines(
|
|
63223
|
-
|
|
63306
|
+
session.subTimelineWaitOutcome = await pollSubCompositionTimelines(
|
|
63307
|
+
page,
|
|
63308
|
+
pageReadyTimeout2,
|
|
63309
|
+
void 0,
|
|
63310
|
+
() => session.scriptLoadFailures
|
|
63311
|
+
);
|
|
63312
|
+
logInitPhase(`pollSubCompositionTimelines complete (${session.subTimelineWaitOutcome})`);
|
|
63224
63313
|
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
63225
63314
|
logInitPhase("applyVideoMetadataHints complete");
|
|
63226
63315
|
const skipVideoIds = session.options.skipReadinessVideoIds ?? [];
|
|
@@ -63312,8 +63401,13 @@ async function initializeSession(session) {
|
|
|
63312
63401
|
warmupState.running = false;
|
|
63313
63402
|
throw err;
|
|
63314
63403
|
}
|
|
63315
|
-
await pollSubCompositionTimelines(
|
|
63316
|
-
|
|
63404
|
+
session.subTimelineWaitOutcome = await pollSubCompositionTimelines(
|
|
63405
|
+
page,
|
|
63406
|
+
pageReadyTimeout,
|
|
63407
|
+
void 0,
|
|
63408
|
+
() => session.scriptLoadFailures
|
|
63409
|
+
);
|
|
63410
|
+
logInitPhase(`pollSubCompositionTimelines complete (${session.subTimelineWaitOutcome})`);
|
|
63317
63411
|
await applyVideoMetadataHints(page, session.options.videoMetadataHints);
|
|
63318
63412
|
logInitPhase("applyVideoMetadataHints complete");
|
|
63319
63413
|
const bfSkipVideoIds = session.options.skipReadinessVideoIds ?? [];
|
|
@@ -63569,12 +63663,15 @@ async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCo
|
|
|
63569
63663
|
if (last && f3 === last.b + 1) last.b = f3;
|
|
63570
63664
|
else runs.push({ a: f3, b: f3 });
|
|
63571
63665
|
}
|
|
63572
|
-
const
|
|
63666
|
+
const seekToFrame = async (frameIdx) => {
|
|
63573
63667
|
const t2 = quantizeTimeToFrame(frameIdx / fps, fps);
|
|
63574
63668
|
await page.evaluate((tt3) => {
|
|
63575
63669
|
const hf = window.__hf;
|
|
63576
|
-
if (hf && typeof hf.seek === "function") hf.seek(tt3);
|
|
63670
|
+
if (hf && typeof hf.seek === "function") hf.seek(tt3, { suppressEvents: true });
|
|
63577
63671
|
}, t2);
|
|
63672
|
+
};
|
|
63673
|
+
const seekCapture = async (frameIdx) => {
|
|
63674
|
+
await seekToFrame(frameIdx);
|
|
63578
63675
|
return pageScreenshotCapture(page, session.options);
|
|
63579
63676
|
};
|
|
63580
63677
|
const hardCap = Math.max(
|
|
@@ -63582,20 +63679,25 @@ async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCo
|
|
|
63582
63679
|
400,
|
|
63583
63680
|
Math.ceil(frames.length / STATIC_VERIFY_REFERENCE_STRIDE) * 3 + runs.length
|
|
63584
63681
|
);
|
|
63585
|
-
|
|
63586
|
-
|
|
63587
|
-
const
|
|
63588
|
-
|
|
63589
|
-
|
|
63590
|
-
|
|
63591
|
-
for (const f3 of computeStaticVerificationPoints(a, b2, sampleCount)) {
|
|
63592
|
-
const cur = await seekCapture(f3);
|
|
63682
|
+
try {
|
|
63683
|
+
let spent = 0;
|
|
63684
|
+
for (const { a, b: b2 } of runs) {
|
|
63685
|
+
const anchor = a - 1;
|
|
63686
|
+
if (anchor < 0) continue;
|
|
63687
|
+
const anchorBuf = await seekCapture(anchor);
|
|
63593
63688
|
spent++;
|
|
63594
|
-
|
|
63689
|
+
for (const f3 of computeStaticVerificationPoints(a, b2, sampleCount)) {
|
|
63690
|
+
const cur = await seekCapture(f3);
|
|
63691
|
+
spent++;
|
|
63692
|
+
if (!anchorBuf.equals(cur)) return { badFrame: f3, budgetExhausted: false };
|
|
63693
|
+
}
|
|
63694
|
+
if (spent > hardCap) return { badFrame: a, budgetExhausted: true };
|
|
63595
63695
|
}
|
|
63596
|
-
|
|
63696
|
+
return null;
|
|
63697
|
+
} finally {
|
|
63698
|
+
await seekToFrame(0).catch(() => {
|
|
63699
|
+
});
|
|
63597
63700
|
}
|
|
63598
|
-
return null;
|
|
63599
63701
|
}
|
|
63600
63702
|
async function armStaticDedup(session, page, logInitPhase) {
|
|
63601
63703
|
if (session.staticFrames || session.staticDedupSkipReason) return;
|
|
@@ -63832,9 +63934,20 @@ async function captureFrameToBufferPipelined(session, frameIndex, time) {
|
|
|
63832
63934
|
const { page, options } = session;
|
|
63833
63935
|
const startTime = Date.now();
|
|
63834
63936
|
if (session.staticFrames?.has(frameIndex) && session.lastEncodeResult) {
|
|
63835
|
-
|
|
63836
|
-
|
|
63837
|
-
|
|
63937
|
+
const lastIdx = session.lastEncodeResultFrame ?? frameIndex - 1;
|
|
63938
|
+
let gapStatic = true;
|
|
63939
|
+
for (let j3 = lastIdx + 1; j3 <= frameIndex; j3++) {
|
|
63940
|
+
if (!session.staticFrames.has(j3)) {
|
|
63941
|
+
gapStatic = false;
|
|
63942
|
+
break;
|
|
63943
|
+
}
|
|
63944
|
+
}
|
|
63945
|
+
if (gapStatic) {
|
|
63946
|
+
session.staticDedupCount = (session.staticDedupCount ?? 0) + 1;
|
|
63947
|
+
session.capturePerf.frames += 1;
|
|
63948
|
+
session.lastEncodeResultFrame = frameIndex;
|
|
63949
|
+
return { encodeResult: session.lastEncodeResult, captureTimeMs: Date.now() - startTime };
|
|
63950
|
+
}
|
|
63838
63951
|
}
|
|
63839
63952
|
try {
|
|
63840
63953
|
const { quantizedTime, seekMs, beforeCaptureMs } = await prepareFrameForCapture(
|
|
@@ -63854,7 +63967,10 @@ async function captureFrameToBufferPipelined(session, frameIndex, time) {
|
|
|
63854
63967
|
session.capturePerf.frameMs.push(boundaryMs);
|
|
63855
63968
|
}
|
|
63856
63969
|
const boundaryResult = Promise.resolve(buffer);
|
|
63857
|
-
if (session.staticFrames)
|
|
63970
|
+
if (session.staticFrames) {
|
|
63971
|
+
session.lastEncodeResult = boundaryResult;
|
|
63972
|
+
session.lastEncodeResultFrame = frameIndex;
|
|
63973
|
+
}
|
|
63858
63974
|
return { encodeResult: boundaryResult, captureTimeMs: Date.now() - startTime };
|
|
63859
63975
|
}
|
|
63860
63976
|
const { encodeResult } = await produceDrawElementFrame(
|
|
@@ -63871,7 +63987,10 @@ async function captureFrameToBufferPipelined(session, frameIndex, time) {
|
|
|
63871
63987
|
session.capturePerf.screenshotMs += captureTimeMs - seekMs - beforeCaptureMs;
|
|
63872
63988
|
session.capturePerf.totalMs += captureTimeMs;
|
|
63873
63989
|
session.capturePerf.frameMs.push(captureTimeMs);
|
|
63874
|
-
if (session.staticFrames)
|
|
63990
|
+
if (session.staticFrames) {
|
|
63991
|
+
session.lastEncodeResult = encodeResult;
|
|
63992
|
+
session.lastEncodeResultFrame = frameIndex;
|
|
63993
|
+
}
|
|
63875
63994
|
return { encodeResult, captureTimeMs };
|
|
63876
63995
|
} catch (captureError) {
|
|
63877
63996
|
if (isNoCachedPaintRecordError(captureError)) {
|
|
@@ -64059,7 +64178,7 @@ async function captureDeVerificationFrames(session, page, logInitPhase) {
|
|
|
64059
64178
|
const seekTo3 = async (t2) => {
|
|
64060
64179
|
await page.evaluate((tt3) => {
|
|
64061
64180
|
const hf = window.__hf;
|
|
64062
|
-
if (hf && typeof hf.seek === "function") hf.seek(tt3);
|
|
64181
|
+
if (hf && typeof hf.seek === "function") hf.seek(tt3, { suppressEvents: true });
|
|
64063
64182
|
}, t2);
|
|
64064
64183
|
};
|
|
64065
64184
|
await seekTo3(quantizeTimeToFrame(0, fps));
|
|
@@ -64097,6 +64216,7 @@ function getCapturePerfSummary(session) {
|
|
|
64097
64216
|
avgBeforeCaptureMs: Math.round(session.capturePerf.beforeCaptureMs / frames),
|
|
64098
64217
|
avgScreenshotMs: Math.round(session.capturePerf.screenshotMs / frames),
|
|
64099
64218
|
p50TotalMs: medianOf(session.capturePerf.frameMs),
|
|
64219
|
+
subTimelineWaitOutcome: session.subTimelineWaitOutcome,
|
|
64100
64220
|
staticDedupReused: session.staticDedupCount ?? 0,
|
|
64101
64221
|
staticDedupEnabled: session.staticDedupEnabled ?? false,
|
|
64102
64222
|
// armed ⟺ a non-empty static set survived verification; predicted === its size.
|
|
@@ -65567,40 +65687,57 @@ import { existsSync as existsSync7, mkdirSync as mkdirSync4, statSync as statSyn
|
|
|
65567
65687
|
import { dirname as dirname5 } from "path";
|
|
65568
65688
|
function createFrameReorderBuffer(startFrame, endFrame) {
|
|
65569
65689
|
let cursor = startFrame;
|
|
65690
|
+
let aborted = null;
|
|
65570
65691
|
const pending = /* @__PURE__ */ new Map();
|
|
65571
|
-
const enqueueAt = (frame, resolve62) => {
|
|
65692
|
+
const enqueueAt = (frame, resolve62, reject) => {
|
|
65572
65693
|
const list = pending.get(frame);
|
|
65573
65694
|
if (list === void 0) {
|
|
65574
|
-
pending.set(frame, [resolve62]);
|
|
65695
|
+
pending.set(frame, [{ resolve: resolve62, reject }]);
|
|
65575
65696
|
} else {
|
|
65576
|
-
list.push(resolve62);
|
|
65697
|
+
list.push({ resolve: resolve62, reject });
|
|
65577
65698
|
}
|
|
65578
65699
|
};
|
|
65579
65700
|
const flushAt = (frame) => {
|
|
65580
65701
|
const list = pending.get(frame);
|
|
65581
65702
|
if (list === void 0) return;
|
|
65582
65703
|
pending.delete(frame);
|
|
65583
|
-
for (const
|
|
65704
|
+
for (const waiter of list) waiter.resolve();
|
|
65584
65705
|
};
|
|
65585
|
-
const waitForFrame = (frame) => new Promise((resolve62) => {
|
|
65706
|
+
const waitForFrame = (frame) => new Promise((resolve62, reject) => {
|
|
65707
|
+
if (aborted) {
|
|
65708
|
+
reject(aborted);
|
|
65709
|
+
return;
|
|
65710
|
+
}
|
|
65586
65711
|
if (frame === cursor) {
|
|
65587
65712
|
resolve62();
|
|
65588
65713
|
return;
|
|
65589
65714
|
}
|
|
65590
|
-
enqueueAt(frame, resolve62);
|
|
65715
|
+
enqueueAt(frame, resolve62, reject);
|
|
65591
65716
|
});
|
|
65592
65717
|
const advanceTo = (frame) => {
|
|
65593
65718
|
cursor = frame;
|
|
65594
65719
|
flushAt(frame);
|
|
65595
65720
|
};
|
|
65596
|
-
const waitForAllDone = () => new Promise((resolve62) => {
|
|
65721
|
+
const waitForAllDone = () => new Promise((resolve62, reject) => {
|
|
65722
|
+
if (aborted) {
|
|
65723
|
+
reject(aborted);
|
|
65724
|
+
return;
|
|
65725
|
+
}
|
|
65597
65726
|
if (cursor >= endFrame) {
|
|
65598
65727
|
resolve62();
|
|
65599
65728
|
return;
|
|
65600
65729
|
}
|
|
65601
|
-
enqueueAt(endFrame, resolve62);
|
|
65730
|
+
enqueueAt(endFrame, resolve62, reject);
|
|
65602
65731
|
});
|
|
65603
|
-
|
|
65732
|
+
const abort = (err) => {
|
|
65733
|
+
if (aborted) return;
|
|
65734
|
+
aborted = err;
|
|
65735
|
+
for (const [frame, list] of pending) {
|
|
65736
|
+
pending.delete(frame);
|
|
65737
|
+
for (const waiter of list) waiter.reject(err);
|
|
65738
|
+
}
|
|
65739
|
+
};
|
|
65740
|
+
return { waitForFrame, advanceTo, waitForAllDone, abort };
|
|
65604
65741
|
}
|
|
65605
65742
|
function buildStreamingArgs(options, outputPath, gpuEncoder = null) {
|
|
65606
65743
|
const {
|
|
@@ -65929,6 +66066,58 @@ var init_streamingEncoder = __esm({
|
|
|
65929
66066
|
}
|
|
65930
66067
|
});
|
|
65931
66068
|
|
|
66069
|
+
// ../engine/src/services/referenceResolver.ts
|
|
66070
|
+
function findReferenceTargetEl(doc, refId) {
|
|
66071
|
+
return doc.getElementById(refId) ?? doc.querySelector(`[data-composition-id="${refId}"]`);
|
|
66072
|
+
}
|
|
66073
|
+
function resolveReferencedStart(doc, el, startCache, visiting) {
|
|
66074
|
+
const cached2 = startCache.get(el);
|
|
66075
|
+
if (cached2 !== void 0) return cached2;
|
|
66076
|
+
if (visiting.has(el)) return 0;
|
|
66077
|
+
visiting.add(el);
|
|
66078
|
+
try {
|
|
66079
|
+
const expression = parseStartExpression(el.getAttribute("data-start"));
|
|
66080
|
+
if (!expression) {
|
|
66081
|
+
startCache.set(el, 0);
|
|
66082
|
+
return 0;
|
|
66083
|
+
}
|
|
66084
|
+
if (expression.kind === "absolute") {
|
|
66085
|
+
const value = Math.max(0, expression.value);
|
|
66086
|
+
startCache.set(el, value);
|
|
66087
|
+
return value;
|
|
66088
|
+
}
|
|
66089
|
+
const target = findReferenceTargetEl(doc, expression.refId);
|
|
66090
|
+
if (!target) {
|
|
66091
|
+
startCache.set(el, 0);
|
|
66092
|
+
return 0;
|
|
66093
|
+
}
|
|
66094
|
+
const targetStart = resolveReferencedStart(doc, target, startCache, visiting);
|
|
66095
|
+
const targetDuration = resolveReferencedDuration(doc, target, startCache, visiting);
|
|
66096
|
+
const resolved = targetDuration != null && targetDuration > 0 ? Math.max(0, targetStart + targetDuration + expression.offset) : Math.max(0, targetStart + expression.offset);
|
|
66097
|
+
startCache.set(el, resolved);
|
|
66098
|
+
return resolved;
|
|
66099
|
+
} finally {
|
|
66100
|
+
visiting.delete(el);
|
|
66101
|
+
}
|
|
66102
|
+
}
|
|
66103
|
+
function resolveReferencedDuration(doc, el, startCache, visiting) {
|
|
66104
|
+
const durationAttr = parseNumeric(el.getAttribute("data-duration"));
|
|
66105
|
+
if (durationAttr != null && durationAttr > 0) return durationAttr;
|
|
66106
|
+
const endAttr = parseNumeric(el.getAttribute("data-end"));
|
|
66107
|
+
if (endAttr != null) {
|
|
66108
|
+
const start = resolveReferencedStart(doc, el, startCache, visiting);
|
|
66109
|
+
const delta = endAttr - start;
|
|
66110
|
+
if (Number.isFinite(delta) && delta > 0) return delta;
|
|
66111
|
+
}
|
|
66112
|
+
return null;
|
|
66113
|
+
}
|
|
66114
|
+
var init_referenceResolver = __esm({
|
|
66115
|
+
"../engine/src/services/referenceResolver.ts"() {
|
|
66116
|
+
"use strict";
|
|
66117
|
+
init_dist3();
|
|
66118
|
+
}
|
|
66119
|
+
});
|
|
66120
|
+
|
|
65932
66121
|
// ../engine/src/utils/urlDownloader.ts
|
|
65933
66122
|
import { createWriteStream, existsSync as existsSync8, mkdirSync as mkdirSync5 } from "fs";
|
|
65934
66123
|
import { createHash } from "crypto";
|
|
@@ -66108,6 +66297,37 @@ var init_htmlCompiler = __esm({
|
|
|
66108
66297
|
}
|
|
66109
66298
|
});
|
|
66110
66299
|
|
|
66300
|
+
// ../core/dist/runtime/flattenedRoot.js
|
|
66301
|
+
function markFlattenedInnerRoot(prepared) {
|
|
66302
|
+
const authoredRootId = prepared.getAttribute("id")?.trim();
|
|
66303
|
+
for (const attrName of FLATTENED_INNER_ROOT_STRIP_ATTRS) {
|
|
66304
|
+
prepared.removeAttribute(attrName);
|
|
66305
|
+
}
|
|
66306
|
+
if (authoredRootId) {
|
|
66307
|
+
prepared.removeAttribute("id");
|
|
66308
|
+
prepared.setAttribute("data-hf-authored-id", authoredRootId);
|
|
66309
|
+
}
|
|
66310
|
+
prepared.setAttribute("data-hf-inner-root", "true");
|
|
66311
|
+
}
|
|
66312
|
+
var FLATTENED_INNER_ROOT_STRIP_ATTRS;
|
|
66313
|
+
var init_flattenedRoot = __esm({
|
|
66314
|
+
"../core/dist/runtime/flattenedRoot.js"() {
|
|
66315
|
+
"use strict";
|
|
66316
|
+
FLATTENED_INNER_ROOT_STRIP_ATTRS = [
|
|
66317
|
+
"data-composition-id",
|
|
66318
|
+
"data-composition-file",
|
|
66319
|
+
"data-start",
|
|
66320
|
+
"data-duration",
|
|
66321
|
+
"data-end",
|
|
66322
|
+
"data-track-index",
|
|
66323
|
+
"data-track",
|
|
66324
|
+
"data-composition-src",
|
|
66325
|
+
"data-hf-authored-duration",
|
|
66326
|
+
"data-hf-authored-end"
|
|
66327
|
+
];
|
|
66328
|
+
}
|
|
66329
|
+
});
|
|
66330
|
+
|
|
66111
66331
|
// ../core/dist/compiler/htmlDocument.js
|
|
66112
66332
|
function parseHTMLContent(html) {
|
|
66113
66333
|
const trimmed = html.trimStart().toLowerCase();
|
|
@@ -66751,6 +66971,11 @@ ${source.replace(/<\/(script)/gi, "<\\/$1")}
|
|
|
66751
66971
|
function wrapInlineScriptWithErrorBoundary(source, errorLabel) {
|
|
66752
66972
|
return `(function(){ try { Function(${JSON.stringify(source)}).call(window); } catch (_err) { console.error(${JSON.stringify(errorLabel)}, _err); } })();`;
|
|
66753
66973
|
}
|
|
66974
|
+
function buildVariablesByCompScript(variablesByComp) {
|
|
66975
|
+
if (!variablesByComp || Object.keys(variablesByComp).length === 0)
|
|
66976
|
+
return null;
|
|
66977
|
+
return `window.__hfVariablesByComp = Object.assign({}, window.__hfVariablesByComp || {}, ${JSON.stringify(variablesByComp)});`;
|
|
66978
|
+
}
|
|
66754
66979
|
var AUTHORED_ROOT_ID_ATTR, INNER_ROOT_ATTR, GLOBAL_AT_RULES;
|
|
66755
66980
|
var init_compositionScoping = __esm({
|
|
66756
66981
|
"../core/dist/compiler/compositionScoping.js"() {
|
|
@@ -69937,6 +70162,7 @@ async function lintProject(projectDir) {
|
|
|
69937
70162
|
const html = readFileSync4(filePath, "utf-8");
|
|
69938
70163
|
const compSrcPath = `compositions/${file}`;
|
|
69939
70164
|
allHtmlSources.push({ html, compSrcPath });
|
|
70165
|
+
if (isSnippetFragment(html)) continue;
|
|
69940
70166
|
const result = await lintHyperframeHtml(html, {
|
|
69941
70167
|
filePath,
|
|
69942
70168
|
isSubComposition: true,
|
|
@@ -70219,6 +70445,11 @@ function lintMissingOrEmptySubComposition(projectDir, rootHtml) {
|
|
|
70219
70445
|
}
|
|
70220
70446
|
return findings;
|
|
70221
70447
|
}
|
|
70448
|
+
function isSnippetFragment(html) {
|
|
70449
|
+
const firstTag = html.match(/<[a-zA-Z][^>]*>/);
|
|
70450
|
+
if (!firstTag) return false;
|
|
70451
|
+
return /\bdata-hf-snippet\b/.test(firstTag[0]);
|
|
70452
|
+
}
|
|
70222
70453
|
var TAG_PATTERN, STYLE_BLOCK_PATTERN, SCRIPT_BLOCK_PATTERN, COMPOSITION_ID_IN_CSS_PATTERN, TIMELINE_REGISTRY_INIT_PATTERN, TIMELINE_REGISTRY_OBJECT_LITERAL_PATTERN, TIMELINE_REGISTRY_ASSIGN_PATTERN, WINDOW_TIMELINE_ASSIGN_PATTERN, INVALID_SCRIPT_CLOSE_PATTERN, TIMELINE_REGISTRY_KEY_PATTERN, TIMELINE_REGISTRY_OBJECT_BODY_PATTERN, TIMELINE_REGISTRY_OBJECT_ENTRY_PATTERN, HEAD_BLOCKS_TO_IGNORE_PATTERN, HTML_TAG_PATTERN, HEAD_CONTENT_PATTERN, AFTER_HEAD_BEFORE_BODY_PATTERN, STRAY_HEAD_CLOSE_PATTERN, MARKDOWN_CODE_FENCE_PATTERN, ORPHAN_CSS_AT_RULE_PATTERN, ORPHAN_CSS_RULE_PATTERN, VISIBLE_MARKUP_COMMENT_PATTERN, VISIBLE_MARKUP_COMMENT_PROTECTED_BLOCK_PATTERN, coreRules, mediaRules, SCENE_BOUNDARY_EPSILON_SECONDS, UNRESOLVED_TARGET, gsapWindowsCache, CONFLICTING_TRANSLATE_PROPS, CONFLICTING_SCALE_PROPS, gsapRules, captionRules, MAX_COMPOSITION_LINES, MAX_TIMED_ELEMENTS_PER_TRACK, TRACK_DENSITY_EXEMPT_TAGS, OVERLAP_EPSILON_SECONDS, compositionRules, adapterRules, TEXTURE_BASE_CLASS, TEXTURE_CLASS_PREFIX, textureRules, GENERIC_FAMILIES, fontRules, slideshowRules, ALL_RULES, AUDIO_EXTENSIONS, STYLE_BLOCK_RE, OPEN_TAG_RE, MASK_IMAGE_URL_RE;
|
|
70223
70454
|
var init_dist4 = __esm({
|
|
70224
70455
|
"../lint/dist/index.js"() {
|
|
@@ -71352,6 +71583,127 @@ ${right.raw}`)
|
|
|
71352
71583
|
}
|
|
71353
71584
|
return findings;
|
|
71354
71585
|
},
|
|
71586
|
+
// gsap_non_transform_motion — animating layout props (left/top/right/bottom/margin*)
|
|
71587
|
+
// or using roundProps snaps motion to integer device pixels. On the seek-by-frame
|
|
71588
|
+
// capture engine this looks smooth at high per-frame deltas (fast tweens) but visibly
|
|
71589
|
+
// stutters at low deltas (slow tweens / ease-out tails): sub-pixel movement rounds to
|
|
71590
|
+
// the same pixel for several frames, then jumps a whole pixel. Transforms (x/y/scale)
|
|
71591
|
+
// interpolate sub-pixel and stay smooth.
|
|
71592
|
+
//
|
|
71593
|
+
// EXEMPTION: elements rasterized via the html-in-canvas API — those under a
|
|
71594
|
+
// `<canvas layoutsubtree>` ancestor (e.g. the liquid-glass blocks) — are NOT laid out
|
|
71595
|
+
// by the browser compositor. The canvas lib reads getComputedStyle().left/top (a
|
|
71596
|
+
// sub-pixel value) and draws the element to a bitmap, so animating a layout prop on
|
|
71597
|
+
// them does not integer-snap and does not stutter. We resolve each tween's target to
|
|
71598
|
+
// its element(s) and skip the finding only when EVERY target is html-in-canvas; a
|
|
71599
|
+
// grouped tween that also touches a plain-DOM element (which does stutter) still fires.
|
|
71600
|
+
//
|
|
71601
|
+
// No suppression by design: there is intentionally no per-line/per-file opt-out (unlike
|
|
71602
|
+
// eslint-disable). The stance is fix-the-motion, not silence-the-rule — a plain-DOM
|
|
71603
|
+
// layout-prop animation always has a faithful transform equivalent (per-glyph x for
|
|
71604
|
+
// spacing, scale for size, x/y for position). An author who has consciously accepted a
|
|
71605
|
+
// stutter still has no flag to flip; that is deliberate, not a missing feature.
|
|
71606
|
+
async ({ scripts, tags, source }) => {
|
|
71607
|
+
const findings = [];
|
|
71608
|
+
const layoutSubtreeRanges = tags.filter((t2) => t2.name.toLowerCase() === "canvas" && /\blayoutsubtree\b/i.test(t2.raw)).map((t2) => ({ start: t2.index, end: findTagEnd2(source, t2) }));
|
|
71609
|
+
const isHtmlInCanvas = (tag) => layoutSubtreeRanges.some((r2) => tag.index > r2.start && tag.index < r2.end);
|
|
71610
|
+
const tagsByToken = /* @__PURE__ */ new Map();
|
|
71611
|
+
const addToken = (token, tag) => {
|
|
71612
|
+
const list = tagsByToken.get(token);
|
|
71613
|
+
if (list) list.push(tag);
|
|
71614
|
+
else tagsByToken.set(token, [tag]);
|
|
71615
|
+
};
|
|
71616
|
+
for (const tag of tags) {
|
|
71617
|
+
const id = readAttr(tag.raw, "id");
|
|
71618
|
+
if (id) addToken(`#${id}`, tag);
|
|
71619
|
+
for (const cls of readAttr(tag.raw, "class")?.split(/\s+/).filter(Boolean) ?? [])
|
|
71620
|
+
addToken(`.${cls}`, tag);
|
|
71621
|
+
}
|
|
71622
|
+
const allTargetsHtmlInCanvas = (selector) => {
|
|
71623
|
+
if (layoutSubtreeRanges.length === 0) return false;
|
|
71624
|
+
const matched = [...targetedSelectorTokens(selector)].flatMap(
|
|
71625
|
+
(token) => tagsByToken.get(token) ?? []
|
|
71626
|
+
);
|
|
71627
|
+
return matched.length > 0 && matched.every(isHtmlInCanvas);
|
|
71628
|
+
};
|
|
71629
|
+
const LAYOUT_FIX = {
|
|
71630
|
+
left: ["x"],
|
|
71631
|
+
right: ["x"],
|
|
71632
|
+
top: ["y"],
|
|
71633
|
+
bottom: ["y"],
|
|
71634
|
+
margin: ["x", "y"],
|
|
71635
|
+
marginLeft: ["x"],
|
|
71636
|
+
marginRight: ["x"],
|
|
71637
|
+
marginTop: ["y"],
|
|
71638
|
+
marginBottom: ["y"]
|
|
71639
|
+
};
|
|
71640
|
+
const REFLOW_PROPS = ["letterSpacing", "wordSpacing", "fontSize"];
|
|
71641
|
+
const parseGsapScript2 = await loadParseGsapScript();
|
|
71642
|
+
for (const script of scripts) {
|
|
71643
|
+
if (!/gsap\.timeline/.test(script.content)) continue;
|
|
71644
|
+
const parsed = parseGsapScript2(script.content);
|
|
71645
|
+
const calls = [
|
|
71646
|
+
...parsed.animations.map((anim) => ({
|
|
71647
|
+
method: anim.method,
|
|
71648
|
+
selector: anim.targetSelector,
|
|
71649
|
+
// Union the from-vars: a fromTo() can animate a layout/reflow prop that appears
|
|
71650
|
+
// only in its first ("from") object, which is just as stutter-prone as the to-vars.
|
|
71651
|
+
properties: [
|
|
71652
|
+
.../* @__PURE__ */ new Set([
|
|
71653
|
+
...Object.keys(anim.properties),
|
|
71654
|
+
...Object.keys(anim.fromProperties ?? {})
|
|
71655
|
+
])
|
|
71656
|
+
],
|
|
71657
|
+
raw: synthesizeWindowRaw(parsed.timelineVar, anim)
|
|
71658
|
+
})),
|
|
71659
|
+
...extractStandaloneGsapTransformCalls(stripJsComments(script.content))
|
|
71660
|
+
];
|
|
71661
|
+
for (const call of calls) {
|
|
71662
|
+
if (call.method === "set") continue;
|
|
71663
|
+
let layoutProps = call.properties.filter((p2) => Object.hasOwn(LAYOUT_FIX, p2));
|
|
71664
|
+
const reflowProps = call.properties.filter((p2) => REFLOW_PROPS.includes(p2));
|
|
71665
|
+
const usesRoundProps = call.properties.includes("roundProps");
|
|
71666
|
+
if (layoutProps.length > 0 && allTargetsHtmlInCanvas(call.selector)) layoutProps = [];
|
|
71667
|
+
if (layoutProps.length === 0 && reflowProps.length === 0 && !usesRoundProps) continue;
|
|
71668
|
+
const flagged = [...layoutProps, ...reflowProps, ...usesRoundProps ? ["roundProps"] : []];
|
|
71669
|
+
const message = `GSAP tween on "${call.selector}" uses motion that snaps to integer device pixels: ${flagged.join(", ")}. Layout and text-reflow properties snap during browser layout; roundProps rounds the tween value. Slow motion or an ease-out tail then stutters under the seek-by-frame capture engine \u2014 animate transforms (x/y/scale/opacity) instead.`;
|
|
71670
|
+
const fixes = [];
|
|
71671
|
+
if (layoutProps.length > 0) {
|
|
71672
|
+
const tokens = [...new Set(layoutProps.flatMap((p2) => LAYOUT_FIX[p2] ?? []))];
|
|
71673
|
+
fixes.push(
|
|
71674
|
+
`replace ${layoutProps.join("/")} with the transform equivalent (${tokens.join(", ")}) \u2014 e.g. tl.fromTo("${call.selector}", { x: -1300 }, { x: 0, ...yourAnimation })`
|
|
71675
|
+
);
|
|
71676
|
+
}
|
|
71677
|
+
if (reflowProps.length > 0) {
|
|
71678
|
+
const sizing = reflowProps.filter((p2) => p2 === "fontSize");
|
|
71679
|
+
const spacing = reflowProps.filter((p2) => p2 !== "fontSize");
|
|
71680
|
+
const parts = [];
|
|
71681
|
+
if (sizing.length > 0) {
|
|
71682
|
+
parts.push(`replace ${sizing.join("/")} with scale (same visual, no reflow)`);
|
|
71683
|
+
}
|
|
71684
|
+
if (spacing.length > 0) {
|
|
71685
|
+
parts.push(
|
|
71686
|
+
`for ${spacing.join("/")}, split the text into per-character elements and animate each glyph's x (the spread) \u2014 uniform scale is NOT equivalent \u2014 or hold the final value statically`
|
|
71687
|
+
);
|
|
71688
|
+
}
|
|
71689
|
+
fixes.push(
|
|
71690
|
+
`do not animate ${reflowProps.join("/")} (they reflow text and snap glyph positions): ` + parts.join("; ")
|
|
71691
|
+
);
|
|
71692
|
+
}
|
|
71693
|
+
if (usesRoundProps) fixes.push("remove roundProps");
|
|
71694
|
+
const fixHint = `${fixes.join("; ")}. Transforms interpolate sub-pixel and stay smooth at any speed.`;
|
|
71695
|
+
findings.push({
|
|
71696
|
+
code: "gsap_non_transform_motion",
|
|
71697
|
+
severity: "error",
|
|
71698
|
+
message,
|
|
71699
|
+
selector: call.selector,
|
|
71700
|
+
fixHint,
|
|
71701
|
+
snippet: truncateSnippet(call.raw)
|
|
71702
|
+
});
|
|
71703
|
+
}
|
|
71704
|
+
}
|
|
71705
|
+
return findings;
|
|
71706
|
+
},
|
|
71355
71707
|
// gsap_group_selector_keyframes
|
|
71356
71708
|
({ scripts }) => {
|
|
71357
71709
|
const findings = [];
|
|
@@ -72981,31 +73333,9 @@ function assignBundledRuntimeCompositionIds(hosts, counts = countBundledAuthored
|
|
|
72981
73333
|
}
|
|
72982
73334
|
return identities;
|
|
72983
73335
|
}
|
|
72984
|
-
function parseHostVariableValues(host) {
|
|
72985
|
-
const raw = host.getAttribute("data-variable-values");
|
|
72986
|
-
if (!raw)
|
|
72987
|
-
return {};
|
|
72988
|
-
let parsed;
|
|
72989
|
-
try {
|
|
72990
|
-
parsed = JSON.parse(raw);
|
|
72991
|
-
} catch {
|
|
72992
|
-
return {};
|
|
72993
|
-
}
|
|
72994
|
-
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
|
|
72995
|
-
return {};
|
|
72996
|
-
return parsed;
|
|
72997
|
-
}
|
|
72998
73336
|
function prepareFlattenedInnerRoot(innerRoot) {
|
|
72999
73337
|
const prepared = innerRoot.cloneNode(true);
|
|
73000
|
-
|
|
73001
|
-
for (const attrName of FLATTENED_INNER_ROOT_STRIP_ATTRS) {
|
|
73002
|
-
prepared.removeAttribute(attrName);
|
|
73003
|
-
}
|
|
73004
|
-
if (authoredRootId) {
|
|
73005
|
-
prepared.removeAttribute("id");
|
|
73006
|
-
prepared.setAttribute("data-hf-authored-id", authoredRootId);
|
|
73007
|
-
}
|
|
73008
|
-
prepared.setAttribute("data-hf-inner-root", "true");
|
|
73338
|
+
markFlattenedInnerRoot(prepared);
|
|
73009
73339
|
const w3 = prepared.getAttribute("data-width");
|
|
73010
73340
|
const h3 = prepared.getAttribute("data-height");
|
|
73011
73341
|
const widthVal = w3 ? `${w3}px` : "100%";
|
|
@@ -73340,6 +73670,7 @@ async function bundleToSingleHtml(projectDir, options) {
|
|
|
73340
73670
|
if (runtimeCompId && Object.keys(mergedVariables).length > 0) {
|
|
73341
73671
|
compVariablesByComp[runtimeCompId] = mergedVariables;
|
|
73342
73672
|
}
|
|
73673
|
+
pushSubCompVariableStyles(innerDoc, innerRoot, mergedVariables, runtimeScope, compStyleChunks);
|
|
73343
73674
|
if (innerRoot) {
|
|
73344
73675
|
for (const styleEl of [...innerRoot.querySelectorAll("style")]) {
|
|
73345
73676
|
const css = styleEl.textContent || "";
|
|
@@ -73401,14 +73732,16 @@ async function bundleToSingleHtml(projectDir, options) {
|
|
|
73401
73732
|
style.textContent = compStyleChunks.join("\n\n");
|
|
73402
73733
|
document2.head.appendChild(style);
|
|
73403
73734
|
}
|
|
73404
|
-
|
|
73405
|
-
|
|
73735
|
+
const variablesByCompScript = buildVariablesByCompScript(compVariablesByComp);
|
|
73736
|
+
if (variablesByCompScript) {
|
|
73737
|
+
compScriptChunks.unshift(variablesByCompScript);
|
|
73406
73738
|
}
|
|
73407
73739
|
if (compScriptChunks.length) {
|
|
73408
73740
|
const compScript = document2.createElement("script");
|
|
73409
73741
|
compScript.textContent = joinJsChunks(compScriptChunks);
|
|
73410
73742
|
document2.body.appendChild(compScript);
|
|
73411
73743
|
}
|
|
73744
|
+
emitRootCompositionVariableStyles(document2, compVariablesByComp);
|
|
73412
73745
|
enforceCompositionPixelSizing(document2);
|
|
73413
73746
|
autoHealMissingCompositionIds(document2);
|
|
73414
73747
|
coalesceHeadStylesAndBodyScripts(document2);
|
|
@@ -73444,10 +73777,110 @@ async function bundleToSingleHtml(projectDir, options) {
|
|
|
73444
73777
|
}
|
|
73445
73778
|
return document2.toString();
|
|
73446
73779
|
}
|
|
73447
|
-
|
|
73780
|
+
function compositionVariablesCssBlock(variables, selector) {
|
|
73781
|
+
const lines = [];
|
|
73782
|
+
for (const [id, value] of Object.entries(variables)) {
|
|
73783
|
+
if (typeof value === "string" && value !== "" || typeof value === "number") {
|
|
73784
|
+
lines.push(` ${cssVariableName(id)}: ${String(value)};`);
|
|
73785
|
+
}
|
|
73786
|
+
}
|
|
73787
|
+
if (lines.length === 0)
|
|
73788
|
+
return null;
|
|
73789
|
+
return `${selector} {
|
|
73790
|
+
${lines.join("\n")}
|
|
73791
|
+
}`;
|
|
73792
|
+
}
|
|
73793
|
+
function emitRootCompositionVariableStyles(document2, variablesByComp = {}, overrides = {}) {
|
|
73794
|
+
const layerFor = makeVariableLayer(document2, overrides);
|
|
73795
|
+
const rules = [
|
|
73796
|
+
...hostScopedVariableRules(variablesByComp, overrides),
|
|
73797
|
+
...rootDeclaredVariableRules(document2, layerFor),
|
|
73798
|
+
...declarerVariableRules(document2, layerFor)
|
|
73799
|
+
];
|
|
73800
|
+
if (rules.length === 0)
|
|
73801
|
+
return false;
|
|
73802
|
+
const style = document2.createElement("style");
|
|
73803
|
+
style.setAttribute("data-hf-composition-variables", "");
|
|
73804
|
+
style.textContent = rules.join("\n\n");
|
|
73805
|
+
document2.head.appendChild(style);
|
|
73806
|
+
return true;
|
|
73807
|
+
}
|
|
73808
|
+
function makeVariableLayer(document2, overrides) {
|
|
73809
|
+
const authoredCss = [...document2.querySelectorAll("style:not([data-hf-composition-variables])")].map((s2) => s2.textContent || "").join("\n");
|
|
73810
|
+
const authoredDefines = (id) => new RegExp(`${cssVariableName(id)}\\s*:`).test(authoredCss);
|
|
73811
|
+
return (declared, hostValues) => {
|
|
73812
|
+
const out = {};
|
|
73813
|
+
for (const [id, value] of Object.entries(declared)) {
|
|
73814
|
+
if (!authoredDefines(id))
|
|
73815
|
+
out[id] = value;
|
|
73816
|
+
}
|
|
73817
|
+
for (const [id, value] of Object.entries(hostValues)) {
|
|
73818
|
+
if (id in declared)
|
|
73819
|
+
out[id] = value;
|
|
73820
|
+
}
|
|
73821
|
+
for (const [id, value] of Object.entries(overrides)) {
|
|
73822
|
+
if (id in declared || id in hostValues)
|
|
73823
|
+
out[id] = value;
|
|
73824
|
+
}
|
|
73825
|
+
return out;
|
|
73826
|
+
};
|
|
73827
|
+
}
|
|
73828
|
+
function hostScopedVariableRules(variablesByComp, overrides) {
|
|
73829
|
+
const rules = [];
|
|
73830
|
+
for (const [compId, vars] of Object.entries(variablesByComp)) {
|
|
73831
|
+
const withOverrides = { ...vars };
|
|
73832
|
+
for (const [id, value] of Object.entries(overrides)) {
|
|
73833
|
+
if (id in vars)
|
|
73834
|
+
withOverrides[id] = value;
|
|
73835
|
+
}
|
|
73836
|
+
const rule = compositionVariablesCssBlock(withOverrides, cssAttributeSelector("data-composition-id", compId));
|
|
73837
|
+
if (rule)
|
|
73838
|
+
rules.push(rule);
|
|
73839
|
+
}
|
|
73840
|
+
return rules;
|
|
73841
|
+
}
|
|
73842
|
+
function rootDeclaredVariableRules(document2, layerFor) {
|
|
73843
|
+
const htmlDeclared = readDeclaredDefaults(document2.documentElement);
|
|
73844
|
+
const htmlRule = compositionVariablesCssBlock(layerFor(htmlDeclared, {}), ":root");
|
|
73845
|
+
return htmlRule ? [htmlRule] : [];
|
|
73846
|
+
}
|
|
73847
|
+
function declarerVariableRules(document2, layerFor) {
|
|
73848
|
+
const rules = [];
|
|
73849
|
+
let markerSeq = 0;
|
|
73850
|
+
for (const el of [...document2.querySelectorAll("[data-composition-variables]")]) {
|
|
73851
|
+
const declared = readDeclaredDefaults(el);
|
|
73852
|
+
const hostEl = typeof el.closest === "function" ? el.parentElement?.closest("[data-variable-values]") : null;
|
|
73853
|
+
const hostValues = hostEl ? parseHostVariableValues(hostEl) : {};
|
|
73854
|
+
const vars = layerFor(declared, hostValues);
|
|
73855
|
+
if (Object.keys(vars).length === 0)
|
|
73856
|
+
continue;
|
|
73857
|
+
markerSeq += 1;
|
|
73858
|
+
el.setAttribute("data-hf-var-scope", String(markerSeq));
|
|
73859
|
+
const rule = compositionVariablesCssBlock(vars, `[data-hf-var-scope="${markerSeq}"]`);
|
|
73860
|
+
if (rule)
|
|
73861
|
+
rules.push(rule);
|
|
73862
|
+
}
|
|
73863
|
+
return rules;
|
|
73864
|
+
}
|
|
73865
|
+
function pushSubCompVariableStyles(innerDoc, innerRoot, mergedVariables, runtimeScope, compStyleChunks) {
|
|
73866
|
+
if (!runtimeScope)
|
|
73867
|
+
return;
|
|
73868
|
+
const declaredForCss = readDeclaredDefaults(innerDoc.documentElement);
|
|
73869
|
+
const innerRootForVars = innerRoot ?? innerDoc.querySelector("[data-composition-variables]");
|
|
73870
|
+
if (innerRootForVars)
|
|
73871
|
+
Object.assign(declaredForCss, readDeclaredDefaults(innerRootForVars));
|
|
73872
|
+
const cssVars = compositionVariablesCssBlock({ ...declaredForCss, ...mergedVariables }, runtimeScope);
|
|
73873
|
+
if (cssVars)
|
|
73874
|
+
compStyleChunks.push(cssVars);
|
|
73875
|
+
}
|
|
73876
|
+
var DEFAULT_RUNTIME_SCRIPT_URL, CSS_IMPORT_RE, CSS_COMMENT_RE, INLINE_MIME;
|
|
73448
73877
|
var init_htmlBundler = __esm({
|
|
73449
73878
|
"../core/dist/compiler/htmlBundler.js"() {
|
|
73450
73879
|
"use strict";
|
|
73880
|
+
init_flattenedRoot();
|
|
73881
|
+
init_flattenedRoot();
|
|
73882
|
+
init_getVariables();
|
|
73883
|
+
init_tokenSlug();
|
|
73451
73884
|
init_assetPaths();
|
|
73452
73885
|
init_htmlCompiler();
|
|
73453
73886
|
init_htmlDocument();
|
|
@@ -73469,18 +73902,6 @@ var init_htmlBundler = __esm({
|
|
|
73469
73902
|
".cube": "text/plain",
|
|
73470
73903
|
".xml": "application/xml"
|
|
73471
73904
|
};
|
|
73472
|
-
FLATTENED_INNER_ROOT_STRIP_ATTRS = [
|
|
73473
|
-
"data-composition-id",
|
|
73474
|
-
"data-composition-file",
|
|
73475
|
-
"data-start",
|
|
73476
|
-
"data-duration",
|
|
73477
|
-
"data-end",
|
|
73478
|
-
"data-track-index",
|
|
73479
|
-
"data-track",
|
|
73480
|
-
"data-composition-src",
|
|
73481
|
-
"data-hf-authored-duration",
|
|
73482
|
-
"data-hf-authored-end"
|
|
73483
|
-
];
|
|
73484
73905
|
}
|
|
73485
73906
|
});
|
|
73486
73907
|
|
|
@@ -73491,11 +73912,14 @@ __export(compiler_exports, {
|
|
|
73491
73912
|
FLATTENED_INNER_ROOT_STRIP_ATTRS: () => FLATTENED_INNER_ROOT_STRIP_ATTRS,
|
|
73492
73913
|
PATH_ATTRS: () => PATH_ATTRS,
|
|
73493
73914
|
RUNTIME_BOOTSTRAP_ATTR: () => RUNTIME_BOOTSTRAP_ATTR,
|
|
73915
|
+
assignBundledRuntimeCompositionIds: () => assignBundledRuntimeCompositionIds,
|
|
73916
|
+
buildVariablesByCompScript: () => buildVariablesByCompScript,
|
|
73494
73917
|
bundleToSingleHtml: () => bundleToSingleHtml,
|
|
73495
73918
|
checkSubCompositionUsability: () => checkSubCompositionUsability,
|
|
73496
73919
|
clampDurations: () => clampDurations,
|
|
73497
73920
|
compileHtml: () => compileHtml,
|
|
73498
73921
|
compileTimingAttrs: () => compileTimingAttrs,
|
|
73922
|
+
emitRootCompositionVariableStyles: () => emitRootCompositionVariableStyles,
|
|
73499
73923
|
extractResolvedMedia: () => extractResolvedMedia,
|
|
73500
73924
|
injectDurations: () => injectDurations,
|
|
73501
73925
|
injectScriptsAtHeadStart: () => injectScriptsAtHeadStart,
|
|
@@ -73504,7 +73928,9 @@ __export(compiler_exports, {
|
|
|
73504
73928
|
isNonRelativeUrl: () => isNonRelativeUrl,
|
|
73505
73929
|
isPathInside: () => isPathInside,
|
|
73506
73930
|
parseHTMLContent: () => parseHTMLContent,
|
|
73931
|
+
parseHostVariableValues: () => parseHostVariableValues,
|
|
73507
73932
|
prepareFlattenedInnerRoot: () => prepareFlattenedInnerRoot,
|
|
73933
|
+
readDeclaredDefaults: () => readDeclaredDefaults,
|
|
73508
73934
|
resolveTimings: () => resolveTimings,
|
|
73509
73935
|
scopeCssToComposition: () => scopeCssToComposition,
|
|
73510
73936
|
shouldClampMediaDuration: () => shouldClampMediaDuration,
|
|
@@ -73519,6 +73945,7 @@ var init_compiler = __esm({
|
|
|
73519
73945
|
init_timingCompiler();
|
|
73520
73946
|
init_htmlCompiler();
|
|
73521
73947
|
init_htmlBundler();
|
|
73948
|
+
init_getVariables();
|
|
73522
73949
|
init_htmlDocument();
|
|
73523
73950
|
init_staticGuard();
|
|
73524
73951
|
init_compositionScoping();
|
|
@@ -73800,50 +74227,6 @@ function isVideoFrameFormat(value) {
|
|
|
73800
74227
|
function sdrToHdrTransformKey(transfer) {
|
|
73801
74228
|
return `sdr2hdr-${transfer}`;
|
|
73802
74229
|
}
|
|
73803
|
-
function findReferenceTargetEl(doc, refId) {
|
|
73804
|
-
return doc.getElementById(refId) ?? doc.querySelector(`[data-composition-id="${refId}"]`);
|
|
73805
|
-
}
|
|
73806
|
-
function resolveReferencedStart(doc, el, startCache, visiting) {
|
|
73807
|
-
const cached2 = startCache.get(el);
|
|
73808
|
-
if (cached2 !== void 0) return cached2;
|
|
73809
|
-
if (visiting.has(el)) return 0;
|
|
73810
|
-
visiting.add(el);
|
|
73811
|
-
try {
|
|
73812
|
-
const expression = parseStartExpression(el.getAttribute("data-start"));
|
|
73813
|
-
if (!expression) {
|
|
73814
|
-
startCache.set(el, 0);
|
|
73815
|
-
return 0;
|
|
73816
|
-
}
|
|
73817
|
-
if (expression.kind === "absolute") {
|
|
73818
|
-
const value = Math.max(0, expression.value);
|
|
73819
|
-
startCache.set(el, value);
|
|
73820
|
-
return value;
|
|
73821
|
-
}
|
|
73822
|
-
const target = findReferenceTargetEl(doc, expression.refId);
|
|
73823
|
-
if (!target) {
|
|
73824
|
-
startCache.set(el, 0);
|
|
73825
|
-
return 0;
|
|
73826
|
-
}
|
|
73827
|
-
const targetStart = resolveReferencedStart(doc, target, startCache, visiting);
|
|
73828
|
-
const targetDuration = resolveReferencedDuration(doc, target, startCache, visiting);
|
|
73829
|
-
const resolved = targetDuration != null && targetDuration > 0 ? Math.max(0, targetStart + targetDuration + expression.offset) : Math.max(0, targetStart + expression.offset);
|
|
73830
|
-
startCache.set(el, resolved);
|
|
73831
|
-
return resolved;
|
|
73832
|
-
} finally {
|
|
73833
|
-
visiting.delete(el);
|
|
73834
|
-
}
|
|
73835
|
-
}
|
|
73836
|
-
function resolveReferencedDuration(doc, el, startCache, visiting) {
|
|
73837
|
-
const durationAttr = parseNumeric(el.getAttribute("data-duration"));
|
|
73838
|
-
if (durationAttr != null && durationAttr > 0) return durationAttr;
|
|
73839
|
-
const endAttr = parseNumeric(el.getAttribute("data-end"));
|
|
73840
|
-
if (endAttr != null) {
|
|
73841
|
-
const start = resolveReferencedStart(doc, el, startCache, visiting);
|
|
73842
|
-
const delta = endAttr - start;
|
|
73843
|
-
if (Number.isFinite(delta) && delta > 0) return delta;
|
|
73844
|
-
}
|
|
73845
|
-
return null;
|
|
73846
|
-
}
|
|
73847
74230
|
function parseVideoElements(html) {
|
|
73848
74231
|
const videos = [];
|
|
73849
74232
|
const { document: document2 } = parseHTML(unwrapTemplate(html));
|
|
@@ -74596,6 +74979,7 @@ var init_videoFrameExtractor = __esm({
|
|
|
74596
74979
|
init_esm10();
|
|
74597
74980
|
init_dist3();
|
|
74598
74981
|
init_processTracker();
|
|
74982
|
+
init_referenceResolver();
|
|
74599
74983
|
init_ffprobe();
|
|
74600
74984
|
init_hdr();
|
|
74601
74985
|
init_urlDownloader();
|
|
@@ -75352,47 +75736,37 @@ function buildVolumeExpression(track, ignoreKeyframes = false) {
|
|
|
75352
75736
|
function parseAudioElements(html) {
|
|
75353
75737
|
const elements = [];
|
|
75354
75738
|
const { document: document2 } = parseHTML(unwrapTemplate(html));
|
|
75355
|
-
const
|
|
75356
|
-
|
|
75357
|
-
|
|
75358
|
-
|
|
75359
|
-
|
|
75360
|
-
|
|
75361
|
-
|
|
75739
|
+
const startCache = /* @__PURE__ */ new Map();
|
|
75740
|
+
const visiting = /* @__PURE__ */ new Set();
|
|
75741
|
+
const resolveStart = (el) => el.getAttribute("data-start") ? resolveReferencedStart(document2, el, startCache, visiting) : 0;
|
|
75742
|
+
const parseEnd = (raw) => {
|
|
75743
|
+
const end = raw ? parseFloat(raw) : 0;
|
|
75744
|
+
return Number.isFinite(end) ? end : 0;
|
|
75745
|
+
};
|
|
75746
|
+
const build = (el, id, type) => {
|
|
75362
75747
|
const mediaStartAttr = el.getAttribute("data-media-start");
|
|
75363
75748
|
const layerAttr = el.getAttribute("data-layer");
|
|
75364
75749
|
const volumeAttr = el.getAttribute("data-volume");
|
|
75365
|
-
|
|
75750
|
+
return {
|
|
75366
75751
|
id,
|
|
75367
|
-
src,
|
|
75368
|
-
start:
|
|
75369
|
-
end:
|
|
75752
|
+
src: el.getAttribute("src"),
|
|
75753
|
+
start: resolveStart(el),
|
|
75754
|
+
end: parseEnd(el.getAttribute("data-end")),
|
|
75370
75755
|
mediaStart: mediaStartAttr ? parseFloat(mediaStartAttr) : 0,
|
|
75371
75756
|
layer: layerAttr ? parseInt(layerAttr) : 0,
|
|
75372
75757
|
volume: volumeAttr ? parseFloat(volumeAttr) : 1,
|
|
75373
|
-
type
|
|
75374
|
-
}
|
|
75758
|
+
type
|
|
75759
|
+
};
|
|
75760
|
+
};
|
|
75761
|
+
for (const el of document2.querySelectorAll("audio[id][src]")) {
|
|
75762
|
+
const id = el.getAttribute("id");
|
|
75763
|
+
if (!id || !el.getAttribute("src")) continue;
|
|
75764
|
+
elements.push(build(el, id, "audio"));
|
|
75375
75765
|
}
|
|
75376
|
-
const
|
|
75377
|
-
for (const el of videoEls) {
|
|
75766
|
+
for (const el of document2.querySelectorAll('video[id][src][data-has-audio="true"]')) {
|
|
75378
75767
|
const id = el.getAttribute("id");
|
|
75379
|
-
|
|
75380
|
-
|
|
75381
|
-
const startAttr = el.getAttribute("data-start");
|
|
75382
|
-
const endAttr = el.getAttribute("data-end");
|
|
75383
|
-
const mediaStartAttr = el.getAttribute("data-media-start");
|
|
75384
|
-
const layerAttr = el.getAttribute("data-layer");
|
|
75385
|
-
const volumeAttr = el.getAttribute("data-volume");
|
|
75386
|
-
elements.push({
|
|
75387
|
-
id: `${id}-audio`,
|
|
75388
|
-
src,
|
|
75389
|
-
start: startAttr ? parseFloat(startAttr) : 0,
|
|
75390
|
-
end: endAttr ? parseFloat(endAttr) : 0,
|
|
75391
|
-
mediaStart: mediaStartAttr ? parseFloat(mediaStartAttr) : 0,
|
|
75392
|
-
layer: layerAttr ? parseInt(layerAttr) : 0,
|
|
75393
|
-
volume: volumeAttr ? parseFloat(volumeAttr) : 1,
|
|
75394
|
-
type: "video"
|
|
75395
|
-
});
|
|
75768
|
+
if (!id || !el.getAttribute("src")) continue;
|
|
75769
|
+
elements.push(build(el, `${id}-audio`, "video"));
|
|
75396
75770
|
}
|
|
75397
75771
|
return elements;
|
|
75398
75772
|
}
|
|
@@ -75704,6 +76078,7 @@ var init_audioMixer = __esm({
|
|
|
75704
76078
|
init_runFfmpeg();
|
|
75705
76079
|
init_htmlTemplate();
|
|
75706
76080
|
init_videoFrameExtractor();
|
|
76081
|
+
init_referenceResolver();
|
|
75707
76082
|
init_audioVolumeEnvelope();
|
|
75708
76083
|
MAX_VOLUME_SEGMENTS = 32;
|
|
75709
76084
|
VOLUME_SIMPLIFY_EPSILON = 5e-3;
|
|
@@ -75880,19 +76255,79 @@ function distributeFrames(totalFrames, workerCount, workDir, rangeStart = 0) {
|
|
|
75880
76255
|
}
|
|
75881
76256
|
return tasks;
|
|
75882
76257
|
}
|
|
76258
|
+
function distributeFramesInterleaved(totalFrames, workerCount, workDir, rangeStart = 0) {
|
|
76259
|
+
const tasks = [];
|
|
76260
|
+
for (let i2 = 0; i2 < workerCount && i2 < totalFrames; i2++) {
|
|
76261
|
+
tasks.push({
|
|
76262
|
+
workerId: i2,
|
|
76263
|
+
startFrame: rangeStart + i2,
|
|
76264
|
+
endFrame: rangeStart + totalFrames,
|
|
76265
|
+
frameStride: workerCount,
|
|
76266
|
+
outputDir: join15(workDir, `worker-${i2}`),
|
|
76267
|
+
outputFrameOffset: rangeStart
|
|
76268
|
+
});
|
|
76269
|
+
}
|
|
76270
|
+
return tasks;
|
|
76271
|
+
}
|
|
75883
76272
|
function shouldVerifyWorkerGpu(workerId, config) {
|
|
75884
76273
|
return config?.browserGpuMode === "software" && workerId === 0;
|
|
75885
76274
|
}
|
|
75886
76275
|
async function captureFrameRange(session, task, captureOptions, signal, onFrameCaptured, onFrameBuffer) {
|
|
75887
76276
|
let framesCaptured = 0;
|
|
75888
76277
|
const outputOffset = task.outputFrameOffset ?? 0;
|
|
75889
|
-
|
|
76278
|
+
const stride = task.frameStride ?? 1;
|
|
76279
|
+
if (onFrameBuffer && session.workerEncodeEnabled) {
|
|
76280
|
+
const dbg = process.env.HF_DE_PAR_DEBUG === "1";
|
|
76281
|
+
const dbgT0 = Date.now();
|
|
76282
|
+
const dbgWin = 40 * stride;
|
|
76283
|
+
let prev = null;
|
|
76284
|
+
for (let i2 = task.startFrame; i2 < task.endFrame; i2 += stride) {
|
|
76285
|
+
if (signal?.aborted) throw new Error("Parallel worker cancelled");
|
|
76286
|
+
const time = i2 * captureOptions.fps.den / captureOptions.fps.num;
|
|
76287
|
+
if (dbg && i2 < task.startFrame + dbgWin) {
|
|
76288
|
+
console.log(`[par:w${task.workerId}] +${Date.now() - dbgT0}ms produce ${i2} start`);
|
|
76289
|
+
}
|
|
76290
|
+
const { encodeResult } = await captureFrameToBufferPipelined(session, i2 - outputOffset, time);
|
|
76291
|
+
encodeResult.catch(() => {
|
|
76292
|
+
});
|
|
76293
|
+
if (dbg && i2 < task.startFrame + dbgWin) {
|
|
76294
|
+
console.log(`[par:w${task.workerId}] +${Date.now() - dbgT0}ms produce ${i2} kicked`);
|
|
76295
|
+
}
|
|
76296
|
+
if (prev) {
|
|
76297
|
+
if (dbg && prev.idx < task.startFrame + dbgWin) {
|
|
76298
|
+
console.log(
|
|
76299
|
+
`[par:w${task.workerId}] +${Date.now() - dbgT0}ms drain ${prev.idx} await-encode`
|
|
76300
|
+
);
|
|
76301
|
+
}
|
|
76302
|
+
const buf = await prev.encodeResult;
|
|
76303
|
+
if (dbg && prev.idx < task.startFrame + dbgWin) {
|
|
76304
|
+
console.log(
|
|
76305
|
+
`[par:w${task.workerId}] +${Date.now() - dbgT0}ms drain ${prev.idx} encoded ${buf.length}B`
|
|
76306
|
+
);
|
|
76307
|
+
}
|
|
76308
|
+
await onFrameBuffer(prev.idx, buf, session);
|
|
76309
|
+
if (dbg && prev.idx < task.startFrame + dbgWin) {
|
|
76310
|
+
console.log(`[par:w${task.workerId}] +${Date.now() - dbgT0}ms drain ${prev.idx} written`);
|
|
76311
|
+
}
|
|
76312
|
+
framesCaptured++;
|
|
76313
|
+
if (onFrameCaptured) onFrameCaptured(task.workerId, prev.idx);
|
|
76314
|
+
}
|
|
76315
|
+
prev = { idx: i2, encodeResult };
|
|
76316
|
+
}
|
|
76317
|
+
if (prev) {
|
|
76318
|
+
await onFrameBuffer(prev.idx, await prev.encodeResult, session);
|
|
76319
|
+
framesCaptured++;
|
|
76320
|
+
if (onFrameCaptured) onFrameCaptured(task.workerId, prev.idx);
|
|
76321
|
+
}
|
|
76322
|
+
return framesCaptured;
|
|
76323
|
+
}
|
|
76324
|
+
for (let i2 = task.startFrame; i2 < task.endFrame; i2 += stride) {
|
|
75890
76325
|
if (signal?.aborted) throw new Error("Parallel worker cancelled");
|
|
75891
76326
|
const time = i2 * captureOptions.fps.den / captureOptions.fps.num;
|
|
75892
76327
|
const fileFrameIdx = i2 - outputOffset;
|
|
75893
76328
|
if (onFrameBuffer) {
|
|
75894
76329
|
const { buffer } = await captureFrameToBuffer(session, fileFrameIdx, time);
|
|
75895
|
-
await onFrameBuffer(i2, buffer);
|
|
76330
|
+
await onFrameBuffer(i2, buffer, session);
|
|
75896
76331
|
} else {
|
|
75897
76332
|
await captureFrame(session, fileFrameIdx, time);
|
|
75898
76333
|
}
|
|
@@ -75923,10 +76358,18 @@ async function executeWorkerTask(task, serverUrl, captureOptions, createBeforeCa
|
|
|
75923
76358
|
createBeforeCaptureHook(),
|
|
75924
76359
|
workerConfig
|
|
75925
76360
|
);
|
|
76361
|
+
if (process.env.HF_DE_PAR_DEBUG === "1") {
|
|
76362
|
+
console.log(`[par:w${task.workerId}] session created`);
|
|
76363
|
+
}
|
|
75926
76364
|
if (shouldVerifyWorkerGpu(task.workerId, workerConfig)) {
|
|
75927
76365
|
await assertSwiftShader(session.page, readWebGlVendorInfoFromCanvas);
|
|
75928
76366
|
}
|
|
75929
76367
|
await initializeSession(session);
|
|
76368
|
+
if (process.env.HF_DE_PAR_DEBUG === "1") {
|
|
76369
|
+
console.log(
|
|
76370
|
+
`[par:w${task.workerId}] init done (mode=${session.captureMode} workerEncode=${session.workerEncodeEnabled === true})`
|
|
76371
|
+
);
|
|
76372
|
+
}
|
|
75930
76373
|
framesCaptured = await captureFrameRange(
|
|
75931
76374
|
session,
|
|
75932
76375
|
task,
|
|
@@ -75963,7 +76406,10 @@ async function executeWorkerTask(task, serverUrl, captureOptions, createBeforeCa
|
|
|
75963
76406
|
}
|
|
75964
76407
|
}
|
|
75965
76408
|
async function executeParallelCapture(serverUrl, workDir, tasks, captureOptions, createBeforeCaptureHook, signal, onProgress, onFrameBuffer, config) {
|
|
75966
|
-
const totalFrames = tasks.reduce(
|
|
76409
|
+
const totalFrames = tasks.reduce(
|
|
76410
|
+
(sum, t2) => sum + Math.ceil((t2.endFrame - t2.startFrame) / (t2.frameStride ?? 1)),
|
|
76411
|
+
0
|
|
76412
|
+
);
|
|
75967
76413
|
const workerProgress = /* @__PURE__ */ new Map();
|
|
75968
76414
|
for (const task of tasks) workerProgress.set(task.workerId, 0);
|
|
75969
76415
|
const onFrameCaptured = (workerId, _frameIndex) => {
|
|
@@ -77655,6 +78101,7 @@ __export(src_exports, {
|
|
|
77655
78101
|
detectTransfer: () => detectTransfer,
|
|
77656
78102
|
discardWarmupCapture: () => discardWarmupCapture,
|
|
77657
78103
|
distributeFrames: () => distributeFrames,
|
|
78104
|
+
distributeFramesInterleaved: () => distributeFramesInterleaved,
|
|
77658
78105
|
downloadToTemp: () => downloadToTemp,
|
|
77659
78106
|
drainBrowserPool: () => drainBrowserPool,
|
|
77660
78107
|
encodeFramesChunkedConcat: () => encodeFramesChunkedConcat,
|
|
@@ -78329,6 +78776,7 @@ __export(events_exports, {
|
|
|
78329
78776
|
});
|
|
78330
78777
|
function renderObservabilityEventProperties(props) {
|
|
78331
78778
|
return {
|
|
78779
|
+
sub_timeline_wait: props.subTimelineWait,
|
|
78332
78780
|
observability_render_job_id: props.observabilityRenderJobId,
|
|
78333
78781
|
observability_composition_hash: props.observabilityCompositionHash,
|
|
78334
78782
|
observability_event_count: props.observabilityEventCount,
|
|
@@ -82260,23 +82708,15 @@ var init_updateCheck = __esm({
|
|
|
82260
82708
|
});
|
|
82261
82709
|
|
|
82262
82710
|
// src/utils/skillsManifest.ts
|
|
82263
|
-
var skillsManifest_exports = {};
|
|
82264
|
-
__export(skillsManifest_exports, {
|
|
82265
|
-
MANIFEST_FILE: () => MANIFEST_FILE,
|
|
82266
|
-
SKILLS_CLI_LOCK_PATHS_VERIFIED_AT: () => SKILLS_CLI_LOCK_PATHS_VERIFIED_AT,
|
|
82267
|
-
buildManifest: () => buildManifest,
|
|
82268
|
-
checkSkills: () => checkSkills,
|
|
82269
|
-
diffSkills: () => diffSkills,
|
|
82270
|
-
hashSkillBundle: () => hashSkillBundle,
|
|
82271
|
-
hyperframesSkillNames: () => hyperframesSkillNames,
|
|
82272
|
-
skillsAttributedToSource: () => skillsAttributedToSource
|
|
82273
|
-
});
|
|
82274
82711
|
import { execFile } from "child_process";
|
|
82275
82712
|
import { createHash as createHash3 } from "crypto";
|
|
82276
82713
|
import { existsSync as existsSync23, readdirSync as readdirSync9, readFileSync as readFileSync16, statSync as statSync6 } from "fs";
|
|
82277
82714
|
import { homedir as homedir6 } from "os";
|
|
82278
82715
|
import { isAbsolute as isAbsolute7, join as join23, relative as relative5, resolve as resolve13, sep as sep4 } from "path";
|
|
82279
82716
|
import { promisify } from "util";
|
|
82717
|
+
function isCoreSkill(name) {
|
|
82718
|
+
return name === ENTRY_SKILL || name.startsWith("hyperframes-") || name === "media-use";
|
|
82719
|
+
}
|
|
82280
82720
|
function listFilesSorted(dir) {
|
|
82281
82721
|
const out = [];
|
|
82282
82722
|
const walk = (d2) => {
|
|
@@ -82373,6 +82813,11 @@ function locateInstall(skillNames, opts = {}) {
|
|
|
82373
82813
|
}
|
|
82374
82814
|
return null;
|
|
82375
82815
|
}
|
|
82816
|
+
function presentSkills(skillNames, opts = {}) {
|
|
82817
|
+
const root = locateInstall([...skillNames], opts);
|
|
82818
|
+
if (!root) return [];
|
|
82819
|
+
return skillNames.filter((name) => existsSync23(join23(root.dir, name, "SKILL.md")));
|
|
82820
|
+
}
|
|
82376
82821
|
function hashInstalled(root, skillNames) {
|
|
82377
82822
|
const out = {};
|
|
82378
82823
|
for (const name of skillNames) {
|
|
@@ -82383,7 +82828,7 @@ function hashInstalled(root, skillNames) {
|
|
|
82383
82828
|
}
|
|
82384
82829
|
function diffSkills(installed, latest) {
|
|
82385
82830
|
const skills = [];
|
|
82386
|
-
const summary = { current: 0, outdated: 0, missing: 0 };
|
|
82831
|
+
const summary = { current: 0, outdated: 0, missing: 0, coreMissing: 0 };
|
|
82387
82832
|
for (const name of Object.keys(latest.skills).sort()) {
|
|
82388
82833
|
const latestEntry = latest.skills[name];
|
|
82389
82834
|
const installedEntry = installed[name];
|
|
@@ -82393,7 +82838,10 @@ function diffSkills(installed, latest) {
|
|
|
82393
82838
|
else status = "outdated";
|
|
82394
82839
|
if (status === "current") summary.current++;
|
|
82395
82840
|
else if (status === "outdated") summary.outdated++;
|
|
82396
|
-
else
|
|
82841
|
+
else {
|
|
82842
|
+
summary.missing++;
|
|
82843
|
+
if (isCoreSkill(name)) summary.coreMissing++;
|
|
82844
|
+
}
|
|
82397
82845
|
skills.push({
|
|
82398
82846
|
name,
|
|
82399
82847
|
status,
|
|
@@ -82402,9 +82850,14 @@ function diffSkills(installed, latest) {
|
|
|
82402
82850
|
});
|
|
82403
82851
|
}
|
|
82404
82852
|
return {
|
|
82405
|
-
//
|
|
82406
|
-
//
|
|
82407
|
-
|
|
82853
|
+
// "Update available" means the install is stale, not merely partial:
|
|
82854
|
+
// anything installed-but-outdated, or a missing CORE skill (the entry
|
|
82855
|
+
// router + shared domain skills every workflow needs). A missing
|
|
82856
|
+
// on-demand skill is NOT an update — it installs when its workflow is
|
|
82857
|
+
// triggered (`hyperframes skills update <name>`). Counting it here is what
|
|
82858
|
+
// used to make `init` re-pull the full skill set onto machines that
|
|
82859
|
+
// deliberately installed a subset.
|
|
82860
|
+
updateAvailable: summary.outdated > 0 || summary.coreMissing > 0,
|
|
82408
82861
|
summary,
|
|
82409
82862
|
skills
|
|
82410
82863
|
};
|
|
@@ -82532,7 +82985,7 @@ async function checkSkills(opts = {}) {
|
|
|
82532
82985
|
lockMissing
|
|
82533
82986
|
};
|
|
82534
82987
|
}
|
|
82535
|
-
var execFileAsync, TEXT_EXT, DEFAULT_REPO_SLUG, MANIFEST_FILE, FETCH_TIMEOUT_MS3, SKILLS_CLI_LOCK_PATHS_VERIFIED_AT;
|
|
82988
|
+
var execFileAsync, TEXT_EXT, DEFAULT_REPO_SLUG, MANIFEST_FILE, FETCH_TIMEOUT_MS3, ENTRY_SKILL, FALLBACK_CORE_SKILLS, SKILLS_CLI_LOCK_PATHS_VERIFIED_AT;
|
|
82536
82989
|
var init_skillsManifest = __esm({
|
|
82537
82990
|
"src/utils/skillsManifest.ts"() {
|
|
82538
82991
|
"use strict";
|
|
@@ -82556,6 +83009,17 @@ var init_skillsManifest = __esm({
|
|
|
82556
83009
|
DEFAULT_REPO_SLUG = "heygen-com/hyperframes";
|
|
82557
83010
|
MANIFEST_FILE = "skills-manifest.json";
|
|
82558
83011
|
FETCH_TIMEOUT_MS3 = 4e3;
|
|
83012
|
+
ENTRY_SKILL = "hyperframes";
|
|
83013
|
+
FALLBACK_CORE_SKILLS = [
|
|
83014
|
+
"hyperframes",
|
|
83015
|
+
"hyperframes-animation",
|
|
83016
|
+
"hyperframes-cli",
|
|
83017
|
+
"hyperframes-core",
|
|
83018
|
+
"hyperframes-creative",
|
|
83019
|
+
"hyperframes-keyframes",
|
|
83020
|
+
"hyperframes-registry",
|
|
83021
|
+
"media-use"
|
|
83022
|
+
];
|
|
82559
83023
|
SKILLS_CLI_LOCK_PATHS_VERIFIED_AT = "vercel-labs/skills@v1.5.13";
|
|
82560
83024
|
}
|
|
82561
83025
|
});
|
|
@@ -82714,7 +83178,7 @@ var skills_exports = {};
|
|
|
82714
83178
|
__export(skills_exports, {
|
|
82715
83179
|
default: () => skills_default,
|
|
82716
83180
|
examples: () => examples,
|
|
82717
|
-
|
|
83181
|
+
updateSkills: () => updateSkills
|
|
82718
83182
|
});
|
|
82719
83183
|
import { execFileSync as execFileSync4, spawn as spawn7 } from "child_process";
|
|
82720
83184
|
function hasNpx() {
|
|
@@ -82740,7 +83204,7 @@ function spawnNpx(args, opts = {}) {
|
|
|
82740
83204
|
const child = spawn7(npx.command, npx.args, {
|
|
82741
83205
|
stdio: "inherit",
|
|
82742
83206
|
// We install with --full-depth (a full `git clone` of the repo, the only
|
|
82743
|
-
// path that bypasses the laggy skills.sh blob — see
|
|
83207
|
+
// path that bypasses the laggy skills.sh blob — see GLOBAL_INSTALL_ARGS_TAIL),
|
|
82744
83208
|
// which is heavier than the blob fetch, so allow more headroom.
|
|
82745
83209
|
timeout: 3e5,
|
|
82746
83210
|
cwd: opts.cwd,
|
|
@@ -82767,8 +83231,15 @@ function spawnNpx(args, opts = {}) {
|
|
|
82767
83231
|
child.on("error", reject);
|
|
82768
83232
|
});
|
|
82769
83233
|
}
|
|
82770
|
-
function
|
|
82771
|
-
|
|
83234
|
+
function skillSelectionArgs(selection) {
|
|
83235
|
+
const names = selection === "*" ? ["*"] : selection;
|
|
83236
|
+
return names.flatMap((name) => ["--skill", name]);
|
|
83237
|
+
}
|
|
83238
|
+
function runSkillsAdd(source, selection, opts = {}) {
|
|
83239
|
+
return spawnNpx(
|
|
83240
|
+
["skills", "add", source, ...skillSelectionArgs(selection), ...GLOBAL_INSTALL_ARGS_TAIL],
|
|
83241
|
+
opts
|
|
83242
|
+
);
|
|
82772
83243
|
}
|
|
82773
83244
|
function runSkillsRemove(names, opts) {
|
|
82774
83245
|
const safe = names.filter((n2) => PLAIN_SKILL_NAME.test(n2));
|
|
@@ -82803,14 +83274,25 @@ function skillsToolingReady(strict) {
|
|
|
82803
83274
|
}
|
|
82804
83275
|
return true;
|
|
82805
83276
|
}
|
|
82806
|
-
|
|
83277
|
+
function sanitizeSelection(selection) {
|
|
83278
|
+
if (selection === "*") return selection;
|
|
83279
|
+
const rejected = selection.filter((n2) => !PLAIN_SKILL_NAME.test(n2));
|
|
83280
|
+
if (rejected.length) {
|
|
83281
|
+
R2.warn(c.warn(`Skipping unexpected skill name(s): ${rejected.join(", ")}`));
|
|
83282
|
+
}
|
|
83283
|
+
const safe = selection.filter((n2) => PLAIN_SKILL_NAME.test(n2));
|
|
83284
|
+
return safe.length > 0 ? safe : null;
|
|
83285
|
+
}
|
|
83286
|
+
async function installSkills(selection, opts = {}) {
|
|
83287
|
+
const safeSelection = sanitizeSelection(selection);
|
|
83288
|
+
if (safeSelection === null) return;
|
|
82807
83289
|
if (!skillsToolingReady(opts.strict ?? false)) return;
|
|
82808
83290
|
for (const source of SOURCES) {
|
|
82809
83291
|
console.log();
|
|
82810
83292
|
console.log(c.bold(`Installing ${source.name} skills...`));
|
|
82811
83293
|
console.log();
|
|
82812
83294
|
try {
|
|
82813
|
-
await runSkillsAdd(source.url, opts);
|
|
83295
|
+
await runSkillsAdd(source.url, safeSelection, opts);
|
|
82814
83296
|
} catch (err) {
|
|
82815
83297
|
if (opts.strict) throw err instanceof Error ? err : new Error(String(err));
|
|
82816
83298
|
console.log(c.dim(`${source.name} skills skipped`));
|
|
@@ -82818,8 +83300,77 @@ async function installAllSkills(opts = {}) {
|
|
|
82818
83300
|
}
|
|
82819
83301
|
mirrorToInstalledAgents();
|
|
82820
83302
|
}
|
|
82821
|
-
function
|
|
82822
|
-
const
|
|
83303
|
+
async function updateSkills(opts = {}) {
|
|
83304
|
+
const requested = [...new Set(opts.requested ?? [])];
|
|
83305
|
+
const strict = opts.strict ?? false;
|
|
83306
|
+
let check = null;
|
|
83307
|
+
try {
|
|
83308
|
+
check = await checkSkills({ cwd: opts.cwd });
|
|
83309
|
+
} catch {
|
|
83310
|
+
check = null;
|
|
83311
|
+
}
|
|
83312
|
+
if (!check) return updateSkillsOffline(requested, { strict, cwd: opts.cwd });
|
|
83313
|
+
const manifestSkills = check.skills.filter((s2) => s2.status !== "removed");
|
|
83314
|
+
const manifestNames = new Set(manifestSkills.map((s2) => s2.name));
|
|
83315
|
+
const unknown = requested.filter((name) => !manifestNames.has(name));
|
|
83316
|
+
if (unknown.length) {
|
|
83317
|
+
const message = `Unknown skill(s): ${unknown.join(", ")}. Available: ${[...manifestNames].sort().join(", ")}`;
|
|
83318
|
+
if (strict) throw new Error(message);
|
|
83319
|
+
R2.warn(c.warn(message));
|
|
83320
|
+
}
|
|
83321
|
+
const targets = manifestSkills.filter(
|
|
83322
|
+
(s2) => requested.includes(s2.name) || isCoreSkill(s2.name) || opts.refreshInstalled === true && s2.status !== "missing"
|
|
83323
|
+
);
|
|
83324
|
+
const toInstall = targets.filter((s2) => s2.status === "missing" || s2.status === "outdated");
|
|
83325
|
+
const result = {
|
|
83326
|
+
targets: targets.map((s2) => s2.name),
|
|
83327
|
+
installed: toInstall.map((s2) => s2.name),
|
|
83328
|
+
current: targets.filter((s2) => s2.status === "current").map((s2) => s2.name),
|
|
83329
|
+
unknown,
|
|
83330
|
+
presenceOnly: false
|
|
83331
|
+
};
|
|
83332
|
+
if (toInstall.length > 0) {
|
|
83333
|
+
await installSkills(result.installed, { cwd: opts.cwd, strict });
|
|
83334
|
+
verifyInstalled(result.installed, { strict, cwd: opts.cwd });
|
|
83335
|
+
}
|
|
83336
|
+
return result;
|
|
83337
|
+
}
|
|
83338
|
+
function verifyInstalled(names, opts) {
|
|
83339
|
+
const present = new Set(presentSkills(names, { cwd: opts.cwd }));
|
|
83340
|
+
const absent = names.filter((name) => !present.has(name));
|
|
83341
|
+
if (absent.length === 0) return;
|
|
83342
|
+
const message = `Skill(s) still missing after install: ${absent.join(", ")}`;
|
|
83343
|
+
if (opts.strict) throw new Error(message);
|
|
83344
|
+
R2.warn(c.warn(message));
|
|
83345
|
+
}
|
|
83346
|
+
async function updateSkillsOffline(requested, opts) {
|
|
83347
|
+
if (requested.length === 0 && opts.strict) {
|
|
83348
|
+
throw new Error(
|
|
83349
|
+
"can't check skills freshness (GitHub manifest unreachable) \u2014 refusing to report success. Retry when online."
|
|
83350
|
+
);
|
|
83351
|
+
}
|
|
83352
|
+
const targets = [.../* @__PURE__ */ new Set([...requested, ...FALLBACK_CORE_SKILLS])];
|
|
83353
|
+
const present = new Set(presentSkills(targets, { cwd: opts.cwd }));
|
|
83354
|
+
const absent = targets.filter((name) => !present.has(name));
|
|
83355
|
+
console.log(
|
|
83356
|
+
c.dim(
|
|
83357
|
+
absent.length === 0 ? "Skills freshness check unavailable (offline?) \u2014 installed skills found, continuing without a refresh." : `Skills freshness check unavailable (offline?) \u2014 attempting a blind install of: ${absent.join(", ")}`
|
|
83358
|
+
)
|
|
83359
|
+
);
|
|
83360
|
+
if (absent.length > 0) {
|
|
83361
|
+
await installSkills(absent, { cwd: opts.cwd, strict: opts.strict });
|
|
83362
|
+
verifyInstalled(absent, opts);
|
|
83363
|
+
}
|
|
83364
|
+
return {
|
|
83365
|
+
targets,
|
|
83366
|
+
installed: absent,
|
|
83367
|
+
current: [...present],
|
|
83368
|
+
unknown: [],
|
|
83369
|
+
presenceOnly: true
|
|
83370
|
+
};
|
|
83371
|
+
}
|
|
83372
|
+
function printSkillSection(result, status, title, mark, color, filter2 = () => true) {
|
|
83373
|
+
const items = result.skills.filter((s2) => s2.status === status && filter2(s2));
|
|
82823
83374
|
if (!items.length) return;
|
|
82824
83375
|
console.log();
|
|
82825
83376
|
console.log(` ${color(title)}`);
|
|
@@ -82838,13 +83389,30 @@ function renderCheck(result) {
|
|
|
82838
83389
|
}
|
|
82839
83390
|
console.log(` ${c.bold("Location")} ${c.dim(result.location)} ${c.dim(`(${result.agent})`)}`);
|
|
82840
83391
|
console.log();
|
|
83392
|
+
const onDemandMissing = summary.missing - summary.coreMissing;
|
|
82841
83393
|
const parts = [c.success(`\u2713 ${summary.current} current`)];
|
|
82842
83394
|
if (summary.outdated) parts.push(c.warn(`\u2191 ${summary.outdated} outdated`));
|
|
82843
|
-
if (summary.
|
|
83395
|
+
if (summary.coreMissing) parts.push(c.warn(`\u25E6 ${summary.coreMissing} core not installed`));
|
|
83396
|
+
if (onDemandMissing) parts.push(c.dim(`\u25E6 ${onDemandMissing} available on demand`));
|
|
82844
83397
|
if (summary.removed) parts.push(c.warn(`\u2717 ${summary.removed} removed upstream`));
|
|
82845
83398
|
console.log(` ${parts.join(" ")}`);
|
|
82846
83399
|
printSkillSection(result, "outdated", "Outdated:", "\u2191", c.warn);
|
|
82847
|
-
printSkillSection(
|
|
83400
|
+
printSkillSection(
|
|
83401
|
+
result,
|
|
83402
|
+
"missing",
|
|
83403
|
+
"Core not installed (skills update installs these):",
|
|
83404
|
+
"\u25E6",
|
|
83405
|
+
c.warn,
|
|
83406
|
+
(s2) => isCoreSkill(s2.name)
|
|
83407
|
+
);
|
|
83408
|
+
printSkillSection(
|
|
83409
|
+
result,
|
|
83410
|
+
"missing",
|
|
83411
|
+
"Available on demand (installed when their workflow first runs):",
|
|
83412
|
+
"\u25E6",
|
|
83413
|
+
c.dim,
|
|
83414
|
+
(s2) => !isCoreSkill(s2.name)
|
|
83415
|
+
);
|
|
82848
83416
|
printSkillSection(
|
|
82849
83417
|
result,
|
|
82850
83418
|
"removed",
|
|
@@ -82869,7 +83437,39 @@ function renderCheck(result) {
|
|
|
82869
83437
|
}
|
|
82870
83438
|
console.log();
|
|
82871
83439
|
}
|
|
82872
|
-
|
|
83440
|
+
function requestedNamesFrom(positionals) {
|
|
83441
|
+
const names = positionals.map(String).filter((n2) => n2.length > 0);
|
|
83442
|
+
return {
|
|
83443
|
+
requested: names.filter((n2) => PLAIN_SKILL_NAME.test(n2)),
|
|
83444
|
+
rejected: names.filter((n2) => !PLAIN_SKILL_NAME.test(n2))
|
|
83445
|
+
};
|
|
83446
|
+
}
|
|
83447
|
+
function reportUpdate(result, requested, json) {
|
|
83448
|
+
if (json) {
|
|
83449
|
+
console.log(JSON.stringify(withMeta(result), null, 2));
|
|
83450
|
+
return;
|
|
83451
|
+
}
|
|
83452
|
+
if (result.installed.length > 0) {
|
|
83453
|
+
console.log(
|
|
83454
|
+
c.success(
|
|
83455
|
+
`Installed/updated ${result.installed.length} skill(s): ${result.installed.join(", ")}`
|
|
83456
|
+
)
|
|
83457
|
+
);
|
|
83458
|
+
} else if (result.presenceOnly) {
|
|
83459
|
+
console.log(c.warn("Freshness unknown (GitHub unreachable) \u2014 verified presence only."));
|
|
83460
|
+
} else {
|
|
83461
|
+
console.log(c.success("Installed skills are already up to date."));
|
|
83462
|
+
}
|
|
83463
|
+
if (requested.length) console.log(c.success(`\u25C7 Ready: ${requested.join(", ")}`));
|
|
83464
|
+
}
|
|
83465
|
+
function reportUpdateFailure(message, json) {
|
|
83466
|
+
if (json) {
|
|
83467
|
+
console.log(JSON.stringify(withMeta({ error: message }), null, 2));
|
|
83468
|
+
return;
|
|
83469
|
+
}
|
|
83470
|
+
R2.error(c.error(message));
|
|
83471
|
+
}
|
|
83472
|
+
var examples, GLOBAL_INSTALL_ARGS_TAIL, PLAIN_SKILL_NAME, SOURCES, SKILLS_TOOLING, checkCommand, updateCommand, skills_default;
|
|
82873
83473
|
var init_skills = __esm({
|
|
82874
83474
|
"src/commands/skills.ts"() {
|
|
82875
83475
|
"use strict";
|
|
@@ -82885,11 +83485,10 @@ var init_skills = __esm({
|
|
|
82885
83485
|
["Install all HyperFrames skills", "hyperframes skills"],
|
|
82886
83486
|
["Check whether installed skills are up to date", "hyperframes skills check"],
|
|
82887
83487
|
["Check, machine-readable (for agents / CI)", "hyperframes skills check --json"],
|
|
82888
|
-
["Update
|
|
83488
|
+
["Update the core set + everything already installed", "hyperframes skills update"],
|
|
83489
|
+
["Also install one workflow (on-demand install)", "hyperframes skills update pr-to-video"]
|
|
82889
83490
|
];
|
|
82890
|
-
|
|
82891
|
-
"--skill",
|
|
82892
|
-
"*",
|
|
83491
|
+
GLOBAL_INSTALL_ARGS_TAIL = [
|
|
82893
83492
|
"--global",
|
|
82894
83493
|
"--agent",
|
|
82895
83494
|
"claude-code",
|
|
@@ -82939,13 +83538,14 @@ var init_skills = __esm({
|
|
|
82939
83538
|
updateCommand = defineCommand({
|
|
82940
83539
|
meta: {
|
|
82941
83540
|
name: "update",
|
|
82942
|
-
description: "Update
|
|
83541
|
+
description: "Update the core set plus every installed HyperFrames skill to the latest, and remove any no longer published. Pass skill names to also install those (how workflow skills install on demand) \u2014 without names it never expands a partial install"
|
|
82943
83542
|
},
|
|
82944
83543
|
// Mirror `check`'s flags: the prune step runs the same removed-detection, so it
|
|
82945
83544
|
// must respect the same overrides. Without these, `update`'s internal
|
|
82946
83545
|
// checkSkills() fell back to defaults — pruning the auto-detected install
|
|
82947
83546
|
// against the default manifest even when the user pointed `check` elsewhere.
|
|
82948
83547
|
args: {
|
|
83548
|
+
json: { type: "boolean", description: "Output as JSON", default: false },
|
|
82949
83549
|
dir: {
|
|
82950
83550
|
type: "string",
|
|
82951
83551
|
description: "Skills dir for removed-detection only \u2014 scopes the prune, not the install (default: auto-detect)"
|
|
@@ -82958,10 +83558,17 @@ var init_skills = __esm({
|
|
|
82958
83558
|
async run({ args }) {
|
|
82959
83559
|
const dir = args.dir;
|
|
82960
83560
|
const source = args.source;
|
|
83561
|
+
const { requested, rejected } = requestedNamesFrom(args._ ?? []);
|
|
83562
|
+
if (rejected.length) {
|
|
83563
|
+
reportUpdateFailure(`Invalid skill name(s): ${rejected.join(", ")}`, args.json === true);
|
|
83564
|
+
process.exitCode = 1;
|
|
83565
|
+
return;
|
|
83566
|
+
}
|
|
82961
83567
|
try {
|
|
82962
|
-
await
|
|
83568
|
+
const result = await updateSkills({ requested, refreshInstalled: true, strict: true });
|
|
83569
|
+
reportUpdate(result, requested, args.json === true);
|
|
82963
83570
|
} catch (err) {
|
|
82964
|
-
|
|
83571
|
+
reportUpdateFailure(`Update failed: ${err.message}`, args.json === true);
|
|
82965
83572
|
process.exitCode = 1;
|
|
82966
83573
|
return;
|
|
82967
83574
|
}
|
|
@@ -82991,7 +83598,7 @@ var init_skills = __esm({
|
|
|
82991
83598
|
},
|
|
82992
83599
|
args: {},
|
|
82993
83600
|
async run({ args }) {
|
|
82994
|
-
if (!args._?.[0]) await
|
|
83601
|
+
if (!args._?.[0]) await installSkills("*");
|
|
82995
83602
|
}
|
|
82996
83603
|
});
|
|
82997
83604
|
}
|
|
@@ -83001,6 +83608,7 @@ var init_skills = __esm({
|
|
|
83001
83608
|
var transcribe_exports = {};
|
|
83002
83609
|
__export(transcribe_exports, {
|
|
83003
83610
|
detectSpeechOnset: () => detectSpeechOnset,
|
|
83611
|
+
dtwPresetForModel: () => dtwPresetForModel,
|
|
83004
83612
|
transcribe: () => transcribe
|
|
83005
83613
|
});
|
|
83006
83614
|
import { execFileSync as execFileSync5 } from "child_process";
|
|
@@ -83134,6 +83742,9 @@ function prepareAudio(audioPath) {
|
|
|
83134
83742
|
);
|
|
83135
83743
|
return wavPath;
|
|
83136
83744
|
}
|
|
83745
|
+
function dtwPresetForModel(model) {
|
|
83746
|
+
return model.replace(/-/g, ".");
|
|
83747
|
+
}
|
|
83137
83748
|
async function transcribe(inputPath, outputDir, options) {
|
|
83138
83749
|
const model = options?.model ?? DEFAULT_MODEL;
|
|
83139
83750
|
options?.onProgress?.("Checking whisper...");
|
|
@@ -83185,7 +83796,7 @@ async function transcribe(inputPath, outputDir, options) {
|
|
|
83185
83796
|
"--output-file",
|
|
83186
83797
|
outputBase,
|
|
83187
83798
|
"--dtw",
|
|
83188
|
-
effectiveModel,
|
|
83799
|
+
dtwPresetForModel(effectiveModel),
|
|
83189
83800
|
"--suppress-nst"
|
|
83190
83801
|
];
|
|
83191
83802
|
if (detectedLanguage) {
|
|
@@ -84155,9 +84766,12 @@ function renderObservabilityTelemetryPayload(observability) {
|
|
|
84155
84766
|
};
|
|
84156
84767
|
}
|
|
84157
84768
|
function renderJobObservabilityTelemetryPayload(job) {
|
|
84158
|
-
return
|
|
84159
|
-
|
|
84160
|
-
|
|
84769
|
+
return {
|
|
84770
|
+
...renderObservabilityTelemetryPayload(
|
|
84771
|
+
job?.errorDetails?.observability ?? job?.perfSummary?.observability
|
|
84772
|
+
),
|
|
84773
|
+
subTimelineWait: job?.errorDetails?.subTimelineWait ?? job?.perfSummary?.subTimelineWait
|
|
84774
|
+
};
|
|
84161
84775
|
}
|
|
84162
84776
|
var init_renderObservability = __esm({
|
|
84163
84777
|
"src/telemetry/renderObservability.ts"() {
|
|
@@ -99164,8 +99778,8 @@ var init_fileServer2 = __esm({
|
|
|
99164
99778
|
return d > 0 ? d : getDeclaredDuration();
|
|
99165
99779
|
},
|
|
99166
99780
|
});
|
|
99167
|
-
hf.seek = function(t) {
|
|
99168
|
-
p.renderSeek(t);
|
|
99781
|
+
hf.seek = function(t, options) {
|
|
99782
|
+
p.renderSeek(t, options);
|
|
99169
99783
|
var nextTimeMs = (Math.max(0, Number(t) || 0)) * 1000;
|
|
99170
99784
|
if (window.__HF_VIRTUAL_TIME__ && typeof window.__HF_VIRTUAL_TIME__.seekToTime === "function") {
|
|
99171
99785
|
window.__HF_VIRTUAL_TIME__.seekToTime(nextTimeMs);
|
|
@@ -99524,7 +100138,8 @@ function buildRenderErrorDetails(input2) {
|
|
|
99524
100138
|
browserConsoleTail: input2.lastBrowserConsole.length > 0 ? input2.lastBrowserConsole.slice(-30) : void 0,
|
|
99525
100139
|
perfStages: Object.keys(input2.perfStages).length > 0 ? { ...input2.perfStages } : void 0,
|
|
99526
100140
|
hdrDiagnostics: input2.hdrDiagnostics.videoExtractionFailures > 0 || input2.hdrDiagnostics.imageDecodeFailures > 0 ? { ...input2.hdrDiagnostics } : void 0,
|
|
99527
|
-
observability: input2.observability
|
|
100141
|
+
observability: input2.observability,
|
|
100142
|
+
subTimelineWait: input2.subTimelineWait
|
|
99528
100143
|
};
|
|
99529
100144
|
}
|
|
99530
100145
|
var init_cleanup = __esm({
|
|
@@ -99704,6 +100319,13 @@ var init_hdrPerf = __esm({
|
|
|
99704
100319
|
});
|
|
99705
100320
|
|
|
99706
100321
|
// ../producer/src/services/render/perfSummary.ts
|
|
100322
|
+
function worstSubTimelineWaitOutcome(perfs) {
|
|
100323
|
+
const outcomes = perfs.map((p2) => p2.subTimelineWaitOutcome).filter((o) => !!o);
|
|
100324
|
+
if (outcomes.length === 0) return void 0;
|
|
100325
|
+
if (outcomes.includes("script_failure")) return "script_failure";
|
|
100326
|
+
if (outcomes.includes("timeout")) return "timeout";
|
|
100327
|
+
return "ready";
|
|
100328
|
+
}
|
|
99707
100329
|
function pushWorkerDedupPerfs(results, sink) {
|
|
99708
100330
|
for (const r2 of results) {
|
|
99709
100331
|
if (r2.perf) sink.push(r2.perf);
|
|
@@ -99785,6 +100407,7 @@ function buildRenderPerfSummary(input2) {
|
|
|
99785
100407
|
captureAvgMs: input2.totalFrames > 0 ? Math.round(
|
|
99786
100408
|
(input2.perfStages.captureFrameMs ?? input2.perfStages.captureMs ?? 0) / input2.totalFrames
|
|
99787
100409
|
) : void 0,
|
|
100410
|
+
subTimelineWait: worstSubTimelineWaitOutcome(input2.dedupPerfs),
|
|
99788
100411
|
captureP50Ms: (() => {
|
|
99789
100412
|
const withSamples = input2.dedupPerfs.filter((p2) => (p2.p50TotalMs ?? 0) > 0);
|
|
99790
100413
|
if (withSamples.length === 0) return void 0;
|
|
@@ -105225,16 +105848,30 @@ function coalesceHeadStylesAndBodyScripts2(html) {
|
|
|
105225
105848
|
}
|
|
105226
105849
|
return document2.toString();
|
|
105227
105850
|
}
|
|
105228
|
-
function inlineSubCompositions2(html, subCompositions, projectDir) {
|
|
105851
|
+
function inlineSubCompositions2(html, subCompositions, projectDir, variableOverrides = {}) {
|
|
105229
105852
|
const { document: document2 } = parseHTML(html);
|
|
105230
105853
|
const head = document2.querySelector("head");
|
|
105231
105854
|
const body = document2.querySelector("body");
|
|
105232
105855
|
const hosts = Array.from(document2.querySelectorAll("[data-composition-src]"));
|
|
105233
|
-
if (!hosts.length)
|
|
105856
|
+
if (!hosts.length) {
|
|
105857
|
+
const emitted = emitRootCompositionVariableStyles(
|
|
105858
|
+
document2,
|
|
105859
|
+
{},
|
|
105860
|
+
variableOverrides
|
|
105861
|
+
);
|
|
105862
|
+
return emitted ? document2.toString() : html;
|
|
105863
|
+
}
|
|
105864
|
+
const hostIdentityByElement = assignBundledRuntimeCompositionIds(hosts);
|
|
105234
105865
|
const result = inlineSubCompositions(
|
|
105235
105866
|
document2,
|
|
105236
105867
|
hosts,
|
|
105237
105868
|
{
|
|
105869
|
+
// hostIdentityMap gives each repeated mount a unique runtime id; the
|
|
105870
|
+
// shared inliner's default buildScopeSelector already scopes by
|
|
105871
|
+
// `[data-composition-id="<runtime id>"]`, matching the preview bundler.
|
|
105872
|
+
hostIdentityMap: hostIdentityByElement,
|
|
105873
|
+
readVariableDefaults: readDeclaredDefaults,
|
|
105874
|
+
parseHostVariables: parseHostVariableValues,
|
|
105238
105875
|
resolveHtml: (srcPath) => {
|
|
105239
105876
|
let compHtml = subCompositions.get(srcPath) || null;
|
|
105240
105877
|
if (!compHtml) {
|
|
@@ -105309,11 +105946,18 @@ function inlineSubCompositions2(html, subCompositions, projectDir) {
|
|
|
105309
105946
|
}
|
|
105310
105947
|
}
|
|
105311
105948
|
}
|
|
105312
|
-
|
|
105949
|
+
const variablesByCompScript = buildVariablesByCompScript(result.variablesByComp);
|
|
105950
|
+
const inlineScripts = variablesByCompScript ? [variablesByCompScript, ...result.scripts] : result.scripts;
|
|
105951
|
+
if (inlineScripts.length && body) {
|
|
105313
105952
|
const scriptEl = document2.createElement("script");
|
|
105314
|
-
scriptEl.textContent =
|
|
105953
|
+
scriptEl.textContent = inlineScripts.join("\n;\n");
|
|
105315
105954
|
body.appendChild(scriptEl);
|
|
105316
105955
|
}
|
|
105956
|
+
emitRootCompositionVariableStyles(
|
|
105957
|
+
document2,
|
|
105958
|
+
result.variablesByComp,
|
|
105959
|
+
variableOverrides
|
|
105960
|
+
);
|
|
105317
105961
|
return document2.toString();
|
|
105318
105962
|
}
|
|
105319
105963
|
function ensureFullDocument(html) {
|
|
@@ -105741,7 +106385,12 @@ async function compileForRender(projectDir, htmlPath, downloadDir, options = {})
|
|
|
105741
106385
|
subCompositions
|
|
105742
106386
|
} = await parseSubCompositions(compiledHtml, projectDir, downloadDir);
|
|
105743
106387
|
const fullHtml = ensureFullDocument(compiledHtml);
|
|
105744
|
-
const inlinedHtml = inlineSubCompositions2(
|
|
106388
|
+
const inlinedHtml = inlineSubCompositions2(
|
|
106389
|
+
fullHtml,
|
|
106390
|
+
subCompositions,
|
|
106391
|
+
projectDir,
|
|
106392
|
+
options.variables ?? {}
|
|
106393
|
+
);
|
|
105745
106394
|
const sanitizedHtml = inlinedHtml.replace(
|
|
105746
106395
|
/(<(?:video|audio)\b[^>]*?)\s+preload\s*=\s*["']none["']/gi,
|
|
105747
106396
|
"$1"
|
|
@@ -106163,6 +106812,7 @@ async function runCompileStage(input2) {
|
|
|
106163
106812
|
log: log2,
|
|
106164
106813
|
failClosedFontFetch: failClosedFontFetch === true,
|
|
106165
106814
|
allowSystemFontCapture,
|
|
106815
|
+
variables: input2.variables,
|
|
106166
106816
|
animatedGifCacheDir: cfg.extractCacheDir ? join37(cfg.extractCacheDir, "animated-gif") : void 0,
|
|
106167
106817
|
ffmpegProcessTimeout: cfg.ffmpegProcessTimeout
|
|
106168
106818
|
});
|
|
@@ -107740,9 +108390,8 @@ async function psnrDb(a, b2) {
|
|
|
107740
108390
|
});
|
|
107741
108391
|
}
|
|
107742
108392
|
}
|
|
107743
|
-
|
|
107744
|
-
|
|
107745
|
-
const frameTime = (i2) => i2 * job.config.fps.den / job.config.fps.num;
|
|
108393
|
+
function createDrainFrameGuard(args) {
|
|
108394
|
+
const { log: log2, stats, frameTime } = args;
|
|
107746
108395
|
const verifyMinDbRaw = Number(process.env.HF_DE_VERIFY_MIN_DB ?? "32");
|
|
107747
108396
|
const verifyMinDb = Number.isFinite(verifyMinDbRaw) && verifyMinDbRaw >= 10 && verifyMinDbRaw <= 60 ? verifyMinDbRaw : 32;
|
|
107748
108397
|
if (process.env.HF_DE_VERIFY_MIN_DB !== void 0 && verifyMinDb !== verifyMinDbRaw) {
|
|
@@ -107759,7 +108408,7 @@ async function runWorkerEncodePipelineLoop(session, totalFrames, job, currentEnc
|
|
|
107759
108408
|
return Math.max(absFloor, median * 0.12);
|
|
107760
108409
|
};
|
|
107761
108410
|
let acceptedSmall = null;
|
|
107762
|
-
|
|
108411
|
+
return async (session, idx, buf) => {
|
|
107763
108412
|
if (process.env.HF_FORCE_DRAWELEMENT !== "1") {
|
|
107764
108413
|
const floor = blankFloor();
|
|
107765
108414
|
if (floor > 0 && buf.length < floor && acceptedSmall?.equals(buf)) {
|
|
@@ -107834,6 +108483,12 @@ async function runWorkerEncodePipelineLoop(session, totalFrames, job, currentEnc
|
|
|
107834
108483
|
}
|
|
107835
108484
|
return buf;
|
|
107836
108485
|
};
|
|
108486
|
+
}
|
|
108487
|
+
async function runWorkerEncodePipelineLoop(session, totalFrames, job, currentEncoder, reorderBuffer, assertNotAborted, onProgress, log2, stats) {
|
|
108488
|
+
let prev = null;
|
|
108489
|
+
const frameTime = (i2) => i2 * job.config.fps.den / job.config.fps.num;
|
|
108490
|
+
const guard = createDrainFrameGuard({ log: log2, stats, frameTime });
|
|
108491
|
+
const guardFrame = (idx, buf) => guard(session, idx, buf);
|
|
107837
108492
|
const drainPrev = async () => {
|
|
107838
108493
|
if (!prev) return;
|
|
107839
108494
|
assertNotAborted();
|
|
@@ -107960,37 +108615,81 @@ async function runCaptureStreamingStage(input2) {
|
|
|
107960
108615
|
try {
|
|
107961
108616
|
const reorderBuffer = createFrameReorderBuffer(0, totalFrames);
|
|
107962
108617
|
if (workerCount > 1) {
|
|
107963
|
-
const
|
|
107964
|
-
const
|
|
107965
|
-
|
|
107966
|
-
|
|
107967
|
-
|
|
108618
|
+
const deParallelStream = process.env.HF_DE_PARALLEL_STREAM === "true";
|
|
108619
|
+
const tasks = deParallelStream ? distributeFramesInterleaved(totalFrames, workerCount, workDir) : distributeFrames(totalFrames, workerCount, workDir);
|
|
108620
|
+
const parallelStats = {
|
|
108621
|
+
verifyChecked: 0,
|
|
108622
|
+
blankSuspects: 0,
|
|
108623
|
+
blankDeterministicAccepts: 0,
|
|
108624
|
+
blankRecaptures: 0
|
|
107968
108625
|
};
|
|
107969
|
-
const
|
|
107970
|
-
|
|
107971
|
-
|
|
107972
|
-
|
|
107973
|
-
|
|
107974
|
-
|
|
107975
|
-
|
|
107976
|
-
|
|
107977
|
-
|
|
107978
|
-
|
|
107979
|
-
|
|
107980
|
-
|
|
107981
|
-
updateJobStatus(
|
|
107982
|
-
job,
|
|
107983
|
-
"rendering",
|
|
107984
|
-
`Streaming frame ${progress.capturedFrames}/${progress.totalFrames} (${workerCount} workers)`,
|
|
107985
|
-
Math.round(progressPct),
|
|
107986
|
-
onProgress
|
|
107987
|
-
);
|
|
108626
|
+
const parallelGuard = createDrainFrameGuard({
|
|
108627
|
+
log: log2,
|
|
108628
|
+
stats: parallelStats,
|
|
108629
|
+
frameTime: (i2) => i2 * job.config.fps.den / job.config.fps.num
|
|
108630
|
+
});
|
|
108631
|
+
let parallelGuardRan = false;
|
|
108632
|
+
let parallelDrainError = null;
|
|
108633
|
+
const onFrameBuffer = async (frameIndex, buffer, workerSession) => {
|
|
108634
|
+
try {
|
|
108635
|
+
if (deParallelStream && workerSession.captureMode === "drawelement") {
|
|
108636
|
+
parallelGuardRan = true;
|
|
108637
|
+
buffer = await parallelGuard(workerSession, frameIndex, buffer);
|
|
107988
108638
|
}
|
|
107989
|
-
|
|
107990
|
-
|
|
107991
|
-
|
|
107992
|
-
|
|
108639
|
+
await reorderBuffer.waitForFrame(frameIndex);
|
|
108640
|
+
ensureFrameWritten(await currentEncoder.writeFrame(buffer), frameIndex, currentEncoder);
|
|
108641
|
+
reorderBuffer.advanceTo(frameIndex + 1);
|
|
108642
|
+
} catch (err) {
|
|
108643
|
+
const e3 = err instanceof Error ? err : new Error(String(err));
|
|
108644
|
+
if (!parallelDrainError) {
|
|
108645
|
+
parallelDrainError = e3;
|
|
108646
|
+
reorderBuffer.abort(e3);
|
|
108647
|
+
}
|
|
108648
|
+
throw e3;
|
|
108649
|
+
}
|
|
108650
|
+
};
|
|
108651
|
+
let workerResults;
|
|
108652
|
+
try {
|
|
108653
|
+
workerResults = await executeParallelCapture(
|
|
108654
|
+
fileServer.url,
|
|
108655
|
+
workDir,
|
|
108656
|
+
tasks,
|
|
108657
|
+
buildCaptureOptions(),
|
|
108658
|
+
createRenderVideoFrameInjector,
|
|
108659
|
+
abortSignal,
|
|
108660
|
+
(progress) => {
|
|
108661
|
+
job.framesRendered = progress.capturedFrames;
|
|
108662
|
+
const frameProgress = progress.capturedFrames / progress.totalFrames;
|
|
108663
|
+
const progressPct = 25 + frameProgress * 55;
|
|
108664
|
+
if (progress.capturedFrames % 30 === 0 || progress.capturedFrames === progress.totalFrames) {
|
|
108665
|
+
updateJobStatus(
|
|
108666
|
+
job,
|
|
108667
|
+
"rendering",
|
|
108668
|
+
`Streaming frame ${progress.capturedFrames}/${progress.totalFrames} (${workerCount} workers)`,
|
|
108669
|
+
Math.round(progressPct),
|
|
108670
|
+
onProgress
|
|
108671
|
+
);
|
|
108672
|
+
}
|
|
108673
|
+
},
|
|
108674
|
+
onFrameBuffer,
|
|
108675
|
+
// Interleaved DE workers each need their own browser PROCESS:
|
|
108676
|
+
// pages co-tenant in one browser share one compositor, whose
|
|
108677
|
+
// internal frame scheduling deprioritizes non-active pages — their
|
|
108678
|
+
// canvas `paint` events starve and the drawElement paint-wait slows
|
|
108679
|
+
// ~3x (measured: 86s vs 30s on a 3,245-frame rAF comp). This is
|
|
108680
|
+
// Chromium's internal frame-production scheduling on ALL platforms,
|
|
108681
|
+
// NOT the Linux-only HeadlessExperimental.beginFrame capture mode.
|
|
108682
|
+
deParallelStream ? { ...captureCfg, enableBrowserPool: false } : captureCfg
|
|
108683
|
+
);
|
|
108684
|
+
} catch (err) {
|
|
108685
|
+
if (parallelDrainError) throw parallelDrainError;
|
|
108686
|
+
throw err;
|
|
108687
|
+
}
|
|
108688
|
+
if (parallelDrainError) throw parallelDrainError;
|
|
107993
108689
|
pushWorkerDedupPerfs(workerResults, dedupPerfs);
|
|
108690
|
+
if (parallelGuardRan) {
|
|
108691
|
+
deDrainStats = parallelStats;
|
|
108692
|
+
}
|
|
107994
108693
|
if (probeSession) {
|
|
107995
108694
|
captureBeyondViewport = probeSession.options.captureBeyondViewport;
|
|
107996
108695
|
lastBrowserConsole = probeSession.browserConsoleBuffer;
|
|
@@ -109944,6 +110643,7 @@ function shouldUseStreamingEncode(cfg, outputFormat, workerCount, durationSecond
|
|
|
109944
110643
|
if (outputFormat === "gif") return false;
|
|
109945
110644
|
if (!Number.isFinite(durationSeconds) || durationSeconds <= 0) return false;
|
|
109946
110645
|
if (durationSeconds > cfg.streamingEncodeMaxDurationSeconds) return false;
|
|
110646
|
+
if (process.env.HF_DE_PARALLEL_STREAM === "true") return true;
|
|
109947
110647
|
return workerCount === 1;
|
|
109948
110648
|
}
|
|
109949
110649
|
function shouldPreferSingleWorkerDrawElement(args) {
|
|
@@ -110038,6 +110738,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
110038
110738
|
captureObservability.captureMode = captureObservability.forceScreenshot ? "screenshot" : "beginframe";
|
|
110039
110739
|
};
|
|
110040
110740
|
const captureAttempts = [];
|
|
110741
|
+
const dedupPerfs = [];
|
|
110041
110742
|
const recordTransientRetryObservability = () => {
|
|
110042
110743
|
const count = captureAttempts.filter((a) => a.reason === "transient-retry").length;
|
|
110043
110744
|
if (count > 0) updateCaptureObservability({ transientRetries: count });
|
|
@@ -110128,7 +110829,8 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
110128
110829
|
cfg,
|
|
110129
110830
|
needsAlpha,
|
|
110130
110831
|
log: log2,
|
|
110131
|
-
assertNotAborted
|
|
110832
|
+
assertNotAborted,
|
|
110833
|
+
variables: job.config.variables
|
|
110132
110834
|
})
|
|
110133
110835
|
);
|
|
110134
110836
|
let compiled = compileResult.compiled;
|
|
@@ -110391,7 +111093,8 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
110391
111093
|
layeredOrEffectRoute: hasHdrContent || compiled.hasShaderTransitions,
|
|
110392
111094
|
supersampling: deviceScaleFactor > 1,
|
|
110393
111095
|
probeDeGated: probeSession !== null && probeSession.captureMode !== "drawelement" && !probeSession.deInitDeferred,
|
|
110394
|
-
experimentalParallelDeOptIn: process.env.PRODUCER_EXPERIMENTAL_FAST_CAPTURE === "true"
|
|
111096
|
+
experimentalParallelDeOptIn: process.env.PRODUCER_EXPERIMENTAL_FAST_CAPTURE === "true" || // Verified parallel DE streaming (opt-in) wants its parallelism kept.
|
|
111097
|
+
process.env.HF_DE_PARALLEL_STREAM === "true"
|
|
110395
111098
|
});
|
|
110396
111099
|
if (job.config.workers === void 0 && totalFrames >= 60 && !htmlInCanvasDetected && !cfg.lowMemoryMode && !deInversionEligible) {
|
|
110397
111100
|
const outcome = await observeRenderStage(
|
|
@@ -110468,7 +111171,8 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
110468
111171
|
durationSeconds: job.duration,
|
|
110469
111172
|
maxDurationSeconds: cfg.streamingEncodeMaxDurationSeconds
|
|
110470
111173
|
});
|
|
110471
|
-
|
|
111174
|
+
const deParallelStreamVerified = process.env.HF_DE_PARALLEL_STREAM === "true" && useStreamingEncode && workerCount > 1;
|
|
111175
|
+
if (cfg.useDrawElement && process.env.PRODUCER_EXPERIMENTAL_FAST_CAPTURE !== "true" && (!useStreamingEncode || workerCount > 1) && !deParallelStreamVerified) {
|
|
110472
111176
|
cfg.useDrawElement = false;
|
|
110473
111177
|
deClampReason = workerCount > 1 ? "parallel" : "disk_path";
|
|
110474
111178
|
log2.info(
|
|
@@ -110479,7 +111183,6 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
110479
111183
|
probeSession = null;
|
|
110480
111184
|
}
|
|
110481
111185
|
}
|
|
110482
|
-
const dedupPerfs = [];
|
|
110483
111186
|
const FORMAT_EXT3 = {
|
|
110484
111187
|
mp4: ".mp4",
|
|
110485
111188
|
webm: ".webm",
|
|
@@ -110945,7 +111648,8 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
110945
111648
|
lastBrowserConsole,
|
|
110946
111649
|
perfStages,
|
|
110947
111650
|
hdrDiagnostics,
|
|
110948
|
-
observability: observabilitySummary
|
|
111651
|
+
observability: observabilitySummary,
|
|
111652
|
+
subTimelineWait: worstSubTimelineWaitOutcome(dedupPerfs)
|
|
110949
111653
|
});
|
|
110950
111654
|
log2.info("[Render] Failure summary", {
|
|
110951
111655
|
failedStage: job.currentStage,
|
|
@@ -112436,7 +113140,8 @@ async function plan(projectDir, config, planDir) {
|
|
|
112436
113140
|
failClosedFontFetch: config.failClosedFontFetch !== false,
|
|
112437
113141
|
// Distributed renders must not capture host-specific system fonts —
|
|
112438
113142
|
// the Lambda/worker filesystem won't have the same fonts installed.
|
|
112439
|
-
allowSystemFontCapture: false
|
|
113143
|
+
allowSystemFontCapture: false,
|
|
113144
|
+
variables: config.variables
|
|
112440
113145
|
});
|
|
112441
113146
|
let compiled = compileResult.compiled;
|
|
112442
113147
|
const composition = compileResult.composition;
|
|
@@ -112658,6 +113363,7 @@ var init_plan = __esm({
|
|
|
112658
113363
|
};
|
|
112659
113364
|
FORMAT_NOT_SUPPORTED_IN_DISTRIBUTED = "FORMAT_NOT_SUPPORTED_IN_DISTRIBUTED";
|
|
112660
113365
|
FormatNotSupportedInDistributedError = class extends Error {
|
|
113366
|
+
// fallow-ignore-next-line unused-class-member
|
|
112661
113367
|
code = FORMAT_NOT_SUPPORTED_IN_DISTRIBUTED;
|
|
112662
113368
|
format;
|
|
112663
113369
|
reason;
|
|
@@ -113805,33 +114511,37 @@ function findFromEnv2() {
|
|
|
113805
114511
|
}
|
|
113806
114512
|
return void 0;
|
|
113807
114513
|
}
|
|
114514
|
+
async function findFromHyperframesCache() {
|
|
114515
|
+
if (!existsSync53(CACHE_DIR2)) return {};
|
|
114516
|
+
const { Browser, getInstalledBrowsers } = await loadPuppeteerBrowsers();
|
|
114517
|
+
let installed;
|
|
114518
|
+
try {
|
|
114519
|
+
installed = await getInstalledBrowsers({ cacheDir: CACHE_DIR2 });
|
|
114520
|
+
} catch (err) {
|
|
114521
|
+
const code = err?.code;
|
|
114522
|
+
const suffix = code ? ` (${code})` : "";
|
|
114523
|
+
console.warn(
|
|
114524
|
+
`[hyperframes] Browser cache read failed${suffix}: ${normalizeErrorMessage(err)}. Falling back to system Chrome or a fresh download.`
|
|
114525
|
+
);
|
|
114526
|
+
installed = [];
|
|
114527
|
+
}
|
|
114528
|
+
const match = installed.find(
|
|
114529
|
+
(b2) => b2.browser === Browser.CHROMEHEADLESSSHELL && b2.buildId === CHROME_VERSION
|
|
114530
|
+
);
|
|
114531
|
+
if (match && existsSync53(match.executablePath)) {
|
|
114532
|
+
return { result: { executablePath: match.executablePath, source: "cache" } };
|
|
114533
|
+
}
|
|
114534
|
+
if (match) {
|
|
114535
|
+
return { staleHyperframesCachePath: match.executablePath, staleInstallPath: match.path };
|
|
114536
|
+
}
|
|
114537
|
+
return {};
|
|
114538
|
+
}
|
|
113808
114539
|
async function findFromCache() {
|
|
113809
114540
|
const fromPuppeteer = findFromPuppeteerCache();
|
|
113810
114541
|
if (fromPuppeteer) {
|
|
113811
114542
|
return { result: fromPuppeteer };
|
|
113812
114543
|
}
|
|
113813
|
-
|
|
113814
|
-
const { Browser, getInstalledBrowsers } = await loadPuppeteerBrowsers();
|
|
113815
|
-
let installed;
|
|
113816
|
-
try {
|
|
113817
|
-
installed = await getInstalledBrowsers({ cacheDir: CACHE_DIR2 });
|
|
113818
|
-
} catch (err) {
|
|
113819
|
-
const code = err?.code;
|
|
113820
|
-
const suffix = code ? ` (${code})` : "";
|
|
113821
|
-
console.warn(
|
|
113822
|
-
`[hyperframes] Browser cache read failed${suffix}: ${normalizeErrorMessage(err)}. Falling back to system Chrome or a fresh download.`
|
|
113823
|
-
);
|
|
113824
|
-
installed = [];
|
|
113825
|
-
}
|
|
113826
|
-
const match = installed.find((b2) => b2.browser === Browser.CHROMEHEADLESSSHELL);
|
|
113827
|
-
if (match && existsSync53(match.executablePath)) {
|
|
113828
|
-
return { result: { executablePath: match.executablePath, source: "cache" } };
|
|
113829
|
-
}
|
|
113830
|
-
if (match) {
|
|
113831
|
-
return { staleHyperframesCachePath: match.executablePath, staleInstallPath: match.path };
|
|
113832
|
-
}
|
|
113833
|
-
}
|
|
113834
|
-
return {};
|
|
114544
|
+
return findFromHyperframesCache();
|
|
113835
114545
|
}
|
|
113836
114546
|
function parseVersionSegments(versionDir) {
|
|
113837
114547
|
const dashIdx = versionDir.indexOf("-");
|
|
@@ -113995,7 +114705,7 @@ async function ensureBrowser(options) {
|
|
|
113995
114705
|
const fromEnv = findFromEnv2();
|
|
113996
114706
|
if (fromEnv) return fromEnv;
|
|
113997
114707
|
if (!options?.force) {
|
|
113998
|
-
const fromCache = await findFromCache();
|
|
114708
|
+
const fromCache = await (options?.preferManagedChrome ? findFromHyperframesCache() : findFromCache());
|
|
113999
114709
|
if (fromCache.result) return fromCache.result;
|
|
114000
114710
|
if (fromCache.staleHyperframesCachePath) {
|
|
114001
114711
|
console.warn(
|
|
@@ -114006,10 +114716,12 @@ async function ensureBrowser(options) {
|
|
|
114006
114716
|
return downloadBrowser(options);
|
|
114007
114717
|
});
|
|
114008
114718
|
}
|
|
114009
|
-
|
|
114010
|
-
|
|
114011
|
-
|
|
114012
|
-
|
|
114719
|
+
if (!options?.preferManagedChrome) {
|
|
114720
|
+
const fromSystem = findFromSystem2();
|
|
114721
|
+
if (fromSystem) {
|
|
114722
|
+
warnSystemFallbackOnce(fromSystem.executablePath);
|
|
114723
|
+
return fromSystem;
|
|
114724
|
+
}
|
|
114013
114725
|
}
|
|
114014
114726
|
}
|
|
114015
114727
|
return withInstallLock(async () => {
|
|
@@ -114017,7 +114729,7 @@ async function ensureBrowser(options) {
|
|
|
114017
114729
|
clearBrowser();
|
|
114018
114730
|
}
|
|
114019
114731
|
if (!options?.force) {
|
|
114020
|
-
const afterLock = await findFromCache();
|
|
114732
|
+
const afterLock = await (options?.preferManagedChrome ? findFromHyperframesCache() : findFromCache());
|
|
114021
114733
|
if (afterLock.result) return afterLock.result;
|
|
114022
114734
|
if (afterLock.staleInstallPath) purgeStaleInstall(afterLock.staleInstallPath);
|
|
114023
114735
|
}
|
|
@@ -114081,7 +114793,7 @@ var init_manager2 = __esm({
|
|
|
114081
114793
|
"src/browser/manager.ts"() {
|
|
114082
114794
|
"use strict";
|
|
114083
114795
|
init_errorMessage();
|
|
114084
|
-
CHROME_VERSION = "
|
|
114796
|
+
CHROME_VERSION = "152.0.7928.2";
|
|
114085
114797
|
CACHE_ROOT_DIR = join63(homedir11(), ".cache", "hyperframes");
|
|
114086
114798
|
CACHE_DIR2 = join63(homedir11(), ".cache", "hyperframes", "chrome");
|
|
114087
114799
|
PUPPETEER_CACHE_DIR = join63(homedir11(), ".cache", "puppeteer", "chrome-headless-shell");
|
|
@@ -114774,7 +115486,7 @@ async function getThumbnailBrowser() {
|
|
|
114774
115486
|
const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
|
|
114775
115487
|
const { acquireBrowser: acquireBrowser2, buildChromeArgs: buildChromeArgs2 } = await Promise.resolve().then(() => (init_src(), src_exports));
|
|
114776
115488
|
try {
|
|
114777
|
-
const b2 = await ensureBrowser2();
|
|
115489
|
+
const b2 = await ensureBrowser2({ preferManagedChrome: true });
|
|
114778
115490
|
if (b2.executablePath && !process.env.PRODUCER_HEADLESS_SHELL_PATH) {
|
|
114779
115491
|
process.env.PRODUCER_HEADLESS_SHELL_PATH = b2.executablePath;
|
|
114780
115492
|
}
|
|
@@ -114935,7 +115647,7 @@ function createStudioServer(options) {
|
|
|
114935
115647
|
const { createRenderJob: createRenderJob2, executeRenderJob: executeRenderJob2 } = await loadStudioProducer();
|
|
114936
115648
|
const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
|
|
114937
115649
|
try {
|
|
114938
|
-
const browser = await ensureBrowser2();
|
|
115650
|
+
const browser = await ensureBrowser2({ preferManagedChrome: true });
|
|
114939
115651
|
if (browser.executablePath && !process.env.PRODUCER_HEADLESS_SHELL_PATH) {
|
|
114940
115652
|
process.env.PRODUCER_HEADLESS_SHELL_PATH = browser.executablePath;
|
|
114941
115653
|
}
|
|
@@ -116413,27 +117125,27 @@ async function scaffoldProject(destDir, name, templateId, localVideoName, durati
|
|
|
116413
117125
|
}
|
|
116414
117126
|
}
|
|
116415
117127
|
}
|
|
116416
|
-
async function
|
|
116417
|
-
const {
|
|
116418
|
-
const { checkSkills: checkSkills2 } = await Promise.resolve().then(() => (init_skillsManifest(), skillsManifest_exports));
|
|
117128
|
+
async function keepSkillsCurrent(destDir) {
|
|
117129
|
+
const { updateSkills: updateSkills2 } = await Promise.resolve().then(() => (init_skills(), skills_exports));
|
|
116419
117130
|
console.log();
|
|
116420
117131
|
console.log(c.bold("Checking AI coding skills against GitHub..."));
|
|
116421
|
-
let needsInstall = true;
|
|
116422
117132
|
try {
|
|
116423
|
-
const result = await
|
|
116424
|
-
|
|
116425
|
-
|
|
116426
|
-
|
|
116427
|
-
|
|
116428
|
-
|
|
116429
|
-
|
|
116430
|
-
}
|
|
117133
|
+
const result = await updateSkills2({ refreshInstalled: true, cwd: destDir });
|
|
117134
|
+
if (result.presenceOnly) {
|
|
117135
|
+
console.log(
|
|
117136
|
+
c.dim("Skills freshness unverified \u2014 run `npx hyperframes skills update` when online.")
|
|
117137
|
+
);
|
|
117138
|
+
} else if (result.installed.length === 0) {
|
|
117139
|
+
console.log(c.success("AI coding skills are already up to date."));
|
|
117140
|
+
} else {
|
|
116431
117141
|
console.log(
|
|
116432
|
-
c.dim(
|
|
117142
|
+
c.dim("Workflow skills not installed here are added on demand, when first used.")
|
|
116433
117143
|
);
|
|
116434
117144
|
}
|
|
116435
|
-
}
|
|
116436
|
-
console.log(
|
|
117145
|
+
} catch (err) {
|
|
117146
|
+
console.log(
|
|
117147
|
+
c.dim(`AI coding skills install skipped: ${err instanceof Error ? err.message : err}`)
|
|
117148
|
+
);
|
|
116437
117149
|
}
|
|
116438
117150
|
}
|
|
116439
117151
|
var examples3, WEB_CODECS, DEFAULT_META, TAILWIND_BROWSER_VERSION, TAILWIND_BROWSER_SRC, TAILWIND_BROWSER_INTEGRITY, init_default;
|
|
@@ -116682,7 +117394,7 @@ var init_init = __esm({
|
|
|
116682
117394
|
console.log(` ${c.accent(f3)}`);
|
|
116683
117395
|
}
|
|
116684
117396
|
if (!skipSkills) {
|
|
116685
|
-
await
|
|
117397
|
+
await keepSkillsCurrent(destDir2);
|
|
116686
117398
|
}
|
|
116687
117399
|
console.log();
|
|
116688
117400
|
console.log("Get started:");
|
|
@@ -116872,7 +117584,7 @@ ${c.dim("Use --example blank for offline use.")}`
|
|
|
116872
117584
|
const files = readdirSync21(destDir);
|
|
116873
117585
|
Se(files.map((f3) => c.accent(f3)).join("\n"), c.success(`Created ${name}/`));
|
|
116874
117586
|
if (!skipSkills) {
|
|
116875
|
-
await
|
|
117587
|
+
await keepSkillsCurrent(destDir);
|
|
116876
117588
|
}
|
|
116877
117589
|
R2.info("Opening studio preview...");
|
|
116878
117590
|
try {
|
|
@@ -117079,9 +117791,15 @@ var init_add = __esm({
|
|
|
117079
117791
|
type: "string",
|
|
117080
117792
|
description: "Project directory (defaults to the current working directory)"
|
|
117081
117793
|
},
|
|
117082
|
-
|
|
117794
|
+
clipboard: {
|
|
117795
|
+
// Declared as the positive `clipboard` (default on) so citty's built-in
|
|
117796
|
+
// `--no-<name>` negation handles `--no-clipboard`. Declaring the arg
|
|
117797
|
+
// literally as `"no-clipboard"` made citty parse `--no-clipboard` as the
|
|
117798
|
+
// negation of a (nonexistent) `clipboard` arg, so assertKnownFlags threw
|
|
117799
|
+
// "Unknown flag: --clipboard" even though --help advertised it.
|
|
117083
117800
|
type: "boolean",
|
|
117084
|
-
|
|
117801
|
+
default: true,
|
|
117802
|
+
description: "Copy the include snippet to the clipboard (use --no-clipboard to skip)"
|
|
117085
117803
|
},
|
|
117086
117804
|
json: {
|
|
117087
117805
|
type: "boolean",
|
|
@@ -117091,7 +117809,7 @@ var init_add = __esm({
|
|
|
117091
117809
|
async run({ args }) {
|
|
117092
117810
|
const projectDir = resolve34(args.dir ?? process.cwd());
|
|
117093
117811
|
const json = args.json === true;
|
|
117094
|
-
const skipClipboard = args
|
|
117812
|
+
const skipClipboard = args.clipboard === false;
|
|
117095
117813
|
const hasConfigBefore = existsSync58(projectConfigPath(projectDir));
|
|
117096
117814
|
try {
|
|
117097
117815
|
const result = await runAdd({ name: args.name, projectDir, skipClipboard });
|
|
@@ -118710,6 +119428,63 @@ var init_producer = __esm({
|
|
|
118710
119428
|
}
|
|
118711
119429
|
});
|
|
118712
119430
|
|
|
119431
|
+
// src/utils/webmAlphaCheck.ts
|
|
119432
|
+
import { execFileSync as execFileSync8 } from "child_process";
|
|
119433
|
+
function webmAlphaAdvisory(format, probe) {
|
|
119434
|
+
if (format !== "webm") return void 0;
|
|
119435
|
+
if (!probe.probed || probe.alphaMode) return void 0;
|
|
119436
|
+
return "The WebM output has no VP9 alpha sidecar (the ALPHA_MODE stream tag is absent), so transparency was flattened to opaque. Your ffmpeg/libvpx-vp9 build cannot emit the alpha plane on this platform. For guaranteed transparency, re-render with --format mov (ProRes 4444).";
|
|
119437
|
+
}
|
|
119438
|
+
function probeWebmAlpha(filePath) {
|
|
119439
|
+
try {
|
|
119440
|
+
const ffprobePath = findFFprobe();
|
|
119441
|
+
if (!ffprobePath) return { probed: false, alphaMode: false };
|
|
119442
|
+
const raw = execFileSync8(
|
|
119443
|
+
ffprobePath,
|
|
119444
|
+
[
|
|
119445
|
+
"-v",
|
|
119446
|
+
"error",
|
|
119447
|
+
"-select_streams",
|
|
119448
|
+
"v:0",
|
|
119449
|
+
"-show_entries",
|
|
119450
|
+
"stream=codec_name:stream_tags=alpha_mode",
|
|
119451
|
+
"-of",
|
|
119452
|
+
"json",
|
|
119453
|
+
filePath
|
|
119454
|
+
],
|
|
119455
|
+
{ encoding: "utf-8", timeout: 15e3 }
|
|
119456
|
+
);
|
|
119457
|
+
const parsed = JSON.parse(raw);
|
|
119458
|
+
const stream = parsed.streams?.[0];
|
|
119459
|
+
if (!stream || typeof stream.codec_name !== "string") {
|
|
119460
|
+
return { probed: false, alphaMode: false };
|
|
119461
|
+
}
|
|
119462
|
+
const tags = stream.tags ?? {};
|
|
119463
|
+
const alphaMode = Object.entries(tags).some(
|
|
119464
|
+
([k2, v2]) => k2.toLowerCase() === "alpha_mode" && String(v2) === "1"
|
|
119465
|
+
);
|
|
119466
|
+
return { probed: true, alphaMode };
|
|
119467
|
+
} catch {
|
|
119468
|
+
return { probed: false, alphaMode: false };
|
|
119469
|
+
}
|
|
119470
|
+
}
|
|
119471
|
+
function warnIfWebmAlphaDropped(outputPath, format, quiet) {
|
|
119472
|
+
if (quiet || format !== "webm") return;
|
|
119473
|
+
const advisory = webmAlphaAdvisory(format, probeWebmAlpha(outputPath));
|
|
119474
|
+
if (!advisory) return;
|
|
119475
|
+
console.warn(`
|
|
119476
|
+
${c.warn("\u26A0")} ${c.bold("Transparency not preserved")}`);
|
|
119477
|
+
console.warn(` ${c.dim(advisory)}
|
|
119478
|
+
`);
|
|
119479
|
+
}
|
|
119480
|
+
var init_webmAlphaCheck = __esm({
|
|
119481
|
+
"src/utils/webmAlphaCheck.ts"() {
|
|
119482
|
+
"use strict";
|
|
119483
|
+
init_ffmpeg();
|
|
119484
|
+
init_colors();
|
|
119485
|
+
}
|
|
119486
|
+
});
|
|
119487
|
+
|
|
118713
119488
|
// src/ui/progress.ts
|
|
118714
119489
|
function renderProgress(percent, stage, row) {
|
|
118715
119490
|
const width = 25;
|
|
@@ -118919,7 +119694,7 @@ var init_dockerRunArgs = __esm({
|
|
|
118919
119694
|
});
|
|
118920
119695
|
|
|
118921
119696
|
// src/browser/preflight.ts
|
|
118922
|
-
import { execFileSync as
|
|
119697
|
+
import { execFileSync as execFileSync9 } from "child_process";
|
|
118923
119698
|
import { existsSync as existsSync65 } from "fs";
|
|
118924
119699
|
import { platform as platform8 } from "os";
|
|
118925
119700
|
function parseToolVersion(raw) {
|
|
@@ -118933,7 +119708,7 @@ function configuredMissingDetail(envName) {
|
|
|
118933
119708
|
}
|
|
118934
119709
|
function readToolVersion(binaryPath) {
|
|
118935
119710
|
try {
|
|
118936
|
-
const raw =
|
|
119711
|
+
const raw = execFileSync9(binaryPath, ["-version"], { encoding: "utf-8", timeout: 5e3 }).split("\n")[0] ?? "";
|
|
118937
119712
|
const version2 = parseToolVersion(raw);
|
|
118938
119713
|
return version2 ? `${version2} at ${binaryPath}` : binaryPath;
|
|
118939
119714
|
} catch {
|
|
@@ -119481,7 +120256,7 @@ __export(render_exports, {
|
|
|
119481
120256
|
import { mkdirSync as mkdirSync35, readdirSync as readdirSync24, readFileSync as readFileSync44, statSync as statSync20, writeFileSync as writeFileSync24, rmSync as rmSync19 } from "fs";
|
|
119482
120257
|
import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir7 } from "os";
|
|
119483
120258
|
import { resolve as resolve44, dirname as dirname30, join as join73, basename as basename12 } from "path";
|
|
119484
|
-
import { execFileSync as
|
|
120259
|
+
import { execFileSync as execFileSync10, spawn as spawn15 } from "child_process";
|
|
119485
120260
|
function formatFpsParseError(input2, reason) {
|
|
119486
120261
|
switch (reason) {
|
|
119487
120262
|
case "empty":
|
|
@@ -119554,7 +120329,7 @@ function resolveDockerfilePath() {
|
|
|
119554
120329
|
}
|
|
119555
120330
|
function dockerImageExists(tag) {
|
|
119556
120331
|
try {
|
|
119557
|
-
|
|
120332
|
+
execFileSync10("docker", ["image", "inspect", tag], { stdio: "pipe", timeout: 1e4 });
|
|
119558
120333
|
return true;
|
|
119559
120334
|
} catch {
|
|
119560
120335
|
return false;
|
|
@@ -119577,7 +120352,7 @@ function ensureDockerImage(version2, platform10, quiet) {
|
|
|
119577
120352
|
writeFileSync24(join73(tmpDir, "Dockerfile"), readFileSync44(dockerfilePath));
|
|
119578
120353
|
const targetArch = platform10 === "linux/arm64" ? "arm64" : "amd64";
|
|
119579
120354
|
try {
|
|
119580
|
-
|
|
120355
|
+
execFileSync10(
|
|
119581
120356
|
"docker",
|
|
119582
120357
|
[
|
|
119583
120358
|
"build",
|
|
@@ -119615,7 +120390,7 @@ function resolveDockerHostPlatform(options) {
|
|
|
119615
120390
|
if (!options.quiet && platform10 === "linux/arm64") {
|
|
119616
120391
|
console.log(
|
|
119617
120392
|
c.dim(
|
|
119618
|
-
" Host is arm64 \u2014 using linux/arm64 image with
|
|
120393
|
+
" Host is arm64 \u2014 using linux/arm64 image with Playwright's chrome-headless-shell (output won't be byte-identical to amd64 renders; set HYPERFRAMES_DOCKER_PLATFORM=linux/amd64 to force parity)."
|
|
119619
120394
|
)
|
|
119620
120395
|
);
|
|
119621
120396
|
}
|
|
@@ -119703,6 +120478,7 @@ async function renderDocker(projectDir, outputPath, options) {
|
|
|
119703
120478
|
...getMemorySnapshot()
|
|
119704
120479
|
});
|
|
119705
120480
|
printRenderComplete(outputPath, elapsed, options.quiet);
|
|
120481
|
+
warnIfWebmAlphaDropped(outputPath, options.format, options.quiet);
|
|
119706
120482
|
if (options.exitAfterComplete) scheduleRenderProcessExit();
|
|
119707
120483
|
return { renderTimeMs: elapsed };
|
|
119708
120484
|
}
|
|
@@ -119788,6 +120564,7 @@ async function renderLocal(projectDir, outputPath, options) {
|
|
|
119788
120564
|
job.perfSummary?.compositionDurationSeconds,
|
|
119789
120565
|
job.perfSummary?.totalFrames
|
|
119790
120566
|
);
|
|
120567
|
+
warnIfWebmAlphaDropped(outputPath, options.format, options.quiet);
|
|
119791
120568
|
if (!options.skipFeedback) {
|
|
119792
120569
|
await maybePromptRenderFeedback({
|
|
119793
120570
|
renderDurationMs: elapsed,
|
|
@@ -119962,6 +120739,7 @@ function trackRenderMetrics(job, elapsedMs, options, docker) {
|
|
|
119962
120739
|
speedRatio,
|
|
119963
120740
|
captureAvgMs: perf?.captureAvgMs,
|
|
119964
120741
|
captureP50Ms: perf?.captureP50Ms,
|
|
120742
|
+
subTimelineWait: perf?.subTimelineWait,
|
|
119965
120743
|
videoCount: perf?.videoCount,
|
|
119966
120744
|
capturePeakMs: perf?.capturePeakMs,
|
|
119967
120745
|
tmpPeakBytes: perf?.tmpPeakBytes,
|
|
@@ -120032,6 +120810,7 @@ var init_render = __esm({
|
|
|
120032
120810
|
init_producer();
|
|
120033
120811
|
init_colors();
|
|
120034
120812
|
init_format();
|
|
120813
|
+
init_webmAlphaCheck();
|
|
120035
120814
|
init_progress();
|
|
120036
120815
|
init_events();
|
|
120037
120816
|
init_feedback();
|
|
@@ -120550,13 +121329,14 @@ var init_render = __esm({
|
|
|
120550
121329
|
let browserSpinner;
|
|
120551
121330
|
try {
|
|
120552
121331
|
if (effectiveQuiet) {
|
|
120553
|
-
const info = await ensureBrowser2();
|
|
121332
|
+
const info = await ensureBrowser2({ preferManagedChrome: true });
|
|
120554
121333
|
browserPath = info.executablePath;
|
|
120555
121334
|
} else {
|
|
120556
121335
|
const clack = await Promise.resolve().then(() => (init_dist8(), dist_exports3));
|
|
120557
121336
|
browserSpinner = clack.spinner();
|
|
120558
121337
|
browserSpinner.start("Checking browser...");
|
|
120559
121338
|
const info = await ensureBrowser2({
|
|
121339
|
+
preferManagedChrome: true,
|
|
120560
121340
|
onProgress: (downloaded, total) => {
|
|
120561
121341
|
if (total <= 0) return;
|
|
120562
121342
|
const pct = Math.floor(downloaded / total * 100);
|
|
@@ -125526,20 +126306,30 @@ async function runEnsure(options) {
|
|
|
125526
126306
|
const s2 = ft();
|
|
125527
126307
|
if (!options?.force) {
|
|
125528
126308
|
s2.start("Looking for an existing browser...");
|
|
125529
|
-
|
|
125530
|
-
|
|
125531
|
-
|
|
125532
|
-
|
|
125533
|
-
|
|
125534
|
-
|
|
125535
|
-
|
|
125536
|
-
|
|
125537
|
-
|
|
125538
|
-
|
|
125539
|
-
|
|
125540
|
-
|
|
125541
|
-
|
|
126309
|
+
let lastPct2 = -1;
|
|
126310
|
+
const existing = await ensureBrowser({
|
|
126311
|
+
preferManagedChrome: true,
|
|
126312
|
+
onProgress: (downloaded, total) => {
|
|
126313
|
+
if (total <= 0) return;
|
|
126314
|
+
const pct = Math.floor(downloaded / total * 100);
|
|
126315
|
+
if (pct > lastPct2) {
|
|
126316
|
+
lastPct2 = pct;
|
|
126317
|
+
s2.message(
|
|
126318
|
+
`Downloading Chrome Headless Shell ${c.dim("v" + CHROME_VERSION)} \u2014 ${c.progress(pct + "%")} ${c.dim("(" + formatBytes(downloaded) + " / " + formatBytes(total) + ")")}`
|
|
126319
|
+
);
|
|
126320
|
+
}
|
|
126321
|
+
}
|
|
126322
|
+
});
|
|
126323
|
+
if (existing.source === "download") trackBrowserInstall();
|
|
126324
|
+
s2.stop(c.success(existing.source === "download" ? "Download complete" : "Browser found"));
|
|
126325
|
+
console.log();
|
|
126326
|
+
console.log(` ${c.dim("Source:")} ${c.bold(existing.source)}`);
|
|
126327
|
+
console.log(` ${c.dim("Path:")} ${c.bold(existing.executablePath)}`);
|
|
126328
|
+
console.log();
|
|
126329
|
+
ye(c.success("Ready to render."));
|
|
126330
|
+
return;
|
|
125542
126331
|
}
|
|
126332
|
+
s2.start("Purging cached download and re-downloading...");
|
|
125543
126333
|
const downloadSpinner = ft();
|
|
125544
126334
|
downloadSpinner.start(`Downloading Chrome Headless Shell ${c.dim("v" + CHROME_VERSION)}...`);
|
|
125545
126335
|
let lastPct = -1;
|
|
@@ -125876,13 +126666,13 @@ var init_remove_background = __esm({
|
|
|
125876
126666
|
});
|
|
125877
126667
|
|
|
125878
126668
|
// src/whisper/parakeet.ts
|
|
125879
|
-
import { execFileSync as
|
|
126669
|
+
import { execFileSync as execFileSync11 } from "child_process";
|
|
125880
126670
|
import { existsSync as existsSync76, mkdtempSync as mkdtempSync6, readFileSync as readFileSync53, rmSync as rmSync20, writeFileSync as writeFileSync27 } from "fs";
|
|
125881
126671
|
import { homedir as homedir13, tmpdir as tmpdir8 } from "os";
|
|
125882
126672
|
import { basename as basename15, extname as extname12, join as join80 } from "path";
|
|
125883
126673
|
function isRunnable(bin) {
|
|
125884
126674
|
try {
|
|
125885
|
-
|
|
126675
|
+
execFileSync11(bin, ["--help"], { stdio: ["ignore", "ignore", "ignore"], timeout: 1e4 });
|
|
125886
126676
|
return true;
|
|
125887
126677
|
} catch {
|
|
125888
126678
|
return false;
|
|
@@ -125898,7 +126688,7 @@ function findParakeet() {
|
|
|
125898
126688
|
}
|
|
125899
126689
|
try {
|
|
125900
126690
|
const which = process.platform === "win32" ? "where" : "which";
|
|
125901
|
-
const out =
|
|
126691
|
+
const out = execFileSync11(which, ["parakeet-mlx"], {
|
|
125902
126692
|
encoding: "utf-8",
|
|
125903
126693
|
stdio: ["ignore", "pipe", "ignore"],
|
|
125904
126694
|
timeout: 5e3
|
|
@@ -125951,7 +126741,7 @@ function transcribeWithParakeet(inputPath, dir, options) {
|
|
|
125951
126741
|
try {
|
|
125952
126742
|
const argv2 = [inputPath, "--model", model, "--output-format", "json", "--output-dir", workDir];
|
|
125953
126743
|
if (options?.language) argv2.push("--language", options.language);
|
|
125954
|
-
|
|
126744
|
+
execFileSync11(runner, argv2, { stdio: ["ignore", "pipe", "pipe"], timeout: 18e5 });
|
|
125955
126745
|
const produced = join80(workDir, `${basename15(inputPath, extname12(inputPath))}.json`);
|
|
125956
126746
|
if (!existsSync76(produced)) throw new Error("Parakeet did not produce output.");
|
|
125957
126747
|
const words = mergeTokensToWords(JSON.parse(readFileSync53(produced, "utf-8")));
|
|
@@ -126333,12 +127123,12 @@ var init_manager4 = __esm({
|
|
|
126333
127123
|
});
|
|
126334
127124
|
|
|
126335
127125
|
// src/tts/python.ts
|
|
126336
|
-
import { execFileSync as
|
|
127126
|
+
import { execFileSync as execFileSync12 } from "child_process";
|
|
126337
127127
|
function findPython() {
|
|
126338
127128
|
const override = process.env.HYPERFRAMES_PYTHON;
|
|
126339
127129
|
if (override) {
|
|
126340
127130
|
try {
|
|
126341
|
-
const version2 =
|
|
127131
|
+
const version2 = execFileSync12(override, ["--version"], {
|
|
126342
127132
|
encoding: "utf-8",
|
|
126343
127133
|
stdio: ["pipe", "pipe", "pipe"],
|
|
126344
127134
|
timeout: 5e3
|
|
@@ -126350,14 +127140,14 @@ function findPython() {
|
|
|
126350
127140
|
for (const name of ["python3", "python"]) {
|
|
126351
127141
|
try {
|
|
126352
127142
|
const cmd = process.platform === "win32" ? "where" : "which";
|
|
126353
|
-
const output =
|
|
127143
|
+
const output = execFileSync12(cmd, [name], {
|
|
126354
127144
|
encoding: "utf-8",
|
|
126355
127145
|
stdio: ["pipe", "pipe", "pipe"],
|
|
126356
127146
|
timeout: 5e3
|
|
126357
127147
|
});
|
|
126358
127148
|
const first = output.split(/\r?\n/).map((s2) => s2.trim()).find(Boolean);
|
|
126359
127149
|
if (!first) continue;
|
|
126360
|
-
const version2 =
|
|
127150
|
+
const version2 = execFileSync12(first, ["--version"], {
|
|
126361
127151
|
encoding: "utf-8",
|
|
126362
127152
|
stdio: ["pipe", "pipe", "pipe"],
|
|
126363
127153
|
timeout: 5e3
|
|
@@ -126370,7 +127160,7 @@ function findPython() {
|
|
|
126370
127160
|
}
|
|
126371
127161
|
function hasPythonPackage(python, pkg) {
|
|
126372
127162
|
try {
|
|
126373
|
-
|
|
127163
|
+
execFileSync12(python, ["-c", `import ${pkg}`], {
|
|
126374
127164
|
stdio: ["pipe", "pipe", "pipe"],
|
|
126375
127165
|
timeout: 1e4
|
|
126376
127166
|
});
|
|
@@ -126385,7 +127175,7 @@ function hasPythonModules(modules) {
|
|
|
126385
127175
|
const list = JSON.stringify(modules);
|
|
126386
127176
|
const probe = `import importlib.util,sys; sys.exit(0 if all(importlib.util.find_spec(m) for m in ${list}) else 1)`;
|
|
126387
127177
|
try {
|
|
126388
|
-
|
|
127178
|
+
execFileSync12(python, ["-c", probe], {
|
|
126389
127179
|
stdio: ["pipe", "pipe", "pipe"],
|
|
126390
127180
|
timeout: 1e4
|
|
126391
127181
|
});
|
|
@@ -126405,7 +127195,7 @@ var synthesize_exports = {};
|
|
|
126405
127195
|
__export(synthesize_exports, {
|
|
126406
127196
|
synthesize: () => synthesize
|
|
126407
127197
|
});
|
|
126408
|
-
import { execFileSync as
|
|
127198
|
+
import { execFileSync as execFileSync13 } from "child_process";
|
|
126409
127199
|
import { existsSync as existsSync79, writeFileSync as writeFileSync29, mkdirSync as mkdirSync38, readdirSync as readdirSync27, unlinkSync as unlinkSync6 } from "fs";
|
|
126410
127200
|
import { join as join84, dirname as dirname37, basename as basename16 } from "path";
|
|
126411
127201
|
import { homedir as homedir15 } from "os";
|
|
@@ -126455,7 +127245,7 @@ async function synthesize(text2, outputPath, options) {
|
|
|
126455
127245
|
mkdirSync38(dirname37(outputPath), { recursive: true });
|
|
126456
127246
|
options?.onProgress?.(`Generating speech with voice ${voice} (${lang})...`);
|
|
126457
127247
|
try {
|
|
126458
|
-
const stdout2 =
|
|
127248
|
+
const stdout2 = execFileSync13(
|
|
126459
127249
|
python,
|
|
126460
127250
|
[scriptPath, modelPath2, voicesPath, text2, voice, String(speed), outputPath, lang],
|
|
126461
127251
|
{
|
|
@@ -127180,7 +127970,7 @@ __export(upgrade_exports, {
|
|
|
127180
127970
|
examples: () => examples24,
|
|
127181
127971
|
runDetectedInstall: () => runDetectedInstall
|
|
127182
127972
|
});
|
|
127183
|
-
import { execFileSync as
|
|
127973
|
+
import { execFileSync as execFileSync14 } from "child_process";
|
|
127184
127974
|
async function confirmUpgrade() {
|
|
127185
127975
|
const shouldUpgrade = await ue({ message: "Upgrade now?" });
|
|
127186
127976
|
return !q(shouldUpgrade) && shouldUpgrade === true;
|
|
@@ -127229,7 +128019,7 @@ function runDetectedInstall(invocation, displayCmd, version2) {
|
|
|
127229
128019
|
console.log(` ${c.dim("Running:")} ${c.accent(displayCmd)}`);
|
|
127230
128020
|
console.log();
|
|
127231
128021
|
try {
|
|
127232
|
-
|
|
128022
|
+
execFileSync14(invocation.bin, invocation.args, { stdio: "inherit", shell: false });
|
|
127233
128023
|
ye(c.success(`Upgraded to v${version2}`));
|
|
127234
128024
|
} catch {
|
|
127235
128025
|
ye(c.dim("Install failed. Try running manually:"));
|
|
@@ -168901,7 +169691,7 @@ async function fetchBuffer(url) {
|
|
|
168901
169691
|
return null;
|
|
168902
169692
|
}
|
|
168903
169693
|
}
|
|
168904
|
-
function
|
|
169694
|
+
function slugify2(text2) {
|
|
168905
169695
|
return text2.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 40);
|
|
168906
169696
|
}
|
|
168907
169697
|
function deriveAssetName(parsedUrl, catalog, isPoster, idx, usedNames) {
|
|
@@ -168924,7 +169714,7 @@ function deriveAssetName(parsedUrl, catalog, isPoster, idx, usedNames) {
|
|
|
168924
169714
|
const prefix = isPoster ? "poster" : catalog?.aboveFold ? "hero" : "image";
|
|
168925
169715
|
let slug = "";
|
|
168926
169716
|
for (const c3 of candidates) {
|
|
168927
|
-
slug =
|
|
169717
|
+
slug = slugify2(c3);
|
|
168928
169718
|
if (slug.length > 3 && !usedNames.has(slug)) break;
|
|
168929
169719
|
}
|
|
168930
169720
|
if (!slug || slug.length <= 3 || usedNames.has(slug)) {
|
|
@@ -172879,12 +173669,12 @@ var init_state = __esm({
|
|
|
172879
173669
|
});
|
|
172880
173670
|
|
|
172881
173671
|
// src/commands/lambda/sam.ts
|
|
172882
|
-
import { execFileSync as
|
|
173672
|
+
import { execFileSync as execFileSync15, spawnSync as spawnSync5 } from "child_process";
|
|
172883
173673
|
import { existsSync as existsSync94 } from "fs";
|
|
172884
173674
|
import { join as join100 } from "path";
|
|
172885
173675
|
function assertSamAvailable() {
|
|
172886
173676
|
try {
|
|
172887
|
-
|
|
173677
|
+
execFileSync15("sam", ["--version"], { stdio: "ignore" });
|
|
172888
173678
|
} catch {
|
|
172889
173679
|
throw new Error(
|
|
172890
173680
|
"`sam` CLI not found on PATH. Install AWS SAM CLI from https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html and retry."
|
|
@@ -172893,7 +173683,7 @@ function assertSamAvailable() {
|
|
|
172893
173683
|
}
|
|
172894
173684
|
function assertAwsCliAvailable() {
|
|
172895
173685
|
try {
|
|
172896
|
-
|
|
173686
|
+
execFileSync15("aws", ["--version"], { stdio: "ignore" });
|
|
172897
173687
|
} catch {
|
|
172898
173688
|
throw new Error(
|
|
172899
173689
|
"`aws` CLI not found on PATH. Install from https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html and configure credentials before retrying."
|
|
@@ -172970,7 +173760,7 @@ function fetchStackOutputs(opts) {
|
|
|
172970
173760
|
if (opts.awsProfile) {
|
|
172971
173761
|
args.unshift("--profile", opts.awsProfile);
|
|
172972
173762
|
}
|
|
172973
|
-
const out =
|
|
173763
|
+
const out = execFileSync15("aws", args, { encoding: "utf-8" });
|
|
172974
173764
|
const parsed = JSON.parse(out);
|
|
172975
173765
|
const byKey = new Map(parsed.map((o) => [o.OutputKey, o.OutputValue]));
|
|
172976
173766
|
const bucketName = byKey.get("RenderBucketName");
|
|
@@ -179008,13 +179798,6 @@ function boxOf(node) {
|
|
|
179008
179798
|
return { x: b2.x, y: b2.y, width: b2.width, height: b2.height };
|
|
179009
179799
|
return null;
|
|
179010
179800
|
}
|
|
179011
|
-
function slugify2(name) {
|
|
179012
|
-
const slug = name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "");
|
|
179013
|
-
return slug.length > 0 ? slug : "node";
|
|
179014
|
-
}
|
|
179015
|
-
function cssVarName(compositionVariableId) {
|
|
179016
|
-
return `--${slugify2(compositionVariableId)}`;
|
|
179017
|
-
}
|
|
179018
179801
|
function escapeHtml2(text2) {
|
|
179019
179802
|
return text2.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
179020
179803
|
}
|
|
@@ -179103,7 +179886,7 @@ function textCss(node, styles) {
|
|
|
179103
179886
|
styles.push(`letter-spacing: ${round4(s2.letterSpacing)}px`);
|
|
179104
179887
|
}
|
|
179105
179888
|
function uniqueSlug(ctx, name) {
|
|
179106
|
-
const base2 =
|
|
179889
|
+
const base2 = slugify(name);
|
|
179107
179890
|
let slug = base2;
|
|
179108
179891
|
let n2 = 2;
|
|
179109
179892
|
while (ctx.usedSlugs.has(slug))
|
|
@@ -179117,7 +179900,7 @@ function backgroundValue(node, ctx) {
|
|
|
179117
179900
|
return null;
|
|
179118
179901
|
const resolved = ctx.bindings.resolved.find((r2) => r2.nodeId === node.id && r2.property === "fills");
|
|
179119
179902
|
if (resolved)
|
|
179120
|
-
return `var(${
|
|
179903
|
+
return `var(${cssVariableName(resolved.compositionVariableId)}, ${literal2})`;
|
|
179121
179904
|
return literal2;
|
|
179122
179905
|
}
|
|
179123
179906
|
function unresolvedAttr(node, ctx) {
|
|
@@ -179138,16 +179921,7 @@ function geometryCss(node, ctx, isRoot) {
|
|
|
179138
179921
|
}
|
|
179139
179922
|
return styles;
|
|
179140
179923
|
}
|
|
179141
|
-
function
|
|
179142
|
-
const styles = [];
|
|
179143
|
-
const bg = backgroundValue(node, ctx);
|
|
179144
|
-
if (node.type === "TEXT") {
|
|
179145
|
-
if (bg !== null)
|
|
179146
|
-
styles.push(`color: ${bg}`);
|
|
179147
|
-
textCss(node, styles);
|
|
179148
|
-
} else if (bg !== null) {
|
|
179149
|
-
styles.push(`background: ${bg}`);
|
|
179150
|
-
}
|
|
179924
|
+
function shapeCss(node, styles) {
|
|
179151
179925
|
if (node.type === "ELLIPSE") {
|
|
179152
179926
|
styles.push("border-radius: 50%");
|
|
179153
179927
|
} else if (typeof node.cornerRadius === "number" && node.cornerRadius > 0) {
|
|
@@ -179157,6 +179931,18 @@ function decorationCss(node, ctx) {
|
|
|
179157
179931
|
styles.push("overflow: hidden");
|
|
179158
179932
|
if (typeof node.opacity === "number" && node.opacity < 1)
|
|
179159
179933
|
styles.push(`opacity: ${round4(node.opacity)}`);
|
|
179934
|
+
}
|
|
179935
|
+
function decorationCss(node, ctx) {
|
|
179936
|
+
const styles = [];
|
|
179937
|
+
const bg = backgroundValue(node, ctx);
|
|
179938
|
+
if (node.type === "TEXT") {
|
|
179939
|
+
if (bg !== null)
|
|
179940
|
+
styles.push(`color: ${bg}`);
|
|
179941
|
+
textCss(node, styles);
|
|
179942
|
+
} else if (bg !== null) {
|
|
179943
|
+
styles.push(bg.includes("gradient(") ? `background: ${bg}` : `background-color: ${bg}`);
|
|
179944
|
+
}
|
|
179945
|
+
shapeCss(node, styles);
|
|
179160
179946
|
effectsCss(node, styles);
|
|
179161
179947
|
return styles;
|
|
179162
179948
|
}
|
|
@@ -179176,7 +179962,8 @@ function renderNodeHtml(node, ctx, isRoot, depth = 0) {
|
|
|
179176
179962
|
return "";
|
|
179177
179963
|
const slug = uniqueSlug(ctx, node.name);
|
|
179178
179964
|
const style = escapeHtml2([...geometryCss(node, ctx, isRoot), ...decorationCss(node, ctx)].join("; "));
|
|
179179
|
-
const
|
|
179965
|
+
const snippetAttr = isRoot ? ' data-hf-snippet=""' : "";
|
|
179966
|
+
const idAttrs = `id="${slug}"${snippetAttr} data-figma-id="${escapeHtml2(node.id)}"${unresolvedAttr(node, ctx)}`;
|
|
179180
179967
|
if (RASTERIZE_TYPES.has(node.type)) {
|
|
179181
179968
|
ctx.rasterize.push({ nodeId: node.id, name: node.name, slug });
|
|
179182
179969
|
return `<img ${idAttrs} data-figma-rasterize="${escapeHtml2(node.id)}" alt="${escapeHtml2(node.name)}" style="${style}" />`;
|
|
@@ -179187,10 +179974,11 @@ function renderNodeHtml(node, ctx, isRoot, depth = 0) {
|
|
|
179187
179974
|
}
|
|
179188
179975
|
return `<div ${idAttrs} style="${style}">${renderChildren(node, ctx, depth)}</div>`;
|
|
179189
179976
|
}
|
|
179190
|
-
function nodeToHtml(root, bindings) {
|
|
179977
|
+
function nodeToHtml(root, bindings, opts = {}) {
|
|
179191
179978
|
const origin = boxOf(root) ?? { x: 0, y: 0, width: 0, height: 0 };
|
|
179192
179979
|
const ctx = { origin, bindings, rasterize: [], usedSlugs: /* @__PURE__ */ new Set() };
|
|
179193
|
-
const
|
|
179980
|
+
const rootForRender = opts.rootName !== void 0 ? { ...root, name: opts.rootName } : root;
|
|
179981
|
+
const html = renderNodeHtml(rootForRender, ctx, true);
|
|
179194
179982
|
return { html, rasterize: ctx.rasterize };
|
|
179195
179983
|
}
|
|
179196
179984
|
var RASTERIZE_TYPES, MAX_DEPTH4;
|
|
@@ -179199,6 +179987,8 @@ var init_nodeToHtml = __esm({
|
|
|
179199
179987
|
"use strict";
|
|
179200
179988
|
init_color();
|
|
179201
179989
|
init_nodeDocument();
|
|
179990
|
+
init_tokenSlug();
|
|
179991
|
+
init_tokenSlug();
|
|
179202
179992
|
RASTERIZE_TYPES = /* @__PURE__ */ new Set([
|
|
179203
179993
|
"VECTOR",
|
|
179204
179994
|
"BOOLEAN_OPERATION",
|
|
@@ -179637,49 +180427,20 @@ async function runComponentImport(refInput, deps) {
|
|
|
179637
180427
|
if (!ref2.nodeId) throw new Error(`ref "${refInput}" has no node id`);
|
|
179638
180428
|
const tree = await deps.client.nodeTree(ref2);
|
|
179639
180429
|
const bindings = resolveBindings(tree, readBindings(deps.projectDir));
|
|
179640
|
-
const mapped = nodeToHtml(tree, bindings);
|
|
179641
|
-
const name =
|
|
180430
|
+
const mapped = nodeToHtml(tree, bindings, { rootName: deps.name });
|
|
180431
|
+
const name = slugify(deps.name ?? tree.name);
|
|
179642
180432
|
const componentDir = join114(deps.projectDir, "compositions", "components", name);
|
|
179643
180433
|
if (existsSync105(componentDir))
|
|
179644
180434
|
console.warn(
|
|
179645
180435
|
`component dir compositions/components/${name} already exists \u2014 overwriting (rename the figma frame for a separate import)`
|
|
179646
180436
|
);
|
|
179647
180437
|
mkdirSync54(componentDir, { recursive: true });
|
|
179648
|
-
|
|
179649
|
-
|
|
179650
|
-
|
|
179651
|
-
|
|
179652
|
-
|
|
179653
|
-
|
|
179654
|
-
try {
|
|
179655
|
-
asset = await runAssetImport(
|
|
179656
|
-
`${ref2.fileKey}:${req.nodeId}`,
|
|
179657
|
-
{ format, description: req.name },
|
|
179658
|
-
{ projectDir: deps.projectDir, client: deps.client, download: deps.download }
|
|
179659
|
-
);
|
|
179660
|
-
break;
|
|
179661
|
-
} catch (err) {
|
|
179662
|
-
if (!(err instanceof FigmaClientError) || err.code !== "RENDER_FAILED") throw err;
|
|
179663
|
-
}
|
|
179664
|
-
}
|
|
179665
|
-
if (asset === null) {
|
|
179666
|
-
failedRasterize.push(req.nodeId);
|
|
179667
|
-
console.warn(
|
|
179668
|
-
`could not render node ${req.nodeId} ("${req.name}") as svg or png \u2014 leaving its placeholder without src`
|
|
179669
|
-
);
|
|
179670
|
-
continue;
|
|
179671
|
-
}
|
|
179672
|
-
frozenAssets.push(asset.record.path);
|
|
179673
|
-
const srcRel = relative17(componentDir, join114(deps.projectDir, asset.record.path)).replaceAll(
|
|
179674
|
-
"\\",
|
|
179675
|
-
"/"
|
|
179676
|
-
);
|
|
179677
|
-
const emittedId = escapeAttr2(req.nodeId);
|
|
179678
|
-
html = html.replaceAll(
|
|
179679
|
-
`data-figma-rasterize="${emittedId}" `,
|
|
179680
|
-
`data-figma-rasterize="${emittedId}" src="${escapeAttr2(srcRel)}" `
|
|
179681
|
-
);
|
|
179682
|
-
}
|
|
180438
|
+
const { html, frozenAssets, failedRasterize } = await rasterizeFallback(
|
|
180439
|
+
mapped,
|
|
180440
|
+
ref2.fileKey,
|
|
180441
|
+
componentDir,
|
|
180442
|
+
deps
|
|
180443
|
+
);
|
|
179683
180444
|
const htmlFile = join114(componentDir, `${name}.html`);
|
|
179684
180445
|
writeFileSync48(htmlFile, html + "\n");
|
|
179685
180446
|
const registryItem = {
|
|
@@ -179713,6 +180474,46 @@ async function runComponentImport(refInput, deps) {
|
|
|
179713
180474
|
failedRasterize
|
|
179714
180475
|
};
|
|
179715
180476
|
}
|
|
180477
|
+
async function rasterizeFallback(mapped, fileKey, componentDir, deps) {
|
|
180478
|
+
let html = mapped.html;
|
|
180479
|
+
const frozenAssets = [];
|
|
180480
|
+
const failedRasterize = [];
|
|
180481
|
+
for (const req of mapped.rasterize) {
|
|
180482
|
+
const asset = await renderWithPngRetry(fileKey, req, deps);
|
|
180483
|
+
if (asset === null) {
|
|
180484
|
+
failedRasterize.push(req.nodeId);
|
|
180485
|
+
console.warn(
|
|
180486
|
+
`could not render node ${req.nodeId} ("${req.name}") as svg or png \u2014 leaving its placeholder without src`
|
|
180487
|
+
);
|
|
180488
|
+
continue;
|
|
180489
|
+
}
|
|
180490
|
+
frozenAssets.push(asset.record.path);
|
|
180491
|
+
const srcRel = relative17(componentDir, join114(deps.projectDir, asset.record.path)).replaceAll(
|
|
180492
|
+
"\\",
|
|
180493
|
+
"/"
|
|
180494
|
+
);
|
|
180495
|
+
const emittedId = escapeAttr2(req.nodeId);
|
|
180496
|
+
html = html.replaceAll(
|
|
180497
|
+
`data-figma-rasterize="${emittedId}" `,
|
|
180498
|
+
`data-figma-rasterize="${emittedId}" src="${escapeAttr2(srcRel)}" `
|
|
180499
|
+
);
|
|
180500
|
+
}
|
|
180501
|
+
return { html, frozenAssets, failedRasterize };
|
|
180502
|
+
}
|
|
180503
|
+
async function renderWithPngRetry(fileKey, req, deps) {
|
|
180504
|
+
for (const format of ["svg", "png"]) {
|
|
180505
|
+
try {
|
|
180506
|
+
return await runAssetImport(
|
|
180507
|
+
`${fileKey}:${req.nodeId}`,
|
|
180508
|
+
{ format, description: req.name },
|
|
180509
|
+
{ projectDir: deps.projectDir, client: deps.client, download: deps.download }
|
|
180510
|
+
);
|
|
180511
|
+
} catch (err) {
|
|
180512
|
+
if (!(err instanceof FigmaClientError) || err.code !== "RENDER_FAILED") throw err;
|
|
180513
|
+
}
|
|
180514
|
+
}
|
|
180515
|
+
return null;
|
|
180516
|
+
}
|
|
179716
180517
|
var component_default;
|
|
179717
180518
|
var init_component = __esm({
|
|
179718
180519
|
"src/commands/figma/component.ts"() {
|
|
@@ -179726,6 +180527,10 @@ var init_component = __esm({
|
|
|
179726
180527
|
meta: { name: "component", description: "Import a figma frame as an editable HTML component" },
|
|
179727
180528
|
args: {
|
|
179728
180529
|
ref: { type: "positional", description: "figma URL or fileKey:nodeId", required: true },
|
|
180530
|
+
name: {
|
|
180531
|
+
type: "string",
|
|
180532
|
+
description: "component name override (variant frames often share a name and would collide)"
|
|
180533
|
+
},
|
|
179729
180534
|
dir: { type: "string", description: "project directory", default: "." }
|
|
179730
180535
|
},
|
|
179731
180536
|
async run({ args }) {
|
|
@@ -179735,7 +180540,8 @@ var init_component = __esm({
|
|
|
179735
180540
|
const result = await runComponentImport(args.ref, {
|
|
179736
180541
|
projectDir: args.dir,
|
|
179737
180542
|
client,
|
|
179738
|
-
download: downloadRender
|
|
180543
|
+
download: downloadRender,
|
|
180544
|
+
name: args.name
|
|
179739
180545
|
});
|
|
179740
180546
|
console.log(`imported component "${result.name}" \u2192 ${result.htmlPath}`);
|
|
179741
180547
|
if (result.rasterized.length > 0) {
|
|
@@ -180006,13 +180812,13 @@ async function refreshSkillsCache() {
|
|
|
180006
180812
|
config.lastSkillsCheck = (/* @__PURE__ */ new Date()).toISOString();
|
|
180007
180813
|
config.skillsUpdateAvailable = result.updateAvailable;
|
|
180008
180814
|
config.skillsOutdatedCount = result.summary.outdated;
|
|
180009
|
-
config.skillsMissingCount = result.summary.
|
|
180815
|
+
config.skillsMissingCount = result.summary.coreMissing;
|
|
180010
180816
|
writeConfig(config);
|
|
180011
180817
|
}
|
|
180012
180818
|
return {
|
|
180013
180819
|
updateAvailable: result.updateAvailable,
|
|
180014
180820
|
outdated: result.summary.outdated,
|
|
180015
|
-
missing: result.summary.
|
|
180821
|
+
missing: result.summary.coreMissing
|
|
180016
180822
|
};
|
|
180017
180823
|
}
|
|
180018
180824
|
async function checkSkillsForUpdate(force) {
|
|
@@ -180274,25 +181080,36 @@ function assertKnownFlags(cmd, rawArgs) {
|
|
|
180274
181080
|
|
|
180275
181081
|
// src/utils/command-failure-tracking.ts
|
|
180276
181082
|
function trackCommandFailures(load, onFailure) {
|
|
180277
|
-
return () => load().then((cmd) =>
|
|
180278
|
-
|
|
180279
|
-
|
|
180280
|
-
|
|
180281
|
-
|
|
180282
|
-
|
|
181083
|
+
return () => load().then((cmd) => wrapCommand(cmd, onFailure));
|
|
181084
|
+
}
|
|
181085
|
+
function wrapCommand(cmd, onFailure) {
|
|
181086
|
+
const run2 = cmd.run;
|
|
181087
|
+
if (typeof run2 !== "function" && !cmd.subCommands) return cmd;
|
|
181088
|
+
const wrapped = { ...cmd };
|
|
181089
|
+
if (typeof run2 === "function") {
|
|
181090
|
+
wrapped.run = async (ctx) => {
|
|
181091
|
+
try {
|
|
180283
181092
|
assertKnownFlags(cmd, ctx?.rawArgs ?? []);
|
|
181093
|
+
return await run2(ctx);
|
|
181094
|
+
} catch (err) {
|
|
180284
181095
|
try {
|
|
180285
|
-
|
|
180286
|
-
} catch
|
|
180287
|
-
try {
|
|
180288
|
-
await onFailure(err);
|
|
180289
|
-
} catch {
|
|
180290
|
-
}
|
|
180291
|
-
throw err;
|
|
181096
|
+
await onFailure(err);
|
|
181097
|
+
} catch {
|
|
180292
181098
|
}
|
|
181099
|
+
throw err;
|
|
180293
181100
|
}
|
|
180294
181101
|
};
|
|
180295
|
-
}
|
|
181102
|
+
}
|
|
181103
|
+
if (cmd.subCommands) {
|
|
181104
|
+
const wrappedSubs = {};
|
|
181105
|
+
for (const [name, sub] of Object.entries(cmd.subCommands)) {
|
|
181106
|
+
wrappedSubs[name] = () => Promise.resolve(typeof sub === "function" ? sub() : sub).then(
|
|
181107
|
+
(c3) => wrapCommand(c3, onFailure)
|
|
181108
|
+
);
|
|
181109
|
+
}
|
|
181110
|
+
wrapped.subCommands = wrappedSubs;
|
|
181111
|
+
}
|
|
181112
|
+
return wrapped;
|
|
180296
181113
|
}
|
|
180297
181114
|
async function reportCommandFailure(command2, err) {
|
|
180298
181115
|
try {
|