hyperframes 0.7.42 → 0.7.43

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.43" : "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";
@@ -63569,12 +63628,15 @@ async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCo
63569
63628
  if (last && f3 === last.b + 1) last.b = f3;
63570
63629
  else runs.push({ a: f3, b: f3 });
63571
63630
  }
63572
- const seekCapture = async (frameIdx) => {
63631
+ const seekToFrame = async (frameIdx) => {
63573
63632
  const t2 = quantizeTimeToFrame(frameIdx / fps, fps);
63574
63633
  await page.evaluate((tt3) => {
63575
63634
  const hf = window.__hf;
63576
- if (hf && typeof hf.seek === "function") hf.seek(tt3);
63635
+ if (hf && typeof hf.seek === "function") hf.seek(tt3, { suppressEvents: true });
63577
63636
  }, t2);
63637
+ };
63638
+ const seekCapture = async (frameIdx) => {
63639
+ await seekToFrame(frameIdx);
63578
63640
  return pageScreenshotCapture(page, session.options);
63579
63641
  };
63580
63642
  const hardCap = Math.max(
@@ -63582,20 +63644,25 @@ async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCo
63582
63644
  400,
63583
63645
  Math.ceil(frames.length / STATIC_VERIFY_REFERENCE_STRIDE) * 3 + runs.length
63584
63646
  );
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);
63647
+ try {
63648
+ let spent = 0;
63649
+ for (const { a, b: b2 } of runs) {
63650
+ const anchor = a - 1;
63651
+ if (anchor < 0) continue;
63652
+ const anchorBuf = await seekCapture(anchor);
63593
63653
  spent++;
63594
- if (!anchorBuf.equals(cur)) return { badFrame: f3, budgetExhausted: false };
63654
+ for (const f3 of computeStaticVerificationPoints(a, b2, sampleCount)) {
63655
+ const cur = await seekCapture(f3);
63656
+ spent++;
63657
+ if (!anchorBuf.equals(cur)) return { badFrame: f3, budgetExhausted: false };
63658
+ }
63659
+ if (spent > hardCap) return { badFrame: a, budgetExhausted: true };
63595
63660
  }
63596
- if (spent > hardCap) return { badFrame: a, budgetExhausted: true };
63661
+ return null;
63662
+ } finally {
63663
+ await seekToFrame(0).catch(() => {
63664
+ });
63597
63665
  }
63598
- return null;
63599
63666
  }
63600
63667
  async function armStaticDedup(session, page, logInitPhase) {
63601
63668
  if (session.staticFrames || session.staticDedupSkipReason) return;
@@ -64059,7 +64126,7 @@ async function captureDeVerificationFrames(session, page, logInitPhase) {
64059
64126
  const seekTo3 = async (t2) => {
64060
64127
  await page.evaluate((tt3) => {
64061
64128
  const hf = window.__hf;
64062
- if (hf && typeof hf.seek === "function") hf.seek(tt3);
64129
+ if (hf && typeof hf.seek === "function") hf.seek(tt3, { suppressEvents: true });
64063
64130
  }, t2);
64064
64131
  };
64065
64132
  await seekTo3(quantizeTimeToFrame(0, fps));
@@ -65929,6 +65996,58 @@ var init_streamingEncoder = __esm({
65929
65996
  }
65930
65997
  });
65931
65998
 
65999
+ // ../engine/src/services/referenceResolver.ts
66000
+ function findReferenceTargetEl(doc, refId) {
66001
+ return doc.getElementById(refId) ?? doc.querySelector(`[data-composition-id="${refId}"]`);
66002
+ }
66003
+ function resolveReferencedStart(doc, el, startCache, visiting) {
66004
+ const cached2 = startCache.get(el);
66005
+ if (cached2 !== void 0) return cached2;
66006
+ if (visiting.has(el)) return 0;
66007
+ visiting.add(el);
66008
+ try {
66009
+ const expression = parseStartExpression(el.getAttribute("data-start"));
66010
+ if (!expression) {
66011
+ startCache.set(el, 0);
66012
+ return 0;
66013
+ }
66014
+ if (expression.kind === "absolute") {
66015
+ const value = Math.max(0, expression.value);
66016
+ startCache.set(el, value);
66017
+ return value;
66018
+ }
66019
+ const target = findReferenceTargetEl(doc, expression.refId);
66020
+ if (!target) {
66021
+ startCache.set(el, 0);
66022
+ return 0;
66023
+ }
66024
+ const targetStart = resolveReferencedStart(doc, target, startCache, visiting);
66025
+ const targetDuration = resolveReferencedDuration(doc, target, startCache, visiting);
66026
+ const resolved = targetDuration != null && targetDuration > 0 ? Math.max(0, targetStart + targetDuration + expression.offset) : Math.max(0, targetStart + expression.offset);
66027
+ startCache.set(el, resolved);
66028
+ return resolved;
66029
+ } finally {
66030
+ visiting.delete(el);
66031
+ }
66032
+ }
66033
+ function resolveReferencedDuration(doc, el, startCache, visiting) {
66034
+ const durationAttr = parseNumeric(el.getAttribute("data-duration"));
66035
+ if (durationAttr != null && durationAttr > 0) return durationAttr;
66036
+ const endAttr = parseNumeric(el.getAttribute("data-end"));
66037
+ if (endAttr != null) {
66038
+ const start = resolveReferencedStart(doc, el, startCache, visiting);
66039
+ const delta = endAttr - start;
66040
+ if (Number.isFinite(delta) && delta > 0) return delta;
66041
+ }
66042
+ return null;
66043
+ }
66044
+ var init_referenceResolver = __esm({
66045
+ "../engine/src/services/referenceResolver.ts"() {
66046
+ "use strict";
66047
+ init_dist3();
66048
+ }
66049
+ });
66050
+
65932
66051
  // ../engine/src/utils/urlDownloader.ts
65933
66052
  import { createWriteStream, existsSync as existsSync8, mkdirSync as mkdirSync5 } from "fs";
65934
66053
  import { createHash } from "crypto";
@@ -66108,6 +66227,37 @@ var init_htmlCompiler = __esm({
66108
66227
  }
66109
66228
  });
66110
66229
 
66230
+ // ../core/dist/runtime/flattenedRoot.js
66231
+ function markFlattenedInnerRoot(prepared) {
66232
+ const authoredRootId = prepared.getAttribute("id")?.trim();
66233
+ for (const attrName of FLATTENED_INNER_ROOT_STRIP_ATTRS) {
66234
+ prepared.removeAttribute(attrName);
66235
+ }
66236
+ if (authoredRootId) {
66237
+ prepared.removeAttribute("id");
66238
+ prepared.setAttribute("data-hf-authored-id", authoredRootId);
66239
+ }
66240
+ prepared.setAttribute("data-hf-inner-root", "true");
66241
+ }
66242
+ var FLATTENED_INNER_ROOT_STRIP_ATTRS;
66243
+ var init_flattenedRoot = __esm({
66244
+ "../core/dist/runtime/flattenedRoot.js"() {
66245
+ "use strict";
66246
+ FLATTENED_INNER_ROOT_STRIP_ATTRS = [
66247
+ "data-composition-id",
66248
+ "data-composition-file",
66249
+ "data-start",
66250
+ "data-duration",
66251
+ "data-end",
66252
+ "data-track-index",
66253
+ "data-track",
66254
+ "data-composition-src",
66255
+ "data-hf-authored-duration",
66256
+ "data-hf-authored-end"
66257
+ ];
66258
+ }
66259
+ });
66260
+
66111
66261
  // ../core/dist/compiler/htmlDocument.js
