hyperframes 0.7.25 → 0.7.27

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.25" : "0.0.0-dev";
53
+ VERSION = true ? "0.7.27" : "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):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 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';
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) {
@@ -62729,7 +62729,7 @@ import { join as join6, dirname as dirname4, extname as extname2 } from "path";
62729
62729
  function appendEncodeTimeoutMessage(error, timedOut, timeoutMs) {
62730
62730
  if (!timedOut) return error;
62731
62731
  return `${error}
62732
- FFmpeg killed after exceeding ffmpegEncodeTimeout (${timeoutMs} ms)`;
62732
+ 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
62733
  }
62734
62734
  function isAacSidecar(audioPath) {
62735
62735
  return extname2(audioPath).toLowerCase() === ".aac";
@@ -66304,8 +66304,15 @@ function findRootTag(source) {
66304
66304
  const bodyEnd = bodyOpenMatch && bodyCloseMatch && bodyCloseMatch.index > bodyStart ? bodyCloseMatch.index : source.length;
66305
66305
  const bodyContent = bodyOpenMatch ? source.slice(bodyStart, bodyEnd) : source;
66306
66306
  const bodyTags = extractOpenTags(bodyContent);
66307
+ let skipBefore = -1;
66307
66308
  for (const tag of bodyTags) {
66309
+ if (tag.index < skipBefore) continue;
66308
66310
  if (["script", "style", "meta", "link", "title"].includes(tag.name)) continue;
66311
+ if (tag.name === "svg" && !readAttr(tag.raw, "data-composition-id") && !readAttr(tag.raw, "data-width") && !readAttr(tag.raw, "data-height")) {
66312
+ const closeMatch = /<\/svg\s*>/i.exec(bodyContent.slice(tag.index));
66313
+ skipBefore = closeMatch ? tag.index + closeMatch.index + closeMatch[0].length : Infinity;
66314
+ continue;
66315
+ }
66309
66316
  return { ...tag, index: tag.index + bodyStart };
66310
66317
  }
66311
66318
  return null;
@@ -67974,7 +67981,7 @@ var init_dist4 = __esm({
67974
67981
  TIMELINE_REGISTRY_INIT_PATTERN = /window\.__timelines\s*=\s*window\.__timelines\s*\|\|\s*\{\}|window\.__timelines\s*=\s*\{\}|window\.__timelines\s*\?\?=\s*\{\}/i;
67975
67982
  TIMELINE_REGISTRY_OBJECT_LITERAL_PATTERN = /window\.__timelines\s*=\s*\{\s*(?:["'][^"']+["']|[A-Za-z_$][\w$]*)\s*:/i;
67976
67983
  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;
67984
+ 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
67985
  INVALID_SCRIPT_CLOSE_PATTERN = /<script[^>]*>[\s\S]*?<\s*\/\s*script(?!>)/i;
67979
67986
  TIMELINE_REGISTRY_KEY_PATTERN = /window\.__timelines(?:\[\s*["']([^"']+)["']\s*\]|\.\s*([A-Za-z_$][\w$]*))\s*=/g;
67980
67987
  TIMELINE_REGISTRY_OBJECT_BODY_PATTERN = /window\.__timelines\s*=\s*\{([\s\S]*?)\}/i;
@@ -68708,12 +68715,14 @@ ${right.raw}`)
68708
68715
  (candidate) => isHardKillSet(candidate, win.targetSelector, boundary)
68709
68716
  );
68710
68717
  if (hasHardKill) continue;
68718
+ const exitClipInfo = clipIds.get(win.targetSelector) || clipClasses.get(win.targetSelector);
68719
+ 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
68720
  findings.push({
68712
68721
  code: "gsap_exit_missing_hard_kill",
68713
68722
  severity: "error",
68714
68723
  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
68724
  selector: win.targetSelector,
68716
- fixHint: `Add \`tl.set("${win.targetSelector}", ${hiddenStateLiteral(win.propertyValues)}, ${boundary.toFixed(2)})\` after the exit tween.`,
68725
+ fixHint,
68717
68726
  snippet: truncateSnippet(win.raw)
68718
68727
  });
68719
68728
  }
@@ -68983,12 +68992,15 @@ ${right.raw}`)
68983
68992
  const killPattern = new RegExp(`["']#${id}["'][^)]*visibility\\s*:\\s*["']hidden["']`);
68984
68993
  const hasKill = killPattern.test(content);
68985
68994
  if (!hasKill) {
68995
+ const classes = (readAttr(tag.raw, "class") || "").split(/\s+/).filter(Boolean);
68996
+ const isClip = classes.includes("clip");
68997
+ 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
68998
  findings.push({
68987
68999
  code: "scene_layer_missing_visibility_kill",
68988
69000
  severity: "error",
68989
69001
  elementId: id,
68990
69002
  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.`
69003
+ fixHint
68992
69004
  });
68993
69005
  }
68994
69006
  }
@@ -70089,7 +70101,7 @@ ${allInlineStyles}`.replace(/\/\*[\s\S]*?\*\//g, "");
70089
70101
  code: "font_family_without_font_face",
70090
70102
  severity: "error",
70091
70103
  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."
70104
+ 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
70105
  });
70094
70106
  return findings;
70095
70107
  }
@@ -75502,6 +75514,7 @@ __export(events_exports, {
75502
75514
  trackRenderError: () => trackRenderError,
75503
75515
  trackRenderFeedback: () => trackRenderFeedback,
75504
75516
  trackRenderObservation: () => trackRenderObservation,
75517
+ trackRenderPreflightRejected: () => trackRenderPreflightRejected,
75505
75518
  trackSkillsInstallSkipped: () => trackSkillsInstallSkipped,
75506
75519
  trackTranscribeUnavailable: () => trackTranscribeUnavailable
75507
75520
  });
@@ -75533,6 +75546,8 @@ function renderObservabilityEventProperties(props) {
75533
75546
  capture_protocol_timeout_ms: props.captureProtocolTimeoutMs,
75534
75547
  capture_page_navigation_timeout_ms: props.capturePageNavigationTimeoutMs,
75535
75548
  capture_player_ready_timeout_ms: props.capturePlayerReadyTimeoutMs,
75549
+ capture_transient_retries: props.captureTransientRetries,
75550
+ capture_memory_exhaustion_detected: props.captureMemoryExhaustionDetected,
75536
75551
  observability_extract_video_count: props.observabilityExtractVideoCount,
75537
75552
  observability_extracted_video_count: props.observabilityExtractedVideoCount,
75538
75553
  observability_extract_total_frames: props.observabilityExtractTotalFrames,
@@ -75658,6 +75673,9 @@ function trackInitTemplate(templateId, props) {
75658
75673
  function trackBrowserInstall() {
75659
75674
  trackEvent("browser_install", {});
75660
75675
  }
75676
+ function trackRenderPreflightRejected(props) {
75677
+ trackEvent("render_preflight_rejected", { kind: props.kind });
75678
+ }
75661
75679
  function trackCliError(props) {
75662
75680
  trackEvent("cli_error", {
75663
75681
  error_name: props.error_name,
@@ -80950,6 +80968,10 @@ function createProjectWatcher(projectDir) {
80950
80968
  }
80951
80969
  }, DEBOUNCE_MS);
80952
80970
  });
80971
+ watcher.on("error", () => {
80972
+ watcher?.close();
80973
+ watcher = null;
80974
+ });
80953
80975
  } catch {
80954
80976
  }
80955
80977
  return {
@@ -81126,6 +81148,8 @@ function renderObservabilityTelemetryPayload(observability) {
81126
81148
  captureProtocolTimeoutMs: capture2.protocolTimeoutMs,
81127
81149
  capturePageNavigationTimeoutMs: capture2.pageNavigationTimeoutMs,
81128
81150
  capturePlayerReadyTimeoutMs: capture2.playerReadyTimeoutMs,
81151
+ captureTransientRetries: capture2.transientRetries,
81152
+ captureMemoryExhaustionDetected: capture2.memoryExhaustionDetected,
81129
81153
  observabilityExtractVideoCount: extraction?.videoCount,
81130
81154
  observabilityExtractedVideoCount: extraction?.extractedVideoCount,
81131
81155
  observabilityExtractTotalFrames: extraction?.totalFramesExtracted,
@@ -83200,12 +83224,12 @@ function removeKeyframeFromScript(script, animationId, percentage) {
83200
83224
  return ms.toString();
83201
83225
  }
83202
83226
  function moveKeyframeInScript(script, animationId, fromPercentage, toPercentage) {
83203
- const located = locateWithKeyframes(script, animationId);
83227
+ const located = ensureKeyframesNode(script, animationId);
83204
83228
  if (!located) return script;
83205
- const { kfNode } = located;
83229
+ const { script: src, kfNode } = located;
83206
83230
  const match = findKfPropByPct(kfNode, fromPercentage);
83207
- if (!match) return script;
83208
- if (Math.abs(fromPercentage - toPercentage) < MOVE_NOOP_EPSILON_PCT) return script;
83231
+ if (!match) return src;
83232
+ if (Math.abs(fromPercentage - toPercentage) < MOVE_NOOP_EPSILON_PCT) return src;
83209
83233
  const dest = findKfPropByPct(kfNode, toPercentage);
83210
83234
  const collision = dest && dest.prop !== match.prop ? dest : null;
83211
83235
  const entries2 = [];
@@ -83214,19 +83238,19 @@ function moveKeyframeInScript(script, animationId, fromPercentage, toPercentage)
83214
83238
  if (collision && prop2 === collision.prop) continue;
83215
83239
  const pct = percentageFromKey(propKeyName22(prop2) ?? "");
83216
83240
  if (Number.isNaN(pct)) continue;
83217
- entries2.push({ pct, record: valueNodeToRecord(prop2.value, script) });
83241
+ entries2.push({ pct, record: valueNodeToRecord(prop2.value, src) });
83218
83242
  }
83219
- entries2.push({ pct: toPercentage, record: valueNodeToRecord(match.prop.value, script) });
83243
+ entries2.push({ pct: toPercentage, record: valueNodeToRecord(match.prop.value, src) });
83220
83244
  entries2.sort((a, b2) => a.pct - b2.pct);
83221
83245
  const body = entries2.map((e3) => `${JSON.stringify(`${e3.pct}%`)}: ${recordToCode(e3.record)}`).join(", ");
83222
- const ms = new MagicString(script);
83246
+ const ms = new MagicString(src);
83223
83247
  ms.overwrite(kfNode.start, kfNode.end, `{ ${body} }`);
83224
83248
  return ms.toString();
83225
83249
  }
83226
83250
  function resizeKeyframedTweenInScript(script, animationId, newPosition, newDuration, pctRemap) {
83227
- const located = locateWithKeyframes(script, animationId);
83251
+ const located = ensureKeyframesNode(script, animationId);
83228
83252
  if (!located) return script;
83229
- const { target, kfNode } = located;
83253
+ const { script: src, target, kfNode } = located;
83230
83254
  const edits = [];
83231
83255
  const seen = /* @__PURE__ */ new Set();
83232
83256
  for (const { from, to } of pctRemap) {
@@ -83235,7 +83259,7 @@ function resizeKeyframedTweenInScript(script, animationId, newPosition, newDurat
83235
83259
  seen.add(match.prop.key);
83236
83260
  edits.push({ keyNode: match.prop.key, to });
83237
83261
  }
83238
- const ms = new MagicString(script);
83262
+ const ms = new MagicString(src);
83239
83263
  for (const { keyNode, to } of edits) {
83240
83264
  ms.overwrite(keyNode.start, keyNode.end, JSON.stringify(`${to}%`));
83241
83265
  }
@@ -89793,8 +89817,9 @@ function findKeyframePropByPct(kfNode, percentage) {
89793
89817
  return null;
89794
89818
  }
89795
89819
  function buildKeyframeValueNode(properties, ease) {
89796
- const entries2 = Object.entries(properties).map(([k2, v2]) => `${safeJsKey2(k2)}: ${serializeValue2(v2)}`);
89797
- if (ease) entries2.push(`ease: ${JSON.stringify(ease)}`);
89820
+ const effectiveEase = ease ?? (typeof properties.ease === "string" ? properties.ease : void 0);
89821
+ const entries2 = Object.entries(properties).filter(([k2]) => k2 !== "ease").map(([k2, v2]) => `${safeJsKey2(k2)}: ${serializeValue2(v2)}`);
89822
+ if (effectiveEase) entries2.push(`ease: ${JSON.stringify(effectiveEase)}`);
89798
89823
  return parseExpr(`{ ${entries2.join(", ")} }`);
89799
89824
  }
89800
89825
  function locateAnimation(script, animationId) {
@@ -90012,7 +90037,7 @@ function removeKeyframeFromScript2(script, animationId, percentage) {
90012
90037
  function moveKeyframeInScript2(script, animationId, fromPercentage, toPercentage) {
90013
90038
  const loc = locateAnimationWithFallback(script, animationId);
90014
90039
  if (!loc) return script;
90015
- const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
90040
+ const kfNode = findKeyframesObjectNode(loc.target.call.varsArg) ?? convertArrayKeyframesToObjectNode(loc.target.call.varsArg);
90016
90041
  if (!kfNode) return script;
90017
90042
  const match = findKeyframePropByPct(kfNode, fromPercentage);
90018
90043
  if (!match) return script;
@@ -90040,7 +90065,7 @@ function moveKeyframeInScript2(script, animationId, fromPercentage, toPercentage
90040
90065
  function resizeKeyframedTweenInScript2(script, animationId, newPosition, newDuration, pctRemap) {
90041
90066
  const loc = locateAnimationWithFallback(script, animationId);
90042
90067
  if (!loc) return script;
90043
- const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
90068
+ const kfNode = findKeyframesObjectNode(loc.target.call.varsArg) ?? convertArrayKeyframesToObjectNode(loc.target.call.varsArg);
90044
90069
  if (!kfNode) return script;
90045
90070
  const seen = /* @__PURE__ */ new Set();
90046
90071
  for (const { from, to } of pctRemap) {
@@ -90166,7 +90191,7 @@ function convertToKeyframesInScript(script, animationId, resolvedFromValues, set
90166
90191
  function removeAllKeyframesFromScript2(script, animationId) {
90167
90192
  let loc = locateAnimationWithFallback(script, animationId);
90168
90193
  if (!loc) return script;
90169
- const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
90194
+ const kfNode = findKeyframesObjectNode(loc.target.call.varsArg) ?? convertArrayKeyframesToObjectNode(loc.target.call.varsArg);
90170
90195
  if (!kfNode) return script;
90171
90196
  const kfEntries = filterPercentageProps(kfNode).map((p2) => ({ pct: percentageFromKey2(propKeyName4(p2)), prop: p2 })).filter((e3) => !Number.isNaN(e3.pct)).sort((a, b2) => a.pct - b2.pct);
90172
90197
  if (kfEntries.length === 0) return script;
@@ -95018,10 +95043,11 @@ __export(manager_exports2, {
95018
95043
  clearBrowser: () => clearBrowser,
95019
95044
  ensureBrowser: () => ensureBrowser,
95020
95045
  findBrowser: () => findBrowser,
95021
- isLinuxArm: () => isLinuxArm
95046
+ isLinuxArm: () => isLinuxArm,
95047
+ withInstallLock: () => withInstallLock
95022
95048
  });
95023
95049
  import { execSync as execSync5, spawnSync as spawnSync2 } from "child_process";
95024
- import { existsSync as existsSync31, readdirSync as readdirSync13, rmSync as rmSync6 } from "fs";
95050
+ import { existsSync as existsSync31, mkdirSync as mkdirSync15, readdirSync as readdirSync13, rmSync as rmSync6, statSync as statSync9 } from "fs";
95025
95051
  import { basename as basename4 } from "path";
95026
95052
  import { homedir as homedir9 } from "os";
95027
95053
  import { join as join27 } from "path";
@@ -95036,6 +95062,59 @@ Fix: run \`npm install\` or \`bun install\` to restore missing packages, then re
95036
95062
  );
95037
95063
  }
95038
95064
  }
95065
+ function isErrno(err, code) {
95066
+ return err.code === code;
95067
+ }
95068
+ function sleep(ms) {
95069
+ return new Promise((resolve62) => setTimeout(resolve62, ms));
95070
+ }
95071
+ function tryAcquireDirLock(lockDir) {
95072
+ try {
95073
+ mkdirSync15(lockDir, { recursive: false });
95074
+ return true;
95075
+ } catch (err) {
95076
+ if (!isErrno(err, "EEXIST")) throw err;
95077
+ return false;
95078
+ }
95079
+ }
95080
+ function reclaimStaleInstallLock(timeoutMs) {
95081
+ if (!tryAcquireDirLock(INSTALL_RECLAIM_LOCK_DIR)) return;
95082
+ try {
95083
+ const mtimeMs = statSync9(INSTALL_LOCK_DIR).mtimeMs;
95084
+ if (Date.now() - mtimeMs > timeoutMs) {
95085
+ rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
95086
+ }
95087
+ } catch (err) {
95088
+ if (!isErrno(err, "ENOENT")) throw err;
95089
+ } finally {
95090
+ rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
95091
+ }
95092
+ }
95093
+ async function withInstallLock(fn, timeoutMs = INSTALL_LOCK_TIMEOUT_MS, pollMs = INSTALL_LOCK_POLL_MS) {
95094
+ if (!existsSync31(CACHE_DIR2)) mkdirSync15(CACHE_DIR2, { recursive: true });
95095
+ let deadline = Date.now() + timeoutMs;
95096
+ for (; ; ) {
95097
+ if (existsSync31(INSTALL_RECLAIM_LOCK_DIR)) {
95098
+ await sleep(pollMs);
95099
+ continue;
95100
+ }
95101
+ if (tryAcquireDirLock(INSTALL_LOCK_DIR)) {
95102
+ rmSync6(INSTALL_RECLAIM_LOCK_DIR, { recursive: true, force: true });
95103
+ break;
95104
+ }
95105
+ if (Date.now() > deadline) {
95106
+ reclaimStaleInstallLock(timeoutMs);
95107
+ deadline = Date.now() + timeoutMs;
95108
+ continue;
95109
+ }
95110
+ await sleep(pollMs);
95111
+ }
95112
+ try {
95113
+ return await fn();
95114
+ } finally {
95115
+ rmSync6(INSTALL_LOCK_DIR, { recursive: true, force: true });
95116
+ }
95117
+ }
95039
95118
  function whichBinary2(name) {
95040
95119
  try {
95041
95120
  const cmd = process.platform === "win32" ? `where ${name}` : `which ${name}`;
@@ -95186,7 +95265,7 @@ async function findBrowser() {
95186
95265
  `[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
95187
95266
  );
95188
95267
  try {
95189
- return await downloadBrowser();
95268
+ return await withInstallLock(() => downloadBrowser());
95190
95269
  } catch (err) {
95191
95270
  const cause = normalizeErrorMessage(err);
95192
95271
  throw new Error(
@@ -95249,14 +95328,18 @@ async function ensureBrowser(options) {
95249
95328
  console.warn(
95250
95329
  `[browser] Cached binary missing at ${fromCache.staleHyperframesCachePath} \u2014 re-downloading...`
95251
95330
  );
95252
- return downloadBrowser(options);
95331
+ return withInstallLock(() => downloadBrowser(options));
95253
95332
  }
95254
95333
  const fromSystem = findFromSystem2();
95255
95334
  if (fromSystem) {
95256
95335
  warnSystemFallbackOnce(fromSystem.executablePath);
95257
95336
  return fromSystem;
95258
95337
  }
95259
- return downloadBrowser(options);
95338
+ return withInstallLock(async () => {
95339
+ const afterLock = await findFromCache();
95340
+ if (afterLock.result) return afterLock.result;
95341
+ return downloadBrowser(options);
95342
+ });
95260
95343
  }
95261
95344
  async function downloadBrowser(options) {
95262
95345
  if (isLinuxArm()) {
@@ -95286,7 +95369,7 @@ function clearBrowser() {
95286
95369
  function isLinuxArm() {
95287
95370
  return process.platform === "linux" && process.arch === "arm64";
95288
95371
  }
95289
- var CHROME_VERSION, CACHE_DIR2, PUPPETEER_CACHE_DIR, SYSTEM_CHROME_PATHS, _warnedSystemFallback;
95372
+ 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;
95290
95373
  var init_manager2 = __esm({
95291
95374
  "src/browser/manager.ts"() {
95292
95375
  "use strict";
@@ -95294,6 +95377,10 @@ var init_manager2 = __esm({
95294
95377
  CHROME_VERSION = "131.0.6778.85";
95295
95378
  CACHE_DIR2 = join27(homedir9(), ".cache", "hyperframes", "chrome");
95296
95379
  PUPPETEER_CACHE_DIR = join27(homedir9(), ".cache", "puppeteer", "chrome-headless-shell");
95380
+ INSTALL_LOCK_DIR = join27(CACHE_DIR2, ".install.lock");
95381
+ INSTALL_RECLAIM_LOCK_DIR = join27(CACHE_DIR2, ".install.reclaim.lock");
95382
+ INSTALL_LOCK_TIMEOUT_MS = 12e4;
95383
+ INSTALL_LOCK_POLL_MS = 200;
95297
95384
  SYSTEM_CHROME_PATHS = process.platform === "darwin" ? ["/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"] : [
95298
95385
  "/usr/bin/google-chrome",
95299
95386
  "/usr/bin/google-chrome-stable",
@@ -98566,27 +98653,185 @@ __export(deterministicFonts_exports, {
98566
98653
  FONT_FETCH_FAILED: () => FONT_FETCH_FAILED,
98567
98654
  FontFetchError: () => FontFetchError,
98568
98655
  GENERIC_FAMILIES: () => GENERIC_FAMILIES2,
98656
+ collectFontFamilyCustomProperties: () => collectFontFamilyCustomProperties,
98569
98657
  injectDeterministicFontFaces: () => injectDeterministicFontFaces,
98570
98658
  iterateFontFamilyDeclarations: () => iterateFontFamilyDeclarations,
98571
- parseFontFamilyValue: () => parseFontFamilyValue
98659
+ normalizeSystemFontPrimaryFamilies: () => normalizeSystemFontPrimaryFamilies,
98660
+ parseFontFamilyValue: () => parseFontFamilyValue,
98661
+ resolveFontFamilyDeclarationFamilies: () => resolveFontFamilyDeclarationFamilies
98572
98662
  });
98573
98663
  import { createHash as createHash6 } from "crypto";
98574
- import { existsSync as existsSync33, mkdirSync as mkdirSync15, readFileSync as readFileSync20, writeFileSync as writeFileSync11 } from "fs";
98664
+ import { existsSync as existsSync33, mkdirSync as mkdirSync16, readFileSync as readFileSync20, writeFileSync as writeFileSync11 } from "fs";
98575
98665
  import { homedir as homedir10, tmpdir as tmpdir3 } from "os";
98576
98666
  import { join as join28 } from "path";
98667
+ import postcss4 from "postcss";
98577
98668
  function parseFontFamilyValue(value) {
98578
98669
  return value.split(",").map((piece) => piece.trim().replace(/^['"]/, "").replace(/['"]$/, "").trim()).filter((piece) => piece.length > 0);
98579
98670
  }
98580
- function* iterateFontFamilyDeclarations(html) {
98581
- const sources = [
98582
- [/font-family\s*:\s*([^;}{]+)[;}]?/gi, "font-family"],
98583
- [/data-font-family=["']([^"']+)["']/gi, "data-font-family"]
98584
- ];
98585
- for (const [regex, surface] of sources) {
98586
- for (const match of html.matchAll(regex)) {
98587
- const declaration = match[1] ?? "";
98588
- yield { surface, declaration, families: parseFontFamilyValue(declaration) };
98671
+ function systemPrimaryReplacement(value, deterministicPrimary) {
98672
+ const families = parseFontFamilyValue(value);
98673
+ if (families.length === 0) return null;
98674
+ if (!GENERIC_FAMILIES2.has(normalizeFamilyName(families[0]))) return null;
98675
+ return `${deterministicPrimary}, ${value.trim()}`;
98676
+ }
98677
+ function parseCssRoot(css) {
98678
+ try {
98679
+ return postcss4.parse(css);
98680
+ } catch {
98681
+ return null;
98682
+ }
98683
+ }
98684
+ function isFontFaceDeclaration(decl) {
98685
+ const parent = decl.parent;
98686
+ return parent?.type === "atrule" && parent.name.toLowerCase() === "font-face";
98687
+ }
98688
+ function normalizeCssDeclarations(root, deterministicPrimary) {
98689
+ let changed = false;
98690
+ root.walkDecls((decl) => {
98691
+ if (decl.prop.startsWith("--")) {
98692
+ const replacement2 = systemPrimaryReplacement(decl.value, deterministicPrimary);
98693
+ if (!replacement2) return;
98694
+ decl.value = replacement2;
98695
+ changed = true;
98696
+ return;
98697
+ }
98698
+ if (decl.prop.toLowerCase() !== "font-family") return;
98699
+ if (isFontFaceDeclaration(decl)) {
98700
+ return;
98701
+ }
98702
+ const replacement = systemPrimaryReplacement(decl.value, deterministicPrimary);
98703
+ if (!replacement) return;
98704
+ decl.value = replacement;
98705
+ changed = true;
98706
+ });
98707
+ return changed;
98708
+ }
98709
+ function normalizeCssFontFamilyDeclarations(css, deterministicPrimary) {
98710
+ const root = parseCssRoot(css);
98711
+ if (!root) return css;
98712
+ const changed = normalizeCssDeclarations(root, deterministicPrimary);
98713
+ return changed ? root.toString() : css;
98714
+ }
98715
+ function normalizeInlineStyleAttribute(style, deterministicPrimary) {
98716
+ const root = parseCssRoot(`*{${style}}`);
98717
+ if (!root) return style;
98718
+ const rule = root.first;
98719
+ if (rule?.type !== "rule") return style;
98720
+ const before3 = rule.toString();
98721
+ normalizeCssDeclarations(root, deterministicPrimary);
98722
+ if (rule.toString() === before3) return style;
98723
+ const serialized = (rule.nodes ?? []).map((node) => node.toString()).join("; ");
98724
+ return serialized.endsWith(";") ? serialized : `${serialized};`;
98725
+ }
98726
+ function normalizeSystemFontPrimaryFamilies(html, deterministicPrimary = "Inter") {
98727
+ const { document: document2 } = parseHTML(html);
98728
+ let changed = false;
98729
+ for (const styleEl of Array.from(document2.querySelectorAll("style"))) {
98730
+ const current2 = styleEl.textContent ?? "";
98731
+ const next = normalizeCssFontFamilyDeclarations(current2, deterministicPrimary);
98732
+ if (next === current2) continue;
98733
+ styleEl.textContent = next;
98734
+ changed = true;
98735
+ }
98736
+ for (const el of Array.from(document2.querySelectorAll("[style]"))) {
98737
+ const current2 = el.getAttribute("style") ?? "";
98738
+ const next = normalizeInlineStyleAttribute(current2, deterministicPrimary);
98739
+ if (next === current2) continue;
98740
+ el.setAttribute("style", next);
98741
+ changed = true;
98742
+ }
98743
+ for (const el of Array.from(document2.querySelectorAll("[data-font-family]"))) {
98744
+ const current2 = el.getAttribute("data-font-family") ?? "";
98745
+ const next = systemPrimaryReplacement(current2, deterministicPrimary);
98746
+ if (!next) continue;
98747
+ el.setAttribute("data-font-family", next);
98748
+ changed = true;
98749
+ }
98750
+ return changed ? document2.toString() : html;
98751
+ }
98752
+ function collectCssCustomProperties(css, customProperties) {
98753
+ const root = parseCssRoot(css);
98754
+ if (!root) return;
98755
+ root.walkDecls((decl) => {
98756
+ if (!decl.prop.startsWith("--")) return;
98757
+ customProperties.set(decl.prop, decl.value);
98758
+ });
98759
+ }
98760
+ function* iterateCssRootFontFamilyDeclarations(root) {
98761
+ const declarations = [];
98762
+ root.walkDecls((decl) => {
98763
+ if (decl.prop.toLowerCase() !== "font-family") return;
98764
+ if (isFontFaceDeclaration(decl)) return;
98765
+ const declaration = decl.value;
98766
+ declarations.push({
98767
+ surface: "font-family",
98768
+ declaration,
98769
+ families: parseFontFamilyValue(declaration)
98770
+ });
98771
+ });
98772
+ yield* declarations;
98773
+ }
98774
+ function* iterateCssFontFamilyDeclarations(css) {
98775
+ const root = parseCssRoot(css);
98776
+ if (!root) return;
98777
+ yield* iterateCssRootFontFamilyDeclarations(root);
98778
+ }
98779
+ function* iterateInlineStyleFontFamilyDeclarations(style) {
98780
+ const root = parseCssRoot(`*{${style}}`);
98781
+ if (!root) return;
98782
+ yield* iterateCssRootFontFamilyDeclarations(root);
98783
+ }
98784
+ function collectFontFamilyCustomProperties(html) {
98785
+ const { document: document2 } = parseHTML(html);
98786
+ const customProperties = /* @__PURE__ */ new Map();
98787
+ for (const styleEl of Array.from(document2.querySelectorAll("style"))) {
98788
+ collectCssCustomProperties(styleEl.textContent ?? "", customProperties);
98789
+ }
98790
+ for (const el of Array.from(document2.querySelectorAll("[style]"))) {
98791
+ collectCssCustomProperties(`*{${el.getAttribute("style") ?? ""}}`, customProperties);
98792
+ }
98793
+ return customProperties;
98794
+ }
98795
+ function primaryCssVariableName(value) {
98796
+ const trimmed = value.trim();
98797
+ if (!trimmed.toLowerCase().startsWith("var(")) return null;
98798
+ let depth = 0;
98799
+ for (let index = 0; index < trimmed.length; index += 1) {
98800
+ const char = trimmed[index];
98801
+ if (char === "(") {
98802
+ depth += 1;
98803
+ continue;
98589
98804
  }
98805
+ if (char !== ")") continue;
98806
+ depth -= 1;
98807
+ if (depth !== 0) continue;
98808
+ const varExpression = trimmed.slice(0, index + 1);
98809
+ const inner = varExpression.slice(4, -1).trim();
98810
+ const commaIndex = inner.indexOf(",");
98811
+ const variableName = (commaIndex === -1 ? inner : inner.slice(0, commaIndex)).trim();
98812
+ return /^--[A-Za-z0-9_-]+$/.test(variableName) ? variableName : null;
98813
+ }
98814
+ return null;
98815
+ }
98816
+ function resolveFontFamilyDeclarationFamilies(declaration, customProperties) {
98817
+ const families = parseFontFamilyValue(declaration);
98818
+ const variableName = primaryCssVariableName(declaration);
98819
+ if (!variableName) return families;
98820
+ const resolved = customProperties.get(variableName);
98821
+ if (!resolved) return families;
98822
+ return [...parseFontFamilyValue(resolved), ...families.slice(1)];
98823
+ }
98824
+ function* iterateFontFamilyDeclarations(html) {
98825
+ const { document: document2 } = parseHTML(html);
98826
+ for (const styleEl of Array.from(document2.querySelectorAll("style"))) {
98827
+ yield* iterateCssFontFamilyDeclarations(styleEl.textContent ?? "");
98828
+ }
98829
+ for (const el of Array.from(document2.querySelectorAll("[style]"))) {
98830
+ yield* iterateInlineStyleFontFamilyDeclarations(el.getAttribute("style") ?? "");
98831
+ }
98832
+ for (const el of Array.from(document2.querySelectorAll("[data-font-family]"))) {
98833
+ const declaration = el.getAttribute("data-font-family") ?? "";
98834
+ yield { surface: "data-font-family", declaration, families: parseFontFamilyValue(declaration) };
98590
98835
  }
98591
98836
  }
98592
98837
  function normalizeFamilyName(family) {
@@ -98616,8 +98861,12 @@ function extractExistingFontFaces(html) {
98616
98861
  }
98617
98862
  function extractRequestedFontFamilies(html) {
98618
98863
  const requested = /* @__PURE__ */ new Map();
98619
- for (const { families } of iterateFontFamilyDeclarations(html)) {
98620
- for (const originalCase of families) {
98864
+ const customProperties = collectFontFamilyCustomProperties(html);
98865
+ for (const { declaration } of iterateFontFamilyDeclarations(html)) {
98866
+ for (const originalCase of resolveFontFamilyDeclarationFamilies(
98867
+ declaration,
98868
+ customProperties
98869
+ )) {
98621
98870
  const normalized = originalCase.toLowerCase();
98622
98871
  if (!normalized || GENERIC_FAMILIES2.has(normalized)) continue;
98623
98872
  if (normalized.startsWith("var(")) continue;
@@ -98739,7 +98988,7 @@ function fontSlug(familyName) {
98739
98988
  function fontCacheDir(slug) {
98740
98989
  const dir = join28(GOOGLE_FONTS_CACHE_DIR, slug);
98741
98990
  if (!existsSync33(dir)) {
98742
- mkdirSync15(dir, { recursive: true });
98991
+ mkdirSync16(dir, { recursive: true });
98743
98992
  }
98744
98993
  return dir;
98745
98994
  }
@@ -99026,11 +99275,11 @@ import { spawn as spawn10 } from "child_process";
99026
99275
  import {
99027
99276
  copyFileSync as copyFileSync2,
99028
99277
  existsSync as existsSync34,
99029
- mkdirSync as mkdirSync16,
99278
+ mkdirSync as mkdirSync17,
99030
99279
  readFileSync as readFileSync21,
99031
99280
  renameSync as renameSync4,
99032
99281
  rmSync as rmSync7,
99033
- statSync as statSync9
99282
+ statSync as statSync10
99034
99283
  } from "fs";
99035
99284
  import { dirname as dirname13, isAbsolute as isAbsolute10, join as join29, resolve as resolve20 } from "path";
99036
99285
  function splitUrlSuffix2(src) {
@@ -99076,7 +99325,7 @@ function resolveGifSourcePath(src, options) {
99076
99325
  }
99077
99326
  function isUsableFile(path2) {
99078
99327
  try {
99079
- const stat3 = statSync9(path2);
99328
+ const stat3 = statSync10(path2);
99080
99329
  return stat3.isFile() && stat3.size > 0;
99081
99330
  } catch {
99082
99331
  return false;
@@ -99193,10 +99442,10 @@ async function runAnimatedGifTranscode(request) {
99193
99442
  }
99194
99443
  async function ensurePreparedWebm(input2) {
99195
99444
  if (!existsSync34(dirname13(input2.cachePath))) {
99196
- mkdirSync16(dirname13(input2.cachePath), { recursive: true });
99445
+ mkdirSync17(dirname13(input2.cachePath), { recursive: true });
99197
99446
  }
99198
99447
  if (!existsSync34(dirname13(input2.outputPath))) {
99199
- mkdirSync16(dirname13(input2.outputPath), { recursive: true });
99448
+ mkdirSync17(dirname13(input2.outputPath), { recursive: true });
99200
99449
  }
99201
99450
  if (!isUsableFile(input2.cachePath)) {
99202
99451
  const tmpPath = `${input2.cachePath}.tmp-${process.pid}-${Date.now()}`;
@@ -99442,7 +99691,7 @@ var init_hf_early_stub_inline = __esm({
99442
99691
  // ../producer/src/services/fileServer.ts
99443
99692
  import { Hono as Hono3 } from "hono";
99444
99693
  import { serve as serve2 } from "@hono/node-server";
99445
- import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as statSync10, createReadStream } from "fs";
99694
+ import { existsSync as existsSync36, realpathSync as realpathSync4, statSync as statSync11, createReadStream } from "fs";
99446
99695
  import { readFile as readFile2 } from "fs/promises";
99447
99696
  import { Readable as Readable2 } from "stream";
99448
99697
  import { join as join30, extname as extname9, resolve as resolve23, sep as sep5 } from "path";
@@ -99790,13 +100039,13 @@ function createFileServer2(options) {
99790
100039
  let filePath = null;
99791
100040
  if (compiledDir) {
99792
100041
  const candidate = join30(compiledDir, relativePath);
99793
- if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) && statSync10(candidate).isFile()) {
100042
+ if (existsSync36(candidate) && isPathInside2(candidate, compiledDir) && statSync11(candidate).isFile()) {
99794
100043
  filePath = candidate;
99795
100044
  }
99796
100045
  }
99797
100046
  if (!filePath) {
99798
100047
  const candidate = join30(projectDir, relativePath);
99799
- if (existsSync36(candidate) && isPathInside2(candidate, projectDir) && statSync10(candidate).isFile()) {
100048
+ if (existsSync36(candidate) && isPathInside2(candidate, projectDir) && statSync11(candidate).isFile()) {
99800
100049
  filePath = candidate;
99801
100050
  }
99802
100051
  }
@@ -99818,7 +100067,7 @@ function createFileServer2(options) {
99818
100067
  html = isIndex ? injectScriptsIntoHtml(html, headScripts, bodyScripts, stripEmbeddedRuntime) : html;
99819
100068
  return c3.text(html, 200, { "Content-Type": contentType });
99820
100069
  }
99821
- const stat3 = statSync10(filePath);
100070
+ const stat3 = statSync11(filePath);
99822
100071
  const totalSize2 = stat3.size;
99823
100072
  const rangeHeader = c3.req.header("range");
99824
100073
  const rangeRequest = parseRangeHeader(rangeHeader, totalSize2);
@@ -100070,7 +100319,7 @@ var init_paths = __esm({
100070
100319
  });
100071
100320
 
100072
100321
  // ../producer/src/services/render/shared.ts
100073
- import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as mkdirSync17, symlinkSync as symlinkSync2, writeFileSync as writeFileSync12 } from "fs";
100322
+ import { copyFileSync as copyFileSync3, cpSync as cpSync2, existsSync as existsSync37, mkdirSync as mkdirSync18, symlinkSync as symlinkSync2, writeFileSync as writeFileSync12 } from "fs";
100074
100323
  import { basename as basename6, dirname as dirname15, isAbsolute as isAbsolute11, join as join33, relative as relative8, resolve as resolve24 } from "path";
100075
100324
  function writeFileExclusiveSync(path2, data2) {
100076
100325
  try {
@@ -100100,11 +100349,11 @@ function resolveDeviceScaleFactor(input2) {
100100
100349
  }
100101
100350
  function writeCompiledArtifacts(compiled, workDir, includeSummary) {
100102
100351
  const compileDir = join33(workDir, "compiled");
100103
- mkdirSync17(compileDir, { recursive: true });
100352
+ mkdirSync18(compileDir, { recursive: true });
100104
100353
  writeFileSync12(join33(compileDir, "index.html"), compiled.html, "utf-8");
100105
100354
  for (const [srcPath, html] of compiled.subCompositions) {
100106
100355
  const outPath = join33(compileDir, srcPath);
100107
- mkdirSync17(dirname15(outPath), { recursive: true });
100356
+ mkdirSync18(dirname15(outPath), { recursive: true });
100108
100357
  writeFileSync12(outPath, html, "utf-8");
100109
100358
  }
100110
100359
  for (const [relativePath, absolutePath] of compiled.externalAssets) {
@@ -100113,7 +100362,7 @@ function writeCompiledArtifacts(compiled, workDir, includeSummary) {
100113
100362
  console.warn(`[Render] Skipping external asset with unsafe path: ${relativePath}`);
100114
100363
  continue;
100115
100364
  }
100116
- mkdirSync17(dirname15(outPath), { recursive: true });
100365
+ mkdirSync18(dirname15(outPath), { recursive: true });
100117
100366
  copyFileSync3(absolutePath, outPath);
100118
100367
  }
100119
100368
  if (includeSummary) {
@@ -100238,7 +100487,7 @@ var init_shared = __esm({
100238
100487
  };
100239
100488
  materializeFileSystem = {
100240
100489
  existsSync: existsSync37,
100241
- mkdirSync: mkdirSync17,
100490
+ mkdirSync: mkdirSync18,
100242
100491
  symlinkSync: symlinkSync2,
100243
100492
  cpSync: cpSync2
100244
100493
  };
@@ -101430,7 +101679,7 @@ var init_manualEditsRenderScript = __esm({
101430
101679
  });
101431
101680
 
101432
101681
  // ../producer/src/services/htmlCompiler.ts
101433
- import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as mkdirSync18 } from "fs";
101682
+ import { readFileSync as readFileSync24, existsSync as existsSync38, mkdirSync as mkdirSync19 } from "fs";
101434
101683
  import { join as join35, dirname as dirname16, resolve as resolve25, basename as basename7 } from "path";
101435
101684
  function parseSubCompHtmlForValidity(html) {
101436
101685
  return parseHTML(html).document;
@@ -101540,7 +101789,7 @@ function detectShaderTransitionUsage(html) {
101540
101789
  async function resolveMediaDuration(src, mediaStart, baseDir, downloadDir, tagName19) {
101541
101790
  let filePath = src;
101542
101791
  if (isHttpUrl(src)) {
101543
- if (!existsSync38(downloadDir)) mkdirSync18(downloadDir, { recursive: true });
101792
+ if (!existsSync38(downloadDir)) mkdirSync19(downloadDir, { recursive: true });
101544
101793
  try {
101545
101794
  filePath = await downloadToTemp(src, downloadDir);
101546
101795
  } catch {
@@ -102027,7 +102276,7 @@ function collectExternalAssets(html, projectDir) {
102027
102276
  }
102028
102277
  async function downloadAndRewriteUrls(urlSet, html, remoteDir, warnLabel, logLabel, extraRewrite) {
102029
102278
  if (urlSet.size === 0) return { html, remoteMediaAssets: /* @__PURE__ */ new Map() };
102030
- if (!existsSync38(remoteDir)) mkdirSync18(remoteDir, { recursive: true });
102279
+ if (!existsSync38(remoteDir)) mkdirSync19(remoteDir, { recursive: true });
102031
102280
  const urlToLocal = /* @__PURE__ */ new Map();
102032
102281
  await Promise.all(
102033
102282
  [...urlSet].map(async (url) => {
@@ -102311,15 +102560,15 @@ async function compileForRender(projectDir, htmlPath, downloadDir, options = {})
102311
102560
  );
102312
102561
  const renderModeHints = detectRenderModeHints(sanitizedHtml);
102313
102562
  const hasShaderTransitions = detectShaderTransitionUsage(sanitizedHtml);
102314
- const coalescedHtml = await injectDeterministicFontFaces(
102563
+ const normalizedFontHtml = normalizeSystemFontPrimaryFamilies(
102315
102564
  injectTextRenderingRule2(
102316
102565
  coalesceHeadStylesAndBodyScripts2(promoteCssImportsToLinkTags(sanitizedHtml))
102317
- ),
102318
- {
102319
- failClosedFontFetch: options.failClosedFontFetch === true,
102320
- allowSystemFontCapture: options.allowSystemFontCapture
102321
- }
102566
+ )
102322
102567
  );
102568
+ const coalescedHtml = await injectDeterministicFontFaces(normalizedFontHtml, {
102569
+ failClosedFontFetch: options.failClosedFontFetch === true,
102570
+ allowSystemFontCapture: options.allowSystemFontCapture
102571
+ });
102323
102572
  const assembledHtml = await inlineExternalScripts(coalescedHtml);
102324
102573
  const HF_POSITION_ATTRS = [
102325
102574
  'data-hf-studio-path-offset="true"',
@@ -103290,6 +103539,7 @@ async function runAudioStage(input2) {
103290
103539
  const stage3Start = Date.now();
103291
103540
  const audioOutputPath = join39(workDir, "audio.aac");
103292
103541
  let hasAudio = false;
103542
+ let audioError;
103293
103543
  if (audios.length > 0) {
103294
103544
  const audioResult = await processCompositionAudio(
103295
103545
  audios,
@@ -103303,9 +103553,10 @@ async function runAudioStage(input2) {
103303
103553
  );
103304
103554
  assertNotAborted();
103305
103555
  hasAudio = audioResult.success;
103556
+ if (!hasAudio) audioError = audioResult.error ?? "audio mix failed for an unknown reason";
103306
103557
  }
103307
103558
  const audioProcessMs = Date.now() - stage3Start;
103308
- return { audioOutputPath, hasAudio, audioProcessMs };
103559
+ return { audioOutputPath, hasAudio, audioProcessMs, audioError };
103309
103560
  }
103310
103561
  var init_audioStage = __esm({
103311
103562
  "../producer/src/services/render/stages/audioStage.ts"() {
@@ -104376,7 +104627,7 @@ import {
104376
104627
  closeSync as closeSync3,
104377
104628
  constants as constants2,
104378
104629
  fstatSync as fstatSync2,
104379
- mkdirSync as mkdirSync19,
104630
+ mkdirSync as mkdirSync20,
104380
104631
  mkdtempSync as mkdtempSync2,
104381
104632
  openSync as openSync2,
104382
104633
  readFileSync as readFileSync25
@@ -104468,7 +104719,7 @@ async function extractHdrVideoFrames(args) {
104468
104719
  for (const [videoId, srcPath] of prep.hdrVideoSrcPaths) {
104469
104720
  const video = composition.videos.find((v2) => v2.id === videoId);
104470
104721
  if (!video) continue;
104471
- mkdirSync19(framesDir, { recursive: true });
104722
+ mkdirSync20(framesDir, { recursive: true });
104472
104723
  const frameDir = mkdtempSync2(join41(framesDir, `hdr_${tempDirSafePrefix(videoId)}-`));
104473
104724
  const duration = video.end - video.start;
104474
104725
  const dims = prep.hdrExtractionDims.get(videoId) ?? { width, height };
@@ -105187,7 +105438,7 @@ var init_captureHdrHybridLoop = __esm({
105187
105438
  });
105188
105439
 
105189
105440
  // ../producer/src/services/render/stages/captureHdrStage.ts
105190
- import { existsSync as existsSync41, mkdirSync as mkdirSync20 } from "fs";
105441
+ import { existsSync as existsSync41, mkdirSync as mkdirSync21 } from "fs";
105191
105442
  import { join as join46 } from "path";
105192
105443
  async function runCaptureHdrStage(input2) {
105193
105444
  const {
@@ -105349,7 +105600,7 @@ async function runCaptureHdrStage(input2) {
105349
105600
  const debugDumpEnabled = process.env.KEEP_TEMP === "1";
105350
105601
  const debugDumpDir = debugDumpEnabled ? join46(framesDir, "debug-composite") : null;
105351
105602
  if (debugDumpDir && !existsSync41(debugDumpDir)) {
105352
- mkdirSync20(debugDumpDir, { recursive: true });
105603
+ mkdirSync21(debugDumpDir, { recursive: true });
105353
105604
  }
105354
105605
  const compositeTransfer = resolveCompositeTransfer(hasHdrContent, effectiveHdr);
105355
105606
  const hdrTargetTransfer = compositeTransfer === "srgb" ? void 0 : compositeTransfer;
@@ -105550,7 +105801,7 @@ var init_gifEncodeArgs = __esm({
105550
105801
  });
105551
105802
 
105552
105803
  // ../producer/src/services/render/stages/encodeStage.ts
105553
- import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as mkdirSync21, readdirSync as readdirSync14, rmSync as rmSync10, statSync as statSync11 } from "fs";
105804
+ import { copyFileSync as copyFileSync4, existsSync as existsSync43, mkdirSync as mkdirSync23, readdirSync as readdirSync14, rmSync as rmSync10, statSync as statSync12 } from "fs";
105554
105805
  import { dirname as dirname18, join as join48 } from "path";
105555
105806
  function resolveGifLoop(loop) {
105556
105807
  const resolved = loop ?? 0;
@@ -105610,7 +105861,7 @@ async function encodeGifFromDir(framesDir, framePattern, outputPath, input2) {
105610
105861
  error: formatFfmpegError(gifResult.exitCode, gifResult.stderr)
105611
105862
  };
105612
105863
  }
105613
- const fileSize = existsSync43(outputPath) ? statSync11(outputPath).size : 0;
105864
+ const fileSize = existsSync43(outputPath) ? statSync12(outputPath).size : 0;
105614
105865
  return {
105615
105866
  success: true,
105616
105867
  outputPath,
@@ -105648,7 +105899,7 @@ async function runEncodeStage(input2) {
105648
105899
  const stage5Start = Date.now();
105649
105900
  if (isPngSequence) {
105650
105901
  updateJobStatus(job, "encoding", "Writing PNG sequence", 75, onProgress);
105651
- if (!existsSync43(outputPath)) mkdirSync21(outputPath, { recursive: true });
105902
+ if (!existsSync43(outputPath)) mkdirSync23(outputPath, { recursive: true });
105652
105903
  const captured = readdirSync14(framesDir).filter((name) => name.endsWith(".png")).sort();
105653
105904
  if (captured.length === 0) {
105654
105905
  throw new Error(
@@ -105792,12 +106043,12 @@ var init_assembleStage = __esm({
105792
106043
  // ../producer/src/services/renderOrchestrator.ts
105793
106044
  import {
105794
106045
  existsSync as existsSync44,
105795
- mkdirSync as mkdirSync23,
106046
+ mkdirSync as mkdirSync24,
105796
106047
  mkdtempSync as mkdtempSync3,
105797
106048
  readFileSync as readFileSync26,
105798
106049
  readdirSync as readdirSync15,
105799
106050
  rmSync as rmSync11,
105800
- statSync as statSync12,
106051
+ statSync as statSync13,
105801
106052
  writeFileSync as writeFileSync13,
105802
106053
  copyFileSync as copyFileSync5,
105803
106054
  appendFileSync
@@ -105820,7 +106071,7 @@ function sampleDirectoryBytes(dir) {
105820
106071
  for (const name of entries2) {
105821
106072
  const full2 = join49(current2, name);
105822
106073
  try {
105823
- const st3 = statSync12(full2);
106074
+ const st3 = statSync13(full2);
105824
106075
  if (st3.isDirectory()) {
105825
106076
  stack.push(full2);
105826
106077
  } else if (st3.isFile()) {
@@ -105977,6 +106228,7 @@ async function executeDiskCaptureWithAdaptiveRetry(options) {
105977
106228
  let missingRanges = null;
105978
106229
  let attempt = 0;
105979
106230
  let transientRetriesUsed = 0;
106231
+ let pendingTransientRetry = false;
105980
106232
  const rangeStart = options.frameRangeStart ?? 0;
105981
106233
  while (true) {
105982
106234
  const frameCount = missingRanges ? countFrameRanges(missingRanges) : options.totalFrames;
@@ -105984,8 +106236,9 @@ async function executeDiskCaptureWithAdaptiveRetry(options) {
105984
106236
  attempt,
105985
106237
  workers: currentWorkers,
105986
106238
  frameCount,
105987
- reason: attempt === 0 ? "initial" : "retry"
106239
+ reason: attempt === 0 ? "initial" : pendingTransientRetry ? "transient-retry" : "retry"
105988
106240
  });
106241
+ pendingTransientRetry = false;
105989
106242
  const attemptWorkDir = join49(options.workDir, `capture-attempt-${attempt}`);
105990
106243
  const batches = missingRanges ? buildMissingFrameRetryBatches(
105991
106244
  missingRanges,
@@ -106084,6 +106337,7 @@ async function executeDiskCaptureWithAdaptiveRetry(options) {
106084
106337
  );
106085
106338
  missingRanges = remaining;
106086
106339
  attempt++;
106340
+ pendingTransientRetry = true;
106087
106341
  continue;
106088
106342
  }
106089
106343
  if (!madeProgress) {
@@ -106172,7 +106426,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106172
106426
  const producerRoot = process.env.PRODUCER_RENDERS_DIR ? resolve26(process.env.PRODUCER_RENDERS_DIR, "..") : resolve26(moduleDir, "../..");
106173
106427
  const debugDir = join49(producerRoot, ".debug");
106174
106428
  const outputDir = dirname19(outputPath);
106175
- if (!existsSync44(outputDir)) mkdirSync23(outputDir, { recursive: true });
106429
+ if (!existsSync44(outputDir)) mkdirSync24(outputDir, { recursive: true });
106176
106430
  const workDir = job.config.debug ? join49(debugDir, job.id) : mkdtempSync3(join49(outputDir, `work-${job.id}-`));
106177
106431
  const pipelineStart = Date.now();
106178
106432
  const log2 = job.config.logger ?? defaultLogger;
@@ -106218,6 +106472,11 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106218
106472
  Object.assign(captureObservability, patch);
106219
106473
  captureObservability.captureMode = captureObservability.forceScreenshot ? "screenshot" : "beginframe";
106220
106474
  };
106475
+ const captureAttempts = [];
106476
+ const recordTransientRetryObservability = () => {
106477
+ const count = captureAttempts.filter((a) => a.reason === "transient-retry").length;
106478
+ if (count > 0) updateCaptureObservability({ transientRetries: count });
106479
+ };
106221
106480
  let memSampler = null;
106222
106481
  try {
106223
106482
  memSampler = createMemorySampler();
@@ -106229,7 +106488,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106229
106488
  job.startedAt = /* @__PURE__ */ new Date();
106230
106489
  assertNotAborted();
106231
106490
  assertConfiguredFfmpegBinariesExist();
106232
- if (!existsSync44(workDir)) mkdirSync23(workDir, { recursive: true });
106491
+ if (!existsSync44(workDir)) mkdirSync24(workDir, { recursive: true });
106233
106492
  if (job.config.debug) {
106234
106493
  const logPath = join49(workDir, "render.log");
106235
106494
  restoreLogger = installDebugLogger(logPath, log2);
@@ -106465,6 +106724,9 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106465
106724
  );
106466
106725
  const { audioOutputPath, hasAudio } = audioResult;
106467
106726
  perfStages.audioProcessMs = audioResult.audioProcessMs;
106727
+ if (audioResult.audioError) {
106728
+ log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
106729
+ }
106468
106730
  const stage4Start = Date.now();
106469
106731
  updateJobStatus(job, "rendering", "Starting frame capture", 25, onProgress);
106470
106732
  if (!fileServer) {
@@ -106491,7 +106753,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106491
106753
  throw new Error("File server failed to initialize before frame capture");
106492
106754
  }
106493
106755
  const framesDir = join49(workDir, "captured-frames");
106494
- if (!existsSync44(framesDir)) mkdirSync23(framesDir, { recursive: true });
106756
+ if (!existsSync44(framesDir)) mkdirSync24(framesDir, { recursive: true });
106495
106757
  const resolvedBrowserGpuMode = await resolveBrowserGpuMode(cfg.browserGpuMode, {
106496
106758
  chromePath: resolveHeadlessShellPath(cfg),
106497
106759
  browserTimeout: cfg.browserTimeout
@@ -106591,7 +106853,6 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106591
106853
  durationSeconds: job.duration,
106592
106854
  maxDurationSeconds: cfg.streamingEncodeMaxDurationSeconds
106593
106855
  });
106594
- const captureAttempts = [];
106595
106856
  const dedupPerfs = [];
106596
106857
  const FORMAT_EXT3 = {
106597
106858
  mp4: ".mp4",
@@ -106876,6 +107137,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106876
107137
  updateJobStatus(job, "complete", "Render complete", 100, onProgress);
106877
107138
  const totalElapsed = Date.now() - pipelineStart;
106878
107139
  const tmpPeakBytes = existsSync44(workDir) ? sampleDirectoryBytes(workDir) : 0;
107140
+ recordTransientRetryObservability();
106879
107141
  observability.checkpoint("pipeline", "completed", { totalElapsedMs: totalElapsed });
106880
107142
  const observabilitySummary = observability.summary({
106881
107143
  lastBrowserConsole,
@@ -106955,6 +107217,10 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
106955
107217
  height: captureCompositionHeight,
106956
107218
  totalFrames: captureTotalFrames
106957
107219
  });
107220
+ if (memoryGuidance) {
107221
+ updateCaptureObservability({ memoryExhaustionDetected: true });
107222
+ }
107223
+ recordTransientRetryObservability();
106958
107224
  const errorMessage = memoryGuidance ?? normalizeErrorMessage2(error);
106959
107225
  const carriedBrowserConsole = getCaptureStageBrowserConsole(error);
106960
107226
  if (carriedBrowserConsole.length > 0) {
@@ -107077,7 +107343,7 @@ var init_config3 = __esm({
107077
107343
  });
107078
107344
 
107079
107345
  // ../producer/src/services/hyperframeLint.ts
107080
- import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as statSync13 } from "fs";
107346
+ import { existsSync as existsSync45, readFileSync as readFileSync27, statSync as statSync14 } from "fs";
107081
107347
  import { resolve as resolve27, join as join50 } from "path";
107082
107348
  function isStringRecord2(value) {
107083
107349
  if (!value || typeof value !== "object" || Array.isArray(value)) {
@@ -107106,7 +107372,7 @@ function pickEntryFile(files, preferredEntryFile) {
107106
107372
  }
107107
107373
  function readProjectEntryFile(projectDir, preferredEntryFile) {
107108
107374
  const absProjectDir = resolve27(projectDir);
107109
- if (!existsSync45(absProjectDir) || !statSync13(absProjectDir).isDirectory()) {
107375
+ if (!existsSync45(absProjectDir) || !statSync14(absProjectDir).isDirectory()) {
107110
107376
  return { error: `Project directory not found: ${absProjectDir}` };
107111
107377
  }
107112
107378
  const entryCandidates = [preferredEntryFile, "index.html", "src/index.html"].filter(
@@ -107117,7 +107383,7 @@ function readProjectEntryFile(projectDir, preferredEntryFile) {
107117
107383
  if (!absoluteEntryPath.startsWith(absProjectDir)) {
107118
107384
  return { error: `Entry file must stay inside project directory: ${entryFile}` };
107119
107385
  }
107120
- if (existsSync45(absoluteEntryPath) && statSync13(absoluteEntryPath).isFile()) {
107386
+ if (existsSync45(absoluteEntryPath) && statSync14(absoluteEntryPath).isFile()) {
107121
107387
  return {
107122
107388
  entryFile,
107123
107389
  html: readFileSync27(absoluteEntryPath, "utf-8"),
@@ -107308,8 +107574,8 @@ var init_semaphore = __esm({
107308
107574
  // ../producer/src/server.ts
107309
107575
  import {
107310
107576
  existsSync as existsSync47,
107311
- mkdirSync as mkdirSync24,
107312
- statSync as statSync14,
107577
+ mkdirSync as mkdirSync25,
107578
+ statSync as statSync15,
107313
107579
  mkdtempSync as mkdtempSync4,
107314
107580
  writeFileSync as writeFileSync14,
107315
107581
  rmSync as rmSync12,
@@ -107376,7 +107642,7 @@ function resolvePreparedRenderOutput(prepared, rendersDir, log2) {
107376
107642
  const { input: input2, cleanupProjectDir } = prepared;
107377
107643
  const absoluteOutputPath = resolveOutputPath(input2.projectDir, input2.outputPath, rendersDir, log2);
107378
107644
  const outputDir = dirname21(absoluteOutputPath);
107379
- if (!existsSync47(outputDir)) mkdirSync24(outputDir, { recursive: true });
107645
+ if (!existsSync47(outputDir)) mkdirSync25(outputDir, { recursive: true });
107380
107646
  return { input: input2, cleanupProjectDir, absoluteOutputPath };
107381
107647
  }
107382
107648
  function validateRenderOverrides(body) {
@@ -107406,7 +107672,7 @@ async function prepareRenderBody(body) {
107406
107672
  const projectDir = typeof body.projectDir === "string" ? body.projectDir : void 0;
107407
107673
  if (projectDir) {
107408
107674
  const absProjectDir = resolve28(projectDir);
107409
- if (!existsSync47(absProjectDir) || !statSync14(absProjectDir).isDirectory()) {
107675
+ if (!existsSync47(absProjectDir) || !statSync15(absProjectDir).isDirectory()) {
107410
107676
  return { error: `Project directory not found: ${absProjectDir}` };
107411
107677
  }
107412
107678
  const entry = options.entryFile || "index.html";
@@ -107573,7 +107839,7 @@ function createRenderHandlers(options = {}) {
107573
107839
  log2.info(`render progress ${pct}%`, { requestId, stage: j3.currentStage, message });
107574
107840
  }
107575
107841
  });
107576
- const fileSize = existsSync47(absoluteOutputPath) ? statSync14(absoluteOutputPath).size : 0;
107842
+ const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
107577
107843
  const durationMs = Date.now() - t0;
107578
107844
  const outputToken = store.register(absoluteOutputPath);
107579
107845
  const outputUrl = `${outputUrlPrefix}/${outputToken}`;
@@ -107689,7 +107955,7 @@ function createRenderHandlers(options = {}) {
107689
107955
  },
107690
107956
  abortController.signal
107691
107957
  );
107692
- const fileSize = existsSync47(absoluteOutputPath) ? statSync14(absoluteOutputPath).size : 0;
107958
+ const fileSize = existsSync47(absoluteOutputPath) ? statSync15(absoluteOutputPath).size : 0;
107693
107959
  const outputToken = store.register(absoluteOutputPath);
107694
107960
  const outputUrl = `${outputUrlPrefix}/${outputToken}`;
107695
107961
  log2.info("render-stream completed", { requestId, fileSize, perf: job.perfSummary ?? null });
@@ -107752,7 +108018,7 @@ function createRenderHandlers(options = {}) {
107752
108018
  store.delete(token);
107753
108019
  return c3.json({ success: false, error: "Output artifact file missing" }, 404);
107754
108020
  }
107755
- const stats = statSync14(artifact.path);
108021
+ const stats = statSync15(artifact.path);
107756
108022
  return new Response(createReadStream2(artifact.path), {
107757
108023
  headers: {
107758
108024
  "content-type": "video/mp4",
@@ -107916,7 +108182,7 @@ var init_planHash = __esm({
107916
108182
  });
107917
108183
 
107918
108184
  // ../producer/src/services/render/stages/freezePlan.ts
107919
- import { existsSync as existsSync48, mkdirSync as mkdirSync25, readFileSync as readFileSync28, readdirSync as readdirSync16, writeFileSync as writeFileSync15 } from "fs";
108185
+ import { existsSync as existsSync48, mkdirSync as mkdirSync26, readFileSync as readFileSync28, readdirSync as readdirSync16, writeFileSync as writeFileSync15 } from "fs";
107920
108186
  import { join as join54, relative as relative9, resolve as resolve29 } from "path";
107921
108187
  function stripUndefined(value) {
107922
108188
  if (Array.isArray(value)) return value.map(stripUndefined);
@@ -108012,7 +108278,7 @@ async function freezePlan(input2) {
108012
108278
  throw new Error(`[freezePlan] planDir does not exist: ${planDir}`);
108013
108279
  }
108014
108280
  const metaDir = join54(planDir, "meta");
108015
- if (!existsSync48(metaDir)) mkdirSync25(metaDir, { recursive: true });
108281
+ if (!existsSync48(metaDir)) mkdirSync26(metaDir, { recursive: true });
108016
108282
  writeFileSync15(
108017
108283
  join54(metaDir, "composition.json"),
108018
108284
  `${JSON.stringify(composition, null, 2)}
@@ -108080,7 +108346,9 @@ function validateNoGpuEncode(config) {
108080
108346
  }
108081
108347
  }
108082
108348
  function validateNoSystemFonts(compiledHtml) {
108083
- for (const { surface, declaration, families } of iterateFontFamilyDeclarations(compiledHtml)) {
108349
+ const customProperties = collectFontFamilyCustomProperties(compiledHtml);
108350
+ for (const { surface, declaration } of iterateFontFamilyDeclarations(compiledHtml)) {
108351
+ const families = resolveFontFamilyDeclarationFamilies(declaration, customProperties);
108084
108352
  if (families.length === 0) continue;
108085
108353
  const primaryRaw = families[0];
108086
108354
  if (!GENERIC_FAMILIES2.has(primaryRaw.toLowerCase())) continue;
@@ -108240,11 +108508,11 @@ var init_shared2 = __esm({
108240
108508
  import {
108241
108509
  cpSync as cpSync3,
108242
108510
  existsSync as existsSync50,
108243
- mkdirSync as mkdirSync26,
108511
+ mkdirSync as mkdirSync27,
108244
108512
  readdirSync as readdirSync17,
108245
108513
  renameSync as renameSync5,
108246
108514
  rmSync as rmSync13,
108247
- statSync as statSync15,
108515
+ statSync as statSync16,
108248
108516
  writeFileSync as writeFileSync16
108249
108517
  } from "fs";
108250
108518
  import { join as join56, relative as relative10, sep as sep6 } from "path";
@@ -108277,7 +108545,7 @@ function measurePlanDirBytes(planDir) {
108277
108545
  walk(full2);
108278
108546
  } else if (entry.isFile()) {
108279
108547
  try {
108280
- total += statSync15(full2).size;
108548
+ total += statSync16(full2).size;
108281
108549
  } catch {
108282
108550
  }
108283
108551
  }
@@ -108411,7 +108679,7 @@ async function plan(projectDir, config, planDir) {
108411
108679
  useGpu: false,
108412
108680
  browserGpuMode: "software"
108413
108681
  });
108414
- if (!existsSync50(planDir)) mkdirSync26(planDir, { recursive: true });
108682
+ if (!existsSync50(planDir)) mkdirSync27(planDir, { recursive: true });
108415
108683
  const log2 = config.logger ?? defaultLogger;
108416
108684
  const abortSignal = config.abortSignal;
108417
108685
  const assertNotAborted = () => {
@@ -108445,9 +108713,9 @@ async function plan(projectDir, config, planDir) {
108445
108713
  throw new Error(`[plan] entry file not found: ${htmlPath}`);
108446
108714
  }
108447
108715
  const workDir = join56(planDir, ".plan-work");
108448
- if (!existsSync50(workDir)) mkdirSync26(workDir, { recursive: true });
108716
+ if (!existsSync50(workDir)) mkdirSync27(workDir, { recursive: true });
108449
108717
  const compiledDir = join56(workDir, "compiled");
108450
- mkdirSync26(compiledDir, { recursive: true });
108718
+ mkdirSync27(compiledDir, { recursive: true });
108451
108719
  cpSync3(projectDir, compiledDir, {
108452
108720
  recursive: true,
108453
108721
  dereference: true,
@@ -108540,13 +108808,16 @@ async function plan(projectDir, config, planDir) {
108540
108808
  abortSignal,
108541
108809
  assertNotAborted
108542
108810
  });
108811
+ if (audioResult.audioError) {
108812
+ log2.warn(`[Render] Audio mix failed \u2014 output will be video-only: ${audioResult.audioError}`);
108813
+ }
108543
108814
  const stagedVideoFrames = join56(compiledDir, "__hyperframes_video_frames");
108544
108815
  const videoFramesDst = join56(planDir, "video-frames");
108545
108816
  if (existsSync50(videoFramesDst)) rmSync13(videoFramesDst, { recursive: true, force: true });
108546
108817
  if (existsSync50(stagedVideoFrames)) {
108547
108818
  renameSync5(stagedVideoFrames, videoFramesDst);
108548
108819
  } else {
108549
- mkdirSync26(videoFramesDst, { recursive: true });
108820
+ mkdirSync27(videoFramesDst, { recursive: true });
108550
108821
  }
108551
108822
  if (existsSync50(finalCompiledDir)) rmSync13(finalCompiledDir, { recursive: true, force: true });
108552
108823
  renameSync5(compiledDir, finalCompiledDir);
@@ -108561,7 +108832,7 @@ async function plan(projectDir, config, planDir) {
108561
108832
  metadata: ext.metadata
108562
108833
  }))
108563
108834
  };
108564
- mkdirSync26(join56(planDir, "meta"), { recursive: true });
108835
+ mkdirSync27(join56(planDir, "meta"), { recursive: true });
108565
108836
  writeFileSync16(
108566
108837
  join56(planDir, PLAN_VIDEOS_META_RELATIVE_PATH),
108567
108838
  JSON.stringify(planVideosJson, null, 2),
@@ -108711,7 +108982,7 @@ var init_plan = __esm({
108711
108982
 
108712
108983
  // ../producer/src/services/distributed/renderChunk.ts
108713
108984
  import { randomBytes as randomBytes2 } from "crypto";
108714
- import { existsSync as existsSync51, mkdirSync as mkdirSync27, readFileSync as readFileSync30, readdirSync as readdirSync18, rmSync as rmSync14, writeFileSync as writeFileSync17 } from "fs";
108985
+ import { existsSync as existsSync51, mkdirSync as mkdirSync28, readFileSync as readFileSync30, readdirSync as readdirSync18, rmSync as rmSync14, writeFileSync as writeFileSync17 } from "fs";
108715
108986
  import { extname as extname10, join as join57 } from "path";
108716
108987
  function rebuildExtractedFramesFromPlanDir(planDir, videos) {
108717
108988
  const result = [];
@@ -108877,9 +109148,9 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
108877
109148
  "software"
108878
109149
  );
108879
109150
  const workDir = `${outputChunkPath}.work.${process.pid}.${randomBytes2(4).toString("hex")}`;
108880
- mkdirSync27(workDir, { recursive: true });
109151
+ mkdirSync28(workDir, { recursive: true });
108881
109152
  const framesDir = join57(workDir, "captured-frames");
108882
- mkdirSync27(framesDir, { recursive: true });
109153
+ mkdirSync28(framesDir, { recursive: true });
108883
109154
  const fileServer = await createFileServer2({
108884
109155
  projectDir: compiledDir,
108885
109156
  compiledDir,
@@ -108958,10 +109229,10 @@ async function renderChunk(planDir, chunkIndex, outputChunkPath) {
108958
109229
  const effectiveBitrate = encoder.crf != null ? void 0 : encoder.bitrate;
108959
109230
  const videoOnlyPath = outputChunkPath;
108960
109231
  if (isPngSequence) {
108961
- if (!existsSync51(outputChunkPath)) mkdirSync27(outputChunkPath, { recursive: true });
109232
+ if (!existsSync51(outputChunkPath)) mkdirSync28(outputChunkPath, { recursive: true });
108962
109233
  } else {
108963
109234
  const outDir = join57(outputChunkPath, "..");
108964
- if (!existsSync51(outDir)) mkdirSync27(outDir, { recursive: true });
109235
+ if (!existsSync51(outDir)) mkdirSync28(outDir, { recursive: true });
108965
109236
  }
108966
109237
  const encodeStarted = Date.now();
108967
109238
  await runEncodeStage({
@@ -109400,11 +109671,11 @@ var init_audioPadTrim = __esm({
109400
109671
  import {
109401
109672
  cpSync as cpSync4,
109402
109673
  existsSync as existsSync53,
109403
- mkdirSync as mkdirSync28,
109674
+ mkdirSync as mkdirSync29,
109404
109675
  readFileSync as readFileSync31,
109405
109676
  readdirSync as readdirSync19,
109406
109677
  rmSync as rmSync16,
109407
- statSync as statSync16,
109678
+ statSync as statSync17,
109408
109679
  writeFileSync as writeFileSync18
109409
109680
  } from "fs";
109410
109681
  import { dirname as dirname23, join as join58 } from "path";
@@ -109437,11 +109708,11 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
109437
109708
  return mergePngFrameDirs(chunkPaths, outputPath, plan2.totalFrames, audioPath, start);
109438
109709
  }
109439
109710
  if (!existsSync53(dirname23(outputPath))) {
109440
- mkdirSync28(dirname23(outputPath), { recursive: true });
109711
+ mkdirSync29(dirname23(outputPath), { recursive: true });
109441
109712
  }
109442
109713
  const workDir = `${outputPath}.assemble-work`;
109443
109714
  if (existsSync53(workDir)) rmSync16(workDir, { recursive: true, force: true });
109444
- mkdirSync28(workDir, { recursive: true });
109715
+ mkdirSync29(workDir, { recursive: true });
109445
109716
  try {
109446
109717
  const concatOutputPath = join58(workDir, `concat.${plan2.dimensions.format}`);
109447
109718
  const fpsArg = fpsToFfmpegArg({
@@ -109586,7 +109857,7 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
109586
109857
  });
109587
109858
  }
109588
109859
  }
109589
- const fileSize = existsSync53(outputPath) ? statSync16(outputPath).size : 0;
109860
+ const fileSize = existsSync53(outputPath) ? statSync17(outputPath).size : 0;
109590
109861
  return {
109591
109862
  outputPath,
109592
109863
  durationMs: Date.now() - start,
@@ -109596,10 +109867,10 @@ async function assemble(planDir, chunkPaths, audioPath, outputPath, options) {
109596
109867
  }
109597
109868
  function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, startTimeMs) {
109598
109869
  if (existsSync53(outputPath)) rmSync16(outputPath, { recursive: true, force: true });
109599
- mkdirSync28(outputPath, { recursive: true });
109870
+ mkdirSync29(outputPath, { recursive: true });
109600
109871
  let globalIdx = 0;
109601
109872
  for (const chunkDir of chunkPaths) {
109602
- if (!statSync16(chunkDir).isDirectory()) {
109873
+ if (!statSync17(chunkDir).isDirectory()) {
109603
109874
  throw new Error(
109604
109875
  `[assemble] png-sequence chunk must be a directory: ${chunkDir} (got a file)`
109605
109876
  );
@@ -109626,7 +109897,7 @@ function mergePngFrameDirs(chunkPaths, outputPath, totalFrames, audioPath, start
109626
109897
  let fileSize = 0;
109627
109898
  for (const name of readdirSync19(outputPath)) {
109628
109899
  try {
109629
- fileSize += statSync16(join58(outputPath, name)).size;
109900
+ fileSize += statSync17(join58(outputPath, name)).size;
109630
109901
  } catch {
109631
109902
  }
109632
109903
  }
@@ -109740,7 +110011,7 @@ __export(studioServer_exports, {
109740
110011
  });
109741
110012
  import { Hono as Hono5 } from "hono";
109742
110013
  import { streamSSE as streamSSE3 } from "hono/streaming";
109743
- import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as statSync17 } from "fs";
110014
+ import { existsSync as existsSync54, readFileSync as readFileSync34, writeFileSync as writeFileSync19, statSync as statSync18 } from "fs";
109744
110015
  import { resolve as resolve30, join as join60, basename as basename8 } from "path";
109745
110016
  function resolveDistDir() {
109746
110017
  return resolveStudioBundle().dir;
@@ -110196,7 +110467,7 @@ function createStudioServer(options) {
110196
110467
  });
110197
110468
  const serveStudioStaticFile = (c3) => {
110198
110469
  const filePath = resolve30(studioDir, c3.req.path.slice(1));
110199
- if (!existsSync54(filePath) || !statSync17(filePath).isFile()) return c3.text("not found", 404);
110470
+ if (!existsSync54(filePath) || !statSync18(filePath).isFile()) return c3.text("not found", 404);
110200
110471
  const content = readFileSync34(filePath);
110201
110472
  return new Response(content, {
110202
110473
  headers: { "Content-Type": getMimeType(filePath), "Cache-Control": "no-store" }
@@ -110307,7 +110578,7 @@ __export(preview_exports, {
110307
110578
  examples: () => examples2
110308
110579
  });
110309
110580
  import { spawn as spawn12 } from "child_process";
110310
- import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as mkdirSync29 } from "fs";
110581
+ import { existsSync as existsSync55, lstatSync as lstatSync3, symlinkSync as symlinkSync3, unlinkSync as unlinkSync4, readlinkSync, mkdirSync as mkdirSync30 } from "fs";
110311
110582
  import { resolve as resolve31, dirname as dirname24, basename as basename9, join as join61 } from "path";
110312
110583
  import { fileURLToPath as fileURLToPath8 } from "url";
110313
110584
  import { createRequire as createRequire2 } from "module";
@@ -110615,7 +110886,7 @@ function printStudioSummary(projectName, url, opts = {}) {
110615
110886
  }
110616
110887
  function linkProjectIntoStudioData(dir, projectsDir, projectName) {
110617
110888
  const symlinkPath = join61(projectsDir, projectName);
110618
- mkdirSync29(projectsDir, { recursive: true });
110889
+ mkdirSync30(projectsDir, { recursive: true });
110619
110890
  let createdSymlink = false;
110620
110891
  if (dir !== symlinkPath) {
110621
110892
  if (existsSync55(symlinkPath)) {
@@ -111062,7 +111333,7 @@ __export(init_exports, {
111062
111333
  });
111063
111334
  import {
111064
111335
  existsSync as existsSync56,
111065
- mkdirSync as mkdirSync30,
111336
+ mkdirSync as mkdirSync31,
111066
111337
  copyFileSync as copyFileSync6,
111067
111338
  cpSync as cpSync5,
111068
111339
  writeFileSync as writeFileSync20,
@@ -111401,7 +111672,7 @@ function applyResolutionPreset(destDir, resolution) {
111401
111672
  }
111402
111673
  }
111403
111674
  async function scaffoldProject(destDir, name, templateId, localVideoName, durationSeconds, tailwind = false, resolution) {
111404
- mkdirSync30(destDir, { recursive: true });
111675
+ mkdirSync31(destDir, { recursive: true });
111405
111676
  const templateDir = getStaticTemplateDir(templateId);
111406
111677
  if (existsSync56(join63(templateDir, "index.html"))) {
111407
111678
  cpSync5(templateDir, destDir, { recursive: true });
@@ -111643,7 +111914,7 @@ var init_init = __esm({
111643
111914
  console.error(c.error(`Audio file not found: ${audioFlag}`));
111644
111915
  process.exit(1);
111645
111916
  }
111646
- mkdirSync30(destDir2, { recursive: true });
111917
+ mkdirSync31(destDir2, { recursive: true });
111647
111918
  let localVideoName2;
111648
111919
  let videoDuration2;
111649
111920
  let sourceFilePath2;
@@ -111785,7 +112056,7 @@ var init_init = __esm({
111785
112056
  me("Setup cancelled.");
111786
112057
  process.exit(1);
111787
112058
  }
111788
- mkdirSync30(destDir, { recursive: true });
112059
+ mkdirSync31(destDir, { recursive: true });
111789
112060
  sourceFilePath = videoPath;
111790
112061
  const result = await handleVideoFile(videoPath, destDir, true);
111791
112062
  localVideoName = result.localVideoName;
@@ -111797,7 +112068,7 @@ var init_init = __esm({
111797
112068
  me("Setup cancelled.");
111798
112069
  process.exit(1);
111799
112070
  }
111800
- mkdirSync30(destDir, { recursive: true });
112071
+ mkdirSync31(destDir, { recursive: true });
111801
112072
  sourceFilePath = audioPath;
111802
112073
  copyFileSync6(audioPath, resolve33(destDir, basename10(audioPath)));
111803
112074
  R2.info(`Audio copied to ${c.accent(basename10(audioPath))}`);
@@ -112667,18 +112938,18 @@ function buildPresentPage(projectName, islandJson) {
112667
112938
  <meta charset="UTF-8" />
112668
112939
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
112669
112940
  <title>${escHtml(projectName)} \u2014 Presenter</title>
112941
+ <script>
112942
+ // Retitle the audience tab so the two tabs are distinguishable in the
112943
+ // browser tab strip and in Meet's "Share a tab" picker.
112944
+ if (new URLSearchParams(location.search).get("mode") === "audience") {
112945
+ document.title = ${JSON.stringify(projectName).replace(/</g, "\\u003c")} + " \u2014 Audience";
112946
+ }
112947
+ </script>
112670
112948
  <style>
112671
112949
  * { margin: 0; padding: 0; box-sizing: border-box; }
112672
112950
  html, body { height: 100%; background: #0a0a0a; overflow: hidden; }
112673
112951
  hyperframes-slideshow { display: block; position: relative; width: 100vw; height: 100vh; }
112674
112952
  hyperframes-player { position: absolute; inset: 0; }
112675
- #present-btn {
112676
- position: fixed; top: 18px; right: 18px; z-index: 99999;
112677
- font: 600 14px/1 system-ui, sans-serif; color: #0d1321;
112678
- background: #f4b740; border: none; border-radius: 999px;
112679
- padding: 11px 18px; cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,.45);
112680
- }
112681
- #present-btn:hover { background: #ffcb5c; }
112682
112953
  </style>
112683
112954
  <script src="/player.js"></script>
112684
112955
  <script src="/slideshow.js"></script>
@@ -112690,28 +112961,8 @@ function buildPresentPage(projectName, islandJson) {
112690
112961
  ${islandJson}
112691
112962
  </script>
112692
112963
  </hyperframes-slideshow>
112693
- <button id="present-btn" type="button">\u25B6&nbsp; Present</button>
112694
- <script>
112695
- (function () {
112696
- // The audience window loads this same page with ?mode=audience; it must not
112697
- // show the Present button or it would recurse opening windows.
112698
- var isAudience = new URLSearchParams(location.search).get("mode") === "audience";
112699
- var btn = document.getElementById("present-btn");
112700
- if (isAudience) { if (btn) btn.remove(); return; }
112701
- function present() {
112702
- var ss = document.querySelector("hyperframes-slideshow");
112703
- if (ss && typeof ss.present === "function") {
112704
- ss.present();
112705
- if (btn) btn.style.display = "none";
112706
- }
112707
- }
112708
- if (btn) btn.addEventListener("click", present);
112709
- // 'P' opens presenter mode (window.open needs a user gesture, so a key/click).
112710
- window.addEventListener("keydown", function (e) {
112711
- if ((e.key === "p" || e.key === "P") && !e.metaKey && !e.ctrlKey) present();
112712
- });
112713
- })();
112714
- </script>
112964
+ <!-- Present CTA lives in the component's nav cluster (data-hf-present, plus
112965
+ the P key) \u2014 no page-level button, or we'd render two Present CTAs. -->
112715
112966
  <script>
112716
112967
  // Sound effects play HERE, in the parent document. The composition runs in the
112717
112968
  // player's iframe, which is autoplay-blocked without its own user gesture; the
@@ -112880,6 +113131,15 @@ var init_present = __esm({
112880
113131
  return;
112881
113132
  }
112882
113133
  const islandJson = islandMatch[1].trim();
113134
+ try {
113135
+ JSON.parse(islandJson);
113136
+ } catch (err) {
113137
+ R2.error(
113138
+ `Slideshow island in ${project.indexPath} is not valid JSON: ${err.message}`
113139
+ );
113140
+ process.exitCode = 1;
113141
+ return;
113142
+ }
112883
113143
  const { Hono: Hono6 } = await import("hono");
112884
113144
  const { createAdaptorServer } = await import("@hono/node-server");
112885
113145
  const { isSafePath: isSafePath2 } = await Promise.resolve().then(() => (init_studio_api(), studio_api_exports));
@@ -112921,7 +113181,15 @@ var init_present = __esm({
112921
113181
  console.log(` ${c.dim("Deck")} ${c.accent(project.name)}`);
112922
113182
  console.log(` ${c.dim("Present")} ${c.accent(url)}`);
112923
113183
  console.log();
112924
- console.log(` ${c.dim("Click \u25B6 Present (or press P) to open the audience display.")}`);
113184
+ console.log(
113185
+ ` ${c.dim("Click the Present control (or press P) to open the audience display.")}`
113186
+ );
113187
+ console.log(
113188
+ ` ${c.dim('Google Meet: share the AUDIENCE tab ("Share screen \u2192 A tab"), not a window or your whole screen.')}`
113189
+ );
113190
+ console.log(
113191
+ ` ${c.dim("Zoom desktop: drag the audience tab into its own window and share that window (keep it at least partly visible).")}`
113192
+ );
112925
113193
  console.log(` ${c.dim("Press Ctrl+C to stop")}`);
112926
113194
  console.log();
112927
113195
  if (args.open) {
@@ -112940,7 +113208,7 @@ var init_present = __esm({
112940
113208
 
112941
113209
  // src/utils/publishProject.ts
112942
113210
  import { basename as basename11, dirname as dirname27, join as join64, posix as posix4, relative as relative13, resolve as resolve39 } from "path";
112943
- import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as statSync18 } from "fs";
113211
+ import { existsSync as existsSync61, readdirSync as readdirSync23, readFileSync as readFileSync38, statSync as statSync19 } from "fs";
112944
113212
  import AdmZip from "adm-zip";
112945
113213
  function isRecord3(value) {
112946
113214
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -113047,7 +113315,7 @@ function collectProjectFiles(rootDir, currentDir, paths) {
113047
113315
  collectProjectFiles(rootDir, absolutePath, paths);
113048
113316
  continue;
113049
113317
  }
113050
- if (!statSync18(absolutePath).isFile()) continue;
113318
+ if (!statSync19(absolutePath).isFile()) continue;
113051
113319
  paths.push(relativePath);
113052
113320
  }
113053
113321
  }
@@ -113074,7 +113342,7 @@ function tryResolveExternal(ctx, rawPath, referrerAbsDir) {
113074
113342
  const absPath = resolve39(referrerAbsDir, rawPath);
113075
113343
  if (isPathInside(absPath, ctx.absProjectDir)) return null;
113076
113344
  try {
113077
- if (!existsSync61(absPath) || !statSync18(absPath).isFile()) return null;
113345
+ if (!existsSync61(absPath) || !statSync19(absPath).isFile()) return null;
113078
113346
  } catch {
113079
113347
  return null;
113080
113348
  }
@@ -114103,7 +114371,7 @@ __export(batchRender_exports, {
114103
114371
  resolveOutputTemplate: () => resolveOutputTemplate,
114104
114372
  runBatchRender: () => runBatchRender
114105
114373
  });
114106
- import { mkdirSync as mkdirSync31, readFileSync as readFileSync40, writeFileSync as writeFileSync21 } from "fs";
114374
+ import { mkdirSync as mkdirSync33, readFileSync as readFileSync40, writeFileSync as writeFileSync21 } from "fs";
114107
114375
  import { dirname as dirname28, join as join66, resolve as resolve43, sep as sep8 } from "path";
114108
114376
  function isRecord4(value) {
114109
114377
  return value !== null && typeof value === "object" && !Array.isArray(value);
@@ -114288,7 +114556,7 @@ function summarizeManifest(manifest) {
114288
114556
  }
114289
114557
  function writeManifest(manifest) {
114290
114558
  summarizeManifest(manifest);
114291
- mkdirSync31(dirname28(manifest.manifestPath), { recursive: true });
114559
+ mkdirSync33(dirname28(manifest.manifestPath), { recursive: true });
114292
114560
  writeFileSync21(manifest.manifestPath, JSON.stringify(manifest, null, 2) + "\n", "utf8");
114293
114561
  }
114294
114562
  function emitJsonEvent(event, json) {
@@ -114310,7 +114578,7 @@ async function renderBatchRow(row, manifest, options) {
114310
114578
  console.log(c.dim(`Batch row ${row.index}: ${row.outputPath}`));
114311
114579
  }
114312
114580
  try {
114313
- mkdirSync31(dirname28(row.outputPath), { recursive: true });
114581
+ mkdirSync33(dirname28(row.outputPath), { recursive: true });
114314
114582
  const result = await options.renderOne(row);
114315
114583
  manifestRow.status = "completed";
114316
114584
  manifestRow.durationMs = result.durationMs ?? null;
@@ -114451,7 +114719,7 @@ __export(render_exports, {
114451
114719
  renderLocal: () => renderLocal,
114452
114720
  resolveBrowserGpuForCli: () => resolveBrowserGpuForCli
114453
114721
  });
114454
- import { mkdirSync as mkdirSync33, readdirSync as readdirSync24, readFileSync as readFileSync41, statSync as statSync19, writeFileSync as writeFileSync23, rmSync as rmSync17 } from "fs";
114722
+ import { mkdirSync as mkdirSync34, readdirSync as readdirSync24, readFileSync as readFileSync41, statSync as statSync20, writeFileSync as writeFileSync23, rmSync as rmSync17 } from "fs";
114455
114723
  import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir5 } from "os";
114456
114724
  import { resolve as resolve44, dirname as dirname29, join as join67, basename as basename12 } from "path";
114457
114725
  import { execFileSync as execFileSync9, spawn as spawn14 } from "child_process";
@@ -114506,7 +114774,8 @@ async function checkRenderResolutionPreflight(compositionHtml, outputResolution,
114506
114774
  alphaRequested: modes.alphaRequested,
114507
114775
  hdrRequested: modes.hdrRequested
114508
114776
  });
114509
- return compat.ok ? void 0 : compat.message;
114777
+ if (compat.ok || !compat.message || !compat.kind) return void 0;
114778
+ return { message: compat.message, kind: compat.kind };
114510
114779
  }
114511
114780
  function dockerImageTag(version2) {
114512
114781
  return `${DOCKER_IMAGE_PREFIX}:${version2}`;
@@ -114516,7 +114785,7 @@ function resolveDockerfilePath() {
114516
114785
  const devPath = resolve44(__dirname, "..", "src", "docker", "Dockerfile.render");
114517
114786
  for (const p2 of [builtPath, devPath]) {
114518
114787
  try {
114519
- statSync19(p2);
114788
+ statSync20(p2);
114520
114789
  return p2;
114521
114790
  } catch {
114522
114791
  continue;
@@ -114545,7 +114814,7 @@ function ensureDockerImage(version2, platform10, quiet) {
114545
114814
  if (!quiet) console.log(c.dim(` Building Docker image: ${tag} (${platform10})...`));
114546
114815
  const dockerfilePath = resolveDockerfilePath();
114547
114816
  const tmpDir = join67(tmpdir5(), `hyperframes-docker-${Date.now()}`);
114548
- mkdirSync33(tmpDir, { recursive: true });
114817
+ mkdirSync34(tmpDir, { recursive: true });
114549
114818
  writeFileSync23(join67(tmpDir, "Dockerfile"), readFileSync41(dockerfilePath));
114550
114819
  const targetArch = platform10 === "linux/arm64" ? "arm64" : "amd64";
114551
114820
  try {
@@ -114943,14 +115212,14 @@ function printRenderComplete(outputPath, elapsedMs, quiet, outputDurationSeconds
114943
115212
  let fileSize = "unknown";
114944
115213
  let isDirectory = false;
114945
115214
  try {
114946
- const stat3 = statSync19(outputPath);
115215
+ const stat3 = statSync20(outputPath);
114947
115216
  isDirectory = stat3.isDirectory();
114948
115217
  if (stat3.isDirectory()) {
114949
115218
  let total = 0;
114950
115219
  for (const entry of readdirSync24(outputPath, { withFileTypes: true })) {
114951
115220
  if (!entry.isFile()) continue;
114952
115221
  try {
114953
- total += statSync19(join67(outputPath, entry.name)).size;
115222
+ total += statSync20(join67(outputPath, entry.name)).size;
114954
115223
  } catch {
114955
115224
  }
114956
115225
  }
@@ -115370,7 +115639,7 @@ var init_render = __esm({
115370
115639
  const timePart = now.toTimeString().slice(0, 8).replace(/:/g, "-");
115371
115640
  const batchOutputTemplate = args.output ? args.output : join67(rendersDir, `${project.name}_${datePart}_${timePart}_{index}${ext}`);
115372
115641
  const outputPath = args.output ? resolve44(args.output) : join67(rendersDir, `${project.name}_${datePart}_${timePart}${ext}`);
115373
- if (!batchPath) mkdirSync33(dirname29(outputPath), { recursive: true });
115642
+ if (!batchPath) mkdirSync34(dirname29(outputPath), { recursive: true });
115374
115643
  const useDocker = args.docker ?? false;
115375
115644
  const useGpu = args.gpu ?? false;
115376
115645
  const browserGpuArg = args["browser-gpu"];
@@ -115428,7 +115697,7 @@ var init_render = __esm({
115428
115697
  console.log(c.warn(" GIF output is capped at 30fps. Use --fps 15 for smaller files."));
115429
115698
  }
115430
115699
  const pageNavigationTimeoutMs = resolveBrowserTimeoutMsArg(args["browser-timeout"]);
115431
- const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync19);
115700
+ const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync20);
115432
115701
  let batchModule;
115433
115702
  let preparedBatch;
115434
115703
  if (batchPath) {
@@ -115551,7 +115820,8 @@ var init_render = __esm({
115551
115820
  } catch {
115552
115821
  }
115553
115822
  if (resolutionIssue) {
115554
- errorBox("Output resolution incompatible", resolutionIssue);
115823
+ trackRenderPreflightRejected({ kind: resolutionIssue.kind });
115824
+ errorBox("Output resolution incompatible", resolutionIssue.message);
115555
115825
  process.exit(1);
115556
115826
  }
115557
115827
  }
@@ -115980,7 +116250,7 @@ __export(beats_exports, {
115980
116250
  default: () => beats_default,
115981
116251
  examples: () => examples11
115982
116252
  });
115983
- import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as mkdirSync34, writeFileSync as writeFileSync24 } from "fs";
116253
+ import { existsSync as existsSync66, readFileSync as readFileSync44, mkdirSync as mkdirSync35, writeFileSync as writeFileSync24 } from "fs";
115984
116254
  import { resolve as resolve45, join as join69, dirname as dirname31 } from "path";
115985
116255
  function fail(message) {
115986
116256
  console.error(c.error(message));
@@ -116052,7 +116322,7 @@ var init_beats2 = __esm({
116052
116322
  fail(`No beats detected in ${rel} \u2014 nothing written. (Track may be silent/ambient.)`);
116053
116323
  }
116054
116324
  const outPath = join69(project.dir, "beats", `${rel}.json`);
116055
- mkdirSync34(dirname31(outPath), { recursive: true });
116325
+ mkdirSync35(dirname31(outPath), { recursive: true });
116056
116326
  writeFileSync24(outPath, serializeBeats(result.beatTimes, result.beatStrengths, rel));
116057
116327
  report(`beats/${rel}.json`, result, Boolean(args.json));
116058
116328
  }
@@ -116066,10 +116336,10 @@ __export(staticProjectServer_exports, {
116066
116336
  serveStaticProjectHtml: () => serveStaticProjectHtml
116067
116337
  });
116068
116338
  import { createServer } from "http";
116069
- import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as statSync20 } from "fs";
116339
+ import { createReadStream as createReadStream3, existsSync as existsSync67, statSync as statSync21 } from "fs";
116070
116340
  import { isAbsolute as isAbsolute13, relative as relative14, resolve as resolve46 } from "path";
116071
116341
  function serveFileWithRange(filePath, rangeHeader, res) {
116072
- const size = statSync20(filePath).size;
116342
+ const size = statSync21(filePath).size;
116073
116343
  const headers = {
116074
116344
  "Content-Type": getMimeType(filePath),
116075
116345
  "Accept-Ranges": "bytes"
@@ -119268,7 +119538,7 @@ __export(keyframes_exports, {
119268
119538
  examples: () => examples14,
119269
119539
  surfaceComposition: () => surfaceComposition
119270
119540
  });
119271
- import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as statSync21 } from "fs";
119541
+ import { existsSync as existsSync70, readFileSync as readFileSync47, statSync as statSync23 } from "fs";
119272
119542
  import { resolve as resolve47, dirname as dirname33, basename as basename14 } from "path";
119273
119543
  function inlineScriptText(html) {
119274
119544
  const doc = new DOMParser().parseFromString(html, "text/html");
@@ -119750,7 +120020,7 @@ function resolveScope(args) {
119750
120020
  let comps;
119751
120021
  let projectName;
119752
120022
  let projectDir;
119753
- if (raw && raw.endsWith(".html") && existsSync70(raw) && statSync21(raw).isFile()) {
120023
+ if (raw && raw.endsWith(".html") && existsSync70(raw) && statSync23(raw).isFile()) {
119754
120024
  comps = [surfaceComposition(readFileSync47(raw, "utf-8"), basename14(raw), raw)];
119755
120025
  projectName = basename14(raw);
119756
120026
  projectDir = dirname33(raw);
@@ -119960,7 +120230,7 @@ __export(info_exports, {
119960
120230
  examples: () => examples15,
119961
120231
  orientation: () => orientation
119962
120232
  });
119963
- import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as statSync23 } from "fs";
120233
+ import { readFileSync as readFileSync48, readdirSync as readdirSync26, statSync as statSync24 } from "fs";
119964
120234
  import { join as join73 } from "path";
119965
120235
  function orientation(width, height) {
119966
120236
  if (width > height) return "landscape";
@@ -119979,7 +120249,7 @@ function totalSize(dir) {
119979
120249
  if (entry.isDirectory()) {
119980
120250
  total += totalSize(path2);
119981
120251
  } else {
119982
- total += statSync23(path2).size;
120252
+ total += statSync24(path2).size;
119983
120253
  }
119984
120254
  }
119985
120255
  return total;
@@ -120242,7 +120512,7 @@ __export(benchmark_exports, {
120242
120512
  default: () => benchmark_default,
120243
120513
  examples: () => examples17
120244
120514
  });
120245
- import { existsSync as existsSync73, statSync as statSync24 } from "fs";
120515
+ import { existsSync as existsSync73, statSync as statSync25 } from "fs";
120246
120516
  import { resolve as resolve49, join as join74 } from "path";
120247
120517
  var examples17, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
120248
120518
  var init_benchmark = __esm({
@@ -120336,7 +120606,7 @@ var init_benchmark = __esm({
120336
120606
  const elapsedMs = Date.now() - startTime;
120337
120607
  let fileSize = null;
120338
120608
  if (existsSync73(outputPath)) {
120339
- const stat3 = statSync24(outputPath);
120609
+ const stat3 = statSync25(outputPath);
120340
120610
  fileSize = stat3.size;
120341
120611
  }
120342
120612
  runs.push({ elapsedMs, fileSize });
@@ -120593,7 +120863,7 @@ __export(manager_exports3, {
120593
120863
  modelPath: () => modelPath,
120594
120864
  selectProviders: () => selectProviders
120595
120865
  });
120596
- import { existsSync as existsSync74, mkdirSync as mkdirSync35 } from "fs";
120866
+ import { existsSync as existsSync74, mkdirSync as mkdirSync36 } from "fs";
120597
120867
  import { homedir as homedir11, platform as platform8, arch } from "os";
120598
120868
  import { join as join75 } from "path";
120599
120869
  function isDevice(value) {
@@ -120640,7 +120910,7 @@ function modelPath(model = DEFAULT_MODEL2) {
120640
120910
  async function ensureModel2(model = DEFAULT_MODEL2, options) {
120641
120911
  const dest = modelPath(model);
120642
120912
  if (existsSync74(dest)) return dest;
120643
- mkdirSync35(MODELS_DIR2, { recursive: true });
120913
+ mkdirSync36(MODELS_DIR2, { recursive: true });
120644
120914
  options?.onProgress?.(`Downloading ${model} weights (~168 MB)...`);
120645
120915
  await downloadFile(MODEL_URLS[model], dest);
120646
120916
  if (!existsSync74(dest)) {
@@ -121592,7 +121862,7 @@ var init_transcribe2 = __esm({
121592
121862
  });
121593
121863
 
121594
121864
  // src/tts/manager.ts
121595
- import { existsSync as existsSync77, mkdirSync as mkdirSync36 } from "fs";
121865
+ import { existsSync as existsSync77, mkdirSync as mkdirSync37 } from "fs";
121596
121866
  import { homedir as homedir12 } from "os";
121597
121867
  import { join as join77 } from "path";
121598
121868
  function inferLangFromVoiceId(voiceId) {
@@ -121611,7 +121881,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
121611
121881
  `Unknown TTS model: ${model}. Available: ${Object.keys(MODEL_URLS2).join(", ")}`
121612
121882
  );
121613
121883
  }
121614
- mkdirSync36(MODELS_DIR3, { recursive: true });
121884
+ mkdirSync37(MODELS_DIR3, { recursive: true });
121615
121885
  options?.onProgress?.(`Downloading TTS model ${model} (~311 MB)...`);
121616
121886
  await downloadFile(url, modelPath2);
121617
121887
  if (!existsSync77(modelPath2)) {
@@ -121622,7 +121892,7 @@ async function ensureModel3(model = DEFAULT_MODEL3, options) {
121622
121892
  async function ensureVoices(options) {
121623
121893
  const voicesPath = join77(VOICES_DIR, "voices-v1.0.bin");
121624
121894
  if (existsSync77(voicesPath)) return voicesPath;
121625
- mkdirSync36(VOICES_DIR, { recursive: true });
121895
+ mkdirSync37(VOICES_DIR, { recursive: true });
121626
121896
  options?.onProgress?.("Downloading voice data (~27 MB)...");
121627
121897
  await downloadFile(VOICES_URL, voicesPath);
121628
121898
  if (!existsSync77(voicesPath)) {
@@ -121754,12 +122024,12 @@ __export(synthesize_exports, {
121754
122024
  synthesize: () => synthesize
121755
122025
  });
121756
122026
  import { execFileSync as execFileSync11 } from "child_process";
121757
- import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as mkdirSync37, readdirSync as readdirSync27, unlinkSync as unlinkSync5 } from "fs";
122027
+ import { existsSync as existsSync78, writeFileSync as writeFileSync27, mkdirSync as mkdirSync38, readdirSync as readdirSync27, unlinkSync as unlinkSync5 } from "fs";
121758
122028
  import { join as join78, dirname as dirname36, basename as basename15 } from "path";
121759
122029
  import { homedir as homedir13 } from "os";
121760
122030
  function ensureSynthScript() {
121761
122031
  if (!existsSync78(SCRIPT_PATH)) {
121762
- mkdirSync37(SCRIPT_DIR, { recursive: true });
122032
+ mkdirSync38(SCRIPT_DIR, { recursive: true });
121763
122033
  writeFileSync27(SCRIPT_PATH, SYNTH_SCRIPT);
121764
122034
  const currentName = basename15(SCRIPT_PATH);
121765
122035
  try {
@@ -121800,7 +122070,7 @@ async function synthesize(text2, outputPath, options) {
121800
122070
  ensureVoices({ onProgress: options?.onProgress })
121801
122071
  ]);
121802
122072
  const scriptPath = ensureSynthScript();
121803
- mkdirSync37(dirname36(outputPath), { recursive: true });
122073
+ mkdirSync38(dirname36(outputPath), { recursive: true });
121804
122074
  options?.onProgress?.(`Generating speech with voice ${voice} (${lang})...`);
121805
122075
  try {
121806
122076
  const stdout2 = execFileSync11(
@@ -123020,6 +123290,7 @@ var validate_exports = {};
123020
123290
  __export(validate_exports, {
123021
123291
  default: () => validate_default,
123022
123292
  extractCompositionErrorsFromLint: () => extractCompositionErrorsFromLint,
123293
+ raceMediaReady: () => raceMediaReady,
123023
123294
  shouldIgnoreRequestFailure: () => shouldIgnoreRequestFailure
123024
123295
  });
123025
123296
  import { existsSync as existsSync81, readFileSync as readFileSync53 } from "fs";
@@ -123056,13 +123327,49 @@ async function seekTo2(page, time) {
123056
123327
  }, time);
123057
123328
  await new Promise((r2) => setTimeout(r2, SEEK_SETTLE_MS2));
123058
123329
  }
123059
- async function auditClipDurations(page, analyzeClipMediaFit2) {
123060
- const clips = await page.evaluate(() => {
123330
+ function raceMediaReady(el, deadlineMs) {
123331
+ if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
123332
+ return new Promise((resolve62) => {
123333
+ const onReady = () => {
123334
+ el.removeEventListener("loadedmetadata", onReady);
123335
+ el.removeEventListener("error", onReady);
123336
+ clearTimeout(timer);
123337
+ resolve62();
123338
+ };
123339
+ el.addEventListener("loadedmetadata", onReady, { once: true });
123340
+ el.addEventListener("error", onReady, { once: true });
123341
+ const timer = setTimeout(onReady, Math.max(0, deadlineMs - Date.now()));
123342
+ });
123343
+ }
123344
+ async function auditClipDurations(page, analyzeClipMediaFit2, extraWaitMs) {
123345
+ const clips = await page.evaluate(async (maxWaitMs) => {
123346
+ const nodes = Array.from(
123347
+ document.querySelectorAll("video[data-duration], audio[data-duration]")
123348
+ );
123349
+ const deadline = Date.now() + maxWaitMs;
123350
+ await Promise.all(
123351
+ nodes.map((el) => {
123352
+ if (Number.isFinite(el.duration) && el.duration > 0) return Promise.resolve();
123353
+ return new Promise((resolve62) => {
123354
+ const cleanup = () => {
123355
+ el.removeEventListener("loadedmetadata", onReady);
123356
+ el.removeEventListener("error", onReady);
123357
+ clearTimeout(timer);
123358
+ };
123359
+ const onReady = () => {
123360
+ cleanup();
123361
+ resolve62();
123362
+ };
123363
+ el.addEventListener("loadedmetadata", onReady, { once: true });
123364
+ el.addEventListener("error", onReady, { once: true });
123365
+ const timer = setTimeout(onReady, Math.max(0, deadline - Date.now()));
123366
+ });
123367
+ })
123368
+ );
123061
123369
  const rows = [];
123062
- document.querySelectorAll("video[data-duration], audio[data-duration]").forEach((node) => {
123063
- const el = node;
123370
+ for (const el of nodes) {
123064
123371
  const slot = parseFloat(el.getAttribute("data-duration") ?? "");
123065
- if (!(slot > 0)) return;
123372
+ if (!(slot > 0)) continue;
123066
123373
  rows.push({
123067
123374
  id: el.id || el.getAttribute("src") || `(${el.tagName.toLowerCase()})`,
123068
123375
  kind: el.tagName === "AUDIO" ? "Audio" : "Video",
@@ -123071,9 +123378,9 @@ async function auditClipDurations(page, analyzeClipMediaFit2) {
123071
123378
  duration: el.duration,
123072
123379
  loop: el.loop || el.getAttribute("data-loop") === "true"
123073
123380
  });
123074
- });
123381
+ }
123075
123382
  return rows;
123076
- });
123383
+ }, extraWaitMs);
123077
123384
  const warnings = [];
123078
123385
  const unreadable = [];
123079
123386
  for (const clip of clips) {
@@ -123192,7 +123499,7 @@ async function validateInBrowser(project, opts) {
123192
123499
  });
123193
123500
  await page.goto(server.url, { waitUntil: "domcontentloaded", timeout: 1e4 });
123194
123501
  await new Promise((r2) => setTimeout(r2, opts.timeout ?? 3e3));
123195
- for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2)) {
123502
+ for (const w3 of await auditClipDurations(page, analyzeClipMediaFit2, opts.timeout ?? 3e3)) {
123196
123503
  warnings.push(w3);
123197
123504
  }
123198
123505
  if (opts.contrast) {
@@ -129694,7 +130001,7 @@ var require_node_domexception = __commonJS({
129694
130001
  });
129695
130002
 
129696
130003
  // ../../node_modules/.bun/fetch-blob@3.2.0/node_modules/fetch-blob/from.js
129697
- import { statSync as statSync25, createReadStream as createReadStream4, promises as fs2 } from "fs";
130004
+ import { statSync as statSync26, createReadStream as createReadStream4, promises as fs2 } from "fs";
129698
130005
  import { basename as basename17 } from "path";
129699
130006
  var import_node_domexception, stat, blobFromSync, blobFrom, fileFrom, fileFromSync, fromBlob, fromFile, BlobDataItem;
129700
130007
  var init_from = __esm({
@@ -129704,10 +130011,10 @@ var init_from = __esm({
129704
130011
  init_file();
129705
130012
  init_fetch_blob();
129706
130013
  ({ stat } = fs2);
129707
- blobFromSync = (path2, type) => fromBlob(statSync25(path2), path2, type);
130014
+ blobFromSync = (path2, type) => fromBlob(statSync26(path2), path2, type);
129708
130015
  blobFrom = (path2, type) => stat(path2).then((stat3) => fromBlob(stat3, path2, type));
129709
130016
  fileFrom = (path2, type) => stat(path2).then((stat3) => fromFile(stat3, path2, type));
129710
- fileFromSync = (path2, type) => fromFile(statSync25(path2), path2, type);
130017
+ fileFromSync = (path2, type) => fromFile(statSync26(path2), path2, type);
129711
130018
  fromBlob = (stat3, path2, type = "") => new fetch_blob_default([new BlobDataItem({
129712
130019
  path: path2,
129713
130020
  size: stat3.size,
@@ -143498,7 +143805,7 @@ var require_websocket = __commonJS({
143498
143805
  var http4 = __require("http");
143499
143806
  var net2 = __require("net");
143500
143807
  var tls = __require("tls");
143501
- var { randomBytes: randomBytes4, createHash: createHash14 } = __require("crypto");
143808
+ var { randomBytes: randomBytes4, createHash: createHash15 } = __require("crypto");
143502
143809
  var { Duplex, Readable: Readable4 } = __require("stream");
143503
143810
  var { URL: URL2 } = __require("url");
143504
143811
  var PerMessageDeflate2 = require_permessage_deflate();
@@ -144158,7 +144465,7 @@ var require_websocket = __commonJS({
144158
144465
  abortHandshake(websocket, socket, "Invalid Upgrade header");
144159
144466
  return;
144160
144467
  }
144161
- const digest = createHash14("sha1").update(key2 + GUID).digest("base64");
144468
+ const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
144162
144469
  if (res.headers["sec-websocket-accept"] !== digest) {
144163
144470
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
144164
144471
  return;
@@ -144525,7 +144832,7 @@ var require_websocket_server = __commonJS({
144525
144832
  var EventEmitter = __require("events");
144526
144833
  var http4 = __require("http");
144527
144834
  var { Duplex } = __require("stream");
144528
- var { createHash: createHash14 } = __require("crypto");
144835
+ var { createHash: createHash15 } = __require("crypto");
144529
144836
  var extension2 = require_extension();
144530
144837
  var PerMessageDeflate2 = require_permessage_deflate();
144531
144838
  var subprotocol2 = require_subprotocol();
@@ -144826,7 +145133,7 @@ var require_websocket_server = __commonJS({
144826
145133
  );
144827
145134
  }
144828
145135
  if (this._state > RUNNING) return abortHandshake(socket, 503);
144829
- const digest = createHash14("sha1").update(key2 + GUID).digest("base64");
145136
+ const digest = createHash15("sha1").update(key2 + GUID).digest("base64");
144830
145137
  const headers = [
144831
145138
  "HTTP/1.1 101 Switching Protocols",
144832
145139
  "Upgrade: websocket",
@@ -155861,7 +156168,7 @@ async function uploadBlobInternal(file, uploadUrl, apiClient, httpOptions) {
155861
156168
  break;
155862
156169
  }
155863
156170
  retryCount++;
155864
- await sleep(currentDelayMs);
156171
+ await sleep2(currentDelayMs);
155865
156172
  currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
155866
156173
  }
155867
156174
  offset2 += chunkSize;
@@ -155878,7 +156185,7 @@ async function getBlobStat(file) {
155878
156185
  const fileStat = { size: file.size, type: file.type };
155879
156186
  return fileStat;
155880
156187
  }
155881
- function sleep(ms) {
156188
+ function sleep2(ms) {
155882
156189
  return new Promise((resolvePromise) => setTimeout(resolvePromise, ms));
155883
156190
  }
155884
156191
  function resolveCloudFlag(options) {
@@ -163103,7 +163410,7 @@ ${underline2}`);
163103
163410
  break;
163104
163411
  }
163105
163412
  retryCount++;
163106
- await sleep(currentDelayMs);
163413
+ await sleep2(currentDelayMs);
163107
163414
  currentDelayMs = currentDelayMs * DELAY_MULTIPLIER;
163108
163415
  }
163109
163416
  offset2 += bytesRead;
@@ -163274,7 +163581,7 @@ __export(snapshot_exports, {
163274
163581
  tailFrameTime: () => tailFrameTime
163275
163582
  });
163276
163583
  import { spawn as spawn16 } from "child_process";
163277
- import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as mkdirSync38, rmSync as rmSync18, writeFileSync as writeFileSync29 } from "fs";
163584
+ import { existsSync as existsSync84, mkdtempSync as mkdtempSync5, readFileSync as readFileSync55, mkdirSync as mkdirSync39, rmSync as rmSync18, writeFileSync as writeFileSync29 } from "fs";
163278
163585
  import { tmpdir as tmpdir6 } from "os";
163279
163586
  import { resolve as resolve55, join as join83, relative as relative15, isAbsolute as isAbsolute14, basename as basename19 } from "path";
163280
163587
  function orbitStageSource() {
@@ -163476,7 +163783,7 @@ async function captureSnapshots(projectDir, opts) {
163476
163783
  }
163477
163784
  const cameraExpr = opts.angle && (opts.angle.yaw !== 0 || opts.angle.pitch !== 0) ? `(${orbitStageSource()})(${JSON.stringify(opts.angle)})` : null;
163478
163785
  const snapshotDir = opts.outputDir ?? join83(projectDir, "snapshots");
163479
- mkdirSync38(snapshotDir, { recursive: true });
163786
+ mkdirSync39(snapshotDir, { recursive: true });
163480
163787
  try {
163481
163788
  const { readdirSync: readdirSync35 } = await import("fs");
163482
163789
  for (const file of readdirSync35(snapshotDir)) {
@@ -163806,7 +164113,7 @@ ${c.error("\u2717")} Snapshot failed: ${msg}`);
163806
164113
  });
163807
164114
 
163808
164115
  // src/capture/assetDownloader.ts
163809
- import { writeFileSync as writeFileSync30, mkdirSync as mkdirSync39 } from "fs";
164116
+ import { writeFileSync as writeFileSync30, mkdirSync as mkdirSync40 } from "fs";
163810
164117
  import { join as join84, extname as extname15 } from "path";
163811
164118
  import { createHash as createHash12 } from "crypto";
163812
164119
  function svgContentHashSlug(svgSource, isLogo) {
@@ -163815,10 +164122,10 @@ function svgContentHashSlug(svgSource, isLogo) {
163815
164122
  }
163816
164123
  async function downloadAssets(tokens, outputDir, catalogedAssets, faviconLinks) {
163817
164124
  const assetsDir = join84(outputDir, "assets");
163818
- mkdirSync39(assetsDir, { recursive: true });
164125
+ mkdirSync40(assetsDir, { recursive: true });
163819
164126
  const assets = [];
163820
164127
  const downloadedUrls = /* @__PURE__ */ new Set();
163821
- mkdirSync39(join84(outputDir, "assets", "svgs"), { recursive: true });
164128
+ mkdirSync40(join84(outputDir, "assets", "svgs"), { recursive: true });
163822
164129
  const usedSvgNames = /* @__PURE__ */ new Set();
163823
164130
  for (let i2 = 0; i2 < tokens.svgs.length && i2 < 30; i2++) {
163824
164131
  const svg = tokens.svgs[i2];
@@ -163949,7 +164256,7 @@ function normalizeUrl(u) {
163949
164256
  }
163950
164257
  async function downloadAndRewriteFonts(css, outputDir) {
163951
164258
  const assetsDir = join84(outputDir, "assets", "fonts");
163952
- mkdirSync39(assetsDir, { recursive: true });
164259
+ mkdirSync40(assetsDir, { recursive: true });
163953
164260
  const fontUrlRegex = /url\(['"]?(https?:\/\/[^'")\s]+\.(?:woff2?|ttf|otf)[^'")\s]*?)['"]?\)/g;
163954
164261
  const fontUrls = /* @__PURE__ */ new Set();
163955
164262
  let match;
@@ -164142,7 +164449,7 @@ __export(video_exports, {
164142
164449
  runVideoMode: () => runVideoMode,
164143
164450
  safeFilename: () => safeFilename
164144
164451
  });
164145
- import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as mkdirSync40, readFileSync as readFileSync56, unlinkSync as unlinkSync7 } from "fs";
164452
+ import { createWriteStream as createWriteStream4, existsSync as existsSync85, mkdirSync as mkdirSync41, readFileSync as readFileSync56, unlinkSync as unlinkSync7 } from "fs";
164146
164453
  import { resolve as resolve56, join as join85, basename as basename20 } from "path";
164147
164454
  async function streamToFile(url, destPath) {
164148
164455
  const r2 = await safeFetch(url, {
@@ -164318,7 +164625,7 @@ async function runVideoMode(args) {
164318
164625
  return;
164319
164626
  }
164320
164627
  const outDir = isW2hLayout ? join85(projectDir, "capture", "assets", "videos") : join85(projectDir, "assets", "videos");
164321
- mkdirSync40(outDir, { recursive: true });
164628
+ mkdirSync41(outDir, { recursive: true });
164322
164629
  const fname = safeFilename(entry.filename || basename20(entry.url));
164323
164630
  const outPath = join85(outDir, fname);
164324
164631
  const relPath = isW2hLayout ? `capture/assets/videos/${fname}` : `assets/videos/${fname}`;
@@ -165089,7 +165396,8 @@ var init_designStyleExtractor = __esm({
165089
165396
  function rgbToHex(color) {
165090
165397
  if (!color) return "";
165091
165398
  if (color.startsWith('#')) return color.toUpperCase();
165092
- var m = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?/);
165399
+ // capture optional alpha (group 4), allowing both comma and modern slash (rgb r g b / a) syntax.
165400
+ var m = color.match(/rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)(?:\\s*[,/]\\s*([\\d.]+))?/);
165093
165401
  if (!m) return color;
165094
165402
  // fully-transparent fill (rgba(...,0)) \u2192 sentinel, NOT #000000 \u2014 otherwise a transparent
165095
165403
  // chip/tab/stat ground reads as solid black on a light-ground site.
@@ -165101,8 +165409,15 @@ var init_designStyleExtractor = __esm({
165101
165409
  return f.split(",")[0].replace(/['"]/g, "").trim();
165102
165410
  }
165103
165411
 
165412
+ // keep only gradient background-images (drop url() sprites + "none"); gradients are a core
165413
+ // brand signal (Stripe/ElevenLabs/Snowflake mesh washes) that a flat background-color misses.
165414
+ function gradientOf(v) {
165415
+ return v && v.indexOf("gradient") >= 0 ? v.trim() : "";
165416
+ }
165417
+
165104
165418
  function getStyles(el) {
165105
165419
  var s = getComputedStyle(el);
165420
+ var bf = s.backdropFilter || s.webkitBackdropFilter || "";
165106
165421
  return {
165107
165422
  fontFamily: cleanFont(s.fontFamily),
165108
165423
  fontSize: s.fontSize,
@@ -165111,6 +165426,8 @@ var init_designStyleExtractor = __esm({
165111
165426
  letterSpacing: s.letterSpacing,
165112
165427
  color: rgbToHex(s.color),
165113
165428
  background: rgbToHex(s.backgroundColor),
165429
+ backgroundImage: gradientOf(s.backgroundImage),
165430
+ backdropFilter: bf === "none" ? "" : bf,
165114
165431
  padding: s.padding,
165115
165432
  borderRadius: s.borderRadius,
165116
165433
  border: s.border,
@@ -165179,23 +165496,37 @@ var init_designStyleExtractor = __esm({
165179
165496
  }
165180
165497
 
165181
165498
  // \u2500\u2500 2. Buttons \u2500\u2500
165499
+ // a page's primary CTA is very often a FILLED pill in the nav/header ("Sign up", "Start for free").
165500
+ // Old code dropped everything under <nav>, losing that CTA; keep nav elements that carry a solid
165501
+ // fill (a real button), still dropping plain nav text links.
165502
+ var isFilledEl = (el) => {
165503
+ var cs = getComputedStyle(el);
165504
+ var bg = cs.backgroundColor;
165505
+ var solid = !!bg && bg !== "transparent" && !/rgba?\\([^)]*,\\s*0\\s*\\)/.test(bg);
165506
+ // a gradient-filled CTA (e.g. Snowflake's blue pill = background: var(--ui-background-03)) has a
165507
+ // transparent background-COLOR but a gradient background-IMAGE \u2014 count it as filled too.
165508
+ return solid || (cs.backgroundImage || "").indexOf("gradient") >= 0;
165509
+ };
165182
165510
  var buttonEls = Array.from(document.querySelectorAll(
165183
165511
  'button, a[class*="btn"], a[class*="button"], a[role="button"], ' +
165184
165512
  '[class*="btn-"], [class*="button-"], [class*="cta"]'
165185
165513
  )).filter(function(el) {
165186
- return isVisible(el) && !el.closest('nav, [role="navigation"]');
165187
- }).slice(0, 10);
165514
+ if (!isVisible(el)) return false;
165515
+ return el.closest('nav, [role="navigation"]') ? isFilledEl(el) : true;
165516
+ }).slice(0, 16);
165188
165517
 
165189
165518
  var buttonMap = {};
165190
165519
  for (var bi = 0; bi < buttonEls.length; bi++) {
165191
165520
  var bs = getStyles(buttonEls[bi]);
165192
- // Deduplicate by visual appearance
165193
- var bKey = bs.background + "|" + bs.borderRadius + "|" + bs.border;
165521
+ // Deduplicate by visual appearance (gradient fill kept distinct so a gradient CTA survives)
165522
+ var bKey = bs.background + "|" + bs.backgroundImage + "|" + bs.borderRadius + "|" + bs.border;
165194
165523
  if (!buttonMap[bKey]) {
165195
165524
  var btnText = (buttonEls[bi].textContent || "").trim().slice(0, 40);
165196
165525
  buttonMap[bKey] = {
165197
165526
  label: btnText || "button",
165198
165527
  background: bs.background,
165528
+ backgroundImage: bs.backgroundImage,
165529
+ backdropFilter: bs.backdropFilter,
165199
165530
  color: bs.color,
165200
165531
  padding: bs.padding,
165201
165532
  borderRadius: bs.borderRadius,
@@ -165207,7 +165538,7 @@ var init_designStyleExtractor = __esm({
165207
165538
  };
165208
165539
  }
165209
165540
  }
165210
- var buttons = Object.values(buttonMap).slice(0, 4);
165541
+ var buttons = Object.values(buttonMap).slice(0, 6);
165211
165542
 
165212
165543
  // \u2500\u2500 3. Cards / containers \u2500\u2500
165213
165544
  var cardEls = Array.from(document.querySelectorAll(
@@ -165222,11 +165553,14 @@ var init_designStyleExtractor = __esm({
165222
165553
  var cardMap = {};
165223
165554
  for (var ci = 0; ci < cardEls.length; ci++) {
165224
165555
  var cs = getStyles(cardEls[ci]);
165225
- var cKey = cs.background + "|" + cs.borderRadius + "|" + cs.border;
165556
+ // gradient fill + glass blur kept in the key so a gradient/frosted card is a distinct variant
165557
+ var cKey = cs.background + "|" + cs.backgroundImage + "|" + cs.backdropFilter + "|" + cs.borderRadius + "|" + cs.border;
165226
165558
  if (!cardMap[cKey]) {
165227
165559
  cardMap[cKey] = {
165228
165560
  label: "card",
165229
165561
  background: cs.background,
165562
+ backgroundImage: cs.backgroundImage,
165563
+ backdropFilter: cs.backdropFilter,
165230
165564
  color: cs.color,
165231
165565
  padding: cs.padding,
165232
165566
  borderRadius: cs.borderRadius,
@@ -165248,6 +165582,8 @@ var init_designStyleExtractor = __esm({
165248
165582
  nav = {
165249
165583
  label: "navigation",
165250
165584
  background: ns.background,
165585
+ backgroundImage: ns.backgroundImage,
165586
+ backdropFilter: ns.backdropFilter,
165251
165587
  color: ns.color,
165252
165588
  padding: ns.padding,
165253
165589
  borderRadius: ns.borderRadius,
@@ -165431,6 +165767,90 @@ var init_designStyleExtractor = __esm({
165431
165767
  .slice(0, 5)
165432
165768
  .map(function(e) { return { value: e[0], count: e[1] }; });
165433
165769
 
165770
+ // \u2500\u2500 8. Dominant gradient / mesh backgrounds \u2500\u2500
165771
+ // A site's signature color wash (Stripe/ElevenLabs/Snowflake) lives in gradient background-images
165772
+ // on large blocks \u2014 often on a pseudo-element (::before glow orbs) rather than the block itself.
165773
+ // Weight each distinct gradient by the total on-screen area it covers; return the top few.
165774
+ var gradientArea = {};
165775
+ var gradSamples = Array.from(document.querySelectorAll(
165776
+ "body, main, section, header, div, [class*='hero'], [class*='gradient'], [class*='bg'], [class*='background']"
165777
+ )).slice(0, 400);
165778
+
165779
+ // max stop chroma (max\u2212min RGB) of a gradient: a vivid brand wash scores high, a neutral
165780
+ // white/cream scrim ~0. Used to rank washes so a small vivid gradient beats a big grey scrim.
165781
+ function gradientChroma(g) {
165782
+ var max = 0, re = /rgba?\\(\\s*(\\d+)[,\\s]+(\\d+)[,\\s]+(\\d+)/g, m;
165783
+ while ((m = re.exec(g))) {
165784
+ var r = +m[1], gr = +m[2], b = +m[3];
165785
+ var c = Math.max(r, gr, b) - Math.min(r, gr, b);
165786
+ if (c > max) max = c;
165787
+ }
165788
+ return max;
165789
+ }
165790
+
165791
+ function addGradient(val, area) {
165792
+ var g = gradientOf(val);
165793
+ if (!g || area < 20000) return; // ignore tiny decorative gradients
165794
+ var norm = g.replace(/\\s+/g, " ");
165795
+ gradientArea[norm] = (gradientArea[norm] || 0) + area;
165796
+ }
165797
+
165798
+ for (var gi = 0; gi < gradSamples.length; gi++) {
165799
+ var gel = gradSamples[gi];
165800
+ if (!isVisible(gel)) continue;
165801
+ var grect = gel.getBoundingClientRect();
165802
+ var garea = grect.width * grect.height;
165803
+ if (garea < 20000) continue;
165804
+ addGradient(getComputedStyle(gel).backgroundImage, garea);
165805
+ addGradient(getComputedStyle(gel, "::before").backgroundImage, garea);
165806
+ addGradient(getComputedStyle(gel, "::after").backgroundImage, garea);
165807
+ }
165808
+
165809
+ // rank by chroma-weighted area so the brand's signature color wash outranks a larger neutral scrim
165810
+ var backgrounds = Object.entries(gradientArea)
165811
+ .map(function(e) { return { value: e[0], area: Math.round(e[1]), score: e[1] * (1 + 2 * gradientChroma(e[0]) / 255) }; })
165812
+ .sort(function(a, b) { return b.score - a.score; })
165813
+ .slice(0, 6)
165814
+ .map(function(e) { return { value: e.value, area: e.area }; });
165815
+
165816
+ // \u2500\u2500 9. Frosted-glass panels (backdrop-filter) \u2500\u2500
165817
+ // A defining material on modern hero UIs (HeyGen's prompt box, Stripe's floating chrome): a
165818
+ // translucent surface with a backdrop blur. Capture the RAW fill (rgba/gradient \u2014 alpha preserved,
165819
+ // unlike rgbToHex) + the blur, ranked by area. This is what lets a frame render a real frosted card.
165820
+ var glassSamples = Array.from(document.querySelectorAll(
165821
+ "div, section, header, nav, aside, [class*='card'], [class*='panel'], [class*='glass'], [class*='blur'], [class*='modal'], [class*='overlay'], [class*='input']"
165822
+ )).slice(0, 400);
165823
+ var glassByKey = {};
165824
+ for (var qi = 0; qi < glassSamples.length; qi++) {
165825
+ var qel = glassSamples[qi];
165826
+ if (!isVisible(qel)) continue;
165827
+ var qs = getComputedStyle(qel);
165828
+ var bf = qs.backdropFilter || qs.webkitBackdropFilter || "";
165829
+ if (!bf || bf === "none" || bf.indexOf("blur") < 0) continue;
165830
+ var qrect = qel.getBoundingClientRect();
165831
+ var qarea = qrect.width * qrect.height;
165832
+ if (qarea < 8000) continue; // ignore tiny blurred chips
165833
+ // raw fill with alpha intact: prefer a translucent gradient, else the rgba background-color
165834
+ var gi2 = qs.backgroundImage;
165835
+ var rawFill = gi2 && gi2.indexOf("gradient") >= 0 ? gi2.replace(/\\s+/g, " ").trim() : qs.backgroundColor;
165836
+ var key = bf + "|" + rawFill + "|" + qs.borderRadius;
165837
+ if (!glassByKey[key]) {
165838
+ glassByKey[key] = {
165839
+ backdropFilter: bf,
165840
+ background: rawFill,
165841
+ border: qs.border,
165842
+ borderRadius: qs.borderRadius,
165843
+ boxShadow: qs.boxShadow === "none" ? "" : qs.boxShadow,
165844
+ area: 0
165845
+ };
165846
+ }
165847
+ glassByKey[key].area += qarea;
165848
+ }
165849
+ var glass = Object.values(glassByKey)
165850
+ .sort(function(a, b) { return b.area - a.area; })
165851
+ .slice(0, 3)
165852
+ .map(function(g) { return { backdropFilter: g.backdropFilter, background: g.background, border: g.border, borderRadius: g.borderRadius, boxShadow: g.boxShadow, area: Math.round(g.area) }; });
165853
+
165434
165854
  return {
165435
165855
  typography: uniqueTypo,
165436
165856
  spacing: { observed: observedSpacing.slice(0, 15), baseUnit: baseUnit },
@@ -165441,7 +165861,9 @@ var init_designStyleExtractor = __esm({
165441
165861
  nav: nav,
165442
165862
  chips: chips,
165443
165863
  statCells: statCells,
165444
- tabs: tabs
165864
+ tabs: tabs,
165865
+ backgrounds: backgrounds,
165866
+ glass: glass
165445
165867
  };
165446
165868
  })()`;
165447
165869
  }
@@ -165771,7 +166193,7 @@ var init_animationCataloger = __esm({
165771
166193
  });
165772
166194
 
165773
166195
  // src/capture/mediaCapture.ts
165774
- import { mkdirSync as mkdirSync41, writeFileSync as writeFileSync33, readdirSync as readdirSync30, readFileSync as readFileSync58, statSync as statSync26 } from "fs";
166196
+ import { mkdirSync as mkdirSync43, writeFileSync as writeFileSync33, readdirSync as readdirSync30, readFileSync as readFileSync58, statSync as statSync27 } from "fs";
165775
166197
  import { join as join87, extname as extname16 } from "path";
165776
166198
  async function saveLottieAnimations(discoveredLotties, lottieDir) {
165777
166199
  let savedCount = 0;
@@ -165833,7 +166255,7 @@ async function saveLottieAnimations(discoveredLotties, lottieDir) {
165833
166255
  async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
165834
166256
  const manifest = [];
165835
166257
  const previewDir = join87(lottieDir, "previews");
165836
- mkdirSync41(previewDir, { recursive: true });
166258
+ mkdirSync43(previewDir, { recursive: true });
165837
166259
  for (const file of readdirSync30(lottieDir)) {
165838
166260
  if (!file.endsWith(".json")) continue;
165839
166261
  try {
@@ -165841,7 +166263,7 @@ async function renderLottiePreviews(chromeBrowser, lottieDir, outputDir) {
165841
166263
  const fr = raw.fr || 30;
165842
166264
  const dur = ((raw.op || 0) - (raw.ip || 0)) / fr;
165843
166265
  const previewName = file.replace(".json", "-preview.png");
165844
- const fileSize = statSync26(join87(lottieDir, file)).size;
166266
+ const fileSize = statSync27(join87(lottieDir, file)).size;
165845
166267
  if (fileSize > 2e6) continue;
165846
166268
  let previewPage;
165847
166269
  try {
@@ -165999,9 +166421,9 @@ async function captureVideoManifest(page, outputDir, progress, opts) {
165999
166421
  const merged = [...byKey.values()];
166000
166422
  if (merged.length === 0) return;
166001
166423
  const videoManifestDir = join87(outputDir, "assets", "videos");
166002
- mkdirSync41(videoManifestDir, { recursive: true });
166424
+ mkdirSync43(videoManifestDir, { recursive: true });
166003
166425
  const previewDir = join87(videoManifestDir, "previews");
166004
- mkdirSync41(previewDir, { recursive: true });
166426
+ mkdirSync43(previewDir, { recursive: true });
166005
166427
  const videoManifest = [];
166006
166428
  const dlStart = Date.now();
166007
166429
  for (let vi = 0; vi < merged.length && vi < 20; vi++) {
@@ -166123,7 +166545,7 @@ var init_mediaCapture = __esm({
166123
166545
  });
166124
166546
 
166125
166547
  // src/capture/contentExtractor.ts
166126
- import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as statSync27, readFileSync as readFileSync59 } from "fs";
166548
+ import { existsSync as existsSync87, readdirSync as readdirSync31, statSync as statSync28, readFileSync as readFileSync59 } from "fs";
166127
166549
  import { basename as basename21, join as join88 } from "path";
166128
166550
  async function detectLibraries(page, capturedShaders) {
166129
166551
  let detectedLibraries = [];
@@ -166300,7 +166722,7 @@ async function captionImagesWithGemini(outputDir, progress, warnings) {
166300
166722
  const results = await Promise.allSettled(
166301
166723
  batch.map(async (file) => {
166302
166724
  const filePath = join88(outputDir, "assets", file);
166303
- const stat3 = statSync27(filePath);
166725
+ const stat3 = statSync28(filePath);
166304
166726
  if (stat3.size > 4e6) return { file, caption: "" };
166305
166727
  const buffer = readFileSync59(filePath);
166306
166728
  const base64 = buffer.toString("base64");
@@ -166424,7 +166846,7 @@ function generateAssetDescriptions(outputDir, tokens, catalogedAssets, geminiCap
166424
166846
  for (const file of readdirSync31(assetsPath)) {
166425
166847
  if (file === "svgs" || file === "fonts" || file === "lottie" || file === "videos") continue;
166426
166848
  const filePath = join88(assetsPath, file);
166427
- const stat3 = statSync27(filePath);
166849
+ const stat3 = statSync28(filePath);
166428
166850
  if (!stat3.isFile()) continue;
166429
166851
  const sizeKb = Math.round(stat3.size / 1024);
166430
166852
  const catalogMatch = catalogedAssets.find(
@@ -166707,11 +167129,11 @@ var screenshotCapture_exports = {};
166707
167129
  __export(screenshotCapture_exports, {
166708
167130
  captureScrollScreenshots: () => captureScrollScreenshots
166709
167131
  });
166710
- import { writeFileSync as writeFileSync36, mkdirSync as mkdirSync43 } from "fs";
167132
+ import { writeFileSync as writeFileSync36, mkdirSync as mkdirSync44 } from "fs";
166711
167133
  import { join as join91 } from "path";
166712
167134
  async function captureScrollScreenshots(page, outputDir) {
166713
167135
  const screenshotsDir = join91(outputDir, "screenshots");
166714
- mkdirSync43(screenshotsDir, { recursive: true });
167136
+ mkdirSync44(screenshotsDir, { recursive: true });
166715
167137
  const MAX_SCREENSHOTS = 20;
166716
167138
  const filePaths = [];
166717
167139
  try {
@@ -167151,7 +167573,7 @@ var capture_exports = {};
167151
167573
  __export(capture_exports, {
167152
167574
  captureWebsite: () => captureWebsite
167153
167575
  });
167154
- import { mkdirSync as mkdirSync44, writeFileSync as writeFileSync37, existsSync as existsSync90 } from "fs";
167576
+ import { mkdirSync as mkdirSync45, writeFileSync as writeFileSync37, existsSync as existsSync90 } from "fs";
167155
167577
  import { join as join93 } from "path";
167156
167578
  async function captureWebsite(opts, onProgress) {
167157
167579
  const {
@@ -167169,9 +167591,9 @@ async function captureWebsite(opts, onProgress) {
167169
167591
  onProgress?.(stage, detail);
167170
167592
  };
167171
167593
  loadEnvFile(outputDir);
167172
- mkdirSync44(join93(outputDir, "extracted"), { recursive: true });
167173
- mkdirSync44(join93(outputDir, "screenshots"), { recursive: true });
167174
- mkdirSync44(join93(outputDir, "assets"), { recursive: true });
167594
+ mkdirSync45(join93(outputDir, "extracted"), { recursive: true });
167595
+ mkdirSync45(join93(outputDir, "screenshots"), { recursive: true });
167596
+ mkdirSync45(join93(outputDir, "assets"), { recursive: true });
167175
167597
  progress("browser", "Launching headless Chrome...");
167176
167598
  const { ensureBrowser: ensureBrowser2 } = await Promise.resolve().then(() => (init_manager2(), manager_exports2));
167177
167599
  const browser = await ensureBrowser2();
@@ -167332,7 +167754,7 @@ async function captureWebsite(opts, onProgress) {
167332
167754
  }
167333
167755
  if (discoveredLotties.length > 0) {
167334
167756
  const lottieDir = join93(outputDir, "assets", "lottie");
167335
- mkdirSync44(lottieDir, { recursive: true });
167757
+ mkdirSync45(lottieDir, { recursive: true });
167336
167758
  const savedCount = await saveLottieAnimations(discoveredLotties, lottieDir);
167337
167759
  if (savedCount > 0) {
167338
167760
  await renderLottiePreviews(chromeBrowser, lottieDir, outputDir);
@@ -167834,8 +168256,8 @@ var init_capture2 = __esm({
167834
168256
  } catch (err) {
167835
168257
  const errMsg = normalizeErrorMessage(err);
167836
168258
  try {
167837
- const { mkdirSync: mkdirSync49, writeFileSync: writeFileSync40 } = await import("fs");
167838
- mkdirSync49(outputDir, { recursive: true });
168259
+ const { mkdirSync: mkdirSync50, writeFileSync: writeFileSync40 } = await import("fs");
168260
+ mkdirSync50(outputDir, { recursive: true });
167839
168261
  const isTimeout = /timeout|timed out/i.test(errMsg);
167840
168262
  const reason = isTimeout ? "Page navigation timed out \u2014 the site may be blocking headless browsers or requires authentication." : `Capture failed: ${errMsg}`;
167841
168263
  writeFileSync40(
@@ -167881,14 +168303,14 @@ __export(state_exports, {
167881
168303
  stateFilePath: () => stateFilePath,
167882
168304
  writeStackOutputs: () => writeStackOutputs
167883
168305
  });
167884
- import { existsSync as existsSync91, mkdirSync as mkdirSync45, readdirSync as readdirSync34, readFileSync as readFileSync61, rmSync as rmSync19, writeFileSync as writeFileSync38 } from "fs";
168306
+ import { existsSync as existsSync91, mkdirSync as mkdirSync46, readdirSync as readdirSync34, readFileSync as readFileSync61, rmSync as rmSync19, writeFileSync as writeFileSync38 } from "fs";
167885
168307
  import { dirname as dirname40, join as join94 } from "path";
167886
168308
  function stateFilePath(stackName = DEFAULT_STACK_NAME, cwd = process.cwd()) {
167887
168309
  return join94(cwd, STATE_DIR_NAME, `${STATE_FILE_PREFIX}${stackName}.json`);
167888
168310
  }
167889
168311
  function writeStackOutputs(outputs, cwd = process.cwd()) {
167890
168312
  const path2 = stateFilePath(outputs.stackName, cwd);
167891
- mkdirSync45(dirname40(path2), { recursive: true });
168313
+ mkdirSync46(dirname40(path2), { recursive: true });
167892
168314
  writeFileSync38(path2, JSON.stringify(outputs, null, 2) + "\n");
167893
168315
  return path2;
167894
168316
  }
@@ -168372,10 +168794,10 @@ async function waitForCompletion(executionArn, stack, intervalMs, json) {
168372
168794
  }
168373
168795
  return;
168374
168796
  }
168375
- await sleep2(intervalMs);
168797
+ await sleep3(intervalMs);
168376
168798
  }
168377
168799
  }
168378
- function sleep2(ms) {
168800
+ function sleep3(ms) {
168379
168801
  return new Promise((res) => setTimeout(res, ms));
168380
168802
  }
168381
168803
  var init_render2 = __esm({
@@ -169441,7 +169863,7 @@ __export(cloudrun_exports, {
169441
169863
  });
169442
169864
  import { spawnSync as spawnSync6 } from "child_process";
169443
169865
  import { createRequire as createRequire4 } from "module";
169444
- import { existsSync as existsSync97, mkdirSync as mkdirSync46, readFileSync as readFileSync66, writeFileSync as writeFileSync39 } from "fs";
169866
+ import { existsSync as existsSync97, mkdirSync as mkdirSync47, readFileSync as readFileSync66, writeFileSync as writeFileSync39 } from "fs";
169445
169867
  import { homedir as homedir14 } from "os";
169446
169868
  import { dirname as dirname42, join as join100, resolve as resolve61 } from "path";
169447
169869
  function stateDir() {
@@ -169451,7 +169873,7 @@ function statePath() {
169451
169873
  return join100(stateDir(), "cloudrun-state.json");
169452
169874
  }
169453
169875
  function writeState(state) {
169454
- mkdirSync46(stateDir(), { recursive: true });
169876
+ mkdirSync47(stateDir(), { recursive: true });
169455
169877
  writeFileSync39(statePath(), JSON.stringify(state, null, 2));
169456
169878
  }
169457
169879
  function readState(args) {
@@ -169614,7 +170036,7 @@ function findRepoRoot(tfDir) {
169614
170036
  }
169615
170037
  function writeCloudBuildConfig(image) {
169616
170038
  const cfgPath = join100(stateDir(), "cloudrun-cloudbuild.yaml");
169617
- mkdirSync46(stateDir(), { recursive: true });
170039
+ mkdirSync47(stateDir(), { recursive: true });
169618
170040
  writeFileSync39(
169619
170041
  cfgPath,
169620
170042
  [
@@ -170189,7 +170611,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
170189
170611
  const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
170190
170612
  const maxWaitMs = options.maxWaitMs ?? DEFAULT_MAX_WAIT_MS;
170191
170613
  const now = options.now ?? (() => Date.now());
170192
- const sleep3 = options.sleep ?? defaultAbortableSleep(options.signal);
170614
+ const sleep5 = options.sleep ?? defaultAbortableSleep(options.signal);
170193
170615
  const started = now();
170194
170616
  while (true) {
170195
170617
  if (options.signal?.aborted) {
@@ -170204,7 +170626,7 @@ async function pollUntilTerminal(client, renderId, options = {}) {
170204
170626
  if (elapsed >= maxWaitMs) {
170205
170627
  throw new PollTimeoutError(detail, elapsed);
170206
170628
  }
170207
- await sleep3(intervalMs);
170629
+ await sleep5(intervalMs);
170208
170630
  }
170209
170631
  }
170210
170632
  function signalAbortError(signal) {
@@ -170245,7 +170667,7 @@ var init_poll = __esm({
170245
170667
  });
170246
170668
 
170247
170669
  // src/cloud/download.ts
170248
- import { createWriteStream as createWriteStream5, mkdirSync as mkdirSync47, unlinkSync as unlinkSync8 } from "fs";
170670
+ import { createWriteStream as createWriteStream5, mkdirSync as mkdirSync48, unlinkSync as unlinkSync8 } from "fs";
170249
170671
  import { dirname as dirname43 } from "path";
170250
170672
  async function downloadToFile(url, destPath, options = {}) {
170251
170673
  const fetchImpl = options.fetchImpl ?? fetch;
@@ -170256,7 +170678,7 @@ async function downloadToFile(url, destPath, options = {}) {
170256
170678
  if (!res.body) {
170257
170679
  throw new Error(`Failed to download ${url}: empty response body`);
170258
170680
  }
170259
- mkdirSync47(dirname43(destPath), { recursive: true });
170681
+ mkdirSync48(dirname43(destPath), { recursive: true });
170260
170682
  const totalHeader = res.headers.get("content-length");
170261
170683
  const total = totalHeader ? Number.parseInt(totalHeader, 10) : void 0;
170262
170684
  const totalOpt = total !== void 0 && Number.isFinite(total) ? total : void 0;
@@ -170462,6 +170884,33 @@ var init_client2 = __esm({
170462
170884
  signal: args.signal
170463
170885
  });
170464
170886
  }
170887
+ /**
170888
+ * Create Asset Upload
170889
+ *
170890
+ * 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.
170891
+ */
170892
+ async createAssetUpload(args) {
170893
+ return await this.request({
170894
+ method: "POST",
170895
+ path: "/v3/assets/direct-uploads",
170896
+ body: args.body,
170897
+ idempotencyKey: args.idempotencyKey,
170898
+ signal: args.signal
170899
+ });
170900
+ }
170901
+ /**
170902
+ * Complete Asset Upload
170903
+ *
170904
+ * 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.
170905
+ */
170906
+ async completeAssetUpload(args) {
170907
+ return await this.request({
170908
+ method: "POST",
170909
+ path: `/v3/assets/${encodeURIComponent(args.asset_id)}/complete`,
170910
+ body: args.body,
170911
+ signal: args.signal
170912
+ });
170913
+ }
170465
170914
  /**
170466
170915
  * Create HyperFrames Render
170467
170916
  *
@@ -171591,7 +172040,7 @@ var init_errors2 = __esm({
171591
172040
  init_format();
171592
172041
  init_client2();
171593
172042
  ERROR_CODE_HINTS = {
171594
- 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.",
172043
+ 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.",
171595
172044
  hyperframes_render_not_found: "The render_id no longer exists \u2014 either soft-deleted or never created.",
171596
172045
  invalid_parameter: "Check the listed parameter against `hyperframes cloud render --help` for the accepted values.",
171597
172046
  authentication_failed: "Run `hyperframes auth status` to confirm your credential; `hyperframes auth login` to re-auth.",
@@ -171657,6 +172106,91 @@ var init_parsing = __esm({
171657
172106
  }
171658
172107
  });
171659
172108
 
172109
+ // src/cloud/upload.ts
172110
+ import { createHash as createHash14 } from "crypto";
172111
+ function sha256Hex2(bytes) {
172112
+ return createHash14("sha256").update(bytes).digest("hex");
172113
+ }
172114
+ function sleep4(ms) {
172115
+ return new Promise((r2) => setTimeout(r2, ms));
172116
+ }
172117
+ function normalizeUploadHeaders(raw) {
172118
+ const out = {};
172119
+ for (const [k2, v2] of Object.entries(raw ?? {})) {
172120
+ if (typeof v2 === "string") out[k2] = v2;
172121
+ else if (typeof v2 === "number" || typeof v2 === "boolean") out[k2] = String(v2);
172122
+ }
172123
+ return out;
172124
+ }
172125
+ async function putBytesToPresignedUrl(fetchImpl, uploadUrl, uploadHeaders, bytes) {
172126
+ const headers = {
172127
+ "content-type": CONTENT_TYPE_ZIP,
172128
+ ...normalizeUploadHeaders(uploadHeaders)
172129
+ };
172130
+ const res = await fetchImpl(uploadUrl, {
172131
+ method: "PUT",
172132
+ headers,
172133
+ body: bytes
172134
+ });
172135
+ if (!res.ok) {
172136
+ const detail = await res.text().catch(() => "");
172137
+ throw new Error(
172138
+ `Direct upload PUT failed: ${res.status} ${res.statusText}${detail ? ` \u2014 ${detail.slice(0, 300)}` : ""}`
172139
+ );
172140
+ }
172141
+ }
172142
+ async function completeWithRetry(client, asset_id, checksum_sha256) {
172143
+ let lastErr;
172144
+ for (let attempt = 0; attempt < COMPLETE_MAX_RETRIES; attempt++) {
172145
+ try {
172146
+ return await client.completeAssetUpload({
172147
+ asset_id,
172148
+ body: { checksum_sha256 }
172149
+ });
172150
+ } catch (err) {
172151
+ const retryable = err instanceof HyperframesApiError && err.status === 409;
172152
+ if (!retryable || attempt === COMPLETE_MAX_RETRIES - 1) {
172153
+ throw err;
172154
+ }
172155
+ lastErr = err;
172156
+ await sleep4(COMPLETE_RETRY_BASE_MS * (attempt + 1));
172157
+ }
172158
+ }
172159
+ throw lastErr ?? new Error("completeAssetUpload retries exhausted");
172160
+ }
172161
+ async function uploadZipViaDirectUpload(opts) {
172162
+ const start = Date.now();
172163
+ const { bytes, filename, idempotencyKey } = opts;
172164
+ const size_bytes = bytes.byteLength;
172165
+ const checksum_sha256 = sha256Hex2(bytes);
172166
+ const fetchImpl = opts.fetchImpl ?? fetch;
172167
+ opts.onProgress?.({ phase: "initialize" });
172168
+ const initialize = await opts.client.createAssetUpload({
172169
+ body: { filename, content_type: CONTENT_TYPE_ZIP, size_bytes, checksum_sha256 },
172170
+ idempotencyKey
172171
+ });
172172
+ opts.onProgress?.({ phase: "upload", percent: 0 });
172173
+ await putBytesToPresignedUrl(fetchImpl, initialize.upload_url, initialize.upload_headers, bytes);
172174
+ opts.onProgress?.({ phase: "upload", percent: 100 });
172175
+ opts.onProgress?.({ phase: "complete" });
172176
+ const completed = await completeWithRetry(opts.client, initialize.asset_id, checksum_sha256);
172177
+ return {
172178
+ asset_id: completed.asset_id,
172179
+ size_bytes,
172180
+ duration_ms: Date.now() - start
172181
+ };
172182
+ }
172183
+ var COMPLETE_MAX_RETRIES, COMPLETE_RETRY_BASE_MS, CONTENT_TYPE_ZIP;
172184
+ var init_upload = __esm({
172185
+ "src/cloud/upload.ts"() {
172186
+ "use strict";
172187
+ init_client2();
172188
+ COMPLETE_MAX_RETRIES = 5;
172189
+ COMPLETE_RETRY_BASE_MS = 500;
172190
+ CONTENT_TYPE_ZIP = "application/zip";
172191
+ }
172192
+ });
172193
+
171660
172194
  // src/cloud/statusColor.ts
171661
172195
  function colorStatus(status) {
171662
172196
  switch (status) {
@@ -171817,22 +172351,25 @@ async function maybeUploadProject(client, source, asJson, idempotencyKey) {
171817
172351
  }
171818
172352
  if (!asJson) {
171819
172353
  console.log("");
171820
- console.log(`${c.accent("\u25C6")} Uploading to /v3/assets`);
172354
+ console.log(`${c.accent("\u25C6")} Uploading (direct-to-S3)`);
171821
172355
  }
171822
172356
  const uploadStart = Date.now();
171823
172357
  let uploaded;
171824
172358
  try {
171825
- uploaded = await client.uploadAsset({
171826
- file: archive.buffer,
172359
+ uploaded = await uploadZipViaDirectUpload({
172360
+ client,
172361
+ bytes: archive.buffer,
171827
172362
  filename: `${project.name}.zip`,
171828
- // Tag the multipart part with application/zip so downstream
171829
- // proxies / WAFs / any server-side path that keys off the
171830
- // part Content-Type see the intended type. The asset
171831
- // controller currently sniffs magic bytes from the file
171832
- // bytes, so this is belt-and-suspenders today; without it,
171833
- // FormData defaults to application/octet-stream.
171834
- mimeType: "application/zip",
171835
- idempotencyKey
172363
+ idempotencyKey,
172364
+ onProgress: !asJson ? (ev) => {
172365
+ if (ev.phase === "initialize") {
172366
+ console.log(c.dim(` initializing\u2026`));
172367
+ } else if (ev.phase === "upload" && ev.percent === 0) {
172368
+ console.log(c.dim(` uploading to S3\u2026`));
172369
+ } else if (ev.phase === "complete") {
172370
+ console.log(c.dim(` finalizing\u2026`));
172371
+ }
172372
+ } : void 0
171836
172373
  });
171837
172374
  } catch (err) {
171838
172375
  reportApiError("Upload failed", err);
@@ -171969,6 +172506,7 @@ var init_render3 = __esm({
171969
172506
  init_cloud();
171970
172507
  init_errors2();
171971
172508
  init_parsing();
172509
+ init_upload();
171972
172510
  init_statusColor();
171973
172511
  VALID_QUALITY2 = ["draft", "standard", "high"];
171974
172512
  VALID_FORMAT2 = ["mp4", "webm", "mov"];
@@ -173409,7 +173947,7 @@ __export(autoUpdate_exports, {
173409
173947
  scheduleBackgroundInstall: () => scheduleBackgroundInstall
173410
173948
  });
173411
173949
  import { spawn as spawn17 } from "child_process";
173412
- import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync48, openSync as openSync3 } from "fs";
173950
+ import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync49, openSync as openSync3 } from "fs";
173413
173951
  import { homedir as homedir16 } from "os";
173414
173952
  import { join as join103 } from "path";
173415
173953
  import { compareVersions as compareVersions3 } from "compare-versions";
@@ -173426,14 +173964,14 @@ function majorOf(version2) {
173426
173964
  }
173427
173965
  function log(line2) {
173428
173966
  try {
173429
- mkdirSync48(CONFIG_DIR2, { recursive: true, mode: 448 });
173967
+ mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
173430
173968
  appendFileSync2(LOG_FILE, `${(/* @__PURE__ */ new Date()).toISOString()} ${line2}
173431
173969
  `, { mode: 384 });
173432
173970
  } catch {
173433
173971
  }
173434
173972
  }
173435
173973
  function launchDetachedInstall(installCommand, version2) {
173436
- mkdirSync48(CONFIG_DIR2, { recursive: true, mode: 448 });
173974
+ mkdirSync49(CONFIG_DIR2, { recursive: true, mode: 448 });
173437
173975
  const configFile = join103(CONFIG_DIR2, "config.json");
173438
173976
  const nodeScript = `
173439
173977
  const { exec } = require("node:child_process");