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/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.42" : "0.0.0-dev";
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 declaredDefaults = readDeclaredDefaults(document.documentElement);
59312
- const overrides = readOverrides();
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 readOverrides() {
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 ready = await pollPageExpression(page, expression, timeoutMs, intervalMs);
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
- if (!ready) {
63024
- const missing = await page.evaluate(`(function() {
63025
- var hosts = document.querySelectorAll("[data-composition-id]");
63026
- var timelines = window.__timelines || {};
63027
- var m = [];
63028
- for (var i = 0; i < hosts.length; i++) {
63029
- if (hosts[i].hasAttribute("data-no-timeline")) continue;
63030
- var id = hosts[i].getAttribute("data-composition-id");
63031
- if (id && !timelines[id]) m.push(id);
63032
- }
63033
- return m.join(", ");
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(page, pageReadyTimeout2);
63223
- logInitPhase("pollSubCompositionTimelines complete");
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(page, pageReadyTimeout);
63316
- logInitPhase("pollSubCompositionTimelines complete");
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 seekCapture = async (frameIdx) => {
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
- let spent = 0;
63586
- for (const { a, b: b2 } of runs) {
63587
- const anchor = a - 1;
63588
- if (anchor < 0) continue;
63589
- const anchorBuf = await seekCapture(anchor);
63590
- spent++;
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
- if (!anchorBuf.equals(cur)) return { badFrame: f3, budgetExhausted: false };
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
- if (spent > hardCap) return { badFrame: a, budgetExhausted: true };
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
- session.staticDedupCount = (session.staticDedupCount ?? 0) + 1;
63836
- session.capturePerf.frames += 1;
63837
- return { encodeResult: session.lastEncodeResult, captureTimeMs: Date.now() - startTime };
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) session.lastEncodeResult = boundaryResult;
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) session.lastEncodeResult = encodeResult;
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 resolve62 of list) resolve62();
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
- return { waitForFrame, advanceTo, waitForAllDone };
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
- const authoredRootId = prepared.getAttribute("id")?.trim();
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
- if (Object.keys(compVariablesByComp).length > 0) {
73405
- compScriptChunks.unshift(`window.__hfVariablesByComp = Object.assign({}, window.__hfVariablesByComp || {}, ${JSON.stringify(compVariablesByComp)});`);
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
- var DEFAULT_RUNTIME_SCRIPT_URL, CSS_IMPORT_RE, CSS_COMMENT_RE, INLINE_MIME, FLATTENED_INNER_ROOT_STRIP_ATTRS;
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 audioEls = document2.querySelectorAll("audio[id][src]");
75356
- for (const el of audioEls) {
75357
- const id = el.getAttribute("id");
75358
- const src = el.getAttribute("src");
75359
- if (!id || !src) continue;
75360
- const startAttr = el.getAttribute("data-start");
75361
- const endAttr = el.getAttribute("data-end");
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
- elements.push({
75750
+ return {
75366
75751
  id,
75367
- src,
75368
- start: startAttr ? parseFloat(startAttr) : 0,
75369
- end: endAttr ? parseFloat(endAttr) : 0,
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: "audio"
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 videoEls = document2.querySelectorAll('video[id][src][data-has-audio="true"]');
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
- const src = el.getAttribute("src");
75380
- if (!id || !src) continue;
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
- for (let i2 = task.startFrame; i2 < task.endFrame; i2++) {
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((sum, t2) => sum + (t2.endFrame - t2.startFrame), 0);
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 summary.missing++;
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
- // The full skill set is the goal `init` and `skills update` both pull the
82406
- // complete set, so anything outdated OR missing means an update is available.
82407
- updateAvailable: summary.outdated > 0 || summary.missing > 0,
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
- installAllSkills: () => installAllSkills
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 GLOBAL_INSTALL_ARGS),
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 runSkillsAdd(source, opts = {}) {
82771
- return spawnNpx(["skills", "add", source, ...opts.extraArgs ?? GLOBAL_INSTALL_ARGS], opts);
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
- async function installAllSkills(opts = {}) {
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 printSkillSection(result, status, title, mark, color) {
82822
- const items = result.skills.filter((s2) => s2.status === status);
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.missing) parts.push(c.dim(`\u25E6 ${summary.missing} not installed`));
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(result, "missing", "Not installed:", "\u25E6", c.dim);
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
- var examples, GLOBAL_INSTALL_ARGS, PLAIN_SKILL_NAME, SOURCES, SKILLS_TOOLING, checkCommand, updateCommand, skills_default;
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 all skills to the latest (installs any missing)", "hyperframes skills 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
- GLOBAL_INSTALL_ARGS = [
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 all HyperFrames skills to the latest \u2014 installs any not yet present, removes any no longer published"
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 installAllSkills({ strict: true });
83568
+ const result = await updateSkills({ requested, refreshInstalled: true, strict: true });
83569
+ reportUpdate(result, requested, args.json === true);
82963
83570
  } catch (err) {
82964
- R2.error(c.error(`Update failed: ${err.message}`));
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 installAllSkills();
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 renderObservabilityTelemetryPayload(
84159
- job?.errorDetails?.observability ?? job?.perfSummary?.observability
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) return html;
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
- if (result.scripts.length && body) {
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 = result.scripts.join("\n;\n");
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(fullHtml, subCompositions, projectDir);
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
- async function runWorkerEncodePipelineLoop(session, totalFrames, job, currentEncoder, reorderBuffer, assertNotAborted, onProgress, log2, stats) {
107744
- let prev = null;
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
- const guardFrame = async (idx, buf) => {
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 tasks = distributeFrames(totalFrames, workerCount, workDir);
107964
- const onFrameBuffer = async (frameIndex, buffer) => {
107965
- await reorderBuffer.waitForFrame(frameIndex);
107966
- ensureFrameWritten(await currentEncoder.writeFrame(buffer), frameIndex, currentEncoder);
107967
- reorderBuffer.advanceTo(frameIndex + 1);
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 workerResults = await executeParallelCapture(
107970
- fileServer.url,
107971
- workDir,
107972
- tasks,
107973
- buildCaptureOptions(),
107974
- createRenderVideoFrameInjector,
107975
- abortSignal,
107976
- (progress) => {
107977
- job.framesRendered = progress.capturedFrames;
107978
- const frameProgress = progress.capturedFrames / progress.totalFrames;
107979
- const progressPct = 25 + frameProgress * 55;
107980
- if (progress.capturedFrames % 30 === 0 || progress.capturedFrames === progress.totalFrames) {
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
- onFrameBuffer,
107991
- captureCfg
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
- if (cfg.useDrawElement && process.env.PRODUCER_EXPERIMENTAL_FAST_CAPTURE !== "true" && (!useStreamingEncode || workerCount > 1)) {
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
- if (existsSync53(CACHE_DIR2)) {
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
- const fromSystem = findFromSystem2();
114010
- if (fromSystem) {
114011
- warnSystemFallbackOnce(fromSystem.executablePath);
114012
- return fromSystem;
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 = "131.0.6778.85";
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 ensureSkillsCurrent(destDir) {
116417
- const { installAllSkills: installAllSkills2 } = await Promise.resolve().then(() => (init_skills(), skills_exports));
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 checkSkills2({ cwd: destDir });
116424
- needsInstall = result.updateAvailable;
116425
- } catch {
116426
- }
116427
- if (needsInstall) {
116428
- try {
116429
- await installAllSkills2({ cwd: destDir });
116430
- } catch (err) {
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(`AI coding skills install skipped: ${err instanceof Error ? err.message : err}`)
117142
+ c.dim("Workflow skills not installed here are added on demand, when first used.")
116433
117143
  );
116434
117144
  }
116435
- } else {
116436
- console.log(c.success("AI coding skills are already up to date."));
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 ensureSkillsCurrent(destDir2);
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 ensureSkillsCurrent(destDir);
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
- "no-clipboard": {
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
- description: "Skip copying the include snippet to the clipboard"
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["no-clipboard"] === true;
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 execFileSync8 } from "child_process";
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 = execFileSync8(binaryPath, ["-version"], { encoding: "utf-8", timeout: 5e3 }).split("\n")[0] ?? "";
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 execFileSync9, spawn as spawn15 } from "child_process";
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
- execFileSync9("docker", ["image", "inspect", tag], { stdio: "pipe", timeout: 1e4 });
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
- execFileSync9(
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 system chromium (output won't be byte-identical to amd64 renders; set HYPERFRAMES_DOCKER_PLATFORM=linux/amd64 to force parity)."
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
- const existing = await findBrowser();
125530
- if (existing) {
125531
- s2.stop(c.success("Browser found"));
125532
- console.log();
125533
- console.log(` ${c.dim("Source:")} ${c.bold(existing.source)}`);
125534
- console.log(` ${c.dim("Path:")} ${c.bold(existing.executablePath)}`);
125535
- console.log();
125536
- ye(c.success("Ready to render."));
125537
- return;
125538
- }
125539
- s2.stop("No browser found \u2014 downloading");
125540
- } else {
125541
- s2.start("Purging cached download and re-downloading...");
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 execFileSync10 } from "child_process";
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
- execFileSync10(bin, ["--help"], { stdio: ["ignore", "ignore", "ignore"], timeout: 1e4 });
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 = execFileSync10(which, ["parakeet-mlx"], {
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
- execFileSync10(runner, argv2, { stdio: ["ignore", "pipe", "pipe"], timeout: 18e5 });
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 execFileSync11 } from "child_process";
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 = execFileSync11(override, ["--version"], {
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 = execFileSync11(cmd, [name], {
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 = execFileSync11(first, ["--version"], {
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
- execFileSync11(python, ["-c", `import ${pkg}`], {
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
- execFileSync11(python, ["-c", probe], {
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 execFileSync12 } from "child_process";
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 = execFileSync12(
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 execFileSync13 } from "child_process";
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
- execFileSync13(invocation.bin, invocation.args, { stdio: "inherit", shell: false });
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 slugify(text2) {
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 = slugify(c3);
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 execFileSync14, spawnSync as spawnSync5 } from "child_process";
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
- execFileSync14("sam", ["--version"], { stdio: "ignore" });
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
- execFileSync14("aws", ["--version"], { stdio: "ignore" });
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 = execFileSync14("aws", args, { encoding: "utf-8" });
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, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
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 = slugify2(name);
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(${cssVarName(resolved.compositionVariableId)}, ${literal2})`;
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 decorationCss(node, ctx) {
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 idAttrs = `id="${slug}" data-figma-id="${escapeHtml2(node.id)}"${unresolvedAttr(node, ctx)}`;
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 html = renderNodeHtml(root, ctx, true);
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 = slugify2(tree.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
- let html = mapped.html;
179649
- const frozenAssets = [];
179650
- const failedRasterize = [];
179651
- for (const req of mapped.rasterize) {
179652
- let asset = null;
179653
- for (const format of ["svg", "png"]) {
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.missing;
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.missing
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
- const run2 = cmd.run;
180279
- if (typeof run2 !== "function") return cmd;
180280
- return {
180281
- ...cmd,
180282
- run: async (ctx) => {
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
- return await run2(ctx);
180286
- } catch (err) {
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 {