hyperframes 0.7.26 → 0.7.28

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.26" : "0.0.0-dev";
53
+ VERSION = true ? "0.7.28" : "0.0.0-dev";
54
54
  }
55
55
  });
56
56
 
@@ -55967,7 +55967,7 @@ var RUNTIME_IIFE;
55967
55967
  var init_runtime_inline = __esm({
55968
55968
  "../core/dist/generated/runtime-inline.js"() {
55969
55969
  "use strict";
55970
- RUNTIME_IIFE = '"use strict";(()=>{var Na=Object.create;var zn=Object.defineProperty;var _a=Object.getOwnPropertyDescriptor;var Ta=Object.getOwnPropertyNames;var La=Object.getPrototypeOf,va=Object.prototype.hasOwnProperty;var ka=(t,e,n)=>e in t?zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Ra=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ta(e))!va.call(t,r)&&r!==n&&zn(t,r,{get:()=>e[r],enumerable:!(i=_a(e,r))||i.enumerable});return t};var Da=(t,e,n)=>(n=t!=null?Na(La(t)):{},Ra(e||!t||!t.__esModule?zn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);var Gr=te((Am,ii)=>{var Y=String,Wr=function(){return{isColorSupported:!1,reset:Y,bold:Y,dim:Y,italic:Y,underline:Y,inverse:Y,hidden:Y,strikethrough:Y,black:Y,red:Y,green:Y,yellow:Y,blue:Y,magenta:Y,cyan:Y,white:Y,gray:Y,bgBlack:Y,bgRed:Y,bgGreen:Y,bgYellow:Y,bgBlue:Y,bgMagenta:Y,bgCyan:Y,bgWhite:Y,blackBright:Y,redBright:Y,greenBright:Y,yellowBright:Y,blueBright:Y,magentaBright:Y,cyanBright:Y,whiteBright:Y,bgBlackBright:Y,bgRedBright:Y,bgGreenBright:Y,bgYellowBright:Y,bgBlueBright:Y,bgMagentaBright:Y,bgCyanBright:Y,bgWhiteBright:Y}};ii.exports=Wr();ii.exports.createColors=Wr});var ri=te(()=>{});var cn=te((Cm,zr)=>{"use strict";var Ur=Gr(),Vr=ri(),kt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,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,t)}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(e){if(!this.source)return"";let n=this.source;e==null&&(e=Ur.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Ur.createColors(!0);r=g=>u(f(g)),i=g=>m(g),Vr&&(o=g=>Vr(g))}let s=n.split(/\\r?\\n/),c=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(c,a).map((u,m)=>{let f=c+1+m,g=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(u.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),N=u.slice(x,w),L=i(g.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(g)+o(N)+`\n `+L+r("^")}let A=i(g.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(g)+o(u)+`\n `+A+r("^")}return" "+i(g)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zr.exports=kt;kt.default=kt});var oi=te((Fm,qr)=>{"use strict";var pl=/(<)(\\/?style\\b)/gi,hl=/(<)(!--)/g;function je(t){return typeof t!="string"||!t.includes("<")?t:t.replace(pl,"\\\\3c $2").replace(hl,"\\\\3c $2")}var jr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function xl(t){return t[0].toUpperCase()+t.slice(1)}var Rt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(je(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(je(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(je(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],a=this.raw(c,"before");a&&this.builder(o?a:je(a)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(je("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(je(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return jr[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+xl(i);this[a]?r=this[a](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=jr[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.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(e,n){let i;return e.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(e,n){let i;return e.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(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.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(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&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(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:je(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(je(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};qr.exports=Rt;Rt.default=Rt});var Dt=te((Mm,$r)=>{"use strict";var gl=oi();function si(t,e){new gl(e).stringify(t)}$r.exports=si;si.default=si});var dn=te((Nm,ai)=>{"use strict";ai.exports.isClean=Symbol("isClean");ai.exports.my=Symbol("my")});var Ot=te((_m,Kr)=>{"use strict";var yl=cn(),bl=oi(),Sl=Dt(),{isClean:It,my:Al}=dn();function li(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>li(s,n)):(o==="object"&&r!==null&&(r=li(r)),n[i]=r)}return n}function Ge(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Pt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[It]=!1,this[Al]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=li(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new yl(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[It]=!0}markDirty(){if(this[It]){this[It]=!1;let e=this;for(;e=e.parent;)e[It]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Ge(i,this.source.start),Ge(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){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=Ge(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){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:Ge(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:Ge(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Ge(n,this.source.start),Ge(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Ge(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Ge(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.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(e,n){return new bl().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,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 c=this[s];if(Array.isArray(c))i[s]=c.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let a=n.get(c.input);a==null&&(a=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:a,start:c.start}}else i[s]=c}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(e=Sl){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Kr.exports=Pt;Pt.default=Pt});var Ht=te((Tm,Jr)=>{"use strict";var El=Ot(),Bt=class extends El{constructor(e){super(e),this.type="comment"}};Jr.exports=Bt;Bt.default=Bt});var Gt=te((Lm,Yr)=>{"use strict";var wl=Ot(),Wt=class extends wl{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Yr.exports=Wt;Wt.default=Wt});var qe=te((vm,oo)=>{"use strict";var Xr=Ht(),Qr=Gt(),Cl=Ot(),{isClean:Zr,my:eo}=dn(),ui,to,no,ci;function io(t){return t.map(e=>(e.nodes&&(e.nodes=io(e.nodes)),delete e.source,e))}function ro(t){if(t[Zr]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)ro(e)}var Re=class t extends Cl{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(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);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(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=io(to(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Qr(e)]}else if(e.selector||e.selectors)e=[new ci(e)];else if(e.name)e=[new ui(e)];else if(e.text)e=[new Xr(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[eo]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Zr]&&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(...e){e=e.reverse();for(let n of e){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(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,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(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};Re.registerParse=t=>{to=t};Re.registerRule=t=>{ci=t};Re.registerAtRule=t=>{ui=t};Re.registerRoot=t=>{no=t};oo.exports=Re;Re.default=Re;Re.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,ui.prototype):t.type==="rule"?Object.setPrototypeOf(t,ci.prototype):t.type==="decl"?Object.setPrototypeOf(t,Qr.prototype):t.type==="comment"?Object.setPrototypeOf(t,Xr.prototype):t.type==="root"&&Object.setPrototypeOf(t,no.prototype),t[eo]=!0,t.nodes&&t.nodes.forEach(e=>{Re.rebuild(e)})}});var fn=te((km,ao)=>{"use strict";var so=qe(),ct=class extends so{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ao.exports=ct;ct.default=ct;so.registerAtRule(ct)});var mn=te((Rm,co)=>{"use strict";var Fl=qe(),lo,uo,rt=class extends Fl{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lo(new uo,this,e).stringify()}};rt.registerLazyResult=t=>{lo=t};rt.registerProcessor=t=>{uo=t};co.exports=rt;rt.default=rt});var mo=te((Dm,fo)=>{var Ml="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Nl=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},_l=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Ml[Math.random()*64|0];return e};fo.exports={nanoid:_l,customAlphabet:Nl}});var pn=te(()=>{});var hn=te(()=>{});var di=te(()=>{});var po=te(()=>{});var mi=te((Vm,go)=>{"use strict";var{existsSync:Tl,readFileSync:Ll}=po(),{dirname:fi,join:vl}=pn(),{SourceMapConsumer:ho,SourceMapGenerator:xo}=hn();function kl(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Ut=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),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=fi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new ho(this.json||this.text)),this.consumerCache}decodeInline(e){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=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return kl(e.substr(c[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=fi(e),Tl(e)))return this.mapFile=e,Ll(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof ho)return xo.fromSourceMap(n).toString();if(n instanceof xo)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;e&&(i=vl(fi(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};go.exports=Ut;Ut.default=Ut});var Vt=te((zm,Eo)=>{"use strict";var{nanoid:Rl}=mo(),{isAbsolute:xi,resolve:gi}=pn(),{SourceMapConsumer:Dl,SourceMapGenerator:Il}=hn(),{fileURLToPath:yo,pathToFileURL:xn}=di(),bo=cn(),Pl=mi(),pi=ri(),hi=Symbol("lineToIndexCache"),Ol=!!(Dl&&Il),So=!!(gi&&xi);function Ao(t){if(t[hi])return t[hi];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[hi]=n,n}var dt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.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&&(!So||/^\\w+:\\/\\//.test(n.from)||xi(n.from)?this.file=n.from:this.file=gi(n.from)),So&&Ol){let i=new Pl(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 "+Rl(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,a,l;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let g=this.fromOffset(a);n=g.line,i=g.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){c=f.offset;let g=this.fromOffset(c);s=g.line,o=g.col}else s=f.line,o=f.column,c=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?l=new bo(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):l=new bo(e,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:c,line:n,offset:a,source:this.css},this.file&&(xn&&(l.input.url=xn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return Ao(this)[e-1]+n-1}fromOffset(e){let n=Ao(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:gi(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let a;xi(s.source)?a=xn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||xn(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(yo)l.file=yo(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(l.source=u),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Eo.exports=dt;dt.default=dt;pi&&pi.registerInput&&pi.registerInput(dt)});var ft=te((jm,Mo)=>{"use strict";var wo=qe(),Co,Fo,$e=class extends wo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);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(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Co(new Fo,this,e).stringify()}};$e.registerLazyResult=t=>{Co=t};$e.registerProcessor=t=>{Fo=t};Mo.exports=$e;$e.default=$e;wo.registerRoot($e)});var yi=te((qm,No)=>{"use strict";var zt={comma(t){return zt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return zt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,a="",l=!1;for(let u of t)l?l=!1:u==="\\\\"?l=!0:c?u===a&&(c=!1):u===\'"\'||u==="\'"?(c=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};No.exports=zt;zt.default=zt});var gn=te(($m,To)=>{"use strict";var _o=qe(),Bl=yi(),mt=class extends _o{get selectors(){return Bl.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};To.exports=mt;mt.default=mt;_o.registerRule(mt)});var vo=te((Km,Lo)=>{"use strict";var Hl=fn(),Wl=Ht(),Gl=Gt(),Ul=Vt(),Vl=mi(),zl=ft(),jl=gn();function jt(t,e){if(Array.isArray(t))return t.map(r=>jt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Ul.prototype};o.map&&(o.map={...o.map,__proto__:Vl.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>jt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new zl(i);if(i.type==="decl")return new Gl(i);if(i.type==="rule")return new jl(i);if(i.type==="comment")return new Wl(i);if(i.type==="atrule")return new Hl(i);throw new Error("Unknown node type: "+t.type)}Lo.exports=jt;jt.default=jt});var Si=te((Jm,Oo)=>{"use strict";var{dirname:yn,relative:Ro,resolve:Do,sep:Io}=pn(),{SourceMapConsumer:Po,SourceMapGenerator:bn}=hn(),{pathToFileURL:ko}=di(),ql=Vt(),$l=!!(Po&&bn),Kl=!!(yn&&Do&&Ro&&Io),bi=class{constructor(e,n,i,r){this.stringify=e,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 e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||yn(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Po(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Kl&&$l&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=bn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new bn({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 bn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,a,l)=>{if(this.css+=c,a&&l!=="end"&&(r.generated.line=e,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=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),n=c.length-o):n+=c.length,a&&l!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.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=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,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(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!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(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?yn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=yn(Do(i,this.mapOpts.annotation)));let r=Ro(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ql(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[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(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(ko){let i=ko(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Io==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Oo.exports=bi});var Wo=te((Ym,Ho)=>{"use strict";var Sn=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,An=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Jl=/.[\\r\\n"\'(/\\\\]/,Bo=/[\\da-f]/i;Ho.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,a,l,u,m,f,g,A,y=i.length,x=0,w=[],N=[],L=-1;function $(){return x}function B(F){throw e.error("Unclosed "+F,x)}function _(){return N.length===0&&x>=y}function S(F){if(N.length)return N.pop();if(x>=y)return;let T=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{a=x;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(x,a)],x=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let k=String.fromCharCode(o);u=[k,k,x];break}case 40:{if(A=w.length?w.pop()[1]:"",g=i.charCodeAt(x+1),A==="url"&&g!==39&&g!==34&&g!==32&&g!==10&&g!==9&&g!==12&&g!==13){a=x;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=x;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(x,a+1),x,a],x=a}else x<=L?u=["(","(",x]:(a=i.indexOf(")",x+1),s=i.slice(x,a+1),a===-1||Jl.test(s)?(L=a===-1?y:a,u=["(","(",x]):(u=["brackets",s,x,a],x=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=x;do{if(m=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=x+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(x,a+1),x,a],x=a;break}case 64:{Sn.lastIndex=x+1,Sn.test(i),Sn.lastIndex===0?a=i.length-1:a=Sn.lastIndex-2,u=["at-word",i.slice(x,a+1),x,a],x=a;break}case 92:{for(a=x,c=!0;i.charCodeAt(a+1)===92;)a+=1,c=!c;if(o=i.charCodeAt(a+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Bo.test(i.charAt(a)))){for(;Bo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(x,a+1),x,a],x=a;break}default:{o===47&&i.charCodeAt(x+1)===42?(a=i.indexOf("*/",x+2)+1,a===0&&(r||T?a=i.length:B("comment")),u=["comment",i.slice(x,a+1),x,a],x=a):(An.lastIndex=x+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,u=["word",i.slice(x,a+1),x,a],w.push(u),x=a);break}}return x++,u}function C(F){N.push(F)}return{back:C,endOfFile:_,nextToken:S,position:$}}});var zo=te((Xm,Vo)=>{"use strict";var Yl=fn(),Xl=Ht(),Ql=Gt(),Zl=ft(),Go=gn(),eu=Wo(),Uo={empty:!0,space:!0};function tu(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Ai=class{constructor(e){this.input=e,this.root=new Zl,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Yl;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[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(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!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(e);break}else a.push(e);else a.push(e);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&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,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(e){let n=new Xl;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[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=eu(this.input)}decl(e,n){let i=new Ql;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||tu(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.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=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,l);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=l;f>0;f--){let g=u[f][0];if(m.trim().startsWith("!")&&g!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Go;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){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(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}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(e){if(this.spaces+=e[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(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),a=[],l=e;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,c);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(!c)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,c)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,a="",l=!0,u,m;for(let f=0;f<c;f+=1)o=i[f],s=o[0],s==="space"&&f===c-1&&!r?l=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Uo[m]&&!Uo[u]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((g,A)=>g+A[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Go;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vo.exports=Ai});var wn=te((Qm,jo)=>{"use strict";var nu=qe(),iu=Vt(),ru=zo();function En(t,e){let n=new iu(t,e),i=new ru(n);try{i.parse()}catch(r){throw r}return i.root}jo.exports=En;En.default=En;nu.registerParse(En)});var Ei=te((Zm,qo)=>{"use strict";var qt=class{constructor(e,n={}){if(this.type="warning",this.text=e,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}};qo.exports=qt;qt.default=qt});var Cn=te((ep,$o)=>{"use strict";var ou=Ei(),$t=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new ou(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$o.exports=$t;$t.default=$t});var wi=te((tp,Jo)=>{"use strict";var Ko={};Jo.exports=function(e){Ko[e]||(Ko[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Mi=te((ip,Zo)=>{"use strict";var su=qe(),au=mn(),lu=Si(),uu=wn(),Yo=Cn(),cu=ft(),du=Dt(),{isClean:Be,my:fu}=dn(),np=wi(),mu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},pu={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},hu={Once:!0,postcssPlugin:!0,prepare:!0},pt=0;function Kt(t){return typeof t=="object"&&typeof t.then=="function"}function Qo(t){let e=!1,n=mu[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,pt,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,pt,n+"Exit"]:[n,n+"Exit"]}function Xo(t){let e;return t.type==="document"?e=["Document",pt,"DocumentExit"]:t.type==="root"?e=["Root",pt,"RootExit"]:e=Qo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Ci(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>Ci(e)),t}var Fi={},Ke=class t{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(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Ci(n);else if(n instanceof t||n instanceof Yo)r=Ci(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=uu;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[fu]&&su.rebuild(r)}this.result=new Yo(e,r,i),this.helpers={...Fi,postcss:Fi,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(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(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(!pu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!hu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Kt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Xo(e)];for(;n.length>0;){let i=this.visitTick(n);if(Kt(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(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Kt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(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 e=this.result.opts,n=du;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new lu(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 e of this.plugins){let n=this.runOnRoot(e);if(Kt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){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(Kt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Be]){c[Be]=!0,e.push(Xo(c));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===pt){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Qo(e);for(let i of n)if(i===pt)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ke.registerPostcss=t=>{Fi=t};Zo.exports=Ke;Ke.default=Ke;cu.registerLazyResult(Ke);au.registerLazyResult(Ke)});var ts=te((op,es)=>{"use strict";var xu=Si(),gu=wn(),yu=Cn(),bu=Dt(),rp=wi(),Jt=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 e,n=gu;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=bu;this.result=new yu(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 xu(r,void 0,this._opts,n);if(s.isMap()){let[c,a]=s.generate();c&&(this.result.css=c),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(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};es.exports=Jt;Jt.default=Jt});var is=te((sp,ns)=>{"use strict";var Su=mn(),Au=Mi(),Eu=ts(),wu=ft(),ot=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)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(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Eu(this,e,n):new Au(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};ns.exports=ot;ot.default=ot;wu.registerProcessor(ot);Su.registerProcessor(ot)});var ds=te((ap,cs)=>{"use strict";var rs=fn(),os=Ht(),Cu=qe(),Fu=cn(),ss=Gt(),as=mn(),Mu=vo(),Nu=Vt(),_u=Mi(),Tu=yi(),Lu=Ot(),vu=wn(),Ni=is(),ku=Cn(),ls=ft(),us=gn(),Ru=Dt(),Du=Ei();function le(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Ni(t)}le.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Ni().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,a){return le([r(a)]).process(s,c)},r};le.stringify=Ru;le.parse=vu;le.fromJSON=Mu;le.list=Tu;le.comment=t=>new os(t);le.atRule=t=>new rs(t);le.decl=t=>new ss(t);le.rule=t=>new us(t);le.root=t=>new ls(t);le.document=t=>new as(t);le.CssSyntaxError=Fu;le.Declaration=ss;le.Container=Cu;le.Processor=Ni;le.Document=as;le.Comment=os;le.Warning=Du;le.AtRule=rs;le.Result=ku;le.Input=Nu;le.Rule=us;le.Root=ls;le.Node=Lu;_u.registerPostcss(le);cs.exports=le;le.default=le});function ln(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=ln(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}var Ia={play:(t,e)=>e.onPlay(),pause:(t,e)=>e.onPause(),"stop-media":(t,e)=>e.onStopMedia(),seek:(t,e)=>e.onSeek(Number(t.frame??0),t.seekMode??"commit"),tick:(t,e)=>e.onTick(),"set-muted":(t,e)=>e.onSetMuted(!!t.muted),"set-volume":(t,e)=>e.onSetVolume(Math.max(0,Math.min(1,Number(t.volume??1)))),"set-media-output-muted":(t,e)=>e.onSetMediaOutputMuted(!!t.muted),"set-native-media-sync-disabled":(t,e)=>e.onSetNativeMediaSyncDisabled(!!t.disabled),"set-web-audio-media-disabled":(t,e)=>e.onSetWebAudioMediaDisabled(!!t.disabled),"set-playback-rate":(t,e)=>e.onSetPlaybackRate(Number(t.playbackRate??1)),"set-color-grading":(t,e)=>e.onSetColorGrading(t.target??null,t.grading??null),"set-color-grading-compare":(t,e)=>e.onSetColorGradingCompare(t.target??null,t.compare??null),"enable-pick-mode":(t,e)=>e.onEnablePickMode(),"disable-pick-mode":(t,e)=>e.onDisablePickMode(),"flash-elements":t=>Pa(t)};function Pa(t){let e=t.selectors,n=t.duration||800;e&&Oa(e,n)}function ar(t){let e=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=Ia[r];o&&o(i,t)};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Oa(t,e){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 ${e}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 t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var jn=null;function lr(t){jn=t}function Ct(t,e){if(jn)try{jn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function ur(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>t?.resolveStartSeconds?t.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,u)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(g){v("runtime.adapters.css.site5",g)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:u+f/1e3}:{unbounded:!0}},o=(l,u)=>{for(let m of l){try{m.currentTime=u}catch(f){v("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){v("runtime.adapters.css.site2",f)}}},s=l=>{for(let u of l)try{u.play()}catch(m){v("runtime.adapters.css.site3",m)}},c=l=>{for(let u of l)try{u.pause()}catch(m){v("runtime.adapters.css.site4",m)}},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:()=>{e=[];let l=document.querySelectorAll("*");for(let u of l){if(!(u instanceof HTMLElement))continue;let m=window.getComputedStyle(u);!m.animationName||m.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||"",animations:n(u)})}},getInferredDurationSeconds:()=>{let l=0;for(let u of e){if(!u.el.isConnected)continue;let m=i(u.el);for(let f of n(u.el)){let g=r(f,m);g.endSeconds!=null&&(l=Math.max(l,g.endSeconds))}}return l>0?l:null},seek:l=>{let u=Number(l.time)||0;for(let m of e){if(!m.el.isConnected)continue;let f=i(m.el),g=Math.max(0,u-f)*1e3,A=m.animations;if(A.length>0){o(A,g);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(g/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let u=l.animations;u.length>0&&c(u),a(l)}},play:()=>{for(let l of e)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{e=[]}}}function cr(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function dr(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function mr(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(qn(i))i.goToAndStop(e*1e3,!1);else if($n(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*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,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(qn(e)||$n(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let t=window.__hfLottie;if(!t||t.length===0)return null;let e=0,n=!1;for(let i of t){let r=null;try{r=Ba(i)}catch(o){v("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,e=Math.max(e,r))}return n?e:null}}}function fr(t,e){return!Number.isFinite(t)||!t||t<=0||!Number.isFinite(e)||!e||e<=0?null:t/e}function Ba(t){return qn(t)?fr(t.totalFrames,t.frameRate):$n(t)?Number.isFinite(t.duration)&&(t.duration??0)>0?t.duration??null:fr(t.totalFrames,t.frameRate):null}function qn(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function $n(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Kn=-1;function un(t){if(t!==Kn){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function pr(t){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function hr(){let t=null,e=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let u=window.THREE?.DefaultLoadingManager;return!u||typeof u!="object"||typeof u.itemsLoaded!="number"||typeof u.itemsTotal!="number"?null:u},c=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(u=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,u()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(u,m,f){try{i?.call(this,u,m,f)}finally{c(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),c(l))},seek:l=>{t=Math.max(0,Number(l.time)||0),e=t,window.__hfThreeTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||c(l),o)}}}function Oe(t){let e=null,n=new WeakSet;return{name:t.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=t.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:e||(e=Promise.allSettled(r.map(o=>t.waitFor(o).then(()=>{n.add(o)}))).then(()=>{e=null}),e)}}}function xr(){return Oe({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMapbox;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function gr(){return Oe({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfLeaflet;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>t.whenReady(e))})}function yr(){return Oe({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfGoogleMaps;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{let n=t.addListener("tilesloaded",()=>{n.remove(),e()})})})}function br(){return Oe({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMaplibre;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function Sr(){return Oe({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfD3;return Array.isArray(t)?t:[]},waitFor:t=>t.end()})}function Ar(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Er(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function wr(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Er(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Cr(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...c){let a=c.length-1,l=c[a];if(l instanceof HTMLVideoElement){let u=Er(l);u&&(c[a]=u)}return o.apply(this,c)};s.__hfVideoPatched=!0,i[r]=s}}}function Fr(){let t=!1,e=0,n=!1,i,r,o,s=new Set,c=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},u=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let N=c.get(x);if(N)return N;let L={compositionTimeMs:w,animationTimeMs:t?u(l(x),w):l(x)};return c.set(x,L),L},f=(x,w)=>{if(!s.has(x)){s.add(x);let N=()=>{s.delete(x)};try{x.addEventListener("finish",N,{once:!0}),x.addEventListener("cancel",N,{once:!0})}catch(L){v("runtime.adapters.waapi.site4",L)}}m(x,w)},g=(x,w)=>{for(let N of x)f(N,w)},A=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let N=function(...L){let $=w.apply(this,L);return f($,e),$};x.animate=N,i=x,r=w,o=N,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch($){v("runtime.adapters.waapi.site4",$)}if(!w)return{};let N=Number(w.endTime);return Number.isFinite(N)?{endSeconds:(c.get(x)?.compositionTimeMs??0)/1e3+N/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{t=!0,A(),g(a(),e)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);e=w,(!t||s.size>0)&&g(a(),t?w:0);for(let N of s){let L=t?m(N,w):m(N,0),$=L.animationTimeMs+Math.max(0,w-L.compositionTimeMs);try{N.currentTime=$}catch(B){v("runtime.adapters.waapi.site1",B)}try{N.pause()}catch(B){v("runtime.adapters.waapi.site2",B)}}},pause:()=>{t||g(a(),e);for(let x of s)try{x.pause()}catch(w){v("runtime.adapters.waapi.site3",w)}},revert:()=>{if(s.clear(),c=new WeakMap,t=!1,e=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(x){v("runtime.adapters.waapi.site5",x)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of a()){let N=y(w);N.endSeconds!=null&&(x=Math.max(x,N.endSeconds))}return x>0?x:null}}}function Mr(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Ha(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),c=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=l;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,c),g=[];for(let y=m;y<=f+1e-6;y+=u){let x=Math.min(f,y);e(x);let w=Number(t.volume);if(!Number.isFinite(w))continue;let N=Math.max(0,Math.min(1,w)),L=g.at(-1);if((!L||Math.abs(L.volume-N)>1e-4||x===f)&&g.push({time:Number(x.toFixed(6)),volume:Number(N.toFixed(6))}),x===f)break}return g.some(y=>Math.abs(y.volume-l)>1e-4)?g:null}function Nr(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Ha(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function Nt(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function _r(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Nt(s),u=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&m!=null&&(f=Math.max(0,(m-a)/l));let g=Number.isFinite(f)&&f>0?c+f:Number.POSITIVE_INFINITY,A=Number.parseFloat(s.dataset.volume??""),y={el:s,start:c,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:g,volume:Number.isFinite(A)?A:null,playbackRate:l,loop:u,sourceDuration:m};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(g)&&(o=Math.max(o,g))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Jn=new WeakMap,Ft=new WeakMap,Yn=new WeakSet,lt=new WeakSet;function Wa(t){if(lt.has(t))return;lt.add(t);let e=()=>lt.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Ga=3;function Ua(t){return t.error!=null||t.networkState===Ga}var Xn=new WeakMap;function Mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function Tr(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.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=Mt(t.userVolume??1),c=Mt(n.volume??1),a=Xn.get(i),l=Mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=Mt(Mr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?u=l:u=c;let m=Mt(u*s);i.volume=m,Xn.set(i,m),t.onElementVolume?.(i,m),(e||t.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(T){v("runtime.media.site1",T)}let f=.04,g=2,A=i.currentTime||0,y=Math.abs(A-r),x=r-A,w=Jn.get(i);Jn.set(i,x);let N=w===void 0,L=!N&&Math.abs(x-w)>.5,$=y>3,B=y>.5&&(N||L||$),_=i.tagName==="VIDEO"&&!i.paused,S=w!==void 0&&Math.abs(x-w)<.004,C=!1;if(!_&&!B&&!N&&S&&y>f){let T=(Ft.get(i)??0)+1;Ft.set(i,T),T>=g&&(C=!0,Ft.set(i,0))}else y<=f&&Ft.set(i,0);let F=!_&&t.forceSync&&y>.02;if(B||C||F){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(k){v("runtime.media.site2",k)}if(Math.abs(i.currentTime-r)>.5&&!Yn.has(i)){Yn.add(i),i.load();try{i.currentTime=r}catch(k){v("runtime.media.site3",k)}}}lt.delete(i)}t.playing&&i.paused&&!lt.has(i)&&!Ua(i)?(Wa(i),i.play().catch(T=>{lt.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Jn.delete(i),Ft.delete(i),Yn.delete(i),Xn.delete(i),i.paused||i.pause()}}var Va=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),za=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),ja="data-hf-color-grading-source-hidden";function Lr(t){let e=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(F){v("runtime.picker.site1",F)}}function c(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let F=S;for(;F&&F!==document.body&&F!==document.documentElement;){let T=C.getComputedStyle(F);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let k=Number.parseFloat(T.opacity);if(Number.isFinite(k)&&k<=.01&&!F.hasAttribute(ja))return!0;F=F.parentElement}return!1}function u(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(Va)||l(S))}function m(S){return!!S?.closest(za)}function f(S){let C=S;if(C.id)return`#${C.id}`;let F=S.getAttribute("data-composition-id");if(F)return`[data-composition-id="${CSS.escape(F)}"]`;let T=S.getAttribute("data-composition-src");if(T)return`[data-composition-src="${CSS.escape(T)}"]`;let k=S.getAttribute("data-track-index");if(k)return`[data-track-index="${CSS.escape(k)}"]`;let G=S.tagName.toLowerCase(),j=S.parentElement;if(!j)return G;let ie=j.querySelectorAll(`:scope > ${G}`);if(ie.length===1)return G;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${G}:nth-of-type(${P+1})`;return G}function g(S){let C=S.tagName.toLowerCase(),F=(S.textContent??"").trim().replace(/\\s+/g," "),T=(k,G)=>k.length>G?`${k.slice(0,G-1)}\\u2026`:k;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?F.length>0?T(F,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 A(S,C,F){let T=typeof F=="number"&&F>0?F:8,k=[];if(document.elementsFromPoint)k=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);k=ie?[ie]:[]}if(m(k[0]??null))return[];let G={},j=[];for(let ie=0;ie<k.length;ie+=1){let P=k[ie];if(!u(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!G[se]&&(G[se]=!0,j.push(P),j.length>=T))break}return j}function y(S){let C=S.getBoundingClientRect(),F={};for(let k=0;k<S.attributes.length;k+=1){let G=S.attributes[k];G.name.startsWith("data-")&&(F[G.name]=G.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:g(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:F}}function x(S,C,F){return A(S,C,F).map(y)}function w(S){if(!e)return;let F=A(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!u(F)||n===F)return;n&&n.classList.remove("__hf-pick-highlight"),n=F,F.classList.add("__hf-pick-highlight");let T=y(F);c(T),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function N(S){if(!e)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=x(S.clientX,S.clientY,8);C.length!==0&&(c(C[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function L(S){S.key==="Escape"&&(B(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){e||(e=!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",w,!0),document.addEventListener("click",N,!0),document.addEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){e&&(e=!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",w,!0),document.removeEventListener("click",N,!0),document.removeEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function _(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,F)=>Number.isFinite(S)&&Number.isFinite(C)?x(S,C,F):[],pickAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=x(S,C,8);if(!T.length)return null;let k=Math.max(0,Math.min(T.length-1,Number(F??0))),G=T[k]??null;return G?(a(G),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),B(),G):null},pickManyAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=x(S,C,8);if(!T.length)return[];let k=[],G=Array.isArray(F)?F:[0];for(let j of G){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[ie];if(!P)continue;k.some(Se=>Se.selector===P.selector&&Se.tagName===P.tagName)||k.push(P)}return k.length?(a(k[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:k}),B(),k):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:$,disablePickMode:B,installPickerApi:_}}var qa=["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 ut(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function vr(t,e,n=qa){for(let i of n){let r=e.getPropertyValue(i);r&&t.setProperty(i,r)}}function _t(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ke(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function Tt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function kr(t,e,n){let i=ut(e,n);return ke(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function $a(t,e,n,i){let r=[];Tt(t,e,o=>{ke(o,"play"),r.push(o)});try{return kr(e,n,i)}finally{for(let o of r)try{ke(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ka(t,e){Tt(t,e,n=>{ke(n,"play")})}function Rr(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??_t(e,"duration",0))||0);n>0&&Math.max(0,_t(e,"time",0))>=n&&(ke(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ke(e,"play"),Tt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ke(e,"pause"),Tt(t.getTimelineRegistry?.(),e,i=>{ke(i,"pause")});let n=Math.max(0,_t(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=$a(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ke(i,"play"),Tt(t.getTimelineRegistry?.(),i,c=>{typeof c.timeScale=="function"&&c.timeScale(t.getPlaybackRate()),ke(c,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ka(t.getTimelineRegistry?.(),n),kr(n,e,i)):ut(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>_t(t.getTimeline(),"time",0),getDuration:()=>_t(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Dr(){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 Ja=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Zn(t){return t.id||t.getAttribute("data-hf-id")||null}function Qn(t){if(t==null)return null;let e=Number(t);return Number.isFinite(e)?e:null}function Ya(t,e){let n=t.getAttribute("data-composition-id");if(!n)return null;let i=Number(e[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Xa(t){if(!(t instanceof HTMLMediaElement)||!Number.isFinite(t.duration))return null;let e=Qn(t.getAttribute("data-playback-start"))??Qn(t.getAttribute("data-media-start"))??0;return t.duration>e?t.duration-e:null}function Qa(t,e,n,i){let r=Qn(t.getAttribute("data-duration"));return r!=null&&r>0?r:Ya(t,e)??Xa(t)??Math.max(0,n-i)}function Za(t){for(let[e,n]of t){let i=e.parentElement;for(;i;){let r=t.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Ir(t){let{startResolver:e,timelineRegistry:n,rootDuration:i}=t,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let c of document.querySelectorAll("[data-start]")){if(c===o||Ja.has(c.tagName))continue;let a=e.resolveStartForElement(c,0);if(Qa(c,n,i,a)<=0)continue;let l={id:Zn(c)??`__clip-${s++}`,element:c,parentId:null,children:[]};r.set(c,l)}return Za(r),{roots:Array.from(r.values()).filter(c=>c.parentId===null)}}var el="data-hf-authored-duration",tl="data-hf-authored-end";function it(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function nl(t){return it(t.getAttribute("data-duration"))}function il(t){return it(t.getAttribute("data-end"))}function rl(t){return it(t.getAttribute(el))}function ol(t){return it(t.getAttribute(tl))}function sl(t){let e=(t??"").trim();if(!e)return null;let n=it(e);if(n!=null)return{kind:"absolute",value:n};let i=e.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",c=Number.parseFloat(s),a=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}function ze(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},c=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,g=nl(u)??(n?rl(u):null);if(g!=null&&g>0&&(f=g),f==null||f<=0){let A=il(u)??(n?ol(u):null);if(A!=null){let y=l(u,0),x=A-y;Number.isFinite(x)&&x>0&&(f=x)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let A=it(u.getAttribute("data-playback-start"))??it(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>A&&(f=(u.duration-A)/Nt(u))}if(f==null||f<=0){let A=u.getAttribute("data-composition-id");if(A){let y=e[A]??null;if(y&&typeof y.duration=="function")try{let x=Number(y.duration());Number.isFinite(x)&&x>0&&(f=x)}catch(x){v("runtime.startResolver.site1",x)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let g=u.parentElement?.closest("[data-composition-id]");return g?l(g,m):0}let f=u.closest("[data-composition-id]");return f?l(f,m):0},l=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let g=sl(u.getAttribute("data-start"));if(!g){if(u.hasAttribute("data-composition-id")){let N=u.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id"))){let L=l(N,m);return i.set(u,L),L}}return i.set(u,m),m}if(g.kind==="absolute"){let N=Math.max(0,g.value),L=Math.max(0,a(u,m)+N);return i.set(u,L),L}let A=s(g.refId);if(!A)return i.set(u,m),m;let y=l(A,0),x=c(A);if(x==null||x<=0){let N=Math.max(0,y+g.offset);return i.set(u,N),N}let w=Math.max(0,y+x+g.offset);return i.set(u,w),w}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>l(u,Math.max(0,m)),resolveDurationForElement:u=>c(u)}}function ei(t){let e=t.trim().toLowerCase();return!(!e||e==="main"||e.includes("caption")||e.includes("ambient"))}var al="data-hf-authored-duration",ll="data-hf-authored-end";function Ce(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ti(t){return Ce(t.getAttribute("data-duration"))??Ce(t.getAttribute(al))}function Pr(t){return Ce(t.getAttribute("data-end"))??Ce(t.getAttribute(ll))}function ni(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Or={composition:0,video:1,image:2,element:3,audio:4};function ul(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let a=[...c].sort((l,u)=>(Or[l]??99)-(Or[u]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,a=r.get(c);a!=null&&(s.track=a)}}function vt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Br(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return vt(e);let n=t.getAttribute("data-composition-src");if(n)return vt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?vt(i.getAttribute("src")):null}function cl(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function dl(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function fl(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function Lt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function ml(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return Lt(r);let o=t.id;if(o)return Lt(o);let s=cl(t);if(s)return Lt(s);let c=dl(Br(t));if(c)return Lt(c);let a=fl(t);return a||`${Lt(e)} ${n+1}`}function Hr(t){let n=window.__timelines??{},i=ze({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 W=Number(D.duration());return Number.isFinite(W)&&W>0?W:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let W=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>W?Math.max(0,(O.duration-W)/Nt(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 W of O){let Q=W.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(W,0):Math.max(0,Number(W.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(W);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},c=(O,D)=>{let W=[],Q=null,ae=null,q=null,z=O.parentElement;for(;z;){let X=z.getAttribute("data-composition-id");X&&(W.push(X),!q&&z!==D&&(q=X),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(X)??null)),z=z.parentElement}return{parentCompositionId:q,compositionAncestors:W.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),u=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,f=s(),g=f!=null?Math.max(0,f-Math.max(0,m)):null,A=r(u),y=ti(a??document.body),x=ni(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),W=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||W==null||W<=0?null:Math.max(0,D)+W})),w=x!=null?Math.max(0,x-Math.max(0,m)):null,N=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,L=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,$=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,B=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,_=ni($,B),S=N!=null&&_!=null&&N>_+1,F=L??(S?_:ni(N,$,B))??null,k=(F!=null?m+F:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),G=(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=[],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 W=c(D,a),Q=i.resolveStartForElement(D,W.inheritedStart??0),ae=D.getAttribute("data-composition-id"),q=ti(D);if((q==null||q<=0)&&ae&&ae!==u&&(q=r(ae)),(q==null||q<=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&&(q=Math.max(0,D.duration-Me))}if(q==null||q<=0){let Me=W.inheritedDuration;if(Me!=null&&Me>0){let He=(W.inheritedStart??0)+Me;q=Math.max(0,He-Q)}}if(q==null||q<=0||(q=G(Q,q),q<=0))continue;let z=Q+q;se=Math.max(se,z);let X=D.tagName.toLowerCase(),Ie=ae&&ae!==u?"composition":X==="video"?"video":X==="audio"?"audio":X==="img"?"image":"element";j.push({id:Zn(D)??ae??null,label:ml(D,Ie,j.length),start:Q,duration:q,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Ie,tagName:X,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:W.compositionAncestors,parentCompositionId:W.parentCompositionId,nodePath:null,compositionSrc:vt(D.getAttribute("data-composition-src")),assetUrl:Br(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 Se=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)??[],W=new Map;for(let q of a.children){let z=q;if(!z.id)continue;let X=z.tagName.toLowerCase();X==="script"||X==="style"||X==="link"||W.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=q=>{let z=q;for(;z;){if(W.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let q of D){if(typeof q.targets!="function"||typeof q.startTime!="function"||typeof q.duration!="function")continue;let z=q.startTime(),X=q.parent;for(;X&&X!==U&&typeof X.startTime=="function";)z+=X.startTime(),X=X.parent;let Ie=z+q.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Ie)))for(let Me of q.targets()){if(!(Me instanceof Element))continue;let bt=Q(Me);if(!bt)continue;let He=W.get(bt);He&&(He.start=Math.min(He.start,z),He.end=Math.max(He.end,Ie))}}let ae=j.length>0?Math.max(...j.map(q=>q.track))+1:0;for(let[q,z]of W){if(z.start===1/0||z.end===-1/0)continue;let X=q;if(Se.has(X.id))continue;let Ie=Math.max(0,z.end-z.start);if(Ie<=0)continue;let Me=G(z.start,Ie);Me<=0||(se=Math.max(se,z.start+Me),j.push({id:X.id,label:X.getAttribute("data-timeline-label")??X.getAttribute("data-label")??X.getAttribute("aria-label")??X.id,start:z.start,duration:Me,track:Number.parseInt(X.getAttribute("data-track-index")??X.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:X.tagName.toLowerCase(),compositionId:X.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:X.getAttribute("data-timeline-role"),timelineLabel:X.getAttribute("data-timeline-label"),timelineGroup:X.getAttribute("data-timeline-group"),timelinePriority:Ce(X.getAttribute("data-timeline-priority"))}),Se.add(X.id))}}catch(D){v("runtime.timeline.site1",D)}}if(a&&F!=null&&F>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let W=D;if(!W.id||Se.has(W.id))continue;let Q=W.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=W.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(W).display==="none")continue;let z=G(0,F);z<=0||(se=Math.max(se,z),j.push({id:W.id,label:W.getAttribute("data-timeline-label")??W.getAttribute("data-label")??W.getAttribute("aria-label")??W.id,start:0,duration:z,track:Number.parseInt(W.getAttribute("data-track-index")??W.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:W.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:W.getAttribute("data-timeline-label"),timelineGroup:W.getAttribute("data-timeline-group"),timelinePriority:Ce(W.getAttribute("data-timeline-priority"))}),Se.add(W.id))}}ul(j);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ei(D))continue;let W=i.resolveStartForElement(O,0),Q=ti(O);if((Q==null||Q<=0)&&Pr(O)!=null){let X=Pr(O);Q=Math.max(0,X-W)}let ae=r(D),q=Q&&Q>0?Q:ae;if(q==null||q<=0)continue;let z=G(W,q);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:W,duration:z,thumbnailUrl:vt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,F??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&L==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,t.canonicalFps))),clips:j,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=Da(ds(),1),fs=ce.default,lp=ce.default.stringify,up=ce.default.fromJSON,cp=ce.default.plugin,dp=ce.default.parse,fp=ce.default.list,mp=ce.default.document,pp=ce.default.comment,hp=ce.default.atRule,xp=ce.default.rule,gp=ce.default.decl,yp=ce.default.root,bp=ce.default.CssSyntaxError,Sp=ce.default.Declaration,Ap=ce.default.Container,Ep=ce.default.Processor,wp=ce.default.Document,Cp=ce.default.Comment,Fp=ce.default.Warning,Mp=ce.default.AtRule,Np=ce.default.Result,_p=ce.default.Input,Tp=ce.default.Rule,Lp=ce.default.Root,vp=ce.default.Node;var _i="data-hf-authored-id";function Ti(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Li(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Iu(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function ms(t){let e=t.trim();return e?Array.from(new Set([e,Iu(e)])).filter(Boolean):[]}function Pu(t){return!!t&&/[\\w-]/.test(t)}function Ou(t,e,n){let i=ms(e).sort((c,a)=>a.length-c.length);if(i.length===0)return t;let r="",o=0,s=null;for(let c=0;c<t.length;c+=1){let a=t[c],l=c>0?t[c-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 u=i.find(m=>t.startsWith(m,c+1));if(u){let m=t[c+1+u.length];if(!Pu(m)){r+=n,c+=u.length;continue}}}r+=a}return r}function Bu(t,e){let n=e?.trim();return n?Ou(t,n,`[${_i}="${Li(n)}"]`):t}function Hu(t,e,n,i,r){let o=Bu(t,i),s=Wu(o,e,n),c=s.trim();if(!c||/^(html|body|:root|\\*)$/i.test(c))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Ti(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(c))return s.replace(a,e);let l=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${_i}="${Li(i)}"]`:null;if(m&&c.startsWith(m)){let f=c.slice(m.length);return`${l}${e}${m}${f}${u}`}}return`${l}${e} ${c}${u}`}function Wu(t,e,n){let i=Ti(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 t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Gu=new Set(["keyframes","-webkit-keyframes","font-face"]);function Uu(t){return t?.type==="atrule"}function Vu(t){let e=t.parent;for(;e;){if(Uu(e)&&Gu.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vi(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Li(o)}"]`,c=fs.parse(t);return c.walkRules(a=>{Vu(a)||(a.selectors=a.selectors.map(l=>Hu(l,s,o,i,r?.compoundAuthoredRoot)))}),c.toResult({map:!1}).css}function ps(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),c=JSON.stringify(r),a=JSON.stringify(n),l=Ti(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),g=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),A=JSON.stringify(ms(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${c};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(_i)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${A};\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 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${t.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 hs(){if(typeof document>"u")return{};let t=ki(document.documentElement),e=zu();return{...t,...e}}function ki(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}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 zu(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var ju=8e3,qu=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,$u=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ku=["src","href"];function Ju(t){return!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")||t.startsWith("#")||t.startsWith("/")}function gs(t,e){if(!e)return t;let n=t.trim();if(Ju(n)||!n.startsWith("../")&&n!=="..")return t;try{return new URL(n,e).href}catch{return t}}function ys(t,e){return!e||!t?t:t.replace($u,(n,i,r)=>{let o=gs(r||"",e);return o===r?n:`url(${i||""}${o}${i||""})`})}function Yu(t,e){for(let n of Array.from(t.querySelectorAll("[src], [href]")))for(let i of Ku){let r=n.getAttribute(i);if(r==null)continue;let o=gs(r,e);o!==r&&n.setAttribute(i,o)}}function Xu(t,e){for(let n of Array.from(t.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=ys(i,e);r!==i&&n.setAttribute("style",r)}}function Qu(t,e){for(let n of Array.from(t.querySelectorAll("style"))){let i=n.textContent||"",r=ys(i,e);r!==i&&(n.textContent=r)}}function bs(t,e){if(e){Yu(t,e),Xu(t,e),Qu(t,e);for(let n of Array.from(t.querySelectorAll("template")))bs(n.content,e)}}function Zu(t,e){return`${t}__hf${e}`}var ec=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),ju)});function Ri(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var tc=["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 nc(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of tc)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function xs(t,e){let n=t.trim();if(!n)return t;try{return qu.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function ic(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Fn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function rc(t){let e=new Map;for(let n of t){let i=Fn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function Ss(t){let e=Fn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function oc(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function sc(t){return t.hasAttribute("data-composition-src")?!0:Ss(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:oc(t):!1}function Ii(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:Ss(e))}function As(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(Ii().map(n=>Fn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function Es(t,e=rc(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=Fn(r),c=sc(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,l=s||o;if(c){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),l=a?Zu(o,u):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 Di(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(g=>g.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let g=f.getAttribute("href")||"";g&&(document.head.querySelector(`link[href="${CSS.escape(g)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let c=Array.from(n.querySelectorAll("style"));for(let f of c){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let a=[];if(t.headScripts)for(let f of t.headScripts){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);a.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of l){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=xs(A,t.compositionUrl);u.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&u.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),g=e.getAttribute("data-height"),A=t.parseDimensionPx(f),y=t.parseDimensionPx(g);f&&t.host.setAttribute("data-width",f),g&&t.host.setAttribute("data-height",g),A&&t.host instanceof HTMLElement&&(t.host.style.width=A),y&&t.host instanceof HTMLElement&&(t.host.style.height=y),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(nc(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...ic(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let g=document.createElement("script");if(f.type&&(g.type=f.type),g.async=!1,f.kind==="external"?g.src=f.src:f.type.toLowerCase()==="module"?g.textContent=f.content:f.scopeCompositionId?g.textContent=ps(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):g.textContent=`(function(){${f.content}})();`,document.body.appendChild(g),t.injectedScripts.push(g),f.kind==="external"){let A=await ec(g);A.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:A.status,elapsedMs:A.elapsedMs}})}}}async function ws(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.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 c=document.querySelector(`template#${CSS.escape(s)}-template`);Ri(r),await Di({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Cs(t){let e=Ii();if(As(),e.length===0)return;let n=Es(e),i=e.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),c=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||c||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}Ri(r);try{let u=c!=null?document.querySelector(`template#${CSS.escape(c)}-template`):null;if(u){await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),A=new DOMParser().parseFromString(f,"text/html");bs(A,l);let y=(c?A.querySelector(`template#${CSS.escape(c)}-template`):null)??A.querySelector("template"),x=y?y.content:A.body,w=y?void 0:Array.from(A.head.querySelectorAll("style")),N=y?void 0:Array.from(A.head.querySelectorAll("script")),L=y?void 0:Array.from(A.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:A.body.innerHTML,compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:w,headScripts:N,headLinks:L,declaredVariableDefaults:ki(A.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),Ri(r)}}))}function ac(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function lc(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)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&&t.push(r)}return t}function uc(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Pi(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=lc();for(let i of e){let r=null;if(i.wordId&&(r=ac(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=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===l?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=uc(r);t.set(c,o)}}}).catch(()=>{})}var Xt="data-color-grading",cc="rec709",Je={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,saturation:0},Fs=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","saturation"],dc=[{id:"neutral",label:"Neutral",adjust:{...Je}},{id:"warm-clean",label:"Warm Clean",adjust:{...Je,exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,saturation:.06}},{id:"cool-clean",label:"Cool Clean",adjust:{...Je,contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}},{id:"soft-boost",label:"Soft Boost",adjust:{...Je,exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,saturation:.1}},{id:"bright-pop",label:"Bright Pop",adjust:{...Je,exposure:.12,contrast:.12,whites:.08,blacks:-.04,saturation:.14}},{id:"deep-contrast",label:"Deep Contrast",adjust:{...Je,exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}}],fc=new Map(dc.map(t=>[t.id,t])),mc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,pc={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},saturation:{min:-1,max:1}};function Yt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function hc(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function Ms(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function xc(t,e){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n))return 0;let i=pc[e];return hc(n,i.min,i.max)}function gc(t){if(t==null)return null;let e=String(t).trim();return e||null}function yc(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!Yt(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:Ms(t.intensity,1)}}function bc(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return Yt(n)?n:null}catch{return null}return{preset:e,intensity:1}}return Yt(t)?t:null}function Sc(t,e){let n=t.trim().match(mc);if(!n)return t;let i=n[1]??n[2]??"";return i&&Object.hasOwn(e,i)?e[i]:t}function Oi(t,e){if(typeof t=="string"){let i=Sc(t,e);if(i!==t)return i;let r=t.trim();if(!r.startsWith("{"))return t;try{return Oi(JSON.parse(r),e)}catch{return t}}if(!Yt(t))return t;let n={};for(let[i,r]of Object.entries(t))n[i]=Oi(r,e);return n}function Ac(t){return t?fc.get(t)??null:null}function Bi(t){let e=bc(t);if(!e||e.enabled===!1)return null;let n=gc(e.preset),r=Ac(n)?.adjust??Je,o=Yt(e.adjust)?e.adjust:{},s=Fs.reduce((c,a)=>(c[a]=xc(o[a]??r[a],a),c),{...Je});return{enabled:!0,preset:n,intensity:Ms(e.intensity,1),adjust:s,lut:yc(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():cc}}function Ns(t,e){return Bi(Oi(t,e))}function Qt(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:Fs.some(e=>Math.abs(t.adjust[e])>1e-4)}var we=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},Ec=[0,0,0],wc=[1,1,1],Cc=64;function Fc(t){let e=!1;for(let n=0;n<t.length;n++){let i=t[n];if(i===\'"\'&&(e=!e),i==="#"&&!e)return t.slice(0,n)}return t}function ht(t,e){let n=Number(t);if(!Number.isFinite(n))throw new we(`Invalid number "${t}"`,e);return n}function _s(t,e,n){if(t.length!==3)throw new we(`${e} expects three numbers`,n);return[ht(t[0],n),ht(t[1],n),ht(t[2],n)]}function Ts(t,e,n){if(!t)throw new we(`${e} expects a size`,n);let i=Number(t);if(!Number.isInteger(i)||i<2)throw new we(`${e} must be an integer greater than 1`,n);return i}function Mc(t,e){if(e[0]<=t[0]||e[1]<=t[1]||e[2]<=t[2])throw new we("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function Nc(t){let e=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(t);if(e)return e[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(t);return n&&(n[1]??"").trim()||null}function _c(t){return/^[+-]?(?:\\d|\\.\\d)/.test(t)}function Ls(t,e={}){let n=e.maxSize??Cc,i=null,r=Ec,o=wc,s=null,c=null,a=[],l=t.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,g=Fc(l[m]??"").trim();if(!g)continue;let A=g.split(/\\s+/),y=(A[0]??"").toUpperCase(),x=A.slice(1);if(y==="TITLE"){i=Nc(g);continue}if(y==="DOMAIN_MIN"){r=_s(x,y,f);continue}if(y==="DOMAIN_MAX"){o=_s(x,y,f);continue}if(y==="LUT_1D_SIZE"){s=Ts(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(c=Ts(x[0],y,f),c>n)throw new we(`LUT_3D_SIZE ${c} exceeds max ${n}`,f);continue}if(!_c(y)){if(y.startsWith("LUT_"))throw new we(`Unsupported cube keyword ${y}`,f);continue}if(!c)throw s?new we("1D cube LUTs are not supported yet",f):new we("LUT data appears before LUT_3D_SIZE",f);if(A.length!==3)throw new we("LUT data rows must contain three numbers",f);a.push(ht(A[0],f),ht(A[1],f),ht(A[2],f))}if(s&&c)throw new we("Mixed 1D and 3D cube LUTs are not supported yet");if(!c)throw s?new we("1D cube LUTs are not supported yet"):new we("Missing LUT_3D_SIZE");Mc(r,o);let u=c*c*c;if(a.length!==u*3)throw new we(`Expected ${u} LUT rows for size ${c}, found ${a.length/3}`);return{title:i,size:c,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Tc(t){return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Hi(t){return Math.round(Tc(t)*255)}function vs(t){let e=t.size,n=e*e,i=e,r=new Uint8Array(n*i*4);for(let o=0;o<e;o++)for(let s=0;s<e;s++)for(let c=0;c<e;c++){let a=((o*e+s)*e+c)*3,l=(s*n+o*e+c)*4;r[l]=Hi(t.data[a]??0),r[l+1]=Hi(t.data[a+1]??0),r[l+2]=Hi(t.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var Mn=new Map,Lc="data-hf-color-grading-canvas",Ps="data-hf-color-grading-source-hidden",vc="__hf_color_grading_canvas__",kc=64,Zt={enabled:!1,position:.5,softness:0,lineWidth:2};function Rc(t){let e=window,i=t.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?e.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=e.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:e.__hfVariables??{}}function Wi(t){let e=t.getAttribute(Xt);return e==null?null:Ns(e,Rc(t))}var Dc=["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`),Ic=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","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_saturation;","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)); }","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 sampleColor = texture2D(u_source, uv);"," vec3 original = sampleColor.rgb;"," vec3 color = original * 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;"," color += u_blacks * 0.25 * (1.0 - smoothstep(0.0, 0.35, y));"," color += u_whites * 0.25 * smoothstep(0.65, 1.0, y);"," 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);"," 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);"," 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`);function st(t){return t instanceof HTMLVideoElement||t instanceof HTMLImageElement}function ks(t,e,n){let i=t.createShader(n);return i?(t.shaderSource(i,e),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:(v("runtime.colorGrading.compileShader",t.getShaderInfoLog(i)),t.deleteShader(i),null)):null}function Pc(t){let e=ks(t,Dc,t.VERTEX_SHADER),n=ks(t,Ic,t.FRAGMENT_SHADER);if(!e||!n)return e&&t.deleteShader(e),n&&t.deleteShader(n),null;let i=t.createProgram();return i?(t.attachShader(i,e),t.attachShader(i,n),t.linkProgram(i),t.deleteShader(e),t.deleteShader(n),t.getProgramParameter(i,t.LINK_STATUS)?i:(v("runtime.colorGrading.linkProgram",t.getProgramInfoLog(i)),t.deleteProgram(i),null)):null}function Rs(t,e=t.LINEAR){let n=t.createTexture();return n?(t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),n):null}function Oc(t){let e=t.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!e)return null;let n=Pc(e),i=Rs(e),r=Rs(e,e.NEAREST);if(!n||!i||!r)return n&&e.deleteProgram(n),i&&e.deleteTexture(i),r&&e.deleteTexture(r),null;let o=e.createBuffer();return o?(e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),{gl:e,program:{program:n,texture:i,lutTexture:r,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),lut:e.getUniformLocation(n,"u_lut"),resolution:e.getUniformLocation(n,"u_resolution"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),lutEnabled:e.getUniformLocation(n,"u_lutEnabled"),lutSize:e.getUniformLocation(n,"u_lutSize"),lutTextureSize:e.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:e.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:e.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:e.getUniformLocation(n,"u_lutIntensity"),exposure:e.getUniformLocation(n,"u_exposure"),contrast:e.getUniformLocation(n,"u_contrast"),highlights:e.getUniformLocation(n,"u_highlights"),shadows:e.getUniformLocation(n,"u_shadows"),whites:e.getUniformLocation(n,"u_whites"),blacks:e.getUniformLocation(n,"u_blacks"),temperature:e.getUniformLocation(n,"u_temperature"),tint:e.getUniformLocation(n,"u_tint"),saturation:e.getUniformLocation(n,"u_saturation"),intensity:e.getUniformLocation(n,"u_intensity"),compareEnabled:e.getUniformLocation(n,"u_compareEnabled"),comparePosition:e.getUniformLocation(n,"u_comparePosition"),compareSoftness:e.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:e.getUniformLocation(n,"u_compareLineWidth")}}):(e.deleteProgram(n),e.deleteTexture(i),e.deleteTexture(r),null)}function Bc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Hc(t){if(!Bc(t))return{...Zt};let e=(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:t.enabled===!0,position:e(t.position,Zt.position,0,1),softness:e(t.softness,Zt.softness,0,.25),lineWidth:e(t.lineWidth,Zt.lineWidth,0,12)}}function Os(t){try{let e=new URL(t,document.baseURI);return e.protocol==="data:"?{href:e.href}:e.protocol!=="http:"&&e.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:e.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:e.href}}catch{return{error:"Invalid LUT URL"}}}function Ui(t){return t instanceof Error?t.message:"LUT failed to load"}function Wc(t){let e=Os(t);if("error"in e)return{state:"error",message:e.error};let n=Mn.get(e.href);if(n)return n;let i=fetch(e.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>Ls(o,{maxSize:kc})),r={state:"pending",promise:i};return Mn.set(e.href,r),i.then(o=>Mn.set(e.href,{state:"ready",lut:o}),o=>Mn.set(e.href,{state:"error",message:Ui(o)})),r}function Ds(t,e,n){if(t.lut?.src===e)return t.lut;let i=vs(n),{gl:r,program:o}=t;try{return r.activeTexture(r.TEXTURE1),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),t.lut={src:e,title:n.title,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},t.lutError=null,t.lutLoadingSrc=null,t.lut}catch(s){return t.lut=null,t.lutError=Ui(s),t.lutLoadingSrc=null,v("runtime.colorGrading.uploadLut",s),null}}function Gc(t){let e=t.grading.lut?.src.trim()??"",n=t.grading.lut?.intensity??1;if(!e||n<=0)return t.lut=null,t.lutLoadingSrc=null,t.lutError=null,null;let i=Os(e);if("error"in i)return t.lut=null,t.lutLoadingSrc=null,t.lutError=i.error,null;if(t.lut?.src===i.href)return t.lut;t.lut=null;let r=Wc(e);return r.state==="ready"?Ds(t,i.href,r.lut):r.state==="error"?(t.lutError=r.message,t.lutLoadingSrc=null,null):(t.lutLoadingSrc!==i.href&&(t.lutLoadingSrc=i.href,t.lutError=null,r.promise.then(o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(Ds(t,i.href,o),Ue(t))},o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(t.lut=null,t.lutError=Ui(o),t.lutLoadingSrc=null,Ue(t))})),null)}function Gi(t){if(!t)return null;if(typeof t=="string"){let e=t.trim();if(!e)return null;let n=document.getElementById(e.replace(/^#/,""));if(n&&st(n))return n;try{let i=document.querySelector(e);return i&&st(i)?i:null}catch{return null}}if(t.hfId){let e=document.querySelector(`[data-hf-id="${CSS.escape(t.hfId)}"]`);if(e&&st(e))return e}if(t.id){let e=document.getElementById(t.id);if(e&&st(e))return e}if(!t.selector)return null;try{let e=Array.from(document.querySelectorAll(t.selector)),n=Math.max(0,Math.floor(Number(t.selectorIndex??0)||0)),i=e[n]??null;return i&&st(i)?i:null}catch{return null}}function Uc(t){return t instanceof HTMLVideoElement?t.videoWidth>0&&t.videoHeight>0?{width:t.videoWidth,height:t.videoHeight}:null:t instanceof HTMLImageElement&&t.naturalWidth>0&&t.naturalHeight>0?{width:t.naturalWidth,height:t.naturalHeight}:null}function Bs(t){return t instanceof HTMLVideoElement?t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&t.videoWidth>0&&t.videoHeight>0:t instanceof HTMLImageElement?t.complete&&t.naturalWidth>0&&t.naturalHeight>0:!1}function Vc(t){if(!t.id)return null;let e=document.getElementById(`__render_frame_${t.id}__`);return e instanceof HTMLImageElement&&Bs(e)?e:null}function zc(t){if(t instanceof HTMLVideoElement){let e=Vc(t);if(e)return e}return Bs(t)?t:null}function Is(t,e){let n=t.toLowerCase();if(n==="center")return .5;if(e==="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 jc(t){let e=t.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<e.length;r++){let o=e[r]??"",s=Is(o,"x"),c=Is(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(c!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=c;continue}}return{x:n,y:i}}function qc(t,e,n,i,r,o){if(t<=0||e<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",c=t,a=e;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(t/n,e/i):Math.min(t/n,e/i);c=n*f,a=i*f,s==="scale-down"&&c>n&&a>i&&(c=n,a=i)}else s==="none"&&(c=n,a=i);let l=jc(o||"center"),u=(t-c)*l.x/t,m=(e-a)*l.y/e;return{scaleX:c/t,scaleY:a/e,offsetX:u,offsetY:m}}function $c(t,e){window.getComputedStyle(e).position==="static"&&(t.touchedParent||(t.touchedParent=e,t.parentInlinePosition=e.style.position||null),e.style.position="relative")}function Kc(t,e){let{element:n,canvas:i}=t,r=n.parentElement;r&&$c(t,r);let o=window.getComputedStyle(e);vr(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=t.sourceOpacityForCanvas,i.style.visibility=t.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),c=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return c<=0||a<=0?(i.style.display="none",null):(i.width!==c&&(i.width=c),i.height!==a&&(i.height=a),{width:c,height:a})}function Jc(t,e,n,i,r,o,s){t.uniform1i(e.source,0),t.uniform1i(e.lut,1),t.uniform2f(e.resolution,o.width,o.height),t.uniform2f(e.uvScale,s.scaleX,s.scaleY),t.uniform2f(e.uvOffset,s.offsetX,s.offsetY),t.uniform1f(e.lutEnabled,i?1:0),t.uniform1f(e.lutSize,i?.size??2),t.uniform2f(e.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),t.uniform3f(e.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),t.uniform3f(e.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),t.uniform1f(e.lutIntensity,n.lut?.intensity??0),t.uniform1f(e.exposure,n.adjust.exposure),t.uniform1f(e.contrast,n.adjust.contrast),t.uniform1f(e.highlights,n.adjust.highlights),t.uniform1f(e.shadows,n.adjust.shadows),t.uniform1f(e.whites,n.adjust.whites),t.uniform1f(e.blacks,n.adjust.blacks),t.uniform1f(e.temperature,n.adjust.temperature),t.uniform1f(e.tint,n.adjust.tint),t.uniform1f(e.saturation,n.adjust.saturation),t.uniform1f(e.intensity,n.intensity),t.uniform1f(e.compareEnabled,r.enabled?1:0),t.uniform1f(e.comparePosition,r.position),t.uniform1f(e.compareSoftness,r.softness),t.uniform1f(e.compareLineWidth,r.lineWidth)}function Yc(t){t.sourceHidden||(t.sourceInlineOpacity=t.element.style.getPropertyValue("opacity")||null,t.sourceInlineOpacityPriority=t.element.style.getPropertyPriority("opacity")),t.element.setAttribute(Ps,"true"),t.element.style.setProperty("opacity","0","important"),t.sourceHidden=!0}function Ue(t){if(t.destroyed)return!1;let e=zc(t.element);if(!e)return t.hasDrawn||(t.canvas.style.display="none"),!1;let n=Uc(e);if(!n)return!1;let i=e instanceof HTMLElement?e:t.element,r=t.element.style.getPropertyValue("opacity"),o=t.element.style.getPropertyPriority("opacity"),s=t.sourceHidden&&r==="0"&&o==="important",c=t.element.style.getPropertyValue("visibility");if(!s){let g=window.getComputedStyle(t.element);t.sourceOpacityForCanvas=g.opacity||"1",t.sourceVisibleForCanvas=c!=="hidden"&&g.visibility!=="hidden"}let a=Kc(t,i);if(!a)return!1;let l=window.getComputedStyle(i),u=qc(a.width,a.height,n.width,n.height,l.objectFit,l.objectPosition),{gl:m,program:f}=t;try{let g=Gc(t);return m.viewport(0,0,a.width,a.height),m.useProgram(f.program),m.activeTexture(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,f.texture),m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,!0),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,e),m.activeTexture(m.TEXTURE1),m.bindTexture(m.TEXTURE_2D,f.lutTexture),Jc(m,f,t.grading,g,t.compare,a,u),m.enableVertexAttribArray(f.position),m.vertexAttribPointer(f.position,2,m.FLOAT,!1,0,0),m.drawArrays(m.TRIANGLE_STRIP,0,4),Yc(t),t.hasDrawn=!0,!0}catch(g){return v("runtime.colorGrading.drawEntry",g),!1}}function Ye(t,e,n,i){e.addEventListener(n,i),t.cleanup.push(()=>e.removeEventListener(n,i))}function Xc(t){t.animationFrame!==null&&(window.cancelAnimationFrame(t.animationFrame),t.animationFrame=null),t.videoFrameHandle!==null&&t.element instanceof HTMLVideoElement&&(t.element.cancelVideoFrameCallback?.(t.videoFrameHandle),t.videoFrameHandle=null)}function en(t){if(t.destroyed||!(t.element instanceof HTMLVideoElement)||t.videoFrameHandle!==null||t.animationFrame!==null)return;let e=t.element,n=e;if(typeof n.requestVideoFrameCallback=="function"){t.videoFrameHandle=n.requestVideoFrameCallback(()=>{t.videoFrameHandle=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)});return}t.animationFrame=window.requestAnimationFrame(()=>{t.animationFrame=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)})}function Qc(t){let e=()=>{Ue(t)};Ye(t,t.element,"load",e),Ye(t,t.element,"loadedmetadata",e),Ye(t,t.element,"loadeddata",e),Ye(t,t.element,"seeked",e),Ye(t,t.element,"timeupdate",e),Ye(t,window,"resize",e),t.element instanceof HTMLVideoElement&&(Ye(t,t.element,"play",()=>en(t)),Ye(t,t.element,"pause",e)),typeof ResizeObserver<"u"&&(t.resizeObserver=new ResizeObserver(e),t.resizeObserver.observe(t.element))}function Zc(t){if(!t.destroyed){t.destroyed=!0,Xc(t),t.resizeObserver?.disconnect();for(let e of t.cleanup)e();if(t.cleanup.length=0,t.canvas.remove(),t.gl.deleteTexture(t.program.texture),t.gl.deleteTexture(t.program.lutTexture),t.gl.deleteProgram(t.program.program),t.sourceHidden){t.element.removeAttribute(Ps);let e=t.element.style.getPropertyValue("opacity"),n=t.element.style.getPropertyPriority("opacity");e==="0"&&n==="important"&&(t.sourceInlineOpacity===null?t.element.style.removeProperty("opacity"):t.element.style.setProperty("opacity",t.sourceInlineOpacity,t.sourceInlineOpacityPriority))}t.touchedParent&&(t.parentInlinePosition===null?t.touchedParent.style.removeProperty("position"):t.touchedParent.style.position=t.parentInlinePosition)}}function ed(t){let e=document.createElement("canvas");return e.className=vc,e.setAttribute(Lc,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function Hs(){let t=new WeakMap,e=new Set,n=null,i=!1,r=(y,x,w)=>{let N=t.get(y);if(N)return N.grading=x,N.source=w,Ue(N),y instanceof HTMLVideoElement&&!y.paused&&en(N),!0;let L=ed(y),$=Oc(L);if(!$)return L.remove(),!1;let B={element:y,canvas:L,gl:$.gl,program:$.program,grading:x,compare:{...Zt},lut:null,lutLoadingSrc:null,lutError:null,source:w,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,destroyed:!1};return t.set(y,B),e.add(y),Qc(B),Ue(B),y instanceof HTMLVideoElement&&!y.paused&&en(B),!0},o=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=t.get(w);if(!N){let L=Wi(w);if(!Qt(L)||!r(w,L,"attribute"))return!1;N=t.get(w)}return N?(N.compare=Hc(x),Ue(N),!0):!1},s=y=>{let x=t.get(y);x&&(Zc(x),t.delete(y),e.delete(y))},c=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${Xt}], img[${Xt}]`).forEach(w=>{if(!st(w))return;y.add(w);let N=Wi(w);Qt(N)?r(w,N,"attribute"):s(w)});for(let w of Array.from(e)){let N=t.get(w);N&&(!w.isConnected||N.source==="attribute"&&!y.has(w))&&s(w)}return e.size},a=()=>{if(i)return 0;let y=0;for(let x of Array.from(e,w=>t.get(w)))x&&Ue(x)&&(y+=1);return y},l=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=Bi(x);return Qt(N)?r(w,N,"live"):(s(w),!0)},u=(y,x)=>{if(!st(y))return!1;let w=t.get(y);return w?(w.sourceVisibleForCanvas=x,!0):!1},m=y=>{let x=Gi(y);if(!x)return{state:"missing",message:"Media not found"};let w=t.get(x);if(w)return w.lutError?{state:"unavailable",message:w.lutError}:w.grading.lut&&w.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:w.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:w.lut?"Shader + LUT active":"Shader active"};let N=Wi(x);return Qt(N)?{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(e))s(y)}};document.body&&(n=new MutationObserver(()=>c()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Xt]}));let g={refresh:c,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:u,getStatus:m,destroy:f},A=window;return A.__hf=A.__hf||{},A.__hf.colorGrading=g,c(),g}var Nn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.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 e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*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(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}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:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.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 Ws(t){return!Number.isFinite(t)||t<=0?1:t}function td(t,e){e||t.paused||!ln().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",t.currentSrc||t.getAttribute("src")||"")}function nd(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,c=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return c&&u<=0?!1:(c?t.start(0,n+i,u):t.start(0,n+i),!0)}let l=-n/o;return c?t.start(r+l,i,a):t.start(r+l,i),!0}var _n=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!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(e){let n=e.currentSrc||e.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 v("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return v("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),v("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,a=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let u=Ws(a),m=this._ctx.createBufferSource();m.buffer=n,m.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,m.connect(f),f.connect(this._masterGain);let g=o-i,A=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=A,this._rateAnchorComp=o,!nd(m,{elapsed:g,mediaStart:r,scheduledAt:A,safeRate:u,clipDuration:l}))return m.disconnect(),f.disconnect(),null;let y=e.muted;e.muted=!0,td(e,y);let x={el:e,sourceNode:m,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:A,priorMuted:y,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(x),this._paused=!1,m.addEventListener("ended",()=>{let w=this._activeSources.indexOf(x);w!==-1&&(this._activeSources.splice(w,1),e.muted=y,this._activeSources.length===0&&(this._paused=!0))}),x}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Ws(e);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){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(e){return!this._paused&&this._activeSources.some(n=>n.el===e)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Gs="data-hf-studio-manual-edit-gesture";var Vi="data-hf-authored-duration",zi="data-hf-authored-end";function id(){let t=window.__HF_EXPORT_RENDER_SEEK_CONFIG,e=t?.fps,n=t?.fpsSource,i=Number(e);return!t||e==null?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:e,fallbackReason:t.fpsFallbackReason}}function Us(){let t=Dr(),e=id();t.canonicalFps=e.fps??t.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:t.canonicalFps,source:e.source,rawFpsSource:e.rawFpsSource,rawFps:e.rawFps,fallbackReason:e.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,c=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}(()=>{let d=window.gsap,p=window;if(!(!d?.registerPlugin||p.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),p.__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 p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,p=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[p]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let u=l();u&&!u.hasAttribute("data-start")&&u.setAttribute("data-start","0");let m=d=>{o.push(d)},f=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;s.has(b)||(s.add(b),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},g=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],E={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:()=>p,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:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},A=1/60,y=.75,x=2,w=.05,N=100,L=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 p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},_=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},F=()=>{let d=S(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),E=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Vi)&&h.setAttribute(Vi,b),E!=null&&!h.hasAttribute(zi)&&h.setAttribute(zi,E),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 p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let E of b){let M=E.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let R=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",J=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(R&&J&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,nt=E.style.left,Ae=E.style.width,wt=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let ne=window.getComputedStyle(E);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(E.style.top=ye,E.style.left=nt,E.style.width=Ae,E.style.height=wt)}let K=window.getComputedStyle(E),me=K.position;if(me!=="absolute"&&me!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||K.left!=="auto"||K.right!=="auto"||(E.style.left="0"),M!=="audio"){let ye=_(E.getAttribute("data-width")),nt=_(E.getAttribute("data-height")),Ae=K.width!=="0px"&&K.width!=="auto",wt=K.height!=="0px"&&K.height!=="auto";ye?!E.style.width&&!Ae&&(E.style.width=ye):!E.style.width&&K.width==="0px"&&(E.style.width="100%"),nt?!E.style.height&&!wt&&(E.style.height=nt):!E.style.height&&K.height==="0px"&&(E.style.height="100%")}}},k=(d,p=0,h)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),G=(d,p)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+p:k(d,p),ie=(d,p)=>{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),E=G(d),M=d.getAttribute("data-composition-id");if(M){let J=(window.__timelines??{})[M],K=null;if(J&&typeof J.duration=="function"){let be=Number(J.duration());Number.isFinite(be)&&be>0&&(K=be)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(Vi)||d.hasAttribute(zi))&&(E==null||E<=0)&&K!=null&&(E=K)}let R=E!=null&&E>0?b+E:Number.POSITIVE_INFINITY;return p>=b&&(Number.isFinite(R)?p<=R:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Se=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>A,V=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;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},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let E=V(h);E==null||E<=A||(p=Math.max(p,Math.max(0,b)+E))}return p>A?p:null},Fe=()=>{let d=S();if(!d)return null;let p=window.__timelines??{},h=ze({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,E=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(E)&&E>0&&(b=E);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let R of M){if(!(R instanceof Element)||R.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(R,0),me=h.resolveDurationForElement(R);!Number.isFinite(K)||me==null||me<=0||(b=Math.max(b,Math.max(0,K)+me))}return b>A?b:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=A?null:d},D=d=>U(d)?Math.max(A,d*y):A,W=()=>{let d=0;for(let p of t.deterministicAdapters){let h=p.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(E){v("runtime.init.adapterDuration",E)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>A?d:null},Q=(d,p=0)=>{let h=H(d),b=O(),E=Fe(),M=W(),R=Math.max(b??0,E??0,M??0),J=Number.isFinite(p)&&p>A?p:0,K=0;return U(h)?K=Math.max(h,R,J):U(R)?K=Math.max(R,J):K=J,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},p=ne=>{let ee=Object.entries(d).filter(xe=>!!xe[1]&&typeof xe[1].play=="function"&&typeof xe[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=ze({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),E=Fe(),M=Math.max(b??0,E??0)||null,R=D(M),J=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=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,J(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){v("runtime.init.site2",ue)}let xe=pe;if(typeof xe.to=="function")try{xe.to({},{duration:ne})}catch(ue){v("runtime.init.site3",ue)}return pe},be=(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 xe=[];for(let ue of ee)if(!pe.some(ve=>ve===ue.timeline))try{let ve=J(ue.compositionId);ne.add(ue.timeline,ve),xe.push(ue.compositionId)}catch(ve){v("runtime.init.site4",ve)}return xe}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return p("root_missing_composition_id");let ye=d[Z]??null,Ae=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let xe=pe.getAttribute("data-composition-id");if(!xe||xe===Z||ne.has(xe))continue;ne.add(xe);let ue=d[xe]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Ne=H(ue);fe.push({compositionId:xe,timeline:ue,durationSeconds:Ne??0})}return fe})(),wt=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){v("runtime.init.site5",pe)}}};if(Ae.length>0&&wt(Ae),ye){let ne=Ae.length>0?be(ye,Ae):[];if((Ae.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(q=!0),ne.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&Ae.length>0){let ue=Ae.map(Ma=>Ma.compositionId),Ne=K(Ae),ve=H(Ne);if(Ne&&U(ve))return{timeline:Ne,selectedTimelineIds:ue,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:R,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Un=me(M??0,ye),Vn=H(Un);if(Un&&U(Vn))return{timeline:Un,selectedTimelineIds:[Z],selectedDurationSeconds:Vn,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Vn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&Ae.length===0){let ue=me(M??0,ye),Ne=H(ue);if(ue&&U(Ne))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Ne,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,xe=Math.max(U(pe)?pe:0,E??0);if(xe>0&&U(xe)&&U(ee)&&xe>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},xe)}catch(ve){v("runtime.init.site6",ve)}let Ne=H(ye);if(U(Ne))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:E,newDur:Ne}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(Ae.length>0){let ne=Ae.map(pe=>pe.compositionId),ee=K(Ae),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,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:ne}}}}return p("root_composition_id_unmatched_in_registry")},q=!1,z=()=>{if(!Se)return!1;let d=t.capturedTimeline,p=H(d),h=U(p);if(d&&h&&q)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let E=Q(t.capturedTimeline,0);if(E<=0&&typeof t.capturedTimeline.progress=="function"&&(t.capturedTimeline.progress(1,!0),t.capturedTimeline.progress(0,!1),t.capturedTimeline.pause()),E>0){try{I.setDuration(E)}catch{}if(typeof t.capturedTimeline.totalTime=="function"){typeof t.capturedTimeline.progress=="function"&&t.capturedTimeline.progress(1e-4,!0);let R=Math.max(0,t.currentTime||0);t.capturedTimeline.totalTime(R,!1),t.capturedTimeline.pause()}let M=window.__hfStudioManualEditsApply;typeof M=="function"&&M()}if(b.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=S(),R=E>0?E:0,J=String(R>0?R:1),K=new Set,me=new Set(document.querySelectorAll("[data-start]")),be=oe=>{let Z=oe.parentElement;for(;Z&&Z!==M;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(t.capturedTimeline.getChildren)try{for(let oe of t.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==M&&(Z.hasAttribute("data-start")||be(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",J),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(M instanceof HTMLElement)for(let oe of M.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||be(oe)||K.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(K.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",J),oe.setAttribute("data-hf-autostamped","1")))}for(let M of St)rn.delete(M),er(M);return!0};window.__hfForceTimelineRebind=()=>{q=!1,z()};let X=()=>{let d=S();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,R=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!R||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Ie=()=>{t.tornDown||(c!=null&&window.cancelAnimationFrame(c),c=window.requestAnimationFrame(()=>{c=null,X()}))},Me=()=>{i=d=>{let p=$(d.error??d.message).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let p=$(d.reason).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},bt=()=>{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 E=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,R=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(R,{tagName:E,assetUrl:M,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}:${E}:${M??"unknown"}`)};h.addEventListener("error",b),m(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).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(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},He=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),E=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),E&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Ze=null,Zi=!1,St=new Set,rn=new WeakMap,on=()=>{t.tornDown||(Ze!=null&&window.clearTimeout(Ze),Ze=window.setTimeout(()=>{if(t.tornDown)return;Ze=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){z()&&(at(),_e(!0));return}if(Zi)return;let h=H(t.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+w)&&He(d,"manual")&&(Zi=!0,Ee({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}}),at(),_e(!0))},N))},ha=()=>{for(let d of St)d.removeEventListener("loadedmetadata",on),d.removeEventListener("durationchange",on);St.clear()},Dn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(St.has(p))continue;St.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",on),p.addEventListener("durationchange",on),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),er(p)}},er=d=>{rn.has(d)||Nr(d,t.capturedTimeline,Q(t.capturedTimeline,0),rn)},In=new WeakMap,tr=d=>{let p=In.get(d);if(p!==void 0)return p;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return In.set(d,b),b},Pn=new WeakMap,xa=d=>{let p=Pn.get(d);if(p!==void 0)return p;let h=d.querySelector("[data-start]")===null;return Pn.set(d,h),h},ga=()=>{In=new WeakMap,Pn=new WeakMap},Le=()=>{let d=M=>{let R=M.closest("[data-composition-id]"),J=R?k(R,0):null,K=R?G(R,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:R,inheritedStart:J,inheritedDuration:K}},p=_r({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let R=d(M);return j(M,R.inheritedStart??0)},resolveDurationSeconds:M=>{let R=d(M),J=j(M,R.inheritedStart??0),K=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,me=R.inheritedStart!=null&&R.inheritedDuration!=null&&R.inheritedDuration>0?Math.max(0,R.inheritedStart+R.inheritedDuration-J):null,be=Number.isFinite(M.duration)&&M.duration>K?Math.max(0,M.duration-K):null,oe=Number.parseFloat(M.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,ye=[be,me,Z].filter(nt=>nt!=null);return ye.length>0?Math.min(...ye):null}});for(let M of p.mediaClips){let R=rn.get(M.el);R&&(M.volumeKeyframes=R)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),t.nativeMediaSyncDisabled||Tr({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||!t.webAudioMediaDisabled&&!t.nativeMediaSyncDisabled&&de.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(M,R)=>de.setElementVolume(M,R),isWebAudioOwned:M=>de.ownsElement(M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),E=S();for(let M of b){if(!(M instanceof HTMLElement))continue;let R=ie(M,t.currentTime);if(R){let J=M.parentElement;for(;J&&J!==E;){if(J instanceof HTMLElement&&J.hasAttribute("data-start")&&!ie(J,t.currentTime)){R=!1;break}J=J.parentElement}}M.style.visibility=R?"visible":"hidden",(M instanceof HTMLVideoElement||M instanceof HTMLImageElement)&&n?.setSourceVisibility(M,R),R?tr(M)&&M.style.removeProperty("display"):tr(M)&&xa(M)&&(M.style.display="none")}},_e=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},On="",ya=()=>{let d="";for(let p of document.querySelectorAll("[data-start]"))d+=`${p.id}:${p.tagName}|`;return d},at=()=>{F(),C(),T();let d=S();if(d){let b=_(d.getAttribute("data-width")),E=_(d.getAttribute("data-height")),M=b?parseInt(b,10):0,R=E?parseInt(E,10):0;M>0&&R>0&&Ee({source:"hf-preview",type:"stage-size",width:M,height:R})}z();let p=Hr({canonicalFps:t.canonicalFps});window.__clipManifest=p;let h=ya();if(On!==h&&ga(),!window.__clipTree||On!==h){let b=window;window.__clipTree=Ir({startResolver:ze({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:p.durationInFrames/t.canonicalFps}),On=h}Ee(p),Ie()},Pe=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){v("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){v("runtime.init.site9",b)}}},et=()=>{window.__renderReady=!1},At=null,Et=!0,ba=()=>{let d=[];for(let p of t.deterministicAdapters){let h=p.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){v("runtime.init.adapterReady",b)}}return d},Sa=()=>{let d=ba();if(d.length===0)return At=null,Et=!0,!0;let p=d.length===1?d[0]:Promise.all(d);return p!==At&&(At=p,Et=!1,Promise.resolve(p).then(()=>{At===p&&(Et=!0,et())},h=>{At===p&&(Et=!0,v("runtime.init.adapterReady",h),et())})),Et};if(Se)Pi();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:_,onDiagnostic:({code:p,details:h})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Cs(d).then(()=>ws(d)).finally(()=>{Se=!0,Dn(),bt(),Pi(),et()})}let sn=Lr({postMessage:d=>Ee(d)});sn.installPickerApi();let We=Hs();n=We,m(()=>{We.destroy(),n=null});let Bn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(E){v("runtime.init.site10",E)}},he=Rr({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:Bn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,Le()},onStatePost:_e,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){v("runtime.init.site11",h)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{We.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(t.capturedTimeline,0)});window.__player=g(he),window.__playerReady=!0,lr(Ee),Ct("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ar({onPlay:()=>{he.play(),Ct("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),Ct("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let p of d)p instanceof HTMLMediaElement&&!p.paused&&p.pause()},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;he.seek(h),Ct("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,de.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),E=Number.isFinite(b)?b:1;h.volume=E*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{t.nativeMediaSyncDisabled!==d&&(t.nativeMediaSyncDisabled=d,t.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{t.webAudioMediaDisabled!==d&&(t.webAudioMediaDisabled=d,t.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Bn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),or()},onSetColorGrading:(d,p)=>{We.setGrading(d,p)},onSetColorGradingCompare:(d,p)=>{We.setCompare(d,p)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,tt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0)}},onEnablePickMode:()=>sn.enablePickMode(),onDisablePickMode:()=>sn.disablePickMode()}),t.deterministicAdapters=[Fr(),ur({resolveStartSeconds:d=>k(d,0)}),dr(),mr(),hr(),xr(),gr(),yr(),br(),Sr(),Ar(),cr({getTimeline:()=>t.capturedTimeline})],wr(),Cr(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,pr(p)},Me(),Dn(),Pe("discover");let I=new Nn;t.transportClock=I;let de=new _n,Hn=!1;de.init().then(d=>{Hn=d});let Aa=()=>{let d=t.capturedTimeline,p=z();t.capturedTimeline&&(p||t.capturedTimeline!==d||!he._timeline)&&(he._timeline=t.capturedTimeline);let h=Q(t.capturedTimeline,0);if(h>0&&I.setDuration(h),Pe("discover",t.currentTime),!t.capturedTimeline){let b=window.__timelines??{},E=Object.keys(b).filter(M=>b[M]);if(E.length>0){let R=S()?.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:E},"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: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${R??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,at(),_e(!0)};if(et=()=>{if(!Se||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Pe("discover",t.currentTime),!Sa()){window.__renderReady=!1;return}Aa()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),et()};window.addEventListener("hf-timelines-built",d)}et(),Se&&setTimeout(()=>{et()},0);let an=0,Wn=!1,Ea=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){v(h,b)}},wa=d=>{let p=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[b,E]of Object.entries(p)){if(!E||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let R=k(M,0);if(!Number.isFinite(R))continue;let J=G(M,{includeAuthoredTimingAttrs:!0}),K=H(E),me=J!=null&&J>0?J:K,be=Math.max(0,me!=null&&me>0?Math.min(me,d-R):d-R);Ea(E,be,"runtime.init.transport.childTimeline")}},Ca=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){v("runtime.init.activateSiblings",b)}},tt=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&Ca(h);let b=h,E=d;if(typeof b.totalDuration=="function")try{let M=Number(b.totalDuration());Number.isFinite(M)&&M>0&&d>M&&(E=M)}catch(M){v("runtime.init.transport.clampDuration",M)}try{typeof h.totalTime=="function"?h.totalTime(E,!1):h.seek(E,!1)}catch(M){v("runtime.init.transport.seek",M)}}else wa(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(E){v("runtime.init.transport.adapter",E)}},Fa=()=>{try{return document.querySelector(`[${Gs}]`)!=null}catch{return!1}},nr=()=>{if(!(t.tornDown||Wn)){Wn=!0;try{if(t.transportRafId=window.requestAnimationFrame(nr),an+=1,an%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<x)){let h=t.capturedTimeline;if(z()){t.capturedTimeline&&!he._timeline&&(he._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=Q(t.capturedTimeline,0);b>0&&I.setDuration(b),at()}}if(an%20===0&&at(),an%30===0&&Dn(),t.capturedTimeline){let p=Q(t.capturedTimeline,0);p>0&&(!I.isPlaying()||p>=I.getDuration())&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&de.isActive()&&de.context){let p=de.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let E=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),R=Number.isFinite(M)&&M>0?E+M:1/0,J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(E)&&t.currentTime>=E&&t.currentTime<=R){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:E,mediaStart:J}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!Fa())&&tt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0);return}I.isPlaying()&&Le(),_e(!1)}finally{Wn=!1}}},ir=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(E)&&E>0?b+E:1/0;if(d<b||d>=M)continue;let R=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,J=d-b+R;if(J>=0)try{h.currentTime=J}catch{}}},rr=()=>{if(t.nativeMediaSyncDisabled||t.webAudioMediaDisabled)return;let d=de.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,M=Number.parseFloat(h.dataset.volume??""),R=Number.isFinite(M)?M:1,J=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(J)&&J>0?J:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let be=k(me,0),oe=G(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(K=Math.min(K,Math.max(0,be+oe-b)))}de.decodeAudioElement(h).then(be=>{!be||!I.isPlaying()||de.schedulePlayback(h,be,b,E,I.now(),R*t.bridgeVolume,d,t.playbackRate,K)})}},or=()=>{de.setRate(t.playbackRate)&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&Hn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),rr())};if(he.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Q(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,tt(0));else{let h=S(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,ir(I.now()),Hn&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&rr(),Pe("play"),Le(),We.redraw(),_e(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,ir(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),Le(),We.redraw(),_e(!0)},he.seek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),tt(t.currentTime),Pe("pause"),Le(),We.redraw(),_e(!0)},he.renderSeek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,tt(t.currentTime,{activateChildren:!0}),Le(),We.redraw(),_e(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{Bn(d),I.setRate(t.playbackRate),or()},t.capturedTimeline){let d=Q(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let sr=window.__player;if(sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(sr,p,{get:()=>he[p],set:h=>{he[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(nr),at(),_e(!0);let Gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,de.destroy(),Ze!=null&&(window.clearTimeout(Ze),Ze=null),c!=null&&(window.cancelAnimationFrame(c),c=null),ha(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),sn.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===Gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Gn,t.beforeUnloadHandler=Gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Vs=["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"],ji=[[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 rd(t){if(t<=255)return Vs[t];let e=0,n=ji.length-1;for(;e<=n;){let i=e+n>>1,r=ji[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function od(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let u=t.charCodeAt(l),m=u,f=1;if(u>=55296&&u<=56319&&l+1<e){let A=t.charCodeAt(l+1);A>=56320&&A<=57343&&(m=(u-55296<<10)+(A-56320)+65536,f=2)}let g=rd(m);(g==="R"||g==="AL"||g==="AN")&&(i=!0);for(let A=0;A<f;A++)n[l+A]=g;l+=f}if(!i)return null;let r=0;for(let l=0;l<e;l++){let u=n[l];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,a=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-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<e;l++){if(n[l]!=="EN")continue;let u;for(u=l-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=l+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let l=0;l<e;l++){let u=n[l];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[l]="ON")}a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let u=l+1;for(;u<e&&n[u]==="ON";)u++;let m=l>0?n[l-1]:c,f=u<e?n[u]:c,g=m!=="L"?"R":"L";if(g===(f!=="L"?"R":"L"))for(let y=l;y<u;y++)n[y]=g;l=u-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let u=n[l];(o[l]&1)===0?u==="R"?o[l]++:(u==="AN"||u==="EN")&&(o[l]+=2):(u==="L"||u==="AN"||u==="EN")&&o[l]++}return o}function zs(t,e){let n=od(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var sd=/[ \\t\\n\\r\\f]+/g,ad=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ld(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function ud(t){if(!ad.test(t))return t;let e=t.replace(sd," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function cd(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var qi=null,dd;function fd(){return qi===null&&(qi=new Intl.Segmenter(dd,{granularity:"word"})),qi}var md=/\\p{Script=Arabic}/u,Tn=/\\p{M}/u,Qs=/\\p{Nd}/u;function js(t){return md.test(t)}function qs(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function De(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(qs(r))return!0;e++;continue}}if(qs(n))return!0}}return!1}function pd(t){let e=kn(t);return e!==null&&(vn.has(e)||Xe.has(e))}var hd=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function xd(t){return De(t)}function gd(t){let e=kn(t);return e!==null&&hd.has(e)}function Ln(t){return!pd(t)&&!gd(t)}var vn=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"]),nn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ki=new Set(["\'","\\u2019"]),Xe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),yd=new Set([":",".","\\u060C","\\u061B"]),bd=new Set(["\\u104F"]),Sd=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ad(t){if(Ji(t))return!0;let e=!1;for(let n of t){if(Xe.has(n)){e=!0;continue}if(!(e&&Tn.test(n)))return!1}return e}function Ed(t){for(let e of t)if(!vn.has(e)&&!Xe.has(e))return!1;return t.length>0}function wd(t){if(Ji(t))return!0;for(let e of t)if(!nn.has(e)&&!Ki.has(e)&&!Tn.test(e))return!1;return t.length>0}function Ji(t){let e=!1;for(let n of t)if(!(n==="\\\\"||Tn.test(n))){if(nn.has(n)||Xe.has(n)||Ki.has(n)){e=!0;continue}return!1}return e}function Zs(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function kn(t){if(t.length===0)return null;let e=Zs(t,t.length);return t.slice(e)}function Cd(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(Tn.test(i)){n--;continue}if(nn.has(i)||Ki.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Fd(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function $s(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function Ks(t,e){return t&&e!==null&&yd.has(e)}function Md(t){let e=kn(t);return e!==null&&bd.has(e)}function Nd(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function Rn(t){let e=t.length;for(;e>0;){let n=Zs(t,e),i=t.slice(n,e);if(Sd.has(i))return!0;if(!Xe.has(i))return!1;e=n}return!1}function _d(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var Td=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function Ld(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function vd(t,e,n,i){if(!Td.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,a=!1,l=0;for(let u of t){let m=_d(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),l+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),o=m,s=[u],c=n+l,a=f,l+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),r}function $i(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var kd=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Rd(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:kd.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Dd(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Id(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Rd(t,s))continue;let c=[e[s]],a=s+1;for(;a<t.len&&!$i(i[a]);){c.push(e[a]),n[s]=!0;let l=e[a].includes("?");if(i[a]="text",e[a]="",a++,l)break}e[s]=Te(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Pd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Dd(s))continue;let c=o+1;if(c>=t.len||$i(t.kinds[c]))continue;let a=[],l=t.starts[c],u=c;for(;u<t.len&&!$i(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(l),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Od=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Js=/^[A-Za-z0-9_]+[,:;]*$/,Ys=/[,:;]+$/;function ea(t){for(let e of t)if(Qs.test(e))return!0;return!1}function tn(t){if(t.length===0)return!1;for(let e of t)if(!(Qs.test(e)||Od.has(e)))return!1;return!0}function Bd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&tn(s)&&ea(s)){let a=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&tn(t.texts[l]);)a.push(t.texts[l]),l++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Hd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],a=t.isWordLike[o];if(c==="text"&&a&&Js.test(s)){let l=[s],u=Ys.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Js.test(t.texts[m]);){let f=t.texts[m];l.push(f),u=Ys.test(f),m++}e.push(Te(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Wd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),a=c.length>1;for(let l=0;l<c.length;l++){let u=c[l];if(!a)break;(u.length===0||!ea(u)||!tn(u))&&(a=!1)}if(a){let l=0;for(let u=0;u<c.length;u++){let m=c[u],f=u<c.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Gd(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],a=t.kinds[o],l=t.starts[o];if(a==="glue"){let u=[s[0]],m=l;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),c=t.isWordLike[o],a="text",l=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(c),i.push(a),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ud(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!De(e[o])||!De(e[o+1]))continue;let s=Cd(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Xs(t,e,n){let i=fd(),r=0,o=[],s=[],c=[],a=[],l=[],u=[],m=[],f=[],g=[],A=[],y=[],x=[];for(let _ of i.segment(t))for(let S of vd(_.segment,_.isWordLike??!1,_.index,n)){let se=function(){u[P]!==null&&(s[P]=[$s(o,u,m,P)],u[P]=null),s[P].push(S.text),c[P]=c[P]||S.isWordLike,f[P]=f[P]||T,g[P]=g[P]||k,A[P]=j,y[P]=ie,x[P]=Ks(g[P],G)},C=S.kind==="text",F=Fd(S.text,S.isWordLike,S.kind),T=De(S.text),k=js(S.text),G=kn(S.text),j=Rn(S.text),ie=Md(S.text),P=r-1;e.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&A[P]||C&&r>0&&a[P]==="text"&&Ed(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&y[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&k&&x[P]?(se(),c[P]=!0):F!==null&&r>0&&a[P]==="text"&&u[P]===F?m[P]=(m[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(Ad(S.text)||S.text==="-"&&c[P])?se():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,u[r]=F,m[r]=F===null?0:1,f[r]=T,g[r]=k,A[r]=j,y[r]=ie,x[r]=Ks(k,G),r++)}for(let _=0;_<r;_++){if(u[_]!==null){o[_]=$s(o,u,m,_);continue}o[_]=Te(s[_])}for(let _=1;_<r;_++)a[_]==="text"&&!c[_]&&Ji(o[_])&&a[_-1]==="text"&&(o[_-1]+=o[_],c[_-1]=c[_-1]||c[_],o[_]="");let w=Array.from({length:r},()=>null),N=-1;for(let _=r-1;_>=0;_--){let S=o[_];if(S.length!==0){if(a[_]==="text"&&!c[_]&&wd(S)&&N>=0&&a[N]==="text"){let C=w[N]??[];C.push(S),w[N]=C,l[N]=l[_],o[_]="";continue}N=_}}for(let _=0;_<r;_++){let S=w[_];S!=null&&(o[_]=Ld(S,o[_]))}let L=0;for(let _=0;_<r;_++){let S=o[_];S.length!==0&&(L!==_&&(o[L]=S,c[L]=c[_],a[L]=a[_],l[L]=l[_]),L++)}o.length=L,c.length=L,a.length=L,l.length=L;let $=Gd({len:L,texts:o,isWordLike:c,kinds:a,starts:l}),B=Ud(Hd(Wd(Bd(Pd(Id($))))));for(let _=0;_<B.len-1;_++){let S=Nd(B.texts[_]);S!==null&&(B.kinds[_]!=="space"&&B.kinds[_]!=="preserved-space"||B.kinds[_+1]!=="text"||!js(B.texts[_+1])||(B.texts[_]=S.space,B.isWordLike[_]=!1,B.kinds[_]=B.kinds[_]==="preserved-space"?"preserved-space":"space",B.texts[_+1]=S.marks+B.texts[_+1],B.starts[_+1]=B.starts[_]+S.space.length))}return B}function Vd(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function zd(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,a=!1,l=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],g=t.kinds[m],A=t.isWordLike[m],y=t.starts[m];if(g==="text"){let x=xd(f),w=Ln(f);if(o!==null&&a&&l){o.push(f),s=s||A,a=a||x,l=w;continue}u(),o=[f],s=A,c=y,a=x,l=w;continue}u(),e.push(f),n.push(A),i.push(g),r.push(y)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ta(t,e,n="normal",i="normal"){let r=ld(n),o=r.mode==="pre-wrap"?cd(t):ud(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?zd(Xs(o,e,r)):Xs(o,e,r);return{normalized:o,chunks:Vd(s,r),...s}}var xt=null,na=new Map,gt=null,jd=96,qd=/\\p{Emoji_Presentation}/u,$d=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Yi=null,ia=new Map;function Xi(){if(xt!==null)return xt;if(typeof OffscreenCanvas<"u")return xt=new OffscreenCanvas(1,1).getContext("2d"),xt;if(typeof document<"u")return xt=document.createElement("canvas").getContext("2d"),xt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Kd(t){let e=na.get(t);return e||(e=new Map,na.set(t,e)),e}function Ve(t,e){let n=e.get(t);return n===void 0&&(n={width:Xi().measureText(t).width,containsCJK:De(t)},e.set(t,n)),n}function yt(){if(gt!==null)return gt;if(typeof navigator>"u")return gt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},gt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return gt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},gt}function Jd(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function ra(){return Yi===null&&(Yi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Yi}function Yd(t){return qd.test(t)||t.includes("\\uFE0F")}function oa(t){return $d.test(t)}function Xd(t,e){let n=ia.get(t);if(n!==void 0)return n;let i=Xi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,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 ia.set(t,n),n}function Qd(t){let e=0,n=ra();for(let i of n.segment(t))Yd(i.segment)&&e++;return e}function Zd(t,e){return e.emojiCount===void 0&&(e.emojiCount=Qd(t)),e.emojiCount}function Qe(t,e,n){return n===0?e.width:e.width-Zd(t,e)*n}function sa(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=ra(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Ve(m,n);u.push(Qe(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>jd){let u=[],m=null,f=0;for(let g of s){let A=Ve(g,n),y=Qe(g,A,i);if(m===null)u.push(y);else{let x=m+g,w=Ve(x,n);u.push(Qe(x,w,i)-f)}m=g,f=y}return e.breakableFitAdvances=u,e.breakableFitAdvances}let c=[],a="",l=0;for(let u of s){a+=u;let m=Ve(a,n),f=Qe(a,m,i);c.push(f-l),l=f}return e.breakableFitAdvances=c,e.breakableFitAdvances}function aa(t,e){let n=Xi();n.font=t;let i=Kd(t),r=Jd(t),o=e?Xd(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function ef(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function tf(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function nf(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function la(t,e){return t.simpleLineWalkFastPath?ua(t,e):ca(t,e)}function ua(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=yt().lineFitEpsilon,a=e+c,l=0,u=0,m=!1,f=0,g=0,A=0,y=0,x=-1,w=0;function N(){x=-1,w=0}function L(F=A,T=y,k=u){l++,n?.({startSegmentIndex:f,startGraphemeIndex:g,endSegmentIndex:F,endGraphemeIndex:T,width:k}),u=0,m=!1,N()}function $(F,T){m=!0,f=F,g=0,A=F+1,y=0,u=T}function B(F,T,k){m=!0,f=F,g=T,A=F,y=T+1,u=k}function _(F,T){if(!m){$(F,T);return}u+=T,A=F+1,y=0}function S(F,T){let k=o[F];for(let G=T;G<k.length;G++){let j=k[G];m?u+j>a?(L(),B(F,G,j)):(u+=j,A=F,y=G+1):B(F,G,j)}m&&A===F&&y===k.length&&(A=F+1,y=0)}let C=0;for(;C<i.length&&!(!m&&(C=ef(t,C),C>=i.length));){let F=i[C],T=r[C],k=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){F>e&&o[C]!==null?S(C,0):$(C,F),k&&(x=C+1,w=u-F),C++;continue}if(u+F>a){if(k){_(C,F),L(C+1,0,u-F),C++;continue}if(x>=0){if(A>x||A===x&&y>0){L();continue}L(x,0,w);continue}if(F>e&&o[C]!==null){L(),S(C,0),C++;continue}L();continue}_(C,F),k&&(x=C+1,w=u-F),C++}return m&&L(),l}function ca(t,e,n){if(t.simpleLineWalkFastPath)return ua(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=yt(),f=m.lineFitEpsilon,g=e+f,A=0,y=0,x=!1,w=0,N=0,L=0,$=0,B=-1,_=0,S=0,C=null;function F(){B=-1,_=0,S=0,C=null}function T(H=L,U=$,V=y){A++,n?.({startSegmentIndex:w,startGraphemeIndex:N,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,x=!1,F()}function k(H,U){x=!0,w=H,N=0,L=H+1,$=0,y=U}function G(H,U,V){x=!0,w=H,N=U,L=H,$=U+1,y=V}function j(H,U){if(!x){k(H,U);return}y+=U,L=H+1,$=0}function ie(H,U,V,re){if(!U)return;let Fe=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,_=y-re+Fe,S=y-re+O,C=H}function P(H,U){let V=c[H];for(let re=U;re<V.length;re++){let Fe=V[re];x?y+Fe>g?(T(),G(H,re,Fe)):(y+=Fe,L=H,$=re+1):G(H,re,Fe)}x&&L===H&&$===V.length&&(L=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=c[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=nf(U,y,e,f,a);return V===0?!1:(y=re,L=H,$=V,F(),V===U.length?(L=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Se(H){A++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),F()}for(let H=0;H<u.length;H++){let U=u[H];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}x=!1,y=0,w=U.startSegmentIndex,N=0,L=U.startSegmentIndex,$=0,F();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],Fe=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?tf(y,l):i[V];if(re==="soft-hyphen"){x&&(L=V+1,$=0,B=V+1,_=y+a,S=y+a,C=re),V++;continue}if(!x){O>e&&c[V]!==null?P(V,0):k(V,O),ie(re,Fe,V,O),V++;continue}if(y+O>g){let W=y+(re==="tab"?0:r[V]),Q=y+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&_<=g){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(Fe&&W<=g){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&_<=g){if(L>B||L===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>e&&c[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),ie(re,Fe,V,O),V++}if(x){let re=B===U.consumedEndSegmentIndex?S:y;T(U.consumedEndSegmentIndex,0,re)}}return A}var Qi=null;function rf(){return Qi===null&&(Qi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Qi}function of(t){return t?{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 sf(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(m,f,g){i=[m],r=f,o=g,s=Rn(m),c=nn.has(m)}function u(m,f){i.push(m),o=o||f;let g=Rn(m);m.length===1&&Xe.has(m)?s=s||g:s=g,c=!1}for(let m of rf().segment(t)){let f=m.segment,g=De(f);if(i.length===0){l(f,m.index,g);continue}if(c||vn.has(f)||Xe.has(f)||e.carryCJKAfterClosingQuote&&g&&s){u(f,g);continue}if(!o&&!g){u(f,g);continue}a(),l(f,m.index,g)}return a(),n}function af(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=De(t[0].text),o=Ln(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let a=t[c],l=De(a.text),u=Ln(a.text);if(r&&o){n.push(a.text),r=r||l,o=u;continue}s(),n=[a.text],i=a.start,r=l,o=u}return s(),e}function lf(t,e,n,i){let r=yt(),{cache:o,emojiCorrection:s}=aa(e,oa(t.normalized)),c=Qe("-",Ve("-",o),s),l=Qe(" ",Ve(" ",o),s)*8;if(t.len===0)return of(n);let u=[],m=[],f=[],g=[],A=t.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,N=Array.from({length:t.len});function L(S,C,F,T,k,G,j){k!=="text"&&k!=="space"&&k!=="zero-width-break"&&(A=!1),u.push(C),m.push(F),f.push(T),g.push(k),y?.push(G),x.push(j),w!==null&&w.push(S)}function $(S,C,F,T,k){let G=Ve(S,o),j=Qe(S,G,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:j,P=C==="space"||C==="zero-width-break"?0:j;if(k&&T&&S.length>1){let se="sum-graphemes";tn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Se=sa(S,G,o,s,se);L(S,j,ie,P,C,F,Se);return}L(S,j,ie,P,C,F,null)}for(let S=0;S<t.len;S++){N[S]=u.length;let C=t.texts[S],F=t.isWordLike[S],T=t.kinds[S],k=t.starts[S];if(T==="soft-hyphen"){L(C,0,c,c,T,k,null);continue}if(T==="hard-break"){L(C,0,0,0,T,k,null);continue}if(T==="tab"){L(C,0,0,0,T,k,null);continue}let G=Ve(C,o);if(T==="text"&&G.containsCJK){let j=sf(C,r),ie=i==="keep-all"?af(j):j;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",k+se.start,F,i==="keep-all"||!De(se.text))}continue}$(C,T,k,F,!0)}let B=uf(t.chunks,N,u.length),_=y===null?null:zs(t.normalized,y);return w!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B,segments:w}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B}}function uf(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:a})}return i}function cf(t,e,n,i){let r=i?.wordBreak??"normal",o=ta(t,yt(),i?.whiteSpace,r);return lf(o,e,n,r)}function da(t,e,n){return cf(t,e,!1,n)}function fa(t,e,n){let i=la(t,e);return{lineCount:i,height:i*n}}var df={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function ma(t,e){let n={...df,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=da(t,o),{lineCount:c}=fa(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:ma,getVariables:hs};function pa(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Us())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",pa,{once:!0}):pa();})();\n';
55970
+ RUNTIME_IIFE = '"use strict";(()=>{var _a=Object.create;var zn=Object.defineProperty;var Ta=Object.getOwnPropertyDescriptor;var La=Object.getOwnPropertyNames;var va=Object.getPrototypeOf,Ra=Object.prototype.hasOwnProperty;var ka=(t,e,n)=>e in t?zn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var te=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Da=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of La(e))!Ra.call(t,r)&&r!==n&&zn(t,r,{get:()=>e[r],enumerable:!(i=Ta(e,r))||i.enumerable});return t};var Ia=(t,e,n)=>(n=t!=null?_a(va(t)):{},Da(e||!t||!t.__esModule?zn(n,"default",{value:t,enumerable:!0}):n,t));var ge=(t,e,n)=>ka(t,typeof e!="symbol"?e+"":e,n);var Gr=te((Em,ii)=>{var Y=String,Wr=function(){return{isColorSupported:!1,reset:Y,bold:Y,dim:Y,italic:Y,underline:Y,inverse:Y,hidden:Y,strikethrough:Y,black:Y,red:Y,green:Y,yellow:Y,blue:Y,magenta:Y,cyan:Y,white:Y,gray:Y,bgBlack:Y,bgRed:Y,bgGreen:Y,bgYellow:Y,bgBlue:Y,bgMagenta:Y,bgCyan:Y,bgWhite:Y,blackBright:Y,redBright:Y,greenBright:Y,yellowBright:Y,blueBright:Y,magentaBright:Y,cyanBright:Y,whiteBright:Y,bgBlackBright:Y,bgRedBright:Y,bgGreenBright:Y,bgYellowBright:Y,bgBlueBright:Y,bgMagentaBright:Y,bgCyanBright:Y,bgWhiteBright:Y}};ii.exports=Wr();ii.exports.createColors=Wr});var ri=te(()=>{});var cn=te((Fm,zr)=>{"use strict";var Ur=Gr(),Vr=ri(),Rt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,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,t)}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(e){if(!this.source)return"";let n=this.source;e==null&&(e=Ur.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Ur.createColors(!0);r=g=>u(f(g)),i=g=>m(g),Vr&&(o=g=>Vr(g))}let s=n.split(/\\r?\\n/),c=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),l=String(a).length;return s.slice(c,a).map((u,m)=>{let f=c+1+m,g=" "+(" "+f).slice(-l)+" | ";if(f===this.line){if(u.length>160){let y=20,x=Math.max(0,this.column-y),w=Math.max(this.column+y,this.endColumn+y),N=u.slice(x,w),L=i(g.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,y-1)).replace(/[^\\t]/g," ");return r(">")+i(g)+o(N)+`\n `+L+r("^")}let A=i(g.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(g)+o(u)+`\n `+A+r("^")}return" "+i(g)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zr.exports=Rt;Rt.default=Rt});var oi=te((Mm,qr)=>{"use strict";var hl=/(<)(\\/?style\\b)/gi,xl=/(<)(!--)/g;function je(t){return typeof t!="string"||!t.includes("<")?t:t.replace(hl,"\\\\3c $2").replace(xl,"\\\\3c $2")}var jr={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function gl(t){return t[0].toUpperCase()+t.slice(1)}var kt=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(je(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let c=0;c<o;c++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(je(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(je(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let c=n[s],a=this.raw(c,"before");a&&this.builder(o?a:je(a)),this.stringify(c,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(je("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(je(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return jr[i];let s=e.root(),c=s.rawCache||(s.rawCache={});if(typeof c[i]<"u")return c[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+gl(i);this[a]?r=this[a](s,e):s.walk(l=>{if(r=l.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=jr[i]),c[i]=r,r}rawBeforeClose(e){let n;return e.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(e,n){let i;return e.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(e,n){let i;return e.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(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.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(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&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(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:je(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(je(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};qr.exports=kt;kt.default=kt});var Dt=te((Nm,$r)=>{"use strict";var yl=oi();function si(t,e){new yl(e).stringify(t)}$r.exports=si;si.default=si});var dn=te((_m,ai)=>{"use strict";ai.exports.isClean=Symbol("isClean");ai.exports.my=Symbol("my")});var Ot=te((Tm,Kr)=>{"use strict";var bl=cn(),Sl=oi(),Al=Dt(),{isClean:It,my:El}=dn();function li(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>li(s,n)):(o==="object"&&r!==null&&(r=li(r)),n[i]=r)}return n}function Ge(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Pt=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[It]=!1,this[El]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=li(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new bl(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[It]=!0}markDirty(){if(this[It]){this[It]=!1;let e=this;for(;e=e.parent;)e[It]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Ge(i,this.source.start),Ge(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){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=Ge(r,this.source.start),s=o+e;for(let c=o;c<s;c++)r[c]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){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:Ge(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:Ge(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Ge(n,this.source.start),Ge(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Ge(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Ge(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.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(e,n){return new Sl().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,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 c=this[s];if(Array.isArray(c))i[s]=c.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof c=="object"&&c.toJSON)i[s]=c.toJSON(null,n);else if(s==="source"){if(c==null)continue;let a=n.get(c.input);a==null&&(a=o,n.set(c.input,o),o++),i[s]={end:c.end,inputId:a,start:c.start}}else i[s]=c}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(e=Al){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Kr.exports=Pt;Pt.default=Pt});var Ht=te((Lm,Jr)=>{"use strict";var wl=Ot(),Bt=class extends wl{constructor(e){super(e),this.type="comment"}};Jr.exports=Bt;Bt.default=Bt});var Gt=te((vm,Yr)=>{"use strict";var Cl=Ot(),Wt=class extends Cl{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Yr.exports=Wt;Wt.default=Wt});var qe=te((Rm,oo)=>{"use strict";var Xr=Ht(),Qr=Gt(),Fl=Ot(),{isClean:Zr,my:eo}=dn(),ui,to,no,ci;function io(t){return t.map(e=>(e.nodes&&(e.nodes=io(e.nodes)),delete e.source,e))}function ro(t){if(t[Zr]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)ro(e)}var ke=class t extends Fl{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(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);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(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let c of o)this.proxyOf.nodes.splice(i,0,c);let s;for(let c in this.indexes)s=this.indexes[c],i<=s&&(this.indexes[c]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=io(to(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Qr(e)]}else if(e.selector||e.selectors)e=[new ci(e)];else if(e.name)e=[new ui(e)];else if(e.text)e=[new Xr(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[eo]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Zr]&&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(...e){e=e.reverse();for(let n of e){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(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,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(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};ke.registerParse=t=>{to=t};ke.registerRule=t=>{ci=t};ke.registerAtRule=t=>{ui=t};ke.registerRoot=t=>{no=t};oo.exports=ke;ke.default=ke;ke.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,ui.prototype):t.type==="rule"?Object.setPrototypeOf(t,ci.prototype):t.type==="decl"?Object.setPrototypeOf(t,Qr.prototype):t.type==="comment"?Object.setPrototypeOf(t,Xr.prototype):t.type==="root"&&Object.setPrototypeOf(t,no.prototype),t[eo]=!0,t.nodes&&t.nodes.forEach(e=>{ke.rebuild(e)})}});var fn=te((km,ao)=>{"use strict";var so=qe(),ct=class extends so{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ao.exports=ct;ct.default=ct;so.registerAtRule(ct)});var mn=te((Dm,co)=>{"use strict";var Ml=qe(),lo,uo,rt=class extends Ml{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lo(new uo,this,e).stringify()}};rt.registerLazyResult=t=>{lo=t};rt.registerProcessor=t=>{uo=t};co.exports=rt;rt.default=rt});var mo=te((Im,fo)=>{var Nl="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",_l=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},Tl=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Nl[Math.random()*64|0];return e};fo.exports={nanoid:Tl,customAlphabet:_l}});var pn=te(()=>{});var hn=te(()=>{});var di=te(()=>{});var po=te(()=>{});var mi=te((zm,go)=>{"use strict";var{existsSync:Ll,readFileSync:vl}=po(),{dirname:fi,join:Rl}=pn(),{SourceMapConsumer:ho,SourceMapGenerator:xo}=hn();function kl(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Ut=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),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=fi(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new ho(this.json||this.text)),this.consumerCache}decodeInline(e){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=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let c=e.match(n)||e.match(i);if(c)return kl(e.substr(c[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=fi(e),Ll(e)))return this.mapFile=e,vl(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof ho)return xo.fromSourceMap(n).toString();if(n instanceof xo)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;e&&(i=Rl(fi(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};go.exports=Ut;Ut.default=Ut});var Vt=te((jm,Eo)=>{"use strict";var{nanoid:Dl}=mo(),{isAbsolute:xi,resolve:gi}=pn(),{SourceMapConsumer:Il,SourceMapGenerator:Pl}=hn(),{fileURLToPath:yo,pathToFileURL:xn}=di(),bo=cn(),Ol=mi(),pi=ri(),hi=Symbol("lineToIndexCache"),Bl=!!(Il&&Pl),So=!!(gi&&xi);function Ao(t){if(t[hi])return t[hi];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[hi]=n,n}var dt=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.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&&(!So||/^\\w+:\\/\\//.test(n.from)||xi(n.from)?this.file=n.from:this.file=gi(n.from)),So&&Bl){let i=new Ol(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 "+Dl(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,c,a,l;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let g=this.fromOffset(a);n=g.line,i=g.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){c=f.offset;let g=this.fromOffset(c);s=g.line,o=g.col}else s=f.line,o=f.column,c=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?l=new bo(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):l=new bo(e,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:c,line:n,offset:a,source:this.css},this.file&&(xn&&(l.input.url=xn(this.file).toString()),l.input.file=this.file),l}fromLineAndColumn(e,n){return Ao(this)[e-1]+n-1}fromOffset(e){let n=Ao(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:gi(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let c;typeof i=="number"&&(c=o.originalPositionFor({column:r,line:i}));let a;xi(s.source)?a=xn(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||xn(this.map.mapFile));let l={column:s.column,endColumn:c&&c.column,endLine:c&&c.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(yo)l.file=yo(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(l.source=u),l}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Eo.exports=dt;dt.default=dt;pi&&pi.registerInput&&pi.registerInput(dt)});var ft=te((qm,Mo)=>{"use strict";var wo=qe(),Co,Fo,$e=class extends wo{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);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(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Co(new Fo,this,e).stringify()}};$e.registerLazyResult=t=>{Co=t};$e.registerProcessor=t=>{Fo=t};Mo.exports=$e;$e.default=$e;wo.registerRoot($e)});var yi=te(($m,No)=>{"use strict";var zt={comma(t){return zt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return zt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,c=!1,a="",l=!1;for(let u of t)l?l=!1:u==="\\\\"?l=!0:c?u===a&&(c=!1):u===\'"\'||u==="\'"?(c=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};No.exports=zt;zt.default=zt});var gn=te((Km,To)=>{"use strict";var _o=qe(),Hl=yi(),mt=class extends _o{get selectors(){return Hl.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};To.exports=mt;mt.default=mt;_o.registerRule(mt)});var vo=te((Jm,Lo)=>{"use strict";var Wl=fn(),Gl=Ht(),Ul=Gt(),Vl=Vt(),zl=mi(),jl=ft(),ql=gn();function jt(t,e){if(Array.isArray(t))return t.map(r=>jt(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:Vl.prototype};o.map&&(o.map={...o.map,__proto__:zl.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>jt(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new jl(i);if(i.type==="decl")return new Ul(i);if(i.type==="rule")return new ql(i);if(i.type==="comment")return new Gl(i);if(i.type==="atrule")return new Wl(i);throw new Error("Unknown node type: "+t.type)}Lo.exports=jt;jt.default=jt});var Si=te((Ym,Oo)=>{"use strict";var{dirname:yn,relative:ko,resolve:Do,sep:Io}=pn(),{SourceMapConsumer:Po,SourceMapGenerator:bn}=hn(),{pathToFileURL:Ro}=di(),$l=Vt(),Kl=!!(Po&&bn),Jl=!!(yn&&Do&&ko&&Io),bi=class{constructor(e,n,i,r){this.stringify=e,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 e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||yn(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Po(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),Jl&&Kl&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=bn.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new bn({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 bn({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(c,a,l)=>{if(this.css+=c,a&&l!=="end"&&(r.generated.line=e,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=c.match(/\\n/g),s?(e+=s.length,o=c.lastIndexOf(`\n`),n=c.length-o):n+=c.length,a&&l!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.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=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,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(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!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(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?yn(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=yn(Do(i,this.mapOpts.annotation)));let r=ko(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new $l(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[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(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(Ro){let i=Ro(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Io==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Oo.exports=bi});var Wo=te((Xm,Ho)=>{"use strict";var Sn=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,An=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,Yl=/.[\\r\\n"\'(/\\\\]/,Bo=/[\\da-f]/i;Ho.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,c,a,l,u,m,f,g,A,y=i.length,x=0,w=[],N=[],L=-1;function $(){return x}function B(F){throw e.error("Unclosed "+F,x)}function _(){return N.length===0&&x>=y}function S(F){if(N.length)return N.pop();if(x>=y)return;let T=F?F.ignoreUnclosed:!1;switch(o=i.charCodeAt(x),o){case 10:case 32:case 9:case 13:case 12:{a=x;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(x,a)],x=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let R=String.fromCharCode(o);u=[R,R,x];break}case 40:{if(A=w.length?w.pop()[1]:"",g=i.charCodeAt(x+1),A==="url"&&g!==39&&g!==34&&g!==32&&g!==10&&g!==9&&g!==12&&g!==13){a=x;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||T){a=x;break}else B("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(x,a+1),x,a],x=a}else x<=L?u=["(","(",x]:(a=i.indexOf(")",x+1),s=i.slice(x,a+1),a===-1||Yl.test(s)?(L=a===-1?y:a,u=["(","(",x]):(u=["brackets",s,x,a],x=a));break}case 39:case 34:{l=o===39?"\'":\'"\',a=x;do{if(m=!1,a=i.indexOf(l,a+1),a===-1)if(r||T){a=x+1;break}else B("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(x,a+1),x,a],x=a;break}case 64:{Sn.lastIndex=x+1,Sn.test(i),Sn.lastIndex===0?a=i.length-1:a=Sn.lastIndex-2,u=["at-word",i.slice(x,a+1),x,a],x=a;break}case 92:{for(a=x,c=!0;i.charCodeAt(a+1)===92;)a+=1,c=!c;if(o=i.charCodeAt(a+1),c&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Bo.test(i.charAt(a)))){for(;Bo.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(x,a+1),x,a],x=a;break}default:{o===47&&i.charCodeAt(x+1)===42?(a=i.indexOf("*/",x+2)+1,a===0&&(r||T?a=i.length:B("comment")),u=["comment",i.slice(x,a+1),x,a],x=a):(An.lastIndex=x+1,An.test(i),An.lastIndex===0?a=i.length-1:a=An.lastIndex-2,u=["word",i.slice(x,a+1),x,a],w.push(u),x=a);break}}return x++,u}function C(F){N.push(F)}return{back:C,endOfFile:_,nextToken:S,position:$}}});var zo=te((Qm,Vo)=>{"use strict";var Xl=fn(),Ql=Ht(),Zl=Gt(),eu=ft(),Go=gn(),tu=Wo(),Uo={empty:!0,space:!0};function nu(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var Ai=class{constructor(e){this.input=e,this.root=new eu,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new Xl;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,c=!1,a=[],l=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[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(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){c=!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(e);break}else a.push(e);else a.push(e);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&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),c&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,c]of e.entries()){if(r=c,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(e){let n=new Ql;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[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=tu(this.input)}decl(e,n){let i=new Zl;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||nu(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let l=e[0][0];if(l===":"||l==="space"||l==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.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=[],c;for(;e.length&&(c=e[0][0],!(c!=="space"&&c!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let l=e.length-1;l>=0;l--){if(o=e[l],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,l);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=l;f>0;f--){let g=u[f][0];if(m.trim().startsWith("!")&&g!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(l=>l[0]!=="space"&&l[0]!=="comment")&&(i.raws.between+=s.map(l=>l[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Go;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){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(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}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(e){if(this.spaces+=e[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(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],c=e[1].startsWith("--"),a=[],l=e;for(;l;){if(i=l[0],a.push(l),i==="("||i==="[")o||(o=l),s.push(i==="("?")":"]");else if(c&&r&&i==="{")o||(o=l),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,c);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(!c)for(;a.length&&(l=a[a.length-1][0],!(l!=="space"&&l!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,c)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,c=i.length,a="",l=!0,u,m;for(let f=0;f<c;f+=1)o=i[f],s=o[0],s==="space"&&f===c-1&&!r?l=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!Uo[m]&&!Uo[u]?a.slice(-1)===","?l=!1:a+=o[1]:l=!1):a+=o[1];if(!l){let f=i.reduce((g,A)=>g+A[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Go;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vo.exports=Ai});var wn=te((Zm,jo)=>{"use strict";var iu=qe(),ru=Vt(),ou=zo();function En(t,e){let n=new ru(t,e),i=new ou(n);try{i.parse()}catch(r){throw r}return i.root}jo.exports=En;En.default=En;iu.registerParse(En)});var Ei=te((ep,qo)=>{"use strict";var qt=class{constructor(e,n={}){if(this.type="warning",this.text=e,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}};qo.exports=qt;qt.default=qt});var Cn=te((tp,$o)=>{"use strict";var su=Ei(),$t=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new su(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$o.exports=$t;$t.default=$t});var wi=te((np,Jo)=>{"use strict";var Ko={};Jo.exports=function(e){Ko[e]||(Ko[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var Mi=te((rp,Zo)=>{"use strict";var au=qe(),lu=mn(),uu=Si(),cu=wn(),Yo=Cn(),du=ft(),fu=Dt(),{isClean:Be,my:mu}=dn(),ip=wi(),pu={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},hu={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},xu={Once:!0,postcssPlugin:!0,prepare:!0},pt=0;function Kt(t){return typeof t=="object"&&typeof t.then=="function"}function Qo(t){let e=!1,n=pu[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,pt,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,pt,n+"Exit"]:[n,n+"Exit"]}function Xo(t){let e;return t.type==="document"?e=["Document",pt,"DocumentExit"]:t.type==="root"?e=["Root",pt,"RootExit"]:e=Qo(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function Ci(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>Ci(e)),t}var Fi={},Ke=class t{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(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=Ci(n);else if(n instanceof t||n instanceof Yo)r=Ci(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=cu;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[mu]&&au.rebuild(r)}this.result=new Yo(e,r,i),this.helpers={...Fi,postcss:Fi,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(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(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(!hu[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!xu[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Kt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Xo(e)];for(;n.length>0;){let i=this.visitTick(n);if(Kt(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(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Kt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(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 e=this.result.opts,n=fu;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,c=>{s+=c}),this.result.css=s,this.result}let o=new uu(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 e of this.plugins){let n=this.runOnRoot(e);if(Kt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){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(Kt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,c]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return c(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,c;for(;c=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!c[Be]){c[Be]=!0,e.push(Xo(c));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===pt){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Qo(e);for(let i of n)if(i===pt)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ke.registerPostcss=t=>{Fi=t};Zo.exports=Ke;Ke.default=Ke;du.registerLazyResult(Ke);lu.registerLazyResult(Ke)});var ts=te((sp,es)=>{"use strict";var gu=Si(),yu=wn(),bu=Cn(),Su=Dt(),op=wi(),Jt=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 e,n=yu;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=Su;this.result=new bu(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 gu(r,void 0,this._opts,n);if(s.isMap()){let[c,a]=s.generate();c&&(this.result.css=c),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(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};es.exports=Jt;Jt.default=Jt});var is=te((ap,ns)=>{"use strict";var Au=mn(),Eu=Mi(),wu=ts(),Cu=ft(),ot=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)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(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new wu(this,e,n):new Eu(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};ns.exports=ot;ot.default=ot;Cu.registerProcessor(ot);Au.registerProcessor(ot)});var ds=te((lp,cs)=>{"use strict";var rs=fn(),os=Ht(),Fu=qe(),Mu=cn(),ss=Gt(),as=mn(),Nu=vo(),_u=Vt(),Tu=Mi(),Lu=yi(),vu=Ot(),Ru=wn(),Ni=is(),ku=Cn(),ls=ft(),us=gn(),Du=Dt(),Iu=Ei();function le(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Ni(t)}le.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let c=n(...s);return c.postcssPlugin=e,c.postcssVersion=new Ni().version,c}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,c,a){return le([r(a)]).process(s,c)},r};le.stringify=Du;le.parse=Ru;le.fromJSON=Nu;le.list=Lu;le.comment=t=>new os(t);le.atRule=t=>new rs(t);le.decl=t=>new ss(t);le.rule=t=>new us(t);le.root=t=>new ls(t);le.document=t=>new as(t);le.CssSyntaxError=Mu;le.Declaration=ss;le.Container=Fu;le.Processor=Ni;le.Document=as;le.Comment=os;le.Warning=Iu;le.AtRule=rs;le.Result=ku;le.Input=_u;le.Rule=us;le.Root=ls;le.Node=vu;Tu.registerPostcss(le);cs.exports=le;le.default=le});function ln(){return globalThis}function v(t,e){if(typeof window>"u")return;let n=ln(),i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ee(t){try{window.parent.postMessage(t,"*")}catch(e){v("bridge.postMessage",e)}}var Pa={play:(t,e)=>e.onPlay(),pause:(t,e)=>e.onPause(),"stop-media":(t,e)=>e.onStopMedia(),seek:(t,e)=>e.onSeek(Number(t.frame??0),t.seekMode??"commit"),tick:(t,e)=>e.onTick(),"set-muted":(t,e)=>e.onSetMuted(!!t.muted),"set-volume":(t,e)=>e.onSetVolume(Math.max(0,Math.min(1,Number(t.volume??1)))),"set-media-output-muted":(t,e)=>e.onSetMediaOutputMuted(!!t.muted),"set-native-media-sync-disabled":(t,e)=>e.onSetNativeMediaSyncDisabled(!!t.disabled),"set-web-audio-media-disabled":(t,e)=>e.onSetWebAudioMediaDisabled(!!t.disabled),"set-playback-rate":(t,e)=>e.onSetPlaybackRate(Number(t.playbackRate??1)),"set-color-grading":(t,e)=>e.onSetColorGrading(t.target??null,t.grading??null),"set-color-grading-compare":(t,e)=>e.onSetColorGradingCompare(t.target??null,t.compare??null),"enable-pick-mode":(t,e)=>e.onEnablePickMode(),"disable-pick-mode":(t,e)=>e.onDisablePickMode(),"flash-elements":t=>Oa(t)};function Oa(t){let e=t.selectors,n=t.duration||800;e&&Ba(e,n)}function ar(t){let e=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=Pa[r];o&&o(i,t)};return window.addEventListener("message",e),Ee({source:"hf-preview",type:"ready"}),e}function Ba(t,e){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 ${e}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 t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){v("bridge.flashElements.querySelector",i)}}var jn=null;function lr(t){jn=t}function Ct(t,e){if(jn)try{jn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){v("runtime.analytics.site1",n)}}function ur(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=l=>t?.resolveStartSeconds?t.resolveStartSeconds(l):Number.parseFloat(l.getAttribute("data-start")??"0")||0,r=(l,u)=>{let m=null;try{m=l.effect?.getComputedTiming?.()??null}catch(g){v("runtime.adapters.css.site5",g)}if(!m)return{};let f=Number(m.endTime);return Number.isFinite(f)?{endSeconds:u+f/1e3}:{unbounded:!0}},o=(l,u)=>{for(let m of l){try{m.currentTime=u}catch(f){v("runtime.adapters.css.site1",f)}try{m.pause()}catch(f){v("runtime.adapters.css.site2",f)}}},s=l=>{for(let u of l)try{u.play()}catch(m){v("runtime.adapters.css.site3",m)}},c=l=>{for(let u of l)try{u.pause()}catch(m){v("runtime.adapters.css.site4",m)}},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:()=>{e=[];let l=document.querySelectorAll("*");for(let u of l){if(!(u instanceof HTMLElement))continue;let m=window.getComputedStyle(u);!m.animationName||m.animationName==="none"||e.push({el:u,baseDelay:u.style.animationDelay||"",basePlayState:u.style.animationPlayState||"",animations:n(u)})}},getInferredDurationSeconds:()=>{let l=0;for(let u of e){if(!u.el.isConnected)continue;let m=i(u.el);for(let f of n(u.el)){let g=r(f,m);g.endSeconds!=null&&(l=Math.max(l,g.endSeconds))}}return l>0?l:null},seek:l=>{let u=Number(l.time)||0;for(let m of e){if(!m.el.isConnected)continue;let f=i(m.el),g=Math.max(0,u-f)*1e3,A=m.animations;if(A.length>0){o(A,g);continue}m.el.style.animationPlayState="paused",m.el.style.animationDelay=`-${(g/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let u=l.animations;u.length>0&&c(u),a(l)}},play:()=>{for(let l of e)l.el.isConnected&&(a(l),s(l.animations))},revert:()=>{e=[]}}}function cr(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function dr(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){v("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){v("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){v("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){v("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function mr(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){v("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(qn(i))i.goToAndStop(e*1e3,!1);else if($n(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*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,e/r*100);i.seek(o)}}}catch(r){v("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(qn(e)||$n(e))&&e.pause()}catch(n){v("runtime.adapters.lottie.site3",n)}},revert:()=>{},getInferredDurationSeconds:()=>{let t=window.__hfLottie;if(!t||t.length===0)return null;let e=0,n=!1;for(let i of t){let r=null;try{r=Ha(i)}catch(o){v("runtime.adapters.lottie.site4",o)}r!=null&&(n=!0,e=Math.max(e,r))}return n?e:null}}}function fr(t,e){return!Number.isFinite(t)||!t||t<=0||!Number.isFinite(e)||!e||e<=0?null:t/e}function Ha(t){return qn(t)?fr(t.totalFrames,t.frameRate):$n(t)?Number.isFinite(t.duration)&&(t.duration??0)>0?t.duration??null:fr(t.totalFrames,t.frameRate):null}function qn(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function $n(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Kn=-1;function un(t){if(t!==Kn){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.site1",e)}}}function pr(t){Kn=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){v("runtime.adapters.seek-dispatch.force",e)}}function hr(){let t=null,e=0,n=null,i=null,r=null,o=null,s=()=>{if(typeof window>"u")return null;let u=window.THREE?.DefaultLoadingManager;return!u||typeof u!="object"||typeof u.itemsLoaded!="number"||typeof u.itemsTotal!="number"?null:u},c=l=>{o||l.itemsTotal<=l.itemsLoaded||(o=new Promise(u=>{l.onLoad=function(){try{r?.call(this)}finally{o=null,l.onLoad=r??null,u()}}}))},a=l=>{n!==l&&(n=l,i=l.onStart??null,r=l.onLoad??null,l.onStart=function(u,m,f){try{i?.call(this,u,m,f)}finally{c(l)}})};return{name:"three",discover:()=>{let l=s();l&&(a(l),c(l))},seek:l=>{t=Math.max(0,Number(l.time)||0),e=t,window.__hfThreeTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0},getReadyPromise:()=>{let l=s();return!l||l.itemsTotal<=l.itemsLoaded?null:(o||c(l),o)}}}function Oe(t){let e=null,n=new WeakSet;return{name:t.name,discover:()=>{},seek:()=>{},pause:()=>{},play:()=>{},revert:()=>{},getReadyPromise:()=>{let i=t.getInstances();if(i.length===0)return null;let r=i.filter(o=>!n.has(o));return r.length===0?null:e||(e=Promise.allSettled(r.map(o=>t.waitFor(o).then(()=>{n.add(o)}))).then(()=>{e=null}),e)}}}function xr(){return Oe({name:"mapbox",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMapbox;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function gr(){return Oe({name:"leaflet",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfLeaflet;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>t.whenReady(e))})}function yr(){return Oe({name:"google-maps",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfGoogleMaps;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{let n=t.addListener("tilesloaded",()=>{n.remove(),e()})})})}function br(){return Oe({name:"maplibre",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfMaplibre;return Array.isArray(t)?t:[]},waitFor:t=>new Promise(e=>{if(t.loaded()){e();return}t.on("load",e)})})}function Sr(){return Oe({name:"d3",getInstances:()=>{if(typeof window>"u")return[];let t=window.__hfD3;return Array.isArray(t)?t:[]},waitFor:t=>t.end()})}function Ar(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,un(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Er(t){let e=t.nextElementSibling;if(e instanceof HTMLImageElement&&e.classList.contains("__render_frame__")&&e.complete&&e.naturalWidth>0)return e;if(t.id){let n=document.getElementById(`__render_frame_${t.id}__`);if(n instanceof HTMLImageElement&&n.complete&&n.naturalWidth>0)return n}return null}function wr(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=Er(n.source);if(o)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Cr(){let t=[globalThis.WebGL2RenderingContext,globalThis.WebGLRenderingContext],e=["texImage2D","texSubImage2D"];for(let n of t){let i=n?.prototype;if(i)for(let r of e){let o=i[r];if(typeof o!="function"||o.__hfVideoPatched)continue;let s=function(...c){let a=c.length-1,l=c[a];if(l instanceof HTMLVideoElement){let u=Er(l);u&&(c[a]=u)}return o.apply(this,c)};s.__hfVideoPatched=!0,i[r]=s}}}function Fr(){let t=!1,e=0,n=!1,i,r,o,s=new Set,c=new WeakMap,a=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},l=x=>{let w=Number(x.currentTime);return Number.isFinite(w)&&w>0?w:0},u=(x,w)=>w<=0?x:x>=w?Math.max(0,x-w):x,m=(x,w)=>{let N=c.get(x);if(N)return N;let L={compositionTimeMs:w,animationTimeMs:t?u(l(x),w):l(x)};return c.set(x,L),L},f=(x,w)=>{if(!s.has(x)){s.add(x);let N=()=>{s.delete(x)};try{x.addEventListener("finish",N,{once:!0}),x.addEventListener("cancel",N,{once:!0})}catch(L){v("runtime.adapters.waapi.site4",L)}}m(x,w)},g=(x,w)=>{for(let N of x)f(N,w)},A=()=>{if(n||typeof Element>"u")return;let x=Element.prototype;if(typeof x.animate!="function"||x.__hfOriginalAnimate)return;let w=x.animate;try{Object.defineProperty(x,"__hfOriginalAnimate",{value:w,configurable:!0});let N=function(...L){let $=w.apply(this,L);return f($,e),$};x.animate=N,i=x,r=w,o=N,n=!0}catch{}},y=x=>{let w=null;try{w=x.effect?.getComputedTiming?.()??null}catch($){v("runtime.adapters.waapi.site4",$)}if(!w)return{};let N=Number(w.endTime);return Number.isFinite(N)?{endSeconds:(c.get(x)?.compositionTimeMs??0)/1e3+N/1e3}:{unbounded:!0}};return{name:"waapi",discover:()=>{t=!0,A(),g(a(),e)},seek:x=>{let w=Math.max(0,(Number(x.time)||0)*1e3);e=w,(!t||s.size>0)&&g(a(),t?w:0);for(let N of s){let L=t?m(N,w):m(N,0),$=L.animationTimeMs+Math.max(0,w-L.compositionTimeMs);try{N.currentTime=$}catch(B){v("runtime.adapters.waapi.site1",B)}try{N.pause()}catch(B){v("runtime.adapters.waapi.site2",B)}}},pause:()=>{t||g(a(),e);for(let x of s)try{x.pause()}catch(w){v("runtime.adapters.waapi.site3",w)}},revert:()=>{if(s.clear(),c=new WeakMap,t=!1,e=0,i&&r&&o&&i.animate===o)try{i.animate=r,i.__hfOriginalAnimate===r&&delete i.__hfOriginalAnimate}catch(x){v("runtime.adapters.waapi.site5",x)}i=void 0,r=void 0,o=void 0,n=!1},getInferredDurationSeconds:()=>{let x=0;for(let w of a()){let N=y(w);N.endSeconds!=null&&(x=Math.max(x,N.endSeconds))}return x>0?x:null}}}function Mr(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function Wa(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),c=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),l=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=l;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,c),g=[];for(let y=m;y<=f+1e-6;y+=u){let x=Math.min(f,y);e(x);let w=Number(t.volume);if(!Number.isFinite(w))continue;let N=Math.max(0,Math.min(1,w)),L=g.at(-1);if((!L||Math.abs(L.volume-N)>1e-4||x===f)&&g.push({time:Number(x.toFixed(6)),volume:Number(N.toFixed(6))}),x===f)break}return g.some(y=>Math.abs(y.volume-l)>1e-4)?g:null}function Nr(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=Wa(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function Nt(t){let e=t.defaultPlaybackRate;return Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1}function _r(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let c=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(c))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,l=Nt(s),u=s.loop,m=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,f=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(f)||f<=0)&&m!=null&&(f=Math.max(0,(m-a)/l));let g=Number.isFinite(f)&&f>0?c+f:Number.POSITIVE_INFINITY,A=Number.parseFloat(s.dataset.volume??""),y={el:s,start:c,mediaStart:a,duration:Number.isFinite(f)&&f>0?f:Number.POSITIVE_INFINITY,end:g,volume:Number.isFinite(A)?A:null,playbackRate:l,loop:u,sourceDuration:m};i.push(y),s.tagName==="VIDEO"&&r.push(y),Number.isFinite(g)&&(o=Math.max(o,g))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var Jn=new WeakMap,Ft=new WeakMap,Yn=new WeakSet,lt=new WeakSet;function Ga(t){if(lt.has(t))return;lt.add(t);let e=()=>lt.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var Ua=3;function Va(t){return t.error!=null||t.networkState===Ua}var Xn=new WeakMap;function Mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function Tr(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.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=Mt(t.userVolume??1),c=Mt(n.volume??1),a=Xn.get(i),l=Mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=Mt(Mr(n.volumeKeyframes,r)):a===void 0||Math.abs(l-a)>1e-4?u=l:u=c;let m=Mt(u*s);i.volume=m,Xn.set(i,m),t.onElementVolume?.(i,m),(e||t.isWebAudioOwned?.(i))&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(T){v("runtime.media.site1",T)}let f=.04,g=2,A=i.currentTime||0,y=Math.abs(A-r),x=r-A,w=Jn.get(i);Jn.set(i,x);let N=w===void 0,L=!N&&Math.abs(x-w)>.5,$=y>3,B=y>.5&&(N||L||$),_=i.tagName==="VIDEO"&&!i.paused,S=w!==void 0&&Math.abs(x-w)<.004,C=!1;if(!_&&!B&&!N&&S&&y>f){let T=(Ft.get(i)??0)+1;Ft.set(i,T),T>=g&&(C=!0,Ft.set(i,0))}else y<=f&&Ft.set(i,0);let F=!_&&t.forceSync&&y>.02;if(B||C||F){if(!(i.tagName==="VIDEO"&&i.id&&!!document.getElementById(`__render_frame_${i.id}__`))){try{i.currentTime=r}catch(R){v("runtime.media.site2",R)}if(Math.abs(i.currentTime-r)>.5&&!Yn.has(i)){Yn.add(i),i.load();try{i.currentTime=r}catch(R){v("runtime.media.site3",R)}}}lt.delete(i)}t.playing&&i.paused&&!lt.has(i)&&!Va(i)?(Ga(i),i.play().catch(T=>{lt.delete(i),(T&&typeof T=="object"&&"name"in T?String(T.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}Jn.delete(i),Ft.delete(i),Yn.delete(i),Xn.delete(i),i.paused||i.pause()}}var za=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),ja=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(","),qa="data-hf-color-grading-source-hidden";function Lr(t){let e=!1,n=null,i=null,r=null,o=null;function s(S,C){try{window.dispatchEvent(new CustomEvent(S,{detail:C}))}catch(F){v("runtime.picker.site1",F)}}function c(S){r=S,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(S){o=S,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function l(S){let C=S.ownerDocument.defaultView;if(!C)return!1;let F=S;for(;F&&F!==document.body&&F!==document.documentElement;){let T=C.getComputedStyle(F);if(T.display==="none"||T.visibility==="hidden"||T.pointerEvents==="none")return!0;let R=Number.parseFloat(T.opacity);if(Number.isFinite(R)&&R<=.01&&!F.hasAttribute(qa))return!0;F=F.parentElement}return!1}function u(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(za)||l(S))}function m(S){return!!S?.closest(ja)}function f(S){let C=S;if(C.id)return`#${C.id}`;let F=S.getAttribute("data-composition-id");if(F)return`[data-composition-id="${CSS.escape(F)}"]`;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 G=S.tagName.toLowerCase(),j=S.parentElement;if(!j)return G;let ie=j.querySelectorAll(`:scope > ${G}`);if(ie.length===1)return G;for(let P=0;P<ie.length;P+=1)if(ie[P]===S)return`${G}:nth-of-type(${P+1})`;return G}function g(S){let C=S.tagName.toLowerCase(),F=(S.textContent??"").trim().replace(/\\s+/g," "),T=(R,G)=>R.length>G?`${R.slice(0,G-1)}\\u2026`:R;return C==="h1"||C==="h2"||C==="h3"?"Heading":C==="p"||C==="span"||C==="div"?F.length>0?T(F,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 A(S,C,F){let T=typeof F=="number"&&F>0?F:8,R=[];if(document.elementsFromPoint)R=document.elementsFromPoint(S,C);else if(document.elementFromPoint){let ie=document.elementFromPoint(S,C);R=ie?[ie]:[]}if(m(R[0]??null))return[];let G={},j=[];for(let ie=0;ie<R.length;ie+=1){let P=R[ie];if(!u(P))continue;let se=`${P.tagName}::${P.id||""}::${ie}`;if(!G[se]&&(G[se]=!0,j.push(P),j.length>=T))break}return j}function y(S){let C=S.getBoundingClientRect(),F={};for(let R=0;R<S.attributes.length;R+=1){let G=S.attributes[R];G.name.startsWith("data-")&&(F[G.name]=G.value)}return{id:S.id||null,tagName:S.tagName.toLowerCase(),selector:f(S),label:g(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:F}}function x(S,C,F){return A(S,C,F).map(y)}function w(S){if(!e)return;let F=A(S.clientX,S.clientY,1)[0]??(S.target instanceof Element?S.target:null);if(!u(F)||n===F)return;n&&n.classList.remove("__hf-pick-highlight"),n=F,F.classList.add("__hf-pick-highlight");let T=y(F);c(T),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:T})}function N(S){if(!e)return;S.preventDefault(),S.stopPropagation(),S.stopImmediatePropagation();let C=x(S.clientX,S.clientY,8);C.length!==0&&(c(C[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:C,selectedIndex:0,point:{x:S.clientX,y:S.clientY}}))}function L(S){S.key==="Escape"&&(B(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function $(){e||(e=!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",w,!0),document.addEventListener("click",N,!0),document.addEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function B(){e&&(e=!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",w,!0),document.removeEventListener("click",N,!0),document.removeEventListener("keydown",L,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function _(){window.__HF_PICKER_API={enable:$,disable:B,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(S,C,F)=>Number.isFinite(S)&&Number.isFinite(C)?x(S,C,F):[],pickAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return null;let T=x(S,C,8);if(!T.length)return null;let R=Math.max(0,Math.min(T.length-1,Number(F??0))),G=T[R]??null;return G?(a(G),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:G}),B(),G):null},pickManyAtPoint:(S,C,F)=>{if(!Number.isFinite(S)||!Number.isFinite(C))return[];let T=x(S,C,8);if(!T.length)return[];let R=[],G=Array.isArray(F)?F:[0];for(let j of G){let ie=Math.max(0,Math.min(T.length-1,Math.floor(Number(j)))),P=T[ie];if(!P)continue;R.some(Se=>Se.selector===P.selector&&Se.tagName===P.tagName)||R.push(P)}return R.length?(a(R[0]??null),t.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:_}}var $a=["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 ut(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function vr(t,e,n=$a){for(let i of n){let r=e.getPropertyValue(i);r&&t.setProperty(i,r)}}function _t(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&v("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function Re(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&v("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function Tt(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){v("runtime.player.site1",r)}}}function Rr(t,e,n){let i=ut(e,n);return Re(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function Ka(t,e,n,i){let r=[];Tt(t,e,o=>{Re(o,"play"),r.push(o)});try{return Rr(e,n,i)}finally{for(let o of r)try{Re(o,"pause")}catch(s){v("runtime.player.site2",s)}}}function Ja(t,e){Tt(t,e,n=>{Re(n,"play")})}function kr(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??_t(e,"duration",0))||0);n>0&&Math.max(0,_t(e,"time",0))>=n&&(Re(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),Re(e,"play"),Tt(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),Re(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;Re(e,"pause"),Tt(t.getTimelineRegistry?.(),e,i=>{Re(i,"pause")});let n=Math.max(0,_t(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=Ka(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),Re(i,"play"),Tt(t.getTimelineRegistry?.(),i,c=>{typeof c.timeScale=="function"&&c.timeScale(t.getPlaybackRate()),Re(c,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(Ja(t.getTimelineRegistry?.(),n),Rr(n,e,i)):ut(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>_t(t.getTimeline(),"time",0),getDuration:()=>_t(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Dr(){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 Ya=new Set(["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"]);function Zn(t){return t.id||t.getAttribute("data-hf-id")||null}function Qn(t){if(t==null)return null;let e=Number(t);return Number.isFinite(e)?e:null}function Xa(t,e){let n=t.getAttribute("data-composition-id");if(!n)return null;let i=Number(e[n]?.duration?.());return Number.isFinite(i)&&i>0?i:null}function Qa(t){if(!(t instanceof HTMLMediaElement)||!Number.isFinite(t.duration))return null;let e=Qn(t.getAttribute("data-playback-start"))??Qn(t.getAttribute("data-media-start"))??0;return t.duration>e?t.duration-e:null}function Za(t,e,n,i){let r=Qn(t.getAttribute("data-duration"));return r!=null&&r>0?r:Xa(t,e)??Qa(t)??Math.max(0,n-i)}function el(t){for(let[e,n]of t){let i=e.parentElement;for(;i;){let r=t.get(i);if(r){n.parentId=r.id,r.children.push(n);break}i=i.parentElement}}}function Ir(t){let{startResolver:e,timelineRegistry:n,rootDuration:i}=t,r=new Map,o=document.querySelector("[data-composition-id]"),s=0;for(let c of document.querySelectorAll("[data-start]")){if(c===o||Ya.has(c.tagName))continue;let a=e.resolveStartForElement(c,0);if(Za(c,n,i,a)<=0)continue;let l={id:Zn(c)??`__clip-${s++}`,element:c,parentId:null,children:[]};r.set(c,l)}return el(r),{roots:Array.from(r.values()).filter(c=>c.parentId===null)}}var tl="data-hf-authored-duration",nl="data-hf-authored-end";function it(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function il(t){return it(t.getAttribute("data-duration"))}function rl(t){return it(t.getAttribute("data-end"))}function ol(t){return it(t.getAttribute(tl))}function sl(t){return it(t.getAttribute(nl))}function al(t){let e=(t??"").trim();if(!e)return null;let n=it(e);if(n!=null)return{kind:"absolute",value:n};let i=e.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",c=Number.parseFloat(s),a=Number.isFinite(c)?Math.max(0,c):0,l=o==="-"?-a:a;return{kind:"reference",refId:r,offset:l}}function ze(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},c=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,g=il(u)??(n?ol(u):null);if(g!=null&&g>0&&(f=g),f==null||f<=0){let A=rl(u)??(n?sl(u):null);if(A!=null){let y=l(u,0),x=A-y;Number.isFinite(x)&&x>0&&(f=x)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let A=it(u.getAttribute("data-playback-start"))??it(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>A&&(f=(u.duration-A)/Nt(u))}if(f==null||f<=0){let A=u.getAttribute("data-composition-id");if(A){let y=e[A]??null;if(y&&typeof y.duration=="function")try{let x=Number(y.duration());Number.isFinite(x)&&x>0&&(f=x)}catch(x){v("runtime.startResolver.site1",x)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let g=u.parentElement?.closest("[data-composition-id]");return g?l(g,m):0}let f=u.closest("[data-composition-id]");return f?l(f,m):0},l=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let g=al(u.getAttribute("data-start"));if(!g){if(u.hasAttribute("data-composition-id")){let N=u.parentElement;if(N&&(N.hasAttribute("data-composition-src")||N.hasAttribute("data-composition-id")||N.hasAttribute("data-composition-file"))){let L=l(N,m);return i.set(u,L),L}}return i.set(u,m),m}if(g.kind==="absolute"){let N=Math.max(0,g.value),L=Math.max(0,a(u,m)+N);return i.set(u,L),L}let A=s(g.refId);if(!A)return i.set(u,m),m;let y=l(A,0),x=c(A);if(x==null||x<=0){let N=Math.max(0,y+g.offset);return i.set(u,N),N}let w=Math.max(0,y+x+g.offset);return i.set(u,w),w}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>l(u,Math.max(0,m)),resolveDurationForElement:u=>c(u)}}function ei(t){let e=t.trim().toLowerCase();return!(!e||e==="main"||e.includes("caption")||e.includes("ambient"))}var ll="data-hf-authored-duration",ul="data-hf-authored-end";function Ce(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function ti(t){return Ce(t.getAttribute("data-duration"))??Ce(t.getAttribute(ll))}function Pr(t){return Ce(t.getAttribute("data-end"))??Ce(t.getAttribute(ul))}function ni(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Or={composition:0,video:1,image:2,element:3,audio:4};function cl(t){if(t.length===0)return;let e=new Map;for(let s of t){let c=e.get(s.track)??new Set;c.add(s.kind),e.set(s.track,c)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,c)=>s-c);for(let s of o){let c=e.get(s);if(c.size===1)r.set(`${s}:${[...c][0]}`,i++);else{let a=[...c].sort((l,u)=>(Or[l]??99)-(Or[u]??99));for(let l of a)r.set(`${s}:${l}`,i++)}}for(let s of t){let c=`${s.track}:${s.kind}`,a=r.get(c);a!=null&&(s.track=a)}}function vt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Br(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return vt(e);let n=t.getAttribute("data-composition-src");if(n)return vt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?vt(i.getAttribute("src")):null}function dl(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function fl(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function ml(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function Lt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function pl(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return Lt(r);let o=t.id;if(o)return Lt(o);let s=dl(t);if(s)return Lt(s);let c=fl(Br(t));if(c)return Lt(c);let a=ml(t);return a||`${Lt(e)} ${n+1}`}function Hr(t){let n=window.__timelines??{},i=ze({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 W=Number(D.duration());return Number.isFinite(W)&&W>0?W:null}catch{return null}},o=O=>{let D=Ce(O.getAttribute("data-duration"));if(D!=null&&D>0)return D;let W=Ce(O.getAttribute("data-playback-start"))??Ce(O.getAttribute("data-media-start"))??0;return Number.isFinite(O.duration)&&O.duration>W?Math.max(0,(O.duration-W)/Nt(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 W of O){let Q=W.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(W,0):Math.max(0,Number(W.getAttribute("data-start")??0)||0);if(!Number.isFinite(Q))continue;let ae=o(W);ae==null||ae<=0||(D=Math.max(D,Math.max(0,Q)+ae))}return D>0?D:null},c=(O,D)=>{let W=[],Q=null,ae=null,q=null,z=O.parentElement;for(;z;){let X=z.getAttribute("data-composition-id");X&&(W.push(X),!q&&z!==D&&(q=X),Q==null&&(Q=i.resolveStartForElement(z,0)),ae==null&&(ae=Ce(z.getAttribute("data-duration"))??r(X)??null)),z=z.parentElement}return{parentCompositionId:q,compositionAncestors:W.reverse(),inheritedStart:Q,inheritedDuration:ae}},a=document.querySelector("[data-composition-id]"),l=Array.from(document.querySelectorAll("[data-composition-id]")),u=a?.getAttribute("data-composition-id")??null,m=a?i.resolveStartForElement(a,0):0,f=s(),g=f!=null?Math.max(0,f-Math.max(0,m)):null,A=r(u),y=ti(a??document.body),x=ni(...l.filter(O=>O!==a).map(O=>{let D=i.resolveStartForElement(O,0),W=i.resolveDurationForElement(O)??r(O.getAttribute("data-composition-id"))??null;return!Number.isFinite(D)||W==null||W<=0?null:Math.max(0,D)+W})),w=x!=null?Math.max(0,x-Math.max(0,m)):null,N=typeof A=="number"&&Number.isFinite(A)&&A>0?A:null,L=typeof y=="number"&&Number.isFinite(y)&&y>0?y:null,$=typeof g=="number"&&Number.isFinite(g)&&g>0?g:null,B=typeof w=="number"&&Number.isFinite(w)&&w>0?w:null,_=ni($,B),S=N!=null&&_!=null&&N>_+1,F=L??(S?_:ni(N,$,B))??null,R=(F!=null?m+F:null)??(typeof f=="number"&&Number.isFinite(f)&&f>0?f:null),G=(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)),j=[],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 W=c(D,a),Q=i.resolveStartForElement(D,W.inheritedStart??0),ae=D.getAttribute("data-composition-id"),q=ti(D);if((q==null||q<=0)&&ae&&ae!==u&&(q=r(ae)),(q==null||q<=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&&(q=Math.max(0,D.duration-Me))}if(q==null||q<=0){let Me=W.inheritedDuration;if(Me!=null&&Me>0){let He=(W.inheritedStart??0)+Me;q=Math.max(0,He-Q)}}if(q==null||q<=0||(q=G(Q,q),q<=0))continue;let z=Q+q;se=Math.max(se,z);let X=D.tagName.toLowerCase(),Ie=ae&&ae!==u?"composition":X==="video"?"video":X==="audio"?"audio":X==="img"?"image":"element";j.push({id:Zn(D)??ae??null,label:pl(D,Ie,j.length),start:Q,duration:q,track:Number.parseInt(D.getAttribute("data-track-index")??D.getAttribute("data-track")??String(O),10)||0,kind:Ie,tagName:X,compositionId:D.getAttribute("data-composition-id"),compositionAncestors:W.compositionAncestors,parentCompositionId:W.parentCompositionId,nodePath:null,compositionSrc:vt(D.getAttribute("data-composition-src")),assetUrl:Br(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 Se=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)??[],W=new Map;for(let q of a.children){let z=q;if(!z.id)continue;let X=z.tagName.toLowerCase();X==="script"||X==="style"||X==="link"||W.set(z,{id:z.id,start:1/0,end:-1/0})}let Q=q=>{let z=q;for(;z;){if(W.has(z))return z;if(z===a)return null;z=z.parentElement}return null};for(let q of D){if(typeof q.targets!="function"||typeof q.startTime!="function"||typeof q.duration!="function")continue;let z=q.startTime(),X=q.parent;for(;X&&X!==U&&typeof X.startTime=="function";)z+=X.startTime(),X=X.parent;let Ie=z+q.duration();if(!(!Number.isFinite(z)||!Number.isFinite(Ie)))for(let Me of q.targets()){if(!(Me instanceof Element))continue;let bt=Q(Me);if(!bt)continue;let He=W.get(bt);He&&(He.start=Math.min(He.start,z),He.end=Math.max(He.end,Ie))}}let ae=j.length>0?Math.max(...j.map(q=>q.track))+1:0;for(let[q,z]of W){if(z.start===1/0||z.end===-1/0)continue;let X=q;if(Se.has(X.id))continue;let Ie=Math.max(0,z.end-z.start);if(Ie<=0)continue;let Me=G(z.start,Ie);Me<=0||(se=Math.max(se,z.start+Me),j.push({id:X.id,label:X.getAttribute("data-timeline-label")??X.getAttribute("data-label")??X.getAttribute("aria-label")??X.id,start:z.start,duration:Me,track:Number.parseInt(X.getAttribute("data-track-index")??X.getAttribute("data-track")??"",10)||ae,kind:"element",tagName:X.tagName.toLowerCase(),compositionId:X.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:X.getAttribute("data-timeline-role"),timelineLabel:X.getAttribute("data-timeline-label"),timelineGroup:X.getAttribute("data-timeline-group"),timelinePriority:Ce(X.getAttribute("data-timeline-priority"))}),Se.add(X.id))}}catch(D){v("runtime.timeline.site1",D)}}if(a&&F!=null&&F>0){let O=j.length>0?Math.max(...j.map(D=>D.track))+1:0;for(let D of a.children){let W=D;if(!W.id||Se.has(W.id))continue;let Q=W.getAttribute("data-timeline-role");if(Q!=="overlay"&&Q!=="persistent-overlay")continue;let ae=W.tagName.toLowerCase();if(ae==="script"||ae==="style"||ae==="link"||ae==="meta"||window.getComputedStyle(W).display==="none")continue;let z=G(0,F);z<=0||(se=Math.max(se,z),j.push({id:W.id,label:W.getAttribute("data-timeline-label")??W.getAttribute("data-label")??W.getAttribute("aria-label")??W.id,start:0,duration:z,track:Number.parseInt(W.getAttribute("data-track-index")??W.getAttribute("data-track")??"",10)||O,kind:"element",tagName:ae,compositionId:W.getAttribute("data-composition-id"),compositionAncestors:H?[H]:[],parentCompositionId:H,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:Q,timelineLabel:W.getAttribute("data-timeline-label"),timelineGroup:W.getAttribute("data-timeline-group"),timelinePriority:Ce(W.getAttribute("data-timeline-priority"))}),Se.add(W.id))}}cl(j);for(let O of l){if(O===a)continue;let D=O.getAttribute("data-composition-id");if(!D||!ei(D))continue;let W=i.resolveStartForElement(O,0),Q=ti(O);if((Q==null||Q<=0)&&Pr(O)!=null){let X=Pr(O);Q=Math.max(0,X-W)}let ae=r(D),q=Q&&Q>0?Q:ae;if(q==null||q<=0)continue;let z=G(W,q);z<=0||ie.push({id:D,label:O.getAttribute("data-label")??D,start:W,duration:z,thumbnailUrl:vt(O.getAttribute("data-thumbnail-url")),avatarName:null})}let V=Math.max(1,se||1,F??0);return{source:"hf-preview",type:"timeline",durationInFrames:S&&L==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(V*Math.max(1,t.canonicalFps))),clips:j,scenes:ie,compositionWidth:Ce(a?.getAttribute("data-width"))??1920,compositionHeight:Ce(a?.getAttribute("data-height"))??1080}}var ce=Ia(ds(),1),fs=ce.default,up=ce.default.stringify,cp=ce.default.fromJSON,dp=ce.default.plugin,fp=ce.default.parse,mp=ce.default.list,pp=ce.default.document,hp=ce.default.comment,xp=ce.default.atRule,gp=ce.default.rule,yp=ce.default.decl,bp=ce.default.root,Sp=ce.default.CssSyntaxError,Ap=ce.default.Declaration,Ep=ce.default.Container,wp=ce.default.Processor,Cp=ce.default.Document,Fp=ce.default.Comment,Mp=ce.default.Warning,Np=ce.default.AtRule,_p=ce.default.Result,Tp=ce.default.Input,Lp=ce.default.Rule,vp=ce.default.Root,Rp=ce.default.Node;var _i="data-hf-authored-id",ms="data-hf-inner-root";function Ti(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Li(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Pu(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function ps(t){let e=t.trim();return e?Array.from(new Set([e,Pu(e)])).filter(Boolean):[]}function Ou(t){return!!t&&/[\\w-]/.test(t)}function Bu(t,e,n){let i=ps(e).sort((c,a)=>a.length-c.length);if(i.length===0)return t;let r="",o=0,s=null;for(let c=0;c<t.length;c+=1){let a=t[c],l=c>0?t[c-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 u=i.find(m=>t.startsWith(m,c+1));if(u){let m=t[c+1+u.length];if(!Ou(m)){r+=n,c+=u.length;continue}}}r+=a}return r}function Hu(t,e){let n=e?.trim();return n?Bu(t,n,`[${_i}="${Li(n)}"]`):t}function Wu(t,e,n,i,r){let o=Hu(t,i),s=Gu(o,e,n),c=s.trim();if(!c||/^(html|body|:root|\\*)$/i.test(c))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Ti(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(c))return c.replace(a,"").trim()===""?`${e}:not(:has([${ms}])), ${e} > [${ms}]`:s.replace(a,e);let l=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${_i}="${Li(i)}"]`:null;if(m&&c.startsWith(m)){let f=c.slice(m.length);return`${l}${e}${m}${f}${u}`}}return`${l}${e} ${c}${u}`}function Gu(t,e,n){let i=Ti(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 t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var Uu=new Set(["keyframes","-webkit-keyframes","font-face"]);function Vu(t){return t?.type==="atrule"}function zu(t){let e=t.parent;for(;e;){if(Vu(e)&&Uu.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function vi(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Li(o)}"]`,c=fs.parse(t);return c.walkRules(a=>{zu(a)||(a.selectors=a.selectors.map(l=>Wu(l,s,o,i,r?.compoundAuthoredRoot)))}),c.toResult({map:!1}).css}function hs(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),c=JSON.stringify(r),a=JSON.stringify(n),l=Ti(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${l}"|\'${l}\')\\s*\\]`),g=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),A=JSON.stringify(ps(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${c};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(_i)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${g};\n var __hfAuthoredRootIdForms = ${A};\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 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${t.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 xs(){if(typeof document>"u")return{};let t=Ri(document.documentElement),e=ju();return{...t,...e}}function Ri(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}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 ju(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var qu=8e3,$u=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/,Ku=/\\burl\\(\\s*(["\']?)([^)"\']+)\\1\\s*\\)/g,Ju=["src","href"];function Yu(t){return!t||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//")||t.startsWith("data:")||t.startsWith("#")||t.startsWith("/")}function ys(t,e){if(!e)return t;let n=t.trim();if(Yu(n)||!n.startsWith("../")&&n!=="..")return t;try{return new URL(n,e).href}catch{return t}}function bs(t,e){return!e||!t?t:t.replace(Ku,(n,i,r)=>{let o=ys(r||"",e);return o===r?n:`url(${i||""}${o}${i||""})`})}function Xu(t,e){for(let n of Array.from(t.querySelectorAll("[src], [href]")))for(let i of Ju){let r=n.getAttribute(i);if(r==null)continue;let o=ys(r,e);o!==r&&n.setAttribute(i,o)}}function Qu(t,e){for(let n of Array.from(t.querySelectorAll("[style]"))){let i=n.getAttribute("style");if(i==null)continue;let r=bs(i,e);r!==i&&n.setAttribute("style",r)}}function Zu(t,e){for(let n of Array.from(t.querySelectorAll("style"))){let i=n.textContent||"",r=bs(i,e);r!==i&&(n.textContent=r)}}function Ss(t,e){if(e){Xu(t,e),Qu(t,e),Zu(t,e);for(let n of Array.from(t.querySelectorAll("template")))Ss(n.content,e)}}function ec(t,e){return`${t}__hf${e}`}var tc=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),qu)});function ki(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var nc=["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 ic(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of nc)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function gs(t,e){let n=t.trim();if(!n)return t;try{return $u.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function rc(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function Fn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function oc(t){let e=new Map;for(let n of t){let i=Fn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function As(t){let e=Fn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function sc(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function ac(t){return t.hasAttribute("data-composition-src")?!0:As(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:sc(t):!1}function Ii(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:As(e))}function Es(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(Ii().map(n=>Fn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function ws(t,e=oc(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=Fn(r),c=ac(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,l=s||o;if(c){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),l=a?ec(o,u):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 Di(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(g=>g.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let g=f.getAttribute("href")||"";g&&(document.head.querySelector(`link[href="${CSS.escape(g)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let c=Array.from(n.querySelectorAll("style"));for(let f of c){let g=f.cloneNode(!0);g instanceof HTMLStyleElement&&(i&&(g.textContent=vi(g.textContent||"",i,s,o)),document.head.appendChild(g),t.injectedStyles.push(g))}let a=[];if(t.headScripts)for(let f of t.headScripts){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=gs(A,t.compositionUrl);a.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&a.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}}let l=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of l){let g=f.getAttribute("type")?.trim()??"",A=f.getAttribute("src")?.trim()??"";if(A){let y=gs(A,t.compositionUrl);u.push({kind:"external",src:y,type:g})}else{let y=f.textContent?.trim()??"";y&&u.push({kind:"inline",content:y,type:g,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),g=e.getAttribute("data-height"),A=t.parseDimensionPx(f),y=t.parseDimensionPx(g);f&&t.host.setAttribute("data-width",f),g&&t.host.setAttribute("data-height",g),A&&t.host instanceof HTMLElement&&(t.host.style.width=A),y&&t.host instanceof HTMLElement&&(t.host.style.height=y),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(ic(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...rc(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let g=document.createElement("script");if(f.type&&(g.type=f.type),g.async=!1,f.kind==="external"?g.src=f.src:f.type.toLowerCase()==="module"?g.textContent=f.content:f.scopeCompositionId?g.textContent=hs(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):g.textContent=`(function(){${f.content}})();`,document.body.appendChild(g),t.injectedScripts.push(g),f.kind==="external"){let A=await tc(g);A.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:A.status,elapsedMs:A.elapsedMs}})}}}async function Cs(t){let e=Ii();if(Es(),e.length===0)return;let n=ws(e),i=e.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 c=document.querySelector(`template#${CSS.escape(s)}-template`);ki(r),await Di({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:c.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Fs(t){let e=Ii();if(Es(),e.length===0)return;let n=ws(e),i=e.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),c=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||c||null,l=null;try{l=new URL(o,document.baseURI)}catch{l=null}ki(r);try{let u=c!=null?document.querySelector(`template#${CSS.escape(c)}-template`):null;if(u){await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),A=new DOMParser().parseFromString(f,"text/html");Ss(A,l);let y=(c?A.querySelector(`template#${CSS.escape(c)}-template`):null)??A.querySelector("template"),x=y?y.content:A.body,w=y?void 0:Array.from(A.head.querySelectorAll("style")),N=y?void 0:Array.from(A.head.querySelectorAll("script")),L=y?void 0:Array.from(A.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await Di({host:r,authoredCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:x,hasTemplate:!!y,fallbackBodyInnerHtml:A.body.innerHTML,compositionUrl:l,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:w,headScripts:N,headLinks:L,declaredVariableDefaults:Ri(A.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:c,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),ki(r)}}))}function lc(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function uc(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)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&&t.push(r)}return t}function cc(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function Pi(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=uc();for(let i of e){let r=null;if(i.wordId&&(r=lc(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=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),l=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===l?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let c=cc(r);t.set(c,o)}}}).catch(()=>{})}var Xt="data-color-grading",dc="rec709",Je={exposure:0,contrast:0,highlights:0,shadows:0,whites:0,blacks:0,temperature:0,tint:0,saturation:0},Ms=["exposure","contrast","highlights","shadows","whites","blacks","temperature","tint","saturation"],fc=[{id:"neutral",label:"Neutral",adjust:{...Je}},{id:"warm-clean",label:"Warm Clean",adjust:{...Je,exposure:.05,contrast:.08,highlights:-.08,shadows:.08,temperature:.16,saturation:.06}},{id:"cool-clean",label:"Cool Clean",adjust:{...Je,contrast:.06,highlights:-.06,shadows:.06,temperature:-.12,tint:.04,saturation:.04}},{id:"soft-boost",label:"Soft Boost",adjust:{...Je,exposure:.06,contrast:-.04,highlights:-.14,shadows:.16,saturation:.1}},{id:"bright-pop",label:"Bright Pop",adjust:{...Je,exposure:.12,contrast:.12,whites:.08,blacks:-.04,saturation:.14}},{id:"deep-contrast",label:"Deep Contrast",adjust:{...Je,exposure:-.03,contrast:.2,highlights:-.08,shadows:-.08,blacks:-.12,saturation:.06}}],mc=new Map(fc.map(t=>[t.id,t])),pc=/^\\$(?:\\{([A-Za-z0-9_.:-]+)\\}|([A-Za-z0-9_.:-]+))$/,hc={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},saturation:{min:-1,max:1}};function Yt(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function xc(t,e,n){return Number.isFinite(t)?Math.min(n,Math.max(e,t)):0}function Ns(t,e){let n=typeof t=="number"?t:Number(t);return Number.isFinite(n)?Math.min(1,Math.max(0,n)):e}function gc(t,e){let n=typeof t=="number"?t:Number(t);if(!Number.isFinite(n))return 0;let i=hc[e];return xc(n,i.min,i.max)}function yc(t){if(t==null)return null;let e=String(t).trim();return e||null}function bc(t){if(t==null)return null;if(typeof t=="string"){let n=t.trim();return n?{src:n,intensity:1}:null}if(!Yt(t))return null;let e=t.src;return typeof e!="string"||e.trim()===""?null:{src:e.trim(),intensity:Ns(t.intensity,1)}}function Sc(t){if(typeof t=="string"){let e=t.trim();if(!e)return null;if(e.startsWith("{"))try{let n=JSON.parse(e);return Yt(n)?n:null}catch{return null}return{preset:e,intensity:1}}return Yt(t)?t:null}function Ac(t,e){let n=t.trim().match(pc);if(!n)return t;let i=n[1]??n[2]??"";return i&&Object.hasOwn(e,i)?e[i]:t}function Oi(t,e){if(typeof t=="string"){let i=Ac(t,e);if(i!==t)return i;let r=t.trim();if(!r.startsWith("{"))return t;try{return Oi(JSON.parse(r),e)}catch{return t}}if(!Yt(t))return t;let n={};for(let[i,r]of Object.entries(t))n[i]=Oi(r,e);return n}function Ec(t){return t?mc.get(t)??null:null}function Bi(t){let e=Sc(t);if(!e||e.enabled===!1)return null;let n=yc(e.preset),r=Ec(n)?.adjust??Je,o=Yt(e.adjust)?e.adjust:{},s=Ms.reduce((c,a)=>(c[a]=gc(o[a]??r[a],a),c),{...Je});return{enabled:!0,preset:n,intensity:Ns(e.intensity,1),adjust:s,lut:bc(e.lut),colorSpace:typeof e.colorSpace=="string"&&e.colorSpace.trim()?e.colorSpace.trim():dc}}function _s(t,e){return Bi(Oi(t,e))}function Qt(t){return!t?.enabled||t.intensity===0?!1:t.lut&&t.lut.intensity!==0?!0:Ms.some(e=>Math.abs(t.adjust[e])>1e-4)}var we=class extends Error{constructor(n,i=null){super(i==null?n:`${n} at line ${i}`);ge(this,"lineNumber");this.name="CubeLutParseError",this.lineNumber=i}},wc=[0,0,0],Cc=[1,1,1],Fc=64;function Mc(t){let e=!1;for(let n=0;n<t.length;n++){let i=t[n];if(i===\'"\'&&(e=!e),i==="#"&&!e)return t.slice(0,n)}return t}function ht(t,e){let n=Number(t);if(!Number.isFinite(n))throw new we(`Invalid number "${t}"`,e);return n}function Ts(t,e,n){if(t.length!==3)throw new we(`${e} expects three numbers`,n);return[ht(t[0],n),ht(t[1],n),ht(t[2],n)]}function Ls(t,e,n){if(!t)throw new we(`${e} expects a size`,n);let i=Number(t);if(!Number.isInteger(i)||i<2)throw new we(`${e} must be an integer greater than 1`,n);return i}function Nc(t,e){if(e[0]<=t[0]||e[1]<=t[1]||e[2]<=t[2])throw new we("DOMAIN_MAX values must be greater than DOMAIN_MIN values")}function _c(t){let e=/^TITLE\\s+"([^"]*)"\\s*$/i.exec(t);if(e)return e[1]??null;let n=/^TITLE\\s+(.+)\\s*$/i.exec(t);return n&&(n[1]??"").trim()||null}function Tc(t){return/^[+-]?(?:\\d|\\.\\d)/.test(t)}function vs(t,e={}){let n=e.maxSize??Fc,i=null,r=wc,o=Cc,s=null,c=null,a=[],l=t.replace(/^\\uFEFF/,"").split(/\\r?\\n/);for(let m=0;m<l.length;m++){let f=m+1,g=Mc(l[m]??"").trim();if(!g)continue;let A=g.split(/\\s+/),y=(A[0]??"").toUpperCase(),x=A.slice(1);if(y==="TITLE"){i=_c(g);continue}if(y==="DOMAIN_MIN"){r=Ts(x,y,f);continue}if(y==="DOMAIN_MAX"){o=Ts(x,y,f);continue}if(y==="LUT_1D_SIZE"){s=Ls(x[0],y,f);continue}if(y==="LUT_3D_SIZE"){if(c=Ls(x[0],y,f),c>n)throw new we(`LUT_3D_SIZE ${c} exceeds max ${n}`,f);continue}if(!Tc(y)){if(y.startsWith("LUT_"))throw new we(`Unsupported cube keyword ${y}`,f);continue}if(!c)throw s?new we("1D cube LUTs are not supported yet",f):new we("LUT data appears before LUT_3D_SIZE",f);if(A.length!==3)throw new we("LUT data rows must contain three numbers",f);a.push(ht(A[0],f),ht(A[1],f),ht(A[2],f))}if(s&&c)throw new we("Mixed 1D and 3D cube LUTs are not supported yet");if(!c)throw s?new we("1D cube LUTs are not supported yet"):new we("Missing LUT_3D_SIZE");Nc(r,o);let u=c*c*c;if(a.length!==u*3)throw new we(`Expected ${u} LUT rows for size ${c}, found ${a.length/3}`);return{title:i,size:c,domainMin:r,domainMax:o,data:new Float32Array(a)}}function Lc(t){return Number.isFinite(t)?Math.min(1,Math.max(0,t)):0}function Hi(t){return Math.round(Lc(t)*255)}function Rs(t){let e=t.size,n=e*e,i=e,r=new Uint8Array(n*i*4);for(let o=0;o<e;o++)for(let s=0;s<e;s++)for(let c=0;c<e;c++){let a=((o*e+s)*e+c)*3,l=(s*n+o*e+c)*4;r[l]=Hi(t.data[a]??0),r[l+1]=Hi(t.data[a+1]??0),r[l+2]=Hi(t.data[a+2]??0),r[l+3]=255}return{width:n,height:i,data:r}}var Mn=new Map,vc="data-hf-color-grading-canvas",Os="data-hf-color-grading-source-hidden",Rc="__hf_color_grading_canvas__",kc=64,Zt={enabled:!1,position:.5,softness:0,lineWidth:2};function Dc(t){let e=window,i=t.closest("[data-composition-id]")?.getAttribute("data-composition-id")?.trim()??"",r=i?e.__hfVariablesByComp?.[i]:void 0;if(r)return r;let o=e.__hyperframes?.getVariables?.();return o&&typeof o=="object"?o:e.__hfVariables??{}}function Wi(t){let e=t.getAttribute(Xt);return e==null?null:_s(e,Dc(t))}var Ic=["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`),Pc=["#ifdef GL_FRAGMENT_PRECISION_HIGH","precision highp float;","#else","precision mediump float;","#endif","varying vec2 v_uv;","uniform sampler2D u_source;","uniform sampler2D u_lut;","uniform vec2 u_resolution;","uniform vec2 u_uvScale;","uniform vec2 u_uvOffset;","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_saturation;","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)); }","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 sampleColor = texture2D(u_source, uv);"," vec3 original = sampleColor.rgb;"," vec3 color = original * 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;"," color += u_blacks * 0.25 * (1.0 - smoothstep(0.0, 0.35, y));"," color += u_whites * 0.25 * smoothstep(0.65, 1.0, y);"," 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);"," 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);"," 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`);function st(t){return t instanceof HTMLVideoElement||t instanceof HTMLImageElement}function ks(t,e,n){let i=t.createShader(n);return i?(t.shaderSource(i,e),t.compileShader(i),t.getShaderParameter(i,t.COMPILE_STATUS)?i:(v("runtime.colorGrading.compileShader",t.getShaderInfoLog(i)),t.deleteShader(i),null)):null}function Oc(t){let e=ks(t,Ic,t.VERTEX_SHADER),n=ks(t,Pc,t.FRAGMENT_SHADER);if(!e||!n)return e&&t.deleteShader(e),n&&t.deleteShader(n),null;let i=t.createProgram();return i?(t.attachShader(i,e),t.attachShader(i,n),t.linkProgram(i),t.deleteShader(e),t.deleteShader(n),t.getProgramParameter(i,t.LINK_STATUS)?i:(v("runtime.colorGrading.linkProgram",t.getProgramInfoLog(i)),t.deleteProgram(i),null)):null}function Ds(t,e=t.LINEAR){let n=t.createTexture();return n?(t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,e),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,null),n):null}function Bc(t){let e=t.getContext("webgl",{alpha:!0,premultipliedAlpha:!1,preserveDrawingBuffer:!0});if(!e)return null;let n=Oc(e),i=Ds(e),r=Ds(e,e.NEAREST);if(!n||!i||!r)return n&&e.deleteProgram(n),i&&e.deleteTexture(i),r&&e.deleteTexture(r),null;let o=e.createBuffer();return o?(e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW),{gl:e,program:{program:n,texture:i,lutTexture:r,position:e.getAttribLocation(n,"a_pos"),source:e.getUniformLocation(n,"u_source"),lut:e.getUniformLocation(n,"u_lut"),resolution:e.getUniformLocation(n,"u_resolution"),uvScale:e.getUniformLocation(n,"u_uvScale"),uvOffset:e.getUniformLocation(n,"u_uvOffset"),lutEnabled:e.getUniformLocation(n,"u_lutEnabled"),lutSize:e.getUniformLocation(n,"u_lutSize"),lutTextureSize:e.getUniformLocation(n,"u_lutTextureSize"),lutDomainMin:e.getUniformLocation(n,"u_lutDomainMin"),lutDomainMax:e.getUniformLocation(n,"u_lutDomainMax"),lutIntensity:e.getUniformLocation(n,"u_lutIntensity"),exposure:e.getUniformLocation(n,"u_exposure"),contrast:e.getUniformLocation(n,"u_contrast"),highlights:e.getUniformLocation(n,"u_highlights"),shadows:e.getUniformLocation(n,"u_shadows"),whites:e.getUniformLocation(n,"u_whites"),blacks:e.getUniformLocation(n,"u_blacks"),temperature:e.getUniformLocation(n,"u_temperature"),tint:e.getUniformLocation(n,"u_tint"),saturation:e.getUniformLocation(n,"u_saturation"),intensity:e.getUniformLocation(n,"u_intensity"),compareEnabled:e.getUniformLocation(n,"u_compareEnabled"),comparePosition:e.getUniformLocation(n,"u_comparePosition"),compareSoftness:e.getUniformLocation(n,"u_compareSoftness"),compareLineWidth:e.getUniformLocation(n,"u_compareLineWidth")}}):(e.deleteProgram(n),e.deleteTexture(i),e.deleteTexture(r),null)}function Hc(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Wc(t){if(!Hc(t))return{...Zt};let e=(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:t.enabled===!0,position:e(t.position,Zt.position,0,1),softness:e(t.softness,Zt.softness,0,.25),lineWidth:e(t.lineWidth,Zt.lineWidth,0,12)}}function Bs(t){try{let e=new URL(t,document.baseURI);return e.protocol==="data:"?{href:e.href}:e.protocol!=="http:"&&e.protocol!=="https:"?{error:"LUT must be project-local or a data URL"}:e.origin!==window.location.origin?{error:"Remote LUT URLs are not supported"}:{href:e.href}}catch{return{error:"Invalid LUT URL"}}}function Ui(t){return t instanceof Error?t.message:"LUT failed to load"}function Gc(t){let e=Bs(t);if("error"in e)return{state:"error",message:e.error};let n=Mn.get(e.href);if(n)return n;let i=fetch(e.href,{credentials:"same-origin"}).then(o=>{if(!o.ok)throw new Error(`Failed to load LUT (${o.status})`);return o.text()}).then(o=>vs(o,{maxSize:kc})),r={state:"pending",promise:i};return Mn.set(e.href,r),i.then(o=>Mn.set(e.href,{state:"ready",lut:o}),o=>Mn.set(e.href,{state:"error",message:Ui(o)})),r}function Is(t,e,n){if(t.lut?.src===e)return t.lut;let i=Rs(n),{gl:r,program:o}=t;try{return r.activeTexture(r.TEXTURE1),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),t.lut={src:e,title:n.title,size:n.size,domainMin:n.domainMin,domainMax:n.domainMax,textureWidth:i.width,textureHeight:i.height},t.lutError=null,t.lutLoadingSrc=null,t.lut}catch(s){return t.lut=null,t.lutError=Ui(s),t.lutLoadingSrc=null,v("runtime.colorGrading.uploadLut",s),null}}function Uc(t){let e=t.grading.lut?.src.trim()??"",n=t.grading.lut?.intensity??1;if(!e||n<=0)return t.lut=null,t.lutLoadingSrc=null,t.lutError=null,null;let i=Bs(e);if("error"in i)return t.lut=null,t.lutLoadingSrc=null,t.lutError=i.error,null;if(t.lut?.src===i.href)return t.lut;t.lut=null;let r=Gc(e);return r.state==="ready"?Is(t,i.href,r.lut):r.state==="error"?(t.lutError=r.message,t.lutLoadingSrc=null,null):(t.lutLoadingSrc!==i.href&&(t.lutLoadingSrc=i.href,t.lutError=null,r.promise.then(o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(Is(t,i.href,o),Ue(t))},o=>{t.destroyed||t.grading.lut?.src.trim()!==e||(t.lut=null,t.lutError=Ui(o),t.lutLoadingSrc=null,Ue(t))})),null)}function Gi(t){if(!t)return null;if(typeof t=="string"){let e=t.trim();if(!e)return null;let n=document.getElementById(e.replace(/^#/,""));if(n&&st(n))return n;try{let i=document.querySelector(e);return i&&st(i)?i:null}catch{return null}}if(t.hfId){let e=document.querySelector(`[data-hf-id="${CSS.escape(t.hfId)}"]`);if(e&&st(e))return e}if(t.id){let e=document.getElementById(t.id);if(e&&st(e))return e}if(!t.selector)return null;try{let e=Array.from(document.querySelectorAll(t.selector)),n=Math.max(0,Math.floor(Number(t.selectorIndex??0)||0)),i=e[n]??null;return i&&st(i)?i:null}catch{return null}}function Vc(t){return t instanceof HTMLVideoElement?t.videoWidth>0&&t.videoHeight>0?{width:t.videoWidth,height:t.videoHeight}:null:t instanceof HTMLImageElement&&t.naturalWidth>0&&t.naturalHeight>0?{width:t.naturalWidth,height:t.naturalHeight}:null}function Hs(t){return t instanceof HTMLVideoElement?t.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&t.videoWidth>0&&t.videoHeight>0:t instanceof HTMLImageElement?t.complete&&t.naturalWidth>0&&t.naturalHeight>0:!1}function zc(t){if(!t.id)return null;let e=document.getElementById(`__render_frame_${t.id}__`);return e instanceof HTMLImageElement&&Hs(e)?e:null}function jc(t){if(t instanceof HTMLVideoElement){let e=zc(t);if(e)return e}return Hs(t)?t:null}function Ps(t,e){let n=t.toLowerCase();if(n==="center")return .5;if(e==="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 qc(t){let e=t.trim().split(/\\s+/).filter(Boolean),n=.5,i=.5;for(let r=0;r<e.length;r++){let o=e[r]??"",s=Ps(o,"x"),c=Ps(o,"y");if(s!==null&&(o==="left"||o==="right"||o.endsWith("%")&&r===0)){n=s;continue}if(c!==null&&(o==="top"||o==="bottom"||o.endsWith("%")&&r>0)){i=c;continue}}return{x:n,y:i}}function $c(t,e,n,i,r,o){if(t<=0||e<=0||n<=0||i<=0)return{scaleX:1,scaleY:1,offsetX:0,offsetY:0};let s=r||"fill",c=t,a=e;if(s==="contain"||s==="cover"||s==="scale-down"){let f=s==="cover"?Math.max(t/n,e/i):Math.min(t/n,e/i);c=n*f,a=i*f,s==="scale-down"&&c>n&&a>i&&(c=n,a=i)}else s==="none"&&(c=n,a=i);let l=qc(o||"center"),u=(t-c)*l.x/t,m=(e-a)*l.y/e;return{scaleX:c/t,scaleY:a/e,offsetX:u,offsetY:m}}function Kc(t,e){window.getComputedStyle(e).position==="static"&&(t.touchedParent||(t.touchedParent=e,t.parentInlinePosition=e.style.position||null),e.style.position="relative")}function Jc(t,e){let{element:n,canvas:i}=t,r=n.parentElement;r&&Kc(t,r);let o=window.getComputedStyle(e);vr(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=t.sourceOpacityForCanvas,i.style.visibility=t.sourceVisibleForCanvas?"visible":"hidden";let s=n.getBoundingClientRect(),c=Math.max(0,Math.round(n.offsetWidth||s.width)),a=Math.max(0,Math.round(n.offsetHeight||s.height));return c<=0||a<=0?(i.style.display="none",null):(i.width!==c&&(i.width=c),i.height!==a&&(i.height=a),{width:c,height:a})}function Yc(t,e,n,i,r,o,s){t.uniform1i(e.source,0),t.uniform1i(e.lut,1),t.uniform2f(e.resolution,o.width,o.height),t.uniform2f(e.uvScale,s.scaleX,s.scaleY),t.uniform2f(e.uvOffset,s.offsetX,s.offsetY),t.uniform1f(e.lutEnabled,i?1:0),t.uniform1f(e.lutSize,i?.size??2),t.uniform2f(e.lutTextureSize,i?.textureWidth??1,i?.textureHeight??1),t.uniform3f(e.lutDomainMin,i?.domainMin[0]??0,i?.domainMin[1]??0,i?.domainMin[2]??0),t.uniform3f(e.lutDomainMax,i?.domainMax[0]??1,i?.domainMax[1]??1,i?.domainMax[2]??1),t.uniform1f(e.lutIntensity,n.lut?.intensity??0),t.uniform1f(e.exposure,n.adjust.exposure),t.uniform1f(e.contrast,n.adjust.contrast),t.uniform1f(e.highlights,n.adjust.highlights),t.uniform1f(e.shadows,n.adjust.shadows),t.uniform1f(e.whites,n.adjust.whites),t.uniform1f(e.blacks,n.adjust.blacks),t.uniform1f(e.temperature,n.adjust.temperature),t.uniform1f(e.tint,n.adjust.tint),t.uniform1f(e.saturation,n.adjust.saturation),t.uniform1f(e.intensity,n.intensity),t.uniform1f(e.compareEnabled,r.enabled?1:0),t.uniform1f(e.comparePosition,r.position),t.uniform1f(e.compareSoftness,r.softness),t.uniform1f(e.compareLineWidth,r.lineWidth)}function Xc(t){t.sourceHidden||(t.sourceInlineOpacity=t.element.style.getPropertyValue("opacity")||null,t.sourceInlineOpacityPriority=t.element.style.getPropertyPriority("opacity")),t.element.setAttribute(Os,"true"),t.element.style.setProperty("opacity","0","important"),t.sourceHidden=!0}function Ue(t){if(t.destroyed)return!1;let e=jc(t.element);if(!e)return t.hasDrawn||(t.canvas.style.display="none"),!1;let n=Vc(e);if(!n)return!1;let i=e instanceof HTMLElement?e:t.element,r=t.element.style.getPropertyValue("opacity"),o=t.element.style.getPropertyPriority("opacity"),s=t.sourceHidden&&r==="0"&&o==="important",c=t.element.style.getPropertyValue("visibility");if(!s){let g=window.getComputedStyle(t.element);t.sourceOpacityForCanvas=g.opacity||"1",t.sourceVisibleForCanvas=c!=="hidden"&&g.visibility!=="hidden"}let a=Jc(t,i);if(!a)return!1;let l=window.getComputedStyle(i),u=$c(a.width,a.height,n.width,n.height,l.objectFit,l.objectPosition),{gl:m,program:f}=t;try{let g=Uc(t);return m.viewport(0,0,a.width,a.height),m.useProgram(f.program),m.activeTexture(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,f.texture),m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,!0),m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,e),m.activeTexture(m.TEXTURE1),m.bindTexture(m.TEXTURE_2D,f.lutTexture),Yc(m,f,t.grading,g,t.compare,a,u),m.enableVertexAttribArray(f.position),m.vertexAttribPointer(f.position,2,m.FLOAT,!1,0,0),m.drawArrays(m.TRIANGLE_STRIP,0,4),Xc(t),t.hasDrawn=!0,!0}catch(g){return v("runtime.colorGrading.drawEntry",g),!1}}function Ye(t,e,n,i){e.addEventListener(n,i),t.cleanup.push(()=>e.removeEventListener(n,i))}function Qc(t){t.animationFrame!==null&&(window.cancelAnimationFrame(t.animationFrame),t.animationFrame=null),t.videoFrameHandle!==null&&t.element instanceof HTMLVideoElement&&(t.element.cancelVideoFrameCallback?.(t.videoFrameHandle),t.videoFrameHandle=null)}function en(t){if(t.destroyed||!(t.element instanceof HTMLVideoElement)||t.videoFrameHandle!==null||t.animationFrame!==null)return;let e=t.element,n=e;if(typeof n.requestVideoFrameCallback=="function"){t.videoFrameHandle=n.requestVideoFrameCallback(()=>{t.videoFrameHandle=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)});return}t.animationFrame=window.requestAnimationFrame(()=>{t.animationFrame=null,Ue(t),!t.destroyed&&!e.paused&&!e.ended&&en(t)})}function Zc(t){let e=()=>{Ue(t)};Ye(t,t.element,"load",e),Ye(t,t.element,"loadedmetadata",e),Ye(t,t.element,"loadeddata",e),Ye(t,t.element,"seeked",e),Ye(t,t.element,"timeupdate",e),Ye(t,window,"resize",e),t.element instanceof HTMLVideoElement&&(Ye(t,t.element,"play",()=>en(t)),Ye(t,t.element,"pause",e)),typeof ResizeObserver<"u"&&(t.resizeObserver=new ResizeObserver(e),t.resizeObserver.observe(t.element))}function ed(t){if(!t.destroyed){t.destroyed=!0,Qc(t),t.resizeObserver?.disconnect();for(let e of t.cleanup)e();if(t.cleanup.length=0,t.canvas.remove(),t.gl.deleteTexture(t.program.texture),t.gl.deleteTexture(t.program.lutTexture),t.gl.deleteProgram(t.program.program),t.sourceHidden){t.element.removeAttribute(Os);let e=t.element.style.getPropertyValue("opacity"),n=t.element.style.getPropertyPriority("opacity");e==="0"&&n==="important"&&(t.sourceInlineOpacity===null?t.element.style.removeProperty("opacity"):t.element.style.setProperty("opacity",t.sourceInlineOpacity,t.sourceInlineOpacityPriority))}t.touchedParent&&(t.parentInlinePosition===null?t.touchedParent.style.removeProperty("position"):t.touchedParent.style.position=t.parentInlinePosition)}}function td(t){let e=document.createElement("canvas");return e.className=Rc,e.setAttribute(vc,"true"),e.setAttribute("data-hyperframes-ignore",""),e.setAttribute("data-hyperframes-picker-ignore",""),e.setAttribute("data-hf-ignore",""),e.setAttribute("aria-hidden","true"),e.style.pointerEvents="none",e.style.display="none",t.parentNode?.insertBefore(e,t.nextSibling),e}function Ws(){let t=new WeakMap,e=new Set,n=null,i=!1,r=(y,x,w)=>{let N=t.get(y);if(N)return N.grading=x,N.source=w,Ue(N),y instanceof HTMLVideoElement&&!y.paused&&en(N),!0;let L=td(y),$=Bc(L);if(!$)return L.remove(),!1;let B={element:y,canvas:L,gl:$.gl,program:$.program,grading:x,compare:{...Zt},lut:null,lutLoadingSrc:null,lutError:null,source:w,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,destroyed:!1};return t.set(y,B),e.add(y),Zc(B),Ue(B),y instanceof HTMLVideoElement&&!y.paused&&en(B),!0},o=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=t.get(w);if(!N){let L=Wi(w);if(!Qt(L)||!r(w,L,"attribute"))return!1;N=t.get(w)}return N?(N.compare=Wc(x),Ue(N),!0):!1},s=y=>{let x=t.get(y);x&&(ed(x),t.delete(y),e.delete(y))},c=()=>{if(i)return 0;let y=new Set;document.querySelectorAll(`video[${Xt}], img[${Xt}]`).forEach(w=>{if(!st(w))return;y.add(w);let N=Wi(w);Qt(N)?r(w,N,"attribute"):s(w)});for(let w of Array.from(e)){let N=t.get(w);N&&(!w.isConnected||N.source==="attribute"&&!y.has(w))&&s(w)}return e.size},a=()=>{if(i)return 0;let y=0;for(let x of Array.from(e,w=>t.get(w)))x&&Ue(x)&&(y+=1);return y},l=(y,x)=>{if(i)return!1;let w=Gi(y);if(!w)return!1;let N=Bi(x);return Qt(N)?r(w,N,"live"):(s(w),!0)},u=(y,x)=>{if(!st(y))return!1;let w=t.get(y);return w?(w.sourceVisibleForCanvas=x,!0):!1},m=y=>{let x=Gi(y);if(!x)return{state:"missing",message:"Media not found"};let w=t.get(x);if(w)return w.lutError?{state:"unavailable",message:w.lutError}:w.grading.lut&&w.lutLoadingSrc?{state:"pending",message:"Loading LUT"}:w.canvas.style.display==="none"?{state:"pending",message:"Waiting for media frame"}:{state:"active",message:w.lut?"Shader + LUT active":"Shader active"};let N=Wi(x);return Qt(N)?{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(e))s(y)}};document.body&&(n=new MutationObserver(()=>c()),n.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[Xt]}));let g={refresh:c,redraw:a,setGrading:l,setCompare:o,setSourceVisibility:u,getStatus:m,destroy:f},A=window;return A.__hf=A.__hf||{},A.__hf.colorGrading=g,c(),g}var Nn=class{constructor(e){ge(this,"_baseTime",0);ge(this,"_playStartMs",null);ge(this,"_rate",1);ge(this,"_duration",1/0);ge(this,"_nowMs");ge(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.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 e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*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(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}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:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.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 Gs(t){return!Number.isFinite(t)||t<=0?1:t}function nd(t,e){e||t.paused||!ln().__hfDebug||console.debug("[hyperframes] webAudioTransport claimed fallback-playing element:",t.currentSrc||t.getAttribute("src")||"")}function id(t,e){let{elapsed:n,mediaStart:i,scheduledAt:r,safeRate:o,clipDuration:s}=e,c=Number.isFinite(s)&&s>0,a=s*o;if(n>=0){let u=a-n;return c&&u<=0?!1:(c?t.start(0,n+i,u):t.start(0,n+i),!0)}let l=-n/o;return c?t.start(r+l,i,a):t.start(r+l,i),!0}var _n=class{constructor(){ge(this,"_ctx",null);ge(this,"_bufferCache",new Map);ge(this,"_failedSrcs",new Set);ge(this,"_activeSources",[]);ge(this,"_masterGain",null);ge(this,"_rateAnchorCtx",0);ge(this,"_rateAnchorComp",0);ge(this,"_rate",1);ge(this,"_paused",!0);ge(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!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(e){let n=e.currentSrc||e.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 v("webAudioTransport.fetch",new Error(`${r.status} ${n}`)),null;i=await r.arrayBuffer()}catch(r){return v("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),v("webAudioTransport.decode",r),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,c,a=1,l=Number.POSITIVE_INFINITY){if(!this._ctx||!this._masterGain||c!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),c!==this._playGeneration)return null;let u=Gs(a),m=this._ctx.createBufferSource();m.buffer=n,m.playbackRate.value=u;let f=this._ctx.createGain();f.gain.value=s,m.connect(f),f.connect(this._masterGain);let g=o-i,A=this._ctx.currentTime;if(this._rate=u,this._rateAnchorCtx=A,this._rateAnchorComp=o,!id(m,{elapsed:g,mediaStart:r,scheduledAt:A,safeRate:u,clipDuration:l}))return m.disconnect(),f.disconnect(),null;let y=e.muted;e.muted=!0,nd(e,y);let x={el:e,sourceNode:m,gainNode:f,compositionStart:i,mediaStart:r,scheduledAt:A,priorMuted:y,bounded:Number.isFinite(l)&&l>0};return this._activeSources.push(x),this._paused=!1,m.addEventListener("ended",()=>{let w=this._activeSources.indexOf(x);w!==-1&&(this._activeSources.splice(w,1),e.muted=y,this._activeSources.length===0&&(this._paused=!0))}),x}catch(u){return v("webAudioTransport.schedule",u),null}}setRate(e){let n=Gs(e);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){v("webAudioTransport.setRate",r)}return!0}hasBoundedActiveSources(){return this._activeSources.some(e=>e.bounded)}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){v("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}ownsElement(e){return!this._paused&&this._activeSources.some(n=>n.el===e)}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._failedSrcs.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Us="data-hf-studio-manual-edit-gesture";var Vi="data-hf-authored-duration",zi="data-hf-authored-end";function rd(){let t=window.__HF_EXPORT_RENDER_SEEK_CONFIG,e=t?.fps,n=t?.fpsSource,i=Number(e);return!t||e==null?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"missing"}:!Number.isFinite(i)||i<=0?{fps:null,source:"default",rawFpsSource:n,rawFps:e,fallbackReason:"invalid"}:{fps:i,source:n==="render-options"||n==="default"?n:"unknown",rawFpsSource:n,rawFps:e,fallbackReason:t.fpsFallbackReason}}function Vs(){let t=Dr(),e=rd();t.canonicalFps=e.fps??t.canonicalFps,window.__HF_EXPORT_RENDER_SEEK_CONFIG&&console.info("[hyperframes] render runtime fps",{canonicalFps:t.canonicalFps,source:e.source,rawFpsSource:e.rawFpsSource,rawFps:e.rawFps,fallbackReason:e.fallbackReason});let n=null,i=null,r=null,o=[],s=new Set,c=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){v("runtime.init.site1",d)}(()=>{let d=window.gsap,p=window;if(!(!d?.registerPlugin||p.__hfAutoNoopRegistered))try{d.registerPlugin({name:"_auto",init:()=>!1}),p.__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 p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null};if(Array.isArray(window.__timelines)){let d=window.__timelines,p=l()?.getAttribute("data-composition-id")??"root",h={};if(d.length===1)h[p]=d[0];else for(let b=0;b<d.length;b++)h[`tl-${b}`]=d[b];window.__timelines=h}let u=l();u&&!u.hasAttribute("data-start")&&u.setAttribute("data-start","0");let m=d=>{o.push(d)},f=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;s.has(b)||(s.add(b),Ee({source:"hf-preview",type:"diagnostic",code:d,details:p}))},g=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],E={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:()=>p,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:()=>({...E,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},A=1/60,y=.75,x=2,w=.05,N=100,L=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 p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},_=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},S=()=>l(),C=()=>{let d=S();if(!d)return;let p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},F=()=>{let d=S(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),E=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Vi)&&h.setAttribute(Vi,b),E!=null&&!h.hasAttribute(zi)&&h.setAttribute(zi,E),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 p=_(d.getAttribute("data-width")),h=_(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let E of b){let M=E.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!E.hasAttribute("data-start")||E.hasAttribute("data-hf-autostamped"))continue;let k=(E.style.top==="0px"||E.style.top==="0")&&(E.style.left==="0px"||E.style.left==="0")&&E.style.width==="100%"&&E.style.height==="100%",J=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(E.style.transform);if(k&&J&&!E.hasAttribute("data-width")&&!E.hasAttribute("data-height")){let ye=E.style.top,nt=E.style.left,Ae=E.style.width,wt=E.style.height;E.style.top="",E.style.left="",E.style.width="",E.style.height="";let ne=window.getComputedStyle(E);ne.top!=="auto"||ne.bottom!=="auto"||ne.left!=="auto"||ne.right!=="auto"||ne.width!=="0px"||ne.height!=="0px"||(E.style.top=ye,E.style.left=nt,E.style.width=Ae,E.style.height=wt)}let K=window.getComputedStyle(E),me=K.position;if(me!=="absolute"&&me!=="fixed"&&(E.style.position="absolute"),!!E.style.top||!!E.style.bottom||K.top!=="auto"||K.bottom!=="auto"||(E.style.top="0"),!!E.style.left||!!E.style.right||K.left!=="auto"||K.right!=="auto"||(E.style.left="0"),M!=="audio"){let ye=_(E.getAttribute("data-width")),nt=_(E.getAttribute("data-height")),Ae=K.width!=="0px"&&K.width!=="auto",wt=K.height!=="0px"&&K.height!=="auto";ye?!E.style.width&&!Ae&&(E.style.width=ye):!E.style.width&&K.width==="0px"&&(E.style.width="100%"),nt?!E.style.height&&!wt&&(E.style.height=nt):!E.style.height&&K.height==="0px"&&(E.style.height="100%")}}},R=(d,p=0,h)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),G=(d,p)=>ze({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),j=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0)+p:R(d,p),ie=(d,p)=>{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):R(d,0),E=G(d),M=d.getAttribute("data-composition-id");if(M){let J=(window.__timelines??{})[M],K=null;if(J&&typeof J.duration=="function"){let be=Number(J.duration());Number.isFinite(be)&&be>0&&(K=be)}!(d.hasAttribute("data-duration")||d.hasAttribute("data-end")||d.hasAttribute(Vi)||d.hasAttribute(zi))&&(E==null||E<=0)&&K!=null&&(E=K)}let k=E!=null&&E>0?b+E:Number.POSITIVE_INFINITY;return p>=b&&(Number.isFinite(k)?p<=k:!0)},P=!!document.querySelector("[data-composition-src]"),se=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){se=!0;break}}}let Se=!P&&!se,H=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},U=d=>typeof d=="number"&&Number.isFinite(d)&&d>A,V=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;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},re=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=j(h,0);if(!Number.isFinite(b))continue;let E=V(h);E==null||E<=A||(p=Math.max(p,Math.max(0,b)+E))}return p>A?p:null},Fe=()=>{let d=S();if(!d)return null;let p=window.__timelines??{},h=ze({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,E=Number.parseFloat(d.getAttribute("data-duration")??"");Number.isFinite(E)&&E>0&&(b=E);let M=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let k of M){if(!(k instanceof Element)||k.parentElement?.closest("[data-composition-id]")!==d)continue;let K=h.resolveStartForElement(k,0),me=h.resolveDurationForElement(k);!Number.isFinite(K)||me==null||me<=0||(b=Math.max(b,Math.max(0,K)+me))}return b>A?b:null},O=()=>{let d=re();return typeof d!="number"||!Number.isFinite(d)||d<=A?null:d},D=d=>U(d)?Math.max(A,d*y):A,W=()=>{let d=0;for(let p of t.deterministicAdapters){let h=p.getInferredDurationSeconds;if(typeof h!="function")continue;let b=null;try{b=h()}catch(E){v("runtime.init.adapterDuration",E)}typeof b=="number"&&Number.isFinite(b)&&b>0&&(d=Math.max(d,b))}return d>A?d:null},Q=(d,p=0)=>{let h=H(d),b=O(),E=Fe(),M=W(),k=Math.max(b??0,E??0,M??0),J=Number.isFinite(p)&&p>A?p:0,K=0;return U(h)?K=Math.max(h,k,J):U(k)?K=Math.max(k,J):K=J,K>0?Math.max(0,K):0},ae=()=>{let d=window.__timelines??{},p=ne=>{let ee=Object.entries(d).filter(xe=>!!xe[1]&&typeof xe[1].play=="function"&&typeof xe[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=ze({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),b=O(),E=Fe(),M=Math.max(b??0,E??0)||null,k=D(M),J=ne=>{let ee=document.querySelector(`[data-composition-id="${CSS.escape(ne)}"]`);return ee?h.resolveStartForElement(ee,0):0},K=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,J(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){v("runtime.init.site2",ue)}let xe=pe;if(typeof xe.to=="function")try{xe.to({},{duration:ne})}catch(ue){v("runtime.init.site3",ue)}return pe},be=(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 xe=[];for(let ue of ee)if(!pe.some(ve=>ve===ue.timeline))try{let ve=J(ue.compositionId);ne.add(ue.timeline,ve),xe.push(ue.compositionId)}catch(ve){v("runtime.init.site4",ve)}return xe}catch{return[]}},oe=S(),Z=oe?.getAttribute("data-composition-id")??null;if(!Z)return p("root_missing_composition_id");let ye=d[Z]??null,Ae=(()=>{if(!oe)return[];let ne=new Set,ee=Array.from(oe.querySelectorAll("[data-composition-id]")),fe=[];for(let pe of ee){let xe=pe.getAttribute("data-composition-id");if(!xe||xe===Z||ne.has(xe))continue;ne.add(xe);let ue=d[xe]??null;if(!ue||typeof ue.play!="function"||typeof ue.pause!="function")continue;let Ne=H(ue);fe.push({compositionId:xe,timeline:ue,durationSeconds:Ne??0})}return fe})(),wt=ne=>{for(let ee of ne){let fe=ee.timeline;if(typeof fe.paused=="function")try{fe.paused(!1)}catch(pe){v("runtime.init.site5",pe)}}};if(Ae.length>0&&wt(Ae),ye){let ne=Ae.length>0?be(ye,Ae):[];if((Ae.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+Z+"\'])"))&&(q=!0),ne.length>0)try{let ue=ye.time();ye.seek(ue,!1)}catch{}let ee=H(ye);if(!U(ee)&&Ae.length>0){let ue=Ae.map(Na=>Na.compositionId),Ne=K(Ae),ve=H(Ne);if(Ne&&U(ve))return{timeline:Ne,selectedTimelineIds:ue,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:ve,mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedTimelineIds:ue,autoNestedChildren:ne}}};let Un=me(M??0,ye),Vn=H(Un);if(Un&&U(Vn))return{timeline:Un,selectedTimelineIds:[Z],selectedDurationSeconds:Vn,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Vn,selectedTimelineIds:[Z],autoNestedChildren:ne}}}}if(!U(ee)&&Ae.length===0){let ue=me(M??0,ye),Ne=H(ue);if(ue&&U(Ne))return{timeline:ue,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:Z,rootDurationSeconds:ee,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:b,authoredCompositionDurationFloorSeconds:E,selectedDurationSeconds:Ne,selectedTimelineIds:[Z]}}}}let fe=oe?.getAttribute("data-duration"),pe=fe?parseFloat(fe):null,xe=Math.max(U(pe)?pe:0,E??0);if(xe>0&&U(xe)&&U(ee)&&xe>=ee+.5){let ue=ye;if(typeof ue.to=="function")try{ue.to({},{duration:0},xe)}catch(ve){v("runtime.init.site6",ve)}let Ne=H(ye);if(U(Ne))return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:Z,rootDurationSeconds:ee,rootDeclaredDur:pe,authoredCompositionDurationFloorSeconds:E,newDur:Ne}}}}return{timeline:ye,selectedTimelineIds:[Z],selectedDurationSeconds:ee,mediaDurationFloorSeconds:b,diagnostics:ne.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:Z,selectedDurationSeconds:ee,autoNestedChildren:ne}}:void 0}}if(Ae.length>0){let ne=Ae.map(pe=>pe.compositionId),ee=K(Ae),fe=H(ee);if(ee)return{timeline:ee,selectedTimelineIds:ne,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:Z,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:k,selectedDurationSeconds:fe,mediaDurationFloorSeconds:b,selectedTimelineIds:ne}}}}return p("root_composition_id_unmatched_in_registry")},q=!1,z=()=>{if(!Se)return!1;let d=t.capturedTimeline,p=H(d),h=U(p);if(d&&h&&q)return!1;let b=ae();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let E=Q(t.capturedTimeline,0);if(E<=0&&typeof t.capturedTimeline.progress=="function"&&(t.capturedTimeline.progress(1,!0),t.capturedTimeline.progress(0,!1),t.capturedTimeline.pause()),E>0){try{I.setDuration(E)}catch{}if(typeof t.capturedTimeline.totalTime=="function"){typeof t.capturedTimeline.progress=="function"&&t.capturedTimeline.progress(1e-4,!0);let k=Math.max(0,t.currentTime||0);t.capturedTimeline.totalTime(k,!1),t.capturedTimeline.pause()}let M=window.__hfStudioManualEditsApply;typeof M=="function"&&M()}if(b.diagnostics&&Ee({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ee({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}}),window.parent!==window){let M=S(),k=E>0?E:0,J=String(k>0?k:1),K=new Set,me=new Set(document.querySelectorAll("[data-start]")),be=oe=>{let Z=oe.parentElement;for(;Z&&Z!==M;){if(me.has(Z))return!0;Z=Z.parentElement}return!1};if(t.capturedTimeline.getChildren)try{for(let oe of t.capturedTimeline.getChildren(!0))if(typeof oe.targets=="function")for(let Z of oe.targets())Z instanceof HTMLElement&&Z!==M&&(Z.hasAttribute("data-start")||be(Z)||K.has(Z)||(K.add(Z),Z.setAttribute("data-start","0"),Z.setAttribute("data-duration",J),Z.setAttribute("data-hf-autostamped","1")))}catch{}if(M instanceof HTMLElement)for(let oe of M.querySelectorAll("[id]"))oe instanceof HTMLElement&&oe!==M&&(oe.hasAttribute("data-start")||be(oe)||K.has(oe)||oe.tagName==="SCRIPT"||oe.tagName==="STYLE"||oe.tagName==="LINK"||(K.add(oe),oe.setAttribute("data-start","0"),oe.setAttribute("data-duration",J),oe.setAttribute("data-hf-autostamped","1")))}for(let M of St)rn.delete(M),er(M);return!0};window.__hfForceTimelineRebind=()=>{q=!1,z()};let X=()=>{let d=S();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),E=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,k=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!k||f("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:E.display,visibility:E.visibility,overflow:E.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},Ie=()=>{t.tornDown||(c!=null&&window.cancelAnimationFrame(c),c=window.requestAnimationFrame(()=>{c=null,X()}))},Me=()=>{i=d=>{let p=$(d.error??d.message).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},r=d=>{let p=$(d.reason).slice(0,L);if(!p)return;let h=B(p);Ee({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",i),window.addEventListener("unhandledrejection",r)},bt=()=>{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 E=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,k=E==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";f(k,{tagName:E,assetUrl:M,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}:${E}:${M??"unknown"}`)};h.addEventListener("error",b),m(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).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(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},He=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),E=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),E&&t.capturedTimeline.play()}catch(M){v("runtime.init.site7",M)}return Ee({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},Ze=null,Zi=!1,St=new Set,rn=new WeakMap,on=()=>{t.tornDown||(Ze!=null&&window.clearTimeout(Ze),Ze=window.setTimeout(()=>{if(t.tornDown)return;Ze=null;let d=ae();if(!d.timeline||!U(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){z()&&(at(),_e(!0));return}if(Zi)return;let h=H(t.capturedTimeline),b=d.selectedDurationSeconds??H(d.timeline);U(b)&&(!U(h)||b>=h+w)&&He(d,"manual")&&(Zi=!0,Ee({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}}),at(),_e(!0))},N))},xa=()=>{for(let d of St)d.removeEventListener("loadedmetadata",on),d.removeEventListener("durationchange",on);St.clear()},Dn=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(St.has(p))continue;St.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",on),p.addEventListener("durationchange",on),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),er(p)}},er=d=>{rn.has(d)||Nr(d,t.capturedTimeline,Q(t.capturedTimeline,0),rn)},In=new WeakMap,tr=d=>{let p=In.get(d);if(p!==void 0)return p;let h=window.getComputedStyle(d).position,b=h==="static"||h==="relative"||h==="sticky";return In.set(d,b),b},Pn=new WeakMap,ga=d=>{let p=Pn.get(d);if(p!==void 0)return p;let h=d.querySelector("[data-start]")===null;return Pn.set(d,h),h},ya=()=>{In=new WeakMap,Pn=new WeakMap},Le=()=>{let d=M=>{let k=M.closest("[data-composition-id]"),J=k?R(k,0):null,K=k?G(k,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:k,inheritedStart:J,inheritedDuration:K}},p=_r({shouldIncludeElement:M=>M.hasAttribute("data-start")||!!d(M).compositionRoot,resolveStartSeconds:M=>{let k=d(M);return j(M,k.inheritedStart??0)},resolveDurationSeconds:M=>{let k=d(M),J=j(M,k.inheritedStart??0),K=Number.parseFloat(M.dataset.playbackStart??M.dataset.mediaStart??"0")||0,me=k.inheritedStart!=null&&k.inheritedDuration!=null&&k.inheritedDuration>0?Math.max(0,k.inheritedStart+k.inheritedDuration-J):null,be=Number.isFinite(M.duration)&&M.duration>K?Math.max(0,M.duration-K):null,oe=Number.parseFloat(M.dataset.duration??""),Z=Number.isFinite(oe)&&oe>0?oe:null,ye=[be,me,Z].filter(nt=>nt!=null);return ye.length>0?Math.min(...ye):null}});for(let M of p.mediaClips){let k=rn.get(M.el);k&&(M.volumeKeyframes=k)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),t.nativeMediaSyncDisabled||Tr({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||!t.webAudioMediaDisabled&&!t.nativeMediaSyncDisabled&&de.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(M,k)=>de.setElementVolume(M,k),isWebAudioOwned:M=>de.ownsElement(M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ee({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]")),E=S();for(let M of b){if(!(M instanceof HTMLElement))continue;let k=ie(M,t.currentTime);if(k){let J=M.parentElement;for(;J&&J!==E;){if(J instanceof HTMLElement&&J.hasAttribute("data-start")&&!ie(J,t.currentTime)){k=!1;break}J=J.parentElement}}M.style.visibility=k?"visible":"hidden",(M instanceof HTMLVideoElement||M instanceof HTMLImageElement)&&n?.setSourceVisibility(M,k),k?tr(M)&&M.style.removeProperty("display"):tr(M)&&ga(M)&&(M.style.display="none")}},_e=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ee({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},On="",ba=()=>{let d="";for(let p of document.querySelectorAll("[data-start]"))d+=`${p.id}:${p.tagName}|`;return d},at=()=>{F(),C(),T();let d=S();if(d){let b=_(d.getAttribute("data-width")),E=_(d.getAttribute("data-height")),M=b?parseInt(b,10):0,k=E?parseInt(E,10):0;M>0&&k>0&&Ee({source:"hf-preview",type:"stage-size",width:M,height:k})}z();let p=Hr({canonicalFps:t.canonicalFps});window.__clipManifest=p;let h=ba();if(On!==h&&ya(),!window.__clipTree||On!==h){let b=window;window.__clipTree=Ir({startResolver:ze({timelineRegistry:b.__timelines??{},includeAuthoredTimingAttrs:!0}),timelineRegistry:b.__timelines??{},rootDuration:p.durationInFrames/t.canonicalFps}),On=h}Ee(p),Ie()},Pe=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){v("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){v("runtime.init.site9",b)}}},et=()=>{window.__renderReady=!1},At=null,Et=!0,Sa=()=>{let d=[];for(let p of t.deterministicAdapters){let h=p.getReadyPromise;if(typeof h=="function")try{let b=h();b&&d.push(b)}catch(b){v("runtime.init.adapterReady",b)}}return d},Aa=()=>{let d=Sa();if(d.length===0)return At=null,Et=!0,!0;let p=d.length===1?d[0]:Promise.all(d);return p!==At&&(At=p,Et=!1,Promise.resolve(p).then(()=>{At===p&&(Et=!0,et())},h=>{At===p&&(Et=!0,v("runtime.init.adapterReady",h),et())})),Et};if(Se)Pi();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:_,onDiagnostic:({code:p,details:h})=>{Ee({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Fs(d).then(()=>Cs(d)).finally(()=>{Se=!0,Dn(),bt(),Pi(),et()})}let sn=Lr({postMessage:d=>Ee(d)});sn.installPickerApi();let We=Ws();n=We,m(()=>{We.destroy(),n=null});let Bn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(E){v("runtime.init.site10",E)}},he=kr({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:Bn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,Le()},onStatePost:_e,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){v("runtime.init.site11",h)}},onDeterministicPause:()=>Pe("pause"),onDeterministicPlay:()=>Pe("play"),onRenderFrameSeek:()=>{We.redraw()},onShowNativeVideos:()=>{},getSafeDuration:()=>Q(t.capturedTimeline,0)});window.__player=g(he),window.__playerReady=!0,lr(Ee),Ct("composition_loaded",{duration:he.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=ar({onPlay:()=>{he.play(),Ct("composition_played",{time:he.getTime()})},onPause:()=>{he.pause(),Ct("composition_paused",{time:he.getTime()})},onStopMedia:()=>{de.stopAll();let d=document.querySelectorAll("video, audio");for(let p of d)p instanceof HTMLMediaElement&&!p.paused&&p.pause()},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;he.seek(h),Ct("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetVolume:d=>{t.bridgeVolume=d,de.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),E=Number.isFinite(b)?b:1;h.volume=E*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;de.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p||b.defaultMuted)},onSetNativeMediaSyncDisabled:d=>{t.nativeMediaSyncDisabled!==d&&(t.nativeMediaSyncDisabled=d,t.mediaForceSyncNextTick=!0,d?(de.stopAll(),I.detachAudioSource()):Le())},onSetWebAudioMediaDisabled:d=>{t.webAudioMediaDisabled!==d&&(t.webAudioMediaDisabled=d,t.mediaForceSyncNextTick=!0,d&&(de.stopAll(),I.detachAudioSource()),Le())},onSetPlaybackRate:d=>{Bn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),or()},onSetColorGrading:(d,p)=>{We.setGrading(d,p)},onSetColorGradingCompare:(d,p)=>{We.setCompare(d,p)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,tt(d),I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0)}},onEnablePickMode:()=>sn.enablePickMode(),onDisablePickMode:()=>sn.disablePickMode()}),t.deterministicAdapters=[Fr(),ur({resolveStartSeconds:d=>R(d,0)}),dr(),mr(),hr(),xr(),gr(),yr(),br(),Sr(),Ar(),cr({getTimeline:()=>t.capturedTimeline})],wr(),Cr(),window.__hfReseekGpu=d=>{let p=Math.max(0,Number(d)||0);window.__hfThreeTime=p,window.__hfTypegpuTime=p,pr(p)},Me(),Dn(),Pe("discover");let I=new Nn;t.transportClock=I;let de=new _n,Hn=!1;de.init().then(d=>{Hn=d});let Ea=()=>{let d=t.capturedTimeline,p=z();t.capturedTimeline&&(p||t.capturedTimeline!==d||!he._timeline)&&(he._timeline=t.capturedTimeline);let h=Q(t.capturedTimeline,0);if(h>0&&I.setDuration(h),Pe("discover",t.currentTime),!t.capturedTimeline){let b=window.__timelines??{},E=Object.keys(b).filter(M=>b[M]);if(E.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:E},"root_timeline_unbound_registry_present"),console.warn("[hyperframes] Root timeline not bound \\u2014 render will freeze at t=0. "+(k?`Root data-composition-id is "${k}" but window.__timelines has no such key. `:"Root composition element has no data-composition-id. ")+`Registered timeline keys: [${E.join(", ")}]. Register the root timeline under its data-composition-id (window.__timelines["${k??"<root-id>"}"] = tl).`)}}window.__renderReady=!0,at(),_e(!0)};if(et=()=>{if(!Se||window.__hfTimelinesBuilding){window.__renderReady=!1;return}if(Pe("discover",t.currentTime),!Aa()){window.__renderReady=!1;return}Ea()},window.__hfTimelinesBuilding){window.__renderReady=!1;let d=()=>{window.removeEventListener("hf-timelines-built",d),et()};window.addEventListener("hf-timelines-built",d)}et(),Se&&setTimeout(()=>{et()},0);let an=0,Wn=!1,wa=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){v(h,b)}},Ca=d=>{let p=window.__timelines??{},h=S()?.getAttribute("data-composition-id")??null;for(let[b,E]of Object.entries(p)){if(!E||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let k=R(M,0);if(!Number.isFinite(k))continue;let J=G(M,{includeAuthoredTimingAttrs:!0}),K=H(E),me=J!=null&&J>0?J:K,be=Math.max(0,me!=null&&me>0?Math.min(me,d-k):d-k);wa(E,be,"runtime.init.transport.childTimeline")}},Fa=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){v("runtime.init.activateSiblings",b)}},tt=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&Fa(h);let b=h,E=d;if(typeof b.totalDuration=="function")try{let M=Number(b.totalDuration());Number.isFinite(M)&&M>0&&d>M&&(E=M)}catch(M){v("runtime.init.transport.clampDuration",M)}try{typeof h.totalTime=="function"?h.totalTime(E,!1):h.seek(E,!1)}catch(M){v("runtime.init.transport.seek",M)}}else Ca(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(E){v("runtime.init.transport.adapter",E)}},Ma=()=>{try{return document.querySelector(`[${Us}]`)!=null}catch{return!1}},nr=()=>{if(!(t.tornDown||Wn)){Wn=!0;try{if(t.transportRafId=window.requestAnimationFrame(nr),an+=1,an%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<x)){let h=t.capturedTimeline;if(z()){t.capturedTimeline&&!he._timeline&&(he._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=Q(t.capturedTimeline,0);b>0&&I.setDuration(b),at()}}if(an%20===0&&at(),an%30===0&&Dn(),t.capturedTimeline){let p=Q(t.capturedTimeline,0);p>0&&(!I.isPlaying()||p>=I.getDuration())&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&de.isActive()&&de.context){let p=de.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let E=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),k=Number.isFinite(M)&&M>0?E+M:1/0,J=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(E)&&t.currentTime>=E&&t.currentTime<=k){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:E,mediaStart:J}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,(I.isPlaying()||!Ma())&&tt(d),I.isPlaying()&&I.reachedEnd()){de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,tt(p)),Pe("pause"),Le(),_e(!0);return}I.isPlaying()&&Le(),_e(!1)}finally{Wn=!1}}},ir=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(E)&&E>0?b+E:1/0;if(d<b||d>=M)continue;let k=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,J=d-b+k;if(J>=0)try{h.currentTime=J}catch{}}},rr=()=>{if(t.nativeMediaSyncDisabled||t.webAudioMediaDisabled)return;let d=de.startGeneration(),p=document.querySelectorAll("audio[data-start]");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let E=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,M=Number.parseFloat(h.dataset.volume??""),k=Number.isFinite(M)?M:1,J=Number.parseFloat(h.dataset.duration??""),K=Number.isFinite(J)&&J>0?J:Number.POSITIVE_INFINITY,me=h.closest("[data-composition-id]");if(me){let be=R(me,0),oe=G(me,{includeAuthoredTimingAttrs:!0});oe!=null&&oe>0&&(K=Math.min(K,Math.max(0,be+oe-b)))}de.decodeAudioElement(h).then(be=>{!be||!I.isPlaying()||de.schedulePlayback(h,be,b,E,I.now(),k*t.bridgeVolume,d,t.playbackRate,K)})}},or=()=>{de.setRate(t.playbackRate)&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&Hn&&I.isPlaying()&&de.hasBoundedActiveSources()&&(de.stopAll(),rr())};if(he.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=Q(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,tt(0));else{let h=S(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}d&&d.pause(),I.play()&&(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,ir(I.now()),Hn&&!t.nativeMediaSyncDisabled&&!t.webAudioMediaDisabled&&rr(),Pe("play"),Le(),We.redraw(),_e(!0))},he.pause=()=>{if(!I.isPlaying())return;de.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,ir(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),Pe("pause"),Le(),We.redraw(),_e(!0)},he.seek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);de.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),tt(t.currentTime),Pe("pause"),Le(),We.redraw(),_e(!0)},he.renderSeek=d=>{let p=ut(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,tt(t.currentTime,{activateChildren:!0}),Le(),We.redraw(),_e(!0)},he.getTime=()=>I.now(),he.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},he.isPlaying=()=>I.isPlaying(),he.setPlaybackRate=d=>{Bn(d),I.setRate(t.playbackRate),or()},t.capturedTimeline){let d=Q(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let sr=window.__player;if(sr){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(sr,p,{get:()=>he[p],set:h=>{he[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(nr),at(),_e(!0);let Gn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,de.destroy(),Ze!=null&&(window.clearTimeout(Ze),Ze=null),c!=null&&(window.cancelAnimationFrame(c),c=null),xa(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),i&&(window.removeEventListener("error",i),i=null),r&&(window.removeEventListener("unhandledrejection",r),r=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),sn.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){v("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of o.splice(0))try{d()}catch(p){v("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){v("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){v("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===Gn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=Gn,t.beforeUnloadHandler=Gn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var zs=["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"],ji=[[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 od(t){if(t<=255)return zs[t];let e=0,n=ji.length-1;for(;e<=n;){let i=e+n>>1,r=ji[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function sd(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let l=0;l<e;){let u=t.charCodeAt(l),m=u,f=1;if(u>=55296&&u<=56319&&l+1<e){let A=t.charCodeAt(l+1);A>=56320&&A<=57343&&(m=(u-55296<<10)+(A-56320)+65536,f=2)}let g=od(m);(g==="R"||g==="AL"||g==="AN")&&(i=!0);for(let A=0;A<f;A++)n[l+A]=g;l+=f}if(!i)return null;let r=0;for(let l=0;l<e;l++){let u=n[l];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let l=0;l<e;l++)o[l]=r;let s=r&1?"R":"L",c=s,a=c;for(let l=0;l<e;l++)n[l]==="NSM"?n[l]=a:a=n[l];a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let l=0;l<e;l++)n[l]==="AL"&&(n[l]="R");for(let l=1;l<e-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<e;l++){if(n[l]!=="EN")continue;let u;for(u=l-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=l+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let l=0;l<e;l++){let u=n[l];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[l]="ON")}a=c;for(let l=0;l<e;l++){let u=n[l];u==="EN"?n[l]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let l=0;l<e;l++){if(n[l]!=="ON")continue;let u=l+1;for(;u<e&&n[u]==="ON";)u++;let m=l>0?n[l-1]:c,f=u<e?n[u]:c,g=m!=="L"?"R":"L";if(g===(f!=="L"?"R":"L"))for(let y=l;y<u;y++)n[y]=g;l=u-1}for(let l=0;l<e;l++)n[l]==="ON"&&(n[l]=s);for(let l=0;l<e;l++){let u=n[l];(o[l]&1)===0?u==="R"?o[l]++:(u==="AN"||u==="EN")&&(o[l]+=2):(u==="L"||u==="AN"||u==="EN")&&o[l]++}return o}function js(t,e){let n=sd(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var ad=/[ \\t\\n\\r\\f]+/g,ld=/[\\t\\n\\r\\f]| {2,}|^ | $/;function ud(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function cd(t){if(!ld.test(t))return t;let e=t.replace(ad," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function dd(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var qi=null,fd;function md(){return qi===null&&(qi=new Intl.Segmenter(fd,{granularity:"word"})),qi}var pd=/\\p{Script=Arabic}/u,Tn=/\\p{M}/u,Zs=/\\p{Nd}/u;function qs(t){return pd.test(t)}function $s(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function De(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if($s(r))return!0;e++;continue}}if($s(n))return!0}}return!1}function hd(t){let e=Rn(t);return e!==null&&(vn.has(e)||Xe.has(e))}var xd=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function gd(t){return De(t)}function yd(t){let e=Rn(t);return e!==null&&xd.has(e)}function Ln(t){return!hd(t)&&!yd(t)}var vn=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"]),nn=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),Ki=new Set(["\'","\\u2019"]),Xe=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),bd=new Set([":",".","\\u060C","\\u061B"]),Sd=new Set(["\\u104F"]),Ad=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Ed(t){if(Ji(t))return!0;let e=!1;for(let n of t){if(Xe.has(n)){e=!0;continue}if(!(e&&Tn.test(n)))return!1}return e}function wd(t){for(let e of t)if(!vn.has(e)&&!Xe.has(e))return!1;return t.length>0}function Cd(t){if(Ji(t))return!0;for(let e of t)if(!nn.has(e)&&!Ki.has(e)&&!Tn.test(e))return!1;return t.length>0}function Ji(t){let e=!1;for(let n of t)if(!(n==="\\\\"||Tn.test(n))){if(nn.has(n)||Xe.has(n)||Ki.has(n)){e=!0;continue}return!1}return e}function ea(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function Rn(t){if(t.length===0)return null;let e=ea(t,t.length);return t.slice(e)}function Fd(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(Tn.test(i)){n--;continue}if(nn.has(i)||Ki.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Md(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function Ks(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let c=r.repeat(s);return t[i]=c,c}function Js(t,e){return t&&e!==null&&bd.has(e)}function Nd(t){let e=Rn(t);return e!==null&&Sd.has(e)}function _d(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function kn(t){let e=t.length;for(;e>0;){let n=ea(t,e),i=t.slice(n,e);if(Ad.has(i))return!0;if(!Xe.has(i))return!1;e=n}return!1}function Td(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var Ld=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function vd(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function Rd(t,e,n,i){if(!Ld.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],c=n,a=!1,l=0;for(let u of t){let m=Td(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),l+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),o=m,s=[u],c=n+l,a=f,l+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:c}),r}function $i(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var kd=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Dd(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:kd.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Id(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Pd(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Dd(t,s))continue;let c=[e[s]],a=s+1;for(;a<t.len&&!$i(i[a]);){c.push(e[a]),n[s]=!0;let l=e[a].includes("?");if(i[a]="text",e[a]="",a++,l)break}e[s]=Te(c)}let o=0;for(let s=0;s<e.length;s++){let c=e[s];c.length!==0&&(o!==s&&(e[o]=c,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Od(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Id(s))continue;let c=o+1;if(c>=t.len||$i(t.kinds[c]))continue;let a=[],l=t.starts[c],u=c;for(;u<t.len&&!$i(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(l),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var Bd=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Ys=/^[A-Za-z0-9_]+[,:;]*$/,Xs=/[,:;]+$/;function ta(t){for(let e of t)if(Zs.test(e))return!0;return!1}function tn(t){if(t.length===0)return!1;for(let e of t)if(!(Zs.test(e)||Bd.has(e)))return!1;return!0}function Hd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o];if(c==="text"&&tn(s)&&ta(s)){let a=[s],l=o+1;for(;l<t.len&&t.kinds[l]==="text"&&tn(t.texts[l]);)a.push(t.texts[l]),l++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=l-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Wd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],c=t.kinds[o],a=t.isWordLike[o];if(c==="text"&&a&&Ys.test(s)){let l=[s],u=Xs.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Ys.test(t.texts[m]);){let f=t.texts[m];l.push(f),u=Xs.test(f),m++}e.push(Te(l)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(c),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Gd(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let c=s.split("-"),a=c.length>1;for(let l=0;l<c.length;l++){let u=c[l];if(!a)break;(u.length===0||!ta(u)||!tn(u))&&(a=!1)}if(a){let l=0;for(let u=0;u<c.length;u++){let m=c[u],f=u<c.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+l),l+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Ud(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],c=t.isWordLike[o],a=t.kinds[o],l=t.starts[o];if(a==="glue"){let u=[s[0]],m=l;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),c=t.isWordLike[o],a="text",l=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),c=c||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(c),i.push(a),r.push(l)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Vd(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!De(e[o])||!De(e[o+1]))continue;let s=Fd(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Qs(t,e,n){let i=md(),r=0,o=[],s=[],c=[],a=[],l=[],u=[],m=[],f=[],g=[],A=[],y=[],x=[];for(let _ of i.segment(t))for(let S of Rd(_.segment,_.isWordLike??!1,_.index,n)){let se=function(){u[P]!==null&&(s[P]=[Ks(o,u,m,P)],u[P]=null),s[P].push(S.text),c[P]=c[P]||S.isWordLike,f[P]=f[P]||T,g[P]=g[P]||R,A[P]=j,y[P]=ie,x[P]=Js(g[P],G)},C=S.kind==="text",F=Md(S.text,S.isWordLike,S.kind),T=De(S.text),R=qs(S.text),G=Rn(S.text),j=kn(S.text),ie=Nd(S.text),P=r-1;e.carryCJKAfterClosingQuote&&C&&r>0&&a[P]==="text"&&T&&f[P]&&A[P]||C&&r>0&&a[P]==="text"&&wd(S.text)&&f[P]||C&&r>0&&a[P]==="text"&&y[P]?se():C&&r>0&&a[P]==="text"&&S.isWordLike&&R&&x[P]?(se(),c[P]=!0):F!==null&&r>0&&a[P]==="text"&&u[P]===F?m[P]=(m[P]??1)+1:C&&!S.isWordLike&&r>0&&a[P]==="text"&&(Ed(S.text)||S.text==="-"&&c[P])?se():(o[r]=S.text,s[r]=[S.text],c[r]=S.isWordLike,a[r]=S.kind,l[r]=S.start,u[r]=F,m[r]=F===null?0:1,f[r]=T,g[r]=R,A[r]=j,y[r]=ie,x[r]=Js(R,G),r++)}for(let _=0;_<r;_++){if(u[_]!==null){o[_]=Ks(o,u,m,_);continue}o[_]=Te(s[_])}for(let _=1;_<r;_++)a[_]==="text"&&!c[_]&&Ji(o[_])&&a[_-1]==="text"&&(o[_-1]+=o[_],c[_-1]=c[_-1]||c[_],o[_]="");let w=Array.from({length:r},()=>null),N=-1;for(let _=r-1;_>=0;_--){let S=o[_];if(S.length!==0){if(a[_]==="text"&&!c[_]&&Cd(S)&&N>=0&&a[N]==="text"){let C=w[N]??[];C.push(S),w[N]=C,l[N]=l[_],o[_]="";continue}N=_}}for(let _=0;_<r;_++){let S=w[_];S!=null&&(o[_]=vd(S,o[_]))}let L=0;for(let _=0;_<r;_++){let S=o[_];S.length!==0&&(L!==_&&(o[L]=S,c[L]=c[_],a[L]=a[_],l[L]=l[_]),L++)}o.length=L,c.length=L,a.length=L,l.length=L;let $=Ud({len:L,texts:o,isWordLike:c,kinds:a,starts:l}),B=Vd(Wd(Gd(Hd(Od(Pd($))))));for(let _=0;_<B.len-1;_++){let S=_d(B.texts[_]);S!==null&&(B.kinds[_]!=="space"&&B.kinds[_]!=="preserved-space"||B.kinds[_+1]!=="text"||!qs(B.texts[_+1])||(B.texts[_]=S.space,B.isWordLike[_]=!1,B.kinds[_]=B.kinds[_]==="preserved-space"?"preserved-space":"space",B.texts[_+1]=S.marks+B.texts[_+1],B.starts[_+1]=B.starts[_]+S.space.length))}return B}function zd(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function jd(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,c=0,a=!1,l=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(c),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],g=t.kinds[m],A=t.isWordLike[m],y=t.starts[m];if(g==="text"){let x=gd(f),w=Ln(f);if(o!==null&&a&&l){o.push(f),s=s||A,a=a||x,l=w;continue}u(),o=[f],s=A,c=y,a=x,l=w;continue}u(),e.push(f),n.push(A),i.push(g),r.push(y)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function na(t,e,n="normal",i="normal"){let r=ud(n),o=r.mode==="pre-wrap"?dd(t):cd(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?jd(Qs(o,e,r)):Qs(o,e,r);return{normalized:o,chunks:zd(s,r),...s}}var xt=null,ia=new Map,gt=null,qd=96,$d=/\\p{Emoji_Presentation}/u,Kd=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,Yi=null,ra=new Map;function Xi(){if(xt!==null)return xt;if(typeof OffscreenCanvas<"u")return xt=new OffscreenCanvas(1,1).getContext("2d"),xt;if(typeof document<"u")return xt=document.createElement("canvas").getContext("2d"),xt;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function Jd(t){let e=ia.get(t);return e||(e=new Map,ia.set(t,e)),e}function Ve(t,e){let n=e.get(t);return n===void 0&&(n={width:Xi().measureText(t).width,containsCJK:De(t)},e.set(t,n)),n}function yt(){if(gt!==null)return gt;if(typeof navigator>"u")return gt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},gt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return gt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},gt}function Yd(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function oa(){return Yi===null&&(Yi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Yi}function Xd(t){return $d.test(t)||t.includes("\\uFE0F")}function sa(t){return Kd.test(t)}function Qd(t,e){let n=ra.get(t);if(n!==void 0)return n;let i=Xi();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,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 ra.set(t,n),n}function Zd(t){let e=0,n=oa();for(let i of n.segment(t))Xd(i.segment)&&e++;return e}function ef(t,e){return e.emojiCount===void 0&&(e.emojiCount=Zd(t)),e.emojiCount}function Qe(t,e,n){return n===0?e.width:e.width-ef(t,e)*n}function aa(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=oa(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Ve(m,n);u.push(Qe(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>qd){let u=[],m=null,f=0;for(let g of s){let A=Ve(g,n),y=Qe(g,A,i);if(m===null)u.push(y);else{let x=m+g,w=Ve(x,n);u.push(Qe(x,w,i)-f)}m=g,f=y}return e.breakableFitAdvances=u,e.breakableFitAdvances}let c=[],a="",l=0;for(let u of s){a+=u;let m=Ve(a,n),f=Qe(a,m,i);c.push(f-l),l=f}return e.breakableFitAdvances=c,e.breakableFitAdvances}function la(t,e){let n=Xi();n.font=t;let i=Jd(t),r=Yd(t),o=e?Qd(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function tf(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function nf(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function rf(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let c=s+t[o];if((o+1<t.length?c+r:c)>n+i)break;s=c,o++}return{fitCount:o,fittedWidth:s}}function ua(t,e){return t.simpleLineWalkFastPath?ca(t,e):da(t,e)}function ca(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let c=yt().lineFitEpsilon,a=e+c,l=0,u=0,m=!1,f=0,g=0,A=0,y=0,x=-1,w=0;function N(){x=-1,w=0}function L(F=A,T=y,R=u){l++,n?.({startSegmentIndex:f,startGraphemeIndex:g,endSegmentIndex:F,endGraphemeIndex:T,width:R}),u=0,m=!1,N()}function $(F,T){m=!0,f=F,g=0,A=F+1,y=0,u=T}function B(F,T,R){m=!0,f=F,g=T,A=F,y=T+1,u=R}function _(F,T){if(!m){$(F,T);return}u+=T,A=F+1,y=0}function S(F,T){let R=o[F];for(let G=T;G<R.length;G++){let j=R[G];m?u+j>a?(L(),B(F,G,j)):(u+=j,A=F,y=G+1):B(F,G,j)}m&&A===F&&y===R.length&&(A=F+1,y=0)}let C=0;for(;C<i.length&&!(!m&&(C=tf(t,C),C>=i.length));){let F=i[C],T=r[C],R=T==="space"||T==="preserved-space"||T==="tab"||T==="zero-width-break"||T==="soft-hyphen";if(!m){F>e&&o[C]!==null?S(C,0):$(C,F),R&&(x=C+1,w=u-F),C++;continue}if(u+F>a){if(R){_(C,F),L(C+1,0,u-F),C++;continue}if(x>=0){if(A>x||A===x&&y>0){L();continue}L(x,0,w);continue}if(F>e&&o[C]!==null){L(),S(C,0),C++;continue}L();continue}_(C,F),R&&(x=C+1,w=u-F),C++}return m&&L(),l}function da(t,e,n){if(t.simpleLineWalkFastPath)return ca(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:c,discretionaryHyphenWidth:a,tabStopAdvance:l,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=yt(),f=m.lineFitEpsilon,g=e+f,A=0,y=0,x=!1,w=0,N=0,L=0,$=0,B=-1,_=0,S=0,C=null;function F(){B=-1,_=0,S=0,C=null}function T(H=L,U=$,V=y){A++,n?.({startSegmentIndex:w,startGraphemeIndex:N,endSegmentIndex:H,endGraphemeIndex:U,width:V}),y=0,x=!1,F()}function R(H,U){x=!0,w=H,N=0,L=H+1,$=0,y=U}function G(H,U,V){x=!0,w=H,N=U,L=H,$=U+1,y=V}function j(H,U){if(!x){R(H,U);return}y+=U,L=H+1,$=0}function ie(H,U,V,re){if(!U)return;let Fe=H==="tab"?0:r[V],O=H==="tab"?re:o[V];B=V+1,_=y-re+Fe,S=y-re+O,C=H}function P(H,U){let V=c[H];for(let re=U;re<V.length;re++){let Fe=V[re];x?y+Fe>g?(T(),G(H,re,Fe)):(y+=Fe,L=H,$=re+1):G(H,re,Fe)}x&&L===H&&$===V.length&&(L=H+1,$=0)}function se(H){if(C!=="soft-hyphen")return!1;let U=c[H];if(U==null)return!1;let{fitCount:V,fittedWidth:re}=rf(U,y,e,f,a);return V===0?!1:(y=re,L=H,$=V,F(),V===U.length?(L=H+1,$=0,!0):(T(H,V,re+a),P(H,V),!0))}function Se(H){A++,n?.({startSegmentIndex:H.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:H.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),F()}for(let H=0;H<u.length;H++){let U=u[H];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}x=!1,y=0,w=U.startSegmentIndex,N=0,L=U.startSegmentIndex,$=0,F();let V=U.startSegmentIndex;for(;V<U.endSegmentIndex;){let re=s[V],Fe=re==="space"||re==="preserved-space"||re==="tab"||re==="zero-width-break"||re==="soft-hyphen",O=re==="tab"?nf(y,l):i[V];if(re==="soft-hyphen"){x&&(L=V+1,$=0,B=V+1,_=y+a,S=y+a,C=re),V++;continue}if(!x){O>e&&c[V]!==null?P(V,0):R(V,O),ie(re,Fe,V,O),V++;continue}if(y+O>g){let W=y+(re==="tab"?0:r[V]),Q=y+(re==="tab"?O:o[V]);if(C==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&_<=g){T(B,0,S);continue}if(C==="soft-hyphen"&&se(V)){V++;continue}if(Fe&&W<=g){j(V,O),T(V+1,0,Q),V++;continue}if(B>=0&&_<=g){if(L>B||L===B&&$>0){T();continue}let ae=B;T(ae,0,S),V=ae;continue}if(O>e&&c[V]!==null){T(),P(V,0),V++;continue}T();continue}j(V,O),ie(re,Fe,V,O),V++}if(x){let re=B===U.consumedEndSegmentIndex?S:y;T(U.consumedEndSegmentIndex,0,re)}}return A}var Qi=null;function of(){return Qi===null&&(Qi=new Intl.Segmenter(void 0,{granularity:"grapheme"})),Qi}function sf(t){return t?{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 af(t,e){let n=[],i=[],r=0,o=!1,s=!1,c=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,c=!1)}function l(m,f,g){i=[m],r=f,o=g,s=kn(m),c=nn.has(m)}function u(m,f){i.push(m),o=o||f;let g=kn(m);m.length===1&&Xe.has(m)?s=s||g:s=g,c=!1}for(let m of of().segment(t)){let f=m.segment,g=De(f);if(i.length===0){l(f,m.index,g);continue}if(c||vn.has(f)||Xe.has(f)||e.carryCJKAfterClosingQuote&&g&&s){u(f,g);continue}if(!o&&!g){u(f,g);continue}a(),l(f,m.index,g)}return a(),n}function lf(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=De(t[0].text),o=Ln(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let c=1;c<t.length;c++){let a=t[c],l=De(a.text),u=Ln(a.text);if(r&&o){n.push(a.text),r=r||l,o=u;continue}s(),n=[a.text],i=a.start,r=l,o=u}return s(),e}function uf(t,e,n,i){let r=yt(),{cache:o,emojiCorrection:s}=la(e,sa(t.normalized)),c=Qe("-",Ve("-",o),s),l=Qe(" ",Ve(" ",o),s)*8;if(t.len===0)return sf(n);let u=[],m=[],f=[],g=[],A=t.chunks.length<=1,y=n?[]:null,x=[],w=n?[]:null,N=Array.from({length:t.len});function L(S,C,F,T,R,G,j){R!=="text"&&R!=="space"&&R!=="zero-width-break"&&(A=!1),u.push(C),m.push(F),f.push(T),g.push(R),y?.push(G),x.push(j),w!==null&&w.push(S)}function $(S,C,F,T,R){let G=Ve(S,o),j=Qe(S,G,s),ie=C==="space"||C==="preserved-space"||C==="zero-width-break"?0:j,P=C==="space"||C==="zero-width-break"?0:j;if(R&&T&&S.length>1){let se="sum-graphemes";tn(S)?se="pair-context":r.preferPrefixWidthsForBreakableRuns&&(se="segment-prefixes");let Se=aa(S,G,o,s,se);L(S,j,ie,P,C,F,Se);return}L(S,j,ie,P,C,F,null)}for(let S=0;S<t.len;S++){N[S]=u.length;let C=t.texts[S],F=t.isWordLike[S],T=t.kinds[S],R=t.starts[S];if(T==="soft-hyphen"){L(C,0,c,c,T,R,null);continue}if(T==="hard-break"){L(C,0,0,0,T,R,null);continue}if(T==="tab"){L(C,0,0,0,T,R,null);continue}let G=Ve(C,o);if(T==="text"&&G.containsCJK){let j=af(C,r),ie=i==="keep-all"?lf(j):j;for(let P=0;P<ie.length;P++){let se=ie[P];$(se.text,"text",R+se.start,F,i==="keep-all"||!De(se.text))}continue}$(C,T,R,F,!0)}let B=cf(t.chunks,N,u.length),_=y===null?null:js(t.normalized,y);return w!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B,segments:w}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:g,simpleLineWalkFastPath:A,segLevels:_,breakableFitAdvances:x,discretionaryHyphenWidth:c,tabStopAdvance:l,chunks:B}}function cf(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,c=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:c,consumedEndSegmentIndex:a})}return i}function df(t,e,n,i){let r=i?.wordBreak??"normal",o=na(t,yt(),i?.whiteSpace,r);return uf(o,e,n,r)}function fa(t,e,n){return df(t,e,!1,n)}function ma(t,e,n){let i=ua(t,e);return{lineCount:i,height:i*n}}var ff={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function pa(t,e){let n={...ff,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=fa(t,o),{lineCount:c}=ma(s,n.maxWidth,r*i);if(c<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:pa,getVariables:xs};function ha(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,Vs())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",ha,{once:!0}):ha();})();\n';
55971
55971
  }
55972
55972
  });
55973
55973
 
@@ -60925,7 +60925,7 @@ function formatHttpErrorDiagnostic(input2) {
60925
60925
  return `[Browser:HTTP${input2.status}] ${input2.method} ${sanitizeDiagnosticUrl(input2.url)} resource=${input2.resourceType}${statusText}`;
60926
60926
  }
60927
60927
  async function driveWarmupTicks(options, state) {
60928
- const sleep3 = options.sleep ?? realSleep;
60928
+ const sleep5 = options.sleep ?? realSleep;
60929
60929
  while (true) {
60930
60930
  if (options.lockWarmupTicks) {
60931
60931
  if (state.ticks >= LOCKED_WARMUP_TICKS) return;
@@ -60937,7 +60937,7 @@ async function driveWarmupTicks(options, state) {
60937
60937
  state.ticks += 1;
60938
60938
  } catch {
60939
60939
  }
60940
- await sleep3(options.intervalMs);
60940
+ await sleep5(options.intervalMs);
60941
60941
  }
60942
60942
  }
60943
60943
  function resolveCaptureSessionOptions(options, browserVersion, platform10 = process.platform) {
@@ -61676,6 +61676,16 @@ async function computeStaticFrameSet(page, fps) {
61676
61676
  reason: eligible ? "eligible" : reasons.join("+")
61677
61677
  };
61678
61678
  }
61679
+ function computeStaticVerificationPoints(a, b2, sampleCount) {
61680
+ const span = b2 - a;
61681
+ const lengthScaledPoints = span > 0 ? Math.ceil(span / STATIC_VERIFY_REFERENCE_STRIDE) + 1 : 1;
61682
+ const perRun = Math.max(3, sampleCount, lengthScaledPoints);
61683
+ const stride = span > 0 ? Math.max(1, Math.floor(span / (perRun - 1))) : 1;
61684
+ const pts = /* @__PURE__ */ new Set();
61685
+ for (let f3 = a; f3 <= b2; f3 += stride) pts.add(f3);
61686
+ pts.add(b2);
61687
+ return [...pts].sort((x3, y) => x3 - y);
61688
+ }
61679
61689
  async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCount) {
61680
61690
  const frames = [...staticFrames].sort((a, b2) => a - b2);
61681
61691
  if (frames.length === 0) return null;
@@ -61693,20 +61703,18 @@ async function verifyStaticFramesSafe(session, page, staticFrames, fps, sampleCo
61693
61703
  }, t2);
61694
61704
  return pageScreenshotCapture(page, session.options);
61695
61705
  };
61696
- const perRun = Math.max(3, Math.min(sampleCount, 8));
61697
- const hardCap = Math.max(sampleCount * 8, 400);
61706
+ const hardCap = Math.max(
61707
+ sampleCount * 8,
61708
+ 400,
61709
+ Math.ceil(frames.length / STATIC_VERIFY_REFERENCE_STRIDE) * 3 + runs.length
61710
+ );
61698
61711
  let spent = 0;
61699
61712
  for (const { a, b: b2 } of runs) {
61700
61713
  const anchor = a - 1;
61701
61714
  if (anchor < 0) continue;
61702
61715
  const anchorBuf = await seekCapture(anchor);
61703
61716
  spent++;
61704
- const span = b2 - a;
61705
- const stride = span > 0 ? Math.max(1, Math.floor(span / (perRun - 1))) : 1;
61706
- const pts = /* @__PURE__ */ new Set();
61707
- for (let f3 = a; f3 <= b2; f3 += stride) pts.add(f3);
61708
- pts.add(b2);
61709
- for (const f3 of [...pts].sort((x3, y) => x3 - y)) {
61717
+ for (const f3 of computeStaticVerificationPoints(a, b2, sampleCount)) {
61710
61718
  const cur = await seekCapture(f3);
61711
61719
  spent++;
61712
61720
  if (!anchorBuf.equals(cur)) return { badFrame: f3, budgetExhausted: false };
@@ -61751,7 +61759,7 @@ async function armStaticDedup(session, page, logInitPhase) {
61751
61759
  if (verdict !== null) {
61752
61760
  session.staticDedupSkipReason = verdict.budgetExhausted ? "verification_budget" : "verification_failed";
61753
61761
  logInitPhase(
61754
- verdict.budgetExhausted ? `static-frame dedup: disabled (verification budget exhausted before frame ${verdict.badFrame}; raise HF_STATIC_DEDUP_SAMPLES to verify more)` : `static-frame dedup: disabled (verification failed \u2014 content drifts from anchor at predicted-static frame ${verdict.badFrame})`
61762
+ verdict.budgetExhausted ? `static-frame dedup: disabled (verification budget exhausted before frame ${verdict.badFrame}; too much predicted-static material to fully verify \u2014 this is the safe fallback, not an error)` : `static-frame dedup: disabled (verification failed \u2014 content drifts from anchor at predicted-static frame ${verdict.badFrame})`
61755
61763
  );
61756
61764
  return;
61757
61765
  }
@@ -61929,7 +61937,7 @@ function isMemoryExhaustionError(error) {
61929
61937
  const message = error instanceof Error ? error.message : String(error);
61930
61938
  return MEMORY_EXHAUSTION_ERROR_PATTERNS.some((pattern) => pattern.test(message));
61931
61939
  }
61932
- var BROWSER_CONSOLE_BUFFER_SIZE, CAPTURE_SESSION_CLOSE_TIMEOUT_MS, LOCKED_WARMUP_TICKS, realSleep, HF_READY_DIAGNOSTIC_EXPR, TRANSIENT_BROWSER_ERROR_PATTERNS, MEMORY_EXHAUSTION_ERROR_PATTERNS;
61940
+ var BROWSER_CONSOLE_BUFFER_SIZE, CAPTURE_SESSION_CLOSE_TIMEOUT_MS, LOCKED_WARMUP_TICKS, realSleep, HF_READY_DIAGNOSTIC_EXPR, STATIC_VERIFY_REFERENCE_STRIDE, TRANSIENT_BROWSER_ERROR_PATTERNS, MEMORY_EXHAUSTION_ERROR_PATTERNS;
61933
61941
  var init_frameCapture = __esm({
61934
61942
  "../engine/src/services/frameCapture.ts"() {
61935
61943
  "use strict";
@@ -61960,6 +61968,7 @@ var init_frameCapture = __esm({
61960
61968
  declaredDuration: declaredDuration,
61961
61969
  };
61962
61970
  })()`;
61971
+ STATIC_VERIFY_REFERENCE_STRIDE = 24;
61963
61972
  TRANSIENT_BROWSER_ERROR_PATTERNS = [
61964
61973
  /Navigating frame was detached/i,
61965
61974
  /Target closed/i,
@@ -62729,7 +62738,7 @@ import { join as join6, dirname as dirname4, extname as extname2 } from "path";
62729
62738
  function appendEncodeTimeoutMessage(error, timedOut, timeoutMs) {
62730
62739
  if (!timedOut) return error;
62731
62740
  return `${error}
62732
- FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms)`;
62741
+ FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms). Long or high-frame-count renders may need more time: set FFMPEG_ENCODE_TIMEOUT_MS to a higher value (ms), or set PRODUCER_ENABLE_CHUNKED_ENCODE=true to encode in smaller chunks instead of one long-running ffmpeg process.`;
62733
62742
  }
62734
62743
  function isAacSidecar(audioPath) {
62735
62744
  return extname2(audioPath).toLowerCase() === ".aac";
@@ -64158,6 +64167,10 @@ function scopeSelector(selector, scope, compositionId, authoredRootId, compoundA
64158
64167
  return selector;
64159
64168
  const compositionIdPattern = new RegExp(`\\[\\s*data-composition-id\\s*=\\s*(["'])${escapeRegExp2(compositionId)}\\1\\s*\\]`, "g");
64160
64169
  if (compositionIdPattern.test(trimmed)) {
64170
+ const isRootBoxSelector = trimmed.replace(compositionIdPattern, "").trim() === "";
64171
+ if (isRootBoxSelector) {
64172
+ return `${scope}:not(:has([${INNER_ROOT_ATTR}])), ${scope} > [${INNER_ROOT_ATTR}]`;
64173
+ }
64161
64174
  return selectorWithoutRootTiming.replace(compositionIdPattern, scope);
64162
64175
  }
64163
64176
  const leading = selectorWithoutRootTiming.match(/^\s*/)?.[0] ?? "";
@@ -64496,11 +64509,12 @@ ${source.replace(/<\/(script)/gi, "<\\/$1")}
64496
64509
  function wrapInlineScriptWithErrorBoundary(source, errorLabel) {
64497
64510
  return `(function(){ try { Function(${JSON.stringify(source)}).call(window); } catch (_err) { console.error(${JSON.stringify(errorLabel)}, _err); } })();`;
64498
64511
  }
64499
- var AUTHORED_ROOT_ID_ATTR, GLOBAL_AT_RULES;
64512
+ var AUTHORED_ROOT_ID_ATTR, INNER_ROOT_ATTR, GLOBAL_AT_RULES;
64500
64513
  var init_compositionScoping = __esm({
64501
64514
  "../core/dist/compiler/compositionScoping.js"() {
64502
64515
  "use strict";
64503
64516
  AUTHORED_ROOT_ID_ATTR = "data-hf-authored-id";
64517
+ INNER_ROOT_ATTR = "data-hf-inner-root";
64504
64518
  GLOBAL_AT_RULES = /* @__PURE__ */ new Set(["keyframes", "-webkit-keyframes", "font-face"]);
64505
64519
  }
64506
64520
  });
@@ -66304,8 +66318,15 @@ function findRootTag(source) {
66304
66318
  const bodyEnd = bodyOpenMatch && bodyCloseMatch && bodyCloseMatch.index > bodyStart ? bodyCloseMatch.index : source.length;
66305
66319
  const bodyContent = bodyOpenMatch ? source.slice(bodyStart, bodyEnd) : source;
66306
66320
  const bodyTags = extractOpenTags(bodyContent);
66321
+ let skipBefore = -1;
66307
66322
  for (const tag of bodyTags) {
66323
+ if (tag.index < skipBefore) continue;
66308
66324
  if (["script", "style", "meta", "link", "title"].includes(tag.name)) continue;
66325
+ if (tag.name === "svg" && !readAttr(tag.raw, "data-composition-id") && !readAttr(tag.raw, "data-width") && !readAttr(tag.raw, "data-height")) {
66326
+ const closeMatch = /<\/svg\s*>/i.exec(bodyContent.slice(tag.index));
66327
+ skipBefore = closeMatch ? tag.index + closeMatch.index + closeMatch[0].length : Infinity;
66328
+ continue;
66329
+ }
66309
66330
  return { ...tag, index: tag.index + bodyStart };
66310
66331
  }
66311
66332
  return null;
@@ -67974,7 +67995,7 @@ var init_dist4 = __esm({
67974
67995
  TIMELINE_REGISTRY_INIT_PATTERN = /window\.__timelines\s*=\s*window\.__timelines\s*\|\|\s*\{\}|window\.__timelines\s*=\s*\{\}|window\.__timelines\s*\?\?=\s*\{\}/i;
67975
67996
  TIMELINE_REGISTRY_OBJECT_LITERAL_PATTERN = /window\.__timelines\s*=\s*\{\s*(?:["'][^"']+["']|[A-Za-z_$][\w$]*)\s*:/i;
67976
67997
  TIMELINE_REGISTRY_ASSIGN_PATTERN = /window\.__timelines(?:\[[^\]]+\]|\.[A-Za-z_$][\w$]*)\s*=/i;
67977
- WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
67998
+ WINDOW_TIMELINE_ASSIGN_PATTERN = /window\.__timelines(?:\[\s*(?:["']([^"']+)["']|[A-Za-z_$][\w$.]*)\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=\s*([A-Za-z_$][\w$]*)/i;
67978
67999
  INVALID_SCRIPT_CLOSE_PATTERN = /<script[^>]*>[\s\S]*?<\s*\/\s*script(?!>)/i;
67979
68000
  TIMELINE_REGISTRY_KEY_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=/g;
67980
68001
  TIMELINE_REGISTRY_OBJECT_BODY_PATTERN = /window\.__timelines\s*=\s*\{([\s\S]*?)\}/i;
@@ -68708,12 +68729,14 @@ ${right.raw}`)
68708
68729
  (candidate) => isHardKillSet(candidate, win.targetSelector, boundary)
68709
68730
  );
68710
68731
  if (hasHardKill) continue;
68732
+ const exitClipInfo = clipIds.get(win.targetSelector) || clipClasses.get(win.targetSelector);
68733
+ const fixHint = exitClipInfo ? `"${win.targetSelector}" is a clip element \u2014 the framework already manages its visibility. Wrap the scene's content in an inner non-clip <div>, move the exit tween and the hard kill (\`tl.set("<inner-selector>", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\`) onto that wrapper instead.` : `Add \`tl.set("${win.targetSelector}", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\` after the exit tween.`;
68711
68734
  findings.push({
68712
68735
  code: "gsap_exit_missing_hard_kill",
68713
68736
  severity: "error",
68714
68737
  message: `GSAP exit on "${win.targetSelector}" ends at the ${boundary.toFixed(2)}s clip start boundary without a matching tl.set hard kill. Non-linear seeking can land after the fade and leave stale visibility state.`,
68715
68738
  selector: win.targetSelector,
68716
- fixHint: `Add \`tl.set("${win.targetSelector}", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\` after the exit tween.`,
68739
+ fixHint,
68717
68740
  snippet: truncateSnippet(win.raw)
68718
68741
  });
68719
68742
  }
@@ -68983,12 +69006,15 @@ ${right.raw}`)
68983
69006
  const killPattern = new RegExp(`["']#${id}["'][^)]*visibility\\s*:\\s*["']hidden["']`);
68984
69007
  const hasKill = killPattern.test(content);
68985
69008
  if (!hasKill) {
69009
+ const classes = (readAttr(tag.raw, "class") || "").split(/\s+/).filter(Boolean);
69010
+ const isClip = classes.includes("clip");
69011
+ const fixHint = isClip ? `"#${id}" is a clip element \u2014 the framework already manages its visibility. Wrap the scene's content in an inner non-clip <div>, move the exit tween and the hard kill (\`tl.set("<inner-selector>", { visibility: "hidden" }, <exit-end-time>)\`) onto that wrapper instead.` : `Add \`tl.set("#${id}", { visibility: "hidden" }, <exit-end-time>)\` after the scene's exit tweens.`;
68986
69012
  findings.push({
68987
69013
  code: "scene_layer_missing_visibility_kill",
68988
69014
  severity: "error",
68989
69015
  elementId: id,
68990
69016
  message: `Scene layer "#${id}" exits via opacity tween but has no visibility: hidden hard kill. When scrubbing or when tweens conflict, the scene may remain partially visible and overlap the next scene.`,
68991
- fixHint: `Add \`tl.set("#${id}", { visibility: "hidden" }, <exit-end-time>)\` after the scene's exit tweens.`
69017
+ fixHint
68992
69018
  });
68993
69019
  }
68994
69020
  }
@@ -70089,7 +70115,7 @@ ${allInlineStyles}`.replace(/\/\*[\s\S]*?\*\//g, "");
70089
70115
  code: "font_family_without_font_face",
70090
70116
  severity: "error",
70091
70117
  message: `Font ${undeclared.length === 1 ? "family" : "families"} used without @font-face declaration: ${undeclared.join(", ")}. These are not in the auto-resolved font list, so the renderer cannot supply them automatically. Text will fall back to a generic font, producing incorrect typography in the video.`,
70092
- fixHint: "Add @font-face { font-family: '...'; src: url('capture/assets/fonts/...woff2'); } for each font family, pointing to the captured .woff2 files."
70118
+ fixHint: "Add @font-face { font-family: '...'; src: url('capture/assets/fonts/...woff2'); } for each font family, pointing to the captured .woff2 files. For an OS-bundled system font (e.g. Hiragino Sans, Microsoft YaHei) that has no downloadable file, use src: local('Exact Font Name') instead \u2014 the declaration alone satisfies this check without needing a font file."
70093
70119
  });
70094
70120
  return findings;
70095
70121
  }
@@ -70309,6 +70335,9 @@ function inlineSubCompositions(document2, hosts, options) {
70309
70335
  child.remove();
70310
70336
  if (flattenInnerRoot) {
70311
70337
  const prepared = flattenInnerRoot(innerRoot);
70338
+ if (!compId && inferredCompId) {
70339
+ prepared.setAttribute("data-composition-id", inferredCompId);
70340
+ }
70312
70341
  hostEl.innerHTML = prepared.outerHTML || "";
70313
70342
  } else {
70314
70343
  hostEl.innerHTML = compId ? innerRoot.innerHTML || "" : innerRoot.outerHTML || "";
@@ -95031,10 +95060,11 @@ __export(manager_exports2, {
95031
95060
  clearBrowser: () => clearBrowser,
95032
95061
  ensureBrowser: () => ensureBrowser,
95033
95062
  findBrowser: () => findBrowser,
95034
- isLinuxArm: () => isLinuxArm
95063
+ isLinuxArm: () => isLinuxArm,
95064
+ withInstallLock: () => withInstallLock
95035
95065
  });
95036
95066
  import { execSync as execSync5, spawnSync as spawnSync2 } from "child_process";
95037
- import { existsSync as existsSync31, readdirSync as readdirSync13, rmSync as rmSync6 } from "fs";
95067
+ import { existsSync as existsSync31, mkdirSync as mkdirSync15, readdirSync as readdirSync13, rmSync as rmSync6, statSync as statSync9 } from "fs";
95038
95068
  import { basename as basename4 } from "path";
95039
95069
  import { homedir as homedir9 } from "os";
95040
95070
  import { join as join27 } from "path";
@@ -95049,6 +95079,59 @@ Fix: run \`npm install\` or \`bun install\` to restore missing packages, then re
95049
95079
  );
95050
95080
  }
95051
95081
  }
95082
+ function isErrno(err, code) {
95083
+ return err.code === code;
95084
+ }
95085
+ function sleep(ms) {
95086
+ return new Promise((resolve62) => setTimeout(resolve62, ms));
95087
+ }
95088
+ function tryAcquireDirLock(lockDir) {
95089
+ try {
95090
+ mkdirSync15(lockDir, { recursive: false });
95091
+ return true;
95092
+ } catch (err) {
95093
+ if (!isErrno(err, "EEXIST")) throw err;
95094
+ return false;
95095
+ }
95096
+ }
95097
+ function reclaimStaleInstallLock(timeoutMs) {
95098
+ if (!tryAcquireDirLock(INSTALL_RECLAIM_LOCK_DIR)) return;
95099
+ try {
95100
+ const mtimeMs = statSync9(INSTALL_LOCK_DIR).mtimeMs;
95101
+ if (Date.now() - mtimeMs > timeoutMs) {
95102
+ rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
95103
+ }
95104
+ } catch (err) {
95105
+ if (!isErrno(err, "ENOENT")) throw err;
95106
+ } finally {
95107
+ rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
95108
+ }
95109
+ }
95110
+ async function withInstallLock(fn, timeoutMs = INSTALL_LOCK_TIMEOUT_MS, pollMs = INSTALL_LOCK_POLL_MS) {
95111
+ if (!existsSync31(CACHE_DIR2)) mkdirSync15(CACHE_DIR2, { recursive: true });
95112
+ let deadline = Date.now() + timeoutMs;
95113
+ for (; ; ) {
95114
+ if (existsSync31(INSTALL_RECLAIM_LOCK_DIR)) {
95115
+ await sleep(pollMs);
95116
+ continue;
95117
+ }
95118
+ if (tryAcquireDirLock(INSTALL_LOCK_DIR)) {
95119
+ rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
95120
+ break;
95121
+ }
95122
+ if (Date.now() > deadline) {
95123
+ reclaimStaleInstallLock(timeoutMs);
95124
+ deadline = Date.now() + timeoutMs;
95125
+ continue;
95126
+ }
95127
+ await sleep(pollMs);
95128
+ }
95129
+ try {
95130
+ return await fn();
95131
+ } finally {
95132
+ rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
95133
+ }
95134
+ }
95052
95135
  function whichBinary2(name) {
95053
95136
  try {
95054
95137
  const cmd = process.platform === "win32" ? `where ${name}` : `which ${name}`;
@@ -95199,7 +95282,7 @@ async function findBrowser() {
95199
95282
  `[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
95200
95283
  );
95201
95284
  try {
95202
- return await downloadBrowser();
95285
+ return await withInstallLock(() => downloadBrowser());
95203
95286
  } catch (err) {
95204
95287
  const cause = normalizeErrorMessage(err);
95205
95288
  throw new Error(
@@ -95262,14 +95345,18 @@ async function ensureBrowser(options) {
95262
95345
  console.warn(
95263
95346
  `[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
95264
95347
  );
95265
- return downloadBrowser(options);
95348
+ return withInstallLock(() => downloadBrowser(options));
95266
95349
  }
95267
95350
  const fromSystem = findFromSystem2();
95268
95351
  if (fromSystem) {
95269
95352
  warnSystemFallbackOnce(fromSystem.executablePath);
95270
95353
  return fromSystem;
95271
95354
  }
95272
- return downloadBrowser(options);
95355
+ return withInstallLock(async () => {
95356
+ const afterLock = await findFromCache();
95357
+ if (afterLock.result) return afterLock.result;
95358
+ return downloadBrowser(options);
95359
+ });
95273
95360
  }
95274
95361
  async function downloadBrowser(options) {
95275
95362
  if (isLinuxArm()) {
@@ -95299,7 +95386,7 @@ function clearBrowser() {
95299
95386
  function isLinuxArm() {
95300
95387
  return process.platform === "linux" && process.arch === "arm64";
95301
95388
  }
95302
- var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
95389
+ var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, INSTALL_LOCK_DIR, INSTALL_RECLAIM_LOCK_DIR, INSTALL_LOCK_TIMEOUT_MS, INSTALL_LOCK_POLL_MS, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
95303
95390
  var init_manager2 = __esm({
95304
95391
  "src/browser/manager.ts"() {
95305
95392
  "use strict";
@@ -95307,6 +95394,10 @@ var init_manager2 = __esm({
95307
95394
  CHROME_VERSION = "131.0.6778.85";
95308
95395
  CACHE_DIR2 = join27(homedir9(), ".cache", "hyperframes", "chrome");
95309
95396
  PUPPETEER_CACHE_DIR = join27(homedir9(), ".cache", "puppeteer", "chrome-headless-shell");
95397
+ INSTALL_LOCK_DIR = join27(CACHE_DIR2, ".install.lock");
95398
+ INSTALL_RECLAIM_LOCK_DIR = join27(CACHE_DIR2, ".install.reclaim.lock");
95399
+ INSTALL_LOCK_TIMEOUT_MS = 12e4;
95400
+ INSTALL_LOCK_POLL_MS = 200;
95310
95401
  SYSTEM_CHROME_PATHS = process.platform === "darwin" ? ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"] : [
95311
95402
  "/usr/bin/google-chrome",
95312
95403
  "/usr/bin/google-chrome-stable",
@@ -98587,7 +98678,7 @@ __export(deterministicFonts_exports, {
98587
98678
  resolveFontFamilyDeclarationFamilies: () => resolveFontFamilyDeclarationFamilies
98588
98679
  });
98589
98680
  import { createHash as createHash6 } from "crypto";
98590
- import { existsSync as existsSync33, mkdirSync as mkdirSync15, readFileSync as readFileSync20, writeFileSync as writeFileSync11 } from "fs";
98681
+ import { existsSync as existsSync33, mkdirSync as mkdirSync16, readFileSync as readFileSync20, writeFileSync as writeFileSync11 } from "fs";
98591
98682
  import { homedir as homedir10, tmpdir as tmpdir3 } from "os";
98592
98683
  import { join as join28 } from "path";
98593
98684
  import postcss4 from "postcss";
@@ -98914,7 +99005,7 @@ function fontSlug(familyName) {
98914
99005
  function fontCacheDir(slug) {
98915
99006
  const dir = join28(GOOGLE_FONTS_CACHE_DIR, slug);
98916
99007
  if (!existsSync33(dir)) {
98917
- mkdirSync15(dir, { recursive: true });
99008
+ mkdirSync16(dir, { recursive: true });
98918
99009
  }
98919
99010
  return dir;
98920
99011
  }
@@ -99201,11 +99292,11 @@ import { spawn as spawn10 } from "child_process";
99201
99292
  import {
99202
99293
  copyFileSync as copyFileSync2,
99203
99294
  existsSync as existsSync34,
99204
- mkdirSync as mkdirSync16,
99295
+ mkdirSync as mkdirSync17,
99205
99296
  readFileSync as readFileSync21,
99206
99297
  renameSync as renameSync4,
99207
99298
  rmSync as rmSync7,
99208
- statSync as statSync9
99299
+ statSync as statSync10
99209
99300
  } from "fs";
99210
99301
  import { dirname as dirname13, isAbsolute as isAbsolute10, join as join29, resolve as resolve20 } from "path";
99211
99302
  function splitUrlSuffix2(src) {
@@ -99251,7 +99342,7 @@ function resolveGifSourcePath(src, options) {
99251
99342
  }
99252
99343
  function isUsableFile(path2) {
99253
99344
  try {
99254
- const stat3 = statSync9(path2);
99345
+ const stat3 = statSync10(path2);
99255
99346
  return stat3.isFile() && stat3.size > 0;
99256
99347
  } catch {
99257
99348
  return false;
@@ -99368,10 +99459,10 @@ async function runAnimatedGifTranscode(request) {
99368
99459
  }
99369
99460
  async function ensurePreparedWebm(input2) {
99370
99461
  if (!existsSync34(dirname13(input2.cachePath))) {
99371
- mkdirSync16(dirname13(input2.cachePath), { recursive: true });
99462
+ mkdirSync17(dirname13(input2.cachePath), { recursive: true });
99372
99463
  }
99373
99464
  if (!existsSync34(dirname13(input2.outputPath))) {
99374
- mkdirSync16(dirname13(input2.outputPath), { recursive: true });
99465
+ mkdirSync17(dirname13(input2.outputPath), { recursive: true });
99375
99466
  }
99376
99467
  if (!isUsableFile(input2.cachePath)) {
99377
99468
  const tmpPath = `${input2.cachePath}.tmp-${process.pid}-${Date.now()}`;
@@ -99617,7 +99708,7 @@ var init_hf_early_stub_inline = __esm({
99617
99708
  // ../producer/src/services/fileServer.ts
99618
99709
  import { Hono as Hono3 } from "hono";
99619
99710
  import { serve as serve2 } from "@hono/node-server";
99620
- import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as statSync10, createReadStream } from "fs";
99711
+ import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as statSync11, createReadStream } from "fs";
99621
99712
  import { readFile as readFile2 } from "fs/promises";
99622
99713
  import { Readable as Readable2 } from "stream";
99623
99714
  import { join as join30, extname as extname9, resolve as resolve23, sep as sep5 } from "path";
@@ -99965,13 +100056,13 @@ function createFileServer2(options) {
99965
100056
  let filePath = null;
99966
100057
  if (compiledDir) {
99967
100058
  const candidate = join30(compiledDir, relativePath);
99968
- if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) && statSync10(candidate).isFile()) {
100059
+ if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) && statSync11(candidate).isFile()) {
99969
100060
  filePath = candidate;
99970
100061
  }
99971
100062
  }
99972
100063
  if (!filePath) {
99973
100064
  const candidate = join30(projectDir, relativePath);
99974
- if (existsSync36(candidate) && isPathInside2(candidate, projectDir) && statSync10(candidate).isFile()) {
100065
+ if (existsSync36(candidate) && isPathInside2(candidate, projectDir) && statSync11(candidate).isFile()) {
99975
100066
  filePath = candidate;
99976
100067
  }
99977
100068
  }
@@ -99993,7 +100084,7 @@ function createFileServer2(options) {
99993
100084
  html = isIndex ? injectScriptsIntoHtml(html, headScripts, bodyScripts, stripEmbeddedRuntime) : html;
99994
100085
  return c3.text(html, 200, { "Content-Type": contentType });
99995
100086
  }
99996
- const stat3 = statSync10(filePath);
100087
+ const stat3 = statSync11(filePath);
99997
100088
  const totalSize2 = stat3.size;
99998
100089
  const rangeHeader = c3.req.header("range");
99999
100090
  const rangeRequest = parseRangeHeader(rangeHeader, totalSize2);
@@ -100245,7 +100336,7 @@ var init_paths = __esm({
100245
100336
  });
100246
100337
 
100247
100338
  // ../producer/src/services/render/shared.ts
100248
- import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as mkdirSync17, symlinkSync as symlinkSync2, writeFileSync as writeFileSync12 } from "fs";
100339
+ import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as mkdirSync18, symlinkSync as symlinkSync2, writeFileSync as writeFileSync12 } from "fs";
100249
100340
  import { basename as basename6, dirname as dirname15, isAbsolute as isAbsolute11, join as join33, relative as relative8, resolve as resolve24 } from "path";
100250
100341
  function writeFileExclusiveSync(path2, data2) {
100251
100342
  try {
@@ -100275,11 +100366,11 @@ function resolveDeviceScaleFactor(input2) {
100275
100366
  }
100276
100367
  function writeCompiledArtifacts(compiled, workDir, includeSummary) {
100277
100368
  const compileDir = join33(workDir, "compiled");
100278
- mkdirSync17(compileDir, { recursive: true });
100369
+ mkdirSync18(compileDir, { recursive: true });
100279
100370
  writeFileSync12(join33(compileDir, "index.html"), compiled.html, "utf-8");
100280
100371
  for (const [srcPath, html] of compiled.subCompositions) {
100281
100372
  const outPath = join33(compileDir, srcPath);
100282
- mkdirSync17(dirname15(outPath), { recursive: true });
100373
+ mkdirSync18(dirname15(outPath), { recursive: true });
100283
100374
  writeFileSync12(outPath, html, "utf-8");
100284
100375
  }
100285
100376
  for (const [relativePath, absolutePath] of compiled.externalAssets) {
@@ -100288,7 +100379,7 @@ function writeCompiledArtifacts(compiled, workDir, includeSummary) {
100288
100379
  console.warn(`[Render] Skipping external asset with unsafe path: ${relativePath}`);
100289
100380
  continue;
100290
100381
  }
100291
- mkdirSync17(dirname15(outPath), { recursive: true });
100382
+ mkdirSync18(dirname15(outPath), { recursive: true });
100292
100383
  copyFileSync3(absolutePath, outPath);
100293
100384
  }
100294
100385
  if (includeSummary) {
@@ -100413,7 +100504,7 @@ var init_shared = __esm({
100413
100504
  };
100414
100505
  materializeFileSystem = {
100415
100506
  existsSync: existsSync37,
100416
- mkdirSync: mkdirSync17,
100507
+ mkdirSync: mkdirSync18,
100417
100508
  symlinkSync: symlinkSync2,
100418
100509
  cpSync: cpSync2
100419
100510
  };
@@ -101605,7 +101696,7 @@ var init_manualEditsRenderScript = __esm({
101605
101696
  });
101606
101697
 
101607
101698
  // ../producer/src/services/htmlCompiler.ts
101608
- import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as mkdirSync18 } from "fs";
101699
+ import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as mkdirSync19 } from "fs";
101609
101700
  import { join as join35, dirname as dirname16, resolve as resolve25, basename as basename7 } from "path";
101610
101701
  function parseSubCompHtmlForValidity(html) {
101611
101702
  return parseHTML(html).document;
@@ -101715,7 +101806,7 @@ function detectShaderTransitionUsage(html) {
101715
101806
  async function resolveMediaDuration(src, mediaStart, baseDir, downloadDir, tagName19) {
101716
101807
  let filePath = src;
101717
101808
  if (isHttpUrl(src)) {
101718
- if (!existsSync38(downloadDir)) mkdirSync18(downloadDir, { recursive: true });
101809
+ if (!existsSync38(downloadDir)) mkdirSync19(downloadDir, { recursive: true });
101719
101810
  try {
101720
101811
  filePath = await downloadToTemp(src, downloadDir);
101721
101812
  } catch {
@@ -102004,7 +102095,14 @@ function inlineSubCompositions2(html, subCompositions, projectDir) {
102004
102095
  },
102005
102096
  parseHtml: (htmlStr) => parseHTML(htmlStr).document,
102006
102097
  scriptErrorLabel: "[Compiler] Composition script failed",
102007
- compoundAuthoredRoot: true,
102098
+ // Preserve the authored root wrapper as a child of the host, matching
102099
+ // the preview bundler's shape (htmlBundler.ts's prepareFlattenedInnerRoot,
102100
+ // which the runtime compositionLoader mirrors with its own copy for the
102101
+ // live-loaded case). Without this, the wrapper element (and its
102102
+ // class/id) is discarded and any CSS anchored on it —
102103
+ // `.wrapper-class .title`, `#wrapper-id` — is dead at render time even
102104
+ // though it works in preview.
102105
+ flattenInnerRoot: prepareFlattenedInnerRoot,
102008
102106
  onMissingComposition: (srcPath, reason) => {
102009
102107
  console.warn(
102010
102108
  `[Compiler] Skipping sub-composition "${srcPath}": ${reason ?? "the file is missing or empty"}.`
@@ -102012,12 +102110,6 @@ function inlineSubCompositions2(html, subCompositions, projectDir) {
102012
102110
  }
102013
102111
  }
102014
102112
  );
102015
- for (const hostEl of hosts) {
102016
- const compId = hostEl.getAttribute("data-composition-id");
102017
- if (compId && !hostEl.getAttribute("data-hf-authored-id")) {
102018
- hostEl.setAttribute("data-hf-authored-id", compId);
102019
- }
102020
- }
102021
102113
  for (const host of hosts) {
102022
102114
  const hostW = host.getAttribute("data-width");
102023
102115
  const hostH = host.getAttribute("data-height");
@@ -102202,7 +102294,7 @@ function collectExternalAssets(html, projectDir) {
102202
102294
  }
102203
102295
  async function downloadAndRewriteUrls(urlSet, html, remoteDir, warnLabel, logLabel, extraRewrite) {
102204
102296
  if (urlSet.size === 0) return { html, remoteMediaAssets: /* @__PURE__ */ new Map() };
102205
- if (!existsSync38(remoteDir)) mkdirSync18(remoteDir, { recursive: true });
102297
+ if (!existsSync38(remoteDir)) mkdirSync19(remoteDir, { recursive: true });
102206
102298
  const urlToLocal = /* @__PURE__ */ new Map();
102207
102299
  await Promise.all(
102208
102300
  [...urlSet].map(async (url) => {
@@ -103465,6 +103557,7 @@ async function runAudioStage(input2) {
103465
103557
  const stage3Start = Date.now();
103466
103558
  const audioOutputPath = join39(workDir, "audio.aac");
103467
103559
  let hasAudio = false;
103560
+ let audioError;
103468
103561
  if (audios.length > 0) {
103469
103562
  const audioResult = await processCompositionAudio(
103470
103563
  audios,
@@ -103478,9 +103571,10 @@ async function runAudioStage(input2) {
103478
103571
  );
103479
103572
  assertNotAborted();
103480
103573
  hasAudio = audioResult.success;
103574
+ if (!hasAudio) audioError = audioResult.error ?? "audio mix failed for an unknown reason";
103481
103575
  }
103482
103576
  const audioProcessMs = Date.now() - stage3Start;
103483
- return { audioOutputPath, hasAudio, audioProcessMs };
103577
+ return { audioOutputPath, hasAudio, audioProcessMs, audioError };
103484
103578
  }
103485
103579
  var init_audioStage = __esm({
103486
103580
  "../producer/src/services/render/stages/audioStage.ts"() {
@@ -104551,7 +104645,7 @@ import {
104551
104645
  closeSync as closeSync3,
104552
104646
  constants as constants2,
104553
104647
  fstatSync as fstatSync2,
104554
- mkdirSync as mkdirSync19,
104648
+ mkdirSync as mkdirSync20,
104555
104649
  mkdtempSync as mkdtempSync2,
104556
104650
  openSync as openSync2,
104557
104651
  readFileSync as readFileSync25
@@ -104643,7 +104737,7 @@ async function extractHdrVideoFrames(args) {
104643
104737
  for (const [videoId, srcPath] of prep.hdrVideoSrcPaths) {
104644
104738
  const video = composition.videos.find((v2) => v2.id === videoId);
104645
104739
  if (!video) continue;
104646
- mkdirSync19(framesDir, { recursive: true });
104740
+ mkdirSync20(framesDir, { recursive: true });
104647
104741
  const frameDir = mkdtempSync2(join41(framesDir, `hdr_${tempDirSafePrefix(videoId)}-`));
104648
104742
  const duration = video.end - video.start;
104649
104743
  const dims = prep.hdrExtractionDims.get(videoId) ?? { width, height };
@@ -105362,7 +105456,7 @@ var init_captureHdrHybridLoop = __esm({
105362
105456
  });
105363
105457
 
105364
105458
  // ../producer/src/services/render/stages/captureHdrStage.ts
105365
- import { existsSync as existsSync41, mkdirSync as mkdirSync20 } from "fs";
105459
+ import { existsSync as existsSync41, mkdirSync as mkdirSync21 } from "fs";
105366
105460
  import { join as join46 } from "path";
105367
105461
  async function runCaptureHdrStage(input2) {
105368
105462
  const {
@@ -105524,7 +105618,7 @@ async function runCaptureHdrStage(input2) {
105524
105618
  const debugDumpEnabled = process.env.KEEP_TEMP === "1";
105525
105619
  const debugDumpDir = debugDumpEnabled ? join46(framesDir, "debug-composite") : null;
105526
105620
  if (debugDumpDir && !existsSync41(debugDumpDir)) {
105527
- mkdirSync20(debugDumpDir, { recursive: true });
105621
+ mkdirSync21(debugDumpDir, { recursive: true });
105528
105622
  }
105529
105623
  const compositeTransfer = resolveCompositeTransfer(hasHdrContent, effectiveHdr);
105530
105624
  const hdrTargetTransfer = compositeTransfer === "srgb" ? void 0 : compositeTransfer;
@@ -105725,7 +105819,7 @@ var init_gifEncodeArgs = __esm({
105725
105819
  });
105726
105820
 
105727
105821
  // ../producer/src/services/render/stages/encodeStage.ts
105728
- import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as mkdirSync21, readdirSync as readdirSync14, rmSync as rmSync10, statSync as statSync11 } from "fs";
105822
+ import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as mkdirSync23, readdirSync as readdirSync14, rmSync as rmSync10, statSync as statSync12 } from "fs";
105729
105823
  import { dirname as dirname18, join as join48 } from "path";
105730
105824
  function resolveGifLoop(loop) {
105731
105825
  const resolved = loop ?? 0;
@@ -105785,7 +105879,7 @@ async function encodeGifFromDir(framesDir, framePattern, outputPath, input2) {
105785
105879
  error: formatFfmpegError(gifResult.exitCode, gifResult.stderr)
105786
105880
  };
105787
105881
  }
105788
- const fileSize = existsSync43(outputPath) ? statSync11(outputPath).size : 0;
105882
+ const fileSize = existsSync43(outputPath) ? statSync12(outputPath).size : 0;
105789
105883
  return {
105790
105884
  success: true,
105791
105885
  outputPath,
@@ -105823,7 +105917,7 @@ async function runEncodeStage(input2) {
105823
105917
  const stage5Start = Date.now();
105824
105918
  if (isPngSequence) {
105825
105919
  updateJobStatus(job, "encoding", "Writing PNG sequence", 75, onProgress);
105826
- if (!existsSync43(outputPath)) mkdirSync21(outputPath, { recursive: true });
105920
+ if (!existsSync43(outputPath)) mkdirSync23(outputPath, { recursive: true });
105827
105921
  const captured = readdirSync14(framesDir).filter((name) => name.endsWith(".png")).sort();
105828
105922
  if (captured.length === 0) {
105829
105923
  throw new Error(
@@ -105967,12 +106061,12 @@ var init_assembleStage = __esm({
105967
106061
  // ../producer/src/services/renderOrchestrator.ts
105968
106062
  import {
105969
106063
  existsSync as existsSync44,
105970
- mkdirSync as mkdirSync23,
106064
+ mkdirSync as mkdirSync24,
105971
106065
  mkdtempSync as mkdtempSync3,
105972
106066
  readFileSync as readFileSync26,
105973
106067
  readdirSync as readdirSync15,
105974
106068
  rmSync as rmSync11,
105975
- statSync as statSync12,
106069
+ statSync as statSync13,
105976
106070
  writeFileSync as writeFileSync13,
105977
106071
  copyFileSync as copyFileSync5,
105978
106072
  appendFileSync
@@ -105995,7 +106089,7 @@ function sampleDirectoryBytes(dir) {
105995
106089
  for (const name of entries2) {
105996
106090
  const full2 = join49(current2, name);
105997
106091
  try {
105998
- const st3 = statSync12(full2);
106092
+ const st3 = statSync13(full2);
105999
106093
  if (st3.isDirectory()) {
106000
106094
  stack.push(full2);
106001
106095
  } else if (st3.isFile()) {
@@ -106350,7 +106444,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106350
106444
  const producerRoot = process.env.PRODUCER_RENDERS_DIR ? resolve26(process.env.PRODUCER_RENDERS_DIR, "..") : resolve26(moduleDir, "../..");
106351
106445
  const debugDir = join49(producerRoot, ".debug");
106352
106446
  const outputDir = dirname19(outputPath);
106353
- if (!existsSync44(outputDir)) mkdirSync23(outputDir, { recursive: true });
106447
+ if (!existsSync44(outputDir)) mkdirSync24(outputDir, { recursive: true });
106354
106448
  const workDir = job.config.debug ? join49(debugDir, job.id) : mkdtempSync3(join49(outputDir, `work-${job.id}-`));
106355
106449
  const pipelineStart = Date.now();
106356
106450
  const log2 = job.config.logger ?? defaultLogger;
@@ -106412,7 +106506,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106412
106506
  job.startedAt = /* @__PURE__ */ new Date();
106413
106507
  assertNotAborted();
106414
106508
  assertConfiguredFfmpegBinariesExist();
106415
- if (!existsSync44(workDir)) mkdirSync23(workDir, { recursive: true });
106509
+ if (!existsSync44(workDir)) mkdirSync24(workDir, { recursive: true });
106416
106510
  if (job.config.debug) {
106417
106511
  const logPath = join49(workDir, "render.log");
106418
106512
  restoreLogger = installDebugLogger(logPath, log2);
@@ -106648,6 +106742,9 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106648
106742
  );
106649
106743
  const { audioOutputPath, hasAudio } = audioResult;
106650
106744
  perfStages.audioProcessMs = audioResult.audioProcessMs;
106745
+ if (audioResult.audioError) {
106746
+ log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
106747
+ }
106651
106748
  const stage4Start = Date.now();
106652
106749
  updateJobStatus(job, "rendering", "Starting frame capture", 25, onProgress);
106653
106750
  if (!fileServer) {
@@ -106674,7 +106771,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106674
106771
  throw new Error("File server failed to initialize before frame capture");
106675
106772
  }
106676
106773
  const framesDir = join49(workDir, "captured-frames");
106677
- if (!existsSync44(framesDir)) mkdirSync23(framesDir, { recursive: true });
106774
+ if (!existsSync44(framesDir)) mkdirSync24(framesDir, { recursive: true });
106678
106775
  const resolvedBrowserGpuMode = await resolveBrowserGpuMode(cfg.browserGpuMode, {
106679
106776
  chromePath: resolveHeadlessShellPath(cfg),
106680
106777
  browserTimeout: cfg.browserTimeout
@@ -107264,7 +107361,7 @@ var init_config3 = __esm({
107264
107361
  });
107265
107362
 
107266
107363
  // ../producer/src/services/hyperframeLint.ts
107267
- import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as statSync13 } from "fs";
107364
+ import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as statSync14 } from "fs";
107268
107365
  import { resolve as resolve27, join as join50 } from "path";
107269
107366
  function isStringRecord2(value) {
107270
107367
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -107293,7 +107390,7 @@ function pickEntryFile(files, preferredEntryFile) {
107293
107390
  }
107294
107391
  function readProjectEntryFile(projectDir, preferredEntryFile) {
107295
107392
  const absProjectDir = resolve27(projectDir);
107296
- if (!existsSync45(absProjectDir) || !statSync13(absProjectDir).isDirectory()) {
107393
+ if (!existsSync45(absProjectDir) || !statSync14(absProjectDir).isDirectory()) {
107297
107394
  return { error: `Project directory not found: ${absProjectDir}` };
107298
107395
  }
107299
107396
  const entryCandidates = [preferredEntryFile, "index.html", "src/index.html"].filter(
@@ -107304,7 +107401,7 @@ function readProjectEntryFile(projectDir, preferredEntryFile) {
107304
107401
  if (!absoluteEntryPath.startsWith(absProjectDir)) {
107305
107402
  return { error: `Entry file must stay inside project directory: ${entryFile}` };
107306
107403
  }
107307
- if (existsSync45(absoluteEntryPath) && statSync13(absoluteEntryPath).isFile()) {
107404
+ if (existsSync45(absoluteEntryPath) && statSync14(absoluteEntryPath).isFile()) {
107308
107405
  return {
107309
107406
  entryFile,
107310
107407
  html: readFileSync27(absoluteEntryPath, "utf-8"),
@@ -107495,8 +107592,8 @@ var init_semaphore = __esm({
107495
107592
  // ../producer/src/server.ts
107496
107593
  import {
107497
107594
  existsSync as existsSync47,
107498
- mkdirSync as mkdirSync24,
107499
- statSync as statSync14,
107595
+ mkdirSync as mkdirSync25,
107596
+ statSync as statSync15,
107500
107597
  mkdtempSync as mkdtempSync4,
107501
107598
  writeFileSync as writeFileSync14,
107502
107599
  rmSync as rmSync12,
@@ -107563,7 +107660,7 @@ function resolvePreparedRenderOutput(prepared, rendersDir, log2) {
107563
107660
  const { input: input2, cleanupProjectDir } = prepared;
107564
107661
  const absoluteOutputPath = resolveOutputPath(input2.projectDir, input2.outputPath, rendersDir, log2);
107565
107662
  const outputDir = dirname21(absoluteOutputPath);
107566
- if (!existsSync47(outputDir)) mkdirSync24(outputDir, { recursive: true });
107663
+ if (!existsSync47(outputDir)) mkdirSync25(outputDir, { recursive: true });
107567
107664
  return { input: input2, cleanupProjectDir, absoluteOutputPath };
107568
107665
  }
107569
107666
  function validateRenderOverrides(body) {
@@ -107593,7 +107690,7 @@ async function prepareRenderBody(body) {
107593
107690
  const projectDir = typeof body.projectDir === "string" ? body.projectDir : void 0;
107594
107691
  if (projectDir) {
107595
107692
  const absProjectDir = resolve28(projectDir);
107596
- if (!existsSync47(absProjectDir) || !statSync14(absProjectDir).isDirectory()) {
107693
+ if (!existsSync47(absProjectDir) || !statSync15(absProjectDir).isDirectory()) {
107597
107694
  return { error: `Project directory not found: ${absProjectDir}` };
107598
107695
  }
107599
107696
  const entry = options.entryFile || "index.html";
@@ -107760,7 +107857,7 @@ function createRenderHandlers(options = {}) {
107760
107857
  log2.info(`render progress ${pct}%`, { requestId, stage: j3.currentStage, message });
107761
107858
  }
107762
107859
  });
107763
- const fileSize = existsSync47(absoluteOutputPath) ? statSync14(absoluteOutputPath).size : 0;
107860
+ const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
107764
107861
  const durationMs = Date.now() - t0;
107765
107862
  const outputToken = store.register(absoluteOutputPath);
107766
107863
  const outputUrl = `${outputUrlPrefix}/${outputToken}`;
@@ -107876,7 +107973,7 @@ function createRenderHandlers(options = {}) {
107876
107973
  },
107877
107974
  abortController.signal
107878
107975
  );
107879
- const fileSize = existsSync47(absoluteOutputPath) ? statSync14(absoluteOutputPath).size : 0;
107976
+ const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
107880
107977
  const outputToken = store.register(absoluteOutputPath);
107881
107978
  const outputUrl = `${outputUrlPrefix}/${outputToken}`;
107882
107979
  log2.info("render-stream completed", { requestId, fileSize, perf: job.perfSummary ?? null });
@@ -107939,7 +108036,7 @@ function createRenderHandlers(options = {}) {
107939
108036
  store.delete(token);
107940
108037
  return c3.json({ success: false, error: "Output artifact file missing" }, 404);
107941
108038
  }
107942
- const stats = statSync14(artifact.path);
108039
+ const stats = statSync15(artifact.path);
107943
108040
  return new Response(createReadStream2(artifact.path), {
107944
108041
  headers: {
107945
108042
  "content-type": "video/mp4",
@@ -108103,7 +108200,7 @@ var init_planHash = __esm({
108103
108200
  });
108104
108201
 
108105
108202
  // ../producer/src/services/render/stages/freezePlan.ts
108106
- import { existsSync as existsSync48, mkdirSync as mkdirSync25, readFileSync as readFileSync28, readdirSync as readdirSync16, writeFileSync as writeFileSync15 } from "fs";
108203
+ import { existsSync as existsSync48, mkdirSync as mkdirSync26, readFileSync as readFileSync28, readdirSync as readdirSync16, writeFileSync as writeFileSync15 } from "fs";
108107
108204
  import { join as join54, relative as relative9, resolve as resolve29 } from "path";
108108
108205
  function stripUndefined(value) {
108109
108206
  if (Array.isArray(value)) return value.map(stripUndefined);
@@ -108199,7 +108296,7 @@ async function freezePlan(input2) {
108199
108296
  throw new Error(`[freezePlan] planDir does not exist: ${planDir}`);
108200
108297
  }
108201
108298
  const metaDir = join54(planDir, "meta");
108202
- if (!existsSync48(metaDir)) mkdirSync25(metaDir, { recursive: true });
108299
+ if (!existsSync48(metaDir)) mkdirSync26(metaDir, { recursive: true });
108203
108300
  writeFileSync15(
108204
108301
  join54(metaDir, "composition.json"),
108205
108302
  `${JSON.stringify(composition, null, 2)}
@@ -108429,11 +108526,11 @@ var init_shared2 = __esm({
108429
108526
  import {
108430
108527
  cpSync as cpSync3,
108431
108528
  existsSync as existsSync50,
108432
- mkdirSync as mkdirSync26,
108529
+ mkdirSync as mkdirSync27,
108433
108530
  readdirSync as readdirSync17,
108434
108531
  renameSync as renameSync5,
108435
108532
  rmSync as rmSync13,
108436
- statSync as statSync15,
108533
+ statSync as statSync16,
108437
108534
  writeFileSync as writeFileSync16
108438
108535
  } from "fs";
108439
108536
  import { join as join56, relative as relative10, sep as sep6 } from "path";
@@ -108466,7 +108563,7 @@ function measurePlanDirBytes(planDir) {
108466
108563
  walk(full2);
108467
108564
  } else if (entry.isFile()) {
108468
108565
  try {
108469
- total += statSync15(full2).size;
108566
+ total += statSync16(full2).size;
108470
108567
  } catch {
108471
108568
  }
108472
108569
  }
@@ -108600,7 +108697,7 @@ async function plan(projectDir, config, planDir) {
108600
108697
  useGpu: false,
108601
108698
  browserGpuMode: "software"
108602
108699
  });
108603
- if (!existsSync50(planDir)) mkdirSync26(planDir, { recursive: true });
108700
+ if (!existsSync50(planDir)) mkdirSync27(planDir, { recursive: true });
108604
108701
  const log2 = config.logger ?? defaultLogger;
108605
108702
  const abortSignal = config.abortSignal;
108606
108703
  const assertNotAborted = () => {
@@ -108634,9 +108731,9 @@ async function plan(projectDir, config, planDir) {
108634
108731
  throw new Error(`[plan] entry file not found: ${htmlPath}`);
108635
108732
  }
108636
108733
  const workDir = join56(planDir, ".plan-work");
108637
- if (!existsSync50(workDir)) mkdirSync26(workDir, { recursive: true });
108734
+ if (!existsSync50(workDir)) mkdirSync27(workDir, { recursive: true });
108638
108735
  const compiledDir = join56(workDir, "compiled");
108639
- mkdirSync26(compiledDir, { recursive: true });
108736
+ mkdirSync27(compiledDir, { recursive: true });
108640
108737
  cpSync3(projectDir, compiledDir, {
108641
108738
  recursive: true,
108642
108739
  dereference: true,
@@ -108729,13 +108826,16 @@ async function plan(projectDir, config, planDir) {
108729
108826
  abortSignal,
108730
108827
  assertNotAborted
108731
108828
  });
108829
+ if (audioResult.audioError) {
108830
+ log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
108831
+ }
108732
108832
  const stagedVideoFrames = join56(compiledDir, "__hyperframes_video_frames");
108733
108833
  const videoFramesDst = join56(planDir, "video-frames");
108734
108834
  if (existsSync50(videoFramesDst)) rmSync13(videoFramesDst, { recursive: true, force: true });
108735
108835
  if (existsSync50(stagedVideoFrames)) {
108736
108836
  renameSync5(stagedVideoFrames, videoFramesDst);
108737
108837
  } else {
108738
- mkdirSync26(videoFramesDst, { recursive: true });
108838
+ mkdirSync27(videoFramesDst, { recursive: true });
108739
108839
  }
108740
108840
  if (existsSync50(finalCompiledDir)) rmSync13(finalCompiledDir, { recursive: true, force: true });
108741
108841
  renameSync5(compiledDir, finalCompiledDir);
@@ -108750,7 +108850,7 @@ async function plan(projectDir, config, planDir) {
108750
108850
  metadata: ext.metadata
108751
108851
  }))
108752
108852
  };
108753
- mkdirSync26(join56(planDir, "meta"), { recursive: true });
108853
+ mkdirSync27(join56(planDir, "meta"), { recursive: true });
108754
108854
  writeFileSync16(
108755
108855
  join56(planDir, PLAN_VIDEOS_META_RELATIVE_PATH),
108756
108856
  JSON.stringify(planVideosJson, null, 2),
@@ -108900,7 +109000,7 @@ var init_plan = __esm({
108900
109000
 
108901
109001
  // ../producer/src/services/distributed/renderChunk.ts
108902
109002
  import { randomBytes as randomBytes2 } from "crypto";
108903
- import { existsSync as existsSync51, mkdirSync as mkdirSync27, readFileSync as readFileSync30, readdirSync as readdirSync18, rmSync as rmSync14, writeFileSync as writeFileSync17 } from "fs";
109003
+ import { existsSync as existsSync51, mkdirSync as mkdirSync28, readFileSync as readFileSync30, readdirSync as readdirSync18, rmSync as rmSync14, writeFileSync as writeFileSync17 } from "fs";
108904
109004
  import { extname as extname10, join as join57 } from "path";
108905
109005
  function rebuildExtractedFramesFromPlanDir(planDir, videos) {
108906
109006
  const result = [];
@@ -109066,9 +109166,9 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
109066
109166
  "software"
109067
109167
  );
109068
109168
  const workDir = `${outputChunkPath}.work.${process.pid}.${randomBytes2(4).toString("hex")}`;
109069
- mkdirSync27(workDir, { recursive: true });
109169
+ mkdirSync28(workDir, { recursive: true });
109070
109170
  const framesDir = join57(workDir, "captured-frames");
109071
- mkdirSync27(framesDir, { recursive: true });
109171
+ mkdirSync28(framesDir, { recursive: true });
109072
109172
  const fileServer = await createFileServer2({
109073
109173
  projectDir: compiledDir,
109074
109174
  compiledDir,
@@ -109147,10 +109247,10 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
109147
109247
  const effectiveBitrate = encoder.crf != null ? void 0 : encoder.bitrate;
109148
109248
  const videoOnlyPath = outputChunkPath;
109149
109249
  if (isPngSequence) {
109150
- if (!existsSync51(outputChunkPath)) mkdirSync27(outputChunkPath, { recursive: true });
109250
+ if (!existsSync51(outputChunkPath)) mkdirSync28(outputChunkPath, { recursive: true });
109151
109251
  } else {
109152
109252
  const outDir = join57(outputChunkPath, "..");
109153
- if (!existsSync51(outDir)) mkdirSync27(outDir, { recursive: true });
109253
+ if (!existsSync51(outDir)) mkdirSync28(outDir, { recursive: true });
109154
109254
  }
109155
109255
  const encodeStarted = Date.now();
109156
109256
  await runEncodeStage({
@@ -109589,11 +109689,11 @@ var init_audioPadTrim = __esm({
109589
109689
  import {
109590
109690
  cpSync as cpSync4,
109591
109691
  existsSync as existsSync53,
109592
- mkdirSync as mkdirSync28,
109692
+ mkdirSync as mkdirSync29,
109593
109693
  readFileSync as readFileSync31,
109594
109694
  readdirSync as readdirSync19,
109595
109695
  rmSync as rmSync16,
109596
- statSync as statSync16,
109696
+ statSync as statSync17,
109597
109697
  writeFileSync as writeFileSync18
109598
109698
  } from "fs";
109599
109699
  import { dirname as dirname23, join as join58 } from "path";
@@ -109626,11 +109726,11 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
109626
109726
  return mergePngFrameDirs(chunkPaths, outputPath, plan2.totalFrames, audioPath, start);
109627
109727
  }
109628
109728
  if (!existsSync53(dirname23(outputPath))) {
109629
- mkdirSync28(dirname23(outputPath), { recursive: true });
109729
+ mkdirSync29(dirname23(outputPath), { recursive: true });
109630
109730
  }
109631
109731
  const workDir = `${outputPath}.assemble-work`;
109632
109732
  if (existsSync53(workDir)) rmSync16(workDir, { recursive: true, force: true });
109633
- mkdirSync28(workDir, { recursive: true });
109733
+ mkdirSync29(workDir, { recursive: true });
109634
109734
  try {
109635
109735
  const concatOutputPath = join58(workDir, `concat.${plan2.dimensions.format}`);
109636
109736
  const fpsArg = fpsToFfmpegArg({
@@ -109775,7 +109875,7 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
109775
109875
  });
109776
109876
  }
109777
109877
  }
109778
- const fileSize = existsSync53(outputPath) ? statSync16(outputPath).size : 0;
109878
+ const fileSize = existsSync53(outputPath) ? statSync17(outputPath).size : 0;
109779
109879
  return {
109780
109880
  outputPath,
109781
109881
  durationMs: Date.now() - start,
@@ -109785,10 +109885,10 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
109785
109885
  }
109786
109886
  function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, startTimeMs) {
109787
109887
  if (existsSync53(outputPath)) rmSync16(outputPath, { recursive: true, force: true });
109788
- mkdirSync28(outputPath, { recursive: true });
109888
+ mkdirSync29(outputPath, { recursive: true });
109789
109889
  let globalIdx = 0;
109790
109890
  for (const chunkDir of chunkPaths) {
109791
- if (!statSync16(chunkDir).isDirectory()) {
109891
+ if (!statSync17(chunkDir).isDirectory()) {
109792
109892
  throw new Error(
109793
109893
  `[assemble] png-sequence chunk must be a directory: ${chunkDir} (got a file)`
109794
109894
  );
@@ -109815,7 +109915,7 @@ function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, start
109815
109915
  let fileSize = 0;
109816
109916
  for (const name of readdirSync19(outputPath)) {
109817
109917
  try {
109818
- fileSize += statSync16(join58(outputPath, name)).size;
109918
+ fileSize += statSync17(join58(outputPath, name)).size;
109819
109919
  } catch {
109820
109920
  }
109821
109921
  }
@@ -109929,7 +110029,7 @@ __export(studioServer_exports, {
109929
110029
  });
109930
110030
  import { Hono as Hono5 } from "hono";
109931
110031
  import { streamSSE as streamSSE3 } from "hono/streaming";
109932
- import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as statSync17 } from "fs";
110032
+ import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as statSync18 } from "fs";
109933
110033
  import { resolve as resolve30, join as join60, basename as basename8 } from "path";
109934
110034
  function resolveDistDir() {
109935
110035
  return resolveStudioBundle().dir;
@@ -110385,7 +110485,7 @@ function createStudioServer(options) {
110385
110485
  });
110386
110486
  const serveStudioStaticFile = (c3) => {
110387
110487
  const filePath = resolve30(studioDir, c3.req.path.slice(1));
110388
- if (!existsSync54(filePath) || !statSync17(filePath).isFile()) return c3.text("not found", 404);
110488
+ if (!existsSync54(filePath) || !statSync18(filePath).isFile()) return c3.text("not found", 404);
110389
110489
  const content = readFileSync34(filePath);
110390
110490
  return new Response(content, {
110391
110491
  headers: { "Content-Type": getMimeType(filePath), "Cache-Control": "no-store" }
@@ -110496,7 +110596,7 @@ __export(preview_exports, {
110496
110596
  examples: () => examples2
110497
110597
  });
110498
110598
  import { spawn as spawn12 } from "child_process";
110499
- import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as mkdirSync29 } from "fs";
110599
+ import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as mkdirSync30 } from "fs";
110500
110600
  import { resolve as resolve31, dirname as dirname24, basename as basename9, join as join61 } from "path";
110501
110601
  import { fileURLToPath as fileURLToPath8 } from "url";
110502
110602
  import { createRequire as createRequire2 } from "module";
@@ -110804,7 +110904,7 @@ function printStudioSummary(projectName, url, opts = {}) {
110804
110904
  }
110805
110905
  function linkProjectIntoStudioData(dir, projectsDir, projectName) {
110806
110906
  const symlinkPath = join61(projectsDir, projectName);
110807
- mkdirSync29(projectsDir, { recursive: true });
110907
+ mkdirSync30(projectsDir, { recursive: true });
110808
110908
  let createdSymlink = false;
110809
110909
  if (dir !== symlinkPath) {
110810
110910
  if (existsSync55(symlinkPath)) {
@@ -111251,7 +111351,7 @@ __export(init_exports, {
111251
111351
  });
111252
111352
  import {
111253
111353
  existsSync as existsSync56,
111254
- mkdirSync as mkdirSync30,
111354
+ mkdirSync as mkdirSync31,
111255
111355
  copyFileSync as copyFileSync6,
111256
111356
  cpSync as cpSync5,
111257
111357
  writeFileSync as writeFileSync20,
@@ -111590,7 +111690,7 @@ function applyResolutionPreset(destDir, resolution) {
111590
111690
  }
111591
111691
  }
111592
111692
  async function scaffoldProject(destDir, name, templateId, localVideoName, durationSeconds, tailwind = false, resolution) {
111593
- mkdirSync30(destDir, { recursive: true });
111693
+ mkdirSync31(destDir, { recursive: true });
111594
111694
  const templateDir = getStaticTemplateDir(templateId);
111595
111695
  if (existsSync56(join63(templateDir, "index.html"))) {
111596
111696
  cpSync5(templateDir, destDir, { recursive: true });
@@ -111832,7 +111932,7 @@ var init_init = __esm({
111832
111932
  console.error(c.error(`Audio file not found: ${audioFlag}`));
111833
111933
  process.exit(1);
111834
111934
  }
111835
- mkdirSync30(destDir2, { recursive: true });
111935
+ mkdirSync31(destDir2, { recursive: true });
111836
111936
  let localVideoName2;
111837
111937
  let videoDuration2;
111838
111938
  let sourceFilePath2;
@@ -111974,7 +112074,7 @@ var init_init = __esm({
111974
112074
  me("Setup cancelled.");
111975
112075
  process.exit(1);
111976
112076
  }
111977
- mkdirSync30(destDir, { recursive: true });
112077
+ mkdirSync31(destDir, { recursive: true });
111978
112078
  sourceFilePath = videoPath;
111979
112079
  const result = await handleVideoFile(videoPath, destDir, true);
111980
112080
  localVideoName = result.localVideoName;
@@ -111986,7 +112086,7 @@ var init_init = __esm({
111986
112086
  me("Setup cancelled.");
111987
112087
  process.exit(1);
111988
112088
  }
111989
- mkdirSync30(destDir, { recursive: true });
112089
+ mkdirSync31(destDir, { recursive: true });
111990
112090
  sourceFilePath = audioPath;
111991
112091
  copyFileSync6(audioPath, resolve33(destDir, basename10(audioPath)));
111992
112092
  R2.info(`Audio copied to ${c.accent(basename10(audioPath))}`);
@@ -112856,18 +112956,18 @@ function buildPresentPage(projectName, islandJson) {
112856
112956
  <meta charset="UTF-8" />
112857
112957
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
112858
112958
  <title>${escHtml(projectName)} \u2014 Presenter</title>
112959
+ <script>
112960
+ // Retitle the audience tab so the two tabs are distinguishable in the
112961
+ // browser tab strip and in Meet's "Share a tab" picker.
112962
+ if (new URLSearchParams(location.search).get("mode") === "audience") {
112963
+ document.title = ${JSON.stringify(projectName).replace(/</g, "\\u003c")} + " \u2014 Audience";
112964
+ }
112965
+ </script>
112859
112966
  <style>
112860
112967
  * { margin: 0; padding: 0; box-sizing: border-box; }
112861
112968
  html, body { height: 100%; background: #0a0a0a; overflow: hidden; }
112862
112969
  hyperframes-slideshow { display: block; position: relative; width: 100vw; height: 100vh; }
112863
112970
  hyperframes-player { position: absolute; inset: 0; }
112864
- #present-btn {
112865
- position: fixed; top: 18px; right: 18px; z-index: 99999;
112866
- font: 600 14px/1 system-ui, sans-serif; color: #0d1321;
112867
- background: #f4b740; border: none; border-radius: 999px;
112868
- padding: 11px 18px; cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,.45);
112869
- }
112870
- #present-btn:hover { background: #ffcb5c; }
112871
112971
  </style>
112872
112972
  <script src="/player.js"></script>
112873
112973
  <script src="/slideshow.js"></script>
@@ -112879,28 +112979,8 @@ function buildPresentPage(projectName, islandJson) {
112879
112979
  ${islandJson}
112880
112980
  </script>
112881
112981
  </hyperframes-slideshow>
112882
- <button id="present-btn" type="button">\u25B6&nbsp; Present</button>
112883
- <script>
112884
- (function () {
112885
- // The audience window loads this same page with ?mode=audience; it must not
112886
- // show the Present button or it would recurse opening windows.
112887
- var isAudience = new URLSearchParams(location.search).get("mode") === "audience";
112888
- var btn = document.getElementById("present-btn");
112889
- if (isAudience) { if (btn) btn.remove(); return; }
112890
- function present() {
112891
- var ss = document.querySelector("hyperframes-slideshow");
112892
- if (ss && typeof ss.present === "function") {
112893
- ss.present();
112894
- if (btn) btn.style.display = "none";
112895
- }
112896
- }
112897
- if (btn) btn.addEventListener("click", present);
112898
- // 'P' opens presenter mode (window.open needs a user gesture, so a key/click).
112899
- window.addEventListener("keydown", function (e) {
112900
- if ((e.key === "p" || e.key === "P") && !e.metaKey && !e.ctrlKey) present();
112901
- });
112902
- })();
112903
- </script>
112982
+ <!-- Present CTA lives in the component's nav cluster (data-hf-present, plus
112983
+ the P key) \u2014 no page-level button, or we'd render two Present CTAs. -->
112904
112984
  <script>
112905
112985
  // Sound effects play HERE, in the parent document. The composition runs in the
112906
112986
  // player's iframe, which is autoplay-blocked without its own user gesture; the
@@ -113069,6 +113149,15 @@ var init_present = __esm({
113069
113149
  return;
113070
113150
  }
113071
113151
  const islandJson = islandMatch[1].trim();
113152
+ try {
113153
+ JSON.parse(islandJson);
113154
+ } catch (err) {
113155
+ R2.error(
113156
+ `Slideshow island in ${project.indexPath} is not valid JSON: ${err.message}`
113157
+ );
113158
+ process.exitCode = 1;
113159
+ return;
113160
+ }
113072
113161
  const { Hono: Hono6 } = await import("hono");
113073
113162
  const { createAdaptorServer } = await import("@hono/node-server");
113074
113163
  const { isSafePath: isSafePath2 } = await Promise.resolve().then(() => (init_studio_api(), studio_api_exports));
@@ -113110,7 +113199,15 @@ var init_present = __esm({
113110
113199
  console.log(` ${c.dim("Deck")} ${c.accent(project.name)}`);
113111
113200
  console.log(` ${c.dim("Present")} ${c.accent(url)}`);
113112
113201
  console.log();
113113
- console.log(` ${c.dim("Click \u25B6 Present (or press P) to open the audience display.")}`);
113202
+ console.log(
113203
+ ` ${c.dim("Click the Present control (or press P) to open the audience display.")}`
113204
+ );
113205
+ console.log(
113206
+ ` ${c.dim('Google Meet: share the AUDIENCE tab ("Share screen \u2192 A tab"), not a window or your whole screen.')}`
113207
+ );
113208
+ console.log(
113209
+ ` ${c.dim("Zoom desktop: drag the audience tab into its own window and share that window (keep it at least partly visible).")}`
113210
+ );
113114
113211
  console.log(` ${c.dim("Press Ctrl+C to stop")}`);
113115
113212
  console.log();
113116
113213
  if (args.open) {
@@ -113129,7 +113226,7 @@ var init_present = __esm({
113129
113226
 
113130
113227
  // src/utils/publishProject.ts
113131
113228
  import { basename as basename11, dirname as dirname27, join as join64, posix as posix4, relative as relative13, resolve as resolve39 } from "path";
113132
- import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as statSync18 } from "fs";
113229
+ import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as statSync19 } from "fs";
113133
113230
  import AdmZip from "adm-zip";
113134
113231
  function isRecord3(value) {
113135
113232
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -113236,7 +113333,7 @@ function collectProjectFiles(rootDir, currentDir, paths) {
113236
113333
  collectProjectFiles(rootDir, absolutePath, paths);
113237
113334
  continue;
113238
113335
  }
113239
- if (!statSync18(absolutePath).isFile()) continue;
113336
+ if (!statSync19(absolutePath).isFile()) continue;
113240
113337
  paths.push(relativePath);
113241
113338
  }
113242
113339
  }
@@ -113263,7 +113360,7 @@ function tryResolveExternal(ctx, rawPath, referrerAbsDir) {
113263
113360
  const absPath = resolve39(referrerAbsDir, rawPath);
113264
113361
  if (isPathInside(absPath, ctx.absProjectDir)) return null;
113265
113362
  try {
113266
- if (!existsSync61(absPath) || !statSync18(absPath).isFile()) return null;
113363
+ if (!existsSync61(absPath) || !statSync19(absPath).isFile()) return null;
113267
113364
  } catch {
113268
113365
  return null;
113269
113366
  }
@@ -114292,7 +114389,7 @@ __export(batchRender_exports, {
114292
114389
  resolveOutputTemplate: () => resolveOutputTemplate,
114293
114390
  runBatchRender: () => runBatchRender
114294
114391
  });
114295
- import { mkdirSync as mkdirSync31, readFileSync as readFileSync40, writeFileSync as writeFileSync21 } from "fs";
114392
+ import { mkdirSync as mkdirSync33, readFileSync as readFileSync40, writeFileSync as writeFileSync21 } from "fs";
114296
114393
  import { dirname as dirname28, join as join66, resolve as resolve43, sep as sep8 } from "path";
114297
114394
  function isRecord4(value) {
114298
114395
  return value !== null && typeof value === "object" && !Array.isArray(value);
@@ -114477,7 +114574,7 @@ function summarizeManifest(manifest) {
114477
114574
  }
114478
114575
  function writeManifest(manifest) {
114479
114576
  summarizeManifest(manifest);
114480
- mkdirSync31(dirname28(manifest.manifestPath), { recursive: true });
114577
+ mkdirSync33(dirname28(manifest.manifestPath), { recursive: true });
114481
114578
  writeFileSync21(manifest.manifestPath, JSON.stringify(manifest, null, 2) + "\n", "utf8");
114482
114579
  }
114483
114580
  function emitJsonEvent(event, json) {
@@ -114499,7 +114596,7 @@ async function renderBatchRow(row, manifest, options) {
114499
114596
  console.log(c.dim(`Batch row ${row.index}: ${row.outputPath}`));
114500
114597
  }
114501
114598
  try {
114502
- mkdirSync31(dirname28(row.outputPath), { recursive: true });
114599
+ mkdirSync33(dirname28(row.outputPath), { recursive: true });
114503
114600
  const result = await options.renderOne(row);
114504
114601
  manifestRow.status = "completed";
114505
114602
  manifestRow.durationMs = result.durationMs ?? null;
@@ -114640,7 +114737,7 @@ __export(render_exports, {
114640
114737
  renderLocal: () => renderLocal,
114641
114738
  resolveBrowserGpuForCli: () => resolveBrowserGpuForCli
114642
114739
  });
114643
- import { mkdirSync as mkdirSync33, readdirSync as readdirSync24, readFileSync as readFileSync41, statSync as statSync19, writeFileSync as writeFileSync23, rmSync as rmSync17 } from "fs";
114740
+ import { mkdirSync as mkdirSync34, readdirSync as readdirSync24, readFileSync as readFileSync41, statSync as statSync20, writeFileSync as writeFileSync23, rmSync as rmSync17 } from "fs";
114644
114741
  import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir5 } from "os";
114645
114742
  import { resolve as resolve44, dirname as dirname29, join as join67, basename as basename12 } from "path";
114646
114743
  import { execFileSync as execFileSync9, spawn as spawn14 } from "child_process";
@@ -114706,7 +114803,7 @@ function resolveDockerfilePath() {
114706
114803
  const devPath = resolve44(__dirname, "..", "src", "docker", "Dockerfile.render");
114707
114804
  for (const p2 of [builtPath, devPath]) {
114708
114805
  try {
114709
- statSync19(p2);
114806
+ statSync20(p2);
114710
114807
  return p2;
114711
114808
  } catch {
114712
114809
  continue;
@@ -114735,7 +114832,7 @@ function ensureDockerImage(version2, platform10, quiet) {
114735
114832
  if (!quiet) console.log(c.dim(` Building Docker image: ${tag} (${platform10})...`));
114736
114833
  const dockerfilePath = resolveDockerfilePath();
114737
114834
  const tmpDir = join67(tmpdir5(), `hyperframes-docker-${Date.now()}`);
114738
- mkdirSync33(tmpDir, { recursive: true });
114835
+ mkdirSync34(tmpDir, { recursive: true });
114739
114836
  writeFileSync23(join67(tmpDir, "Dockerfile"), readFileSync41(dockerfilePath));
114740
114837
  const targetArch = platform10 === "linux/arm64" ? "arm64" : "amd64";
114741
114838
  try {
@@ -115133,14 +115230,14 @@ function printRenderComplete(outputPath, elapsedMs, quiet, outputDurationSeconds
115133
115230
  let fileSize = "unknown";
115134
115231
  let isDirectory = false;
115135
115232
  try {
115136
- const stat3 = statSync19(outputPath);
115233
+ const stat3 = statSync20(outputPath);
115137
115234
  isDirectory = stat3.isDirectory();
115138
115235
  if (stat3.isDirectory()) {
115139
115236
  let total = 0;
115140
115237
  for (const entry of readdirSync24(outputPath, { withFileTypes: true })) {
115141
115238
  if (!entry.isFile()) continue;
115142
115239
  try {
115143
- total += statSync19(join67(outputPath, entry.name)).size;
115240
+ total += statSync20(join67(outputPath, entry.name)).size;
115144
115241
  } catch {
115145
115242
  }
115146
115243
  }
@@ -115560,7 +115657,7 @@ var init_render = __esm({
115560
115657
  const timePart = now.toTimeString().slice(0, 8).replace(/:/g, "-");
115561
115658
  const batchOutputTemplate = args.output ? args.output : join67(rendersDir, `${project.name}_${datePart}_${timePart}_{index}${ext}`);
115562
115659
  const outputPath = args.output ? resolve44(args.output) : join67(rendersDir, `${project.name}_${datePart}_${timePart}${ext}`);
115563
- if (!batchPath) mkdirSync33(dirname29(outputPath), { recursive: true });
115660
+ if (!batchPath) mkdirSync34(dirname29(outputPath), { recursive: true });
115564
115661
  const useDocker = args.docker ?? false;
115565
115662
  const useGpu = args.gpu ?? false;
115566
115663
  const browserGpuArg = args["browser-gpu"];
@@ -115618,7 +115715,7 @@ var init_render = __esm({
115618
115715
  console.log(c.warn(" GIF output is capped at 30fps. Use --fps 15 for smaller files."));
115619
115716
  }
115620
115717
  const pageNavigationTimeoutMs = resolveBrowserTimeoutMsArg(args["browser-timeout"]);
115621
- const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync19);
115718
+ const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync20);
115622
115719
  let batchModule;
115623
115720
  let preparedBatch;
115624
115721
  if (batchPath) {
@@ -116171,7 +116268,7 @@ __export(beats_exports, {
116171
116268
  default: () => beats_default,
116172
116269
  examples: () => examples11
116173
116270
  });
116174
- import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as mkdirSync34, writeFileSync as writeFileSync24 } from "fs";
116271
+ import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as mkdirSync35, writeFileSync as writeFileSync24 } from "fs";
116175
116272
  import { resolve as resolve45, join as join69, dirname as dirname31 } from "path";
116176
116273
  function fail(message) {
116177
116274
  console.error(c.error(message));
@@ -116243,7 +116340,7 @@ var init_beats2 = __esm({
116243
116340
  fail(`No beats detected in ${rel} \u2014 nothing written. (Track may be silent/ambient.)`);
116244
116341
  }
116245
116342
  const outPath = join69(project.dir, "beats", `${rel}.json`);
116246
- mkdirSync34(dirname31(outPath), { recursive: true });
116343
+ mkdirSync35(dirname31(outPath), { recursive: true });
116247
116344
  writeFileSync24(outPath, serializeBeats(result.beatTimes, result.beatStrengths, rel));
116248
116345
  report(`beats/${rel}.json`, result, Boolean(args.json));
116249
116346
  }
@@ -116257,10 +116354,10 @@ __export(staticProjectServer_exports, {
116257
116354
  serveStaticProjectHtml: () => serveStaticProjectHtml
116258
116355
  });
116259
116356
  import { createServer } from "http";
116260
- import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as statSync20 } from "fs";
116357
+ import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as statSync21 } from "fs";
116261
116358
  import { isAbsolute as isAbsolute13, relative as relative14, resolve as resolve46 } from "path";
116262
116359
  function serveFileWithRange(filePath, rangeHeader, res) {
116263
- const size = statSync20(filePath).size;
116360
+ const size = statSync21(filePath).size;
116264
116361
  const headers = {
116265
116362
  "Content-Type": getMimeType(filePath),
116266
116363
  "Accept-Ranges": "bytes"
@@ -119459,7 +119556,7 @@ __export(keyframes_exports, {
119459
119556
  examples: () => examples14,
119460
119557
  surfaceComposition: () => surfaceComposition
119461
119558
  });
119462
- import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as statSync21 } from "fs";
119559
+ import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as statSync23 } from "fs";
119463
119560
  import { resolve as resolve47, dirname as dirname33, basename as basename14 } from "path";
119464
119561
  function inlineScriptText(html) {
119465
119562
  const doc = new DOMParser().parseFromString(html, "text/html");
@@ -119941,7 +120038,7 @@ function resolveScope(args) {
119941
120038
  let comps;
119942
120039
  let projectName;
119943
120040
  let projectDir;
119944
- if (raw && raw.endsWith(".html") && existsSync70(raw) && statSync21(raw).isFile()) {
120041
+ if (raw && raw.endsWith(".html") && existsSync70(raw) && statSync23(raw).isFile()) {
119945
120042
  comps = [surfaceComposition(readFileSync47(raw, "utf-8"), basename14(raw), raw)];
119946
120043
  projectName = basename14(raw);
119947
120044
  projectDir = dirname33(raw);
@@ -120151,7 +120248,7 @@ __export(info_exports, {
120151
120248
  examples: () => examples15,
120152
120249
  orientation: () => orientation
120153
120250
  });
120154
- import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as statSync23 } from "fs";
120251
+ import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as statSync24 } from "fs";
120155
120252
  import { join as join73 } from "path";
120156
120253
  function orientation(width, height) {
120157
120254
  if (width > height) return "landscape";
@@ -120170,7 +120267,7 @@ function totalSize(dir) {
120170
120267
  if (entry.isDirectory()) {
120171
120268
  total += totalSize(path2);
120172
120269
  } else {
120173
- total += statSync23(path2).size;
120270
+ total += statSync24(path2).size;
120174
120271
  }
120175
120272
  }
120176
120273
  return total;
@@ -120433,7 +120530,7 @@ __export(benchmark_exports, {
120433
120530
  default: () => benchmark_default,
120434
120531
  examples: () => examples17
120435
120532
  });
120436
- import { existsSync as existsSync73, statSync as statSync24 } from "fs";
120533
+ import { existsSync as existsSync73, statSync as statSync25 } from "fs";
120437
120534
  import { resolve as resolve49, join as join74 } from "path";
120438
120535
  var examples17, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
120439
120536
  var init_benchmark = __esm({
@@ -120527,7 +120624,7 @@ var init_benchmark = __esm({
120527
120624
  const elapsedMs = Date.now() - startTime;
120528
120625
  let fileSize = null;
120529
120626
  if (existsSync73(outputPath)) {
120530
- const stat3 = statSync24(outputPath);
120627
+ const stat3 = statSync25(outputPath);
120531
120628
  fileSize = stat3.size;
120532
120629
  }
120533
120630
  runs.push({ elapsedMs, fileSize });
@@ -120784,7 +120881,7 @@ __export(manager_exports3, {
120784
120881
  modelPath: () => modelPath,
120785
120882
  selectProviders: () => selectProviders
120786
120883
  });
120787
- import { existsSync as existsSync74, mkdirSync as mkdirSync35 } from "fs";
120884
+ import { existsSync as existsSync74, mkdirSync as mkdirSync36 } from "fs";
120788
120885
  import { homedir as homedir11, platform as platform8, arch } from "os";
120789
120886
  import { join as join75 } from "path";
120790
120887
  function isDevice(value) {
@@ -120831,7 +120928,7 @@ function modelPath(model = DEFAULT_MODEL2) {
120831
120928
  async function ensureModel2(model = DEFAULT_MODEL2, options) {
120832
120929
  const dest = modelPath(model);
120833
120930
  if (existsSync74(dest)) return dest;
120834
- mkdirSync35(MODELS_DIR2, { recursive: true });
120931
+ mkdirSync36(MODELS_DIR2, { recursive: true });
120835
120932
  options?.onProgress?.(`Downloading ${model} weights (~168 MB)...`);
120836
120933
  await downloadFile(MODEL_URLS[model], dest);
120837
120934
  if (!existsSync74(dest)) {
@@ -121783,7 +121880,7 @@ var init_transcribe2 = __esm({
121783
121880
  });
121784
121881
 
121785
121882
  // src/tts/manager.ts
121786
- import { existsSync as existsSync77, mkdirSync as mkdirSync36 } from "fs";
121883
+ import { existsSync as existsSync77, mkdirSync as mkdirSync37 } from "fs";
121787
121884
  import { homedir as homedir12 } from "os";
121788
121885
  import { join as join77 } from "path";
121789
121886
  function inferLangFromVoiceId(voiceId) {
@@ -121802,7 +121899,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
121802
121899
  `Unknown TTS model: ${model}. Available: ${Object.keys(MODEL_URLS2).join(", ")}`
121803
121900
  );
121804
121901
  }
121805
- mkdirSync36(MODELS_DIR3, { recursive: true });
121902
+ mkdirSync37(MODELS_DIR3, { recursive: true });
121806
121903
  options?.onProgress?.(`Downloading TTS model ${model} (~311 MB)...`);
121807
121904
  await downloadFile(url, modelPath2);
121808
121905
  if (!existsSync77(modelPath2)) {
@@ -121813,7 +121910,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
121813
121910
  async function ensureVoices(options) {
121814
121911
  const voicesPath = join77(VOICES_DIR, "voices-v1.0.bin");
121815
121912
  if (existsSync77(voicesPath)) return voicesPath;
121816
- mkdirSync36(VOICES_DIR, { recursive: true });
121913
+ mkdirSync37(VOICES_DIR, { recursive: true });
121817
121914
  options?.onProgress?.("Downloading voice data (~27 MB)...");
121818
121915
  await downloadFile(VOICES_URL, voicesPath);
121819
121916
  if (!existsSync77(voicesPath)) {
@@ -121945,12 +122042,12 @@ __export(synthesize_exports, {
121945
122042
  synthesize: () => synthesize
121946
122043
  });
121947
122044
  import { execFileSync as execFileSync11 } from "child_process";
121948
- import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as mkdirSync37, readdirSync as readdirSync27, unlinkSync as unlinkSync5 } from "fs";
122045
+ import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as mkdirSync38, readdirSync as readdirSync27, unlinkSync as unlinkSync5 } from "fs";
121949
122046
  import { join as join78, dirname as dirname36, basename as basename15 } from "path";
121950
122047
  import { homedir as homedir13 } from "os";
121951
122048
  function ensureSynthScript() {
121952
122049
  if (!existsSync78(SCRIPT_PATH)) {
121953
- mkdirSync37(SCRIPT_DIR, { recursive: true });
122050
+ mkdirSync38(SCRIPT_DIR, { recursive: true });
121954
122051
  writeFileSync27(SCRIPT_PATH, SYNTH_SCRIPT);
121955
122052
  const currentName = basename15(SCRIPT_PATH);
121956
122053
  try {
@@ -121991,7 +122088,7 @@ async function synthesize(text2, outputPath, options) {
121991
122088
  ensureVoices({ onProgress: options?.onProgress })
121992
122089
  ]);
121993
122090
  const scriptPath = ensureSynthScript();
121994
- mkdirSync37(dirname36(outputPath), { recursive: true });
122091
+ mkdirSync38(dirname36(outputPath), { recursive: true });
121995
122092
  options?.onProgress?.(`Generating speech with voice ${voice} (${lang})...`);
121996
122093
  try {
121997
122094
  const stdout2 = execFileSync11(
@@ -123211,6 +123308,7 @@ var validate_exports = {};
123211
123308
  __export(validate_exports, {
123212
123309
  default: () => validate_default,
123213
123310
  extractCompositionErrorsFromLint: () => extractCompositionErrorsFromLint,
123311
+ raceMediaReady: () => raceMediaReady,
123214
123312
  shouldIgnoreRequestFailure: () => shouldIgnoreRequestFailure
123215
123313
  });
123216
123314
  import { existsSync as existsSync81, readFileSync as readFileSync53 } from "fs";
@@ -123247,13 +123345,49 @@ async function seekTo2(page, time) {
123247
123345
  }, time);
123248
123346
  await new Promise((r2) => setTimeout(r2, SEEK_SETTLE_MS2));
123249
123347
  }
123250
- async function auditClipDurations(page, analyzeClipMediaFit2) {
123251
- const clips = await page.evaluate(() => {
123348
+ function raceMediaReady(el, deadlineMs) {
123349
+ if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
123350
+ return new Promise((resolve62) => {
123351
+ const onReady = () => {
123352
+ el.removeEventListener("loadedmetadata", onReady);
123353
+ el.removeEventListener("error", onReady);
123354
+ clearTimeout(timer);
123355
+ resolve62();
123356
+ };
123357
+ el.addEventListener("loadedmetadata", onReady, { once: true });
123358
+ el.addEventListener("error", onReady, { once: true });
123359
+ const timer = setTimeout(onReady, Math.max(0, deadlineMs - Date.now()));
123360
+ });
123361
+ }
123362
+ async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
123363
+ const clips = await page.evaluate(async (maxWaitMs) => {
123364
+ const nodes = Array.from(
123365
+ document.querySelectorAll("video[data-duration], audio[data-duration]")
123366
+ );
123367
+ const deadline = Date.now() + maxWaitMs;
123368
+ await Promise.all(
123369
+ nodes.map((el) => {
123370
+ if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
123371
+ return new Promise((resolve62) => {
123372
+ const cleanup = () => {
123373
+ el.removeEventListener("loadedmetadata", onReady);
123374
+ el.removeEventListener("error", onReady);
123375
+ clearTimeout(timer);
123376
+ };
123377
+ const onReady = () => {
123378
+ cleanup();
123379
+ resolve62();
123380
+ };
123381
+ el.addEventListener("loadedmetadata", onReady, { once: true });
123382
+ el.addEventListener("error", onReady, { once: true });
123383
+ const timer = setTimeout(onReady, Math.max(0, deadline - Date.now()));
123384
+ });
123385
+ })
123386
+ );
123252
123387
  const rows = [];
123253
- document.querySelectorAll("video[data-duration], audio[data-duration]").forEach((node) => {
123254
- const el = node;
123388
+ for (const el of nodes) {
123255
123389
  const slot = parseFloat(el.getAttribute("data-duration") ?? "");
123256
- if (!(slot > 0)) return;
123390
+ if (!(slot > 0)) continue;
123257
123391
  rows.push({
123258
123392
  id: el.id || el.getAttribute("src") || `(${el.tagName.toLowerCase()})`,
123259
123393
  kind: el.tagName === "AUDIO" ? "Audio" : "Video",
@@ -123262,9 +123396,9 @@ async function auditClipDurations(page, analyzeClipMediaFit2) {
123262
123396
  duration: el.duration,
123263
123397
  loop: el.loop || el.getAttribute("data-loop") === "true"
123264
123398
  });
123265
- });
123399
+ }
123266
123400
  return rows;
123267
- });
123401
+ }, extraWaitMs);
123268
123402
  const warnings = [];
123269
123403
  const unreadable = [];
123270
123404
  for (const clip of clips) {
@@ -123383,7 +123517,7 @@ async function validateInBrowser(project, opts) {
123383
123517
  });
123384
123518
  await page.goto(server.url, { waitUntil: "domcontentloaded", timeout: 1e4 });
123385
123519
  await new Promise((r2) => setTimeout(r2, opts.timeout ?? 3e3));
123386
- for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2)) {
123520
+ for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2, opts.timeout ?? 3e3)) {
123387
123521
  warnings.push(w3);
123388
123522
  }
123389
123523
  if (opts.contrast) {
@@ -129885,7 +130019,7 @@ var require_node_domexception = __commonJS({
129885
130019
  });
129886
130020
 
129887
130021
  // ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
129888
- import { statSync as statSync25, createReadStream as createReadStream4, promises as fs2 } from "fs";
130022
+ import { statSync as statSync26, createReadStream as createReadStream4, promises as fs2 } from "fs";
129889
130023
  import { basename as basename17 } from "path";
129890
130024
  var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
129891
130025
  var init_from = __esm({
@@ -129895,10 +130029,10 @@ var init_from = __esm({
129895
130029
  init_file();
129896
130030
  init_fetch_blob();
129897
130031
  ({ stat } = fs2);
129898
- blobFromSync = (path2, type) => fromBlob(statSync25(path2), path2, type);
130032
+ blobFromSync = (path2, type) => fromBlob(statSync26(path2), path2, type);
129899
130033
  blobFrom = (path2, type) => stat(path2).then((stat3) => fromBlob(stat3, path2, type));
129900
130034
  fileFrom = (path2, type) => stat(path2).then((stat3) => fromFile(stat3, path2, type));
129901
- fileFromSync = (path2, type) => fromFile(statSync25(path2), path2, type);
130035
+ fileFromSync = (path2, type) => fromFile(statSync26(path2), path2, type);
129902
130036
  fromBlob = (stat3, path2, type = "") => new fetch_blob_default([new BlobDataItem({
129903
130037
  path: path2,
129904
130038
  size: stat3.size,
@@ -143689,7 +143823,7 @@ var require_websocket = __commonJS({
143689
143823
  var http4 = __require("http");
143690
143824
  var net2 = __require("net");
143691
143825
  var tls = __require("tls");
143692
- var { randomBytes: randomBytes4, createHash: createHash14 } = __require("crypto");
143826
+ var { randomBytes: randomBytes4, createHash: createHash15 } = __require("crypto");
143693
143827
  var { Duplex, Readable: Readable4 } = __require("stream");
143694
143828
  var { URL: URL2 } = __require("url");
143695
143829
  var PerMessageDeflate2 = require_permessage_deflate();
@@ -144349,7 +144483,7 @@ var require_websocket = __commonJS({
144349
144483
  abortHandshake(websocket, socket, "Invalid Upgrade header");
144350
144484
  return;
144351
144485
  }
144352
- const digest = createHash14("sha1").update(key2 + GUID).digest("base64");
144486
+ const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
144353
144487
  if (res.headers["sec-websocket-accept"] !== digest) {
144354
144488
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
144355
144489
  return;
@@ -144716,7 +144850,7 @@ var require_websocket_server = __commonJS({
144716
144850
  var EventEmitter = __require("events");
144717
144851
  var http4 = __require("http");
144718
144852
  var { Duplex } = __require("stream");
144719
- var { createHash: createHash14 } = __require("crypto");
144853
+ var { createHash: createHash15 } = __require("crypto");
144720
144854
  var extension2 = require_extension();
144721
144855
  var PerMessageDeflate2 = require_permessage_deflate();
144722
144856
  var subprotocol2 = require_subprotocol();
@@ -145017,7 +145151,7 @@ var require_websocket_server = __commonJS({
145017
145151
  );
145018
145152
  }
145019
145153
  if (this._state > RUNNING) return abortHandshake(socket, 503);
145020
- const digest = createHash14("sha1").update(key2 + GUID).digest("base64");
145154
+ const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
145021
145155
  const headers = [
145022
145156
  "HTTP/1.1 101 Switching Protocols",
145023
145157
  "Upgrade: websocket",
@@ -156052,7 +156186,7 @@ async function uploadBlobInternal(file, uploadUrl, apiClient, httpOptions) {
156052
156186
  break;
156053
156187
  }
156054
156188
  retryCount++;
156055
- await sleep(currentDelayMs);
156189
+ await sleep2(currentDelayMs);
156056
156190
  currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
156057
156191
  }
156058
156192
  offset2 += chunkSize;
@@ -156069,7 +156203,7 @@ async function getBlobStat(file) {
156069
156203
  const fileStat = { size: file.size, type: file.type };
156070
156204
  return fileStat;
156071
156205
  }
156072
- function sleep(ms) {
156206
+ function sleep2(ms) {
156073
156207
  return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
156074
156208
  }
156075
156209
  function resolveCloudFlag(options) {
@@ -163294,7 +163428,7 @@ ${underline2}`);
163294
163428
  break;
163295
163429
  }
163296
163430
  retryCount++;
163297
- await sleep(currentDelayMs);
163431
+ await sleep2(currentDelayMs);
163298
163432
  currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
163299
163433
  }
163300
163434
  offset2 += bytesRead;
@@ -163465,7 +163599,7 @@ __export(snapshot_exports, {
163465
163599
  tailFrameTime: () => tailFrameTime
163466
163600
  });
163467
163601
  import { spawn as spawn16 } from "child_process";
163468
- import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as mkdirSync38, rmSync as rmSync18, writeFileSync as writeFileSync29 } from "fs";
163602
+ import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as mkdirSync39, rmSync as rmSync18, writeFileSync as writeFileSync29 } from "fs";
163469
163603
  import { tmpdir as tmpdir6 } from "os";
163470
163604
  import { resolve as resolve55, join as join83, relative as relative15, isAbsolute as isAbsolute14, basename as basename19 } from "path";
163471
163605
  function orbitStageSource() {
@@ -163667,7 +163801,7 @@ async function captureSnapshots(projectDir, opts) {
163667
163801
  }
163668
163802
  const cameraExpr = opts.angle && (opts.angle.yaw !== 0 || opts.angle.pitch !== 0) ? `(${orbitStageSource()})(${JSON.stringify(opts.angle)})` : null;
163669
163803
  const snapshotDir = opts.outputDir ?? join83(projectDir, "snapshots");
163670
- mkdirSync38(snapshotDir, { recursive: true });
163804
+ mkdirSync39(snapshotDir, { recursive: true });
163671
163805
  try {
163672
163806
  const { readdirSync: readdirSync35 } = await import("fs");
163673
163807
  for (const file of readdirSync35(snapshotDir)) {
@@ -163997,7 +164131,7 @@ ${c.error("\u2717")} Snapshot failed: ${msg}`);
163997
164131
  });
163998
164132
 
163999
164133
  // src/capture/assetDownloader.ts
164000
- import { writeFileSync as writeFileSync30, mkdirSync as mkdirSync39 } from "fs";
164134
+ import { writeFileSync as writeFileSync30, mkdirSync as mkdirSync40 } from "fs";
164001
164135
  import { join as join84, extname as extname15 } from "path";
164002
164136
  import { createHash as createHash12 } from "crypto";
164003
164137
  function svgContentHashSlug(svgSource, isLogo) {
@@ -164006,10 +164140,10 @@ function svgContentHashSlug(svgSource, isLogo) {
164006
164140
  }
164007
164141
  async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks) {
164008
164142
  const assetsDir = join84(outputDir, "assets");
164009
- mkdirSync39(assetsDir, { recursive: true });
164143
+ mkdirSync40(assetsDir, { recursive: true });
164010
164144
  const assets = [];
164011
164145
  const downloadedUrls = /* @__PURE__ */ new Set();
164012
- mkdirSync39(join84(outputDir, "assets", "svgs"), { recursive: true });
164146
+ mkdirSync40(join84(outputDir, "assets", "svgs"), { recursive: true });
164013
164147
  const usedSvgNames = /* @__PURE__ */ new Set();
164014
164148
  for (let i2 = 0; i2 < tokens.svgs.length && i2 < 30; i2++) {
164015
164149
  const svg = tokens.svgs[i2];
@@ -164140,7 +164274,7 @@ function normalizeUrl(u) {
164140
164274
  }
164141
164275
  async function downloadAndRewriteFonts(css, outputDir) {
164142
164276
  const assetsDir = join84(outputDir, "assets", "fonts");
164143
- mkdirSync39(assetsDir, { recursive: true });
164277
+ mkdirSync40(assetsDir, { recursive: true });
164144
164278
  const fontUrlRegex = /url\(['"]?(https?:\/\/[^'")\s]+\.(?:woff2?|ttf|otf)[^'")\s]*?)['"]?\)/g;
164145
164279
  const fontUrls = /* @__PURE__ */ new Set();
164146
164280
  let match;
@@ -164333,7 +164467,7 @@ __export(video_exports, {
164333
164467
  runVideoMode: () => runVideoMode,
164334
164468
  safeFilename: () => safeFilename
164335
164469
  });
164336
- import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as mkdirSync40, readFileSync as readFileSync56, unlinkSync as unlinkSync7 } from "fs";
164470
+ import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as mkdirSync41, readFileSync as readFileSync56, unlinkSync as unlinkSync7 } from "fs";
164337
164471
  import { resolve as resolve56, join as join85, basename as basename20 } from "path";
164338
164472
  async function streamToFile(url, destPath) {
164339
164473
  const r2 = await safeFetch(url, {
@@ -164509,7 +164643,7 @@ async function runVideoMode(args) {
164509
164643
  return;
164510
164644
  }
164511
164645
  const outDir = isW2hLayout ? join85(projectDir, "capture", "assets", "videos") : join85(projectDir, "assets", "videos");
164512
- mkdirSync40(outDir, { recursive: true });
164646
+ mkdirSync41(outDir, { recursive: true });
164513
164647
  const fname = safeFilename(entry.filename || basename20(entry.url));
164514
164648
  const outPath = join85(outDir, fname);
164515
164649
  const relPath = isW2hLayout ? `capture/assets/videos/${fname}` : `assets/videos/${fname}`;
@@ -165280,7 +165414,8 @@ var init_designStyleExtractor = __esm({
165280
165414
  function rgbToHex(color) {
165281
165415
  if (!color) return "";
165282
165416
  if (color.startsWith('#')) return color.toUpperCase();
165283
- var m = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?/);
165417
+ // capture optional alpha (group 4), allowing both comma and modern slash (rgb r g b / a) syntax.
165418
+ var m = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)(?:\\s*[,/]\\s*([\\d.]+))?/);
165284
165419
  if (!m) return color;
165285
165420
  // fully-transparent fill (rgba(...,0)) \u2192 sentinel, NOT #000000 \u2014 otherwise a transparent
165286
165421
  // chip/tab/stat ground reads as solid black on a light-ground site.
@@ -165292,8 +165427,15 @@ var init_designStyleExtractor = __esm({
165292
165427
  return f.split(",")[0].replace(/['"]/g, "").trim();
165293
165428
  }
165294
165429
 
165430
+ // keep only gradient background-images (drop url() sprites + "none"); gradients are a core
165431
+ // brand signal (Stripe/ElevenLabs/Snowflake mesh washes) that a flat background-color misses.
165432
+ function gradientOf(v) {
165433
+ return v && v.indexOf("gradient") >= 0 ? v.trim() : "";
165434
+ }
165435
+
165295
165436
  function getStyles(el) {
165296
165437
  var s = getComputedStyle(el);
165438
+ var bf = s.backdropFilter || s.webkitBackdropFilter || "";
165297
165439
  return {
165298
165440
  fontFamily: cleanFont(s.fontFamily),
165299
165441
  fontSize: s.fontSize,
@@ -165302,6 +165444,8 @@ var init_designStyleExtractor = __esm({
165302
165444
  letterSpacing: s.letterSpacing,
165303
165445
  color: rgbToHex(s.color),
165304
165446
  background: rgbToHex(s.backgroundColor),
165447
+ backgroundImage: gradientOf(s.backgroundImage),
165448
+ backdropFilter: bf === "none" ? "" : bf,
165305
165449
  padding: s.padding,
165306
165450
  borderRadius: s.borderRadius,
165307
165451
  border: s.border,
@@ -165370,23 +165514,37 @@ var init_designStyleExtractor = __esm({
165370
165514
  }
165371
165515
 
165372
165516
  // \u2500\u2500 2. Buttons \u2500\u2500
165517
+ // a page's primary CTA is very often a FILLED pill in the nav/header ("Sign up", "Start for free").
165518
+ // Old code dropped everything under <nav>, losing that CTA; keep nav elements that carry a solid
165519
+ // fill (a real button), still dropping plain nav text links.
165520
+ var isFilledEl = (el) => {
165521
+ var cs = getComputedStyle(el);
165522
+ var bg = cs.backgroundColor;
165523
+ var solid = !!bg && bg !== "transparent" && !/rgba?\\([^)]*,\\s*0\\s*\\)/.test(bg);
165524
+ // a gradient-filled CTA (e.g. Snowflake's blue pill = background: var(--ui-background-03)) has a
165525
+ // transparent background-COLOR but a gradient background-IMAGE \u2014 count it as filled too.
165526
+ return solid || (cs.backgroundImage || "").indexOf("gradient") >= 0;
165527
+ };
165373
165528
  var buttonEls = Array.from(document.querySelectorAll(
165374
165529
  'button, a[class*="btn"], a[class*="button"], a[role="button"], ' +
165375
165530
  '[class*="btn-"], [class*="button-"], [class*="cta"]'
165376
165531
  )).filter(function(el) {
165377
- return isVisible(el) && !el.closest('nav, [role="navigation"]');
165378
- }).slice(0, 10);
165532
+ if (!isVisible(el)) return false;
165533
+ return el.closest('nav, [role="navigation"]') ? isFilledEl(el) : true;
165534
+ }).slice(0, 16);
165379
165535
 
165380
165536
  var buttonMap = {};
165381
165537
  for (var bi = 0; bi < buttonEls.length; bi++) {
165382
165538
  var bs = getStyles(buttonEls[bi]);
165383
- // Deduplicate by visual appearance
165384
- var bKey = bs.background + "|" + bs.borderRadius + "|" + bs.border;
165539
+ // Deduplicate by visual appearance (gradient fill kept distinct so a gradient CTA survives)
165540
+ var bKey = bs.background + "|" + bs.backgroundImage + "|" + bs.borderRadius + "|" + bs.border;
165385
165541
  if (!buttonMap[bKey]) {
165386
165542
  var btnText = (buttonEls[bi].textContent || "").trim().slice(0, 40);
165387
165543
  buttonMap[bKey] = {
165388
165544
  label: btnText || "button",
165389
165545
  background: bs.background,
165546
+ backgroundImage: bs.backgroundImage,
165547
+ backdropFilter: bs.backdropFilter,
165390
165548
  color: bs.color,
165391
165549
  padding: bs.padding,
165392
165550
  borderRadius: bs.borderRadius,
@@ -165398,7 +165556,7 @@ var init_designStyleExtractor = __esm({
165398
165556
  };
165399
165557
  }
165400
165558
  }
165401
- var buttons = Object.values(buttonMap).slice(0, 4);
165559
+ var buttons = Object.values(buttonMap).slice(0, 6);
165402
165560
 
165403
165561
  // \u2500\u2500 3. Cards / containers \u2500\u2500
165404
165562
  var cardEls = Array.from(document.querySelectorAll(
@@ -165413,11 +165571,14 @@ var init_designStyleExtractor = __esm({
165413
165571
  var cardMap = {};
165414
165572
  for (var ci = 0; ci < cardEls.length; ci++) {
165415
165573
  var cs = getStyles(cardEls[ci]);
165416
- var cKey = cs.background + "|" + cs.borderRadius + "|" + cs.border;
165574
+ // gradient fill + glass blur kept in the key so a gradient/frosted card is a distinct variant
165575
+ var cKey = cs.background + "|" + cs.backgroundImage + "|" + cs.backdropFilter + "|" + cs.borderRadius + "|" + cs.border;
165417
165576
  if (!cardMap[cKey]) {
165418
165577
  cardMap[cKey] = {
165419
165578
  label: "card",
165420
165579
  background: cs.background,
165580
+ backgroundImage: cs.backgroundImage,
165581
+ backdropFilter: cs.backdropFilter,
165421
165582
  color: cs.color,
165422
165583
  padding: cs.padding,
165423
165584
  borderRadius: cs.borderRadius,
@@ -165439,6 +165600,8 @@ var init_designStyleExtractor = __esm({
165439
165600
  nav = {
165440
165601
  label: "navigation",
165441
165602
  background: ns.background,
165603
+ backgroundImage: ns.backgroundImage,
165604
+ backdropFilter: ns.backdropFilter,
165442
165605
  color: ns.color,
165443
165606
  padding: ns.padding,
165444
165607
  borderRadius: ns.borderRadius,
@@ -165622,6 +165785,90 @@ var init_designStyleExtractor = __esm({
165622
165785
  .slice(0, 5)
165623
165786
  .map(function(e) { return { value: e[0], count: e[1] }; });
165624
165787
 
165788
+ // \u2500\u2500 8. Dominant gradient / mesh backgrounds \u2500\u2500
165789
+ // A site's signature color wash (Stripe/ElevenLabs/Snowflake) lives in gradient background-images
165790
+ // on large blocks \u2014 often on a pseudo-element (::before glow orbs) rather than the block itself.
165791
+ // Weight each distinct gradient by the total on-screen area it covers; return the top few.
165792
+ var gradientArea = {};
165793
+ var gradSamples = Array.from(document.querySelectorAll(
165794
+ "body, main, section, header, div, [class*='hero'], [class*='gradient'], [class*='bg'], [class*='background']"
165795
+ )).slice(0, 400);
165796
+
165797
+ // max stop chroma (max\u2212min RGB) of a gradient: a vivid brand wash scores high, a neutral
165798
+ // white/cream scrim ~0. Used to rank washes so a small vivid gradient beats a big grey scrim.
165799
+ function gradientChroma(g) {
165800
+ var max = 0, re = /rgba?\\(\\s*(\\d+)[,\\s]+(\\d+)[,\\s]+(\\d+)/g, m;
165801
+ while ((m = re.exec(g))) {
165802
+ var r = +m[1], gr = +m[2], b = +m[3];
165803
+ var c = Math.max(r, gr, b) - Math.min(r, gr, b);
165804
+ if (c > max) max = c;
165805
+ }
165806
+ return max;
165807
+ }
165808
+
165809
+ function addGradient(val, area) {
165810
+ var g = gradientOf(val);
165811
+ if (!g || area < 20000) return; // ignore tiny decorative gradients
165812
+ var norm = g.replace(/\\s+/g, " ");
165813
+ gradientArea[norm] = (gradientArea[norm] || 0) + area;
165814
+ }
165815
+
165816
+ for (var gi = 0; gi < gradSamples.length; gi++) {
165817
+ var gel = gradSamples[gi];
165818
+ if (!isVisible(gel)) continue;
165819
+ var grect = gel.getBoundingClientRect();
165820
+ var garea = grect.width * grect.height;
165821
+ if (garea < 20000) continue;
165822
+ addGradient(getComputedStyle(gel).backgroundImage, garea);
165823
+ addGradient(getComputedStyle(gel, "::before").backgroundImage, garea);
165824
+ addGradient(getComputedStyle(gel, "::after").backgroundImage, garea);
165825
+ }
165826
+
165827
+ // rank by chroma-weighted area so the brand's signature color wash outranks a larger neutral scrim
165828
+ var backgrounds = Object.entries(gradientArea)
165829
+ .map(function(e) { return { value: e[0], area: Math.round(e[1]), score: e[1] * (1 + 2 * gradientChroma(e[0]) / 255) }; })
165830
+ .sort(function(a, b) { return b.score - a.score; })
165831
+ .slice(0, 6)
165832
+ .map(function(e) { return { value: e.value, area: e.area }; });
165833
+
165834
+ // \u2500\u2500 9. Frosted-glass panels (backdrop-filter) \u2500\u2500
165835
+ // A defining material on modern hero UIs (HeyGen's prompt box, Stripe's floating chrome): a
165836
+ // translucent surface with a backdrop blur. Capture the RAW fill (rgba/gradient \u2014 alpha preserved,
165837
+ // unlike rgbToHex) + the blur, ranked by area. This is what lets a frame render a real frosted card.
165838
+ var glassSamples = Array.from(document.querySelectorAll(
165839
+ "div, section, header, nav, aside, [class*='card'], [class*='panel'], [class*='glass'], [class*='blur'], [class*='modal'], [class*='overlay'], [class*='input']"
165840
+ )).slice(0, 400);
165841
+ var glassByKey = {};
165842
+ for (var qi = 0; qi < glassSamples.length; qi++) {
165843
+ var qel = glassSamples[qi];
165844
+ if (!isVisible(qel)) continue;
165845
+ var qs = getComputedStyle(qel);
165846
+ var bf = qs.backdropFilter || qs.webkitBackdropFilter || "";
165847
+ if (!bf || bf === "none" || bf.indexOf("blur") < 0) continue;
165848
+ var qrect = qel.getBoundingClientRect();
165849
+ var qarea = qrect.width * qrect.height;
165850
+ if (qarea < 8000) continue; // ignore tiny blurred chips
165851
+ // raw fill with alpha intact: prefer a translucent gradient, else the rgba background-color
165852
+ var gi2 = qs.backgroundImage;
165853
+ var rawFill = gi2 && gi2.indexOf("gradient") >= 0 ? gi2.replace(/\\s+/g, " ").trim() : qs.backgroundColor;
165854
+ var key = bf + "|" + rawFill + "|" + qs.borderRadius;
165855
+ if (!glassByKey[key]) {
165856
+ glassByKey[key] = {
165857
+ backdropFilter: bf,
165858
+ background: rawFill,
165859
+ border: qs.border,
165860
+ borderRadius: qs.borderRadius,
165861
+ boxShadow: qs.boxShadow === "none" ? "" : qs.boxShadow,
165862
+ area: 0
165863
+ };
165864
+ }
165865
+ glassByKey[key].area += qarea;
165866
+ }
165867
+ var glass = Object.values(glassByKey)
165868
+ .sort(function(a, b) { return b.area - a.area; })
165869
+ .slice(0, 3)
165870
+ .map(function(g) { return { backdropFilter: g.backdropFilter, background: g.background, border: g.border, borderRadius: g.borderRadius, boxShadow: g.boxShadow, area: Math.round(g.area) }; });
165871
+
165625
165872
  return {
165626
165873
  typography: uniqueTypo,
165627
165874
  spacing: { observed: observedSpacing.slice(0, 15), baseUnit: baseUnit },
@@ -165632,7 +165879,9 @@ var init_designStyleExtractor = __esm({
165632
165879
  nav: nav,
165633
165880
  chips: chips,
165634
165881
  statCells: statCells,
165635
- tabs: tabs
165882
+ tabs: tabs,
165883
+ backgrounds: backgrounds,
165884
+ glass: glass
165636
165885
  };
165637
165886
  })()`;
165638
165887
  }
@@ -165962,7 +166211,7 @@ var init_animationCataloger = __esm({
165962
166211
  });
165963
166212
 
165964
166213
  // src/capture/mediaCapture.ts
165965
- import { mkdirSync as mkdirSync41, writeFileSync as writeFileSync33, readdirSync as readdirSync30, readFileSync as readFileSync58, statSync as statSync26 } from "fs";
166214
+ import { mkdirSync as mkdirSync43, writeFileSync as writeFileSync33, readdirSync as readdirSync30, readFileSync as readFileSync58, statSync as statSync27 } from "fs";
165966
166215
  import { join as join87, extname as extname16 } from "path";
165967
166216
  async function saveLottieAnimations(discoveredLotties, lottieDir) {
165968
166217
  let savedCount = 0;
@@ -166024,7 +166273,7 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
166024
166273
  async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
166025
166274
  const manifest = [];
166026
166275
  const previewDir = join87(lottieDir, "previews");
166027
- mkdirSync41(previewDir, { recursive: true });
166276
+ mkdirSync43(previewDir, { recursive: true });
166028
166277
  for (const file of readdirSync30(lottieDir)) {
166029
166278
  if (!file.endsWith(".json")) continue;
166030
166279
  try {
@@ -166032,7 +166281,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
166032
166281
  const fr = raw.fr || 30;
166033
166282
  const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
166034
166283
  const previewName = file.replace(".json", "-preview.png");
166035
- const fileSize = statSync26(join87(lottieDir, file)).size;
166284
+ const fileSize = statSync27(join87(lottieDir, file)).size;
166036
166285
  if (fileSize > 2e6) continue;
166037
166286
  let previewPage;
166038
166287
  try {
@@ -166190,9 +166439,9 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
166190
166439
  const merged = [...byKey.values()];
166191
166440
  if (merged.length === 0) return;
166192
166441
  const videoManifestDir = join87(outputDir, "assets", "videos");
166193
- mkdirSync41(videoManifestDir, { recursive: true });
166442
+ mkdirSync43(videoManifestDir, { recursive: true });
166194
166443
  const previewDir = join87(videoManifestDir, "previews");
166195
- mkdirSync41(previewDir, { recursive: true });
166444
+ mkdirSync43(previewDir, { recursive: true });
166196
166445
  const videoManifest = [];
166197
166446
  const dlStart = Date.now();
166198
166447
  for (let vi = 0; vi < merged.length && vi < 20; vi++) {
@@ -166314,7 +166563,7 @@ var init_mediaCapture = __esm({
166314
166563
  });
166315
166564
 
166316
166565
  // src/capture/contentExtractor.ts
166317
- import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as statSync27, readFileSync as readFileSync59 } from "fs";
166566
+ import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as statSync28, readFileSync as readFileSync59 } from "fs";
166318
166567
  import { basename as basename21, join as join88 } from "path";
166319
166568
  async function detectLibraries(page, capturedShaders) {
166320
166569
  let detectedLibraries = [];
@@ -166491,7 +166740,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
166491
166740
  const results = await Promise.allSettled(
166492
166741
  batch.map(async (file) => {
166493
166742
  const filePath = join88(outputDir, "assets", file);
166494
- const stat3 = statSync27(filePath);
166743
+ const stat3 = statSync28(filePath);
166495
166744
  if (stat3.size > 4e6) return { file, caption: "" };
166496
166745
  const buffer = readFileSync59(filePath);
166497
166746
  const base64 = buffer.toString("base64");
@@ -166615,7 +166864,7 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
166615
166864
  for (const file of readdirSync31(assetsPath)) {
166616
166865
  if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
166617
166866
  const filePath = join88(assetsPath, file);
166618
- const stat3 = statSync27(filePath);
166867
+ const stat3 = statSync28(filePath);
166619
166868
  if (!stat3.isFile()) continue;
166620
166869
  const sizeKb = Math.round(stat3.size / 1024);
166621
166870
  const catalogMatch = catalogedAssets.find(
@@ -166898,11 +167147,11 @@ var screenshotCapture_exports = {};
166898
167147
  __export(screenshotCapture_exports, {
166899
167148
  captureScrollScreenshots: () => captureScrollScreenshots
166900
167149
  });
166901
- import { writeFileSync as writeFileSync36, mkdirSync as mkdirSync43 } from "fs";
167150
+ import { writeFileSync as writeFileSync36, mkdirSync as mkdirSync44 } from "fs";
166902
167151
  import { join as join91 } from "path";
166903
167152
  async function captureScrollScreenshots(page, outputDir) {
166904
167153
  const screenshotsDir = join91(outputDir, "screenshots");
166905
- mkdirSync43(screenshotsDir, { recursive: true });
167154
+ mkdirSync44(screenshotsDir, { recursive: true });
166906
167155
  const MAX_SCREENSHOTS = 20;
166907
167156
  const filePaths = [];
166908
167157
  try {
@@ -167342,7 +167591,7 @@ var capture_exports = {};
167342
167591
  __export(capture_exports, {
167343
167592
  captureWebsite: () => captureWebsite
167344
167593
  });
167345
- import { mkdirSync as mkdirSync44, writeFileSync as writeFileSync37, existsSync as existsSync90 } from "fs";
167594
+ import { mkdirSync as mkdirSync45, writeFileSync as writeFileSync37, existsSync as existsSync90 } from "fs";
167346
167595
  import { join as join93 } from "path";
167347
167596
  async function captureWebsite(opts, onProgress) {
167348
167597
  const {
@@ -167360,9 +167609,9 @@ async function captureWebsite(opts, onProgress) {
167360
167609
  onProgress?.(stage, detail);
167361
167610
  };
167362
167611
  loadEnvFile(outputDir);
167363
- mkdirSync44(join93(outputDir, "extracted"), { recursive: true });
167364
- mkdirSync44(join93(outputDir, "screenshots"), { recursive: true });
167365
- mkdirSync44(join93(outputDir, "assets"), { recursive: true });
167612
+ mkdirSync45(join93(outputDir, "extracted"), { recursive: true });
167613
+ mkdirSync45(join93(outputDir, "screenshots"), { recursive: true });
167614
+ mkdirSync45(join93(outputDir, "assets"), { recursive: true });
167366
167615
  progress("browser", "Launching headless Chrome...");
167367
167616
  const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
167368
167617
  const browser = await ensureBrowser2();
@@ -167523,7 +167772,7 @@ async function captureWebsite(opts, onProgress) {
167523
167772
  }
167524
167773
  if (discoveredLotties.length > 0) {
167525
167774
  const lottieDir = join93(outputDir, "assets", "lottie");
167526
- mkdirSync44(lottieDir, { recursive: true });
167775
+ mkdirSync45(lottieDir, { recursive: true });
167527
167776
  const savedCount = await saveLottieAnimations(discoveredLotties, lottieDir);
167528
167777
  if (savedCount > 0) {
167529
167778
  await renderLottiePreviews(chromeBrowser, lottieDir, outputDir);
@@ -168025,8 +168274,8 @@ var init_capture2 = __esm({
168025
168274
  } catch (err) {
168026
168275
  const errMsg = normalizeErrorMessage(err);
168027
168276
  try {
168028
- const { mkdirSync: mkdirSync49, writeFileSync: writeFileSync40 } = await import("fs");
168029
- mkdirSync49(outputDir, { recursive: true });
168277
+ const { mkdirSync: mkdirSync50, writeFileSync: writeFileSync40 } = await import("fs");
168278
+ mkdirSync50(outputDir, { recursive: true });
168030
168279
  const isTimeout = /timeout|timed out/i.test(errMsg);
168031
168280
  const reason = isTimeout ? "Page navigation timed out \u2014 the site may be blocking headless browsers or requires authentication." : `Capture failed: ${errMsg}`;
168032
168281
  writeFileSync40(
@@ -168072,14 +168321,14 @@ __export(state_exports, {
168072
168321
  stateFilePath: () => stateFilePath,
168073
168322
  writeStackOutputs: () => writeStackOutputs
168074
168323
  });
168075
- import { existsSync as existsSync91, mkdirSync as mkdirSync45, readdirSync as readdirSync34, readFileSync as readFileSync61, rmSync as rmSync19, writeFileSync as writeFileSync38 } from "fs";
168324
+ import { existsSync as existsSync91, mkdirSync as mkdirSync46, readdirSync as readdirSync34, readFileSync as readFileSync61, rmSync as rmSync19, writeFileSync as writeFileSync38 } from "fs";
168076
168325
  import { dirname as dirname40, join as join94 } from "path";
168077
168326
  function stateFilePath(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
168078
168327
  return join94(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
168079
168328
  }
168080
168329
  function writeStackOutputs(outputs, cwd = process.cwd()) {
168081
168330
  const path2 = stateFilePath(outputs.stackName, cwd);
168082
- mkdirSync45(dirname40(path2), { recursive: true });
168331
+ mkdirSync46(dirname40(path2), { recursive: true });
168083
168332
  writeFileSync38(path2, JSON.stringify(outputs, null, 2) + "\n");
168084
168333
  return path2;
168085
168334
  }
@@ -168563,10 +168812,10 @@ async function waitForCompletion(executionArn, stack, intervalMs, json) {
168563
168812
  }
168564
168813
  return;
168565
168814
  }
168566
- await sleep2(intervalMs);
168815
+ await sleep3(intervalMs);
168567
168816
  }
168568
168817
  }
168569
- function sleep2(ms) {
168818
+ function sleep3(ms) {
168570
168819
  return new Promise((res) => setTimeout(res, ms));
168571
168820
  }
168572
168821
  var init_render2 = __esm({
@@ -169632,7 +169881,7 @@ __export(cloudrun_exports, {
169632
169881
  });
169633
169882
  import { spawnSync as spawnSync6 } from "child_process";
169634
169883
  import { createRequire as createRequire4 } from "module";
169635
- import { existsSync as existsSync97, mkdirSync as mkdirSync46, readFileSync as readFileSync66, writeFileSync as writeFileSync39 } from "fs";
169884
+ import { existsSync as existsSync97, mkdirSync as mkdirSync47, readFileSync as readFileSync66, writeFileSync as writeFileSync39 } from "fs";
169636
169885
  import { homedir as homedir14 } from "os";
169637
169886
  import { dirname as dirname42, join as join100, resolve as resolve61 } from "path";
169638
169887
  function stateDir() {
@@ -169642,7 +169891,7 @@ function statePath() {
169642
169891
  return join100(stateDir(), "cloudrun-state.json");
169643
169892
  }
169644
169893
  function writeState(state) {
169645
- mkdirSync46(stateDir(), { recursive: true });
169894
+ mkdirSync47(stateDir(), { recursive: true });
169646
169895
  writeFileSync39(statePath(), JSON.stringify(state, null, 2));
169647
169896
  }
169648
169897
  function readState(args) {
@@ -169805,7 +170054,7 @@ function findRepoRoot(tfDir) {
169805
170054
  }
169806
170055
  function writeCloudBuildConfig(image) {
169807
170056
  const cfgPath = join100(stateDir(), "cloudrun-cloudbuild.yaml");
169808
- mkdirSync46(stateDir(), { recursive: true });
170057
+ mkdirSync47(stateDir(), { recursive: true });
169809
170058
  writeFileSync39(
169810
170059
  cfgPath,
169811
170060
  [
@@ -170380,7 +170629,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
170380
170629
  const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
170381
170630
  const maxWaitMs = options.maxWaitMs ?? DEFAULT_MAX_WAIT_MS;
170382
170631
  const now = options.now ?? (() => Date.now());
170383
- const sleep3 = options.sleep ?? defaultAbortableSleep(options.signal);
170632
+ const sleep5 = options.sleep ?? defaultAbortableSleep(options.signal);
170384
170633
  const started = now();
170385
170634
  while (true) {
170386
170635
  if (options.signal?.aborted) {
@@ -170395,7 +170644,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
170395
170644
  if (elapsed >= maxWaitMs) {
170396
170645
  throw new PollTimeoutError(detail, elapsed);
170397
170646
  }
170398
- await sleep3(intervalMs);
170647
+ await sleep5(intervalMs);
170399
170648
  }
170400
170649
  }
170401
170650
  function signalAbortError(signal) {
@@ -170436,7 +170685,7 @@ var init_poll = __esm({
170436
170685
  });
170437
170686
 
170438
170687
  // src/cloud/download.ts
170439
- import { createWriteStream as createWriteStream5, mkdirSync as mkdirSync47, unlinkSync as unlinkSync8 } from "fs";
170688
+ import { createWriteStream as createWriteStream5, mkdirSync as mkdirSync48, unlinkSync as unlinkSync8 } from "fs";
170440
170689
  import { dirname as dirname43 } from "path";
170441
170690
  async function downloadToFile(url, destPath, options = {}) {
170442
170691
  const fetchImpl = options.fetchImpl ?? fetch;
@@ -170447,7 +170696,7 @@ async function downloadToFile(url, destPath, options = {}) {
170447
170696
  if (!res.body) {
170448
170697
  throw new Error(`Failed to download ${url}: empty response body`);
170449
170698
  }
170450
- mkdirSync47(dirname43(destPath), { recursive: true });
170699
+ mkdirSync48(dirname43(destPath), { recursive: true });
170451
170700
  const totalHeader = res.headers.get("content-length");
170452
170701
  const total = totalHeader ? Number.parseInt(totalHeader, 10) : void 0;
170453
170702
  const totalOpt = total !== void 0 && Number.isFinite(total) ? total : void 0;
@@ -170653,6 +170902,33 @@ var init_client2 = __esm({
170653
170902
  signal: args.signal
170654
170903
  });
170655
170904
  }
170905
+ /**
170906
+ * Create Asset Upload
170907
+ *
170908
+ * Begin a direct-to-S3 upload. Returns an asset_id and a presigned upload_url; PUT the file bytes to upload_url, then call POST /v3/assets/{asset_id}/complete. Unlike POST /v3/assets (which proxies the bytes), this never sends the file through the API.
170909
+ */
170910
+ async createAssetUpload(args) {
170911
+ return await this.request({
170912
+ method: "POST",
170913
+ path: "/v3/assets/direct-uploads",
170914
+ body: args.body,
170915
+ idempotencyKey: args.idempotencyKey,
170916
+ signal: args.signal
170917
+ });
170918
+ }
170919
+ /**
170920
+ * Complete Asset Upload
170921
+ *
170922
+ * Finalize a direct-to-S3 upload into a reusable asset. Call after the upload PUT returns 200. Idempotent: repeated calls return the same finalized asset.
170923
+ */
170924
+ async completeAssetUpload(args) {
170925
+ return await this.request({
170926
+ method: "POST",
170927
+ path: `/v3/assets/${encodeURIComponent(args.asset_id)}/complete`,
170928
+ body: args.body,
170929
+ signal: args.signal
170930
+ });
170931
+ }
170656
170932
  /**
170657
170933
  * Create HyperFrames Render
170658
170934
  *
@@ -171782,7 +172058,7 @@ var init_errors2 = __esm({
171782
172058
  init_format();
171783
172059
  init_client2();
171784
172060
  ERROR_CODE_HINTS = {
171785
- hyperframes_project_too_large: "The zip exceeded the 32 MB limit. Trim large media (or pre-host them and reference by URL), then try again.",
172061
+ hyperframes_project_too_large: "The zip exceeded the 200 MB limit. Trim large media (or pre-host them and reference by URL), then try again.",
171786
172062
  hyperframes_render_not_found: "The render_id no longer exists \u2014 either soft-deleted or never created.",
171787
172063
  invalid_parameter: "Check the listed parameter against `hyperframes cloud render --help` for the accepted values.",
171788
172064
  authentication_failed: "Run `hyperframes auth status` to confirm your credential; `hyperframes auth login` to re-auth.",
@@ -171848,6 +172124,91 @@ var init_parsing = __esm({
171848
172124
  }
171849
172125
  });
171850
172126
 
172127
+ // src/cloud/upload.ts
172128
+ import { createHash as createHash14 } from "crypto";
172129
+ function sha256Hex2(bytes) {
172130
+ return createHash14("sha256").update(bytes).digest("hex");
172131
+ }
172132
+ function sleep4(ms) {
172133
+ return new Promise((r2) => setTimeout(r2, ms));
172134
+ }
172135
+ function normalizeUploadHeaders(raw) {
172136
+ const out = {};
172137
+ for (const [k2, v2] of Object.entries(raw ?? {})) {
172138
+ if (typeof v2 === "string") out[k2] = v2;
172139
+ else if (typeof v2 === "number" || typeof v2 === "boolean") out[k2] = String(v2);
172140
+ }
172141
+ return out;
172142
+ }
172143
+ async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, bytes) {
172144
+ const headers = {
172145
+ "content-type": CONTENT_TYPE_ZIP,
172146
+ ...normalizeUploadHeaders(uploadHeaders)
172147
+ };
172148
+ const res = await fetchImpl(uploadUrl, {
172149
+ method: "PUT",
172150
+ headers,
172151
+ body: bytes
172152
+ });
172153
+ if (!res.ok) {
172154
+ const detail = await res.text().catch(() => "");
172155
+ throw new Error(
172156
+ `Direct upload PUT failed: ${res.status} ${res.statusText}${detail ? ` \u2014 ${detail.slice(0, 300)}` : ""}`
172157
+ );
172158
+ }
172159
+ }
172160
+ async function completeWithRetry(client, asset_id, checksum_sha256) {
172161
+ let lastErr;
172162
+ for (let attempt = 0; attempt < COMPLETE_MAX_RETRIES; attempt++) {
172163
+ try {
172164
+ return await client.completeAssetUpload({
172165
+ asset_id,
172166
+ body: { checksum_sha256 }
172167
+ });
172168
+ } catch (err) {
172169
+ const retryable = err instanceof HyperframesApiError && err.status === 409;
172170
+ if (!retryable || attempt === COMPLETE_MAX_RETRIES - 1) {
172171
+ throw err;
172172
+ }
172173
+ lastErr = err;
172174
+ await sleep4(COMPLETE_RETRY_BASE_MS * (attempt + 1));
172175
+ }
172176
+ }
172177
+ throw lastErr ?? new Error("completeAssetUpload retries exhausted");
172178
+ }
172179
+ async function uploadZipViaDirectUpload(opts) {
172180
+ const start = Date.now();
172181
+ const { bytes, filename, idempotencyKey } = opts;
172182
+ const size_bytes = bytes.byteLength;
172183
+ const checksum_sha256 = sha256Hex2(bytes);
172184
+ const fetchImpl = opts.fetchImpl ?? fetch;
172185
+ opts.onProgress?.({ phase: "initialize" });
172186
+ const initialize = await opts.client.createAssetUpload({
172187
+ body: { filename, content_type: CONTENT_TYPE_ZIP, size_bytes, checksum_sha256 },
172188
+ idempotencyKey
172189
+ });
172190
+ opts.onProgress?.({ phase: "upload", percent: 0 });
172191
+ await putBytesToPresignedUrl(fetchImpl, initialize.upload_url, initialize.upload_headers, bytes);
172192
+ opts.onProgress?.({ phase: "upload", percent: 100 });
172193
+ opts.onProgress?.({ phase: "complete" });
172194
+ const completed = await completeWithRetry(opts.client, initialize.asset_id, checksum_sha256);
172195
+ return {
172196
+ asset_id: completed.asset_id,
172197
+ size_bytes,
172198
+ duration_ms: Date.now() - start
172199
+ };
172200
+ }
172201
+ var COMPLETE_MAX_RETRIES, COMPLETE_RETRY_BASE_MS, CONTENT_TYPE_ZIP;
172202
+ var init_upload = __esm({
172203
+ "src/cloud/upload.ts"() {
172204
+ "use strict";
172205
+ init_client2();
172206
+ COMPLETE_MAX_RETRIES = 5;
172207
+ COMPLETE_RETRY_BASE_MS = 500;
172208
+ CONTENT_TYPE_ZIP = "application/zip";
172209
+ }
172210
+ });
172211
+
171851
172212
  // src/cloud/statusColor.ts
171852
172213
  function colorStatus(status) {
171853
172214
  switch (status) {
@@ -172008,22 +172369,25 @@ async function maybeUploadProject(client, source, asJson, idempotencyKey) {
172008
172369
  }
172009
172370
  if (!asJson) {
172010
172371
  console.log("");
172011
- console.log(`${c.accent("\u25C6")} Uploading to /v3/assets`);
172372
+ console.log(`${c.accent("\u25C6")} Uploading (direct-to-S3)`);
172012
172373
  }
172013
172374
  const uploadStart = Date.now();
172014
172375
  let uploaded;
172015
172376
  try {
172016
- uploaded = await client.uploadAsset({
172017
- file: archive.buffer,
172377
+ uploaded = await uploadZipViaDirectUpload({
172378
+ client,
172379
+ bytes: archive.buffer,
172018
172380
  filename: `${project.name}.zip`,
172019
- // Tag the multipart part with application/zip so downstream
172020
- // proxies / WAFs / any server-side path that keys off the
172021
- // part Content-Type see the intended type. The asset
172022
- // controller currently sniffs magic bytes from the file
172023
- // bytes, so this is belt-and-suspenders today; without it,
172024
- // FormData defaults to application/octet-stream.
172025
- mimeType: "application/zip",
172026
- idempotencyKey
172381
+ idempotencyKey,
172382
+ onProgress: !asJson ? (ev) => {
172383
+ if (ev.phase === "initialize") {
172384
+ console.log(c.dim(` initializing\u2026`));
172385
+ } else if (ev.phase === "upload" && ev.percent === 0) {
172386
+ console.log(c.dim(` uploading to S3\u2026`));
172387
+ } else if (ev.phase === "complete") {
172388
+ console.log(c.dim(` finalizing\u2026`));
172389
+ }
172390
+ } : void 0
172027
172391
  });
172028
172392
  } catch (err) {
172029
172393
  reportApiError("Upload failed", err);
@@ -172160,6 +172524,7 @@ var init_render3 = __esm({
172160
172524
  init_cloud();
172161
172525
  init_errors2();
172162
172526
  init_parsing();
172527
+ init_upload();
172163
172528
  init_statusColor();
172164
172529
  VALID_QUALITY2 = ["draft", "standard", "high"];
172165
172530
  VALID_FORMAT2 = ["mp4", "webm", "mov"];
@@ -173600,7 +173965,7 @@ __export(autoUpdate_exports, {
173600
173965
  scheduleBackgroundInstall: () => scheduleBackgroundInstall
173601
173966
  });
173602
173967
  import { spawn as spawn17 } from "child_process";
173603
- import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync48, openSync as openSync3 } from "fs";
173968
+ import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync49, openSync as openSync3 } from "fs";
173604
173969
  import { homedir as homedir16 } from "os";
173605
173970
  import { join as join103 } from "path";
173606
173971
  import { compareVersions as compareVersions3 } from "compare-versions";
@@ -173617,14 +173982,14 @@ function majorOf(version2) {
173617
173982
  }
173618
173983
  function log(line2) {
173619
173984
  try {
173620
- mkdirSync48(CONFIG_DIR2, { recursive: true, mode: 448 });
173985
+ mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
173621
173986
  appendFileSync2(LOG_FILE, `${(/* @__PURE__ */ new Date()).toISOString()} ${line2}
173622
173987
  `, { mode: 384 });
173623
173988
  } catch {
173624
173989
  }
173625
173990
  }
173626
173991
  function launchDetachedInstall(installCommand, version2) {
173627
- mkdirSync48(CONFIG_DIR2, { recursive: true, mode: 448 });
173992
+ mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
173628
173993
  const configFile = join103(CONFIG_DIR2, "config.json");
173629
173994
  const nodeScript = `
173630
173995
  const { exec } = require("node:child_process");