66112
66262
  function parseHTMLContent(html) {
66113
66263
  const trimmed = html.trimStart().toLowerCase();
@@ -66751,6 +66901,11 @@ ${source.replace(/<\/(script)/gi, "<\\/$1")}
66751
66901
  function wrapInlineScriptWithErrorBoundary(source, errorLabel) {
66752
66902
  return `(function(){ try { Function(${JSON.stringify(source)}).call(window); } catch (_err) { console.error(${JSON.stringify(errorLabel)}, _err); } })();`;
66753
66903
  }
66904
+ function buildVariablesByCompScript(variablesByComp) {
66905
+ if (!variablesByComp || Object.keys(variablesByComp).length === 0)
66906
+ return null;
66907
+ return `window.__hfVariablesByComp = Object.assign({}, window.__hfVariablesByComp || {}, ${JSON.stringify(variablesByComp)});`;
66908
+ }
66754
66909
  var AUTHORED_ROOT_ID_ATTR, INNER_ROOT_ATTR, GLOBAL_AT_RULES;
66755
66910
  var init_compositionScoping = __esm({
66756
66911
  "../core/dist/compiler/compositionScoping.js"() {
@@ -69937,6 +70092,7 @@ async function lintProject(projectDir) {
69937
70092
  const html = readFileSync4(filePath, "utf-8");
69938
70093
  const compSrcPath = `compositions/${file}`;
69939
70094
  allHtmlSources.push({ html, compSrcPath });
70095
+ if (isSnippetFragment(html)) continue;
69940
70096
  const result = await lintHyperframeHtml(html, {
69941
70097
  filePath,
69942
70098
  isSubComposition: true,
@@ -70219,6 +70375,11 @@ function lintMissingOrEmptySubComposition(projectDir, rootHtml) {
70219
70375
  }
70220
70376
  return findings;
70221
70377
  }
70378
+ function isSnippetFragment(html) {
70379
+ const firstTag = html.match(/<[a-zA-Z][^>]*>/);
70380
+ if (!firstTag) return false;
70381
+ return /\bdata-hf-snippet\b/.test(firstTag[0]);
70382
+ }
70222
70383
  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
70384
  var init_dist4 = __esm({
70224
70385
  "../lint/dist/index.js"() {
@@ -71352,6 +71513,127 @@ ${right.raw}`)
71352
71513
  }
71353
71514
  return findings;
71354
71515
  },
71516
+ // gsap_non_transform_motion — animating layout props (left/top/right/bottom/margin*)
71517
+ // or using roundProps snaps motion to integer device pixels. On the seek-by-frame
71518
+ // capture engine this looks smooth at high per-frame deltas (fast tweens) but visibly
71519
+ // stutters at low deltas (slow tweens / ease-out tails): sub-pixel movement rounds to
71520
+ // the same pixel for several frames, then jumps a whole pixel. Transforms (x/y/scale)
71521
+ // interpolate sub-pixel and stay smooth.
71522
+ //
71523
+ // EXEMPTION: elements rasterized via the html-in-canvas API — those under a
71524
+ // `<canvas layoutsubtree>` ancestor (e.g. the liquid-glass blocks) — are NOT laid out
71525
+ // by the browser compositor. The canvas lib reads getComputedStyle().left/top (a
71526
+ // sub-pixel value) and draws the element to a bitmap, so animating a layout prop on
71527
+ // them does not integer-snap and does not stutter. We resolve each tween's target to
71528
+ // its element(s) and skip the finding only when EVERY target is html-in-canvas; a
71529
+ // grouped tween that also touches a plain-DOM element (which does stutter) still fires.
71530
+ //
71531
+ // No suppression by design: there is intentionally no per-line/per-file opt-out (unlike
71532
+ // eslint-disable). The stance is fix-the-motion, not silence-the-rule — a plain-DOM
71533
+ // layout-prop animation always has a faithful transform equivalent (per-glyph x for
71534
+ // spacing, scale for size, x/y for position). An author who has consciously accepted a
71535
+ // stutter still has no flag to flip; that is deliberate, not a missing feature.
71536
+ async ({ scripts, tags, source }) => {
71537
+ const findings = [];
71538
+ const layoutSubtreeRanges = tags.filter((t2) => t2.name.toLowerCase() === "canvas" && /\blayoutsubtree\b/i.test(t2.raw)).map((t2) => ({ start: t2.index, end: findTagEnd2(source, t2) }));
71539
+ const isHtmlInCanvas = (tag) => layoutSubtreeRanges.some((r2) => tag.index > r2.start && tag.index < r2.end);
71540
+ const tagsByToken = /* @__PURE__ */ new Map();
71541
+ const addToken = (token, tag) => {
71542
+ const list = tagsByToken.get(token);
71543
+ if (list) list.push(tag);
71544
+ else tagsByToken.set(token, [tag]);
71545
+ };
71546
+ for (const tag of tags) {
71547
+ const id = readAttr(tag.raw, "id");
71548
+ if (id) addToken(`#${id}`, tag);
71549
+ for (const cls of readAttr(tag.raw, "class")?.split(/\s+/).filter(Boolean) ?? [])
71550
+ addToken(`.${cls}`, tag);
71551
+ }
71552
+ const allTargetsHtmlInCanvas = (selector) => {
71553
+ if (layoutSubtreeRanges.length === 0) return false;
71554
+ const matched = [...targetedSelectorTokens(selector)].flatMap(
71555
+ (token) => tagsByToken.get(token) ?? []
71556
+ );
71557
+ return matched.length > 0 && matched.every(isHtmlInCanvas);
71558
+ };
71559
+ const LAYOUT_FIX = {
71560
+ left: ["x"],
71561
+ right: ["x"],
71562
+ top: ["y"],
71563
+ bottom: ["y"],
71564
+ margin: ["x", "y"],
71565
+ marginLeft: ["x"],
71566
+ marginRight: ["x"],
71567
+ marginTop: ["y"],
71568
+ marginBottom: ["y"]
71569
+ };
71570
+ const REFLOW_PROPS = ["letterSpacing", "wordSpacing", "fontSize"];
71571
+ const parseGsapScript2 = await loadParseGsapScript();
71572
+ for (const script of scripts) {
71573
+ if (!/gsap\.timeline/.test(script.content)) continue;
71574
+ const parsed = parseGsapScript2(script.content);
71575
+ const calls = [
71576
+ ...parsed.animations.map((anim) => ({
71577
+ method: anim.method,
71578
+ selector: anim.targetSelector,
71579
+ // Union the from-vars: a fromTo() can animate a layout/reflow prop that appears
71580
+ // only in its first ("from") object, which is just as stutter-prone as the to-vars.
71581
+ properties: [
71582
+ .../* @__PURE__ */ new Set([
71583
+ ...Object.keys(anim.properties),
71584
+ ...Object.keys(anim.fromProperties ?? {})
71585
+ ])
71586
+ ],
71587
+ raw: synthesizeWindowRaw(parsed.timelineVar, anim)
71588
+ })),
71589
+ ...extractStandaloneGsapTransformCalls(stripJsComments(script.content))
71590
+ ];
71591
+ for (const call of calls) {
71592
+ if (call.method === "set") continue;
71593
+ let layoutProps = call.properties.filter((p2) => Object.hasOwn(LAYOUT_FIX, p2));
71594
+ const reflowProps = call.properties.filter((p2) => REFLOW_PROPS.includes(p2));
71595
+ const usesRoundProps = call.properties.includes("roundProps");
71596
+ if (layoutProps.length > 0 && allTargetsHtmlInCanvas(call.selector)) layoutProps = [];
71597
+ if (layoutProps.length === 0 && reflowProps.length === 0 && !usesRoundProps) continue;
71598
+ const flagged = [...layoutProps, ...reflowProps, ...usesRoundProps ? ["roundProps"] : []];
71599
+ 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.`;
71600
+ const fixes = [];
71601
+ if (layoutProps.length > 0) {
71602
+ const tokens = [...new Set(layoutProps.flatMap((p2) => LAYOUT_FIX[p2] ?? []))];
71603
+ fixes.push(
71604
+ `replace ${layoutProps.join("/")} with the transform equivalent (${tokens.join(", ")}) \u2014 e.g. tl.fromTo("${call.selector}", { x: -1300 }, { x: 0, ...yourAnimation })`
71605
+ );
71606
+ }
71607
+ if (reflowProps.length > 0) {
71608
+ const sizing = reflowProps.filter((p2) => p2 === "fontSize");
71609
+ const spacing = reflowProps.filter((p2) => p2 !== "fontSize");
71610
+ const parts = [];
71611
+ if (sizing.length > 0) {
71612
+ parts.push(`replace ${sizing.join("/")} with scale (same visual, no reflow)`);
71613
+ }
71614
+ if (spacing.length > 0) {
71615
+ parts.push(
71616
+ `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`
71617
+ );
71618
+ }
71619
+ fixes.push(
71620
+ `do not animate ${reflowProps.join("/")} (they reflow text and snap glyph positions): ` + parts.join("; ")
71621
+ );
71622
+ }
71623
+ if (usesRoundProps) fixes.push("remove roundProps");
71624
+ const fixHint = `${fixes.join("; ")}. Transforms interpolate sub-pixel and stay smooth at any speed.`;
71625
+ findings.push({
71626
+ code: "gsap_non_transform_motion",
71627
+ severity: "error",
71628
+ message,
71629
+ selector: call.selector,
71630
+ fixHint,
71631
+ snippet: truncateSnippet(call.raw)
71632
+ });
71633
+ }
71634
+ }
71635
+ return findings;
71636
+ },
71355
71637
  // gsap_group_selector_keyframes
71356
71638
  ({ scripts }) => {
71357
71639
  const findings = [];
@@ -72981,31 +73263,9 @@ function assignBundledRuntimeCompositionIds(hosts, counts = countBundledAuthored
72981
73263
  }
72982
73264
  return identities;
72983
73265
  }
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
73266
  function prepareFlattenedInnerRoot(innerRoot) {
72999
73267
  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");
73268
+ markFlattenedInnerRoot(prepared);
73009
73269
  const w3 = prepared.getAttribute("data-width");
73010
73270
  const h3 = prepared.getAttribute("data-height");
73011
73271
  const widthVal = w3 ? `${w3}px` : "100%";
@@ -73340,6 +73600,7 @@ async function bundleToSingleHtml(projectDir, options) {
73340
73600
  if (runtimeCompId && Object.keys(mergedVariables).length > 0) {
73341
73601
  compVariablesByComp[runtimeCompId] = mergedVariables;
73342
73602
  }
73603
+ pushSubCompVariableStyles(innerDoc, innerRoot, mergedVariables, runtimeScope, compStyleChunks);
73343
73604
  if (innerRoot) {
73344
73605
  for (const styleEl of [...innerRoot.querySelectorAll("style")]) {
73345
73606
  const css = styleEl.textContent || "";
@@ -73401,14 +73662,16 @@ async function bundleToSingleHtml(projectDir, options) {
73401
73662
  style.textContent = compStyleChunks.join("\n\n");
73402
73663
  document2.head.appendChild(style);
73403
73664
  }
73404
- if (Object.keys(compVariablesByComp).length > 0) {
73405
- compScriptChunks.unshift(`window.__hfVariablesByComp = Object.assign({}, window.__hfVariablesByComp || {}, ${JSON.stringify(compVariablesByComp)});`);
73665
+ const variablesByCompScript = buildVariablesByCompScript(compVariablesByComp);
73666
+ if (variablesByCompScript) {
73667
+ compScriptChunks.unshift(variablesByCompScript);
73406
73668
  }
73407
73669
  if (compScriptChunks.length) {
73408
73670
  const compScript = document2.createElement("script");
73409
73671
  compScript.textContent = joinJsChunks(compScriptChunks);
73410
73672
  document2.body.appendChild(compScript);
73411
73673
  }
73674
+ emitRootCompositionVariableStyles(document2, compVariablesByComp);
73412
73675
  enforceCompositionPixelSizing(document2);
73413
73676
  autoHealMissingCompositionIds(document2);
73414
73677
  coalesceHeadStylesAndBodyScripts(document2);
@@ -73444,10 +73707,110 @@ async function bundleToSingleHtml(projectDir, options) {
73444
73707
  }
73445
73708
  return document2.toString();
73446
73709
  }
73447
- var DEFAULT_RUNTIME_SCRIPT_URL, CSS_IMPORT_RE, CSS_COMMENT_RE, INLINE_MIME, FLATTENED_INNER_ROOT_STRIP_ATTRS;
73710
+ function compositionVariablesCssBlock(variables, selector) {
73711
+ const lines = [];
73712
+ for (const [id, value] of Object.entries(variables)) {
73713
+ if (typeof value === "string" && value !== "" || typeof value === "number") {
73714
+ lines.push(` ${cssVariableName(id)}: ${String(value)};`);
73715
+ }
73716
+ }
73717
+ if (lines.length === 0)
73718
+ return null;
73719
+ return `${selector} {
73720
+ ${lines.join("\n")}
73721
+ }`;
73722
+ }
73723
+ function emitRootCompositionVariableStyles(document2, variablesByComp = {}, overrides = {}) {
73724
+ const layerFor = makeVariableLayer(document2, overrides);
73725
+ const rules = [
73726
+ ...hostScopedVariableRules(variablesByComp, overrides),
73727
+ ...rootDeclaredVariableRules(document2, layerFor),
73728
+ ...declarerVariableRules(document2, layerFor)
73729
+ ];
73730
+ if (rules.length === 0)
73731
+ return false;
73732
+ const style = document2.createElement("style");
73733
+ style.setAttribute("data-hf-composition-variables", "");
73734
+ style.textContent = rules.join("\n\n");
73735
+ document2.head.appendChild(style);
73736
+ return true;
73737
+ }
73738
+ function makeVariableLayer(document2, overrides) {
73739
+ const authoredCss = [...document2.querySelectorAll("style:not([data-hf-composition-variables])")].map((s2) => s2.textContent || "").join("\n");
73740
+ const authoredDefines = (id) => new RegExp(`${cssVariableName(id)}\\s*:`).test(authoredCss);
73741
+ return (declared, hostValues) => {
73742
+ const out = {};
73743
+ for (const [id, value] of Object.entries(declared)) {
73744
+ if (!authoredDefines(id))
73745
+ out[id] = value;
73746
+ }
73747
+ for (const [id, value] of Object.entries(hostValues)) {
73748
+ if (id in declared)
73749
+ out[id] = value;
73750
+ }
73751
+ for (const [id, value] of Object.entries(overrides)) {
73752
+ if (id in declared || id in hostValues)
73753
+ out[id] = value;
73754
+ }
73755
+ return out;
73756
+ };
73757
+ }
73758
+ function hostScopedVariableRules(variablesByComp, overrides) {
73759
+ const rules = [];
73760
+ for (const [compId, vars] of Object.entries(variablesByComp)) {
73761
+ const withOverrides = { ...vars };
73762
+ for (const [id, value] of Object.entries(overrides)) {
73763
+ if (id in vars)
73764
+ withOverrides[id] = value;
73765
+ }
73766
+ const rule = compositionVariablesCssBlock(withOverrides, cssAttributeSelector("data-composition-id", compId));
73767
+ if (rule)
73768
+ rules.push(rule);
73769
+ }
73770
+ return rules;
73771
+ }
73772
+ function rootDeclaredVariableRules(document2, layerFor) {
73773
+ const htmlDeclared = readDeclaredDefaults(document2.documentElement);
73774
+ const htmlRule = compositionVariablesCssBlock(layerFor(htmlDeclared, {}), ":root");
73775
+ return htmlRule ? [htmlRule] : [];
73776
+ }
73777
+ function declarerVariableRules(document2, layerFor) {
73778
+ const rules = [];
73779
+ let markerSeq = 0;
73780
+ for (const el of [...document2.querySelectorAll("[data-composition-variables]")]) {
73781
+ const declared = readDeclaredDefaults(el);
73782
+ const hostEl = typeof el.closest === "function" ? el.parentElement?.closest("[data-variable-values]") : null;
73783
+ const hostValues = hostEl ? parseHostVariableValues(hostEl) : {};
73784
+ const vars = layerFor(declared, hostValues);
73785
+ if (Object.keys(vars).length === 0)
73786
+ continue;
73787
+ markerSeq += 1;
73788
+ el.setAttribute("data-hf-var-scope", String(markerSeq));
73789
+ const rule = compositionVariablesCssBlock(vars, `[data-hf-var-scope="${markerSeq}"]`);
73790
+ if (rule)
73791
+ rules.push(rule);
73792
+ }
73793
+ return rules;
73794
+ }
73795
+ function pushSubCompVariableStyles(innerDoc, innerRoot, mergedVariables, runtimeScope, compStyleChunks) {
73796
+ if (!runtimeScope)
73797
+ return;
73798
+ const declaredForCss = readDeclaredDefaults(innerDoc.documentElement);
73799
+ const innerRootForVars = innerRoot ?? innerDoc.querySelector("[data-composition-variables]");
73800
+ if (innerRootForVars)
73801
+ Object.assign(declaredForCss, readDeclaredDefaults(innerRootForVars));
73802
+ const cssVars = compositionVariablesCssBlock({ ...declaredForCss, ...mergedVariables }, runtimeScope);
73803
+ if (cssVars)
73804
+ compStyleChunks.push(cssVars);
73805
+ }
73806
+ var DEFAULT_RUNTIME_SCRIPT_URL, CSS_IMPORT_RE, CSS_COMMENT_RE, INLINE_MIME;
73448
73807
  var init_htmlBundler = __esm({
73449
73808
  "../core/dist/compiler/htmlBundler.js"() {
73450
73809
  "use strict";
73810
+ init_flattenedRoot();
73811
+ init_flattenedRoot();
73812
+ init_getVariables();
73813
+ init_tokenSlug();
73451
73814
  init_assetPaths();
73452
73815
  init_htmlCompiler();
73453
73816
  init_htmlDocument();
@@ -73469,18 +73832,6 @@ var init_htmlBundler = __esm({
73469
73832
  ".cube": "text/plain",
73470
73833
  ".xml": "application/xml"
73471
73834
  };
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
73835
  }
73485
73836
  });
73486
73837
 
@@ -73491,11 +73842,14 @@ __export(compiler_exports, {
73491
73842
  FLATTENED_INNER_ROOT_STRIP_ATTRS: () => FLATTENED_INNER_ROOT_STRIP_ATTRS,
73492
73843
  PATH_ATTRS: () => PATH_ATTRS,
73493
73844
  RUNTIME_BOOTSTRAP_ATTR: () => RUNTIME_BOOTSTRAP_ATTR,
73845
+ assignBundledRuntimeCompositionIds: () => assignBundledRuntimeCompositionIds,
73846
+ buildVariablesByCompScript: () => buildVariablesByCompScript,
73494
73847
  bundleToSingleHtml: () => bundleToSingleHtml,
73495
73848
  checkSubCompositionUsability: () => checkSubCompositionUsability,
73496
73849
  clampDurations: () => clampDurations,
73497
73850
  compileHtml: () => compileHtml,
73498
73851
  compileTimingAttrs: () => compileTimingAttrs,
73852
+ emitRootCompositionVariableStyles: () => emitRootCompositionVariableStyles,
73499
73853
  extractResolvedMedia: () => extractResolvedMedia,
73500
73854
  injectDurations: () => injectDurations,
73501
73855
  injectScriptsAtHeadStart: () => injectScriptsAtHeadStart,
@@ -73504,7 +73858,9 @@ __export(compiler_exports, {
73504
73858
  isNonRelativeUrl: () => isNonRelativeUrl,
73505
73859
  isPathInside: () => isPathInside,
73506
73860
  parseHTMLContent: () => parseHTMLContent,
73861
+ parseHostVariableValues: () => parseHostVariableValues,
73507
73862
  prepareFlattenedInnerRoot: () => prepareFlattenedInnerRoot,
73863
+ readDeclaredDefaults: () => readDeclaredDefaults,
73508
73864
  resolveTimings: () => resolveTimings,
73509
73865
  scopeCssToComposition: () => scopeCssToComposition,
73510
73866
  shouldClampMediaDuration: () => shouldClampMediaDuration,
@@ -73519,6 +73875,7 @@ var init_compiler = __esm({
73519
73875
  init_timingCompiler();
73520
73876
  init_htmlCompiler();
73521
73877
  init_htmlBundler();
73878
+ init_getVariables();
73522
73879
  init_htmlDocument();
73523
73880
  init_staticGuard();
73524
73881
  init_compositionScoping();
@@ -73800,50 +74157,6 @@ function isVideoFrameFormat(value) {
73800
74157
  function sdrToHdrTransformKey(transfer) {
73801
74158
  return `sdr2hdr-${transfer}`;
73802
74159
  }
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
74160
  function parseVideoElements(html) {
73848
74161
  const videos = [];
73849
74162
  const { document: document2 } = parseHTML(unwrapTemplate(html));
@@ -74596,6 +74909,7 @@ var init_videoFrameExtractor = __esm({
74596
74909
  init_esm10();
74597
74910
  init_dist3();
74598
74911
  init_processTracker();
74912
+ init_referenceResolver();
74599
74913
  init_ffprobe();
74600
74914
  init_hdr();
74601
74915
  init_urlDownloader();
@@ -75352,47 +75666,37 @@ function buildVolumeExpression(track, ignoreKeyframes = false) {
75352
75666
  function parseAudioElements(html) {
75353
75667
  const elements = [];
75354
75668
  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");
75669
+ const startCache = /* @__PURE__ */ new Map();
75670
+ const visiting = /* @__PURE__ */ new Set();
75671
+ const resolveStart = (el) => el.getAttribute("data-start") ? resolveReferencedStart(document2, el, startCache, visiting) : 0;
75672
+ const parseEnd = (raw) => {
75673
+ const end = raw ? parseFloat(raw) : 0;
75674
+ return Number.isFinite(end) ? end : 0;
75675
+ };
75676
+ const build = (el, id, type) => {
75362
75677
  const mediaStartAttr = el.getAttribute("data-media-start");
75363
75678
  const layerAttr = el.getAttribute("data-layer");
75364
75679
  const volumeAttr = el.getAttribute("data-volume");
75365
- elements.push({
75680
+ return {
75366
75681
  id,
75367
- src,
75368
- start: startAttr ? parseFloat(startAttr) : 0,
75369
- end: endAttr ? parseFloat(endAttr) : 0,
75682
+ src: el.getAttribute("src"),
75683
+ start: resolveStart(el),
75684
+ end: parseEnd(el.getAttribute("data-end")),
75370
75685
  mediaStart: mediaStartAttr ? parseFloat(mediaStartAttr) : 0,
75371
75686
  layer: layerAttr ? parseInt(layerAttr) : 0,
75372
75687
  volume: volumeAttr ? parseFloat(volumeAttr) : 1,
75373
- type: "audio"
75374
- });
75688
+ type
75689
+ };
75690
+ };
75691
+ for (const el of document2.querySelectorAll("audio[id][src]")) {
75692
+ const id = el.getAttribute("id");
75693
+ if (!id || !el.getAttribute("src")) continue;
75694
+ elements.push(build(el, id, "audio"));
75375
75695
  }
75376
- const videoEls = document2.querySelectorAll('video[id][src][data-has-audio="true"]');
75377
- for (const el of videoEls) {
75696
+ for (const el of document2.querySelectorAll('video[id][src][data-has-audio="true"]')) {
75378
75697
  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
- });
75698
+ if (!id || !el.getAttribute("src")) continue;
75699
+ elements.push(build(el, `${id}-audio`, "video"));
75396
75700
  }
75397
75701
  return elements;
75398
75702
  }
@@ -75704,6 +76008,7 @@ var init_audioMixer = __esm({
75704
76008
  init_runFfmpeg();
75705
76009
  init_htmlTemplate();
75706
76010
  init_videoFrameExtractor();
76011
+ init_referenceResolver();
75707
76012
  init_audioVolumeEnvelope();
75708
76013
  MAX_VOLUME_SEGMENTS = 32;
75709
76014
  VOLUME_SIMPLIFY_EPSILON = 5e-3;
@@ -82260,23 +82565,15 @@ var init_updateCheck = __esm({
82260
82565
  });
82261
82566
 
82262
82567
  // 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
82568
  import { execFile } from "child_process";
82275
82569
  import { createHash as createHash3 } from "crypto";
82276
82570
  import { existsSync as existsSync23, readdirSync as readdirSync9, readFileSync as readFileSync16, statSync as statSync6 } from "fs";
82277
82571
  import { homedir as homedir6 } from "os";
82278
82572
  import { isAbsolute as isAbsolute7, join as join23, relative as relative5, resolve as resolve13, sep as sep4 } from "path";
82279
82573
  import { promisify } from "util";
82574
+ function isCoreSkill(name) {
82575
+ return name === ENTRY_SKILL || name.startsWith("hyperframes-") || name === "media-use";
82576
+ }
82280
82577
  function listFilesSorted(dir) {
82281
82578
  const out = [];
82282
82579
  const walk = (d2) => {
@@ -82373,6 +82670,11 @@ function locateInstall(skillNames, opts = {}) {
82373
82670
  }
82374
82671
  return null;
82375
82672
  }
82673
+ function presentSkills(skillNames, opts = {}) {
82674
+ const root = locateInstall([...skillNames], opts);
82675
+ if (!root) return [];
82676
+ return skillNames.filter((name) => existsSync23(join23(root.dir, name, "SKILL.md")));
82677
+ }
82376
82678
  function hashInstalled(root, skillNames) {
82377
82679
  const out = {};
82378
82680
  for (const name of skillNames) {
@@ -82383,7 +82685,7 @@ function hashInstalled(root, skillNames) {
82383
82685
  }
82384
82686
  function diffSkills(installed, latest) {
82385
82687
  const skills = [];
82386
- const summary = { current: 0, outdated: 0, missing: 0 };
82688
+ const summary = { current: 0, outdated: 0, missing: 0, coreMissing: 0 };
82387
82689
  for (const name of Object.keys(latest.skills).sort()) {
82388
82690
  const latestEntry = latest.skills[name];
82389
82691
  const installedEntry = installed[name];
@@ -82393,7 +82695,10 @@ function diffSkills(installed, latest) {
82393
82695
  else status = "outdated";
82394
82696
  if (status === "current") summary.current++;
82395
82697
  else if (status === "outdated") summary.outdated++;
82396
- else summary.missing++;
82698
+ else {
82699
+ summary.missing++;
82700
+ if (isCoreSkill(name)) summary.coreMissing++;
82701
+ }
82397
82702
  skills.push({
82398
82703
  name,
82399
82704
  status,
@@ -82402,9 +82707,14 @@ function diffSkills(installed, latest) {
82402
82707
  });
82403
82708
  }
82404
82709
  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,
82710
+ // "Update available" means the install is stale, not merely partial:
82711
+ // anything installed-but-outdated, or a missing CORE skill (the entry
82712
+ // router + shared domain skills every workflow needs). A missing
82713
+ // on-demand skill is NOT an update — it installs when its workflow is
82714
+ // triggered (`hyperframes skills update <name>`). Counting it here is what
82715
+ // used to make `init` re-pull the full skill set onto machines that
82716
+ // deliberately installed a subset.
82717
+ updateAvailable: summary.outdated > 0 || summary.coreMissing > 0,
82408
82718
  summary,
82409
82719
  skills
82410
82720
  };
@@ -82532,7 +82842,7 @@ async function checkSkills(opts = {}) {
82532
82842
  lockMissing
82533
82843
  };
82534
82844
  }
82535
- var execFileAsync, TEXT_EXT, DEFAULT_REPO_SLUG, MANIFEST_FILE, FETCH_TIMEOUT_MS3, SKILLS_CLI_LOCK_PATHS_VERIFIED_AT;
82845
+ var execFileAsync, TEXT_EXT, DEFAULT_REPO_SLUG, MANIFEST_FILE, FETCH_TIMEOUT_MS3, ENTRY_SKILL, FALLBACK_CORE_SKILLS, SKILLS_CLI_LOCK_PATHS_VERIFIED_AT;
82536
82846
  var init_skillsManifest = __esm({
82537
82847
  "src/utils/skillsManifest.ts"() {
82538
82848
  "use strict";
@@ -82556,6 +82866,17 @@ var init_skillsManifest = __esm({
82556
82866
  DEFAULT_REPO_SLUG = "heygen-com/hyperframes";
82557
82867
  MANIFEST_FILE = "skills-manifest.json";
82558
82868
  FETCH_TIMEOUT_MS3 = 4e3;
82869
+ ENTRY_SKILL = "hyperframes";
82870
+ FALLBACK_CORE_SKILLS = [
82871
+ "hyperframes",
82872
+ "hyperframes-animation",
82873
+ "hyperframes-cli",
82874
+ "hyperframes-core",
82875
+ "hyperframes-creative",
82876
+ "hyperframes-keyframes",
82877
+ "hyperframes-registry",
82878
+ "media-use"
82879
+ ];
82559
82880
  SKILLS_CLI_LOCK_PATHS_VERIFIED_AT = "vercel-labs/skills@v1.5.13";
82560
82881
  }
82561
82882
  });
@@ -82714,7 +83035,7 @@ var skills_exports = {};
82714
83035
  __export(skills_exports, {
82715
83036
  default: () => skills_default,
82716
83037
  examples: () => examples,
82717
- installAllSkills: () => installAllSkills
83038
+ updateSkills: () => updateSkills
82718
83039
  });
82719
83040
  import { execFileSync as execFileSync4, spawn as spawn7 } from "child_process";
82720
83041
  function hasNpx() {
@@ -82740,7 +83061,7 @@ function spawnNpx(args, opts = {}) {
82740
83061
  const child = spawn7(npx.command, npx.args, {
82741
83062
  stdio: "inherit",
82742
83063
  // 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),
83064
+ // path that bypasses the laggy skills.sh blob — see GLOBAL_INSTALL_ARGS_TAIL),
82744
83065
  // which is heavier than the blob fetch, so allow more headroom.
82745
83066
  timeout: 3e5,
82746
83067
  cwd: opts.cwd,
@@ -82767,8 +83088,15 @@ function spawnNpx(args, opts = {}) {
82767
83088
  child.on("error", reject);
82768
83089
  });
82769
83090
  }
82770
- function runSkillsAdd(source, opts = {}) {
82771
- return spawnNpx(["skills", "add", source, ...opts.extraArgs ?? GLOBAL_INSTALL_ARGS], opts);
83091
+ function skillSelectionArgs(selection) {
83092
+ const names = selection === "*" ? ["*"] : selection;
83093
+ return names.flatMap((name) => ["--skill", name]);
83094
+ }
83095
+ function runSkillsAdd(source, selection, opts = {}) {
83096
+ return spawnNpx(
83097
+ ["skills", "add", source, ...skillSelectionArgs(selection), ...GLOBAL_INSTALL_ARGS_TAIL],
83098
+ opts
83099
+ );
82772
83100
  }
82773
83101
  function runSkillsRemove(names, opts) {
82774
83102
  const safe = names.filter((n2) => PLAIN_SKILL_NAME.test(n2));
@@ -82803,14 +83131,25 @@ function skillsToolingReady(strict) {
82803
83131
  }
82804
83132
  return true;
82805
83133
  }
82806
- async function installAllSkills(opts = {}) {
83134
+ function sanitizeSelection(selection) {
83135
+ if (selection === "*") return selection;
83136
+ const rejected = selection.filter((n2) => !PLAIN_SKILL_NAME.test(n2));
83137
+ if (rejected.length) {
83138
+ R2.warn(c.warn(`Skipping unexpected skill name(s): ${rejected.join(", ")}`));
83139
+ }
83140
+ const safe = selection.filter((n2) => PLAIN_SKILL_NAME.test(n2));
83141
+ return safe.length > 0 ? safe : null;
83142
+ }
83143
+ async function installSkills(selection, opts = {}) {
83144
+ const safeSelection = sanitizeSelection(selection);
83145
+ if (safeSelection === null) return;
82807
83146
  if (!skillsToolingReady(opts.strict ?? false)) return;
82808
83147
  for (const source of SOURCES) {
82809
83148
  console.log();
82810
83149
  console.log(c.bold(`Installing ${source.name} skills...`));
82811
83150
  console.log();
82812
83151
  try {
82813
- await runSkillsAdd(source.url, opts);
83152
+ await runSkillsAdd(source.url, safeSelection, opts);
82814
83153
  } catch (err) {
82815
83154
  if (opts.strict) throw err instanceof Error ? err : new Error(String(err));
82816
83155
  console.log(c.dim(`${source.name} skills skipped`));
@@ -82818,8 +83157,77 @@ async function installAllSkills(opts = {}) {
82818
83157
  }
82819
83158
  mirrorToInstalledAgents();
82820
83159
  }
82821
- function printSkillSection(result, status, title, mark, color) {
82822
- const items = result.skills.filter((s2) => s2.status === status);
83160
+ async function updateSkills(opts = {}) {
83161
+ const requested = [...new Set(opts.requested ?? [])];
83162
+ const strict = opts.strict ?? false;
83163
+ let check = null;
83164
+ try {
83165
+ check = await checkSkills({ cwd: opts.cwd });
83166
+ } catch {
83167
+ check = null;
83168
+ }
83169
+ if (!check) return updateSkillsOffline(requested, { strict, cwd: opts.cwd });
83170
+ const manifestSkills = check.skills.filter((s2) => s2.status !== "removed");
83171
+ const manifestNames = new Set(manifestSkills.map((s2) => s2.name));
83172
+ const unknown = requested.filter((name) => !manifestNames.has(name));
83173
+ if (unknown.length) {
83174
+ const message = `Unknown skill(s): ${unknown.join(", ")}. Available: ${[...manifestNames].sort().join(", ")}`;
83175
+ if (strict) throw new Error(message);
83176
+ R2.warn(c.warn(message));
83177
+ }
83178
+ const targets = manifestSkills.filter(
83179
+ (s2) => requested.includes(s2.name) || isCoreSkill(s2.name) || opts.refreshInstalled === true && s2.status !== "missing"
83180
+ );
83181
+ const toInstall = targets.filter((s2) => s2.status === "missing" || s2.status === "outdated");
83182
+ const result = {
83183
+ targets: targets.map((s2) => s2.name),
83184
+ installed: toInstall.map((s2) => s2.name),
83185
+ current: targets.filter((s2) => s2.status === "current").map((s2) => s2.name),
83186
+ unknown,
83187
+ presenceOnly: false
83188
+ };
83189
+ if (toInstall.length > 0) {
83190
+ await installSkills(result.installed, { cwd: opts.cwd, strict });
83191
+ verifyInstalled(result.installed, { strict, cwd: opts.cwd });
83192
+ }
83193
+ return result;
83194
+ }
83195
+ function verifyInstalled(names, opts) {
83196
+ const present = new Set(presentSkills(names, { cwd: opts.cwd }));
83197
+ const absent = names.filter((name) => !present.has(name));
83198
+ if (absent.length === 0) return;
83199
+ const message = `Skill(s) still missing after install: ${absent.join(", ")}`;
83200
+ if (opts.strict) throw new Error(message);
83201
+ R2.warn(c.warn(message));
83202
+ }
83203
+ async function updateSkillsOffline(requested, opts) {
83204
+ if (requested.length === 0 && opts.strict) {
83205
+ throw new Error(
83206
+ "can't check skills freshness (GitHub manifest unreachable) \u2014 refusing to report success. Retry when online."
83207
+ );
83208
+ }
83209
+ const targets = [.../* @__PURE__ */ new Set([...requested, ...FALLBACK_CORE_SKILLS])];
83210
+ const present = new Set(presentSkills(targets, { cwd: opts.cwd }));
83211
+ const absent = targets.filter((name) => !present.has(name));
83212
+ console.log(
83213
+ c.dim(
83214
+ 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(", ")}`
83215
+ )
83216
+ );
83217
+ if (absent.length > 0) {
83218
+ await installSkills(absent, { cwd: opts.cwd, strict: opts.strict });
83219
+ verifyInstalled(absent, opts);
83220
+ }
83221
+ return {
83222
+ targets,
83223
+ installed: absent,
83224
+ current: [...present],
83225
+ unknown: [],
83226
+ presenceOnly: true
83227
+ };
83228
+ }
83229
+ function printSkillSection(result, status, title, mark, color, filter2 = () => true) {
83230
+ const items = result.skills.filter((s2) => s2.status === status && filter2(s2));
82823
83231
  if (!items.length) return;
82824
83232
  console.log();
82825
83233
  console.log(` ${color(title)}`);
@@ -82838,13 +83246,30 @@ function renderCheck(result) {
82838
83246
  }
82839
83247
  console.log(` ${c.bold("Location")} ${c.dim(result.location)} ${c.dim(`(${result.agent})`)}`);
82840
83248
  console.log();
83249
+ const onDemandMissing = summary.missing - summary.coreMissing;
82841
83250
  const parts = [c.success(`\u2713 ${summary.current} current`)];
82842
83251
  if (summary.outdated) parts.push(c.warn(`\u2191 ${summary.outdated} outdated`));
82843
- if (summary.missing) parts.push(c.dim(`\u25E6 ${summary.missing} not installed`));
83252
+ if (summary.coreMissing) parts.push(c.warn(`\u25E6 ${summary.coreMissing} core not installed`));
83253
+ if (onDemandMissing) parts.push(c.dim(`\u25E6 ${onDemandMissing} available on demand`));
82844
83254
  if (summary.removed) parts.push(c.warn(`\u2717 ${summary.removed} removed upstream`));
82845
83255
  console.log(` ${parts.join(" ")}`);
82846
83256
  printSkillSection(result, "outdated", "Outdated:", "\u2191", c.warn);
82847
- printSkillSection(result, "missing", "Not installed:", "\u25E6", c.dim);
83257
+ printSkillSection(
83258
+ result,
83259
+ "missing",
83260
+ "Core not installed (skills update installs these):",
83261
+ "\u25E6",
83262
+ c.warn,
83263
+ (s2) => isCoreSkill(s2.name)
83264
+ );
83265
+ printSkillSection(
83266
+ result,
83267
+ "missing",
83268
+ "Available on demand (installed when their workflow first runs):",
83269
+ "\u25E6",
83270
+ c.dim,
83271
+ (s2) => !isCoreSkill(s2.name)
83272
+ );
82848
83273
  printSkillSection(
82849
83274
  result,
82850
83275
  "removed",
@@ -82869,7 +83294,39 @@ function renderCheck(result) {
82869
83294
  }
82870
83295
  console.log();
82871
83296
  }
82872
- var examples, GLOBAL_INSTALL_ARGS, PLAIN_SKILL_NAME, SOURCES, SKILLS_TOOLING, checkCommand, updateCommand, skills_default;
83297
+ function requestedNamesFrom(positionals) {
83298
+ const names = positionals.map(String).filter((n2) => n2.length > 0);
83299
+ return {
83300
+ requested: names.filter((n2) => PLAIN_SKILL_NAME.test(n2)),
83301
+ rejected: names.filter((n2) => !PLAIN_SKILL_NAME.test(n2))
83302
+ };
83303
+ }
83304
+ function reportUpdate(result, requested, json) {
83305
+ if (json) {
83306
+ console.log(JSON.stringify(withMeta(result), null, 2));
83307
+ return;
83308
+ }
83309
+ if (result.installed.length > 0) {
83310
+ console.log(
83311
+ c.success(
83312
+ `Installed/updated ${result.installed.length} skill(s): ${result.installed.join(", ")}`
83313
+ )
83314
+ );
83315
+ } else if (result.presenceOnly) {
83316
+ console.log(c.warn("Freshness unknown (GitHub unreachable) \u2014 verified presence only."));
83317
+ } else {
83318
+ console.log(c.success("Installed skills are already up to date."));
83319
+ }
83320
+ if (requested.length) console.log(c.success(`\u25C7 Ready: ${requested.join(", ")}`));
83321
+ }
83322
+ function reportUpdateFailure(message, json) {
83323
+ if (json) {
83324
+ console.log(JSON.stringify(withMeta({ error: message }), null, 2));
83325
+ return;
83326
+ }
83327
+ R2.error(c.error(message));
83328
+ }
83329
+ var examples, GLOBAL_INSTALL_ARGS_TAIL, PLAIN_SKILL_NAME, SOURCES, SKILLS_TOOLING, checkCommand, updateCommand, skills_default;
82873
83330
  var init_skills = __esm({
82874
83331
  "src/commands/skills.ts"() {
82875
83332
  "use strict";
@@ -82885,11 +83342,10 @@ var init_skills = __esm({
82885
83342
  ["Install all HyperFrames skills", "hyperframes skills"],
82886
83343
  ["Check whether installed skills are up to date", "hyperframes skills check"],
82887
83344
  ["Check, machine-readable (for agents / CI)", "hyperframes skills check --json"],
82888
- ["Update all skills to the latest (installs any missing)", "hyperframes skills update"]
83345
+ ["Update the core set + everything already installed", "hyperframes skills update"],
83346
+ ["Also install one workflow (on-demand install)", "hyperframes skills update pr-to-video"]
82889
83347
  ];
82890
- GLOBAL_INSTALL_ARGS = [
82891
- "--skill",
82892
- "*",
83348
+ GLOBAL_INSTALL_ARGS_TAIL = [
82893
83349
  "--global",
82894
83350
  "--agent",
82895
83351
  "claude-code",
@@ -82939,13 +83395,14 @@ var init_skills = __esm({
82939
83395
  updateCommand = defineCommand({
82940
83396
  meta: {
82941
83397
  name: "update",
82942
- description: "Update all HyperFrames skills to the latest \u2014 installs any not yet present, removes any no longer published"
83398
+ 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
83399
  },
82944
83400
  // Mirror `check`'s flags: the prune step runs the same removed-detection, so it
82945
83401
  // must respect the same overrides. Without these, `update`'s internal
82946
83402
  // checkSkills() fell back to defaults — pruning the auto-detected install
82947
83403
  // against the default manifest even when the user pointed `check` elsewhere.
82948
83404
  args: {
83405
+ json: { type: "boolean", description: "Output as JSON", default: false },
82949
83406
  dir: {
82950
83407
  type: "string",
82951
83408
  description: "Skills dir for removed-detection only \u2014 scopes the prune, not the install (default: auto-detect)"
@@ -82958,10 +83415,17 @@ var init_skills = __esm({
82958
83415
  async run({ args }) {
82959
83416
  const dir = args.dir;
82960
83417
  const source = args.source;
83418
+ const { requested, rejected } = requestedNamesFrom(args._ ?? []);
83419
+ if (rejected.length) {
83420
+ reportUpdateFailure(`Invalid skill name(s): ${rejected.join(", ")}`, args.json === true);
83421
+ process.exitCode = 1;
83422
+ return;
83423
+ }
82961
83424
  try {
82962
- await installAllSkills({ strict: true });
83425
+ const result = await updateSkills({ requested, refreshInstalled: true, strict: true });
83426
+ reportUpdate(result, requested, args.json === true);
82963
83427
  } catch (err) {
82964
- R2.error(c.error(`Update failed: ${err.message}`));
83428
+ reportUpdateFailure(`Update failed: ${err.message}`, args.json === true);
82965
83429
  process.exitCode = 1;
82966
83430
  return;
82967
83431
  }
@@ -82991,7 +83455,7 @@ var init_skills = __esm({
82991
83455
  },
82992
83456
  args: {},
82993
83457
  async run({ args }) {
82994
- if (!args._?.[0]) await installAllSkills();
83458
+ if (!args._?.[0]) await installSkills("*");
82995
83459
  }
82996
83460
  });
82997
83461
  }
@@ -99164,8 +99628,8 @@ var init_fileServer2 = __esm({
99164
99628
  return d > 0 ? d : getDeclaredDuration();
99165
99629
  },
99166
99630
  });
99167
- hf.seek = function(t) {
99168
- p.renderSeek(t);
99631
+ hf.seek = function(t, options) {
99632
+ p.renderSeek(t, options);
99169
99633
  var nextTimeMs = (Math.max(0, Number(t) || 0)) * 1000;
99170
99634
  if (window.__HF_VIRTUAL_TIME__ && typeof window.__HF_VIRTUAL_TIME__.seekToTime === "function") {
99171
99635
  window.__HF_VIRTUAL_TIME__.seekToTime(nextTimeMs);
@@ -105225,16 +105689,30 @@ function coalesceHeadStylesAndBodyScripts2(html) {
105225
105689
  }
105226
105690
  return document2.toString();
105227
105691
  }
105228
- function inlineSubCompositions2(html, subCompositions, projectDir) {
105692
+ function inlineSubCompositions2(html, subCompositions, projectDir, variableOverrides = {}) {
105229
105693
  const { document: document2 } = parseHTML(html);
105230
105694
  const head = document2.querySelector("head");
105231
105695
  const body = document2.querySelector("body");
105232
105696
  const hosts = Array.from(document2.querySelectorAll("[data-composition-src]"));
105233
- if (!hosts.length) return html;
105697
+ if (!hosts.length) {
105698
+ const emitted = emitRootCompositionVariableStyles(
105699
+ document2,
105700
+ {},
105701
+ variableOverrides
105702
+ );
105703
+ return emitted ? document2.toString() : html;
105704
+ }
105705
+ const hostIdentityByElement = assignBundledRuntimeCompositionIds(hosts);
105234
105706
  const result = inlineSubCompositions(
105235
105707
  document2,
105236
105708
  hosts,
105237
105709
  {
105710
+ // hostIdentityMap gives each repeated mount a unique runtime id; the
105711
+ // shared inliner's default buildScopeSelector already scopes by
105712
+ // `[data-composition-id="<runtime id>"]`, matching the preview bundler.
105713
+ hostIdentityMap: hostIdentityByElement,
105714
+ readVariableDefaults: readDeclaredDefaults,
105715
+ parseHostVariables: parseHostVariableValues,
105238
105716
  resolveHtml: (srcPath) => {
105239
105717
  let compHtml = subCompositions.get(srcPath) || null;
105240
105718
  if (!compHtml) {
@@ -105309,11 +105787,18 @@ function inlineSubCompositions2(html, subCompositions, projectDir) {
105309
105787
  }
105310
105788
  }
105311
105789
  }
105312
- if (result.scripts.length && body) {
105790
+ const variablesByCompScript = buildVariablesByCompScript(result.variablesByComp);
105791
+ const inlineScripts = variablesByCompScript ? [variablesByCompScript, ...result.scripts] : result.scripts;
105792
+ if (inlineScripts.length && body) {
105313
105793
  const scriptEl = document2.createElement("script");
105314
- scriptEl.textContent = result.scripts.join("\n;\n");
105794
+ scriptEl.textContent = inlineScripts.join("\n;\n");
105315
105795
  body.appendChild(scriptEl);
105316
105796
  }
105797
+ emitRootCompositionVariableStyles(
105798
+ document2,
105799
+ result.variablesByComp,
105800
+ variableOverrides
105801
+ );
105317
105802
  return document2.toString();
105318
105803
  }
105319
105804
  function ensureFullDocument(html) {
@@ -105741,7 +106226,12 @@ async function compileForRender(projectDir, htmlPath, downloadDir, options = {})
105741
106226
  subCompositions
105742
106227
  } = await parseSubCompositions(compiledHtml, projectDir, downloadDir);
105743
106228
  const fullHtml = ensureFullDocument(compiledHtml);
105744
- const inlinedHtml = inlineSubCompositions2(fullHtml, subCompositions, projectDir);
106229
+ const inlinedHtml = inlineSubCompositions2(
106230
+ fullHtml,
106231
+ subCompositions,
106232
+ projectDir,
106233
+ options.variables ?? {}
106234
+ );
105745
106235
  const sanitizedHtml = inlinedHtml.replace(
105746
106236
  /(<(?:video|audio)\b[^>]*?)\s+preload\s*=\s*["']none["']/gi,
105747
106237
  "$1"
@@ -106163,6 +106653,7 @@ async function runCompileStage(input2) {
106163
106653
  log: log2,
106164
106654
  failClosedFontFetch: failClosedFontFetch === true,
106165
106655
  allowSystemFontCapture,
106656
+ variables: input2.variables,
106166
106657
  animatedGifCacheDir: cfg.extractCacheDir ? join37(cfg.extractCacheDir, "animated-gif") : void 0,
106167
106658
  ffmpegProcessTimeout: cfg.ffmpegProcessTimeout
106168
106659
  });
@@ -110128,7 +110619,8 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
110128
110619
  cfg,
110129
110620
  needsAlpha,
110130
110621
  log: log2,
110131
- assertNotAborted
110622
+ assertNotAborted,
110623
+ variables: job.config.variables
110132
110624
  })
110133
110625
  );
110134
110626
  let compiled = compileResult.compiled;
@@ -112436,7 +112928,8 @@ async function plan(projectDir, config, planDir) {
112436
112928
  failClosedFontFetch: config.failClosedFontFetch !== false,
112437
112929
  // Distributed renders must not capture host-specific system fonts —
112438
112930
  // the Lambda/worker filesystem won't have the same fonts installed.
112439
- allowSystemFontCapture: false
112931
+ allowSystemFontCapture: false,
112932
+ variables: config.variables
112440
112933
  });
112441
112934
  let compiled = compileResult.compiled;
112442
112935
  const composition = compileResult.composition;
@@ -112658,6 +113151,7 @@ var init_plan = __esm({
112658
113151
  };
112659
113152
  FORMAT_NOT_SUPPORTED_IN_DISTRIBUTED = "FORMAT_NOT_SUPPORTED_IN_DISTRIBUTED";
112660
113153
  FormatNotSupportedInDistributedError = class extends Error {
113154
+ // fallow-ignore-next-line unused-class-member
112661
113155
  code = FORMAT_NOT_SUPPORTED_IN_DISTRIBUTED;
112662
113156
  format;
112663
113157
  reason;
@@ -113805,33 +114299,35 @@ function findFromEnv2() {
113805
114299
  }
113806
114300
  return void 0;
113807
114301
  }
114302
+ async function findFromHyperframesCache() {
114303
+ if (!existsSync53(CACHE_DIR2)) return {};
114304
+ const { Browser, getInstalledBrowsers } = await loadPuppeteerBrowsers();
114305
+ let installed;
114306
+ try {
114307
+ installed = await getInstalledBrowsers({ cacheDir: CACHE_DIR2 });
114308
+ } catch (err) {
114309
+ const code = err?.code;
114310
+ const suffix = code ? ` (${code})` : "";
114311
+ console.warn(
114312
+ `[hyperframes] Browser cache read failed${suffix}: ${normalizeErrorMessage(err)}. Falling back to system Chrome or a fresh download.`
114313
+ );
114314
+ installed = [];
114315
+ }
114316
+ const match = installed.find((b2) => b2.browser === Browser.CHROMEHEADLESSSHELL);
114317
+ if (match && existsSync53(match.executablePath)) {
114318
+ return { result: { executablePath: match.executablePath, source: "cache" } };
114319
+ }
114320
+ if (match) {
114321
+ return { staleHyperframesCachePath: match.executablePath, staleInstallPath: match.path };
114322
+ }
114323
+ return {};
114324
+ }
113808
114325
  async function findFromCache() {
113809
114326
  const fromPuppeteer = findFromPuppeteerCache();
113810
114327
  if (fromPuppeteer) {
113811
114328
  return { result: fromPuppeteer };
113812
114329
  }
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 {};
114330
+ return findFromHyperframesCache();
113835
114331
  }
113836
114332
  function parseVersionSegments(versionDir) {
113837
114333
  const dashIdx = versionDir.indexOf("-");
@@ -113995,7 +114491,7 @@ async function ensureBrowser(options) {
113995
114491
  const fromEnv = findFromEnv2();
113996
114492
  if (fromEnv) return fromEnv;
113997
114493
  if (!options?.force) {
113998
- const fromCache = await findFromCache();
114494
+ const fromCache = await (options?.preferManagedChrome ? findFromHyperframesCache() : findFromCache());
113999
114495
  if (fromCache.result) return fromCache.result;
114000
114496
  if (fromCache.staleHyperframesCachePath) {
114001
114497
  console.warn(
@@ -114006,10 +114502,12 @@ async function ensureBrowser(options) {
114006
114502
  return downloadBrowser(options);
114007
114503
  });
114008
114504
  }
114009
- const fromSystem = findFromSystem2();
114010
- if (fromSystem) {
114011
- warnSystemFallbackOnce(fromSystem.executablePath);
114012
- return fromSystem;
114505
+ if (!options?.preferManagedChrome) {
114506
+ const fromSystem = findFromSystem2();
114507
+ if (fromSystem) {
114508
+ warnSystemFallbackOnce(fromSystem.executablePath);
114509
+ return fromSystem;
114510
+ }
114013
114511
  }
114014
114512
  }
114015
114513
  return withInstallLock(async () => {
@@ -114017,7 +114515,7 @@ async function ensureBrowser(options) {
114017
114515
  clearBrowser();
114018
114516
  }
114019
114517
  if (!options?.force) {
114020
- const afterLock = await findFromCache();
114518
+ const afterLock = await (options?.preferManagedChrome ? findFromHyperframesCache() : findFromCache());
114021
114519
  if (afterLock.result) return afterLock.result;
114022
114520
  if (afterLock.staleInstallPath) purgeStaleInstall(afterLock.staleInstallPath);
114023
114521
  }
@@ -114081,7 +114579,7 @@ var init_manager2 = __esm({
114081
114579
  "src/browser/manager.ts"() {
114082
114580
  "use strict";
114083
114581
  init_errorMessage();
114084
- CHROME_VERSION = "131.0.6778.85";
114582
+ CHROME_VERSION = "152.0.7928.2";
114085
114583
  CACHE_ROOT_DIR = join63(homedir11(), ".cache", "hyperframes");
114086
114584
  CACHE_DIR2 = join63(homedir11(), ".cache", "hyperframes", "chrome");
114087
114585
  PUPPETEER_CACHE_DIR = join63(homedir11(), ".cache", "puppeteer", "chrome-headless-shell");
@@ -114774,7 +115272,7 @@ async function getThumbnailBrowser() {
114774
115272
  const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
114775
115273
  const { acquireBrowser: acquireBrowser2, buildChromeArgs: buildChromeArgs2 } = await Promise.resolve().then(() => (init_src(), src_exports));
114776
115274
  try {
114777
- const b2 = await ensureBrowser2();
115275
+ const b2 = await ensureBrowser2({ preferManagedChrome: true });
114778
115276
  if (b2.executablePath && !process.env.PRODUCER_HEADLESS_SHELL_PATH) {
114779
115277
  process.env.PRODUCER_HEADLESS_SHELL_PATH = b2.executablePath;
114780
115278
  }
@@ -114935,7 +115433,7 @@ function createStudioServer(options) {
114935
115433
  const { createRenderJob: createRenderJob2, executeRenderJob: executeRenderJob2 } = await loadStudioProducer();
114936
115434
  const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
114937
115435
  try {
114938
- const browser = await ensureBrowser2();
115436
+ const browser = await ensureBrowser2({ preferManagedChrome: true });
114939
115437
  if (browser.executablePath && !process.env.PRODUCER_HEADLESS_SHELL_PATH) {
114940
115438
  process.env.PRODUCER_HEADLESS_SHELL_PATH = browser.executablePath;
114941
115439
  }
@@ -116413,27 +116911,27 @@ async function scaffoldProject(destDir, name, templateId, localVideoName, durati
116413
116911
  }
116414
116912
  }
116415
116913
  }
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));
116914
+ async function keepSkillsCurrent(destDir) {
116915
+ const { updateSkills: updateSkills2 } = await Promise.resolve().then(() => (init_skills(), skills_exports));
116419
116916
  console.log();
116420
116917
  console.log(c.bold("Checking AI coding skills against GitHub..."));
116421
- let needsInstall = true;
116422
116918
  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) {
116919
+ const result = await updateSkills2({ refreshInstalled: true, cwd: destDir });
116920
+ if (result.presenceOnly) {
116431
116921
  console.log(
116432
- c.dim(`AI coding skills install skipped: ${err instanceof Error ? err.message : err}`)
116922
+ c.dim("Skills freshness unverified \u2014 run `npx hyperframes skills update` when online.")
116923
+ );
116924
+ } else if (result.installed.length === 0) {
116925
+ console.log(c.success("AI coding skills are already up to date."));
116926
+ } else {
116927
+ console.log(
116928
+ c.dim("Workflow skills not installed here are added on demand, when first used.")
116433
116929
  );
116434
116930
  }
116435
- } else {
116436
- console.log(c.success("AI coding skills are already up to date."));
116931
+ } catch (err) {
116932
+ console.log(
116933
+ c.dim(`AI coding skills install skipped: ${err instanceof Error ? err.message : err}`)
116934
+ );
116437
116935
  }
116438
116936
  }
116439
116937
  var examples3, WEB_CODECS, DEFAULT_META, TAILWIND_BROWSER_VERSION, TAILWIND_BROWSER_SRC, TAILWIND_BROWSER_INTEGRITY, init_default;
@@ -116682,7 +117180,7 @@ var init_init = __esm({
116682
117180
  console.log(` ${c.accent(f3)}`);
116683
117181
  }
116684
117182
  if (!skipSkills) {
116685
- await ensureSkillsCurrent(destDir2);
117183
+ await keepSkillsCurrent(destDir2);
116686
117184
  }
116687
117185
  console.log();
116688
117186
  console.log("Get started:");
@@ -116872,7 +117370,7 @@ ${c.dim("Use --example blank for offline use.")}`
116872
117370
  const files = readdirSync21(destDir);
116873
117371
  Se(files.map((f3) => c.accent(f3)).join("\n"), c.success(`Created ${name}/`));
116874
117372
  if (!skipSkills) {
116875
- await ensureSkillsCurrent(destDir);
117373
+ await keepSkillsCurrent(destDir);
116876
117374
  }
116877
117375
  R2.info("Opening studio preview...");
116878
117376
  try {
@@ -117079,9 +117577,15 @@ var init_add = __esm({
117079
117577
  type: "string",
117080
117578
  description: "Project directory (defaults to the current working directory)"
117081
117579
  },
117082
- "no-clipboard": {
117580
+ clipboard: {
117581
+ // Declared as the positive `clipboard` (default on) so citty's built-in
117582
+ // `--no-<name>` negation handles `--no-clipboard`. Declaring the arg
117583
+ // literally as `"no-clipboard"` made citty parse `--no-clipboard` as the
117584
+ // negation of a (nonexistent) `clipboard` arg, so assertKnownFlags threw
117585
+ // "Unknown flag: --clipboard" even though --help advertised it.
117083
117586
  type: "boolean",
117084
- description: "Skip copying the include snippet to the clipboard"
117587
+ default: true,
117588
+ description: "Copy the include snippet to the clipboard (use --no-clipboard to skip)"
117085
117589
  },
117086
117590
  json: {
117087
117591
  type: "boolean",
@@ -117091,7 +117595,7 @@ var init_add = __esm({
117091
117595
  async run({ args }) {
117092
117596
  const projectDir = resolve34(args.dir ?? process.cwd());
117093
117597
  const json = args.json === true;
117094
- const skipClipboard = args["no-clipboard"] === true;
117598
+ const skipClipboard = args.clipboard === false;
117095
117599
  const hasConfigBefore = existsSync58(projectConfigPath(projectDir));
117096
117600
  try {
117097
117601
  const result = await runAdd({ name: args.name, projectDir, skipClipboard });
@@ -118710,6 +119214,63 @@ var init_producer = __esm({
118710
119214
  }
118711
119215
  });
118712
119216
 
119217
+ // src/utils/webmAlphaCheck.ts
119218
+ import { execFileSync as execFileSync8 } from "child_process";
119219
+ function webmAlphaAdvisory(format, probe) {
119220
+ if (format !== "webm") return void 0;
119221
+ if (!probe.probed || probe.alphaMode) return void 0;
119222
+ 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).";
119223
+ }
119224
+ function probeWebmAlpha(filePath) {
119225
+ try {
119226
+ const ffprobePath = findFFprobe();
119227
+ if (!ffprobePath) return { probed: false, alphaMode: false };
119228
+ const raw = execFileSync8(
119229
+ ffprobePath,
119230
+ [
119231
+ "-v",
119232
+ "error",
119233
+ "-select_streams",
119234
+ "v:0",
119235
+ "-show_entries",
119236
+ "stream=codec_name:stream_tags=alpha_mode",
119237
+ "-of",
119238
+ "json",
119239
+ filePath
119240
+ ],
119241
+ { encoding: "utf-8", timeout: 15e3 }
119242
+ );
119243
+ const parsed = JSON.parse(raw);
119244
+ const stream = parsed.streams?.[0];
119245
+ if (!stream || typeof stream.codec_name !== "string") {
119246
+ return { probed: false, alphaMode: false };
119247
+ }
119248
+ const tags = stream.tags ?? {};
119249
+ const alphaMode = Object.entries(tags).some(
119250
+ ([k2, v2]) => k2.toLowerCase() === "alpha_mode" && String(v2) === "1"
119251
+ );
119252
+ return { probed: true, alphaMode };
119253
+ } catch {
119254
+ return { probed: false, alphaMode: false };
119255
+ }
119256
+ }
119257
+ function warnIfWebmAlphaDropped(outputPath, format, quiet) {
119258
+ if (quiet || format !== "webm") return;
119259
+ const advisory = webmAlphaAdvisory(format, probeWebmAlpha(outputPath));
119260
+ if (!advisory) return;
119261
+ console.warn(`
119262
+ ${c.warn("\u26A0")} ${c.bold("Transparency not preserved")}`);
119263
+ console.warn(` ${c.dim(advisory)}
119264
+ `);
119265
+ }
119266
+ var init_webmAlphaCheck = __esm({
119267
+ "src/utils/webmAlphaCheck.ts"() {
119268
+ "use strict";
119269
+ init_ffmpeg();
119270
+ init_colors();
119271
+ }
119272
+ });
119273
+
118713
119274
  // src/ui/progress.ts
118714
119275
  function renderProgress(percent, stage, row) {
118715
119276
  const width = 25;
@@ -118919,7 +119480,7 @@ var init_dockerRunArgs = __esm({
118919
119480
  });
118920
119481
 
118921
119482
  // src/browser/preflight.ts
118922
- import { execFileSync as execFileSync8 } from "child_process";
119483
+ import { execFileSync as execFileSync9 } from "child_process";
118923
119484
  import { existsSync as existsSync65 } from "fs";
118924
119485
  import { platform as platform8 } from "os";
118925
119486
  function parseToolVersion(raw) {
@@ -118933,7 +119494,7 @@ function configuredMissingDetail(envName) {
118933
119494
  }
118934
119495
  function readToolVersion(binaryPath) {
118935
119496
  try {
118936
- const raw = execFileSync8(binaryPath, ["-version"], { encoding: "utf-8", timeout: 5e3 }).split("\n")[0] ?? "";
119497
+ const raw = execFileSync9(binaryPath, ["-version"], { encoding: "utf-8", timeout: 5e3 }).split("\n")[0] ?? "";
118937
119498
  const version2 = parseToolVersion(raw);
118938
119499
  return version2 ? `${version2} at ${binaryPath}` : binaryPath;
118939
119500
  } catch {
@@ -119481,7 +120042,7 @@ __export(render_exports, {
119481
120042
  import { mkdirSync as mkdirSync35, readdirSync as readdirSync24, readFileSync as readFileSync44, statSync as statSync20, writeFileSync as writeFileSync24, rmSync as rmSync19 } from "fs";
119482
120043
  import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir7 } from "os";
119483
120044
  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";
120045
+ import { execFileSync as execFileSync10, spawn as spawn15 } from "child_process";
119485
120046
  function formatFpsParseError(input2, reason) {
119486
120047
  switch (reason) {
119487
120048
  case "empty":
@@ -119554,7 +120115,7 @@ function resolveDockerfilePath() {
119554
120115
  }
119555
120116
  function dockerImageExists(tag) {
119556
120117
  try {
119557
- execFileSync9("docker", ["image", "inspect", tag], { stdio: "pipe", timeout: 1e4 });
120118
+ execFileSync10("docker", ["image", "inspect", tag], { stdio: "pipe", timeout: 1e4 });
119558
120119
  return true;
119559
120120
  } catch {
119560
120121
  return false;
@@ -119577,7 +120138,7 @@ function ensureDockerImage(version2, platform10, quiet) {
119577
120138
  writeFileSync24(join73(tmpDir, "Dockerfile"), readFileSync44(dockerfilePath));
119578
120139
  const targetArch = platform10 === "linux/arm64" ? "arm64" : "amd64";
119579
120140
  try {
119580
- execFileSync9(
120141
+ execFileSync10(
119581
120142
  "docker",
119582
120143
  [
119583
120144
  "build",
@@ -119615,7 +120176,7 @@ function resolveDockerHostPlatform(options) {
119615
120176
  if (!options.quiet && platform10 === "linux/arm64") {
119616
120177
  console.log(
119617
120178
  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)."
120179
+ " 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
120180
  )
119620
120181
  );
119621
120182
  }
@@ -119703,6 +120264,7 @@ async function renderDocker(projectDir, outputPath, options) {
119703
120264
  ...getMemorySnapshot()
119704
120265
  });
119705
120266
  printRenderComplete(outputPath, elapsed, options.quiet);
120267
+ warnIfWebmAlphaDropped(outputPath, options.format, options.quiet);
119706
120268
  if (options.exitAfterComplete) scheduleRenderProcessExit();
119707
120269
  return { renderTimeMs: elapsed };
119708
120270
  }
@@ -119788,6 +120350,7 @@ async function renderLocal(projectDir, outputPath, options) {
119788
120350
  job.perfSummary?.compositionDurationSeconds,
119789
120351
  job.perfSummary?.totalFrames
119790
120352
  );
120353
+ warnIfWebmAlphaDropped(outputPath, options.format, options.quiet);
119791
120354
  if (!options.skipFeedback) {
119792
120355
  await maybePromptRenderFeedback({
119793
120356
  renderDurationMs: elapsed,
@@ -120032,6 +120595,7 @@ var init_render = __esm({
120032
120595
  init_producer();
120033
120596
  init_colors();
120034
120597
  init_format();
120598
+ init_webmAlphaCheck();
120035
120599
  init_progress();
120036
120600
  init_events();
120037
120601
  init_feedback();
@@ -120550,13 +121114,14 @@ var init_render = __esm({
120550
121114
  let browserSpinner;
120551
121115
  try {
120552
121116
  if (effectiveQuiet) {
120553
- const info = await ensureBrowser2();
121117
+ const info = await ensureBrowser2({ preferManagedChrome: true });
120554
121118
  browserPath = info.executablePath;
120555
121119
  } else {
120556
121120
  const clack = await Promise.resolve().then(() => (init_dist8(), dist_exports3));
120557
121121
  browserSpinner = clack.spinner();
120558
121122
  browserSpinner.start("Checking browser...");
120559
121123
  const info = await ensureBrowser2({
121124
+ preferManagedChrome: true,
120560
121125
  onProgress: (downloaded, total) => {
120561
121126
  if (total <= 0) return;
120562
121127
  const pct = Math.floor(downloaded / total * 100);
@@ -125526,20 +126091,30 @@ async function runEnsure(options) {
125526
126091
  const s2 = ft();
125527
126092
  if (!options?.force) {
125528
126093
  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...");
126094
+ let lastPct2 = -1;
126095
+ const existing = await ensureBrowser({
126096
+ preferManagedChrome: true,
126097
+ onProgress: (downloaded, total) => {
126098
+ if (total <= 0) return;
126099
+ const pct = Math.floor(downloaded / total * 100);
126100
+ if (pct > lastPct2) {
126101
+ lastPct2 = pct;
126102
+ s2.message(
126103
+ `Downloading Chrome Headless Shell ${c.dim("v" + CHROME_VERSION)} \u2014 ${c.progress(pct + "%")} ${c.dim("(" + formatBytes(downloaded) + " / " + formatBytes(total) + ")")}`
126104
+ );
126105
+ }
126106
+ }
126107
+ });
126108
+ if (existing.source === "download") trackBrowserInstall();
126109
+ s2.stop(c.success(existing.source === "download" ? "Download complete" : "Browser found"));
126110
+ console.log();
126111
+ console.log(` ${c.dim("Source:")} ${c.bold(existing.source)}`);
126112
+ console.log(` ${c.dim("Path:")} ${c.bold(existing.executablePath)}`);
126113
+ console.log();
126114
+ ye(c.success("Ready to render."));
126115
+ return;
125542
126116
  }
126117
+ s2.start("Purging cached download and re-downloading...");
125543
126118
  const downloadSpinner = ft();
125544
126119
  downloadSpinner.start(`Downloading Chrome Headless Shell ${c.dim("v" + CHROME_VERSION)}...`);
125545
126120
  let lastPct = -1;
@@ -125876,13 +126451,13 @@ var init_remove_background = __esm({
125876
126451
  });
125877
126452
 
125878
126453
  // src/whisper/parakeet.ts
125879
- import { execFileSync as execFileSync10 } from "child_process";
126454
+ import { execFileSync as execFileSync11 } from "child_process";
125880
126455
  import { existsSync as existsSync76, mkdtempSync as mkdtempSync6, readFileSync as readFileSync53, rmSync as rmSync20, writeFileSync as writeFileSync27 } from "fs";
125881
126456
  import { homedir as homedir13, tmpdir as tmpdir8 } from "os";
125882
126457
  import { basename as basename15, extname as extname12, join as join80 } from "path";
125883
126458
  function isRunnable(bin) {
125884
126459
  try {
125885
- execFileSync10(bin, ["--help"], { stdio: ["ignore", "ignore", "ignore"], timeout: 1e4 });
126460
+ execFileSync11(bin, ["--help"], { stdio: ["ignore", "ignore", "ignore"], timeout: 1e4 });
125886
126461
  return true;
125887
126462
  } catch {
125888
126463
  return false;
@@ -125898,7 +126473,7 @@ function findParakeet() {
125898
126473
  }
125899
126474
  try {
125900
126475
  const which = process.platform === "win32" ? "where" : "which";
125901
- const out = execFileSync10(which, ["parakeet-mlx"], {
126476
+ const out = execFileSync11(which, ["parakeet-mlx"], {
125902
126477
  encoding: "utf-8",
125903
126478
  stdio: ["ignore", "pipe", "ignore"],
125904
126479
  timeout: 5e3
@@ -125951,7 +126526,7 @@ function transcribeWithParakeet(inputPath, dir, options) {
125951
126526
  try {
125952
126527
  const argv2 = [inputPath, "--model", model, "--output-format", "json", "--output-dir", workDir];
125953
126528
  if (options?.language) argv2.push("--language", options.language);
125954
- execFileSync10(runner, argv2, { stdio: ["ignore", "pipe", "pipe"], timeout: 18e5 });
126529
+ execFileSync11(runner, argv2, { stdio: ["ignore", "pipe", "pipe"], timeout: 18e5 });
125955
126530
  const produced = join80(workDir, `${basename15(inputPath, extname12(inputPath))}.json`);
125956
126531
  if (!existsSync76(produced)) throw new Error("Parakeet did not produce output.");
125957
126532
  const words = mergeTokensToWords(JSON.parse(readFileSync53(produced, "utf-8")));
@@ -126333,12 +126908,12 @@ var init_manager4 = __esm({
126333
126908
  });
126334
126909
 
126335
126910
  // src/tts/python.ts
126336
- import { execFileSync as execFileSync11 } from "child_process";
126911
+ import { execFileSync as execFileSync12 } from "child_process";
126337
126912
  function findPython() {
126338
126913
  const override = process.env.HYPERFRAMES_PYTHON;
126339
126914
  if (override) {
126340
126915
  try {
126341
- const version2 = execFileSync11(override, ["--version"], {
126916
+ const version2 = execFileSync12(override, ["--version"], {
126342
126917
  encoding: "utf-8",
126343
126918
  stdio: ["pipe", "pipe", "pipe"],
126344
126919
  timeout: 5e3
@@ -126350,14 +126925,14 @@ function findPython() {
126350
126925
  for (const name of ["python3", "python"]) {
126351
126926
  try {
126352
126927
  const cmd = process.platform === "win32" ? "where" : "which";
126353
- const output = execFileSync11(cmd, [name], {
126928
+ const output = execFileSync12(cmd, [name], {
126354
126929
  encoding: "utf-8",
126355
126930
  stdio: ["pipe", "pipe", "pipe"],
126356
126931
  timeout: 5e3
126357
126932
  });
126358
126933
  const first = output.split(/\r?\n/).map((s2) => s2.trim()).find(Boolean);
126359
126934
  if (!first) continue;
126360
- const version2 = execFileSync11(first, ["--version"], {
126935
+ const version2 = execFileSync12(first, ["--version"], {
126361
126936
  encoding: "utf-8",
126362
126937
  stdio: ["pipe", "pipe", "pipe"],
126363
126938
  timeout: 5e3
@@ -126370,7 +126945,7 @@ function findPython() {
126370
126945
  }
126371
126946
  function hasPythonPackage(python, pkg) {
126372
126947
  try {
126373
- execFileSync11(python, ["-c", `import ${pkg}`], {
126948
+ execFileSync12(python, ["-c", `import ${pkg}`], {
126374
126949
  stdio: ["pipe", "pipe", "pipe"],
126375
126950
  timeout: 1e4
126376
126951
  });
@@ -126385,7 +126960,7 @@ function hasPythonModules(modules) {
126385
126960
  const list = JSON.stringify(modules);
126386
126961
  const probe = `import importlib.util,sys; sys.exit(0 if all(importlib.util.find_spec(m) for m in ${list}) else 1)`;
126387
126962
  try {
126388
- execFileSync11(python, ["-c", probe], {
126963
+ execFileSync12(python, ["-c", probe], {
126389
126964
  stdio: ["pipe", "pipe", "pipe"],
126390
126965
  timeout: 1e4
126391
126966
  });
@@ -126405,7 +126980,7 @@ var synthesize_exports = {};
126405
126980
  __export(synthesize_exports, {
126406
126981
  synthesize: () => synthesize
126407
126982
  });
126408
- import { execFileSync as execFileSync12 } from "child_process";
126983
+ import { execFileSync as execFileSync13 } from "child_process";
126409
126984
  import { existsSync as existsSync79, writeFileSync as writeFileSync29, mkdirSync as mkdirSync38, readdirSync as readdirSync27, unlinkSync as unlinkSync6 } from "fs";
126410
126985
  import { join as join84, dirname as dirname37, basename as basename16 } from "path";
126411
126986
  import { homedir as homedir15 } from "os";
@@ -126455,7 +127030,7 @@ async function synthesize(text2, outputPath, options) {
126455
127030
  mkdirSync38(dirname37(outputPath), { recursive: true });
126456
127031
  options?.onProgress?.(`Generating speech with voice ${voice} (${lang})...`);
126457
127032
  try {
126458
- const stdout2 = execFileSync12(
127033
+ const stdout2 = execFileSync13(
126459
127034
  python,
126460
127035
  [scriptPath, modelPath2, voicesPath, text2, voice, String(speed), outputPath, lang],
126461
127036
  {
@@ -127180,7 +127755,7 @@ __export(upgrade_exports, {
127180
127755
  examples: () => examples24,
127181
127756
  runDetectedInstall: () => runDetectedInstall
127182
127757
  });
127183
- import { execFileSync as execFileSync13 } from "child_process";
127758
+ import { execFileSync as execFileSync14 } from "child_process";
127184
127759
  async function confirmUpgrade() {
127185
127760
  const shouldUpgrade = await ue({ message: "Upgrade now?" });
127186
127761
  return !q(shouldUpgrade) && shouldUpgrade === true;
@@ -127229,7 +127804,7 @@ function runDetectedInstall(invocation, displayCmd, version2) {
127229
127804
  console.log(` ${c.dim("Running:")} ${c.accent(displayCmd)}`);
127230
127805
  console.log();
127231
127806
  try {
127232
- execFileSync13(invocation.bin, invocation.args, { stdio: "inherit", shell: false });
127807
+ execFileSync14(invocation.bin, invocation.args, { stdio: "inherit", shell: false });
127233
127808
  ye(c.success(`Upgraded to v${version2}`));
127234
127809
  } catch {
127235
127810
  ye(c.dim("Install failed. Try running manually:"));
@@ -168901,7 +169476,7 @@ async function fetchBuffer(url) {
168901
169476
  return null;
168902
169477
  }
168903
169478
  }
168904
- function slugify(text2) {
169479
+ function slugify2(text2) {
168905
169480
  return text2.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 40);
168906
169481
  }
168907
169482
  function deriveAssetName(parsedUrl, catalog, isPoster, idx, usedNames) {
@@ -168924,7 +169499,7 @@ function deriveAssetName(parsedUrl, catalog, isPoster, idx, usedNames) {
168924
169499
  const prefix = isPoster ? "poster" : catalog?.aboveFold ? "hero" : "image";
168925
169500
  let slug = "";
168926
169501
  for (const c3 of candidates) {
168927
- slug = slugify(c3);
169502
+ slug = slugify2(c3);
168928
169503
  if (slug.length > 3 && !usedNames.has(slug)) break;
168929
169504
  }
168930
169505
  if (!slug || slug.length <= 3 || usedNames.has(slug)) {
@@ -172879,12 +173454,12 @@ var init_state = __esm({
172879
173454
  });
172880
173455
 
172881
173456
  // src/commands/lambda/sam.ts
172882
- import { execFileSync as execFileSync14, spawnSync as spawnSync5 } from "child_process";
173457
+ import { execFileSync as execFileSync15, spawnSync as spawnSync5 } from "child_process";
172883
173458
  import { existsSync as existsSync94 } from "fs";
172884
173459
  import { join as join100 } from "path";
172885
173460
  function assertSamAvailable() {
172886
173461
  try {
172887
- execFileSync14("sam", ["--version"], { stdio: "ignore" });
173462
+ execFileSync15("sam", ["--version"], { stdio: "ignore" });
172888
173463
  } catch {
172889
173464
  throw new Error(
172890
173465
  "`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 +173468,7 @@ function assertSamAvailable() {
172893
173468
  }
172894
173469
  function assertAwsCliAvailable() {
172895
173470
  try {
172896
- execFileSync14("aws", ["--version"], { stdio: "ignore" });
173471
+ execFileSync15("aws", ["--version"], { stdio: "ignore" });
172897
173472
  } catch {
172898
173473
  throw new Error(
172899
173474
  "`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 +173545,7 @@ function fetchStackOutputs(opts) {
172970
173545
  if (opts.awsProfile) {
172971
173546
  args.unshift("--profile", opts.awsProfile);
172972
173547
  }
172973
- const out = execFileSync14("aws", args, { encoding: "utf-8" });
173548
+ const out = execFileSync15("aws", args, { encoding: "utf-8" });
172974
173549
  const parsed = JSON.parse(out);
172975
173550
  const byKey = new Map(parsed.map((o) => [o.OutputKey, o.OutputValue]));
172976
173551
  const bucketName = byKey.get("RenderBucketName");
@@ -179008,13 +179583,6 @@ function boxOf(node) {
179008
179583
  return { x: b2.x, y: b2.y, width: b2.width, height: b2.height };
179009
179584
  return null;
179010
179585
  }
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
179586
  function escapeHtml2(text2) {
179019
179587
  return text2.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
179020
179588
  }
@@ -179103,7 +179671,7 @@ function textCss(node, styles) {
179103
179671
  styles.push(`letter-spacing: ${round4(s2.letterSpacing)}px`);
179104
179672
  }
179105
179673
  function uniqueSlug(ctx, name) {
179106
- const base2 = slugify2(name);
179674
+ const base2 = slugify(name);
179107
179675
  let slug = base2;
179108
179676
  let n2 = 2;
179109
179677
  while (ctx.usedSlugs.has(slug))
@@ -179117,7 +179685,7 @@ function backgroundValue(node, ctx) {
179117
179685
  return null;
179118
179686
  const resolved = ctx.bindings.resolved.find((r2) => r2.nodeId === node.id && r2.property === "fills");
179119
179687
  if (resolved)
179120
- return `var(${cssVarName(resolved.compositionVariableId)}, ${literal2})`;
179688
+ return `var(${cssVariableName(resolved.compositionVariableId)}, ${literal2})`;
179121
179689
  return literal2;
179122
179690
  }
179123
179691
  function unresolvedAttr(node, ctx) {
@@ -179138,16 +179706,7 @@ function geometryCss(node, ctx, isRoot) {
179138
179706
  }
179139
179707
  return styles;
179140
179708
  }
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
- }
179709
+ function shapeCss(node, styles) {
179151
179710
  if (node.type === "ELLIPSE") {
179152
179711
  styles.push("border-radius: 50%");
179153
179712
  } else if (typeof node.cornerRadius === "number" && node.cornerRadius > 0) {
@@ -179157,6 +179716,18 @@ function decorationCss(node, ctx) {
179157
179716
  styles.push("overflow: hidden");
179158
179717
  if (typeof node.opacity === "number" && node.opacity < 1)
179159
179718
  styles.push(`opacity: ${round4(node.opacity)}`);
179719
+ }
179720
+ function decorationCss(node, ctx) {
179721
+ const styles = [];
179722
+ const bg = backgroundValue(node, ctx);
179723
+ if (node.type === "TEXT") {
179724
+ if (bg !== null)
179725
+ styles.push(`color: ${bg}`);
179726
+ textCss(node, styles);
179727
+ } else if (bg !== null) {
179728
+ styles.push(bg.includes("gradient(") ? `background: ${bg}` : `background-color: ${bg}`);
179729
+ }
179730
+ shapeCss(node, styles);
179160
179731
  effectsCss(node, styles);
179161
179732
  return styles;
179162
179733
  }
@@ -179176,7 +179747,8 @@ function renderNodeHtml(node, ctx, isRoot, depth = 0) {
179176
179747
  return "";
179177
179748
  const slug = uniqueSlug(ctx, node.name);
179178
179749
  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)}`;
179750
+ const snippetAttr = isRoot ? ' data-hf-snippet=""' : "";
179751
+ const idAttrs = `id="${slug}"${snippetAttr} data-figma-id="${escapeHtml2(node.id)}"${unresolvedAttr(node, ctx)}`;
179180
179752
  if (RASTERIZE_TYPES.has(node.type)) {
179181
179753
  ctx.rasterize.push({ nodeId: node.id, name: node.name, slug });
179182
179754
  return `<img ${idAttrs} data-figma-rasterize="${escapeHtml2(node.id)}" alt="${escapeHtml2(node.name)}" style="${style}" />`;
@@ -179187,10 +179759,11 @@ function renderNodeHtml(node, ctx, isRoot, depth = 0) {
179187
179759
  }
179188
179760
  return `<div ${idAttrs} style="${style}">${renderChildren(node, ctx, depth)}</div>`;
179189
179761
  }
179190
- function nodeToHtml(root, bindings) {
179762
+ function nodeToHtml(root, bindings, opts = {}) {
179191
179763
  const origin = boxOf(root) ?? { x: 0, y: 0, width: 0, height: 0 };
179192
179764
  const ctx = { origin, bindings, rasterize: [], usedSlugs: /* @__PURE__ */ new Set() };
179193
- const html = renderNodeHtml(root, ctx, true);
179765
+ const rootForRender = opts.rootName !== void 0 ? { ...root, name: opts.rootName } : root;
179766
+ const html = renderNodeHtml(rootForRender, ctx, true);
179194
179767
  return { html, rasterize: ctx.rasterize };
179195
179768
  }
179196
179769
  var RASTERIZE_TYPES, MAX_DEPTH4;
@@ -179199,6 +179772,8 @@ var init_nodeToHtml = __esm({
179199
179772
  "use strict";
179200
179773
  init_color();
179201
179774
  init_nodeDocument();
179775
+ init_tokenSlug();
179776
+ init_tokenSlug();
179202
179777
  RASTERIZE_TYPES = /* @__PURE__ */ new Set([
179203
179778
  "VECTOR",
179204
179779
  "BOOLEAN_OPERATION",
@@ -179637,49 +180212,20 @@ async function runComponentImport(refInput, deps) {
179637
180212
  if (!ref2.nodeId) throw new Error(`ref "${refInput}" has no node id`);
179638
180213
  const tree = await deps.client.nodeTree(ref2);
179639
180214
  const bindings = resolveBindings(tree, readBindings(deps.projectDir));
179640
- const mapped = nodeToHtml(tree, bindings);
179641
- const name = slugify2(tree.name);
180215
+ const mapped = nodeToHtml(tree, bindings, { rootName: deps.name });
180216
+ const name = slugify(deps.name ?? tree.name);
179642
180217
  const componentDir = join114(deps.projectDir, "compositions", "components", name);
179643
180218
  if (existsSync105(componentDir))
179644
180219
  console.warn(
179645
180220
  `component dir compositions/components/${name} already exists \u2014 overwriting (rename the figma frame for a separate import)`
179646
180221
  );
179647
180222
  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
- }
180223
+ const { html, frozenAssets, failedRasterize } = await rasterizeFallback(
180224
+ mapped,
180225
+ ref2.fileKey,
180226
+ componentDir,
180227
+ deps
180228
+ );
179683
180229
  const htmlFile = join114(componentDir, `${name}.html`);
179684
180230
  writeFileSync48(htmlFile, html + "\n");
179685
180231
  const registryItem = {
@@ -179713,6 +180259,46 @@ async function runComponentImport(refInput, deps) {
179713
180259
  failedRasterize
179714
180260
  };
179715
180261
  }
180262
+ async function rasterizeFallback(mapped, fileKey, componentDir, deps) {
180263
+ let html = mapped.html;
180264
+ const frozenAssets = [];
180265
+ const failedRasterize = [];
180266
+ for (const req of mapped.rasterize) {
180267
+ const asset = await renderWithPngRetry(fileKey, req, deps);
180268
+ if (asset === null) {
180269
+ failedRasterize.push(req.nodeId);
180270
+ console.warn(
180271
+ `could not render node ${req.nodeId} ("${req.name}") as svg or png \u2014 leaving its placeholder without src`
180272
+ );
180273
+ continue;
180274
+ }
180275
+ frozenAssets.push(asset.record.path);
180276
+ const srcRel = relative17(componentDir, join114(deps.projectDir, asset.record.path)).replaceAll(
180277
+ "\\",
180278
+ "/"
180279
+ );
180280
+ const emittedId = escapeAttr2(req.nodeId);
180281
+ html = html.replaceAll(
180282
+ `data-figma-rasterize="${emittedId}" `,
180283
+ `data-figma-rasterize="${emittedId}" src="${escapeAttr2(srcRel)}" `
180284
+ );
180285
+ }
180286
+ return { html, frozenAssets, failedRasterize };
180287
+ }
180288
+ async function renderWithPngRetry(fileKey, req, deps) {
180289
+ for (const format of ["svg", "png"]) {
180290
+ try {
180291
+ return await runAssetImport(
180292
+ `${fileKey}:${req.nodeId}`,
180293
+ { format, description: req.name },
180294
+ { projectDir: deps.projectDir, client: deps.client, download: deps.download }
180295
+ );
180296
+ } catch (err) {
180297
+ if (!(err instanceof FigmaClientError) || err.code !== "RENDER_FAILED") throw err;
180298
+ }
180299
+ }
180300
+ return null;
180301
+ }
179716
180302
  var component_default;
179717
180303
  var init_component = __esm({
179718
180304
  "src/commands/figma/component.ts"() {
@@ -179726,6 +180312,10 @@ var init_component = __esm({
179726
180312
  meta: { name: "component", description: "Import a figma frame as an editable HTML component" },
179727
180313
  args: {
179728
180314
  ref: { type: "positional", description: "figma URL or fileKey:nodeId", required: true },
180315
+ name: {
180316
+ type: "string",
180317
+ description: "component name override (variant frames often share a name and would collide)"
180318
+ },
179729
180319
  dir: { type: "string", description: "project directory", default: "." }
179730
180320
  },
179731
180321
  async run({ args }) {
@@ -179735,7 +180325,8 @@ var init_component = __esm({
179735
180325
  const result = await runComponentImport(args.ref, {
179736
180326
  projectDir: args.dir,
179737
180327
  client,
179738
- download: downloadRender
180328
+ download: downloadRender,
180329
+ name: args.name
179739
180330
  });
179740
180331
  console.log(`imported component "${result.name}" \u2192 ${result.htmlPath}`);
179741
180332
  if (result.rasterized.length > 0) {
@@ -180006,13 +180597,13 @@ async function refreshSkillsCache() {
180006
180597
  config.lastSkillsCheck = (/* @__PURE__ */ new Date()).toISOString();
180007
180598
  config.skillsUpdateAvailable = result.updateAvailable;
180008
180599
  config.skillsOutdatedCount = result.summary.outdated;
180009
- config.skillsMissingCount = result.summary.missing;
180600
+ config.skillsMissingCount = result.summary.coreMissing;
180010
180601
  writeConfig(config);
180011
180602
  }
180012
180603
  return {
180013
180604
  updateAvailable: result.updateAvailable,
180014
180605
  outdated: result.summary.outdated,
180015
- missing: result.summary.missing
180606
+ missing: result.summary.coreMissing
180016
180607
  };
180017
180608
  }
180018
180609
  async function checkSkillsForUpdate(force) {
@@ -180274,25 +180865,36 @@ function assertKnownFlags(cmd, rawArgs) {
180274
180865
 
180275
180866
  // src/utils/command-failure-tracking.ts
180276
180867
  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) => {
180868
+ return () => load().then((cmd) => wrapCommand(cmd, onFailure));
180869
+ }
180870
+ function wrapCommand(cmd, onFailure) {
180871
+ const run2 = cmd.run;
180872
+ if (typeof run2 !== "function" && !cmd.subCommands) return cmd;
180873
+ const wrapped = { ...cmd };
180874
+ if (typeof run2 === "function") {
180875
+ wrapped.run = async (ctx) => {
180876
+ try {
180283
180877
  assertKnownFlags(cmd, ctx?.rawArgs ?? []);
180878
+ return await run2(ctx);
180879
+ } catch (err) {
180284
180880
  try {
180285
- return await run2(ctx);
180286
- } catch (err) {
180287
- try {
180288
- await onFailure(err);
180289
- } catch {
180290
- }
180291
- throw err;
180881
+ await onFailure(err);
180882
+ } catch {
180292
180883
  }
180884
+ throw err;
180293
180885
  }
180294
180886
  };
180295
- });
180887
+ }
180888
+ if (cmd.subCommands) {
180889
+ const wrappedSubs = {};
180890
+ for (const [name, sub] of Object.entries(cmd.subCommands)) {
180891
+ wrappedSubs[name] = () => Promise.resolve(typeof sub === "function" ? sub() : sub).then(
180892
+ (c3) => wrapCommand(c3, onFailure)
180893
+ );
180894
+ }
180895
+ wrapped.subCommands = wrappedSubs;
180896
+ }
180897
+ return wrapped;
180296
180898
  }
180297
180899
  async function reportCommandFailure(command2, err) {
180298
180900
  try {